@elderbyte/ngx-starter 20.7.2 → 20.8.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.
- package/fesm2022/elderbyte-ngx-starter.mjs +400 -232
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/index.d.ts +190 -127
- package/package.json +1 -1
- package/src/assets/i18n/de.json +5 -0
- package/src/assets/i18n/en.json +5 -0
- package/src/assets/i18n/fr.json +5 -0
- package/src/lib/components/page/exit-guard/page-exit-lock/page-exit-lock.component.scss +0 -0
- package/src/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.scss +0 -7
- package/src/lib/components/page/exit-guard/page-exit-lock-overview/page-exit-lock-overview.component.scss +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i2 from '@angular/common';
|
|
2
2
|
import { formatDate, CommonModule, formatCurrency, getCurrencySymbol, AsyncPipe, NgTemplateOutlet, NgClass, NgStyle, formatNumber, DecimalPipe, DatePipe, registerLocaleData, CurrencyPipe } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Pipe, LOCALE_ID, Inject, NgModule, Injectable, inject, Optional, SkipSelf, Input, Output, Directive, forwardRef, ViewChild, ElementRef, DestroyRef, model, signal, computed, untracked, HostBinding, ViewChildren, ContentChild, ChangeDetectionStrategy, Component, Host, APP_INITIALIZER, TemplateRef, HostListener, EventEmitter, input, ViewEncapsulation, InjectionToken, output, effect, ContentChildren, contentChildren, viewChild, contentChild, viewChildren, linkedSignal, booleanAttribute } from '@angular/core';
|
|
4
|
+
import { Pipe, LOCALE_ID, Inject, NgModule, Injectable, inject, Optional, SkipSelf, Input, Output, Directive, forwardRef, ViewChild, ElementRef, DestroyRef, model, signal, computed, untracked, HostBinding, ViewChildren, ContentChild, ChangeDetectionStrategy, Component, Host, APP_INITIALIZER, TemplateRef, HostListener, EventEmitter, input, ViewEncapsulation, InjectionToken, output, effect, ContentChildren, contentChildren, viewChild, contentChild, viewChildren, linkedSignal, booleanAttribute, Injector, NgZone } from '@angular/core';
|
|
5
5
|
import * as i1 from '@angular/platform-browser';
|
|
6
6
|
import { Duration, Period, TemporalQueries, LocalTime, Instant, LocalDate, nativeJs, ZoneId, DateTimeFormatter, convert, ZonedDateTime, Temporal as Temporal$1 } from '@js-joda/core';
|
|
7
7
|
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
@@ -27,7 +27,7 @@ import { MatIcon, MatIconModule } from '@angular/material/icon';
|
|
|
27
27
|
import { MatSlideToggle, MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
28
28
|
import * as i1$5 from '@angular/material/toolbar';
|
|
29
29
|
import { MatToolbar, MatToolbarRow, MatToolbarModule } from '@angular/material/toolbar';
|
|
30
|
-
import { MatCard, MatCardModule
|
|
30
|
+
import { MatCard, MatCardModule } from '@angular/material/card';
|
|
31
31
|
import * as i1$c from '@angular/material/core';
|
|
32
32
|
import { MatRipple, MatRippleModule, MatOption, MatCommonModule, NativeDateAdapter, MAT_DATE_LOCALE, DateAdapter, MatNativeDateModule } from '@angular/material/core';
|
|
33
33
|
import * as i5 from '@angular/material/button';
|
|
@@ -47,7 +47,7 @@ import { MatDivider, MatDividerModule } from '@angular/material/divider';
|
|
|
47
47
|
import * as i6 from '@angular/material/menu';
|
|
48
48
|
import { MatMenuTrigger, MatMenu, MatMenuItem, MatMenuModule } from '@angular/material/menu';
|
|
49
49
|
import * as i1$7 from '@angular/material/dialog';
|
|
50
|
-
import { MatDialogClose, MAT_DIALOG_DATA, MatDialogConfig, MatDialogModule } from '@angular/material/dialog';
|
|
50
|
+
import { MatDialogClose, MAT_DIALOG_DATA, MatDialogConfig, MatDialogModule, MatDialog } from '@angular/material/dialog';
|
|
51
51
|
import { MatBadge, MatBadgeModule } from '@angular/material/badge';
|
|
52
52
|
import * as i1$b from '@angular/material/checkbox';
|
|
53
53
|
import { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';
|
|
@@ -36441,8 +36441,302 @@ class DataViewMessage extends TypedEventMessage {
|
|
|
36441
36441
|
class IframeMessages {
|
|
36442
36442
|
static { this.CLOSE = 'CLOSE'; }
|
|
36443
36443
|
static { this.VIEW_READY_EVENT = 'VIEW_READY_EVENT'; }
|
|
36444
|
+
static { this.LOCKS_CHANGE_EVENT = 'LOCKS_CHANGE_EVENT'; }
|
|
36444
36445
|
}
|
|
36445
36446
|
|
|
36447
|
+
class ElderLockManagerService {
|
|
36448
|
+
/***************************************************************************
|
|
36449
|
+
* *
|
|
36450
|
+
* Constructor *
|
|
36451
|
+
* *
|
|
36452
|
+
**************************************************************************/
|
|
36453
|
+
constructor() {
|
|
36454
|
+
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
36455
|
+
this.lockContext = inject(ElderLockContext);
|
|
36456
|
+
/***************************************************************************
|
|
36457
|
+
* *
|
|
36458
|
+
* Signal state *
|
|
36459
|
+
* *
|
|
36460
|
+
**************************************************************************/
|
|
36461
|
+
this.isUnloadEventListenerActive = signal(false, ...(ngDevMode ? [{ debugName: "isUnloadEventListenerActive" }] : []));
|
|
36462
|
+
/***************************************************************************
|
|
36463
|
+
* *
|
|
36464
|
+
* Computed signals *
|
|
36465
|
+
* *
|
|
36466
|
+
**************************************************************************/
|
|
36467
|
+
this.hasLocks = computed(() => this.lockMessages().length > 0, ...(ngDevMode ? [{ debugName: "hasLocks" }] : []));
|
|
36468
|
+
this.lockMessages = computed(() => this.lockContext.lockMessages(), ...(ngDevMode ? [{ debugName: "lockMessages" }] : []));
|
|
36469
|
+
/***************************************************************************
|
|
36470
|
+
* *
|
|
36471
|
+
* Private properties *
|
|
36472
|
+
* *
|
|
36473
|
+
**************************************************************************/
|
|
36474
|
+
this.handleBeforeUnload = (event) => {
|
|
36475
|
+
event.preventDefault();
|
|
36476
|
+
};
|
|
36477
|
+
// Handle initial state on construction since this service may be initialized async
|
|
36478
|
+
this.handleInitialLockState();
|
|
36479
|
+
this.lockContext.locksChanged.pipe(takeUntilDestroyed()).subscribe((locks) => {
|
|
36480
|
+
this.sendLockMessages();
|
|
36481
|
+
});
|
|
36482
|
+
const lockedStatusChanged = this.lockContext.locksChanged.pipe(map((locks) => locks.length > 0), takeUntilDestroyed());
|
|
36483
|
+
lockedStatusChanged.subscribe((isLocked) => {
|
|
36484
|
+
if (isLocked) {
|
|
36485
|
+
this.activateUnloadEventListener();
|
|
36486
|
+
}
|
|
36487
|
+
else {
|
|
36488
|
+
this.deactivateUnloadEventListener();
|
|
36489
|
+
}
|
|
36490
|
+
});
|
|
36491
|
+
}
|
|
36492
|
+
/***************************************************************************
|
|
36493
|
+
* *
|
|
36494
|
+
* Private methods *
|
|
36495
|
+
* *
|
|
36496
|
+
**************************************************************************/
|
|
36497
|
+
handleInitialLockState() {
|
|
36498
|
+
if (this.hasLocks()) {
|
|
36499
|
+
this.sendLockMessages();
|
|
36500
|
+
this.activateUnloadEventListener();
|
|
36501
|
+
}
|
|
36502
|
+
}
|
|
36503
|
+
sendLockMessages() {
|
|
36504
|
+
if (!this.isTopWindow()) {
|
|
36505
|
+
this.postLocksChangeEvent(this.lockMessages());
|
|
36506
|
+
}
|
|
36507
|
+
}
|
|
36508
|
+
activateUnloadEventListener() {
|
|
36509
|
+
if (this.isUnloadEventListenerActive()) {
|
|
36510
|
+
return;
|
|
36511
|
+
}
|
|
36512
|
+
this.isUnloadEventListenerActive.set(true);
|
|
36513
|
+
window.addEventListener('beforeunload', this.handleBeforeUnload);
|
|
36514
|
+
}
|
|
36515
|
+
deactivateUnloadEventListener() {
|
|
36516
|
+
if (!this.isUnloadEventListenerActive()) {
|
|
36517
|
+
return;
|
|
36518
|
+
}
|
|
36519
|
+
this.isUnloadEventListenerActive.set(false);
|
|
36520
|
+
window.removeEventListener('beforeunload', this.handleBeforeUnload);
|
|
36521
|
+
}
|
|
36522
|
+
isTopWindow() {
|
|
36523
|
+
return window.self === window.top;
|
|
36524
|
+
}
|
|
36525
|
+
/***************************************************************************
|
|
36526
|
+
* *
|
|
36527
|
+
* Iframe communication *
|
|
36528
|
+
* *
|
|
36529
|
+
**************************************************************************/
|
|
36530
|
+
postLocksChangeEvent(lockMessages) {
|
|
36531
|
+
const message = new TypedEventMessage(IframeMessages.LOCKS_CHANGE_EVENT, lockMessages);
|
|
36532
|
+
parent.postMessage(message, '*'); // `*` on any domain
|
|
36533
|
+
}
|
|
36534
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderLockManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36535
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderLockManagerService, providedIn: 'root' }); }
|
|
36536
|
+
}
|
|
36537
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderLockManagerService, decorators: [{
|
|
36538
|
+
type: Injectable,
|
|
36539
|
+
args: [{
|
|
36540
|
+
providedIn: 'root',
|
|
36541
|
+
}]
|
|
36542
|
+
}], ctorParameters: () => [] });
|
|
36543
|
+
|
|
36544
|
+
class ElderLock {
|
|
36545
|
+
constructor(message) {
|
|
36546
|
+
this.message = message;
|
|
36547
|
+
this.id = UuidUtil.weakUuid4();
|
|
36548
|
+
}
|
|
36549
|
+
}
|
|
36550
|
+
class ElderLockContext {
|
|
36551
|
+
/***************************************************************************
|
|
36552
|
+
* *
|
|
36553
|
+
* Constructor *
|
|
36554
|
+
* *
|
|
36555
|
+
**************************************************************************/
|
|
36556
|
+
constructor() {
|
|
36557
|
+
this.injector = inject(Injector);
|
|
36558
|
+
this.ngZone = inject(NgZone);
|
|
36559
|
+
this.parentLockService = inject(ElderLockContext, {
|
|
36560
|
+
skipSelf: true,
|
|
36561
|
+
optional: true,
|
|
36562
|
+
});
|
|
36563
|
+
/***************************************************************************
|
|
36564
|
+
* *
|
|
36565
|
+
* Signal state *
|
|
36566
|
+
* *
|
|
36567
|
+
**************************************************************************/
|
|
36568
|
+
this.childLockServices = signal([], ...(ngDevMode ? [{ debugName: "childLockServices" }] : []));
|
|
36569
|
+
this.ownLocks = signal([], ...(ngDevMode ? [{ debugName: "ownLocks" }] : []));
|
|
36570
|
+
/***************************************************************************
|
|
36571
|
+
* *
|
|
36572
|
+
* Computed signals *
|
|
36573
|
+
* *
|
|
36574
|
+
**************************************************************************/
|
|
36575
|
+
this.childLockMessages = computed(() => {
|
|
36576
|
+
return this.childLockServices().flatMap((service) => service.lockMessages());
|
|
36577
|
+
}, ...(ngDevMode ? [{ debugName: "childLockMessages" }] : []));
|
|
36578
|
+
this.lockMessages = computed(() => [
|
|
36579
|
+
...this.ownLocks().map((lock) => lock.message),
|
|
36580
|
+
...this.childLockMessages(),
|
|
36581
|
+
], ...(ngDevMode ? [{ debugName: "lockMessages" }] : []));
|
|
36582
|
+
this.hasOwnLocks = computed(() => this.ownLocks().length > 0, ...(ngDevMode ? [{ debugName: "hasOwnLocks" }] : []));
|
|
36583
|
+
this.hasLocks = computed(() => this.lockMessages().length > 0, ...(ngDevMode ? [{ debugName: "hasLocks" }] : []));
|
|
36584
|
+
if (this.parentLockService) {
|
|
36585
|
+
this.registerWithParent();
|
|
36586
|
+
}
|
|
36587
|
+
this.locksChanged = toObservable(this.lockMessages);
|
|
36588
|
+
setTimeout(() => {
|
|
36589
|
+
// Initialize lock manager asynchronously to deal with circular dependency
|
|
36590
|
+
this.injector.get(ElderLockManagerService);
|
|
36591
|
+
});
|
|
36592
|
+
}
|
|
36593
|
+
/***************************************************************************
|
|
36594
|
+
* *
|
|
36595
|
+
* Lifecycle methods *
|
|
36596
|
+
* *
|
|
36597
|
+
**************************************************************************/
|
|
36598
|
+
ngOnDestroy() {
|
|
36599
|
+
this.unlockAllOwnLocks();
|
|
36600
|
+
this.unlockChildLocksRecursively();
|
|
36601
|
+
if (this.parentLockService) {
|
|
36602
|
+
this.deregisterFromParent();
|
|
36603
|
+
}
|
|
36604
|
+
}
|
|
36605
|
+
/***************************************************************************
|
|
36606
|
+
* *
|
|
36607
|
+
* Public API *
|
|
36608
|
+
* *
|
|
36609
|
+
**************************************************************************/
|
|
36610
|
+
lock(message) {
|
|
36611
|
+
const lock = new ElderLock(message);
|
|
36612
|
+
this.ownLocks.set([...this.ownLocks(), lock]);
|
|
36613
|
+
return lock;
|
|
36614
|
+
}
|
|
36615
|
+
unlock(lock) {
|
|
36616
|
+
this.ownLocks.update((currentLocks) => currentLocks.filter((l) => l.id !== lock.id));
|
|
36617
|
+
}
|
|
36618
|
+
unlockAllOwnLocks() {
|
|
36619
|
+
this.ownLocks.set([]);
|
|
36620
|
+
}
|
|
36621
|
+
unlockChildLocksRecursively() {
|
|
36622
|
+
this.childLockServices().forEach((service) => {
|
|
36623
|
+
service.unlockAllOwnLocks();
|
|
36624
|
+
service.unlockChildLocksRecursively();
|
|
36625
|
+
});
|
|
36626
|
+
}
|
|
36627
|
+
/***************************************************************************
|
|
36628
|
+
* *
|
|
36629
|
+
* Private methods *
|
|
36630
|
+
* *
|
|
36631
|
+
**************************************************************************/
|
|
36632
|
+
registerWithParent() {
|
|
36633
|
+
const newChildServices = [...this.parentLockService.childLockServices(), this];
|
|
36634
|
+
this.parentLockService.childLockServices.set(newChildServices);
|
|
36635
|
+
}
|
|
36636
|
+
deregisterFromParent() {
|
|
36637
|
+
const newChildServices = this.parentLockService
|
|
36638
|
+
.childLockServices()
|
|
36639
|
+
.filter((service) => service !== this);
|
|
36640
|
+
this.parentLockService.childLockServices.set(newChildServices);
|
|
36641
|
+
}
|
|
36642
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderLockContext, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36643
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderLockContext, providedIn: 'root' }); }
|
|
36644
|
+
}
|
|
36645
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderLockContext, decorators: [{
|
|
36646
|
+
type: Injectable,
|
|
36647
|
+
args: [{
|
|
36648
|
+
providedIn: 'root',
|
|
36649
|
+
}]
|
|
36650
|
+
}], ctorParameters: () => [] });
|
|
36651
|
+
|
|
36652
|
+
class ElderLockContextDirective {
|
|
36653
|
+
constructor() {
|
|
36654
|
+
/***************************************************************************
|
|
36655
|
+
* *
|
|
36656
|
+
* Fields *
|
|
36657
|
+
* *
|
|
36658
|
+
**************************************************************************/
|
|
36659
|
+
this.lockContext = inject(ElderLockContext, { self: true });
|
|
36660
|
+
}
|
|
36661
|
+
/***************************************************************************
|
|
36662
|
+
* *
|
|
36663
|
+
* Computed signals *
|
|
36664
|
+
* *
|
|
36665
|
+
**************************************************************************/
|
|
36666
|
+
get lockMessages() {
|
|
36667
|
+
return this.lockContext.lockMessages;
|
|
36668
|
+
}
|
|
36669
|
+
get hasLocks() {
|
|
36670
|
+
return this.lockContext.hasLocks;
|
|
36671
|
+
}
|
|
36672
|
+
get hasOwnLocks() {
|
|
36673
|
+
return this.lockContext.hasOwnLocks;
|
|
36674
|
+
}
|
|
36675
|
+
get childLockMessages() {
|
|
36676
|
+
return this.lockContext.childLockMessages;
|
|
36677
|
+
}
|
|
36678
|
+
/***************************************************************************
|
|
36679
|
+
* *
|
|
36680
|
+
* Public API *
|
|
36681
|
+
* *
|
|
36682
|
+
**************************************************************************/
|
|
36683
|
+
lock(message) {
|
|
36684
|
+
return this.lockContext.lock(message);
|
|
36685
|
+
}
|
|
36686
|
+
unlockAllOwnLocks() {
|
|
36687
|
+
return this.lockContext.unlockAllOwnLocks();
|
|
36688
|
+
}
|
|
36689
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderLockContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
36690
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.1", type: ElderLockContextDirective, isStandalone: true, selector: "[elderLockContext]", providers: [ElderLockContext], ngImport: i0 }); }
|
|
36691
|
+
}
|
|
36692
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderLockContextDirective, decorators: [{
|
|
36693
|
+
type: Directive,
|
|
36694
|
+
args: [{
|
|
36695
|
+
selector: '[elderLockContext]',
|
|
36696
|
+
standalone: true,
|
|
36697
|
+
providers: [ElderLockContext],
|
|
36698
|
+
}]
|
|
36699
|
+
}] });
|
|
36700
|
+
|
|
36701
|
+
class ElderLockWarningService {
|
|
36702
|
+
constructor() {
|
|
36703
|
+
this.dialogService = inject(ElderDialogService);
|
|
36704
|
+
this.translateService = inject(TranslateService);
|
|
36705
|
+
}
|
|
36706
|
+
/***************************************************************************
|
|
36707
|
+
* *
|
|
36708
|
+
* Public API *
|
|
36709
|
+
* *
|
|
36710
|
+
**************************************************************************/
|
|
36711
|
+
displayMessages(lockMessages, options = {}) {
|
|
36712
|
+
const defaultOptions = {
|
|
36713
|
+
title: 'dialogs.confirm_ignore_locks.title',
|
|
36714
|
+
actionDescription: 'dialogs.confirm_ignore_locks.close_element',
|
|
36715
|
+
...options,
|
|
36716
|
+
};
|
|
36717
|
+
const message = 'dialogs.confirm_ignore_locks.message';
|
|
36718
|
+
const translatedLockMessages = lockMessages.map((msg) => this.translateService.instant(msg));
|
|
36719
|
+
const locksListStr = translatedLockMessages.join('; ');
|
|
36720
|
+
return this.dialogService.showConfirm({
|
|
36721
|
+
title: defaultOptions.title,
|
|
36722
|
+
message: message,
|
|
36723
|
+
yesNo: true,
|
|
36724
|
+
interpolateParams: {
|
|
36725
|
+
actionDescription: defaultOptions.actionDescription,
|
|
36726
|
+
locksList: locksListStr,
|
|
36727
|
+
},
|
|
36728
|
+
});
|
|
36729
|
+
}
|
|
36730
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderLockWarningService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36731
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderLockWarningService, providedIn: 'root' }); }
|
|
36732
|
+
}
|
|
36733
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderLockWarningService, decorators: [{
|
|
36734
|
+
type: Injectable,
|
|
36735
|
+
args: [{
|
|
36736
|
+
providedIn: 'root',
|
|
36737
|
+
}]
|
|
36738
|
+
}] });
|
|
36739
|
+
|
|
36446
36740
|
class IFrameState {
|
|
36447
36741
|
constructor(type, message = null) {
|
|
36448
36742
|
this.type = type;
|
|
@@ -36468,6 +36762,8 @@ class IframeHostComponent {
|
|
|
36468
36762
|
* *
|
|
36469
36763
|
**************************************************************************/
|
|
36470
36764
|
constructor() {
|
|
36765
|
+
this.lockContext = inject(ElderLockContextDirective).lockContext;
|
|
36766
|
+
this.lockWarningService = inject(ElderLockWarningService);
|
|
36471
36767
|
/***************************************************************************
|
|
36472
36768
|
* *
|
|
36473
36769
|
* Fields *
|
|
@@ -36491,10 +36787,11 @@ class IframeHostComponent {
|
|
|
36491
36787
|
* @param event message from child window
|
|
36492
36788
|
*/
|
|
36493
36789
|
onWindowMessage(event) {
|
|
36790
|
+
const messageOrigin = event.source === this.getIframeContentWindow() ? 'ownIframe' : 'foreign';
|
|
36494
36791
|
if (event && event.data) {
|
|
36495
36792
|
if (TypedEventMessage.isOfType(event.data)) {
|
|
36496
36793
|
this.log.debug('Received message from child:', event.data);
|
|
36497
|
-
this.handleMessageFromChild(event.data);
|
|
36794
|
+
this.handleMessageFromChild(event.data, messageOrigin);
|
|
36498
36795
|
}
|
|
36499
36796
|
}
|
|
36500
36797
|
return true;
|
|
@@ -36531,14 +36828,28 @@ class IframeHostComponent {
|
|
|
36531
36828
|
this.iframe.nativeElement.contentWindow.postMessage(msg, '*');
|
|
36532
36829
|
}
|
|
36533
36830
|
doClose(event) {
|
|
36534
|
-
this.
|
|
36831
|
+
if (this.lockContext.hasLocks()) {
|
|
36832
|
+
this.lockWarningService
|
|
36833
|
+
.displayMessages(this.lockContext.lockMessages())
|
|
36834
|
+
.subscribe((confirmed) => {
|
|
36835
|
+
if (confirmed) {
|
|
36836
|
+
this.close.emit();
|
|
36837
|
+
}
|
|
36838
|
+
});
|
|
36839
|
+
}
|
|
36840
|
+
else {
|
|
36841
|
+
this.close.emit();
|
|
36842
|
+
}
|
|
36535
36843
|
}
|
|
36536
36844
|
/***************************************************************************
|
|
36537
36845
|
* *
|
|
36538
36846
|
* Private methods *
|
|
36539
36847
|
* *
|
|
36540
36848
|
**************************************************************************/
|
|
36541
|
-
|
|
36849
|
+
getIframeContentWindow() {
|
|
36850
|
+
return this.iframe.nativeElement.contentWindow;
|
|
36851
|
+
}
|
|
36852
|
+
handleMessageFromChild(message, messageOrigin) {
|
|
36542
36853
|
this.message.next(message);
|
|
36543
36854
|
if (message.type === IframeMessages.CLOSE) {
|
|
36544
36855
|
this.close.emit(message.data);
|
|
@@ -36546,13 +36857,30 @@ class IframeHostComponent {
|
|
|
36546
36857
|
if (message.type === IframeMessages.VIEW_READY_EVENT) {
|
|
36547
36858
|
this.iframeState$.next(new IFrameState('VIEW_READY'));
|
|
36548
36859
|
}
|
|
36860
|
+
if (message.type === IframeMessages.LOCKS_CHANGE_EVENT && messageOrigin === 'ownIframe') {
|
|
36861
|
+
const postedLockMessages = message.data;
|
|
36862
|
+
this.lockContext.unlockAllOwnLocks();
|
|
36863
|
+
if (postedLockMessages?.length > 0) {
|
|
36864
|
+
for (const lockMessage of postedLockMessages) {
|
|
36865
|
+
this.lockContext.lock(lockMessage);
|
|
36866
|
+
}
|
|
36867
|
+
}
|
|
36868
|
+
}
|
|
36549
36869
|
}
|
|
36550
36870
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: IframeHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36551
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: IframeHostComponent, isStandalone: true, selector: "elder-i-frame-host", inputs: { iframeParams: "iframeParams" }, outputs: { message: "message", close: "close" }, host: { listeners: { "window:message": "onWindowMessage($event)" } }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0, template: "@if ({ state: iframeState$ | async, params: iframeParams$ | async }; as ctx) {\n <div class=\"layout-col full\">\n <!-- In Case of Error -->\n @if (ctx.state.hasError) {\n <div class=\"layout-row place-center-center flex\">\n <span>Failed to load Iframe: {{ ctx.state.message }}</span>\n </div>\n }\n <!-- IFrame -->\n @if (!ctx.state.hasError) {\n <iframe\n #iframe\n (load)=\"onIframeLoadEvent($event)\"\n (error)=\"onIframeErrorEvent($event)\"\n [src]=\"ctx.params.srcUrl | elderSafeUrl\"\n class=\"iframe flex\"\n allow=\"clipboard *;clipboard-read *;clipboard-write *;\"\n ></iframe>\n }\n <!-- Bottom Toolbar -->\n @if (!ctx.params.hideActionBar) {\n <mat-toolbar elderTheme class=\"layout-row place-between-center flex-none elder-dense-toolbar\">\n <a mat-icon-button (click)=\"doClose($event)\" class=\"elder-icon-button-sm\">\n <mat-icon>close</mat-icon>\n </a>\n <a\n mat-icon-button\n class=\"elder-icon-button-sm\"\n [href]=\"ctx.params.srcUrl | elderSafeUrl\"\n target=\"_blank\"\n >\n <mat-icon>open_in_new</mat-icon>\n </a>\n </mat-toolbar>\n }\n </div>\n}\n", styles: [".iframe{margin:0;border:0;height:100%;background-color:#fff}.elder-dense-toolbar,.elder-dense-toolbar .mat-toolbar-row{height:40px}\n"], dependencies: [{ kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: ElderThemeDirective, selector: "[elderTheme]" }, { kind: "component", type: MatIconAnchor, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ElderSafeUrlPipe, name: "elderSafeUrl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36871
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: IframeHostComponent, isStandalone: true, selector: "elder-i-frame-host", inputs: { iframeParams: "iframeParams" }, outputs: { message: "message", close: "close" }, host: { listeners: { "window:message": "onWindowMessage($event)" } }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], hostDirectives: [{ directive: ElderLockContextDirective }], ngImport: i0, template: "@if ({ state: iframeState$ | async, params: iframeParams$ | async }; as ctx) {\n <div class=\"layout-col full\">\n <!-- In Case of Error -->\n @if (ctx.state.hasError) {\n <div class=\"layout-row place-center-center flex\">\n <span>Failed to load Iframe: {{ ctx.state.message }}</span>\n </div>\n }\n <!-- IFrame -->\n @if (!ctx.state.hasError) {\n <iframe\n #iframe\n (load)=\"onIframeLoadEvent($event)\"\n (error)=\"onIframeErrorEvent($event)\"\n [src]=\"ctx.params.srcUrl | elderSafeUrl\"\n class=\"iframe flex\"\n allow=\"clipboard *;clipboard-read *;clipboard-write *;\"\n ></iframe>\n }\n <!-- Bottom Toolbar -->\n @if (!ctx.params.hideActionBar) {\n <mat-toolbar elderTheme class=\"layout-row place-between-center flex-none elder-dense-toolbar\">\n <a mat-icon-button (click)=\"doClose($event)\" class=\"elder-icon-button-sm\">\n <mat-icon>close</mat-icon>\n </a>\n <a\n mat-icon-button\n class=\"elder-icon-button-sm\"\n [href]=\"ctx.params.srcUrl | elderSafeUrl\"\n target=\"_blank\"\n >\n <mat-icon>open_in_new</mat-icon>\n </a>\n </mat-toolbar>\n }\n </div>\n}\n", styles: [".iframe{margin:0;border:0;height:100%;background-color:#fff}.elder-dense-toolbar,.elder-dense-toolbar .mat-toolbar-row{height:40px}\n"], dependencies: [{ kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: ElderThemeDirective, selector: "[elderTheme]" }, { kind: "component", type: MatIconAnchor, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ElderSafeUrlPipe, name: "elderSafeUrl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36552
36872
|
}
|
|
36553
36873
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: IframeHostComponent, decorators: [{
|
|
36554
36874
|
type: Component,
|
|
36555
|
-
args: [{ selector: 'elder-i-frame-host', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
36875
|
+
args: [{ selector: 'elder-i-frame-host', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
36876
|
+
MatToolbar,
|
|
36877
|
+
ElderThemeDirective,
|
|
36878
|
+
MatIconAnchor,
|
|
36879
|
+
MatIcon,
|
|
36880
|
+
AsyncPipe,
|
|
36881
|
+
ElderSafeUrlPipe,
|
|
36882
|
+
MatIconButton,
|
|
36883
|
+
], hostDirectives: [ElderLockContextDirective], template: "@if ({ state: iframeState$ | async, params: iframeParams$ | async }; as ctx) {\n <div class=\"layout-col full\">\n <!-- In Case of Error -->\n @if (ctx.state.hasError) {\n <div class=\"layout-row place-center-center flex\">\n <span>Failed to load Iframe: {{ ctx.state.message }}</span>\n </div>\n }\n <!-- IFrame -->\n @if (!ctx.state.hasError) {\n <iframe\n #iframe\n (load)=\"onIframeLoadEvent($event)\"\n (error)=\"onIframeErrorEvent($event)\"\n [src]=\"ctx.params.srcUrl | elderSafeUrl\"\n class=\"iframe flex\"\n allow=\"clipboard *;clipboard-read *;clipboard-write *;\"\n ></iframe>\n }\n <!-- Bottom Toolbar -->\n @if (!ctx.params.hideActionBar) {\n <mat-toolbar elderTheme class=\"layout-row place-between-center flex-none elder-dense-toolbar\">\n <a mat-icon-button (click)=\"doClose($event)\" class=\"elder-icon-button-sm\">\n <mat-icon>close</mat-icon>\n </a>\n <a\n mat-icon-button\n class=\"elder-icon-button-sm\"\n [href]=\"ctx.params.srcUrl | elderSafeUrl\"\n target=\"_blank\"\n >\n <mat-icon>open_in_new</mat-icon>\n </a>\n </mat-toolbar>\n }\n </div>\n}\n", styles: [".iframe{margin:0;border:0;height:100%;background-color:#fff}.elder-dense-toolbar,.elder-dense-toolbar .mat-toolbar-row{height:40px}\n"] }]
|
|
36556
36884
|
}], ctorParameters: () => [], propDecorators: { iframe: [{
|
|
36557
36885
|
type: ViewChild,
|
|
36558
36886
|
args: ['iframe']
|
|
@@ -36583,6 +36911,10 @@ class IframeDialogComponent {
|
|
|
36583
36911
|
**************************************************************************/
|
|
36584
36912
|
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
36585
36913
|
this.iframeParams$ = new BehaviorSubject(null);
|
|
36914
|
+
/**
|
|
36915
|
+
* iframeHost is exposed for iframe service backdrop click handling.
|
|
36916
|
+
*/
|
|
36917
|
+
this.iframeHost = viewChild(IframeHostComponent, ...(ngDevMode ? [{ debugName: "iframeHost" }] : []));
|
|
36586
36918
|
this.iframeParams$.next(data);
|
|
36587
36919
|
}
|
|
36588
36920
|
/***************************************************************************
|
|
@@ -36600,7 +36932,7 @@ class IframeDialogComponent {
|
|
|
36600
36932
|
this.dialogRef.close(data);
|
|
36601
36933
|
}
|
|
36602
36934
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: IframeDialogComponent, deps: [{ token: i1$7.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36603
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: IframeDialogComponent, isStandalone: true, selector: "elder-i-frame-dialog", ngImport: i0, template: "@if (iframeParams$ | async; as iFrameParams) {\n <div class=\"full\">\n <elder-i-frame-host class=\"full\" [iframeParams]=\"iFrameParams\" (close)=\"close($event)\">\n </elder-i-frame-host>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: IframeHostComponent, selector: "elder-i-frame-host", inputs: ["iframeParams"], outputs: ["message", "close"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36935
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: IframeDialogComponent, isStandalone: true, selector: "elder-i-frame-dialog", viewQueries: [{ propertyName: "iframeHost", first: true, predicate: IframeHostComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@if (iframeParams$ | async; as iFrameParams) {\n <div class=\"full\">\n <elder-i-frame-host class=\"full\" [iframeParams]=\"iFrameParams\" (close)=\"close($event)\">\n </elder-i-frame-host>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: IframeHostComponent, selector: "elder-i-frame-host", inputs: ["iframeParams"], outputs: ["message", "close"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36604
36936
|
}
|
|
36605
36937
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: IframeDialogComponent, decorators: [{
|
|
36606
36938
|
type: Component,
|
|
@@ -36682,33 +37014,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
36682
37014
|
}], ctorParameters: () => [{ type: i1$3.Router }, { type: i1$3.ActivatedRoute }, { type: ElderShellService }] });
|
|
36683
37015
|
|
|
36684
37016
|
class IframeService {
|
|
37017
|
+
constructor() {
|
|
37018
|
+
this.dialog = inject(MatDialog);
|
|
37019
|
+
this.dialogService = inject(ElderDialogService);
|
|
37020
|
+
this.lockWarningService = inject(ElderLockWarningService);
|
|
37021
|
+
}
|
|
36685
37022
|
static postToParent(message) {
|
|
36686
37023
|
parent.postMessage(message, '*'); // `*` on any domain
|
|
36687
37024
|
}
|
|
36688
|
-
/***************************************************************************
|
|
36689
|
-
* *
|
|
36690
|
-
* Fields *
|
|
36691
|
-
* *
|
|
36692
|
-
**************************************************************************/
|
|
36693
|
-
constructor(dialog) {
|
|
36694
|
-
this.dialog = dialog;
|
|
36695
|
-
}
|
|
36696
37025
|
/***************************************************************************
|
|
36697
37026
|
* *
|
|
36698
37027
|
* Public API *
|
|
36699
37028
|
* *
|
|
36700
37029
|
**************************************************************************/
|
|
36701
37030
|
openIframeDialog(params) {
|
|
36702
|
-
|
|
36703
|
-
.open(IframeDialogComponent, {
|
|
37031
|
+
const dialogRef = this.dialog.open(IframeDialogComponent, {
|
|
36704
37032
|
panelClass: 'no-padding-dialog',
|
|
36705
37033
|
maxWidth: '100vw',
|
|
36706
37034
|
maxHeight: '100vh',
|
|
36707
37035
|
width: params.width || '90vw',
|
|
36708
37036
|
height: params.height || '90vh',
|
|
36709
37037
|
data: params,
|
|
36710
|
-
|
|
36711
|
-
|
|
37038
|
+
disableClose: true,
|
|
37039
|
+
});
|
|
37040
|
+
dialogRef.backdropClick().subscribe(() => {
|
|
37041
|
+
const dialogComponent = dialogRef.componentInstance;
|
|
37042
|
+
const iframeHost = dialogComponent?.iframeHost();
|
|
37043
|
+
if (iframeHost?.lockContext.hasLocks()) {
|
|
37044
|
+
this.lockWarningService
|
|
37045
|
+
.displayMessages(iframeHost.lockContext.lockMessages())
|
|
37046
|
+
.subscribe((confirmed) => {
|
|
37047
|
+
if (confirmed) {
|
|
37048
|
+
dialogRef.close();
|
|
37049
|
+
}
|
|
37050
|
+
});
|
|
37051
|
+
}
|
|
37052
|
+
else {
|
|
37053
|
+
dialogRef.close();
|
|
37054
|
+
}
|
|
37055
|
+
});
|
|
37056
|
+
return dialogRef.afterClosed();
|
|
36712
37057
|
}
|
|
36713
37058
|
postCloseMessage(data) {
|
|
36714
37059
|
IframeService.postToParent(new TypedEventMessage(IframeMessages.CLOSE, data));
|
|
@@ -36719,7 +37064,7 @@ class IframeService {
|
|
|
36719
37064
|
postDataMessage(message) {
|
|
36720
37065
|
IframeService.postToParent(message);
|
|
36721
37066
|
}
|
|
36722
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: IframeService, deps: [
|
|
37067
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: IframeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36723
37068
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: IframeService, providedIn: 'root' }); }
|
|
36724
37069
|
}
|
|
36725
37070
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: IframeService, decorators: [{
|
|
@@ -36727,16 +37072,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
36727
37072
|
args: [{
|
|
36728
37073
|
providedIn: 'root',
|
|
36729
37074
|
}]
|
|
36730
|
-
}]
|
|
37075
|
+
}] });
|
|
36731
37076
|
|
|
36732
37077
|
class IframeCloseDirective {
|
|
36733
|
-
|
|
36734
|
-
|
|
36735
|
-
|
|
36736
|
-
|
|
36737
|
-
|
|
36738
|
-
constructor(iframeService) {
|
|
36739
|
-
this.iframeService = iframeService;
|
|
37078
|
+
constructor() {
|
|
37079
|
+
this.lockManagerService = inject(ElderLockManagerService);
|
|
37080
|
+
this.dialogService = inject(ElderDialogService);
|
|
37081
|
+
this.iframeService = inject(IframeService);
|
|
37082
|
+
this.lockWarningService = inject(ElderLockWarningService);
|
|
36740
37083
|
/***************************************************************************
|
|
36741
37084
|
* *
|
|
36742
37085
|
* Fields *
|
|
@@ -36744,11 +37087,35 @@ class IframeCloseDirective {
|
|
|
36744
37087
|
**************************************************************************/
|
|
36745
37088
|
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
36746
37089
|
}
|
|
37090
|
+
/***************************************************************************
|
|
37091
|
+
* *
|
|
37092
|
+
* Host listener *
|
|
37093
|
+
* *
|
|
37094
|
+
**************************************************************************/
|
|
36747
37095
|
onClick(event) {
|
|
37096
|
+
if (this.lockManagerService.hasLocks()) {
|
|
37097
|
+
this.lockWarningService
|
|
37098
|
+
.displayMessages(this.lockManagerService.lockMessages())
|
|
37099
|
+
.subscribe((confirmed) => {
|
|
37100
|
+
if (confirmed) {
|
|
37101
|
+
this.closeIframe();
|
|
37102
|
+
}
|
|
37103
|
+
});
|
|
37104
|
+
}
|
|
37105
|
+
else {
|
|
37106
|
+
this.closeIframe();
|
|
37107
|
+
}
|
|
37108
|
+
}
|
|
37109
|
+
/***************************************************************************
|
|
37110
|
+
* *
|
|
37111
|
+
* Private methods *
|
|
37112
|
+
* *
|
|
37113
|
+
**************************************************************************/
|
|
37114
|
+
closeIframe() {
|
|
36748
37115
|
this.logger.debug('Iframe result:', this.iframeResult);
|
|
36749
37116
|
this.iframeService.postCloseMessage(this.iframeResult);
|
|
36750
37117
|
}
|
|
36751
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: IframeCloseDirective, deps: [
|
|
37118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: IframeCloseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
36752
37119
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.1", type: IframeCloseDirective, isStandalone: true, selector: "[elderIframeClose]", inputs: { iframeResult: ["elderIframeClose", "iframeResult"] }, host: { listeners: { "click": "onClick($event)" } }, exportAs: ["elderIframeClose"], ngImport: i0 }); }
|
|
36753
37120
|
}
|
|
36754
37121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: IframeCloseDirective, decorators: [{
|
|
@@ -36758,7 +37125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
36758
37125
|
exportAs: 'elderIframeClose',
|
|
36759
37126
|
standalone: true,
|
|
36760
37127
|
}]
|
|
36761
|
-
}],
|
|
37128
|
+
}], propDecorators: { iframeResult: [{
|
|
36762
37129
|
type: Input,
|
|
36763
37130
|
args: ['elderIframeClose']
|
|
36764
37131
|
}], onClick: [{
|
|
@@ -37585,205 +37952,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
37585
37952
|
}]
|
|
37586
37953
|
}] });
|
|
37587
37954
|
|
|
37588
|
-
class ElderPageExitLockComponent {
|
|
37589
|
-
/***************************************************************************
|
|
37590
|
-
* *
|
|
37591
|
-
* Constructor *
|
|
37592
|
-
* *
|
|
37593
|
-
**************************************************************************/
|
|
37594
|
-
constructor() {
|
|
37595
|
-
/***************************************************************************
|
|
37596
|
-
* *
|
|
37597
|
-
* Fields *
|
|
37598
|
-
* *
|
|
37599
|
-
**************************************************************************/
|
|
37600
|
-
this.lock = input.required(...(ngDevMode ? [{ debugName: "lock" }] : []));
|
|
37601
|
-
}
|
|
37602
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderPageExitLockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37603
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.1", type: ElderPageExitLockComponent, isStandalone: true, selector: "elder-page-exit-lock", inputs: { lock: { classPropertyName: "lock", publicName: "lock", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex layout-row p-xs\">\n <div class=\"layout-col p-xs place-center-start\">\n <mat-icon>lock</mat-icon>\n </div>\n <div class=\"layout-col place-center-start\">\n <span class=\"mat-subtitle-2 noselect\">{{ lock()?.message }}</span>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37604
|
-
}
|
|
37605
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderPageExitLockComponent, decorators: [{
|
|
37606
|
-
type: Component,
|
|
37607
|
-
args: [{ selector: 'elder-page-exit-lock', imports: [MatIcon], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex layout-row p-xs\">\n <div class=\"layout-col p-xs place-center-start\">\n <mat-icon>lock</mat-icon>\n </div>\n <div class=\"layout-col place-center-start\">\n <span class=\"mat-subtitle-2 noselect\">{{ lock()?.message }}</span>\n </div>\n</div>\n" }]
|
|
37608
|
-
}], ctorParameters: () => [] });
|
|
37609
|
-
|
|
37610
|
-
class ElderPageExitLockOverviewComponent {
|
|
37611
|
-
/***************************************************************************
|
|
37612
|
-
* *
|
|
37613
|
-
* Constructor *
|
|
37614
|
-
* *
|
|
37615
|
-
**************************************************************************/
|
|
37616
|
-
constructor() {
|
|
37617
|
-
/***************************************************************************
|
|
37618
|
-
* *
|
|
37619
|
-
* Fields *
|
|
37620
|
-
* *
|
|
37621
|
-
**************************************************************************/
|
|
37622
|
-
this.locks = input.required(...(ngDevMode ? [{ debugName: "locks" }] : []));
|
|
37623
|
-
}
|
|
37624
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderPageExitLockOverviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37625
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: ElderPageExitLockOverviewComponent, isStandalone: true, selector: "elder-page-exit-lock-overview", inputs: { locks: { classPropertyName: "locks", publicName: "locks", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-card appearance=\"raised\" class=\"layout-col full scrollable\">\n <mat-card-content>\n <div>\n @for (lock of locks(); track lock.id) {\n <elder-page-exit-lock [lock]=\"lock\"> </elder-page-exit-lock>\n }\n </div>\n </mat-card-content>\n</mat-card>\n", styles: [""], dependencies: [{ kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: MatCardContent, selector: "mat-card-content" }, { kind: "component", type: ElderPageExitLockComponent, selector: "elder-page-exit-lock", inputs: ["lock"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37626
|
-
}
|
|
37627
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderPageExitLockOverviewComponent, decorators: [{
|
|
37628
|
-
type: Component,
|
|
37629
|
-
args: [{ selector: 'elder-page-exit-lock-overview', imports: [MatCard, MatCardContent, ElderPageExitLockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card appearance=\"raised\" class=\"layout-col full scrollable\">\n <mat-card-content>\n <div>\n @for (lock of locks(); track lock.id) {\n <elder-page-exit-lock [lock]=\"lock\"> </elder-page-exit-lock>\n }\n </div>\n </mat-card-content>\n</mat-card>\n" }]
|
|
37630
|
-
}], ctorParameters: () => [] });
|
|
37631
|
-
|
|
37632
|
-
class PageExitLock {
|
|
37633
|
-
constructor(message, lockService) {
|
|
37634
|
-
this.message = message;
|
|
37635
|
-
this.lockService = lockService;
|
|
37636
|
-
this.id = UuidUtil.weakUuid4();
|
|
37637
|
-
}
|
|
37638
|
-
release() {
|
|
37639
|
-
this.lockService.unlock(this);
|
|
37640
|
-
}
|
|
37641
|
-
}
|
|
37642
|
-
class PageExitGuardService {
|
|
37643
|
-
constructor(toast) {
|
|
37644
|
-
this.toast = toast;
|
|
37645
|
-
this.internal = new PageExitGuardServiceInternal(toast);
|
|
37646
|
-
}
|
|
37647
|
-
get locks$() {
|
|
37648
|
-
return this.internal.locks$;
|
|
37649
|
-
}
|
|
37650
|
-
get isPageExitBlocked$() {
|
|
37651
|
-
return this.internal.isPageExitBlocked$;
|
|
37652
|
-
}
|
|
37653
|
-
lock(message) {
|
|
37654
|
-
return this.internal.lock(message);
|
|
37655
|
-
}
|
|
37656
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: PageExitGuardService, deps: [{ token: ElderToastService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37657
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: PageExitGuardService, providedIn: 'root' }); }
|
|
37658
|
-
}
|
|
37659
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: PageExitGuardService, decorators: [{
|
|
37660
|
-
type: Injectable,
|
|
37661
|
-
args: [{
|
|
37662
|
-
providedIn: 'root',
|
|
37663
|
-
}]
|
|
37664
|
-
}], ctorParameters: () => [{ type: ElderToastService }] });
|
|
37665
|
-
/***************************************************************************
|
|
37666
|
-
* *
|
|
37667
|
-
* Internal *
|
|
37668
|
-
* *
|
|
37669
|
-
**************************************************************************/
|
|
37670
|
-
class PageExitGuardServiceInternal {
|
|
37671
|
-
/***************************************************************************
|
|
37672
|
-
* *
|
|
37673
|
-
* Properties *
|
|
37674
|
-
* *
|
|
37675
|
-
**************************************************************************/
|
|
37676
|
-
get locks$() {
|
|
37677
|
-
return this._lockMap$.map$.pipe(map((lockMap) => Array.from(lockMap.values())));
|
|
37678
|
-
}
|
|
37679
|
-
get isPageExitBlocked$() {
|
|
37680
|
-
return this._isPageExitBlocked$.asObservable();
|
|
37681
|
-
}
|
|
37682
|
-
/***************************************************************************
|
|
37683
|
-
* *
|
|
37684
|
-
* Constructor *
|
|
37685
|
-
* *
|
|
37686
|
-
**************************************************************************/
|
|
37687
|
-
constructor(toast) {
|
|
37688
|
-
this.toast = toast;
|
|
37689
|
-
this._isPageExitBlocked$ = new BehaviorSubject(false);
|
|
37690
|
-
this._lockMap$ = new ReactiveMap();
|
|
37691
|
-
this._beforeUnloadHandler = this.preventDefaultAndWarnEvent();
|
|
37692
|
-
this._lockMap$.map$.subscribe({
|
|
37693
|
-
next: (map) => {
|
|
37694
|
-
if (map.size > 0) {
|
|
37695
|
-
this.ensureListenerStarted();
|
|
37696
|
-
}
|
|
37697
|
-
else {
|
|
37698
|
-
this.ensureListenerStopped();
|
|
37699
|
-
}
|
|
37700
|
-
},
|
|
37701
|
-
});
|
|
37702
|
-
}
|
|
37703
|
-
/***************************************************************************
|
|
37704
|
-
* *
|
|
37705
|
-
* Public methods *
|
|
37706
|
-
* *
|
|
37707
|
-
**************************************************************************/
|
|
37708
|
-
lock(message) {
|
|
37709
|
-
const newLock = new PageExitLock(message, this);
|
|
37710
|
-
this._lockMap$.set(newLock.id, newLock);
|
|
37711
|
-
return this._lockMap$.get(newLock.id);
|
|
37712
|
-
}
|
|
37713
|
-
unlock(lock) {
|
|
37714
|
-
this._lockMap$.delete(lock.id);
|
|
37715
|
-
}
|
|
37716
|
-
/***************************************************************************
|
|
37717
|
-
* *
|
|
37718
|
-
* Private methods *
|
|
37719
|
-
* *
|
|
37720
|
-
**************************************************************************/
|
|
37721
|
-
/**
|
|
37722
|
-
* starts an event listener that will prevent the user from immediately closing
|
|
37723
|
-
* the tab / reloading, if it isn't already running.
|
|
37724
|
-
*
|
|
37725
|
-
* try to stop the alert service whenever you can to minimize the effect on
|
|
37726
|
-
* performance.
|
|
37727
|
-
* [more details here](https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event#usage_notes)
|
|
37728
|
-
*
|
|
37729
|
-
*/
|
|
37730
|
-
ensureListenerStarted() {
|
|
37731
|
-
if (!this._isPageExitBlocked$.getValue()) {
|
|
37732
|
-
this._isPageExitBlocked$.next(true);
|
|
37733
|
-
window.addEventListener('beforeunload', this._beforeUnloadHandler);
|
|
37734
|
-
}
|
|
37735
|
-
}
|
|
37736
|
-
/**
|
|
37737
|
-
* removes the event listener, if the listener is running.
|
|
37738
|
-
*/
|
|
37739
|
-
ensureListenerStopped() {
|
|
37740
|
-
if (this._isPageExitBlocked$.getValue()) {
|
|
37741
|
-
this._isPageExitBlocked$.next(false);
|
|
37742
|
-
window.removeEventListener('beforeunload', this._beforeUnloadHandler);
|
|
37743
|
-
}
|
|
37744
|
-
}
|
|
37745
|
-
preventDefaultAndWarnEvent() {
|
|
37746
|
-
return (event) => {
|
|
37747
|
-
const msgs = Array.from(this._lockMap$.values()).map((lock) => lock.message);
|
|
37748
|
-
this.toast.warn('[' + this._lockMap$.size + '] ' + msgs);
|
|
37749
|
-
event.preventDefault();
|
|
37750
|
-
};
|
|
37751
|
-
}
|
|
37752
|
-
}
|
|
37753
|
-
|
|
37754
|
-
class ElderPageExitLockIndicatorComponent {
|
|
37755
|
-
/***************************************************************************
|
|
37756
|
-
* *
|
|
37757
|
-
* Constructor *
|
|
37758
|
-
* *
|
|
37759
|
-
**************************************************************************/
|
|
37760
|
-
constructor(pageExitGuardService) {
|
|
37761
|
-
this.pageExitGuardService = pageExitGuardService;
|
|
37762
|
-
this.isPageExitBlocked = toSignal(this.pageExitGuardService.isPageExitBlocked$);
|
|
37763
|
-
this.locks = toSignal(this.pageExitGuardService.locks$);
|
|
37764
|
-
}
|
|
37765
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderPageExitLockIndicatorComponent, deps: [{ token: PageExitGuardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37766
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: ElderPageExitLockIndicatorComponent, isStandalone: true, selector: "elder-page-exit-lock-indicator", ngImport: i0, template: "@if (isPageExitBlocked()) {\n <button mat-icon-button [elderOverlayTrigger]=\"overlay\" type=\"button\">\n <mat-icon color=\"accent\">lock_clock</mat-icon>\n </button>\n}\n\n<elder-overlay #overlay=\"elderOverlay\" originX=\"center\" overlayX=\"center\">\n <elder-page-exit-lock-overview [locks]=\"locks()\" class=\"panel\"> </elder-page-exit-lock-overview>\n</elder-overlay>\n", styles: [".panel{width:250px;height:250px;border-radius:var(--elder-border-radius-sm);overflow:hidden;box-shadow:var(--elder-box-shadow-default)}\n"], dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ElderOverlayModule }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "component", type: ElderPageExitLockOverviewComponent, selector: "elder-page-exit-lock-overview", inputs: ["locks"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37767
|
-
}
|
|
37768
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ElderPageExitLockIndicatorComponent, decorators: [{
|
|
37769
|
-
type: Component,
|
|
37770
|
-
args: [{ selector: 'elder-page-exit-lock-indicator', imports: [MatIconButton, MatIcon, ElderOverlayModule, ElderPageExitLockOverviewComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isPageExitBlocked()) {\n <button mat-icon-button [elderOverlayTrigger]=\"overlay\" type=\"button\">\n <mat-icon color=\"accent\">lock_clock</mat-icon>\n </button>\n}\n\n<elder-overlay #overlay=\"elderOverlay\" originX=\"center\" overlayX=\"center\">\n <elder-page-exit-lock-overview [locks]=\"locks()\" class=\"panel\"> </elder-page-exit-lock-overview>\n</elder-overlay>\n", styles: [".panel{width:250px;height:250px;border-radius:var(--elder-border-radius-sm);overflow:hidden;box-shadow:var(--elder-box-shadow-default)}\n"] }]
|
|
37771
|
-
}], ctorParameters: () => [{ type: PageExitGuardService }] });
|
|
37772
|
-
|
|
37773
|
-
class PageExitGuardModule {
|
|
37774
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: PageExitGuardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
37775
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: PageExitGuardModule, imports: [CommonModule, ElderPageExitLockIndicatorComponent], exports: [ElderPageExitLockIndicatorComponent] }); }
|
|
37776
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: PageExitGuardModule, imports: [CommonModule, ElderPageExitLockIndicatorComponent] }); }
|
|
37777
|
-
}
|
|
37778
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: PageExitGuardModule, decorators: [{
|
|
37779
|
-
type: NgModule,
|
|
37780
|
-
args: [{
|
|
37781
|
-
declarations: [],
|
|
37782
|
-
imports: [CommonModule, ElderPageExitLockIndicatorComponent],
|
|
37783
|
-
exports: [ElderPageExitLockIndicatorComponent],
|
|
37784
|
-
}]
|
|
37785
|
-
}] });
|
|
37786
|
-
|
|
37787
37955
|
class ElderPaneComponent {
|
|
37788
37956
|
constructor() {
|
|
37789
37957
|
this.class = '';
|
|
@@ -38887,5 +39055,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
38887
39055
|
* Generated bundle index. Do not edit.
|
|
38888
39056
|
*/
|
|
38889
39057
|
|
|
38890
|
-
export { ActivationEventSource, ActivationModel, Arrays, AuditedEntity, AutoStartSpec, Batcher, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, CommonValidationMessageStrategy, ComparatorBuilder, CompositeSort, ConfirmDialogConfig, ContinuableListing, CountryPhoneFormatService, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, CuratedDataSource, CuratedListDataSource, CuratedPagedDataSource, Currency, CurrencyCode, CurrencyFormatUtil, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, CustomMatcherSpec, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextRange, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSelectionController, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceEntityPatch, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewActivationController, DataViewDndControllerService, DataViewDndGroupControllerService, DataViewDndModelUtil, DataViewDragEnteredEvent, DataViewDragExitedEvent, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewInteractionControllerDirective, DataViewItemDropEvent, DataViewMessage, DataViewMessageTypeValues, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DomUtil, DrawerOutletBinding, DurationBucket, DurationFormat, DurationFormatUtil, DynamicValidationMessageStrategy, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutoSelectSuggestFirstDirective, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeDirective, ElderBasicPaneLayoutComponent, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCenterCellDirective, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsIncludeExcludeDirective, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderCompositeSortComponent, ElderCompositeSortDcDirective, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderContinuatorComponent, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataActivationDirective, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewDndDirective, ElderDataViewDndGroupDirective, ElderDataViewItemDragDirective, ElderDataViewOptions, ElderDataViewOptionsProvider, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDelayedFocusDirective, ElderDeleteActiveDirective, ElderDetailDialogComponent, ElderDetailDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDropZoneComponent, ElderDurationInputComponent, ElderEntityValueAccessorUtil, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFilterChipTemplateComponent, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGridActivationDirective, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderIntervalPickerBindingDirective, ElderIntervalPickerComponent, ElderIntervalPickerToggleComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalDndSupportDirective, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMasterActivationDirective, ElderMasterDetailComponent, ElderMasterDetailModule, ElderMasterDetailService, ElderMasterDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectAllInitialDirective, ElderMultiSelectBase, ElderMultiSelectChipOptionsComponent, ElderMultiSelectChipsComponent, ElderMultiSelectChipsOptionsDirective, ElderMultiSelectFormField, ElderMultiTranslateHttpLoader, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayRef, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPageExitLockIndicatorComponent, ElderPaneActionsComponent, ElderPaneComponent, ElderPaneContentComponent, ElderPaneHeaderComponent, ElderPaneSubtitleComponent, ElderPaneTitleComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderScrollbarDirective, ElderScrollbarModule, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchIncludeExcludeDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSearchUrlDirective, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectOptionComponent, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSinglePaneWrapperComponent, ElderSingleSortComponent, ElderSingleStateCheckboxDirective, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSuggestionPanelComponent, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableDropListConnectorDirective, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableNavigationBarDirective, ElderTableProviders, ElderTableRootDirective, ElderTableSelectionCellComponent, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTileComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToggleTextInputDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitiesChangeEvent, EntityDelta, EntityIdUtil, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FallbackValidationMessageStrategy, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FocusUtil, FormFieldBaseComponent, GlobalDragDropService, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, IncludeExcludeSelectionModel, IncludeExcludeState, IncludeExcludeValue, IndexedEntities, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalFormatUtil, IsoIntervalParsePipe, IsoIntervalPipe, ItemActivationEvent, ItemActivationOptions, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleTags, LocalDataFilter, LocalListDataSource, LocalPagedDataSource, Locale, LocalisationPickerService, MasterDetailActivationEvent, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, ModifierKeyService, ModifierKeyState, MultiModelBaseComponent, NamedColorDirective, NamedColorSelectDirective, NamedColorSelectValueComponent, NextNumberUtil, ObjectFieldMatcher, ObjectPathResolver, Objects, OnlineStatus, Page, PageExitGuardModule, PageExitGuardService, PageExitLock, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, PhoneFormatService, PhonePipe, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveEventSourceState, ReactiveFetchEventSource, ReactiveFetchEventSourceService, ReactiveMap, ReactiveSSeMessage, RefreshingEntity, ResizeObserverDirective, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, RoutedTabActivationFailed, SearchInputState, SelectChipSpecUtil, SelectOptionChipSpecUtil, SelectionChangedEvent, SelectionEventSource, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, SimpleSearchInput, Sort, SortUtil, StandardToastComponent, SubBar, SuggestionProvider, TargetValue, TemplateCompositeControl, TemplatedSelectionDialogComponent, TemporalPlainDateInterval, TemporalUtil, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, ToastType, TokenChunkRequest, ToolbarHeader, Translated, TranslatedConverter, TranslatedEnumValue, TranslatedText, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UnreachableCaseError, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueChangeEvent, ValueWrapper, ViewDropModelUpdateInstruction, ViewProviders, WebLocalStorage, WebSessionStorage, WebappDomainFragmentSpec, WebappDomainSpec, WebappDomainSpecService, WebappDomainSwitcherDirective, WebappUrlFragmentSwitcherConfig, WeightPipe, alphaNumStringComparator, booleanTransformFn, buildFormIntegrationProviders, coerceInterval, coerceIntervalIsoStr, createDataOptionsProvider, createSelectionModel, elderChipColorLevels, elderChipColorStates, elderNamedColorRoles, elderNamedColorToken, elderNamedColors, existingOrNewElderTableModel, initSearchUrlService, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isLocalListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
|
|
39058
|
+
export { ActivationEventSource, ActivationModel, Arrays, AuditedEntity, AutoStartSpec, Batcher, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, CommonValidationMessageStrategy, ComparatorBuilder, CompositeSort, ConfirmDialogConfig, ContinuableListing, CountryPhoneFormatService, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, CuratedDataSource, CuratedListDataSource, CuratedPagedDataSource, Currency, CurrencyCode, CurrencyFormatUtil, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, CustomMatcherSpec, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextRange, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSelectionController, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceEntityPatch, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewActivationController, DataViewDndControllerService, DataViewDndGroupControllerService, DataViewDndModelUtil, DataViewDragEnteredEvent, DataViewDragExitedEvent, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewInteractionControllerDirective, DataViewItemDropEvent, DataViewMessage, DataViewMessageTypeValues, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DomUtil, DrawerOutletBinding, DurationBucket, DurationFormat, DurationFormatUtil, DynamicValidationMessageStrategy, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutoSelectSuggestFirstDirective, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeDirective, ElderBasicPaneLayoutComponent, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCenterCellDirective, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsIncludeExcludeDirective, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderCompositeSortComponent, ElderCompositeSortDcDirective, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderContinuatorComponent, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataActivationDirective, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewDndDirective, ElderDataViewDndGroupDirective, ElderDataViewItemDragDirective, ElderDataViewOptions, ElderDataViewOptionsProvider, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDelayedFocusDirective, ElderDeleteActiveDirective, ElderDetailDialogComponent, ElderDetailDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDropZoneComponent, ElderDurationInputComponent, ElderEntityValueAccessorUtil, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFilterChipTemplateComponent, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGridActivationDirective, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderIntervalPickerBindingDirective, ElderIntervalPickerComponent, ElderIntervalPickerToggleComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalDndSupportDirective, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderLock, ElderLockContext, ElderLockContextDirective, ElderLockManagerService, ElderLockWarningService, ElderMasterActivationDirective, ElderMasterDetailComponent, ElderMasterDetailModule, ElderMasterDetailService, ElderMasterDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectAllInitialDirective, ElderMultiSelectBase, ElderMultiSelectChipOptionsComponent, ElderMultiSelectChipsComponent, ElderMultiSelectChipsOptionsDirective, ElderMultiSelectFormField, ElderMultiTranslateHttpLoader, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayRef, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPaneActionsComponent, ElderPaneComponent, ElderPaneContentComponent, ElderPaneHeaderComponent, ElderPaneSubtitleComponent, ElderPaneTitleComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderScrollbarDirective, ElderScrollbarModule, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchIncludeExcludeDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSearchUrlDirective, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectOptionComponent, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSinglePaneWrapperComponent, ElderSingleSortComponent, ElderSingleStateCheckboxDirective, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSuggestionPanelComponent, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableDropListConnectorDirective, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableNavigationBarDirective, ElderTableProviders, ElderTableRootDirective, ElderTableSelectionCellComponent, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTileComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToggleTextInputDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitiesChangeEvent, EntityDelta, EntityIdUtil, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FallbackValidationMessageStrategy, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FocusUtil, FormFieldBaseComponent, GlobalDragDropService, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, IncludeExcludeSelectionModel, IncludeExcludeState, IncludeExcludeValue, IndexedEntities, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalFormatUtil, IsoIntervalParsePipe, IsoIntervalPipe, ItemActivationEvent, ItemActivationOptions, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleTags, LocalDataFilter, LocalListDataSource, LocalPagedDataSource, Locale, LocalisationPickerService, MasterDetailActivationEvent, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, ModifierKeyService, ModifierKeyState, MultiModelBaseComponent, NamedColorDirective, NamedColorSelectDirective, NamedColorSelectValueComponent, NextNumberUtil, ObjectFieldMatcher, ObjectPathResolver, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, PhoneFormatService, PhonePipe, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveEventSourceState, ReactiveFetchEventSource, ReactiveFetchEventSourceService, ReactiveMap, ReactiveSSeMessage, RefreshingEntity, ResizeObserverDirective, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, RoutedTabActivationFailed, SearchInputState, SelectChipSpecUtil, SelectOptionChipSpecUtil, SelectionChangedEvent, SelectionEventSource, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, SimpleSearchInput, Sort, SortUtil, StandardToastComponent, SubBar, SuggestionProvider, TargetValue, TemplateCompositeControl, TemplatedSelectionDialogComponent, TemporalPlainDateInterval, TemporalUtil, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, ToastType, TokenChunkRequest, ToolbarHeader, Translated, TranslatedConverter, TranslatedEnumValue, TranslatedText, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UnreachableCaseError, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueChangeEvent, ValueWrapper, ViewDropModelUpdateInstruction, ViewProviders, WebLocalStorage, WebSessionStorage, WebappDomainFragmentSpec, WebappDomainSpec, WebappDomainSpecService, WebappDomainSwitcherDirective, WebappUrlFragmentSwitcherConfig, WeightPipe, alphaNumStringComparator, booleanTransformFn, buildFormIntegrationProviders, coerceInterval, coerceIntervalIsoStr, createDataOptionsProvider, createSelectionModel, elderChipColorLevels, elderChipColorStates, elderNamedColorRoles, elderNamedColorToken, elderNamedColors, existingOrNewElderTableModel, initSearchUrlService, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isLocalListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
|
|
38891
39059
|
//# sourceMappingURL=elderbyte-ngx-starter.mjs.map
|