cloud-ide-layout 1.0.7 → 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 +4 -6
- 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
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A custom route reuse strategy that allows storing and retrieving routes
|
|
3
|
-
* to persist component state, especially for tabbed navigation.
|
|
4
|
-
*/
|
|
5
|
-
export class CustomRouteReuseStrategy {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.storedRoutes = {};
|
|
8
|
-
}
|
|
9
|
-
// Generates a unique key for a route.
|
|
10
|
-
// For routes marked with 'reuseTab', this key includes sorted query parameters
|
|
11
|
-
// to ensure distinct states for tabs differing by query params.
|
|
12
|
-
getPathKey(route) {
|
|
13
|
-
let path = route.pathFromRoot
|
|
14
|
-
.map(r => r.url.map(segment => segment.path).join('/'))
|
|
15
|
-
.filter(p => p.length > 0)
|
|
16
|
-
.join('/');
|
|
17
|
-
// If the route is marked for tab reuse and has query parameters,
|
|
18
|
-
// append them to the key in a sorted, consistent manner.
|
|
19
|
-
if (route.data && route.data['reuseTab'] && route.queryParamMap.keys.length > 0) {
|
|
20
|
-
const queryParams = route.queryParamMap.keys
|
|
21
|
-
.sort() // Ensure consistent order of query parameters
|
|
22
|
-
.map(key => `${key}=${route.queryParamMap.get(key)}`)
|
|
23
|
-
.join('&');
|
|
24
|
-
path += '?' + queryParams;
|
|
25
|
-
}
|
|
26
|
-
return path;
|
|
27
|
-
}
|
|
28
|
-
// Determines if this route (and its subtree) should be detached to be reused later.
|
|
29
|
-
shouldDetach(route) {
|
|
30
|
-
return !!(route.data && route.data['reuseTab']);
|
|
31
|
-
}
|
|
32
|
-
// Stores the detached route.
|
|
33
|
-
store(route, handle) {
|
|
34
|
-
const pathKey = this.getPathKey(route);
|
|
35
|
-
if (handle && route.data && route.data['reuseTab'] && pathKey) {
|
|
36
|
-
this.storedRoutes[pathKey] = handle;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// Determines if this route (and its subtree) should be reattached.
|
|
40
|
-
shouldAttach(route) {
|
|
41
|
-
const pathKey = this.getPathKey(route);
|
|
42
|
-
return !!pathKey && !!this.storedRoutes[pathKey];
|
|
43
|
-
}
|
|
44
|
-
// Retrieves the previously stored route.
|
|
45
|
-
retrieve(route) {
|
|
46
|
-
const pathKey = this.getPathKey(route);
|
|
47
|
-
if (!pathKey || !this.storedRoutes[pathKey]) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
return this.storedRoutes[pathKey];
|
|
51
|
-
}
|
|
52
|
-
// Determines if a route should be reused.
|
|
53
|
-
shouldReuseRoute(future, curr) {
|
|
54
|
-
return future.routeConfig === curr.routeConfig;
|
|
55
|
-
}
|
|
56
|
-
// Clears a stored route, typically when a tab is closed.
|
|
57
|
-
clearStoredRoute(pathKey) {
|
|
58
|
-
delete this.storedRoutes[pathKey];
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJvdXRlLXJldXNlLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xvdWQtaWRlLWxheW91dC9zcmMvbGliL3V0aWxzL2N1c3RvbS1yb3V0ZS1yZXVzZS1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sd0JBQXdCO0lBQXJDO1FBQ1UsaUJBQVksR0FBMkMsRUFBRSxDQUFDO0lBNERwRSxDQUFDO0lBMURDLHNDQUFzQztJQUN0QywrRUFBK0U7SUFDL0UsZ0VBQWdFO0lBQ3hELFVBQVUsQ0FBQyxLQUE2QjtRQUM5QyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsWUFBWTthQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdEQsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7YUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWIsaUVBQWlFO1FBQ2pFLHlEQUF5RDtRQUN6RCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEYsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJO2lCQUN6QyxJQUFJLEVBQUUsQ0FBQyw4Q0FBOEM7aUJBQ3JELEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7aUJBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNiLElBQUksSUFBSSxHQUFHLEdBQUcsV0FBVyxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxvRkFBb0Y7SUFDcEYsWUFBWSxDQUFDLEtBQTZCO1FBQ3hDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixLQUFLLENBQUMsS0FBNkIsRUFBRSxNQUFrQztRQUNyRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVELG1FQUFtRTtJQUNuRSxZQUFZLENBQUMsS0FBNkI7UUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELHlDQUF5QztJQUN6QyxRQUFRLENBQUMsS0FBNkI7UUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsMENBQTBDO0lBQzFDLGdCQUFnQixDQUFDLE1BQThCLEVBQUUsSUFBNEI7UUFDM0UsT0FBTyxNQUFNLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDakQsQ0FBQztJQUVELHlEQUF5RDtJQUNsRCxnQkFBZ0IsQ0FBQyxPQUFlO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBEZXRhY2hlZFJvdXRlSGFuZGxlLCBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuLyoqXHJcbiAqIEEgY3VzdG9tIHJvdXRlIHJldXNlIHN0cmF0ZWd5IHRoYXQgYWxsb3dzIHN0b3JpbmcgYW5kIHJldHJpZXZpbmcgcm91dGVzXHJcbiAqIHRvIHBlcnNpc3QgY29tcG9uZW50IHN0YXRlLCBlc3BlY2lhbGx5IGZvciB0YWJiZWQgbmF2aWdhdGlvbi5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21Sb3V0ZVJldXNlU3RyYXRlZ3kgaW1wbGVtZW50cyBSb3V0ZVJldXNlU3RyYXRlZ3kge1xyXG4gIHByaXZhdGUgc3RvcmVkUm91dGVzOiB7IFtrZXk6IHN0cmluZ106IERldGFjaGVkUm91dGVIYW5kbGUgfSA9IHt9O1xyXG5cclxuICAvLyBHZW5lcmF0ZXMgYSB1bmlxdWUga2V5IGZvciBhIHJvdXRlLlxyXG4gIC8vIEZvciByb3V0ZXMgbWFya2VkIHdpdGggJ3JldXNlVGFiJywgdGhpcyBrZXkgaW5jbHVkZXMgc29ydGVkIHF1ZXJ5IHBhcmFtZXRlcnNcclxuICAvLyB0byBlbnN1cmUgZGlzdGluY3Qgc3RhdGVzIGZvciB0YWJzIGRpZmZlcmluZyBieSBxdWVyeSBwYXJhbXMuXHJcbiAgcHJpdmF0ZSBnZXRQYXRoS2V5KHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogc3RyaW5nIHtcclxuICAgIGxldCBwYXRoID0gcm91dGUucGF0aEZyb21Sb290XHJcbiAgICAgIC5tYXAociA9PiByLnVybC5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnBhdGgpLmpvaW4oJy8nKSlcclxuICAgICAgLmZpbHRlcihwID0+IHAubGVuZ3RoID4gMClcclxuICAgICAgLmpvaW4oJy8nKTtcclxuXHJcbiAgICAvLyBJZiB0aGUgcm91dGUgaXMgbWFya2VkIGZvciB0YWIgcmV1c2UgYW5kIGhhcyBxdWVyeSBwYXJhbWV0ZXJzLFxyXG4gICAgLy8gYXBwZW5kIHRoZW0gdG8gdGhlIGtleSBpbiBhIHNvcnRlZCwgY29uc2lzdGVudCBtYW5uZXIuXHJcbiAgICBpZiAocm91dGUuZGF0YSAmJiByb3V0ZS5kYXRhWydyZXVzZVRhYiddICYmIHJvdXRlLnF1ZXJ5UGFyYW1NYXAua2V5cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gcm91dGUucXVlcnlQYXJhbU1hcC5rZXlzXHJcbiAgICAgICAgLnNvcnQoKSAvLyBFbnN1cmUgY29uc2lzdGVudCBvcmRlciBvZiBxdWVyeSBwYXJhbWV0ZXJzXHJcbiAgICAgICAgLm1hcChrZXkgPT4gYCR7a2V5fT0ke3JvdXRlLnF1ZXJ5UGFyYW1NYXAuZ2V0KGtleSl9YClcclxuICAgICAgICAuam9pbignJicpO1xyXG4gICAgICBwYXRoICs9ICc/JyArIHF1ZXJ5UGFyYW1zO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhdGg7XHJcbiAgfVxyXG5cclxuICAvLyBEZXRlcm1pbmVzIGlmIHRoaXMgcm91dGUgKGFuZCBpdHMgc3VidHJlZSkgc2hvdWxkIGJlIGRldGFjaGVkIHRvIGJlIHJldXNlZCBsYXRlci5cclxuICBzaG91bGREZXRhY2gocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIShyb3V0ZS5kYXRhICYmIHJvdXRlLmRhdGFbJ3JldXNlVGFiJ10pO1xyXG4gIH1cclxuXHJcbiAgLy8gU3RvcmVzIHRoZSBkZXRhY2hlZCByb3V0ZS5cclxuICBzdG9yZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgaGFuZGxlOiBEZXRhY2hlZFJvdXRlSGFuZGxlIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGF0aEtleSA9IHRoaXMuZ2V0UGF0aEtleShyb3V0ZSk7XHJcbiAgICBpZiAoaGFuZGxlICYmIHJvdXRlLmRhdGEgJiYgcm91dGUuZGF0YVsncmV1c2VUYWInXSAmJiBwYXRoS2V5KSB7XHJcbiAgICAgIHRoaXMuc3RvcmVkUm91dGVzW3BhdGhLZXldID0gaGFuZGxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRGV0ZXJtaW5lcyBpZiB0aGlzIHJvdXRlIChhbmQgaXRzIHN1YnRyZWUpIHNob3VsZCBiZSByZWF0dGFjaGVkLlxyXG4gIHNob3VsZEF0dGFjaChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcGF0aEtleSA9IHRoaXMuZ2V0UGF0aEtleShyb3V0ZSk7XHJcbiAgICByZXR1cm4gISFwYXRoS2V5ICYmICEhdGhpcy5zdG9yZWRSb3V0ZXNbcGF0aEtleV07XHJcbiAgfVxyXG5cclxuICAvLyBSZXRyaWV2ZXMgdGhlIHByZXZpb3VzbHkgc3RvcmVkIHJvdXRlLlxyXG4gIHJldHJpZXZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogRGV0YWNoZWRSb3V0ZUhhbmRsZSB8IG51bGwge1xyXG4gICAgY29uc3QgcGF0aEtleSA9IHRoaXMuZ2V0UGF0aEtleShyb3V0ZSk7XHJcbiAgICBpZiAoIXBhdGhLZXkgfHwgIXRoaXMuc3RvcmVkUm91dGVzW3BhdGhLZXldKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmVkUm91dGVzW3BhdGhLZXldO1xyXG4gIH1cclxuXHJcbiAgLy8gRGV0ZXJtaW5lcyBpZiBhIHJvdXRlIHNob3VsZCBiZSByZXVzZWQuXHJcbiAgc2hvdWxkUmV1c2VSb3V0ZShmdXR1cmU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGN1cnI6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBmdXR1cmUucm91dGVDb25maWcgPT09IGN1cnIucm91dGVDb25maWc7XHJcbiAgfVxyXG5cclxuICAvLyBDbGVhcnMgYSBzdG9yZWQgcm91dGUsIHR5cGljYWxseSB3aGVuIGEgdGFiIGlzIGNsb3NlZC5cclxuICBwdWJsaWMgY2xlYXJTdG9yZWRSb3V0ZShwYXRoS2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGRlbGV0ZSB0aGlzLnN0b3JlZFJvdXRlc1twYXRoS2V5XTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './custom-route-reuse-strategy';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbG91ZC1pZGUtbGF5b3V0L3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3VzdG9tLXJvdXRlLXJldXNlLXN0cmF0ZWd5JzsiXX0=
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of cloud-ide-layout
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/cloud-ide-layout.service';
|
|
5
|
-
export * from './lib/cloud-ide-layout.component';
|
|
6
|
-
export * from './lib/layout/shared/shared-wrapper/shared-wrapper.component';
|
|
7
|
-
export * from './lib/layout/shared/shared.service';
|
|
8
|
-
export * from './lib/cloud-ide-layout.routes';
|
|
9
|
-
export * from './lib/utils';
|
|
10
|
-
export * from './lib/utils/custom-route-reuse-strategy';
|
|
11
|
-
// App State Management
|
|
12
|
-
export * from './lib/services/app-state/app-state.service';
|
|
13
|
-
export * from './lib/services/app-state';
|
|
14
|
-
export * from './lib/services/user-status/user-status.service';
|
|
15
|
-
export * from './lib/services/theme/theme.service';
|
|
16
|
-
// Modern Page Data Management (Legacy code removed)
|
|
17
|
-
export * from './lib/services/cache-manager/cache-manager.service';
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1sYXlvdXQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCx1QkFBdUI7QUFDdkIsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxvREFBb0Q7QUFDcEQsY0FBYyxvREFBb0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY2xvdWQtaWRlLWxheW91dFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nsb3VkLWlkZS1sYXlvdXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbG91ZC1pZGUtbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXQvc2hhcmVkL3NoYXJlZC13cmFwcGVyL3NoYXJlZC13cmFwcGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXQvc2hhcmVkL3NoYXJlZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nsb3VkLWlkZS1sYXlvdXQucm91dGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2N1c3RvbS1yb3V0ZS1yZXVzZS1zdHJhdGVneSc7XG5cbi8vIEFwcCBTdGF0ZSBNYW5hZ2VtZW50XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcHAtc3RhdGUvYXBwLXN0YXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBwLXN0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3VzZXItc3RhdHVzL3VzZXItc3RhdHVzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGhlbWUvdGhlbWUuc2VydmljZSc7XG5cbi8vIE1vZGVybiBQYWdlIERhdGEgTWFuYWdlbWVudCAoTGVnYWN5IGNvZGUgcmVtb3ZlZClcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NhY2hlLW1hbmFnZXIvY2FjaGUtbWFuYWdlci5zZXJ2aWNlJzsiXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class CloudIdeLayoutComponent {
|
|
3
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CloudIdeLayoutComponent, never>;
|
|
4
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CloudIdeLayoutComponent, "cide-lyt-wrapper", never, {}, {}, never, never, true, never>;
|
|
5
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class CideLytConsoleWrapperComponent {
|
|
3
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytConsoleWrapperComponent, never>;
|
|
4
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CideLytConsoleWrapperComponent, "cide-lyt-console-wrapper", never, {}, {}, never, never, true, never>;
|
|
5
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class CideLytConsoleService {
|
|
3
|
-
headerVisible: boolean;
|
|
4
|
-
constructor();
|
|
5
|
-
hideConsole(): void;
|
|
6
|
-
showConsole(): void;
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytConsoleService, never>;
|
|
8
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<CideLytConsoleService>;
|
|
9
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class CideLytFooterWrapperComponent {
|
|
3
|
-
footerSetupData: {
|
|
4
|
-
cide_lyt_footer_height: number;
|
|
5
|
-
};
|
|
6
|
-
constructor();
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytFooterWrapperComponent, never>;
|
|
8
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CideLytFooterWrapperComponent, "cide-lyt-footer-wrapper", never, {}, {}, never, never, true, never>;
|
|
9
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class CideLytFooterService {
|
|
3
|
-
footerVisible: boolean;
|
|
4
|
-
constructor();
|
|
5
|
-
hideFooter(): void;
|
|
6
|
-
showFooter(): void;
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytFooterService, never>;
|
|
8
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<CideLytFooterService>;
|
|
9
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit } from '@angular/core';
|
|
2
|
-
import { fileManagerResponseData } from 'cloud-ide-lms-model';
|
|
3
|
-
import { CideLytSharedWrapperComponent, CideLytSharedWrapperSetupParam } from '../../shared/shared-wrapper/shared-wrapper.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class CideLytHeaderWrapperComponent extends CideLytSharedWrapperComponent implements AfterViewInit {
|
|
6
|
-
shared_wrapper_setup_param: Partial<CideLytSharedWrapperSetupParam>;
|
|
7
|
-
protected syen_photo: Partial<fileManagerResponseData>;
|
|
8
|
-
private headerService;
|
|
9
|
-
private fileManagerService;
|
|
10
|
-
private router;
|
|
11
|
-
constructor();
|
|
12
|
-
ngAfterViewInit(): void;
|
|
13
|
-
/**
|
|
14
|
-
* Handles logo click to navigate back to control panel home
|
|
15
|
-
*/
|
|
16
|
-
onLogoClick(): void;
|
|
17
|
-
/**
|
|
18
|
-
* Updates the tooltip position based on mouse event
|
|
19
|
-
* Similar to the sidebar tooltip positioning
|
|
20
|
-
* @param event Mouse event from icon hover
|
|
21
|
-
*/
|
|
22
|
-
updateTooltipPosition(event: MouseEvent): void;
|
|
23
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytHeaderWrapperComponent, never>;
|
|
24
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CideLytHeaderWrapperComponent, "cide-lyt-header-wrapper", never, {}, {}, never, never, true, never>;
|
|
25
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class CideLytHeaderService {
|
|
3
|
-
headerVisible: boolean;
|
|
4
|
-
constructor();
|
|
5
|
-
hideHeader(): void;
|
|
6
|
-
showHeader(): void;
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytHeaderService, never>;
|
|
8
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<CideLytHeaderService>;
|
|
9
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { CideLytSharedWrapperComponent, CideLytSharedWrapperSetupParam } from '../../shared/shared-wrapper/shared-wrapper.component';
|
|
2
|
-
import { OnInit, ElementRef, AfterViewInit } from '@angular/core';
|
|
3
|
-
import { SafeHtml } from '@angular/platform-browser';
|
|
4
|
-
import { menuResponseData } from 'cloud-ide-lms-model';
|
|
5
|
-
import { CideLytRequestService } from '../../request/request.service';
|
|
6
|
-
import { AppStateHelperService } from '../../../services/app-state/app-state-helper.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
interface CardItem {
|
|
9
|
-
text?: string;
|
|
10
|
-
title?: string;
|
|
11
|
-
subtext?: string;
|
|
12
|
-
details?: string;
|
|
13
|
-
subject?: string;
|
|
14
|
-
grade?: string;
|
|
15
|
-
color?: string;
|
|
16
|
-
name?: string;
|
|
17
|
-
officeHours?: string;
|
|
18
|
-
messageLink?: string;
|
|
19
|
-
appointmentLink?: string;
|
|
20
|
-
professor?: string;
|
|
21
|
-
colorTheme?: string;
|
|
22
|
-
date?: {
|
|
23
|
-
month: string;
|
|
24
|
-
day: string;
|
|
25
|
-
};
|
|
26
|
-
themeColor?: string;
|
|
27
|
-
topic?: string;
|
|
28
|
-
forum?: string;
|
|
29
|
-
lastPost?: string;
|
|
30
|
-
iconSVG?: string;
|
|
31
|
-
safeIconSVG?: SafeHtml;
|
|
32
|
-
}
|
|
33
|
-
interface CardStat {
|
|
34
|
-
label: string;
|
|
35
|
-
value: string;
|
|
36
|
-
gradient?: string;
|
|
37
|
-
valueClass?: string;
|
|
38
|
-
}
|
|
39
|
-
interface Card {
|
|
40
|
-
id: string;
|
|
41
|
-
title: string;
|
|
42
|
-
type: string;
|
|
43
|
-
colSpan: string;
|
|
44
|
-
accentColor: string;
|
|
45
|
-
urgentText?: string;
|
|
46
|
-
insightTag?: string;
|
|
47
|
-
items?: CardItem[];
|
|
48
|
-
stats?: CardStat[];
|
|
49
|
-
progress?: string;
|
|
50
|
-
description?: string;
|
|
51
|
-
link?: {
|
|
52
|
-
text: string;
|
|
53
|
-
href: string;
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
interface ModulesSectionConfig {
|
|
57
|
-
title: string;
|
|
58
|
-
viewAllLinkText: string;
|
|
59
|
-
viewAllLinkHref: string;
|
|
60
|
-
showViewAllLink: boolean;
|
|
61
|
-
}
|
|
62
|
-
export declare class CideLytHomeWrapperComponent extends CideLytSharedWrapperComponent implements OnInit, AfterViewInit {
|
|
63
|
-
private requestService;
|
|
64
|
-
shared_wrapper_setup_param: Partial<CideLytSharedWrapperSetupParam>;
|
|
65
|
-
private readonly sidebarService;
|
|
66
|
-
private readonly sanitizer;
|
|
67
|
-
private readonly renderer;
|
|
68
|
-
private readonly cdr;
|
|
69
|
-
protected appState: AppStateHelperService;
|
|
70
|
-
private readonly router;
|
|
71
|
-
private moduleStylePresets;
|
|
72
|
-
constructor(requestService: CideLytRequestService);
|
|
73
|
-
modulesContainerRef: ElementRef<HTMLDivElement>;
|
|
74
|
-
scrollPrevModuleBtnRef: ElementRef<HTMLButtonElement>;
|
|
75
|
-
scrollNextModuleBtnRef: ElementRef<HTMLButtonElement>;
|
|
76
|
-
cardsContainerElRef: ElementRef<HTMLDivElement>;
|
|
77
|
-
modulesSectionConfig: ModulesSectionConfig;
|
|
78
|
-
modulesData: (menuResponseData & {
|
|
79
|
-
accentColor?: string;
|
|
80
|
-
pillCount?: number;
|
|
81
|
-
})[];
|
|
82
|
-
draggedItem: HTMLElement | null;
|
|
83
|
-
placeholder: HTMLElement | null;
|
|
84
|
-
ngOnInit(): void;
|
|
85
|
-
openModule(module: menuResponseData): void;
|
|
86
|
-
ngAfterViewInit(): void;
|
|
87
|
-
private loadModules;
|
|
88
|
-
cardsData: Card[];
|
|
89
|
-
setupModuleScroller(): void;
|
|
90
|
-
setupDragAndDrop(): void;
|
|
91
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytHomeWrapperComponent, never>;
|
|
92
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CideLytHomeWrapperComponent, "cide-lyt-home-wrapper", never, {}, {}, never, never, true, never>;
|
|
93
|
-
}
|
|
94
|
-
export {};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class CideLytLayoutWrapperComponent {
|
|
3
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytLayoutWrapperComponent, never>;
|
|
4
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CideLytLayoutWrapperComponent, "cide-lyt-layout-wrapper", never, {}, {}, never, never, true, never>;
|
|
5
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ElementRef, QueryList, AfterViewInit } from '@angular/core';
|
|
2
|
-
import { CideLytRequestService } from '../request.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class CideLytRequestWrapperComponent implements AfterViewInit {
|
|
5
|
-
requestService: CideLytRequestService;
|
|
6
|
-
requestItemElements: QueryList<ElementRef>;
|
|
7
|
-
requestItems: import("@angular/core").Signal<import("../request.service").TabInfo[]>;
|
|
8
|
-
constructor(requestService: CideLytRequestService);
|
|
9
|
-
ngAfterViewInit(): void;
|
|
10
|
-
private applyAnimations;
|
|
11
|
-
applyFlickerEffect(event: Event): void;
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytRequestWrapperComponent, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CideLytRequestWrapperComponent, "cide-lyt-request-wrapper", never, {}, {}, never, never, true, never>;
|
|
14
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { WritableSignal, Signal } from '@angular/core';
|
|
2
|
-
import { ISytmLayout } from 'cloud-ide-lms-model';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export interface TabInfo {
|
|
5
|
-
id: string;
|
|
6
|
-
title: string;
|
|
7
|
-
route: string;
|
|
8
|
-
params?: Record<string, unknown>;
|
|
9
|
-
active: boolean;
|
|
10
|
-
sytm_page_id_sypg: string;
|
|
11
|
-
themeId: string;
|
|
12
|
-
loadedComponent?: unknown;
|
|
13
|
-
scrollTop?: number;
|
|
14
|
-
scrollLeft?: number;
|
|
15
|
-
layout?: ISytmLayout;
|
|
16
|
-
}
|
|
17
|
-
interface PageDataResponse {
|
|
18
|
-
data?: {
|
|
19
|
-
page?: {
|
|
20
|
-
sypg_title?: string;
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
export declare class CideLytRequestService {
|
|
25
|
-
requestVisible: boolean;
|
|
26
|
-
tabsSignal: WritableSignal<TabInfo[]>;
|
|
27
|
-
activeTabIdSignal: WritableSignal<string | null>;
|
|
28
|
-
tabs: Signal<TabInfo[]>;
|
|
29
|
-
activeTabId: Signal<string | null>;
|
|
30
|
-
activeTab: Signal<TabInfo | undefined>;
|
|
31
|
-
private router;
|
|
32
|
-
private routeReuseStrategy;
|
|
33
|
-
private tabStateService;
|
|
34
|
-
private sidedrawerService;
|
|
35
|
-
private sharedService;
|
|
36
|
-
constructor();
|
|
37
|
-
/**
|
|
38
|
-
* Handle request visibility changes from shared service
|
|
39
|
-
*/
|
|
40
|
-
private handleRequestVisibility;
|
|
41
|
-
/**
|
|
42
|
-
* Handle sidebar sync when tab becomes active
|
|
43
|
-
*/
|
|
44
|
-
private handleSidebarSync;
|
|
45
|
-
/**
|
|
46
|
-
* Handle route-based tab management - called by shared service
|
|
47
|
-
* This method checks for existing tabs and creates/activates as needed
|
|
48
|
-
*/
|
|
49
|
-
handleRouteBasedTabManagement(currentRoutePath: string, queryParams: Record<string, unknown>, layout: ISytmLayout, pageData: PageDataResponse, pageCode: string): void;
|
|
50
|
-
addTab(title: string, route: string, params?: Record<string, unknown>, layout?: ISytmLayout): string;
|
|
51
|
-
activateTab(tabId: string): void;
|
|
52
|
-
closeTab(id: string): void;
|
|
53
|
-
hideRequest(): void;
|
|
54
|
-
showRequest(): void;
|
|
55
|
-
private generateId;
|
|
56
|
-
updateTabScrollPosition(tabId: string, scrollTop: number, scrollLeft: number): void;
|
|
57
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytRequestService, never>;
|
|
58
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<CideLytRequestService>;
|
|
59
|
-
}
|
|
60
|
-
export {};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ElementRef, AfterViewInit, ChangeDetectorRef } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { CideLytRequestService } from '../request.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class TabContentComponent implements AfterViewInit {
|
|
6
|
-
private requestService;
|
|
7
|
-
private router;
|
|
8
|
-
private cdr;
|
|
9
|
-
scrollContainerRef: ElementRef<HTMLDivElement>;
|
|
10
|
-
private currentActiveTabId;
|
|
11
|
-
private isRestoringScroll;
|
|
12
|
-
constructor(requestService: CideLytRequestService, router: Router, // Inject Router to listen for NavigationEnd
|
|
13
|
-
cdr: ChangeDetectorRef);
|
|
14
|
-
ngAfterViewInit(): void;
|
|
15
|
-
onScroll(): void;
|
|
16
|
-
private restoreScrollPosition;
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TabContentComponent, never>;
|
|
18
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TabContentComponent, "cide-lyt-tab-content", never, {}, {}, never, never, true, never>;
|
|
19
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { designConfigResponseData } from 'cloud-ide-lms-model';
|
|
3
|
-
import { AppStateHelperService } from '../../../services/app-state/app-state-helper.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class CideLytSharedWrapperComponent implements OnInit {
|
|
6
|
-
shared_wrapper_setup_param: Partial<CideLytSharedWrapperSetupParam>;
|
|
7
|
-
page_data: designConfigResponseData;
|
|
8
|
-
private sharedService;
|
|
9
|
-
private sidedrawerService;
|
|
10
|
-
protected appState: AppStateHelperService;
|
|
11
|
-
ngOnInit(): void;
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytSharedWrapperComponent, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CideLytSharedWrapperComponent, "cide-lyt-shared-wrapper", never, {}, {}, never, never, true, never>;
|
|
14
|
-
}
|
|
15
|
-
export interface CideLytSharedWrapperSetupParam {
|
|
16
|
-
sypg_page_code: string;
|
|
17
|
-
}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { designConfigControllerResponse, ISytmLayout, MDesignConfig } from 'cloud-ide-lms-model';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { Title } from '@angular/platform-browser';
|
|
4
|
-
import { CideLytSharedWrapperSetupParam } from './shared-wrapper/shared-wrapper.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
interface CachedPageData {
|
|
7
|
-
request: Partial<CideLytSharedWrapperSetupParam>;
|
|
8
|
-
response: designConfigControllerResponse;
|
|
9
|
-
timestamp: number;
|
|
10
|
-
ttl: number;
|
|
11
|
-
}
|
|
12
|
-
export declare class CideLytSharedService {
|
|
13
|
-
private pageDataCacheSignal;
|
|
14
|
-
private loadingStateSignal;
|
|
15
|
-
readonly pageDataCache: import("@angular/core").Signal<{
|
|
16
|
-
[key: string]: CachedPageData;
|
|
17
|
-
}>;
|
|
18
|
-
readonly loadingStates: import("@angular/core").Signal<{
|
|
19
|
-
[key: string]: boolean;
|
|
20
|
-
}>;
|
|
21
|
-
readonly cacheInfo: import("@angular/core").Signal<{
|
|
22
|
-
totalCached: number;
|
|
23
|
-
validCached: number;
|
|
24
|
-
expiredCached: number;
|
|
25
|
-
}>;
|
|
26
|
-
private inflightRequests;
|
|
27
|
-
private readonly DEFAULT_CACHE_TTL;
|
|
28
|
-
private elementService;
|
|
29
|
-
private http;
|
|
30
|
-
titleService: Title;
|
|
31
|
-
private sidebarService;
|
|
32
|
-
private headerService;
|
|
33
|
-
private footerService;
|
|
34
|
-
private consoleService;
|
|
35
|
-
private sidedrawerService;
|
|
36
|
-
private router;
|
|
37
|
-
private appState;
|
|
38
|
-
private routeSubscription?;
|
|
39
|
-
private pageDataSubscription?;
|
|
40
|
-
private tabManagementCallback?;
|
|
41
|
-
private requestVisibilityCallback?;
|
|
42
|
-
constructor();
|
|
43
|
-
/**
|
|
44
|
-
* Register tab management callback from request service
|
|
45
|
-
* This allows shared service to call request service without circular dependency
|
|
46
|
-
*/
|
|
47
|
-
registerTabManagement(callback: (currentRoutePath: string, queryParams: Record<string, unknown>, layout: ISytmLayout, pageData: designConfigControllerResponse, pageCode: string) => void): void;
|
|
48
|
-
/**
|
|
49
|
-
* Register request visibility callback from request service
|
|
50
|
-
* This allows shared service to control request wrapper visibility
|
|
51
|
-
*/
|
|
52
|
-
registerRequestVisibility(callback: (show: boolean) => void): void;
|
|
53
|
-
/**
|
|
54
|
-
* Enhanced loadPageData with caching and deduplication
|
|
55
|
-
* @param body - Request payload
|
|
56
|
-
* @param forceRefresh - Force API call even if cached data exists
|
|
57
|
-
* @param customTTL - Custom cache TTL in milliseconds
|
|
58
|
-
*/
|
|
59
|
-
loadPageData(body: MDesignConfig, forceRefresh?: boolean, customTTL?: number): Observable<designConfigControllerResponse>;
|
|
60
|
-
/**
|
|
61
|
-
* Consolidated method to load and process page data
|
|
62
|
-
* This replaces the separate calls in request service and shared wrapper
|
|
63
|
-
*/
|
|
64
|
-
loadAndProcessPageData(body: MDesignConfig, options?: {
|
|
65
|
-
forceRefresh?: boolean;
|
|
66
|
-
customTTL?: number;
|
|
67
|
-
setTitle?: boolean;
|
|
68
|
-
setSidebarContext?: boolean;
|
|
69
|
-
updateLayout?: boolean;
|
|
70
|
-
}): Observable<designConfigControllerResponse>;
|
|
71
|
-
/**
|
|
72
|
-
* Get cached page data without making API call
|
|
73
|
-
*/
|
|
74
|
-
getCachedPageData(pageCode: string): designConfigControllerResponse | null;
|
|
75
|
-
/**
|
|
76
|
-
* Check if loading for a specific page code
|
|
77
|
-
*/
|
|
78
|
-
isLoading(pageCode: string): boolean;
|
|
79
|
-
/**
|
|
80
|
-
* Invalidate cache for specific page code
|
|
81
|
-
*/
|
|
82
|
-
invalidateCache(pageCode: string): void;
|
|
83
|
-
/**
|
|
84
|
-
* Clear all cached data
|
|
85
|
-
*/
|
|
86
|
-
clearAllCache(): void;
|
|
87
|
-
/**
|
|
88
|
-
* Preload page data for better performance
|
|
89
|
-
*/
|
|
90
|
-
preloadPageData(pageCodes: string[]): void;
|
|
91
|
-
private hasValidCache;
|
|
92
|
-
private isCacheValid;
|
|
93
|
-
private cachePageData;
|
|
94
|
-
private setLoadingState;
|
|
95
|
-
private cleanExpiredCache;
|
|
96
|
-
setPageData(page_data_response: designConfigControllerResponse, page_data_payload: Partial<CideLytSharedWrapperSetupParam>): void;
|
|
97
|
-
/**
|
|
98
|
-
* Handle route changes - moved from request service for better architecture
|
|
99
|
-
* This method loads page data and calls request service to manage tabs
|
|
100
|
-
*/
|
|
101
|
-
private handleRouteChange;
|
|
102
|
-
/**
|
|
103
|
-
* Handle tab request by calling request service
|
|
104
|
-
*/
|
|
105
|
-
private handleTabRequest;
|
|
106
|
-
/**
|
|
107
|
-
* Sync the active menu in the sidebar based on the loaded page data.
|
|
108
|
-
* This ensures the correct module is highlighted in the sidebar.
|
|
109
|
-
*/
|
|
110
|
-
private syncSidebarActiveMenu;
|
|
111
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytSharedService, never>;
|
|
112
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<CideLytSharedService>;
|
|
113
|
-
}
|
|
114
|
-
export {};
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { menuResponseData } from 'cloud-ide-lms-model';
|
|
3
|
-
import { AppStateHelperService } from '../../../services/app-state';
|
|
4
|
-
import { CideLytUserStatusService, type UserStatus } from '../../../services/user-status/user-status.service';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class CideLytSidebarWrapperComponent implements OnInit {
|
|
7
|
-
sidebarSetupData: {
|
|
8
|
-
cide_lyt_sidebar_width: number;
|
|
9
|
-
};
|
|
10
|
-
isCollapsed: boolean;
|
|
11
|
-
darkMode: boolean;
|
|
12
|
-
showUserMenu: boolean;
|
|
13
|
-
showOptions: boolean;
|
|
14
|
-
showNotifications: boolean;
|
|
15
|
-
showNotificationsPanel: boolean;
|
|
16
|
-
searchText: string;
|
|
17
|
-
isExpanded: boolean;
|
|
18
|
-
searchResults: {
|
|
19
|
-
icon: string;
|
|
20
|
-
title: string;
|
|
21
|
-
}[];
|
|
22
|
-
collapsedSections: {
|
|
23
|
-
[key: string]: boolean;
|
|
24
|
-
};
|
|
25
|
-
expandedSections: {
|
|
26
|
-
[key: string]: boolean;
|
|
27
|
-
};
|
|
28
|
-
animateSections: boolean[];
|
|
29
|
-
lastScrollTop: number;
|
|
30
|
-
scrolledPast: boolean[];
|
|
31
|
-
core_system_menu: menuResponseData[];
|
|
32
|
-
core_system_module: menuResponseData[];
|
|
33
|
-
activeModuleId: string;
|
|
34
|
-
hoverModuleId: string;
|
|
35
|
-
animateItems: boolean;
|
|
36
|
-
moduleLoadComplete: boolean;
|
|
37
|
-
menuLoadComplete: boolean;
|
|
38
|
-
loadingMenus: boolean;
|
|
39
|
-
get selectedModuleMenus(): menuResponseData[];
|
|
40
|
-
/**
|
|
41
|
-
* Gets the CSS classes for the user status indicator
|
|
42
|
-
* Uses the injected user status service
|
|
43
|
-
*/
|
|
44
|
-
getUserStatusClass(): string;
|
|
45
|
-
/**
|
|
46
|
-
* Gets the tooltip text for the user status
|
|
47
|
-
* Uses the injected user status service
|
|
48
|
-
*/
|
|
49
|
-
getUserStatusText(): string;
|
|
50
|
-
/**
|
|
51
|
-
* Sets the user status (delegates to service)
|
|
52
|
-
* @param status The new status to set
|
|
53
|
-
* @param message Optional custom status message
|
|
54
|
-
*/
|
|
55
|
-
setUserStatus(status: UserStatus, message?: string): void;
|
|
56
|
-
/**
|
|
57
|
-
* Gets the current user status data
|
|
58
|
-
*/
|
|
59
|
-
get currentUserStatus(): import("../../../services/user-status/user-status.service").UserStatusData;
|
|
60
|
-
/**
|
|
61
|
-
* Gets the icon for the currently active module
|
|
62
|
-
* @returns The icon name for the active module or a default icon
|
|
63
|
-
*/
|
|
64
|
-
getActiveModuleIcon(): string;
|
|
65
|
-
onMenuClick(menu: menuResponseData): void;
|
|
66
|
-
/**
|
|
67
|
-
* Toggle section expand/collapse state
|
|
68
|
-
*/
|
|
69
|
-
toggleSection(sectionId: string): void;
|
|
70
|
-
/**
|
|
71
|
-
* Check if section is expanded
|
|
72
|
-
*/
|
|
73
|
-
isSectionExpanded(sectionId: string): boolean;
|
|
74
|
-
private sidebarService;
|
|
75
|
-
private elementRef;
|
|
76
|
-
appState: AppStateHelperService;
|
|
77
|
-
private router;
|
|
78
|
-
protected userStatusService: CideLytUserStatusService;
|
|
79
|
-
constructor();
|
|
80
|
-
ngOnInit(): void;
|
|
81
|
-
/**
|
|
82
|
-
* Load menus for a specific module
|
|
83
|
-
* @param module The module to load menus for
|
|
84
|
-
*/
|
|
85
|
-
loadMenusForModule(module: menuResponseData): void;
|
|
86
|
-
toggleSidebar(): void;
|
|
87
|
-
toggleUserMenu(): void;
|
|
88
|
-
/**
|
|
89
|
-
* Sets the active menu item with animation
|
|
90
|
-
* @param moduleId The ID of the module to set as active
|
|
91
|
-
*/
|
|
92
|
-
setActiveMenu(moduleId: string): void;
|
|
93
|
-
/**
|
|
94
|
-
* Sets the active menu item by index with animation
|
|
95
|
-
* @param index The index of the menu item
|
|
96
|
-
*/
|
|
97
|
-
setActiveMenuByIndex(index: number): void;
|
|
98
|
-
/**
|
|
99
|
-
* Public method to set active module by ID from external components
|
|
100
|
-
* This is useful when you want to programmatically set the active module
|
|
101
|
-
* @param moduleId The ID of the module to set as active
|
|
102
|
-
* @returns boolean indicating if the module was found and set as active
|
|
103
|
-
*/
|
|
104
|
-
setActiveModuleById(moduleId: string): boolean;
|
|
105
|
-
/**
|
|
106
|
-
* Public method to get the currently active module ID
|
|
107
|
-
* @returns The ID of the currently active module, or empty string if none
|
|
108
|
-
*/
|
|
109
|
-
getActiveModuleId(): string;
|
|
110
|
-
/**
|
|
111
|
-
* Tracks hover state for enhanced visual feedback
|
|
112
|
-
* @param moduleId The ID of the hovered module, or empty string for none
|
|
113
|
-
*/
|
|
114
|
-
onItemHover(moduleId: string): void;
|
|
115
|
-
/**
|
|
116
|
-
* Adds subtle animations when opening dropdown menus
|
|
117
|
-
* @param menuId The ID of the menu element
|
|
118
|
-
*/
|
|
119
|
-
animateMenuOpen(menuId: string): void;
|
|
120
|
-
/**
|
|
121
|
-
* Updates tooltip position for more accurate placement
|
|
122
|
-
* @param event MouseEvent from hovering
|
|
123
|
-
* @param tooltip The tooltip element
|
|
124
|
-
*/
|
|
125
|
-
updateTooltipPosition(event: MouseEvent, tooltipIndex: number): void;
|
|
126
|
-
toggleNotificationsPanel(): void;
|
|
127
|
-
toggleTheme(): void;
|
|
128
|
-
toggleOptions(): void;
|
|
129
|
-
/**
|
|
130
|
-
* Toggle old-style collapsed sections (for backwards compatibility)
|
|
131
|
-
*/
|
|
132
|
-
toggleCollapsedSection(section: string): void;
|
|
133
|
-
isSectionCollapsed(section: string): boolean;
|
|
134
|
-
onSearch(): void;
|
|
135
|
-
onScroll(event: Event): void;
|
|
136
|
-
resetAnimations(): void;
|
|
137
|
-
onDocumentClick(event: MouseEvent): void;
|
|
138
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideLytSidebarWrapperComponent, never>;
|
|
139
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CideLytSidebarWrapperComponent, "cide-lyt-sidebar-wrapper", never, {}, {}, never, never, true, never>;
|
|
140
|
-
}
|