'use strict';

function createCommonjsModule(fn, basedir, module) {
	return module = {
		path: basedir,
		exports: {},
		require: function (path, base) {
			return commonjsRequire();
		}
	}, fn(module, module.exports), module.exports;
}

function commonjsRequire () {
	throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
}

var crypt = createCommonjsModule(function (module) {
(function() {
  var base64map
      = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',

  crypt = {
    // Bit-wise rotation left
    rotl: function(n, b) {
      return (n << b) | (n >>> (32 - b));
    },

    // Bit-wise rotation right
    rotr: function(n, b) {
      return (n << (32 - b)) | (n >>> b);
    },

    // Swap big-endian to little-endian and vice versa
    endian: function(n) {
      // If number given, swap endian
      if (n.constructor == Number) {
        return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;
      }

      // Else, assume array and swap all items
      for (var i = 0; i < n.length; i++)
        n[i] = crypt.endian(n[i]);
      return n;
    },

    // Generate an array of any length of random bytes
    randomBytes: function(n) {
      for (var bytes = []; n > 0; n--)
        bytes.push(Math.floor(Math.random() * 256));
      return bytes;
    },

    // Convert a byte array to big-endian 32-bit words
    bytesToWords: function(bytes) {
      for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)
        words[b >>> 5] |= bytes[i] << (24 - b % 32);
      return words;
    },

    // Convert big-endian 32-bit words to a byte array
    wordsToBytes: function(words) {
      for (var bytes = [], b = 0; b < words.length * 32; b += 8)
        bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
      return bytes;
    },

    // Convert a byte array to a hex string
    bytesToHex: function(bytes) {
      for (var hex = [], i = 0; i < bytes.length; i++) {
        hex.push((bytes[i] >>> 4).toString(16));
        hex.push((bytes[i] & 0xF).toString(16));
      }
      return hex.join('');
    },

    // Convert a hex string to a byte array
    hexToBytes: function(hex) {
      for (var bytes = [], c = 0; c < hex.length; c += 2)
        bytes.push(parseInt(hex.substr(c, 2), 16));
      return bytes;
    },

    // Convert a byte array to a base-64 string
    bytesToBase64: function(bytes) {
      for (var base64 = [], i = 0; i < bytes.length; i += 3) {
        var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];
        for (var j = 0; j < 4; j++)
          if (i * 8 + j * 6 <= bytes.length * 8)
            base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));
          else
            base64.push('=');
      }
      return base64.join('');
    },

    // Convert a base-64 string to a byte array
    base64ToBytes: function(base64) {
      // Remove non-base-64 characters
      base64 = base64.replace(/[^A-Z0-9+\/]/ig, '');

      for (var bytes = [], i = 0, imod4 = 0; i < base64.length;
          imod4 = ++i % 4) {
        if (imod4 == 0) continue;
        bytes.push(((base64map.indexOf(base64.charAt(i - 1))
            & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))
            | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));
      }
      return bytes;
    }
  };

  module.exports = crypt;
})();
});

var charenc = {
  // UTF-8 encoding
  utf8: {
    // Convert a string to a byte array
    stringToBytes: function(str) {
      return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));
    },

    // Convert a byte array to a string
    bytesToString: function(bytes) {
      return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));
    }
  },

  // Binary encoding
  bin: {
    // Convert a string to a byte array
    stringToBytes: function(str) {
      for (var bytes = [], i = 0; i < str.length; i++)
        bytes.push(str.charCodeAt(i) & 0xFF);
      return bytes;
    },

    // Convert a byte array to a string
    bytesToString: function(bytes) {
      for (var str = [], i = 0; i < bytes.length; i++)
        str.push(String.fromCharCode(bytes[i]));
      return str.join('');
    }
  }
};

var charenc_1 = charenc;

/*!
 * Determine if an object is a Buffer
 *
 * @author   Feross Aboukhadijeh <https://feross.org>
 * @license  MIT
 */

// The _isBuffer check is for Safari 5-7 support, because it's missing
// Object.prototype.constructor. Remove this eventually
var isBuffer_1 = function (obj) {
  return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
};

function isBuffer (obj) {
  return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
}

// For Node v0.10 support. Remove this eventually.
function isSlowBuffer (obj) {
  return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
}

var md5 = createCommonjsModule(function (module) {
(function(){
  var crypt$1 = crypt,
      utf8 = charenc_1.utf8,
      isBuffer = isBuffer_1,
      bin = charenc_1.bin,

  // The core
  md5 = function (message, options) {
    // Convert to byte array
    if (message.constructor == String)
      if (options && options.encoding === 'binary')
        message = bin.stringToBytes(message);
      else
        message = utf8.stringToBytes(message);
    else if (isBuffer(message))
      message = Array.prototype.slice.call(message, 0);
    else if (!Array.isArray(message) && message.constructor !== Uint8Array)
      message = message.toString();
    // else, assume byte array already

    var m = crypt$1.bytesToWords(message),
        l = message.length * 8,
        a =  1732584193,
        b = -271733879,
        c = -1732584194,
        d =  271733878;

    // Swap endian
    for (var i = 0; i < m.length; i++) {
      m[i] = ((m[i] <<  8) | (m[i] >>> 24)) & 0x00FF00FF |
             ((m[i] << 24) | (m[i] >>>  8)) & 0xFF00FF00;
    }

    // Padding
    m[l >>> 5] |= 0x80 << (l % 32);
    m[(((l + 64) >>> 9) << 4) + 14] = l;

    // Method shortcuts
    var FF = md5._ff,
        GG = md5._gg,
        HH = md5._hh,
        II = md5._ii;

    for (var i = 0; i < m.length; i += 16) {

      var aa = a,
          bb = b,
          cc = c,
          dd = d;

      a = FF(a, b, c, d, m[i+ 0],  7, -680876936);
      d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
      c = FF(c, d, a, b, m[i+ 2], 17,  606105819);
      b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
      a = FF(a, b, c, d, m[i+ 4],  7, -176418897);
      d = FF(d, a, b, c, m[i+ 5], 12,  1200080426);
      c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
      b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
      a = FF(a, b, c, d, m[i+ 8],  7,  1770035416);
      d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
      c = FF(c, d, a, b, m[i+10], 17, -42063);
      b = FF(b, c, d, a, m[i+11], 22, -1990404162);
      a = FF(a, b, c, d, m[i+12],  7,  1804603682);
      d = FF(d, a, b, c, m[i+13], 12, -40341101);
      c = FF(c, d, a, b, m[i+14], 17, -1502002290);
      b = FF(b, c, d, a, m[i+15], 22,  1236535329);

      a = GG(a, b, c, d, m[i+ 1],  5, -165796510);
      d = GG(d, a, b, c, m[i+ 6],  9, -1069501632);
      c = GG(c, d, a, b, m[i+11], 14,  643717713);
      b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
      a = GG(a, b, c, d, m[i+ 5],  5, -701558691);
      d = GG(d, a, b, c, m[i+10],  9,  38016083);
      c = GG(c, d, a, b, m[i+15], 14, -660478335);
      b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
      a = GG(a, b, c, d, m[i+ 9],  5,  568446438);
      d = GG(d, a, b, c, m[i+14],  9, -1019803690);
      c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
      b = GG(b, c, d, a, m[i+ 8], 20,  1163531501);
      a = GG(a, b, c, d, m[i+13],  5, -1444681467);
      d = GG(d, a, b, c, m[i+ 2],  9, -51403784);
      c = GG(c, d, a, b, m[i+ 7], 14,  1735328473);
      b = GG(b, c, d, a, m[i+12], 20, -1926607734);

      a = HH(a, b, c, d, m[i+ 5],  4, -378558);
      d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
      c = HH(c, d, a, b, m[i+11], 16,  1839030562);
      b = HH(b, c, d, a, m[i+14], 23, -35309556);
      a = HH(a, b, c, d, m[i+ 1],  4, -1530992060);
      d = HH(d, a, b, c, m[i+ 4], 11,  1272893353);
      c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
      b = HH(b, c, d, a, m[i+10], 23, -1094730640);
      a = HH(a, b, c, d, m[i+13],  4,  681279174);
      d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
      c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
      b = HH(b, c, d, a, m[i+ 6], 23,  76029189);
      a = HH(a, b, c, d, m[i+ 9],  4, -640364487);
      d = HH(d, a, b, c, m[i+12], 11, -421815835);
      c = HH(c, d, a, b, m[i+15], 16,  530742520);
      b = HH(b, c, d, a, m[i+ 2], 23, -995338651);

      a = II(a, b, c, d, m[i+ 0],  6, -198630844);
      d = II(d, a, b, c, m[i+ 7], 10,  1126891415);
      c = II(c, d, a, b, m[i+14], 15, -1416354905);
      b = II(b, c, d, a, m[i+ 5], 21, -57434055);
      a = II(a, b, c, d, m[i+12],  6,  1700485571);
      d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
      c = II(c, d, a, b, m[i+10], 15, -1051523);
      b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
      a = II(a, b, c, d, m[i+ 8],  6,  1873313359);
      d = II(d, a, b, c, m[i+15], 10, -30611744);
      c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
      b = II(b, c, d, a, m[i+13], 21,  1309151649);
      a = II(a, b, c, d, m[i+ 4],  6, -145523070);
      d = II(d, a, b, c, m[i+11], 10, -1120210379);
      c = II(c, d, a, b, m[i+ 2], 15,  718787259);
      b = II(b, c, d, a, m[i+ 9], 21, -343485551);

      a = (a + aa) >>> 0;
      b = (b + bb) >>> 0;
      c = (c + cc) >>> 0;
      d = (d + dd) >>> 0;
    }

    return crypt$1.endian([a, b, c, d]);
  };

  // Auxiliary functions
  md5._ff  = function (a, b, c, d, x, s, t) {
    var n = a + (b & c | ~b & d) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };
  md5._gg  = function (a, b, c, d, x, s, t) {
    var n = a + (b & d | c & ~d) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };
  md5._hh  = function (a, b, c, d, x, s, t) {
    var n = a + (b ^ c ^ d) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };
  md5._ii  = function (a, b, c, d, x, s, t) {
    var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };

  // Package private blocksize
  md5._blocksize = 16;
  md5._digestsize = 16;

  module.exports = function (message, options) {
    if (message === undefined || message === null)
      throw new Error('Illegal argument ' + message);

    var digestbytes = crypt$1.wordsToBytes(md5(message, options));
    return options && options.asBytes ? digestbytes :
        options && options.asString ? bin.bytesToString(digestbytes) :
        crypt$1.bytesToHex(digestbytes);
  };

})();
});

class t{static setVegaTelemetryLogLevel(e){this.logLevel=e;}static log(...e){this.shouldLog("log")&&console.log(`%c${this.LOG_PREFIX_STR}`,this.LOG_PREFIX_STYLE,...e);}static debug(...e){this.shouldLog("debug")&&console.debug(`%c${this.LOG_PREFIX_STR}`,this.LOG_PREFIX_STYLE,...e);}static warn(...e){this.shouldLog("warn")&&console.warn(`%c${this.LOG_PREFIX_STR}`,this.LOG_PREFIX_STYLE,...e);}static error(...e){this.shouldLog("error")&&console.error(`%c${this.LOG_PREFIX_STR}`,this.LOG_PREFIX_STYLE,...e);}static shouldLog(e){return this.LOG_LEVELS.indexOf(e)<=this.LOG_LEVELS.indexOf(this.logLevel)}}t.logLevel="off",t.LOG_PREFIX_STR="[VegaTelemetry]",t.LOG_PREFIX_STYLE="font-weight: bold",t.LOG_LEVELS=["off","error","warn","debug","log"],Object.assign(globalThis,{LogUtility:t});class s{constructor(t,s){this.environment=t,this.payload=s,this.id=md5(JSON.stringify({environment:t,payload:s}));}}var i=new class{constructor(){this.runtimeMetrics=[],this.runtimeMetricsIds=new Set([]);}collect(e){t.debug("Collecting the runtime metrics payload"),this.runtimeMetricsIds.has(e.id)||(this.runtimeMetrics.push(e),this.runtimeMetricsIds.add(e.id));}getRuntimeMetrics(){return this.runtimeMetrics}deleteRuntimeMetrics(e){this.runtimeMetrics=this.runtimeMetrics.filter((t=>(this.runtimeMetricsIds.delete(t.id),!e.includes(t))));}};var r=new class{constructor(){this.localStorage=null;try{this.localStorage=globalThis.localStorage;}catch(e){t.error("Failed to access browser localStorage:",e);}}setItem(e,t){this.localStorage&&this.localStorage.setItem(e,JSON.stringify(t));}getItem(e){if(this.localStorage){const t=this.localStorage.getItem(e);if(t)return JSON.parse(t)}return null}removeItem(e){this.localStorage&&this.localStorage.removeItem(e);}clear(){this.localStorage&&this.localStorage.clear();}findKeys(e){const t=[];if(this.localStorage)for(let s=0;s<this.localStorage.length;s++){const i=this.localStorage.key(s);i&&i.includes(e)&&t.push(i);}return t}};class a{isDuplicate(e){return this.getRuntimeMetricsIds().includes(e.id)}cleanup(){t.debug("Vega telemetry start clear the old vega version runtime metrics ids in localStorage");r.findKeys(a.RUNTIME_METRICS_IDS_KEY_PREFIX).map((e=>{e!==a.RUNTIME_METRICS_IDS_KEY_PREFIX+globalThis.VegaEnvInfo.version&&r.removeItem(e);}));}getRuntimeMetricsIds(){return r.getItem(a.RUNTIME_METRICS_IDS_KEY_PREFIX+globalThis.VegaEnvInfo.version)||[]}onDispatched(e){t.debug("Vega telemetry records runtime metrics ids in localStorage");const s=e.map((e=>e.id));r.setItem(a.RUNTIME_METRICS_IDS_KEY_PREFIX+globalThis.VegaEnvInfo.version,[...new Set([...this.getRuntimeMetricsIds(),...s])]);}}a.RUNTIME_METRICS_IDS_KEY_PREFIX="vega-telemetry-runtime-metrics-ids-";var n=new class{constructor(e){this.strategies=e;}checkByStrategies(e){t.debug("Start check duplicate payload by strategies");for(const t of this.strategies)return t.isDuplicate(e);return !1}updateDispatchedRuntimeMetrics(e){for(const t of this.strategies)t.onDispatched(e);}clearRuntimeMetrics(){try{for(const e of this.strategies)e.cleanup();}catch(e){t.error("Vega telemetry failed to clear runtime metrics in localStorage:",e);}}}([new a]);class o{constructor(e,t,s,i,r){this.vegaVersion=e,this.framework=t,this.browser=s,this.os=i,this.origin=r;}}class c{constructor(e,t){this.name=e,this.version=t;}}class l{constructor(e,t){this.name=e,this.version=t;}}class h{constructor(){this.commonVersionRegExp=/version\/(\d+(\.?_?\d+)+)/i;}getVersion(e){return this.getPCTerminalMatch(this.versionRegExp[0],e)}isNameMatch(e){return this.nameRegExp.some((t=>t.test(e)))}predict(e){const t=this.name,s=this.getVersion(e);return new c(t,s)}getPCTerminalMatch(e,t){const s=t.match(e);return s&&s.length>0&&s[1]||""}getMobileTerminalMatch(e,t){const s=t.match(e);return s&&s.length>1&&s[2]||""}}class g extends h{constructor(){super(...arguments),this.name="IE",this.nameRegExp=[/msie|trident/i],this.versionRegExp=[/(?:msie |rv:)(\d+(\.?_?\d+)+)/i];}}class d extends h{constructor(){super(...arguments),this.name="Edge",this.nameRegExp=[/\sedg\//i,/edg([ae]|ios)/i],this.versionRegExp=[/\sedg\/(\d+(\.?_?\d+)+)/i,/edg([ae]|ios)\/(\d+(\.?_?\d+)+)/i];}getVersion(e){return this.nameRegExp[0].test(e)?this.getPCTerminalMatch(this.versionRegExp[0],e):this.getMobileTerminalMatch(this.versionRegExp[1],e)}}class m extends h{constructor(){super(...arguments),this.name="FireFox",this.nameRegExp=[/firefox|iceweasel|fxios/i],this.versionRegExp=[/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i];}}class u extends h{constructor(){super(...arguments),this.name="Chrome",this.nameRegExp=[/chromium/i,/^(?!.*\s(edg|edga)\/).*chrome|crios|crmo/i],this.versionRegExp=[/chromium[\s/](\d+(\.?_?\d+)+)/i,/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i];}getVersion(e){let t="";return t=this.nameRegExp[0].test(e)?this.getPCTerminalMatch(this.versionRegExp[0],e)||this.getPCTerminalMatch(this.commonVersionRegExp,e):this.getPCTerminalMatch(this.versionRegExp[1],e),t}}class E extends h{constructor(){super(...arguments),this.name="Safari",this.nameRegExp=[/^(?!.*\s(firefox|iceweasel|fxios)\/).*(safari|applewebkit)/i],this.versionRegExp=[/version\/(\d+(\.?_?\d+)+)/i];}}class p{detect(e){if(e)for(const t of this.predictors)if(t.isNameMatch(e))return t.predict(e);return {name:"Other",version:""}}}class R extends p{constructor(){super(...arguments),this.predictors=[new u,new d,new E,new m,new g];}}class _{constructor(){this.commonVersionRegExp=/version\/(\d+(\.?_?\d+)+)/i,this.versionDelimiterRegExp=/[\s_]/g;}isNameMatch(e){return this.nameRegExp.some((t=>t.test(e)))}predict(e){const t=this.getName(e),s=this.getVersion(e);return new l(t,s)}getName(e){const t=e.match(/\((.*?)\)/);return t&&t[1]||"Other"}getVersion(e){return this.getCommonVersion(e)}getCommonVersion(e,t=!1){let s=this.getMainstreamOSMatch(this.versionRegExp[0]||this.commonVersionRegExp,e);return s&&t&&(s=s.replace(this.versionDelimiterRegExp,".")),s}getMainstreamOSMatch(e,t){const s=t.match(e);return s&&s.length>0&&s[1]||""}}class v extends _{constructor(){super(...arguments),this.nameRegExp=[/windows /i],this.versionRegExp=[/windows ((nt|xp)( \d\d?.\d)?)/i];}}class b extends _{constructor(){super(...arguments),this.nameRegExp=[/macintosh/i],this.versionRegExp=[/mac os x (\d+(\.?_?\d+)+)/i];}getVersion(e){return this.getCommonVersion(e,!0)}}class T extends _{constructor(){super(...arguments),this.nameRegExp=[/(ipod|iphone|ipad)/i],this.versionRegExp=[/os (\d+([\s_]\d+)*) like mac os x/i];}getVersion(e){return this.getCommonVersion(e,!0)}}class f extends _{constructor(){super(...arguments),this.nameRegExp=[/android/i],this.versionRegExp=[/android[\s/-](\d+(\.\d+)*)/i];}}class L extends _{constructor(){super(...arguments),this.nameRegExp=[/linux/i],this.versionRegExp=[];}}class y extends p{constructor(){super(...arguments),this.predictors=[new b,new v,new T,new f,new L];}}function I(e){t.debug("Vega telemetry start clear runtime metrics in localStorage"),"requestIdleCallback"in globalThis?globalThis.requestIdleCallback((()=>{e();})):setTimeout((()=>{e();}),100);}function S(){return globalThis.navigator.userAgent}function M(){try{return globalThis&&!!globalThis.localStorage&&!!globalThis.navigator&&!!globalThis.location}catch(e){return t.debug("Failed to access browser localStorage, navigator or location:",e),!1}}var x=new class{constructor(){this.browserDetector=new R,this.osDetector=new y;}generate(){return this.environment||(this.environment=new o(globalThis.VegaEnvInfo.version,globalThis.VegaEnvInfo.framework,this.browserDetector.detect(S()),this.osDetector.detect(S()),globalThis.location.origin)),this.environment}};var w,C,V,P=new class{emit(e){const r=new s(x.generate(),e);t.debug("Vega telemetry start emit runtime metrics"),n.checkByStrategies(r)||(t.debug("The payload has not been collected by strategies check"),i.collect(r));}};class O{static post(e,t){const s=new globalThis.Blob([JSON.stringify(t)]);return globalThis.navigator.sendBeacon(O.getVegaTelemetryApimHost()+e+`?subscription-key=${O.getVegaTelemetryApimSubKey()}`,s)}static getVegaTelemetryApimHost(){return "https://vega-telemetry-apim-dev.azure-api.net"}static getVegaTelemetryApimSubKey(){return "8bc15c7c8b514d1bb92825b0b17a1731"}}class F{constructor(e,t,s){this.environment=e,this.payloads=t,this.triggerEvent=s;}}!function(e){e.ComponentUsagePayload="componentUsage",e.FeatureFlagOverriddenPayload="featureFlagOverridden",e.PublicAPIMetricsPayload="publicAPIMetrics";}(w||(w={})),function(e){e.VisibilityChange="visibilitychange",e.PageHide="pagehide";}(C||(C={})),function(e){e.ENABLE_COLLECT_COMPONENTS_USAGE="VEGA_TELEMETRY.ENABLE_COLLECT_COMPONENTS_USAGE",e.ENABLE_COLLECT_PUBLIC_API="VEGA_TELEMETRY.ENABLE_COLLECT_PUBLIC_API",e.ENABLE_COLLECT_FEATURE_FLAG_OVERRIDDEN="VEGA_TELEMETRY.ENABLE_COLLECT_FEATURE_FLAG_OVERRIDDEN";}(V||(V={}));var N=new class{constructor(){this.dispatchedRuntimeMetrics=[];}dispatch(e){try{const s=this.generateRuntimeMetricsSubmitDto(e);s&&(t.debug("Vega telemetry start dispatch runtime metrics"),O.post("/runtime-metrics",s),n.updateDispatchedRuntimeMetrics(this.dispatchedRuntimeMetrics),i.deleteRuntimeMetrics(this.dispatchedRuntimeMetrics),t.debug("The runtime metrics have been dispatched successfully!"));}catch(e){t.error("Vega telemetry failed to dispatch:",e);}}generateRuntimeMetricsSubmitDto(e){const t=this.filterRuntimeMetrics();return t.length>0?(this.dispatchedRuntimeMetrics=t,new F(x.generate(),t.map((e=>e.payload)),e)):null}filterRuntimeMetrics(){return i.getRuntimeMetrics().filter((e=>this.canDispatch(e)&&!n.checkByStrategies(e)))}canDispatch(e){const t=A.getFeatureFlagController();if(!t)return !1;switch(e.payload.type){case w.ComponentUsagePayload:return t.isEnabled(V.ENABLE_COLLECT_COMPONENTS_USAGE);case w.FeatureFlagOverriddenPayload:return t.isEnabled(V.ENABLE_COLLECT_FEATURE_FLAG_OVERRIDDEN);case w.PublicAPIMetricsPayload:return t.isEnabled(V.ENABLE_COLLECT_PUBLIC_API)}}};var A=new class{register(e){var s;t.debug("Vega telemetry start register 'pagehide' and 'visibilitychange' event"),s=()=>N.dispatch(C.VisibilityChange),"visibilityState"in document&&document.addEventListener("visibilitychange",(function(){"hidden"===document.visibilityState&&s();})),function(e){globalThis.addEventListener("pagehide",e);}((()=>N.dispatch(C.PageHide))),I((()=>n.clearRuntimeMetrics())),this.featureFlagController=e;}getFeatureFlagController(){return this.featureFlagController}};class D{constructor(e,t,s){this.type=e,this.componentName=t,this.data=s;}}class G{constructor(e,t,s){this.type=e,this.featureFlagName=t,this.featureFlagOverriddenValue=s;}}class U{constructor(e,t,s){this.type=e,this.publicAPIName=t,this.data=s;}}var k=new class{emit(e,s){I((()=>{try{if(M())switch(e){case w.ComponentUsagePayload:P.emit(new D(e,s.componentName,s.data));break;case w.FeatureFlagOverriddenPayload:P.emit(new G(e,s.featureFlagName,s.featureFlagOverriddenValue));break;case w.PublicAPIMetricsPayload:P.emit(new U(e,s.publicAPIName,s.data));break;default:throw new Error(`Unknown runtime metrics payload type: ${e}`)}}catch(e){t.error("Vega telemetry failed to emit runtime metrics:",e);}}));}init(e){try{M()&&A.register(e);}catch(e){t.error("Vega telemetry failed to register event:",e);}}};

exports.default = k;
