cloud-ide-layout 1.0.8 → 1.0.9
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/README.md +34 -448
- package/fesm2022/{cloud-ide-layout-cloud-ide-layout-D3xzVSNA.mjs → cloud-ide-layout-cloud-ide-layout-DLceZY3Y.mjs} +335 -343
- package/fesm2022/{cloud-ide-layout-cloud-ide-layout-D3xzVSNA.mjs.map → cloud-ide-layout-cloud-ide-layout-DLceZY3Y.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-layout-drawer-theme.component-BSUFE_o2.mjs → cloud-ide-layout-drawer-theme.component-Bn5--C_Q.mjs} +69 -67
- package/fesm2022/{cloud-ide-layout-drawer-theme.component-BSUFE_o2.mjs.map → cloud-ide-layout-drawer-theme.component-Bn5--C_Q.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-layout-home-wrapper.component-Dr4MO4MB.mjs → cloud-ide-layout-home-wrapper.component-Bo-4LNLx.mjs} +56 -51
- package/fesm2022/{cloud-ide-layout-home-wrapper.component-Dr4MO4MB.mjs.map → cloud-ide-layout-home-wrapper.component-Bo-4LNLx.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-BWx03JYS.mjs → cloud-ide-layout-sidedrawer-notes.component-BmadMzdl.mjs} +28 -32
- package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-BWx03JYS.mjs.map → cloud-ide-layout-sidedrawer-notes.component-BmadMzdl.mjs.map} +1 -1
- package/fesm2022/cloud-ide-layout.mjs +1 -1
- package/index.d.ts +579 -3
- package/package.json +3 -5
- package/esm2022/cloud-ide-layout.mjs +0 -5
- package/esm2022/lib/cloud-ide-layout.component.mjs +0 -16
- package/esm2022/lib/cloud-ide-layout.routes.mjs +0 -28
- package/esm2022/lib/cloud-ide-layout.service.mjs +0 -14
- package/esm2022/lib/layout/console/console-wrapper/console-wrapper.component.mjs +0 -11
- package/esm2022/lib/layout/console/console.service.mjs +0 -28
- package/esm2022/lib/layout/footer/footer-wrapper/footer-wrapper.component.mjs +0 -20
- package/esm2022/lib/layout/footer/footer.service.mjs +0 -28
- package/esm2022/lib/layout/header/header-wrapper/header-wrapper.component.mjs +0 -84
- package/esm2022/lib/layout/header/header.service.mjs +0 -28
- package/esm2022/lib/layout/home/home-wrapper/home-wrapper.component.mjs +0 -198
- package/esm2022/lib/layout/layout/layout-wrapper/layout-wrapper.component.mjs +0 -28
- package/esm2022/lib/layout/request/request-wrapper/request-wrapper.component.mjs +0 -60
- package/esm2022/lib/layout/request/request.service.mjs +0 -235
- package/esm2022/lib/layout/request/tab-content/tab-content.component.mjs +0 -84
- package/esm2022/lib/layout/shared/shared-wrapper/shared-wrapper.component.mjs +0 -49
- package/esm2022/lib/layout/shared/shared.service.mjs +0 -508
- package/esm2022/lib/layout/sidebar/sidebar-wrapper/sidebar-wrapper.component.mjs +0 -488
- package/esm2022/lib/layout/sidebar/sidebar.service.mjs +0 -35
- package/esm2022/lib/layout/sidedrawer/cide-lyt-drawer-base.class.mjs +0 -40
- package/esm2022/lib/layout/sidedrawer/drawer-theme/drawer-theme.component.mjs +0 -296
- package/esm2022/lib/layout/sidedrawer/sidedrawer-notes/sidedrawer-notes.component.mjs +0 -175
- package/esm2022/lib/layout/sidedrawer/sidedrawer-notes/sidedrawer-notes.service.mjs +0 -51
- package/esm2022/lib/layout/sidedrawer/sidedrawer-wrapper/sidedrawer-wrapper.component.mjs +0 -257
- package/esm2022/lib/layout/sidedrawer/sidedrawer.service.mjs +0 -70
- package/esm2022/lib/services/app-state/app-state-helper.service.mjs +0 -222
- package/esm2022/lib/services/app-state/app-state.service.mjs +0 -256
- package/esm2022/lib/services/app-state/index.mjs +0 -3
- package/esm2022/lib/services/cache-manager/cache-manager.service.mjs +0 -112
- package/esm2022/lib/services/file-manager/file-manager.service.mjs +0 -21
- package/esm2022/lib/services/tab-state.service.mjs +0 -128
- package/esm2022/lib/services/theme/theme.service.mjs +0 -151
- package/esm2022/lib/services/user-status/user-status.service.mjs +0 -135
- package/esm2022/lib/utils/custom-route-reuse-strategy.mjs +0 -61
- package/esm2022/lib/utils/index.mjs +0 -2
- package/esm2022/public-api.mjs +0 -18
- package/lib/cloud-ide-layout.component.d.ts +0 -5
- package/lib/cloud-ide-layout.routes.d.ts +0 -3
- package/lib/cloud-ide-layout.service.d.ts +0 -6
- package/lib/layout/console/console-wrapper/console-wrapper.component.d.ts +0 -5
- package/lib/layout/console/console.service.d.ts +0 -9
- package/lib/layout/footer/footer-wrapper/footer-wrapper.component.d.ts +0 -9
- package/lib/layout/footer/footer.service.d.ts +0 -9
- package/lib/layout/header/header-wrapper/header-wrapper.component.d.ts +0 -25
- package/lib/layout/header/header.service.d.ts +0 -9
- package/lib/layout/home/home-wrapper/home-wrapper.component.d.ts +0 -94
- package/lib/layout/layout/layout-wrapper/layout-wrapper.component.d.ts +0 -5
- package/lib/layout/request/request-wrapper/request-wrapper.component.d.ts +0 -14
- package/lib/layout/request/request.service.d.ts +0 -60
- package/lib/layout/request/tab-content/tab-content.component.d.ts +0 -19
- package/lib/layout/shared/shared-wrapper/shared-wrapper.component.d.ts +0 -17
- package/lib/layout/shared/shared.service.d.ts +0 -114
- package/lib/layout/sidebar/sidebar-wrapper/sidebar-wrapper.component.d.ts +0 -140
- package/lib/layout/sidebar/sidebar.service.d.ts +0 -12
- package/lib/layout/sidedrawer/cide-lyt-drawer-base.class.d.ts +0 -16
- package/lib/layout/sidedrawer/drawer-theme/drawer-theme.component.d.ts +0 -71
- package/lib/layout/sidedrawer/sidedrawer-notes/sidedrawer-notes.component.d.ts +0 -48
- package/lib/layout/sidedrawer/sidedrawer-notes/sidedrawer-notes.service.d.ts +0 -13
- package/lib/layout/sidedrawer/sidedrawer-wrapper/sidedrawer-wrapper.component.d.ts +0 -30
- package/lib/layout/sidedrawer/sidedrawer.service.d.ts +0 -30
- package/lib/services/app-state/app-state-helper.service.d.ts +0 -150
- package/lib/services/app-state/app-state.service.d.ts +0 -85
- package/lib/services/app-state/index.d.ts +0 -3
- package/lib/services/cache-manager/cache-manager.service.d.ts +0 -64
- package/lib/services/file-manager/file-manager.service.d.ts +0 -9
- package/lib/services/tab-state.service.d.ts +0 -79
- package/lib/services/theme/theme.service.d.ts +0 -71
- package/lib/services/user-status/user-status.service.d.ts +0 -57
- package/lib/utils/custom-route-reuse-strategy.d.ts +0 -15
- package/lib/utils/index.d.ts +0 -1
- package/public-api.d.ts +0 -12
package/index.d.ts
CHANGED
|
@@ -1,5 +1,581 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { OnInit, InjectionToken } from '@angular/core';
|
|
3
|
+
import { IUser, menuResponseData, ICoreSyen, designConfigResponseData, designConfigControllerResponse, ISytmLayout, MDesignConfig, IEnvironmentConfig, SystemThemeControllerRespoonse, SystemThemesListControllerRespoonse, MSystemThemeUserPreferencesRequest, SystemThemeUserPreferencesControllerRespoonse } from 'cloud-ide-lms-model';
|
|
4
|
+
import * as rxjs from 'rxjs';
|
|
5
|
+
import { Observable } from 'rxjs';
|
|
6
|
+
import { Title } from '@angular/platform-browser';
|
|
7
|
+
import { Route, RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';
|
|
8
|
+
|
|
9
|
+
declare class CloudIdeLayoutService {
|
|
10
|
+
constructor();
|
|
11
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CloudIdeLayoutService, never>;
|
|
12
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CloudIdeLayoutService>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
declare class CloudIdeLayoutComponent {
|
|
16
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CloudIdeLayoutComponent, never>;
|
|
17
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CloudIdeLayoutComponent, "cide-lyt-wrapper", never, {}, {}, never, never, true, never>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
declare class AppStateHelperService {
|
|
21
|
+
private appStateService;
|
|
22
|
+
private sidebarService;
|
|
23
|
+
readonly currentUser: _angular_core.Signal<IUser | null>;
|
|
24
|
+
readonly isAuthenticated: _angular_core.Signal<boolean>;
|
|
25
|
+
readonly userInfo: _angular_core.Signal<{
|
|
26
|
+
id: string | undefined;
|
|
27
|
+
name: string;
|
|
28
|
+
email: string | undefined;
|
|
29
|
+
role: string | undefined;
|
|
30
|
+
} | null>;
|
|
31
|
+
readonly activeModule: _angular_core.Signal<menuResponseData | null>;
|
|
32
|
+
readonly activeModuleInfo: _angular_core.Signal<{
|
|
33
|
+
id: string;
|
|
34
|
+
title: string;
|
|
35
|
+
icon: string;
|
|
36
|
+
path: string;
|
|
37
|
+
type: string;
|
|
38
|
+
} | null>;
|
|
39
|
+
readonly activeEntity: _angular_core.Signal<ICoreSyen | null>;
|
|
40
|
+
/**
|
|
41
|
+
* Get current user value (non-reactive)
|
|
42
|
+
*/
|
|
43
|
+
getCurrentUser(): IUser | null;
|
|
44
|
+
/**
|
|
45
|
+
* Set user data
|
|
46
|
+
*/
|
|
47
|
+
setUser(user: IUser | null): void;
|
|
48
|
+
/**
|
|
49
|
+
* Update user data (partial update)
|
|
50
|
+
*/
|
|
51
|
+
updateUser(updates: Partial<IUser>): void;
|
|
52
|
+
/**
|
|
53
|
+
* Clear user data
|
|
54
|
+
*/
|
|
55
|
+
clearUser(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Check if user is authenticated
|
|
58
|
+
*/
|
|
59
|
+
isUserAuthenticated(): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Get user info object
|
|
62
|
+
*/
|
|
63
|
+
getUserInfo(): {
|
|
64
|
+
id: string | undefined;
|
|
65
|
+
name: string;
|
|
66
|
+
email: string | undefined;
|
|
67
|
+
role: string | undefined;
|
|
68
|
+
} | null;
|
|
69
|
+
/**
|
|
70
|
+
* Get user ID
|
|
71
|
+
*/
|
|
72
|
+
getUserId(): string | null;
|
|
73
|
+
/**
|
|
74
|
+
* Get user name
|
|
75
|
+
*/
|
|
76
|
+
getUserName(): string | null;
|
|
77
|
+
/**
|
|
78
|
+
* Get user email
|
|
79
|
+
*/
|
|
80
|
+
getUserEmail(): string | null;
|
|
81
|
+
/**
|
|
82
|
+
* Get user username
|
|
83
|
+
*/
|
|
84
|
+
getUserUsername(): string | null;
|
|
85
|
+
/**
|
|
86
|
+
* Get user full name
|
|
87
|
+
*/
|
|
88
|
+
getUserFullName(): string | null;
|
|
89
|
+
/**
|
|
90
|
+
* Get user first name
|
|
91
|
+
*/
|
|
92
|
+
getUserFirstName(): string | null;
|
|
93
|
+
/**
|
|
94
|
+
* Get user last name
|
|
95
|
+
*/
|
|
96
|
+
getUserLastName(): string | null;
|
|
97
|
+
/**
|
|
98
|
+
* Get user mobile number
|
|
99
|
+
*/
|
|
100
|
+
getUserMobile(): number | null;
|
|
101
|
+
/**
|
|
102
|
+
* Set the active module
|
|
103
|
+
*/
|
|
104
|
+
setActiveModule(module: menuResponseData | null): void;
|
|
105
|
+
/**
|
|
106
|
+
* Get active module value (non-reactive)
|
|
107
|
+
*/
|
|
108
|
+
getActiveModule(): menuResponseData | null;
|
|
109
|
+
/**
|
|
110
|
+
* Get active module info
|
|
111
|
+
*/
|
|
112
|
+
getActiveModuleInfo(): {
|
|
113
|
+
id: string;
|
|
114
|
+
title: string;
|
|
115
|
+
icon: string;
|
|
116
|
+
path: string;
|
|
117
|
+
type: string;
|
|
118
|
+
} | null;
|
|
119
|
+
/**
|
|
120
|
+
* Get active module ID
|
|
121
|
+
*/
|
|
122
|
+
getActiveModuleId(): string | null;
|
|
123
|
+
/**
|
|
124
|
+
* Get active module title
|
|
125
|
+
*/
|
|
126
|
+
getActiveModuleTitle(): string | null;
|
|
127
|
+
/**
|
|
128
|
+
* Get active module icon
|
|
129
|
+
*/
|
|
130
|
+
getActiveModuleIcon(): string | null;
|
|
131
|
+
/**
|
|
132
|
+
* Set a module as active by its ID
|
|
133
|
+
* This replaces the previous isModuleActive method to use setActiveModule instead of getActiveModuleId
|
|
134
|
+
*/
|
|
135
|
+
setActiveModuleById(moduleId: string): Observable<boolean>;
|
|
136
|
+
/**
|
|
137
|
+
* Check if a module is active (keeping the original functionality for backward compatibility)
|
|
138
|
+
*/
|
|
139
|
+
isModuleActive(moduleId: string): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Set the active entity
|
|
142
|
+
*/
|
|
143
|
+
setActiveEntity(entity: ICoreSyen | null): void;
|
|
144
|
+
/**
|
|
145
|
+
* Get active entity value (non-reactive)
|
|
146
|
+
*/
|
|
147
|
+
getActiveEntity(): ICoreSyen | null;
|
|
148
|
+
/**
|
|
149
|
+
* Get active entity ID
|
|
150
|
+
*/
|
|
151
|
+
getActiveEntityId(): string;
|
|
152
|
+
/**
|
|
153
|
+
* Get active entity name
|
|
154
|
+
*/
|
|
155
|
+
getActiveEntityName(): string | null;
|
|
156
|
+
/**
|
|
157
|
+
* Get active entity code
|
|
158
|
+
*/
|
|
159
|
+
getActiveEntityCode(): string | null;
|
|
160
|
+
/**
|
|
161
|
+
* Manually refresh state from localStorage
|
|
162
|
+
*/
|
|
163
|
+
refreshFromLocalStorage(): void;
|
|
164
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppStateHelperService, never>;
|
|
165
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AppStateHelperService>;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
declare class CideLytSharedWrapperComponent implements OnInit {
|
|
169
|
+
shared_wrapper_setup_param: Partial<CideLytSharedWrapperSetupParam>;
|
|
170
|
+
page_data: designConfigResponseData;
|
|
171
|
+
private sharedService;
|
|
172
|
+
private sidedrawerService;
|
|
173
|
+
protected appState: AppStateHelperService;
|
|
174
|
+
ngOnInit(): void;
|
|
175
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideLytSharedWrapperComponent, never>;
|
|
176
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideLytSharedWrapperComponent, "cide-lyt-shared-wrapper", never, {}, {}, never, never, true, never>;
|
|
177
|
+
}
|
|
178
|
+
interface CideLytSharedWrapperSetupParam {
|
|
179
|
+
sypg_page_code: string;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
interface CachedPageData {
|
|
183
|
+
request: Partial<CideLytSharedWrapperSetupParam>;
|
|
184
|
+
response: designConfigControllerResponse;
|
|
185
|
+
timestamp: number;
|
|
186
|
+
ttl: number;
|
|
187
|
+
}
|
|
188
|
+
declare class CideLytSharedService {
|
|
189
|
+
private pageDataCacheSignal;
|
|
190
|
+
private loadingStateSignal;
|
|
191
|
+
readonly pageDataCache: _angular_core.Signal<{
|
|
192
|
+
[key: string]: CachedPageData;
|
|
193
|
+
}>;
|
|
194
|
+
readonly loadingStates: _angular_core.Signal<{
|
|
195
|
+
[key: string]: boolean;
|
|
196
|
+
}>;
|
|
197
|
+
readonly cacheInfo: _angular_core.Signal<{
|
|
198
|
+
totalCached: number;
|
|
199
|
+
validCached: number;
|
|
200
|
+
expiredCached: number;
|
|
201
|
+
}>;
|
|
202
|
+
private inflightRequests;
|
|
203
|
+
private readonly DEFAULT_CACHE_TTL;
|
|
204
|
+
private elementService;
|
|
205
|
+
private http;
|
|
206
|
+
titleService: Title;
|
|
207
|
+
private sidebarService;
|
|
208
|
+
private headerService;
|
|
209
|
+
private footerService;
|
|
210
|
+
private consoleService;
|
|
211
|
+
private sidedrawerService;
|
|
212
|
+
private router;
|
|
213
|
+
private appState;
|
|
214
|
+
private routeSubscription?;
|
|
215
|
+
private pageDataSubscription?;
|
|
216
|
+
private tabManagementCallback?;
|
|
217
|
+
private requestVisibilityCallback?;
|
|
218
|
+
constructor();
|
|
219
|
+
/**
|
|
220
|
+
* Register tab management callback from request service
|
|
221
|
+
* This allows shared service to call request service without circular dependency
|
|
222
|
+
*/
|
|
223
|
+
registerTabManagement(callback: (currentRoutePath: string, queryParams: Record<string, unknown>, layout: ISytmLayout, pageData: designConfigControllerResponse, pageCode: string) => void): void;
|
|
224
|
+
/**
|
|
225
|
+
* Register request visibility callback from request service
|
|
226
|
+
* This allows shared service to control request wrapper visibility
|
|
227
|
+
*/
|
|
228
|
+
registerRequestVisibility(callback: (show: boolean) => void): void;
|
|
229
|
+
/**
|
|
230
|
+
* Enhanced loadPageData with caching and deduplication
|
|
231
|
+
* @param body - Request payload
|
|
232
|
+
* @param forceRefresh - Force API call even if cached data exists
|
|
233
|
+
* @param customTTL - Custom cache TTL in milliseconds
|
|
234
|
+
*/
|
|
235
|
+
loadPageData(body: MDesignConfig, forceRefresh?: boolean, customTTL?: number): Observable<designConfigControllerResponse>;
|
|
236
|
+
/**
|
|
237
|
+
* Consolidated method to load and process page data
|
|
238
|
+
* This replaces the separate calls in request service and shared wrapper
|
|
239
|
+
*/
|
|
240
|
+
loadAndProcessPageData(body: MDesignConfig, options?: {
|
|
241
|
+
forceRefresh?: boolean;
|
|
242
|
+
customTTL?: number;
|
|
243
|
+
setTitle?: boolean;
|
|
244
|
+
setSidebarContext?: boolean;
|
|
245
|
+
updateLayout?: boolean;
|
|
246
|
+
}): Observable<designConfigControllerResponse>;
|
|
247
|
+
/**
|
|
248
|
+
* Get cached page data without making API call
|
|
249
|
+
*/
|
|
250
|
+
getCachedPageData(pageCode: string): designConfigControllerResponse | null;
|
|
251
|
+
/**
|
|
252
|
+
* Check if loading for a specific page code
|
|
253
|
+
*/
|
|
254
|
+
isLoading(pageCode: string): boolean;
|
|
255
|
+
/**
|
|
256
|
+
* Invalidate cache for specific page code
|
|
257
|
+
*/
|
|
258
|
+
invalidateCache(pageCode: string): void;
|
|
259
|
+
/**
|
|
260
|
+
* Clear all cached data
|
|
261
|
+
*/
|
|
262
|
+
clearAllCache(): void;
|
|
263
|
+
/**
|
|
264
|
+
* Preload page data for better performance
|
|
265
|
+
*/
|
|
266
|
+
preloadPageData(pageCodes: string[]): void;
|
|
267
|
+
private hasValidCache;
|
|
268
|
+
private isCacheValid;
|
|
269
|
+
private cachePageData;
|
|
270
|
+
private setLoadingState;
|
|
271
|
+
private cleanExpiredCache;
|
|
272
|
+
setPageData(page_data_response: designConfigControllerResponse, page_data_payload: Partial<CideLytSharedWrapperSetupParam>): void;
|
|
273
|
+
/**
|
|
274
|
+
* Handle route changes - moved from request service for better architecture
|
|
275
|
+
* This method loads page data and calls request service to manage tabs
|
|
276
|
+
*/
|
|
277
|
+
private handleRouteChange;
|
|
278
|
+
/**
|
|
279
|
+
* Handle tab request by calling request service
|
|
280
|
+
*/
|
|
281
|
+
private handleTabRequest;
|
|
282
|
+
/**
|
|
283
|
+
* Sync the active menu in the sidebar based on the loaded page data.
|
|
284
|
+
* This ensures the correct module is highlighted in the sidebar.
|
|
285
|
+
*/
|
|
286
|
+
private syncSidebarActiveMenu;
|
|
287
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideLytSharedService, never>;
|
|
288
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideLytSharedService>;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
declare const layoutRoutes: Route;
|
|
292
|
+
declare const layoutControlPannelChildRoutes: Route[];
|
|
293
|
+
|
|
1
294
|
/**
|
|
2
|
-
*
|
|
295
|
+
* A custom route reuse strategy that allows storing and retrieving routes
|
|
296
|
+
* to persist component state, especially for tabbed navigation.
|
|
3
297
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
298
|
+
declare class CustomRouteReuseStrategy implements RouteReuseStrategy {
|
|
299
|
+
private storedRoutes;
|
|
300
|
+
private getPathKey;
|
|
301
|
+
shouldDetach(route: ActivatedRouteSnapshot): boolean;
|
|
302
|
+
store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle | null): void;
|
|
303
|
+
shouldAttach(route: ActivatedRouteSnapshot): boolean;
|
|
304
|
+
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null;
|
|
305
|
+
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean;
|
|
306
|
+
clearStoredRoute(pathKey: string): void;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
interface AppState {
|
|
310
|
+
currentUser: IUser | null;
|
|
311
|
+
activeModule: menuResponseData | null;
|
|
312
|
+
activeEntity: ICoreSyen | null;
|
|
313
|
+
}
|
|
314
|
+
declare class AppStateService {
|
|
315
|
+
private currentUserSignal;
|
|
316
|
+
private activeModuleSignal;
|
|
317
|
+
private activeEntitySignal;
|
|
318
|
+
readonly currentUser: _angular_core.Signal<IUser | null>;
|
|
319
|
+
readonly activeModule: _angular_core.Signal<menuResponseData | null>;
|
|
320
|
+
readonly activeEntity: _angular_core.Signal<ICoreSyen | null>;
|
|
321
|
+
readonly isAuthenticated: _angular_core.Signal<boolean>;
|
|
322
|
+
readonly userInfo: _angular_core.Signal<{
|
|
323
|
+
id: string | undefined;
|
|
324
|
+
name: string;
|
|
325
|
+
email: string | undefined;
|
|
326
|
+
role: string | undefined;
|
|
327
|
+
} | null>;
|
|
328
|
+
readonly activeModuleInfo: _angular_core.Signal<{
|
|
329
|
+
id: string;
|
|
330
|
+
title: string;
|
|
331
|
+
icon: string;
|
|
332
|
+
path: string;
|
|
333
|
+
type: string;
|
|
334
|
+
} | null>;
|
|
335
|
+
constructor();
|
|
336
|
+
/**
|
|
337
|
+
* Set the current user
|
|
338
|
+
*/
|
|
339
|
+
setUser(user: IUser | null): void;
|
|
340
|
+
/**
|
|
341
|
+
* Update user data (partial update)
|
|
342
|
+
*/
|
|
343
|
+
updateUser(updates: Partial<IUser>): void;
|
|
344
|
+
/**
|
|
345
|
+
* Clear user data
|
|
346
|
+
*/
|
|
347
|
+
clearUser(): void;
|
|
348
|
+
/**
|
|
349
|
+
* Get current user value (non-reactive)
|
|
350
|
+
*/
|
|
351
|
+
getUserValue(): IUser | null;
|
|
352
|
+
/**
|
|
353
|
+
* Set the active module
|
|
354
|
+
*/
|
|
355
|
+
setActiveModule(module: menuResponseData | null): void;
|
|
356
|
+
/**
|
|
357
|
+
* Get active module value (non-reactive)
|
|
358
|
+
*/
|
|
359
|
+
getActiveModuleValue(): menuResponseData | null;
|
|
360
|
+
/**
|
|
361
|
+
* Set the active entity
|
|
362
|
+
*/
|
|
363
|
+
setActiveEntity(entity: ICoreSyen | null): void;
|
|
364
|
+
/**
|
|
365
|
+
* Get active entity value (non-reactive)
|
|
366
|
+
*/
|
|
367
|
+
getActiveEntityValue(): ICoreSyen | null;
|
|
368
|
+
/**
|
|
369
|
+
* Manually refresh state from localStorage
|
|
370
|
+
* Call this method when you need to sync with external localStorage changes
|
|
371
|
+
*/
|
|
372
|
+
refreshFromLocalStorage(): void;
|
|
373
|
+
/**
|
|
374
|
+
* Check if localStorage is available (browser environment)
|
|
375
|
+
*/
|
|
376
|
+
private isLocalStorageAvailable;
|
|
377
|
+
/**
|
|
378
|
+
* Save state to localStorage
|
|
379
|
+
*/
|
|
380
|
+
private saveToLocalStorage;
|
|
381
|
+
/**
|
|
382
|
+
* Load state from localStorage
|
|
383
|
+
*/
|
|
384
|
+
private loadFromLocalStorage;
|
|
385
|
+
/**
|
|
386
|
+
* Setup storage event listener to handle external localStorage changes
|
|
387
|
+
*/
|
|
388
|
+
private setupStorageListener;
|
|
389
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppStateService, never>;
|
|
390
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AppStateService>;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
type UserStatus = 'online' | 'offline' | 'away' | 'busy' | 'do-not-disturb';
|
|
394
|
+
interface UserStatusData {
|
|
395
|
+
status: UserStatus;
|
|
396
|
+
lastActive: Date;
|
|
397
|
+
message?: string;
|
|
398
|
+
}
|
|
399
|
+
declare class CideLytUserStatusService {
|
|
400
|
+
private _userStatus;
|
|
401
|
+
readonly userStatus: _angular_core.Signal<UserStatusData>;
|
|
402
|
+
readonly isOnline: _angular_core.Signal<boolean>;
|
|
403
|
+
readonly statusColor: _angular_core.Signal<string>;
|
|
404
|
+
readonly statusText: _angular_core.Signal<string>;
|
|
405
|
+
private statusSubject;
|
|
406
|
+
readonly status$: rxjs.Observable<UserStatusData>;
|
|
407
|
+
private lastActivityTime;
|
|
408
|
+
private autoAwayTimeout;
|
|
409
|
+
private autoAwayEnabled;
|
|
410
|
+
constructor();
|
|
411
|
+
/**
|
|
412
|
+
* Sets the user status
|
|
413
|
+
* @param status The new status to set
|
|
414
|
+
* @param message Optional custom status message
|
|
415
|
+
*/
|
|
416
|
+
setStatus(status: UserStatus, message?: string): void;
|
|
417
|
+
/**
|
|
418
|
+
* Marks user as active (resets away timer)
|
|
419
|
+
*/
|
|
420
|
+
markUserActive(): void;
|
|
421
|
+
/**
|
|
422
|
+
* Gets CSS class for status color
|
|
423
|
+
*/
|
|
424
|
+
private getStatusColor;
|
|
425
|
+
/**
|
|
426
|
+
* Gets human-readable status text
|
|
427
|
+
*/
|
|
428
|
+
private getStatusText;
|
|
429
|
+
private getBaseStatusText;
|
|
430
|
+
/**
|
|
431
|
+
* Initialize activity tracking for auto-away
|
|
432
|
+
*/
|
|
433
|
+
private initializeActivityTracking;
|
|
434
|
+
/**
|
|
435
|
+
* Start the auto-away timer
|
|
436
|
+
*/
|
|
437
|
+
private startAutoAwayTimer;
|
|
438
|
+
/**
|
|
439
|
+
* Enable or disable auto-away functionality
|
|
440
|
+
*/
|
|
441
|
+
setAutoAwayEnabled(enabled: boolean): void;
|
|
442
|
+
/**
|
|
443
|
+
* Set the auto-away timeout (in milliseconds)
|
|
444
|
+
*/
|
|
445
|
+
setAutoAwayTimeout(timeout: number): void;
|
|
446
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideLytUserStatusService, never>;
|
|
447
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideLytUserStatusService>;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
declare const ENVIRONMENT_CONFIG: InjectionToken<IEnvironmentConfig>;
|
|
451
|
+
interface Theme {
|
|
452
|
+
[key: string]: string;
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Utility function to convert database format keys to CSS format and handle units
|
|
456
|
+
* @param key - The database format key (e.g., 'font_size_xxxl')
|
|
457
|
+
* @param value - The value to be set
|
|
458
|
+
* @returns Object with cssVarName and processed value
|
|
459
|
+
*/
|
|
460
|
+
declare function processThemeVariable(key: string, value: string): {
|
|
461
|
+
cssVarName: string;
|
|
462
|
+
processedValue: string;
|
|
463
|
+
};
|
|
464
|
+
/**
|
|
465
|
+
* Sets a single CSS variable on the document root element
|
|
466
|
+
* @param key - The database format key (e.g., 'font_size_xxxl')
|
|
467
|
+
* @param value - The value to be set
|
|
468
|
+
* @param platformId - Platform ID for browser check
|
|
469
|
+
*/
|
|
470
|
+
declare function setCSSVariable(key: string, value: string, platformId: object): void;
|
|
471
|
+
declare class CideLytThemeService {
|
|
472
|
+
private selectedThemeSignal;
|
|
473
|
+
selectedTheme: _angular_core.Signal<string>;
|
|
474
|
+
private http;
|
|
475
|
+
private platformId;
|
|
476
|
+
private environment;
|
|
477
|
+
/**
|
|
478
|
+
* Fetches the theme from the API and applies it to the document.
|
|
479
|
+
* This method is intended to be called when the theme should actually be applied.
|
|
480
|
+
*/
|
|
481
|
+
fetchAndApplyTheme(): Observable<SystemThemeControllerRespoonse>;
|
|
482
|
+
/**
|
|
483
|
+
* Fetches the list of system themes from the API.
|
|
484
|
+
*/
|
|
485
|
+
fetchSystemThemesList(): Observable<SystemThemesListControllerRespoonse>;
|
|
486
|
+
/**
|
|
487
|
+
* Internal method to fetch the theme from the API and apply it.
|
|
488
|
+
*/
|
|
489
|
+
loadTheme(): Observable<SystemThemeControllerRespoonse>;
|
|
490
|
+
/**
|
|
491
|
+
* Sets the CSS variables on the root element.
|
|
492
|
+
* @param theme - An object where keys are CSS variable names (e.g., '--color-text-body')
|
|
493
|
+
* and values are the color strings (e.g., '#ffffff').
|
|
494
|
+
*/
|
|
495
|
+
private applyTheme;
|
|
496
|
+
/**
|
|
497
|
+
* Saves the system theme user preferences.
|
|
498
|
+
* @param themeVars - The theme variables to save.
|
|
499
|
+
* @returns An observable of the system theme user preferences.
|
|
500
|
+
*/
|
|
501
|
+
saveSystemThemeUserPreferences(themeVars: MSystemThemeUserPreferencesRequest): Observable<SystemThemeUserPreferencesControllerRespoonse>;
|
|
502
|
+
/**
|
|
503
|
+
* Updates a single CSS variable using the utility function
|
|
504
|
+
* @param key - The database format key (e.g., 'font_size_xxxl')
|
|
505
|
+
* @param value - The value to be set
|
|
506
|
+
*/
|
|
507
|
+
updateCSSVariable(key: string, value: string): void;
|
|
508
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideLytThemeService, never>;
|
|
509
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideLytThemeService>;
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* Factory function for APP_INITIALIZER.
|
|
513
|
+
* This function is used in your app.config.ts.
|
|
514
|
+
* It conditionally triggers theme loading based on the environment setting.
|
|
515
|
+
*/
|
|
516
|
+
declare function themeFactory(themeService: CideLytThemeService, environmentConfig: IEnvironmentConfig): () => Observable<SystemThemeControllerRespoonse | undefined>;
|
|
517
|
+
|
|
518
|
+
declare class CacheManagerService {
|
|
519
|
+
private sharedService;
|
|
520
|
+
readonly cacheStats: _angular_core.Signal<{
|
|
521
|
+
hitRatio: number;
|
|
522
|
+
memoryEstimate: string;
|
|
523
|
+
totalCached: number;
|
|
524
|
+
validCached: number;
|
|
525
|
+
expiredCached: number;
|
|
526
|
+
}>;
|
|
527
|
+
readonly isLoading: (pageCode: string) => boolean;
|
|
528
|
+
readonly getCachedData: (pageCode: string) => designConfigControllerResponse | null;
|
|
529
|
+
/**
|
|
530
|
+
* Get page data with caching - this is the main method components should use
|
|
531
|
+
*/
|
|
532
|
+
getPageData(pageCode: string, forceRefresh?: boolean): Observable<designConfigControllerResponse>;
|
|
533
|
+
/**
|
|
534
|
+
* Preload multiple pages for better performance
|
|
535
|
+
*/
|
|
536
|
+
preloadPages(pageCodes: string[]): void;
|
|
537
|
+
/**
|
|
538
|
+
* Invalidate specific page cache
|
|
539
|
+
*/
|
|
540
|
+
invalidatePage(pageCode: string): void;
|
|
541
|
+
/**
|
|
542
|
+
* Clear all cache
|
|
543
|
+
*/
|
|
544
|
+
clearCache(): void;
|
|
545
|
+
/**
|
|
546
|
+
* Get cache status for debugging
|
|
547
|
+
*/
|
|
548
|
+
getCacheStatus(): {
|
|
549
|
+
pageCode: string;
|
|
550
|
+
cached: boolean;
|
|
551
|
+
expired: boolean;
|
|
552
|
+
loading: boolean;
|
|
553
|
+
}[];
|
|
554
|
+
/**
|
|
555
|
+
* Estimate memory usage of cache (rough estimate)
|
|
556
|
+
*/
|
|
557
|
+
private estimateCacheMemoryUsage;
|
|
558
|
+
/**
|
|
559
|
+
* Check if cache entry is valid
|
|
560
|
+
*/
|
|
561
|
+
private isCacheValid;
|
|
562
|
+
/**
|
|
563
|
+
* Export cache data for debugging or backup
|
|
564
|
+
*/
|
|
565
|
+
exportCacheData(): string;
|
|
566
|
+
/**
|
|
567
|
+
* Get performance metrics
|
|
568
|
+
*/
|
|
569
|
+
getPerformanceMetrics(): {
|
|
570
|
+
totalPages: number;
|
|
571
|
+
cachedPages: number;
|
|
572
|
+
loadingPages: number;
|
|
573
|
+
cacheHitRatio: number;
|
|
574
|
+
averageResponseTime?: number;
|
|
575
|
+
};
|
|
576
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CacheManagerService, never>;
|
|
577
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CacheManagerService>;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
export { AppStateHelperService, AppStateService, CacheManagerService, CideLytSharedService, CideLytSharedWrapperComponent, CideLytThemeService, CideLytUserStatusService, CloudIdeLayoutComponent, CloudIdeLayoutService, CustomRouteReuseStrategy, ENVIRONMENT_CONFIG, layoutControlPannelChildRoutes, layoutRoutes, processThemeVariable, setCSSVariable, themeFactory };
|
|
581
|
+
export type { AppState, CideLytSharedWrapperSetupParam, Theme, UserStatus, UserStatusData };
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloud-ide-layout",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
5
|
+
"@angular/common": "^20.1.0",
|
|
6
|
+
"@angular/core": "^20.1.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.3.0"
|
|
@@ -16,8 +16,6 @@
|
|
|
16
16
|
},
|
|
17
17
|
".": {
|
|
18
18
|
"types": "./index.d.ts",
|
|
19
|
-
"esm2022": "./esm2022/cloud-ide-layout.mjs",
|
|
20
|
-
"esm": "./esm2022/cloud-ide-layout.mjs",
|
|
21
19
|
"default": "./fesm2022/cloud-ide-layout.mjs"
|
|
22
20
|
}
|
|
23
21
|
},
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtaWRlLWxheW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1sYXlvdXQvc3JjL2Nsb3VkLWlkZS1sYXlvdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { CideLytLayoutWrapperComponent } from "./layout/layout/layout-wrapper/layout-wrapper.component";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class CloudIdeLayoutComponent {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CloudIdeLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CloudIdeLayoutComponent, isStandalone: true, selector: "cide-lyt-wrapper", ngImport: i0, template: `
|
|
7
|
-
<cide-lyt-layout-wrapper></cide-lyt-layout-wrapper>
|
|
8
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: CideLytLayoutWrapperComponent, selector: "cide-lyt-layout-wrapper" }] }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CloudIdeLayoutComponent, decorators: [{
|
|
11
|
-
type: Component,
|
|
12
|
-
args: [{ selector: 'cide-lyt-wrapper', standalone: true, template: `
|
|
13
|
-
<cide-lyt-layout-wrapper></cide-lyt-layout-wrapper>
|
|
14
|
-
`, imports: [CideLytLayoutWrapperComponent] }]
|
|
15
|
-
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtaWRlLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbG91ZC1pZGUtbGF5b3V0L3NyYy9saWIvY2xvdWQtaWRlLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7QUFXeEcsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCO2tHQUF2Qix1QkFBdUIsNEVBTnhCOztHQUVULDBFQUVTLDZCQUE2Qjs7MkZBRTVCLHVCQUF1QjtrQkFUbkMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxZQUNOOztHQUVULFdBRVEsQ0FBQyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaWRlTHl0TGF5b3V0V3JhcHBlckNvbXBvbmVudCB9IGZyb20gXCIuL2xheW91dC9sYXlvdXQvbGF5b3V0LXdyYXBwZXIvbGF5b3V0LXdyYXBwZXIuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NpZGUtbHl0LXdyYXBwZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjaWRlLWx5dC1sYXlvdXQtd3JhcHBlcj48L2NpZGUtbHl0LWxheW91dC13cmFwcGVyPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBgYCxcclxuICBpbXBvcnRzOiBbQ2lkZUx5dExheW91dFdyYXBwZXJDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbG91ZElkZUxheW91dENvbXBvbmVudCB7XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export const layoutRoutes = {
|
|
2
|
-
path: "control-panel",
|
|
3
|
-
loadComponent: () => import('./cloud-ide-layout.component').then(c => c.CloudIdeLayoutComponent),
|
|
4
|
-
// canActivate: [authGuard]
|
|
5
|
-
};
|
|
6
|
-
export const layoutControlPannelChildRoutes = [{
|
|
7
|
-
path: "",
|
|
8
|
-
pathMatch: "full",
|
|
9
|
-
redirectTo: "home"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
path: "home",
|
|
13
|
-
loadComponent: () => import('./layout/home/home-wrapper/home-wrapper.component').then(c => c.CideLytHomeWrapperComponent),
|
|
14
|
-
data: {
|
|
15
|
-
reuseTab: true, // For CustomRouteReuseStrategy
|
|
16
|
-
sypg_page_code: "cide_lyt_home" // Used by RequestService to fetch tab properties
|
|
17
|
-
}
|
|
18
|
-
}];
|
|
19
|
-
// {
|
|
20
|
-
// path: "admin-home",
|
|
21
|
-
// loadComponent: () => import('../../../cloud-ide-admin/src/lib/admin-module/home/home-wrapper/cide-adm-home-wrapper.component').then(c => c.CideAdmHomeWrapperComponent),
|
|
22
|
-
// data: {
|
|
23
|
-
// reuseTab: true, // For CustomRouteReuseStrategy
|
|
24
|
-
// sypg_page_code: "cide_adm_home" // Example: Ensure this page code is configured in your backend
|
|
25
|
-
// }
|
|
26
|
-
// }];
|
|
27
|
-
// ]
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtaWRlLWxheW91dC5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbG91ZC1pZGUtbGF5b3V0L3NyYy9saWIvY2xvdWQtaWRlLWxheW91dC5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFVO0lBQy9CLElBQUksRUFBRSxlQUFlO0lBQ3JCLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUM7SUFDaEcsMkJBQTJCO0NBQzlCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBWSxDQUFDO1FBQ3BELElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLE1BQU07UUFDakIsVUFBVSxFQUFFLE1BQU07S0FDckI7SUFDRDtRQUNJLElBQUksRUFBRSxNQUFNO1FBQ1osYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtREFBbUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztRQUN6SCxJQUFJLEVBQUU7WUFDRixRQUFRLEVBQUUsSUFBSSxFQUFFLCtCQUErQjtZQUMvQyxjQUFjLEVBQUUsZUFBZSxDQUFDLGlEQUFpRDtTQUNwRjtLQUNKLENBQUMsQ0FBQztBQUNILElBQUk7QUFDSiwwQkFBMEI7QUFDMUIsK0tBQStLO0FBQy9LLGNBQWM7QUFDZCwwREFBMEQ7QUFDMUQsMEdBQTBHO0FBQzFHLFFBQVE7QUFDUixNQUFNO0FBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmV4cG9ydCBjb25zdCBsYXlvdXRSb3V0ZXM6IFJvdXRlID0ge1xyXG4gICAgcGF0aDogXCJjb250cm9sLXBhbmVsXCIsXHJcbiAgICBsb2FkQ29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vY2xvdWQtaWRlLWxheW91dC5jb21wb25lbnQnKS50aGVuKGMgPT4gYy5DbG91ZElkZUxheW91dENvbXBvbmVudCksXHJcbiAgICAvLyBjYW5BY3RpdmF0ZTogW2F1dGhHdWFyZF1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBsYXlvdXRDb250cm9sUGFubmVsQ2hpbGRSb3V0ZXM6IFJvdXRlW10gPSBbe1xyXG4gICAgcGF0aDogXCJcIixcclxuICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICByZWRpcmVjdFRvOiBcImhvbWVcIlxyXG59LFxyXG57XHJcbiAgICBwYXRoOiBcImhvbWVcIixcclxuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9sYXlvdXQvaG9tZS9ob21lLXdyYXBwZXIvaG9tZS13cmFwcGVyLmNvbXBvbmVudCcpLnRoZW4oYyA9PiBjLkNpZGVMeXRIb21lV3JhcHBlckNvbXBvbmVudCksXHJcbiAgICBkYXRhOiB7XHJcbiAgICAgICAgcmV1c2VUYWI6IHRydWUsIC8vIEZvciBDdXN0b21Sb3V0ZVJldXNlU3RyYXRlZ3lcclxuICAgICAgICBzeXBnX3BhZ2VfY29kZTogXCJjaWRlX2x5dF9ob21lXCIgLy8gVXNlZCBieSBSZXF1ZXN0U2VydmljZSB0byBmZXRjaCB0YWIgcHJvcGVydGllc1xyXG4gICAgfVxyXG59XTtcclxuLy8ge1xyXG4vLyAgICAgcGF0aDogXCJhZG1pbi1ob21lXCIsXHJcbi8vICAgICBsb2FkQ29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4uLy4uLy4uL2Nsb3VkLWlkZS1hZG1pbi9zcmMvbGliL2FkbWluLW1vZHVsZS9ob21lL2hvbWUtd3JhcHBlci9jaWRlLWFkbS1ob21lLXdyYXBwZXIuY29tcG9uZW50JykudGhlbihjID0+IGMuQ2lkZUFkbUhvbWVXcmFwcGVyQ29tcG9uZW50KSxcclxuLy8gICAgIGRhdGE6IHtcclxuLy8gICAgICAgICByZXVzZVRhYjogdHJ1ZSwgLy8gRm9yIEN1c3RvbVJvdXRlUmV1c2VTdHJhdGVneVxyXG4vLyAgICAgICAgIHN5cGdfcGFnZV9jb2RlOiBcImNpZGVfYWRtX2hvbWVcIiAvLyBFeGFtcGxlOiBFbnN1cmUgdGhpcyBwYWdlIGNvZGUgaXMgY29uZmlndXJlZCBpbiB5b3VyIGJhY2tlbmRcclxuLy8gICAgIH1cclxuLy8gfV07XHJcbi8vIF0gICJdfQ==
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CloudIdeLayoutService {
|
|
4
|
-
constructor() { }
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CloudIdeLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CloudIdeLayoutService, providedIn: 'root' }); }
|
|
7
|
-
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CloudIdeLayoutService, decorators: [{
|
|
9
|
-
type: Injectable,
|
|
10
|
-
args: [{
|
|
11
|
-
providedIn: 'root'
|
|
12
|
-
}]
|
|
13
|
-
}], ctorParameters: () => [] });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtaWRlLWxheW91dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xvdWQtaWRlLWxheW91dC9zcmMvbGliL2Nsb3VkLWlkZS1sYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLGdCQUFnQixDQUFDOzhHQUZOLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRnBCLE1BQU07OzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbG91ZElkZUxheW91dFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcbiJdfQ==
|