@uxland/primary-shell 7.49.1 → 7.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { E as s, z as e, O as t, S as n, v as r, x as o, P as l, w as c, J as g, K as m, L as p, I as v, y as P, N as E, B as R, M as h, A as u, F as S, G as M, u as d, H as w, R as y } from "./index-BjHmySvD.js";
1
+ import { E as s, z as e, O as t, S as n, v as r, x as o, P as l, w as c, J as g, K as m, L as p, I as v, y as P, N as E, B as R, M as h, A as u, F as S, G as M, u as d, H as w, R as y } from "./index-D9hfKjLi.js";
2
2
  export {
3
3
  s as EcapEventManager,
4
4
  e as ExitShell,
@@ -269,7 +269,7 @@ Registered bindings:`,oe.forEach(function(ne){var de="Object";ne.implementationT
269
269
  </div>
270
270
  `,Us=class Us extends h$n{render(){return ke$1`${template$p(this)}`}};Us.styles=i$R`
271
271
  ${r$L(styles$o)}
272
- `;let PluginBusyList=Us;class PluginBusyManagerImpl{constructor(){this.tasks=[],customElements.get("plugin-busy-list")||t$z("plugin-busy-list")(PluginBusyList)}addTask(W){this.tasks.some(re=>re.taskId===W.taskId)||this.tasks.push(W)}removeTask(W){const te=this.tasks.findIndex(re=>re.taskId===W);te>-1&&this.tasks.splice(te,1)}isBusy(){return this.tasks.length>0}clearAll(){this.tasks=[]}getTasks(){return this.tasks}}class QuickActionBusyManagerImpl{constructor(W){this.broker=W,this.tasks=[]}addTask(W){this.tasks.findIndex(re=>re.taskId===W.taskId)>-1||(this.tasks.push(W),this.emitBusyChanged())}removeTask(W){const te=this.tasks.findIndex(re=>re.taskId===W);te>-1&&(this.tasks.splice(te,1),this.emitBusyChanged())}isBusy(){return this.tasks.length>0}clearAll(){this.tasks=[]}emitBusyChanged(){const W=this.isBusy();this.broker.publish(BROKER_EVENTS.shell.quickActionBusyChanged,{busy:W})}}const shellRegions={header:"header-region",headerRightActions:"header-actions-region",main:"main-region",navigationMenu:"menu-region",navigationLowerLeftMenu:"navigation-lower-left-menu",quickActions:"quick-actions-region",floating:"floating-region",communicationSidenav:"communication-sidenav-region",clinicalPathwaysSidenav:"clinical-pathways-sidenav-region",petitionerSidenav:"petitioner-sidenav-region",importData:"import-data-region",importDataActivityHistory:"import-data-activity-history-region"},clinicalMonitoringRegions={sidebar:"clinical-monitoring-widgets-sidebar-region",header:"clinical-monitoring-header-widgets-region",content:"clinical-monitoring-content-widgets-region"},activityHistoryRegions={customFilters:"clinical-monitoring-activity-history-filters-region"},administrativeManagementRegions={widgets:"administrative-management-widgets-region",tabs:"administrative-management-tabs-region",detail:"administrative-management-detail-region"},ALL_REGION_NAMES=[...Object.values(shellRegions),...Object.values(clinicalMonitoringRegions),...Object.values(activityHistoryRegions),...Object.values(administrativeManagementRegions)];class RegionManagerProxy{constructor(W,te,re){this.pluginInfo=W,this.regionManager=te,this.broker=re,this.regions={shell:shellRegions,clinicalMonitoring:clinicalMonitoringRegions,activityHistory:activityHistoryRegions,administrativeManagement:administrativeManagementRegions}}async registerView(W,te){const re=`${this.pluginInfo.pluginId}::${te.id}`;await this.regionManager.registerViewWithRegion(W,re,te),this.activateIfDefault(W,re,te)}async removeView(W,te){await this.regionManager.unregisterViewFromRegion(W,`${this.pluginInfo.pluginId}::${te}`)}activateView(W,te){return this.regionManager.getRegion(W).activate(`${this.pluginInfo.pluginId}::${te}`),W===this.regions.shell.main&&this._notifyMainViewChanged(te),Promise.resolve()}deactivateView(W,te){return this.regionManager.getRegion(W).deactivate(`${this.pluginInfo.pluginId}::${te}`),Promise.resolve()}getRegion(W){return Promise.resolve(this.regionManager.getRegion(W))}containsView(W,te){const re=this.regionManager.getRegion(W);return Promise.resolve(re?.containsView(`${this.pluginInfo.pluginId}::${te}`))}isViewActive(W,te){const oe=this.regionManager.getRegion(W).currentActiveViews.some(ne=>ne.id===te);return Promise.resolve(oe)}async registerQuickAction(W){await this.regionManager.registerViewWithRegion(this.regions.shell.quickActions,`${this.pluginInfo.pluginId}::${W.id}`,W)}async registerNavigationMenu(W){await this.regionManager.registerViewWithRegion(this.regions.shell.navigationMenu,`${this.pluginInfo.pluginId}::${W.id}`,W)}async registerMainView(W){await this.regionManager.registerViewWithRegion(this.regions.shell.main,`${this.pluginInfo.pluginId}::${W.id}`,W)}activateMainView(W){return this.regionManager.getRegion(this.regions.shell.main).activate(`${this.pluginInfo.pluginId}::${W}`),this._notifyMainViewChanged(W),Promise.resolve()}activatePluginView(W,te,re){return this.regionManager.getRegion(W).activate(`${te}::${re}`),W===this.regions.shell.main&&this._notifyMainViewChanged(re),Promise.resolve()}getCurrentMainViewActive(){return this.regionManager.getRegion(this.regions.shell.main).currentActiveViews[0]?.id}activateIfDefault(W,te,re){if(!re.isDefault)return;const oe=this.regionManager.getRegion(W);if(!oe||typeof oe.activate!="function")return;oe.currentActiveViews?.length>0||oe.activate(te)}_notifyMainViewChanged(W){this.broker.publish(BROKER_EVENTS.shell.mainViewChanged,{viewId:W})}async _removeAllViews(){for(const W of ALL_REGION_NAMES){const te=this.regionManager.getRegisteredViews(W)??[];for(const{key:re}of[...te])await this.regionManager.unregisterViewFromRegion(W,re)}}async _destroy(){await this.regionManager.destroy()}}const createRegionManagerProxy=(X,W,te)=>new RegionManagerProxy(X,W,te);let token,refreshToken,tokenInitialized=!1;class TokenManagerImpl{constructor(W){this.broker=W,this.getUrlParams=()=>new URLSearchParams(window.location.search),this.initToken=()=>{if(tokenInitialized)throw new Error("Token already initialized");tokenInitialized=!0;const te=this.getUrlParams();return token=te.get("access_token")||"",refreshToken=te.get("refresh_token")||"",token},this.setInitialTokens=(te,re)=>{if(tokenInitialized)throw new Error("Token already initialized");token=te,refreshToken=re,tokenInitialized=!0},this.getToken=()=>(tokenInitialized||this.initToken(),token),this.refreshToken=async()=>{tokenInitialized||this.initToken();try{const te=await axios.post("/api/token/refresh",{token:refreshToken}),{access_token:re,refresh_token:oe}=te.data;if(!re)throw new Error("Invalid refresh token response");return token=re,refreshToken=oe,token}catch(te){throw this.broker.publish(BROKER_EVENTS.shell.refreshTokenFailed,{}),te}}}}let tokenManager$1;const createTokenManager=X=>tokenManager$1||(tokenManager$1=new TokenManagerImpl(X),tokenManager$1);class UserManagerImpl{constructor(W){this.tokenManager=W,this.getRole=()=>this.getAccessInfo()?.role_type,this.isUserRoleAdministrative=()=>this.getRole()==="ADM",this.getFullName=()=>{const te=this.getAccessInfo();if(!te)return;const re=te.trace_user_given_name,oe=te.trace_user_family_name;if(!(!re&&!oe))return[oe,re].filter(Boolean).join(" ")},this.getSector=()=>this.getAccessInfo()?.module_code,this.getDNI=()=>{const te=this.getAccessInfo()?.identifier;return te?te.find(oe=>oe.type==="DNI")?.value:void 0}}getAccessInfo(){const W=this.tokenManager.getToken();if(W)try{return jwtDecode(W).access_info}catch(te){console.error("Error decoding JWT token:",te);return}}}let userManager$1;const createUserManager=X=>userManager$1||(userManager$1=new UserManagerImpl(X),userManager$1);class ImportDataManagerImpl{constructor(W){this.interactionService=W,this.selectedItems={},this.currentImporterId="",this.pluginTexts={}}async import(W,te){this.currentImporterId=W,this.currentImportParams=te,this.selectedItems={},this.pluginTexts={};try{const{ImportDataManagerModal:re}=await Promise.resolve().then(()=>component),{confirmed:oe}=await this.interactionService.confirm(void 0,{component:re},{fullCustomization:!0}),ne=this.getConcatenatedText(),de={accepted:oe,data:oe?this.selectedItems:{},text:oe?ne:{raw:"",html:""}};return oe&&console.log("[ImportDataManager] Imported data:",de),this.selectedItems={},this.currentImporterId="",this.currentImportParams=void 0,this.pluginTexts={},de}catch(re){throw this.selectedItems={},this.currentImporterId="",this.currentImportParams=void 0,this.pluginTexts={},re}}selectItems(W){console.log(`[ImportDataManager] selectItems — pluginId: "${W.pluginId}" | items: ${W.data.length} | text.raw: ${W.text.raw.length} chars | text.html: ${W.text.html.length} chars`),this.selectedItems[W.pluginId]=W.data,this.pluginTexts[W.pluginId]=W.text}getCurrentImporterId(){return this.currentImporterId}getCurrentImportParams(){return this.currentImportParams}getConcatenatedText(){const W=[],te=[];for(const re of Object.values(this.pluginTexts))re.raw&&W.push(re.raw),re.html&&te.push(re.html);return{raw:W.join(`
272
+ `;let PluginBusyList=Us;class PluginBusyManagerImpl{constructor(){this.tasks=[],customElements.get("plugin-busy-list")||t$z("plugin-busy-list")(PluginBusyList)}addTask(W){this.tasks.some(re=>re.taskId===W.taskId)||this.tasks.push(W)}removeTask(W){const te=this.tasks.findIndex(re=>re.taskId===W);te>-1&&this.tasks.splice(te,1)}isBusy(){return this.tasks.length>0}clearAll(){this.tasks=[]}getTasks(){return this.tasks}}class QuickActionBusyManagerImpl{constructor(W){this.broker=W,this.tasks=[]}addTask(W){this.tasks.findIndex(re=>re.taskId===W.taskId)>-1||(this.tasks.push(W),this.emitBusyChanged())}removeTask(W){const te=this.tasks.findIndex(re=>re.taskId===W);te>-1&&(this.tasks.splice(te,1),this.emitBusyChanged())}isBusy(){return this.tasks.length>0}clearAll(){this.tasks=[]}emitBusyChanged(){const W=this.isBusy();this.broker.publish(BROKER_EVENTS.shell.quickActionBusyChanged,{busy:W})}}const shellRegions={header:"header-region",headerRightActions:"header-actions-region",main:"main-region",navigationMenu:"menu-region",navigationLowerLeftMenu:"navigation-lower-left-menu",quickActions:"quick-actions-region",floating:"floating-region",communicationSidenav:"communication-sidenav-region",clinicalPathwaysSidenav:"clinical-pathways-sidenav-region",petitionerSidenav:"petitioner-sidenav-region",importData:"import-data-region",importDataActivityHistory:"import-data-activity-history-region"},clinicalMonitoringRegions={sidebar:"clinical-monitoring-widgets-sidebar-region",header:"clinical-monitoring-header-widgets-region",content:"clinical-monitoring-content-widgets-region"},activityHistoryRegions={customFilters:"clinical-monitoring-activity-history-filters-region"},administrativeManagementRegions={widgets:"administrative-management-widgets-region",tabs:"administrative-management-tabs-region",detail:"administrative-management-detail-region"},ALL_REGION_NAMES=[...Object.values(shellRegions),...Object.values(clinicalMonitoringRegions),...Object.values(activityHistoryRegions),...Object.values(administrativeManagementRegions)];class RegionManagerProxy{constructor(W,te,re){this.pluginInfo=W,this.regionManager=te,this.broker=re,this.regions={shell:shellRegions,clinicalMonitoring:clinicalMonitoringRegions,activityHistory:activityHistoryRegions,administrativeManagement:administrativeManagementRegions}}async registerView(W,te){const re=`${this.pluginInfo.pluginId}::${te.id}`;await this.regionManager.registerViewWithRegion(W,re,te),this.activateIfDefault(W,re,te)}async removeView(W,te){await this.regionManager.unregisterViewFromRegion(W,`${this.pluginInfo.pluginId}::${te}`)}activateView(W,te){return this.regionManager.getRegion(W).activate(`${this.pluginInfo.pluginId}::${te}`),W===this.regions.shell.main&&this._notifyMainViewChanged(te),Promise.resolve()}deactivateView(W,te){return this.regionManager.getRegion(W).deactivate(`${this.pluginInfo.pluginId}::${te}`),Promise.resolve()}getRegion(W){return Promise.resolve(this.regionManager.getRegion(W))}containsView(W,te){const re=this.regionManager.getRegion(W);return Promise.resolve(re?.containsView(`${this.pluginInfo.pluginId}::${te}`))}isViewActive(W,te){const oe=this.regionManager.getRegion(W).currentActiveViews.some(ne=>ne.id===te);return Promise.resolve(oe)}async registerQuickAction(W){await this.regionManager.registerViewWithRegion(this.regions.shell.quickActions,`${this.pluginInfo.pluginId}::${W.id}`,W)}async registerNavigationMenu(W){await this.regionManager.registerViewWithRegion(this.regions.shell.navigationMenu,`${this.pluginInfo.pluginId}::${W.id}`,W)}async registerMainView(W){await this.regionManager.registerViewWithRegion(this.regions.shell.main,`${this.pluginInfo.pluginId}::${W.id}`,W)}activateMainView(W){return this.regionManager.getRegion(this.regions.shell.main).activate(`${this.pluginInfo.pluginId}::${W}`),this._notifyMainViewChanged(W),Promise.resolve()}activatePluginView(W,te,re){return this.regionManager.getRegion(W).activate(`${te}::${re}`),W===this.regions.shell.main&&this._notifyMainViewChanged(re),Promise.resolve()}getCurrentMainViewActive(){return this.regionManager.getRegion(this.regions.shell.main).currentActiveViews[0]?.id}getRegisteredMainViews(){return this.regionManager.getRegisteredViews(this.regions.shell.main).map(({key:W,view:te})=>{const re=W.indexOf("::"),oe=re!==-1;return{pluginId:oe?W.slice(0,re):"",viewId:te.id??(oe?W.slice(re+2):W)}})}activateIfDefault(W,te,re){if(!re.isDefault)return;const oe=this.regionManager.getRegion(W);if(!oe||typeof oe.activate!="function")return;oe.currentActiveViews?.length>0||oe.activate(te)}_notifyMainViewChanged(W){this.broker.publish(BROKER_EVENTS.shell.mainViewChanged,{viewId:W})}async _removeAllViews(){for(const W of ALL_REGION_NAMES){const te=this.regionManager.getRegisteredViews(W)??[];for(const{key:re}of[...te])await this.regionManager.unregisterViewFromRegion(W,re)}}async _destroy(){await this.regionManager.destroy()}}const createRegionManagerProxy=(X,W,te)=>new RegionManagerProxy(X,W,te);let token,refreshToken,tokenInitialized=!1;class TokenManagerImpl{constructor(W){this.broker=W,this.getUrlParams=()=>new URLSearchParams(window.location.search),this.initToken=()=>{if(tokenInitialized)throw new Error("Token already initialized");tokenInitialized=!0;const te=this.getUrlParams();return token=te.get("access_token")||"",refreshToken=te.get("refresh_token")||"",token},this.setInitialTokens=(te,re)=>{if(tokenInitialized)throw new Error("Token already initialized");token=te,refreshToken=re,tokenInitialized=!0},this.getToken=()=>(tokenInitialized||this.initToken(),token),this.refreshToken=async()=>{tokenInitialized||this.initToken();try{const te=await axios.post("/api/token/refresh",{token:refreshToken}),{access_token:re,refresh_token:oe}=te.data;if(!re)throw new Error("Invalid refresh token response");return token=re,refreshToken=oe,token}catch(te){throw this.broker.publish(BROKER_EVENTS.shell.refreshTokenFailed,{}),te}}}}let tokenManager$1;const createTokenManager=X=>tokenManager$1||(tokenManager$1=new TokenManagerImpl(X),tokenManager$1);class UserManagerImpl{constructor(W){this.tokenManager=W,this.getRole=()=>this.getAccessInfo()?.role_type,this.isUserRoleAdministrative=()=>this.getRole()==="ADM",this.getFullName=()=>{const te=this.getAccessInfo();if(!te)return;const re=te.trace_user_given_name,oe=te.trace_user_family_name;if(!(!re&&!oe))return[oe,re].filter(Boolean).join(" ")},this.getSector=()=>this.getAccessInfo()?.module_code,this.getDNI=()=>{const te=this.getAccessInfo()?.identifier;return te?te.find(oe=>oe.type==="DNI")?.value:void 0}}getAccessInfo(){const W=this.tokenManager.getToken();if(W)try{return jwtDecode(W).access_info}catch(te){console.error("Error decoding JWT token:",te);return}}}let userManager$1;const createUserManager=X=>userManager$1||(userManager$1=new UserManagerImpl(X),userManager$1);class ImportDataManagerImpl{constructor(W){this.interactionService=W,this.selectedItems={},this.currentImporterId="",this.pluginTexts={}}async import(W,te){this.currentImporterId=W,this.currentImportParams=te,this.selectedItems={},this.pluginTexts={};try{const{ImportDataManagerModal:re}=await Promise.resolve().then(()=>component),{confirmed:oe}=await this.interactionService.confirm(void 0,{component:re},{fullCustomization:!0}),ne=this.getConcatenatedText(),de={accepted:oe,data:oe?this.selectedItems:{},text:oe?ne:{raw:"",html:""}};return oe&&console.log("[ImportDataManager] Imported data:",de),this.selectedItems={},this.currentImporterId="",this.currentImportParams=void 0,this.pluginTexts={},de}catch(re){throw this.selectedItems={},this.currentImporterId="",this.currentImportParams=void 0,this.pluginTexts={},re}}selectItems(W){console.log(`[ImportDataManager] selectItems — pluginId: "${W.pluginId}" | items: ${W.data.length} | text.raw: ${W.text.raw.length} chars | text.html: ${W.text.html.length} chars`),this.selectedItems[W.pluginId]=W.data,this.pluginTexts[W.pluginId]=W.text}getCurrentImporterId(){return this.currentImporterId}getCurrentImportParams(){return this.currentImportParams}getConcatenatedText(){const W=[],te=[];for(const re of Object.values(this.pluginTexts))re.raw&&W.push(re.raw),re.html&&te.push(re.html);return{raw:W.join(`
273
273
 
274
274
  `),html:te.join("<br><br>")}}}class PrimariaContextManagerImpl{constructor(){this.context={}}initializeContext(W){this.context={...W}}getContext(){return{...this.context}}}let contextManager$1;const createContextManager=()=>contextManager$1||(contextManager$1=new PrimariaContextManagerImpl,contextManager$1),broker$1=createBroker(),regionManager=v$n("primaria"),PrimariaRegionHost=f$o(regionManager),tokenManager=createTokenManager(broker$1),userManager=createUserManager(tokenManager),activityMonitor=createActivityMonitor(),sessionRefreshTimer=createSessionRefreshTimer(tokenManager,activityMonitor),globalStateManager=createGlobalStateManager(broker$1),contextManager=createContextManager(),pluginBusyManager=new PluginBusyManagerImpl,exitGuardManager=new ExitGuardManagerImpl,quickActionBusyManager=new QuickActionBusyManagerImpl(broker$1),interactionService=new ParimariaInteractionServiceImpl,notificationService=new PrimariaNotificationServiceImpl,ecapEventManager=createEcapEventManager(globalStateManager),pdfViewerManager=createPdfViewerManager(broker$1,notificationService),importDataManager=new ImportDataManagerImpl(interactionService),primariaApiFactory=X=>{const W=createRegionManagerProxy(X,regionManager,broker$1);return{pluginInfo:X,regionManager:W,httpClient:createHttpClient(tokenManager,broker$1),broker:broker$1,createLocaleManager:createLocaleManager(X.pluginId),globalStateManager,contextManager,tokenManager,userManager,ecapEventManager,pluginBusyManager,exitGuardManager,quickActionBusyManager,interactionService,notificationService,pdfViewerManager,importDataManager}},shellApi=primariaApiFactory({pluginId:primariaShellId}),api=Object.freeze(Object.defineProperty({__proto__:null,PrimariaRegionHost,activityMonitor,primariaApiFactory,sessionRefreshTimer,shellApi},Symbol.toStringTag,{value:"Module"})),registerRequest$1=(X,W)=>(te,re)=>{W.bind(re).to(re).inTransientScope(),injectable()(re);const oe=X.broker.registerRequest(te,ne=>W.get(re).handle(ne));return{dispose:()=>{W.isBound(re)&&W.unbind(re),oe.dispose()}}};let bootstrappedPlugins=[];const CORE_FIRST_ID="activity-history",bundledActivityHistory={pluginId:CORE_FIRST_ID,importer:()=>Promise.resolve().then(()=>plugin)},bootstrapPlugins=async(X,W)=>{const te=X??[],re=te.filter(ue=>ue.pluginId===CORE_FIRST_ID),oe=te.filter(ue=>ue.pluginId!==CORE_FIRST_ID),ne=re.length?re:[bundledActivityHistory],de=await p$d(ne,primariaApiFactory),ce=oe.length?await p$d(oe,primariaApiFactory):[];bootstrappedPlugins=[...de,...ce],handleStartupPlugin(bootstrappedPlugins,W)},handleStartupPlugin=(X,W)=>{if(X&&X.length>0&&W?.pluginId){const te=X.find(re=>re?.apiInstance.pluginInfo.pluginId===W.pluginId);te?.importedPlugin?.startup&&te?.importedPlugin?.startup?.(te.apiInstance,W.params)}},disposePlugins=async()=>Promise.all(bootstrappedPlugins.map(X=>X?.dispose()));var __getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__decorateClass$x=(X,W,te,re)=>{for(var oe=re>1?void 0:re?__getOwnPropDesc$i(W,te):W,ne=X.length-1,de;ne>=0;ne--)(de=X[ne])&&(oe=de(oe)||oe);return oe},__decorateParam$2=(X,W)=>(te,re)=>W(te,re,X);let ExitShellHandler=class{constructor(X){this.api=X}async handle(X){const W=X&&X.ecapEvent!==void 0?X:void 0;try{if(!await this.api.exitGuardManager.canExit())return;const re=this.api.pluginBusyManager.getTasks();if(re.length>0){const{confirmed:oe}=await this.askForClose(re);if(!oe)return}await Promise.race([this.unmountViewsAndDisposePlugins(),this.timeout(1e4)]),await disposeShell(),this.emitClose(W)}catch{this.api.notificationService.error(translate$1("errors.exit")),this.emitClose(W)}}async unmountViewsAndDisposePlugins(){await this.api.regionManager._removeAllViews(),await disposePlugins()}timeout(X){return new Promise(W=>setTimeout(W,X))}askForClose(X){return this.api.interactionService.confirm({busyTasks:X},{component:PluginBusyList},{title:translate$1("actions.askExit"),state:"error",confirmButtonText:"Sí",cancelButtonText:"No"})}emitClose(X){X?raiseCustomCloseEvent(X):raiseCloseEvent()}};ExitShellHandler=__decorateClass$x([__decorateParam$2(0,inject(TYPES$1.primaryApi))],ExitShellHandler);class ExitShell{constructor(W,te){this.ecapEvent=W,this.payload=te}}let request$f;const useExitShell=X=>{disposeExitShell(),request$f=registerRequest$1(X,container$1)(ExitShell,ExitShellHandler)},disposeExitShell=()=>{request$f?.dispose()};var __getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$w=(X,W,te,re)=>{for(var oe=re>1?void 0:re?__getOwnPropDesc$h(W,te):W,ne=X.length-1,de;ne>=0;ne--)(de=X[ne])&&(oe=de(oe)||oe);return oe},__decorateParam$1=(X,W)=>(te,re)=>W(te,re,X);const USER_ID_TYPES=["DNI","NIE","PASS"];let GetUserInfoBackendAdapter=class{constructor(X){this.api=X}getUserInfo(){const W=jwtDecode(this.api.tokenManager.getToken()).access_info,te={userId:this.getUserId(W)??"",firstName:W?.trace_user_given_name??"",familyName:W?.trace_user_family_name??"",lastName:W?.trace_user_last_name??"",registrationNumber:this.findIdentifier(W,"NUMCOL")??"",workCenter:W?.center_code??"",role:W?.role_type??"",speciality:W?.professional_category??""};return Promise.resolve(te)}findIdentifier(X,W){return X?.identifier?.find(te=>te.type===W)?.value}getUserId(X){for(const W of USER_ID_TYPES){const te=this.findIdentifier(X,W);if(te)return te}}};GetUserInfoBackendAdapter=__decorateClass$w([injectable(),__decorateParam$1(0,inject(TYPES$1.primaryApi))],GetUserInfoBackendAdapter);var __getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$v=(X,W,te,re)=>{for(var oe=re>1?void 0:re?__getOwnPropDesc$g(W,te):W,ne=X.length-1,de;ne>=0;ne--)(de=X[ne])&&(oe=de(oe)||oe);return oe},__decorateParam=(X,W)=>(te,re)=>W(te,re,X);let GetUserInfoHandler=class{constructor(X,W){this.api=X,this.backendAdapter=W}async handle(X){try{const W=await this.backendAdapter.getUserInfo();return this.api.globalStateManager.setData("userInfo",W),W}catch(W){this.api.notificationService.error(W.message)}}};GetUserInfoHandler=__decorateClass$v([__decorateParam(0,inject(TYPES$1.primaryApi)),__decorateParam(1,inject(GetUserInfoBackendAdapter))],GetUserInfoHandler);class GetUserInfo{}let request$e;const useGetUserInfo=X=>{disposeGetUserInfo(),request$e=registerRequest$1(X,container$1)(GetUserInfo,GetUserInfoHandler),registerDep(GetUserInfoBackendAdapter)},disposeGetUserInfo=()=>{request$e?.dispose(),unregisterDep(GetUserInfoBackendAdapter)},useFeatures=X=>{container$1.bind(TYPES$1.primaryApi).toConstantValue(X),useGetUserInfo(X),useExitShell(X),X.broker.send(new GetUserInfo)},disposeFeatures=async X=>{disposeGetUserInfo(),disposeExitShell(),container$1.unbindAll(),await X.regionManager._destroy(),X.broker._clear()},disposeShell=async()=>{await disposeFeatures(shellApi),shellApi.interactionService.dispose(),sessionRefreshTimer.stop(),activityMonitor.stop()},raiseCloseEvent=()=>{shellApi.ecapEventManager.publish("CLOSE_FORM","",{})},raiseCustomCloseEvent=X=>{shellApi.ecapEventManager.publish(X.ecapEvent,"",X.payload)};var shellViews=(X=>(X.shell="primaria-shell",X.error="primaria-error-view",X))(shellViews||{});const styles$n=":host{width:100%;overflow:hidden}#main-switcher{display:inherit}.container{width:100%;height:100%;display:flex;flex-direction:column;background:#fff}.main-container{min-height:1px;height:100%;display:flex}.main-container .sidebar{padding-inline:16px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;background:var(--color-primary-700);width:40px;height:100%;color:#fff}.main-container .sidebar .quick-actions-content{padding-top:24px;padding-bottom:22px;border-radius:8px}.main-container .sidebar .quick-actions-content .create-button-icon-badge{position:relative}.main-container .sidebar .quick-actions-content .create-button-icon-badge dss-notification-badge{position:absolute;top:-7px;right:-6px;z-index:1}.main-container .sidebar .quick-actions-content .create-button-icon-badge dss-icon{position:relative}.main-container .sidebar .icon{margin-left:8px}.main-container .sidebar #menu-region{width:100%;height:100%;min-height:1px}.main-container .sidebar #menu-region-container{padding-top:15px;min-height:1px;height:100%;width:100%;display:flex;flex-direction:column;gap:4px;overflow-y:auto;margin-right:-14px;padding-right:14px;scrollbar-color:var(--color-primary-200) var(--color-primary-700);scrollbar-width:thin}.main-container .sidebar #menu-region-container::-webkit-scrollbar{width:6px}.main-container .sidebar #menu-region-container::-webkit-scrollbar-track{background:var(--color-primary-700)}.main-container .sidebar #menu-region-container::-webkit-scrollbar-thumb{background-color:var(--color-primary-400);border-radius:4px}.main-container .sidebar .bottom-content{display:flex;flex-direction:column;gap:24px;width:100%}.main-container .sidebar .bottom-content .bottom-content-first{display:flex;flex-direction:column;gap:22px}.main-container .sidebar[expanded]{width:252px;align-items:flex-start}.main-container .sidebar .create-button-closed{cursor:pointer;background-color:#f0f0f0;color:var(--color-primary-700);border-radius:8px;width:40px;height:40px;display:flex;flex-direction:row;align-items:center;justify-content:center;transition:background-color .3s ease}.main-container .sidebar .create-button-closed:hover{background-color:var(--color-primary-900);color:#fff}.main-container .sidebar .create-button-opened{cursor:pointer;background-color:#f0f0f0;color:var(--color-primary-700);border-radius:8px;gap:8px;font-weight:600;width:220px;height:40px;display:flex;flex-direction:row;align-items:center;transition:background-color .3s ease}.main-container .sidebar .create-button-opened:hover{background-color:var(--color-primary-900);color:#fff}.main-container .content{display:flex;height:100%;width:100%;min-width:0}.main-container #main-region-container{min-height:1px;min-width:0;height:100%;flex:1}.main-container #navigation-menu-lower-region-container{display:flex;flex-direction:column;gap:4px}.footer{display:flex;height:48px;padding:12px 24px}.footer .footer-logo{align-self:center;display:flex;gap:16px}.divider-opened{width:220px}.divider-closed{width:40px}.toggle-button{margin-bottom:24px}@media (max-width: 1439px){.bottom-content-first{margin-bottom:24px}.toggle-button{display:none}.content{overflow-y:auto}}";let t$v="";function f$n(){return t$v}function s$E(X,W){const te=f$n(),re=`${X}${te}`;customElements.define(re,W)}const e$P="*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0;font-family:var(--font-family)}ul,ol{list-style:none}",n$y={type:Boolean,converter:{fromAttribute:X=>X!==null&&X!=="false",toAttribute:X=>X?"true":null}},o$U={fromAttribute:X=>!(X===null||X==="false"),toAttribute:X=>X?"":null},i$N={type:Array,converter:{fromAttribute:X=>{if(!X)return[];const W=JSON.parse(X);return Array.isArray(W)?W.map(te=>te.toString()):[W.toString()]},toAttribute:X=>JSON.stringify(X)}},i$M=':host{display:flex;align-items:center}.dss-icon,.material-symbols-rounded{font-family:var(--icon-font);font-size:var(--icon-size-md);font-weight:400;font-style:normal;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.dss-icon--fill,.material-symbols-rounded--fill{font-variation-settings:"FILL" 1}.dss-icon--sm{font-size:var(--icon-size-sm)}.dss-icon--md{font-size:var(--icon-size-md)}.dss-icon--lg{font-size:var(--icon-size-lg)}.dss-icon--xl{font-size:var(--icon-size-xl)}.dss-icon-ghost{display:inline-block;height:var(--icon-size-md);width:var(--icon-size-md);overflow:hidden;background-color:transparent}.dss-icon-ghost--sm{height:var(--icon-size-sm);width:var(--icon-size-sm);border-radius:var(--dss-radius-xs)}.dss-icon-ghost--lg{height:var(--icon-size-lg);width:var(--icon-size-lg)}.dss-icon-ghost--xl{height:var(--icon-size-xl);width:var(--icon-size-xl)}.dss-icon--spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}';/**
275
275
  * @license
@@ -8440,8 +8440,8 @@ Registered bindings:`,oe.forEach(function(ne){var de="Object";ne.implementationT
8440
8440
  </div>
8441
8441
  `;var __defProp$c=Object.defineProperty,__decorateClass$e=(X,W,te,re)=>{for(var oe=void 0,ne=X.length-1,de;ne>=0;ne--)(de=X[ne])&&(oe=de(W,te,oe)||oe);return oe&&__defProp$c(W,te,oe),oe};const ri=class ri extends k$6(h$n){constructor(){super(...arguments),this.expanded=!1}render(){return ke$1`${template$e(this)}`}connectedCallback(){super.connectedCallback()}firstUpdated(W){super.firstUpdated(W),this.observeHostResize()}observeHostResize(){const W=this.parentElement;new ResizeObserver(re=>{for(const oe of re){const ne=oe.target.clientWidth;this.expanded=ne>100}}).observe(W)}};ri.styles=i$R`
8442
8442
  ${r$L(styles$e)}
8443
- `;let NavDivider=ri;__decorateClass$e([r$H()],NavDivider.prototype,"expanded"),customElements.define("primaria-nav-divider",NavDivider);const commonNavMenuItems=[{id:"landing",icon:"door_front",label:"Sortir de l’usuari",type:"item",sortHint:"0010",callbackFn:()=>shellApi.broker.send(new ExitShell("OBRIR_PI"))}],registerNavMenuViews=X=>{const W=[...commonNavMenuItems,...X];for(const te of W)shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu,{id:te.id,sortHint:te.sortHint,factory:()=>{const re=te.type==="item"?new PrimariaNavItem({icon:te.icon,label:te.label,callbackFn:te.callbackFn}):new PrimariaNavTreeMenu({icon:te.icon,label:te.label,actionMenuItems:te.actionMenuItems});return Promise.resolve(re)}})},registerCommunicationNavMenu=()=>{shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu,{id:"communication",sortHint:"0120",factory:()=>{const X=new CommunicationActionMenu("3p","Comunicació");return Promise.resolve(X)}})},registerNavMenuDivider=()=>{shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu,{id:"nav-divider",sortHint:"0020",factory:()=>{const X=new NavDivider;return Promise.resolve(X)}})},administrativeNavMenuItems=[{id:"create-visits",icon:"today",label:"Crear visites",type:"tree",sortHint:"0040",actionMenuItems:[{icon:"open_in_new",label:"Metge/essa",callbackFn:()=>navigateToEcap("CREAR_VISITA_ADM","",{TipusCrida:"UAB"})},{icon:"open_in_new",label:"Infermeria",callbackFn:()=>navigateToEcap("CREAR_VISITA_ADM","",{TipusCrida:"UI"})},{icon:"open_in_new",label:"Administrativa",callbackFn:()=>navigateToEcap("CREAR_VISITA_ADM","",{TipusCrida:"UAS"})},{icon:"open_in_new",label:"Entre sectors",callbackFn:()=>navigateToEcap("CREAR_VISITA_SECTORS_ADM","")},{icon:"open_in_new",label:"Multiprogramació",callbackFn:()=>navigateToEcap("MULTIPROGRAMACIO_ADM","")},{icon:"open_in_new",label:"Vacunació internacional",callbackFn:()=>navigateToEcap("VACUNACIO_INTERNACIONAL_ADM","",{},!1)}]},{id:"register-visits",icon:"event_note",label:"Registre de visites",type:"tree",sortHint:"0050",actionMenuItems:[{icon:"open_in_new",label:"Programades",callbackFn:()=>navigateToEcap("VISITES_PROGRAMADES_ADM","")},{icon:"open_in_new",label:"Passades",callbackFn:()=>navigateToEcap("VISITES_PASSADES_ADM","")},{icon:"open_in_new",label:"Anul·lades",callbackFn:()=>navigateToEcap("VISITES_ANULADES_ADM","")}]},{id:"petitions",icon:"alt_route",label:"Peticions",type:"tree",sortHint:"0060",actionMenuItems:[{icon:"open_in_new",label:"Gestió de pendents",callbackFn:()=>navigateToEcap("GESTIO_PENDENTS_ADM","")},{icon:"open_in_new",label:"Gestió d'anul·lades",callbackFn:()=>navigateToEcap("GESTIO_ANULADES_ADM","")},{icon:"open_in_new",label:"Modificació/consulta derivacions",callbackFn:()=>navigateToEcap("MOD_CONS_DERIVACIONS_ADM","")},{icon:"open_in_new",label:"Ordres clíniques",callbackFn:()=>navigateToEcap("ORDRES_CLINIQUES_ADM","")},{icon:"open_in_new",label:"Gestió IS3",callbackFn:()=>navigateToEcap("PETICIONS_PEND_PROG_ADM","",{},!1)},{icon:"",label:"Altres accessos",hasNestedMenu:!0,nestedMenuItems:[{icon:"open_in_new",label:"Sol·licituds eliminades",callbackFn:()=>navigateToEcap("DERIVACIONS_BAIXA_ADM","")},{icon:"open_in_new",label:"Impressió recordatori",callbackFn:()=>navigateToEcap("DERIVACIONS_IMP_RECORD_ADM","")},{icon:"open_in_new",label:"Correcció de visita de laboratori",callbackFn:()=>navigateToEcap("CORRECCIO_VISITA_LAB_ADM","")},{icon:"open_in_new",label:"Sol·licitud de trasllat",callbackFn:()=>navigateToEcap("TRASLLAT_ADM","")},{icon:"open_in_new",label:"Informes d'autoritzacions",callbackFn:()=>navigateToEcap("INFORME_AUT_ADM","",{},!1)},{icon:"open_in_new",label:"Informes d'analítiques",callbackFn:()=>navigateToEcap("INF_ANALITIQUES_ADM","")}]}]},{id:"administrative-procedures",icon:"list_alt",label:"Procediments administratius",type:"tree",sortHint:"0070",actionMenuItems:[{icon:"open_in_new",label:"Modificació",callbackFn:()=>navigateToEcap("PROCEDIMENTS_MOD_ADM","")},{icon:"open_in_new",label:"SIUAC",callbackFn:()=>navigateToEcap("SIUAC_ADM","",{},!1)}]},{id:"billing",icon:"receipt",label:"Facturació",type:"tree",sortHint:"0080",actionMenuItems:[{icon:"open_in_new",label:"Gestió de factures",callbackFn:()=>navigateToEcap("FACTURACIO_GESTIO_ADM","",{},!1)},{icon:"open_in_new",label:"Registres de factures",callbackFn:()=>navigateToEcap("FACTURACIO_REGISTRE_ADM","")},{icon:"open_in_new",label:"Registres de cobraments",callbackFn:()=>navigateToEcap("FACTURACIO_COBRAMENTS_ADM","",{},!1)},{icon:"open_in_new",label:"Desvincular règim de finançament",callbackFn:()=>navigateToEcap("FACTURACIO_DESVINCULAR_ADM","")}]},{id:"user-docs",icon:"library_books",label:"Documents de l'usuari",type:"tree",sortHint:"0090",actionMenuItems:[{icon:"open_in_new",label:"Carrega l'escàner",callbackFn:()=>navigateToEcap("ESCANER_ADM","",{},!1)},{icon:"open_in_new",label:"Visualització documents usuari",callbackFn:()=>navigateToEcap("DOCUMENTS_USUARI_ADM","")},{icon:"open_in_new",label:"Servei digitalització segura",callbackFn:()=>navigateToEcap("DIGITALITZACIO_ADM","")}]},{id:"healthcare-procedures",icon:"folder",label:"Gestions sanitàries",type:"tree",sortHint:"0100",actionMenuItems:[{icon:"open_in_new",label:"Manteniment IT",callbackFn:()=>navigateToEcap("IT_MANTENIMENT_CONSULTAR","")},{icon:"open_in_new",label:"Pla de medicació",callbackFn:()=>navigateToEcap("PLA_MEDICACIO_ADM","")},{icon:"",label:"Materials diabètics",hasNestedMenu:!0,nestedMenuItems:[{icon:"open_in_new",label:"Lliurament de material",callbackFn:()=>navigateToEcap("LLIURAMENT_MATERIAL_ADM","")},{icon:"open_in_new",label:"Llistats",callbackFn:()=>navigateToEcap("DIABETICS_LLISTAT_ADM","",{},!1)}]},{icon:"open_in_new",label:"Full dosificació TAO",callbackFn:()=>navigateToEcap("TAO_ADM","")},{icon:"open_in_new",label:"Consultar pautes demandes a l'hospital",callbackFn:()=>navigateToEcap("CONSULTAR_PAUTES_ADM","",{},!1)}]}],registerAdministrativeCommunicationMenuActions=()=>{const X=[{id:"1",sortHint:"0010",icon:"open_in_new",label:"Seguretat",callbackFn:()=>navigateToEcap("SEGURETAT_ADM","")},{id:"3",sortHint:"0030",icon:"open_in_new",label:"SMS",callbackFn:()=>navigateToEcap("COMUNICACIO_MISSATGES_ADM","",{TipusMissatge:"SMS"})},{id:"4",sortHint:"0040",icon:"open_in_new",label:"Correu electrònic",callbackFn:()=>navigateToEcap("COMUNICACIO_MISSATGES_ADM","",{TipusMissatge:"CORREU"})}];for(const W of X)shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.communicationSidenav,{id:W.id,sortHint:W.sortHint,factory:()=>{const te=new exports.QuickActionItem(W.icon,W.label,W.callbackFn);return Promise.resolve(te)}})},registerAdministrativeNavMenuViews=()=>{registerCommunicationNavMenu(),registerAdministrativeCommunicationMenuActions(),registerNavMenuViews(administrativeNavMenuItems),registerNavMenuDivider()},getVisiId=async X=>{const W=X.contextManager.getContext();if(W.visi_id)return W.visi_id;try{return await X.broker.send("get_visi_id")}catch{return}},doctorNavMenuItems=[{id:"dinamic-monitoring",icon:"poll",label:"Monitoratge dinàmic",type:"item",sortHint:"0030",callbackFn:()=>navigateToEcap("IA_DEV")},{id:"analytics-monitoring",icon:"science",label:"Seguiment analític",type:"item",sortHint:"0060",callbackFn:()=>navigateToEcap("SEGUIMENT_ANALITIC")},{id:"results-reports",icon:"folder_shared",label:"Documents",type:"tree",sortHint:"0070",actionMenuItems:[{icon:"open_in_new",label:"Resultats i informes",callbackFn:()=>navigateToEcap("RESULTAT_INFORMES")},{icon:"open_in_new",label:"Documents usuari",callbackFn:()=>{setTimeout(()=>{navigateToEcap("CRIDA_DOCS_USU")},0)}},{icon:"open_in_new",label:"Informes clínics",callbackFn:()=>navigateToEcap("INFORME_CLINIC_NET")}]},{id:"test-cabinets",icon:"list_alt",label:"Gabinets de proves",type:"item",sortHint:"0080",callbackFn:()=>navigateToEcap("GABINETS_PROVES")},{id:"prescriptions",icon:"pill",label:"Prescripció",type:"tree",sortHint:"0090",actionMenuItems:[{icon:"open_in_new",label:"Prescripció",callbackFn:async()=>{const X=await getVisiId(shellApi);navigateToEcap("PRESCRIPCIO_ACTIVA","NO_TANCAR",X?{VisiId:X}:{})}},{icon:"open_in_new",label:"Ordres de tractament",callbackFn:()=>navigateToEcap("ORDRE_TRACTAMENT")},{icon:"open_in_new",label:"Dispensació material sanitari",callbackFn:()=>navigateToEcap("DISPENSACIO_MATERIAL_PACIENT")},{icon:"open_in_new",label:"Prescripció social",callbackFn:()=>navigateToEcap("PRESCRIPCIO_SOCIAL")}]},{id:"vaccines",icon:"vaccines",label:"Immunitzacions",type:"item",sortHint:"0100",callbackFn:()=>navigateToEcap("IMMUNITZACIONS")},{id:"it",icon:"history_toggle_off",label:"Incapacitat temporal",type:"item",sortHint:"0100",callbackFn:async()=>{const X=await getVisiId(shellApi);navigateToEcap("REV_IT","NO_TANCAR",X?{VisiId:X}:{})}},{id:"visits",icon:"event",label:"Visites",type:"item",sortHint:"0130",callbackFn:()=>navigateToEcap("CONSULTA_VISITES")}],registerClinicalPathwaysNavMenu=()=>{shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu,{id:"processes",sortHint:"0040",factory:()=>{const X=new ClinicalPathwaysActionMenu("account_tree","Vies clíniques");return Promise.resolve(X)}})},registerDoctorCommunicationMenuActions=()=>{const X=[{id:"1",sortHint:"0010",icon:"open_in_new",label:"SMS",callbackFn:async()=>{const W=await getPatientCip(shellApi);shellApi.ecapEventManager.publish("MISSATGES_DEV","NO_TANCAR",{CIP:W||"",TipusMissatge:"SMS"})}},{id:"3",icon:"open_in_new",label:"Mail",callbackFn:async()=>{const W=await getPatientCip(shellApi);shellApi.ecapEventManager.publish("COMUNICACIO_MISSATGES_CREAR","NO_TANCAR",{CIP:W||"",TipusMissatge:"SMS"})}},{id:"4",sortHint:"0030",icon:"open_in_new",label:"Veu IP",callbackFn:()=>navigateToEcap("VOIP")}];for(const W of X)shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.communicationSidenav,{id:W.id,sortHint:W.sortHint,factory:()=>{const te=new exports.QuickActionItem(W.icon,W.label,W.callbackFn);return Promise.resolve(te)}})},registerDoctorClinicalPathwaysMenuActions=()=>{const X=[{id:"3",sortHint:"0030",icon:"open_in_new",label:"Nen sa",callbackFn:()=>navigateToEcap("NEN_SA")},{id:"4",sortHint:"0040",icon:"open_in_new",label:"ASSIR",callbackFn:()=>navigateToEcap("NAVEGACIO_ASSIR")},{id:"5",sortHint:"0050",icon:"open_in_new",label:"Odontologia",callbackFn:()=>navigateToEcap("ODONTOLOGO")},{id:"6",sortHint:"0060",icon:"open_in_new",label:"Situació d'especial cura",callbackFn:()=>navigateToEcap("SIT_ESPEC_CURA_DEV")},{id:"7",sortHint:"0070",icon:"open_in_new",label:"Valoració social",callbackFn:()=>navigateToEcap("VALORACIO_SOCIAL")}];for(const W of X)shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.clinicalPathwaysSidenav,{id:W.id,sortHint:W.sortHint,factory:()=>{const te=new exports.QuickActionItem(W.icon,W.label,W.callbackFn);return Promise.resolve(te)}})},registerPetitionerNavMenu=()=>{shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu,{id:"petitioner",sortHint:"0050",factory:()=>{const X=new PetitionerActionMenu("playlist_add","Peticionari");return Promise.resolve(X)}})},registerDoctorPetitionerMenuActions=()=>{const X=[{id:"1",sortHint:"0010",icon:"open_in_new",label:"Analítiques",callbackFn:()=>navigateToEcap("LABORATORI")},{id:"2",sortHint:"0020",icon:"open_in_new",label:"Ordres Clíniques",callbackFn:()=>navigateToEcap("RESULT_OC")},{id:"3",sortHint:"0030",icon:"open_in_new",label:"OC Exprés",callbackFn:()=>navigateToEcap("OC_EXPRES")},{id:"4",sortHint:"0040",icon:"open_in_new",label:"Sol·licitud de trasllat",callbackFn:()=>navigateToEcap("TRANSPORT")}];for(const W of X)shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.petitionerSidenav,{id:W.id,sortHint:W.sortHint,factory:()=>{const te=new exports.QuickActionItem(W.icon,W.label,W.callbackFn);return Promise.resolve(te)}})},registerDoctorNavMenuViews=()=>{registerCommunicationNavMenu(),registerDoctorCommunicationMenuActions(),registerClinicalPathwaysNavMenu(),registerDoctorClinicalPathwaysMenuActions(),registerPetitionerNavMenu(),registerDoctorPetitionerMenuActions(),registerNavMenuViews(doctorNavMenuItems),registerNavMenuDivider()},registerDoctorQuickActionViews=()=>{shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.quickActions,{id:"dates",sortHint:"0011",factory:()=>{const X=new exports.QuickActionItem("","Cita",()=>{navigateToEcap("CREAR_VISITA")});return Promise.resolve(X)}})},registerMainViews=()=>{registerPDFVisorMainView()},registerPdfViewerNavButton=()=>{registerPdfViewerNavItem()},useInternalViews=()=>{registerMainViews(),registerPdfViewerNavButton(),shellApi.userManager.isUserRoleAdministrative()?registerAdministrativeNavMenuViews():(registerDoctorNavMenuViews(),registerDoctorQuickActionViews())},useUI=()=>{p$g.registerAdapterFactory("primaria-content-switcher",d$y),useSharedUI(),useComponents(),useInternalViews()},initializeShell=(X,W)=>{W&&shellApi.contextManager.initializeContext(W),activityMonitor.start(),sessionRefreshTimer.start(),useLocalization(shellApi),useUI(),useFeatures(shellApi);const te=new PrimariaShell;X.appendChild(te)};class i extends HTMLElement{constructor(W,te,re={},oe){super(),this.jsx=W,this.styles=te,this.root=this.attachShadow({mode:"open"}),this.reactRoot=null,this.fullHeight=oe?.fullHeight??!1,re&&(this.props=re)}connectedCallback(){const W=document.createElement("div");W.style.minHeight="1px",W.style.width="100%",W.style.height=this.fullHeight?"100%":"auto";const te=document.createElement("style");te.innerText=this.styles,this.root.appendChild(W),this.root.appendChild(te),this.reactRoot=r$O.createRoot(W),this.renderReact()}disconnectedCallback(){this.reactRoot&&this.reactRoot.unmount()}renderReact(){this.reactRoot&&this.reactRoot.render(c$t.createElement(this.jsx,{...this.props}))}}customElements.define("ux-react-web-component",i);const l=(X,W,te)=>(re={})=>Promise.resolve(new i(X,W,re,te));if(typeof document<"u"){const X=document.createElement("style");X.textContent=fontsCSS+`
8444
- `+dssCSS,document.head.appendChild(X)}const styles$d=".container{background-color:#fff;display:flex;flex-direction:column;min-width:500px;width:95vw;height:95vh;border-radius:var(--dss-radius-sm);overflow:hidden}.header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#000;padding:var(--dss-spacing-sm)}.header__title{grid-column:2;text-align:center}.header__close{grid-column:3;justify-self:end}.content{display:grid;flex:1;min-height:0;grid-template-columns:50% 50%;padding:16px}.content>primaria-region{width:100%;height:100%;min-height:0}.content primaria-region>div{width:100%;height:100%;border-radius:8px;padding:0 16px;box-sizing:border-box}.content>primaria-region>div{display:flex;flex-direction:column;gap:16px;overflow-y:auto}.content>primaria-region>div>*{flex-shrink:0}.footer{display:flex;flex-direction:row;align-items:center;background:#fff;justify-content:center;gap:12px;height:56px;border-top:1px solid var(--color-neutral-100);padding:var(--dss-spacing-sm)}",template$d=X=>ke$1`
8443
+ `;let NavDivider=ri;__decorateClass$e([r$H()],NavDivider.prototype,"expanded"),customElements.define("primaria-nav-divider",NavDivider);const commonNavMenuItems=[{id:"landing",icon:"door_front",label:"Sortir de l’usuari",type:"item",sortHint:"0010",callbackFn:()=>shellApi.broker.send(new ExitShell("OBRIR_PI"))}],registerNavMenuViews=X=>{const W=[...commonNavMenuItems,...X];for(const te of W)shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu,{id:te.id,sortHint:te.sortHint,factory:()=>{const re=te.type==="item"?new PrimariaNavItem({icon:te.icon,label:te.label,callbackFn:te.callbackFn}):new PrimariaNavTreeMenu({icon:te.icon,label:te.label,actionMenuItems:te.actionMenuItems});return Promise.resolve(re)}})},registerCommunicationNavMenu=()=>{shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu,{id:"communication",sortHint:"0120",factory:()=>{const X=new CommunicationActionMenu("3p","Comunicació");return Promise.resolve(X)}})},registerNavMenuDivider=()=>{shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu,{id:"nav-divider",sortHint:"0020",factory:()=>{const X=new NavDivider;return Promise.resolve(X)}})},administrativeNavMenuItems=[{id:"create-visits",icon:"today",label:"Crear visites",type:"tree",sortHint:"0040",actionMenuItems:[{icon:"open_in_new",label:"Metge/essa",callbackFn:()=>navigateToEcap("CREAR_VISITA_ADM","",{TipusCrida:"UAB"})},{icon:"open_in_new",label:"Infermeria",callbackFn:()=>navigateToEcap("CREAR_VISITA_ADM","",{TipusCrida:"UI"})},{icon:"open_in_new",label:"Administrativa",callbackFn:()=>navigateToEcap("CREAR_VISITA_ADM","",{TipusCrida:"UAS"})},{icon:"open_in_new",label:"Entre sectors",callbackFn:()=>navigateToEcap("CREAR_VISITA_SECTORS_ADM","")},{icon:"open_in_new",label:"Multiprogramació",callbackFn:()=>navigateToEcap("MULTIPROGRAMACIO_ADM","")},{icon:"open_in_new",label:"Vacunació internacional",callbackFn:()=>navigateToEcap("VACUNACIO_INTERNACIONAL_ADM","",{},!1)}]},{id:"register-visits",icon:"event_note",label:"Registre de visites",type:"tree",sortHint:"0050",actionMenuItems:[{icon:"open_in_new",label:"Programades",callbackFn:()=>navigateToEcap("VISITES_PROGRAMADES_ADM","")},{icon:"open_in_new",label:"Passades",callbackFn:()=>navigateToEcap("VISITES_PASSADES_ADM","")},{icon:"open_in_new",label:"Anul·lades",callbackFn:()=>navigateToEcap("VISITES_ANULADES_ADM","")}]},{id:"petitions",icon:"alt_route",label:"Peticions",type:"tree",sortHint:"0060",actionMenuItems:[{icon:"open_in_new",label:"Gestió de pendents",callbackFn:()=>navigateToEcap("GESTIO_PENDENTS_ADM","")},{icon:"open_in_new",label:"Gestió d'anul·lades",callbackFn:()=>navigateToEcap("GESTIO_ANULADES_ADM","")},{icon:"open_in_new",label:"Modificació/consulta derivacions",callbackFn:()=>navigateToEcap("MOD_CONS_DERIVACIONS_ADM","")},{icon:"open_in_new",label:"Ordres clíniques",callbackFn:()=>navigateToEcap("ORDRES_CLINIQUES_ADM","")},{icon:"open_in_new",label:"Gestió IS3",callbackFn:()=>navigateToEcap("PETICIONS_PEND_PROG_ADM","",{},!1)},{icon:"",label:"Altres accessos",hasNestedMenu:!0,nestedMenuItems:[{icon:"open_in_new",label:"Sol·licituds eliminades",callbackFn:()=>navigateToEcap("DERIVACIONS_BAIXA_ADM","")},{icon:"open_in_new",label:"Impressió recordatori",callbackFn:()=>navigateToEcap("DERIVACIONS_IMP_RECORD_ADM","")},{icon:"open_in_new",label:"Correcció de visita de laboratori",callbackFn:()=>navigateToEcap("CORRECCIO_VISITA_LAB_ADM","")},{icon:"open_in_new",label:"Sol·licitud de trasllat",callbackFn:()=>navigateToEcap("TRASLLAT_ADM","")},{icon:"open_in_new",label:"Informes d'autoritzacions",callbackFn:()=>navigateToEcap("INFORME_AUT_ADM","",{},!1)},{icon:"open_in_new",label:"Informes d'analítiques",callbackFn:()=>navigateToEcap("INF_ANALITIQUES_ADM","")}]}]},{id:"administrative-procedures",icon:"list_alt",label:"Procediments administratius",type:"tree",sortHint:"0070",actionMenuItems:[{icon:"open_in_new",label:"Modificació",callbackFn:()=>navigateToEcap("PROCEDIMENTS_MOD_ADM","")},{icon:"open_in_new",label:"SIUAC",callbackFn:()=>navigateToEcap("SIUAC_ADM","",{},!1)}]},{id:"billing",icon:"receipt",label:"Facturació",type:"tree",sortHint:"0080",actionMenuItems:[{icon:"open_in_new",label:"Gestió de factures",callbackFn:()=>navigateToEcap("FACTURACIO_GESTIO_ADM","",{},!1)},{icon:"open_in_new",label:"Registres de factures",callbackFn:()=>navigateToEcap("FACTURACIO_REGISTRE_ADM","")},{icon:"open_in_new",label:"Registres de cobraments",callbackFn:()=>navigateToEcap("FACTURACIO_COBRAMENTS_ADM","",{},!1)},{icon:"open_in_new",label:"Desvincular règim de finançament",callbackFn:()=>navigateToEcap("FACTURACIO_DESVINCULAR_ADM","")}]},{id:"user-docs",icon:"library_books",label:"Documents de l'usuari",type:"tree",sortHint:"0090",actionMenuItems:[{icon:"open_in_new",label:"Carrega l'escàner",callbackFn:()=>navigateToEcap("ESCANER_ADM","",{},!1)},{icon:"open_in_new",label:"Visualització documents usuari",callbackFn:()=>navigateToEcap("DOCUMENTS_USUARI_ADM","")},{icon:"open_in_new",label:"Servei digitalització segura",callbackFn:()=>navigateToEcap("DIGITALITZACIO_ADM","")}]},{id:"healthcare-procedures",icon:"folder",label:"Gestions sanitàries",type:"tree",sortHint:"0100",actionMenuItems:[{icon:"open_in_new",label:"Manteniment IT",callbackFn:()=>navigateToEcap("IT_MANTENIMENT_CONSULTAR","")},{icon:"open_in_new",label:"Pla de medicació",callbackFn:()=>navigateToEcap("PLA_MEDICACIO_ADM","")},{icon:"",label:"Materials diabètics",hasNestedMenu:!0,nestedMenuItems:[{icon:"open_in_new",label:"Lliurament de material",callbackFn:()=>navigateToEcap("LLIURAMENT_MATERIAL_ADM","")},{icon:"open_in_new",label:"Llistats",callbackFn:()=>navigateToEcap("DIABETICS_LLISTAT_ADM","",{},!1)}]},{icon:"open_in_new",label:"Full dosificació TAO",callbackFn:()=>navigateToEcap("TAO_ADM","")},{icon:"open_in_new",label:"Consultar pautes demandes a l'hospital",callbackFn:()=>navigateToEcap("CONSULTAR_PAUTES_ADM","",{},!1)}]}],registerAdministrativeCommunicationMenuActions=()=>{const X=[{id:"1",sortHint:"0010",icon:"open_in_new",label:"Seguretat",callbackFn:()=>navigateToEcap("SEGURETAT_ADM","")},{id:"3",sortHint:"0030",icon:"open_in_new",label:"SMS",callbackFn:()=>navigateToEcap("COMUNICACIO_MISSATGES_ADM","",{TipusMissatge:"SMS"})},{id:"4",sortHint:"0040",icon:"open_in_new",label:"Correu electrònic",callbackFn:()=>navigateToEcap("COMUNICACIO_MISSATGES_ADM","",{TipusMissatge:"CORREU"})}];for(const W of X)shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.communicationSidenav,{id:W.id,sortHint:W.sortHint,factory:()=>{const te=new exports.QuickActionItem(W.icon,W.label,W.callbackFn);return Promise.resolve(te)}})},registerAdministrativeNavMenuViews=()=>{registerCommunicationNavMenu(),registerAdministrativeCommunicationMenuActions(),registerNavMenuViews(administrativeNavMenuItems),registerNavMenuDivider()},getVisiId=async X=>{const W=X.contextManager.getContext();if(W.visi_id)return W.visi_id;try{return await X.broker.send("get_visi_id")}catch{return}},doctorNavMenuItems=[{id:"dinamic-monitoring",icon:"poll",label:"Monitoratge dinàmic",type:"item",sortHint:"0030",callbackFn:()=>navigateToEcap("IA_DEV")},{id:"analytics-monitoring",icon:"science",label:"Seguiment analític",type:"item",sortHint:"0060",callbackFn:()=>navigateToEcap("SEGUIMENT_ANALITIC")},{id:"results-reports",icon:"folder_shared",label:"Documents",type:"tree",sortHint:"0070",actionMenuItems:[{icon:"open_in_new",label:"Resultats i informes",callbackFn:()=>navigateToEcap("RESULTAT_INFORMES")},{icon:"open_in_new",label:"Documents usuari",callbackFn:()=>{setTimeout(()=>{navigateToEcap("CRIDA_DOCS_USU")},0)}},{icon:"open_in_new",label:"Informes clínics",callbackFn:()=>navigateToEcap("INFORME_CLINIC_NET")}]},{id:"test-cabinets",icon:"list_alt",label:"Gabinets de proves",type:"item",sortHint:"0080",callbackFn:()=>navigateToEcap("GABINETS_PROVES")},{id:"prescriptions",icon:"pill",label:"Prescripció",type:"tree",sortHint:"0090",actionMenuItems:[{icon:"open_in_new",label:"Prescripció",callbackFn:async()=>{const X=await getVisiId(shellApi);navigateToEcap("PRESCRIPCIO_ACTIVA","NO_TANCAR",X?{VisiId:X}:{})}},{icon:"open_in_new",label:"Ordres de tractament",callbackFn:()=>navigateToEcap("ORDRE_TRACTAMENT")},{icon:"open_in_new",label:"Dispensació material sanitari",callbackFn:()=>navigateToEcap("DISPENSACIO_MATERIAL_PACIENT")},{icon:"open_in_new",label:"Prescripció social",callbackFn:()=>navigateToEcap("PRESCRIPCIO_SOCIAL")}]},{id:"vaccines",icon:"vaccines",label:"Immunitzacions",type:"item",sortHint:"0100",callbackFn:()=>navigateToEcap("IMMUNITZACIONS")},{id:"it",icon:"history_toggle_off",label:"Incapacitat temporal",type:"item",sortHint:"0100",callbackFn:async()=>{const X=await getVisiId(shellApi);navigateToEcap("REV_IT","NO_TANCAR",X?{VisiId:X}:{})}},{id:"visits",icon:"event",label:"Visites",type:"item",sortHint:"0130",callbackFn:()=>navigateToEcap("CONSULTA_VISITES")}],registerClinicalPathwaysNavMenu=()=>{shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu,{id:"processes",sortHint:"0040",factory:()=>{const X=new ClinicalPathwaysActionMenu("account_tree","Vies clíniques");return Promise.resolve(X)}})},registerDoctorCommunicationMenuActions=()=>{const X=[{id:"1",sortHint:"0010",icon:"open_in_new",label:"SMS",callbackFn:async()=>{const W=await getPatientCip(shellApi);shellApi.ecapEventManager.publish("MISSATGES_DEV","NO_TANCAR",{CIP:W||"",TipusMissatge:"SMS"})}},{id:"3",icon:"open_in_new",label:"Mail",callbackFn:async()=>{const W=await getPatientCip(shellApi);shellApi.ecapEventManager.publish("COMUNICACIO_MISSATGES_CREAR","NO_TANCAR",{CIP:W||"",TipusMissatge:"SMS"})}},{id:"4",sortHint:"0030",icon:"open_in_new",label:"Veu IP",callbackFn:()=>navigateToEcap("VOIP")}];for(const W of X)shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.communicationSidenav,{id:W.id,sortHint:W.sortHint,factory:()=>{const te=new exports.QuickActionItem(W.icon,W.label,W.callbackFn);return Promise.resolve(te)}})},registerDoctorClinicalPathwaysMenuActions=()=>{const X=[{id:"3",sortHint:"0030",icon:"open_in_new",label:"Nen sa",callbackFn:()=>navigateToEcap("NEN_SA")},{id:"4",sortHint:"0040",icon:"open_in_new",label:"ASSIR",callbackFn:()=>navigateToEcap("NAVEGACIO_ASSIR")},{id:"5",sortHint:"0050",icon:"open_in_new",label:"Odontologia",callbackFn:()=>navigateToEcap("ODONTOLOGO")},{id:"6",sortHint:"0060",icon:"open_in_new",label:"Situació d'especial cura",callbackFn:()=>navigateToEcap("SIT_ESPEC_CURA_DEV")},{id:"7",sortHint:"0070",icon:"open_in_new",label:"Valoració social",callbackFn:()=>navigateToEcap("VALORACIO_SOCIAL")}];for(const W of X)shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.clinicalPathwaysSidenav,{id:W.id,sortHint:W.sortHint,factory:()=>{const te=new exports.QuickActionItem(W.icon,W.label,W.callbackFn);return Promise.resolve(te)}})},registerPetitionerNavMenu=()=>{shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu,{id:"petitioner",sortHint:"0050",factory:()=>{const X=new PetitionerActionMenu("playlist_add","Peticionari");return Promise.resolve(X)}})},registerDoctorPetitionerMenuActions=()=>{const X=[{id:"1",sortHint:"0010",icon:"open_in_new",label:"Analítiques",callbackFn:()=>navigateToEcap("LABORATORI")},{id:"2",sortHint:"0020",icon:"open_in_new",label:"Ordres Clíniques",callbackFn:()=>navigateToEcap("RESULT_OC")},{id:"3",sortHint:"0030",icon:"open_in_new",label:"OC Exprés",callbackFn:()=>navigateToEcap("OC_EXPRES")},{id:"4",sortHint:"0040",icon:"open_in_new",label:"Sol·licitud de trasllat",callbackFn:()=>navigateToEcap("TRANSPORT")}];for(const W of X)shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.petitionerSidenav,{id:W.id,sortHint:W.sortHint,factory:()=>{const te=new exports.QuickActionItem(W.icon,W.label,W.callbackFn);return Promise.resolve(te)}})},registerDoctorNavMenuViews=()=>{registerCommunicationNavMenu(),registerDoctorCommunicationMenuActions(),registerClinicalPathwaysNavMenu(),registerDoctorClinicalPathwaysMenuActions(),registerPetitionerNavMenu(),registerDoctorPetitionerMenuActions(),registerNavMenuViews(doctorNavMenuItems),registerNavMenuDivider()},registerDoctorQuickActionViews=()=>{shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.quickActions,{id:"dates",sortHint:"0011",factory:()=>{const X=new exports.QuickActionItem("","Cita",()=>{navigateToEcap("CREAR_VISITA")});return Promise.resolve(X)}})},registerMainViews=()=>{registerPDFVisorMainView()},registerPdfViewerNavButton=()=>{registerPdfViewerNavItem()},useInternalViews=()=>{registerMainViews(),registerPdfViewerNavButton(),shellApi.userManager.isUserRoleAdministrative()?registerAdministrativeNavMenuViews():(registerDoctorNavMenuViews(),registerDoctorQuickActionViews())},useUI=()=>{p$g.registerAdapterFactory("primaria-content-switcher",d$y),useSharedUI(),useComponents(),useInternalViews()},initializeShell=(X,W)=>{W&&shellApi.contextManager.initializeContext(W),activityMonitor.start(),sessionRefreshTimer.start(),useLocalization(shellApi),useUI(),useFeatures(shellApi);const te=new PrimariaShell;X.appendChild(te)};class i extends HTMLElement{constructor(W,te,re={},oe){super(),this.jsx=W,this.styles=te,this.root=this.attachShadow({mode:"open"}),this.reactRoot=null,this.fullHeight=oe?.fullHeight??!1,re&&(this.props=re)}connectedCallback(){const W=document.createElement("div");W.style.minHeight="1px",W.style.width="100%",W.style.height=this.fullHeight?"100%":"auto";const te=document.createElement("style");te.innerText=this.styles,this.root.appendChild(W),this.root.appendChild(te),this.reactRoot=r$O.createRoot(W),this.renderReact()}disconnectedCallback(){this.reactRoot&&this.reactRoot.unmount()}renderReact(){this.reactRoot&&this.reactRoot.render(c$t.createElement(this.jsx,{...this.props}))}}customElements.define("ux-react-web-component",i);const l=(X,W,te)=>(re={})=>Promise.resolve(new i(X,W,re,te));if(typeof document<"u"){const X=document.createElement("style");X.textContent=`${fontsCSS}
8444
+ ${dssCSS}`,document.head.appendChild(X)}const styles$d=".container{background-color:#fff;display:flex;flex-direction:column;min-width:500px;width:95vw;height:95vh;border-radius:var(--dss-radius-sm);overflow:hidden}.header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#000;padding:var(--dss-spacing-sm)}.header__title{grid-column:2;text-align:center}.header__close{grid-column:3;justify-self:end}.content{display:grid;flex:1;min-height:0;grid-template-columns:50% 50%;padding:16px}.content>primaria-region{width:100%;height:100%;min-height:0}.content primaria-region>div{width:100%;height:100%;border-radius:8px;padding:0 16px;box-sizing:border-box}.content>primaria-region>div{display:flex;flex-direction:column;gap:16px;overflow-y:auto}.content>primaria-region>div>*{flex-shrink:0}.footer{display:flex;flex-direction:row;align-items:center;background:#fff;justify-content:center;gap:12px;height:56px;border-top:1px solid var(--color-neutral-100);padding:var(--dss-spacing-sm)}",template$d=X=>ke$1`
8445
8445
  <div class="container">
8446
8446
  <div class="header">
8447
8447
  <dss-typography class="header__title" tag="h2" variant="headline-4">
@@ -8588,7 +8588,7 @@ Registered bindings:`,oe.forEach(function(ne){var de="Object";ne.implementationT
8588
8588
  <div class="virtual-viewport" @scroll=${X._onScroll}>
8589
8589
  <div class="virtual-content" style="height: ${X._totalHeight}px;">
8590
8590
  <div class="virtual-items" style="transform: translateY(${X._containerOffset}px)">
8591
- ${Qt(X._visibleRows,W=>W.group?.items?.[0]?.id||W.group?.subGroups?.[0]?.items?.[0]?.id,({index:W,group:te})=>ke$1`
8591
+ ${Qt(X._visibleRows,W=>W.group.idGroup,({index:W,group:te})=>ke$1`
8592
8592
  <div class="visit"
8593
8593
  data-index=${W}
8594
8594
  ${Kt(X._measureElement)}
@@ -8656,7 +8656,7 @@ ${X.searchString?.length>1?ke$1`
8656
8656
  `;function memo(X,W,te){let re=te.initialDeps??[],oe,ne=!0;function de(){var ce,ue,pe;let he;te.key&&((ce=te.debug)!=null&&ce.call(te))&&(he=Date.now());const fe=X();if(!(fe.length!==re.length||fe.some((ve,me)=>re[me]!==ve)))return oe;re=fe;let ge;if(te.key&&((ue=te.debug)!=null&&ue.call(te))&&(ge=Date.now()),oe=W(...fe),te.key&&((pe=te.debug)!=null&&pe.call(te))){const ve=Math.round((Date.now()-he)*100)/100,me=Math.round((Date.now()-ge)*100)/100,_e=me/16,ye=(we,Ae)=>{for(we=String(we);we.length<Ae;)we=" "+we;return we};console.info(`%c⏱ ${ye(me,5)} /${ye(ve,5)} ms`,`
8657
8657
  font-size: .6rem;
8658
8658
  font-weight: bold;
8659
- color: hsl(${Math.max(0,Math.min(120-120*_e,120))}deg 100% 31%);`,te?.key)}return te?.onChange&&!(ne&&te.skipInitialOnChange)&&te.onChange(oe),ne=!1,oe}return de.updateDeps=ce=>{re=ce},de}function notUndefined(X,W){if(X===void 0)throw new Error("Unexpected undefined");return X}const approxEqual=(X,W)=>Math.abs(X-W)<1.01,debounce=(X,W,te)=>{let re;return function(...oe){X.clearTimeout(re),re=X.setTimeout(()=>W.apply(this,oe),te)}},getRect=X=>{const{offsetWidth:W,offsetHeight:te}=X;return{width:W,height:te}},defaultKeyExtractor=X=>X,defaultRangeExtractor=X=>{const W=Math.max(X.startIndex-X.overscan,0),te=Math.min(X.endIndex+X.overscan,X.count-1),re=[];for(let oe=W;oe<=te;oe++)re.push(oe);return re},observeElementRect=(X,W)=>{const te=X.scrollElement;if(!te)return;const re=X.targetWindow;if(!re)return;const oe=de=>{const{width:ce,height:ue}=de;W({width:Math.round(ce),height:Math.round(ue)})};if(oe(getRect(te)),!re.ResizeObserver)return()=>{};const ne=new re.ResizeObserver(de=>{const ce=()=>{const ue=de[0];if(ue?.borderBoxSize){const pe=ue.borderBoxSize[0];if(pe){oe({width:pe.inlineSize,height:pe.blockSize});return}}oe(getRect(te))};X.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(ce):ce()});return ne.observe(te,{box:"border-box"}),()=>{ne.unobserve(te)}},addEventListenerOptions={passive:!0},supportsScrollend=typeof window>"u"?!0:"onscrollend"in window,observeElementOffset=(X,W)=>{const te=X.scrollElement;if(!te)return;const re=X.targetWindow;if(!re)return;let oe=0;const ne=X.options.useScrollendEvent&&supportsScrollend?()=>{}:debounce(re,()=>{W(oe,!1)},X.options.isScrollingResetDelay),de=he=>()=>{const{horizontal:fe,isRtl:be}=X.options;oe=fe?te.scrollLeft*(be&&-1||1):te.scrollTop,ne(),W(oe,he)},ce=de(!0),ue=de(!1);te.addEventListener("scroll",ce,addEventListenerOptions);const pe=X.options.useScrollendEvent&&supportsScrollend;return pe&&te.addEventListener("scrollend",ue,addEventListenerOptions),()=>{te.removeEventListener("scroll",ce),pe&&te.removeEventListener("scrollend",ue)}},measureElement=(X,W,te)=>{if(W?.borderBoxSize){const re=W.borderBoxSize[0];if(re)return Math.round(re[te.options.horizontal?"inlineSize":"blockSize"])}return X[te.options.horizontal?"offsetWidth":"offsetHeight"]},elementScroll=(X,{adjustments:W=0,behavior:te},re)=>{var oe,ne;const de=X+W;(ne=(oe=re.scrollElement)==null?void 0:oe.scrollTo)==null||ne.call(oe,{[re.options.horizontal?"left":"top"]:de,behavior:te})};class Virtualizer{constructor(W){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var te,re,oe;return((oe=(re=(te=this.targetWindow)==null?void 0:te.performance)==null?void 0:re.now)==null?void 0:oe.call(re))??Date.now()},this.observer=(()=>{let te=null;const re=()=>te||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:te=new this.targetWindow.ResizeObserver(oe=>{oe.forEach(ne=>{const de=()=>{const ce=ne.target,ue=this.indexFromElement(ce);if(!ce.isConnected){this.observer.unobserve(ce);return}this.shouldMeasureDuringScroll(ue)&&this.resizeItem(ue,this.options.measureElement(ce,ne,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(de):de()})}));return{disconnect:()=>{var oe;(oe=re())==null||oe.disconnect(),te=null},observe:oe=>{var ne;return(ne=re())==null?void 0:ne.observe(oe,{box:"border-box"})},unobserve:oe=>{var ne;return(ne=re())==null?void 0:ne.unobserve(oe)}}})(),this.range=null,this.setOptions=te=>{Object.entries(te).forEach(([re,oe])=>{typeof oe>"u"&&delete te[re]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:defaultKeyExtractor,rangeExtractor:defaultRangeExtractor,onChange:()=>{},measureElement,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",...te}},this.notify=te=>{var re,oe;(oe=(re=this.options).onChange)==null||oe.call(re,this,te)},this.maybeNotify=memo(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),te=>{this.notify(te)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(te=>te()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var te;const re=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==re){if(this.cleanup(),!re){this.maybeNotify();return}this.scrollElement=re,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((te=this.scrollElement)==null?void 0:te.window)??null,this.elementsCache.forEach(oe=>{this.observer.observe(oe)}),this.unsubs.push(this.options.observeElementRect(this,oe=>{this.scrollRect=oe,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(oe,ne)=>{this.scrollAdjustments=0,this.scrollDirection=ne?this.getScrollOffset()<oe?"forward":"backward":null,this.scrollOffset=oe,this.isScrolling=ne,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(te,re)=>{const oe=new Map,ne=new Map;for(let de=re-1;de>=0;de--){const ce=te[de];if(oe.has(ce.lane))continue;const ue=ne.get(ce.lane);if(ue==null||ce.end>ue.end?ne.set(ce.lane,ce):ce.end<ue.end&&oe.set(ce.lane,!0),oe.size===this.options.lanes)break}return ne.size===this.options.lanes?Array.from(ne.values()).sort((de,ce)=>de.end===ce.end?de.index-ce.index:de.end-ce.end)[0]:void 0},this.getMeasurementOptions=memo(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(te,re,oe,ne,de,ce,ue)=>(this.prevLanes!==void 0&&this.prevLanes!==ce&&(this.lanesChangedFlag=!0),this.prevLanes=ce,this.pendingMeasuredCacheIndexes=[],{count:te,paddingStart:re,scrollMargin:oe,getItemKey:ne,enabled:de,lanes:ce,laneAssignmentMode:ue}),{key:!1}),this.getMeasurements=memo(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:te,paddingStart:re,scrollMargin:oe,getItemKey:ne,enabled:de,lanes:ce,laneAssignmentMode:ue},pe)=>{if(!de)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>te)for(const ge of this.laneAssignments.keys())ge>=te&&this.laneAssignments.delete(ge);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(ge=>{this.itemSizeCache.set(ge.key,ge.size)}));const he=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===te&&(this.lanesSettling=!1);const fe=this.measurementsCache.slice(0,he),be=new Array(ce).fill(void 0);for(let ge=0;ge<he;ge++){const ve=fe[ge];ve&&(be[ve.lane]=ge)}for(let ge=he;ge<te;ge++){const ve=ne(ge),me=this.laneAssignments.get(ge);let _e,ye;const we=ue==="estimate"||pe.has(ve);if(me!==void 0&&this.options.lanes>1){_e=me;const Pe=be[_e],Ie=Pe!==void 0?fe[Pe]:void 0;ye=Ie?Ie.end+this.options.gap:re+oe}else{const Pe=this.options.lanes===1?fe[ge-1]:this.getFurthestMeasurement(fe,ge);ye=Pe?Pe.end+this.options.gap:re+oe,_e=Pe?Pe.lane:ge%this.options.lanes,this.options.lanes>1&&we&&this.laneAssignments.set(ge,_e)}const Ae=pe.get(ve),Se=typeof Ae=="number"?Ae:this.options.estimateSize(ge),Ce=ye+Se;fe[ge]={index:ge,start:ye,size:Se,end:Ce,key:ve,lane:_e},be[_e]=ge}return this.measurementsCache=fe,fe},{key:!1,debug:()=>this.options.debug}),this.calculateRange=memo(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(te,re,oe,ne)=>this.range=te.length>0&&re>0?calculateRange({measurements:te,outerSize:re,scrollOffset:oe,lanes:ne}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=memo(()=>{let te=null,re=null;const oe=this.calculateRange();return oe&&(te=oe.startIndex,re=oe.endIndex),this.maybeNotify.updateDeps([this.isScrolling,te,re]),[this.options.rangeExtractor,this.options.overscan,this.options.count,te,re]},(te,re,oe,ne,de)=>ne===null||de===null?[]:te({startIndex:ne,endIndex:de,overscan:re,count:oe}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=te=>{const re=this.options.indexAttribute,oe=te.getAttribute(re);return oe?parseInt(oe,10):(console.warn(`Missing attribute name '${re}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=te=>{var re;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const oe=this.scrollState.index??((re=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:re.index);if(oe!==void 0&&this.range){const ne=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),de=Math.max(0,oe-ne),ce=Math.min(this.options.count-1,oe+ne);return te>=de&&te<=ce}return!0},this.measureElement=te=>{if(!te){this.elementsCache.forEach((de,ce)=>{de.isConnected||(this.observer.unobserve(de),this.elementsCache.delete(ce))});return}const re=this.indexFromElement(te),oe=this.options.getItemKey(re),ne=this.elementsCache.get(oe);ne!==te&&(ne&&this.observer.unobserve(ne),this.observer.observe(te),this.elementsCache.set(oe,te)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(re)&&this.resizeItem(re,this.options.measureElement(te,void 0,this))},this.resizeItem=(te,re)=>{var oe;const ne=this.measurementsCache[te];if(!ne)return;const de=this.itemSizeCache.get(ne.key)??ne.size,ce=re-de;ce!==0&&(((oe=this.scrollState)==null?void 0:oe.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(ne,ce,this):ne.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=ce,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(ne.index),this.itemSizeCache=new Map(this.itemSizeCache.set(ne.key,re)),this.notify(!1))},this.getVirtualItems=memo(()=>[this.getVirtualIndexes(),this.getMeasurements()],(te,re)=>{const oe=[];for(let ne=0,de=te.length;ne<de;ne++){const ce=te[ne],ue=re[ce];oe.push(ue)}return oe},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=te=>{const re=this.getMeasurements();if(re.length!==0)return notUndefined(re[findNearestBinarySearch(0,re.length-1,oe=>notUndefined(re[oe]).start,te)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const te=this.scrollElement.document.documentElement;return this.options.horizontal?te.scrollWidth-this.scrollElement.innerWidth:te.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(te,re,oe=0)=>{if(!this.scrollElement)return 0;const ne=this.getSize(),de=this.getScrollOffset();re==="auto"&&(re=te>=de+ne?"end":"start"),re==="center"?te+=(oe-ne)/2:re==="end"&&(te-=ne);const ce=this.getMaxScrollOffset();return Math.max(Math.min(ce,te),0)},this.getOffsetForIndex=(te,re="auto")=>{te=Math.max(0,Math.min(te,this.options.count-1));const oe=this.getSize(),ne=this.getScrollOffset(),de=this.measurementsCache[te];if(!de)return;if(re==="auto")if(de.end>=ne+oe-this.options.scrollPaddingEnd)re="end";else if(de.start<=ne+this.options.scrollPaddingStart)re="start";else return[ne,re];if(re==="end"&&te===this.options.count-1)return[this.getMaxScrollOffset(),re];const ce=re==="end"?de.end+this.options.scrollPaddingEnd:de.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(ce,re,de.size),re]},this.scrollToOffset=(te,{align:re="start",behavior:oe="auto"}={})=>{const ne=this.getOffsetForAlignment(te,re),de=this.now();this.scrollState={index:null,align:re,behavior:oe,startedAt:de,lastTargetOffset:ne,stableFrames:0},this._scrollToOffset(ne,{adjustments:void 0,behavior:oe}),this.scheduleScrollReconcile()},this.scrollToIndex=(te,{align:re="auto",behavior:oe="auto"}={})=>{te=Math.max(0,Math.min(te,this.options.count-1));const ne=this.getOffsetForIndex(te,re);if(!ne)return;const[de,ce]=ne,ue=this.now();this.scrollState={index:te,align:ce,behavior:oe,startedAt:ue,lastTargetOffset:de,stableFrames:0},this._scrollToOffset(de,{adjustments:void 0,behavior:oe}),this.scheduleScrollReconcile()},this.scrollBy=(te,{behavior:re="auto"}={})=>{const oe=this.getScrollOffset()+te,ne=this.now();this.scrollState={index:null,align:"start",behavior:re,startedAt:ne,lastTargetOffset:oe,stableFrames:0},this._scrollToOffset(oe,{adjustments:void 0,behavior:re}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var te;const re=this.getMeasurements();let oe;if(re.length===0)oe=this.options.paddingStart;else if(this.options.lanes===1)oe=((te=re[re.length-1])==null?void 0:te.end)??0;else{const ne=Array(this.options.lanes).fill(null);let de=re.length-1;for(;de>=0&&ne.some(ce=>ce===null);){const ce=re[de];ne[ce.lane]===null&&(ne[ce.lane]=ce.end),de--}oe=Math.max(...ne.filter(ce=>ce!==null))}return Math.max(oe-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(te,{adjustments:re,behavior:oe})=>{this.options.scrollToFn(te,{behavior:oe,adjustments:re},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(W)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const re=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,oe=re?re[0]:this.scrollState.lastTargetOffset,ne=1,de=oe!==this.scrollState.lastTargetOffset;if(!de&&approxEqual(oe,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=ne){this.scrollState=null;return}}else this.scrollState.stableFrames=0,de&&(this.scrollState.lastTargetOffset=oe,this.scrollState.behavior="auto",this._scrollToOffset(oe,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const findNearestBinarySearch=(X,W,te,re)=>{for(;X<=W;){const oe=(X+W)/2|0,ne=te(oe);if(ne<re)X=oe+1;else if(ne>re)W=oe-1;else return oe}return X>0?X-1:0};function calculateRange({measurements:X,outerSize:W,scrollOffset:te,lanes:re}){const oe=X.length-1,ne=ue=>X[ue].start;if(X.length<=re)return{startIndex:0,endIndex:oe};let de=findNearestBinarySearch(0,oe,ne,te),ce=de;if(re===1)for(;ce<oe&&X[ce].end<te+W;)ce++;else if(re>1){const ue=Array(re).fill(0);for(;ce<oe&&ue.some(he=>he<te+W);){const he=X[ce];ue[he.lane]=he.end,ce++}const pe=Array(re).fill(te+W);for(;de>=0&&pe.some(he=>he>=te);){const he=X[de];pe[he.lane]=he.start,de--}de=Math.max(0,de-de%re),ce=Math.min(oe,ce+(re-1-ce%re))}return{startIndex:de,endIndex:ce}}const measureElementWithMargins=X=>{const W=X.getBoundingClientRect().height,te=window.getComputedStyle(X),re=Number.parseFloat(te.marginTop)||0,oe=Number.parseFloat(te.marginBottom)||0;return Math.round(W+re+oe)};class VirtualScroller{constructor(W){this._lastVisibleState={virtualItems:[],totalHeight:0},this._savedScrollTop=0,this._viewportWasHidden=!1,this._options=W}setup(W,te){return this._viewport=W,this._virtualizer=new Virtualizer({count:this._options.items.length,getScrollElement:()=>this._viewport??null,estimateSize:re=>this._options.estimateItemHeight(re),overscan:this._options.overscan??5,measureElement:re=>this._measureItem(re),observeElementRect,observeElementOffset,scrollToFn:elementScroll,onChange:()=>{this._trackViewportVisibility(),te(this.getState())}}),this._cleanup=this._virtualizer._didMount(),this._virtualizer._willUpdate(),te(this.getState()),()=>{this._cleanup?.()}}willUpdate(){this._virtualizer?._willUpdate()}updateItems(W,te){this._options.items=W,this._virtualizer&&(this._virtualizer.setOptions({...this._virtualizer.options,count:W.length}),this._virtualizer._willUpdate()),te&&te(this.getState())}measureElement(W){this._virtualizer?.measureElement(W)}scrollToIndex(W,te="smooth",re="auto"){this._virtualizer?.scrollToIndex(W,{behavior:te,align:re})}getOffsetForIndex(W){return this._virtualizer?.getOffsetForIndex(W,"start")?.[0]??0}_measureItem(W){if(W.getBoundingClientRect().height===0){const te=Number(W.getAttribute("data-index"));return this._virtualizer?.measurementsCache[te]?.size??this._options.estimateItemHeight(te)}return(this._options.measureElement??measureElementWithMargins)(W)}_trackViewportVisibility(){if(this._viewport){if(this._viewport.clientHeight===0){this._viewportWasHidden=!0;return}this._viewportWasHidden&&(this._viewportWasHidden=!1,this._viewport.scrollTop=this._savedScrollTop),this._savedScrollTop=this._viewport.scrollTop}}getState(){const W=!!(this._viewport&&this._viewport.clientHeight>0);return this._virtualizer&&W&&(this._lastVisibleState={virtualItems:this._virtualizer.getVirtualItems(),totalHeight:this._virtualizer.getTotalSize()}),this._lastVisibleState}}var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=(X,W,te,re)=>{for(var oe=re>1?void 0:re?__getOwnPropDesc$8(W,te):W,ne=X.length-1,de;ne>=0;ne--)(de=X[ne])&&(oe=(re?de(W,te,oe):de(oe))||oe);return re&&oe&&__defProp$8(W,te,oe),oe};let ActivityHistoryTimeline=class extends h$n{constructor(){super(...arguments),this._virtualScrollerState={virtualItems:[],totalHeight:0},this._canShowNoDataMessage=!1,this._components=new LazyComponentCache(()=>this.requestUpdate()),this._measureElement=X=>{X&&this._virtualScroller?.measureElement(X)},this._onScroll=()=>{}}render(){return ke$1`
8659
+ color: hsl(${Math.max(0,Math.min(120-120*_e,120))}deg 100% 31%);`,te?.key)}return te?.onChange&&!(ne&&te.skipInitialOnChange)&&te.onChange(oe),ne=!1,oe}return de.updateDeps=ce=>{re=ce},de}function notUndefined(X,W){if(X===void 0)throw new Error("Unexpected undefined");return X}const approxEqual=(X,W)=>Math.abs(X-W)<1.01,debounce=(X,W,te)=>{let re;return function(...oe){X.clearTimeout(re),re=X.setTimeout(()=>W.apply(this,oe),te)}},getRect=X=>{const{offsetWidth:W,offsetHeight:te}=X;return{width:W,height:te}},defaultKeyExtractor=X=>X,defaultRangeExtractor=X=>{const W=Math.max(X.startIndex-X.overscan,0),te=Math.min(X.endIndex+X.overscan,X.count-1),re=[];for(let oe=W;oe<=te;oe++)re.push(oe);return re},observeElementRect=(X,W)=>{const te=X.scrollElement;if(!te)return;const re=X.targetWindow;if(!re)return;const oe=de=>{const{width:ce,height:ue}=de;W({width:Math.round(ce),height:Math.round(ue)})};if(oe(getRect(te)),!re.ResizeObserver)return()=>{};const ne=new re.ResizeObserver(de=>{const ce=()=>{const ue=de[0];if(ue?.borderBoxSize){const pe=ue.borderBoxSize[0];if(pe){oe({width:pe.inlineSize,height:pe.blockSize});return}}oe(getRect(te))};X.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(ce):ce()});return ne.observe(te,{box:"border-box"}),()=>{ne.unobserve(te)}},addEventListenerOptions={passive:!0},supportsScrollend=typeof window>"u"?!0:"onscrollend"in window,observeElementOffset=(X,W)=>{const te=X.scrollElement;if(!te)return;const re=X.targetWindow;if(!re)return;let oe=0;const ne=X.options.useScrollendEvent&&supportsScrollend?()=>{}:debounce(re,()=>{W(oe,!1)},X.options.isScrollingResetDelay),de=he=>()=>{const{horizontal:fe,isRtl:be}=X.options;oe=fe?te.scrollLeft*(be&&-1||1):te.scrollTop,ne(),W(oe,he)},ce=de(!0),ue=de(!1);te.addEventListener("scroll",ce,addEventListenerOptions);const pe=X.options.useScrollendEvent&&supportsScrollend;return pe&&te.addEventListener("scrollend",ue,addEventListenerOptions),()=>{te.removeEventListener("scroll",ce),pe&&te.removeEventListener("scrollend",ue)}},measureElement=(X,W,te)=>{if(W?.borderBoxSize){const re=W.borderBoxSize[0];if(re)return Math.round(re[te.options.horizontal?"inlineSize":"blockSize"])}return X[te.options.horizontal?"offsetWidth":"offsetHeight"]},elementScroll=(X,{adjustments:W=0,behavior:te},re)=>{var oe,ne;const de=X+W;(ne=(oe=re.scrollElement)==null?void 0:oe.scrollTo)==null||ne.call(oe,{[re.options.horizontal?"left":"top"]:de,behavior:te})};class Virtualizer{constructor(W){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var te,re,oe;return((oe=(re=(te=this.targetWindow)==null?void 0:te.performance)==null?void 0:re.now)==null?void 0:oe.call(re))??Date.now()},this.observer=(()=>{let te=null;const re=()=>te||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:te=new this.targetWindow.ResizeObserver(oe=>{oe.forEach(ne=>{const de=()=>{const ce=ne.target,ue=this.indexFromElement(ce);if(!ce.isConnected){this.observer.unobserve(ce);return}this.shouldMeasureDuringScroll(ue)&&this.resizeItem(ue,this.options.measureElement(ce,ne,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(de):de()})}));return{disconnect:()=>{var oe;(oe=re())==null||oe.disconnect(),te=null},observe:oe=>{var ne;return(ne=re())==null?void 0:ne.observe(oe,{box:"border-box"})},unobserve:oe=>{var ne;return(ne=re())==null?void 0:ne.unobserve(oe)}}})(),this.range=null,this.setOptions=te=>{Object.entries(te).forEach(([re,oe])=>{typeof oe>"u"&&delete te[re]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:defaultKeyExtractor,rangeExtractor:defaultRangeExtractor,onChange:()=>{},measureElement,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",...te}},this.notify=te=>{var re,oe;(oe=(re=this.options).onChange)==null||oe.call(re,this,te)},this.maybeNotify=memo(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),te=>{this.notify(te)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(te=>te()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var te;const re=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==re){if(this.cleanup(),!re){this.maybeNotify();return}this.scrollElement=re,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((te=this.scrollElement)==null?void 0:te.window)??null,this.elementsCache.forEach(oe=>{this.observer.observe(oe)}),this.unsubs.push(this.options.observeElementRect(this,oe=>{this.scrollRect=oe,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(oe,ne)=>{this.scrollAdjustments=0,this.scrollDirection=ne?this.getScrollOffset()<oe?"forward":"backward":null,this.scrollOffset=oe,this.isScrolling=ne,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(te,re)=>{const oe=new Map,ne=new Map;for(let de=re-1;de>=0;de--){const ce=te[de];if(oe.has(ce.lane))continue;const ue=ne.get(ce.lane);if(ue==null||ce.end>ue.end?ne.set(ce.lane,ce):ce.end<ue.end&&oe.set(ce.lane,!0),oe.size===this.options.lanes)break}return ne.size===this.options.lanes?Array.from(ne.values()).sort((de,ce)=>de.end===ce.end?de.index-ce.index:de.end-ce.end)[0]:void 0},this.getMeasurementOptions=memo(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(te,re,oe,ne,de,ce,ue)=>(this.prevLanes!==void 0&&this.prevLanes!==ce&&(this.lanesChangedFlag=!0),this.prevLanes=ce,this.pendingMeasuredCacheIndexes=[],{count:te,paddingStart:re,scrollMargin:oe,getItemKey:ne,enabled:de,lanes:ce,laneAssignmentMode:ue}),{key:!1}),this.getMeasurements=memo(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:te,paddingStart:re,scrollMargin:oe,getItemKey:ne,enabled:de,lanes:ce,laneAssignmentMode:ue},pe)=>{if(!de)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>te)for(const ge of this.laneAssignments.keys())ge>=te&&this.laneAssignments.delete(ge);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(ge=>{this.itemSizeCache.set(ge.key,ge.size)}));const he=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===te&&(this.lanesSettling=!1);const fe=this.measurementsCache.slice(0,he),be=new Array(ce).fill(void 0);for(let ge=0;ge<he;ge++){const ve=fe[ge];ve&&(be[ve.lane]=ge)}for(let ge=he;ge<te;ge++){const ve=ne(ge),me=this.laneAssignments.get(ge);let _e,ye;const we=ue==="estimate"||pe.has(ve);if(me!==void 0&&this.options.lanes>1){_e=me;const Pe=be[_e],Ie=Pe!==void 0?fe[Pe]:void 0;ye=Ie?Ie.end+this.options.gap:re+oe}else{const Pe=this.options.lanes===1?fe[ge-1]:this.getFurthestMeasurement(fe,ge);ye=Pe?Pe.end+this.options.gap:re+oe,_e=Pe?Pe.lane:ge%this.options.lanes,this.options.lanes>1&&we&&this.laneAssignments.set(ge,_e)}const Ae=pe.get(ve),Se=typeof Ae=="number"?Ae:this.options.estimateSize(ge),Ce=ye+Se;fe[ge]={index:ge,start:ye,size:Se,end:Ce,key:ve,lane:_e},be[_e]=ge}return this.measurementsCache=fe,fe},{key:!1,debug:()=>this.options.debug}),this.calculateRange=memo(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(te,re,oe,ne)=>this.range=te.length>0&&re>0?calculateRange({measurements:te,outerSize:re,scrollOffset:oe,lanes:ne}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=memo(()=>{let te=null,re=null;const oe=this.calculateRange();return oe&&(te=oe.startIndex,re=oe.endIndex),this.maybeNotify.updateDeps([this.isScrolling,te,re]),[this.options.rangeExtractor,this.options.overscan,this.options.count,te,re]},(te,re,oe,ne,de)=>ne===null||de===null?[]:te({startIndex:ne,endIndex:de,overscan:re,count:oe}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=te=>{const re=this.options.indexAttribute,oe=te.getAttribute(re);return oe?parseInt(oe,10):(console.warn(`Missing attribute name '${re}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=te=>{var re;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const oe=this.scrollState.index??((re=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:re.index);if(oe!==void 0&&this.range){const ne=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),de=Math.max(0,oe-ne),ce=Math.min(this.options.count-1,oe+ne);return te>=de&&te<=ce}return!0},this.measureElement=te=>{if(!te){this.elementsCache.forEach((de,ce)=>{de.isConnected||(this.observer.unobserve(de),this.elementsCache.delete(ce))});return}const re=this.indexFromElement(te),oe=this.options.getItemKey(re),ne=this.elementsCache.get(oe);ne!==te&&(ne&&this.observer.unobserve(ne),this.observer.observe(te),this.elementsCache.set(oe,te)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(re)&&this.resizeItem(re,this.options.measureElement(te,void 0,this))},this.resizeItem=(te,re)=>{var oe;const ne=this.measurementsCache[te];if(!ne)return;const de=this.itemSizeCache.get(ne.key)??ne.size,ce=re-de;ce!==0&&(((oe=this.scrollState)==null?void 0:oe.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(ne,ce,this):ne.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=ce,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(ne.index),this.itemSizeCache=new Map(this.itemSizeCache.set(ne.key,re)),this.notify(!1))},this.getVirtualItems=memo(()=>[this.getVirtualIndexes(),this.getMeasurements()],(te,re)=>{const oe=[];for(let ne=0,de=te.length;ne<de;ne++){const ce=te[ne],ue=re[ce];oe.push(ue)}return oe},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=te=>{const re=this.getMeasurements();if(re.length!==0)return notUndefined(re[findNearestBinarySearch(0,re.length-1,oe=>notUndefined(re[oe]).start,te)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const te=this.scrollElement.document.documentElement;return this.options.horizontal?te.scrollWidth-this.scrollElement.innerWidth:te.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(te,re,oe=0)=>{if(!this.scrollElement)return 0;const ne=this.getSize(),de=this.getScrollOffset();re==="auto"&&(re=te>=de+ne?"end":"start"),re==="center"?te+=(oe-ne)/2:re==="end"&&(te-=ne);const ce=this.getMaxScrollOffset();return Math.max(Math.min(ce,te),0)},this.getOffsetForIndex=(te,re="auto")=>{te=Math.max(0,Math.min(te,this.options.count-1));const oe=this.getSize(),ne=this.getScrollOffset(),de=this.measurementsCache[te];if(!de)return;if(re==="auto")if(de.end>=ne+oe-this.options.scrollPaddingEnd)re="end";else if(de.start<=ne+this.options.scrollPaddingStart)re="start";else return[ne,re];if(re==="end"&&te===this.options.count-1)return[this.getMaxScrollOffset(),re];const ce=re==="end"?de.end+this.options.scrollPaddingEnd:de.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(ce,re,de.size),re]},this.scrollToOffset=(te,{align:re="start",behavior:oe="auto"}={})=>{const ne=this.getOffsetForAlignment(te,re),de=this.now();this.scrollState={index:null,align:re,behavior:oe,startedAt:de,lastTargetOffset:ne,stableFrames:0},this._scrollToOffset(ne,{adjustments:void 0,behavior:oe}),this.scheduleScrollReconcile()},this.scrollToIndex=(te,{align:re="auto",behavior:oe="auto"}={})=>{te=Math.max(0,Math.min(te,this.options.count-1));const ne=this.getOffsetForIndex(te,re);if(!ne)return;const[de,ce]=ne,ue=this.now();this.scrollState={index:te,align:ce,behavior:oe,startedAt:ue,lastTargetOffset:de,stableFrames:0},this._scrollToOffset(de,{adjustments:void 0,behavior:oe}),this.scheduleScrollReconcile()},this.scrollBy=(te,{behavior:re="auto"}={})=>{const oe=this.getScrollOffset()+te,ne=this.now();this.scrollState={index:null,align:"start",behavior:re,startedAt:ne,lastTargetOffset:oe,stableFrames:0},this._scrollToOffset(oe,{adjustments:void 0,behavior:re}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var te;const re=this.getMeasurements();let oe;if(re.length===0)oe=this.options.paddingStart;else if(this.options.lanes===1)oe=((te=re[re.length-1])==null?void 0:te.end)??0;else{const ne=Array(this.options.lanes).fill(null);let de=re.length-1;for(;de>=0&&ne.some(ce=>ce===null);){const ce=re[de];ne[ce.lane]===null&&(ne[ce.lane]=ce.end),de--}oe=Math.max(...ne.filter(ce=>ce!==null))}return Math.max(oe-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(te,{adjustments:re,behavior:oe})=>{this.options.scrollToFn(te,{behavior:oe,adjustments:re},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(W)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const re=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,oe=re?re[0]:this.scrollState.lastTargetOffset,ne=1,de=oe!==this.scrollState.lastTargetOffset;if(!de&&approxEqual(oe,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=ne){this.scrollState=null;return}}else this.scrollState.stableFrames=0,de&&(this.scrollState.lastTargetOffset=oe,this.scrollState.behavior="auto",this._scrollToOffset(oe,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const findNearestBinarySearch=(X,W,te,re)=>{for(;X<=W;){const oe=(X+W)/2|0,ne=te(oe);if(ne<re)X=oe+1;else if(ne>re)W=oe-1;else return oe}return X>0?X-1:0};function calculateRange({measurements:X,outerSize:W,scrollOffset:te,lanes:re}){const oe=X.length-1,ne=ue=>X[ue].start;if(X.length<=re)return{startIndex:0,endIndex:oe};let de=findNearestBinarySearch(0,oe,ne,te),ce=de;if(re===1)for(;ce<oe&&X[ce].end<te+W;)ce++;else if(re>1){const ue=Array(re).fill(0);for(;ce<oe&&ue.some(he=>he<te+W);){const he=X[ce];ue[he.lane]=he.end,ce++}const pe=Array(re).fill(te+W);for(;de>=0&&pe.some(he=>he>=te);){const he=X[de];pe[he.lane]=he.start,de--}de=Math.max(0,de-de%re),ce=Math.min(oe,ce+(re-1-ce%re))}return{startIndex:de,endIndex:ce}}const measureElementWithMargins=X=>{const W=X.getBoundingClientRect().height,te=window.getComputedStyle(X),re=Number.parseFloat(te.marginTop)||0,oe=Number.parseFloat(te.marginBottom)||0;return Math.round(W+re+oe)},MEASUREMENT_TOLERANCE_PX=2;class VirtualScroller{constructor(W){this._lastVisibleState={virtualItems:[],totalHeight:0},this._savedScrollTop=0,this._viewportWasHidden=!1,this._pendingMeasurements=new Set,this._options=W}setup(W,te){return this._viewport=W,this._virtualizer=new Virtualizer({count:this._options.items.length,getScrollElement:()=>this._viewport??null,estimateSize:re=>this._options.estimateItemHeight(re),overscan:this._options.overscan??5,measureElement:re=>this._measureItem(re),observeElementRect,observeElementOffset,scrollToFn:elementScroll,onChange:()=>{this._trackViewportVisibility(),te(this.getState())}}),this._cleanup=this._virtualizer._didMount(),this._virtualizer._willUpdate(),te(this.getState()),()=>{this._cancelPendingMeasurements(),this._cleanup?.()}}willUpdate(){this._virtualizer?._willUpdate()}updateItems(W,te){this._options.items=W,this._virtualizer&&(this._virtualizer.setOptions({...this._virtualizer.options,count:W.length}),this._virtualizer._willUpdate()),te&&te(this.getState())}measureElement(W){this._pendingMeasurements.add(W),this._measurementFlushHandle==null&&(this._measurementFlushHandle=requestAnimationFrame(()=>{this._measurementFlushHandle=void 0;const te=[...this._pendingMeasurements];this._pendingMeasurements.clear();for(const re of te)re.isConnected&&this._virtualizer?.measureElement(re)}))}_cancelPendingMeasurements(){this._measurementFlushHandle!=null&&(cancelAnimationFrame(this._measurementFlushHandle),this._measurementFlushHandle=void 0),this._pendingMeasurements.clear()}scrollToIndex(W,te="smooth",re="auto"){this._virtualizer?.scrollToIndex(W,{behavior:te,align:re})}getOffsetForIndex(W){return this._virtualizer?.getOffsetForIndex(W,"start")?.[0]??0}_measureItem(W){const te=Number(W.getAttribute("data-index")),re=this._virtualizer?.measurementsCache[te]?.size;if(W.getBoundingClientRect().height===0)return re??this._options.estimateItemHeight(te);const oe=(this._options.measureElement??measureElementWithMargins)(W);return re!=null&&Math.abs(oe-re)<=MEASUREMENT_TOLERANCE_PX?re:oe}_trackViewportVisibility(){if(this._viewport){if(this._viewport.clientHeight===0){this._viewportWasHidden=!0;return}this._viewportWasHidden&&(this._viewportWasHidden=!1,this._viewport.scrollTop=this._savedScrollTop),this._savedScrollTop=this._viewport.scrollTop}}getState(){const W=!!(this._viewport&&this._viewport.clientHeight>0);return this._virtualizer&&W&&(this._lastVisibleState={virtualItems:this._virtualizer.getVirtualItems(),totalHeight:this._virtualizer.getTotalSize()}),this._lastVisibleState}}var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=(X,W,te,re)=>{for(var oe=re>1?void 0:re?__getOwnPropDesc$8(W,te):W,ne=X.length-1,de;ne>=0;ne--)(de=X[ne])&&(oe=(re?de(W,te,oe):de(oe))||oe);return re&&oe&&__defProp$8(W,te,oe),oe};let ActivityHistoryTimeline=class extends h$n{constructor(){super(...arguments),this._virtualScrollerState={virtualItems:[],totalHeight:0},this._canShowNoDataMessage=!1,this._components=new LazyComponentCache(()=>this.requestUpdate()),this._measureElement=X=>{X&&this._virtualScroller?.measureElement(X)},this._onScroll=()=>{}}render(){return ke$1`
8660
8660
  ${template$8(this)}
8661
8661
  `}connectedCallback(){super.connectedCallback(),this._noDataMessageTimer=setTimeout(()=>{this._canShowNoDataMessage=!0},2e3)}disconnectedCallback(){super.disconnectedCallback(),this._cleanupVirtualScroller?.(),this._noDataMessageTimer&&clearTimeout(this._noDataMessageTimer),this._components.clear()}async updated(X){this._virtualScroller?.willUpdate(),X.has("historyGroups")&&this.historyGroups?.length&&(this._updateVirtualScroller(),await this.updateComplete),this._viewport&&!this._virtualScroller&&setTimeout(()=>this._setupVirtualScroller(),0),this._viewport&&this._virtualScroller&&this._viewport!==this._lastViewportElement&&(this._cleanupVirtualScroller?.(),this._virtualScroller=void 0,setTimeout(()=>this._setupVirtualScroller(),0)),this._viewport&&(this._lastViewportElement=this._viewport)}componentFor(X){return this._components.resolve(X)??D$4}highlightMatch(X,W){if(!this.searchString||this.searchString.length<2)return X;const te=new RegExp(`(${W})`,"gi");return X.replace(te,'<span class="highlight">$1</span>')}highlighted(X){return X?ae(this.highlightMatch(X,this.searchString)):null}_scrollIntoDate(X){if(!this._virtualScroller||!this._viewport)return;const W=this.historyGroups??[];if(!W.length)return;const te=startOfDay(X).getTime(),re=ne=>startOfDay(getGroupMostRecentDate(ne)).getTime();let oe=W.findIndex(ne=>re(ne)<=te);oe===-1&&(oe=W.length-1),this._viewport.scrollTop=this._virtualScroller.getOffsetForIndex(oe),this._alignGroupTop(oe,0)}_alignGroupTop(X,W){W>=4||!this._viewport||requestAnimationFrame(()=>{const te=this._viewport;if(!te)return;const re=this.renderRoot?.querySelector(`.visit[data-index="${X}"]`);if(!re){this._alignGroupTop(X,W+1);return}const oe=Math.round(re.getBoundingClientRect().top-te.getBoundingClientRect().top);Math.abs(oe)<=1||(te.scrollTop+=oe,this._alignGroupTop(X,W+1))})}_setupVirtualScroller(){!this._viewport||this._virtualScroller||(this._virtualScroller=new VirtualScroller({items:this.historyGroups||[],overscan:8,estimateItemHeight:X=>estimateGroupHeight(this.historyGroups?.[X])}),this._cleanupVirtualScroller=this._virtualScroller.setup(this._viewport,X=>{this._virtualScrollerState=X,this.requestUpdate(),this.api?.broker&&this.searchString&&this.api.broker.publish(this.api.broker.events.activityHistory.searched,{searchQuery:this.searchString})}),this._virtualScrollerState=this._virtualScroller.getState())}_updateVirtualScroller(){!this._virtualScroller||!this.historyGroups?.length||(this._virtualScroller.updateItems(this.historyGroups,X=>{this._virtualScrollerState=X,this.requestUpdate(),this.api?.broker&&this.searchString&&this.api.broker.publish(this.api.broker.events.activityHistory.searched,{searchQuery:this.searchString})}),this._virtualScrollerState=this._virtualScroller.getState())}get _visibleRows(){return this._virtualScrollerState.virtualItems.map(X=>({index:X.index,group:this.historyGroups?.[X.index]})).filter(X=>!!X.group)}get _containerOffset(){return this._virtualScrollerState.virtualItems[0]?.start??0}get _totalHeight(){return this._virtualScrollerState.totalHeight}};ActivityHistoryTimeline.styles=i$R`
8662
8662
  ${r$L(styles$9)}