ngrx-entity-crud 19.2.2 → 19.2.5
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/package.json +1 -1
- package/schematics/my-utility.js +1 -0
- package/schematics/my-utility.js.map +1 -1
- package/schematics/my-utility.ts +1 -0
- package/schematics/ng-add/files/src/app/app-routing.module.ts +10 -0
- package/schematics/ng-add/files/src/app/app.component.ts +23 -0
- package/schematics/ng-add/files/src/app/app.module.ts +31 -0
- package/schematics/ng-add/files/src/app/core/theme/components/footer.component.ts +28 -24
- package/schematics/ng-add/files/src/app/core/theme/components/header.component.ts +40 -28
- package/schematics/ng-add/files/src/app/core/theme/components/main.component.ts +40 -33
- package/schematics/ng-add/files/src/app/core/theme/components/menu-item.component.ts +36 -29
- package/schematics/ng-add/files/src/app/core/theme/components/progress.component.ts +12 -4
- package/schematics/ng-add/files/src/app/core/theme/components/slide-menu-pro.component.ts +68 -59
- package/schematics/ng-add/files/src/app/core/theme/components/slide-menu.component.ts +62 -51
- package/schematics/ng-add/files/src/app/core/theme/css/_variables.scss +6 -6
- package/schematics/ng-add/files/src/app/main/components/search/search.component.ts +0 -2
- package/schematics/ng-add/files/src/app/primeuix-presets.ts +20 -0
- package/schematics/ng-add/files/src/app/root-store/root-store.module.ts +5 -0
- package/schematics/ng-add/files/src/app/root-store/router-store/effects.ts +7 -6
- package/schematics/ng-add/files/src/app/root-store/router-store/reducer.ts +0 -1
- package/schematics/ng-add/files/src/app/root-store/router-store/router-store.module.ts +3 -1
- package/schematics/ng-add/files/src/app/root-store/router-store/state.ts +0 -1
- package/schematics/ng-add/files/src/app/root-store/selectors.ts +0 -1
- package/schematics/ng-add/files/src/app/root-store/state.ts +0 -1
- package/schematics/ng-add/files/src/styles.scss +1 -3
- package/schematics/ng-add/index.js +9 -0
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/index.ts +9 -0
package/package.json
CHANGED
package/schematics/my-utility.js
CHANGED
|
@@ -223,6 +223,7 @@ function updateTsConfigSelector() {
|
|
|
223
223
|
};
|
|
224
224
|
console.log('compilerOptionsPathsB', compilerOptionsPathsB);
|
|
225
225
|
tsconfigJson.compilerOptions.paths = Object.assign(Object.assign({}, compilerOptionsPaths), compilerOptionsPathsB);
|
|
226
|
+
tsconfigJson.compilerOptions.baseUrl = './';
|
|
226
227
|
tsconfigJson.compilerOptions.strict = false;
|
|
227
228
|
tsconfigJson.angularCompilerOptions.strictPropertyInitialization = false;
|
|
228
229
|
console.log('tsconfigJson', tsconfigJson);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"my-utility.js","sourceRoot":"","sources":["my-utility.ts"],"names":[],"mappings":";;AAwBA,8BAgBC;AAKD,kCAiBC;AAKD,8BAWC;AAKD,0CAwBC;AA+BD,0BAWC;AAKD,4DAsCC;AAKD,sEAoCC;AA4BD,wBAiBC;AAED,
|
|
1
|
+
{"version":3,"file":"my-utility.js","sourceRoot":"","sources":["my-utility.ts"],"names":[],"mappings":"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"}
|
package/schematics/my-utility.ts
CHANGED
|
@@ -304,6 +304,7 @@ export function updateTsConfigSelector(): Rule {
|
|
|
304
304
|
...compilerOptionsPaths,
|
|
305
305
|
...compilerOptionsPathsB,
|
|
306
306
|
};
|
|
307
|
+
tsconfigJson.compilerOptions.baseUrl = './';
|
|
307
308
|
tsconfigJson.compilerOptions.strict = false;
|
|
308
309
|
tsconfigJson.angularCompilerOptions.strictPropertyInitialization = false;
|
|
309
310
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import {SlideMenuProComponent} from '@core/theme/components/slide-menu-pro.component';
|
|
3
|
+
import {HeaderComponent} from '@core/theme/components/header.component';
|
|
4
|
+
import {FooterComponent} from '@core/theme/components/footer.component';
|
|
5
|
+
import {MainComponent} from '@core/theme/components/main.component';
|
|
6
|
+
import {ProgressComponent} from '@core/theme/components/progress.component';
|
|
7
|
+
import {RouterOutlet} from '@angular/router';
|
|
8
|
+
|
|
9
|
+
@Component({
|
|
10
|
+
selector: 'app-root',
|
|
11
|
+
standalone: true,
|
|
12
|
+
imports: [
|
|
13
|
+
SlideMenuProComponent,
|
|
14
|
+
HeaderComponent,
|
|
15
|
+
FooterComponent,
|
|
16
|
+
MainComponent,
|
|
17
|
+
ProgressComponent,
|
|
18
|
+
RouterOutlet
|
|
19
|
+
],
|
|
20
|
+
templateUrl: './app.component.html'
|
|
21
|
+
})
|
|
22
|
+
export class AppComponent {
|
|
23
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {NgModule} from '@angular/core';
|
|
2
|
+
import {BrowserModule} from '@angular/platform-browser';
|
|
3
|
+
import {AppRoutingModule} from './app-routing.module';
|
|
4
|
+
import {AppComponent} from './app.component';
|
|
5
|
+
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
|
|
6
|
+
import {RootStoreModule} from './root-store';
|
|
7
|
+
import {HttpClientModule} from '@angular/common/http';
|
|
8
|
+
import {providePrimeNG} from 'primeng/config';
|
|
9
|
+
import {PrimeuixPresets} from './primeuix-presets';
|
|
10
|
+
|
|
11
|
+
@NgModule({
|
|
12
|
+
imports: [
|
|
13
|
+
BrowserModule,
|
|
14
|
+
AppRoutingModule,
|
|
15
|
+
BrowserAnimationsModule,
|
|
16
|
+
RootStoreModule,
|
|
17
|
+
HttpClientModule
|
|
18
|
+
],
|
|
19
|
+
providers: [
|
|
20
|
+
providePrimeNG({
|
|
21
|
+
theme: {
|
|
22
|
+
preset: PrimeuixPresets, // Qui definisci il tema per tutta l'app
|
|
23
|
+
options: {
|
|
24
|
+
// darkModeSelector: false
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
})
|
|
28
|
+
],
|
|
29
|
+
bootstrap: [AppComponent]
|
|
30
|
+
})
|
|
31
|
+
export class AppModule {}
|
|
@@ -1,42 +1,46 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import {ChangeDetectionStrategy, Component, inject, OnInit} from '@angular/core';
|
|
2
|
+
import {Store} from '@ngrx/store';
|
|
3
3
|
|
|
4
4
|
@Component({
|
|
5
5
|
selector: 'app-footer',
|
|
6
6
|
template: `
|
|
7
7
|
<footer class="footer">
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
<div class="float-left">
|
|
9
|
+
<small> footer </small>
|
|
10
|
+
</div>
|
|
11
11
|
</footer>
|
|
12
12
|
`,
|
|
13
13
|
styles: [
|
|
14
14
|
`
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
16
|
+
:host {
|
|
17
|
+
position: fixed;
|
|
18
|
+
bottom: 0;
|
|
19
|
+
width: 100%;
|
|
20
|
+
min-height: var(--footer-height);
|
|
21
|
+
background-color: var(--footer-bg-color);
|
|
22
|
+
border-top: 1px dotted var(--footer-border-color);
|
|
23
|
+
padding-left: 1em;
|
|
24
|
+
padding-right: 1em;
|
|
25
|
+
-webkit-box-shadow: 0 -1px 3px 1px rgba(0, 0, 0, 0.1);
|
|
26
|
+
-moz-box-shadow: 0 -1px 3px 1px rgba(0, 0, 0, 0.1);
|
|
27
|
+
box-shadow: 0 -1px 3px 1px rgba(0, 0, 0, 0.1);
|
|
28
|
+
}
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
:host(.menu-opened) {
|
|
31
|
+
left: var(--menu-width);
|
|
32
|
+
}
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
`,
|
|
35
35
|
],
|
|
36
36
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
37
37
|
})
|
|
38
38
|
export class FooterComponent implements OnInit {
|
|
39
|
-
|
|
39
|
+
private store$ = inject(Store);
|
|
40
|
+
|
|
41
|
+
constructor() {
|
|
42
|
+
}
|
|
40
43
|
|
|
41
|
-
ngOnInit() {
|
|
44
|
+
ngOnInit() {
|
|
45
|
+
}
|
|
42
46
|
}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ChangeDetectionStrategy,
|
|
3
3
|
Component,
|
|
4
|
-
HostBinding,
|
|
4
|
+
HostBinding, inject,
|
|
5
5
|
OnInit,
|
|
6
6
|
} from '@angular/core';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import {Observable, tap} from 'rxjs';
|
|
8
|
+
import {Store} from '@ngrx/store';
|
|
9
9
|
import {
|
|
10
10
|
ThemeUiStoreActions,
|
|
11
11
|
ThemeUiStoreSelectors,
|
|
12
12
|
} from '../store/theme-ui-store';
|
|
13
|
+
import {Tooltip} from 'primeng/tooltip';
|
|
14
|
+
import {NgClass} from '@angular/common';
|
|
15
|
+
import {LetDirective} from '@ngrx/component';
|
|
13
16
|
|
|
14
17
|
@Component({
|
|
15
18
|
selector: 'app-header',
|
|
@@ -17,7 +20,8 @@ import {
|
|
|
17
20
|
<header class="flex justify-content-between flex-nowrap text-white m-0 header-height overflow-auto">
|
|
18
21
|
<div class="flex-none flex align-items-center justify-content-center">
|
|
19
22
|
<div *ngrxLet="open$; let open">
|
|
20
|
-
<em class="pi icon-button" [pTooltip]="open ? '' : 'pin opened menu'"
|
|
23
|
+
<em class="pi icon-button" [pTooltip]="open ? '' : 'pin opened menu'"
|
|
24
|
+
[ngClass]="open ? 'pi-times' : 'pi-bars'"
|
|
21
25
|
(click)="onShowMenu($event,open)"></em>
|
|
22
26
|
</div>
|
|
23
27
|
</div>
|
|
@@ -34,33 +38,38 @@ import {
|
|
|
34
38
|
styles: [
|
|
35
39
|
`
|
|
36
40
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
:host {
|
|
42
|
+
display: block;
|
|
43
|
+
position: fixed;
|
|
44
|
+
top: 0;
|
|
45
|
+
left: var(--menu-close-width);
|
|
46
|
+
right: 0;
|
|
47
|
+
background-color: var(--topbar-bg-color);
|
|
48
|
+
-moz-transition: left var(--menu-transition);
|
|
49
|
+
-o-transition: left var(--menu-transition);
|
|
50
|
+
-webkit-transition: left var(--menu-transition);
|
|
51
|
+
transition: left var(--menu-transition);
|
|
52
|
+
}
|
|
49
53
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
54
|
+
.header-height {
|
|
55
|
+
height: var(--topbar-height);
|
|
56
|
+
}
|
|
53
57
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
.header-color {
|
|
59
|
+
background-color: var(--topbar-bg-color);
|
|
60
|
+
}
|
|
57
61
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
:host(.menu-opened) {
|
|
63
|
+
left: var(--menu-width);
|
|
64
|
+
}
|
|
65
|
+
`,
|
|
62
66
|
],
|
|
63
67
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
68
|
+
imports: [
|
|
69
|
+
Tooltip,
|
|
70
|
+
NgClass,
|
|
71
|
+
LetDirective
|
|
72
|
+
]
|
|
64
73
|
})
|
|
65
74
|
export class HeaderComponent implements OnInit {
|
|
66
75
|
open$: Observable<boolean>;
|
|
@@ -68,7 +77,10 @@ export class HeaderComponent implements OnInit {
|
|
|
68
77
|
@HostBinding('class.menu-opened')
|
|
69
78
|
menuOpened = false;
|
|
70
79
|
|
|
71
|
-
|
|
80
|
+
private store$ = inject(Store);
|
|
81
|
+
|
|
82
|
+
constructor() {
|
|
83
|
+
}
|
|
72
84
|
|
|
73
85
|
ngOnInit() {
|
|
74
86
|
this.open$ = this.store$
|
|
@@ -78,6 +90,6 @@ export class HeaderComponent implements OnInit {
|
|
|
78
90
|
|
|
79
91
|
onShowMenu($event: any, value: any) {
|
|
80
92
|
$event.stopPropagation();
|
|
81
|
-
this.store$.dispatch(ThemeUiStoreActions.Open({
|
|
93
|
+
this.store$.dispatch(ThemeUiStoreActions.Open({open: !value}));
|
|
82
94
|
}
|
|
83
95
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import {Component, HostBinding, inject, OnInit} from '@angular/core';
|
|
2
|
+
import {Observable, tap} from 'rxjs';
|
|
3
|
+
import {Store} from '@ngrx/store';
|
|
4
|
+
import {ThemeUiStoreSelectors} from '../store/theme-ui-store';
|
|
5
|
+
import {LetDirective} from '@ngrx/component';
|
|
6
6
|
|
|
7
7
|
@Component({
|
|
8
8
|
selector: 'app-main',
|
|
@@ -15,33 +15,36 @@ import { selectMouseoverOrOpen } from '@core/theme/store/theme-ui-store/theme-ui
|
|
|
15
15
|
styles: [
|
|
16
16
|
`
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
18
|
+
:host {
|
|
19
|
+
display: block;
|
|
20
|
+
position: fixed;
|
|
21
|
+
top: var(--topbar-height);;
|
|
22
|
+
left: var(--menu-close-width);
|
|
23
|
+
right: 0;
|
|
24
|
+
bottom: var(--footer-height);
|
|
25
|
+
//background-color: var(--topbar-bg-color);
|
|
26
|
+
-moz-transition: left var(--menu-transition);
|
|
27
|
+
-o-transition: left var(--menu-transition);
|
|
28
|
+
-webkit-transition: left var(--menu-transition);
|
|
29
|
+
transition: left var(--menu-transition);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.header-height {
|
|
33
|
+
height: var(--topbar-height);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.header-color {
|
|
37
|
+
background-color: var(--topbar-bg-color);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
:host(.menu-opened) {
|
|
41
|
+
left: var(--menu-width);
|
|
42
|
+
}
|
|
43
|
+
`,
|
|
44
44
|
],
|
|
45
|
+
imports: [
|
|
46
|
+
LetDirective
|
|
47
|
+
]
|
|
45
48
|
})
|
|
46
49
|
export class MainComponent implements OnInit {
|
|
47
50
|
open$: Observable<boolean>;
|
|
@@ -49,9 +52,13 @@ export class MainComponent implements OnInit {
|
|
|
49
52
|
@HostBinding('class.menu-opened')
|
|
50
53
|
menuOpened = false;
|
|
51
54
|
|
|
52
|
-
|
|
55
|
+
private store$ = inject(Store);
|
|
53
56
|
|
|
54
|
-
|
|
57
|
+
constructor() {
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
ngOnDestroy(): void {
|
|
61
|
+
}
|
|
55
62
|
|
|
56
63
|
ngOnInit() {
|
|
57
64
|
this.open$ = this.store$
|
|
@@ -1,57 +1,63 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {Component, EventEmitter, inject, Input, OnInit, Output} from '@angular/core';
|
|
2
2
|
import { MenuItem } from 'primeng/api';
|
|
3
3
|
import { RouterStoreSelectors } from '@root-store/router-store';
|
|
4
4
|
import { Store } from '@ngrx/store';
|
|
5
5
|
import { Observable } from 'rxjs';
|
|
6
6
|
import { map } from 'rxjs/operators';
|
|
7
|
+
import {AsyncPipe, NgClass} from '@angular/common';
|
|
7
8
|
|
|
8
9
|
@Component({
|
|
9
10
|
selector: 'app-menu-item',
|
|
10
11
|
template: `
|
|
11
|
-
<div (click)="onClick($event)"
|
|
12
|
+
<div (click)="onClick($event)"
|
|
13
|
+
class="flex align-items-center justify-content-start h-3rem overflow-hidden text-base flex-nowrap menu-item-bg-color">
|
|
12
14
|
<div class="item-cursor h-full" [ngClass]="(routerLinkActive$ | async) ? 'bg-red-500' : 'bg-gray-500'"></div>
|
|
13
15
|
<div class="item-icon h-full text-white flex align-items-center justify-content-center flex-nowrap">
|
|
14
16
|
<em [class]="item.icon"></em>
|
|
15
17
|
</div>
|
|
16
18
|
<div class="item-text w-full h-full text-white flex align-items-center justify-content-start min-w-max">
|
|
17
|
-
<span
|
|
19
|
+
<span>{{ item.label }}</span>
|
|
18
20
|
</div>
|
|
19
21
|
</div>
|
|
20
22
|
`,
|
|
21
23
|
styles: [
|
|
22
24
|
`
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
.item-cursor {
|
|
26
|
+
min-width: 0.2rem;
|
|
27
|
+
width: 0.2rem;
|
|
28
|
+
}
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
.item-icon {
|
|
31
|
+
min-width: 4.8rem;
|
|
32
|
+
width: 4.8rem;
|
|
33
|
+
}
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
.menu-item-bg-color {
|
|
36
|
+
background-color: var(--menu-item-bg-color);
|
|
37
|
+
}
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
.mw-4rem {
|
|
40
|
+
min-width: 4rem !important;
|
|
41
|
+
}
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
.mw-1rem {
|
|
44
|
+
min-width: 1rem !important;
|
|
45
|
+
}
|
|
44
46
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
.menu-item {
|
|
48
|
+
width: var(--menu-width);
|
|
49
|
+
}
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
:host(:hover) {
|
|
52
|
+
opacity: 0.5;
|
|
53
|
+
cursor: pointer;
|
|
54
|
+
}
|
|
55
|
+
`,
|
|
54
56
|
],
|
|
57
|
+
imports: [
|
|
58
|
+
NgClass,
|
|
59
|
+
AsyncPipe
|
|
60
|
+
]
|
|
55
61
|
})
|
|
56
62
|
export class MenuItemComponent implements OnInit {
|
|
57
63
|
@Input()
|
|
@@ -68,7 +74,8 @@ export class MenuItemComponent implements OnInit {
|
|
|
68
74
|
|
|
69
75
|
routerLinkActive$: Observable<boolean>;
|
|
70
76
|
|
|
71
|
-
|
|
77
|
+
private store$ = inject(Store);
|
|
78
|
+
constructor() {}
|
|
72
79
|
|
|
73
80
|
ngOnInit(): void {
|
|
74
81
|
this.routerLinkActive$ = this.store$
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';
|
|
1
|
+
import {ChangeDetectionStrategy, Component, inject, OnInit} from '@angular/core';
|
|
2
2
|
import {Store} from '@ngrx/store';
|
|
3
3
|
import {RootStoreSelectors, RootStoreState} from '@root-store/index';
|
|
4
4
|
import {Observable} from 'rxjs';
|
|
5
|
+
import {ProgressBar} from 'primeng/progressbar';
|
|
6
|
+
import {AsyncPipe, NgIf} from '@angular/common';
|
|
5
7
|
|
|
6
8
|
@Component({
|
|
7
9
|
selector: 'app-progress',
|
|
8
10
|
template: `
|
|
9
11
|
<p-progressBar *ngIf="isLoading$ | async"
|
|
10
|
-
[style]="{'height': 'var(--loader-height)', 'border-radius': '0px', 'background-color': 'var(--primary-300)'}"
|
|
12
|
+
[style]="{'height': 'var(--loader-height)', 'border-radius': '0px', 'background-color': 'var(--p-primary-300)'}"
|
|
11
13
|
mode="indeterminate"></p-progressBar>
|
|
12
14
|
`,
|
|
13
15
|
styles: [`
|
|
@@ -18,11 +20,17 @@ import {Observable} from 'rxjs';
|
|
|
18
20
|
height: var(--loader-height);
|
|
19
21
|
}
|
|
20
22
|
`],
|
|
21
|
-
|
|
23
|
+
imports: [
|
|
24
|
+
ProgressBar,
|
|
25
|
+
NgIf,
|
|
26
|
+
AsyncPipe
|
|
27
|
+
],
|
|
28
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
22
29
|
})
|
|
23
30
|
export class ProgressComponent implements OnInit {
|
|
31
|
+
private store$ = inject(Store);
|
|
24
32
|
|
|
25
|
-
constructor(
|
|
33
|
+
constructor() {
|
|
26
34
|
}
|
|
27
35
|
|
|
28
36
|
isLoading$: Observable<boolean>;
|
|
@@ -23,6 +23,9 @@ import {
|
|
|
23
23
|
ThemeUiStoreSelectors,
|
|
24
24
|
} from '../store/theme-ui-store';
|
|
25
25
|
import { filter, map } from 'rxjs/operators';
|
|
26
|
+
import {MenuItemComponent} from '@core/theme/components/menu-item.component';
|
|
27
|
+
import {AsyncPipe, NgForOf} from '@angular/common';
|
|
28
|
+
import {LetDirective} from '@ngrx/component';
|
|
26
29
|
|
|
27
30
|
@Component({
|
|
28
31
|
selector: 'app-slide-menu-pro',
|
|
@@ -32,12 +35,12 @@ import { filter, map } from 'rxjs/operators';
|
|
|
32
35
|
<div *ngrxLet="mouseoverSubject$; let mouseoverSubject"></div>
|
|
33
36
|
|
|
34
37
|
<div class="flex justify-content-start text-white m-0 header-height header-color">
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
<div class="flex-none flex align-items-center justify-content-center w-5rem">
|
|
39
|
+
<em class="pi pi-heart text-5xl"></em>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="flex-none flex align-items-center justify-content-center text-4xl font-medium">
|
|
42
|
+
Menù
|
|
43
|
+
</div>
|
|
41
44
|
</div>
|
|
42
45
|
<div class="scroller overflow-auto surface-overlay">
|
|
43
46
|
<app-menu-item *ngFor="let item of (items$ | async); index as i"
|
|
@@ -51,61 +54,67 @@ import { filter, map } from 'rxjs/operators';
|
|
|
51
54
|
`,
|
|
52
55
|
styles: [
|
|
53
56
|
`
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
57
|
+
:host {
|
|
58
|
+
display: block;
|
|
59
|
+
top: 0;
|
|
60
|
+
left: 0;
|
|
61
|
+
width: var(--menu-close-width);
|
|
62
|
+
height: 100vh;
|
|
63
|
+
margin-left: 0;
|
|
64
|
+
position: fixed;
|
|
65
|
+
border-right: solid 1px var(--menu-border-right);
|
|
66
|
+
background-color: var(--sidebar-bg-color);
|
|
67
|
+
-moz-transition: var(--menu-transition);
|
|
68
|
+
-o-transition: var(--menu-transition);
|
|
69
|
+
-webkit-transition: var(--menu-transition);
|
|
70
|
+
transition: var(--menu-transition);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.scroller {
|
|
74
|
+
height: calc(100vh - (var(--topbar-height) + var(--footer-height)));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.header-height {
|
|
78
|
+
height: var(--topbar-height);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.header-color {
|
|
82
|
+
background-color: var(--topbar-bg-color);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
:host(.menu-opened) {
|
|
86
|
+
width: var(--menu-width);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* width */
|
|
90
|
+
::-webkit-scrollbar {
|
|
91
|
+
width: 0.2rem;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* Track */
|
|
95
|
+
::-webkit-scrollbar-track {
|
|
96
|
+
background: #b6b6b6;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* Handle */
|
|
100
|
+
::-webkit-scrollbar-thumb {
|
|
101
|
+
background: #888;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Handle on hover */
|
|
105
|
+
::-webkit-scrollbar-thumb:hover {
|
|
106
|
+
background: #555;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
`,
|
|
107
110
|
],
|
|
108
111
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
112
|
+
imports: [
|
|
113
|
+
MenuItemComponent,
|
|
114
|
+
NgForOf,
|
|
115
|
+
AsyncPipe,
|
|
116
|
+
LetDirective
|
|
117
|
+
]
|
|
109
118
|
})
|
|
110
119
|
export class SlideMenuProComponent implements OnInit, OnDestroy {
|
|
111
120
|
constructor(
|
|
@@ -4,78 +4,88 @@ import {
|
|
|
4
4
|
ElementRef,
|
|
5
5
|
HostBinding,
|
|
6
6
|
HostListener,
|
|
7
|
+
inject,
|
|
7
8
|
OnDestroy,
|
|
8
9
|
OnInit,
|
|
9
10
|
} from '@angular/core';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} from '
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
11
|
+
import {select, Store} from '@ngrx/store';
|
|
12
|
+
import {MenuItem} from 'primeng/api';
|
|
13
|
+
import {Observable, tap} from 'rxjs';
|
|
14
|
+
import {menuItemsDecorator} from '../store/theme-ui-store/operators';
|
|
15
|
+
import {ThemeUiStoreActions, ThemeUiStoreSelectors,} from '../store/theme-ui-store';
|
|
16
|
+
import {MenuItemComponent} from '@core/theme/components/menu-item.component';
|
|
17
|
+
import {ScrollPanel} from 'primeng/scrollpanel';
|
|
18
|
+
import {Menu} from 'primeng/menu';
|
|
19
|
+
import {AsyncPipe} from '@angular/common';
|
|
20
|
+
import {LetDirective} from '@ngrx/component';
|
|
20
21
|
|
|
21
22
|
@Component({
|
|
22
23
|
selector: 'app-slide-menu',
|
|
23
24
|
template: `
|
|
24
|
-
<div *ngrxLet="open$; let open"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
<div *ngrxLet="open$; let open"
|
|
26
|
+
class="flex justify-content-between flex-wrap text-white m-0 px-2 header-height header-color">
|
|
27
|
+
<div class="flex-none flex align-items-center justify-content-center text-4xl font-medium">
|
|
28
|
+
Menù
|
|
29
|
+
</div>
|
|
28
30
|
</div>
|
|
29
|
-
<app-menu-item></app-menu-item>
|
|
30
|
-
<app-menu-item></app-menu-item>
|
|
31
|
-
<app-menu-item></app-menu-item>
|
|
32
|
-
<app-menu-item></app-menu-item>
|
|
33
|
-
<app-menu-item></app-menu-item>
|
|
31
|
+
<app-menu-item></app-menu-item>
|
|
32
|
+
<app-menu-item></app-menu-item>
|
|
33
|
+
<app-menu-item></app-menu-item>
|
|
34
|
+
<app-menu-item></app-menu-item>
|
|
35
|
+
<app-menu-item></app-menu-item>
|
|
34
36
|
<p-scrollPanel>
|
|
35
37
|
<p-menu [model]="items$ | async" styleClass="w-full"></p-menu>
|
|
36
38
|
</p-scrollPanel>
|
|
37
39
|
`,
|
|
38
40
|
styles: [
|
|
39
41
|
`
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
42
|
+
:host {
|
|
43
|
+
display: block;
|
|
44
|
+
top: 0;
|
|
45
|
+
left: 0;
|
|
46
|
+
width: var(--menu-width);
|
|
47
|
+
height: 100vh;
|
|
48
|
+
margin-left: var(--menu-close-margin-left);
|
|
49
|
+
position: fixed;
|
|
50
|
+
border-right: solid 1px var(--menu-border-right);
|
|
51
|
+
background-color: var(--sidebar-bg-color);
|
|
52
|
+
-moz-transition: var(--menu-transition);
|
|
53
|
+
-o-transition: var(--menu-transition);
|
|
54
|
+
-webkit-transition: var(--menu-transition);
|
|
55
|
+
transition: var(--menu-transition);
|
|
56
|
+
}
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
.header-height {
|
|
59
|
+
height: var(--topbar-height);
|
|
60
|
+
}
|
|
59
61
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
.header-color {
|
|
63
|
+
background-color: var(--topbar-bg-color);
|
|
64
|
+
}
|
|
63
65
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
:host(.menu-opened) {
|
|
67
|
+
margin-left: 0;
|
|
68
|
+
}
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
`,
|
|
69
71
|
],
|
|
70
72
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
73
|
+
imports: [
|
|
74
|
+
MenuItemComponent,
|
|
75
|
+
ScrollPanel,
|
|
76
|
+
Menu,
|
|
77
|
+
AsyncPipe,
|
|
78
|
+
LetDirective
|
|
79
|
+
]
|
|
71
80
|
})
|
|
72
81
|
export class SlideMenuComponent implements OnInit, OnDestroy {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
) {
|
|
82
|
+
private store$ = inject(Store);
|
|
83
|
+
private el = inject(ElementRef);
|
|
84
|
+
|
|
85
|
+
constructor() {
|
|
86
|
+
}
|
|
77
87
|
|
|
78
|
-
open$: Observable<boolean> =
|
|
88
|
+
open$: Observable<boolean> = this.store$
|
|
79
89
|
.select(ThemeUiStoreSelectors.selectMouseoverOrOpen)
|
|
80
90
|
.pipe(tap((value) => (this.menuOpened = value)));
|
|
81
91
|
|
|
@@ -87,7 +97,8 @@ export class SlideMenuComponent implements OnInit, OnDestroy {
|
|
|
87
97
|
@HostBinding('class.menu-opened')
|
|
88
98
|
menuOpened = false;
|
|
89
99
|
|
|
90
|
-
ngOnDestroy(): void {
|
|
100
|
+
ngOnDestroy(): void {
|
|
101
|
+
}
|
|
91
102
|
|
|
92
103
|
// todo: completare profilazione dei pulsanti.
|
|
93
104
|
ngOnInit(): void {
|
|
@@ -110,7 +121,7 @@ export class SlideMenuComponent implements OnInit, OnDestroy {
|
|
|
110
121
|
|
|
111
122
|
const clickedInside = this.el.nativeElement.contains(targetElement);
|
|
112
123
|
if (!clickedInside) {
|
|
113
|
-
this.store$.dispatch(ThemeUiStoreActions.Open({
|
|
124
|
+
this.store$.dispatch(ThemeUiStoreActions.Open({open: false}));
|
|
114
125
|
}
|
|
115
126
|
}
|
|
116
127
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--topbar-height: 5rem;
|
|
3
|
-
--topbar-bg-color:var(--primary-color);
|
|
3
|
+
--topbar-bg-color:var(--p-primary-color);
|
|
4
4
|
--menu-width:20rem;
|
|
5
5
|
--menu-transition:0.3s;
|
|
6
6
|
--menu-close-margin-left:-(var(--menu-width));
|
|
7
7
|
--menu-close-width:5rem; // if not active menu pro, set to ZERO
|
|
8
|
-
--menu-border-right:var(--primary-100);
|
|
8
|
+
--menu-border-right:var(--p-primary-100);
|
|
9
9
|
|
|
10
|
-
--menu-item-bg-color:var(--primary-900);
|
|
10
|
+
--menu-item-bg-color:var(--p-primary-900);
|
|
11
11
|
|
|
12
|
-
--sidebar-bg-color:var(--primary-900);
|
|
12
|
+
--sidebar-bg-color:var(--p-primary-900);
|
|
13
13
|
--footer-height:2rem;
|
|
14
|
-
--footer-bg-color:var(--surface-b);
|
|
15
|
-
--footer-border-color:var(--primary-100);
|
|
14
|
+
--footer-bg-color:var(--p-surface-b);
|
|
15
|
+
--footer-border-color:var(--p-primary-100);
|
|
16
16
|
--loader-height:0.4rem;
|
|
17
17
|
--loader-bg-color:var(primary-500);
|
|
18
18
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {definePreset} from '@primeuix/themes';
|
|
2
|
+
import Aura from '@primeuix/themes/aura';
|
|
3
|
+
|
|
4
|
+
export const PrimeuixPresets = definePreset(Aura, {
|
|
5
|
+
semantic: {
|
|
6
|
+
primary: {
|
|
7
|
+
50: '{blue.50}',
|
|
8
|
+
100: '{blue.100}',
|
|
9
|
+
200: '{blue.200}',
|
|
10
|
+
300: '{blue.300}',
|
|
11
|
+
400: '{blue.400}',
|
|
12
|
+
500: '{blue.500}',
|
|
13
|
+
600: '{blue.600}',
|
|
14
|
+
700: '{blue.700}',
|
|
15
|
+
800: '{blue.800}',
|
|
16
|
+
900: '{blue.900}',
|
|
17
|
+
950: '{blue.950}'
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
});
|
|
@@ -7,11 +7,13 @@ import {RouterStoreModule} from './router-store';
|
|
|
7
7
|
import {environment} from '../../environments/environment';
|
|
8
8
|
import {StoreDevtoolsModule} from '@ngrx/store-devtools';
|
|
9
9
|
import {HttpClientModule} from "@angular/common/http";
|
|
10
|
+
import {ThemeUiStoreModule} from '@core/theme/store/theme-ui-store';
|
|
10
11
|
|
|
11
12
|
@NgModule({
|
|
12
13
|
imports: [
|
|
13
14
|
CommonModule,
|
|
14
15
|
HttpClientModule,
|
|
16
|
+
ThemeUiStoreModule,
|
|
15
17
|
RouterStoreModule,
|
|
16
18
|
StoreModule.forRoot(reducers, {
|
|
17
19
|
metaReducers,
|
|
@@ -26,4 +28,7 @@ import {HttpClientModule} from "@angular/common/http";
|
|
|
26
28
|
declarations: []
|
|
27
29
|
})
|
|
28
30
|
export class RootStoreModule {
|
|
31
|
+
constructor() {
|
|
32
|
+
console.log('RootStoreModule.constructor()');
|
|
33
|
+
}
|
|
29
34
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {Injectable} from '@angular/core';
|
|
1
|
+
import {inject, Injectable} from '@angular/core';
|
|
2
2
|
import {Actions, createEffect, ofType} from '@ngrx/effects';
|
|
3
3
|
import {Store} from '@ngrx/store';
|
|
4
4
|
import {filter, map, tap} from 'rxjs/operators';
|
|
@@ -9,6 +9,12 @@ import {Location} from '@angular/common';
|
|
|
9
9
|
@Injectable()
|
|
10
10
|
export class RouterEffects {
|
|
11
11
|
|
|
12
|
+
private actions$ = inject(Actions);
|
|
13
|
+
private router = inject(Router);
|
|
14
|
+
private location = inject(Location);
|
|
15
|
+
private route = inject(ActivatedRoute);
|
|
16
|
+
private store = inject(Store);
|
|
17
|
+
|
|
12
18
|
navigate$ = createEffect(() =>
|
|
13
19
|
this.actions$.pipe(
|
|
14
20
|
ofType(actions.RouterGo),
|
|
@@ -41,11 +47,6 @@ export class RouterEffects {
|
|
|
41
47
|
);
|
|
42
48
|
|
|
43
49
|
constructor(
|
|
44
|
-
private actions$: Actions,
|
|
45
|
-
private router: Router,
|
|
46
|
-
private location: Location,
|
|
47
|
-
private route: ActivatedRoute,
|
|
48
|
-
private store: Store<any>
|
|
49
50
|
) {
|
|
50
51
|
this.listenToRouter();
|
|
51
52
|
}
|
|
@@ -18,7 +18,6 @@ export const INJECTION_TOKEN = new InjectionToken<ActionReducer<State>>(`router-
|
|
|
18
18
|
],
|
|
19
19
|
declarations: [],
|
|
20
20
|
providers: [
|
|
21
|
-
RouterEffects,
|
|
22
21
|
{
|
|
23
22
|
provide: INJECTION_TOKEN,
|
|
24
23
|
useFactory: (): ActionReducer<State> => featureReducer
|
|
@@ -27,4 +26,7 @@ export const INJECTION_TOKEN = new InjectionToken<ActionReducer<State>>(`router-
|
|
|
27
26
|
|
|
28
27
|
})
|
|
29
28
|
export class RouterStoreModule {
|
|
29
|
+
constructor() {
|
|
30
|
+
console.log('RouterStoreModule.constructor()');
|
|
31
|
+
}
|
|
30
32
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
@import "app/core/theme/css/_variables";
|
|
2
2
|
@import "primeflex/primeflex";
|
|
3
3
|
@import "primeicons/primeicons.css";
|
|
4
|
-
@import "primeng/resources/themes/lara-light-blue/theme.css";
|
|
5
|
-
@import "primeng/resources/primeng.min.css";
|
|
6
4
|
|
|
7
5
|
body {
|
|
8
6
|
word-wrap: break-word;
|
|
@@ -21,4 +19,4 @@ body {
|
|
|
21
19
|
transition: transform 0.2s;
|
|
22
20
|
font-size: 1.25rem;
|
|
23
21
|
margin: 0 0.5em;
|
|
24
|
-
}
|
|
22
|
+
}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ngAdd = ngAdd;
|
|
4
4
|
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
5
|
const my_utility_1 = require("../my-utility");
|
|
6
|
+
const dependencies_1 = require("@schematics/angular/utility/dependencies");
|
|
6
7
|
// Just return the tree
|
|
7
8
|
function ngAdd(options) {
|
|
8
9
|
return (tree) => {
|
|
@@ -61,6 +62,14 @@ function ngAdd(options) {
|
|
|
61
62
|
name: 'HttpClient',
|
|
62
63
|
path: '@angular/common/http',
|
|
63
64
|
}),
|
|
65
|
+
(host) => {
|
|
66
|
+
(0, dependencies_1.addPackageJsonDependency)(host, {
|
|
67
|
+
type: dependencies_1.NodeDependencyType.Default,
|
|
68
|
+
name: '@primeng/themes',
|
|
69
|
+
version: '^20.2.0',
|
|
70
|
+
});
|
|
71
|
+
return host;
|
|
72
|
+
},
|
|
64
73
|
(0, my_utility_1.updateTsConfigSelector)(),
|
|
65
74
|
];
|
|
66
75
|
return (0, schematics_1.chain)(baseRules);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
render,
|
|
10
10
|
updateTsConfigSelector,
|
|
11
11
|
} from '../my-utility';
|
|
12
|
+
import {addPackageJsonDependency, NodeDependencyType} from '@schematics/angular/utility/dependencies';
|
|
12
13
|
|
|
13
14
|
// Just return the tree
|
|
14
15
|
export function ngAdd(options: NgAdd): Rule {
|
|
@@ -80,6 +81,14 @@ export function ngAdd(options: NgAdd): Rule {
|
|
|
80
81
|
name: 'HttpClient',
|
|
81
82
|
path: '@angular/common/http',
|
|
82
83
|
}),
|
|
84
|
+
(host: Tree) => {
|
|
85
|
+
addPackageJsonDependency(host, {
|
|
86
|
+
type: NodeDependencyType.Default,
|
|
87
|
+
name: '@primeng/themes',
|
|
88
|
+
version: '^20.2.0',
|
|
89
|
+
});
|
|
90
|
+
return host;
|
|
91
|
+
},
|
|
83
92
|
updateTsConfigSelector(),
|
|
84
93
|
];
|
|
85
94
|
|