{"version":3,"sources":["webpack:////build/source/node_modules/@gitlab/ui/dist/utils/number_utils.js","webpack:////build/source/node_modules/@gitlab/ui/dist/tokens/build/js/tokens.js","webpack:////build/source/node_modules/ieee754/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/charts/chart/chart.js","webpack:////build/source/node_modules/@gitlab/ui/dist/utils/datetime_utility.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/shared_components/charts/tooltip_default_format.js","webpack:////build/source/node_modules/@gitlab/ui/dist/utils/charts/utils.js","webpack:////build/source/node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/utils/charts/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/charts/legend/legend.js","webpack:////build/source/node_modules/isarray/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/utils/svgs/svg_paths.js","webpack:////build/source/node_modules/@gitlab/ui/dist/utils/charts/theme.js","webpack:////build/source/node_modules/@gitlab/ui/dist/utils/charts/config.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/charts/area/area.js","webpack:////build/source/node_modules/lodash/castArray.js","webpack:////build/source/node_modules/base64-js/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/charts/tooltip/tooltip.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/charts/series_label/series_label.js"],"names":["addition","a","b","sum","_len","arguments","length","numbers","Array","_key","reduce","average","modulo","n","divisor","result","engineeringNotation","value","precision","undefined","invalidValues","NaN","Infinity","num","Number","includes","toString","allYourBase","0","3","6","9","12","15","18","21","24","exponentialNotation","toExponential","power","split","map","scaledPower","Math","floor","scaledMantissa","toFixed","replace","_","fractionalDigits","formatNumberToLocale","options","locales","isNaN","Intl","NumberFormat","format","toFloat","defaultValue","float","parseFloat","DATA_VIZ_GREEN_50","DATA_VIZ_GREEN_100","DATA_VIZ_GREEN_200","DATA_VIZ_GREEN_300","DATA_VIZ_GREEN_400","DATA_VIZ_GREEN_500","DATA_VIZ_GREEN_600","DATA_VIZ_GREEN_700","DATA_VIZ_GREEN_800","DATA_VIZ_GREEN_900","DATA_VIZ_GREEN_950","DATA_VIZ_AQUA_50","DATA_VIZ_AQUA_100","DATA_VIZ_AQUA_200","DATA_VIZ_AQUA_300","DATA_VIZ_AQUA_400","DATA_VIZ_AQUA_500","DATA_VIZ_AQUA_600","DATA_VIZ_AQUA_700","DATA_VIZ_AQUA_800","DATA_VIZ_AQUA_900","DATA_VIZ_AQUA_950","DATA_VIZ_BLUE_50","DATA_VIZ_BLUE_100","DATA_VIZ_BLUE_200","DATA_VIZ_BLUE_300","DATA_VIZ_BLUE_400","DATA_VIZ_BLUE_500","DATA_VIZ_BLUE_600","DATA_VIZ_BLUE_700","DATA_VIZ_BLUE_800","DATA_VIZ_BLUE_900","DATA_VIZ_BLUE_950","DATA_VIZ_MAGENTA_50","DATA_VIZ_MAGENTA_100","DATA_VIZ_MAGENTA_200","DATA_VIZ_MAGENTA_300","DATA_VIZ_MAGENTA_400","DATA_VIZ_MAGENTA_500","DATA_VIZ_MAGENTA_600","DATA_VIZ_MAGENTA_700","DATA_VIZ_MAGENTA_800","DATA_VIZ_MAGENTA_900","DATA_VIZ_MAGENTA_950","DATA_VIZ_ORANGE_50","DATA_VIZ_ORANGE_100","DATA_VIZ_ORANGE_200","DATA_VIZ_ORANGE_300","DATA_VIZ_ORANGE_400","DATA_VIZ_ORANGE_500","DATA_VIZ_ORANGE_600","DATA_VIZ_ORANGE_700","DATA_VIZ_ORANGE_800","DATA_VIZ_ORANGE_900","DATA_VIZ_ORANGE_950","WHITE","BLUE_500","GRAY_50","GRAY_100","GRAY_200","GRAY_300","GRAY_500","GRAY_600","GRAY_900","RED_500","exports","read","buffer","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","i","d","s","pow","write","c","rt","abs","log","LN2","sizeValidator","size","isFinite","__vue_script__","name","directives","resizeObserver","props","type","Object","required","disableTheme","Boolean","default","width","String","validator","height","groupId","renderer","responsive","chart","debouncedHandleResize","this","handleResize","computed","_options$toolbox","toolbox","show","increaseBy","_options$grid","grid","top","increaseChartGridTop","watch","draw","setChartSize","$nextTick","$refs","__v_skip","group","on","handleClick","$emit","off","methods","setOption","normalizedOptions","resize","params","__vue_component__","render","_h","$createElement","_self","_c","rawName","expression","arg","ref","staticRenderFns","newDate","date","Date","getTime","getDayDifference","date1","UTC","getFullYear","getMonth","getDate","date2","getDateInPast","daysInPast","setDate","getDateInFuture","daysInFuture","areDatesEqual","components","SeriesLabel","tooltipContent","_vm","_l","label","key","staticClass","attrs","color","_v","_s","_t","seriesHasAnnotations","series","filter","seriesData","_seriesData$ANNOTATIO","_seriesData$ANNOTATIO2","data","isDataPointAnnotation","componentType","base64","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","prototype","encodingOrOffset","Error","allocUnsafe","from","TypeError","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","slice","fromString","obj","isBuffer","len","checked","copy","val","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexOf","call","lastIndexOf","arr","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","j","hexWrite","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","push","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","apply","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","Symbol","species","defineProperty","configurable","fill","allocUnsafeSlow","_isBuffer","compare","x","y","concat","list","pos","swap16","swap32","swap64","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","leadSurrogate","toByteArray","trim","stringtrim","base64clean","src","dst","ANNOTATIONS_SERIES_NAME","ANNOTATIONS_COMPONENT_TYPE","TOOLTIP_LEFT_OFFSET","TOOLTIP_TOP_OFFSET","LEGEND_LAYOUT_INLINE","LEGEND_LAYOUT_TABLE","LEGEND_AVERAGE_TEXT","LEGEND_CURRENT_TEXT","LEGEND_MIN_TEXT","LEGEND_MAX_TEXT","arrowSymbol","CHART_TYPE_BAR","CHART_TYPE_LINE","HEIGHT_AUTO_CLASSES","HEIGHT_AUTO_HORIZONTAL_LAYOUT_CLASSES","GlChartSeriesLabel","GlTruncate","is","getDom","seriesInfo","every","textStyle","averageText","currentText","minText","maxText","layout","disabledSeries","lastActiveSeriesLabel","shouldApplyFadeClass","fontFamily","fontSize","suppressLastActiveSeriesLabelToggle","applyFadeClass","_seriesData$filter","sanitized","sanitizeSeriesData","seriesNameIsLong","seriesName","_ref","disabled","hasOneSeriesElement","isToggleDisabled","dispatchAction","_ref2","selected","selectedSeriesLabels","entries","_ref3","isSelected","lastActiveSeriesLabelName","isDisabled","inlineLegendEl","scrollHeight","clientHeight","legendLayoutTypes","$options","class","style","$event","handleMouseEnter","handleMouseLeave","getColor","seriesAverage","seriesMax","_e","seriesMin","seriesLast","module","scrollHandleSvgPath","marqueeSelectionSvgPath","redoSvgPath","clearAllSvgPath","downloadSvgPath","themeName","heatmapHues","colorPaletteDefault","colorFromDefaultPalette","index","axes","axisLabel","margin","hideOverlap","axisLine","axisPointer","lineStyle","axisTick","alignWithLabel","nameGap","nameTextStyle","fontWeight","splitLine","splitArea","areaStyle","isLineChartWithoutArea","some","createTheme","backgroundColor","markLine","silent","symbol","markArea","itemStyle","dataZoom","borderColor","filterMode","brushSelect","dataBackground","opacity","fillerColor","handleIcon","handleStyle","handleSize","labelFormatter","left","itemSize","emphasis","iconStyle","borderWidth","textBackgroundColor","textBorderRadius","textPadding","itemGap","feature","title","zoom","back","icon","restore","saveAsImage","markPoint","normal","line","symbolSize","showSymbol","smooth","categoryAxis","valueAxis","logAxis","timeAxis","defaultAreaOpacity","defaultFontSize","defaultHeight","defaultWidth","validRenderers","toolboxHeight","nameLocation","xAxis","boundaryGap","yAxis","formatter","bottom","right","defaultChartOptions","gridWithSecondaryYAxis","annotationsYAxisCoords","GREATER_THAN","LESS_THAN","mergeSeriesToOptions","optSeries","mergeAnnotationAxisToOptions","hasAnnotations","dataZoomAdjustments","disabledBreakpoints","getBreakpointSize","minSpan","getDataZoomConfig","generateMarkArea","axis","generateMarkLines","getThresholdConfig","thresholds","acc","alert","threshold","operator","areas","NEGATIVE_INFINITY","lines","zlevel","getAnnotationsConfig","annotations","points","annotation","tooltipData","generateMarkPoints","parseAnnotations","symbolOffset","generateAnnotationSeries","yAxisIndex","generateBarSeries","_ref4","stack","stacked","barMaxWidth","generateLineSeries","_ref5","getTooltipTitle","titleAxisName","_ref6","getTooltipContent","valueAxisName","yValue","_ref7","Chart","ChartLegend","ChartTooltip","inheritAttrs","option","includeLegendAvgMax","formatAnnotationsTooltipText","Function","formatTooltipText","legendAverageText","legendMaxText","legendMinText","legendCurrentText","legendLayout","legendSeriesInfo","showAnnotationsTooltip","annotationsTooltipTitle","annotationsTooltipContent","annotationsTooltipPosition","dataSeries","defaultColor","annotationSeries","defaultAreaChartOptions","legend","mergedOptions","getOption","legendStyle","paddingLeft","compiledOptions","hideAnnotationsTooltip","onChartMouseOver","_params$data$tooltipD","content","onChartDataPointMouseOut","onChartDataPointMouseOver","event","toolTipFormatter","defaultAnnotationTooltipText","zrX","zrY","_obj","autoHeight","_g","_b","onCreated","$attrs","$listeners","scopedSlots","_u","fn","proxy","$scopedSlots","scope","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","len2","encodeChunk","lookup","output","GlPopover","TooltipDefaultFormat","id","placement","xOffset","yOffset","useDefaultTooltipFormatter","pointerPosition","isPointerInChart","debouncedMouseHandler","mouseHandler","getAttribute","marginTop","marginLeft","getZr","_options$xAxis","_options$xAxis$","_options$yAxis","_options$yAxis$","round","containPixel","assign","fixedPosition","targetStyle","targetId","shouldShowPopover","makePathRect","startX","startY","labelLineHeight","svgWidth","svgHeight","dashWidth","ceil","transform","formatPixelDimension","svgYTranslationValue","getComputedStyle","lineHeight","dimension","pathContent"],"mappings":"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","file":"commons-pages.admin.usage_trends-pages.groups.analytics.ci_cd_analytics-pages.groups.analytics.cycle-9d1a436f.e2ae2cc9.chunk.js","sourcesContent":["/**\n * Adds two numbers together\n * @param {Number} a\n * @param {Number} b\n */\nconst addition = (a, b) => a + b;\n\n/**\n * Returns the sum of all arguments\n * @param  {...Number} numbers\n */\nconst sum = function () {\n  for (var _len = arguments.length, numbers = new Array(_len), _key = 0; _key < _len; _key++) {\n    numbers[_key] = arguments[_key];\n  }\n  return numbers.reduce(addition);\n}; // eslint-disable-line unicorn/no-array-callback-reference\n\n/**\n * Returns the average of all arguments\n * @param  {...Number} numbers\n */\nconst average = function () {\n  return sum(...arguments) / arguments.length;\n};\n\n/**\n * Returns the modulo of n for a divisor.\n *\n * Maps the integer n into the range [0, divisor) when the divisor is positive,\n * and (divisor, 0] when the divisor is negative.\n *\n * This is useful when indexing into an array, to ensure you always stay within\n * the array bounds.\n *\n * See https://2ality.com/2019/08/remainder-vs-modulo.html.\n *\n * @param {number} n The number to mod.\n * @param {number} divisor The divisor (e.g., the length of an array).\n * @returns {number}\n */\nfunction modulo(n, divisor) {\n  const result = (n % divisor + divisor) % divisor;\n  // Never return -0.\n  return result === 0 ? 0 : result;\n}\n\n/**\n * Convert number to engineering format, using SI suffix\n * @param {Number|String} value - Number or Number-convertible String\n * @param {Number} precision\n * @return {String} number, possibly with a suffix\n */\nconst engineeringNotation = function (value) {\n  let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n  const invalidValues = [NaN, Infinity, -Infinity];\n  const num = Number(value);\n  if (invalidValues.includes(num) || invalidValues.includes(Number(precision))) {\n    return num.toString();\n  }\n  const allYourBase = {\n    '-24': 'y',\n    '-21': 'z',\n    '-18': 'a',\n    '-15': 'f',\n    '-12': 'p',\n    '-9': 'n',\n    '-6': 'ฮผ',\n    '-3': 'm',\n    0: '',\n    3: 'k',\n    6: 'M',\n    9: 'G',\n    12: 'T',\n    15: 'P',\n    18: 'E',\n    21: 'Z',\n    24: 'Y'\n  };\n  const exponentialNotation = num.toExponential(precision);\n  const power = exponentialNotation.split('e').map(Number)[1] || 0;\n  if (power < -24 || power > 24) {\n    return exponentialNotation;\n  }\n  const scaledPower = 3 * Math.floor(power / 3);\n  const scaledMantissa = (exponentialNotation / 10 ** scaledPower\n  // strip trailing decimals from floating point rounding errors\n  ).toFixed(precision)\n  // strip trailing 0s after a decimal point\n  .replace(/\\.([1-9]*)0+$/, (_, fractionalDigits) => {\n    if (fractionalDigits) {\n      return `.${fractionalDigits}`;\n    }\n    return '';\n  });\n  return `${scaledMantissa}${allYourBase[scaledPower]}`;\n};\n\n/**\n * Formats a number as a locale-based string using `Intl.NumberFormat`.\n *\n * 2333 -> 2,333\n * 232324 -> 232,324\n *\n * @param {Number|string} value - number to be converted\n * @param {{}?} options - options to be passed to\n * `Intl.NumberFormat` such as `unit` and `style`.\n * @param {String|String[]} locales - If set, forces a different\n * language code from the one currently in the document.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat\n *\n * @returns {String}\n */\nconst formatNumberToLocale = function (value) {\n  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  let locales = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n  if (Number.isNaN(Number(value))) {\n    return value;\n  }\n  return new Intl.NumberFormat(locales, options).format(value);\n};\n\n// Converts a value (string, number, etc.) to a number\n// Taken from bootstrap-vue\nconst toFloat = function (value) {\n  let defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n  const float = parseFloat(value);\n  return Number.isNaN(float) ? defaultValue : float;\n};\n\nexport { addition, average, engineeringNotation, formatNumberToLocale, modulo, sum, toFloat };\n","/**\n * Do not edit directly, this file was auto-generated.\n */\n\nconst GL_ACTION_DISABLED_FOREGROUND_COLOR = '#89888d';\nconst GL_ACTION_DISABLED_BACKGROUND_COLOR = '#ececef';\nconst GL_ACTION_DISABLED_BORDER_COLOR = '#dcdcde';\nconst GL_ACTION_SELECTED_FOREGROUND_COLOR_DEFAULT = '#fff';\nconst GL_ACTION_SELECTED_FOREGROUND_COLOR_HOVER = '#fff';\nconst GL_ACTION_SELECTED_FOREGROUND_COLOR_FOCUS = '#fff';\nconst GL_ACTION_SELECTED_FOREGROUND_COLOR_ACTIVE = '#fff';\nconst GL_ACTION_SELECTED_BACKGROUND_COLOR_DEFAULT = '#1f75cb';\nconst GL_ACTION_SELECTED_BACKGROUND_COLOR_HOVER = '#0b5cad';\nconst GL_ACTION_SELECTED_BACKGROUND_COLOR_FOCUS = '#0b5cad';\nconst GL_ACTION_SELECTED_BACKGROUND_COLOR_ACTIVE = '#064787';\nconst GL_ACTION_SELECTED_BORDER_COLOR_DEFAULT = '#1f75cb';\nconst GL_ACTION_SELECTED_BORDER_COLOR_HOVER = '#0b5cad';\nconst GL_ACTION_SELECTED_BORDER_COLOR_FOCUS = '#0b5cad';\nconst GL_ACTION_SELECTED_BORDER_COLOR_ACTIVE = '#064787';\nconst GL_ACTION_NEUTRAL_FOREGROUND_COLOR_DEFAULT = '#28272d';\nconst GL_ACTION_NEUTRAL_FOREGROUND_COLOR_HOVER = '#28272d';\nconst GL_ACTION_NEUTRAL_FOREGROUND_COLOR_FOCUS = '#28272d';\nconst GL_ACTION_NEUTRAL_FOREGROUND_COLOR_ACTIVE = '#28272d';\nconst GL_ACTION_NEUTRAL_BACKGROUND_COLOR_DEFAULT = 'rgba(164, 163, 168, 0.0)';\nconst GL_ACTION_NEUTRAL_BACKGROUND_COLOR_HOVER = 'rgba(164, 163, 168, 0.16)';\nconst GL_ACTION_NEUTRAL_BACKGROUND_COLOR_FOCUS = 'rgba(164, 163, 168, 0.16)';\nconst GL_ACTION_NEUTRAL_BACKGROUND_COLOR_ACTIVE = 'rgba(83, 81, 88, 0.24)';\nconst GL_ACTION_NEUTRAL_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_ACTION_NEUTRAL_BORDER_COLOR_HOVER = 'transparent';\nconst GL_ACTION_NEUTRAL_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_ACTION_NEUTRAL_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_ACTION_CONFIRM_FOREGROUND_COLOR_DEFAULT = '#1f75cb';\nconst GL_ACTION_CONFIRM_FOREGROUND_COLOR_HOVER = '#0b5cad';\nconst GL_ACTION_CONFIRM_FOREGROUND_COLOR_FOCUS = '#0b5cad';\nconst GL_ACTION_CONFIRM_FOREGROUND_COLOR_ACTIVE = '#033464';\nconst GL_ACTION_CONFIRM_BACKGROUND_COLOR_DEFAULT = 'rgba(99, 166, 233, 0.0)';\nconst GL_ACTION_CONFIRM_BACKGROUND_COLOR_HOVER = 'rgba(99, 166, 233, 0.16)';\nconst GL_ACTION_CONFIRM_BACKGROUND_COLOR_FOCUS = 'rgba(99, 166, 233, 0.16)';\nconst GL_ACTION_CONFIRM_BACKGROUND_COLOR_ACTIVE = 'rgba(11, 92, 173, 0.24)';\nconst GL_ACTION_CONFIRM_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_ACTION_CONFIRM_BORDER_COLOR_HOVER = 'transparent';\nconst GL_ACTION_CONFIRM_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_ACTION_CONFIRM_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_ACTION_DANGER_FOREGROUND_COLOR_DEFAULT = '#dd2b0e';\nconst GL_ACTION_DANGER_FOREGROUND_COLOR_HOVER = '#ae1800';\nconst GL_ACTION_DANGER_FOREGROUND_COLOR_FOCUS = '#ae1800';\nconst GL_ACTION_DANGER_FOREGROUND_COLOR_ACTIVE = '#660e00';\nconst GL_ACTION_DANGER_BACKGROUND_COLOR_DEFAULT = 'rgba(245, 127, 108, 0.0)';\nconst GL_ACTION_DANGER_BACKGROUND_COLOR_HOVER = 'rgba(245, 127, 108, 0.16)';\nconst GL_ACTION_DANGER_BACKGROUND_COLOR_FOCUS = 'rgba(245, 127, 108, 0.16)';\nconst GL_ACTION_DANGER_BACKGROUND_COLOR_ACTIVE = 'rgba(174, 24, 0, 0.24)';\nconst GL_ACTION_DANGER_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_ACTION_DANGER_BORDER_COLOR_HOVER = 'transparent';\nconst GL_ACTION_DANGER_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_ACTION_DANGER_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_ACTION_STRONG_CONFIRM_BACKGROUND_COLOR_DEFAULT = '#1f75cb';\nconst GL_ACTION_STRONG_CONFIRM_BACKGROUND_COLOR_HOVER = '#1068bf';\nconst GL_ACTION_STRONG_CONFIRM_BACKGROUND_COLOR_FOCUS = '#1068bf';\nconst GL_ACTION_STRONG_CONFIRM_BACKGROUND_COLOR_ACTIVE = '#0b5cad';\nconst GL_ACTION_STRONG_CONFIRM_FOREGROUND_COLOR_DEFAULT = '#fff';\nconst GL_ACTION_STRONG_CONFIRM_FOREGROUND_COLOR_HOVER = '#fff';\nconst GL_ACTION_STRONG_CONFIRM_FOREGROUND_COLOR_FOCUS = '#fff';\nconst GL_ACTION_STRONG_CONFIRM_FOREGROUND_COLOR_ACTIVE = '#fff';\nconst GL_ACTION_STRONG_CONFIRM_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_ACTION_STRONG_CONFIRM_BORDER_COLOR_HOVER = 'transparent';\nconst GL_ACTION_STRONG_CONFIRM_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_ACTION_STRONG_CONFIRM_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_ACTION_STRONG_NEUTRAL_BACKGROUND_COLOR_DEFAULT = '#626168';\nconst GL_ACTION_STRONG_NEUTRAL_BACKGROUND_COLOR_HOVER = '#4c4b51';\nconst GL_ACTION_STRONG_NEUTRAL_BACKGROUND_COLOR_FOCUS = '#4c4b51';\nconst GL_ACTION_STRONG_NEUTRAL_BACKGROUND_COLOR_ACTIVE = '#3a383f';\nconst GL_ACTION_STRONG_NEUTRAL_FOREGROUND_COLOR_DEFAULT = '#fff';\nconst GL_ACTION_STRONG_NEUTRAL_FOREGROUND_COLOR_HOVER = '#fff';\nconst GL_ACTION_STRONG_NEUTRAL_FOREGROUND_COLOR_FOCUS = '#fff';\nconst GL_ACTION_STRONG_NEUTRAL_FOREGROUND_COLOR_ACTIVE = '#fff';\nconst GL_ACTION_STRONG_NEUTRAL_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_ACTION_STRONG_NEUTRAL_BORDER_COLOR_HOVER = 'transparent';\nconst GL_ACTION_STRONG_NEUTRAL_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_ACTION_STRONG_NEUTRAL_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_BACKGROUND_COLOR_DEFAULT = '#fff';\nconst GL_BACKGROUND_COLOR_SUBTLE = '#fbfafd';\nconst GL_BACKGROUND_COLOR_STRONG = '#ececef';\nconst GL_BACKGROUND_COLOR_DISABLED = '#fbfafd';\nconst GL_BACKGROUND_COLOR_OVERLAP = '#fff';\nconst GL_BACKGROUND_COLOR_SECTION = '#fff';\nconst GL_BACKGROUND_COLOR_OVERLAY = 'rgba(05, 05, 06, 0.24)';\nconst GL_BORDER_COLOR_DEFAULT = '#dcdcde';\nconst GL_BORDER_COLOR_SUBTLE = '#ececef';\nconst GL_BORDER_COLOR_STRONG = '#bfbfc3';\nconst GL_BORDER_COLOR_SECTION = '#dcdcde';\nconst GL_BORDER_COLOR_TRANSPARENT = 'transparent';\nconst GL_COLOR_ALPHA_0 = 'transparent';\nconst GL_COLOR_ALPHA_DARK_2 = 'rgba(05, 05, 06, 0.02)';\nconst GL_COLOR_ALPHA_DARK_4 = 'rgba(05, 05, 06, 0.04)';\nconst GL_COLOR_ALPHA_DARK_6 = 'rgba(05, 05, 06, 0.06)';\nconst GL_COLOR_ALPHA_DARK_8 = 'rgba(05, 05, 06, 0.08)';\nconst GL_COLOR_ALPHA_DARK_16 = 'rgba(05, 05, 06, 0.16)';\nconst GL_COLOR_ALPHA_DARK_24 = 'rgba(05, 05, 06, 0.24)';\nconst GL_COLOR_ALPHA_DARK_40 = 'rgba(05, 05, 06, 0.4)';\nconst GL_COLOR_ALPHA_LIGHT_2 = 'rgba(255, 255, 255, 0.02)';\nconst GL_COLOR_ALPHA_LIGHT_4 = 'rgba(255, 255, 255, 0.04)';\nconst GL_COLOR_ALPHA_LIGHT_6 = 'rgba(255, 255, 255, 0.06)';\nconst GL_COLOR_ALPHA_LIGHT_8 = 'rgba(255, 255, 255, 0.08)';\nconst GL_COLOR_ALPHA_LIGHT_16 = 'rgba(255, 255, 255, 0.16)';\nconst GL_COLOR_ALPHA_LIGHT_24 = 'rgba(255, 255, 255, 0.24)';\nconst GL_COLOR_ALPHA_LIGHT_36 = 'rgba(255, 255, 255, 0.36)';\nconst GL_COLOR_BLUE_50 = '#e9f3fc';\nconst GL_COLOR_BLUE_100 = '#cbe2f9';\nconst GL_COLOR_BLUE_200 = '#9dc7f1';\nconst GL_COLOR_BLUE_300 = '#63a6e9';\nconst GL_COLOR_BLUE_400 = '#428fdc';\nconst GL_COLOR_BLUE_500 = '#1f75cb';\nconst GL_COLOR_BLUE_600 = '#1068bf';\nconst GL_COLOR_BLUE_700 = '#0b5cad';\nconst GL_COLOR_BLUE_800 = '#064787';\nconst GL_COLOR_BLUE_900 = '#033464';\nconst GL_COLOR_BLUE_950 = '#002850';\nconst GL_COLOR_NEUTRAL_0 = '#fff';\nconst GL_COLOR_NEUTRAL_10 = '#fbfafd';\nconst GL_COLOR_NEUTRAL_50 = '#ececef';\nconst GL_COLOR_NEUTRAL_100 = '#dcdcde';\nconst GL_COLOR_NEUTRAL_200 = '#bfbfc3';\nconst GL_COLOR_NEUTRAL_300 = '#a4a3a8';\nconst GL_COLOR_NEUTRAL_400 = '#89888d';\nconst GL_COLOR_NEUTRAL_500 = '#737278';\nconst GL_COLOR_NEUTRAL_600 = '#626168';\nconst GL_COLOR_NEUTRAL_700 = '#4c4b51';\nconst GL_COLOR_NEUTRAL_800 = '#3a383f';\nconst GL_COLOR_NEUTRAL_900 = '#28272d';\nconst GL_COLOR_NEUTRAL_950 = '#18171d';\nconst GL_COLOR_NEUTRAL_1000 = '#050506';\nconst GL_COLOR_GREEN_50 = '#ecf4ee';\nconst GL_COLOR_GREEN_100 = '#c3e6cd';\nconst GL_COLOR_GREEN_200 = '#91d4a8';\nconst GL_COLOR_GREEN_300 = '#52b87a';\nconst GL_COLOR_GREEN_400 = '#2da160';\nconst GL_COLOR_GREEN_500 = '#108548';\nconst GL_COLOR_GREEN_600 = '#217645';\nconst GL_COLOR_GREEN_700 = '#24663b';\nconst GL_COLOR_GREEN_800 = '#0d532a';\nconst GL_COLOR_GREEN_900 = '#0a4020';\nconst GL_COLOR_GREEN_950 = '#072b15';\nconst GL_COLOR_ORANGE_50 = '#fdf1dd';\nconst GL_COLOR_ORANGE_100 = '#f5d9a8';\nconst GL_COLOR_ORANGE_200 = '#e9be74';\nconst GL_COLOR_ORANGE_300 = '#d99530';\nconst GL_COLOR_ORANGE_400 = '#c17d10';\nconst GL_COLOR_ORANGE_500 = '#ab6100';\nconst GL_COLOR_ORANGE_600 = '#9e5400';\nconst GL_COLOR_ORANGE_700 = '#8f4700';\nconst GL_COLOR_ORANGE_800 = '#703800';\nconst GL_COLOR_ORANGE_900 = '#5c2900';\nconst GL_COLOR_ORANGE_950 = '#421f00';\nconst GL_COLOR_PURPLE_50 = '#f4f0ff';\nconst GL_COLOR_PURPLE_100 = '#e1d8f9';\nconst GL_COLOR_PURPLE_200 = '#cbbbf2';\nconst GL_COLOR_PURPLE_300 = '#ac93e6';\nconst GL_COLOR_PURPLE_400 = '#9475db';\nconst GL_COLOR_PURPLE_500 = '#7b58cf';\nconst GL_COLOR_PURPLE_600 = '#694cc0';\nconst GL_COLOR_PURPLE_700 = '#5943b6';\nconst GL_COLOR_PURPLE_800 = '#453894';\nconst GL_COLOR_PURPLE_900 = '#2f2a6b';\nconst GL_COLOR_PURPLE_950 = '#232150';\nconst GL_COLOR_RED_50 = '#fcf1ef';\nconst GL_COLOR_RED_100 = '#fdd4cd';\nconst GL_COLOR_RED_200 = '#fcb5aa';\nconst GL_COLOR_RED_300 = '#f6806d';\nconst GL_COLOR_RED_400 = '#ec5941';\nconst GL_COLOR_RED_500 = '#dd2b0e';\nconst GL_COLOR_RED_600 = '#c91c00';\nconst GL_COLOR_RED_700 = '#ae1800';\nconst GL_COLOR_RED_800 = '#8d1300';\nconst GL_COLOR_RED_900 = '#660e00';\nconst GL_COLOR_RED_950 = '#4d0a00';\nconst GL_COLOR_THEME_INDIGO_10 = '#f8f8ff';\nconst GL_COLOR_THEME_INDIGO_50 = '#f1f1ff';\nconst GL_COLOR_THEME_INDIGO_100 = '#dbdbf8';\nconst GL_COLOR_THEME_INDIGO_200 = '#c7c7f2';\nconst GL_COLOR_THEME_INDIGO_300 = '#a2a2e6';\nconst GL_COLOR_THEME_INDIGO_400 = '#8181d7';\nconst GL_COLOR_THEME_INDIGO_500 = '#6666c4';\nconst GL_COLOR_THEME_INDIGO_600 = '#5252b5';\nconst GL_COLOR_THEME_INDIGO_700 = '#41419f';\nconst GL_COLOR_THEME_INDIGO_800 = '#303083';\nconst GL_COLOR_THEME_INDIGO_900 = '#222261';\nconst GL_COLOR_THEME_INDIGO_950 = '#14143d';\nconst GL_COLOR_THEME_BLUE_10 = '#e6ecf0';\nconst GL_COLOR_THEME_BLUE_50 = '#cdd8e3';\nconst GL_COLOR_THEME_BLUE_100 = '#b9cadc';\nconst GL_COLOR_THEME_BLUE_200 = '#a6bdd5';\nconst GL_COLOR_THEME_BLUE_300 = '#81a5c9';\nconst GL_COLOR_THEME_BLUE_400 = '#628eb9';\nconst GL_COLOR_THEME_BLUE_500 = '#4977a5';\nconst GL_COLOR_THEME_BLUE_600 = '#346596';\nconst GL_COLOR_THEME_BLUE_700 = '#235180';\nconst GL_COLOR_THEME_BLUE_800 = '#153c63';\nconst GL_COLOR_THEME_BLUE_900 = '#0b2640';\nconst GL_COLOR_THEME_BLUE_950 = '#04101c';\nconst GL_COLOR_THEME_LIGHT_BLUE_10 = '#eef3f7';\nconst GL_COLOR_THEME_LIGHT_BLUE_50 = '#dde6ee';\nconst GL_COLOR_THEME_LIGHT_BLUE_100 = '#c1d4e6';\nconst GL_COLOR_THEME_LIGHT_BLUE_200 = '#a0bedc';\nconst GL_COLOR_THEME_LIGHT_BLUE_300 = '#74a3d3';\nconst GL_COLOR_THEME_LIGHT_BLUE_400 = '#4f8bc7';\nconst GL_COLOR_THEME_LIGHT_BLUE_500 = '#3476b9';\nconst GL_COLOR_THEME_LIGHT_BLUE_600 = '#2268ae';\nconst GL_COLOR_THEME_LIGHT_BLUE_700 = '#145aa1';\nconst GL_COLOR_THEME_LIGHT_BLUE_800 = '#0e4d8d';\nconst GL_COLOR_THEME_LIGHT_BLUE_900 = '#0c4277';\nconst GL_COLOR_THEME_LIGHT_BLUE_950 = '#0a3764';\nconst GL_COLOR_THEME_GREEN_10 = '#eef4ef';\nconst GL_COLOR_THEME_GREEN_50 = '#dde9de';\nconst GL_COLOR_THEME_GREEN_100 = '#b1d6b5';\nconst GL_COLOR_THEME_GREEN_200 = '#8cc497';\nconst GL_COLOR_THEME_GREEN_300 = '#69af7d';\nconst GL_COLOR_THEME_GREEN_400 = '#499767';\nconst GL_COLOR_THEME_GREEN_500 = '#308258';\nconst GL_COLOR_THEME_GREEN_600 = '#25744c';\nconst GL_COLOR_THEME_GREEN_700 = '#1b653f';\nconst GL_COLOR_THEME_GREEN_800 = '#155635';\nconst GL_COLOR_THEME_GREEN_900 = '#0e4328';\nconst GL_COLOR_THEME_GREEN_950 = '#052e19';\nconst GL_COLOR_THEME_RED_10 = '#faf4f3';\nconst GL_COLOR_THEME_RED_50 = '#f4e9e7';\nconst GL_COLOR_THEME_RED_100 = '#ecd3d0';\nconst GL_COLOR_THEME_RED_200 = '#e3bab5';\nconst GL_COLOR_THEME_RED_300 = '#d59086';\nconst GL_COLOR_THEME_RED_400 = '#c66e60';\nconst GL_COLOR_THEME_RED_500 = '#ad4a3b';\nconst GL_COLOR_THEME_RED_600 = '#a13322';\nconst GL_COLOR_THEME_RED_700 = '#8f2110';\nconst GL_COLOR_THEME_RED_800 = '#761405';\nconst GL_COLOR_THEME_RED_900 = '#580d02';\nconst GL_COLOR_THEME_RED_950 = '#380700';\nconst GL_COLOR_THEME_LIGHT_RED_10 = '#fdf9f8';\nconst GL_COLOR_THEME_LIGHT_RED_50 = '#faf2f1';\nconst GL_COLOR_THEME_LIGHT_RED_100 = '#f6d9d5';\nconst GL_COLOR_THEME_LIGHT_RED_200 = '#ebada2';\nconst GL_COLOR_THEME_LIGHT_RED_300 = '#e07f6f';\nconst GL_COLOR_THEME_LIGHT_RED_400 = '#d36250';\nconst GL_COLOR_THEME_LIGHT_RED_500 = '#c24b38';\nconst GL_COLOR_THEME_LIGHT_RED_600 = '#b53a26';\nconst GL_COLOR_THEME_LIGHT_RED_700 = '#a02e1c';\nconst GL_COLOR_THEME_LIGHT_RED_800 = '#8b2212';\nconst GL_COLOR_THEME_LIGHT_RED_900 = '#751709';\nconst GL_COLOR_THEME_LIGHT_RED_950 = '#5c1105';\nconst GL_COLOR_BRAND_WHITE = '#fff';\nconst GL_COLOR_BRAND_CHARCOAL = '#171321';\nconst GL_COLOR_BRAND_ORANGE_01G = '#ffd1bf';\nconst GL_COLOR_BRAND_ORANGE_01P = '#fca326';\nconst GL_COLOR_BRAND_ORANGE_02P = '#fc6d26';\nconst GL_COLOR_BRAND_ORANGE_03P = '#e24329';\nconst GL_COLOR_BRAND_PURPLE_01G = '#ceb3ef';\nconst GL_COLOR_BRAND_PURPLE_01P = '#a989f5';\nconst GL_COLOR_BRAND_PURPLE_02P = '#7759c2';\nconst GL_COLOR_BRAND_GRAY_01 = '#d1d0d3';\nconst GL_COLOR_BRAND_GRAY_02 = '#a2a1a6';\nconst GL_COLOR_BRAND_GRAY_03 = '#74717a';\nconst GL_COLOR_BRAND_GRAY_04 = '#45424d';\nconst GL_COLOR_BRAND_GRAY_05 = '#2b2838';\nconst GL_COLOR_BRAND_PINK_01G = '#ffb9c9';\nconst DATA_VIZ_GREEN_50 = '#ddfab7';\nconst DATA_VIZ_GREEN_100 = '#c6ed94';\nconst DATA_VIZ_GREEN_200 = '#b0d97b';\nconst DATA_VIZ_GREEN_300 = '#94c25e';\nconst DATA_VIZ_GREEN_400 = '#81ac41';\nconst DATA_VIZ_GREEN_500 = '#619025';\nconst DATA_VIZ_GREEN_600 = '#4e7f0e';\nconst DATA_VIZ_GREEN_700 = '#366800';\nconst DATA_VIZ_GREEN_800 = '#275600';\nconst DATA_VIZ_GREEN_900 = '#1a4500';\nconst DATA_VIZ_GREEN_950 = '#133a03';\nconst DATA_VIZ_AQUA_50 = '#b5fefd';\nconst DATA_VIZ_AQUA_100 = '#93f2ef';\nconst DATA_VIZ_AQUA_200 = '#5edee3';\nconst DATA_VIZ_AQUA_300 = '#32c5d2';\nconst DATA_VIZ_AQUA_400 = '#00acc4';\nconst DATA_VIZ_AQUA_500 = '#0090b1';\nconst DATA_VIZ_AQUA_600 = '#007b9b';\nconst DATA_VIZ_AQUA_700 = '#006381';\nconst DATA_VIZ_AQUA_800 = '#00516c';\nconst DATA_VIZ_AQUA_900 = '#004059';\nconst DATA_VIZ_AQUA_950 = '#00344b';\nconst DATA_VIZ_BLUE_50 = '#e9ebff';\nconst DATA_VIZ_BLUE_100 = '#d2dcff';\nconst DATA_VIZ_BLUE_200 = '#b7c6ff';\nconst DATA_VIZ_BLUE_300 = '#97acff';\nconst DATA_VIZ_BLUE_400 = '#7992f5';\nconst DATA_VIZ_BLUE_500 = '#617ae2';\nconst DATA_VIZ_BLUE_600 = '#4e65cd';\nconst DATA_VIZ_BLUE_700 = '#3f51ae';\nconst DATA_VIZ_BLUE_800 = '#374291';\nconst DATA_VIZ_BLUE_900 = '#303470';\nconst DATA_VIZ_BLUE_950 = '#2a2b59';\nconst DATA_VIZ_MAGENTA_50 = '#ffe3eb';\nconst DATA_VIZ_MAGENTA_100 = '#ffccdb';\nconst DATA_VIZ_MAGENTA_200 = '#fcacc5';\nconst DATA_VIZ_MAGENTA_300 = '#f88aaf';\nconst DATA_VIZ_MAGENTA_400 = '#e86e9a';\nconst DATA_VIZ_MAGENTA_500 = '#cf4d81';\nconst DATA_VIZ_MAGENTA_600 = '#b93d71';\nconst DATA_VIZ_MAGENTA_700 = '#9a2e5d';\nconst DATA_VIZ_MAGENTA_800 = '#7c214f';\nconst DATA_VIZ_MAGENTA_900 = '#661e3a';\nconst DATA_VIZ_MAGENTA_950 = '#541d31';\nconst DATA_VIZ_ORANGE_50 = '#fae8d1';\nconst DATA_VIZ_ORANGE_100 = '#f5d6b3';\nconst DATA_VIZ_ORANGE_200 = '#eebd8c';\nconst DATA_VIZ_ORANGE_300 = '#e99b60';\nconst DATA_VIZ_ORANGE_400 = '#e07e41';\nconst DATA_VIZ_ORANGE_500 = '#c95d2e';\nconst DATA_VIZ_ORANGE_600 = '#b14f18';\nconst DATA_VIZ_ORANGE_700 = '#92430a';\nconst DATA_VIZ_ORANGE_800 = '#6f3500';\nconst DATA_VIZ_ORANGE_900 = '#5e2f05';\nconst DATA_VIZ_ORANGE_950 = '#4b2707';\nconst GL_ALERT_NEUTRAL_TITLE_COLOR = '#18171d';\nconst GL_ALERT_NEUTRAL_BACKGROUND_COLOR = '#ececef';\nconst GL_ALERT_NEUTRAL_BORDER_TOP_COLOR = 'transparent';\nconst GL_ALERT_NEUTRAL_BORDER_BOTTOM_COLOR = 'transparent';\nconst GL_ALERT_INFO_TITLE_COLOR = '#18171d';\nconst GL_ALERT_INFO_BACKGROUND_COLOR = '#e9f3fc';\nconst GL_ALERT_INFO_BORDER_TOP_COLOR = 'transparent';\nconst GL_ALERT_INFO_BORDER_BOTTOM_COLOR = 'transparent';\nconst GL_ALERT_SUCCESS_TITLE_COLOR = '#18171d';\nconst GL_ALERT_SUCCESS_BACKGROUND_COLOR = '#ecf4ee';\nconst GL_ALERT_SUCCESS_BORDER_TOP_COLOR = 'transparent';\nconst GL_ALERT_SUCCESS_BORDER_BOTTOM_COLOR = 'transparent';\nconst GL_ALERT_WARNING_TITLE_COLOR = '#18171d';\nconst GL_ALERT_WARNING_BACKGROUND_COLOR = '#fdf1dd';\nconst GL_ALERT_WARNING_BORDER_TOP_COLOR = 'transparent';\nconst GL_ALERT_WARNING_BORDER_BOTTOM_COLOR = 'transparent';\nconst GL_ALERT_DANGER_TITLE_COLOR = '#18171d';\nconst GL_ALERT_DANGER_BACKGROUND_COLOR = '#fcf1ef';\nconst GL_ALERT_DANGER_BORDER_TOP_COLOR = 'transparent';\nconst GL_ALERT_DANGER_BORDER_BOTTOM_COLOR = 'transparent';\nconst GL_AVATAR_BORDER_COLOR_DEFAULT = 'rgba(05, 05, 06, 0.08)';\nconst GL_AVATAR_BORDER_COLOR_HOVER = 'rgba(05, 05, 06, 0.24)';\nconst GL_AVATAR_FALLBACK_TEXT_COLOR_RED = '#8d1300';\nconst GL_AVATAR_FALLBACK_TEXT_COLOR_PURPLE = '#453894';\nconst GL_AVATAR_FALLBACK_TEXT_COLOR_BLUE = '#064787';\nconst GL_AVATAR_FALLBACK_TEXT_COLOR_GREEN = '#0d532a';\nconst GL_AVATAR_FALLBACK_TEXT_COLOR_ORANGE = '#703800';\nconst GL_AVATAR_FALLBACK_TEXT_COLOR_NEUTRAL = '#3a383f';\nconst GL_AVATAR_FALLBACK_BACKGROUND_COLOR_RED = '#fcb5aa3d';\nconst GL_AVATAR_FALLBACK_BACKGROUND_COLOR_PURPLE = '#cbbbf23d';\nconst GL_AVATAR_FALLBACK_BACKGROUND_COLOR_BLUE = '#9dc7f13d';\nconst GL_AVATAR_FALLBACK_BACKGROUND_COLOR_GREEN = '#91d4a83d';\nconst GL_AVATAR_FALLBACK_BACKGROUND_COLOR_ORANGE = '#e9be743d';\nconst GL_AVATAR_FALLBACK_BACKGROUND_COLOR_NEUTRAL = '#bfbfc33d';\nconst GL_BADGE_MUTED_BACKGROUND_COLOR_DEFAULT = '#ececef';\nconst GL_BADGE_MUTED_BACKGROUND_COLOR_HOVER = '#ececef';\nconst GL_BADGE_MUTED_BACKGROUND_COLOR_FOCUS = '#ececef';\nconst GL_BADGE_MUTED_BACKGROUND_COLOR_ACTIVE = '#dcdcde';\nconst GL_BADGE_MUTED_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_BADGE_MUTED_BORDER_COLOR_HOVER = '#bfbfc3';\nconst GL_BADGE_MUTED_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_BADGE_MUTED_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_BADGE_MUTED_TEXT_COLOR_DEFAULT = '#626168';\nconst GL_BADGE_MUTED_TEXT_COLOR_HOVER = '#4c4b51';\nconst GL_BADGE_MUTED_TEXT_COLOR_FOCUS = '#4c4b51';\nconst GL_BADGE_MUTED_TEXT_COLOR_ACTIVE = '#3a383f';\nconst GL_BADGE_MUTED_ICON_COLOR_DEFAULT = '#737278';\nconst GL_BADGE_MUTED_ICON_COLOR_HOVER = '#626168';\nconst GL_BADGE_MUTED_ICON_COLOR_FOCUS = '#626168';\nconst GL_BADGE_MUTED_ICON_COLOR_ACTIVE = '#4c4b51';\nconst GL_BADGE_NEUTRAL_BACKGROUND_COLOR_DEFAULT = '#dcdcde';\nconst GL_BADGE_NEUTRAL_BACKGROUND_COLOR_HOVER = '#dcdcde';\nconst GL_BADGE_NEUTRAL_BACKGROUND_COLOR_FOCUS = '#dcdcde';\nconst GL_BADGE_NEUTRAL_BACKGROUND_COLOR_ACTIVE = '#bfbfc3';\nconst GL_BADGE_NEUTRAL_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_BADGE_NEUTRAL_BORDER_COLOR_HOVER = '#bfbfc3';\nconst GL_BADGE_NEUTRAL_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_BADGE_NEUTRAL_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_BADGE_NEUTRAL_TEXT_COLOR_DEFAULT = '#4c4b51';\nconst GL_BADGE_NEUTRAL_TEXT_COLOR_HOVER = '#3a383f';\nconst GL_BADGE_NEUTRAL_TEXT_COLOR_FOCUS = '#3a383f';\nconst GL_BADGE_NEUTRAL_TEXT_COLOR_ACTIVE = '#28272d';\nconst GL_BADGE_NEUTRAL_ICON_COLOR_DEFAULT = '#737278';\nconst GL_BADGE_NEUTRAL_ICON_COLOR_HOVER = '#626168';\nconst GL_BADGE_NEUTRAL_ICON_COLOR_FOCUS = '#626168';\nconst GL_BADGE_NEUTRAL_ICON_COLOR_ACTIVE = '#4c4b51';\nconst GL_BADGE_INFO_BACKGROUND_COLOR_DEFAULT = '#cbe2f9';\nconst GL_BADGE_INFO_BACKGROUND_COLOR_HOVER = '#cbe2f9';\nconst GL_BADGE_INFO_BACKGROUND_COLOR_FOCUS = '#cbe2f9';\nconst GL_BADGE_INFO_BACKGROUND_COLOR_ACTIVE = '#9dc7f1';\nconst GL_BADGE_INFO_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_BADGE_INFO_BORDER_COLOR_HOVER = '#9dc7f1';\nconst GL_BADGE_INFO_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_BADGE_INFO_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_BADGE_INFO_TEXT_COLOR_DEFAULT = '#0b5cad';\nconst GL_BADGE_INFO_TEXT_COLOR_HOVER = '#064787';\nconst GL_BADGE_INFO_TEXT_COLOR_FOCUS = '#064787';\nconst GL_BADGE_INFO_TEXT_COLOR_ACTIVE = '#033464';\nconst GL_BADGE_INFO_ICON_COLOR_DEFAULT = '#1f75cb';\nconst GL_BADGE_INFO_ICON_COLOR_HOVER = '#1068bf';\nconst GL_BADGE_INFO_ICON_COLOR_FOCUS = '#1068bf';\nconst GL_BADGE_INFO_ICON_COLOR_ACTIVE = '#0b5cad';\nconst GL_BADGE_SUCCESS_BACKGROUND_COLOR_DEFAULT = '#c3e6cd';\nconst GL_BADGE_SUCCESS_BACKGROUND_COLOR_HOVER = '#c3e6cd';\nconst GL_BADGE_SUCCESS_BACKGROUND_COLOR_FOCUS = '#c3e6cd';\nconst GL_BADGE_SUCCESS_BACKGROUND_COLOR_ACTIVE = '#91d4a8';\nconst GL_BADGE_SUCCESS_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_BADGE_SUCCESS_BORDER_COLOR_HOVER = '#91d4a8';\nconst GL_BADGE_SUCCESS_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_BADGE_SUCCESS_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_BADGE_SUCCESS_TEXT_COLOR_DEFAULT = '#24663b';\nconst GL_BADGE_SUCCESS_TEXT_COLOR_HOVER = '#0d532a';\nconst GL_BADGE_SUCCESS_TEXT_COLOR_FOCUS = '#0d532a';\nconst GL_BADGE_SUCCESS_TEXT_COLOR_ACTIVE = '#0a4020';\nconst GL_BADGE_SUCCESS_ICON_COLOR_DEFAULT = '#108548';\nconst GL_BADGE_SUCCESS_ICON_COLOR_HOVER = '#217645';\nconst GL_BADGE_SUCCESS_ICON_COLOR_FOCUS = '#217645';\nconst GL_BADGE_SUCCESS_ICON_COLOR_ACTIVE = '#24663b';\nconst GL_BADGE_WARNING_BACKGROUND_COLOR_DEFAULT = '#f5d9a8';\nconst GL_BADGE_WARNING_BACKGROUND_COLOR_HOVER = '#f5d9a8';\nconst GL_BADGE_WARNING_BACKGROUND_COLOR_FOCUS = '#f5d9a8';\nconst GL_BADGE_WARNING_BACKGROUND_COLOR_ACTIVE = '#e9be74';\nconst GL_BADGE_WARNING_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_BADGE_WARNING_BORDER_COLOR_HOVER = '#e9be74';\nconst GL_BADGE_WARNING_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_BADGE_WARNING_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_BADGE_WARNING_TEXT_COLOR_DEFAULT = '#8f4700';\nconst GL_BADGE_WARNING_TEXT_COLOR_HOVER = '#703800';\nconst GL_BADGE_WARNING_TEXT_COLOR_FOCUS = '#703800';\nconst GL_BADGE_WARNING_TEXT_COLOR_ACTIVE = '#5c2900';\nconst GL_BADGE_WARNING_ICON_COLOR_DEFAULT = '#ab6100';\nconst GL_BADGE_WARNING_ICON_COLOR_HOVER = '#9e5400';\nconst GL_BADGE_WARNING_ICON_COLOR_FOCUS = '#9e5400';\nconst GL_BADGE_WARNING_ICON_COLOR_ACTIVE = '#8f4700';\nconst GL_BADGE_DANGER_BACKGROUND_COLOR_DEFAULT = '#fdd4cd';\nconst GL_BADGE_DANGER_BACKGROUND_COLOR_HOVER = '#fdd4cd';\nconst GL_BADGE_DANGER_BACKGROUND_COLOR_FOCUS = '#fdd4cd';\nconst GL_BADGE_DANGER_BACKGROUND_COLOR_ACTIVE = '#fcb5aa';\nconst GL_BADGE_DANGER_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_BADGE_DANGER_BORDER_COLOR_HOVER = '#fcb5aa';\nconst GL_BADGE_DANGER_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_BADGE_DANGER_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_BADGE_DANGER_TEXT_COLOR_DEFAULT = '#ae1800';\nconst GL_BADGE_DANGER_TEXT_COLOR_HOVER = '#8d1300';\nconst GL_BADGE_DANGER_TEXT_COLOR_FOCUS = '#8d1300';\nconst GL_BADGE_DANGER_TEXT_COLOR_ACTIVE = '#660e00';\nconst GL_BADGE_DANGER_ICON_COLOR_DEFAULT = '#ae1800';\nconst GL_BADGE_DANGER_ICON_COLOR_HOVER = '#8d1300';\nconst GL_BADGE_DANGER_ICON_COLOR_FOCUS = '#8d1300';\nconst GL_BADGE_DANGER_ICON_COLOR_ACTIVE = '#660e00';\nconst GL_BADGE_TIER_BACKGROUND_COLOR_DEFAULT = '#e1d8f9';\nconst GL_BADGE_TIER_BACKGROUND_COLOR_HOVER = '#e1d8f9';\nconst GL_BADGE_TIER_BACKGROUND_COLOR_FOCUS = '#e1d8f9';\nconst GL_BADGE_TIER_BACKGROUND_COLOR_ACTIVE = '#cbbbf2';\nconst GL_BADGE_TIER_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_BADGE_TIER_BORDER_COLOR_HOVER = '#cbbbf2';\nconst GL_BADGE_TIER_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_BADGE_TIER_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_BADGE_TIER_TEXT_COLOR_DEFAULT = '#5943b6';\nconst GL_BADGE_TIER_TEXT_COLOR_HOVER = '#453894';\nconst GL_BADGE_TIER_TEXT_COLOR_FOCUS = '#453894';\nconst GL_BADGE_TIER_TEXT_COLOR_ACTIVE = '#2f2a6b';\nconst GL_BADGE_TIER_ICON_COLOR_DEFAULT = '#5943b6';\nconst GL_BADGE_TIER_ICON_COLOR_HOVER = '#453894';\nconst GL_BADGE_TIER_ICON_COLOR_FOCUS = '#453894';\nconst GL_BADGE_TIER_ICON_COLOR_ACTIVE = '#2f2a6b';\nconst GL_BANNER_INTRO_BORDER_COLOR = '#cbe2f9';\nconst GL_BANNER_PROMO_BACKGROUND_COLOR = '#f4f0ff';\nconst GL_BANNER_PROMO_BORDER_COLOR = '#e1d8f9';\nconst GL_BREADCRUMB_SEPARATOR_COLOR = '#89888d';\nconst GL_BROADCAST_BANNER_BACKGROUND_COLOR_BLUE = '#235180';\nconst GL_BROADCAST_BANNER_BACKGROUND_COLOR_DARK = '#737278';\nconst GL_BROADCAST_BANNER_BACKGROUND_COLOR_GREEN = '#1b653f';\nconst GL_BROADCAST_BANNER_BACKGROUND_COLOR_INDIGO = '#41419f';\nconst GL_BROADCAST_BANNER_BACKGROUND_COLOR_LIGHT = '#ececef';\nconst GL_BROADCAST_BANNER_BACKGROUND_COLOR_LIGHTBLUE = '#4977a5';\nconst GL_BROADCAST_BANNER_BACKGROUND_COLOR_LIGHTGREEN = '#308258';\nconst GL_BROADCAST_BANNER_BACKGROUND_COLOR_LIGHTINDIGO = '#6666c4';\nconst GL_BROADCAST_BANNER_BACKGROUND_COLOR_LIGHTRED = '#ad4a3b';\nconst GL_BROADCAST_BANNER_BACKGROUND_COLOR_RED = '#8f2110';\nconst GL_BROADCAST_BANNER_BORDER_COLOR_BLUE = '#0b2640';\nconst GL_BROADCAST_BANNER_BORDER_COLOR_DARK = '#4c4b51';\nconst GL_BROADCAST_BANNER_BORDER_COLOR_GREEN = '#0e4328';\nconst GL_BROADCAST_BANNER_BORDER_COLOR_INDIGO = '#222261';\nconst GL_BROADCAST_BANNER_BORDER_COLOR_LIGHT = '#dcdcde';\nconst GL_BROADCAST_BANNER_BORDER_COLOR_LIGHTBLUE = '#235180';\nconst GL_BROADCAST_BANNER_BORDER_COLOR_LIGHTGREEN = '#1b653f';\nconst GL_BROADCAST_BANNER_BORDER_COLOR_LIGHTINDIGO = '#41419f';\nconst GL_BROADCAST_BANNER_BORDER_COLOR_LIGHTRED = '#8f2110';\nconst GL_BROADCAST_BANNER_BORDER_COLOR_RED = '#580d02';\nconst GL_BROADCAST_BANNER_ICON_COLOR_BLUE = '#fff';\nconst GL_BROADCAST_BANNER_ICON_COLOR_DARK = '#fff';\nconst GL_BROADCAST_BANNER_ICON_COLOR_GREEN = '#fff';\nconst GL_BROADCAST_BANNER_ICON_COLOR_INDIGO = '#fff';\nconst GL_BROADCAST_BANNER_ICON_COLOR_LIGHT = '#28272d';\nconst GL_BROADCAST_BANNER_ICON_COLOR_LIGHTBLUE = '#fff';\nconst GL_BROADCAST_BANNER_ICON_COLOR_LIGHTGREEN = '#fff';\nconst GL_BROADCAST_BANNER_ICON_COLOR_LIGHTINDIGO = '#fff';\nconst GL_BROADCAST_BANNER_ICON_COLOR_LIGHTRED = '#fff';\nconst GL_BROADCAST_BANNER_ICON_COLOR_RED = '#fff';\nconst GL_BROADCAST_BANNER_TEXT_COLOR_BLUE = '#fff';\nconst GL_BROADCAST_BANNER_TEXT_COLOR_DARK = '#fff';\nconst GL_BROADCAST_BANNER_TEXT_COLOR_GREEN = '#fff';\nconst GL_BROADCAST_BANNER_TEXT_COLOR_INDIGO = '#fff';\nconst GL_BROADCAST_BANNER_TEXT_COLOR_LIGHT = '#28272d';\nconst GL_BROADCAST_BANNER_TEXT_COLOR_LIGHTBLUE = '#fff';\nconst GL_BROADCAST_BANNER_TEXT_COLOR_LIGHTGREEN = '#fff';\nconst GL_BROADCAST_BANNER_TEXT_COLOR_LIGHTINDIGO = '#fff';\nconst GL_BROADCAST_BANNER_TEXT_COLOR_LIGHTRED = '#fff';\nconst GL_BROADCAST_BANNER_TEXT_COLOR_RED = '#fff';\nconst GL_BUTTON_DEFAULT_PRIMARY_FOREGROUND_COLOR_DEFAULT = '#3a383f';\nconst GL_BUTTON_DEFAULT_PRIMARY_FOREGROUND_COLOR_HOVER = '#3a383f';\nconst GL_BUTTON_DEFAULT_PRIMARY_FOREGROUND_COLOR_FOCUS = '#3a383f';\nconst GL_BUTTON_DEFAULT_PRIMARY_FOREGROUND_COLOR_ACTIVE = '#3a383f';\nconst GL_BUTTON_DEFAULT_PRIMARY_BACKGROUND_COLOR_DEFAULT = '#fff';\nconst GL_BUTTON_DEFAULT_PRIMARY_BACKGROUND_COLOR_HOVER = '#ececef';\nconst GL_BUTTON_DEFAULT_PRIMARY_BACKGROUND_COLOR_FOCUS = '#ececef';\nconst GL_BUTTON_DEFAULT_PRIMARY_BACKGROUND_COLOR_ACTIVE = '#dcdcde';\nconst GL_BUTTON_DEFAULT_PRIMARY_BORDER_COLOR_DEFAULT = '#bfbfc3';\nconst GL_BUTTON_DEFAULT_PRIMARY_BORDER_COLOR_HOVER = '#89888d';\nconst GL_BUTTON_DEFAULT_PRIMARY_BORDER_COLOR_FOCUS = '#89888d';\nconst GL_BUTTON_DEFAULT_PRIMARY_BORDER_COLOR_ACTIVE = '#626168';\nconst GL_BUTTON_DEFAULT_TERTIARY_FOREGROUND_COLOR_DEFAULT = '#28272d';\nconst GL_BUTTON_DEFAULT_TERTIARY_FOREGROUND_COLOR_HOVER = '#28272d';\nconst GL_BUTTON_DEFAULT_TERTIARY_FOREGROUND_COLOR_FOCUS = '#28272d';\nconst GL_BUTTON_DEFAULT_TERTIARY_FOREGROUND_COLOR_ACTIVE = '#28272d';\nconst GL_BUTTON_DEFAULT_TERTIARY_BACKGROUND_COLOR_DEFAULT = 'rgba(164, 163, 168, 0.0)';\nconst GL_BUTTON_DEFAULT_TERTIARY_BACKGROUND_COLOR_HOVER = 'rgba(164, 163, 168, 0.16)';\nconst GL_BUTTON_DEFAULT_TERTIARY_BACKGROUND_COLOR_FOCUS = 'rgba(164, 163, 168, 0.16)';\nconst GL_BUTTON_DEFAULT_TERTIARY_BACKGROUND_COLOR_ACTIVE = 'rgba(83, 81, 88, 0.24)';\nconst GL_BUTTON_DEFAULT_TERTIARY_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_BUTTON_DEFAULT_TERTIARY_BORDER_COLOR_HOVER = 'transparent';\nconst GL_BUTTON_DEFAULT_TERTIARY_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_BUTTON_DEFAULT_TERTIARY_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_BUTTON_CONFIRM_PRIMARY_FOREGROUND_COLOR_DEFAULT = '#fff';\nconst GL_BUTTON_CONFIRM_PRIMARY_FOREGROUND_COLOR_HOVER = '#fff';\nconst GL_BUTTON_CONFIRM_PRIMARY_FOREGROUND_COLOR_FOCUS = '#fff';\nconst GL_BUTTON_CONFIRM_PRIMARY_FOREGROUND_COLOR_ACTIVE = '#fff';\nconst GL_BUTTON_CONFIRM_PRIMARY_BACKGROUND_COLOR_DEFAULT = '#1f75cb';\nconst GL_BUTTON_CONFIRM_PRIMARY_BACKGROUND_COLOR_HOVER = '#1068bf';\nconst GL_BUTTON_CONFIRM_PRIMARY_BACKGROUND_COLOR_FOCUS = '#1068bf';\nconst GL_BUTTON_CONFIRM_PRIMARY_BACKGROUND_COLOR_ACTIVE = '#0b5cad';\nconst GL_BUTTON_CONFIRM_PRIMARY_BORDER_COLOR_DEFAULT = '#1068bf';\nconst GL_BUTTON_CONFIRM_PRIMARY_BORDER_COLOR_HOVER = '#064787';\nconst GL_BUTTON_CONFIRM_PRIMARY_BORDER_COLOR_FOCUS = '#064787';\nconst GL_BUTTON_CONFIRM_PRIMARY_BORDER_COLOR_ACTIVE = '#033464';\nconst GL_BUTTON_CONFIRM_SECONDARY_FOREGROUND_COLOR_DEFAULT = '#1f75cb';\nconst GL_BUTTON_CONFIRM_SECONDARY_FOREGROUND_COLOR_HOVER = '#0b5cad';\nconst GL_BUTTON_CONFIRM_SECONDARY_FOREGROUND_COLOR_FOCUS = '#0b5cad';\nconst GL_BUTTON_CONFIRM_SECONDARY_FOREGROUND_COLOR_ACTIVE = '#033464';\nconst GL_BUTTON_CONFIRM_SECONDARY_BACKGROUND_COLOR_DEFAULT = '#fff';\nconst GL_BUTTON_CONFIRM_SECONDARY_BACKGROUND_COLOR_HOVER = '#e9f3fc';\nconst GL_BUTTON_CONFIRM_SECONDARY_BACKGROUND_COLOR_FOCUS = '#e9f3fc';\nconst GL_BUTTON_CONFIRM_SECONDARY_BACKGROUND_COLOR_ACTIVE = '#cbe2f9';\nconst GL_BUTTON_CONFIRM_SECONDARY_BORDER_COLOR_DEFAULT = '#1f75cb';\nconst GL_BUTTON_CONFIRM_SECONDARY_BORDER_COLOR_HOVER = '#0b5cad';\nconst GL_BUTTON_CONFIRM_SECONDARY_BORDER_COLOR_FOCUS = '#0b5cad';\nconst GL_BUTTON_CONFIRM_SECONDARY_BORDER_COLOR_ACTIVE = '#033464';\nconst GL_BUTTON_CONFIRM_TERTIARY_FOREGROUND_COLOR_DEFAULT = '#1f75cb';\nconst GL_BUTTON_CONFIRM_TERTIARY_FOREGROUND_COLOR_HOVER = '#0b5cad';\nconst GL_BUTTON_CONFIRM_TERTIARY_FOREGROUND_COLOR_FOCUS = '#0b5cad';\nconst GL_BUTTON_CONFIRM_TERTIARY_FOREGROUND_COLOR_ACTIVE = '#033464';\nconst GL_BUTTON_CONFIRM_TERTIARY_BACKGROUND_COLOR_DEFAULT = 'rgba(99, 166, 233, 0.0)';\nconst GL_BUTTON_CONFIRM_TERTIARY_BACKGROUND_COLOR_HOVER = 'rgba(99, 166, 233, 0.16)';\nconst GL_BUTTON_CONFIRM_TERTIARY_BACKGROUND_COLOR_FOCUS = 'rgba(99, 166, 233, 0.16)';\nconst GL_BUTTON_CONFIRM_TERTIARY_BACKGROUND_COLOR_ACTIVE = 'rgba(11, 92, 173, 0.24)';\nconst GL_BUTTON_CONFIRM_TERTIARY_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_BUTTON_CONFIRM_TERTIARY_BORDER_COLOR_HOVER = 'transparent';\nconst GL_BUTTON_CONFIRM_TERTIARY_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_BUTTON_CONFIRM_TERTIARY_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_BUTTON_DANGER_PRIMARY_FOREGROUND_COLOR_DEFAULT = '#fff';\nconst GL_BUTTON_DANGER_PRIMARY_FOREGROUND_COLOR_HOVER = '#fff';\nconst GL_BUTTON_DANGER_PRIMARY_FOREGROUND_COLOR_FOCUS = '#fff';\nconst GL_BUTTON_DANGER_PRIMARY_FOREGROUND_COLOR_ACTIVE = '#fff';\nconst GL_BUTTON_DANGER_PRIMARY_BACKGROUND_COLOR_DEFAULT = '#dd2b0e';\nconst GL_BUTTON_DANGER_PRIMARY_BACKGROUND_COLOR_HOVER = '#c91c00';\nconst GL_BUTTON_DANGER_PRIMARY_BACKGROUND_COLOR_FOCUS = '#c91c00';\nconst GL_BUTTON_DANGER_PRIMARY_BACKGROUND_COLOR_ACTIVE = '#8d1300';\nconst GL_BUTTON_DANGER_PRIMARY_BORDER_COLOR_DEFAULT = '#c91c00';\nconst GL_BUTTON_DANGER_PRIMARY_BORDER_COLOR_HOVER = '#8d1300';\nconst GL_BUTTON_DANGER_PRIMARY_BORDER_COLOR_FOCUS = '#8d1300';\nconst GL_BUTTON_DANGER_PRIMARY_BORDER_COLOR_ACTIVE = '#660e00';\nconst GL_BUTTON_DANGER_SECONDARY_FOREGROUND_COLOR_DEFAULT = '#dd2b0e';\nconst GL_BUTTON_DANGER_SECONDARY_FOREGROUND_COLOR_HOVER = '#ae1800';\nconst GL_BUTTON_DANGER_SECONDARY_FOREGROUND_COLOR_FOCUS = '#ae1800';\nconst GL_BUTTON_DANGER_SECONDARY_FOREGROUND_COLOR_ACTIVE = '#660e00';\nconst GL_BUTTON_DANGER_SECONDARY_BACKGROUND_COLOR_DEFAULT = '#fff';\nconst GL_BUTTON_DANGER_SECONDARY_BACKGROUND_COLOR_HOVER = '#fcf1ef';\nconst GL_BUTTON_DANGER_SECONDARY_BACKGROUND_COLOR_FOCUS = '#fcf1ef';\nconst GL_BUTTON_DANGER_SECONDARY_BACKGROUND_COLOR_ACTIVE = '#fdd4cd';\nconst GL_BUTTON_DANGER_SECONDARY_BORDER_COLOR_DEFAULT = '#dd2b0e';\nconst GL_BUTTON_DANGER_SECONDARY_BORDER_COLOR_HOVER = '#ae1800';\nconst GL_BUTTON_DANGER_SECONDARY_BORDER_COLOR_FOCUS = '#ae1800';\nconst GL_BUTTON_DANGER_SECONDARY_BORDER_COLOR_ACTIVE = '#660e00';\nconst GL_BUTTON_DANGER_TERTIARY_FOREGROUND_COLOR_DEFAULT = '#dd2b0e';\nconst GL_BUTTON_DANGER_TERTIARY_FOREGROUND_COLOR_HOVER = '#ae1800';\nconst GL_BUTTON_DANGER_TERTIARY_FOREGROUND_COLOR_FOCUS = '#ae1800';\nconst GL_BUTTON_DANGER_TERTIARY_FOREGROUND_COLOR_ACTIVE = '#660e00';\nconst GL_BUTTON_DANGER_TERTIARY_BACKGROUND_COLOR_DEFAULT = 'rgba(245, 127, 108, 0.0)';\nconst GL_BUTTON_DANGER_TERTIARY_BACKGROUND_COLOR_HOVER = 'rgba(245, 127, 108, 0.16)';\nconst GL_BUTTON_DANGER_TERTIARY_BACKGROUND_COLOR_FOCUS = 'rgba(245, 127, 108, 0.16)';\nconst GL_BUTTON_DANGER_TERTIARY_BACKGROUND_COLOR_ACTIVE = 'rgba(174, 24, 0, 0.24)';\nconst GL_BUTTON_DANGER_TERTIARY_BORDER_COLOR_DEFAULT = 'transparent';\nconst GL_BUTTON_DANGER_TERTIARY_BORDER_COLOR_HOVER = 'transparent';\nconst GL_BUTTON_DANGER_TERTIARY_BORDER_COLOR_FOCUS = 'transparent';\nconst GL_BUTTON_DANGER_TERTIARY_BORDER_COLOR_ACTIVE = 'transparent';\nconst GL_BUTTON_DASHED_BORDER_COLOR_DEFAULT = '#89888d';\nconst GL_BUTTON_DASHED_BORDER_COLOR_HOVER = '#89888d';\nconst GL_BUTTON_DASHED_BORDER_COLOR_FOCUS = '#89888d';\nconst GL_BUTTON_DASHED_BORDER_COLOR_ACTIVE = '#626168';\nconst GL_BUTTON_LINK_TEXT_COLOR_DEFAULT = '#0b5cad';\nconst GL_BUTTON_LINK_TEXT_COLOR_HOVER = '#0b5cad';\nconst GL_BUTTON_LINK_TEXT_COLOR_FOCUS = '#0b5cad';\nconst GL_BUTTON_LINK_TEXT_COLOR_ACTIVE = '#0b5cad';\nconst GL_BUTTON_SELECTED_FOREGROUND_COLOR_DEFAULT = '#3a383f';\nconst GL_BUTTON_SELECTED_FOREGROUND_COLOR_HOVER = '#3a383f';\nconst GL_BUTTON_SELECTED_FOREGROUND_COLOR_FOCUS = '#3a383f';\nconst GL_BUTTON_SELECTED_FOREGROUND_COLOR_ACTIVE = '#3a383f';\nconst GL_BUTTON_SELECTED_BACKGROUND_COLOR_DEFAULT = '#fff';\nconst GL_BUTTON_SELECTED_BACKGROUND_COLOR_HOVER = '#ececef';\nconst GL_BUTTON_SELECTED_BACKGROUND_COLOR_FOCUS = '#ececef';\nconst GL_BUTTON_SELECTED_BACKGROUND_COLOR_ACTIVE = '#dcdcde';\nconst GL_BUTTON_SELECTED_BORDER_COLOR_DEFAULT = '#a4a3a8';\nconst GL_BUTTON_SELECTED_BORDER_COLOR_HOVER = '#89888d';\nconst GL_BUTTON_SELECTED_BORDER_COLOR_FOCUS = '#89888d';\nconst GL_BUTTON_SELECTED_BORDER_COLOR_ACTIVE = '#626168';\nconst GL_BUTTON_DISABLED_FOREGROUND_COLOR = '#737278';\nconst GL_BUTTON_DISABLED_BACKGROUND_COLOR = '#fbfafd';\nconst GL_BUTTON_DISABLED_BORDER_COLOR = '#dcdcde';\nconst GL_DATEPICKER_BACKGROUND_COLOR = '#fff';\nconst GL_DATEPICKER_DATE_TEXT_COLOR_SELECTED = '#fff';\nconst GL_DROPDOWN_BACKGROUND_COLOR = '#fff';\nconst GL_DROPDOWN_BORDER_COLOR = '#bfbfc3';\nconst GL_DROPDOWN_OPTION_TEXT_COLOR_DEFAULT = '#28272d';\nconst GL_DROPDOWN_OPTION_TEXT_COLOR_HOVER = '#28272d';\nconst GL_DROPDOWN_OPTION_TEXT_COLOR_FOCUS = '#28272d';\nconst GL_DROPDOWN_OPTION_TEXT_COLOR_ACTIVE = '#28272d';\nconst GL_DROPDOWN_OPTION_TEXT_COLOR_DISABLED = '#89888d';\nconst GL_DROPDOWN_OPTION_INDICATOR_COLOR_SELECTED_DEFAULT = '#1f75cb';\nconst GL_DROPDOWN_OPTION_INDICATOR_COLOR_SELECTED_HOVER = '#0b5cad';\nconst GL_DROPDOWN_OPTION_INDICATOR_COLOR_SELECTED_FOCUS = '#0b5cad';\nconst GL_DROPDOWN_OPTION_INDICATOR_COLOR_SELECTED_ACTIVE = '#0b5cad';\nconst GL_DROPDOWN_OPTION_BACKGROUND_COLOR_UNSELECTED_DEFAULT = 'rgba(164, 163, 168, 0.0)';\nconst GL_DROPDOWN_OPTION_BACKGROUND_COLOR_UNSELECTED_HOVER = 'rgba(164, 163, 168, 0.16)';\nconst GL_DROPDOWN_OPTION_BACKGROUND_COLOR_UNSELECTED_FOCUS = 'rgba(164, 163, 168, 0.16)';\nconst GL_DROPDOWN_OPTION_BACKGROUND_COLOR_UNSELECTED_ACTIVE = 'rgba(83, 81, 88, 0.24)';\nconst GL_DROPDOWN_OPTION_BACKGROUND_COLOR_SELECTED_DEFAULT = '#ececef';\nconst GL_DROPDOWN_OPTION_BACKGROUND_COLOR_SELECTED_HOVER = '#dcdcde';\nconst GL_DROPDOWN_OPTION_BACKGROUND_COLOR_SELECTED_FOCUS = '#dcdcde';\nconst GL_DROPDOWN_OPTION_BACKGROUND_COLOR_SELECTED_ACTIVE = '#bfbfc3';\nconst GL_FILTERED_SEARCH_TOKEN_TYPE_BACKGROUND_COLOR_DEFAULT = '#ececef';\nconst GL_FILTERED_SEARCH_TOKEN_TYPE_BACKGROUND_COLOR_HOVER = '#dcdcde';\nconst GL_FILTERED_SEARCH_TOKEN_DATA_BACKGROUND_COLOR_DEFAULT = '#dcdcde';\nconst GL_FILTERED_SEARCH_TOKEN_DATA_BACKGROUND_COLOR_HOVER = '#bfbfc3';\nconst GL_FILTERED_SEARCH_TOKEN_OPERATOR_BACKGROUND_COLOR_DEFAULT = '#ececef';\nconst GL_FILTERED_SEARCH_TOKEN_OPERATOR_BACKGROUND_COLOR_HOVER = '#dcdcde';\nconst GL_ILLUSTRATION_STROKE_COLOR_DEFAULT = '#171321';\nconst GL_ILLUSTRATION_STROKE_WIDTH_DEFAULT = '0.125rem';\nconst GL_ILLUSTRATION_FILL_COLOR_DEFAULT = '#fff';\nconst GL_ILLUSTRATION_STATUS_FILL_COLOR_NEUTRAL = '#aea5d6';\nconst GL_ILLUSTRATION_STATUS_FILL_COLOR_SUCCESS = '#6fdac9';\nconst GL_ILLUSTRATION_STATUS_FILL_COLOR_WARNING = '#fca326';\nconst GL_ILLUSTRATION_STATUS_FILL_COLOR_DANGER = '#ff9d73';\nconst GL_ILLUSTRATION_ACCENT_STROKE_COLOR_ORANGE = '#ff9d73';\nconst GL_ILLUSTRATION_ACCENT_STROKE_COLOR_TEAL = '#6fdac9';\nconst GL_ILLUSTRATION_ACCENT_STROKE_COLOR_STRONG = '#aea5d6';\nconst GL_ILLUSTRATION_ACCENT_FILL_COLOR_SUBTLE = '#d0c5e2';\nconst GL_ILLUSTRATION_ACCENT_FILL_COLOR_STRONG = '#aea5d6';\nconst GL_ILLUSTRATION_ACCENT_FILL_COLOR_ORANGE = '#ff9d73';\nconst GL_ILLUSTRATION_ACCENT_FILL_COLOR_TEAL = '#6fdac9';\nconst GL_ILLUSTRATION_BASE_FILL_COLOR = '#e7e4f2';\nconst GL_ILLUSTRATION_ISOMETRIC_STROKE_COLOR_DEFAULT = '#171321';\nconst GL_ILLUSTRATION_ISOMETRIC_STROKE_WIDTH_DEFAULT = '0.125rem';\nconst GL_ILLUSTRATION_ISOMETRIC_GLYPH_TOP_FILL_COLOR = '#c5f4ec';\nconst GL_ILLUSTRATION_ISOMETRIC_GLYPH_FRONT_FILL_COLOR = '#fff';\nconst GL_ILLUSTRATION_ISOMETRIC_GLYPH_SIDE_FILL_COLOR = '#6fdac9';\nconst GL_ILLUSTRATION_ISOMETRIC_GLYPH_SHADOW_FILL_COLOR = '#10b1b1';\nconst GL_ILLUSTRATION_ISOMETRIC_OBJECT_TOP_FILL_COLOR = '#ff9d73';\nconst GL_ILLUSTRATION_ISOMETRIC_OBJECT_FRONT_FILL_COLOR = '#ffc2a8';\nconst GL_ILLUSTRATION_ISOMETRIC_OBJECT_SIDE_FILL_COLOR = '#ff7b42';\nconst GL_ILLUSTRATION_ISOMETRIC_OBJECT_HIGHLIGHT_FILL_COLOR = '#fff';\nconst GL_ILLUSTRATION_ISOMETRIC_OBJECT_SHADOW_FILL_COLOR = '#e24329';\nconst GL_ILLUSTRATION_ISOMETRIC_ACCENT_TOP_FILL_COLOR = '#45424d';\nconst GL_ILLUSTRATION_ISOMETRIC_ACCENT_FRONT_FILL_COLOR = '#74717a';\nconst GL_ILLUSTRATION_ISOMETRIC_ACCENT_SIDE_FILL_COLOR = '#2b2838';\nconst GL_ILLUSTRATION_ISOMETRIC_BASE_TOP_FILL_COLOR = '#e7e4f2';\nconst GL_ILLUSTRATION_ISOMETRIC_BASE_FRONT_FILL_COLOR = '#d5d0e8';\nconst GL_ILLUSTRATION_ISOMETRIC_BASE_SIDE_FILL_COLOR = '#aea5d6';\nconst GL_LABEL_LIGHT_TEXT_COLOR = '#18171d';\nconst GL_LABEL_LIGHT_BUTTON_BACKGROUND_COLOR_DEFAULT = 'transparent';\nconst GL_LABEL_LIGHT_BUTTON_BACKGROUND_COLOR_HOVER = '#18171d';\nconst GL_LABEL_LIGHT_BUTTON_ICON_COLOR_DEFAULT = '#18171d';\nconst GL_LABEL_DARK_TEXT_COLOR = '#fff';\nconst GL_LABEL_DARK_BUTTON_BACKGROUND_COLOR_DEFAULT = 'transparent';\nconst GL_LABEL_DARK_BUTTON_BACKGROUND_COLOR_HOVER = '#fff';\nconst GL_LABEL_DARK_BUTTON_ICON_COLOR_DEFAULT = '#fff';\nconst GL_LABEL_SCOPED_TEXT_COLOR = '#18171d';\nconst GL_LABEL_SCOPED_BUTTON_BACKGROUND_COLOR_HOVER = '#18171d';\nconst GL_LABEL_SCOPED_BUTTON_ICON_COLOR_DEFAULT = '#18171d';\nconst GL_LABEL_SCOPED_BUTTON_ICON_COLOR_HOVER = '#fff';\nconst GL_LINK_MENTION_TEXT_COLOR_DEFAULT = '#0b5cad';\nconst GL_LINK_MENTION_TEXT_COLOR_CURRENT = '#703800';\nconst GL_LINK_MENTION_BACKGROUND_COLOR_DEFAULT = '#cbe2f9';\nconst GL_LINK_MENTION_BACKGROUND_COLOR_CURRENT = '#f5d9a8';\nconst GL_PROGRESS_BAR_INDICATOR_COLOR_DEFAULT = '#1f75cb';\nconst GL_PROGRESS_BAR_INDICATOR_COLOR_SUCCESS = '#108548';\nconst GL_PROGRESS_BAR_INDICATOR_COLOR_WARNING = '#ab6100';\nconst GL_PROGRESS_BAR_INDICATOR_COLOR_DANGER = '#dd2b0e';\nconst GL_PROGRESS_BAR_TRACK_COLOR = '#bfbfc3';\nconst GL_SKELETON_LOADER_BACKGROUND_COLOR = '#dcdcde';\nconst GL_SKELETON_LOADER_SHIMMER_COLOR = '#ececef';\nconst GL_SPINNER_TRACK_COLOR_DEFAULT = '#dcdcde';\nconst GL_SPINNER_TRACK_COLOR_LIGHT = '#3a383f';\nconst GL_SPINNER_SEGMENT_COLOR_DEFAULT = '#4c4b51';\nconst GL_SPINNER_SEGMENT_COLOR_LIGHT = '#bfbfc3';\nconst GL_TABLE_ROW_BACKGROUND_COLOR_HOVER = '#fbfafd';\nconst GL_TABLE_SORTING_ICON_COLOR = '#18171d';\nconst GL_TAB_SELECTED_INDICATOR_COLOR_DEFAULT = '#1f75cb';\nconst GL_TOGGLE_SWITCH_ICON_COLOR_UNCHECKED_DEFAULT = '#626168';\nconst GL_TOGGLE_SWITCH_ICON_COLOR_UNCHECKED_HOVER = '#4c4b51';\nconst GL_TOGGLE_SWITCH_ICON_COLOR_UNCHECKED_FOCUS = '#4c4b51';\nconst GL_TOGGLE_SWITCH_ICON_COLOR_UNCHECKED_ACTIVE = '#3a383f';\nconst GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_DEFAULT = '#1f75cb';\nconst GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_HOVER = '#1068bf';\nconst GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_FOCUS = '#1068bf';\nconst GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_ACTIVE = '#0b5cad';\nconst GL_TOGGLE_SWITCH_ICON_COLOR_DISABLED = '#ececef';\nconst GL_TOKEN_SELECTOR_TOKEN_CONTAINER_TOKEN_BACKGROUND_COLOR_FOCUS = '#a4a3a8';\nconst GL_TOKEN_FOREGROUND_COLOR = '#3a383f';\nconst GL_TOKEN_BACKGROUND_COLOR = '#dcdcde';\nconst GL_CONTROL_BACKGROUND_COLOR_DEFAULT = '#fff';\nconst GL_CONTROL_BACKGROUND_COLOR_DISABLED = '#fbfafd';\nconst GL_CONTROL_BACKGROUND_COLOR_CONCATENATION = '#fbfafd';\nconst GL_CONTROL_BACKGROUND_COLOR_READONLY = 'rgba(05, 05, 06, 0.02)';\nconst GL_CONTROL_BACKGROUND_COLOR_SELECTED_DEFAULT = '#1f75cb';\nconst GL_CONTROL_BACKGROUND_COLOR_SELECTED_HOVER = '#0b5cad';\nconst GL_CONTROL_BACKGROUND_COLOR_SELECTED_FOCUS = '#0b5cad';\nconst GL_CONTROL_BORDER_COLOR_DEFAULT = '#89888d';\nconst GL_CONTROL_BORDER_COLOR_HOVER = '#626168';\nconst GL_CONTROL_BORDER_COLOR_FOCUS = '#28272d';\nconst GL_CONTROL_BORDER_COLOR_DISABLED = '#dcdcde';\nconst GL_CONTROL_BORDER_COLOR_ERROR = '#dd2b0e';\nconst GL_CONTROL_BORDER_COLOR_SELECTED_DEFAULT = '#1f75cb';\nconst GL_CONTROL_BORDER_COLOR_SELECTED_HOVER = '#0b5cad';\nconst GL_CONTROL_BORDER_COLOR_SELECTED_FOCUS = '#0b5cad';\nconst GL_CONTROL_TEXT_COLOR_ERROR = '#c91c00';\nconst GL_CONTROL_TEXT_COLOR_VALID = '#217645';\nconst GL_CONTROL_PLACEHOLDER_COLOR = '#89888d';\nconst GL_CONTROL_INDICATOR_COLOR_SELECTED = '#fff';\nconst GL_CONTROL_INDICATOR_COLOR_DISABLED = '#737278';\nconst THEME_INDIGO_10 = '#f8f8ff';\nconst THEME_INDIGO_50 = '#f1f1ff';\nconst THEME_INDIGO_100 = '#dbdbf8';\nconst THEME_INDIGO_200 = '#c7c7f2';\nconst THEME_INDIGO_300 = '#a2a2e6';\nconst THEME_INDIGO_400 = '#8181d7';\nconst THEME_INDIGO_500 = '#6666c4';\nconst THEME_INDIGO_600 = '#5252b5';\nconst THEME_INDIGO_700 = '#41419f';\nconst THEME_INDIGO_800 = '#303083';\nconst THEME_INDIGO_900 = '#222261';\nconst THEME_INDIGO_950 = '#14143d';\nconst THEME_BLUE_10 = '#e6ecf0';\nconst THEME_BLUE_50 = '#cdd8e3';\nconst THEME_BLUE_100 = '#b9cadc';\nconst THEME_BLUE_200 = '#a6bdd5';\nconst THEME_BLUE_300 = '#81a5c9';\nconst THEME_BLUE_400 = '#628eb9';\nconst THEME_BLUE_500 = '#4977a5';\nconst THEME_BLUE_600 = '#346596';\nconst THEME_BLUE_700 = '#235180';\nconst THEME_BLUE_800 = '#153c63';\nconst THEME_BLUE_900 = '#0b2640';\nconst THEME_BLUE_950 = '#04101c';\nconst THEME_LIGHT_BLUE_10 = '#eef3f7';\nconst THEME_LIGHT_BLUE_50 = '#dde6ee';\nconst THEME_LIGHT_BLUE_100 = '#c1d4e6';\nconst THEME_LIGHT_BLUE_200 = '#a0bedc';\nconst THEME_LIGHT_BLUE_300 = '#74a3d3';\nconst THEME_LIGHT_BLUE_400 = '#4f8bc7';\nconst THEME_LIGHT_BLUE_500 = '#3476b9';\nconst THEME_LIGHT_BLUE_600 = '#2268ae';\nconst THEME_LIGHT_BLUE_700 = '#145aa1';\nconst THEME_LIGHT_BLUE_800 = '#0e4d8d';\nconst THEME_LIGHT_BLUE_900 = '#0c4277';\nconst THEME_LIGHT_BLUE_950 = '#0a3764';\nconst THEME_GREEN_10 = '#eef4ef';\nconst THEME_GREEN_50 = '#dde9de';\nconst THEME_GREEN_100 = '#b1d6b5';\nconst THEME_GREEN_200 = '#8cc497';\nconst THEME_GREEN_300 = '#69af7d';\nconst THEME_GREEN_400 = '#499767';\nconst THEME_GREEN_500 = '#308258';\nconst THEME_GREEN_600 = '#25744c';\nconst THEME_GREEN_700 = '#1b653f';\nconst THEME_GREEN_800 = '#155635';\nconst THEME_GREEN_900 = '#0e4328';\nconst THEME_GREEN_950 = '#052e19';\nconst THEME_RED_10 = '#faf4f3';\nconst THEME_RED_50 = '#f4e9e7';\nconst THEME_RED_100 = '#ecd3d0';\nconst THEME_RED_200 = '#e3bab5';\nconst THEME_RED_300 = '#d59086';\nconst THEME_RED_400 = '#c66e60';\nconst THEME_RED_500 = '#ad4a3b';\nconst THEME_RED_600 = '#a13322';\nconst THEME_RED_700 = '#8f2110';\nconst THEME_RED_800 = '#761405';\nconst THEME_RED_900 = '#580d02';\nconst THEME_RED_950 = '#380700';\nconst THEME_LIGHT_RED_10 = '#fdf9f8';\nconst THEME_LIGHT_RED_50 = '#faf2f1';\nconst THEME_LIGHT_RED_100 = '#f6d9d5';\nconst THEME_LIGHT_RED_200 = '#ebada2';\nconst THEME_LIGHT_RED_300 = '#e07f6f';\nconst THEME_LIGHT_RED_400 = '#d36250';\nconst THEME_LIGHT_RED_500 = '#c24b38';\nconst THEME_LIGHT_RED_600 = '#b53a26';\nconst THEME_LIGHT_RED_700 = '#a02e1c';\nconst THEME_LIGHT_RED_800 = '#8b2212';\nconst THEME_LIGHT_RED_900 = '#751709';\nconst THEME_LIGHT_RED_950 = '#5c1105';\nconst BLACK = '#050506';\nconst WHITE = '#fff';\nconst BLUE_50 = '#e9f3fc';\nconst BLUE_100 = '#cbe2f9';\nconst BLUE_200 = '#9dc7f1';\nconst BLUE_300 = '#63a6e9';\nconst BLUE_400 = '#428fdc';\nconst BLUE_500 = '#1f75cb';\nconst BLUE_600 = '#1068bf';\nconst BLUE_700 = '#0b5cad';\nconst BLUE_800 = '#064787';\nconst BLUE_900 = '#033464';\nconst BLUE_950 = '#002850';\nconst GRAY_10 = '#fbfafd';\nconst GRAY_50 = '#ececef';\nconst GRAY_100 = '#dcdcde';\nconst GRAY_200 = '#bfbfc3';\nconst GRAY_300 = '#a4a3a8';\nconst GRAY_400 = '#89888d';\nconst GRAY_500 = '#737278';\nconst GRAY_600 = '#626168';\nconst GRAY_700 = '#4c4b51';\nconst GRAY_800 = '#3a383f';\nconst GRAY_900 = '#28272d';\nconst GRAY_950 = '#18171d';\nconst GREEN_50 = '#ecf4ee';\nconst GREEN_100 = '#c3e6cd';\nconst GREEN_200 = '#91d4a8';\nconst GREEN_300 = '#52b87a';\nconst GREEN_400 = '#2da160';\nconst GREEN_500 = '#108548';\nconst GREEN_600 = '#217645';\nconst GREEN_700 = '#24663b';\nconst GREEN_800 = '#0d532a';\nconst GREEN_900 = '#0a4020';\nconst GREEN_950 = '#072b15';\nconst ORANGE_50 = '#fdf1dd';\nconst ORANGE_100 = '#f5d9a8';\nconst ORANGE_200 = '#e9be74';\nconst ORANGE_300 = '#d99530';\nconst ORANGE_400 = '#c17d10';\nconst ORANGE_500 = '#ab6100';\nconst ORANGE_600 = '#9e5400';\nconst ORANGE_700 = '#8f4700';\nconst ORANGE_800 = '#703800';\nconst ORANGE_900 = '#5c2900';\nconst ORANGE_950 = '#421f00';\nconst PURPLE_50 = '#f4f0ff';\nconst PURPLE_100 = '#e1d8f9';\nconst PURPLE_200 = '#cbbbf2';\nconst PURPLE_300 = '#ac93e6';\nconst PURPLE_400 = '#9475db';\nconst PURPLE_500 = '#7b58cf';\nconst PURPLE_600 = '#694cc0';\nconst PURPLE_700 = '#5943b6';\nconst PURPLE_800 = '#453894';\nconst PURPLE_900 = '#2f2a6b';\nconst PURPLE_950 = '#232150';\nconst RED_50 = '#fcf1ef';\nconst RED_100 = '#fdd4cd';\nconst RED_200 = '#fcb5aa';\nconst RED_300 = '#f57f6c';\nconst RED_400 = '#ec5941';\nconst RED_500 = '#dd2b0e';\nconst RED_600 = '#c91c00';\nconst RED_700 = '#ae1800';\nconst RED_800 = '#8d1300';\nconst RED_900 = '#660e00';\nconst RED_950 = '#4d0a00';\nconst BRAND_CHARCOAL = '#171321';\nconst BRAND_ORANGE_01 = '#fca326';\nconst BRAND_ORANGE_02 = '#fc6d26';\nconst BRAND_ORANGE_03 = '#e24329';\nconst BRAND_PURPLE_01 = '#a989f5';\nconst BRAND_PURPLE_02 = '#7759c2';\nconst BRAND_GRAY_01 = '#d1d0d3';\nconst BRAND_GRAY_02 = '#a2a1a6';\nconst BRAND_GRAY_03 = '#74717a';\nconst BRAND_GRAY_04 = '#45424d';\nconst BRAND_GRAY_05 = '#2b2838';\nconst T_GRAY_A_16 = 'rgba(05, 05, 06, 0.16)';\nconst T_GRAY_A_24 = 'rgba(05, 05, 06, 0.24)';\nconst T_GRAY_A_02 = 'rgba(05, 05, 06, 0.02)';\nconst T_GRAY_A_04 = 'rgba(05, 05, 06, 0.04)';\nconst T_GRAY_A_06 = 'rgba(05, 05, 06, 0.06)';\nconst T_GRAY_A_08 = 'rgba(05, 05, 06, 0.08)';\nconst T_WHITE_A_16 = 'rgba(255, 255, 255, 0.16)';\nconst T_WHITE_A_24 = 'rgba(255, 255, 255, 0.24)';\nconst T_WHITE_A_36 = 'rgba(255, 255, 255, 0.36)';\nconst T_WHITE_A_02 = 'rgba(255, 255, 255, 0.02)';\nconst T_WHITE_A_04 = 'rgba(255, 255, 255, 0.04)';\nconst T_WHITE_A_06 = 'rgba(255, 255, 255, 0.06)';\nconst T_WHITE_A_08 = 'rgba(255, 255, 255, 0.08)';\nconst GL_FEEDBACK_STRONG_BACKGROUND_COLOR = '#3a383f';\nconst GL_FEEDBACK_STRONG_TEXT_COLOR = '#fff';\nconst GL_FEEDBACK_STRONG_ICON_COLOR = '#fff';\nconst GL_FEEDBACK_STRONG_LINK_COLOR = '#63a6e9';\nconst GL_FEEDBACK_NEUTRAL_BACKGROUND_COLOR = '#ececef';\nconst GL_FEEDBACK_NEUTRAL_TEXT_COLOR = '#4c4b51';\nconst GL_FEEDBACK_NEUTRAL_ICON_COLOR = '#626168';\nconst GL_FEEDBACK_INFO_BACKGROUND_COLOR = '#e9f3fc';\nconst GL_FEEDBACK_INFO_TEXT_COLOR = '#0b5cad';\nconst GL_FEEDBACK_INFO_ICON_COLOR = '#1068bf';\nconst GL_FEEDBACK_SUCCESS_BACKGROUND_COLOR = '#ecf4ee';\nconst GL_FEEDBACK_SUCCESS_TEXT_COLOR = '#24663b';\nconst GL_FEEDBACK_SUCCESS_ICON_COLOR = '#217645';\nconst GL_FEEDBACK_WARNING_BACKGROUND_COLOR = '#fdf1dd';\nconst GL_FEEDBACK_WARNING_TEXT_COLOR = '#8f4700';\nconst GL_FEEDBACK_WARNING_ICON_COLOR = '#9e5400';\nconst GL_FEEDBACK_DANGER_BACKGROUND_COLOR = '#fcf1ef';\nconst GL_FEEDBACK_DANGER_TEXT_COLOR = '#ae1800';\nconst GL_FEEDBACK_DANGER_ICON_COLOR = '#c91c00';\nconst GL_FOCUS_RING_OUTER_COLOR = '#1f75cb';\nconst GL_FOCUS_RING_INNER_COLOR = '#fff';\nconst GL_ICON_COLOR_DEFAULT = '#4c4b51';\nconst GL_ICON_COLOR_SUBTLE = '#737278';\nconst GL_ICON_COLOR_STRONG = '#28272d';\nconst GL_ICON_COLOR_DISABLED = '#a4a3a8';\nconst GL_ICON_COLOR_LINK = '#0b5cad';\nconst GL_ICON_COLOR_INFO = '#0b5cad';\nconst GL_ICON_COLOR_WARNING = '#9e5400';\nconst GL_ICON_COLOR_DANGER = '#c91c00';\nconst GL_ICON_COLOR_SUCCESS = '#217645';\nconst GL_LINE_HEIGHT_12 = '0.75rem';\nconst GL_LINE_HEIGHT_16 = '1rem';\nconst GL_LINE_HEIGHT_20 = '1.25rem';\nconst GL_LINE_HEIGHT_24 = '1.5rem';\nconst GL_LINE_HEIGHT_28 = '1.75rem';\nconst GL_LINE_HEIGHT_32 = '2rem';\nconst GL_LINE_HEIGHT_36 = '2.25rem';\nconst GL_LINE_HEIGHT_42 = '2.625rem';\nconst GL_LINE_HEIGHT_44 = '2.75rem';\nconst GL_LINE_HEIGHT_52 = '3.25rem';\nconst GL_SHADOW_COLOR_DEFAULT = 'rgba(05, 05, 06, 0.16)';\nconst GL_STATUS_NEUTRAL_BACKGROUND_COLOR = '#dcdcde';\nconst GL_STATUS_NEUTRAL_TEXT_COLOR = '#4c4b51';\nconst GL_STATUS_NEUTRAL_ICON_COLOR = '#737278';\nconst GL_STATUS_INFO_BACKGROUND_COLOR = '#cbe2f9';\nconst GL_STATUS_INFO_TEXT_COLOR = '#0b5cad';\nconst GL_STATUS_INFO_ICON_COLOR = '#1f75cb';\nconst GL_STATUS_SUCCESS_BACKGROUND_COLOR = '#c3e6cd';\nconst GL_STATUS_SUCCESS_TEXT_COLOR = '#24663b';\nconst GL_STATUS_SUCCESS_ICON_COLOR = '#108548';\nconst GL_STATUS_WARNING_BACKGROUND_COLOR = '#f5d9a8';\nconst GL_STATUS_WARNING_TEXT_COLOR = '#8f4700';\nconst GL_STATUS_WARNING_ICON_COLOR = '#ab6100';\nconst GL_STATUS_DANGER_BACKGROUND_COLOR = '#fdd4cd';\nconst GL_STATUS_DANGER_TEXT_COLOR = '#ae1800';\nconst GL_STATUS_DANGER_ICON_COLOR = '#dd2b0e';\nconst GL_STATUS_BRAND_BACKGROUND_COLOR = '#e1d8f9';\nconst GL_STATUS_BRAND_TEXT_COLOR = '#5943b6';\nconst GL_STATUS_BRAND_ICON_COLOR = '#7b58cf';\nconst GL_TEXT_PRIMARY = '#28272d';\nconst GL_TEXT_SECONDARY = '#737278';\nconst GL_TEXT_TERTIARY = '#89888d';\nconst GL_TEXT_COLOR_DEFAULT = '#3a383f';\nconst GL_TEXT_COLOR_SUBTLE = '#626168';\nconst GL_TEXT_COLOR_STRONG = '#18171d';\nconst GL_TEXT_COLOR_HEADING = '#18171d';\nconst GL_TEXT_COLOR_LINK = '#0b5cad';\nconst GL_TEXT_COLOR_WARNING = '#9e5400';\nconst GL_TEXT_COLOR_DANGER = '#c91c00';\nconst GL_TEXT_COLOR_SUCCESS = '#217645';\nconst GL_TEXT_COLOR_DISABLED = '#89888d';\n\nexport { BLACK, BLUE_100, BLUE_200, BLUE_300, BLUE_400, BLUE_50, BLUE_500, BLUE_600, BLUE_700, BLUE_800, BLUE_900, BLUE_950, BRAND_CHARCOAL, BRAND_GRAY_01, BRAND_GRAY_02, BRAND_GRAY_03, BRAND_GRAY_04, BRAND_GRAY_05, BRAND_ORANGE_01, BRAND_ORANGE_02, BRAND_ORANGE_03, BRAND_PURPLE_01, BRAND_PURPLE_02, DATA_VIZ_AQUA_100, DATA_VIZ_AQUA_200, DATA_VIZ_AQUA_300, DATA_VIZ_AQUA_400, DATA_VIZ_AQUA_50, DATA_VIZ_AQUA_500, DATA_VIZ_AQUA_600, DATA_VIZ_AQUA_700, DATA_VIZ_AQUA_800, DATA_VIZ_AQUA_900, DATA_VIZ_AQUA_950, DATA_VIZ_BLUE_100, DATA_VIZ_BLUE_200, DATA_VIZ_BLUE_300, DATA_VIZ_BLUE_400, DATA_VIZ_BLUE_50, DATA_VIZ_BLUE_500, DATA_VIZ_BLUE_600, DATA_VIZ_BLUE_700, DATA_VIZ_BLUE_800, DATA_VIZ_BLUE_900, DATA_VIZ_BLUE_950, DATA_VIZ_GREEN_100, DATA_VIZ_GREEN_200, DATA_VIZ_GREEN_300, DATA_VIZ_GREEN_400, DATA_VIZ_GREEN_50, DATA_VIZ_GREEN_500, DATA_VIZ_GREEN_600, DATA_VIZ_GREEN_700, DATA_VIZ_GREEN_800, DATA_VIZ_GREEN_900, DATA_VIZ_GREEN_950, DATA_VIZ_MAGENTA_100, DATA_VIZ_MAGENTA_200, DATA_VIZ_MAGENTA_300, DATA_VIZ_MAGENTA_400, DATA_VIZ_MAGENTA_50, DATA_VIZ_MAGENTA_500, DATA_VIZ_MAGENTA_600, DATA_VIZ_MAGENTA_700, DATA_VIZ_MAGENTA_800, DATA_VIZ_MAGENTA_900, DATA_VIZ_MAGENTA_950, DATA_VIZ_ORANGE_100, DATA_VIZ_ORANGE_200, DATA_VIZ_ORANGE_300, DATA_VIZ_ORANGE_400, DATA_VIZ_ORANGE_50, DATA_VIZ_ORANGE_500, DATA_VIZ_ORANGE_600, DATA_VIZ_ORANGE_700, DATA_VIZ_ORANGE_800, DATA_VIZ_ORANGE_900, DATA_VIZ_ORANGE_950, GL_ACTION_CONFIRM_BACKGROUND_COLOR_ACTIVE, GL_ACTION_CONFIRM_BACKGROUND_COLOR_DEFAULT, GL_ACTION_CONFIRM_BACKGROUND_COLOR_FOCUS, GL_ACTION_CONFIRM_BACKGROUND_COLOR_HOVER, GL_ACTION_CONFIRM_BORDER_COLOR_ACTIVE, GL_ACTION_CONFIRM_BORDER_COLOR_DEFAULT, GL_ACTION_CONFIRM_BORDER_COLOR_FOCUS, GL_ACTION_CONFIRM_BORDER_COLOR_HOVER, GL_ACTION_CONFIRM_FOREGROUND_COLOR_ACTIVE, GL_ACTION_CONFIRM_FOREGROUND_COLOR_DEFAULT, GL_ACTION_CONFIRM_FOREGROUND_COLOR_FOCUS, GL_ACTION_CONFIRM_FOREGROUND_COLOR_HOVER, GL_ACTION_DANGER_BACKGROUND_COLOR_ACTIVE, GL_ACTION_DANGER_BACKGROUND_COLOR_DEFAULT, GL_ACTION_DANGER_BACKGROUND_COLOR_FOCUS, GL_ACTION_DANGER_BACKGROUND_COLOR_HOVER, GL_ACTION_DANGER_BORDER_COLOR_ACTIVE, GL_ACTION_DANGER_BORDER_COLOR_DEFAULT, GL_ACTION_DANGER_BORDER_COLOR_FOCUS, GL_ACTION_DANGER_BORDER_COLOR_HOVER, GL_ACTION_DANGER_FOREGROUND_COLOR_ACTIVE, GL_ACTION_DANGER_FOREGROUND_COLOR_DEFAULT, GL_ACTION_DANGER_FOREGROUND_COLOR_FOCUS, GL_ACTION_DANGER_FOREGROUND_COLOR_HOVER, GL_ACTION_DISABLED_BACKGROUND_COLOR, GL_ACTION_DISABLED_BORDER_COLOR, GL_ACTION_DISABLED_FOREGROUND_COLOR, GL_ACTION_NEUTRAL_BACKGROUND_COLOR_ACTIVE, GL_ACTION_NEUTRAL_BACKGROUND_COLOR_DEFAULT, GL_ACTION_NEUTRAL_BACKGROUND_COLOR_FOCUS, GL_ACTION_NEUTRAL_BACKGROUND_COLOR_HOVER, GL_ACTION_NEUTRAL_BORDER_COLOR_ACTIVE, GL_ACTION_NEUTRAL_BORDER_COLOR_DEFAULT, GL_ACTION_NEUTRAL_BORDER_COLOR_FOCUS, GL_ACTION_NEUTRAL_BORDER_COLOR_HOVER, GL_ACTION_NEUTRAL_FOREGROUND_COLOR_ACTIVE, GL_ACTION_NEUTRAL_FOREGROUND_COLOR_DEFAULT, GL_ACTION_NEUTRAL_FOREGROUND_COLOR_FOCUS, GL_ACTION_NEUTRAL_FOREGROUND_COLOR_HOVER, GL_ACTION_SELECTED_BACKGROUND_COLOR_ACTIVE, GL_ACTION_SELECTED_BACKGROUND_COLOR_DEFAULT, GL_ACTION_SELECTED_BACKGROUND_COLOR_FOCUS, GL_ACTION_SELECTED_BACKGROUND_COLOR_HOVER, GL_ACTION_SELECTED_BORDER_COLOR_ACTIVE, GL_ACTION_SELECTED_BORDER_COLOR_DEFAULT, GL_ACTION_SELECTED_BORDER_COLOR_FOCUS, GL_ACTION_SELECTED_BORDER_COLOR_HOVER, GL_ACTION_SELECTED_FOREGROUND_COLOR_ACTIVE, GL_ACTION_SELECTED_FOREGROUND_COLOR_DEFAULT, GL_ACTION_SELECTED_FOREGROUND_COLOR_FOCUS, GL_ACTION_SELECTED_FOREGROUND_COLOR_HOVER, GL_ACTION_STRONG_CONFIRM_BACKGROUND_COLOR_ACTIVE, GL_ACTION_STRONG_CONFIRM_BACKGROUND_COLOR_DEFAULT, GL_ACTION_STRONG_CONFIRM_BACKGROUND_COLOR_FOCUS, GL_ACTION_STRONG_CONFIRM_BACKGROUND_COLOR_HOVER, GL_ACTION_STRONG_CONFIRM_BORDER_COLOR_ACTIVE, GL_ACTION_STRONG_CONFIRM_BORDER_COLOR_DEFAULT, GL_ACTION_STRONG_CONFIRM_BORDER_COLOR_FOCUS, GL_ACTION_STRONG_CONFIRM_BORDER_COLOR_HOVER, GL_ACTION_STRONG_CONFIRM_FOREGROUND_COLOR_ACTIVE, GL_ACTION_STRONG_CONFIRM_FOREGROUND_COLOR_DEFAULT, GL_ACTION_STRONG_CONFIRM_FOREGROUND_COLOR_FOCUS, GL_ACTION_STRONG_CONFIRM_FOREGROUND_COLOR_HOVER, GL_ACTION_STRONG_NEUTRAL_BACKGROUND_COLOR_ACTIVE, GL_ACTION_STRONG_NEUTRAL_BACKGROUND_COLOR_DEFAULT, GL_ACTION_STRONG_NEUTRAL_BACKGROUND_COLOR_FOCUS, GL_ACTION_STRONG_NEUTRAL_BACKGROUND_COLOR_HOVER, GL_ACTION_STRONG_NEUTRAL_BORDER_COLOR_ACTIVE, GL_ACTION_STRONG_NEUTRAL_BORDER_COLOR_DEFAULT, GL_ACTION_STRONG_NEUTRAL_BORDER_COLOR_FOCUS, GL_ACTION_STRONG_NEUTRAL_BORDER_COLOR_HOVER, GL_ACTION_STRONG_NEUTRAL_FOREGROUND_COLOR_ACTIVE, GL_ACTION_STRONG_NEUTRAL_FOREGROUND_COLOR_DEFAULT, GL_ACTION_STRONG_NEUTRAL_FOREGROUND_COLOR_FOCUS, GL_ACTION_STRONG_NEUTRAL_FOREGROUND_COLOR_HOVER, GL_ALERT_DANGER_BACKGROUND_COLOR, GL_ALERT_DANGER_BORDER_BOTTOM_COLOR, GL_ALERT_DANGER_BORDER_TOP_COLOR, GL_ALERT_DANGER_TITLE_COLOR, GL_ALERT_INFO_BACKGROUND_COLOR, GL_ALERT_INFO_BORDER_BOTTOM_COLOR, GL_ALERT_INFO_BORDER_TOP_COLOR, GL_ALERT_INFO_TITLE_COLOR, GL_ALERT_NEUTRAL_BACKGROUND_COLOR, GL_ALERT_NEUTRAL_BORDER_BOTTOM_COLOR, GL_ALERT_NEUTRAL_BORDER_TOP_COLOR, GL_ALERT_NEUTRAL_TITLE_COLOR, GL_ALERT_SUCCESS_BACKGROUND_COLOR, GL_ALERT_SUCCESS_BORDER_BOTTOM_COLOR, GL_ALERT_SUCCESS_BORDER_TOP_COLOR, GL_ALERT_SUCCESS_TITLE_COLOR, GL_ALERT_WARNING_BACKGROUND_COLOR, GL_ALERT_WARNING_BORDER_BOTTOM_COLOR, GL_ALERT_WARNING_BORDER_TOP_COLOR, GL_ALERT_WARNING_TITLE_COLOR, GL_AVATAR_BORDER_COLOR_DEFAULT, GL_AVATAR_BORDER_COLOR_HOVER, GL_AVATAR_FALLBACK_BACKGROUND_COLOR_BLUE, GL_AVATAR_FALLBACK_BACKGROUND_COLOR_GREEN, GL_AVATAR_FALLBACK_BACKGROUND_COLOR_NEUTRAL, GL_AVATAR_FALLBACK_BACKGROUND_COLOR_ORANGE, GL_AVATAR_FALLBACK_BACKGROUND_COLOR_PURPLE, GL_AVATAR_FALLBACK_BACKGROUND_COLOR_RED, GL_AVATAR_FALLBACK_TEXT_COLOR_BLUE, GL_AVATAR_FALLBACK_TEXT_COLOR_GREEN, GL_AVATAR_FALLBACK_TEXT_COLOR_NEUTRAL, GL_AVATAR_FALLBACK_TEXT_COLOR_ORANGE, GL_AVATAR_FALLBACK_TEXT_COLOR_PURPLE, GL_AVATAR_FALLBACK_TEXT_COLOR_RED, GL_BACKGROUND_COLOR_DEFAULT, GL_BACKGROUND_COLOR_DISABLED, GL_BACKGROUND_COLOR_OVERLAP, GL_BACKGROUND_COLOR_OVERLAY, GL_BACKGROUND_COLOR_SECTION, GL_BACKGROUND_COLOR_STRONG, GL_BACKGROUND_COLOR_SUBTLE, GL_BADGE_DANGER_BACKGROUND_COLOR_ACTIVE, GL_BADGE_DANGER_BACKGROUND_COLOR_DEFAULT, GL_BADGE_DANGER_BACKGROUND_COLOR_FOCUS, GL_BADGE_DANGER_BACKGROUND_COLOR_HOVER, GL_BADGE_DANGER_BORDER_COLOR_ACTIVE, GL_BADGE_DANGER_BORDER_COLOR_DEFAULT, GL_BADGE_DANGER_BORDER_COLOR_FOCUS, GL_BADGE_DANGER_BORDER_COLOR_HOVER, GL_BADGE_DANGER_ICON_COLOR_ACTIVE, GL_BADGE_DANGER_ICON_COLOR_DEFAULT, GL_BADGE_DANGER_ICON_COLOR_FOCUS, GL_BADGE_DANGER_ICON_COLOR_HOVER, GL_BADGE_DANGER_TEXT_COLOR_ACTIVE, GL_BADGE_DANGER_TEXT_COLOR_DEFAULT, GL_BADGE_DANGER_TEXT_COLOR_FOCUS, GL_BADGE_DANGER_TEXT_COLOR_HOVER, GL_BADGE_INFO_BACKGROUND_COLOR_ACTIVE, GL_BADGE_INFO_BACKGROUND_COLOR_DEFAULT, GL_BADGE_INFO_BACKGROUND_COLOR_FOCUS, GL_BADGE_INFO_BACKGROUND_COLOR_HOVER, GL_BADGE_INFO_BORDER_COLOR_ACTIVE, GL_BADGE_INFO_BORDER_COLOR_DEFAULT, GL_BADGE_INFO_BORDER_COLOR_FOCUS, GL_BADGE_INFO_BORDER_COLOR_HOVER, GL_BADGE_INFO_ICON_COLOR_ACTIVE, GL_BADGE_INFO_ICON_COLOR_DEFAULT, GL_BADGE_INFO_ICON_COLOR_FOCUS, GL_BADGE_INFO_ICON_COLOR_HOVER, GL_BADGE_INFO_TEXT_COLOR_ACTIVE, GL_BADGE_INFO_TEXT_COLOR_DEFAULT, GL_BADGE_INFO_TEXT_COLOR_FOCUS, GL_BADGE_INFO_TEXT_COLOR_HOVER, GL_BADGE_MUTED_BACKGROUND_COLOR_ACTIVE, GL_BADGE_MUTED_BACKGROUND_COLOR_DEFAULT, GL_BADGE_MUTED_BACKGROUND_COLOR_FOCUS, GL_BADGE_MUTED_BACKGROUND_COLOR_HOVER, GL_BADGE_MUTED_BORDER_COLOR_ACTIVE, GL_BADGE_MUTED_BORDER_COLOR_DEFAULT, GL_BADGE_MUTED_BORDER_COLOR_FOCUS, GL_BADGE_MUTED_BORDER_COLOR_HOVER, GL_BADGE_MUTED_ICON_COLOR_ACTIVE, GL_BADGE_MUTED_ICON_COLOR_DEFAULT, GL_BADGE_MUTED_ICON_COLOR_FOCUS, GL_BADGE_MUTED_ICON_COLOR_HOVER, GL_BADGE_MUTED_TEXT_COLOR_ACTIVE, GL_BADGE_MUTED_TEXT_COLOR_DEFAULT, GL_BADGE_MUTED_TEXT_COLOR_FOCUS, GL_BADGE_MUTED_TEXT_COLOR_HOVER, GL_BADGE_NEUTRAL_BACKGROUND_COLOR_ACTIVE, GL_BADGE_NEUTRAL_BACKGROUND_COLOR_DEFAULT, GL_BADGE_NEUTRAL_BACKGROUND_COLOR_FOCUS, GL_BADGE_NEUTRAL_BACKGROUND_COLOR_HOVER, GL_BADGE_NEUTRAL_BORDER_COLOR_ACTIVE, GL_BADGE_NEUTRAL_BORDER_COLOR_DEFAULT, GL_BADGE_NEUTRAL_BORDER_COLOR_FOCUS, GL_BADGE_NEUTRAL_BORDER_COLOR_HOVER, GL_BADGE_NEUTRAL_ICON_COLOR_ACTIVE, GL_BADGE_NEUTRAL_ICON_COLOR_DEFAULT, GL_BADGE_NEUTRAL_ICON_COLOR_FOCUS, GL_BADGE_NEUTRAL_ICON_COLOR_HOVER, GL_BADGE_NEUTRAL_TEXT_COLOR_ACTIVE, GL_BADGE_NEUTRAL_TEXT_COLOR_DEFAULT, GL_BADGE_NEUTRAL_TEXT_COLOR_FOCUS, GL_BADGE_NEUTRAL_TEXT_COLOR_HOVER, GL_BADGE_SUCCESS_BACKGROUND_COLOR_ACTIVE, GL_BADGE_SUCCESS_BACKGROUND_COLOR_DEFAULT, GL_BADGE_SUCCESS_BACKGROUND_COLOR_FOCUS, GL_BADGE_SUCCESS_BACKGROUND_COLOR_HOVER, GL_BADGE_SUCCESS_BORDER_COLOR_ACTIVE, GL_BADGE_SUCCESS_BORDER_COLOR_DEFAULT, GL_BADGE_SUCCESS_BORDER_COLOR_FOCUS, GL_BADGE_SUCCESS_BORDER_COLOR_HOVER, GL_BADGE_SUCCESS_ICON_COLOR_ACTIVE, GL_BADGE_SUCCESS_ICON_COLOR_DEFAULT, GL_BADGE_SUCCESS_ICON_COLOR_FOCUS, GL_BADGE_SUCCESS_ICON_COLOR_HOVER, GL_BADGE_SUCCESS_TEXT_COLOR_ACTIVE, GL_BADGE_SUCCESS_TEXT_COLOR_DEFAULT, GL_BADGE_SUCCESS_TEXT_COLOR_FOCUS, GL_BADGE_SUCCESS_TEXT_COLOR_HOVER, GL_BADGE_TIER_BACKGROUND_COLOR_ACTIVE, GL_BADGE_TIER_BACKGROUND_COLOR_DEFAULT, GL_BADGE_TIER_BACKGROUND_COLOR_FOCUS, GL_BADGE_TIER_BACKGROUND_COLOR_HOVER, GL_BADGE_TIER_BORDER_COLOR_ACTIVE, GL_BADGE_TIER_BORDER_COLOR_DEFAULT, GL_BADGE_TIER_BORDER_COLOR_FOCUS, GL_BADGE_TIER_BORDER_COLOR_HOVER, GL_BADGE_TIER_ICON_COLOR_ACTIVE, GL_BADGE_TIER_ICON_COLOR_DEFAULT, GL_BADGE_TIER_ICON_COLOR_FOCUS, GL_BADGE_TIER_ICON_COLOR_HOVER, GL_BADGE_TIER_TEXT_COLOR_ACTIVE, GL_BADGE_TIER_TEXT_COLOR_DEFAULT, GL_BADGE_TIER_TEXT_COLOR_FOCUS, GL_BADGE_TIER_TEXT_COLOR_HOVER, GL_BADGE_WARNING_BACKGROUND_COLOR_ACTIVE, GL_BADGE_WARNING_BACKGROUND_COLOR_DEFAULT, GL_BADGE_WARNING_BACKGROUND_COLOR_FOCUS, GL_BADGE_WARNING_BACKGROUND_COLOR_HOVER, GL_BADGE_WARNING_BORDER_COLOR_ACTIVE, GL_BADGE_WARNING_BORDER_COLOR_DEFAULT, GL_BADGE_WARNING_BORDER_COLOR_FOCUS, GL_BADGE_WARNING_BORDER_COLOR_HOVER, GL_BADGE_WARNING_ICON_COLOR_ACTIVE, GL_BADGE_WARNING_ICON_COLOR_DEFAULT, GL_BADGE_WARNING_ICON_COLOR_FOCUS, GL_BADGE_WARNING_ICON_COLOR_HOVER, GL_BADGE_WARNING_TEXT_COLOR_ACTIVE, GL_BADGE_WARNING_TEXT_COLOR_DEFAULT, GL_BADGE_WARNING_TEXT_COLOR_FOCUS, GL_BADGE_WARNING_TEXT_COLOR_HOVER, GL_BANNER_INTRO_BORDER_COLOR, GL_BANNER_PROMO_BACKGROUND_COLOR, GL_BANNER_PROMO_BORDER_COLOR, GL_BORDER_COLOR_DEFAULT, GL_BORDER_COLOR_SECTION, GL_BORDER_COLOR_STRONG, GL_BORDER_COLOR_SUBTLE, GL_BORDER_COLOR_TRANSPARENT, GL_BREADCRUMB_SEPARATOR_COLOR, GL_BROADCAST_BANNER_BACKGROUND_COLOR_BLUE, GL_BROADCAST_BANNER_BACKGROUND_COLOR_DARK, GL_BROADCAST_BANNER_BACKGROUND_COLOR_GREEN, GL_BROADCAST_BANNER_BACKGROUND_COLOR_INDIGO, GL_BROADCAST_BANNER_BACKGROUND_COLOR_LIGHT, GL_BROADCAST_BANNER_BACKGROUND_COLOR_LIGHTBLUE, GL_BROADCAST_BANNER_BACKGROUND_COLOR_LIGHTGREEN, GL_BROADCAST_BANNER_BACKGROUND_COLOR_LIGHTINDIGO, GL_BROADCAST_BANNER_BACKGROUND_COLOR_LIGHTRED, GL_BROADCAST_BANNER_BACKGROUND_COLOR_RED, GL_BROADCAST_BANNER_BORDER_COLOR_BLUE, GL_BROADCAST_BANNER_BORDER_COLOR_DARK, GL_BROADCAST_BANNER_BORDER_COLOR_GREEN, GL_BROADCAST_BANNER_BORDER_COLOR_INDIGO, GL_BROADCAST_BANNER_BORDER_COLOR_LIGHT, GL_BROADCAST_BANNER_BORDER_COLOR_LIGHTBLUE, GL_BROADCAST_BANNER_BORDER_COLOR_LIGHTGREEN, GL_BROADCAST_BANNER_BORDER_COLOR_LIGHTINDIGO, GL_BROADCAST_BANNER_BORDER_COLOR_LIGHTRED, GL_BROADCAST_BANNER_BORDER_COLOR_RED, GL_BROADCAST_BANNER_ICON_COLOR_BLUE, GL_BROADCAST_BANNER_ICON_COLOR_DARK, GL_BROADCAST_BANNER_ICON_COLOR_GREEN, GL_BROADCAST_BANNER_ICON_COLOR_INDIGO, GL_BROADCAST_BANNER_ICON_COLOR_LIGHT, GL_BROADCAST_BANNER_ICON_COLOR_LIGHTBLUE, GL_BROADCAST_BANNER_ICON_COLOR_LIGHTGREEN, GL_BROADCAST_BANNER_ICON_COLOR_LIGHTINDIGO, GL_BROADCAST_BANNER_ICON_COLOR_LIGHTRED, GL_BROADCAST_BANNER_ICON_COLOR_RED, GL_BROADCAST_BANNER_TEXT_COLOR_BLUE, GL_BROADCAST_BANNER_TEXT_COLOR_DARK, GL_BROADCAST_BANNER_TEXT_COLOR_GREEN, GL_BROADCAST_BANNER_TEXT_COLOR_INDIGO, GL_BROADCAST_BANNER_TEXT_COLOR_LIGHT, GL_BROADCAST_BANNER_TEXT_COLOR_LIGHTBLUE, GL_BROADCAST_BANNER_TEXT_COLOR_LIGHTGREEN, GL_BROADCAST_BANNER_TEXT_COLOR_LIGHTINDIGO, GL_BROADCAST_BANNER_TEXT_COLOR_LIGHTRED, GL_BROADCAST_BANNER_TEXT_COLOR_RED, GL_BUTTON_CONFIRM_PRIMARY_BACKGROUND_COLOR_ACTIVE, GL_BUTTON_CONFIRM_PRIMARY_BACKGROUND_COLOR_DEFAULT, GL_BUTTON_CONFIRM_PRIMARY_BACKGROUND_COLOR_FOCUS, GL_BUTTON_CONFIRM_PRIMARY_BACKGROUND_COLOR_HOVER, GL_BUTTON_CONFIRM_PRIMARY_BORDER_COLOR_ACTIVE, GL_BUTTON_CONFIRM_PRIMARY_BORDER_COLOR_DEFAULT, GL_BUTTON_CONFIRM_PRIMARY_BORDER_COLOR_FOCUS, GL_BUTTON_CONFIRM_PRIMARY_BORDER_COLOR_HOVER, GL_BUTTON_CONFIRM_PRIMARY_FOREGROUND_COLOR_ACTIVE, GL_BUTTON_CONFIRM_PRIMARY_FOREGROUND_COLOR_DEFAULT, GL_BUTTON_CONFIRM_PRIMARY_FOREGROUND_COLOR_FOCUS, GL_BUTTON_CONFIRM_PRIMARY_FOREGROUND_COLOR_HOVER, GL_BUTTON_CONFIRM_SECONDARY_BACKGROUND_COLOR_ACTIVE, GL_BUTTON_CONFIRM_SECONDARY_BACKGROUND_COLOR_DEFAULT, GL_BUTTON_CONFIRM_SECONDARY_BACKGROUND_COLOR_FOCUS, GL_BUTTON_CONFIRM_SECONDARY_BACKGROUND_COLOR_HOVER, GL_BUTTON_CONFIRM_SECONDARY_BORDER_COLOR_ACTIVE, GL_BUTTON_CONFIRM_SECONDARY_BORDER_COLOR_DEFAULT, GL_BUTTON_CONFIRM_SECONDARY_BORDER_COLOR_FOCUS, GL_BUTTON_CONFIRM_SECONDARY_BORDER_COLOR_HOVER, GL_BUTTON_CONFIRM_SECONDARY_FOREGROUND_COLOR_ACTIVE, GL_BUTTON_CONFIRM_SECONDARY_FOREGROUND_COLOR_DEFAULT, GL_BUTTON_CONFIRM_SECONDARY_FOREGROUND_COLOR_FOCUS, GL_BUTTON_CONFIRM_SECONDARY_FOREGROUND_COLOR_HOVER, GL_BUTTON_CONFIRM_TERTIARY_BACKGROUND_COLOR_ACTIVE, GL_BUTTON_CONFIRM_TERTIARY_BACKGROUND_COLOR_DEFAULT, GL_BUTTON_CONFIRM_TERTIARY_BACKGROUND_COLOR_FOCUS, GL_BUTTON_CONFIRM_TERTIARY_BACKGROUND_COLOR_HOVER, GL_BUTTON_CONFIRM_TERTIARY_BORDER_COLOR_ACTIVE, GL_BUTTON_CONFIRM_TERTIARY_BORDER_COLOR_DEFAULT, GL_BUTTON_CONFIRM_TERTIARY_BORDER_COLOR_FOCUS, GL_BUTTON_CONFIRM_TERTIARY_BORDER_COLOR_HOVER, GL_BUTTON_CONFIRM_TERTIARY_FOREGROUND_COLOR_ACTIVE, GL_BUTTON_CONFIRM_TERTIARY_FOREGROUND_COLOR_DEFAULT, GL_BUTTON_CONFIRM_TERTIARY_FOREGROUND_COLOR_FOCUS, GL_BUTTON_CONFIRM_TERTIARY_FOREGROUND_COLOR_HOVER, GL_BUTTON_DANGER_PRIMARY_BACKGROUND_COLOR_ACTIVE, GL_BUTTON_DANGER_PRIMARY_BACKGROUND_COLOR_DEFAULT, GL_BUTTON_DANGER_PRIMARY_BACKGROUND_COLOR_FOCUS, GL_BUTTON_DANGER_PRIMARY_BACKGROUND_COLOR_HOVER, GL_BUTTON_DANGER_PRIMARY_BORDER_COLOR_ACTIVE, GL_BUTTON_DANGER_PRIMARY_BORDER_COLOR_DEFAULT, GL_BUTTON_DANGER_PRIMARY_BORDER_COLOR_FOCUS, GL_BUTTON_DANGER_PRIMARY_BORDER_COLOR_HOVER, GL_BUTTON_DANGER_PRIMARY_FOREGROUND_COLOR_ACTIVE, GL_BUTTON_DANGER_PRIMARY_FOREGROUND_COLOR_DEFAULT, GL_BUTTON_DANGER_PRIMARY_FOREGROUND_COLOR_FOCUS, GL_BUTTON_DANGER_PRIMARY_FOREGROUND_COLOR_HOVER, GL_BUTTON_DANGER_SECONDARY_BACKGROUND_COLOR_ACTIVE, GL_BUTTON_DANGER_SECONDARY_BACKGROUND_COLOR_DEFAULT, GL_BUTTON_DANGER_SECONDARY_BACKGROUND_COLOR_FOCUS, GL_BUTTON_DANGER_SECONDARY_BACKGROUND_COLOR_HOVER, GL_BUTTON_DANGER_SECONDARY_BORDER_COLOR_ACTIVE, GL_BUTTON_DANGER_SECONDARY_BORDER_COLOR_DEFAULT, GL_BUTTON_DANGER_SECONDARY_BORDER_COLOR_FOCUS, GL_BUTTON_DANGER_SECONDARY_BORDER_COLOR_HOVER, GL_BUTTON_DANGER_SECONDARY_FOREGROUND_COLOR_ACTIVE, GL_BUTTON_DANGER_SECONDARY_FOREGROUND_COLOR_DEFAULT, GL_BUTTON_DANGER_SECONDARY_FOREGROUND_COLOR_FOCUS, GL_BUTTON_DANGER_SECONDARY_FOREGROUND_COLOR_HOVER, GL_BUTTON_DANGER_TERTIARY_BACKGROUND_COLOR_ACTIVE, GL_BUTTON_DANGER_TERTIARY_BACKGROUND_COLOR_DEFAULT, GL_BUTTON_DANGER_TERTIARY_BACKGROUND_COLOR_FOCUS, GL_BUTTON_DANGER_TERTIARY_BACKGROUND_COLOR_HOVER, GL_BUTTON_DANGER_TERTIARY_BORDER_COLOR_ACTIVE, GL_BUTTON_DANGER_TERTIARY_BORDER_COLOR_DEFAULT, GL_BUTTON_DANGER_TERTIARY_BORDER_COLOR_FOCUS, GL_BUTTON_DANGER_TERTIARY_BORDER_COLOR_HOVER, GL_BUTTON_DANGER_TERTIARY_FOREGROUND_COLOR_ACTIVE, GL_BUTTON_DANGER_TERTIARY_FOREGROUND_COLOR_DEFAULT, GL_BUTTON_DANGER_TERTIARY_FOREGROUND_COLOR_FOCUS, GL_BUTTON_DANGER_TERTIARY_FOREGROUND_COLOR_HOVER, GL_BUTTON_DASHED_BORDER_COLOR_ACTIVE, GL_BUTTON_DASHED_BORDER_COLOR_DEFAULT, GL_BUTTON_DASHED_BORDER_COLOR_FOCUS, GL_BUTTON_DASHED_BORDER_COLOR_HOVER, GL_BUTTON_DEFAULT_PRIMARY_BACKGROUND_COLOR_ACTIVE, GL_BUTTON_DEFAULT_PRIMARY_BACKGROUND_COLOR_DEFAULT, GL_BUTTON_DEFAULT_PRIMARY_BACKGROUND_COLOR_FOCUS, GL_BUTTON_DEFAULT_PRIMARY_BACKGROUND_COLOR_HOVER, GL_BUTTON_DEFAULT_PRIMARY_BORDER_COLOR_ACTIVE, GL_BUTTON_DEFAULT_PRIMARY_BORDER_COLOR_DEFAULT, GL_BUTTON_DEFAULT_PRIMARY_BORDER_COLOR_FOCUS, GL_BUTTON_DEFAULT_PRIMARY_BORDER_COLOR_HOVER, GL_BUTTON_DEFAULT_PRIMARY_FOREGROUND_COLOR_ACTIVE, GL_BUTTON_DEFAULT_PRIMARY_FOREGROUND_COLOR_DEFAULT, GL_BUTTON_DEFAULT_PRIMARY_FOREGROUND_COLOR_FOCUS, GL_BUTTON_DEFAULT_PRIMARY_FOREGROUND_COLOR_HOVER, GL_BUTTON_DEFAULT_TERTIARY_BACKGROUND_COLOR_ACTIVE, GL_BUTTON_DEFAULT_TERTIARY_BACKGROUND_COLOR_DEFAULT, GL_BUTTON_DEFAULT_TERTIARY_BACKGROUND_COLOR_FOCUS, GL_BUTTON_DEFAULT_TERTIARY_BACKGROUND_COLOR_HOVER, GL_BUTTON_DEFAULT_TERTIARY_BORDER_COLOR_ACTIVE, GL_BUTTON_DEFAULT_TERTIARY_BORDER_COLOR_DEFAULT, GL_BUTTON_DEFAULT_TERTIARY_BORDER_COLOR_FOCUS, GL_BUTTON_DEFAULT_TERTIARY_BORDER_COLOR_HOVER, GL_BUTTON_DEFAULT_TERTIARY_FOREGROUND_COLOR_ACTIVE, GL_BUTTON_DEFAULT_TERTIARY_FOREGROUND_COLOR_DEFAULT, GL_BUTTON_DEFAULT_TERTIARY_FOREGROUND_COLOR_FOCUS, GL_BUTTON_DEFAULT_TERTIARY_FOREGROUND_COLOR_HOVER, GL_BUTTON_DISABLED_BACKGROUND_COLOR, GL_BUTTON_DISABLED_BORDER_COLOR, GL_BUTTON_DISABLED_FOREGROUND_COLOR, GL_BUTTON_LINK_TEXT_COLOR_ACTIVE, GL_BUTTON_LINK_TEXT_COLOR_DEFAULT, GL_BUTTON_LINK_TEXT_COLOR_FOCUS, GL_BUTTON_LINK_TEXT_COLOR_HOVER, GL_BUTTON_SELECTED_BACKGROUND_COLOR_ACTIVE, GL_BUTTON_SELECTED_BACKGROUND_COLOR_DEFAULT, GL_BUTTON_SELECTED_BACKGROUND_COLOR_FOCUS, GL_BUTTON_SELECTED_BACKGROUND_COLOR_HOVER, GL_BUTTON_SELECTED_BORDER_COLOR_ACTIVE, GL_BUTTON_SELECTED_BORDER_COLOR_DEFAULT, GL_BUTTON_SELECTED_BORDER_COLOR_FOCUS, GL_BUTTON_SELECTED_BORDER_COLOR_HOVER, GL_BUTTON_SELECTED_FOREGROUND_COLOR_ACTIVE, GL_BUTTON_SELECTED_FOREGROUND_COLOR_DEFAULT, GL_BUTTON_SELECTED_FOREGROUND_COLOR_FOCUS, GL_BUTTON_SELECTED_FOREGROUND_COLOR_HOVER, GL_COLOR_ALPHA_0, GL_COLOR_ALPHA_DARK_16, GL_COLOR_ALPHA_DARK_2, GL_COLOR_ALPHA_DARK_24, GL_COLOR_ALPHA_DARK_4, GL_COLOR_ALPHA_DARK_40, GL_COLOR_ALPHA_DARK_6, GL_COLOR_ALPHA_DARK_8, GL_COLOR_ALPHA_LIGHT_16, GL_COLOR_ALPHA_LIGHT_2, GL_COLOR_ALPHA_LIGHT_24, GL_COLOR_ALPHA_LIGHT_36, GL_COLOR_ALPHA_LIGHT_4, GL_COLOR_ALPHA_LIGHT_6, GL_COLOR_ALPHA_LIGHT_8, GL_COLOR_BLUE_100, GL_COLOR_BLUE_200, GL_COLOR_BLUE_300, GL_COLOR_BLUE_400, GL_COLOR_BLUE_50, GL_COLOR_BLUE_500, GL_COLOR_BLUE_600, GL_COLOR_BLUE_700, GL_COLOR_BLUE_800, GL_COLOR_BLUE_900, GL_COLOR_BLUE_950, GL_COLOR_BRAND_CHARCOAL, GL_COLOR_BRAND_GRAY_01, GL_COLOR_BRAND_GRAY_02, GL_COLOR_BRAND_GRAY_03, GL_COLOR_BRAND_GRAY_04, GL_COLOR_BRAND_GRAY_05, GL_COLOR_BRAND_ORANGE_01G, GL_COLOR_BRAND_ORANGE_01P, GL_COLOR_BRAND_ORANGE_02P, GL_COLOR_BRAND_ORANGE_03P, GL_COLOR_BRAND_PINK_01G, GL_COLOR_BRAND_PURPLE_01G, GL_COLOR_BRAND_PURPLE_01P, GL_COLOR_BRAND_PURPLE_02P, GL_COLOR_BRAND_WHITE, GL_COLOR_GREEN_100, GL_COLOR_GREEN_200, GL_COLOR_GREEN_300, GL_COLOR_GREEN_400, GL_COLOR_GREEN_50, GL_COLOR_GREEN_500, GL_COLOR_GREEN_600, GL_COLOR_GREEN_700, GL_COLOR_GREEN_800, GL_COLOR_GREEN_900, GL_COLOR_GREEN_950, GL_COLOR_NEUTRAL_0, GL_COLOR_NEUTRAL_10, GL_COLOR_NEUTRAL_100, GL_COLOR_NEUTRAL_1000, GL_COLOR_NEUTRAL_200, GL_COLOR_NEUTRAL_300, GL_COLOR_NEUTRAL_400, GL_COLOR_NEUTRAL_50, GL_COLOR_NEUTRAL_500, GL_COLOR_NEUTRAL_600, GL_COLOR_NEUTRAL_700, GL_COLOR_NEUTRAL_800, GL_COLOR_NEUTRAL_900, GL_COLOR_NEUTRAL_950, GL_COLOR_ORANGE_100, GL_COLOR_ORANGE_200, GL_COLOR_ORANGE_300, GL_COLOR_ORANGE_400, GL_COLOR_ORANGE_50, GL_COLOR_ORANGE_500, GL_COLOR_ORANGE_600, GL_COLOR_ORANGE_700, GL_COLOR_ORANGE_800, GL_COLOR_ORANGE_900, GL_COLOR_ORANGE_950, GL_COLOR_PURPLE_100, GL_COLOR_PURPLE_200, GL_COLOR_PURPLE_300, GL_COLOR_PURPLE_400, GL_COLOR_PURPLE_50, GL_COLOR_PURPLE_500, GL_COLOR_PURPLE_600, GL_COLOR_PURPLE_700, GL_COLOR_PURPLE_800, GL_COLOR_PURPLE_900, GL_COLOR_PURPLE_950, GL_COLOR_RED_100, GL_COLOR_RED_200, GL_COLOR_RED_300, GL_COLOR_RED_400, GL_COLOR_RED_50, GL_COLOR_RED_500, GL_COLOR_RED_600, GL_COLOR_RED_700, GL_COLOR_RED_800, GL_COLOR_RED_900, GL_COLOR_RED_950, GL_COLOR_THEME_BLUE_10, GL_COLOR_THEME_BLUE_100, GL_COLOR_THEME_BLUE_200, GL_COLOR_THEME_BLUE_300, GL_COLOR_THEME_BLUE_400, GL_COLOR_THEME_BLUE_50, GL_COLOR_THEME_BLUE_500, GL_COLOR_THEME_BLUE_600, GL_COLOR_THEME_BLUE_700, GL_COLOR_THEME_BLUE_800, GL_COLOR_THEME_BLUE_900, GL_COLOR_THEME_BLUE_950, GL_COLOR_THEME_GREEN_10, GL_COLOR_THEME_GREEN_100, GL_COLOR_THEME_GREEN_200, GL_COLOR_THEME_GREEN_300, GL_COLOR_THEME_GREEN_400, GL_COLOR_THEME_GREEN_50, GL_COLOR_THEME_GREEN_500, GL_COLOR_THEME_GREEN_600, GL_COLOR_THEME_GREEN_700, GL_COLOR_THEME_GREEN_800, GL_COLOR_THEME_GREEN_900, GL_COLOR_THEME_GREEN_950, GL_COLOR_THEME_INDIGO_10, GL_COLOR_THEME_INDIGO_100, GL_COLOR_THEME_INDIGO_200, GL_COLOR_THEME_INDIGO_300, GL_COLOR_THEME_INDIGO_400, GL_COLOR_THEME_INDIGO_50, GL_COLOR_THEME_INDIGO_500, GL_COLOR_THEME_INDIGO_600, GL_COLOR_THEME_INDIGO_700, GL_COLOR_THEME_INDIGO_800, GL_COLOR_THEME_INDIGO_900, GL_COLOR_THEME_INDIGO_950, GL_COLOR_THEME_LIGHT_BLUE_10, GL_COLOR_THEME_LIGHT_BLUE_100, GL_COLOR_THEME_LIGHT_BLUE_200, GL_COLOR_THEME_LIGHT_BLUE_300, GL_COLOR_THEME_LIGHT_BLUE_400, GL_COLOR_THEME_LIGHT_BLUE_50, GL_COLOR_THEME_LIGHT_BLUE_500, GL_COLOR_THEME_LIGHT_BLUE_600, GL_COLOR_THEME_LIGHT_BLUE_700, GL_COLOR_THEME_LIGHT_BLUE_800, GL_COLOR_THEME_LIGHT_BLUE_900, GL_COLOR_THEME_LIGHT_BLUE_950, GL_COLOR_THEME_LIGHT_RED_10, GL_COLOR_THEME_LIGHT_RED_100, GL_COLOR_THEME_LIGHT_RED_200, GL_COLOR_THEME_LIGHT_RED_300, GL_COLOR_THEME_LIGHT_RED_400, GL_COLOR_THEME_LIGHT_RED_50, GL_COLOR_THEME_LIGHT_RED_500, GL_COLOR_THEME_LIGHT_RED_600, GL_COLOR_THEME_LIGHT_RED_700, GL_COLOR_THEME_LIGHT_RED_800, GL_COLOR_THEME_LIGHT_RED_900, GL_COLOR_THEME_LIGHT_RED_950, GL_COLOR_THEME_RED_10, GL_COLOR_THEME_RED_100, GL_COLOR_THEME_RED_200, GL_COLOR_THEME_RED_300, GL_COLOR_THEME_RED_400, GL_COLOR_THEME_RED_50, GL_COLOR_THEME_RED_500, GL_COLOR_THEME_RED_600, GL_COLOR_THEME_RED_700, GL_COLOR_THEME_RED_800, GL_COLOR_THEME_RED_900, GL_COLOR_THEME_RED_950, GL_CONTROL_BACKGROUND_COLOR_CONCATENATION, GL_CONTROL_BACKGROUND_COLOR_DEFAULT, GL_CONTROL_BACKGROUND_COLOR_DISABLED, GL_CONTROL_BACKGROUND_COLOR_READONLY, GL_CONTROL_BACKGROUND_COLOR_SELECTED_DEFAULT, GL_CONTROL_BACKGROUND_COLOR_SELECTED_FOCUS, GL_CONTROL_BACKGROUND_COLOR_SELECTED_HOVER, GL_CONTROL_BORDER_COLOR_DEFAULT, GL_CONTROL_BORDER_COLOR_DISABLED, GL_CONTROL_BORDER_COLOR_ERROR, GL_CONTROL_BORDER_COLOR_FOCUS, GL_CONTROL_BORDER_COLOR_HOVER, GL_CONTROL_BORDER_COLOR_SELECTED_DEFAULT, GL_CONTROL_BORDER_COLOR_SELECTED_FOCUS, GL_CONTROL_BORDER_COLOR_SELECTED_HOVER, GL_CONTROL_INDICATOR_COLOR_DISABLED, GL_CONTROL_INDICATOR_COLOR_SELECTED, GL_CONTROL_PLACEHOLDER_COLOR, GL_CONTROL_TEXT_COLOR_ERROR, GL_CONTROL_TEXT_COLOR_VALID, GL_DATEPICKER_BACKGROUND_COLOR, GL_DATEPICKER_DATE_TEXT_COLOR_SELECTED, GL_DROPDOWN_BACKGROUND_COLOR, GL_DROPDOWN_BORDER_COLOR, GL_DROPDOWN_OPTION_BACKGROUND_COLOR_SELECTED_ACTIVE, GL_DROPDOWN_OPTION_BACKGROUND_COLOR_SELECTED_DEFAULT, GL_DROPDOWN_OPTION_BACKGROUND_COLOR_SELECTED_FOCUS, GL_DROPDOWN_OPTION_BACKGROUND_COLOR_SELECTED_HOVER, GL_DROPDOWN_OPTION_BACKGROUND_COLOR_UNSELECTED_ACTIVE, GL_DROPDOWN_OPTION_BACKGROUND_COLOR_UNSELECTED_DEFAULT, GL_DROPDOWN_OPTION_BACKGROUND_COLOR_UNSELECTED_FOCUS, GL_DROPDOWN_OPTION_BACKGROUND_COLOR_UNSELECTED_HOVER, GL_DROPDOWN_OPTION_INDICATOR_COLOR_SELECTED_ACTIVE, GL_DROPDOWN_OPTION_INDICATOR_COLOR_SELECTED_DEFAULT, GL_DROPDOWN_OPTION_INDICATOR_COLOR_SELECTED_FOCUS, GL_DROPDOWN_OPTION_INDICATOR_COLOR_SELECTED_HOVER, GL_DROPDOWN_OPTION_TEXT_COLOR_ACTIVE, GL_DROPDOWN_OPTION_TEXT_COLOR_DEFAULT, GL_DROPDOWN_OPTION_TEXT_COLOR_DISABLED, GL_DROPDOWN_OPTION_TEXT_COLOR_FOCUS, GL_DROPDOWN_OPTION_TEXT_COLOR_HOVER, GL_FEEDBACK_DANGER_BACKGROUND_COLOR, GL_FEEDBACK_DANGER_ICON_COLOR, GL_FEEDBACK_DANGER_TEXT_COLOR, GL_FEEDBACK_INFO_BACKGROUND_COLOR, GL_FEEDBACK_INFO_ICON_COLOR, GL_FEEDBACK_INFO_TEXT_COLOR, GL_FEEDBACK_NEUTRAL_BACKGROUND_COLOR, GL_FEEDBACK_NEUTRAL_ICON_COLOR, GL_FEEDBACK_NEUTRAL_TEXT_COLOR, GL_FEEDBACK_STRONG_BACKGROUND_COLOR, GL_FEEDBACK_STRONG_ICON_COLOR, GL_FEEDBACK_STRONG_LINK_COLOR, GL_FEEDBACK_STRONG_TEXT_COLOR, GL_FEEDBACK_SUCCESS_BACKGROUND_COLOR, GL_FEEDBACK_SUCCESS_ICON_COLOR, GL_FEEDBACK_SUCCESS_TEXT_COLOR, GL_FEEDBACK_WARNING_BACKGROUND_COLOR, GL_FEEDBACK_WARNING_ICON_COLOR, GL_FEEDBACK_WARNING_TEXT_COLOR, GL_FILTERED_SEARCH_TOKEN_DATA_BACKGROUND_COLOR_DEFAULT, GL_FILTERED_SEARCH_TOKEN_DATA_BACKGROUND_COLOR_HOVER, GL_FILTERED_SEARCH_TOKEN_OPERATOR_BACKGROUND_COLOR_DEFAULT, GL_FILTERED_SEARCH_TOKEN_OPERATOR_BACKGROUND_COLOR_HOVER, GL_FILTERED_SEARCH_TOKEN_TYPE_BACKGROUND_COLOR_DEFAULT, GL_FILTERED_SEARCH_TOKEN_TYPE_BACKGROUND_COLOR_HOVER, GL_FOCUS_RING_INNER_COLOR, GL_FOCUS_RING_OUTER_COLOR, GL_ICON_COLOR_DANGER, GL_ICON_COLOR_DEFAULT, GL_ICON_COLOR_DISABLED, GL_ICON_COLOR_INFO, GL_ICON_COLOR_LINK, GL_ICON_COLOR_STRONG, GL_ICON_COLOR_SUBTLE, GL_ICON_COLOR_SUCCESS, GL_ICON_COLOR_WARNING, GL_ILLUSTRATION_ACCENT_FILL_COLOR_ORANGE, GL_ILLUSTRATION_ACCENT_FILL_COLOR_STRONG, GL_ILLUSTRATION_ACCENT_FILL_COLOR_SUBTLE, GL_ILLUSTRATION_ACCENT_FILL_COLOR_TEAL, GL_ILLUSTRATION_ACCENT_STROKE_COLOR_ORANGE, GL_ILLUSTRATION_ACCENT_STROKE_COLOR_STRONG, GL_ILLUSTRATION_ACCENT_STROKE_COLOR_TEAL, GL_ILLUSTRATION_BASE_FILL_COLOR, GL_ILLUSTRATION_FILL_COLOR_DEFAULT, GL_ILLUSTRATION_ISOMETRIC_ACCENT_FRONT_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_ACCENT_SIDE_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_ACCENT_TOP_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_BASE_FRONT_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_BASE_SIDE_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_BASE_TOP_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_GLYPH_FRONT_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_GLYPH_SHADOW_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_GLYPH_SIDE_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_GLYPH_TOP_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_OBJECT_FRONT_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_OBJECT_HIGHLIGHT_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_OBJECT_SHADOW_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_OBJECT_SIDE_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_OBJECT_TOP_FILL_COLOR, GL_ILLUSTRATION_ISOMETRIC_STROKE_COLOR_DEFAULT, GL_ILLUSTRATION_ISOMETRIC_STROKE_WIDTH_DEFAULT, GL_ILLUSTRATION_STATUS_FILL_COLOR_DANGER, GL_ILLUSTRATION_STATUS_FILL_COLOR_NEUTRAL, GL_ILLUSTRATION_STATUS_FILL_COLOR_SUCCESS, GL_ILLUSTRATION_STATUS_FILL_COLOR_WARNING, GL_ILLUSTRATION_STROKE_COLOR_DEFAULT, GL_ILLUSTRATION_STROKE_WIDTH_DEFAULT, GL_LABEL_DARK_BUTTON_BACKGROUND_COLOR_DEFAULT, GL_LABEL_DARK_BUTTON_BACKGROUND_COLOR_HOVER, GL_LABEL_DARK_BUTTON_ICON_COLOR_DEFAULT, GL_LABEL_DARK_TEXT_COLOR, GL_LABEL_LIGHT_BUTTON_BACKGROUND_COLOR_DEFAULT, GL_LABEL_LIGHT_BUTTON_BACKGROUND_COLOR_HOVER, GL_LABEL_LIGHT_BUTTON_ICON_COLOR_DEFAULT, GL_LABEL_LIGHT_TEXT_COLOR, GL_LABEL_SCOPED_BUTTON_BACKGROUND_COLOR_HOVER, GL_LABEL_SCOPED_BUTTON_ICON_COLOR_DEFAULT, GL_LABEL_SCOPED_BUTTON_ICON_COLOR_HOVER, GL_LABEL_SCOPED_TEXT_COLOR, GL_LINE_HEIGHT_12, GL_LINE_HEIGHT_16, GL_LINE_HEIGHT_20, GL_LINE_HEIGHT_24, GL_LINE_HEIGHT_28, GL_LINE_HEIGHT_32, GL_LINE_HEIGHT_36, GL_LINE_HEIGHT_42, GL_LINE_HEIGHT_44, GL_LINE_HEIGHT_52, GL_LINK_MENTION_BACKGROUND_COLOR_CURRENT, GL_LINK_MENTION_BACKGROUND_COLOR_DEFAULT, GL_LINK_MENTION_TEXT_COLOR_CURRENT, GL_LINK_MENTION_TEXT_COLOR_DEFAULT, GL_PROGRESS_BAR_INDICATOR_COLOR_DANGER, GL_PROGRESS_BAR_INDICATOR_COLOR_DEFAULT, GL_PROGRESS_BAR_INDICATOR_COLOR_SUCCESS, GL_PROGRESS_BAR_INDICATOR_COLOR_WARNING, GL_PROGRESS_BAR_TRACK_COLOR, GL_SHADOW_COLOR_DEFAULT, GL_SKELETON_LOADER_BACKGROUND_COLOR, GL_SKELETON_LOADER_SHIMMER_COLOR, GL_SPINNER_SEGMENT_COLOR_DEFAULT, GL_SPINNER_SEGMENT_COLOR_LIGHT, GL_SPINNER_TRACK_COLOR_DEFAULT, GL_SPINNER_TRACK_COLOR_LIGHT, GL_STATUS_BRAND_BACKGROUND_COLOR, GL_STATUS_BRAND_ICON_COLOR, GL_STATUS_BRAND_TEXT_COLOR, GL_STATUS_DANGER_BACKGROUND_COLOR, GL_STATUS_DANGER_ICON_COLOR, GL_STATUS_DANGER_TEXT_COLOR, GL_STATUS_INFO_BACKGROUND_COLOR, GL_STATUS_INFO_ICON_COLOR, GL_STATUS_INFO_TEXT_COLOR, GL_STATUS_NEUTRAL_BACKGROUND_COLOR, GL_STATUS_NEUTRAL_ICON_COLOR, GL_STATUS_NEUTRAL_TEXT_COLOR, GL_STATUS_SUCCESS_BACKGROUND_COLOR, GL_STATUS_SUCCESS_ICON_COLOR, GL_STATUS_SUCCESS_TEXT_COLOR, GL_STATUS_WARNING_BACKGROUND_COLOR, GL_STATUS_WARNING_ICON_COLOR, GL_STATUS_WARNING_TEXT_COLOR, GL_TABLE_ROW_BACKGROUND_COLOR_HOVER, GL_TABLE_SORTING_ICON_COLOR, GL_TAB_SELECTED_INDICATOR_COLOR_DEFAULT, GL_TEXT_COLOR_DANGER, GL_TEXT_COLOR_DEFAULT, GL_TEXT_COLOR_DISABLED, GL_TEXT_COLOR_HEADING, GL_TEXT_COLOR_LINK, GL_TEXT_COLOR_STRONG, GL_TEXT_COLOR_SUBTLE, GL_TEXT_COLOR_SUCCESS, GL_TEXT_COLOR_WARNING, GL_TEXT_PRIMARY, GL_TEXT_SECONDARY, GL_TEXT_TERTIARY, GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_ACTIVE, GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_DEFAULT, GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_FOCUS, GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_HOVER, GL_TOGGLE_SWITCH_ICON_COLOR_DISABLED, GL_TOGGLE_SWITCH_ICON_COLOR_UNCHECKED_ACTIVE, GL_TOGGLE_SWITCH_ICON_COLOR_UNCHECKED_DEFAULT, GL_TOGGLE_SWITCH_ICON_COLOR_UNCHECKED_FOCUS, GL_TOGGLE_SWITCH_ICON_COLOR_UNCHECKED_HOVER, GL_TOKEN_BACKGROUND_COLOR, GL_TOKEN_FOREGROUND_COLOR, GL_TOKEN_SELECTOR_TOKEN_CONTAINER_TOKEN_BACKGROUND_COLOR_FOCUS, GRAY_10, GRAY_100, GRAY_200, GRAY_300, GRAY_400, GRAY_50, GRAY_500, GRAY_600, GRAY_700, GRAY_800, GRAY_900, GRAY_950, GREEN_100, GREEN_200, GREEN_300, GREEN_400, GREEN_50, GREEN_500, GREEN_600, GREEN_700, GREEN_800, GREEN_900, GREEN_950, ORANGE_100, ORANGE_200, ORANGE_300, ORANGE_400, ORANGE_50, ORANGE_500, ORANGE_600, ORANGE_700, ORANGE_800, ORANGE_900, ORANGE_950, PURPLE_100, PURPLE_200, PURPLE_300, PURPLE_400, PURPLE_50, PURPLE_500, PURPLE_600, PURPLE_700, PURPLE_800, PURPLE_900, PURPLE_950, RED_100, RED_200, RED_300, RED_400, RED_50, RED_500, RED_600, RED_700, RED_800, RED_900, RED_950, THEME_BLUE_10, THEME_BLUE_100, THEME_BLUE_200, THEME_BLUE_300, THEME_BLUE_400, THEME_BLUE_50, THEME_BLUE_500, THEME_BLUE_600, THEME_BLUE_700, THEME_BLUE_800, THEME_BLUE_900, THEME_BLUE_950, THEME_GREEN_10, THEME_GREEN_100, THEME_GREEN_200, THEME_GREEN_300, THEME_GREEN_400, THEME_GREEN_50, THEME_GREEN_500, THEME_GREEN_600, THEME_GREEN_700, THEME_GREEN_800, THEME_GREEN_900, THEME_GREEN_950, THEME_INDIGO_10, THEME_INDIGO_100, THEME_INDIGO_200, THEME_INDIGO_300, THEME_INDIGO_400, THEME_INDIGO_50, THEME_INDIGO_500, THEME_INDIGO_600, THEME_INDIGO_700, THEME_INDIGO_800, THEME_INDIGO_900, THEME_INDIGO_950, THEME_LIGHT_BLUE_10, THEME_LIGHT_BLUE_100, THEME_LIGHT_BLUE_200, THEME_LIGHT_BLUE_300, THEME_LIGHT_BLUE_400, THEME_LIGHT_BLUE_50, THEME_LIGHT_BLUE_500, THEME_LIGHT_BLUE_600, THEME_LIGHT_BLUE_700, THEME_LIGHT_BLUE_800, THEME_LIGHT_BLUE_900, THEME_LIGHT_BLUE_950, THEME_LIGHT_RED_10, THEME_LIGHT_RED_100, THEME_LIGHT_RED_200, THEME_LIGHT_RED_300, THEME_LIGHT_RED_400, THEME_LIGHT_RED_50, THEME_LIGHT_RED_500, THEME_LIGHT_RED_600, THEME_LIGHT_RED_700, THEME_LIGHT_RED_800, THEME_LIGHT_RED_900, THEME_LIGHT_RED_950, THEME_RED_10, THEME_RED_100, THEME_RED_200, THEME_RED_300, THEME_RED_400, THEME_RED_50, THEME_RED_500, THEME_RED_600, THEME_RED_700, THEME_RED_800, THEME_RED_900, THEME_RED_950, T_GRAY_A_02, T_GRAY_A_04, T_GRAY_A_06, T_GRAY_A_08, T_GRAY_A_16, T_GRAY_A_24, T_WHITE_A_02, T_WHITE_A_04, T_WHITE_A_06, T_WHITE_A_08, T_WHITE_A_16, T_WHITE_A_24, T_WHITE_A_36, WHITE };\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n","import * as echarts from 'echarts';\nimport { validRenderers, defaultWidth, defaultHeight, toolboxHeight } from '../../../utils/charts/config';\nimport { themeName, createTheme } from '../../../utils/charts/theme';\nimport { GlResizeObserverDirective } from '../../../directives/resize_observer/resize_observer';\nimport { debounceByAnimationFrame } from '../../../utils/utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\n\n/**\n * Allowed values by eCharts\n * https://echarts.apache.org/en/api.html#echartsInstance.resize\n */\nconst sizeValidator = size => Number.isFinite(size) || size === 'auto' || size == null;\nconst isChartWithToolbox = options => {\n  var _options$toolbox;\n  return Boolean(options === null || options === void 0 ? void 0 : (_options$toolbox = options.toolbox) === null || _options$toolbox === void 0 ? void 0 : _options$toolbox.show);\n};\nconst increaseChartGridTop = (options, increaseBy) => {\n  var _options$grid;\n  return {\n    ...options,\n    grid: {\n      ...options.grid,\n      top: ((options === null || options === void 0 ? void 0 : (_options$grid = options.grid) === null || _options$grid === void 0 ? void 0 : _options$grid.top) || 0) + increaseBy\n    }\n  };\n};\nvar script = {\n  name: 'GlChart',\n  directives: {\n    resizeObserver: GlResizeObserverDirective\n  },\n  props: {\n    /**\n     * The ECharts configuration object.\n     * https://echarts.apache.org/en/option.html#title\n     */\n    options: {\n      type: Object,\n      required: true\n    },\n    /**\n     * Warning: this prop is deprecated and will soon be removed\n     * Please do not utilize `disableTheme` for formatting\n     * Use the `options` prop to set desired echarts formatting\n     */\n    disableTheme: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    width: {\n      type: [Number, String],\n      required: false,\n      default: null,\n      validator: sizeValidator\n    },\n    /**\n     * Sets the chart's height in pixels. Set to `\"auto\"` to use the height of the container.\n     */\n    height: {\n      type: [Number, String],\n      required: false,\n      default: null,\n      validator: sizeValidator\n    },\n    /**\n     * An ECharts group id. Used to connect multiple charts.\n     * https://echarts.apache.org/en/api.html#echarts.connect\n     */\n    groupId: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * How the chart should be rendered. Valid options are 'canvas' or 'svg'.\n     * https://echarts.apache.org/handbook/en/best-practices/canvas-vs-svg/\n     */\n    renderer: {\n      type: String,\n      required: false,\n      default: 'svg',\n      validator(renderer) {\n        return validRenderers.includes(renderer);\n      }\n    },\n    responsive: {\n      type: Boolean,\n      required: false,\n      default: true\n    }\n  },\n  data() {\n    return {\n      chart: null,\n      debouncedHandleResize: debounceByAnimationFrame(this.handleResize)\n    };\n  },\n  computed: {\n    normalizedOptions() {\n      return isChartWithToolbox(this.options) ? increaseChartGridTop(this.options, toolboxHeight) : this.options;\n    }\n  },\n  watch: {\n    options() {\n      if (this.chart) {\n        this.draw();\n      }\n    },\n    width() {\n      this.setChartSize();\n    },\n    height() {\n      this.setChartSize();\n    }\n  },\n  created() {\n    if (!this.disableTheme) {\n      echarts.registerTheme(themeName, createTheme(this.options));\n    }\n  },\n  async mounted() {\n    await this.$nextTick();\n    const chart = echarts.init(this.$refs.chart, this.disableTheme ? null : themeName, {\n      renderer: this.renderer,\n      width: defaultWidth,\n      height: defaultHeight\n    });\n    // FIXME: temporary workaround to ensure compatibility with @vue/compat\n    // eslint-disable-next-line no-underscore-dangle\n    chart.__v_skip = true;\n    this.chart = chart;\n    if (this.groupId.length) {\n      this.chart.group = this.groupId;\n      echarts.connect(this.groupId);\n    }\n    this.chart.on('click', this.handleClick);\n    /**\n     * Emitted after calling `echarts.init`\n     */\n    this.$emit('created', this.chart);\n    this.draw();\n    this.setChartSize();\n  },\n  beforeDestroy() {\n    this.chart.off('click', this.handleClick);\n  },\n  methods: {\n    draw() {\n      this.chart.setOption(this.normalizedOptions);\n      /**\n       * Emitted after calling `echarts.setOption`\n       */\n      this.$emit('updated', this.chart);\n    },\n    setChartSize() {\n      this.chart.resize({\n        width: this.width || 'auto',\n        height: this.height || defaultHeight\n      });\n    },\n    handleClick(params) {\n      /**\n       * Emitted when clicked on a data item in the chart (e.g., a bar/column).\n       *\n       * @property {object} chart The chart instance\n       * @property {object} params A params object, see also https://echarts.apache.org/en/api.html#events.Mouse%20events\n       */\n      this.$emit('chartItemClicked', {\n        chart: this.chart,\n        params\n      });\n    },\n    handleResize() {\n      this.chart.resize();\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"resize-observer\",rawName:\"v-resize-observer:[responsive]\",value:(_vm.debouncedHandleResize),expression:\"debouncedHandleResize\",arg:_vm.responsive}],ref:\"chart\"})};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","// These utility methods come from the Gitlab repo; app/assets/javascripts/lib/utils/datetime_utility.js\n\n/**\n * This method allows you to create new Date instance from existing\n * date instance without keeping the reference.\n *\n * @param {Date} date\n */\nconst newDate = date => date instanceof Date ? new Date(date.getTime()) : new Date();\n\n/**\n * Computes the difference between 2 date objects.\n *\n * @param {Date} a the start date\n * @param {Date} b the end date\n * @example\n * // returns 5\n * getDayDifference(new Date('2020-08-10'), new Date('2020-08-15'));\n * @returns {Number} Number of days between the 2 dates\n */\nconst getDayDifference = (a, b) => {\n  const millisecondsPerDay = 1000 * 60 * 60 * 24;\n  const date1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());\n  const date2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());\n  return Math.floor((date2 - date1) / millisecondsPerDay);\n};\n\n/**\n * Subtracts a given number of days from a given date and returns the new date.\n *\n * @param {Date} date the date that we will substract days from\n * @param {Number} daysInPast number of days that are subtracted from a given date\n * @example\n * // returns Mon Aug 10 2020 00:00:00\n * getDateInPast(new Date('2020-08-15'), 5);\n * @returns {Date} Date in past as Date object\n */\nconst getDateInPast = (date, daysInPast) => new Date(newDate(date).setDate(date.getDate() - daysInPast));\n\n/**\n * Adds a given number of days to a given date and returns the new date.\n *\n * @param {Date} date the date that we will add days to\n * @param {Number} daysInFuture number of days that are added to a given date\n * @example\n * // returns Mon Aug 15 2020 00:00:00\n * getDateInFuture(new Date('2020-08-10'), 5);\n * @returns {Date} Date in future as Date object\n */\nconst getDateInFuture = (date, daysInFuture) => new Date(newDate(date).setDate(date.getDate() + daysInFuture));\n\n/**\n * Are the given two dates equal\n *\n * @param {Date} date1\n * @param {Date} date2\n * @returns {Boolean}\n */\nconst areDatesEqual = (date1, date2) => Boolean(date1 && date2 && new Date(date1).getTime() === new Date(date2).getTime());\n\nexport { areDatesEqual, getDateInFuture, getDateInPast, getDayDifference, newDate };\n","import SeriesLabel from '../../charts/series_label/series_label';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'TooltipDefaultFormat',\n  components: {\n    SeriesLabel\n  },\n  props: {\n    tooltipContent: {\n      type: Object,\n      required: true\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.tooltipContent),function(value,label){return _c('div',{key:(\"\" + label + (value.value)),staticClass:\"gl-charts-tooltip-default-format-series\"},[_c('series-label',{staticClass:\"gl-charts-tooltip-default-format-series-label\",attrs:{\"color\":value.color}},[_vm._v(\"\\n      \"+_vm._s(label)+\"\\n    \")]),_vm._v(\" \"),_c('div',{staticClass:\"gl-charts-tooltip-default-format-series-value\"},[_vm._t(\"tooltip-value\",function(){return [_vm._v(_vm._s(value.value))]},{\"value\":value.value})],2)],1)}),0)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","import { ANNOTATIONS_SERIES_NAME, ANNOTATIONS_COMPONENT_TYPE } from './constants';\n\n/**\n * Check if passed series has annotations related data.\n *\n * This is currently used in time series charts (area & line).\n *\n * @param {Array} series Array of series\n * @returns {Boolean}\n */\nconst seriesHasAnnotations = function () {\n  let series = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  return (series || []).filter(seriesData => {\n    var _seriesData$ANNOTATIO, _seriesData$ANNOTATIO2;\n    return seriesData.name === ANNOTATIONS_SERIES_NAME && ((_seriesData$ANNOTATIO = seriesData[ANNOTATIONS_COMPONENT_TYPE]) === null || _seriesData$ANNOTATIO === void 0 ? void 0 : (_seriesData$ANNOTATIO2 = _seriesData$ANNOTATIO.data) === null || _seriesData$ANNOTATIO2 === void 0 ? void 0 : _seriesData$ANNOTATIO2.length);\n  }).length !== 0;\n};\n\n/**\n * Check if a data point is from an annotation series.\n *\n * This is triggered when hovered over time series charts.\n *\n * This is currently used in\n * @param {Object} params data point object\n * @returns {boolean}\n */\nconst isDataPointAnnotation = function () {\n  let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return params.name === ANNOTATIONS_SERIES_NAME && params.componentType === ANNOTATIONS_COMPONENT_TYPE;\n};\n\n/**\n * Date formatter to make date strings more\n * readable.\n *\n * This is currently used in area and line charts\n * stories.\n *\n * @param {String} d date string\n * @returns {String}\n */\nconst timeSeriesDateFormatter = function () {\n  let d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  if (!d) {\n    return '';\n  }\n  const date = new Date(d);\n  const month = (date.getMonth() + 1).toString().padStart(2, '0');\n  const day = date.getDate().toString().padStart(2, '0');\n  return `${date.getFullYear()}-${month}-${day}`;\n};\n\nexport { isDataPointAnnotation, seriesHasAnnotations, timeSeriesDateFormatter };\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n *     incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n  ? global.TYPED_ARRAY_SUPPORT\n  : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n  try {\n    var arr = new Uint8Array(1)\n    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n    return arr.foo() === 42 && // typed array instances can be augmented\n        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n  } catch (e) {\n    return false\n  }\n}\n\nfunction kMaxLength () {\n  return Buffer.TYPED_ARRAY_SUPPORT\n    ? 0x7fffffff\n    : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n  if (kMaxLength() < length) {\n    throw new RangeError('Invalid typed array length')\n  }\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = new Uint8Array(length)\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    if (that === null) {\n      that = new Buffer(length)\n    }\n    that.length = length\n  }\n\n  return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n    return new Buffer(arg, encodingOrOffset, length)\n  }\n\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new Error(\n        'If encoding is specified then the first argument must be a string'\n      )\n    }\n    return allocUnsafe(this, arg)\n  }\n  return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n  arr.__proto__ = Buffer.prototype\n  return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n  if (typeof value === 'number') {\n    throw new TypeError('\"value\" argument must not be a number')\n  }\n\n  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n    return fromArrayBuffer(that, value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'string') {\n    return fromString(that, value, encodingOrOffset)\n  }\n\n  return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n  Buffer.prototype.__proto__ = Uint8Array.prototype\n  Buffer.__proto__ = Uint8Array\n  if (typeof Symbol !== 'undefined' && Symbol.species &&\n      Buffer[Symbol.species] === Buffer) {\n    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n    Object.defineProperty(Buffer, Symbol.species, {\n      value: null,\n      configurable: true\n    })\n  }\n}\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be a number')\n  } else if (size < 0) {\n    throw new RangeError('\"size\" argument must not be negative')\n  }\n}\n\nfunction alloc (that, size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(that, size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpretted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(that, size).fill(fill, encoding)\n      : createBuffer(that, size).fill(fill)\n  }\n  return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n  assertSize(size)\n  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) {\n    for (var i = 0; i < size; ++i) {\n      that[i] = 0\n    }\n  }\n  return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('\"encoding\" must be a valid string encoding')\n  }\n\n  var length = byteLength(string, encoding) | 0\n  that = createBuffer(that, length)\n\n  var actual = that.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    that = that.slice(0, actual)\n  }\n\n  return that\n}\n\nfunction fromArrayLike (that, array) {\n  var length = array.length < 0 ? 0 : checked(array.length) | 0\n  that = createBuffer(that, length)\n  for (var i = 0; i < length; i += 1) {\n    that[i] = array[i] & 255\n  }\n  return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n  array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\\'offset\\' is out of bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\\'length\\' is out of bounds')\n  }\n\n  if (byteOffset === undefined && length === undefined) {\n    array = new Uint8Array(array)\n  } else if (length === undefined) {\n    array = new Uint8Array(array, byteOffset)\n  } else {\n    array = new Uint8Array(array, byteOffset, length)\n  }\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = array\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    that = fromArrayLike(that, array)\n  }\n  return that\n}\n\nfunction fromObject (that, obj) {\n  if (Buffer.isBuffer(obj)) {\n    var len = checked(obj.length) | 0\n    that = createBuffer(that, len)\n\n    if (that.length === 0) {\n      return that\n    }\n\n    obj.copy(that, 0, 0, len)\n    return that\n  }\n\n  if (obj) {\n    if ((typeof ArrayBuffer !== 'undefined' &&\n        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n      if (typeof obj.length !== 'number' || isnan(obj.length)) {\n        return createBuffer(that, 0)\n      }\n      return fromArrayLike(that, obj)\n    }\n\n    if (obj.type === 'Buffer' && isArray(obj.data)) {\n      return fromArrayLike(that, obj.data)\n    }\n  }\n\n  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < kMaxLength()` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= kMaxLength()) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + kMaxLength().toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError('Arguments must be Buffers')\n  }\n\n  if (a === b) return 0\n\n  var x = a.length\n  var y = b.length\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  var i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  var buffer = Buffer.allocUnsafe(length)\n  var pos = 0\n  for (i = 0; i < list.length; ++i) {\n    var buf = list[i]\n    if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    }\n    buf.copy(buffer, pos)\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    string = '' + string\n  }\n\n  var len = string.length\n  if (len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n      case undefined:\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) return utf8ToBytes(string).length // assume utf8\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  var loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  var i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  var len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (var i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  var len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (var i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  var len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (var i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  var length = this.length | 0\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  var str = ''\n  var max = exports.INSPECT_MAX_BYTES\n  if (this.length > 0) {\n    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n    if (this.length > max) str += ' ... '\n  }\n  return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError('Argument must be a Buffer')\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  var x = thisEnd - thisStart\n  var y = end - start\n  var len = Math.min(x, y)\n\n  var thisCopy = this.slice(thisStart, thisEnd)\n  var targetCopy = target.slice(start, end)\n\n  for (var i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset  // Coerce to Number.\n  if (isNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (Buffer.TYPED_ARRAY_SUPPORT &&\n        typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  var indexSize = 1\n  var arrLength = arr.length\n  var valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  var i\n  if (dir) {\n    var foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      var found = true\n      for (var j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  var remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  // must be an even number of digits\n  var strLen = string.length\n  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  for (var i = 0; i < length; ++i) {\n    var parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (isNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n  return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset | 0\n    if (isFinite(length)) {\n      length = length | 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  // legacy write(string, encoding, offset, length) - remove in v0.13\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  var remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n        return asciiWrite(this, string, offset, length)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Write(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  var res = []\n\n  var i = start\n  while (i < end) {\n    var firstByte = buf[i]\n    var codePoint = null\n    var bytesPerSequence = (firstByte > 0xEF) ? 4\n      : (firstByte > 0xDF) ? 3\n      : (firstByte > 0xBF) ? 2\n      : 1\n\n    if (i + bytesPerSequence <= end) {\n      var secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  var len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  var res = ''\n  var i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  var len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  var out = ''\n  for (var i = start; i < end; ++i) {\n    out += toHex(buf[i])\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  var bytes = buf.slice(start, end)\n  var res = ''\n  for (var i = 0; i < bytes.length; i += 2) {\n    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  var len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  var newBuf\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    newBuf = this.subarray(start, end)\n    newBuf.__proto__ = Buffer.prototype\n  } else {\n    var sliceLen = end - start\n    newBuf = new Buffer(sliceLen, undefined)\n    for (var i = 0; i < sliceLen; ++i) {\n      newBuf[i] = this[i + start]\n    }\n  }\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  var val = this[offset + --byteLength]\n  var mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var i = byteLength\n  var mul = 1\n  var val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var mul = 1\n  var i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n      (littleEndian ? i : 1 - i) * 8\n  }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffffffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n  }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset + 3] = (value >>> 24)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 1] = (value >>> 8)\n    this[offset] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = 0\n  var mul = 1\n  var sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  var sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 3] = (value >>> 24)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  var len = end - start\n  var i\n\n  if (this === target && start < targetStart && targetStart < end) {\n    // descending copy from end\n    for (i = len - 1; i >= 0; --i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n    // ascending copy from start\n    for (i = 0; i < len; ++i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, start + len),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (val.length === 1) {\n      var code = val.charCodeAt(0)\n      if (code < 256) {\n        val = code\n      }\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  var i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    var bytes = Buffer.isBuffer(val)\n      ? val\n      : utf8ToBytes(new Buffer(val, encoding).toString())\n    var len = bytes.length\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction stringtrim (str) {\n  if (str.trim) return str.trim()\n  return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n  if (n < 16) return '0' + n.toString(16)\n  return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  var codePoint\n  var length = string.length\n  var leadSurrogate = null\n  var bytes = []\n\n  for (var i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  var c, hi, lo\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  for (var i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\nfunction isnan (val) {\n  return val !== val // eslint-disable-line no-self-compare\n}\n","/**\n * As of %12.10 all annotations are added as a decorations\n * by piggybacking a scatter series. The series should\n * have 'annotations' as name for the annotation tooltips\n * to work.\n *\n * More info here https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28825\n *\n */\nconst ANNOTATIONS_SERIES_NAME = 'annotations';\n/**\n * Annotations have a line (markLine) and an arrow (markPoint).\n * When the markPoint is hovered, a tooltip is displayed to\n * show the annotation description.\n *\n * All markPoints have this component type\n */\nconst ANNOTATIONS_COMPONENT_TYPE = 'markPoint';\n\n/**\n * This is a slight offset that gets applied to the left\n * of the chart tooltips to ensure a correct position.\n */\nconst TOOLTIP_LEFT_OFFSET = 2;\n\n/**\n * This is a slight offset that gets applied to the left\n * of the chart tooltips to ensure a correct position.\n */\nconst TOOLTIP_TOP_OFFSET = 10;\n\n/**\n * These are the accepted values for the layout prop\n * of the chart legend component\n */\nconst LEGEND_LAYOUT_INLINE = 'inline';\nconst LEGEND_LAYOUT_TABLE = 'table';\n\n/**\n * Default values for the chart legend field labels\n */\nconst LEGEND_AVERAGE_TEXT = 'Avg';\nconst LEGEND_CURRENT_TEXT = 'Current';\nconst LEGEND_MIN_TEXT = 'Min';\nconst LEGEND_MAX_TEXT = 'Max';\n\n/**\n * These arrow symbols are used as markPoints under the annotations lines\n * within area and line charts. This icon doesn't exist in the svg\n * library yet. The below issue is to track the progress of the svg icon\n * https://gitlab.com/gitlab-org/gitlab-svgs/-/issues/118\n */\nconst arrowSymbol = 'path://m5 229 5 8h-10z';\n\n// Constants for the type property of charts\nconst CHART_TYPE_BAR = 'bar';\nconst CHART_TYPE_LINE = 'line';\n\n// Constants for height \"auto\"\nconst HEIGHT_AUTO_CLASSES = 'gl-chart-h-auto gl-flex gl-flex-col gl-h-full';\nconst HEIGHT_AUTO_HORIZONTAL_LAYOUT_CLASSES = 'gl-flex gl-h-full';\n\nexport { ANNOTATIONS_COMPONENT_TYPE, ANNOTATIONS_SERIES_NAME, CHART_TYPE_BAR, CHART_TYPE_LINE, HEIGHT_AUTO_CLASSES, HEIGHT_AUTO_HORIZONTAL_LAYOUT_CLASSES, LEGEND_AVERAGE_TEXT, LEGEND_CURRENT_TEXT, LEGEND_LAYOUT_INLINE, LEGEND_LAYOUT_TABLE, LEGEND_MAX_TEXT, LEGEND_MIN_TEXT, TOOLTIP_LEFT_OFFSET, TOOLTIP_TOP_OFFSET, arrowSymbol };\n","import * as echarts from 'echarts';\nimport { GRAY_200 } from '../../../tokens/build/js/tokens';\nimport { defaultFontSize } from '../../../utils/charts/config';\nimport { LEGEND_AVERAGE_TEXT, LEGEND_CURRENT_TEXT, LEGEND_MIN_TEXT, LEGEND_MAX_TEXT, LEGEND_LAYOUT_INLINE, LEGEND_LAYOUT_TABLE } from '../../../utils/charts/constants';\nimport { engineeringNotation, average } from '../../../utils/number_utils';\nimport GlTruncate from '../../utilities/truncate/truncate';\nimport GlChartSeriesLabel from '../series_label/series_label';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n  name: 'GlChartLegend',\n  components: {\n    GlChartSeriesLabel,\n    GlTruncate\n  },\n  props: {\n    chart: {\n      type: Object,\n      required: true,\n      validator(chart) {\n        return Object.is(chart, echarts.getInstanceByDom(chart.getDom()));\n      }\n    },\n    seriesInfo: {\n      type: Array,\n      required: true,\n      validator(seriesInfo) {\n        return seriesInfo.every(series => series.type && series.name && series.color);\n      }\n    },\n    textStyle: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    },\n    /**\n     * Text for data average (overridden by prop if needed for internationalization)\n     */\n    averageText: {\n      type: String,\n      required: false,\n      default: LEGEND_AVERAGE_TEXT\n    },\n    currentText: {\n      type: String,\n      required: false,\n      default: LEGEND_CURRENT_TEXT\n    },\n    minText: {\n      type: String,\n      required: false,\n      default: LEGEND_MIN_TEXT\n    },\n    /**\n     * Text for max amount (overridden by prop if needed for internationalization)\n     */\n    maxText: {\n      type: String,\n      required: false,\n      default: LEGEND_MAX_TEXT\n    },\n    /**\n     * Sets the display layout\n     */\n    layout: {\n      type: String,\n      required: false,\n      default: LEGEND_LAYOUT_INLINE,\n      validator(layout) {\n        return [LEGEND_LAYOUT_INLINE, LEGEND_LAYOUT_TABLE].indexOf(layout) !== -1;\n      }\n    }\n  },\n  data() {\n    return {\n      disabledSeries: {},\n      lastActiveSeriesLabel: null,\n      shouldApplyFadeClass: false\n    };\n  },\n  computed: {\n    fontStyle() {\n      return {\n        fontFamily: this.textStyle.fontFamily || 'sans-serif',\n        fontSize: `${this.textStyle.fontSize || defaultFontSize}px`\n      };\n    },\n    hasOneSeriesElement() {\n      return this.seriesInfo.length === 1;\n    }\n  },\n  created() {\n    this.chart.on('legendselectchanged', this.suppressLastActiveSeriesLabelToggle);\n  },\n  mounted() {\n    this.applyFadeClass();\n  },\n  async updated() {\n    await this.$nextTick();\n    this.applyFadeClass();\n  },\n  beforeDestroy() {\n    this.chart.off('legendselectchanged', this.suppressLastActiveSeriesLabelToggle);\n  },\n  methods: {\n    sanitizeSeriesData(seriesData) {\n      var _seriesData$filter;\n      return (_seriesData$filter = seriesData === null || seriesData === void 0 ? void 0 : seriesData.filter(d => !Number.isNaN(d))) !== null && _seriesData$filter !== void 0 ? _seriesData$filter : [];\n    },\n    seriesAverage(seriesData) {\n      const sanitized = this.sanitizeSeriesData(seriesData);\n      return engineeringNotation(average(...sanitized));\n    },\n    seriesMax(seriesData) {\n      const sanitized = this.sanitizeSeriesData(seriesData);\n      return engineeringNotation(Math.max(...sanitized));\n    },\n    seriesMin(seriesData) {\n      const sanitized = this.sanitizeSeriesData(seriesData);\n      return engineeringNotation(Math.min(...sanitized));\n    },\n    seriesLast(seriesData) {\n      const sanitized = this.sanitizeSeriesData(seriesData);\n      return engineeringNotation(sanitized[sanitized.length - 1]);\n    },\n    seriesNameIsLong(seriesName) {\n      return seriesName.length > 120;\n    },\n    handleClick(_ref, key) {\n      let {\n        name,\n        disabled\n      } = _ref;\n      if (this.hasOneSeriesElement || this.isToggleDisabled(name, disabled)) return;\n      this.chart.dispatchAction({\n        type: 'legendToggleSelect',\n        name\n      });\n      this.disabledSeries = {\n        ...this.disabledSeries,\n        [key]: !this.disabledSeries[key]\n      };\n    },\n    handleMouseEnter(name) {\n      this.chart.dispatchAction({\n        type: 'highlight',\n        seriesName: name\n      });\n    },\n    handleMouseLeave(name) {\n      this.chart.dispatchAction({\n        type: 'downplay',\n        seriesName: name\n      });\n    },\n    getColor(color, key) {\n      return this.disabledSeries[key] ? GRAY_200 : color;\n    },\n    suppressLastActiveSeriesLabelToggle(_ref2) {\n      let {\n        selected\n      } = _ref2;\n      const selectedSeriesLabels = Object.entries(selected).filter(_ref3 => {\n        let [, isSelected] = _ref3;\n        return Boolean(isSelected);\n      });\n      this.lastActiveSeriesLabel = null;\n      if (selectedSeriesLabels.length === 1) {\n        const [lastActiveSeriesLabelName] = selectedSeriesLabels[0];\n        this.lastActiveSeriesLabel = lastActiveSeriesLabelName;\n      }\n    },\n    /**\n     * Disables toggling legend if it is the last active one or if its data series\n     * has a disabled property set to true\n     * @param {String} name Series name\n     * @param {Boolean} isDisabled Value of the series element's disabled property\n     * @returns {boolean}\n     */\n    isToggleDisabled(name, isDisabled) {\n      return name === this.lastActiveSeriesLabel || isDisabled;\n    },\n    applyFadeClass() {\n      if (this.$refs.inlineLegendEl) {\n        const {\n          scrollHeight,\n          clientHeight\n        } = this.$refs.inlineLegendEl;\n        this.shouldApplyFadeClass = scrollHeight > clientHeight;\n      }\n    }\n  },\n  legendLayoutTypes: {\n    LEGEND_LAYOUT_INLINE,\n    LEGEND_LAYOUT_TABLE\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-legend\",attrs:{\"data-testid\":\"gl-chart-legend\"}},[(_vm.layout === _vm.$options.legendLayoutTypes.LEGEND_LAYOUT_INLINE)?[_c('div',{ref:\"inlineLegendEl\",staticClass:\"gl-legend-inline\",class:{ 'gl-legend-b-fade': _vm.shouldApplyFadeClass }},_vm._l((_vm.seriesInfo),function(series,key){return _c('div',{key:key,staticClass:\"gl-legend-inline-series\",class:{\n          'gl-text-subtle': _vm.disabledSeries[key],\n          'gl-text-strong': !_vm.disabledSeries[key],\n          'gl-w-full': _vm.seriesNameIsLong(series.name),\n          'hover:!gl-cursor-not-allowed':\n            _vm.hasOneSeriesElement || _vm.isToggleDisabled(series.name, series.disabled),\n        },style:(_vm.fontStyle),attrs:{\"aria-disabled\":_vm.hasOneSeriesElement || _vm.isToggleDisabled(series.name, series.disabled),\"role\":\"button\"},on:{\"click\":function($event){return _vm.handleClick(series, key)},\"mouseenter\":function($event){return _vm.handleMouseEnter(series.name)},\"mouseleave\":function($event){return _vm.handleMouseLeave(series.name)}}},[_c('gl-chart-series-label',{staticClass:\"gl-legend-inline-series-label\",class:{ 'gl-w-3/4': _vm.seriesNameIsLong(series.name) },attrs:{\"color\":_vm.getColor(series.color, key),\"type\":series.type}},[_c('gl-truncate',{staticClass:\"gl-font-bold\",attrs:{\"text\":series.name}})],1),_vm._v(\" \"),(series.data && series.data.length)?_c('span',{class:{ 'gl-whitespace-nowrap': _vm.seriesNameIsLong(series.name) }},[_vm._v(\"\\n          \"+_vm._s(_vm.averageText)+\": \"+_vm._s(_vm.seriesAverage(series.data))+\" ยท \"+_vm._s(_vm.maxText)+\":\\n          \"+_vm._s(_vm.seriesMax(series.data))+\"\\n        \")]):_vm._e()],1)}),0)]:_vm._e(),_vm._v(\" \"),(_vm.layout === _vm.$options.legendLayoutTypes.LEGEND_LAYOUT_TABLE)?[_c('div',{staticClass:\"gl-legend-tabular gl-legend-b-fade\",style:(_vm.fontStyle)},[_c('header',{staticClass:\"gl-legend-tabular-header\"},[_c('div',{staticClass:\"gl-legend-tabular-header-cell\"},[_vm._v(_vm._s(_vm.minText))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-legend-tabular-header-cell\"},[_vm._v(_vm._s(_vm.maxText))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-legend-tabular-header-cell\"},[_vm._v(_vm._s(_vm.averageText))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-legend-tabular-header-cell\"},[_vm._v(_vm._s(_vm.currentText))])]),_vm._v(\" \"),_c('section',{staticClass:\"gl-legend-tabular-body\"},_vm._l((_vm.seriesInfo),function(series,key){return _c('div',{key:key,staticClass:\"gl-legend-tabular-row\",class:{\n            'gl-text-subtle': _vm.disabledSeries[key],\n            'gl-text-strong': !_vm.disabledSeries[key],\n            'hover:!gl-cursor-not-allowed':\n              _vm.hasOneSeriesElement || _vm.isToggleDisabled(series.name, series.disabled),\n          },style:(_vm.fontStyle),attrs:{\"aria-disabled\":_vm.isToggleDisabled(series.name, series.disabled),\"role\":\"button\"},on:{\"click\":function($event){return _vm.handleClick(series, key)},\"mouseenter\":function($event){return _vm.handleMouseEnter(series.name)},\"mouseleave\":function($event){return _vm.handleMouseLeave(series.name)}}},[_c('div',{staticClass:\"gl-legend-tabular-title-cell\"},[_c('gl-chart-series-label',{style:(_vm.fontStyle),attrs:{\"color\":_vm.getColor(series.color, key),\"type\":series.type}},[_c('gl-truncate',{staticClass:\"gl-font-bold\",attrs:{\"text\":series.name}})],1)],1),_vm._v(\" \"),(_vm.sanitizeSeriesData(series.data).length)?[_c('div',{staticClass:\"gl-legend-tabular-details-cell\"},[_vm._v(_vm._s(_vm.seriesMin(series.data)))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-legend-tabular-details-cell\"},[_vm._v(_vm._s(_vm.seriesMax(series.data)))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-legend-tabular-details-cell\"},[_vm._v(_vm._s(_vm.seriesAverage(series.data)))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-legend-tabular-details-cell\"},[_vm._v(_vm._s(_vm.seriesLast(series.data)))])]:[_c('div',{staticClass:\"gl-legend-tabular-details-cell\"},[_vm._v(\"-\")]),_vm._v(\" \"),_c('div',{staticClass:\"gl-legend-tabular-details-cell\"},[_vm._v(\"-\")]),_vm._v(\" \"),_c('div',{staticClass:\"gl-legend-tabular-details-cell\"},[_vm._v(\"-\")]),_vm._v(\" \"),_c('div',{staticClass:\"gl-legend-tabular-details-cell\"},[_vm._v(\"-\")])]],2)}),0)])]:_vm._e()],2)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n","const scrollHandleSvgPath = 'path://M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zM6 4a1 1 0 0 0-1 1v6a1 1 0 0 0 2 0V5a1 1 0 0 0-1-1zm4 0a1 1 0 0 0-1 1v6a1 1 0 0 0 2 0V5a1 1 0 0 0-1-1z';\nconst marqueeSelectionSvgPath = 'path://M-6.251 -7L-7 -7L-7 -4.753A0.749 0.749 0 0 0 -5.502 -4.753L-5.502 -5.502L-4.753 -5.502A0.749 0.749 0 0 0 -4.753 -7L-6.251 -7ZM-6.251 -2.0067A0.749 0.749 0 0 1 -5.502 -1.2577L-5.502 1.239A0.749 0.749 0 1 1 -7 1.239L-7 -1.2577A0.749 0.749 0 0 1 -6.251 -2.0067ZM0.8455 0.8455L2.3505 4.3578L4.3578 2.3505L0.8455 0.8455ZM0.2883 -1.023L5.6251 1.264A0.9987 0.9987 0 0 1 5.9387 2.8888L4.943 3.8835L6.7616 5.703A0.749 0.749 0 1 1 5.703 6.7616L3.8835 4.943L2.8888 5.9387A0.9987 0.9987 0 0 1 1.264 5.6251L-1.023 0.2883C-1.3785 -0.5406 -0.5406 -1.3785 0.2883 -1.023ZM-6.251 6.9813L-7 6.9813L-7 4.7343A0.749 0.749 0 1 1 -5.502 4.7343L-5.502 5.4833L-4.753 5.4833A0.749 0.749 0 1 1 -4.753 6.9813L-6.251 6.9813ZM-2.0067 -6.251A0.749 0.749 0 0 1 -1.2577 -7L1.239 -7A0.749 0.749 0 1 1 1.239 -5.502L-1.2577 -5.502A0.749 0.749 0 0 1 -2.0067 -6.251ZM6.2323 -7L6.9813 -7L6.9813 -4.753A0.749 0.749 0 1 1 5.4833 -4.753L5.4833 -5.502L4.7343 -5.502A0.749 0.749 0 1 1 4.7343 -7L6.2323 -7Z';\nconst redoSvgPath = 'path://M1.8332 -6.7552A7.0001 7.0001 0 0 0 -5.6875 -4.082L-5.6875 -5.4689A0.6563 0.6563 0 0 0 -7 -5.4689L-7 -1.7501L-3.2812 -1.7501A0.6563 0.6563 0 0 0 -3.2812 -3.0626L-4.7923 -3.0626A5.6876 5.6876 0 1 1 -5.2526 2.1822A0.6563 0.6563 0 0 0 -6.4645 2.6853A7.0001 7.0001 0 1 0 1.8332 -6.7561Z';\nconst clearAllSvgPath = 'path://M-1.8332 -6.7552A7.0001 7.0001 0 0 1 5.6875 -4.082L5.6875 -5.4689A0.6563 0.6563 0 1 1 7 -5.4689L7 -1.7501L3.2812 -1.7501A0.6563 0.6563 0 1 1 3.2812 -3.0626L4.7923 -3.0626A5.6876 5.6876 0 1 0 5.2526 2.1822A0.6563 0.6563 0 1 1 6.4645 2.6853A7.0001 7.0001 0 1 1 -1.8332 -6.7561Z';\nconst downloadSvgPath = 'path://M3.78 -0.841A0.75 0.75 0 0 0 2.72 -0.841L0.75 1.129L0.75 -6.25A0.75 0.75 0 0 0 -0.75 -6.25L-0.75 1.129L-2.72 -0.841A0.75 0.75 0 0 0 -3.78 0.219L-0.53 3.469L0 4L0.53 3.47L3.78 0.22A0.75 0.75 0 0 0 3.78 -0.841ZM-5.5 1.75A0.75 0.75 0 0 0 -7 1.75L-7 5A2 2 0 0 0 -5 7L5 7A2 2 0 0 0 7 5L7 1.75A0.75 0.75 0 0 0 5.5 1.75L5.5 5A0.5 0.5 0 0 1 5 5.5L-5 5.5A0.5 0.5 0 0 1 -5.5 5L-5.5 1.75Z';\n\nexport { clearAllSvgPath, downloadSvgPath, marqueeSelectionSvgPath, redoSvgPath, scrollHandleSvgPath };\n","import { GRAY_600, GRAY_200, GRAY_50, GRAY_300, GRAY_100, DATA_VIZ_BLUE_200, DATA_VIZ_BLUE_400, DATA_VIZ_BLUE_600, DATA_VIZ_BLUE_800, GRAY_900, GRAY_500, DATA_VIZ_BLUE_500, DATA_VIZ_BLUE_900, DATA_VIZ_ORANGE_500, DATA_VIZ_ORANGE_600, DATA_VIZ_AQUA_500, DATA_VIZ_GREEN_600, DATA_VIZ_MAGENTA_500, DATA_VIZ_BLUE_700, DATA_VIZ_ORANGE_800, DATA_VIZ_AQUA_700, DATA_VIZ_GREEN_800, DATA_VIZ_MAGENTA_700, DATA_VIZ_ORANGE_950, DATA_VIZ_AQUA_900, DATA_VIZ_GREEN_950, DATA_VIZ_MAGENTA_900, DATA_VIZ_ORANGE_700, DATA_VIZ_AQUA_600, DATA_VIZ_GREEN_700, DATA_VIZ_MAGENTA_600, DATA_VIZ_ORANGE_900, DATA_VIZ_AQUA_800, DATA_VIZ_GREEN_900, DATA_VIZ_MAGENTA_800, DATA_VIZ_BLUE_950, DATA_VIZ_AQUA_950, DATA_VIZ_GREEN_500, DATA_VIZ_MAGENTA_950, DATA_VIZ_ORANGE_400, DATA_VIZ_GREEN_400, DATA_VIZ_BLUE_300, DATA_VIZ_ORANGE_200, DATA_VIZ_AQUA_300, DATA_VIZ_GREEN_200, DATA_VIZ_MAGENTA_300, DATA_VIZ_BLUE_100, DATA_VIZ_ORANGE_50, DATA_VIZ_AQUA_100, DATA_VIZ_GREEN_50, DATA_VIZ_MAGENTA_100, DATA_VIZ_ORANGE_300, DATA_VIZ_AQUA_400, DATA_VIZ_GREEN_300, DATA_VIZ_MAGENTA_400, DATA_VIZ_ORANGE_100, DATA_VIZ_AQUA_200, DATA_VIZ_GREEN_100, DATA_VIZ_MAGENTA_200, DATA_VIZ_BLUE_50, DATA_VIZ_AQUA_50, DATA_VIZ_MAGENTA_50, RED_500, WHITE } from '../../tokens/build/js/tokens';\nimport { scrollHandleSvgPath, marqueeSelectionSvgPath, redoSvgPath, clearAllSvgPath, downloadSvgPath } from '../svgs/svg_paths';\nimport { hexToRgba } from '../utils';\n\nconst GL_BORDER_RADIUS_BASE = '0.25rem';\nconst themeName = 'gitlab';\nconst heatmapHues = [GRAY_100, DATA_VIZ_BLUE_200, DATA_VIZ_BLUE_400, DATA_VIZ_BLUE_600, DATA_VIZ_BLUE_800];\nconst gaugeNeutralHues = [GRAY_900, GRAY_500];\nconst gaugeSafeHues = [DATA_VIZ_BLUE_500, DATA_VIZ_BLUE_900];\nconst gaugeWarningHue = DATA_VIZ_ORANGE_500;\n\n/**\n * The default palette is based on the Categorical data palette\n * Categorical data (also known as qualitative or thematic) uses hue to\n * differentiate qualitative data, and lightness to differentiate quantitive data.\n * More info: https://design.gitlab.com/data-visualization/color#categorical-data\n */\nconst colorPaletteDefault = [DATA_VIZ_BLUE_500, DATA_VIZ_ORANGE_600, DATA_VIZ_AQUA_500, DATA_VIZ_GREEN_600, DATA_VIZ_MAGENTA_500, DATA_VIZ_BLUE_700, DATA_VIZ_ORANGE_800, DATA_VIZ_AQUA_700, DATA_VIZ_GREEN_800, DATA_VIZ_MAGENTA_700, DATA_VIZ_BLUE_900, DATA_VIZ_ORANGE_950, DATA_VIZ_AQUA_900, DATA_VIZ_GREEN_950, DATA_VIZ_MAGENTA_900, DATA_VIZ_BLUE_600, DATA_VIZ_ORANGE_700, DATA_VIZ_AQUA_600, DATA_VIZ_GREEN_700, DATA_VIZ_MAGENTA_600, DATA_VIZ_BLUE_800, DATA_VIZ_ORANGE_900, DATA_VIZ_AQUA_800, DATA_VIZ_GREEN_900, DATA_VIZ_MAGENTA_800, DATA_VIZ_BLUE_950, DATA_VIZ_ORANGE_500, DATA_VIZ_AQUA_950, DATA_VIZ_GREEN_500, DATA_VIZ_MAGENTA_950];\nconst colorFromDefaultPalette = index => colorPaletteDefault[index % colorPaletteDefault.length];\nconst colorPaletteDark = [DATA_VIZ_BLUE_500, DATA_VIZ_ORANGE_400, DATA_VIZ_AQUA_500, DATA_VIZ_GREEN_400, DATA_VIZ_MAGENTA_500, DATA_VIZ_BLUE_300, DATA_VIZ_ORANGE_200, DATA_VIZ_AQUA_300, DATA_VIZ_GREEN_200, DATA_VIZ_MAGENTA_300, DATA_VIZ_BLUE_100, DATA_VIZ_ORANGE_50, DATA_VIZ_AQUA_100, DATA_VIZ_GREEN_50, DATA_VIZ_MAGENTA_100, DATA_VIZ_BLUE_400, DATA_VIZ_ORANGE_300, DATA_VIZ_AQUA_400, DATA_VIZ_GREEN_300, DATA_VIZ_MAGENTA_400, DATA_VIZ_BLUE_200, DATA_VIZ_ORANGE_100, DATA_VIZ_AQUA_200, DATA_VIZ_GREEN_100, DATA_VIZ_MAGENTA_200, DATA_VIZ_BLUE_50, DATA_VIZ_ORANGE_500, DATA_VIZ_AQUA_50, DATA_VIZ_GREEN_500, DATA_VIZ_MAGENTA_50];\nconst colorFromDarkPalette = index => colorPaletteDark[index % colorPaletteDark.length];\nconst axes = {\n  axisLabel: {\n    margin: 8,\n    show: true,\n    color: `var(--gray-600, ${GRAY_600})`,\n    hideOverlap: true\n  },\n  axisLine: {\n    show: false\n  },\n  axisPointer: {\n    lineStyle: {\n      type: 'solid',\n      color: GRAY_600\n    },\n    label: {\n      show: false\n    }\n  },\n  axisTick: {\n    show: true,\n    alignWithLabel: true,\n    lineStyle: {\n      color: GRAY_200\n    }\n  },\n  nameGap: 30,\n  nameTextStyle: {\n    fontWeight: 'bold'\n  },\n  splitLine: {\n    lineStyle: {\n      color: [GRAY_200]\n    }\n  },\n  splitArea: {\n    show: false,\n    areaStyle: {\n      color: [hexToRgba(GRAY_50, 0.3), hexToRgba(GRAY_300, 0.3)]\n    }\n  }\n};\nconst isLineChartWithoutArea = options => Array.isArray(options === null || options === void 0 ? void 0 : options.series) && options.series.some(series => series.type === 'line' && !series.areaStyle);\nconst createTheme = function () {\n  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return {\n    color: colorPaletteDefault,\n    backgroundColor: 'transparent',\n    textStyle: {\n      color: `var(--gl-text-color, ${GRAY_900})`\n    },\n    markLine: {\n      silent: true,\n      symbol: 'none',\n      label: {\n        show: false\n      },\n      lineStyle: {\n        color: RED_500,\n        width: 1,\n        type: 'dashed'\n      }\n    },\n    markArea: {\n      silent: true,\n      itemStyle: {\n        color: hexToRgba(RED_500, 0.1)\n      }\n    },\n    dataZoom: {\n      borderColor: 'transparent',\n      filterMode: 'none',\n      brushSelect: false,\n      dataBackground: {\n        lineStyle: {\n          width: 2,\n          color: GRAY_200,\n          opacity: 1\n        },\n        // render unfilled zoom-graph if the series is a line chart without area styles\n        // more details: https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/2364#note_666637306\n        areaStyle: isLineChartWithoutArea(options) ? {} // Use empty object instead of null, see https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/2185#note_707711029 for more context\n        : {\n          color: GRAY_50,\n          opacity: 1\n        }\n      },\n      fillerColor: hexToRgba(GRAY_200, 0.23),\n      handleIcon: scrollHandleSvgPath,\n      handleStyle: {\n        borderColor: 'transparent',\n        color: GRAY_500\n      },\n      handleSize: '50%',\n      labelFormatter: () => null,\n      textStyle: {\n        color: GRAY_600\n      }\n    },\n    toolbox: {\n      top: '-5',\n      left: 'center',\n      itemSize: 14,\n      emphasis: {\n        iconStyle: {\n          borderWidth: 0,\n          color: GRAY_900,\n          textBackgroundColor: WHITE,\n          textBorderRadius: GL_BORDER_RADIUS_BASE,\n          textPadding: [8, 12]\n        }\n      },\n      iconStyle: {\n        color: GRAY_500,\n        borderWidth: 0\n      },\n      itemGap: 8,\n      feature: {\n        dataZoom: {\n          title: {\n            zoom: 'Click to zoom in on a portion of the graph',\n            back: 'Remove selection'\n          },\n          icon: {\n            zoom: marqueeSelectionSvgPath,\n            back: redoSvgPath\n          }\n        },\n        restore: {\n          title: 'Remove all selections and return chart to default state',\n          icon: clearAllSvgPath\n        },\n        saveAsImage: {\n          title: 'Save chart as an image',\n          name: 'graph',\n          icon: downloadSvgPath\n        }\n      }\n    },\n    markPoint: {\n      label: {\n        normal: {\n          textStyle: {\n            color: GRAY_50\n          }\n        },\n        emphasis: {\n          textStyle: {\n            color: GRAY_50\n          }\n        }\n      }\n    },\n    line: {\n      itemStyle: {\n        normal: {\n          borderWidth: 1\n        }\n      },\n      lineStyle: {\n        normal: {\n          width: 2\n        }\n      },\n      symbolSize: '6',\n      symbol: 'circle',\n      showSymbol: false,\n      smooth: false\n    },\n    categoryAxis: axes,\n    valueAxis: axes,\n    logAxis: axes,\n    timeAxis: axes\n  };\n};\n\nexport { colorFromDarkPalette, colorFromDefaultPalette, colorPaletteDark, colorPaletteDefault, createTheme, gaugeNeutralHues, gaugeSafeHues, gaugeWarningHue, heatmapHues, themeName };\n","import castArray from 'lodash/castArray';\nimport merge from 'lodash/merge';\nimport { BLUE_500 } from '../../tokens/build/js/tokens';\nimport { GlBreakpointInstance } from '../breakpoints';\nimport { columnOptions } from '../constants';\nimport { areDatesEqual } from '../datetime_utility';\nimport { engineeringNotation } from '../number_utils';\nimport { hexToRgba } from '../utils';\nimport { arrowSymbol, ANNOTATIONS_SERIES_NAME, CHART_TYPE_BAR, CHART_TYPE_LINE } from './constants';\n\nconst defaultAreaOpacity = 0.2;\nconst defaultFontSize = 12;\nconst defaultHeight = 400;\nconst defaultWidth = 300;\nconst validRenderers = ['canvas', 'svg'];\nconst toolboxHeight = 14;\nconst axes = {\n  name: 'Value',\n  type: 'value',\n  nameLocation: 'center'\n};\nconst xAxis = merge({}, axes, {\n  boundaryGap: false,\n  splitLine: {\n    show: false\n  }\n});\nconst yAxis = merge({}, axes, {\n  nameGap: 50,\n  axisLabel: {\n    formatter: num => engineeringNotation(num, 2)\n  }\n});\nconst grid = {\n  top: 16,\n  bottom: 44,\n  left: 64,\n  right: 32\n};\nconst defaultChartOptions = {\n  grid,\n  xAxis,\n  yAxis\n};\nconst gridWithSecondaryYAxis = {\n  ...grid,\n  right: 64\n};\nconst lineStyle = {\n  symbol: 'circle',\n  type: 'line',\n  width: 2\n};\n\n/**\n * Annotations series consists of annotations lines\n * along with markers. Annotations co-exist with data\n * series but have their own virtual coords so that they stay put\n * irrespective of data series extents.\n */\nconst annotationsYAxisCoords = {\n  min: 0,\n  pos: 3,\n  // 3% height of chart's grid\n  max: 100,\n  show: false\n};\nconst symbolSize = 6;\n\n/**\n * These comparison operators are currently in monitoring\n * charts that have alerting related data.\n *\n * {Array} Possible values for greater than\n */\nconst GREATER_THAN = ['>', '&gt;'];\n\n/**\n * These comparison operators are currently in monitoring\n * charts that have alerting related data.\n *\n * {Array} Possible values for less than\n */\nconst LESS_THAN = ['<', '&lt;'];\n\n/**\n * All default dataZoom configs will have slider & inside\n * (for reference, see https://gitlab.com/gitlab-org/gitlab-ui/issues/240)\n * Inside is disabled for larger viewports (lg and xl)\n * and is specifically to enable touch zoom for mobile devices\n * @param {Object} options\n */\nconst getDataZoomConfig = function () {\n  let {\n    filterMode = 'none'\n  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  const disabledBreakpoints = ['lg', 'xl'];\n  const disabled = disabledBreakpoints.includes(GlBreakpointInstance.getBreakpointSize());\n  const minSpan = filterMode === 'none' ? 0.01 : null;\n  return {\n    grid: {\n      bottom: 81\n    },\n    xAxis: {\n      nameGap: 67\n    },\n    dataZoom: [{\n      type: 'slider',\n      bottom: 22,\n      filterMode,\n      minSpan\n    }, {\n      type: 'inside',\n      filterMode,\n      minSpan,\n      disabled\n    }]\n  };\n};\n\n// All chart options can be merged but series\n// needs to be concatenated.\n// Series can be an object for single series or\n// an array of objects.\nconst mergeSeriesToOptions = function (options) {\n  let series = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  const {\n    series: optSeries = []\n  } = options;\n  return {\n    ...options,\n    series: [...castArray(series), ...castArray(optSeries)]\n  };\n};\n\n/**\n * If an annotation series exists, the chart options should have an\n * array of yAxis settings so that the series can exist in its own\n * coordinate system without interfering with the data series\n *\n * @param {Object} options options to merge annotation series yAxis with\n * @param {Boolean} hasAnnotations if annotation series yAxis should be merged\n * @returns {Object} options\n */\nconst mergeAnnotationAxisToOptions = function (options) {\n  let hasAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  return {\n    ...options,\n    ...(hasAnnotations && {\n      yAxis: [options.yAxis, annotationsYAxisCoords]\n    })\n  };\n};\nconst dataZoomAdjustments = dataZoom => {\n  // handle cases where dataZoom is array and object.\n  const useSlider = dataZoom && Array.isArray(dataZoom) ? dataZoom.length : Boolean(dataZoom);\n  return useSlider ? getDataZoomConfig({\n    filterMode: 'weakFilter'\n  }) : [];\n};\n\n/**\n * Generate eCharts markArea arrays for thresholds and annotations.\n *\n * This method purposefully has no knowledge of comparison\n * operators used in thresholds as it is not necessary and instead\n * expects explict value bounds\n *\n * Examples:\n * { min: 7, max: 10 } => markArea from 7 to 10\n * { min: 1, max: 7 } => markArea from 1 to 7\n *\n * If min and max are equal it would be markLine and would be\n * generated by `generateMarkLines`\n *\n * @param {Object} threshold Threshold/Annotation object with min and max values\n * @param {String} axis markArea is generated against this axis\n * @returns {Array}\n */\nconst generateMarkArea = function (_ref) {\n  let {\n    min,\n    max\n  } = _ref;\n  let axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yAxis';\n  return [{\n    [axis]: min\n  }, {\n    [axis]: max\n  }];\n};\n\n/**\n * Generate eCharts markLine objects for thresholds and annotations.\n *\n * This method purposefully has no knowledge of comparison\n * operators used in thresholds as it is not necessary and instead\n * expects explict value bounds\n *\n * In order to continue supporting existing thresholds format, min\n * is passed as undefined so the correct markLine object is generated.\n *\n * For annotations, min and max will be the same value.\n *\n * Threshold Examples:\n * { max: 7 } => markLine at 7\n *\n * Annotation Examples:\n * { min: 7, max: 7 } => markLine at 7\n *\n * @param {Object} threshold Threshold/Annotation object with min and max values\n * @param {String} axis markLine is generated against this axis\n * @returns {Object}\n */\nconst generateMarkLines = function (_ref2) {\n  let {\n    min,\n    max\n  } = _ref2;\n  let axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yAxis';\n  if (min) {\n    return {\n      [axis]: min\n    };\n  }\n  return {\n    [axis]: max\n  };\n};\n\n/**\n * Generates markPoints that are placed under the markLines.\n *\n * These are used only in annotation lines. For annotation lines,\n * both min and max are same values so only one is enough to generate\n * the markPoint.\n *\n * @param {Object} annotation object\n * @return {Object}\n */\nconst generateMarkPoints = _ref3 => {\n  let {\n    min,\n    tooltipData\n  } = _ref3;\n  return {\n    name: 'annotations',\n    xAxis: min,\n    yAxis: 0,\n    tooltipData\n  };\n};\n\n/**\n * Generate set of markAreas and markLines to draw on charts\n * as alert thresholds.\n *\n * Alert thresholds always have a markLine associated with a markArea\n *\n * @param {Array} thresholds Array of alert thresholds\n * @returns {Object} markAreas and markLines\n */\nfunction getThresholdConfig(thresholds) {\n  if (!thresholds.length) {\n    return {};\n  }\n  const data = thresholds.reduce((acc, alert) => {\n    const {\n      threshold,\n      operator\n    } = alert;\n    if (GREATER_THAN.includes(operator)) {\n      acc.areas.push(generateMarkArea({\n        min: threshold,\n        max: Infinity\n      }));\n    } else if (LESS_THAN.includes(operator)) {\n      acc.areas.push(generateMarkArea({\n        min: Number.NEGATIVE_INFINITY,\n        max: threshold\n      }));\n    }\n    acc.lines.push(generateMarkLines({\n      max: threshold\n    }));\n    return acc;\n  }, {\n    lines: [],\n    areas: []\n  });\n  return {\n    markLine: {\n      data: data.lines\n    },\n    markArea: {\n      data: data.areas,\n      zlevel: -1\n    }\n  };\n}\n\n/**\n * This method is only for testing both markLines and markAreas\n * that are used for annotations.\n *\n * `getAnnotationsConfig` as of %12.10 supports only markLines.\n * But this method can generate lines, points and areas.\n *\n * @param {Array} annotations Array of annotation objects\n * @returns {Object} { areas, lines, points }\n */\nconst parseAnnotations = annotations => annotations.reduce((acc, annotation) => {\n  // because only markLines are supported all cases will\n  // satisfy this condition. This is more of a sanity check\n  // until markAreas are supported.\n  // https://gitlab.com/gitlab-org/gitlab/-/issues/212910\n  if (areDatesEqual(annotation.min, annotation.max)) {\n    acc.lines.push(generateMarkLines(annotation, 'xAxis'));\n    acc.points.push(generateMarkPoints(annotation));\n    return acc;\n  }\n  acc.areas.push(generateMarkArea(annotation, 'xAxis'));\n  return acc;\n}, {\n  areas: [],\n  lines: [],\n  points: []\n});\n\n/**\n * Generate set of markAreas and markLines to draw on charts\n * as annotations.\n *\n * Annotations as of %12.10 will only be markLines.\n * markAreas are not supported yet. They are generated by\n * `parseAnnotations` but not rendered.\n *\n * @param {Array} annotations Array of annotations\n * @returns {Object} { markLines }\n */\nconst getAnnotationsConfig = annotations => {\n  if (!annotations.length) {\n    return {};\n  }\n\n  // annotations parsing is moved out so that it can be tested\n  // for markLines and markAreas.\n  const {\n    lines,\n    points\n  } = parseAnnotations(annotations);\n  return {\n    markLine: {\n      lineStyle: {\n        color: BLUE_500\n      },\n      silent: true,\n      data: lines\n    },\n    markPoint: {\n      itemStyle: {\n        color: BLUE_500\n      },\n      symbol: arrowSymbol,\n      symbolSize: '8',\n      symbolOffset: [0, ' 60%'],\n      data: points\n    }\n  };\n};\n\n/**\n * Given thresholds and annotations options, this method generates\n * an annotation series that co-exists along with the data series.\n *\n * yAxis option is useful in cases where multiple yAxis settings\n * are used in a chart. Currently, all of our charts have single\n * yAxis settings.\n *\n * @param {Object} params Thresholds, annotations and yAxis options\n * @returns {Object} Annotation series\n */\nconst generateAnnotationSeries = function (annotations) {\n  let yAxisIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n  if (!annotations.length) {\n    return null;\n  }\n  return merge({\n    name: ANNOTATIONS_SERIES_NAME,\n    yAxisIndex,\n    type: 'scatter',\n    data: []\n  }, getAnnotationsConfig(annotations));\n};\n\n/**\n * This method generates the data series and relevant defaults for a bar chart\n *\n * @param {Object} options\n * @param {string} options.name - xAxis name for the chart\n * @param {string} options.color - color to render the data series\n * @param {Array} options.data - data set to be rendered\n * @param {string} [options.stack] - controls how the stacked charts should render either `stacked` or `tiled`\n * @param {number} [options.yAxisIndex] - specifies the yAxis to use (if there are multiple)\n * @returns {Object} Bar chart series\n */\nconst generateBarSeries = _ref4 => {\n  let {\n    name,\n    color,\n    data = [],\n    stack = columnOptions.stacked,\n    yAxisIndex = 0\n  } = _ref4;\n  return {\n    type: CHART_TYPE_BAR,\n    name,\n    data,\n    stack,\n    barMaxWidth: '50%',\n    yAxisIndex,\n    itemStyle: {\n      color: hexToRgba(color, 0.2),\n      borderColor: color,\n      borderWidth: 1\n    },\n    emphasis: {\n      itemStyle: {\n        color: hexToRgba(color, 0.4)\n      }\n    }\n  };\n};\n\n/**\n * This method generates the data series and relevant defaults for a line chart\n *\n * @param {Object} options\n * @param {string} options.name - xAxis name for the chart\n * @param {string} options.color - color to render the data series\n * @param {Array} options.data - data set to be rendered\n * @param {number} [options.yAxisIndex] - specifies the yAxis to use (if there are multiple)\n * @returns {Object} Line chart series\n */\nconst generateLineSeries = _ref5 => {\n  let {\n    name,\n    color,\n    data = [],\n    yAxisIndex = 0\n  } = _ref5;\n  return {\n    name,\n    data,\n    type: CHART_TYPE_LINE,\n    yAxisIndex,\n    lineStyle: {\n      color\n    },\n    itemStyle: {\n      color\n    }\n  };\n};\nconst getTooltipTitle = function () {\n  let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n  let titleAxisName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  if (!params) return '';\n  const title = params.seriesData.reduce((acc, _ref6) => {\n    let {\n      value\n    } = _ref6;\n    if (acc.includes(value[0])) {\n      return acc;\n    }\n    return [...acc, value[0]];\n  }, []).join(', ');\n  return titleAxisName ? `${title} (${titleAxisName})` : title;\n};\nconst getTooltipContent = function () {\n  let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n  let valueAxisName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  if (!params) {\n    return {};\n  }\n  const {\n    seriesData\n  } = params;\n  if (seriesData.length === 1) {\n    const {\n      value: [, yValue],\n      seriesName\n    } = seriesData[0];\n    return {\n      [valueAxisName || seriesName]: {\n        value: yValue,\n        color: '' // ignore color when showing a single series\n      }\n    };\n  }\n  return seriesData.reduce((acc, _ref7) => {\n    let {\n      value: [, yValue],\n      seriesName,\n      color\n    } = _ref7;\n    acc[seriesName] = {\n      value: yValue,\n      color\n    };\n    return acc;\n  }, {});\n};\n\n/**\n * The method works well if tooltip content should be against y-axis values.\n * However, for bar charts, the tooltip should be against x-axis values.\n * This method should be updated to work with all types of visualizations.\n * https://gitlab.com/gitlab-org/gitlab-ui/-/issues/674\n *\n * @param {Object} params series data\n * @param {String} yAxisTitle y-axis title\n * @returns {Object} tooltip title and content\n * @deprecated Use getTooltipContent and getTooltipContent to obtain the tooltip\n */\nconst getDefaultTooltipContent = function (params) {\n  let yAxisTitle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  const seriesDataLength = params.seriesData.length;\n  const {\n    xLabels,\n    tooltipContent\n  } = params.seriesData.reduce((acc, chartItem) => {\n    const [title, value] = chartItem.value || [];\n    // Let's use the y axis title as series name when only one series exists\n    // This way, TooltipDefaultFormat will display the y axis title as label\n    const seriesName = seriesDataLength === 1 && yAxisTitle ? yAxisTitle : chartItem.seriesName;\n    const color = seriesDataLength === 1 ? '' : chartItem.color;\n    acc.tooltipContent[seriesName] = {\n      value,\n      color\n    };\n    if (!acc.xLabels.includes(title)) {\n      acc.xLabels.push(title);\n    }\n    return acc;\n  }, {\n    xLabels: [],\n    tooltipContent: {}\n  });\n  return {\n    xLabels,\n    tooltipContent\n  };\n};\n\nexport { annotationsYAxisCoords, axes, dataZoomAdjustments, defaultAreaOpacity, defaultChartOptions, defaultFontSize, defaultHeight, defaultWidth, generateAnnotationSeries, generateBarSeries, generateLineSeries, getAnnotationsConfig, getDataZoomConfig, getDefaultTooltipContent, getThresholdConfig, getTooltipContent, getTooltipTitle, grid, gridWithSecondaryYAxis, lineStyle, mergeAnnotationAxisToOptions, mergeSeriesToOptions, parseAnnotations, symbolSize, toolboxHeight, validRenderers, xAxis, yAxis };\n","import merge from 'lodash/merge';\nimport { defaultAreaOpacity, lineStyle, getThresholdConfig, generateAnnotationSeries, defaultChartOptions, dataZoomAdjustments, mergeSeriesToOptions, mergeAnnotationAxisToOptions, grid } from '../../../utils/charts/config';\nimport { LEGEND_AVERAGE_TEXT, LEGEND_MAX_TEXT, LEGEND_MIN_TEXT, LEGEND_CURRENT_TEXT, LEGEND_LAYOUT_INLINE, LEGEND_LAYOUT_TABLE, HEIGHT_AUTO_CLASSES } from '../../../utils/charts/constants';\nimport { colorFromDefaultPalette } from '../../../utils/charts/theme';\nimport { seriesHasAnnotations, isDataPointAnnotation } from '../../../utils/charts/utils';\nimport Chart from '../chart/chart';\nimport ChartLegend from '../legend/legend';\nimport ChartTooltip from '../tooltip/tooltip';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n  name: 'GlAreaChart',\n  components: {\n    Chart,\n    ChartLegend,\n    ChartTooltip\n  },\n  inheritAttrs: false,\n  props: {\n    data: {\n      type: Array,\n      required: true\n    },\n    option: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    },\n    thresholds: {\n      type: Array,\n      required: false,\n      default: () => []\n    },\n    annotations: {\n      type: Array,\n      required: false,\n      default: () => []\n    },\n    includeLegendAvgMax: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n    formatAnnotationsTooltipText: {\n      type: Function,\n      required: false,\n      default: null\n    },\n    /**\n     * Callback called when showing or refreshing a tooltip.\n     * **Deprecated:** Use slots `#tooltip-title`, `#tooltip-content` or `#tooltip-value`.\n     *\n     * @deprecated Use slots `#tooltip-title`, `#tooltip-content` or `#tooltip-value`.\n     */\n    formatTooltipText: {\n      type: Function,\n      required: false,\n      default: null\n    },\n    legendAverageText: {\n      type: String,\n      required: false,\n      default: LEGEND_AVERAGE_TEXT\n    },\n    legendMaxText: {\n      type: String,\n      required: false,\n      default: LEGEND_MAX_TEXT\n    },\n    legendMinText: {\n      type: String,\n      required: false,\n      default: LEGEND_MIN_TEXT\n    },\n    legendCurrentText: {\n      type: String,\n      required: false,\n      default: LEGEND_CURRENT_TEXT\n    },\n    legendLayout: {\n      type: String,\n      required: false,\n      default: LEGEND_LAYOUT_INLINE,\n      validator(layout) {\n        return [LEGEND_LAYOUT_INLINE, LEGEND_LAYOUT_TABLE].indexOf(layout) !== -1;\n      }\n    },\n    /**\n     * Sets the chart's height in pixels. Set to `\"auto\"` to use the height of the container.\n     */\n    height: {\n      type: [Number, String],\n      required: false,\n      default: null\n    },\n    legendSeriesInfo: {\n      type: Array,\n      required: false,\n      default: () => []\n    }\n  },\n  data() {\n    // Part of the tooltip related data can be\n    // moved into the tooltip component.\n    // Tracking that progress in\n    // https://gitlab.com/gitlab-org/gitlab-ui/-/issues/618\n    return {\n      chart: null,\n      showAnnotationsTooltip: false,\n      annotationsTooltipTitle: '',\n      annotationsTooltipContent: '',\n      annotationsTooltipPosition: {\n        left: '0',\n        top: '0'\n      }\n    };\n  },\n  computed: {\n    series() {\n      const dataSeries = this.data.map((series, index) => {\n        const defaultColor = colorFromDefaultPalette(index);\n        const getColor = type => series[type] && series[type].color ? series[type].color : defaultColor;\n        return merge({\n          areaStyle: {\n            opacity: defaultAreaOpacity,\n            color: getColor('areaStyle')\n          },\n          showSymbol: false,\n          lineStyle: {\n            color: getColor('lineStyle')\n          },\n          itemStyle: {\n            color: getColor('itemStyle')\n          }\n        }, lineStyle, series, getThresholdConfig(this.thresholds));\n      });\n      // if annotation series exists, append it\n      // along with data series\n      if (this.annotationSeries) {\n        return [...dataSeries, this.annotationSeries];\n      }\n      return dataSeries;\n    },\n    annotationSeries() {\n      return generateAnnotationSeries(this.annotations);\n    },\n    options() {\n      const defaultAreaChartOptions = {\n        xAxis: {\n          axisPointer: {\n            show: true,\n            lineStyle: {\n              type: 'solid'\n            },\n            label: {\n              formatter: this.formatTooltipText\n            }\n          }\n        },\n        yAxis: {\n          axisTick: {\n            show: false\n          }\n        },\n        legend: {\n          show: false\n        }\n      };\n      const mergedOptions = merge({}, defaultChartOptions, defaultAreaChartOptions, this.option, dataZoomAdjustments(this.option.dataZoom));\n      // All chart options can be merged but series\n      // needs to be handled specially.\n      return mergeSeriesToOptions(mergeAnnotationAxisToOptions(mergedOptions, this.hasAnnotations), this.series);\n    },\n    /**\n     * Annotations currently are passed as series options in monitoring dashboard.\n     * Once https://gitlab.com/gitlab-org/gitlab/-/issues/213390 is closed,\n     * annotations will be passed as props and not as series options.\n     *\n     * For backward compatibility, we're having to check for both.\n     */\n    hasAnnotations() {\n      return this.annotations.length !== 0 || seriesHasAnnotations(this.option.series);\n    },\n    shouldShowAnnotationsTooltip() {\n      return this.chart && this.hasAnnotations;\n    },\n    compiledOptions() {\n      return this.chart ? this.chart.getOption() : null;\n    },\n    legendStyle() {\n      return {\n        paddingLeft: `${grid.left}px`\n      };\n    },\n    seriesInfo() {\n      if (this.legendSeriesInfo.length > 0) return this.legendSeriesInfo;\n      return this.compiledOptions.series.reduce((acc, series, index) => {\n        if (series.type === 'line') {\n          acc.push({\n            name: series.name,\n            type: series.lineStyle.type,\n            color: series.lineStyle.color || colorFromDefaultPalette(index),\n            data: this.includeLegendAvgMax ? series.data.map(data => data[1]) : undefined\n          });\n        }\n        return acc;\n      }, []);\n    },\n    autoHeight() {\n      return this.height === 'auto';\n    }\n  },\n  beforeDestroy() {\n    this.chart.off('mouseout', this.hideAnnotationsTooltip);\n    this.chart.off('mouseover', this.onChartMouseOver);\n  },\n  methods: {\n    defaultAnnotationTooltipText(params) {\n      var _params$data$tooltipD;\n      return {\n        title: params.data.xAxis,\n        content: (_params$data$tooltipD = params.data.tooltipData) === null || _params$data$tooltipD === void 0 ? void 0 : _params$data$tooltipD.content\n      };\n    },\n    onCreated(chart) {\n      // eCharts inbuild mouse events\n      // https://echarts.apache.org/en/api.html#events.Mouse%20events\n      // is used to attach listeners to markPoints. These listeners\n      // are currently used for annotation arrows at the bottom of the chart.\n\n      // Because data points and annotations arrows are in different\n      // sections of the charts with their own mouseovers and mouseouts,\n      // there shouldn't be an overlapping situation where both tooltips\n      // are visible.\n      if (this.hasAnnotations) {\n        chart.on('mouseout', this.onChartDataPointMouseOut);\n        chart.on('mouseover', this.onChartDataPointMouseOver);\n      }\n      this.chart = chart;\n      this.$emit('created', chart);\n    },\n    onChartDataPointMouseOut() {\n      this.showAnnotationsTooltip = false;\n    },\n    /**\n     * Check if the hovered data point is an annotation\n     * point to show the annotation tooltip.\n     */\n    onChartDataPointMouseOver(params) {\n      if (isDataPointAnnotation(params)) {\n        const {\n          event\n        } = params;\n        const toolTipFormatter = this.formatAnnotationsTooltipText || this.defaultAnnotationTooltipText;\n        const {\n          title = '',\n          content = ''\n        } = toolTipFormatter(params);\n        this.showAnnotationsTooltip = true;\n        this.annotationsTooltipTitle = title;\n        this.annotationsTooltipContent = content;\n        this.annotationsTooltipPosition = {\n          left: `${event.event.zrX}px`,\n          top: `${event.event.zrY}px`\n        };\n      }\n    }\n  },\n  HEIGHT_AUTO_CLASSES\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-relative\",class:( _obj = {}, _obj[_vm.$options.HEIGHT_AUTO_CLASSES] = _vm.autoHeight, _obj )},[_c('chart',_vm._g(_vm._b({class:{ 'gl-grow': _vm.autoHeight },attrs:{\"height\":_vm.height,\"options\":_vm.options},on:{\"created\":_vm.onCreated}},'chart',_vm.$attrs,false),_vm.$listeners)),_vm._v(\" \"),(_vm.shouldShowAnnotationsTooltip)?_c('chart-tooltip',{ref:\"annotationsTooltip\",attrs:{\"id\":\"annotationsTooltip\",\"show\":_vm.showAnnotationsTooltip,\"top\":_vm.annotationsTooltipPosition.top,\"left\":_vm.annotationsTooltipPosition.left,\"chart\":_vm.chart,\"placement\":\"bottom\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('div',[_vm._v(_vm._s(_vm.annotationsTooltipTitle))])]},proxy:true}],null,false,1889294429)},[_vm._v(\" \"),_c('div',[_vm._v(_vm._s(_vm.annotationsTooltipContent))])]):_vm._e(),_vm._v(\" \"),(_vm.chart)?_c('chart-tooltip',{ref:\"dataTooltip\",attrs:{\"chart\":_vm.chart,\"use-default-tooltip-formatter\":!_vm.formatTooltipText},scopedSlots:_vm._u([(_vm.$scopedSlots['tooltip-title'])?{key:\"title\",fn:function(scope){return [_vm._t(\"tooltip-title\",null,null,scope)]}}:null,(_vm.$scopedSlots['tooltip-content'])?{key:\"default\",fn:function(scope){return [_vm._t(\"tooltip-content\",null,null,scope)]}}:null,(_vm.$scopedSlots['tooltip-value'])?{key:\"tooltip-value\",fn:function(scope){return [_vm._t(\"tooltip-value\",null,null,scope)]}}:null],null,true)}):_vm._e(),_vm._v(\" \"),(_vm.compiledOptions)?_c('chart-legend',{style:(_vm.legendStyle),attrs:{\"chart\":_vm.chart,\"series-info\":_vm.seriesInfo,\"text-style\":_vm.compiledOptions.textStyle,\"min-text\":_vm.legendMinText,\"max-text\":_vm.legendMaxText,\"average-text\":_vm.legendAverageText,\"current-text\":_vm.legendCurrentText,\"layout\":_vm.legendLayout}}):_vm._e()],1)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","var isArray = require('./isArray');\n\n/**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\nfunction castArray() {\n  if (!arguments.length) {\n    return [];\n  }\n  var value = arguments[0];\n  return isArray(value) ? value : [value];\n}\n\nmodule.exports = castArray;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n","import * as echarts from 'echarts';\nimport { uid, debounceByAnimationFrame } from '../../../utils/utils';\nimport GlPopover from '../../base/popover/popover';\nimport { popoverPlacements } from '../../../utils/constants';\nimport { TOOLTIP_LEFT_OFFSET, TOOLTIP_TOP_OFFSET } from '../../../utils/charts/constants';\nimport { getTooltipTitle, getTooltipContent } from '../../../utils/charts/config';\nimport TooltipDefaultFormat from '../../shared_components/charts/tooltip_default_format';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n  name: 'GlChartTooltip',\n  components: {\n    GlPopover,\n    TooltipDefaultFormat\n  },\n  inheritAttrs: false,\n  props: {\n    chart: {\n      type: Object,\n      required: true,\n      validator(chart) {\n        return Object.is(chart, echarts.getInstanceByDom(chart.getDom()));\n      }\n    },\n    id: {\n      type: String,\n      required: false,\n      default: () => uid()\n    },\n    /**\n     * Position of the popover respective to the chart.\n     * Sets the `top` style property.\n     */\n    top: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * Position of the popover respective to the chart.\n     * Sets the `bottom` style property.\n     */\n    bottom: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * Position of the popover respective to the chart.\n     * Sets the `left` style property.\n     */\n    left: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * Position of the popover respective to the chart.\n     * Sets the `right` style property.\n     */\n    right: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * Set to `true` to show, set to `false` to not show.\n     * Set to `null` to show only when the mouse is in the chart.\n     */\n    show: {\n      type: Boolean,\n      required: false,\n      default: null\n    },\n    /**\n     * Popover placement\n     */\n    placement: {\n      type: String,\n      required: false,\n      default: popoverPlacements.right\n    },\n    /**\n     * Distance between the popover and the pointer when\n     * no position is defined\n     */\n    xOffset: {\n      type: Number,\n      required: false,\n      default: TOOLTIP_LEFT_OFFSET,\n      validator(value) {\n        // popover target must have a size of at least 1\n        return value >= 1;\n      }\n    },\n    /**\n     * Distance between the popover and the pointer when\n     * no position is defined\n     */\n    yOffset: {\n      type: Number,\n      required: false,\n      default: TOOLTIP_TOP_OFFSET,\n      validator(value) {\n        // popover target must have a size of at least 1\n        return value >= 1;\n      }\n    },\n    /**\n     * Set to true to use the default tooltip formatter.\n     */\n    useDefaultTooltipFormatter: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n  data() {\n    return {\n      pointerPosition: null,\n      isPointerInChart: false,\n      debouncedMouseHandler: debounceByAnimationFrame(this.mouseHandler),\n      title: null,\n      content: {},\n      params: null\n    };\n  },\n  computed: {\n    targetId() {\n      // if multiple tooltips are used in a chart component,\n      // `this.id` can be used to uniquely identify them\n      return `${this.chart.getDom().getAttribute('_echarts_instance_')}-tooltip-${this.id}`;\n    },\n    targetStyle() {\n      // the target is a rectangular space between cursor and popover\n      return {\n        marginTop: `${-this.yOffset}px`,\n        height: `${this.yOffset * 2}px`,\n        marginLeft: `${-this.xOffset}px`,\n        width: `${this.xOffset * 2}px`\n      };\n    },\n    fixedPosition() {\n      const {\n        top,\n        left,\n        bottom,\n        right\n      } = this;\n      if (top || left || bottom || right) {\n        return {\n          top,\n          left,\n          bottom,\n          right\n        };\n      }\n      return null;\n    },\n    shouldShowPopover() {\n      if (this.show !== null) {\n        return this.show;\n      }\n      return this.isPointerInChart;\n    }\n  },\n  created() {\n    this.chart.getZr().on('mousemove', this.debouncedMouseHandler);\n    this.chart.getZr().on('mouseout', this.debouncedMouseHandler);\n    if (this.useDefaultTooltipFormatter) {\n      this.chart.setOption({\n        xAxis: {\n          axisPointer: {\n            show: true,\n            label: {\n              formatter: params => {\n                var _options$xAxis, _options$xAxis$, _options$yAxis, _options$yAxis$;\n                const options = this.chart.getOption();\n                const titleAxisName = (_options$xAxis = options.xAxis) === null || _options$xAxis === void 0 ? void 0 : (_options$xAxis$ = _options$xAxis[0]) === null || _options$xAxis$ === void 0 ? void 0 : _options$xAxis$.name;\n                const valueAxisName = (_options$yAxis = options.yAxis) === null || _options$yAxis === void 0 ? void 0 : (_options$yAxis$ = _options$yAxis[0]) === null || _options$yAxis$ === void 0 ? void 0 : _options$yAxis$.name;\n                this.title = getTooltipTitle(params, titleAxisName);\n                this.content = getTooltipContent(params, valueAxisName);\n                this.params = params;\n              }\n            }\n          }\n        }\n      });\n    }\n  },\n  beforeDestroy() {\n    this.chart.getZr().off('mousemove', this.debouncedMouseHandler);\n    this.chart.getZr().off('mouseout', this.debouncedMouseHandler);\n  },\n  methods: {\n    mouseHandler(event) {\n      let {\n        zrX: x,\n        zrY: y\n      } = event.event;\n      if (Number.isFinite(x) && Number.isFinite(y)) {\n        x = Math.round(x);\n        y = Math.round(y);\n        this.pointerPosition = {\n          left: `${x}px`,\n          top: `${y}px`\n        };\n        this.isPointerInChart = this.chart.containPixel('grid', [x, y]);\n      }\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.chart)?_c('div',{staticClass:\"gl-pointer-events-none\"},[_c('div',{staticClass:\"gl-chart-tooltip\",style:(Object.assign({}, (_vm.fixedPosition || _vm.pointerPosition), _vm.targetStyle)),attrs:{\"id\":_vm.targetId}}),_vm._v(\" \"),_c('gl-popover',_vm._b({attrs:{\"show\":_vm.shouldShowPopover,\"target\":_vm.targetId,\"container\":_vm.targetId,\"placement\":_vm.placement,\"triggers\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"title\",function(){return [_vm._v(_vm._s(_vm.title))]},null,{ title: _vm.title, params: _vm.params })]},proxy:true}],null,true)},'gl-popover',_vm.$attrs,false),[_vm._v(\" \"),_vm._t(\"default\",function(){return [_c('tooltip-default-format',{attrs:{\"tooltip-content\":_vm.content},scopedSlots:_vm._u([(_vm.$scopedSlots['tooltip-value'])?{key:\"tooltip-value\",fn:function(scope){return [_vm._t(\"tooltip-value\",null,null,scope)]}}:null],null,true)})]},null,{ content: _vm.content, params: _vm.params })],2)],1):_vm._e()};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n// eslint-disable-next-line max-params\nconst makePathRect = (startX, startY, width, height) => `M${startX},${startY}H${startX + width}V${startY + height}H${startX}Z`;\nvar script = {\n  name: 'GlChartSeriesLabel',\n  props: {\n    color: {\n      type: String,\n      required: true\n    },\n    type: {\n      type: String,\n      required: false,\n      default: 'solid'\n    }\n  },\n  data() {\n    return {\n      labelLineHeight: 0\n    };\n  },\n  computed: {\n    pathContent() {\n      const width = this.$options.svgWidth;\n      const height = this.$options.svgHeight;\n      if (this.type === 'dashed') {\n        const dashWidth = Math.ceil(width / 3);\n        const firstDash = makePathRect(0, 0, dashWidth, height);\n        const secondDash = makePathRect(width - dashWidth, 0, dashWidth, height);\n        return `${firstDash}${secondDash}`;\n      }\n      return makePathRect(0, 0, width, height);\n    },\n    svgStyles() {\n      return {\n        fill: this.color,\n        transform: `translateY(${this.formatPixelDimension(this.svgYTranslationValue)})`,\n        width: 'auto'\n      };\n    },\n    svgYTranslationValue() {\n      const value = this.labelLineHeight / 2 - this.$options.svgHeight / 2;\n      return Math.round(value) || 0;\n    }\n  },\n  mounted() {\n    if (getComputedStyle && this.$refs.label) {\n      const computedStyle = getComputedStyle(this.$refs.label);\n      const lineHeight = computedStyle['line-height'].match(/(\\d+)px/);\n      if (lineHeight !== null) {\n        this.labelLineHeight = parseFloat(lineHeight[1]);\n      }\n    }\n  },\n  methods: {\n    formatPixelDimension(dimension) {\n      return `${dimension}px`;\n    }\n  },\n  svgWidth: 16,\n  svgHeight: 4\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-series-label-container\"},[(_vm.color.length)?_c('div',{staticClass:\"gl-series-label-color\"},[_c('svg',{style:(_vm.svgStyles),attrs:{\"width\":_vm.formatPixelDimension(_vm.$options.svgWidth),\"height\":_vm.formatPixelDimension(_vm.$options.svgHeight)}},[_c('path',{attrs:{\"d\":_vm.pathContent}})])]):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"label\",staticClass:\"gl-series-label-text\"},[_vm._t(\"default\")],2)])};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n"],"sourceRoot":""}