@processpuzzle/widgets 0.0.2 → 0.0.4
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/assets/i18n/widgets/de.json +12 -0
- package/assets/i18n/widgets/en.json +12 -0
- package/assets/i18n/widgets/es.json +12 -0
- package/assets/i18n/widgets/hu.json +12 -0
- package/fesm2022/processpuzzle-widgets.mjs +490 -0
- package/fesm2022/processpuzzle-widgets.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/app-property/app-property-store.provider.d.ts +2 -0
- package/lib/app-property/app-property.d.ts +10 -0
- package/lib/app-property/app-property.mapper.d.ts +6 -0
- package/lib/app-property/app-property.service.d.ts +7 -0
- package/lib/app-property/app-property.store.d.ts +64 -0
- package/lib/language-selector/language-config.d.ts +9 -0
- package/lib/language-selector/language-selector-list.component.d.ts +11 -0
- package/lib/language-selector/language-selector.component.d.ts +9 -0
- package/lib/language-selector/transloco.loader.d.ts +11 -0
- package/lib/like-button/like-button.component.d.ts +72 -0
- package/lib/navigate-back/navigate-back.component.d.ts +8 -0
- package/lib/navigate-back/navigate-back.service.d.ts +14 -0
- package/lib/share-button/share-button.component.d.ts +9 -0
- package/lib/share-button/share-button.module.d.ts +6 -0
- package/lib/widgets.module.d.ts +10 -0
- package/package.json +5 -10
- package/public-api.d.ts +11 -0
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
import { v4 } from 'uuid';
|
|
2
|
+
import { signalStore } from '@ngrx/signals';
|
|
3
|
+
import { BaseEntityFirestoreService, BaseEntityStore, BaseFormNavigatorStore, BaseEntityTabsStore, BaseEntityContainerStore } from '@processpuzzle/base-entity';
|
|
4
|
+
import * as i0 from '@angular/core';
|
|
5
|
+
import { inject, Component, computed, Injectable, EnvironmentInjector, NgModule, isDevMode } from '@angular/core';
|
|
6
|
+
import { MatIcon } from '@angular/material/icon';
|
|
7
|
+
import { MatIconButton } from '@angular/material/button';
|
|
8
|
+
import { CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
|
|
9
|
+
import { RUNTIME_CONFIGURATION, Stack } from '@processpuzzle/util';
|
|
10
|
+
import * as i1$2 from '@jsverse/transloco';
|
|
11
|
+
import { TranslocoService, TranslocoDirective, provideTranslocoScope, TranslocoModule, provideTransloco } from '@jsverse/transloco';
|
|
12
|
+
import { NgClass, NgForOf } from '@angular/common';
|
|
13
|
+
import { MatListOption, MatSelectionList } from '@angular/material/list';
|
|
14
|
+
import * as i1 from '@angular/router';
|
|
15
|
+
import { NavigationEnd } from '@angular/router';
|
|
16
|
+
import { ShareButtons } from 'ngx-sharebuttons/buttons';
|
|
17
|
+
import { provideShareButtonsOptions } from 'ngx-sharebuttons';
|
|
18
|
+
import { shareIcons } from 'ngx-sharebuttons/icons';
|
|
19
|
+
import * as i1$1 from '@angular/common/http';
|
|
20
|
+
|
|
21
|
+
class ApplicationProperty {
|
|
22
|
+
id = v4();
|
|
23
|
+
propertyName;
|
|
24
|
+
propertyValue;
|
|
25
|
+
constructor(name, value) {
|
|
26
|
+
this.propertyName = name ?? '';
|
|
27
|
+
this.propertyValue = value ?? '';
|
|
28
|
+
}
|
|
29
|
+
// region properties
|
|
30
|
+
get name() {
|
|
31
|
+
return this.propertyName;
|
|
32
|
+
}
|
|
33
|
+
get value() {
|
|
34
|
+
return this.propertyValue;
|
|
35
|
+
}
|
|
36
|
+
set value(newValue) {
|
|
37
|
+
this.propertyValue = newValue;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
class ApplicationPropertyService extends BaseEntityFirestoreService {
|
|
42
|
+
entityMapper;
|
|
43
|
+
constructor(entityMapper) {
|
|
44
|
+
super(entityMapper, 'application-properties');
|
|
45
|
+
this.entityMapper = entityMapper;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const ApplicationPropertyStore = signalStore({ providedIn: 'root' }, BaseEntityStore(ApplicationProperty, ApplicationPropertyService), BaseFormNavigatorStore('ApplicationProperty'), BaseEntityTabsStore(), BaseEntityContainerStore());
|
|
50
|
+
|
|
51
|
+
class LanguageSelectorListComponent {
|
|
52
|
+
translocoService = inject(TranslocoService);
|
|
53
|
+
runtimeConfiguration = inject(RUNTIME_CONFIGURATION);
|
|
54
|
+
languages = this.runtimeConfiguration.AVAILABLE_LANGUAGES;
|
|
55
|
+
selectedLanguage = this.runtimeConfiguration.DEFAULT_LANGUAGE;
|
|
56
|
+
// region event handling methods
|
|
57
|
+
onSelectionChange(event) {
|
|
58
|
+
const selectedOption = event.source;
|
|
59
|
+
const selectedValue = selectedOption.selectedOptions.selected[0]?.value;
|
|
60
|
+
if (this.selectedLanguage !== selectedValue) {
|
|
61
|
+
this.translocoService.setActiveLang(selectedValue);
|
|
62
|
+
this.selectedLanguage = selectedValue;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LanguageSelectorListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: LanguageSelectorListComponent, isStandalone: true, selector: "pp-language-selector-list", providers: [provideTranslocoScope('widgets')], ngImport: i0, template: `
|
|
67
|
+
<ng-container *transloco="let t; prefix: 'language-selector'">
|
|
68
|
+
<div class="language-selector">
|
|
69
|
+
<mat-selection-list #selectionList (selectionChange)="onSelectionChange($event)" [multiple]="false">
|
|
70
|
+
<mat-list-option
|
|
71
|
+
*ngFor="let language of languages"
|
|
72
|
+
[value]="language.code"
|
|
73
|
+
[selected]="selectedLanguage === language.code"
|
|
74
|
+
tabindex="0"
|
|
75
|
+
role="option"
|
|
76
|
+
[attr.aria-selected]="selectedLanguage === language.code ? 'true' : 'false'"
|
|
77
|
+
>
|
|
78
|
+
<span [ngClass]="language.flag"> - </span>
|
|
79
|
+
<span>{{ t(language.label) }}</span>
|
|
80
|
+
</mat-list-option>
|
|
81
|
+
</mat-selection-list>
|
|
82
|
+
</div>
|
|
83
|
+
</ng-container>
|
|
84
|
+
`, isInline: true, styles: [".flag-icon{width:24px;height:16px;border-radius:2px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }] });
|
|
85
|
+
}
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LanguageSelectorListComponent, decorators: [{
|
|
87
|
+
type: Component,
|
|
88
|
+
args: [{ selector: 'pp-language-selector-list', template: `
|
|
89
|
+
<ng-container *transloco="let t; prefix: 'language-selector'">
|
|
90
|
+
<div class="language-selector">
|
|
91
|
+
<mat-selection-list #selectionList (selectionChange)="onSelectionChange($event)" [multiple]="false">
|
|
92
|
+
<mat-list-option
|
|
93
|
+
*ngFor="let language of languages"
|
|
94
|
+
[value]="language.code"
|
|
95
|
+
[selected]="selectedLanguage === language.code"
|
|
96
|
+
tabindex="0"
|
|
97
|
+
role="option"
|
|
98
|
+
[attr.aria-selected]="selectedLanguage === language.code ? 'true' : 'false'"
|
|
99
|
+
>
|
|
100
|
+
<span [ngClass]="language.flag"> - </span>
|
|
101
|
+
<span>{{ t(language.label) }}</span>
|
|
102
|
+
</mat-list-option>
|
|
103
|
+
</mat-selection-list>
|
|
104
|
+
</div>
|
|
105
|
+
</ng-container>
|
|
106
|
+
`, imports: [NgClass, NgForOf, TranslocoDirective, MatListOption, MatSelectionList], providers: [provideTranslocoScope('widgets')], styles: [".flag-icon{width:24px;height:16px;border-radius:2px}\n"] }]
|
|
107
|
+
}] });
|
|
108
|
+
|
|
109
|
+
class LanguageSelectorComponent {
|
|
110
|
+
isOpen = false;
|
|
111
|
+
// region Event handler methods
|
|
112
|
+
onClose() {
|
|
113
|
+
this.isOpen = false;
|
|
114
|
+
}
|
|
115
|
+
onSelectLanguage() {
|
|
116
|
+
this.toggleIsOpen();
|
|
117
|
+
}
|
|
118
|
+
// endregion
|
|
119
|
+
// region protected, private helper methods
|
|
120
|
+
toggleIsOpen() {
|
|
121
|
+
this.isOpen = !this.isOpen;
|
|
122
|
+
}
|
|
123
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LanguageSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
124
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: LanguageSelectorComponent, isStandalone: true, selector: "pp-language-selector", providers: [provideTranslocoScope('widgets')], ngImport: i0, template: `
|
|
125
|
+
<ng-container *transloco="let t; prefix: 'language-selector'">
|
|
126
|
+
<div>
|
|
127
|
+
<button mat-icon-button (click)="onSelectLanguage()" cdkOverlayOrigin #trigger="cdkOverlayOrigin" aria-label="Select Language Button">
|
|
128
|
+
<mat-icon>language</mat-icon>
|
|
129
|
+
</button>
|
|
130
|
+
</div>
|
|
131
|
+
<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]="trigger" [cdkConnectedOverlayOpen]="isOpen" [cdkConnectedOverlayHasBackdrop]="true" (backdropClick)="onClose()">
|
|
132
|
+
<div class="language-selector-container">
|
|
133
|
+
<pp-language-selector-list />
|
|
134
|
+
</div>
|
|
135
|
+
</ng-template>
|
|
136
|
+
</ng-container>
|
|
137
|
+
`, isInline: true, styles: [".language-selector-container{display:flex;background:#eee}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { 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"] }, { kind: "component", type: LanguageSelectorListComponent, selector: "pp-language-selector-list" }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] });
|
|
138
|
+
}
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LanguageSelectorComponent, decorators: [{
|
|
140
|
+
type: Component,
|
|
141
|
+
args: [{ selector: 'pp-language-selector', template: `
|
|
142
|
+
<ng-container *transloco="let t; prefix: 'language-selector'">
|
|
143
|
+
<div>
|
|
144
|
+
<button mat-icon-button (click)="onSelectLanguage()" cdkOverlayOrigin #trigger="cdkOverlayOrigin" aria-label="Select Language Button">
|
|
145
|
+
<mat-icon>language</mat-icon>
|
|
146
|
+
</button>
|
|
147
|
+
</div>
|
|
148
|
+
<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]="trigger" [cdkConnectedOverlayOpen]="isOpen" [cdkConnectedOverlayHasBackdrop]="true" (backdropClick)="onClose()">
|
|
149
|
+
<div class="language-selector-container">
|
|
150
|
+
<pp-language-selector-list />
|
|
151
|
+
</div>
|
|
152
|
+
</ng-template>
|
|
153
|
+
</ng-container>
|
|
154
|
+
`, imports: [CdkOverlayOrigin, CdkConnectedOverlay, MatIcon, MatIconButton, LanguageSelectorListComponent, TranslocoDirective], providers: [provideTranslocoScope('widgets')], styles: [".language-selector-container{display:flex;background:#eee}\n"] }]
|
|
155
|
+
}] });
|
|
156
|
+
|
|
157
|
+
class LikeButtonComponent {
|
|
158
|
+
LIKES_PROPERTY = 'likes';
|
|
159
|
+
likesCount = computed(() => this.store.entities().find((property) => property.name === this.LIKES_PROPERTY));
|
|
160
|
+
store = inject(ApplicationPropertyStore);
|
|
161
|
+
// region event handling methods
|
|
162
|
+
onLike() {
|
|
163
|
+
const count = this.likesCount();
|
|
164
|
+
if (count) {
|
|
165
|
+
count.value = (parseInt(count.value, 10) + 1).toString();
|
|
166
|
+
this.store.update(count);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
this.store.add(new ApplicationProperty(this.LIKES_PROPERTY, '1'));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LikeButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
173
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: LikeButtonComponent, isStandalone: true, selector: "pp-like-button", ngImport: i0, template: `
|
|
174
|
+
<div class="like-button">
|
|
175
|
+
<button mat-icon-button (click)="onLike()" aria-label="Like Button">
|
|
176
|
+
<mat-icon>favorite</mat-icon>
|
|
177
|
+
</button>
|
|
178
|
+
<span>{{ likesCount()?.value }}</span>
|
|
179
|
+
</div>
|
|
180
|
+
`, isInline: true, styles: [".like-button{position:relative;display:inline-block}.like-button span{position:absolute;bottom:0;right:5px;font-size:10px}\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"] }] });
|
|
181
|
+
}
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LikeButtonComponent, decorators: [{
|
|
183
|
+
type: Component,
|
|
184
|
+
args: [{ selector: 'pp-like-button', template: `
|
|
185
|
+
<div class="like-button">
|
|
186
|
+
<button mat-icon-button (click)="onLike()" aria-label="Like Button">
|
|
187
|
+
<mat-icon>favorite</mat-icon>
|
|
188
|
+
</button>
|
|
189
|
+
<span>{{ likesCount()?.value }}</span>
|
|
190
|
+
</div>
|
|
191
|
+
`, imports: [MatIcon, MatIconButton], styles: [".like-button{position:relative;display:inline-block}.like-button span{position:absolute;bottom:0;right:5px;font-size:10px}\n"] }]
|
|
192
|
+
}] });
|
|
193
|
+
|
|
194
|
+
class NavigateBackService {
|
|
195
|
+
router;
|
|
196
|
+
routeHistory = new Stack();
|
|
197
|
+
constructor(router) {
|
|
198
|
+
this.router = router;
|
|
199
|
+
this.router.events.subscribe((event) => {
|
|
200
|
+
if (event instanceof NavigationEnd) {
|
|
201
|
+
this.addRouteToStack(event.urlAfterRedirects); // Add the current route to the stack
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
// region public accessor methods
|
|
206
|
+
goBack() {
|
|
207
|
+
if (this.routeHistory.size() > 1) {
|
|
208
|
+
this.routeHistory.pop(); // Remove current route
|
|
209
|
+
const previousRoute = this.routeHistory.pop(); // Get the previous route
|
|
210
|
+
if (previousRoute) {
|
|
211
|
+
this.router.navigateByUrl(previousRoute); // Navigate to the previous route
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
console.log('No previous routes to navigate back to.');
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
getRouteStack() {
|
|
219
|
+
return this.routeHistory;
|
|
220
|
+
}
|
|
221
|
+
clearHistory() {
|
|
222
|
+
this.routeHistory.clear();
|
|
223
|
+
}
|
|
224
|
+
// endregion
|
|
225
|
+
// protected, private helper methods
|
|
226
|
+
addRouteToStack(route) {
|
|
227
|
+
if (this.routeHistory.size() === 0 || this.routeHistory.peek() !== route) {
|
|
228
|
+
this.routeHistory.push(route);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: NavigateBackService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
232
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: NavigateBackService, providedIn: 'root' });
|
|
233
|
+
}
|
|
234
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: NavigateBackService, decorators: [{
|
|
235
|
+
type: Injectable,
|
|
236
|
+
args: [{ providedIn: 'root' }]
|
|
237
|
+
}], ctorParameters: () => [{ type: i1.Router }] });
|
|
238
|
+
|
|
239
|
+
class NavigateBackComponent {
|
|
240
|
+
service = inject(NavigateBackService);
|
|
241
|
+
// region event handling methods
|
|
242
|
+
onNavigateBack() {
|
|
243
|
+
this.service.goBack(); // Call the service to handle navigation
|
|
244
|
+
}
|
|
245
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: NavigateBackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
246
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: NavigateBackComponent, isStandalone: true, selector: "pp-navigate-back", ngImport: i0, template: `
|
|
247
|
+
<button mat-icon-button aria-label="Go back" (click)="onNavigateBack()">
|
|
248
|
+
<mat-icon class="material-symbols-outlined fat-back-arrow">arrow_back</mat-icon>
|
|
249
|
+
</button>
|
|
250
|
+
`, 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"] }] });
|
|
251
|
+
}
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: NavigateBackComponent, decorators: [{
|
|
253
|
+
type: Component,
|
|
254
|
+
args: [{ selector: 'pp-navigate-back', imports: [MatIcon, MatIconButton], template: `
|
|
255
|
+
<button mat-icon-button aria-label="Go back" (click)="onNavigateBack()">
|
|
256
|
+
<mat-icon class="material-symbols-outlined fat-back-arrow">arrow_back</mat-icon>
|
|
257
|
+
</button>
|
|
258
|
+
`, styles: [".fat-back-arrow{font-size:24px;font-variation-settings:\"wght\" 1200;color:#000}\n"] }]
|
|
259
|
+
}] });
|
|
260
|
+
|
|
261
|
+
class ApplicationPropertyMapper {
|
|
262
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
263
|
+
fromDto(dto) {
|
|
264
|
+
return new ApplicationProperty(dto.name, dto.value);
|
|
265
|
+
}
|
|
266
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
267
|
+
toDto(entity) {
|
|
268
|
+
return { name: entity.name, value: entity.value };
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
function provideAppPropertyStore() {
|
|
273
|
+
return [
|
|
274
|
+
{ provide: ApplicationPropertyService, useFactory: () => new ApplicationPropertyService(new ApplicationPropertyMapper()), deps: [EnvironmentInjector] },
|
|
275
|
+
{ provide: ApplicationPropertyStore, useFactory: () => new ApplicationPropertyStore(), deps: [ApplicationPropertyService] },
|
|
276
|
+
];
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
class ShareButtonComponent {
|
|
280
|
+
isOpen = false;
|
|
281
|
+
// region Event handler methods
|
|
282
|
+
onClose() {
|
|
283
|
+
this.isOpen = false;
|
|
284
|
+
}
|
|
285
|
+
onShare() {
|
|
286
|
+
this.toggleIsOpen();
|
|
287
|
+
}
|
|
288
|
+
// endregion
|
|
289
|
+
// region protected, private helper methods
|
|
290
|
+
toggleIsOpen() {
|
|
291
|
+
this.isOpen = !this.isOpen;
|
|
292
|
+
}
|
|
293
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: ShareButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
294
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: ShareButtonComponent, isStandalone: true, selector: "pp-share-button", ngImport: i0, template: `
|
|
295
|
+
<div>
|
|
296
|
+
<button mat-icon-button (click)="onShare()" cdkOverlayOrigin #trigger="cdkOverlayOrigin" aria-label="Share Button">
|
|
297
|
+
<mat-icon>share</mat-icon>
|
|
298
|
+
</button>
|
|
299
|
+
</div>
|
|
300
|
+
<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]="trigger" [cdkConnectedOverlayOpen]="isOpen" [cdkConnectedOverlayHasBackdrop]="true" (backdropClick)="onClose()">
|
|
301
|
+
<div class="share-buttons-container">
|
|
302
|
+
<share-buttons />
|
|
303
|
+
</div>
|
|
304
|
+
</ng-template>
|
|
305
|
+
`, isInline: true, styles: [".share-buttons-container{display:flex;background:#eee}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { 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"] }, { kind: "component", type: ShareButtons, selector: "share-buttons", inputs: ["show", "include", "exclude", "expanded", "theme", "url", "title", "description", "image", "tags", "redirectUrl", "showIcon", "showText", "disabled"], outputs: ["expandedChange", "opened"] }] });
|
|
306
|
+
}
|
|
307
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: ShareButtonComponent, decorators: [{
|
|
308
|
+
type: Component,
|
|
309
|
+
args: [{ selector: 'pp-share-button', template: `
|
|
310
|
+
<div>
|
|
311
|
+
<button mat-icon-button (click)="onShare()" cdkOverlayOrigin #trigger="cdkOverlayOrigin" aria-label="Share Button">
|
|
312
|
+
<mat-icon>share</mat-icon>
|
|
313
|
+
</button>
|
|
314
|
+
</div>
|
|
315
|
+
<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]="trigger" [cdkConnectedOverlayOpen]="isOpen" [cdkConnectedOverlayHasBackdrop]="true" (backdropClick)="onClose()">
|
|
316
|
+
<div class="share-buttons-container">
|
|
317
|
+
<share-buttons />
|
|
318
|
+
</div>
|
|
319
|
+
</ng-template>
|
|
320
|
+
`, imports: [CdkOverlayOrigin, CdkConnectedOverlay, MatIcon, MatIconButton, ShareButtons], styles: [".share-buttons-container{display:flex;background:#eee}\n"] }]
|
|
321
|
+
}] });
|
|
322
|
+
|
|
323
|
+
class ShareButtonModule {
|
|
324
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: ShareButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
325
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: ShareButtonModule });
|
|
326
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: ShareButtonModule, providers: [provideShareButtonsOptions(shareIcons())] });
|
|
327
|
+
}
|
|
328
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: ShareButtonModule, decorators: [{
|
|
329
|
+
type: NgModule,
|
|
330
|
+
args: [{
|
|
331
|
+
imports: [],
|
|
332
|
+
declarations: [],
|
|
333
|
+
providers: [provideShareButtonsOptions(shareIcons())],
|
|
334
|
+
}]
|
|
335
|
+
}] });
|
|
336
|
+
|
|
337
|
+
class TranslocoHttpLoader {
|
|
338
|
+
http;
|
|
339
|
+
constructor(http) {
|
|
340
|
+
this.http = http;
|
|
341
|
+
}
|
|
342
|
+
getTranslation(lang) {
|
|
343
|
+
const path = `/assets/i18n/${lang}.json`;
|
|
344
|
+
console.log(`Loading translations from: ${path}`);
|
|
345
|
+
return this.http.get(path);
|
|
346
|
+
}
|
|
347
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TranslocoHttpLoader, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
348
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TranslocoHttpLoader, providedIn: 'root' });
|
|
349
|
+
}
|
|
350
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TranslocoHttpLoader, decorators: [{
|
|
351
|
+
type: Injectable,
|
|
352
|
+
args: [{ providedIn: 'root' }]
|
|
353
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }] });
|
|
354
|
+
|
|
355
|
+
var de = {
|
|
356
|
+
"language-selector": {
|
|
357
|
+
en: "English",
|
|
358
|
+
de: "Deutsch",
|
|
359
|
+
hu: "Ungarisch",
|
|
360
|
+
es: "Spanisch",
|
|
361
|
+
english: "English",
|
|
362
|
+
german: "Deutsch",
|
|
363
|
+
hungarian: "Ungarisch",
|
|
364
|
+
spanish: "Spanisch"
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
var hu = {
|
|
369
|
+
"language-selector": {
|
|
370
|
+
en: "Angol",
|
|
371
|
+
de: "Német",
|
|
372
|
+
hu: "Magyar",
|
|
373
|
+
es: "Spanyol",
|
|
374
|
+
english: "Angol",
|
|
375
|
+
german: "Német",
|
|
376
|
+
hungarian: "Magyar",
|
|
377
|
+
spanish: "Spanyol"
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
var en = {
|
|
382
|
+
"language-selector": {
|
|
383
|
+
en: "English",
|
|
384
|
+
de: "German",
|
|
385
|
+
hu: "Hungarian",
|
|
386
|
+
es: "Spanish",
|
|
387
|
+
english: "English",
|
|
388
|
+
german: "German",
|
|
389
|
+
hungarian: "Hungarian",
|
|
390
|
+
spanish: "Spanish"
|
|
391
|
+
}
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
var es = {
|
|
395
|
+
"language-selector": {
|
|
396
|
+
en: "Inglés",
|
|
397
|
+
de: "Alemán",
|
|
398
|
+
hu: "Húngaro",
|
|
399
|
+
es: "Español",
|
|
400
|
+
english: "Inglés",
|
|
401
|
+
german: "Alemán",
|
|
402
|
+
hungarian: "Húngaro",
|
|
403
|
+
spanish: "Español"
|
|
404
|
+
}
|
|
405
|
+
};
|
|
406
|
+
|
|
407
|
+
class WidgetsModule {
|
|
408
|
+
_translate;
|
|
409
|
+
constructor(_translate) {
|
|
410
|
+
this._translate = _translate;
|
|
411
|
+
this._translate.setTranslation({ widgets: de }, 'de');
|
|
412
|
+
this._translate.setTranslation({ widgets: hu }, 'hu');
|
|
413
|
+
this._translate.setTranslation({ widgets: en }, 'en');
|
|
414
|
+
this._translate.setTranslation({ widgets: es }, 'es');
|
|
415
|
+
}
|
|
416
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: WidgetsModule, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
417
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: WidgetsModule, imports: [TranslocoModule], exports: [TranslocoModule] });
|
|
418
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: WidgetsModule, providers: [
|
|
419
|
+
{
|
|
420
|
+
provide: provideTransloco,
|
|
421
|
+
useFactory: () => {
|
|
422
|
+
const runtimeConfig = inject(RUNTIME_CONFIGURATION);
|
|
423
|
+
return provideTransloco({
|
|
424
|
+
config: {
|
|
425
|
+
availableLangs: runtimeConfig.AVAILABLE_LANGUAGES?.map((lang) => lang.code),
|
|
426
|
+
defaultLang: runtimeConfig.DEFAULT_LANGUAGE,
|
|
427
|
+
reRenderOnLangChange: true,
|
|
428
|
+
prodMode: !isDevMode(),
|
|
429
|
+
},
|
|
430
|
+
loader: TranslocoHttpLoader,
|
|
431
|
+
});
|
|
432
|
+
},
|
|
433
|
+
deps: [RUNTIME_CONFIGURATION],
|
|
434
|
+
},
|
|
435
|
+
provideTransloco({
|
|
436
|
+
config: {
|
|
437
|
+
availableLangs: ['de', 'en', 'es', 'hu'],
|
|
438
|
+
defaultLang: 'en',
|
|
439
|
+
reRenderOnLangChange: true,
|
|
440
|
+
prodMode: !isDevMode(),
|
|
441
|
+
},
|
|
442
|
+
loader: TranslocoHttpLoader,
|
|
443
|
+
}),
|
|
444
|
+
], imports: [TranslocoModule, TranslocoModule] });
|
|
445
|
+
}
|
|
446
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: WidgetsModule, decorators: [{
|
|
447
|
+
type: NgModule,
|
|
448
|
+
args: [{
|
|
449
|
+
imports: [TranslocoModule],
|
|
450
|
+
exports: [TranslocoModule],
|
|
451
|
+
providers: [
|
|
452
|
+
{
|
|
453
|
+
provide: provideTransloco,
|
|
454
|
+
useFactory: () => {
|
|
455
|
+
const runtimeConfig = inject(RUNTIME_CONFIGURATION);
|
|
456
|
+
return provideTransloco({
|
|
457
|
+
config: {
|
|
458
|
+
availableLangs: runtimeConfig.AVAILABLE_LANGUAGES?.map((lang) => lang.code),
|
|
459
|
+
defaultLang: runtimeConfig.DEFAULT_LANGUAGE,
|
|
460
|
+
reRenderOnLangChange: true,
|
|
461
|
+
prodMode: !isDevMode(),
|
|
462
|
+
},
|
|
463
|
+
loader: TranslocoHttpLoader,
|
|
464
|
+
});
|
|
465
|
+
},
|
|
466
|
+
deps: [RUNTIME_CONFIGURATION],
|
|
467
|
+
},
|
|
468
|
+
provideTransloco({
|
|
469
|
+
config: {
|
|
470
|
+
availableLangs: ['de', 'en', 'es', 'hu'],
|
|
471
|
+
defaultLang: 'en',
|
|
472
|
+
reRenderOnLangChange: true,
|
|
473
|
+
prodMode: !isDevMode(),
|
|
474
|
+
},
|
|
475
|
+
loader: TranslocoHttpLoader,
|
|
476
|
+
}),
|
|
477
|
+
],
|
|
478
|
+
}]
|
|
479
|
+
}], ctorParameters: () => [{ type: i1$2.TranslocoService }] });
|
|
480
|
+
|
|
481
|
+
/*
|
|
482
|
+
* Public API Surface of @processpuzzle/widgets
|
|
483
|
+
*/
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Generated bundle index. Do not edit.
|
|
487
|
+
*/
|
|
488
|
+
|
|
489
|
+
export { ApplicationProperty, ApplicationPropertyStore, LanguageSelectorComponent, LikeButtonComponent, NavigateBackComponent, NavigateBackService, ShareButtonComponent, ShareButtonModule, TranslocoHttpLoader, WidgetsModule, provideAppPropertyStore };
|
|
490
|
+
//# sourceMappingURL=processpuzzle-widgets.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processpuzzle-widgets.mjs","sources":["../../../../libs/widgets/src/lib/app-property/app-property.ts","../../../../libs/widgets/src/lib/app-property/app-property.service.ts","../../../../libs/widgets/src/lib/app-property/app-property.store.ts","../../../../libs/widgets/src/lib/language-selector/language-selector-list.component.ts","../../../../libs/widgets/src/lib/language-selector/language-selector.component.ts","../../../../libs/widgets/src/lib/like-button/like-button.component.ts","../../../../libs/widgets/src/lib/navigate-back/navigate-back.service.ts","../../../../libs/widgets/src/lib/navigate-back/navigate-back.component.ts","../../../../libs/widgets/src/lib/app-property/app-property.mapper.ts","../../../../libs/widgets/src/lib/app-property/app-property-store.provider.ts","../../../../libs/widgets/src/lib/share-button/share-button.component.ts","../../../../libs/widgets/src/lib/share-button/share-button.module.ts","../../../../libs/widgets/src/lib/language-selector/transloco.loader.ts","../../../../libs/widgets/src/lib/widgets.module.ts","../../../../libs/widgets/src/public-api.ts","../../../../libs/widgets/src/processpuzzle-widgets.ts"],"sourcesContent":["import { BaseEntity } from '@processpuzzle/base-entity';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport class ApplicationProperty implements BaseEntity {\n readonly id: string = uuidv4();\n private readonly propertyName: string;\n private propertyValue: string;\n\n constructor(name?: string, value?: string) {\n this.propertyName = name ?? '';\n this.propertyValue = value ?? '';\n }\n\n // region properties\n public get name() {\n return this.propertyName;\n }\n\n public get value() {\n return this.propertyValue;\n }\n\n public set value(newValue: string) {\n this.propertyValue = newValue;\n }\n\n // endregion\n}\n","import { ApplicationProperty } from './app-property';\nimport { BaseEntityFirestoreService } from '@processpuzzle/base-entity';\nimport { ApplicationPropertyMapper } from './app-property.mapper';\n\nexport class ApplicationPropertyService extends BaseEntityFirestoreService<ApplicationProperty> {\n constructor(protected override entityMapper: ApplicationPropertyMapper) {\n super(entityMapper, 'application-properties');\n }\n}\n","import { signalStore } from '@ngrx/signals';\nimport { BaseEntityContainerStore, BaseEntityStore, BaseEntityTabsStore, BaseFormNavigatorStore } from '@processpuzzle/base-entity';\nimport { ApplicationProperty } from './app-property';\nimport { ApplicationPropertyService } from './app-property.service';\n\nexport const ApplicationPropertyStore = signalStore(\n { providedIn: 'root' },\n BaseEntityStore<ApplicationProperty>(ApplicationProperty, ApplicationPropertyService),\n BaseFormNavigatorStore('ApplicationProperty'),\n BaseEntityTabsStore(),\n BaseEntityContainerStore(),\n);\n","import { Component, inject } from '@angular/core';\nimport { RUNTIME_CONFIGURATION } from '@processpuzzle/util';\nimport { LanguageConfig } from './language-config';\nimport { provideTranslocoScope, TranslocoDirective, TranslocoService } from '@jsverse/transloco';\nimport { NgClass, NgForOf } from '@angular/common';\nimport { MatListOption, MatSelectionList, MatSelectionListChange } from '@angular/material/list';\n\n@Component({\n selector: 'pp-language-selector-list',\n template: `\n <ng-container *transloco=\"let t; prefix: 'language-selector'\">\n <div class=\"language-selector\">\n <mat-selection-list #selectionList (selectionChange)=\"onSelectionChange($event)\" [multiple]=\"false\">\n <mat-list-option\n *ngFor=\"let language of languages\"\n [value]=\"language.code\"\n [selected]=\"selectedLanguage === language.code\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"selectedLanguage === language.code ? 'true' : 'false'\"\n >\n <span [ngClass]=\"language.flag\"> - </span>\n <span>{{ t(language.label) }}</span>\n </mat-list-option>\n </mat-selection-list>\n </div>\n </ng-container>\n `,\n styleUrls: ['language-selector-list.component.css'],\n imports: [NgClass, NgForOf, TranslocoDirective, MatListOption, MatSelectionList],\n providers: [provideTranslocoScope('widgets')],\n})\nexport class LanguageSelectorListComponent {\n private readonly translocoService = inject(TranslocoService);\n private readonly runtimeConfiguration: LanguageConfig = inject(RUNTIME_CONFIGURATION);\n readonly languages = this.runtimeConfiguration.AVAILABLE_LANGUAGES;\n selectedLanguage = this.runtimeConfiguration.DEFAULT_LANGUAGE;\n\n // region event handling methods\n onSelectionChange(event: MatSelectionListChange) {\n const selectedOption = event.source;\n const selectedValue = selectedOption.selectedOptions.selected[0]?.value;\n\n if (this.selectedLanguage !== selectedValue) {\n this.translocoService.setActiveLang(selectedValue);\n this.selectedLanguage = selectedValue;\n }\n }\n\n // endregion\n}\n","import { Component } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { LanguageSelectorListComponent } from './language-selector-list.component';\nimport { provideTranslocoScope, TranslocoDirective } from '@jsverse/transloco';\n\n@Component({\n selector: 'pp-language-selector',\n template: `\n <ng-container *transloco=\"let t; prefix: 'language-selector'\">\n <div>\n <button mat-icon-button (click)=\"onSelectLanguage()\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" aria-label=\"Select Language Button\">\n <mat-icon>language</mat-icon>\n </button>\n </div>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"isOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" (backdropClick)=\"onClose()\">\n <div class=\"language-selector-container\">\n <pp-language-selector-list />\n </div>\n </ng-template>\n </ng-container>\n `,\n styleUrls: ['./language-selector.component.css'],\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, MatIcon, MatIconButton, LanguageSelectorListComponent, TranslocoDirective],\n providers: [provideTranslocoScope('widgets')],\n})\nexport class LanguageSelectorComponent {\n isOpen = false;\n\n // region Event handler methods\n onClose(): void {\n this.isOpen = false;\n }\n\n onSelectLanguage(): void {\n this.toggleIsOpen();\n }\n\n // endregion\n\n // region protected, private helper methods\n private toggleIsOpen(): void {\n this.isOpen = !this.isOpen;\n }\n\n // endregion\n}\n","import { Component, computed, inject } from '@angular/core';\nimport { ApplicationPropertyStore } from '../app-property/app-property.store';\nimport { ApplicationProperty } from '../app-property/app-property';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\n\n@Component({\n selector: 'pp-like-button',\n template: `\n <div class=\"like-button\">\n <button mat-icon-button (click)=\"onLike()\" aria-label=\"Like Button\">\n <mat-icon>favorite</mat-icon>\n </button>\n <span>{{ likesCount()?.value }}</span>\n </div>\n `,\n styleUrls: ['./like-button.component.css'],\n imports: [MatIcon, MatIconButton],\n})\nexport class LikeButtonComponent {\n private readonly LIKES_PROPERTY = 'likes';\n likesCount = computed(() => this.store.entities().find((property) => property.name === this.LIKES_PROPERTY));\n readonly store = inject(ApplicationPropertyStore);\n\n // region event handling methods\n onLike(): void {\n const count = this.likesCount();\n if (count) {\n count.value = (parseInt(count.value, 10) + 1).toString();\n this.store.update(count);\n } else {\n this.store.add(new ApplicationProperty(this.LIKES_PROPERTY, '1'));\n }\n }\n\n // endregion\n}\n","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 readonly routeHistory = new Stack<string>();\n\n constructor(private readonly 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.log('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","import { ApplicationProperty } from './app-property';\nimport { BaseEntityMapper } from '@processpuzzle/base-entity';\n\nexport class ApplicationPropertyMapper implements BaseEntityMapper<ApplicationProperty> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fromDto(dto: any): ApplicationProperty {\n return new ApplicationProperty(dto.name, dto.value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n toDto(entity: ApplicationProperty): any {\n return { name: entity.name, value: entity.value };\n }\n}\n","import { ApplicationPropertyStore } from './app-property.store';\nimport { EnvironmentInjector, Provider } from '@angular/core';\nimport { ApplicationPropertyService } from './app-property.service';\nimport { ApplicationPropertyMapper } from './app-property.mapper';\n\nexport function provideAppPropertyStore(): Provider[] {\n return [\n { provide: ApplicationPropertyService, useFactory: () => new ApplicationPropertyService(new ApplicationPropertyMapper()), deps: [EnvironmentInjector] },\n { provide: ApplicationPropertyStore, useFactory: () => new ApplicationPropertyStore(), deps: [ApplicationPropertyService] },\n ];\n}\n","import { Component } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { ShareButtons } from 'ngx-sharebuttons/buttons';\n\n@Component({\n selector: 'pp-share-button',\n template: `\n <div>\n <button mat-icon-button (click)=\"onShare()\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" aria-label=\"Share Button\">\n <mat-icon>share</mat-icon>\n </button>\n </div>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"isOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" (backdropClick)=\"onClose()\">\n <div class=\"share-buttons-container\">\n <share-buttons />\n </div>\n </ng-template>\n `,\n styleUrls: ['./share-button.component.css'],\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, MatIcon, MatIconButton, ShareButtons],\n})\nexport class ShareButtonComponent {\n isOpen = false;\n\n // region Event handler methods\n onClose(): void {\n this.isOpen = false;\n }\n\n onShare(): void {\n this.toggleIsOpen();\n }\n\n // endregion\n\n // region protected, private helper methods\n private toggleIsOpen(): void {\n this.isOpen = !this.isOpen;\n }\n\n // endregion\n}\n","import { NgModule } from '@angular/core';\nimport { provideShareButtonsOptions } from 'ngx-sharebuttons';\nimport { shareIcons } from 'ngx-sharebuttons/icons';\n\n@NgModule({\n imports: [],\n declarations: [],\n providers: [provideShareButtonsOptions(shareIcons())],\n})\nexport class ShareButtonModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Translation, TranslocoLoader } from '@jsverse/transloco';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslocoHttpLoader implements TranslocoLoader {\n constructor(private readonly http: HttpClient) {}\n\n getTranslation(lang: string): Observable<Translation> {\n const path = `/assets/i18n/${lang}.json`;\n console.log(`Loading translations from: ${path}`);\n return this.http.get<Translation>(path);\n }\n}\n","import { provideTransloco, TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { inject, isDevMode, NgModule } from '@angular/core';\nimport de from './assets/i18n/widgets/de.json';\nimport hu from './assets/i18n/widgets/hu.json';\nimport en from './assets/i18n/widgets/en.json';\nimport es from './assets/i18n/widgets/es.json';\nimport { TranslocoHttpLoader } from './language-selector/transloco.loader';\nimport { LanguageConfig } from './language-selector/language-config';\nimport { RUNTIME_CONFIGURATION } from '@processpuzzle/util';\n\n@NgModule({\n imports: [TranslocoModule],\n exports: [TranslocoModule],\n providers: [\n {\n provide: provideTransloco,\n useFactory: () => {\n const runtimeConfig: LanguageConfig = inject(RUNTIME_CONFIGURATION);\n return provideTransloco({\n config: {\n availableLangs: runtimeConfig.AVAILABLE_LANGUAGES?.map((lang) => lang.code),\n defaultLang: runtimeConfig.DEFAULT_LANGUAGE,\n reRenderOnLangChange: true,\n prodMode: !isDevMode(),\n },\n loader: TranslocoHttpLoader,\n });\n },\n deps: [RUNTIME_CONFIGURATION],\n },\n provideTransloco({\n config: {\n availableLangs: ['de', 'en', 'es', 'hu'],\n defaultLang: 'en',\n reRenderOnLangChange: true,\n prodMode: !isDevMode(),\n },\n loader: TranslocoHttpLoader,\n }),\n ],\n})\nexport class WidgetsModule {\n constructor(private _translate: TranslocoService) {\n this._translate.setTranslation({ widgets: de }, 'de');\n this._translate.setTranslation({ widgets: hu }, 'hu');\n this._translate.setTranslation({ widgets: en }, 'en');\n this._translate.setTranslation({ widgets: es }, 'es');\n }\n}\n","/*\n * Public API Surface of @processpuzzle/widgets\n */\n\nexport { ApplicationProperty } from './lib/app-property/app-property';\nexport { ApplicationPropertyStore } from './lib/app-property/app-property.store';\nexport { LanguageSelectorComponent } from './lib/language-selector/language-selector.component';\nexport { LikeButtonComponent } from './lib/like-button/like-button.component';\nexport { NavigateBackComponent } from './lib/navigate-back/navigate-back.component';\nexport { NavigateBackService } from './lib/navigate-back/navigate-back.service';\nexport { provideAppPropertyStore } from './lib/app-property/app-property-store.provider';\nexport { ShareButtonComponent } from './lib/share-button/share-button.component';\nexport { ShareButtonModule } from './lib/share-button/share-button.module';\nexport { TranslocoHttpLoader } from './lib/language-selector/transloco.loader';\nexport { WidgetsModule } from './lib/widgets.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4","i1"],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseEntity } from '@processpuzzle/base-entity';
|
|
2
|
+
export declare class ApplicationProperty implements BaseEntity {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
private readonly propertyName;
|
|
5
|
+
private propertyValue;
|
|
6
|
+
constructor(name?: string, value?: string);
|
|
7
|
+
get name(): string;
|
|
8
|
+
get value(): string;
|
|
9
|
+
set value(newValue: string);
|
|
10
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ApplicationProperty } from './app-property';
|
|
2
|
+
import { BaseEntityMapper } from '@processpuzzle/base-entity';
|
|
3
|
+
export declare class ApplicationPropertyMapper implements BaseEntityMapper<ApplicationProperty> {
|
|
4
|
+
fromDto(dto: any): ApplicationProperty;
|
|
5
|
+
toDto(entity: ApplicationProperty): any;
|
|
6
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ApplicationProperty } from './app-property';
|
|
2
|
+
import { BaseEntityFirestoreService } from '@processpuzzle/base-entity';
|
|
3
|
+
import { ApplicationPropertyMapper } from './app-property.mapper';
|
|
4
|
+
export declare class ApplicationPropertyService extends BaseEntityFirestoreService<ApplicationProperty> {
|
|
5
|
+
protected entityMapper: ApplicationPropertyMapper;
|
|
6
|
+
constructor(entityMapper: ApplicationPropertyMapper);
|
|
7
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ApplicationProperty } from './app-property';
|
|
2
|
+
export declare const ApplicationPropertyStore: import("@angular/core").Type<{
|
|
3
|
+
entities: import("@angular/core").Signal<ApplicationProperty[]>;
|
|
4
|
+
page: import("@angular/core").Signal<number>;
|
|
5
|
+
pageSize: import("@angular/core").Signal<number>;
|
|
6
|
+
totalPageCount: import("@angular/core").Signal<number>;
|
|
7
|
+
currentId: import("@angular/core").Signal<string | undefined>;
|
|
8
|
+
currentEntity: import("@angular/core").Signal<ApplicationProperty | undefined>;
|
|
9
|
+
isLoading: import("@angular/core").Signal<boolean>;
|
|
10
|
+
error: import("@angular/core").Signal<string | undefined>;
|
|
11
|
+
selectedEntities: import("@angular/core").Signal<ApplicationProperty[]>;
|
|
12
|
+
activeRouteSegment: import("@angular/core").Signal<import("dist/libs/base-entity/lib/base-form-navigator/base-form-navigator.store").RouteSegments>;
|
|
13
|
+
entityName: import("@angular/core").Signal<string>;
|
|
14
|
+
navigationError?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
15
|
+
navigateTo: import("@angular/core").Signal<string>;
|
|
16
|
+
returnTo: import("@angular/core").Signal<string>;
|
|
17
|
+
activeTabs: import("@angular/core").Signal<string[]>;
|
|
18
|
+
currentTab: import("@angular/core").Signal<string | undefined>;
|
|
19
|
+
filterKey: import("@angular/core").Signal<string | undefined>;
|
|
20
|
+
countOfEntities: import("@angular/core").Signal<number>;
|
|
21
|
+
matTableDataSource: import("@angular/core").Signal<import("@angular/material/table").MatTableDataSource<ApplicationProperty, import("@angular/material/paginator.d-BpWCCOIR").MatPaginator>>;
|
|
22
|
+
clearCurrentEntity: () => void;
|
|
23
|
+
createEntity: () => ApplicationProperty;
|
|
24
|
+
add: import("@ngrx/signals/rxjs-interop").RxMethod<ApplicationProperty>;
|
|
25
|
+
delete: import("@ngrx/signals/rxjs-interop").RxMethod<string>;
|
|
26
|
+
deleteAll: import("@ngrx/signals/rxjs-interop").RxMethod<void>;
|
|
27
|
+
deselectAll: () => void;
|
|
28
|
+
deselectEntity: (id: string) => void;
|
|
29
|
+
load: import("@ngrx/signals/rxjs-interop").RxMethod<import("@processpuzzle/base-entity").BaseEntityQueryCondition>;
|
|
30
|
+
loadById: (id: string) => ApplicationProperty | undefined;
|
|
31
|
+
resetErrorState: () => void;
|
|
32
|
+
selectEntity: (id: string) => void;
|
|
33
|
+
setCurrentEntity: (id: string) => void;
|
|
34
|
+
update: import("@ngrx/signals/rxjs-interop").RxMethod<ApplicationProperty>;
|
|
35
|
+
determineCurrentUrl: () => string;
|
|
36
|
+
determineActiveRouteSegment: () => void;
|
|
37
|
+
navigateBack: (defaultUrl?: string) => Promise<void>;
|
|
38
|
+
navigateToDetails: (id: string, returnTo?: string) => Promise<void>;
|
|
39
|
+
navigateToList: (returnTo?: string) => Promise<void>;
|
|
40
|
+
navigateToRelated: (relatedTypeName: string, id: string, returnTo?: string) => Promise<void>;
|
|
41
|
+
navigateToUrl: (url: string, returnTo?: string) => Promise<void>;
|
|
42
|
+
reset: () => void;
|
|
43
|
+
tabIsActive: (tabName: string) => void;
|
|
44
|
+
tabIsInactive: (tabName: string) => void;
|
|
45
|
+
doFilter: (filterKey: string) => void;
|
|
46
|
+
} & import("@ngrx/signals").StateSource<{
|
|
47
|
+
entities: ApplicationProperty[];
|
|
48
|
+
page: number;
|
|
49
|
+
pageSize: number;
|
|
50
|
+
totalPageCount: number;
|
|
51
|
+
currentId: string | undefined;
|
|
52
|
+
currentEntity: ApplicationProperty | undefined;
|
|
53
|
+
isLoading: boolean;
|
|
54
|
+
error: string | undefined;
|
|
55
|
+
selectedEntities: ApplicationProperty[];
|
|
56
|
+
activeRouteSegment: import("dist/libs/base-entity/lib/base-form-navigator/base-form-navigator.store").RouteSegments;
|
|
57
|
+
entityName: string;
|
|
58
|
+
navigationError?: string | undefined | undefined;
|
|
59
|
+
navigateTo: string;
|
|
60
|
+
returnTo: string;
|
|
61
|
+
activeTabs: string[];
|
|
62
|
+
currentTab: string | undefined;
|
|
63
|
+
filterKey: string | undefined;
|
|
64
|
+
}>>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MatSelectionListChange } from '@angular/material/list';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class LanguageSelectorListComponent {
|
|
4
|
+
private readonly translocoService;
|
|
5
|
+
private readonly runtimeConfiguration;
|
|
6
|
+
readonly languages: import("./language-config").LanguageDefinition[] | undefined;
|
|
7
|
+
selectedLanguage: string | undefined;
|
|
8
|
+
onSelectionChange(event: MatSelectionListChange): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LanguageSelectorListComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LanguageSelectorListComponent, "pp-language-selector-list", never, {}, {}, never, never, true, never>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class LanguageSelectorComponent {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClose(): void;
|
|
5
|
+
onSelectLanguage(): void;
|
|
6
|
+
private toggleIsOpen;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LanguageSelectorComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LanguageSelectorComponent, "pp-language-selector", never, {}, {}, never, never, true, never>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Translation, TranslocoLoader } from '@jsverse/transloco';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class TranslocoHttpLoader implements TranslocoLoader {
|
|
6
|
+
private readonly http;
|
|
7
|
+
constructor(http: HttpClient);
|
|
8
|
+
getTranslation(lang: string): Observable<Translation>;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TranslocoHttpLoader, never>;
|
|
10
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TranslocoHttpLoader>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { ApplicationProperty } from '../app-property/app-property';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class LikeButtonComponent {
|
|
4
|
+
private readonly LIKES_PROPERTY;
|
|
5
|
+
likesCount: import("@angular/core").Signal<ApplicationProperty | undefined>;
|
|
6
|
+
readonly store: {
|
|
7
|
+
entities: import("@angular/core").Signal<ApplicationProperty[]>;
|
|
8
|
+
page: import("@angular/core").Signal<number>;
|
|
9
|
+
pageSize: import("@angular/core").Signal<number>;
|
|
10
|
+
totalPageCount: import("@angular/core").Signal<number>;
|
|
11
|
+
currentId: import("@angular/core").Signal<string | undefined>;
|
|
12
|
+
currentEntity: import("@angular/core").Signal<ApplicationProperty | undefined>;
|
|
13
|
+
isLoading: import("@angular/core").Signal<boolean>;
|
|
14
|
+
error: import("@angular/core").Signal<string | undefined>;
|
|
15
|
+
selectedEntities: import("@angular/core").Signal<ApplicationProperty[]>;
|
|
16
|
+
activeRouteSegment: import("@angular/core").Signal<import("dist/libs/base-entity/lib/base-form-navigator/base-form-navigator.store").RouteSegments>;
|
|
17
|
+
entityName: import("@angular/core").Signal<string>;
|
|
18
|
+
navigationError?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
19
|
+
navigateTo: import("@angular/core").Signal<string>;
|
|
20
|
+
returnTo: import("@angular/core").Signal<string>;
|
|
21
|
+
activeTabs: import("@angular/core").Signal<string[]>;
|
|
22
|
+
currentTab: import("@angular/core").Signal<string | undefined>;
|
|
23
|
+
filterKey: import("@angular/core").Signal<string | undefined>;
|
|
24
|
+
countOfEntities: import("@angular/core").Signal<number>;
|
|
25
|
+
matTableDataSource: import("@angular/core").Signal<import("@angular/material/table").MatTableDataSource<ApplicationProperty, import("@angular/material/paginator.d-BpWCCOIR").MatPaginator>>;
|
|
26
|
+
clearCurrentEntity: () => void;
|
|
27
|
+
createEntity: () => ApplicationProperty;
|
|
28
|
+
add: import("@ngrx/signals/rxjs-interop").RxMethod<ApplicationProperty>;
|
|
29
|
+
delete: import("@ngrx/signals/rxjs-interop").RxMethod<string>;
|
|
30
|
+
deleteAll: import("@ngrx/signals/rxjs-interop").RxMethod<void>;
|
|
31
|
+
deselectAll: () => void;
|
|
32
|
+
deselectEntity: (id: string) => void;
|
|
33
|
+
load: import("@ngrx/signals/rxjs-interop").RxMethod<import("@processpuzzle/base-entity").BaseEntityQueryCondition>;
|
|
34
|
+
loadById: (id: string) => ApplicationProperty | undefined;
|
|
35
|
+
resetErrorState: () => void;
|
|
36
|
+
selectEntity: (id: string) => void;
|
|
37
|
+
setCurrentEntity: (id: string) => void;
|
|
38
|
+
update: import("@ngrx/signals/rxjs-interop").RxMethod<ApplicationProperty>;
|
|
39
|
+
determineCurrentUrl: () => string;
|
|
40
|
+
determineActiveRouteSegment: () => void;
|
|
41
|
+
navigateBack: (defaultUrl?: string) => Promise<void>;
|
|
42
|
+
navigateToDetails: (id: string, returnTo?: string) => Promise<void>;
|
|
43
|
+
navigateToList: (returnTo?: string) => Promise<void>;
|
|
44
|
+
navigateToRelated: (relatedTypeName: string, id: string, returnTo?: string) => Promise<void>;
|
|
45
|
+
navigateToUrl: (url: string, returnTo?: string) => Promise<void>;
|
|
46
|
+
reset: () => void;
|
|
47
|
+
tabIsActive: (tabName: string) => void;
|
|
48
|
+
tabIsInactive: (tabName: string) => void;
|
|
49
|
+
doFilter: (filterKey: string) => void;
|
|
50
|
+
} & import("@ngrx/signals").StateSource<{
|
|
51
|
+
entities: ApplicationProperty[];
|
|
52
|
+
page: number;
|
|
53
|
+
pageSize: number;
|
|
54
|
+
totalPageCount: number;
|
|
55
|
+
currentId: string | undefined;
|
|
56
|
+
currentEntity: ApplicationProperty | undefined;
|
|
57
|
+
isLoading: boolean;
|
|
58
|
+
error: string | undefined;
|
|
59
|
+
selectedEntities: ApplicationProperty[];
|
|
60
|
+
activeRouteSegment: import("dist/libs/base-entity/lib/base-form-navigator/base-form-navigator.store").RouteSegments;
|
|
61
|
+
entityName: string;
|
|
62
|
+
navigationError?: string | undefined | undefined;
|
|
63
|
+
navigateTo: string;
|
|
64
|
+
returnTo: string;
|
|
65
|
+
activeTabs: string[];
|
|
66
|
+
currentTab: string | undefined;
|
|
67
|
+
filterKey: string | undefined;
|
|
68
|
+
}>;
|
|
69
|
+
onLike(): void;
|
|
70
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LikeButtonComponent, never>;
|
|
71
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LikeButtonComponent, "pp-like-button", never, {}, {}, never, never, true, never>;
|
|
72
|
+
}
|
|
@@ -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 readonly router;
|
|
6
|
+
private readonly 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
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class ShareButtonComponent {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClose(): void;
|
|
5
|
+
onShare(): void;
|
|
6
|
+
private toggleIsOpen;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShareButtonComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ShareButtonComponent, "pp-share-button", never, {}, {}, never, never, true, never>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class ShareButtonModule {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShareButtonModule, never>;
|
|
4
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ShareButtonModule, never, never, never>;
|
|
5
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ShareButtonModule>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TranslocoService } from '@jsverse/transloco';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@jsverse/transloco";
|
|
4
|
+
export declare class WidgetsModule {
|
|
5
|
+
private _translate;
|
|
6
|
+
constructor(_translate: TranslocoService);
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WidgetsModule, never>;
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<WidgetsModule, never, [typeof i1.TranslocoModule], [typeof i1.TranslocoModule]>;
|
|
9
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<WidgetsModule>;
|
|
10
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@processpuzzle/widgets",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -17,8 +17,10 @@
|
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"tslib": "^2.8.1"
|
|
19
19
|
},
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"module": "fesm2022/processpuzzle-widgets.mjs",
|
|
22
|
+
"typings": "index.d.ts",
|
|
20
23
|
"exports": {
|
|
21
|
-
"./i18n/*": "./i18n/pp-widgets/*",
|
|
22
24
|
"./package.json": {
|
|
23
25
|
"default": "./package.json"
|
|
24
26
|
},
|
|
@@ -26,12 +28,5 @@
|
|
|
26
28
|
"types": "./index.d.ts",
|
|
27
29
|
"default": "./fesm2022/processpuzzle-widgets.mjs"
|
|
28
30
|
}
|
|
29
|
-
}
|
|
30
|
-
"files": [
|
|
31
|
-
"dist/libs/widgets/",
|
|
32
|
-
"i18n/"
|
|
33
|
-
],
|
|
34
|
-
"sideEffects": false,
|
|
35
|
-
"module": "fesm2022/processpuzzle-widgets.mjs",
|
|
36
|
-
"typings": "index.d.ts"
|
|
31
|
+
}
|
|
37
32
|
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { ApplicationProperty } from './lib/app-property/app-property';
|
|
2
|
+
export { ApplicationPropertyStore } from './lib/app-property/app-property.store';
|
|
3
|
+
export { LanguageSelectorComponent } from './lib/language-selector/language-selector.component';
|
|
4
|
+
export { LikeButtonComponent } from './lib/like-button/like-button.component';
|
|
5
|
+
export { NavigateBackComponent } from './lib/navigate-back/navigate-back.component';
|
|
6
|
+
export { NavigateBackService } from './lib/navigate-back/navigate-back.service';
|
|
7
|
+
export { provideAppPropertyStore } from './lib/app-property/app-property-store.provider';
|
|
8
|
+
export { ShareButtonComponent } from './lib/share-button/share-button.component';
|
|
9
|
+
export { ShareButtonModule } from './lib/share-button/share-button.module';
|
|
10
|
+
export { TranslocoHttpLoader } from './lib/language-selector/transloco.loader';
|
|
11
|
+
export { WidgetsModule } from './lib/widgets.module';
|