@processpuzzle/widgets 0.0.9 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/fesm2022/processpuzzle-widgets-mat-cards-grid.mjs +82 -0
  2. package/fesm2022/processpuzzle-widgets-mat-cards-grid.mjs.map +1 -0
  3. package/fesm2022/processpuzzle-widgets.mjs +8 -10
  4. package/fesm2022/processpuzzle-widgets.mjs.map +1 -1
  5. package/{lib/language-selector → language-selector}/language-selector-list.component.d.ts +2 -1
  6. package/mat-cards-grid/index.d.ts +5 -0
  7. package/mat-cards-grid/public-api.d.ts +3 -0
  8. package/mat-cards-grid/src/action-spec.d.ts +6 -0
  9. package/mat-cards-grid/src/cards-spec.d.ts +8 -0
  10. package/mat-cards-grid/src/mat-cards-grid.component.d.ts +9 -0
  11. package/package.json +5 -1
  12. package/public-api.d.ts +13 -13
  13. package/assets/i18n/widgets/de.json +0 -12
  14. package/assets/i18n/widgets/en.json +0 -12
  15. package/assets/i18n/widgets/es.json +0 -12
  16. package/assets/i18n/widgets/fr.json +0 -12
  17. package/assets/i18n/widgets/hu.json +0 -12
  18. /package/{lib/app-property → app-property}/app-property-store.provider.d.ts +0 -0
  19. /package/{lib/app-property → app-property}/app-property.d.ts +0 -0
  20. /package/{lib/app-property → app-property}/app-property.mapper.d.ts +0 -0
  21. /package/{lib/app-property → app-property}/app-property.service.d.ts +0 -0
  22. /package/{lib/app-property → app-property}/app-property.store.d.ts +0 -0
  23. /package/{lib/language-selector → language-selector}/language-config.d.ts +0 -0
  24. /package/{lib/language-selector → language-selector}/language-selector.component.d.ts +0 -0
  25. /package/{lib/language-selector → language-selector}/transloco.loader.d.ts +0 -0
  26. /package/{lib/like-button → like-button}/like-button.component.d.ts +0 -0
  27. /package/{lib/navigate-back → navigate-back}/navigate-back.component.d.ts +0 -0
  28. /package/{lib/navigate-back → navigate-back}/navigate-back.service.d.ts +0 -0
  29. /package/{lib/share-button → share-button}/share-button.component.d.ts +0 -0
  30. /package/{lib/share-button → share-button}/share-button.module.d.ts +0 -0
  31. /package/{lib/widgets.module.d.ts → widgets.module.d.ts} +0 -0
  32. /package/{lib/widgets.routes.d.ts → widgets.routes.d.ts} +0 -0
@@ -0,0 +1,82 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Input, Component } from '@angular/core';
3
+ import * as i1 from '@angular/material/card';
4
+ import { MatCardModule } from '@angular/material/card';
5
+ import * as i2 from '@angular/material/button';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import { NgFor, NgIf, NgClass } from '@angular/common';
8
+ import { RouterLink } from '@angular/router';
9
+ import { TranslocoDirective } from '@jsverse/transloco';
10
+ import { LayoutService } from '@processpuzzle/util';
11
+
12
+ class MatCardsGridComponent {
13
+ cards = [];
14
+ layoutService = inject(LayoutService);
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MatCardsGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: MatCardsGridComponent, isStandalone: true, selector: "mat-cards-grid", inputs: { cards: "cards" }, ngImport: i0, template: `
17
+ <div [ngClass]="layoutService.layoutClass()">
18
+ <ng-container *ngFor="let card of cards">
19
+ <ng-container *transloco="let t; prefix: card.translocoPrefix">
20
+ <mat-card class="default-mat-card">
21
+ <mat-card-header>
22
+ <mat-card-title>{{ card.title }}</mat-card-title>
23
+ <mat-card-subtitle>{{ t(card.subtitle) }}</mat-card-subtitle>
24
+ </mat-card-header>
25
+ <mat-card-content>
26
+ <div>
27
+ {{ t(card.content[0]) }}
28
+ <ul *ngIf="card.content.length > 1">
29
+ <li *ngFor="let item of card.content.slice(1)">{{ t(item) }}</li>
30
+ </ul>
31
+ </div>
32
+ </mat-card-content>
33
+ <mat-card-actions *ngIf="card.actions && card.actions.length > 0">
34
+ <ng-container *ngFor="let action of card.actions">
35
+ <button [color]="action.colour" mat-flat-button [routerLink]="action.link">{{ t(action.caption) }}</button>
36
+ </ng-container>
37
+ </mat-card-actions>
38
+ </mat-card>
39
+ </ng-container>
40
+ </ng-container>
41
+ </div>
42
+ `, isInline: true, styles: [".web-layout{display:grid;grid-template-columns:repeat(3,minmax(min(200px,100%),1fr));column-gap:10px;row-gap:10px}.tablet-layout{display:grid;grid-template-columns:repeat(2,minmax(min(200px,100%),1fr));column-gap:10px;row-gap:10px}.handset-layout{display:grid;grid-template-columns:repeat(1,minmax(min(200px,100%),1fr));column-gap:10px;row-gap:10px}.default-mat-card{display:flex;flex-direction:column;background-color:#99d9eb}mat-card-title{font-family:Winky Sans,sans-serif}mat-card-content{flex-grow:1;overflow:auto;font-family:cursive;font-size:medium;text-align:left;padding-bottom:10px}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MatCardsGridComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: 'mat-cards-grid', standalone: true, imports: [MatCardModule, MatButtonModule, NgFor, NgIf, RouterLink, TranslocoDirective, NgClass], template: `
47
+ <div [ngClass]="layoutService.layoutClass()">
48
+ <ng-container *ngFor="let card of cards">
49
+ <ng-container *transloco="let t; prefix: card.translocoPrefix">
50
+ <mat-card class="default-mat-card">
51
+ <mat-card-header>
52
+ <mat-card-title>{{ card.title }}</mat-card-title>
53
+ <mat-card-subtitle>{{ t(card.subtitle) }}</mat-card-subtitle>
54
+ </mat-card-header>
55
+ <mat-card-content>
56
+ <div>
57
+ {{ t(card.content[0]) }}
58
+ <ul *ngIf="card.content.length > 1">
59
+ <li *ngFor="let item of card.content.slice(1)">{{ t(item) }}</li>
60
+ </ul>
61
+ </div>
62
+ </mat-card-content>
63
+ <mat-card-actions *ngIf="card.actions && card.actions.length > 0">
64
+ <ng-container *ngFor="let action of card.actions">
65
+ <button [color]="action.colour" mat-flat-button [routerLink]="action.link">{{ t(action.caption) }}</button>
66
+ </ng-container>
67
+ </mat-card-actions>
68
+ </mat-card>
69
+ </ng-container>
70
+ </ng-container>
71
+ </div>
72
+ `, styles: [".web-layout{display:grid;grid-template-columns:repeat(3,minmax(min(200px,100%),1fr));column-gap:10px;row-gap:10px}.tablet-layout{display:grid;grid-template-columns:repeat(2,minmax(min(200px,100%),1fr));column-gap:10px;row-gap:10px}.handset-layout{display:grid;grid-template-columns:repeat(1,minmax(min(200px,100%),1fr));column-gap:10px;row-gap:10px}.default-mat-card{display:flex;flex-direction:column;background-color:#99d9eb}mat-card-title{font-family:Winky Sans,sans-serif}mat-card-content{flex-grow:1;overflow:auto;font-family:cursive;font-size:medium;text-align:left;padding-bottom:10px}\n"] }]
73
+ }], propDecorators: { cards: [{
74
+ type: Input
75
+ }] } });
76
+
77
+ /**
78
+ * Generated bundle index. Do not edit.
79
+ */
80
+
81
+ export { MatCardsGridComponent };
82
+ //# sourceMappingURL=processpuzzle-widgets-mat-cards-grid.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processpuzzle-widgets-mat-cards-grid.mjs","sources":["../../../../libs/widgets/mat-cards-grid/src/mat-cards-grid.component.ts","../../../../libs/widgets/mat-cards-grid/processpuzzle-widgets-mat-cards-grid.ts"],"sourcesContent":["import { Component, inject, Input } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatButtonModule } from '@angular/material/button';\nimport { NgClass, NgFor, NgIf } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { TranslocoDirective } from '@jsverse/transloco';\nimport { CardsGridSpec } from './cards-spec';\nimport { LayoutService } from '@processpuzzle/util';\n\n@Component( {\n selector: 'mat-cards-grid',\n standalone: true,\n imports: [ MatCardModule, MatButtonModule, NgFor, NgIf, RouterLink, TranslocoDirective, NgClass ],\n template: `\n <div [ngClass]=\"layoutService.layoutClass()\">\n <ng-container *ngFor=\"let card of cards\">\n <ng-container *transloco=\"let t; prefix: card.translocoPrefix\">\n <mat-card class=\"default-mat-card\">\n <mat-card-header>\n <mat-card-title>{{ card.title }}</mat-card-title>\n <mat-card-subtitle>{{ t(card.subtitle) }}</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <div>\n {{ t(card.content[0]) }}\n <ul *ngIf=\"card.content.length > 1\">\n <li *ngFor=\"let item of card.content.slice(1)\">{{ t(item) }}</li>\n </ul>\n </div>\n </mat-card-content>\n <mat-card-actions *ngIf=\"card.actions && card.actions.length > 0\">\n <ng-container *ngFor=\"let action of card.actions\">\n <button [color]=\"action.colour\" mat-flat-button [routerLink]=\"action.link\">{{ t(action.caption) }}</button>\n </ng-container>\n </mat-card-actions>\n </mat-card>\n </ng-container>\n </ng-container>\n </div>\n `,\n styleUrls: [ './mat-cards-grid.component.css' ]\n} )\nexport class MatCardsGridComponent {\n @Input() cards: CardsGridSpec[] = [];\n readonly layoutService = inject( LayoutService );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ 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, effect, Injectable, EnvironmentInjector, NgModule, isDevMode } from '@angular/core';
5
+ import { inject, output, 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';
@@ -53,6 +53,7 @@ class LanguageSelectorListComponent {
53
53
  translocoService = inject(TranslocoService);
54
54
  runtimeConfiguration = inject(RUNTIME_CONFIGURATION);
55
55
  languages = this.runtimeConfiguration.AVAILABLE_LANGUAGES;
56
+ languageSelected = output();
56
57
  selectedLanguage = this.translocoService.getActiveLang();
57
58
  // region event handling methods
58
59
  onSelectionChange(event) {
@@ -61,10 +62,11 @@ class LanguageSelectorListComponent {
61
62
  if (this.selectedLanguage !== selectedValue) {
62
63
  this.translocoService.setActiveLang(selectedValue);
63
64
  this.selectedLanguage = selectedValue;
65
+ this.languageSelected.emit();
64
66
  }
65
67
  }
66
68
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: LanguageSelectorListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: LanguageSelectorListComponent, isStandalone: true, selector: "pp-language-selector-list", providers: [provideTranslocoScope('widgets')], ngImport: i0, template: `
69
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: LanguageSelectorListComponent, isStandalone: true, selector: "pp-language-selector-list", outputs: { languageSelected: "languageSelected" }, providers: [provideTranslocoScope('widgets')], ngImport: i0, template: `
68
70
  <ng-container *transloco="let t">
69
71
  <div class="language-selector">
70
72
  <mat-selection-list #selectionList (selectionChange)="onSelectionChange($event)" [multiple]="false">
@@ -130,10 +132,10 @@ class LanguageSelectorComponent {
130
132
  </div>
131
133
  <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]="trigger" [cdkConnectedOverlayOpen]="isOpen" [cdkConnectedOverlayHasBackdrop]="true" (backdropClick)="onClose()">
132
134
  <div class="language-selector-container">
133
- <pp-language-selector-list />
135
+ <pp-language-selector-list (languageSelected)="onClose()" />
134
136
  </div>
135
137
  </ng-template>
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" }] });
138
+ `, 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", outputs: ["languageSelected"] }] });
137
139
  }
138
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: LanguageSelectorComponent, decorators: [{
139
141
  type: Component,
@@ -145,7 +147,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
145
147
  </div>
146
148
  <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]="trigger" [cdkConnectedOverlayOpen]="isOpen" [cdkConnectedOverlayHasBackdrop]="true" (backdropClick)="onClose()">
147
149
  <div class="language-selector-container">
148
- <pp-language-selector-list />
150
+ <pp-language-selector-list (languageSelected)="onClose()" />
149
151
  </div>
150
152
  </ng-template>
151
153
  `, imports: [CdkOverlayOrigin, CdkConnectedOverlay, MatIcon, MatIconButton, LanguageSelectorListComponent], providers: [provideTranslocoScope({ scope: 'widgets' })], styles: [".language-selector-container{display:flex;background:#eee}\n"] }]
@@ -409,11 +411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
409
411
  }]
410
412
  }] });
411
413
 
412
- const loader = ['de', 'en', 'es', 'fr', 'hu'].reduce((acc, lang) => {
413
- acc[lang] = () => import(`./assets/i18n/widgets/${lang}.json`);
414
- return acc;
415
- }, {});
416
- const widgetsRoutes = [{ path: 'anything', component: LanguageSelectorComponent, providers: [provideTranslocoScope({ scope: 'widgets', loader })] }];
414
+ const widgetsRoutes = [{ path: 'anything', component: LanguageSelectorComponent }];
417
415
 
418
416
  /*
419
417
  * Public API Surface of @processpuzzle/widgets
@@ -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/lib/widgets.routes.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;\n private readonly propertyName: string;\n private propertyValue: string;\n\n constructor(id?: string, name?: string, value?: string) {\n this.id = id ?? uuidv4();\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\">\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('widgets.' + 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.translocoService.getActiveLang();\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 } from '@jsverse/transloco';\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 providers: [provideTranslocoScope({ scope: '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, 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(undefined, 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.id, dto.name, dto.value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n toDto(entity: ApplicationProperty): any {\n return { id: entity.id, 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","import { Routes } from '@angular/router';\nimport { provideTranslocoScope } from '@jsverse/transloco';\nimport { LanguageSelectorComponent } from './language-selector/language-selector.component';\n\nconst loader = ['de', 'en', 'es', 'fr', 'hu'].reduce((acc: any, lang) => {\n acc[lang] = () => import(`./assets/i18n/widgets/${lang}.json`);\n return acc;\n}, {});\n\nexport const widgetsRoutes: Routes = [{ path: 'anything', component: LanguageSelectorComponent, providers: [provideTranslocoScope({ scope: 'widgets', loader })] }];\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';\nexport { widgetsRoutes } from './lib/widgets.routes';\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/app-property/app-property.ts","../../../../libs/widgets/src/app-property/app-property.service.ts","../../../../libs/widgets/src/app-property/app-property.store.ts","../../../../libs/widgets/src/language-selector/language-selector-list.component.ts","../../../../libs/widgets/src/language-selector/language-selector.component.ts","../../../../libs/widgets/src/like-button/like-button.component.ts","../../../../libs/widgets/src/navigate-back/navigate-back.service.ts","../../../../libs/widgets/src/navigate-back/navigate-back.component.ts","../../../../libs/widgets/src/app-property/app-property.mapper.ts","../../../../libs/widgets/src/app-property/app-property-store.provider.ts","../../../../libs/widgets/src/share-button/share-button.component.ts","../../../../libs/widgets/src/share-button/share-button.module.ts","../../../../libs/widgets/src/language-selector/transloco.loader.ts","../../../../libs/widgets/src/widgets.module.ts","../../../../libs/widgets/src/widgets.routes.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;\n private readonly propertyName: string;\n private propertyValue: string;\n\n constructor(id?: string, name?: string, value?: string) {\n this.id = id ?? uuidv4();\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, output } 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\">\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('widgets.' + 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 languageSelected = output<void>();\n selectedLanguage = this.translocoService.getActiveLang();\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 this.languageSelected.emit();\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 } from '@jsverse/transloco';\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 (languageSelected)=\"onClose()\" />\n </div>\n </ng-template>\n `,\n styleUrls: ['./language-selector.component.css'],\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, MatIcon, MatIconButton, LanguageSelectorListComponent],\n providers: [provideTranslocoScope({ scope: '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, 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(undefined, 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.id, dto.name, dto.value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n toDto(entity: ApplicationProperty): any {\n return { id: entity.id, 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","import { Routes } from '@angular/router';\nimport { LanguageSelectorComponent } from './language-selector/language-selector.component';\n\nexport const widgetsRoutes: Routes = [{ path: 'anything', component: LanguageSelectorComponent }];\n","/*\n * Public API Surface of @processpuzzle/widgets\n */\n\nexport { ApplicationProperty } from './app-property/app-property';\nexport { ApplicationPropertyStore } from './app-property/app-property.store';\nexport { LanguageConfig, LanguageDefinition } from './language-selector/language-config';\nexport { LanguageSelectorComponent } from './language-selector/language-selector.component';\nexport { LikeButtonComponent } from './like-button/like-button.component';\nexport { NavigateBackComponent } from './navigate-back/navigate-back.component';\nexport { NavigateBackService } from './navigate-back/navigate-back.service';\nexport { provideAppPropertyStore } from './app-property/app-property-store.provider';\nexport { ShareButtonComponent } from './share-button/share-button.component';\nexport { ShareButtonModule } from './share-button/share-button.module';\nexport { TranslocoHttpLoader } from './language-selector/transloco.loader';\nexport { WidgetsModule } from './widgets.module';\nexport { widgetsRoutes } from './widgets.routes';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4","i1"],"mappings":"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"}
@@ -4,8 +4,9 @@ export declare class LanguageSelectorListComponent {
4
4
  private readonly translocoService;
5
5
  private readonly runtimeConfiguration;
6
6
  readonly languages: import("./language-config").LanguageDefinition[] | undefined;
7
+ languageSelected: import("@angular/core").OutputEmitterRef<void>;
7
8
  selectedLanguage: string;
8
9
  onSelectionChange(event: MatSelectionListChange): void;
9
10
  static ɵfac: i0.ɵɵFactoryDeclaration<LanguageSelectorListComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<LanguageSelectorListComponent, "pp-language-selector-list", never, {}, {}, never, never, true, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<LanguageSelectorListComponent, "pp-language-selector-list", never, {}, { "languageSelected": "languageSelected"; }, never, never, true, never>;
11
12
  }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@processpuzzle/widgets/mat-cards-grid" />
5
+ export * from './public-api';
@@ -0,0 +1,3 @@
1
+ export { ActionSpec } from './src/action-spec';
2
+ export { CardsGridSpec } from './src/cards-spec';
3
+ export { MatCardsGridComponent } from './src/mat-cards-grid.component';
@@ -0,0 +1,6 @@
1
+ export interface ActionSpec {
2
+ link: string;
3
+ caption: string;
4
+ colour?: string;
5
+ buttonType?: string;
6
+ }
@@ -0,0 +1,8 @@
1
+ import { ActionSpec } from './action-spec';
2
+ export interface CardsGridSpec {
3
+ title: string;
4
+ subtitle: string;
5
+ content: Array<string>;
6
+ actions: Array<ActionSpec>;
7
+ translocoPrefix: string;
8
+ }
@@ -0,0 +1,9 @@
1
+ import { CardsGridSpec } from './cards-spec';
2
+ import { LayoutService } from '@processpuzzle/util';
3
+ import * as i0 from "@angular/core";
4
+ export declare class MatCardsGridComponent {
5
+ cards: CardsGridSpec[];
6
+ readonly layoutService: LayoutService;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatCardsGridComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatCardsGridComponent, "mat-cards-grid", never, { "cards": { "alias": "cards"; "required": false; }; }, {}, never, never, true, never>;
9
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@processpuzzle/widgets",
3
- "version": "0.0.9",
3
+ "version": "0.1.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -34,6 +34,10 @@
34
34
  ".": {
35
35
  "types": "./index.d.ts",
36
36
  "default": "./fesm2022/processpuzzle-widgets.mjs"
37
+ },
38
+ "./mat-cards-grid": {
39
+ "types": "./mat-cards-grid/index.d.ts",
40
+ "default": "./fesm2022/processpuzzle-widgets-mat-cards-grid.mjs"
37
41
  }
38
42
  }
39
43
  }
package/public-api.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- export { ApplicationProperty } from './lib/app-property/app-property';
2
- export { ApplicationPropertyStore } from './lib/app-property/app-property.store';
3
- export { LanguageConfig, LanguageDefinition } from './lib/language-selector/language-config';
4
- export { LanguageSelectorComponent } from './lib/language-selector/language-selector.component';
5
- export { LikeButtonComponent } from './lib/like-button/like-button.component';
6
- export { NavigateBackComponent } from './lib/navigate-back/navigate-back.component';
7
- export { NavigateBackService } from './lib/navigate-back/navigate-back.service';
8
- export { provideAppPropertyStore } from './lib/app-property/app-property-store.provider';
9
- export { ShareButtonComponent } from './lib/share-button/share-button.component';
10
- export { ShareButtonModule } from './lib/share-button/share-button.module';
11
- export { TranslocoHttpLoader } from './lib/language-selector/transloco.loader';
12
- export { WidgetsModule } from './lib/widgets.module';
13
- export { widgetsRoutes } from './lib/widgets.routes';
1
+ export { ApplicationProperty } from './app-property/app-property';
2
+ export { ApplicationPropertyStore } from './app-property/app-property.store';
3
+ export { LanguageConfig, LanguageDefinition } from './language-selector/language-config';
4
+ export { LanguageSelectorComponent } from './language-selector/language-selector.component';
5
+ export { LikeButtonComponent } from './like-button/like-button.component';
6
+ export { NavigateBackComponent } from './navigate-back/navigate-back.component';
7
+ export { NavigateBackService } from './navigate-back/navigate-back.service';
8
+ export { provideAppPropertyStore } from './app-property/app-property-store.provider';
9
+ export { ShareButtonComponent } from './share-button/share-button.component';
10
+ export { ShareButtonModule } from './share-button/share-button.module';
11
+ export { TranslocoHttpLoader } from './language-selector/transloco.loader';
12
+ export { WidgetsModule } from './widgets.module';
13
+ export { widgetsRoutes } from './widgets.routes';
@@ -1,12 +0,0 @@
1
- {
2
- "en": "English",
3
- "de": "Deutsch",
4
- "fr": "Französisch",
5
- "hu": "Ungarisch",
6
- "es": "Spanisch",
7
- "english": "English",
8
- "german": "Deutsch",
9
- "french": "Französisch",
10
- "hungarian": "Ungarisch",
11
- "spanish": "Spanisch"
12
- }
@@ -1,12 +0,0 @@
1
- {
2
- "en": "English",
3
- "de": "German",
4
- "fr": "French",
5
- "hu": "Hungarian",
6
- "es": "Spanish",
7
- "english": "English",
8
- "german": "German",
9
- "french": "French",
10
- "hungarian": "Hungarian",
11
- "spanish": "Spanish"
12
- }
@@ -1,12 +0,0 @@
1
- {
2
- "en": "Inglés",
3
- "de": "Alemán",
4
- "fr": "Francés",
5
- "hu": "Húngaro",
6
- "es": "Español",
7
- "english": "Inglés",
8
- "german": "Alemán",
9
- "french": "Francés",
10
- "hungarian": "Húngaro",
11
- "spanish": "Español"
12
- }
@@ -1,12 +0,0 @@
1
- {
2
- "en": "Anglais",
3
- "de": "Allemand",
4
- "fr": "Français",
5
- "hu": "Hongrois",
6
- "es": "Espagnol",
7
- "english": "Anglais",
8
- "german": "Allemand",
9
- "french": "Français",
10
- "hungarian": "Hongrois",
11
- "spanish": "Espagnol"
12
- }
@@ -1,12 +0,0 @@
1
- {
2
- "en": "Angol",
3
- "de": "Német",
4
- "fr": "Francia",
5
- "hu": "Magyar",
6
- "es": "Spanyol",
7
- "english": "Angol",
8
- "german": "Német",
9
- "french": "Francia",
10
- "hungarian": "Magyar",
11
- "spanish": "Spanyol"
12
- }