@kris701/ez-ui 1.3.19 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -6889,6 +6889,7 @@ class EzUISideBarItem {
|
|
|
6889
6889
|
tuiAsideItem
|
|
6890
6890
|
tuiChevron
|
|
6891
6891
|
type="button"
|
|
6892
|
+
(click)="item.expanded = !item.expanded;onItemClick.emit()"
|
|
6892
6893
|
>
|
|
6893
6894
|
{{item.label}}
|
|
6894
6895
|
|
|
@@ -6931,6 +6932,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
|
|
|
6931
6932
|
tuiAsideItem
|
|
6932
6933
|
tuiChevron
|
|
6933
6934
|
type="button"
|
|
6935
|
+
(click)="item.expanded = !item.expanded;onItemClick.emit()"
|
|
6934
6936
|
>
|
|
6935
6937
|
{{item.label}}
|
|
6936
6938
|
|
|
@@ -7030,6 +7032,7 @@ class EzUISideBar {
|
|
|
7030
7032
|
...(ngDevMode ? [{ debugName: "haveMoved" }] : /* istanbul ignore next */ []));
|
|
7031
7033
|
baseRoute = signal("/", /* @ts-ignore */
|
|
7032
7034
|
...(ngDevMode ? [{ debugName: "baseRoute" }] : /* istanbul ignore next */ []));
|
|
7035
|
+
openStateKey = "ezui-sidebar-state";
|
|
7033
7036
|
constructor(layoutService, router) {
|
|
7034
7037
|
this.layoutService = layoutService;
|
|
7035
7038
|
this.router = router;
|
|
@@ -7042,17 +7045,79 @@ class EzUISideBar {
|
|
|
7042
7045
|
this.initialize();
|
|
7043
7046
|
}
|
|
7044
7047
|
initialize() {
|
|
7045
|
-
|
|
7046
|
-
|
|
7048
|
+
let sidebarItems = [...this.sidebarItems()];
|
|
7049
|
+
let sidebarFooterItems = [...this.sidebarFooterItems()];
|
|
7047
7050
|
this.hideEmptySections(sidebarItems);
|
|
7048
7051
|
this.hideEmptySections(sidebarFooterItems);
|
|
7049
7052
|
if (!this.haveMoved() && this.router.routerState.snapshot.url == this.baseRoute())
|
|
7050
7053
|
this.gotoFirstPage(sidebarItems);
|
|
7051
7054
|
this.setActiveRoute(sidebarItems);
|
|
7052
7055
|
this.setActiveRoute(sidebarFooterItems);
|
|
7056
|
+
let stateStr = localStorage.getItem(this.openStateKey);
|
|
7057
|
+
if (stateStr) {
|
|
7058
|
+
let state = JSON.parse(stateStr);
|
|
7059
|
+
this.setOpenStates(sidebarItems, state.sidebar);
|
|
7060
|
+
this.setOpenStates(sidebarFooterItems, state.footer);
|
|
7061
|
+
}
|
|
7053
7062
|
this.sidebarItems.set(sidebarItems);
|
|
7054
7063
|
this.sidebarFooterItems.set(sidebarFooterItems);
|
|
7055
7064
|
}
|
|
7065
|
+
saveState() {
|
|
7066
|
+
let state = {
|
|
7067
|
+
sidebar: this.getOpenStates(this.sidebarItems()),
|
|
7068
|
+
footer: this.getOpenStates(this.sidebarFooterItems())
|
|
7069
|
+
};
|
|
7070
|
+
console.log(state);
|
|
7071
|
+
localStorage.setItem(this.openStateKey, JSON.stringify(state));
|
|
7072
|
+
}
|
|
7073
|
+
getOpenStates(from) {
|
|
7074
|
+
let open = [];
|
|
7075
|
+
let index = 0;
|
|
7076
|
+
for (let item of from) {
|
|
7077
|
+
let subOpen = this.getOpenStatesRec(item);
|
|
7078
|
+
for (let value of subOpen) {
|
|
7079
|
+
if (value == "")
|
|
7080
|
+
open.push(index + "");
|
|
7081
|
+
else
|
|
7082
|
+
open.push(index + ";" + value);
|
|
7083
|
+
}
|
|
7084
|
+
index++;
|
|
7085
|
+
}
|
|
7086
|
+
return open;
|
|
7087
|
+
}
|
|
7088
|
+
getOpenStatesRec(from) {
|
|
7089
|
+
let open = [];
|
|
7090
|
+
if (from.items) {
|
|
7091
|
+
if (from.expanded)
|
|
7092
|
+
open.push("");
|
|
7093
|
+
let index = 0;
|
|
7094
|
+
for (let item of from.items) {
|
|
7095
|
+
let subOpen = this.getOpenStatesRec(item);
|
|
7096
|
+
for (let value of subOpen)
|
|
7097
|
+
open.push(index + ";" + value);
|
|
7098
|
+
index++;
|
|
7099
|
+
}
|
|
7100
|
+
}
|
|
7101
|
+
return open;
|
|
7102
|
+
}
|
|
7103
|
+
setOpenStates(from, state) {
|
|
7104
|
+
let index = 0;
|
|
7105
|
+
for (let item of from) {
|
|
7106
|
+
this.setOpenStatesRec(item, index + "", state);
|
|
7107
|
+
index++;
|
|
7108
|
+
}
|
|
7109
|
+
}
|
|
7110
|
+
setOpenStatesRec(from, fromIndex, state) {
|
|
7111
|
+
if (from.items) {
|
|
7112
|
+
if (state.includes(fromIndex))
|
|
7113
|
+
from.expanded = true;
|
|
7114
|
+
let index = 0;
|
|
7115
|
+
for (let item of from.items) {
|
|
7116
|
+
this.setOpenStatesRec(item, fromIndex + ";" + index, state);
|
|
7117
|
+
index++;
|
|
7118
|
+
}
|
|
7119
|
+
}
|
|
7120
|
+
}
|
|
7056
7121
|
hideEmptySections(menu) {
|
|
7057
7122
|
for (let item of menu) {
|
|
7058
7123
|
if (item.items) {
|
|
@@ -7077,7 +7142,7 @@ class EzUISideBar {
|
|
|
7077
7142
|
}
|
|
7078
7143
|
}
|
|
7079
7144
|
gotoFirstPage(menu) {
|
|
7080
|
-
|
|
7145
|
+
let first = menu.find((x) => x.visible == true);
|
|
7081
7146
|
if (first) {
|
|
7082
7147
|
if (first.items) {
|
|
7083
7148
|
this.gotoFirstPage(first.items);
|
|
@@ -7093,12 +7158,12 @@ class EzUISideBar {
|
|
|
7093
7158
|
@if(layoutService.isDesktop()){
|
|
7094
7159
|
<aside style="height:100%" tuitheme="" [tuiNavigationAside]="layoutService.isMenuExpanded()">
|
|
7095
7160
|
@for(item of sidebarItems(); track item){
|
|
7096
|
-
<ezui-sidebar-item [item]="item"/>
|
|
7161
|
+
<ezui-sidebar-item [item]="item" (onItemClick)="saveState()"/>
|
|
7097
7162
|
}
|
|
7098
7163
|
|
|
7099
7164
|
<footer>
|
|
7100
7165
|
@for(item of sidebarFooterItems(); track item){
|
|
7101
|
-
<ezui-sidebar-item [item]="item"/>
|
|
7166
|
+
<ezui-sidebar-item [item]="item" (onItemClick)="saveState()"/>
|
|
7102
7167
|
}
|
|
7103
7168
|
</footer>
|
|
7104
7169
|
</aside>
|
|
@@ -7106,12 +7171,12 @@ class EzUISideBar {
|
|
|
7106
7171
|
@else {
|
|
7107
7172
|
<aside style="height:100%" tuitheme="" [tuiNavigationAside]="true" [style.display]="layoutService.isMenuExpanded() ? '' : 'none'">
|
|
7108
7173
|
@for(item of sidebarItems(); track item){
|
|
7109
|
-
<ezui-sidebar-item [item]="item" (onItemClick)="layoutService.isMenuExpanded.set(false)"/>
|
|
7174
|
+
<ezui-sidebar-item [item]="item" (onItemClick)="layoutService.isMenuExpanded.set(false);saveState()"/>
|
|
7110
7175
|
}
|
|
7111
7176
|
|
|
7112
7177
|
<footer>
|
|
7113
7178
|
@for(item of sidebarFooterItems(); track item){
|
|
7114
|
-
<ezui-sidebar-item [item]="item" (onItemClick)="layoutService.isMenuExpanded.set(false)"/>
|
|
7179
|
+
<ezui-sidebar-item [item]="item" (onItemClick)="layoutService.isMenuExpanded.set(false);saveState()"/>
|
|
7115
7180
|
}
|
|
7116
7181
|
</footer>
|
|
7117
7182
|
</aside>
|
|
@@ -7128,12 +7193,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
|
|
|
7128
7193
|
@if(layoutService.isDesktop()){
|
|
7129
7194
|
<aside style="height:100%" tuitheme="" [tuiNavigationAside]="layoutService.isMenuExpanded()">
|
|
7130
7195
|
@for(item of sidebarItems(); track item){
|
|
7131
|
-
<ezui-sidebar-item [item]="item"/>
|
|
7196
|
+
<ezui-sidebar-item [item]="item" (onItemClick)="saveState()"/>
|
|
7132
7197
|
}
|
|
7133
7198
|
|
|
7134
7199
|
<footer>
|
|
7135
7200
|
@for(item of sidebarFooterItems(); track item){
|
|
7136
|
-
<ezui-sidebar-item [item]="item"/>
|
|
7201
|
+
<ezui-sidebar-item [item]="item" (onItemClick)="saveState()"/>
|
|
7137
7202
|
}
|
|
7138
7203
|
</footer>
|
|
7139
7204
|
</aside>
|
|
@@ -7141,12 +7206,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
|
|
|
7141
7206
|
@else {
|
|
7142
7207
|
<aside style="height:100%" tuitheme="" [tuiNavigationAside]="true" [style.display]="layoutService.isMenuExpanded() ? '' : 'none'">
|
|
7143
7208
|
@for(item of sidebarItems(); track item){
|
|
7144
|
-
<ezui-sidebar-item [item]="item" (onItemClick)="layoutService.isMenuExpanded.set(false)"/>
|
|
7209
|
+
<ezui-sidebar-item [item]="item" (onItemClick)="layoutService.isMenuExpanded.set(false);saveState()"/>
|
|
7145
7210
|
}
|
|
7146
7211
|
|
|
7147
7212
|
<footer>
|
|
7148
7213
|
@for(item of sidebarFooterItems(); track item){
|
|
7149
|
-
<ezui-sidebar-item [item]="item" (onItemClick)="layoutService.isMenuExpanded.set(false)"/>
|
|
7214
|
+
<ezui-sidebar-item [item]="item" (onItemClick)="layoutService.isMenuExpanded.set(false);saveState()"/>
|
|
7150
7215
|
}
|
|
7151
7216
|
</footer>
|
|
7152
7217
|
</aside>
|