@processpuzzle/widgets 0.0.6 → 0.0.8

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.
@@ -2,20 +2,21 @@ import { v4 } from 'uuid';
2
2
  import { signalStore } from '@ngrx/signals';
3
3
  import { BaseEntityFirestoreService, BaseEntityStore, BaseFormNavigatorStore, BaseEntityTabsStore, BaseEntityContainerStore } from '@processpuzzle/base-entity';
4
4
  import * as i0 from '@angular/core';
5
- import { inject, Component, computed, Injectable, EnvironmentInjector, NgModule, isDevMode } from '@angular/core';
5
+ import { inject, Component, computed, effect, Injectable, EnvironmentInjector, NgModule, isDevMode } from '@angular/core';
6
6
  import { MatIcon } from '@angular/material/icon';
7
7
  import { MatIconButton } from '@angular/material/button';
8
8
  import { CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
9
9
  import { RUNTIME_CONFIGURATION, Stack } from '@processpuzzle/util';
10
- import { TranslocoService, TranslocoDirective, provideTranslocoScope, TranslocoModule, provideTransloco } from '@jsverse/transloco';
10
+ import { TranslocoService, TranslocoDirective, TranslocoModule, provideTransloco } from '@jsverse/transloco';
11
11
  import { NgClass, NgForOf } from '@angular/common';
12
12
  import { MatListOption, MatSelectionList } from '@angular/material/list';
13
- import * as i1 from '@angular/router';
13
+ import * as i1 from '@angular/material/snack-bar';
14
+ import * as i1$1 from '@angular/router';
14
15
  import { NavigationEnd } from '@angular/router';
15
16
  import { ShareButtons } from 'ngx-sharebuttons/buttons';
16
17
  import { provideShareButtonsOptions } from 'ngx-sharebuttons';
17
18
  import { shareIcons } from 'ngx-sharebuttons/icons';
18
- import * as i1$1 from '@angular/common/http';
19
+ import * as i1$2 from '@angular/common/http';
19
20
 
20
21
  class ApplicationProperty {
21
22
  id = v4();
@@ -62,8 +63,8 @@ class LanguageSelectorListComponent {
62
63
  }
63
64
  }
64
65
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LanguageSelectorListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
- 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: `
66
- <ng-container *transloco="let t; prefix: 'language-selector'">
66
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: LanguageSelectorListComponent, isStandalone: true, selector: "pp-language-selector-list", providers: [], ngImport: i0, template: `
67
+ <ng-container *transloco="let t; scope: 'widgets'; prefix: 'language-selector'">
67
68
  <div class="language-selector">
68
69
  <mat-selection-list #selectionList (selectionChange)="onSelectionChange($event)" [multiple]="false">
69
70
  <mat-list-option
@@ -85,7 +86,7 @@ class LanguageSelectorListComponent {
85
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LanguageSelectorListComponent, decorators: [{
86
87
  type: Component,
87
88
  args: [{ selector: 'pp-language-selector-list', template: `
88
- <ng-container *transloco="let t; prefix: 'language-selector'">
89
+ <ng-container *transloco="let t; scope: 'widgets'; prefix: 'language-selector'">
89
90
  <div class="language-selector">
90
91
  <mat-selection-list #selectionList (selectionChange)="onSelectionChange($event)" [multiple]="false">
91
92
  <mat-list-option
@@ -102,7 +103,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
102
103
  </mat-selection-list>
103
104
  </div>
104
105
  </ng-container>
105
- `, imports: [NgClass, NgForOf, TranslocoDirective, MatListOption, MatSelectionList], providers: [provideTranslocoScope('widgets')], styles: [".flag-icon{width:24px;height:16px;border-radius:2px}\n"] }]
106
+ `, imports: [NgClass, NgForOf, TranslocoDirective, MatListOption, MatSelectionList], providers: [], styles: [".flag-icon{width:24px;height:16px;border-radius:2px}\n"] }]
106
107
  }] });
107
108
 
108
109
  class LanguageSelectorComponent {
@@ -120,43 +121,44 @@ class LanguageSelectorComponent {
120
121
  this.isOpen = !this.isOpen;
121
122
  }
122
123
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LanguageSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
123
- 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: `
124
- <ng-container *transloco="let t; prefix: 'language-selector'">
125
- <div>
126
- <button mat-icon-button (click)="onSelectLanguage()" cdkOverlayOrigin #trigger="cdkOverlayOrigin" aria-label="Select Language Button">
127
- <mat-icon>language</mat-icon>
128
- </button>
124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: LanguageSelectorComponent, isStandalone: true, selector: "pp-language-selector", ngImport: i0, template: `
125
+ <div>
126
+ <button mat-icon-button (click)="onSelectLanguage()" cdkOverlayOrigin #trigger="cdkOverlayOrigin" aria-label="Select Language Button">
127
+ <mat-icon>language</mat-icon>
128
+ </button>
129
+ </div>
130
+ <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]="trigger" [cdkConnectedOverlayOpen]="isOpen" [cdkConnectedOverlayHasBackdrop]="true" (backdropClick)="onClose()">
131
+ <div class="language-selector-container">
132
+ <pp-language-selector-list />
129
133
  </div>
130
- <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]="trigger" [cdkConnectedOverlayOpen]="isOpen" [cdkConnectedOverlayHasBackdrop]="true" (backdropClick)="onClose()">
131
- <div class="language-selector-container">
132
- <pp-language-selector-list />
133
- </div>
134
- </ng-template>
135
- </ng-container>
136
- `, 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"] }] });
134
+ </ng-template>
135
+ `, 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" }] });
137
136
  }
138
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LanguageSelectorComponent, decorators: [{
139
138
  type: Component,
140
139
  args: [{ selector: 'pp-language-selector', template: `
141
- <ng-container *transloco="let t; prefix: 'language-selector'">
142
- <div>
143
- <button mat-icon-button (click)="onSelectLanguage()" cdkOverlayOrigin #trigger="cdkOverlayOrigin" aria-label="Select Language Button">
144
- <mat-icon>language</mat-icon>
145
- </button>
140
+ <div>
141
+ <button mat-icon-button (click)="onSelectLanguage()" cdkOverlayOrigin #trigger="cdkOverlayOrigin" aria-label="Select Language Button">
142
+ <mat-icon>language</mat-icon>
143
+ </button>
144
+ </div>
145
+ <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]="trigger" [cdkConnectedOverlayOpen]="isOpen" [cdkConnectedOverlayHasBackdrop]="true" (backdropClick)="onClose()">
146
+ <div class="language-selector-container">
147
+ <pp-language-selector-list />
146
148
  </div>
147
- <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]="trigger" [cdkConnectedOverlayOpen]="isOpen" [cdkConnectedOverlayHasBackdrop]="true" (backdropClick)="onClose()">
148
- <div class="language-selector-container">
149
- <pp-language-selector-list />
150
- </div>
151
- </ng-template>
152
- </ng-container>
153
- `, imports: [CdkOverlayOrigin, CdkConnectedOverlay, MatIcon, MatIconButton, LanguageSelectorListComponent, TranslocoDirective], providers: [provideTranslocoScope('widgets')], styles: [".language-selector-container{display:flex;background:#eee}\n"] }]
149
+ </ng-template>
150
+ `, imports: [CdkOverlayOrigin, CdkConnectedOverlay, MatIcon, MatIconButton, LanguageSelectorListComponent], styles: [".language-selector-container{display:flex;background:#eee}\n"] }]
154
151
  }] });
155
152
 
156
153
  class LikeButtonComponent {
154
+ snackBar;
157
155
  LIKES_PROPERTY = 'likes';
158
156
  likesCount = computed(() => this.store.entities().find((property) => property.name === this.LIKES_PROPERTY));
159
157
  store = inject(ApplicationPropertyStore);
158
+ constructor(snackBar) {
159
+ this.snackBar = snackBar;
160
+ this.configureEffects();
161
+ }
160
162
  // region event handling methods
161
163
  onLike() {
162
164
  const count = this.likesCount();
@@ -168,7 +170,24 @@ class LikeButtonComponent {
168
170
  this.store.add(new ApplicationProperty(this.LIKES_PROPERTY, '1'));
169
171
  }
170
172
  }
171
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LikeButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
173
+ // endregion
174
+ // region protected, private helper methods
175
+ configureEffects() {
176
+ effect(() => {
177
+ const currentError = this.store.error();
178
+ if (currentError) {
179
+ this.showErrorMessage(currentError);
180
+ this.store.resetErrorState();
181
+ }
182
+ });
183
+ }
184
+ showErrorMessage(error) {
185
+ this.snackBar.open(error, 'Close', {
186
+ duration: 5000,
187
+ panelClass: ['error-snackbar'],
188
+ });
189
+ }
190
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: LikeButtonComponent, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component });
172
191
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: LikeButtonComponent, isStandalone: true, selector: "pp-like-button", ngImport: i0, template: `
173
192
  <div class="like-button">
174
193
  <button mat-icon-button (click)="onLike()" aria-label="Like Button">
@@ -188,7 +207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
188
207
  <span>{{ likesCount()?.value }}</span>
189
208
  </div>
190
209
  `, imports: [MatIcon, MatIconButton], styles: [".like-button{position:relative;display:inline-block}.like-button span{position:absolute;bottom:0;right:5px;font-size:10px}\n"] }]
191
- }] });
210
+ }], ctorParameters: () => [{ type: i1.MatSnackBar }] });
192
211
 
193
212
  class NavigateBackService {
194
213
  router;
@@ -227,13 +246,13 @@ class NavigateBackService {
227
246
  this.routeHistory.push(route);
228
247
  }
229
248
  }
230
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: NavigateBackService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
249
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: NavigateBackService, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
231
250
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: NavigateBackService, providedIn: 'root' });
232
251
  }
233
252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: NavigateBackService, decorators: [{
234
253
  type: Injectable,
235
254
  args: [{ providedIn: 'root' }]
236
- }], ctorParameters: () => [{ type: i1.Router }] });
255
+ }], ctorParameters: () => [{ type: i1$1.Router }] });
237
256
 
238
257
  class NavigateBackComponent {
239
258
  service = inject(NavigateBackService);
@@ -343,37 +362,23 @@ class TranslocoHttpLoader {
343
362
  console.log(`Loading translations from: ${path}`);
344
363
  return this.http.get(path);
345
364
  }
346
- 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 });
365
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TranslocoHttpLoader, deps: [{ token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
347
366
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TranslocoHttpLoader, providedIn: 'root' });
348
367
  }
349
368
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TranslocoHttpLoader, decorators: [{
350
369
  type: Injectable,
351
370
  args: [{ providedIn: 'root' }]
352
- }], ctorParameters: () => [{ type: i1$1.HttpClient }] });
371
+ }], ctorParameters: () => [{ type: i1$2.HttpClient }] });
353
372
 
354
373
  class WidgetsModule {
355
374
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: WidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
356
375
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: WidgetsModule, imports: [TranslocoModule], exports: [TranslocoModule] });
357
376
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: WidgetsModule, providers: [
358
- {
359
- provide: provideTransloco,
360
- useFactory: () => {
361
- const runtimeConfig = inject(RUNTIME_CONFIGURATION);
362
- return provideTransloco({
363
- config: {
364
- availableLangs: runtimeConfig.AVAILABLE_LANGUAGES?.map((lang) => lang.code),
365
- defaultLang: runtimeConfig.DEFAULT_LANGUAGE,
366
- reRenderOnLangChange: true,
367
- prodMode: !isDevMode(),
368
- },
369
- loader: TranslocoHttpLoader,
370
- });
371
- },
372
- deps: [RUNTIME_CONFIGURATION],
373
- },
377
+ provideShareButtonsOptions(shareIcons()),
378
+ // provideI18Configuration(),
374
379
  provideTransloco({
375
380
  config: {
376
- availableLangs: ['de', 'en', 'es', 'hu'],
381
+ availableLangs: ['de', 'en', 'es', 'fr', 'hu'],
377
382
  defaultLang: 'en',
378
383
  reRenderOnLangChange: true,
379
384
  prodMode: !isDevMode(),
@@ -388,25 +393,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
388
393
  imports: [TranslocoModule],
389
394
  exports: [TranslocoModule],
390
395
  providers: [
391
- {
392
- provide: provideTransloco,
393
- useFactory: () => {
394
- const runtimeConfig = inject(RUNTIME_CONFIGURATION);
395
- return provideTransloco({
396
- config: {
397
- availableLangs: runtimeConfig.AVAILABLE_LANGUAGES?.map((lang) => lang.code),
398
- defaultLang: runtimeConfig.DEFAULT_LANGUAGE,
399
- reRenderOnLangChange: true,
400
- prodMode: !isDevMode(),
401
- },
402
- loader: TranslocoHttpLoader,
403
- });
404
- },
405
- deps: [RUNTIME_CONFIGURATION],
406
- },
396
+ provideShareButtonsOptions(shareIcons()),
397
+ // provideI18Configuration(),
407
398
  provideTransloco({
408
399
  config: {
409
- availableLangs: ['de', 'en', 'es', 'hu'],
400
+ availableLangs: ['de', 'en', 'es', 'fr', 'hu'],
410
401
  defaultLang: 'en',
411
402
  reRenderOnLangChange: true,
412
403
  prodMode: !isDevMode(),
@@ -1 +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\">&nbsp;-&nbsp;</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 } from '@jsverse/transloco';\nimport { inject, isDevMode, NgModule } from '@angular/core';\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","/*\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 { LanguageConfig, LanguageDefinition } from './lib/language-selector/language-config';\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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"}
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 { 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; scope: 'widgets'; 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\">&nbsp;-&nbsp;</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: [],\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';\n\n@Component({\n selector: 'pp-language-selector',\n template: `\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 `,\n styleUrls: ['./language-selector.component.css'],\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, MatIcon, MatIconButton, LanguageSelectorListComponent],\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, effect, 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';\nimport { MatSnackBar } from '@angular/material/snack-bar';\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 constructor(private readonly snackBar: MatSnackBar) {\n this.configureEffects();\n }\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 // region protected, private helper methods\n private configureEffects() {\n effect(() => {\n const currentError = this.store.error();\n\n if (currentError) {\n this.showErrorMessage(currentError);\n this.store.resetErrorState();\n }\n });\n }\n\n private showErrorMessage(error: string): void {\n this.snackBar.open(error, 'Close', {\n duration: 5000,\n panelClass: ['error-snackbar'],\n });\n }\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 } from '@jsverse/transloco';\nimport { isDevMode, NgModule } from '@angular/core';\nimport { provideShareButtonsOptions } from 'ngx-sharebuttons';\nimport { shareIcons } from 'ngx-sharebuttons/icons';\nimport { TranslocoHttpLoader } from './language-selector/transloco.loader';\n\n@NgModule({\n imports: [TranslocoModule],\n exports: [TranslocoModule],\n providers: [\n provideShareButtonsOptions(shareIcons()),\n // provideI18Configuration(),\n provideTransloco({\n config: {\n availableLangs: ['de', 'en', 'es', 'fr', 'hu'],\n defaultLang: 'en',\n reRenderOnLangChange: true,\n prodMode: !isDevMode(),\n },\n loader: TranslocoHttpLoader,\n }),\n ],\n})\nexport class WidgetsModule {}\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 { LanguageConfig, LanguageDefinition } from './lib/language-selector/language-config';\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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"}
@@ -1,6 +1,8 @@
1
1
  import { ApplicationProperty } from '../app-property/app-property';
2
+ import { MatSnackBar } from '@angular/material/snack-bar';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class LikeButtonComponent {
5
+ private readonly snackBar;
4
6
  private readonly LIKES_PROPERTY;
5
7
  likesCount: import("@angular/core").Signal<ApplicationProperty | undefined>;
6
8
  readonly store: {
@@ -66,7 +68,10 @@ export declare class LikeButtonComponent {
66
68
  currentTab: string | undefined;
67
69
  filterKey: string | undefined;
68
70
  }>;
71
+ constructor(snackBar: MatSnackBar);
69
72
  onLike(): void;
73
+ private configureEffects;
74
+ private showErrorMessage;
70
75
  static ɵfac: i0.ɵɵFactoryDeclaration<LikeButtonComponent, never>;
71
76
  static ɵcmp: i0.ɵɵComponentDeclaration<LikeButtonComponent, "pp-like-button", never, {}, {}, never, never, true, never>;
72
77
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@processpuzzle/widgets",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },