@yuuvis/client-core 2.3.1 → 2.3.3
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.
|
@@ -5,11 +5,11 @@ import { HttpErrorResponse, HttpClient, HttpHeaders, HttpParams, HttpRequest, Ht
|
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
6
|
import { inject, Injectable, InjectionToken, Inject, Directive, Pipe, importProvidersFrom, provideAppInitializer } from '@angular/core';
|
|
7
7
|
import { tap, finalize, shareReplay, catchError, map, switchMap, first, filter, scan, delay } from 'rxjs/operators';
|
|
8
|
-
import { EMPTY, of, forkJoin, Observable, ReplaySubject, Subject, BehaviorSubject, tap as tap$1, map as map$1, merge,
|
|
8
|
+
import { EMPTY, of, forkJoin, Observable, ReplaySubject, Subject, fromEvent, BehaviorSubject, tap as tap$1, map as map$1, merge, filter as filter$1, debounceTime, throwError, isObservable, switchMap as switchMap$1 } from 'rxjs';
|
|
9
9
|
import { StorageMap } from '@ngx-pwa/local-storage';
|
|
10
|
+
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
10
11
|
import { __decorate, __param, __metadata } from 'tslib';
|
|
11
12
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
12
|
-
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
13
13
|
import { DeviceDetectorService } from 'ngx-device-detector';
|
|
14
14
|
import { DOCUMENT, DecimalPipe, PercentPipe, CurrencyPipe, registerLocaleData } from '@angular/common';
|
|
15
15
|
import { MatTabGroup } from '@angular/material/tabs';
|
|
@@ -2191,15 +2191,64 @@ var Direction;
|
|
|
2191
2191
|
Direction["RTL"] = "rtl";
|
|
2192
2192
|
})(Direction || (Direction = {}));
|
|
2193
2193
|
|
|
2194
|
+
/**
|
|
2195
|
+
* Mandatory Custom event prefix for all custom YUV events
|
|
2196
|
+
*/
|
|
2197
|
+
const CUSTOM_EVENT_PREFIX = 'yuv.';
|
|
2198
|
+
|
|
2194
2199
|
/**
|
|
2195
2200
|
* Service for providing triggered events
|
|
2196
2201
|
*/
|
|
2197
2202
|
class EventService {
|
|
2203
|
+
#eventSource;
|
|
2204
|
+
#allowedOrigins;
|
|
2198
2205
|
constructor() {
|
|
2199
2206
|
this.#eventSource = new Subject();
|
|
2200
2207
|
this.event$ = this.#eventSource.asObservable();
|
|
2208
|
+
this.#allowedOrigins = [window.location.origin];
|
|
2209
|
+
this.#listenToWindowEvents();
|
|
2210
|
+
}
|
|
2211
|
+
#isYuvMessage(data) {
|
|
2212
|
+
return data && typeof data.type === 'string' && data.type.startsWith(CUSTOM_EVENT_PREFIX);
|
|
2213
|
+
}
|
|
2214
|
+
#isValidExternalMessage(event) {
|
|
2215
|
+
// Skip Angular DevTools and other framework messages
|
|
2216
|
+
if (event.data?.source?.startsWith('angular-devtools'))
|
|
2217
|
+
return false;
|
|
2218
|
+
if (event.data?.source?.startsWith('react-devtools'))
|
|
2219
|
+
return false;
|
|
2220
|
+
if (event.data?.source?.startsWith('webpack'))
|
|
2221
|
+
return false;
|
|
2222
|
+
if (event.data?.type?.startsWith('webpackOk'))
|
|
2223
|
+
return false;
|
|
2224
|
+
// Accept messages from trusted origins
|
|
2225
|
+
const trustedOrigins = [window.location.origin];
|
|
2226
|
+
const isFromTrustedOrigin = trustedOrigins.includes(event.origin);
|
|
2227
|
+
const hasValidStructure = event.data && (event.data.type || event.data.eventType) && typeof event.data === 'object';
|
|
2228
|
+
return isFromTrustedOrigin && hasValidStructure && this.#isYuvMessage(event.data);
|
|
2229
|
+
}
|
|
2230
|
+
#listenToWindowEvents() {
|
|
2231
|
+
fromEvent(window, 'message')
|
|
2232
|
+
.pipe(
|
|
2233
|
+
// TODO: Prevent message spam (necessary?)
|
|
2234
|
+
// debounceTime(500),
|
|
2235
|
+
filter((event) => this.#isValidExternalMessage(event)), takeUntilDestroyed())
|
|
2236
|
+
.subscribe((event) => this.trigger(event.data.type, event.data.data));
|
|
2237
|
+
}
|
|
2238
|
+
/**
|
|
2239
|
+
* Triggers a postMessage event that will be sent to the yuuvis global event Trigger
|
|
2240
|
+
* @param type Type/key of the event
|
|
2241
|
+
* @param data Data to be sent along with the event
|
|
2242
|
+
*/
|
|
2243
|
+
triggerPostMessageEvent(type, data) {
|
|
2244
|
+
const targetOrigin = window.location.origin;
|
|
2245
|
+
const payload = {
|
|
2246
|
+
type,
|
|
2247
|
+
data,
|
|
2248
|
+
timestamp: Date.now()
|
|
2249
|
+
};
|
|
2250
|
+
window.postMessage(payload, targetOrigin);
|
|
2201
2251
|
}
|
|
2202
|
-
#eventSource;
|
|
2203
2252
|
/**
|
|
2204
2253
|
* Trigger an global event
|
|
2205
2254
|
* @param type Type/key of the event
|
|
@@ -2223,7 +2272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
2223
2272
|
args: [{
|
|
2224
2273
|
providedIn: 'root'
|
|
2225
2274
|
}]
|
|
2226
|
-
}] });
|
|
2275
|
+
}], ctorParameters: () => [] });
|
|
2227
2276
|
|
|
2228
2277
|
/**
|
|
2229
2278
|
* Events emitted by parts of the application
|
|
@@ -5425,5 +5474,5 @@ const provideYuvClientCore = (options = { translations: [] }) => {
|
|
|
5425
5474
|
* Generated bundle index. Do not edit.
|
|
5426
5475
|
*/
|
|
5427
5476
|
|
|
5428
|
-
export { AFO_STATE, AdministrationRoles, ApiBase, AppCacheService, AuditField, AuditService, AuthService, BackendService, BaseObjectTypeField, BpmService, CORE_CONFIG, CUSTOM_CONFIG, CatalogService, Classification, ClassificationPrefix, ClientDefaultsObjectTypeField, ClipboardService, ColumnConfigSkipFields, ConfigService, ConnectionService, ContentStreamAllowed, ContentStreamField, CoreConfig, DeviceScreenOrientation, DeviceService, DialogCloseGuard, Direction, DmsObject, DmsService, EventService, FileSizePipe, IdmService, InternalFieldType, KeysPipe, LocaleCurrencyPipe, LocaleDatePipe, LocaleDecimalPipe, LocaleNumberPipe, LocalePercentPipe, Logger, LoginStateName, NativeNotificationService, NotificationService, ObjectConfigService, ObjectFormControl, ObjectFormControlWrapper, ObjectFormGroup, ObjectTag, ObjectTypeClassification, ObjectTypePropertyClassification, Operator, OperatorLabel, ParentField, PendingChangesGuard, PendingChangesService, PredictionService, ProcessAction, RelationshipTypeField, RetentionField, RetentionService, SafeHtmlPipe, SafeUrlPipe, SearchService, SearchUtils, SecondaryObjectTypeClassification, SessionStorageService, Situation, Sort, SystemResult, SystemSOT, SystemService, SystemType, TENANT_HEADER, TabGuardDirective, ToastService, UploadService, UserRoles, UserService, UserStorageService, Utils, YUV_USER, YuvError, YuvEventType, YuvUser, init_moduleFnc, provideUser, provideYuvClientCore };
|
|
5477
|
+
export { AFO_STATE, AdministrationRoles, ApiBase, AppCacheService, AuditField, AuditService, AuthService, BackendService, BaseObjectTypeField, BpmService, CORE_CONFIG, CUSTOM_CONFIG, CUSTOM_EVENT_PREFIX, CatalogService, Classification, ClassificationPrefix, ClientDefaultsObjectTypeField, ClipboardService, ColumnConfigSkipFields, ConfigService, ConnectionService, ContentStreamAllowed, ContentStreamField, CoreConfig, DeviceScreenOrientation, DeviceService, DialogCloseGuard, Direction, DmsObject, DmsService, EventService, FileSizePipe, IdmService, InternalFieldType, KeysPipe, LocaleCurrencyPipe, LocaleDatePipe, LocaleDecimalPipe, LocaleNumberPipe, LocalePercentPipe, Logger, LoginStateName, NativeNotificationService, NotificationService, ObjectConfigService, ObjectFormControl, ObjectFormControlWrapper, ObjectFormGroup, ObjectTag, ObjectTypeClassification, ObjectTypePropertyClassification, Operator, OperatorLabel, ParentField, PendingChangesGuard, PendingChangesService, PredictionService, ProcessAction, RelationshipTypeField, RetentionField, RetentionService, SafeHtmlPipe, SafeUrlPipe, SearchService, SearchUtils, SecondaryObjectTypeClassification, SessionStorageService, Situation, Sort, SystemResult, SystemSOT, SystemService, SystemType, TENANT_HEADER, TabGuardDirective, ToastService, UploadService, UserRoles, UserService, UserStorageService, Utils, YUV_USER, YuvError, YuvEventType, YuvUser, init_moduleFnc, provideUser, provideYuvClientCore };
|
|
5429
5478
|
//# sourceMappingURL=yuuvis-client-core.mjs.map
|