@kylincloud/flamegraph 0.36.0 → 0.36.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"flamegraphRenderWorker.js","sources":["../src/models/spyName.ts","../src/models/units.ts","../src/models/profile.ts","../src/models/flamebearer.ts","../src/models/trace.ts","../src/models/groups.ts","../src/FlameGraph/FlameGraphComponent/constants.ts","../src/format/format.ts","../src/fitMode/fitMode.ts","../src/FlameGraph/FlameGraphComponent/color.ts","../src/FlameGraph/FlameGraphComponent/murmur3.ts","../src/FlameGraph/FlameGraphComponent/Flamegraph_render.ts","../src/FlameGraph/FlameGraphComponent/utils.ts","../src/FlameGraph/FlameGraphComponent/Flamegraph.ts","../src/workers/flamegraphRenderWorker.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["AllSpyNames","SpyNameSchema","z","preprocess","val","includes","enum","default","units","UnitsSchema","u","FlamebearerSchema","object","names","array","n","string","min","levels","number","numTicks","maxSelf","MetadataSchema","appName","optional","name","startTime","endTime","query","maxNodes","format","sampleRate","spyName","version","max","flamebearer","metadata","leftTicks","rightTicks","singleFF","jStep","jName","getBarOffset","level","j","getBarTotal","getBarTotalDiff","getBarSelf","getBarSelfDiff","getBarName","doubleFF","getBarTotalLeft","getBarTotalRght","getBarSelfLeft","getBarSelfRght","createFF","viewType","Error","ReferencesSchema","refType","traceID","spanID","TagsSchema","key","type","value","union","boolean","TraceSpanSchema","flags","operationName","references","duration","tags","logs","timestamp","fields","processID","warnings","any","ProcessSchema","serviceName","spans","processes","record","GroupSchema","watermark","samples","durationDelta","PX_PER_LEVEL","BAR_HEIGHT","localizeDurationString","input","isZh","parsed","unit","hasLessThan","sign","s","String","trim","replace","startsWith","slice","m","match","numStr","parseFloat","Number","isFinite","parseNumericWithUnit","unitZh","toLowerCase","ratioToPercent","ratio","Math","round","DurationFormatter","constructor","maxDur","enableSubsecondPrecision","this","divider","suffix","durations","i","length","console","warn","withUnits","nStr","toFixed","formatPrecise","NanosecondsFormatter","multiplier","ObjectsFormatter","maxObjects","objects","BytesFormatter","maxBytes","bytes","fitToCanvasRect","mode","charSize","rectWidth","fullText","shortText","text","marginLeft","shortTextWidth","diffPercent","leftPercent","rightPercent","result","colorGreyscale","v","a","Color","rgb","alpha","getPackageNameFromStackTrace","stackTrace","regexp","spyToRegex","fullStackGroups","groups","colorBasedOnPackageName","palette","colorIndex","seed","remainder","h1","h1b","c1","c2","k1","charCodeAt","murmurhash3_32_gc","colors","baseClr","NewDiffColor","props","goodColor","neutralColor","badColor","color","scaleLinear","domain","range","toString","formattedValueCacheByCanvas","WeakMap","highlightCacheByNames","colorCacheByNames","barIndexByLevels","defaultCanvasMessages","collapsedLevelsSingular","collapsedLevelsPlural","RenderCanvas","renderStart","performance","now","renderRects","renderText","renderMode","_a","timeBudgetMs","canvas","fitMode","tickToX","pxPerTick","rangeMin","rangeMax","focusedNode","zoom","messages","graphWidth","skipCanvasResize","width","clientWidth","getCanvasWidth","ff","ctx","getContext","selectedLevel","mapOrElse","formatter","getFormatter","isFocused","isJust","topLevel","f","focusOffset","highlightModeOn","highlightQuery","canvasHeight","height","dpr","devicePixelRatio","skipDprScale","scale","textBaseline","font","characterSize","measureText","formattedValueCache","cached","get","next","Map","set","getFormattedValueCache","highlightByNameIndex","cachedByQuery","queryLower","matches","Uint8Array","nextMap","getHighlightByNameIndex","colorByNameIndex","cachedByPalette","Array","packageName","getColorByNameIndexCached","diffColorFn","isHighlightedAt","nameIndex","initialStartI","_b","startI","initialStartJ","_c","startJ","_d","levelStart","beginPath","rect","fillStyle","fill","shortName","levelCount","getCollapsedText","fitCalc","x","y","sh","save","clip","namePosX","fillText","restore","_e","maxLevels","levelEnd","_f","renderStartI","_g","renderStartJ","_h","getColorForBar","collapsed","isHighlighted","common","cfg","getColorCommon","l","undefined","getColorSingle","leftRatio","rightRatio","error","getRatios","colorBasedOnDiffPercent","getColorDouble","barIndex","index","list","push","getBarIndex","highlightNameIndices","entries","k","entry","relativeLevel","numBarTicks","sw","done","nextI","nextJ","getFunctionName","getLongName","cachedValue","formatted","Flamegraph","cachedRange","cachedPxPerTick","getRange","xyToBarPosition","xy","xyToBarIndex","node","posX","xyToBarData","self","offset","total","barTotal","totalLeft","totalRight","totalDiff","isWithinBounds","e","render","options","updateCachedMetrics","highlightQueryOverride","calculatedZoomRange","calculatedFocusRange","Just","fRange","zRange","Nothing","binarySearchLevel","x0","x1","computedY","compensatedFocusedY","compensation","floor","parseXY","Maybe","of","nothing","xyToBar","map","xyWithinBounds","state","rectCanvas","textCanvas","renderState","token","running","firstChunk","payload","flamegraph","toMaybe","just","runChunk","kind","c","buildPalette","setTimeout","onmessage","event","msg","data","renderFlamegraph"],"mappings":"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"}
1
+ {"version":3,"file":"flamegraphRenderWorker.js","sources":["../node_modules/.pnpm/color-name@2.1.0/node_modules/color-name/index.js","../node_modules/.pnpm/color-string@2.1.4/node_modules/color-string/index.js","../node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/conversions.js","../node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/route.js","../node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/index.js","../node_modules/.pnpm/color@5.0.3/node_modules/color/index.js","../node_modules/.pnpm/true-myth@5.4.0/node_modules/true-myth/dist/unit.js","../node_modules/.pnpm/true-myth@5.4.0/node_modules/true-myth/dist/-private/utils.js","../node_modules/.pnpm/true-myth@5.4.0/node_modules/true-myth/dist/result.js","../node_modules/.pnpm/true-myth@5.4.0/node_modules/true-myth/dist/toolbelt.js","../node_modules/.pnpm/true-myth@5.4.0/node_modules/true-myth/dist/maybe.js","../src/models/spyName.ts","../src/models/units.ts","../src/models/profile.ts","../src/models/flamebearer.ts","../src/models/trace.ts","../src/models/groups.ts","../src/FlameGraph/FlameGraphComponent/constants.ts","../src/format/format.ts","../src/fitMode/fitMode.ts","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ascending.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/descending.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisector.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisect.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/number.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ticks.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/init.js","../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js","../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/numberArray.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/array.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/date.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/object.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/value.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/round.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/number.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatDecimal.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/exponent.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatSpecifier.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatRounded.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTypes.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/identity.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/locale.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/defaultLocale.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatGroup.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatNumerals.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTrim.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/tickFormat.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionPrefix.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionRound.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionFixed.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/linear.js","../src/FlameGraph/FlameGraphComponent/color.ts","../src/FlameGraph/FlameGraphComponent/murmur3.ts","../src/FlameGraph/FlameGraphComponent/Flamegraph_render.ts","../src/FlameGraph/FlameGraphComponent/utils.ts","../src/FlameGraph/FlameGraphComponent/Flamegraph.ts","../src/workers/flamegraphRenderWorker.ts"],"sourcesContent":["const colors = {\n\taliceblue: [240, 248, 255],\n\tantiquewhite: [250, 235, 215],\n\taqua: [0, 255, 255],\n\taquamarine: [127, 255, 212],\n\tazure: [240, 255, 255],\n\tbeige: [245, 245, 220],\n\tbisque: [255, 228, 196],\n\tblack: [0, 0, 0],\n\tblanchedalmond: [255, 235, 205],\n\tblue: [0, 0, 255],\n\tblueviolet: [138, 43, 226],\n\tbrown: [165, 42, 42],\n\tburlywood: [222, 184, 135],\n\tcadetblue: [95, 158, 160],\n\tchartreuse: [127, 255, 0],\n\tchocolate: [210, 105, 30],\n\tcoral: [255, 127, 80],\n\tcornflowerblue: [100, 149, 237],\n\tcornsilk: [255, 248, 220],\n\tcrimson: [220, 20, 60],\n\tcyan: [0, 255, 255],\n\tdarkblue: [0, 0, 139],\n\tdarkcyan: [0, 139, 139],\n\tdarkgoldenrod: [184, 134, 11],\n\tdarkgray: [169, 169, 169],\n\tdarkgreen: [0, 100, 0],\n\tdarkgrey: [169, 169, 169],\n\tdarkkhaki: [189, 183, 107],\n\tdarkmagenta: [139, 0, 139],\n\tdarkolivegreen: [85, 107, 47],\n\tdarkorange: [255, 140, 0],\n\tdarkorchid: [153, 50, 204],\n\tdarkred: [139, 0, 0],\n\tdarksalmon: [233, 150, 122],\n\tdarkseagreen: [143, 188, 143],\n\tdarkslateblue: [72, 61, 139],\n\tdarkslategray: [47, 79, 79],\n\tdarkslategrey: [47, 79, 79],\n\tdarkturquoise: [0, 206, 209],\n\tdarkviolet: [148, 0, 211],\n\tdeeppink: [255, 20, 147],\n\tdeepskyblue: [0, 191, 255],\n\tdimgray: [105, 105, 105],\n\tdimgrey: [105, 105, 105],\n\tdodgerblue: [30, 144, 255],\n\tfirebrick: [178, 34, 34],\n\tfloralwhite: [255, 250, 240],\n\tforestgreen: [34, 139, 34],\n\tfuchsia: [255, 0, 255],\n\tgainsboro: [220, 220, 220],\n\tghostwhite: [248, 248, 255],\n\tgold: [255, 215, 0],\n\tgoldenrod: [218, 165, 32],\n\tgray: [128, 128, 128],\n\tgreen: [0, 128, 0],\n\tgreenyellow: [173, 255, 47],\n\tgrey: [128, 128, 128],\n\thoneydew: [240, 255, 240],\n\thotpink: [255, 105, 180],\n\tindianred: [205, 92, 92],\n\tindigo: [75, 0, 130],\n\tivory: [255, 255, 240],\n\tkhaki: [240, 230, 140],\n\tlavender: [230, 230, 250],\n\tlavenderblush: [255, 240, 245],\n\tlawngreen: [124, 252, 0],\n\tlemonchiffon: [255, 250, 205],\n\tlightblue: [173, 216, 230],\n\tlightcoral: [240, 128, 128],\n\tlightcyan: [224, 255, 255],\n\tlightgoldenrodyellow: [250, 250, 210],\n\tlightgray: [211, 211, 211],\n\tlightgreen: [144, 238, 144],\n\tlightgrey: [211, 211, 211],\n\tlightpink: [255, 182, 193],\n\tlightsalmon: [255, 160, 122],\n\tlightseagreen: [32, 178, 170],\n\tlightskyblue: [135, 206, 250],\n\tlightslategray: [119, 136, 153],\n\tlightslategrey: [119, 136, 153],\n\tlightsteelblue: [176, 196, 222],\n\tlightyellow: [255, 255, 224],\n\tlime: [0, 255, 0],\n\tlimegreen: [50, 205, 50],\n\tlinen: [250, 240, 230],\n\tmagenta: [255, 0, 255],\n\tmaroon: [128, 0, 0],\n\tmediumaquamarine: [102, 205, 170],\n\tmediumblue: [0, 0, 205],\n\tmediumorchid: [186, 85, 211],\n\tmediumpurple: [147, 112, 219],\n\tmediumseagreen: [60, 179, 113],\n\tmediumslateblue: [123, 104, 238],\n\tmediumspringgreen: [0, 250, 154],\n\tmediumturquoise: [72, 209, 204],\n\tmediumvioletred: [199, 21, 133],\n\tmidnightblue: [25, 25, 112],\n\tmintcream: [245, 255, 250],\n\tmistyrose: [255, 228, 225],\n\tmoccasin: [255, 228, 181],\n\tnavajowhite: [255, 222, 173],\n\tnavy: [0, 0, 128],\n\toldlace: [253, 245, 230],\n\tolive: [128, 128, 0],\n\tolivedrab: [107, 142, 35],\n\torange: [255, 165, 0],\n\torangered: [255, 69, 0],\n\torchid: [218, 112, 214],\n\tpalegoldenrod: [238, 232, 170],\n\tpalegreen: [152, 251, 152],\n\tpaleturquoise: [175, 238, 238],\n\tpalevioletred: [219, 112, 147],\n\tpapayawhip: [255, 239, 213],\n\tpeachpuff: [255, 218, 185],\n\tperu: [205, 133, 63],\n\tpink: [255, 192, 203],\n\tplum: [221, 160, 221],\n\tpowderblue: [176, 224, 230],\n\tpurple: [128, 0, 128],\n\trebeccapurple: [102, 51, 153],\n\tred: [255, 0, 0],\n\trosybrown: [188, 143, 143],\n\troyalblue: [65, 105, 225],\n\tsaddlebrown: [139, 69, 19],\n\tsalmon: [250, 128, 114],\n\tsandybrown: [244, 164, 96],\n\tseagreen: [46, 139, 87],\n\tseashell: [255, 245, 238],\n\tsienna: [160, 82, 45],\n\tsilver: [192, 192, 192],\n\tskyblue: [135, 206, 235],\n\tslateblue: [106, 90, 205],\n\tslategray: [112, 128, 144],\n\tslategrey: [112, 128, 144],\n\tsnow: [255, 250, 250],\n\tspringgreen: [0, 255, 127],\n\tsteelblue: [70, 130, 180],\n\ttan: [210, 180, 140],\n\tteal: [0, 128, 128],\n\tthistle: [216, 191, 216],\n\ttomato: [255, 99, 71],\n\tturquoise: [64, 224, 208],\n\tviolet: [238, 130, 238],\n\twheat: [245, 222, 179],\n\twhite: [255, 255, 255],\n\twhitesmoke: [245, 245, 245],\n\tyellow: [255, 255, 0],\n\tyellowgreen: [154, 205, 50],\n}\n\nfor (const key in colors) Object.freeze(colors[key]);\nexport default Object.freeze(colors);","import colorNames from 'color-name';\n\nconst reverseNames = Object.create(null);\n\n// Create a list of reverse color names\nfor (const name in colorNames) {\n\tif (Object.hasOwn(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nconst cs = {\n\tto: {},\n\tget: {},\n};\n\ncs.get = function (string) {\n\tconst prefix = string.slice(0, 3).toLowerCase();\n\tlet value;\n\tlet model;\n\tswitch (prefix) {\n\t\tcase 'hsl': {\n\t\t\tvalue = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'hwb': {\n\t\t\tvalue = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tvalue = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!value) {\n\t\treturn null;\n\t}\n\n\treturn {model, value};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst abbr = /^#([a-f\\d]{3,4})$/i;\n\tconst hex = /^#([a-f\\d]{6})([a-f\\d]{2})?$/i;\n\tconst rgba = /^rgba?\\(\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)\\s*(?:[\\s,|/]\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(%?)\\s*)?\\)$/i;\n\tconst per = /^rgba?\\(\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,|/]\\s*([+-]?[\\d.]+)(%?)\\s*)?\\)$/i;\n\tconst keyword = /^(\\w+)$/;\n\n\tlet rgb = [0, 0, 0, 1];\n\tlet match;\n\tlet i;\n\tlet hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tconst i2 = i * 2;\n\t\t\trgb[i] = Number.parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseFloat(match[i + 1]);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(Number.parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.toLowerCase().match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!Object.hasOwn(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// eslint-disable-next-line unicorn/prefer-spread\n\t\trgb = colorNames[match[1]].slice();\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[,|/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n\tconst match = string.match(hsl);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst s = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst l = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n\tconst match = string.match(hwb);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst w = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst b = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function (...rgba) {\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function (...rgba) {\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function (...rgba) {\n\tconst r = Math.round(rgba[0] / 255 * 100);\n\tconst g = Math.round(rgba[1] / 255 * 100);\n\tconst b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function (...hsla) {\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// Hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function (...hwba) {\n\tlet a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (...rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// Helpers\nfunction clamp(number_, min, max) {\n\treturn Math.min(Math.max(min, number_), max);\n}\n\nfunction hexDouble(number_) {\n\tconst string_ = Math.round(number_).toString(16).toUpperCase();\n\treturn (string_.length < 2) ? '0' + string_ : string_;\n}\n\nexport default cs;\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nimport cssKeywords from 'color-name';\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\toklab: {channels: 3, labels: ['okl', 'oka', 'okb']},\n\tlch: {channels: 3, labels: 'lch'},\n\toklch: {channels: 3, labels: ['okl', 'okc', 'okh']},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']},\n};\n\nexport default convert;\n\n// LAB f(t) constant\nconst LAB_FT = (6 / 29) ** 3;\n\n// SRGB non-linear transform functions\nfunction srgbNonlinearTransform(c) {\n\tconst cc = c > 0.003_130_8\n\t\t? ((1.055 * (c ** (1 / 2.4))) - 0.055)\n\t\t: c * 12.92;\n\treturn Math.min(Math.max(0, cc), 1);\n}\n\nfunction srgbNonlinearTransformInv(c) {\n\treturn c > 0.040_45 ? (((c + 0.055) / 1.055) ** 2.4) : (c / 12.92);\n}\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tswitch (max) {\n\t\tcase min: {\n\t\t\th = 0;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase r: {\n\t\t\th = (g - b) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase g: {\n\t\t\th = 2 + (b - r) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase b: {\n\t\t\th = 4 + (r - g) / delta;\n\n\t\t\tbreak;\n\t\t}\n\t// No default\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tswitch (v) {\n\t\t\tcase r: {\n\t\t\t\th = bdif - gdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase g: {\n\t\t\t\th = (1 / 3) + rdif - bdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase b: {\n\t\t\t\th = (2 / 3) + gdif - rdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t// No default\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100,\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.oklab = function (rgb) {\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransformInv(rgb[0] / 255);\n\tconst g = srgbNonlinearTransformInv(rgb[1] / 255);\n\tconst b = srgbNonlinearTransformInv(rgb[2] / 255);\n\n\tconst lp = Math.cbrt(0.412_221_470_8 * r + 0.536_332_536_3 * g + 0.051_445_992_9 * b);\n\tconst mp = Math.cbrt(0.211_903_498_2 * r + 0.680_699_545_1 * g + 0.107_396_956_6 * b);\n\tconst sp = Math.cbrt(0.088_302_461_9 * r + 0.281_718_837_6 * g + 0.629_978_700_5 * b);\n\n\tconst l = 0.210_454_255_3 * lp + 0.793_617_785 * mp - 0.004_072_046_8 * sp;\n\tconst aa = 1.977_998_495_1 * lp - 2.428_592_205 * mp + 0.450_593_709_9 * sp;\n\tconst bb = 0.025_904_037_1 * lp + 0.782_771_766_2 * mp - 0.808_675_766 * sp;\n\n\treturn [l * 100, aa * 100, bb * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Number.POSITIVE_INFINITY;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn [...cssKeywords[keyword]];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransformInv(rgb[0] / 255);\n\tconst g = srgbNonlinearTransformInv(rgb[1] / 255);\n\tconst b = srgbNonlinearTransformInv(rgb[2] / 255);\n\n\tconst x = (r * 0.412_456_4) + (g * 0.357_576_1) + (b * 0.180_437_5);\n\tconst y = (r * 0.212_672_9) + (g * 0.715_152_2) + (b * 0.072_175);\n\tconst z = (r * 0.019_333_9) + (g * 0.119_192) + (b * 0.950_304_1);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t3;\n\tlet value;\n\n\tif (s === 0) {\n\t\tvalue = l * 255;\n\t\treturn [value, value, value];\n\t}\n\n\tconst t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tvalue = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tvalue = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tvalue = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tvalue = t1;\n\t\t}\n\n\t\trgb[i] = value * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0: {\n\t\t\treturn [v, t, p];\n\t\t}\n\n\t\tcase 1: {\n\t\t\treturn [q, v, p];\n\t\t}\n\n\t\tcase 2: {\n\t\t\treturn [p, v, t];\n\t\t}\n\n\t\tcase 3: {\n\t\t\treturn [p, q, v];\n\t\t}\n\n\t\tcase 4: {\n\t\t\treturn [t, p, v];\n\t\t}\n\n\t\tcase 5: {\n\t\t\treturn [v, p, q];\n\t\t}\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\t// eslint-disable-next-line no-bitwise\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces, default-case-last */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: { r = v; g = n; b = wh; break;\n\t\t}\n\n\t\tcase 1: { r = n; g = v; b = wh; break;\n\t\t}\n\n\t\tcase 2: { r = wh; g = v; b = n; break;\n\t\t}\n\n\t\tcase 3: { r = wh; g = n; b = v; break;\n\t\t}\n\n\t\tcase 4: { r = n; g = wh; b = v; break;\n\t\t}\n\n\t\tcase 5: { r = v; g = wh; b = n; break;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces, default-case-last */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.240_454_2) + (y * -1.537_138_5) + (z * -0.498_531_4);\n\tg = (x * -0.969_266) + (y * 1.876_010_8) + (z * 0.041_556);\n\tb = (x * 0.055_643_4) + (y * -0.204_025_9) + (z * 1.057_225_2);\n\n\t// Assume sRGB\n\tr = srgbNonlinearTransform(r);\n\tg = srgbNonlinearTransform(g);\n\tb = srgbNonlinearTransform(b);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.xyz.oklab = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\n\tconst lp = Math.cbrt(0.818_933_010_1 * x + 0.361_866_742_4 * y - 0.128_859_713_7 * z);\n\tconst mp = Math.cbrt(0.032_984_543_6 * x + 0.929_311_871_5 * y + 0.036_145_638_7 * z);\n\tconst sp = Math.cbrt(0.048_200_301_8 * x + 0.264_366_269_1 * y + 0.633_851_707 * z);\n\n\tconst l = 0.210_454_255_3 * lp + 0.793_617_785 * mp - 0.004_072_046_8 * sp;\n\tconst a = 1.977_998_495_1 * lp - 2.428_592_205 * mp + 0.450_593_709_9 * sp;\n\tconst b = 0.025_904_037_1 * lp + 0.782_771_766_2 * mp - 0.808_675_766 * sp;\n\n\treturn [l * 100, a * 100, b * 100];\n};\n\nconvert.oklab.oklch = function (oklab) {\n\treturn convert.lab.lch(oklab);\n};\n\nconvert.oklab.xyz = function (oklab) {\n\tconst ll = oklab[0] / 100;\n\tconst a = oklab[1] / 100;\n\tconst b = oklab[2] / 100;\n\n\tconst l = (0.999_999_998 * ll + 0.396_337_792 * a + 0.215_803_758 * b) ** 3;\n\tconst m = (1.000_000_008 * ll - 0.105_561_342 * a - 0.063_854_175 * b) ** 3;\n\tconst s = (1.000_000_055 * ll - 0.089_484_182 * a - 1.291_485_538 * b) ** 3;\n\n\tconst x = 1.227_013_851 * l - 0.557_799_98 * m + 0.281_256_149 * s;\n\tconst y = -0.040_580_178 * l + 1.112_256_87 * m - 0.071_676_679 * s;\n\tconst z = -0.076_381_285 * l - 0.421_481_978 * m + 1.586_163_22 * s;\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.oklab.rgb = function (oklab) {\n\tconst ll = oklab[0] / 100;\n\tconst aa = oklab[1] / 100;\n\tconst bb = oklab[2] / 100;\n\n\tconst l = (ll + 0.396_337_777_4 * aa + 0.215_803_757_3 * bb) ** 3;\n\tconst m = (ll - 0.105_561_345_8 * aa - 0.063_854_172_8 * bb) ** 3;\n\tconst s = (ll - 0.089_484_177_5 * aa - 1.291_485_548 * bb) ** 3;\n\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransform(4.076_741_662_1 * l - 3.307_711_591_3 * m + 0.230_969_929_2 * s);\n\tconst g = srgbNonlinearTransform(-1.268_438_004_6 * l + 2.609_757_401_1 * m - 0.341_319_396_5 * s);\n\tconst b = srgbNonlinearTransform(-0.004_196_086_3 * l - 0.703_418_614_7 * m + 1.707_614_701 * s);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.oklch.oklab = function (oklch) {\n\treturn convert.lch.lab(oklch);\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > LAB_FT ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > LAB_FT ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > LAB_FT ? z2 : (z - 16 / 116) / 7.787;\n\n\t// Illuminant D65 XYZ Tristrimulus Values\n\t// https://en.wikipedia.org/wiki/CIE_1931_color_space\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t/* eslint-disable no-bitwise */\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\t\t/* eslint-enable no-bitwise */\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\t// eslint-disable-next-line no-bitwise\n\tif (r >> 4 === g >> 4 && g >> 4 === b >> 4) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\targs = args[0];\n\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (Math.trunc(args > 50) + 1) * 0.5;\n\t/* eslint-disable no-bitwise */\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\targs = args[0];\n\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\t/* eslint-disable no-bitwise */\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f\\d]{6}|[a-f\\d]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = [...colorString].map(char => char + char).join('');\n\t}\n\n\tconst integer = Number.parseInt(colorString, 16);\n\t/* eslint-disable no-bitwise */\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet hue;\n\n\tconst grayscale = chroma < 1 ? min / (1 - chroma) : 0;\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else if (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else if (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2 * s * l) : (2 * s * (1 - l));\n\n\tlet f = 0;\n\tif (c < 1) {\n\t\tf = (l - 0.5 * c) / (1 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0: {\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 1: {\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 2: {\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\t}\n\n\t\tcase 3: {\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\t}\n\n\t\tcase 4: {\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\t}\n\n\t\tdefault: {\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255,\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1 - c);\n\tlet f = 0;\n\n\tif (v > 0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else if (l >= 0.5 && l < 1) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65_535) * 255, (apple[1] / 65_535) * 255, (apple[2] / 65_535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65_535, (rgb[1] / 255) * 65_535, (rgb[2] / 255) * 65_535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\t/* eslint-disable no-bitwise */\n\tconst value = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (value << 16) + (value << 8) + value;\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst value = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [value / 255 * 100];\n};\n","import conversions from './conversions.js';\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null,\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length > 0) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let {length} = adjacents, i = 0; i < length; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nfunction route(fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n}\n\nexport default route;\n","import conversions from './conversions.js';\nimport route from './route.js';\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let {length} = result, i = 0; i < length; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfor (const fromModel of models) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\tfor (const toModel of routeModels) {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t}\n}\n\nexport default convert;\n","import colorString from 'color-string';\nimport convert from 'color-convert';\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](...arguments_);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(...arguments_);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(...this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(...rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_colour_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...arguments_) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments_.length > 0) {\n\t\t\treturn new Color(arguments_, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...arguments_) {\n\t\tlet color = arguments_[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(arguments_, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] ||= [])[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nexport default Color;\n","const TagSymbol = Symbol('BrandTag');\nclass Brand {\n constructor(tag) {\n this[TagSymbol] = tag;\n }\n}\nexport const Unit = new Brand('unit');\nexport default Unit;\n//# sourceMappingURL=unit.js.map","export const isVoid = (value) => typeof value === 'undefined' || value === null;\nexport function curry1(op, item) {\n return item !== undefined ? op(item) : op;\n}\nfunction has(value, key) {\n return typeof value === 'object' && value !== null && key in value;\n}\nexport function safeToString(value) {\n if (has(value, 'toString') && typeof value['toString'] === 'function') {\n const fnResult = value.toString();\n return typeof fnResult === 'string' ? fnResult : JSON.stringify(value);\n }\n else {\n return JSON.stringify(value);\n }\n}\n//# sourceMappingURL=utils.js.map","import Unit from './unit.js';\nimport { curry1, isVoid, safeToString } from './-private/utils.js';\nimport * as Toolbelt from './toolbelt.js';\nexport const Variant = {\n Ok: 'Ok',\n Err: 'Err',\n};\nclass ResultImpl {\n constructor(repr) {\n this.repr = repr;\n }\n static ok(value) {\n return isVoid(value)\n ? new ResultImpl(['Ok', Unit])\n : new ResultImpl(['Ok', value]);\n }\n static err(error) {\n return isVoid(error)\n ? new ResultImpl(['Err', Unit])\n : new ResultImpl(['Err', error]);\n }\n get variant() {\n return this.repr[0];\n }\n get value() {\n if (this.repr[0] === Variant.Err) {\n throw new Error('Cannot get the value of Err');\n }\n return this.repr[1];\n }\n get error() {\n if (this.repr[0] === Variant.Ok) {\n throw new Error('Cannot get the error of Ok');\n }\n return this.repr[1];\n }\n get isOk() {\n return this.repr[0] === Variant.Ok;\n }\n get isErr() {\n return this.repr[0] === Variant.Err;\n }\n map(mapFn) {\n return map(mapFn, this);\n }\n mapOr(orU, mapFn) {\n return mapOr(orU, mapFn, this);\n }\n mapOrElse(orElseFn, mapFn) {\n return mapOrElse(orElseFn, mapFn, this);\n }\n match(matcher) {\n return match(matcher, this);\n }\n mapErr(mapErrFn) {\n return mapErr(mapErrFn, this);\n }\n or(orResult) {\n return or(orResult, this);\n }\n orElse(orElseFn) {\n return orElse(orElseFn, this);\n }\n and(mAnd) {\n return and(mAnd, this);\n }\n andThen(andThenFn) {\n return andThen(andThenFn, this);\n }\n unwrapOr(defaultValue) {\n return unwrapOr(defaultValue, this);\n }\n unwrapOrElse(elseFn) {\n return unwrapOrElse(elseFn, this);\n }\n toMaybe() {\n return Toolbelt.toMaybe(this);\n }\n toString() {\n return toString(this);\n }\n toJSON() {\n return toJSON(this);\n }\n equals(comparison) {\n return equals(comparison, this);\n }\n ap(r) {\n return ap(this, r);\n }\n}\nexport function tryOr(error, callback) {\n const op = (cb) => {\n try {\n return ok(cb());\n }\n catch {\n return err(error);\n }\n };\n return curry1(op, callback);\n}\nexport const ok = ResultImpl.ok;\nexport function isOk(result) {\n return result.isOk;\n}\nexport function isErr(result) {\n return result.isErr;\n}\nexport const err = ResultImpl.err;\nexport function tryOrElse(onError, callback) {\n const op = (cb) => {\n try {\n return ok(cb());\n }\n catch (e) {\n return err(onError(e));\n }\n };\n return curry1(op, callback);\n}\nexport function map(mapFn, result) {\n const op = (r) => (r.isOk ? ok(mapFn(r.value)) : r);\n return curry1(op, result);\n}\nexport function mapOr(orU, mapFn, result) {\n function fullOp(fn, r) {\n return r.isOk ? fn(r.value) : orU;\n }\n function partialOp(fn, curriedResult) {\n return curriedResult !== undefined\n ? fullOp(fn, curriedResult)\n : (extraCurriedResult) => fullOp(fn, extraCurriedResult);\n }\n return mapFn === undefined\n ? partialOp\n : result === undefined\n ? partialOp(mapFn)\n : partialOp(mapFn, result);\n}\nexport function mapOrElse(orElseFn, mapFn, result) {\n function fullOp(fn, r) {\n return r.isOk ? fn(r.value) : orElseFn(r.error);\n }\n function partialOp(fn, curriedResult) {\n return curriedResult !== undefined\n ? fullOp(fn, curriedResult)\n : (extraCurriedResult) => fullOp(fn, extraCurriedResult);\n }\n return mapFn === undefined\n ? partialOp\n : result === undefined\n ? partialOp(mapFn)\n : partialOp(mapFn, result);\n}\nexport function mapErr(mapErrFn, result) {\n const op = (r) => (r.isOk ? r : err(mapErrFn(r.error)));\n return curry1(op, result);\n}\nexport function and(andResult, result) {\n const op = (r) => (r.isOk ? andResult : err(r.error));\n return curry1(op, result);\n}\nexport function andThen(thenFn, result) {\n const op = (r) => (r.isOk ? thenFn(r.value) : err(r.error));\n return curry1(op, result);\n}\nexport function or(defaultResult, result) {\n const op = (r) => (r.isOk ? ok(r.value) : defaultResult);\n return curry1(op, result);\n}\nexport function orElse(elseFn, result) {\n const op = (r) => (r.isOk ? ok(r.value) : elseFn(r.error));\n return curry1(op, result);\n}\nexport function unwrapOr(defaultValue, result) {\n const op = (r) => (r.isOk ? r.value : defaultValue);\n return curry1(op, result);\n}\nexport function unwrapOrElse(orElseFn, result) {\n const op = (r) => (r.isOk ? r.value : orElseFn(r.error));\n return curry1(op, result);\n}\nexport function fromMaybe(errValue, maybe) {\n const op = (m) => (m.isJust ? ok(m.value) : err(errValue));\n return curry1(op, maybe);\n}\nexport const toString = (result) => {\n const body = result.match({ Ok: safeToString, Err: safeToString });\n return `${result.variant.toString()}(${body})`;\n};\nexport const toJSON = (result) => {\n return result.isOk\n ? { variant: result.variant, value: result.value }\n : { variant: result.variant, error: result.error };\n};\nexport function match(matcher, result) {\n const op = (r) => mapOrElse(matcher.Err, matcher.Ok, r);\n return curry1(op, result);\n}\nexport function equals(resultB, resultA) {\n return resultA !== undefined\n ? resultA.match({\n Err: () => resultB.isErr,\n Ok: (a) => resultB.isOk && resultB.value === a,\n })\n : (curriedResultA) => curriedResultA.match({\n Err: () => resultB.isErr,\n Ok: (a) => resultB.isOk && resultB.value === a,\n });\n}\nexport function ap(resultFn, result) {\n const op = (r) => r.andThen((val) => resultFn.map((fn) => fn(val)));\n return curry1(op, result);\n}\nexport function isInstance(item) {\n return item instanceof ResultImpl;\n}\nexport function transposeMaybe(maybe) {\n return Toolbelt.transposeMaybe(maybe);\n}\nexport function toMaybe(result) {\n return Toolbelt.toMaybe(result);\n}\nexport const Result = ResultImpl;\nexport default Result;\n//# sourceMappingURL=result.js.map","import Result from './result.js';\nimport Maybe from './maybe.js';\nimport { curry1 } from './-private/utils.js';\nexport function transposeResult(result) {\n return result.match({\n Ok: (maybe) => maybe.match({\n Just: (v) => Maybe.just(Result.ok(v)),\n Nothing: () => Maybe.nothing(),\n }),\n Err: (e) => Maybe.just(Result.err(e)),\n });\n}\nexport function toMaybe(result) {\n return result.isOk ? Maybe.just(result.value) : Maybe.nothing();\n}\nexport function fromMaybe(errValue, maybe) {\n const op = (m) => (m.isJust ? Result.ok(m.value) : Result.err(errValue));\n return curry1(op, maybe);\n}\nexport function transposeMaybe(maybe) {\n return maybe.match({\n Just: (result) => result.match({\n Ok: (v) => Result.ok(Maybe.just(v)),\n Err: (e) => Result.err(e),\n }),\n Nothing: () => Result.ok(Maybe.nothing()),\n });\n}\nexport function toOkOrErr(error, maybe) {\n const op = (m) => (m.isJust ? Result.ok(m.value) : Result.err(error));\n return maybe !== undefined ? op(maybe) : op;\n}\nexport function toOkOrElseErr(elseFn, maybe) {\n const op = (m) => (m.isJust ? Result.ok(m.value) : Result.err(elseFn()));\n return curry1(op, maybe);\n}\nexport function fromResult(result) {\n return result.isOk ? Maybe.just(result.value) : Maybe.nothing();\n}\n//# sourceMappingURL=toolbelt.js.map","import Result from './result.js';\nimport { curry1, isVoid, safeToString } from './-private/utils.js';\nimport * as Toolbelt from './toolbelt.js';\nexport const Variant = {\n Just: 'Just',\n Nothing: 'Nothing',\n};\nlet NOTHING;\nclass MaybeImpl {\n constructor(value) {\n if (isVoid(value)) {\n this.repr = [Variant.Nothing];\n if (!NOTHING) {\n NOTHING = this;\n }\n return NOTHING;\n }\n else {\n this.repr = [Variant.Just, value];\n }\n }\n static of(value) {\n return new MaybeImpl(value);\n }\n static just(value) {\n if (isVoid(value)) {\n throw new Error(`attempted to call \"just\" with ${value}`);\n }\n return new MaybeImpl(value);\n }\n static nothing(_) {\n return new MaybeImpl();\n }\n get variant() {\n return this.repr[0];\n }\n get value() {\n if (this.repr[0] === Variant.Nothing) {\n throw new Error('Cannot get the value of `Nothing`');\n }\n return this.repr[1];\n }\n get isJust() {\n return this.repr[0] === Variant.Just;\n }\n get isNothing() {\n return this.repr[0] === Variant.Nothing;\n }\n map(mapFn) {\n return map(mapFn, this);\n }\n mapOr(orU, mapFn) {\n return mapOr(orU, mapFn, this);\n }\n mapOrElse(orElseFn, mapFn) {\n return mapOrElse(orElseFn, mapFn, this);\n }\n match(matcher) {\n return match(matcher, this);\n }\n or(mOr) {\n return or(mOr, this);\n }\n orElse(orElseFn) {\n return orElse(orElseFn, this);\n }\n and(mAnd) {\n return and(mAnd, this);\n }\n andThen(andThenFn) {\n return andThen(andThenFn, this);\n }\n unwrapOr(defaultValue) {\n return unwrapOr(defaultValue, this);\n }\n unwrapOrElse(elseFn) {\n return unwrapOrElse(elseFn, this);\n }\n toOkOrErr(error) {\n return Toolbelt.toOkOrErr(error, this);\n }\n toOkOrElseErr(elseFn) {\n return Toolbelt.toOkOrElseErr(elseFn, this);\n }\n toString() {\n return toString(this);\n }\n toJSON() {\n return toJSON(this);\n }\n equals(comparison) {\n return equals(comparison, this);\n }\n ap(val) {\n return ap(this, val);\n }\n get(key) {\n return get(key, this);\n }\n}\nexport const just = MaybeImpl.just;\nexport function isJust(maybe) {\n return maybe.isJust;\n}\nexport function isNothing(maybe) {\n return maybe.isNothing;\n}\nexport const nothing = MaybeImpl.nothing;\nexport const of = MaybeImpl.of;\nexport function map(mapFn, maybe) {\n const op = (m) => (m.isJust ? just(mapFn(m.value)) : nothing());\n return curry1(op, maybe);\n}\nexport function mapOr(orU, mapFn, maybe) {\n function fullOp(fn, m) {\n return m.isJust ? fn(m.value) : orU;\n }\n function partialOp(fn, curriedMaybe) {\n return curriedMaybe !== undefined\n ? fullOp(fn, curriedMaybe)\n : (extraCurriedMaybe) => fullOp(fn, extraCurriedMaybe);\n }\n return mapFn === undefined\n ? partialOp\n : maybe === undefined\n ? partialOp(mapFn)\n : partialOp(mapFn, maybe);\n}\nexport function mapOrElse(orElseFn, mapFn, maybe) {\n function fullOp(fn, m) {\n return m.isJust ? fn(m.value) : orElseFn();\n }\n function partialOp(fn, curriedMaybe) {\n return curriedMaybe !== undefined\n ? fullOp(fn, curriedMaybe)\n : (extraCurriedMaybe) => fullOp(fn, extraCurriedMaybe);\n }\n if (mapFn === undefined) {\n return partialOp;\n }\n else if (maybe === undefined) {\n return partialOp(mapFn);\n }\n else {\n return partialOp(mapFn, maybe);\n }\n}\nexport function and(andMaybe, maybe) {\n const op = (m) => (m.isJust ? andMaybe : nothing());\n return curry1(op, maybe);\n}\nexport function andThen(thenFn, maybe) {\n const op = (m) => (m.isJust ? thenFn(m.value) : nothing());\n return maybe !== undefined ? op(maybe) : op;\n}\nexport function or(defaultMaybe, maybe) {\n const op = (m) => (m.isJust ? m : defaultMaybe);\n return maybe !== undefined ? op(maybe) : op;\n}\nexport function orElse(elseFn, maybe) {\n const op = (m) => (m.isJust ? m : elseFn());\n return curry1(op, maybe);\n}\nexport function unwrapOr(defaultValue, maybe) {\n const op = (m) => (m.isJust ? m.value : defaultValue);\n return curry1(op, maybe);\n}\nexport function unwrapOrElse(orElseFn, maybe) {\n const op = (m) => (m.isJust ? m.value : orElseFn());\n return curry1(op, maybe);\n}\nexport function fromResult(result) {\n return Toolbelt.fromResult(result);\n}\nexport function toString(maybe) {\n const body = maybe.map((value) => `(${safeToString(value)})`).unwrapOr('');\n return `${maybe.variant}${body}`;\n}\nexport function toJSON(maybe) {\n return maybe.isJust\n ? {\n variant: maybe.variant,\n value: isInstance(maybe.value) ? maybe.value.toJSON() : maybe.value,\n }\n : { variant: maybe.variant };\n}\nexport function match(matcher, maybe) {\n const op = (curriedMaybe) => mapOrElse(matcher.Nothing, matcher.Just, curriedMaybe);\n return curry1(op, maybe);\n}\nexport function equals(mb, ma) {\n const op = (maybeA) => maybeA.match({\n Just: (aVal) => mb.isJust && mb.value === aVal,\n Nothing: () => mb.isNothing,\n });\n return curry1(op, ma);\n}\nexport function ap(maybeFn, maybe) {\n const op = (m) => m.andThen((val) => maybeFn.map((fn) => fn(val)));\n return curry1(op, maybe);\n}\nexport function isInstance(item) {\n return item instanceof Maybe;\n}\nexport function find(predicate, array) {\n const op = (a) => Maybe.of(a.find(predicate));\n return curry1(op, array);\n}\nexport function first(array) {\n return Maybe.of(array[0]);\n}\nexport const head = first;\nexport function last(array) {\n return Maybe.of(array[array.length - 1]);\n}\nexport function transposeArray(maybes) {\n return maybes.reduce((acc, m) => acc.andThen((ms) => m.map((m) => [...ms, m])), just([]));\n}\nexport const all = transposeArray;\nexport const tuple = transposeArray;\nexport function transposeResult(result) {\n return Toolbelt.transposeResult(result);\n}\nexport function toOkOrErr(error, maybe) {\n const op = (m) => (m.isJust ? Result.ok(m.value) : Result.err(error));\n return maybe !== undefined ? op(maybe) : op;\n}\nexport function toOkOrElseErr(elseFn, maybe) {\n const op = (m) => (m.isJust ? Result.ok(m.value) : Result.err(elseFn()));\n return curry1(op, maybe);\n}\nexport function property(key, obj) {\n const op = (a) => Maybe.of(a[key]);\n return curry1(op, obj);\n}\nexport function get(key, maybeObj) {\n return curry1(andThen(property(key)), maybeObj);\n}\nexport function wrapReturn(fn) {\n return (...args) => Maybe.of(fn(...args));\n}\nexport const Maybe = MaybeImpl;\nexport default Maybe;\n//# sourceMappingURL=maybe.js.map",null,null,null,null,null,null,null,null,null,"export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : 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\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n",null,null,null,null,null,null],"names":["colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","key","Object","freeze","cssKeywords","reverseNames","create","name","colorNames","hasOwn","cs","to","get","clamp","number_","min","max","Math","hexDouble","string_","round","toString","toUpperCase","length","string","value","model","slice","toLowerCase","hsl","hwb","rgb","match","i","hexAlpha","i2","Number","parseInt","parseFloat","alpha","isNaN","hex","rgba","percent","r","g","b","hsla","hwba","a","keyword","reverseKeywords","keys","convert","channels","labels","hsv","cmyk","xyz","lab","oklab","lch","oklch","ansi16","ansi256","hcg","apple","LAB_FT","srgbNonlinearTransform","c","cc","srgbNonlinearTransformInv","Error","defineProperty","comparativeDistance","x","y","deriveBFS","fromModel","graph","models","conversions","distance","parent","buildGraph","queue","current","pop","adjacents","adjacent","node","unshift","link","from","args","wrapConversion","toModel","path","fn","cur","conversion","route","delta","h","s","l","rdif","gdif","bdif","v","diff","diffc","w","lp","cbrt","mp","sp","k","reversed","currentClosestKeyword","currentClosestDistance","POSITIVE_INFINITY","z","t3","t2","t1","smin","lmin","hi","floor","f","p","q","t","vmin","sl","wh","bl","ratio","n","m","ll","aa","bb","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","saturation","ansi","color","mult","trunc","rem","colorString","map","char","join","integer","chroma","hue","pure","mg","wrapRaw","wrappedFn","arg0","wrapRounded","result","routes","routeModels","raw","skippedModels","hashedModelKeys","sort","limiters","Color","object","this","valpha","newArray","Array","prototype","call","zeroArray","splice","indexOf","hashedKeys","JSON","stringify","push","limit","toJSON","places","self","arguments_","percentString","array","unitArray","unitObject","roundToPlace","undefined","getset","maxfn","saturationl","lightness","saturationv","wblack","hexa","rgbArray","alphaHex","rgbNumber","luminosity","lum","element","entries","chan","contrast","color2","lum1","lum2","level","contrastRatio","isDark","isLight","negate","lighten","darken","saturate","desaturate","whiten","blacken","grayscale","fade","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","includes","isArray","number","toFixed","roundTo","channel","modifier","TagSymbol","Symbol","Unit","constructor","tag","isVoid","curry1","op","item","safeToString","has","fnResult","Variant","ResultImpl","repr","ok","err","error","variant","isOk","isErr","mapFn","mapOr","orU","fullOp","partialOp","curriedResult","extraCurriedResult","mapOrElse","orElseFn","matcher","Err","Ok","mapErr","mapErrFn","or","orResult","defaultResult","orElse","elseFn","and","mAnd","andResult","andThen","andThenFn","thenFn","unwrapOr","defaultValue","unwrapOrElse","toMaybe","Maybe","just","nothing","equals","comparison","resultB","resultA","curriedResultA","ap","resultFn","val","body","Result","NOTHING","MaybeImpl","of","_","isJust","isNothing","maybe","curriedMaybe","extraCurriedMaybe","Nothing","Just","mOr","defaultMaybe","andMaybe","toOkOrErr","Toolbelt.toOkOrErr","toOkOrElseErr","Toolbelt.toOkOrElseErr","isInstance","mb","maybeA","aVal","maybeFn","maybeObj","obj","property","AllSpyNames","SpyNameSchema","preprocess","enum","default","units","UnitsSchema","u","FlamebearerSchema","names","levels","numTicks","maxSelf","MetadataSchema","appName","optional","startTime","endTime","query","maxNodes","format","sampleRate","spyName","version","flamebearer","metadata","leftTicks","rightTicks","singleFF","jStep","jName","getBarOffset","j","getBarTotal","getBarTotalDiff","getBarSelf","getBarSelfDiff","getBarName","doubleFF","getBarTotalLeft","getBarTotalRght","getBarSelfLeft","getBarSelfRght","createFF","viewType","ReferencesSchema","refType","traceID","spanID","TagsSchema","type","union","boolean","TraceSpanSchema","flags","operationName","references","duration","tags","logs","timestamp","fields","processID","warnings","any","ProcessSchema","serviceName","spans","processes","record","GroupSchema","watermark","samples","durationDelta","PX_PER_LEVEL","BAR_HEIGHT","localizeDurationString","input","isZh","parsed","unit","hasLessThan","sign","String","trim","replace","startsWith","numStr","isFinite","parseNumericWithUnit","unitZh","ratioToPercent","DurationFormatter","maxDur","enableSubsecondPrecision","divider","suffix","durations","console","warn","withUnits","nStr","formatPrecise","NanosecondsFormatter","multiplier","ObjectsFormatter","maxObjects","objects","BytesFormatter","maxBytes","bytes","fitToCanvasRect","mode","charSize","rectWidth","fullText","shortText","text","marginLeft","shortTextWidth","ascending","NaN","descending","bisector","compare1","compare2","left","lo","mid","d","zero","center","right","bisectRight","e10","e5","e2","tickSpec","start","stop","count","step","power","log10","pow","factor","i1","inc","tickIncrement","initRange","domain","range","arguments","define","factory","extend","definition","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color_formatHex","formatHex","color_formatRgb","formatRgb","exec","rgbn","Rgb","hasOwnProperty","opacity","o","rgb_formatHex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","copy","assign","displayable","formatHex8","formatHsl","constant","gamma","nogamma","exponential","linear","rgbGamma","end","colorRgb","numberArray","genericArray","nb","na","date","Date","setTime","interpolateNumber","reA","reB","source","am","bm","bs","bi","lastIndex","index","one","interpolate","ArrayBuffer","isView","DataView","valueOf","interpolateRound","identity","normalize","bimap","d0","d1","r0","r1","polymap","reverse","bisect","transformer","transform","untransform","unknown","piecewise","output","interpolateValue","rescale","scale","invert","rangeRound","formatDecimalParts","toExponential","coefficient","exponent","abs","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","fill","align","symbol","width","comma","precision","formatRounded","formatTypes","toLocaleString","e","toPrecision","X","locale","formatPrefix","prefixes","formatLocale","grouping","thousands","group","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","minus","nan","newFormat","prefix","test","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","i0","formatTrim","charCodeAt","Infinity","padding","tickFormat","tickStep","precisionPrefix","precisionRound","precisionFixed","linearish","ticks","nice","prestep","maxIter","ceil","apply","diffPercent","leftPercent","rightPercent","colorGreyscale","getPackageNameFromStackTrace","stackTrace","regexp","spyToRegex","fullStackGroups","groups","colorBasedOnPackageName","palette","colorIndex","seed","remainder","h1","h1b","c1","c2","k1","murmurhash3_32_gc","baseClr","NewDiffColor","props","goodColor","neutralColor","badColor","scaleLinear","formattedValueCacheByCanvas","WeakMap","highlightCacheByNames","colorCacheByNames","barIndexByLevels","defaultCanvasMessages","collapsedLevelsSingular","collapsedLevelsPlural","RenderCanvas","renderStart","performance","now","renderRects","renderText","renderMode","_a","timeBudgetMs","canvas","fitMode","tickToX","pxPerTick","rangeMin","rangeMax","focusedNode","zoom","messages","graphWidth","skipCanvasResize","clientWidth","getCanvasWidth","ff","ctx","getContext","selectedLevel","formatter","getFormatter","isFocused","topLevel","focusOffset","highlightModeOn","highlightQuery","canvasHeight","height","dpr","devicePixelRatio","skipDprScale","textBaseline","font","characterSize","measureText","formattedValueCache","cached","next","Map","set","getFormattedValueCache","highlightByNameIndex","cachedByQuery","queryLower","matches","Uint8Array","nextMap","getHighlightByNameIndex","colorByNameIndex","cachedByPalette","packageName","getColorByNameIndexCached","diffColorFn","isHighlightedAt","nameIndex","initialStartI","_b","startI","initialStartJ","_c","startJ","_d","levelStart","beginPath","rect","fillStyle","shortName","levelCount","getCollapsedText","fitCalc","sh","save","clip","namePosX","fillText","restore","_e","maxLevels","levelEnd","_f","renderStartI","_g","renderStartJ","_h","getColorForBar","collapsed","isHighlighted","common","cfg","getColorCommon","getColorSingle","leftRatio","rightRatio","getRatios","colorBasedOnDiffPercent","getColorDouble","barIndex","list","getBarIndex","highlightNameIndices","entry","relativeLevel","numBarTicks","sw","done","nextI","nextJ","getFunctionName","getLongName","cachedValue","formatted","Flamegraph","cachedRange","cachedPxPerTick","getRange","xyToBarPosition","xy","xyToBarIndex","posX","xyToBarData","offset","total","barTotal","totalLeft","totalRight","totalDiff","isWithinBounds","render","options","updateCachedMetrics","highlightQueryOverride","calculatedZoomRange","calculatedFocusRange","fRange","zRange","binarySearchLevel","x0","x1","computedY","compensatedFocusedY","compensation","parseXY","xyToBar","xyWithinBounds","state","rectCanvas","textCanvas","renderState","token","running","firstChunk","payload","flamegraph","runChunk","kind","buildPalette","setTimeout","onmessage","event","msg","data","renderFlamegraph"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,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]}