cloud-ide-layout 1.0.185 → 1.0.187

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.
Files changed (13) hide show
  1. package/fesm2022/{cloud-ide-layout-cloud-ide-layout-BvT1pY8z.mjs → cloud-ide-layout-cloud-ide-layout-CSA4WioJ.mjs} +179 -45
  2. package/fesm2022/cloud-ide-layout-cloud-ide-layout-CSA4WioJ.mjs.map +1 -0
  3. package/fesm2022/{cloud-ide-layout-dashboard-manager.component-DYixwEQa.mjs → cloud-ide-layout-dashboard-manager.component-DM2Mo6P7.mjs} +2 -2
  4. package/fesm2022/{cloud-ide-layout-dashboard-manager.component-DYixwEQa.mjs.map → cloud-ide-layout-dashboard-manager.component-DM2Mo6P7.mjs.map} +1 -1
  5. package/fesm2022/{cloud-ide-layout-drawer-theme.component-yixL0kiC.mjs → cloud-ide-layout-drawer-theme.component-BtIN5K29.mjs} +2 -2
  6. package/fesm2022/{cloud-ide-layout-drawer-theme.component-yixL0kiC.mjs.map → cloud-ide-layout-drawer-theme.component-BtIN5K29.mjs.map} +1 -1
  7. package/fesm2022/{cloud-ide-layout-home-wrapper.component-DoPrXEV9.mjs → cloud-ide-layout-home-wrapper.component-uqBqyF6Z.mjs} +2 -2
  8. package/fesm2022/{cloud-ide-layout-home-wrapper.component-DoPrXEV9.mjs.map → cloud-ide-layout-home-wrapper.component-uqBqyF6Z.mjs.map} +1 -1
  9. package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-Cg9oFVf0.mjs → cloud-ide-layout-sidedrawer-notes.component-D_LnurNk.mjs} +2 -2
  10. package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-Cg9oFVf0.mjs.map → cloud-ide-layout-sidedrawer-notes.component-D_LnurNk.mjs.map} +1 -1
  11. package/fesm2022/cloud-ide-layout.mjs +1 -1
  12. package/package.json +1 -1
  13. package/fesm2022/cloud-ide-layout-cloud-ide-layout-BvT1pY8z.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, inject, signal, computed, effect, DestroyRef, Component, Injector, runInInjectionContext, ViewChild, ElementRef, HostListener, ChangeDetectionStrategy, ViewContainerRef, ViewChildren, viewChild, input, InjectionToken, PLATFORM_ID, output } from '@angular/core';
2
+ import { Injectable, inject, signal, computed, effect, DestroyRef, Component, Injector, runInInjectionContext, ViewChild, ElementRef, HostListener, ChangeDetectionStrategy, ComponentRef, ViewContainerRef, ViewChildren, viewChild, input, InjectionToken, PLATFORM_ID, output } from '@angular/core';
3
3
  import { HttpClient } from '@angular/common/http';
4
4
  import { cidePath, hostManagerRoutesUrl, coreRoutesUrl, commonRoutesUrl, designConfigRoutesUrl, generateStringFromObject } from 'cloud-ide-lms-model';
5
5
  import { BehaviorSubject, Observable, throwError, of, interval, take as take$1, firstValueFrom } from 'rxjs';
@@ -4716,7 +4716,19 @@ class CustomRouteReuseStrategy {
4716
4716
  if (!pathKey || !this.storedRoutes[pathKey]) {
4717
4717
  return null;
4718
4718
  }
4719
- return this.storedRoutes[pathKey];
4719
+ const handle = this.storedRoutes[pathKey];
4720
+ // Verify the handle is still valid (not destroyed)
4721
+ // If the component was destroyed, remove it from stored routes
4722
+ if (handle && typeof handle === 'object') {
4723
+ const handleAny = handle;
4724
+ // Check if ComponentRef is destroyed
4725
+ if (handleAny.destroyed === true || (handleAny.hostView && handleAny.hostView.destroyed)) {
4726
+ console.log(`⚠️ Stored route handle for ${pathKey} is already destroyed, removing from cache`);
4727
+ delete this.storedRoutes[pathKey];
4728
+ return null;
4729
+ }
4730
+ }
4731
+ return handle;
4720
4732
  }
4721
4733
  // Determines if a route should be reused.
4722
4734
  shouldReuseRoute(future, curr) {
@@ -4731,34 +4743,90 @@ class CustomRouteReuseStrategy {
4731
4743
  // Properly destroy the component instance to prevent memory leaks
4732
4744
  // and ensure clean state when the route is reopened
4733
4745
  try {
4734
- // The handle contains the component instance and view container
4735
- // We need to destroy it properly to clean up resources
4736
- if (handle && typeof handle === 'object' && 'componentRef' in handle) {
4737
- const componentRef = handle.componentRef;
4738
- if (componentRef && typeof componentRef.destroy === 'function') {
4746
+ // In Angular, DetachedRouteHandle is typically a ComponentRef
4747
+ // We need to destroy it to remove the component from DOM and clean up resources
4748
+ // Method 1: Check if handle is a ComponentRef directly
4749
+ if (handle && typeof handle.destroy === 'function') {
4750
+ const componentRef = handle;
4751
+ // Verify it has hostView (ComponentRef signature)
4752
+ if (componentRef.hostView || componentRef.location) {
4753
+ console.log(`🗑️ Destroying component instance (ComponentRef) for route: ${pathKey}`);
4739
4754
  componentRef.destroy();
4740
4755
  }
4741
4756
  }
4742
- // Also destroy the view container if it exists
4743
- if (handle && typeof handle === 'object' && 'viewContainerRef' in handle) {
4744
- const viewContainerRef = handle.viewContainerRef;
4745
- if (viewContainerRef && typeof viewContainerRef.clear === 'function') {
4746
- viewContainerRef.clear();
4757
+ // Method 2: Check if handle is a ViewContainerRef
4758
+ if (handle && typeof handle.clear === 'function' && typeof handle.length === 'number') {
4759
+ const viewContainerRef = handle;
4760
+ console.log(`🗑️ Clearing view container for route: ${pathKey}`);
4761
+ viewContainerRef.clear();
4762
+ }
4763
+ // Method 3: Check if handle is an object with nested ComponentRef
4764
+ if (handle && typeof handle === 'object' && !(handle instanceof ComponentRef) && !(handle instanceof ViewContainerRef)) {
4765
+ const handleObj = handle;
4766
+ // Try to find and destroy ComponentRef from various possible properties
4767
+ let componentRef = null;
4768
+ // Check common property names
4769
+ if (handleObj.componentRef && typeof handleObj.componentRef.destroy === 'function') {
4770
+ componentRef = handleObj.componentRef;
4771
+ }
4772
+ else if (handleObj.component && typeof handleObj.component.destroy === 'function') {
4773
+ componentRef = handleObj.component;
4774
+ }
4775
+ else if (handleObj.context && typeof handleObj.context.destroy === 'function') {
4776
+ componentRef = handleObj.context;
4777
+ }
4778
+ else if (handleObj._componentRef && typeof handleObj._componentRef.destroy === 'function') {
4779
+ componentRef = handleObj._componentRef;
4780
+ }
4781
+ if (componentRef) {
4782
+ console.log(`🗑️ Destroying component instance from handle object for route: ${pathKey}`);
4783
+ componentRef.destroy();
4784
+ }
4785
+ // Also try to clear view container if it exists
4786
+ if (handleObj.viewContainerRef && typeof handleObj.viewContainerRef.clear === 'function') {
4787
+ console.log(`🗑️ Clearing view container from handle object for route: ${pathKey}`);
4788
+ handleObj.viewContainerRef.clear();
4789
+ }
4790
+ // Try to destroy any nested components
4791
+ if (handleObj.components && Array.isArray(handleObj.components)) {
4792
+ handleObj.components.forEach((comp, index) => {
4793
+ if (comp && typeof comp.destroy === 'function') {
4794
+ console.log(`🗑️ Destroying nested component ${index} for route: ${pathKey}`);
4795
+ comp.destroy();
4796
+ }
4797
+ });
4747
4798
  }
4748
4799
  }
4749
4800
  }
4750
4801
  catch (error) {
4751
- console.warn('Error destroying route handle:', error);
4802
+ console.warn(`⚠️ Error destroying route handle for ${pathKey}:`, error);
4752
4803
  }
4753
- // Remove from stored routes
4804
+ // Remove from stored routes - this ensures shouldAttach will return false for this route
4754
4805
  delete this.storedRoutes[pathKey];
4806
+ console.log(`✅ Cleared stored route: ${pathKey} (removed from storedRoutes map)`);
4807
+ }
4808
+ else {
4809
+ console.log(`ℹ️ No stored route found for: ${pathKey}`);
4755
4810
  }
4756
4811
  }
4757
4812
  // Clears all stored routes (useful for cleanup)
4813
+ // This method ensures all component instances are destroyed and removed from DOM
4758
4814
  clearAllStoredRoutes() {
4759
- Object.keys(this.storedRoutes).forEach(pathKey => {
4815
+ const routeKeys = Object.keys(this.storedRoutes);
4816
+ console.log(`🧹 [RouteReuseStrategy] Clearing ${routeKeys.length} stored route(s) to remove components from DOM`);
4817
+ routeKeys.forEach(pathKey => {
4760
4818
  this.clearStoredRoute(pathKey);
4761
4819
  });
4820
+ // Double-check that all routes are cleared
4821
+ const remainingRoutes = Object.keys(this.storedRoutes).length;
4822
+ if (remainingRoutes > 0) {
4823
+ console.warn(`⚠️ [RouteReuseStrategy] ${remainingRoutes} route(s) still remain after clearing. Force clearing...`);
4824
+ // Force clear any remaining routes
4825
+ Object.keys(this.storedRoutes).forEach(pathKey => {
4826
+ delete this.storedRoutes[pathKey];
4827
+ });
4828
+ }
4829
+ console.log(`✅ [RouteReuseStrategy] All stored routes cleared. Components should be removed from DOM.`);
4762
4830
  }
4763
4831
  // Gets the count of stored routes (useful for debugging)
4764
4832
  getStoredRoutesCount() {
@@ -4904,6 +4972,8 @@ class CideLytRequestService {
4904
4972
  tabStateService = inject(TabStateService);
4905
4973
  sidedrawerService = inject(CideLytSidedrawerService);
4906
4974
  sharedService = inject(CideLytSharedService);
4975
+ floatingContainerService = inject(CideEleFloatingContainerService);
4976
+ appStateService = inject(AppStateService);
4907
4977
  constructor() {
4908
4978
  // Initialize router
4909
4979
  this.router = inject(Router);
@@ -4912,6 +4982,12 @@ class CideLytRequestService {
4912
4982
  this.sharedService.registerTabManagement(this.handleRouteBasedTabManagement.bind(this));
4913
4983
  // Register request visibility callback
4914
4984
  this.sharedService.registerRequestVisibility(this.handleRequestVisibility.bind(this));
4985
+ // Register entity change handler with AppStateService to close tabs when entity changes
4986
+ // This is safe because AppStateService no longer imports CideLytRequestService
4987
+ this.appStateService.registerEntityChangeHandler((entity) => {
4988
+ console.log('🏢 [RequestService] Entity changed, closing all tabs:', entity?._id);
4989
+ this.closeAllTabs();
4990
+ });
4915
4991
  }
4916
4992
  /**
4917
4993
  * Handle request visibility changes from shared service
@@ -4964,16 +5040,8 @@ class CideLytRequestService {
4964
5040
  const id = this.generateId();
4965
5041
  const currentTabs = this.tabsSignal();
4966
5042
  console.log('currentTabs', currentTabs, route);
4967
- // Check if a tab with the same route and params already exists
4968
- const existingTab = currentTabs.find((tab) => {
4969
- const paramsMatch = JSON.stringify(tab.params || {}) === JSON.stringify(params || {});
4970
- return tab.route === route && paramsMatch;
4971
- });
4972
- console.log('existingTab', existingTab);
4973
- if (existingTab) {
4974
- this.activateTab(existingTab.id);
4975
- return existingTab.id;
4976
- }
5043
+ // Tab reuse disabled - always create new tab
5044
+ // Removed existing tab check to prevent tab reuse
4977
5045
  // Create new tab
4978
5046
  const newTab = {
4979
5047
  id,
@@ -5012,21 +5080,10 @@ class CideLytRequestService {
5012
5080
  console.warn('⚠️ Tab not found:', tabId);
5013
5081
  return;
5014
5082
  }
5015
- // Before navigating, ensure the route is fresh by clearing any cached state
5016
- // This prevents old component data from persisting when reopening a tab
5017
- if (this.routeReuseStrategy instanceof CustomRouteReuseStrategy) {
5018
- let pathKey = tabToActivate.route.startsWith('/') ? tabToActivate.route.substring(1) : tabToActivate.route;
5019
- if (tabToActivate.params && Object.keys(tabToActivate.params).length > 0) {
5020
- const queryParamsString = Object.keys(tabToActivate.params)
5021
- .sort()
5022
- .map(key => `${key}=${tabToActivate.params[key]}`)
5023
- .join('&');
5024
- pathKey += '?' + queryParamsString;
5025
- }
5026
- // Clear any cached route to ensure fresh component state
5027
- this.routeReuseStrategy.clearStoredRoute(pathKey);
5028
- console.log(`🔄 REQUEST SERVICE: Cleared cached route ${pathKey} before activating tab`);
5029
- }
5083
+ // DO NOT clear the route when activating a tab!
5084
+ // We want to REUSE the stored component to preserve state (form data, scroll position, etc.)
5085
+ // Route clearing should ONLY happen when explicitly closing a tab (see closeTab method)
5086
+ console.log(`🔄 REQUEST SERVICE: Activating tab "${tabToActivate.title}" - will reuse existing component state`);
5030
5087
  // Update tabs: deactivate all, then activate the target
5031
5088
  const updatedTabs = tabs.map(tab => ({
5032
5089
  ...tab,
@@ -5055,7 +5112,11 @@ class CideLytRequestService {
5055
5112
  this.tabStateService.removeTab(id);
5056
5113
  // Clear stored route from strategy and ensure proper component cleanup
5057
5114
  if (this.routeReuseStrategy instanceof CustomRouteReuseStrategy) {
5115
+ // Generate pathKey in the same format as CustomRouteReuseStrategy.getPathKey()
5116
+ // Remove leading slash to match the format used by getPathKey
5058
5117
  let pathKey = tabToClose.route.startsWith('/') ? tabToClose.route.substring(1) : tabToClose.route;
5118
+ // Only add query params if the route is marked for reuse (matching getPathKey logic)
5119
+ // But we'll try to clear with both formats to be safe
5059
5120
  if (tabToClose.params && Object.keys(tabToClose.params).length > 0) {
5060
5121
  const queryParamsString = Object.keys(tabToClose.params)
5061
5122
  .sort()
@@ -5065,9 +5126,21 @@ class CideLytRequestService {
5065
5126
  }
5066
5127
  // Clear the stored route and destroy the component instance
5067
5128
  this.routeReuseStrategy.clearStoredRoute(pathKey);
5129
+ // Also try clearing without query params in case the route wasn't marked for reuse
5130
+ // This ensures we catch all possible pathKey variations
5131
+ const pathKeyWithoutParams = tabToClose.route.startsWith('/') ? tabToClose.route.substring(1) : tabToClose.route;
5132
+ if (pathKeyWithoutParams !== pathKey) {
5133
+ this.routeReuseStrategy.clearStoredRoute(pathKeyWithoutParams);
5134
+ }
5068
5135
  // Force a route refresh to ensure clean component state
5069
5136
  // This prevents old data from persisting when the same route is reopened
5070
5137
  console.log(`🧹 REQUEST SERVICE: Cleared stored route for ${pathKey} and destroyed component instance`);
5138
+ // If this was the active tab, navigate away to ensure component is removed from DOM
5139
+ if (wasActive) {
5140
+ // The navigation to the new active tab will happen below, which will properly clear the router outlet
5141
+ // But we also want to ensure the component is removed immediately
5142
+ console.log(`🧹 REQUEST SERVICE: Active tab closed, component will be removed on navigation`);
5143
+ }
5071
5144
  }
5072
5145
  // Remove the tab from this service's list
5073
5146
  const newTabs = currentTabs.filter((tab) => tab.id !== id);
@@ -5093,17 +5166,78 @@ class CideLytRequestService {
5093
5166
  this.tabStateService.setActiveTab(null);
5094
5167
  // Clear sidedrawer as no tabs are open
5095
5168
  this.sidedrawerService.updateDrawerItems(undefined);
5169
+ // Redirect to home screen when all tabs are closed
5170
+ // Use replaceUrl to prevent back navigation to closed tabs and ensure clean state
5171
+ this.router.navigate(['/control-panel'], { replaceUrl: true });
5096
5172
  }
5097
5173
  this.tabsSignal.set(newTabs);
5098
5174
  // Request wrapper visibility is now controlled by layout configuration
5099
5175
  // The wrapper will be hidden/shown based on sytm_layout_request.status in setPageData
5100
5176
  }
5177
+ /**
5178
+ * Close all tabs and navigate to home
5179
+ * This is used when entity changes to ensure all components are destroyed and refreshed
5180
+ * IMPORTANT: This method ensures all tab components are removed from DOM by:
5181
+ * 1. Clearing all stored routes from route reuse strategy (destroys component instances)
5182
+ * 2. Clearing all tabs from TabStateService
5183
+ * 3. Navigating to home to clear router outlet
5184
+ */
5185
+ closeAllTabs() {
5186
+ console.log('🧹 REQUEST SERVICE: Closing all tabs due to entity change');
5187
+ const currentTabs = this.tabsSignal();
5188
+ // Close all floating containers first
5189
+ this.floatingContainerService.hideAll();
5190
+ console.log('🧹 REQUEST SERVICE: Closed all floating containers');
5191
+ // Clear all tabs from TabStateService first
5192
+ currentTabs.forEach(tab => {
5193
+ this.tabStateService.removeTab(tab.id);
5194
+ });
5195
+ // Clear ALL stored routes from route reuse strategy
5196
+ // This ensures all component instances are destroyed and removed from DOM
5197
+ if (this.routeReuseStrategy instanceof CustomRouteReuseStrategy) {
5198
+ console.log('🧹 REQUEST SERVICE: Clearing all stored routes to remove components from DOM');
5199
+ this.routeReuseStrategy.clearAllStoredRoutes();
5200
+ console.log('✅ REQUEST SERVICE: All stored routes cleared, components destroyed');
5201
+ }
5202
+ // Clear all tabs from signals
5203
+ this.tabsSignal.set([]);
5204
+ this.activeTabIdSignal.set(null);
5205
+ this.tabStateService.setActiveTab(null);
5206
+ // Clear sidedrawer
5207
+ this.sidedrawerService.updateDrawerItems(undefined);
5208
+ // Navigate to home - this ensures router outlet is cleared and any remaining components are removed
5209
+ // Use replaceUrl to prevent back navigation to closed tabs
5210
+ this.router.navigate(['/control-panel'], { replaceUrl: true });
5211
+ console.log('✅ REQUEST SERVICE: All tabs and floating containers closed, navigated to home');
5212
+ }
5101
5213
  // Hide Request
5102
5214
  hideRequest() {
5103
5215
  console.log('🚫 REQUEST SERVICE - Hiding request wrapper');
5104
5216
  this.requestVisible = false;
5105
5217
  document.querySelector(`#cide-lyt-request-wrapper`)?.classList.add('cide-lyt-request-wrapper-hide');
5106
5218
  document.querySelector(`body`)?.classList.remove('cide-lyt-request-exist');
5219
+ // IMPORTANT: Clear all tabs and their stored component states when hiding request wrapper
5220
+ // This ensures that when user navigates back later, components start fresh
5221
+ const currentTabs = this.tabsSignal();
5222
+ if (currentTabs.length > 0) {
5223
+ console.log('🧹 REQUEST SERVICE - Clearing all tabs because request wrapper is being hidden');
5224
+ // Clear all tabs from TabStateService
5225
+ currentTabs.forEach(tab => {
5226
+ this.tabStateService.removeTab(tab.id);
5227
+ });
5228
+ // Clear ALL stored routes from route reuse strategy to destroy component instances
5229
+ if (this.routeReuseStrategy instanceof CustomRouteReuseStrategy) {
5230
+ this.routeReuseStrategy.clearAllStoredRoutes();
5231
+ console.log('✅ REQUEST SERVICE - All stored routes cleared');
5232
+ }
5233
+ // Clear all tabs from signals
5234
+ this.tabsSignal.set([]);
5235
+ this.activeTabIdSignal.set(null);
5236
+ this.tabStateService.setActiveTab(null);
5237
+ // Clear sidedrawer
5238
+ this.sidedrawerService.updateDrawerItems(undefined);
5239
+ console.log('✅ REQUEST SERVICE - All tabs cleared, components will start fresh on next visit');
5240
+ }
5107
5241
  }
5108
5242
  // Show Request
5109
5243
  showRequest() {
@@ -5250,8 +5384,8 @@ class CideLytSidedrawerWrapperComponent {
5250
5384
  }
5251
5385
  ngOnInit() {
5252
5386
  // Initialize the component map (You'd likely populate this from a config or service)
5253
- this.componentMap['drowar_notes'] = () => import('./cloud-ide-layout-sidedrawer-notes.component-Cg9oFVf0.mjs').then(m => m.CideLytSidedrawerNotesComponent);
5254
- this.componentMap['drawer_theme'] = () => import('./cloud-ide-layout-drawer-theme.component-yixL0kiC.mjs').then(m => m.CideLytDrawerThemeComponent);
5387
+ this.componentMap['drowar_notes'] = () => import('./cloud-ide-layout-sidedrawer-notes.component-D_LnurNk.mjs').then(m => m.CideLytSidedrawerNotesComponent);
5388
+ this.componentMap['drawer_theme'] = () => import('./cloud-ide-layout-drawer-theme.component-BtIN5K29.mjs').then(m => m.CideLytDrawerThemeComponent);
5255
5389
  }
5256
5390
  async loadComponent(configFor) {
5257
5391
  console.log('🔍 SIDEDRAWER - Loading component:', configFor, 'Current tab:', this.currentTabId);
@@ -6943,7 +7077,7 @@ const layoutControlPannelChildRoutes = [{
6943
7077
  },
6944
7078
  {
6945
7079
  path: "home",
6946
- loadComponent: () => import('./cloud-ide-layout-home-wrapper.component-DoPrXEV9.mjs').then(c => c.CideLytHomeWrapperComponent),
7080
+ loadComponent: () => import('./cloud-ide-layout-home-wrapper.component-uqBqyF6Z.mjs').then(c => c.CideLytHomeWrapperComponent),
6947
7081
  canActivate: [authGuard],
6948
7082
  data: {
6949
7083
  sypg_page_code: "cide_lyt_home" // Used by RequestService to fetch tab properties
@@ -6951,7 +7085,7 @@ const layoutControlPannelChildRoutes = [{
6951
7085
  },
6952
7086
  {
6953
7087
  path: "dashboard-manager",
6954
- loadComponent: () => import('./cloud-ide-layout-dashboard-manager.component-DYixwEQa.mjs').then(c => c.DashboardManagerComponent),
7088
+ loadComponent: () => import('./cloud-ide-layout-dashboard-manager.component-DM2Mo6P7.mjs').then(c => c.DashboardManagerComponent),
6955
7089
  canActivate: [authGuard],
6956
7090
  data: {
6957
7091
  sypg_page_code: "cide_lyt_dashboard_manager"
@@ -8775,4 +8909,4 @@ var floatingEntitySelection_component = /*#__PURE__*/Object.freeze({
8775
8909
  */
8776
8910
 
8777
8911
  export { AppStateHelperService as A, CideLytSharedWrapperComponent as C, ENVIRONMENT_CONFIG as E, NotificationSettingsService as N, RightsService as R, CideLytSidebarService as a, CideLytSidedrawerService as b, CideLytThemeService as c, CloudIdeLayoutService as d, CloudIdeLayoutComponent as e, CideLytSharedService as f, ComponentContextService as g, layoutControlPannelChildRoutes as h, CustomRouteReuseStrategy as i, AppStateService as j, CideLytUserStatusService as k, layoutRoutes as l, CacheManagerService as m, CideLytFileManagerService as n, CideLytFloatingEntityRightsSharingComponent as o, processThemeVariable as p, CideLytFloatingEntityRightsSharingService as q, CideLytFloatingEntitySelectionComponent as r, setCSSVariable as s, themeFactory as t, CideLytFloatingEntitySelectionService as u };
8778
- //# sourceMappingURL=cloud-ide-layout-cloud-ide-layout-BvT1pY8z.mjs.map
8912
+ //# sourceMappingURL=cloud-ide-layout-cloud-ide-layout-CSA4WioJ.mjs.map