@processpuzzle/widgets 0.0.1
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 +8 -0
- package/fesm2022/processpuzzle-widgets.mjs +85 -0
- package/fesm2022/processpuzzle-widgets.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/navigate-back/navigate-back.component.d.ts +8 -0
- package/lib/navigate-back/navigate-back.service.d.ts +14 -0
- package/package.json +32 -0
- package/public-api.d.ts +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# @processpuzzle/widgets
|
|
2
|
+

|
|
3
|
+
[](https://sonarcloud.io/summary?id=processpuzzle_widgets)
|
|
4
|
+
[](https://www.npmjs.com/package/@processpuzzle/widgets)
|
|
5
|
+
This library provides a range of small widgets that can be built into an Angular application. These widgets primarily define UI elements
|
|
6
|
+
but also domain classes or signal stores. Some of them are even persistent, so they need appropriate configuration to access the backend.
|
|
7
|
+
|
|
8
|
+
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, inject, Component } from '@angular/core';
|
|
3
|
+
import { Stack } from '@processpuzzle/util';
|
|
4
|
+
import * as i1 from '@angular/router';
|
|
5
|
+
import { NavigationEnd } from '@angular/router';
|
|
6
|
+
import { MatIcon } from '@angular/material/icon';
|
|
7
|
+
import { MatIconButton } from '@angular/material/button';
|
|
8
|
+
|
|
9
|
+
class NavigateBackService {
|
|
10
|
+
router;
|
|
11
|
+
routeHistory = new Stack();
|
|
12
|
+
constructor(router) {
|
|
13
|
+
this.router = router;
|
|
14
|
+
this.router.events.subscribe((event) => {
|
|
15
|
+
if (event instanceof NavigationEnd) {
|
|
16
|
+
this.addRouteToStack(event.urlAfterRedirects); // Add the current route to the stack
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
// region public accessor methods
|
|
21
|
+
goBack() {
|
|
22
|
+
if (this.routeHistory.size() > 1) {
|
|
23
|
+
this.routeHistory.pop(); // Remove current route
|
|
24
|
+
const previousRoute = this.routeHistory.pop(); // Get the previous route
|
|
25
|
+
if (previousRoute) {
|
|
26
|
+
this.router.navigateByUrl(previousRoute); // Navigate to the previous route
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
console.warn('No previous routes to navigate back to.');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
getRouteStack() {
|
|
34
|
+
return this.routeHistory;
|
|
35
|
+
}
|
|
36
|
+
clearHistory() {
|
|
37
|
+
this.routeHistory.clear();
|
|
38
|
+
}
|
|
39
|
+
// endregion
|
|
40
|
+
// protected, private helper methods
|
|
41
|
+
addRouteToStack(route) {
|
|
42
|
+
if (this.routeHistory.size() === 0 || this.routeHistory.peek() !== route) {
|
|
43
|
+
this.routeHistory.push(route);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: NavigateBackService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
47
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: NavigateBackService, providedIn: 'root' });
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: NavigateBackService, decorators: [{
|
|
50
|
+
type: Injectable,
|
|
51
|
+
args: [{ providedIn: 'root' }]
|
|
52
|
+
}], ctorParameters: () => [{ type: i1.Router }] });
|
|
53
|
+
|
|
54
|
+
class NavigateBackComponent {
|
|
55
|
+
service = inject(NavigateBackService);
|
|
56
|
+
// region event handling methods
|
|
57
|
+
onNavigateBack() {
|
|
58
|
+
this.service.goBack(); // Call the service to handle navigation
|
|
59
|
+
}
|
|
60
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: NavigateBackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: NavigateBackComponent, isStandalone: true, selector: "pp-navigate-back", ngImport: i0, template: `
|
|
62
|
+
<button mat-icon-button aria-label="Go back" (click)="onNavigateBack()">
|
|
63
|
+
<mat-icon class="material-symbols-outlined fat-back-arrow">arrow_back</mat-icon>
|
|
64
|
+
</button>
|
|
65
|
+
`, isInline: true, styles: [".fat-back-arrow{font-size:24px;font-variation-settings:\"wght\" 1200;color:#000}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] });
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: NavigateBackComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'pp-navigate-back', imports: [MatIcon, MatIconButton], template: `
|
|
70
|
+
<button mat-icon-button aria-label="Go back" (click)="onNavigateBack()">
|
|
71
|
+
<mat-icon class="material-symbols-outlined fat-back-arrow">arrow_back</mat-icon>
|
|
72
|
+
</button>
|
|
73
|
+
`, styles: [".fat-back-arrow{font-size:24px;font-variation-settings:\"wght\" 1200;color:#000}\n"] }]
|
|
74
|
+
}] });
|
|
75
|
+
|
|
76
|
+
/*
|
|
77
|
+
* Public API Surface of @processpuzzle/widgets
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Generated bundle index. Do not edit.
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
export { NavigateBackComponent };
|
|
85
|
+
//# sourceMappingURL=processpuzzle-widgets.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processpuzzle-widgets.mjs","sources":["../../../../libs/widgets/src/lib/navigate-back/navigate-back.service.ts","../../../../libs/widgets/src/lib/navigate-back/navigate-back.component.ts","../../../../libs/widgets/src/public-api.ts","../../../../libs/widgets/src/processpuzzle-widgets.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Stack } from '@processpuzzle/util';\nimport { NavigationEnd, Router } from '@angular/router';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigateBackService {\n private routeHistory = new Stack<string>();\n\n constructor(private router: Router) {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.addRouteToStack(event.urlAfterRedirects); // Add the current route to the stack\n }\n });\n }\n\n // region public accessor methods\n public goBack(): void {\n if (this.routeHistory.size() > 1) {\n this.routeHistory.pop(); // Remove current route\n const previousRoute = this.routeHistory.pop(); // Get the previous route\n if (previousRoute) {\n this.router.navigateByUrl(previousRoute); // Navigate to the previous route\n }\n } else {\n console.warn('No previous routes to navigate back to.');\n }\n }\n\n public getRouteStack(): Stack<string> {\n return this.routeHistory;\n }\n\n public clearHistory(): void {\n this.routeHistory.clear();\n }\n\n // endregion\n\n // protected, private helper methods\n private addRouteToStack(route: string): void {\n if (this.routeHistory.size() === 0 || this.routeHistory.peek() !== route) {\n this.routeHistory.push(route);\n }\n }\n\n // endregion\n}\n","import { Component, inject } from '@angular/core';\nimport { NavigateBackService } from './navigate-back.service';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\n\n@Component({\n selector: 'pp-navigate-back',\n imports: [MatIcon, MatIconButton],\n template: `\n <button mat-icon-button aria-label=\"Go back\" (click)=\"onNavigateBack()\">\n <mat-icon class=\"material-symbols-outlined fat-back-arrow\">arrow_back</mat-icon>\n </button>\n `,\n styles: [\n `\n .fat-back-arrow {\n font-size: 24px; /* Größerer und fetterer Pfeil */\n font-variation-settings: 'wght' 1200; /* Fettigkeitsgrad (700 = fett) */\n color: #000; /* Schwarz als Farbe */\n }\n `,\n ],\n})\nexport class NavigateBackComponent {\n readonly service = inject(NavigateBackService);\n\n // region event handling methods\n onNavigateBack(): void {\n this.service.goBack(); // Call the service to handle navigation\n }\n\n // endregion\n}\n","/*\n * Public API Surface of @processpuzzle/widgets\n */\n\nexport { NavigateBackComponent } from './lib/navigate-back/navigate-back.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { NavigateBackService } from './navigate-back.service';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class NavigateBackComponent {
|
|
4
|
+
readonly service: NavigateBackService;
|
|
5
|
+
onNavigateBack(): void;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NavigateBackComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NavigateBackComponent, "pp-navigate-back", never, {}, {}, never, never, true, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Stack } from '@processpuzzle/util';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class NavigateBackService {
|
|
5
|
+
private router;
|
|
6
|
+
private routeHistory;
|
|
7
|
+
constructor(router: Router);
|
|
8
|
+
goBack(): void;
|
|
9
|
+
getRouteStack(): Stack<string>;
|
|
10
|
+
clearHistory(): void;
|
|
11
|
+
private addRouteToStack;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NavigateBackService, never>;
|
|
13
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NavigateBackService>;
|
|
14
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@processpuzzle/widgets",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/ZsZs/processpuzzle.git",
|
|
10
|
+
"directory": "libs/widgets"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/ZsZs/processpuzzle#readme",
|
|
13
|
+
"peerDependencies": {
|
|
14
|
+
"@angular/common": "^19.2.0",
|
|
15
|
+
"@angular/core": "^19.2.0"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"tslib": "^2.8.1"
|
|
19
|
+
},
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"module": "fesm2022/processpuzzle-widgets.mjs",
|
|
22
|
+
"typings": "index.d.ts",
|
|
23
|
+
"exports": {
|
|
24
|
+
"./package.json": {
|
|
25
|
+
"default": "./package.json"
|
|
26
|
+
},
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./index.d.ts",
|
|
29
|
+
"default": "./fesm2022/processpuzzle-widgets.mjs"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { NavigateBackComponent } from './lib/navigate-back/navigate-back.component';
|