@eui/mobile-core 17.2.0-snapshot-1716535851440 → 17.2.0-snapshot-1716885030476
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/components/EuimChipSelectorComponent.html +1 -1
- package/docs/components/EuimHelpSupportComponent.html +326 -8
- package/docs/components/EuimPdfViewerComponent.html +22 -2
- package/docs/dependencies.html +5 -5
- package/docs/index.html +1 -1
- package/docs/interfaces/Contact.html +90 -0
- package/docs/interfaces/HelpAndSupportItem.html +311 -0
- package/docs/interfaces/Item.html +671 -0
- package/docs/interfaces/Material.html +90 -0
- package/docs/js/menu-wc.js +12 -6
- package/docs/js/menu-wc_es5.js +11 -11
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/lib/components/euim-about/euim-about.module.mjs +7 -3
- package/esm2022/lib/components/euim-about/euim-help-support/euim-help-support.component.mjs +66 -23
- package/esm2022/lib/components/euim-pdf-viewer/euim-pdf-viewer.component.mjs +71 -29
- package/esm2022/lib/components/euim-pdf-viewer/euim-pdf-viewer.module.mjs +7 -3
- package/fesm2022/eui-mobile-core.mjs +134 -46
- package/fesm2022/eui-mobile-core.mjs.map +1 -1
- package/lib/components/euim-about/euim-about.module.d.ts +2 -1
- package/lib/components/euim-about/euim-about.module.d.ts.map +1 -1
- package/lib/components/euim-about/euim-help-support/euim-help-support.component.d.ts +39 -3
- package/lib/components/euim-about/euim-help-support/euim-help-support.component.d.ts.map +1 -1
- package/lib/components/euim-pdf-viewer/euim-pdf-viewer.component.d.ts +26 -3
- package/lib/components/euim-pdf-viewer/euim-pdf-viewer.component.d.ts.map +1 -1
- package/lib/components/euim-pdf-viewer/euim-pdf-viewer.module.d.ts +2 -1
- package/lib/components/euim-pdf-viewer/euim-pdf-viewer.module.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from '@eui/base';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { Injectable, booleanAttribute, Directive, Input, Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, NgModule, EventEmitter, Output, ContentChildren, ViewChild, HostListener, ContentChild } from '@angular/core';
|
|
4
|
-
import { BehaviorSubject, Subject } from 'rxjs';
|
|
4
|
+
import { BehaviorSubject, Subject, throwError } from 'rxjs';
|
|
5
5
|
import * as i2$1 from '@angular/common';
|
|
6
6
|
import { CommonModule } from '@angular/common';
|
|
7
7
|
import * as i1 from '@ionic/angular';
|
|
@@ -9,14 +9,16 @@ import { IonicModule } from '@ionic/angular';
|
|
|
9
9
|
import { EclLanguageService, EclDefaultLanguageService } from '@eui/ecl';
|
|
10
10
|
import * as i2 from '@eui/core';
|
|
11
11
|
import { EuiEuLanguages } from '@eui/core';
|
|
12
|
-
import { takeUntil, distinctUntilKeyChanged } from 'rxjs/operators';
|
|
12
|
+
import { takeUntil, distinctUntilKeyChanged, startWith, switchMap, map, catchError } from 'rxjs/operators';
|
|
13
13
|
import * as i1$1 from '@ngx-translate/core';
|
|
14
14
|
import { TranslateModule } from '@ngx-translate/core';
|
|
15
15
|
import * as i1$2 from '@angular/router';
|
|
16
16
|
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
17
|
-
import * as i2$2 from '
|
|
17
|
+
import * as i2$2 from '@angular/common/http';
|
|
18
|
+
import { HttpClientModule } from '@angular/common/http';
|
|
19
|
+
import * as i3 from 'ng2-pdf-viewer';
|
|
18
20
|
import { PdfViewerModule } from 'ng2-pdf-viewer';
|
|
19
|
-
import * as
|
|
21
|
+
import * as i4 from '@mapaxe/ngx-pinch-zoom';
|
|
20
22
|
import { PinchZoomModule } from '@mapaxe/ngx-pinch-zoom';
|
|
21
23
|
import * as i2$3 from 'angularx-qrcode';
|
|
22
24
|
import { QRCodeModule } from 'angularx-qrcode';
|
|
@@ -3046,12 +3048,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
3046
3048
|
}] });
|
|
3047
3049
|
|
|
3048
3050
|
class EuimPdfViewerComponent {
|
|
3049
|
-
constructor(alertService) {
|
|
3051
|
+
constructor(alertService, http) {
|
|
3050
3052
|
this.alertService = alertService;
|
|
3053
|
+
this.http = http;
|
|
3051
3054
|
this.page = 1;
|
|
3052
3055
|
this.zoom = 1;
|
|
3053
3056
|
this.loading = true;
|
|
3054
3057
|
this.errorMessage = '';
|
|
3058
|
+
this.pdfNumPages = 1;
|
|
3059
|
+
this.urlChange$ = new Subject();
|
|
3055
3060
|
this.showDefaultError = true;
|
|
3056
3061
|
setTimeout(() => {
|
|
3057
3062
|
if (this.showDefaultError) {
|
|
@@ -3060,6 +3065,29 @@ class EuimPdfViewerComponent {
|
|
|
3060
3065
|
}
|
|
3061
3066
|
}, 15000);
|
|
3062
3067
|
}
|
|
3068
|
+
ngOnInit() {
|
|
3069
|
+
// subscribe and cancel previous subscription (if any) for fetching data while URL changes
|
|
3070
|
+
this.subscription = this.urlChange$.pipe(startWith(this.url), switchMap((url) => this.getPDFData(url))).subscribe({
|
|
3071
|
+
next: (data) => {
|
|
3072
|
+
this.data = data;
|
|
3073
|
+
this.showDefaultError = false;
|
|
3074
|
+
this.loading = false;
|
|
3075
|
+
},
|
|
3076
|
+
error: () => {
|
|
3077
|
+
this.onError();
|
|
3078
|
+
this.data = null;
|
|
3079
|
+
},
|
|
3080
|
+
});
|
|
3081
|
+
}
|
|
3082
|
+
ngOnChanges(changes) {
|
|
3083
|
+
if (changes['url']) {
|
|
3084
|
+
this.loading = true;
|
|
3085
|
+
this.urlChange$.next(changes['url'].currentValue);
|
|
3086
|
+
}
|
|
3087
|
+
}
|
|
3088
|
+
ngOnDestroy() {
|
|
3089
|
+
this.subscription.unsubscribe();
|
|
3090
|
+
}
|
|
3063
3091
|
zoomChange(event) {
|
|
3064
3092
|
this.eventResult = event;
|
|
3065
3093
|
this.zoom = this.eventResult.scale;
|
|
@@ -3068,6 +3096,7 @@ class EuimPdfViewerComponent {
|
|
|
3068
3096
|
this.showDefaultError = false;
|
|
3069
3097
|
this.loading = false;
|
|
3070
3098
|
this.pdf = pdf;
|
|
3099
|
+
this.pdfNumPages = this.pdf.numPages;
|
|
3071
3100
|
}
|
|
3072
3101
|
onError() {
|
|
3073
3102
|
this.showDefaultError = false;
|
|
@@ -3075,16 +3104,8 @@ class EuimPdfViewerComponent {
|
|
|
3075
3104
|
this.errorMessage = 'File could not be loaded.';
|
|
3076
3105
|
}
|
|
3077
3106
|
onDownload() {
|
|
3078
|
-
this.pdf
|
|
3079
|
-
|
|
3080
|
-
type: 'application/pdf',
|
|
3081
|
-
});
|
|
3082
|
-
const url = URL.createObjectURL(blob);
|
|
3083
|
-
this.openLink(url);
|
|
3084
|
-
// Remove the link when done
|
|
3085
|
-
setTimeout(() => {
|
|
3086
|
-
window.URL.revokeObjectURL(url);
|
|
3087
|
-
}, 5000);
|
|
3107
|
+
this.pdf?.getData().then((u8) => {
|
|
3108
|
+
this.downloadFile(u8, 'file.pdf');
|
|
3088
3109
|
});
|
|
3089
3110
|
}
|
|
3090
3111
|
onZoomIn() {
|
|
@@ -3098,9 +3119,6 @@ class EuimPdfViewerComponent {
|
|
|
3098
3119
|
onResetZoom() {
|
|
3099
3120
|
this.pinch.resetZoom();
|
|
3100
3121
|
}
|
|
3101
|
-
// async onDismissModal() {
|
|
3102
|
-
// await this.modalCtrl.dismiss();
|
|
3103
|
-
// }
|
|
3104
3122
|
nextPage() {
|
|
3105
3123
|
if (this.page < this.pdf.numPages) {
|
|
3106
3124
|
this.page++;
|
|
@@ -3111,23 +3129,46 @@ class EuimPdfViewerComponent {
|
|
|
3111
3129
|
this.page--;
|
|
3112
3130
|
}
|
|
3113
3131
|
}
|
|
3114
|
-
|
|
3132
|
+
/**
|
|
3133
|
+
* Download file from the given data and filename using Blob.
|
|
3134
|
+
* It generates an anchor link and clicks on it to download the file.
|
|
3135
|
+
* @param data
|
|
3136
|
+
* @param filename
|
|
3137
|
+
* @private
|
|
3138
|
+
*/
|
|
3139
|
+
downloadFile(data, filename) {
|
|
3140
|
+
const blob = new Blob([data.buffer], { type: 'application/pdf' });
|
|
3141
|
+
const url = window.URL.createObjectURL(blob);
|
|
3115
3142
|
const a = document.createElement('a');
|
|
3116
|
-
document.body.appendChild(a);
|
|
3117
|
-
a.style.display = 'none';
|
|
3118
3143
|
a.href = url;
|
|
3119
|
-
a.download =
|
|
3144
|
+
a.download = filename;
|
|
3145
|
+
document.body.appendChild(a);
|
|
3120
3146
|
a.click();
|
|
3121
|
-
|
|
3147
|
+
setTimeout(() => {
|
|
3148
|
+
window.URL.revokeObjectURL(url);
|
|
3149
|
+
}, 5000);
|
|
3122
3150
|
document.body.removeChild(a);
|
|
3123
3151
|
}
|
|
3124
|
-
/**
|
|
3125
|
-
|
|
3152
|
+
/**
|
|
3153
|
+
* Fetch PDF data from the given URL and return as Uint8Array.
|
|
3154
|
+
* @param url
|
|
3155
|
+
* @private
|
|
3156
|
+
*/
|
|
3157
|
+
getPDFData(url) {
|
|
3158
|
+
return this.http.get(url, { responseType: 'arraybuffer' })
|
|
3159
|
+
// transform ArrayBuffer to Uint8Array
|
|
3160
|
+
.pipe(map((data) => new Uint8Array(data)), catchError(err => {
|
|
3161
|
+
this.onError();
|
|
3162
|
+
return throwError(() => err);
|
|
3163
|
+
}));
|
|
3164
|
+
}
|
|
3165
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuimPdfViewerComponent, deps: [{ token: i1.AlertController }, { token: i2$2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3166
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: EuimPdfViewerComponent, selector: "euim-pdf-viewer", inputs: { url: "url", page: "page" }, viewQueries: [{ propertyName: "pinch", first: true, predicate: ["pinch"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (loading || errorMessage) {\n<div>\n @if (loading) {\n <euim-spinner>\n <div euimSpinnerMessage>Loading PDF...</div>\n </euim-spinner>\n }\n @if (errorMessage) {\n <div>{{errorMessage}}</div>\n }\n</div>\n}\n\n<pinch-zoom [limit-zoom]=\"4\" [transition-duration]=\"50\" [zoomControlScale]=\"0.5\" (onZoomChange)=\"zoomChange($event)\" [wheelZoomFactor]=\"0.5\" [stepZoomFactor]=\"0.5\" #pinch>\n <div style=\"display: block;width: 100%; height: 500px\">\n <pdf-viewer [src]=\"data\"\n [original-size]=\"false\"\n [zoom-scale]=\"'page-height'\"\n (after-load-complete)=\"onLoaded($event)\"\n (error)=\"onError()\"\n [(page)]=\"page\"\n [stick-to-page]=\"false\"\n [show-all]=\"false\"\n [render-text]=\"true\"\n style=\"width: 100%; height: 100%\">\n </pdf-viewer>\n </div>\n</pinch-zoom>\n\n<ion-footer>\n <ion-toolbar color=\"primary\" class=\"euim-pdf-viewer__footer\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"onDownload()\" [disabled]=\"!pdf || !data\">\n <ion-icon name=\"download-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons class=\"euim-pdf-viewer__footer-zoom-container\">\n <ion-button (click)=\"onZoomOut()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"remove-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onResetZoom()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n {{'euim.pdf-viewer.reset.zoom' | translate }}\n </ion-button>\n <ion-button (click)=\"onZoomIn()\" [disabled]=\"zoom === 4 || !pdf || !data\">\n <ion-icon name=\"add-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n\n\n <ion-button (click)=\"prevPage()\" [disabled]=\"page === 1 || !pdf || !data\">\n {{'euim.stepper.previous' | translate }}\n </ion-button>\n {{page}}\n <ion-button (click)=\"nextPage()\" [disabled]=\"page === pdfNumPages || !pdf || !data\">\n {{'euim.stepper.next' | translate }}\n </ion-button>\n\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n", styles: [".euim-pdf-viewer__footer-zoom-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }, { kind: "component", type: i4.PinchZoomComponent, selector: "pinch-zoom, [pinch-zoom]", inputs: ["properties", "transition-duration", "transitionDuration", "double-tap", "doubleTap", "double-tap-scale", "doubleTapScale", "auto-zoom-out", "autoZoomOut", "limit-zoom", "limitZoom", "disabled", "disablePan", "overflow", "zoomControlScale", "disableZoomControl", "backgroundColor", "limitPan", "minPanScale", "minScale", "listeners", "wheel", "autoHeight", "stepZoomFactor", "wheelZoomFactor", "draggableImage"], outputs: ["onZoomChange"], exportAs: ["pinchZoom"] }, { kind: "component", type: EuimSpinnerComponent, selector: "euim-spinner" }, { kind: "component", type: EuimSpinnerMessageComponent, selector: "[euimSpinnerMessage]" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3126
3167
|
}
|
|
3127
3168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuimPdfViewerComponent, decorators: [{
|
|
3128
3169
|
type: Component,
|
|
3129
|
-
args: [{ selector: 'euim-pdf-viewer', encapsulation: ViewEncapsulation.None, template: "@if (loading || errorMessage) {\n<div>\n @if (loading) {\n <euim-spinner>\n <div euimSpinnerMessage>Loading PDF...</div>\n </euim-spinner>\n }\n @if (errorMessage) {\n <div>{{errorMessage}}</div>\n }\n</div>\n}\n\n<pinch-zoom [transition-duration]=\"50\" [zoomControlScale]=\"0.5\" (onZoomChange)=\"zoomChange($event)\" [wheelZoomFactor]=\"0.5\" [stepZoomFactor]=\"0.5\" #pinch>\n <div style=\"display: block;width: 100%; height: 500px\">\n <pdf-viewer [src]=\"
|
|
3130
|
-
}], ctorParameters: () => [{ type: i1.AlertController }], propDecorators: { url: [{
|
|
3170
|
+
args: [{ selector: 'euim-pdf-viewer', encapsulation: ViewEncapsulation.None, template: "@if (loading || errorMessage) {\n<div>\n @if (loading) {\n <euim-spinner>\n <div euimSpinnerMessage>Loading PDF...</div>\n </euim-spinner>\n }\n @if (errorMessage) {\n <div>{{errorMessage}}</div>\n }\n</div>\n}\n\n<pinch-zoom [limit-zoom]=\"4\" [transition-duration]=\"50\" [zoomControlScale]=\"0.5\" (onZoomChange)=\"zoomChange($event)\" [wheelZoomFactor]=\"0.5\" [stepZoomFactor]=\"0.5\" #pinch>\n <div style=\"display: block;width: 100%; height: 500px\">\n <pdf-viewer [src]=\"data\"\n [original-size]=\"false\"\n [zoom-scale]=\"'page-height'\"\n (after-load-complete)=\"onLoaded($event)\"\n (error)=\"onError()\"\n [(page)]=\"page\"\n [stick-to-page]=\"false\"\n [show-all]=\"false\"\n [render-text]=\"true\"\n style=\"width: 100%; height: 100%\">\n </pdf-viewer>\n </div>\n</pinch-zoom>\n\n<ion-footer>\n <ion-toolbar color=\"primary\" class=\"euim-pdf-viewer__footer\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"onDownload()\" [disabled]=\"!pdf || !data\">\n <ion-icon name=\"download-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons class=\"euim-pdf-viewer__footer-zoom-container\">\n <ion-button (click)=\"onZoomOut()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"remove-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onResetZoom()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n {{'euim.pdf-viewer.reset.zoom' | translate }}\n </ion-button>\n <ion-button (click)=\"onZoomIn()\" [disabled]=\"zoom === 4 || !pdf || !data\">\n <ion-icon name=\"add-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n\n\n <ion-button (click)=\"prevPage()\" [disabled]=\"page === 1 || !pdf || !data\">\n {{'euim.stepper.previous' | translate }}\n </ion-button>\n {{page}}\n <ion-button (click)=\"nextPage()\" [disabled]=\"page === pdfNumPages || !pdf || !data\">\n {{'euim.stepper.next' | translate }}\n </ion-button>\n\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n", styles: [".euim-pdf-viewer__footer-zoom-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}\n"] }]
|
|
3171
|
+
}], ctorParameters: () => [{ type: i1.AlertController }, { type: i2$2.HttpClient }], propDecorators: { url: [{
|
|
3131
3172
|
type: Input
|
|
3132
3173
|
}], page: [{
|
|
3133
3174
|
type: Input
|
|
@@ -3146,13 +3187,15 @@ class EuimPdfViewerModule {
|
|
|
3146
3187
|
PdfViewerModule,
|
|
3147
3188
|
PinchZoomModule,
|
|
3148
3189
|
EuimSpinnerComponentModule,
|
|
3149
|
-
TranslateModule
|
|
3190
|
+
TranslateModule,
|
|
3191
|
+
HttpClientModule], exports: [EuimPdfViewerComponent] }); }
|
|
3150
3192
|
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuimPdfViewerModule, imports: [CommonModule,
|
|
3151
3193
|
IonicModule,
|
|
3152
3194
|
PdfViewerModule,
|
|
3153
3195
|
PinchZoomModule,
|
|
3154
3196
|
EuimSpinnerComponentModule,
|
|
3155
|
-
TranslateModule
|
|
3197
|
+
TranslateModule,
|
|
3198
|
+
HttpClientModule] }); }
|
|
3156
3199
|
}
|
|
3157
3200
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuimPdfViewerModule, decorators: [{
|
|
3158
3201
|
type: NgModule,
|
|
@@ -3164,6 +3207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
3164
3207
|
PinchZoomModule,
|
|
3165
3208
|
EuimSpinnerComponentModule,
|
|
3166
3209
|
TranslateModule,
|
|
3210
|
+
HttpClientModule,
|
|
3167
3211
|
],
|
|
3168
3212
|
exports: [
|
|
3169
3213
|
...COMPONENTS$1,
|
|
@@ -3220,40 +3264,81 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
3220
3264
|
}] } });
|
|
3221
3265
|
|
|
3222
3266
|
class EuimHelpSupportComponent {
|
|
3223
|
-
constructor() {
|
|
3267
|
+
constructor(router) {
|
|
3268
|
+
this.router = router;
|
|
3269
|
+
/**
|
|
3270
|
+
* @deprecated will be removed in eUI Mobile v18. Please use {@link helpAndSupportItems} instead
|
|
3271
|
+
*/
|
|
3224
3272
|
this.helpContacts = { contacts: [] };
|
|
3273
|
+
/**
|
|
3274
|
+
* @deprecated will be removed in eUI Mobile v18. Please use {@link helpAndSupportItems} instead
|
|
3275
|
+
*/
|
|
3225
3276
|
this.supportMaterials = { materials: [] };
|
|
3277
|
+
/**
|
|
3278
|
+
* @deprecated will be removed in eUI Mobile v18
|
|
3279
|
+
*/
|
|
3226
3280
|
this.alertInfos = {};
|
|
3281
|
+
this.helpAndSupportItems = [];
|
|
3227
3282
|
this.className = 'euim-help-support';
|
|
3228
3283
|
}
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
return 'mailto:' + linkTitle;
|
|
3235
|
-
default:
|
|
3236
|
-
return linkTitle;
|
|
3284
|
+
onItemClick(item, linkType, linkTitle) {
|
|
3285
|
+
if (item?.routerLink) {
|
|
3286
|
+
this.router.navigate([item.routerLink], {
|
|
3287
|
+
fragment: item.fragment && !item.link ? item.fragment : null,
|
|
3288
|
+
});
|
|
3237
3289
|
}
|
|
3290
|
+
else {
|
|
3291
|
+
window.open(this.getLink(item, linkType, linkTitle), this.setTargetAttribute(item, linkType));
|
|
3292
|
+
}
|
|
3293
|
+
}
|
|
3294
|
+
isLinkSharp(item) {
|
|
3295
|
+
return item?.endIcon === 'link-sharp';
|
|
3238
3296
|
}
|
|
3239
|
-
|
|
3240
|
-
|
|
3297
|
+
getLinkClass(item) {
|
|
3298
|
+
return this.isLinkSharp(item) ? 'euim-help-support__contact-link euim-help-support__contact-link--no-underlined' : 'euim-help-support__contact-link';
|
|
3299
|
+
}
|
|
3300
|
+
getLink(item, linkType, linkTitle) {
|
|
3301
|
+
if (linkTitle && linkType === 'mail') {
|
|
3302
|
+
return 'mailto:' + linkTitle;
|
|
3303
|
+
}
|
|
3304
|
+
if (linkTitle && linkType === 'call') {
|
|
3305
|
+
return 'tel:' + linkTitle;
|
|
3306
|
+
}
|
|
3307
|
+
if (linkTitle) {
|
|
3308
|
+
return linkTitle;
|
|
3309
|
+
}
|
|
3310
|
+
if (item) {
|
|
3311
|
+
if (item.phone) {
|
|
3312
|
+
return 'tel:' + item.phone;
|
|
3313
|
+
}
|
|
3314
|
+
if (item.mail) {
|
|
3315
|
+
return 'mailto:' + item.mail;
|
|
3316
|
+
}
|
|
3317
|
+
if (item.link) {
|
|
3318
|
+
return item.link;
|
|
3319
|
+
}
|
|
3320
|
+
}
|
|
3321
|
+
}
|
|
3322
|
+
setTargetAttribute(item, linkType) {
|
|
3323
|
+
if (item?.phone || item?.mail || linkType === 'call' || linkType === 'mail') {
|
|
3241
3324
|
return '_self';
|
|
3242
3325
|
}
|
|
3243
3326
|
return '_blank';
|
|
3244
3327
|
}
|
|
3245
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuimHelpSupportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3246
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: EuimHelpSupportComponent, selector: "euim-help-support", inputs: { helpContacts: "helpContacts", supportMaterials: "supportMaterials", alertInfos: "alertInfos" }, host: { properties: { "class": "this.className" } }, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <euim-toolbar>\n <euim-toolbar-title>{{'euim.about.help.support' | translate }}</euim-toolbar-title>\n </euim-toolbar>\n </ion-toolbar>\n
|
|
3328
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuimHelpSupportComponent, deps: [{ token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3329
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: EuimHelpSupportComponent, selector: "euim-help-support", inputs: { helpContacts: "helpContacts", supportMaterials: "supportMaterials", alertInfos: "alertInfos", helpAndSupportItems: "helpAndSupportItems" }, host: { properties: { "class": "this.className" } }, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <euim-toolbar>\n <euim-toolbar-title>{{'euim.about.help.support' | translate }}</euim-toolbar-title>\n </euim-toolbar>\n </ion-toolbar>\n @if (alertInfos.title) {\n <euim-alert-message color=\"primary\">\n <ion-icon name=\"person-circle\" slotStart></ion-icon>\n {{ alertInfos.title }}\n\n @if (alertInfos.btnLink) {\n <ion-button [href]=\"alertInfos.btnLink\" slotEnd size=\"small\" fill=\"outline\">\n <strong>{{ alertInfos.btnTitle }}</strong>\n </ion-button>\n }\n </euim-alert-message>\n }\n <ng-content select=\"[headerSection]\"></ng-content>\n</ion-header>\n\n@if (helpAndSupportItems.length > 0 || helpContacts.contacts.length > 0 || supportMaterials.materials.length > 0) {\n <ion-list>\n @for (helpSupportItem of helpAndSupportItems; track $index;) {\n @if (helpSupportItem.sectionTitle) {\n <ion-item-divider>\n <ion-label>{{ helpSupportItem.sectionTitle }}</ion-label>\n </ion-item-divider>\n }\n\n @for (item of helpSupportItem.items; track item;) {\n\n <ion-item [lines]=\"item.hasBottomLine ? 'insert' : 'none'\" (click)=\"onItemClick(item, undefined, undefined)\">\n @if (item.startIcon) {\n <euim-avatar-icon fill=\"solid\" slot=\"start\">\n <ion-icon [name]=\"item.startIcon\"></ion-icon>\n </euim-avatar-icon>\n }\n @if (item.title || item.subtitle) {\n <ion-label>\n @if (item.title) {\n <a [ngClass]=\"getLinkClass(item)\">\n @if (!isLinkSharp(item)) {\n <div class=\"euim-help-support__title\">{{ item.title }}</div>\n }\n @if (isLinkSharp(item)) {\n <div euimLabel euimLabelTitle>{{ item.title }}</div>\n }\n </a>\n }\n @if (item.subtitle) {\n <div euimLabel euimLabelSubTitle>\n {{ item.subtitle }}\n </div>\n }\n </ion-label>\n }\n @if (item.endIcon) {\n <ion-buttons>\n <ion-button fill=\"clear\">\n <ion-icon [name]=\"item.endIcon\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n }\n </ion-item>\n }\n }\n @if (helpContacts.contacts.length > 0) {\n @if (helpContacts.sectionTitle) {\n <ion-item-divider>\n <ion-label>{{ helpContacts.sectionTitle }}</ion-label>\n </ion-item-divider>\n }\n @for (contact of helpContacts.contacts; track contact; let isLast = $last) {\n <ion-item [lines]=\"isLast ? 'none' : ''\" (click)=\"onItemClick(undefined, contact.linkType, contact.linkTitle)\">\n @if (contact.icon) {\n <euim-avatar-icon fill=\"solid\" slot=\"start\">\n <ion-icon [name]=\"contact.icon\"></ion-icon>\n </euim-avatar-icon>\n }\n @if (contact.linkTitle || contact.subtitle) {\n <ion-label>\n @if (contact.linkTitle) {\n <a class=\"euim-help-support__contact-link\">\n <div class=\"euim-help-support__title\">{{contact.linkTitle}}</div>\n </a>\n }\n @if (contact.subtitle) {\n <div euimLabel euimLabelSubTitle>{{contact.subtitle}}</div>\n }\n </ion-label>\n }\n </ion-item>\n }\n }\n\n @if (supportMaterials.materials.length > 0) {\n @if (supportMaterials.sectionTitle) {\n <ion-item-divider>\n <ion-label>{{ supportMaterials.sectionTitle }}</ion-label>\n </ion-item-divider>\n }\n @for (material of supportMaterials.materials; track material) {\n <ion-item lines=\"none\" (click)=\"onItemClick(material, undefined, undefined)\">\n @if (material.icon) {\n <euim-avatar-icon fill=\"solid\" slot=\"start\">\n <ion-icon [name]=\"material.icon\"></ion-icon>\n </euim-avatar-icon>\n }\n <ion-label>\n @if (material.title) {\n <div euimLabel euimLabelTitle>{{material.title}}</div>\n }\n @if (material.subtitle) {\n <div euimLabel euimLabelSubTitle>{{material.subtitle}}</div>\n }\n </ion-label>\n <ion-buttons>\n <ion-button fill=\"clear\" >\n <ion-icon name=\"link-sharp\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-item>\n }\n }\n </ion-list>\n}\n<ng-content></ng-content>\n\n\n", styles: [".euim-help-support__title{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.euim-help-support__contact-link--no-underlined{text-decoration:none}.euim-help-support ion-item{position:relative;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: EuimToolbarComponent, selector: "euim-toolbar", inputs: ["hasBackButton", "backButtonDefaultHref", "hasSidebarTrigger", "hasLanguageSelector"], outputs: ["backButtonClick"] }, { kind: "component", type: EuimToolbarTitleComponent, selector: "euim-toolbar-title" }, { kind: "component", type: EuimLabelComponent, selector: "div[euimLabel], p[euimLabel], span[euimLabel], euim-label", inputs: ["euimLabelTruncateWithLines", "euimLabelTitle", "euimLabelSubTitle", "euimLabelMeta", "euimLabelTruncate"] }, { kind: "component", type: EuimAvatarIconComponent, selector: "euim-avatar-icon", inputs: ["color", "size", "fill", "variant", "borderColor"] }, { kind: "component", type: EuimAlertMessageComponent, selector: "euim-alert-message", inputs: ["euimLabelTruncate", "hasIcon", "isCloseable"], outputs: ["euimClose"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3247
3330
|
}
|
|
3248
3331
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuimHelpSupportComponent, decorators: [{
|
|
3249
3332
|
type: Component,
|
|
3250
|
-
args: [{ selector: 'euim-help-support', encapsulation: ViewEncapsulation.None, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <euim-toolbar>\n <euim-toolbar-title>{{'euim.about.help.support' | translate }}</euim-toolbar-title>\n </euim-toolbar>\n </ion-toolbar>\n
|
|
3251
|
-
}], propDecorators: { helpContacts: [{
|
|
3333
|
+
args: [{ selector: 'euim-help-support', encapsulation: ViewEncapsulation.None, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <euim-toolbar>\n <euim-toolbar-title>{{'euim.about.help.support' | translate }}</euim-toolbar-title>\n </euim-toolbar>\n </ion-toolbar>\n @if (alertInfos.title) {\n <euim-alert-message color=\"primary\">\n <ion-icon name=\"person-circle\" slotStart></ion-icon>\n {{ alertInfos.title }}\n\n @if (alertInfos.btnLink) {\n <ion-button [href]=\"alertInfos.btnLink\" slotEnd size=\"small\" fill=\"outline\">\n <strong>{{ alertInfos.btnTitle }}</strong>\n </ion-button>\n }\n </euim-alert-message>\n }\n <ng-content select=\"[headerSection]\"></ng-content>\n</ion-header>\n\n@if (helpAndSupportItems.length > 0 || helpContacts.contacts.length > 0 || supportMaterials.materials.length > 0) {\n <ion-list>\n @for (helpSupportItem of helpAndSupportItems; track $index;) {\n @if (helpSupportItem.sectionTitle) {\n <ion-item-divider>\n <ion-label>{{ helpSupportItem.sectionTitle }}</ion-label>\n </ion-item-divider>\n }\n\n @for (item of helpSupportItem.items; track item;) {\n\n <ion-item [lines]=\"item.hasBottomLine ? 'insert' : 'none'\" (click)=\"onItemClick(item, undefined, undefined)\">\n @if (item.startIcon) {\n <euim-avatar-icon fill=\"solid\" slot=\"start\">\n <ion-icon [name]=\"item.startIcon\"></ion-icon>\n </euim-avatar-icon>\n }\n @if (item.title || item.subtitle) {\n <ion-label>\n @if (item.title) {\n <a [ngClass]=\"getLinkClass(item)\">\n @if (!isLinkSharp(item)) {\n <div class=\"euim-help-support__title\">{{ item.title }}</div>\n }\n @if (isLinkSharp(item)) {\n <div euimLabel euimLabelTitle>{{ item.title }}</div>\n }\n </a>\n }\n @if (item.subtitle) {\n <div euimLabel euimLabelSubTitle>\n {{ item.subtitle }}\n </div>\n }\n </ion-label>\n }\n @if (item.endIcon) {\n <ion-buttons>\n <ion-button fill=\"clear\">\n <ion-icon [name]=\"item.endIcon\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n }\n </ion-item>\n }\n }\n @if (helpContacts.contacts.length > 0) {\n @if (helpContacts.sectionTitle) {\n <ion-item-divider>\n <ion-label>{{ helpContacts.sectionTitle }}</ion-label>\n </ion-item-divider>\n }\n @for (contact of helpContacts.contacts; track contact; let isLast = $last) {\n <ion-item [lines]=\"isLast ? 'none' : ''\" (click)=\"onItemClick(undefined, contact.linkType, contact.linkTitle)\">\n @if (contact.icon) {\n <euim-avatar-icon fill=\"solid\" slot=\"start\">\n <ion-icon [name]=\"contact.icon\"></ion-icon>\n </euim-avatar-icon>\n }\n @if (contact.linkTitle || contact.subtitle) {\n <ion-label>\n @if (contact.linkTitle) {\n <a class=\"euim-help-support__contact-link\">\n <div class=\"euim-help-support__title\">{{contact.linkTitle}}</div>\n </a>\n }\n @if (contact.subtitle) {\n <div euimLabel euimLabelSubTitle>{{contact.subtitle}}</div>\n }\n </ion-label>\n }\n </ion-item>\n }\n }\n\n @if (supportMaterials.materials.length > 0) {\n @if (supportMaterials.sectionTitle) {\n <ion-item-divider>\n <ion-label>{{ supportMaterials.sectionTitle }}</ion-label>\n </ion-item-divider>\n }\n @for (material of supportMaterials.materials; track material) {\n <ion-item lines=\"none\" (click)=\"onItemClick(material, undefined, undefined)\">\n @if (material.icon) {\n <euim-avatar-icon fill=\"solid\" slot=\"start\">\n <ion-icon [name]=\"material.icon\"></ion-icon>\n </euim-avatar-icon>\n }\n <ion-label>\n @if (material.title) {\n <div euimLabel euimLabelTitle>{{material.title}}</div>\n }\n @if (material.subtitle) {\n <div euimLabel euimLabelSubTitle>{{material.subtitle}}</div>\n }\n </ion-label>\n <ion-buttons>\n <ion-button fill=\"clear\" >\n <ion-icon name=\"link-sharp\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-item>\n }\n }\n </ion-list>\n}\n<ng-content></ng-content>\n\n\n", styles: [".euim-help-support__title{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.euim-help-support__contact-link--no-underlined{text-decoration:none}.euim-help-support ion-item{position:relative;cursor:pointer}\n"] }]
|
|
3334
|
+
}], ctorParameters: () => [{ type: i1$2.Router }], propDecorators: { helpContacts: [{
|
|
3252
3335
|
type: Input
|
|
3253
3336
|
}], supportMaterials: [{
|
|
3254
3337
|
type: Input
|
|
3255
3338
|
}], alertInfos: [{
|
|
3256
3339
|
type: Input
|
|
3340
|
+
}], helpAndSupportItems: [{
|
|
3341
|
+
type: Input
|
|
3257
3342
|
}], className: [{
|
|
3258
3343
|
type: HostBinding,
|
|
3259
3344
|
args: ['class']
|
|
@@ -3321,7 +3406,8 @@ class EuimAboutModule {
|
|
|
3321
3406
|
EuimAvatarIconModule,
|
|
3322
3407
|
EuimAlertMessageModule,
|
|
3323
3408
|
PinchZoomModule,
|
|
3324
|
-
TranslateModule
|
|
3409
|
+
TranslateModule,
|
|
3410
|
+
RouterModule], exports: [EuimAboutComponent,
|
|
3325
3411
|
EuimChangelogComponent,
|
|
3326
3412
|
EuimOpenSourceLicencesComponent,
|
|
3327
3413
|
EuimHelpSupportComponent,
|
|
@@ -3335,7 +3421,8 @@ class EuimAboutModule {
|
|
|
3335
3421
|
EuimAvatarIconModule,
|
|
3336
3422
|
EuimAlertMessageModule,
|
|
3337
3423
|
PinchZoomModule,
|
|
3338
|
-
TranslateModule
|
|
3424
|
+
TranslateModule,
|
|
3425
|
+
RouterModule] }); }
|
|
3339
3426
|
}
|
|
3340
3427
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuimAboutModule, decorators: [{
|
|
3341
3428
|
type: NgModule,
|
|
@@ -3351,6 +3438,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
3351
3438
|
EuimAlertMessageModule,
|
|
3352
3439
|
PinchZoomModule,
|
|
3353
3440
|
TranslateModule,
|
|
3441
|
+
RouterModule,
|
|
3354
3442
|
],
|
|
3355
3443
|
exports: [
|
|
3356
3444
|
...COMPONENTS,
|