define("metaserver/static/js/modules/clean/edison/edison",["require","exports","tslib","protobufjs/minimal","@dropbox-performance/ttvc","metaserver/static/js/dropbox/proto/edison/prefetch/prefetch","metaserver/static/js/dropbox/proto/edison_dws2/messages","metaserver/static/js/dropbox/proto/pagelet_prefetch/data_modules/data_modules","metaserver/static/js/modules/clean/css/css_cache","metaserver/static/js/modules/clean/edison/edison_metrics_logger","metaserver/static/js/modules/clean/edison/grpc_web","metaserver/static/js/modules/clean/static_urls","metaserver/static/js/proto_utils/unpack","react","react-dom"],(function(e,t,r,n,o,s,a,i,c,l,d,u,p,m,f){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Edison=void 0,m=r.__importDefault(m),f=r.__importDefault(f);class g{constructor(e,t){this.isDoneStreaming=!1,this.loadedDataModules={},this.pendingDataModulePromises={},this.pendingDataModuleResolveFns={},this.consumedPrefetches={},this.pendingPrefetchPromises={},this.pendingPrefetchResolveFns={},this.numPrefetchesRequestedBeforeDoneStreaming=0,this.numPrefetchesRequestedAfterDoneStreaming=0,this.numPrefetchesByAjax=0,this.numPrefetchesStreamed=0,this.preloadedCssPaths=new Set,this.initParams=e;const{pageName:r}=e,{getLazyMetricsReporter:n}=t;this.metrics=new l.EdisonMetricsLogger({pageName:r,getLazyMetricsReporter:n})}static initialized(){return!!g.instance}static waitUntilInitialized(){return r.__awaiter(this,void 0,void 0,(function*(){yield g.initializedPromise}))}static init(e,t={}){if(g.instance)throw new Error("Edison is already initialized.");const{activeUserId:r,ajaxProxyUrl:n,pageName:o}=e;if(!n&&!window.RUNNING_IN_REACTSERVER)throw new Error("ajaxProxyUrl init param missing. This is required for the browser environment.");g.instance=new g(e,t),g.instance.metrics.recordInitReceived(),window.RUNNING_IN_EDISON=!0,window.EDISON_ACTIVE_USER_ID=r,window.EDISON_PAGE_NAME=o,g.initializedResolveFn()}static render(e,t){const r=e.RootComponent?e:t;if(!g.instance)throw new Error("Edison not initialized.");g.instance.render(r)}static reset(){g.instance=null}static getInitParams(){if(!g.instance)throw new Error("Edison not initialized.");return g.instance.initParams}render(e){let t=document.getElementById("root");null===t&&(t=document.createElement("div"),t.id="root",document.body.appendChild(t));const r=m.default.createElement(e.RootComponent);this.metrics.recordRenderStarted(),f.default.render(r,t,()=>{this.metrics.recordRenderComplete()})}static getPageName(){return g.getInitParams().pageName}static getIsOfficeIp(){return g.getInitParams().isOfficeIp}static getActiveUserId(){return g.getInitParams().activeUserId}static getActiveTeamId(){return g.getInitParams().activeTeamId}static getUriPath(){return g.getInitParams().uriPath}static getLegacyController(){return g.getInitParams().legacyController}static getLegacyAction(){return g.getInitParams().legacyAction}static isStreamingEnabled(){return g.getInitParams().streamingEnabled}static isDoneStreaming(){var e;return(null===(e=g.instance)||void 0===e?void 0:e.isDoneStreaming)||!1}static isJsPreloadsEnabled(){return g.getInitParams().jsPreloadsEnabled}static isCssPreloadsEnabled(){return g.getInitParams().cssPreloadsEnabled}static isAlternativeCssLoadStrategyEnabled(){return g.getInitParams().alternativeCssLoadStrategyEnabled}static isRequirePreloadsEnabled(){return g.getInitParams().requirePreloadsEnabled}static isPreviewsPreconnectEnabled(){return g.getInitParams().previewsPreconnectEnabled}static getStaticRepoRev(){return g.getInitParams().staticRepoRev}static getDws2RepoRev(){return g.getInitParams().dws2RepoRev}static getRollupFormat(){return g.getInitParams().rollupFormat}static _prefetchAjax(e){const{useGrpcWebProtocol:t}=g.getInitParams();return t?g.grpcWebAjax(e):g.legacyAjax(e)}static legacyAjax(e){return o.incrementAjaxCount(),new Promise((t,r)=>{const{ajaxProxyUrl:n,atlasservlet:o,pageName:s}=g.getInitParams(),a=new XMLHttpRequest;a.open("POST",n,!0),a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),a.setRequestHeader("X-Edison-Atlasservlet",o),a.setRequestHeader("X-Edison-Page-Name",s),g.addAuthHeaders(a),a.onreadystatechange=()=>{4===a.readyState&&(200===a.status?t(a.responseText):r(new Error(a.responseText)))},a.send("content="+encodeURIComponent(p.packProto(e)))}).finally(o.decrementAjaxCount)}static grpcWebAjax(e){return o.incrementAjaxCount(),new Promise((t,r)=>{const{rpcProxyUrl:o,atlasservlet:s,pageName:a}=g.getInitParams(),i=new XMLHttpRequest;i.responseType="arraybuffer";const c=e.prefetch?`pagelet_data/${e.prefetch.key}`:`${e.serviceMethodPrefetch.service}/${e.serviceMethodPrefetch.method}`;i.open("POST",`${o}/${c}`,!0),i.setRequestHeader("Content-Type","application/grpc-web+proto"),i.setRequestHeader("X-Grpc-Web","1"),i.setRequestHeader("X-Edison-Atlasservlet",s),i.setRequestHeader("X-Edison-Page-Name",a),g.addAuthHeaders(i),i.onload=()=>{200!==i.status?r(new Error("gRPC Web request returned a non-200 status code. Check the server logs.")):i.response.byteLength<5&&r(new Error("gRPC Web request returned no content. Check the server logs."));const e=d.decodeGrpcWebResponse(i.response),o=n.util.base64.encode(e,0,e.byteLength);t(o)},i.onerror=()=>{r(new Error("gRPC Web request failed. Check the server logs."))};const{protoArguments:l}=e.prefetch?e.prefetch:e.serviceMethodPrefetch,u=d.createGrpcWebRequestBody(p.encodeProto(l));i.send(u)}).finally(o.decrementAjaxCount)}static addAuthHeaders(e){const{activeUserId:t,activeTeamId:r}=g.getInitParams();t&&e.setRequestHeader("X-Dropbox-Uid",t.toString()),r&&e.setRequestHeader("X-Dropbox-Teamid",r.toString())}static prefetchHelper(e,t){if(!g.instance)throw new Error("Edison not initialized.");const r=g.instance;if(r.isDoneStreaming?r.numPrefetchesRequestedAfterDoneStreaming++:r.numPrefetchesRequestedBeforeDoneStreaming++,e.b64RequestKey)throw new Error("The EdisonRequest proto message parameter to prefetchHelper must not have a b64PrefetchKey set (it is computed here so we make sure it is the same between browser and streaming reactserver).");if(window.RUNNING_IN_REACTSERVER){const t=p.packProto(e);e.b64RequestKey=t;const r=p.packProto(e);return window.ReactserverDWSClient.sendEdisonRequest(r),new Promise(()=>{})}const n=p.packProto(e),o=!!r.pendingPrefetchPromises[n];return!r.initParams.streamingEnabled||r.consumedPrefetches[n]||r.isDoneStreaming&&!o?(r.numPrefetchesByAjax++,g._prefetchAjax(e)):(o||(r.pendingPrefetchPromises[n]=new Promise((t,o)=>{r.pendingPrefetchResolveFns[n]={requestMsg:e,resolve:t,reject:o}})),r.metrics.recordStreamedPrefetchRequestTime(n,t),r.consumedPrefetches[n]=!0,r.pendingPrefetchPromises[n])}static prefetch(e,t){let r;r=t?p.wrapInProtoAny(t):p.wrapInProtoAny(s.prefetch.NoPrefetchArguments.create());const{atlasservlet:n,pageName:o}=g.getInitParams(),i=a.edison_dws2.EdisonRequest.create({prefetch:{key:e,protoArguments:r,initialPageAtlasservlet:n,initialPageName:o}});return g.prefetchHelper(i,e)}static preloadCSS(e){if(!g.instance)throw new Error("Edison not initialized.");const t=g.instance,r=window;if(window.RUNNING_IN_REACTSERVER){const n=[];for(const r of e)t.preloadedCssPaths.has(r)||(n.push(r),t.preloadedCssPaths.add(r));if(n.length>0){const e=a.edison_dws2.EdisonRequest.create({cssPreload:{cssPaths:n}}),t=p.packProto(e);r.ReactserverDWSClient.sendEdisonRequest(t)}}else{t.metrics.recordCssPreloadReceived();const r=document,n=c.getOrCreateCache(r);e.forEach(e=>{const t=u.static_url(e);c.loadCssWithCache(r,n,e,t)})}}static serviceMethodPrefetch(e,t,r){let n;n=r?p.wrapInProtoAny(r):p.wrapInProtoAny(s.prefetch.NoPrefetchArguments.create());const{atlasservlet:o,pageName:i}=g.getInitParams(),c=a.edison_dws2.EdisonRequest.create({serviceMethodPrefetch:{service:e,method:t,protoArguments:n,initialPageAtlasservlet:o,initialPageName:i}}),l=`${e}.${t}`;return g.prefetchHelper(c,l)}static preloadJSModules(e){if(window.RUNNING_IN_REACTSERVER){const t=a.edison_dws2.EdisonRequest.create({modulePreload:{modulePaths:e}}),r=p.packProto(t);window.ReactserverDWSClient.sendEdisonRequest(r)}}static registerStreamedPrefetch(e,t,r=!1){if(!g.instance)throw new Error("Edison not initialized.");const n=g.instance;if(!n.initParams.streamingEnabled)throw new Error("Edison must be initialized with streaming enabled to handle streaming prefetches.");if(n.isDoneStreaming)throw new Error("Cannot register new streamed prefetch after marking that we are done streaming.");n.metrics.recordStreamedPrefetchResponseTime(e,r),n.numPrefetchesStreamed++,n.pendingPrefetchPromises[e]?n.pendingPrefetchResolveFns[e]&&(r?n.pendingPrefetchResolveFns[e].reject(new Error(t)):n.pendingPrefetchResolveFns[e].resolve(t),delete n.pendingPrefetchResolveFns[e]):n.pendingPrefetchPromises[e]=r?Promise.reject(new Error(t)):Promise.resolve(t)}static loadDataModule(e){if(!g.instance)throw new Error("Edison not initialized.");const t={};for(const r of e)r in g.instance.loadedDataModules&&(t[r]=g.instance.loadedDataModules[r]);if(Object.keys(t).length===e.length)return Promise.resolve(t);{const r=e.filter(e=>!(e in g.instance.loadedDataModules));return g.serviceMethodPrefetch("data_modules.DataModules","DataModulesPrefetch",i.datamodules.DataModulesPrefetchArguments.create({modules:r})).then(e=>{const n=p.unpackProto(e,i.datamodules.DataModulesPrefetchData).dataModules;if(n.length!==r.length)throw new Error("unexpected number of data modules in the response -- we should have received exactly "+r.length+" but instead we got "+n.length);for(const{data:e,name:r}of n){if(!e||!e.json)throw new Error("handling data modules with protobuf return type not yet implemented");{const n=JSON.parse(e.json);g.instance.loadedDataModules[r]=n,t[r]=n}}return t})}}static registerStreamedDataModule(e,t,r){if(!g.instance)throw new Error("Edison not initialized.");const n=g.instance;if(n.isDoneStreaming)throw new Error("Cannot register new streamed data modules after marking that we are done streaming.");if("proto"===t)throw new Error("handling data modules with protobuf return type not yet implemented");n.metrics.recordDataModuleReceived();const o=JSON.parse(r);if(n.pendingDataModulePromises[e]){if(!n.pendingDataModuleResolveFns[e])throw new Error(`Trying to resolve the promise for the streamed data module "${e}" but could not find resolve function in pendingDataModuleResolveFns`);n.pendingDataModuleResolveFns[e].resolve(o),delete n.pendingDataModuleResolveFns[e]}else n.pendingDataModulePromises[e]=Promise.resolve(o)}static getStreamedDataModule(e){if(!g.instance)throw new Error("Edison not initialized.");const t=g.instance;if(!t.initParams.streamingEnabled)throw new Error("Edison must be initialized with streaming enabled to get data modules streamed in page response.");if(!t.pendingDataModulePromises[e]){if(t.isDoneStreaming)throw new Error(`Data module "${e}" was not streamed.`);t.pendingDataModulePromises[e]=new Promise((r,n)=>{t.pendingDataModuleResolveFns[e]={resolve:r,reject:n}})}return t.pendingDataModulePromises[e]}static doneStreaming(){if(!g.instance)throw new Error("Edison not initialized.");const e=g.instance;if(!e.initParams.streamingEnabled)throw new Error("Cannot stop processing streaming chunks if Edison is not initialized with streaming enabled.");if(!e.isDoneStreaming){e.metrics.recordDoneStreamingReceived(),e.metrics.saveEventTimings();for(const t in e.pendingDataModuleResolveFns){if(t in e.loadedDataModules)throw new Error(`${t} was still pending registration by streamed inline chunks at time of "done streaming", but there already is a result for this data module being loaded already. This is an invalid state.`);e.pendingDataModuleResolveFns[t].reject(new Error("canceling data module progress: done streaming before receiving data module result")),delete e.pendingDataModuleResolveFns[t]}for(const t in e.pendingPrefetchResolveFns){const{requestMsg:r,resolve:n,reject:o}=e.pendingPrefetchResolveFns[t];g._prefetchAjax(r).then(n).catch(o),delete e.pendingPrefetchResolveFns[t],e.numPrefetchesByAjax++}e.isDoneStreaming=!0}}static getPrefetchCounts(){if(!g.instance)throw new Error("Edison not initialized.");const e=g.instance;return{numPrefetchesRequestedAfterDoneStreaming:e.numPrefetchesRequestedAfterDoneStreaming,numPrefetchesRequestedBeforeDoneStreaming:e.numPrefetchesRequestedBeforeDoneStreaming,numPrefetchesByAjax:e.numPrefetchesByAjax,numPrefetchesStreamed:e.numPrefetchesStreamed}}}t.Edison=g,g.instance=null,g.initializedPromise=new Promise(e=>{g.initializedResolveFn=e})})),define("metaserver/static/js/modules/clean/edison/grpc_web",["require","exports"],(function(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.decodeGrpcWebResponse=t.createGrpcWebRequestBody=void 0,(function(e){e[e.DATA=0]="DATA"})(r||(r={})),t.createGrpcWebRequestBody=function(e){const t=new Uint8Array(5+e.length);t[0]=r.DATA;for(let r=e.length,n=4;n>0;n--)t[n]=r%256,r>>>=8;return t.set(e,5),t},t.decodeGrpcWebResponse=function(e){const t=new Uint8Array(e);let r=0;for(let e=1;e<5;e++)r=(r<<8)+t[e];return t.subarray(5,5+r)}})),define("metaserver/static/js/dropbox/proto/edison/prefetch/prefetch",["require","exports","tslib","protobufjs/minimal"],(function(e,t,r,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.prefetch=void 0;const o=(n=r.__importStar(n)).Reader,s=n.Writer,a=(n.util,n.roots.default||(n.roots.default={}));var i;t.default=a,t.prefetch=a.prefetch=((i=a.prefetch||{}).NoPrefetchArguments=(function(e){function e(e){if(e)for(let t=Object.keys(e),r=0;r>>3){case 1:n.isFromOfficeIp=e.bool();break;case 2:n.protoArguments=i.google.protobuf.Any.decode(e,e.uint32());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(){return"type.googleapis.com/edison_dws2.PrefetchArguments"},e})(c.PrefetchArguments||{}),c.EdisonInitParams=(function(e){function e(e){if(e)for(let t=Object.keys(e),r=0;r>>3){case 1:n.ajaxProxyUrl=e.string();break;case 22:n.rpcProxyUrl=e.string();break;case 23:n.useGrpcWebProtocol=e.bool();break;case 2:n.atlasservlet=e.string();break;case 3:n.pageName=e.string();break;case 15:n.pageLifecycle=e.string();break;case 4:n.activeUserId=e.uint64();break;case 5:n.activeTeamId=e.uint64();break;case 6:n.uriPath=e.string();break;case 9:n.legacyController=e.string();break;case 10:n.legacyAction=e.string();break;case 11:n.isOfficeIp=e.bool();break;case 12:n.staticRepoRev=e.string();break;case 13:n.dws2RepoRev=e.string();break;case 14:n.streamingEnabled=e.bool();break;case 16:n.jsPreloadsEnabled=e.bool();break;case 18:n.cssPreloadsEnabled=e.bool();break;case 19:n.alternativeCssLoadStrategyEnabled=e.bool();break;case 20:n.requirePreloadsEnabled=e.bool();break;case 21:n.previewsPreconnectEnabled=e.bool();break;case 17:n.rollupFormat=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(){return"type.googleapis.com/edison_dws2.EdisonInitParams"},e})(c.EdisonInitParams||{}),c.EdisonRequest=(function(e){function e(e){if(e)for(let t=Object.keys(e),r=0;r>>3){case 1:n.prefetch=i.edison_dws2.EdisonRequest.Prefetch.decode(e,e.uint32());break;case 2:n.serviceMethodPrefetch=i.edison_dws2.EdisonRequest.ServiceMethodPrefetch.decode(e,e.uint32());break;case 3:n.cssPreload=i.edison_dws2.EdisonRequest.CssPreload.decode(e,e.uint32());break;case 5:n.modulePreload=i.edison_dws2.EdisonRequest.ModulePreload.decode(e,e.uint32());break;case 4:n.b64RequestKey=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(){return"type.googleapis.com/edison_dws2.EdisonRequest"},e.Prefetch=(function(e){function e(e){if(e)for(let t=Object.keys(e),r=0;r>>3){case 1:n.key=e.string();break;case 2:n.protoArguments=i.google.protobuf.Any.decode(e,e.uint32());break;case 3:n.initialPageAtlasservlet=e.string();break;case 4:n.initialPageName=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(){return"type.googleapis.com/edison_dws2.EdisonRequest.Prefetch"},e})(e.Prefetch||{}),e.ServiceMethodPrefetch=(function(e){function e(e){if(e)for(let t=Object.keys(e),r=0;r>>3){case 1:n.service=e.string();break;case 2:n.method=e.string();break;case 3:n.protoArguments=i.google.protobuf.Any.decode(e,e.uint32());break;case 5:n.initialPageAtlasservlet=e.string();break;case 6:n.initialPageName=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(){return"type.googleapis.com/edison_dws2.EdisonRequest.ServiceMethodPrefetch"},e})(e.ServiceMethodPrefetch||{}),e.CssPreload=(function(e){function e(e){if(this.cssPaths=[],e)for(let t=Object.keys(e),r=0;r>>3){case 1:n.cssPaths&&n.cssPaths.length||(n.cssPaths=[]),n.cssPaths.push(e.string());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(){return"type.googleapis.com/edison_dws2.EdisonRequest.CssPreload"},e})(e.CssPreload||{}),e.ModulePreload=(function(e){function e(e){if(this.modulePaths=[],e)for(let t=Object.keys(e),r=0;r>>3){case 1:n.modulePaths&&n.modulePaths.length||(n.modulePaths=[]),n.modulePaths.push(e.string());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(){return"type.googleapis.com/edison_dws2.EdisonRequest.ModulePreload"},e})(e.ModulePreload||{}),e})(c.EdisonRequest||{}),c)})),define("metaserver/static/js/dropbox/proto/pagelet_prefetch/data_modules/data_modules",["require","exports","tslib","protobufjs/minimal","metaserver/static/js/google/protobuf/any"],(function(e,t,r,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.datamodules=void 0;const o=(n=r.__importStar(n)).Reader,s=n.Writer,a=n.util,i=n.roots.default||(n.roots.default={});var c;t.default=i,t.datamodules=i.datamodules=((c=i.datamodules||{}).DataModulesPrefetchArguments=(function(e){function e(e){if(this.modules=[],e)for(let t=Object.keys(e),r=0;r>>3){case 1:n.modules&&n.modules.length||(n.modules=[]),n.modules.push(e.string());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(){return"type.googleapis.com/datamodules.DataModulesPrefetchArguments"},e})(c.DataModulesPrefetchArguments||{}),c.JsonOrProtoAny=(function(e){function e(e){if(e)for(let t=Object.keys(e),r=0;r>>3){case 1:n.json=e.string();break;case 2:n.protoAny=i.google.protobuf.Any.decode(e,e.uint32());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(){return"type.googleapis.com/datamodules.JsonOrProtoAny"},e})(c.JsonOrProtoAny||{}),c.DataModule=(function(e){function e(e){if(e)for(let t=Object.keys(e),r=0;r>>3){case 1:n.name=e.string();break;case 2:n.data=i.datamodules.JsonOrProtoAny.decode(e,e.uint32());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(){return"type.googleapis.com/datamodules.DataModule"},e})(c.DataModule||{}),c.DataModulesPrefetchData=(function(e){function e(e){if(this.dataModules=[],e)for(let t=Object.keys(e),r=0;r>>3){case 1:n.dataModules&&n.dataModules.length||(n.dataModules=[]),n.dataModules.push(i.datamodules.DataModule.decode(e,e.uint32()));break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(){return"type.googleapis.com/datamodules.DataModulesPrefetchData"},e})(c.DataModulesPrefetchData||{}),c)})),define("metaserver/static/js/modules/clean/edison/edison_metrics_logger",["require","exports","tslib","apex-metrics/types"],(function(e,t,r,n){"use strict";var o;function s(){const e=window.performance?window.performance.now():0;return Math.floor(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.EdisonMetricsLogger=t.TimingEventName=void 0,(function(e){e.JsExecutionStart="js_execution_start",e.RequireLoadCallbackTime="require_load_callback_time",e.InitPageModuleLoadTime="init_page_module_load_time",e.PreloadModulesLoadTime="preload_modules_load_time",e.InitReceived="init_received",e.RenderStarted="render_started",e.RenderComplete="render_complete",e.FirstDataModuleReceived="first_data_module_received",e.LastDataModuleReceived="last_data_module_received",e.FirstCssPreloadReceived="first_css_preload_received",e.LastCssPreloadReceived="last_css_preload_received",e.DoneStreamingReceived="done_streaming_received",e.StreamedPrefetchWaitTime="streamed_prefetch_wait_time"})(o=t.TimingEventName||(t.TimingEventName={}));t.EdisonMetricsLogger=class{constructor(e){this.AMP_NAMESPACE="web_timing";const{pageName:t,performanceNow:r=s,getLazyMetricsReporter:n}=e;this.pageName=t,this.performanceNow=r,this.lazyMetricsReporter=n?n():null,this.renderCompletePromise=new Promise(e=>{this.renderCompleteResolveFn=e}),this.eventTimings={},this.streamedPrefetchRequestTimingQueues={},this.streamedPrefetchResponseTimings={}}recordEventTime(e){this.eventTimings[e]=this.performanceNow()}recordEventTimeOnce(e){this.eventTimings[e]||this.recordEventTime(e)}getTags(e){return Object.assign({edison_page_name:this.pageName},e)}recordInitReceived(){this.recordEventTimeOnce(o.InitReceived)}recordRenderStarted(){this.recordEventTimeOnce(o.RenderStarted)}recordRenderComplete(){this.recordEventTimeOnce(o.RenderComplete),this.renderCompleteResolveFn()}recordDataModuleReceived(){this.recordEventTimeOnce(o.FirstDataModuleReceived),this.recordEventTime(o.LastDataModuleReceived)}recordCssPreloadReceived(){this.recordEventTimeOnce(o.FirstCssPreloadReceived),this.recordEventTime(o.LastCssPreloadReceived)}recordDoneStreamingReceived(){this.recordEventTimeOnce(o.DoneStreamingReceived)}saveEventTimings(){return r.__awaiter(this,void 0,void 0,(function*(){if(!this.lazyMetricsReporter)return;yield this.renderCompletePromise;const e=yield this.lazyMetricsReporter,t=Object.assign(Object.assign({},(function(){const e={};return"number"==typeof window.EDISON_METRICS_JS_EXECUTION_START&&(e[o.JsExecutionStart]=window.EDISON_METRICS_JS_EXECUTION_START),"number"==typeof window.EDISON_METRICS_REQUIRE_LOAD_CALLBACK_TIME&&(e[o.RequireLoadCallbackTime]=window.EDISON_METRICS_REQUIRE_LOAD_CALLBACK_TIME),"number"==typeof window.EDISON_METRICS_INIT_PAGE_MODULE_LOAD_TIME&&(e[o.InitPageModuleLoadTime]=window.EDISON_METRICS_INIT_PAGE_MODULE_LOAD_TIME),"number"==typeof window.EDISON_METRICS_PRELOAD_MODULES_LOAD_TIME&&(e[o.PreloadModulesLoadTime]=window.EDISON_METRICS_PRELOAD_MODULES_LOAD_TIME),e})()),this.eventTimings);for(const[r,o]of Object.entries(t)){const t=this.getTags();e.createStats({ns:this.AMP_NAMESPACE,name:`edison/${r}`},t).recordDuration(o,n.TimeUnit.MILLISECONDS)}}))}recordStreamedPrefetchRequestTime(e,t){return r.__awaiter(this,void 0,void 0,(function*(){this.streamedPrefetchRequestTimingQueues[e]||(this.streamedPrefetchRequestTimingQueues[e]=[]),this.streamedPrefetchRequestTimingQueues[e].push({loggingIdentifier:t,requestTime:this.performanceNow(),processed:!1}),yield this.flushPrefetchTimingRecordQueue()}))}recordStreamedPrefetchResponseTime(e,t){return r.__awaiter(this,void 0,void 0,(function*(){this.streamedPrefetchResponseTimings[e]||(this.streamedPrefetchResponseTimings[e]={responseTime:this.performanceNow(),failed:t},yield this.flushPrefetchTimingRecordQueue())}))}flushPrefetchTimingRecordQueue(){return r.__awaiter(this,void 0,void 0,(function*(){if(!this.lazyMetricsReporter)return;const e=yield this.lazyMetricsReporter,t={};for(const[r,s]of Object.entries(this.streamedPrefetchRequestTimingQueues)){const a=this.streamedPrefetchResponseTimings[r];if(a)for(const r of s){const{loggingIdentifier:s,requestTime:i}=r,{responseTime:c,failed:l}=a;if(t[s]||(t[s]=0),t[s]++,r.processed)continue;const d=`${s}_${t[s]}`,u=this.getTags({prefetch_id:d,failed:`${l}`}),p=e.createStats({ns:this.AMP_NAMESPACE,name:`edison/${o.StreamedPrefetchWaitTime}`},u),m=Math.max(c-i,0);p.recordDuration(m,n.TimeUnit.MILLISECONDS),r.processed=!0}}}))}}})),define("metaserver/static/js/modules/clean/edison/code_version",["require","exports","tslib","metaserver/static/js/modules/constants/page_load"],(function(e,t,r,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getMaybeEdisonCodeVersion=void 0,t.getMaybeEdisonCodeVersion=function(){return r.__awaiter(this,void 0,void 0,(function*(){if(window.RUNNING_IN_EDISON){const{Edison:t}=yield new Promise((t,r)=>{e(["metaserver/static/js/modules/clean/edison/edison"],t,r)}).then(r.__importStar);return{versionType:"edison",staticRepoRev:t.getStaticRepoRev(),dws2RepoRev:t.getDws2RepoRev(),rollupFormat:t.getRollupFormat()}}return{versionType:"metaserver",repoRev:n.REPO_REV}}))}})); //# sourceMappingURL=pkg-edison.min.js-vfl2EKLv6.map