@onecx/angular-accelerator 6.0.0-rc.14 → 6.0.0-rc.16
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/onecx-angular-accelerator-testing.mjs +2 -36
- package/fesm2022/onecx-angular-accelerator-testing.mjs.map +1 -1
- package/fesm2022/onecx-angular-accelerator.mjs +13 -547
- package/fesm2022/onecx-angular-accelerator.mjs.map +1 -1
- package/index.d.ts +1 -13
- package/lib/angular-accelerator.module.d.ts +27 -30
- package/lib/components/data-table/data-table.component.d.ts +1 -3
- package/lib/components/filter-view/filter-view.component.d.ts +1 -3
- package/lib/utils/dateutils.d.ts +0 -4
- package/package.json +8 -8
- package/testing/index.d.ts +0 -1
- package/lib/components/button-dialog/button-dialog.component.d.ts +0 -47
- package/lib/components/data-loading-error/data-loading-error.component.d.ts +0 -8
- package/lib/components/portal-page/portal-page.component.d.ts +0 -19
- package/lib/injection-tokens/has-permission-checker.d.ts +0 -13
- package/lib/services/translation-cache.service.d.ts +0 -19
- package/lib/services/translation-connection.service.d.ts +0 -10
- package/lib/utils/async-translate-loader.utils.d.ts +0 -12
- package/lib/utils/caching-translate-loader.utils.d.ts +0 -16
- package/lib/utils/create-remote-component-and-mfe-translate-loader.utils.d.ts +0 -6
- package/lib/utils/create-remote-component-translate-loader.utils.d.ts +0 -5
- package/lib/utils/create-translate-loader.utils.d.ts +0 -8
- package/lib/utils/provide-connection-service.d.ts +0 -6
- package/lib/utils/translate.combined.loader.d.ts +0 -12
- package/testing/button-dialog.harness.d.ts +0 -17
- /package/lib/components/{button-dialog → dialog}/dialog-message-content/dialog-message-content.component.d.ts +0 -0
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { HAS_PERMISSION_CHECKER, SKIP_STYLE_SCOPING, getScopeIdentifier, dataStyleIdKey, dataNoPortalLayoutStylesKey, providePermissionChecker, TRANSLATION_PATH } from '@onecx/angular-utils';
|
|
2
|
-
export { AlwaysGrantPermissionChecker, HAS_PERMISSION_CHECKER } from '@onecx/angular-utils';
|
|
3
1
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { inject, ElementRef, Input, Directive, Renderer2, ViewContainerRef, TemplateRef, HostListener, EventEmitter, Output, Injectable, Injector, LOCALE_ID, Pipe, ContentChild, ViewEncapsulation, Component, ViewChild, ContentChildren, NgZone, ChangeDetectorRef, ViewChildren, QueryList, isDevMode, Type, NgModule,
|
|
2
|
+
import { inject, ElementRef, Input, Directive, Renderer2, ViewContainerRef, TemplateRef, HostListener, EventEmitter, Output, Injectable, Injector, LOCALE_ID, Pipe, ContentChild, ViewEncapsulation, Component, ViewChild, ContentChildren, NgZone, ChangeDetectorRef, ViewChildren, QueryList, isDevMode, Type, NgModule, APP_INITIALIZER } from '@angular/core';
|
|
5
3
|
import { UserService, AppStateService, ConfigurationService, CONFIG_KEY, ShellCapabilityService, Capability, AppConfigService } from '@onecx/angular-integration-interface';
|
|
4
|
+
import { HAS_PERMISSION_CHECKER, SKIP_STYLE_SCOPING, getScopeIdentifier, dataStyleIdKey, dataNoPortalLayoutStylesKey, providePermissionChecker, TRANSLATION_PATH, provideTranslationConnectionService } from '@onecx/angular-utils';
|
|
6
5
|
import { HttpClient } from '@angular/common/http';
|
|
7
6
|
import * as i3 from '@angular/forms';
|
|
8
7
|
import { FormGroupDirective, FormControlName, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
9
|
-
import { BehaviorSubject, map, filter, concat, of, from, combineLatest, startWith, debounceTime, mergeMap, first, forkJoin, shareReplay, switchMap, toArray, withLatestFrom, ReplaySubject, timestamp, distinctUntilChanged, isObservable,
|
|
10
|
-
import { SyncableTopic, getLocation, isValidDate
|
|
8
|
+
import { BehaviorSubject, map, filter, concat, of, from, combineLatest, startWith, debounceTime, mergeMap, first, forkJoin, shareReplay, switchMap, toArray, withLatestFrom, ReplaySubject, timestamp, distinctUntilChanged, isObservable, firstValueFrom, skip } from 'rxjs';
|
|
9
|
+
import { SyncableTopic, getLocation, isValidDate, getUTCDateWithoutTimezoneIssues } from '@onecx/accelerator';
|
|
11
10
|
import * as i1 from '@angular/common';
|
|
12
|
-
import { DatePipe, DecimalPipe, CurrencyPipe, formatDate, CommonModule
|
|
11
|
+
import { DatePipe, DecimalPipe, CurrencyPipe, formatDate, CommonModule } from '@angular/common';
|
|
13
12
|
import * as i2$1 from 'primeng/button';
|
|
14
13
|
import { ButtonModule } from 'primeng/button';
|
|
15
14
|
import * as i5 from 'primeng/skeleton';
|
|
@@ -64,12 +63,6 @@ import { TimelineModule } from 'primeng/timeline';
|
|
|
64
63
|
import { DynamicDialogConfig, DynamicDialogRef, DialogService } from 'primeng/dynamicdialog';
|
|
65
64
|
import { EventsTopic } from '@onecx/integration-interface';
|
|
66
65
|
import { providePrimeNG } from 'primeng/config';
|
|
67
|
-
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* This checker always returns true, basically disabling the permission system on the UI side
|
|
71
|
-
* @deprecated Please import from `@onecx/angular-utils` instead.
|
|
72
|
-
*/
|
|
73
66
|
|
|
74
67
|
class OcxContentContainerDirective {
|
|
75
68
|
constructor() {
|
|
@@ -2894,7 +2887,9 @@ class DataTableComponent extends DataSortBase {
|
|
|
2894
2887
|
.filter((filter) => filter.columnId === currentFilterColumn?.id &&
|
|
2895
2888
|
(!currentFilterColumn.filterType || currentFilterColumn.filterType === FilterType.EQUALS))
|
|
2896
2889
|
.map((filter) => filter.value);
|
|
2897
|
-
const columnValues = rows
|
|
2890
|
+
const columnValues = rows
|
|
2891
|
+
.map((row) => row[currentFilterColumn?.id])
|
|
2892
|
+
.filter((value) => value !== null && value !== undefined && value !== '');
|
|
2898
2893
|
if (currentFilterColumn.columnType === ColumnType.DATE) {
|
|
2899
2894
|
return of({
|
|
2900
2895
|
options: columnValues.map((c) => ({
|
|
@@ -2911,7 +2906,7 @@ class DataTableComponent extends DataSortBase {
|
|
|
2911
2906
|
return translateObservable.pipe(map((translatedValues) => {
|
|
2912
2907
|
return Object.values(translatedValues)
|
|
2913
2908
|
.concat(currentFilters)
|
|
2914
|
-
.filter((value, index, self) => self.indexOf(value) === index && value
|
|
2909
|
+
.filter((value, index, self) => self.indexOf(value) === index && value !== null && value !== '')
|
|
2915
2910
|
.map((filterOption) => ({
|
|
2916
2911
|
label: filterOption,
|
|
2917
2912
|
value: filterOption,
|
|
@@ -3150,7 +3145,7 @@ class DataTableComponent extends DataSortBase {
|
|
|
3150
3145
|
return true;
|
|
3151
3146
|
}
|
|
3152
3147
|
const d = new Date(value);
|
|
3153
|
-
return isValidDate
|
|
3148
|
+
return isValidDate(d);
|
|
3154
3149
|
}
|
|
3155
3150
|
getColumnTypeTemplate(templates, columnType, templateType) {
|
|
3156
3151
|
let template;
|
|
@@ -5366,32 +5361,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
5366
5361
|
type: Input
|
|
5367
5362
|
}] } });
|
|
5368
5363
|
|
|
5369
|
-
/**
|
|
5370
|
-
* Show this data not found page component if the main entity of a page could not be loaded.
|
|
5371
|
-
*/
|
|
5372
|
-
class DataLoadingErrorComponent {
|
|
5373
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: DataLoadingErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5374
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: DataLoadingErrorComponent, isStandalone: false, selector: "ocx-data-loading-error", ngImport: i0, template: `<div class="p-4">
|
|
5375
|
-
<h1>{{ 'OCX_DATA_LOADING_ERROR.TITLE' | translate }}</h1>
|
|
5376
|
-
<div style="white-space: pre-line">
|
|
5377
|
-
{{ 'OCX_DATA_LOADING_ERROR.MESSAGE' | translate }}
|
|
5378
|
-
</div>
|
|
5379
|
-
</div> `, isInline: true, dependencies: [{ kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
|
|
5380
|
-
}
|
|
5381
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: DataLoadingErrorComponent, decorators: [{
|
|
5382
|
-
type: Component,
|
|
5383
|
-
args: [{
|
|
5384
|
-
standalone: false,
|
|
5385
|
-
selector: 'ocx-data-loading-error',
|
|
5386
|
-
template: `<div class="p-4">
|
|
5387
|
-
<h1>{{ 'OCX_DATA_LOADING_ERROR.TITLE' | translate }}</h1>
|
|
5388
|
-
<div style="white-space: pre-line">
|
|
5389
|
-
{{ 'OCX_DATA_LOADING_ERROR.MESSAGE' | translate }}
|
|
5390
|
-
</div>
|
|
5391
|
-
</div> `,
|
|
5392
|
-
}]
|
|
5393
|
-
}] });
|
|
5394
|
-
|
|
5395
5364
|
class DialogMessageContentComponent {
|
|
5396
5365
|
constructor() {
|
|
5397
5366
|
this.message = 'message';
|
|
@@ -5412,245 +5381,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
5412
5381
|
type: Input
|
|
5413
5382
|
}] } });
|
|
5414
5383
|
|
|
5415
|
-
class ButtonDialogComponent {
|
|
5416
|
-
constructor() {
|
|
5417
|
-
this.dynamicDialogConfig = inject(DynamicDialogConfig);
|
|
5418
|
-
this.dynamicDialogRef = inject(DynamicDialogRef);
|
|
5419
|
-
this.defaultPrimaryButtonDetails = {
|
|
5420
|
-
key: 'OCX_BUTTON_DIALOG.CONFIRM',
|
|
5421
|
-
};
|
|
5422
|
-
this.defaultSecondaryButtonDetails = {
|
|
5423
|
-
key: 'OCX_BUTTON_DIALOG.CANCEL',
|
|
5424
|
-
};
|
|
5425
|
-
this.defaultDialogData = {
|
|
5426
|
-
component: DialogMessageContentComponent,
|
|
5427
|
-
config: {
|
|
5428
|
-
primaryButtonDetails: this.defaultPrimaryButtonDetails,
|
|
5429
|
-
secondaryButtonIncluded: true,
|
|
5430
|
-
secondaryButtonDetails: this.defaultSecondaryButtonDetails,
|
|
5431
|
-
},
|
|
5432
|
-
componentData: {},
|
|
5433
|
-
};
|
|
5434
|
-
this.config = {};
|
|
5435
|
-
this.resultEmitter = new EventEmitter();
|
|
5436
|
-
this.dialogData = this.defaultDialogData;
|
|
5437
|
-
this.customButtonsDisabled$ = new BehaviorSubject({});
|
|
5438
|
-
this.leftCustomButtons = [];
|
|
5439
|
-
this.rightCustomButtons = [];
|
|
5440
|
-
}
|
|
5441
|
-
set secondaryButton(content) {
|
|
5442
|
-
if (content) {
|
|
5443
|
-
this._secondaryButton = content;
|
|
5444
|
-
}
|
|
5445
|
-
}
|
|
5446
|
-
get secondaryButton() {
|
|
5447
|
-
return this._secondaryButton;
|
|
5448
|
-
}
|
|
5449
|
-
ngAfterViewInit() {
|
|
5450
|
-
if (this.dialogData.config.autoFocusButton === 'primary' || !this.dialogData.config.autoFocusButton) {
|
|
5451
|
-
this.primaryButton.element.nativeElement.focus();
|
|
5452
|
-
}
|
|
5453
|
-
else if (this.dialogData.config.autoFocusButton === 'secondary') {
|
|
5454
|
-
this.secondaryButton.element.nativeElement.focus();
|
|
5455
|
-
}
|
|
5456
|
-
else if (this.dialogData.config.autoFocusButton === 'custom') {
|
|
5457
|
-
const button = this.customButtons.find((customButton) => {
|
|
5458
|
-
return customButton.nativeElement.id === this.dialogData.config.autoFocusButtonCustomId;
|
|
5459
|
-
});
|
|
5460
|
-
setTimeout(() => {
|
|
5461
|
-
button?.nativeElement.focus();
|
|
5462
|
-
});
|
|
5463
|
-
}
|
|
5464
|
-
}
|
|
5465
|
-
ngOnInit() {
|
|
5466
|
-
this.loadComponent();
|
|
5467
|
-
}
|
|
5468
|
-
primaryButtonAction() {
|
|
5469
|
-
return this.buttonAction('primary');
|
|
5470
|
-
}
|
|
5471
|
-
secondaryButtonAction() {
|
|
5472
|
-
return this.buttonAction('secondary');
|
|
5473
|
-
}
|
|
5474
|
-
customButtonAction(button) {
|
|
5475
|
-
return this.buttonAction(`custom`, button.id);
|
|
5476
|
-
}
|
|
5477
|
-
resolveCustomButtonDisabled(customButtonsDisabled, buttonId) {
|
|
5478
|
-
return buttonId in customButtonsDisabled ? customButtonsDisabled[buttonId] : true;
|
|
5479
|
-
}
|
|
5480
|
-
loadComponent() {
|
|
5481
|
-
if (this.dynamicDialogConfig.data) {
|
|
5482
|
-
this.setUpDialogDataForDynamicConfig();
|
|
5483
|
-
}
|
|
5484
|
-
else {
|
|
5485
|
-
this.setUpDialogDataForInput();
|
|
5486
|
-
}
|
|
5487
|
-
}
|
|
5488
|
-
setUpDialogDataForDynamicConfig() {
|
|
5489
|
-
const dynamicConfigData = this.dynamicDialogConfig.data;
|
|
5490
|
-
if (dynamicConfigData.config) {
|
|
5491
|
-
const dialogConfig = dynamicConfigData.config;
|
|
5492
|
-
if (!!dialogConfig.primaryButtonDetails && !!dialogConfig.primaryButtonDetails.key) {
|
|
5493
|
-
this.dialogData.config.primaryButtonDetails = dialogConfig.primaryButtonDetails;
|
|
5494
|
-
}
|
|
5495
|
-
if (dialogConfig.secondaryButtonIncluded !== undefined) {
|
|
5496
|
-
this.dialogData.config.secondaryButtonIncluded = dialogConfig.secondaryButtonIncluded;
|
|
5497
|
-
}
|
|
5498
|
-
if (!!dialogConfig.secondaryButtonDetails && !!dialogConfig.secondaryButtonDetails.key) {
|
|
5499
|
-
this.dialogData.config.secondaryButtonDetails = dialogConfig.secondaryButtonDetails;
|
|
5500
|
-
}
|
|
5501
|
-
this.dialogData.config.autoFocusButton = dialogConfig.autoFocusButton;
|
|
5502
|
-
this.dialogData.config.autoFocusButtonCustomId = dialogConfig.autoFocusButtonCustomId;
|
|
5503
|
-
}
|
|
5504
|
-
if (dynamicConfigData.component) {
|
|
5505
|
-
this.dialogData.component = dynamicConfigData.component;
|
|
5506
|
-
}
|
|
5507
|
-
if (dynamicConfigData.componentData) {
|
|
5508
|
-
this.dialogData.componentData = dynamicConfigData.componentData;
|
|
5509
|
-
}
|
|
5510
|
-
this.setupCustomButtons(dynamicConfigData);
|
|
5511
|
-
const viewContainerRef = this.dialogHost;
|
|
5512
|
-
viewContainerRef.clear();
|
|
5513
|
-
if (this.dialogData.component) {
|
|
5514
|
-
const componentRef = viewContainerRef.createComponent(this.dialogData.component);
|
|
5515
|
-
if (this.isDialogPrimaryButtonDisabledImplemented(componentRef.instance)) {
|
|
5516
|
-
this.primaryButtonDisabled$ = componentRef.instance.primaryButtonEnabled.pipe(startWith(false), map((isEnabled) => !isEnabled));
|
|
5517
|
-
}
|
|
5518
|
-
if (this.isDialogSecondaryButtonDisabledImplemented(componentRef.instance)) {
|
|
5519
|
-
this.secondaryButtonDisabled$ = componentRef.instance.secondaryButtonEnabled.pipe(startWith(false), map((isEnabled) => !isEnabled));
|
|
5520
|
-
}
|
|
5521
|
-
if (this.isDialogCustomButtonDisabledImplemented(componentRef.instance)) {
|
|
5522
|
-
const initCustomButtons = {};
|
|
5523
|
-
this.rightCustomButtons.concat(this.leftCustomButtons).map((button) => {
|
|
5524
|
-
initCustomButtons[button.id] = true;
|
|
5525
|
-
});
|
|
5526
|
-
this.customButtonsDisabled$.next(initCustomButtons);
|
|
5527
|
-
componentRef.instance.customButtonEnabled
|
|
5528
|
-
.pipe(withLatestFrom(this.customButtonsDisabled$), map(([buttonEnabled, customButtonsDisabled]) => {
|
|
5529
|
-
if (customButtonsDisabled[buttonEnabled.id] !== !buttonEnabled.enabled) {
|
|
5530
|
-
customButtonsDisabled[buttonEnabled.id] = !buttonEnabled.enabled;
|
|
5531
|
-
}
|
|
5532
|
-
return customButtonsDisabled;
|
|
5533
|
-
}))
|
|
5534
|
-
.subscribe(this.customButtonsDisabled$);
|
|
5535
|
-
}
|
|
5536
|
-
//populate container
|
|
5537
|
-
Object.keys(this.dialogData.componentData).forEach((k) => {
|
|
5538
|
-
componentRef.setInput(k, this.dialogData.componentData[k]);
|
|
5539
|
-
});
|
|
5540
|
-
this.componentRef = componentRef;
|
|
5541
|
-
}
|
|
5542
|
-
}
|
|
5543
|
-
setUpDialogDataForInput() {
|
|
5544
|
-
this.dialogData.component = undefined;
|
|
5545
|
-
this.dialogData.componentData = undefined;
|
|
5546
|
-
if (this.config) {
|
|
5547
|
-
if (!!this.config.primaryButtonDetails && !!this.config.primaryButtonDetails.key) {
|
|
5548
|
-
this.dialogData.config.primaryButtonDetails = this.config.primaryButtonDetails;
|
|
5549
|
-
}
|
|
5550
|
-
if (this.config.secondaryButtonIncluded) {
|
|
5551
|
-
this.dialogData.config.secondaryButtonIncluded = this.config.secondaryButtonIncluded;
|
|
5552
|
-
}
|
|
5553
|
-
if (!!this.config.secondaryButtonDetails && !!this.config.secondaryButtonDetails.key) {
|
|
5554
|
-
this.dialogData.config.secondaryButtonDetails = this.config.secondaryButtonDetails;
|
|
5555
|
-
}
|
|
5556
|
-
}
|
|
5557
|
-
this.dialogData.config.customButtons = this.config.customButtons;
|
|
5558
|
-
this.setupCustomButtons(this.dialogData);
|
|
5559
|
-
}
|
|
5560
|
-
buttonAction(resultButtonClickedName, buttonId) {
|
|
5561
|
-
if (!this.componentRef) {
|
|
5562
|
-
this.resultEmitter.emit(resultButtonClickedName);
|
|
5563
|
-
return;
|
|
5564
|
-
}
|
|
5565
|
-
const state = {
|
|
5566
|
-
button: resultButtonClickedName,
|
|
5567
|
-
result: undefined,
|
|
5568
|
-
id: buttonId,
|
|
5569
|
-
};
|
|
5570
|
-
this.resolveButtonClick(state);
|
|
5571
|
-
}
|
|
5572
|
-
setupCustomButtons(dialogData) {
|
|
5573
|
-
this.leftCustomButtons = dialogData.config.customButtons?.filter((button) => button.alignment === 'left') ?? [];
|
|
5574
|
-
this.rightCustomButtons = dialogData.config.customButtons?.filter((button) => button.alignment === 'right') ?? [];
|
|
5575
|
-
}
|
|
5576
|
-
resolveButtonClick(state) {
|
|
5577
|
-
const component = this.componentRef.instance;
|
|
5578
|
-
const hasDialogResult = this.isDialogResultImplemented(component);
|
|
5579
|
-
if (hasDialogResult) {
|
|
5580
|
-
state.result = component.dialogResult;
|
|
5581
|
-
}
|
|
5582
|
-
const closeResult = state;
|
|
5583
|
-
// check if component implements DialogButtonClicked
|
|
5584
|
-
if (this.isDialogButtonClickedImplemented(component)) {
|
|
5585
|
-
const buttonResult = component.ocxDialogButtonClicked(state);
|
|
5586
|
-
// If undefined or void is returned, close dialog and return result
|
|
5587
|
-
if (buttonResult === undefined) {
|
|
5588
|
-
if (hasDialogResult) {
|
|
5589
|
-
closeResult.result = component.dialogResult;
|
|
5590
|
-
}
|
|
5591
|
-
return this.dynamicDialogRef.close(closeResult);
|
|
5592
|
-
}
|
|
5593
|
-
this.toObservable(buttonResult).subscribe((result) => {
|
|
5594
|
-
if (result === true) {
|
|
5595
|
-
if (hasDialogResult) {
|
|
5596
|
-
closeResult.result = component.dialogResult;
|
|
5597
|
-
}
|
|
5598
|
-
this.dynamicDialogRef.close(closeResult);
|
|
5599
|
-
}
|
|
5600
|
-
});
|
|
5601
|
-
}
|
|
5602
|
-
else {
|
|
5603
|
-
return this.dynamicDialogRef.close(closeResult);
|
|
5604
|
-
}
|
|
5605
|
-
}
|
|
5606
|
-
toObservable(ocxDialogButtonClickedResult) {
|
|
5607
|
-
if (ocxDialogButtonClickedResult === undefined) {
|
|
5608
|
-
return of(true);
|
|
5609
|
-
}
|
|
5610
|
-
if (isObservable(ocxDialogButtonClickedResult)) {
|
|
5611
|
-
return ocxDialogButtonClickedResult;
|
|
5612
|
-
}
|
|
5613
|
-
return from(Promise.resolve(ocxDialogButtonClickedResult));
|
|
5614
|
-
}
|
|
5615
|
-
isDialogResultImplemented(component) {
|
|
5616
|
-
return 'dialogResult' in component;
|
|
5617
|
-
}
|
|
5618
|
-
isDialogButtonClickedImplemented(component) {
|
|
5619
|
-
return typeof component.ocxDialogButtonClicked === 'function';
|
|
5620
|
-
}
|
|
5621
|
-
isDialogPrimaryButtonDisabledImplemented(component) {
|
|
5622
|
-
return 'primaryButtonEnabled' in component;
|
|
5623
|
-
}
|
|
5624
|
-
isDialogSecondaryButtonDisabledImplemented(component) {
|
|
5625
|
-
return 'secondaryButtonEnabled' in component;
|
|
5626
|
-
}
|
|
5627
|
-
isDialogCustomButtonDisabledImplemented(component) {
|
|
5628
|
-
return 'customButtonEnabled' in component;
|
|
5629
|
-
}
|
|
5630
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ButtonDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5631
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.11", type: ButtonDialogComponent, isStandalone: false, selector: "ocx-button-dialog", inputs: { config: "config" }, outputs: { resultEmitter: "resultEmitter" }, viewQueries: [{ propertyName: "dialogHost", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "primaryButton", first: true, predicate: ["primaryButton"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "secondaryButton", first: true, predicate: ["secondaryButton"], descendants: true, read: ViewContainerRef }, { propertyName: "customButtons", predicate: ["customButton"], descendants: true }], ngImport: i0, template: "<div>\n <div class=\"buttonDialogScrollableContent\">\n <ng-container #container></ng-container>\n <ng-content></ng-content>\n </div>\n <div class=\"w-full flex-row justify-content-end flex flex-wrap gap-2\">\n @for (button of leftCustomButtons; track button; let i = $index) {\n <div [ngStyle]=\"{'margin-right': (i === leftCustomButtons.length - 1) ? 'auto' : 0}\">\n <ng-container *ngTemplateOutlet=\"customButtonTemplate; context: {button: button}\"> </ng-container>\n </div>\n }\n @for (button of rightCustomButtons; track button) {\n <div>\n <ng-container *ngTemplateOutlet=\"customButtonTemplate; context: {button: button}\"> </ng-container>\n </div>\n }\n <div>\n @if (dialogData.config.secondaryButtonIncluded) {\n <button\n #secondaryButton\n id=\"{{dialogData.config.secondaryButtonDetails?.id ?? 'buttonDialogSecondaryButton'}}\"\n pButton\n [icon]=\"dialogData.config.secondaryButtonDetails!.icon !== undefined ? dialogData.config.secondaryButtonDetails!.icon : ''\"\n (click)=\"secondaryButtonAction()\"\n [label]=\"dialogData.config.secondaryButtonDetails!.key | translate:dialogData.config.secondaryButtonDetails?.parameters\"\n [disabled]=\"secondaryButtonDisabled$ | async\"\n [pTooltip]=\"dialogData.config.secondaryButtonDetails!.tooltipKey ? (dialogData.config.secondaryButtonDetails!.tooltipKey | translate) : null\"\n [tooltipPosition]=\"dialogData.config.secondaryButtonDetails?.tooltipPosition ?? ''\"\n [attr.aria-label]=\"dialogData.config.secondaryButtonDetails!.key | translate:dialogData.config.secondaryButtonDetails?.parameters\"\n ></button>\n }\n </div>\n <div>\n <button\n #primaryButton\n id=\"{{dialogData.config.primaryButtonDetails?.id ?? 'buttonDialogPrimaryButton'}}\"\n pButton\n [icon]=\"dialogData.config.primaryButtonDetails!.icon !== undefined ? dialogData.config.primaryButtonDetails!.icon : ''\"\n (click)=\"primaryButtonAction()\"\n [label]=\"dialogData.config.primaryButtonDetails!.key | translate:dialogData.config.primaryButtonDetails?.parameters\"\n [disabled]=\"primaryButtonDisabled$ | async\"\n [pTooltip]=\"dialogData.config.primaryButtonDetails!.tooltipKey ? (dialogData.config.primaryButtonDetails!.tooltipKey | translate) : null\"\n [tooltipPosition]=\"dialogData.config.primaryButtonDetails?.tooltipPosition ?? ''\"\n [attr.aria-label]=\"dialogData.config.primaryButtonDetails!.key | translate:dialogData.config.primaryButtonDetails?.parameters\"\n ></button>\n </div>\n </div>\n</div>\n\n<ng-template #customButtonTemplate let-button=\"button\">\n <button\n #customButton\n id=\"{{button.id}}\"\n pButton\n [icon]=\"button.icon !== undefined ? button.icon : ''\"\n (click)=\"customButtonAction(button)\"\n [label]=\"button.key | translate:button.parameters\"\n [disabled]=\"resolveCustomButtonDisabled((customButtonsDisabled$ | async) ?? {}, button.id)\"\n [pTooltip]=\"button.tooltipKey ? (button.tooltipKey | translate) : null\"\n [tooltipPosition]=\"button.tooltipPosition ?? ''\"\n [attr.aria-label]=\"button.key | translate:button.parameters\"\n ></button>\n</ng-template>\n", styles: [".buttonDialogScrollableContent{overflow:auto;max-height:500px;margin-bottom:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: i4$1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
|
|
5632
|
-
}
|
|
5633
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ButtonDialogComponent, decorators: [{
|
|
5634
|
-
type: Component,
|
|
5635
|
-
args: [{ standalone: false, selector: 'ocx-button-dialog', template: "<div>\n <div class=\"buttonDialogScrollableContent\">\n <ng-container #container></ng-container>\n <ng-content></ng-content>\n </div>\n <div class=\"w-full flex-row justify-content-end flex flex-wrap gap-2\">\n @for (button of leftCustomButtons; track button; let i = $index) {\n <div [ngStyle]=\"{'margin-right': (i === leftCustomButtons.length - 1) ? 'auto' : 0}\">\n <ng-container *ngTemplateOutlet=\"customButtonTemplate; context: {button: button}\"> </ng-container>\n </div>\n }\n @for (button of rightCustomButtons; track button) {\n <div>\n <ng-container *ngTemplateOutlet=\"customButtonTemplate; context: {button: button}\"> </ng-container>\n </div>\n }\n <div>\n @if (dialogData.config.secondaryButtonIncluded) {\n <button\n #secondaryButton\n id=\"{{dialogData.config.secondaryButtonDetails?.id ?? 'buttonDialogSecondaryButton'}}\"\n pButton\n [icon]=\"dialogData.config.secondaryButtonDetails!.icon !== undefined ? dialogData.config.secondaryButtonDetails!.icon : ''\"\n (click)=\"secondaryButtonAction()\"\n [label]=\"dialogData.config.secondaryButtonDetails!.key | translate:dialogData.config.secondaryButtonDetails?.parameters\"\n [disabled]=\"secondaryButtonDisabled$ | async\"\n [pTooltip]=\"dialogData.config.secondaryButtonDetails!.tooltipKey ? (dialogData.config.secondaryButtonDetails!.tooltipKey | translate) : null\"\n [tooltipPosition]=\"dialogData.config.secondaryButtonDetails?.tooltipPosition ?? ''\"\n [attr.aria-label]=\"dialogData.config.secondaryButtonDetails!.key | translate:dialogData.config.secondaryButtonDetails?.parameters\"\n ></button>\n }\n </div>\n <div>\n <button\n #primaryButton\n id=\"{{dialogData.config.primaryButtonDetails?.id ?? 'buttonDialogPrimaryButton'}}\"\n pButton\n [icon]=\"dialogData.config.primaryButtonDetails!.icon !== undefined ? dialogData.config.primaryButtonDetails!.icon : ''\"\n (click)=\"primaryButtonAction()\"\n [label]=\"dialogData.config.primaryButtonDetails!.key | translate:dialogData.config.primaryButtonDetails?.parameters\"\n [disabled]=\"primaryButtonDisabled$ | async\"\n [pTooltip]=\"dialogData.config.primaryButtonDetails!.tooltipKey ? (dialogData.config.primaryButtonDetails!.tooltipKey | translate) : null\"\n [tooltipPosition]=\"dialogData.config.primaryButtonDetails?.tooltipPosition ?? ''\"\n [attr.aria-label]=\"dialogData.config.primaryButtonDetails!.key | translate:dialogData.config.primaryButtonDetails?.parameters\"\n ></button>\n </div>\n </div>\n</div>\n\n<ng-template #customButtonTemplate let-button=\"button\">\n <button\n #customButton\n id=\"{{button.id}}\"\n pButton\n [icon]=\"button.icon !== undefined ? button.icon : ''\"\n (click)=\"customButtonAction(button)\"\n [label]=\"button.key | translate:button.parameters\"\n [disabled]=\"resolveCustomButtonDisabled((customButtonsDisabled$ | async) ?? {}, button.id)\"\n [pTooltip]=\"button.tooltipKey ? (button.tooltipKey | translate) : null\"\n [tooltipPosition]=\"button.tooltipPosition ?? ''\"\n [attr.aria-label]=\"button.key | translate:button.parameters\"\n ></button>\n</ng-template>\n", styles: [".buttonDialogScrollableContent{overflow:auto;max-height:500px;margin-bottom:20px}\n"] }]
|
|
5636
|
-
}], propDecorators: { config: [{
|
|
5637
|
-
type: Input
|
|
5638
|
-
}], resultEmitter: [{
|
|
5639
|
-
type: Output
|
|
5640
|
-
}], dialogHost: [{
|
|
5641
|
-
type: ViewChild,
|
|
5642
|
-
args: ['container', { static: true, read: ViewContainerRef }]
|
|
5643
|
-
}], primaryButton: [{
|
|
5644
|
-
type: ViewChild,
|
|
5645
|
-
args: ['primaryButton', { static: true, read: ViewContainerRef }]
|
|
5646
|
-
}], secondaryButton: [{
|
|
5647
|
-
type: ViewChild,
|
|
5648
|
-
args: ['secondaryButton', { static: false, read: ViewContainerRef }]
|
|
5649
|
-
}], customButtons: [{
|
|
5650
|
-
type: ViewChildren,
|
|
5651
|
-
args: ['customButton']
|
|
5652
|
-
}] } });
|
|
5653
|
-
|
|
5654
5384
|
class DialogContentComponent {
|
|
5655
5385
|
constructor() {
|
|
5656
5386
|
this.dynamicDialogConfig = inject(DynamicDialogConfig);
|
|
@@ -5956,65 +5686,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
5956
5686
|
type: Output
|
|
5957
5687
|
}] } });
|
|
5958
5688
|
|
|
5959
|
-
class PortalPageComponent {
|
|
5960
|
-
constructor() {
|
|
5961
|
-
this.appState = inject(AppStateService);
|
|
5962
|
-
this.userService = inject(UserService);
|
|
5963
|
-
this.hasPermissionChecker = inject(HAS_PERMISSION_CHECKER, { optional: true });
|
|
5964
|
-
this.permission = '';
|
|
5965
|
-
this.helpArticleId = '';
|
|
5966
|
-
this.pageName = '';
|
|
5967
|
-
this.applicationId = '';
|
|
5968
|
-
this.collapsed = false;
|
|
5969
|
-
}
|
|
5970
|
-
hasAccess() {
|
|
5971
|
-
if (this.cachedHasPermissionChecker$) {
|
|
5972
|
-
return this.cachedHasPermissionChecker$;
|
|
5973
|
-
}
|
|
5974
|
-
if (this.cachedUserService$) {
|
|
5975
|
-
return this.cachedUserService$;
|
|
5976
|
-
}
|
|
5977
|
-
if (this.hasPermissionChecker) {
|
|
5978
|
-
const hasPermissionChecker$ = this.permission
|
|
5979
|
-
? from(this.hasPermissionChecker.hasPermission(this.permission))
|
|
5980
|
-
: from(Promise.resolve(true));
|
|
5981
|
-
this.cachedHasPermissionChecker$ = hasPermissionChecker$.pipe(shareReplay(1));
|
|
5982
|
-
return this.cachedHasPermissionChecker$;
|
|
5983
|
-
}
|
|
5984
|
-
const userServiceHasPermission$ = this.permission
|
|
5985
|
-
? from(this.userService.hasPermission(this.permission))
|
|
5986
|
-
: from(Promise.resolve(true));
|
|
5987
|
-
this.cachedUserService$ = userServiceHasPermission$.pipe(shareReplay(1));
|
|
5988
|
-
return this.cachedUserService$;
|
|
5989
|
-
}
|
|
5990
|
-
ngOnInit() {
|
|
5991
|
-
if (!this.helpArticleId) {
|
|
5992
|
-
console.warn(`ocx-portal-page on url ${location.pathname} does not have 'helpArticleId' set. Set to some unique string in order to support help management feature.`);
|
|
5993
|
-
}
|
|
5994
|
-
this.appState.currentPage$.publish({
|
|
5995
|
-
path: document.location.pathname,
|
|
5996
|
-
helpArticleId: this.helpArticleId,
|
|
5997
|
-
permission: this.permission,
|
|
5998
|
-
pageName: this.pageName,
|
|
5999
|
-
applicationId: this.applicationId,
|
|
6000
|
-
});
|
|
6001
|
-
}
|
|
6002
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: PortalPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6003
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.11", type: PortalPageComponent, isStandalone: false, selector: "ocx-portal-page", inputs: { permission: "permission", helpArticleId: "helpArticleId", pageName: "pageName", applicationId: "applicationId" }, ngImport: i0, template: "<div class=\"content-wrapper\">\n @if (hasAccess() | async) {\n <ng-content></ng-content>\n } @else {\n <h3>{{'OCX_PORTAL_PAGE.UNAUTHORIZED_TITLE' | translate}}</h3>\n <p>\n {{'OCX_PORTAL_PAGE.UNAUTHORIZED_MESSAGE' | translate}}\n <span>{{'OCX_PORTAL_PAGE.MISSING_PERMISSION' | translate : {permission: permission} }}</span>\n </p>\n }\n</div>\n", styles: [":host{display:block;padding:var(--page-padding, 1rem)}@media (max-width: var(--mobile-break-point)){:host{padding:var(--page-padding-lg, 1rem);padding-top:var(--page-padding, 1rem)}}.content-wrapper{width:100%}\n"], dependencies: [{ kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
|
|
6004
|
-
}
|
|
6005
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: PortalPageComponent, decorators: [{
|
|
6006
|
-
type: Component,
|
|
6007
|
-
args: [{ standalone: false, selector: 'ocx-portal-page', template: "<div class=\"content-wrapper\">\n @if (hasAccess() | async) {\n <ng-content></ng-content>\n } @else {\n <h3>{{'OCX_PORTAL_PAGE.UNAUTHORIZED_TITLE' | translate}}</h3>\n <p>\n {{'OCX_PORTAL_PAGE.UNAUTHORIZED_MESSAGE' | translate}}\n <span>{{'OCX_PORTAL_PAGE.MISSING_PERMISSION' | translate : {permission: permission} }}</span>\n </p>\n }\n</div>\n", styles: [":host{display:block;padding:var(--page-padding, 1rem)}@media (max-width: var(--mobile-break-point)){:host{padding:var(--page-padding-lg, 1rem);padding-top:var(--page-padding, 1rem)}}.content-wrapper{width:100%}\n"] }]
|
|
6008
|
-
}], propDecorators: { permission: [{
|
|
6009
|
-
type: Input
|
|
6010
|
-
}], helpArticleId: [{
|
|
6011
|
-
type: Input
|
|
6012
|
-
}], pageName: [{
|
|
6013
|
-
type: Input
|
|
6014
|
-
}], applicationId: [{
|
|
6015
|
-
type: Input
|
|
6016
|
-
}] } });
|
|
6017
|
-
|
|
6018
5689
|
class GlobalErrorComponent {
|
|
6019
5690
|
constructor() {
|
|
6020
5691
|
this.router = inject(Router);
|
|
@@ -6038,62 +5709,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
6038
5709
|
type: Input
|
|
6039
5710
|
}] } });
|
|
6040
5711
|
|
|
6041
|
-
class TranslationConnectionService {
|
|
6042
|
-
constructor() {
|
|
6043
|
-
const userService = inject(UserService);
|
|
6044
|
-
const translateService = inject(TranslateService);
|
|
6045
|
-
this.languageSub = userService.lang$.subscribe((lang) => translateService.use(lang));
|
|
6046
|
-
}
|
|
6047
|
-
ngOnDestroy() {
|
|
6048
|
-
this.languageSub.unsubscribe();
|
|
6049
|
-
}
|
|
6050
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: TranslationConnectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6051
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: TranslationConnectionService }); }
|
|
6052
|
-
}
|
|
6053
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: TranslationConnectionService, decorators: [{
|
|
6054
|
-
type: Injectable
|
|
6055
|
-
}], ctorParameters: () => [] });
|
|
6056
|
-
|
|
6057
|
-
// This topic is defined here and not in integration-interface, because
|
|
6058
|
-
// it is not used as framework independent integration but for improving
|
|
6059
|
-
// angular specific things
|
|
6060
|
-
class TranslationCacheTopic extends SyncableTopic {
|
|
6061
|
-
constructor() {
|
|
6062
|
-
super('translationCache', 2);
|
|
6063
|
-
}
|
|
6064
|
-
}
|
|
6065
|
-
/**
|
|
6066
|
-
* @deprecated Please import from `@onecx/angular-utils` instead.
|
|
6067
|
-
*/
|
|
6068
|
-
class TranslationCacheService {
|
|
6069
|
-
constructor() {
|
|
6070
|
-
this.translationTopic$ = new TranslationCacheTopic();
|
|
6071
|
-
window['onecxTranslations'] ??= {};
|
|
6072
|
-
}
|
|
6073
|
-
ngOnDestroy() {
|
|
6074
|
-
this.translationTopic$.destroy();
|
|
6075
|
-
}
|
|
6076
|
-
getTranslationFile(url, cacheMissFunction) {
|
|
6077
|
-
if (window['onecxTranslations'][url]) {
|
|
6078
|
-
return of(window['onecxTranslations'][url]);
|
|
6079
|
-
}
|
|
6080
|
-
if (window['onecxTranslations'][url] === null) {
|
|
6081
|
-
return this.translationTopic$.pipe(filter((messageUrl) => messageUrl === url), map(() => window['onecxTranslations'][url]), first());
|
|
6082
|
-
}
|
|
6083
|
-
window['onecxTranslations'][url] = null;
|
|
6084
|
-
return cacheMissFunction().pipe(tap((t) => {
|
|
6085
|
-
window['onecxTranslations'][url] = t;
|
|
6086
|
-
this.translationTopic$.publish(url);
|
|
6087
|
-
}), map(() => window['onecxTranslations'][url]), first());
|
|
6088
|
-
}
|
|
6089
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: TranslationCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6090
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: TranslationCacheService, providedIn: 'root' }); }
|
|
6091
|
-
}
|
|
6092
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: TranslationCacheService, decorators: [{
|
|
6093
|
-
type: Injectable,
|
|
6094
|
-
args: [{ providedIn: 'root' }]
|
|
6095
|
-
}], ctorParameters: () => [] });
|
|
6096
|
-
|
|
6097
5712
|
class PortalDialogService {
|
|
6098
5713
|
constructor() {
|
|
6099
5714
|
this.dialogService = inject(DialogService);
|
|
@@ -6311,12 +5926,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
6311
5926
|
providedIn: 'root',
|
|
6312
5927
|
}]
|
|
6313
5928
|
}] });
|
|
6314
|
-
/**
|
|
6315
|
-
* @deprecated Will be removed. Please use isValidDate() from @onecx/accelerator
|
|
6316
|
-
*/
|
|
6317
|
-
function isValidDate(value) {
|
|
6318
|
-
return value instanceof Date && !isNaN(value);
|
|
6319
|
-
}
|
|
6320
5929
|
|
|
6321
5930
|
class ExportDataService {
|
|
6322
5931
|
constructor() {
|
|
@@ -6618,19 +6227,6 @@ class DynamicLocaleId {
|
|
|
6618
6227
|
}
|
|
6619
6228
|
}
|
|
6620
6229
|
|
|
6621
|
-
function provideTranslationConnectionService() {
|
|
6622
|
-
return [
|
|
6623
|
-
{
|
|
6624
|
-
provide: ENVIRONMENT_INITIALIZER,
|
|
6625
|
-
multi: true,
|
|
6626
|
-
useFactory() {
|
|
6627
|
-
return () => inject(TranslationConnectionService);
|
|
6628
|
-
},
|
|
6629
|
-
},
|
|
6630
|
-
TranslationConnectionService,
|
|
6631
|
-
];
|
|
6632
|
-
}
|
|
6633
|
-
|
|
6634
6230
|
class AngularAcceleratorMissingTranslationHandler {
|
|
6635
6231
|
handle(params) {
|
|
6636
6232
|
console.log(`Missing translation for ${params.key}`, params);
|
|
@@ -6658,7 +6254,6 @@ class AngularAcceleratorModule {
|
|
|
6658
6254
|
SearchHeaderComponent,
|
|
6659
6255
|
DiagramComponent,
|
|
6660
6256
|
GroupByCountDiagramComponent,
|
|
6661
|
-
DataLoadingErrorComponent,
|
|
6662
6257
|
OcxContentComponent,
|
|
6663
6258
|
OcxContentContainerComponent,
|
|
6664
6259
|
IfPermissionDirective,
|
|
@@ -6672,11 +6267,9 @@ class AngularAcceleratorModule {
|
|
|
6672
6267
|
OcxContentDirective,
|
|
6673
6268
|
OcxContentContainerDirective,
|
|
6674
6269
|
GlobalErrorComponent,
|
|
6675
|
-
PortalPageComponent,
|
|
6676
6270
|
LoadingIndicatorComponent,
|
|
6677
6271
|
LoadingIndicatorDirective,
|
|
6678
6272
|
BasicDirective,
|
|
6679
|
-
ButtonDialogComponent,
|
|
6680
6273
|
DialogFooterComponent,
|
|
6681
6274
|
DialogContentComponent,
|
|
6682
6275
|
DialogInlineComponent,
|
|
@@ -6699,7 +6292,6 @@ class AngularAcceleratorModule {
|
|
|
6699
6292
|
SearchHeaderComponent,
|
|
6700
6293
|
DiagramComponent,
|
|
6701
6294
|
GroupByCountDiagramComponent,
|
|
6702
|
-
DataLoadingErrorComponent,
|
|
6703
6295
|
OcxContentComponent,
|
|
6704
6296
|
OcxContentContainerComponent,
|
|
6705
6297
|
IfPermissionDirective,
|
|
@@ -6713,11 +6305,9 @@ class AngularAcceleratorModule {
|
|
|
6713
6305
|
OcxContentDirective,
|
|
6714
6306
|
OcxContentContainerDirective,
|
|
6715
6307
|
GlobalErrorComponent,
|
|
6716
|
-
PortalPageComponent,
|
|
6717
6308
|
LoadingIndicatorComponent,
|
|
6718
6309
|
LoadingIndicatorDirective,
|
|
6719
6310
|
BasicDirective,
|
|
6720
|
-
ButtonDialogComponent,
|
|
6721
6311
|
DialogFooterComponent,
|
|
6722
6312
|
DialogContentComponent,
|
|
6723
6313
|
DialogInlineComponent,
|
|
@@ -6782,7 +6372,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
6782
6372
|
SearchHeaderComponent,
|
|
6783
6373
|
DiagramComponent,
|
|
6784
6374
|
GroupByCountDiagramComponent,
|
|
6785
|
-
DataLoadingErrorComponent,
|
|
6786
6375
|
OcxContentComponent,
|
|
6787
6376
|
OcxContentContainerComponent,
|
|
6788
6377
|
IfPermissionDirective,
|
|
@@ -6796,11 +6385,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
6796
6385
|
OcxContentDirective,
|
|
6797
6386
|
OcxContentContainerDirective,
|
|
6798
6387
|
GlobalErrorComponent,
|
|
6799
|
-
PortalPageComponent,
|
|
6800
6388
|
LoadingIndicatorComponent,
|
|
6801
6389
|
LoadingIndicatorDirective,
|
|
6802
6390
|
BasicDirective,
|
|
6803
|
-
ButtonDialogComponent,
|
|
6804
6391
|
DialogFooterComponent,
|
|
6805
6392
|
DialogContentComponent,
|
|
6806
6393
|
DialogInlineComponent,
|
|
@@ -6846,7 +6433,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
6846
6433
|
SearchHeaderComponent,
|
|
6847
6434
|
DiagramComponent,
|
|
6848
6435
|
GroupByCountDiagramComponent,
|
|
6849
|
-
DataLoadingErrorComponent,
|
|
6850
6436
|
OcxContentComponent,
|
|
6851
6437
|
OcxContentContainerComponent,
|
|
6852
6438
|
IfPermissionDirective,
|
|
@@ -6860,11 +6446,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
6860
6446
|
OcxContentDirective,
|
|
6861
6447
|
OcxContentContainerDirective,
|
|
6862
6448
|
GlobalErrorComponent,
|
|
6863
|
-
PortalPageComponent,
|
|
6864
6449
|
LoadingIndicatorComponent,
|
|
6865
6450
|
LoadingIndicatorDirective,
|
|
6866
6451
|
BasicDirective,
|
|
6867
|
-
ButtonDialogComponent,
|
|
6868
6452
|
DialogFooterComponent,
|
|
6869
6453
|
DialogContentComponent,
|
|
6870
6454
|
DialogInlineComponent,
|
|
@@ -6880,37 +6464,6 @@ const atLeastOneFieldFilledValidator = (form) => {
|
|
|
6880
6464
|
return null;
|
|
6881
6465
|
};
|
|
6882
6466
|
|
|
6883
|
-
/**
|
|
6884
|
-
* @deprecated Please import from `@onecx/angular-utils` instead.
|
|
6885
|
-
*/
|
|
6886
|
-
class AsyncTranslateLoader {
|
|
6887
|
-
static { this.lastTimerId = 0; }
|
|
6888
|
-
constructor(translateLoader$) {
|
|
6889
|
-
this.translateLoader$ = translateLoader$;
|
|
6890
|
-
this.timerId = AsyncTranslateLoader.lastTimerId++;
|
|
6891
|
-
}
|
|
6892
|
-
getTranslation(lang) {
|
|
6893
|
-
return this.translateLoader$.pipe(tap(() => console.time('AsyncTranslateLoader_' + this.timerId)), defaultIfEmpty(undefined), first(), mergeMap((translateLoader) => translateLoader?.getTranslation(lang) ?? of({})), tap(() => console.timeEnd('AsyncTranslateLoader_' + this.timerId)));
|
|
6894
|
-
}
|
|
6895
|
-
}
|
|
6896
|
-
|
|
6897
|
-
/**
|
|
6898
|
-
* @deprecated Please import from `@onecx/angular-utils` instead.
|
|
6899
|
-
*/
|
|
6900
|
-
class CachingTranslateLoader {
|
|
6901
|
-
constructor(translationCache, http, prefix, suffix) {
|
|
6902
|
-
this.translationCache = translationCache;
|
|
6903
|
-
this.http = http;
|
|
6904
|
-
this.prefix = prefix;
|
|
6905
|
-
this.suffix = suffix;
|
|
6906
|
-
this.translateLoader = new TranslateHttpLoader(this.http, this.prefix, this.suffix);
|
|
6907
|
-
}
|
|
6908
|
-
getTranslation(lang) {
|
|
6909
|
-
const url = `${this.prefix}${lang}${this.suffix}`;
|
|
6910
|
-
return this.translationCache.getTranslationFile(url, () => this.translateLoader.getTranslation(lang));
|
|
6911
|
-
}
|
|
6912
|
-
}
|
|
6913
|
-
|
|
6914
6467
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
6915
6468
|
class DataOperationStrategy {
|
|
6916
6469
|
endsWith(column, value, target) {
|
|
@@ -6992,94 +6545,6 @@ class DataOperationStrategy {
|
|
|
6992
6545
|
}
|
|
6993
6546
|
}
|
|
6994
6547
|
|
|
6995
|
-
/**
|
|
6996
|
-
* @deprecated Please import from `@onecx/angular-utils` instead.
|
|
6997
|
-
*/
|
|
6998
|
-
class TranslateCombinedLoader {
|
|
6999
|
-
constructor(...loaders) {
|
|
7000
|
-
this._loaders = loaders;
|
|
7001
|
-
}
|
|
7002
|
-
getTranslation(lang) {
|
|
7003
|
-
return forkJoin(this._loaders.map((l) => l.getTranslation(lang).pipe(catchError(err => {
|
|
7004
|
-
console.error('Failed to load translation file', l, err);
|
|
7005
|
-
return of({});
|
|
7006
|
-
})))).pipe(map((allTranslations) => {
|
|
7007
|
-
let result = {};
|
|
7008
|
-
allTranslations.forEach((translations) => {
|
|
7009
|
-
result = this.mergeDeep(result, translations);
|
|
7010
|
-
});
|
|
7011
|
-
return result;
|
|
7012
|
-
}));
|
|
7013
|
-
}
|
|
7014
|
-
isObject(item) {
|
|
7015
|
-
return item && typeof item === 'object' && !Array.isArray(item);
|
|
7016
|
-
}
|
|
7017
|
-
mergeDeep(target, source) {
|
|
7018
|
-
const output = Object.assign({}, target);
|
|
7019
|
-
if (this.isObject(target) && this.isObject(source)) {
|
|
7020
|
-
Object.keys(source).forEach((key) => {
|
|
7021
|
-
if (this.isObject(source[key])) {
|
|
7022
|
-
if (!(key in target))
|
|
7023
|
-
Object.assign(output, { [key]: source[key] });
|
|
7024
|
-
else
|
|
7025
|
-
output[key] = this.mergeDeep(target[key], source[key]);
|
|
7026
|
-
}
|
|
7027
|
-
else {
|
|
7028
|
-
Object.assign(output, { [key]: source[key] });
|
|
7029
|
-
}
|
|
7030
|
-
});
|
|
7031
|
-
}
|
|
7032
|
-
return output;
|
|
7033
|
-
}
|
|
7034
|
-
}
|
|
7035
|
-
|
|
7036
|
-
let lastTranslateLoaderTimerId$1 = 0;
|
|
7037
|
-
/**
|
|
7038
|
-
* @deprecated Please import from `@onecx/angular-utils` instead.
|
|
7039
|
-
*/
|
|
7040
|
-
function createTranslateLoader(http, appStateService, translationCacheService) {
|
|
7041
|
-
const ts = translationCacheService ?? inject(TranslationCacheService);
|
|
7042
|
-
const timerId = lastTranslateLoaderTimerId$1++;
|
|
7043
|
-
console.time('createTranslateLoader_' + timerId);
|
|
7044
|
-
return new AsyncTranslateLoader(combineLatest([appStateService.currentMfe$.asObservable(), appStateService.globalLoading$.asObservable()]).pipe(filter(([, isLoading]) => !isLoading), map(([currentMfe]) => {
|
|
7045
|
-
return new TranslateCombinedLoader(
|
|
7046
|
-
// translations of shell or of app in standalone mode
|
|
7047
|
-
new CachingTranslateLoader(ts, http, `./assets/i18n/`, '.json'),
|
|
7048
|
-
// translations of portal-integration-angular of app
|
|
7049
|
-
new CachingTranslateLoader(ts, http, Location.joinWithSlash(currentMfe.remoteBaseUrl, `onecx-portal-lib/assets/i18n/`), '.json'),
|
|
7050
|
-
// translations of portal-integration-angular of shell
|
|
7051
|
-
new CachingTranslateLoader(ts, http, `./onecx-portal-lib/assets/i18n/`, '.json'),
|
|
7052
|
-
// Primelocale Translations
|
|
7053
|
-
new CachingTranslateLoader(ts, http, Location.joinWithSlash(currentMfe.remoteBaseUrl, `onecx-portal-lib/assets/i18n/primeng/`), '.json'),
|
|
7054
|
-
// translations of the app
|
|
7055
|
-
new CachingTranslateLoader(ts, http, Location.joinWithSlash(currentMfe.remoteBaseUrl, `assets/i18n/`), '.json'));
|
|
7056
|
-
}), tap(() => console.timeEnd('createTranslateLoader_' + timerId))));
|
|
7057
|
-
}
|
|
7058
|
-
|
|
7059
|
-
let lastTranslateLoaderTimerId = 0;
|
|
7060
|
-
function createRemoteComponentTranslateLoader(http, baseUrlReplaySubject$, translationCacheService) {
|
|
7061
|
-
const ts = translationCacheService ?? inject(TranslationCacheService);
|
|
7062
|
-
const timerId = lastTranslateLoaderTimerId++;
|
|
7063
|
-
console.time('createRemoteComponentTranslateLoader_' + timerId);
|
|
7064
|
-
return new AsyncTranslateLoader(baseUrlReplaySubject$.pipe(map((baseUrl) => {
|
|
7065
|
-
return new TranslateCombinedLoader(
|
|
7066
|
-
// translations of shell or of app in standalone mode
|
|
7067
|
-
new CachingTranslateLoader(ts, http, `./assets/i18n/`, '.json'),
|
|
7068
|
-
// translations of portal-integration-angular of app
|
|
7069
|
-
new CachingTranslateLoader(ts, http, Location.joinWithSlash(baseUrl, `onecx-portal-lib/assets/i18n/`), '.json'),
|
|
7070
|
-
// translations of portal-integration-angular of shell
|
|
7071
|
-
new CachingTranslateLoader(ts, http, `./onecx-portal-lib/assets/i18n/`, '.json'),
|
|
7072
|
-
// translations of the app
|
|
7073
|
-
new CachingTranslateLoader(ts, http, Location.joinWithSlash(baseUrl, `assets/i18n/`), '.json'));
|
|
7074
|
-
}), tap(() => console.timeEnd('createRemoteComponentTranslateLoader_' + timerId))));
|
|
7075
|
-
}
|
|
7076
|
-
|
|
7077
|
-
function createRemoteComponentAndMfeTranslateLoader(httpClient, baseUrl, translationCacheService, appStateService) {
|
|
7078
|
-
return new AsyncTranslateLoader(appStateService.currentMfe$.pipe(map((currentMfe) => {
|
|
7079
|
-
return new TranslateCombinedLoader(createRemoteComponentTranslateLoader(httpClient, baseUrl, translationCacheService), new CachingTranslateLoader(translationCacheService, httpClient, Location.joinWithSlash(currentMfe.remoteBaseUrl, 'assets/i18n/'), '.json'));
|
|
7080
|
-
})));
|
|
7081
|
-
}
|
|
7082
|
-
|
|
7083
6548
|
function enumToDropdownOptions(translateService, enumType, translationKeyPrefix) {
|
|
7084
6549
|
return translateService.get(Object.values(enumType).map((v) => translationKeyPrefix + v)).pipe(map((translations) => Object.values(enumType).map((v) => ({
|
|
7085
6550
|
label: translations[translationKeyPrefix + v],
|
|
@@ -7104,7 +6569,7 @@ function buildSearchCriteria(formRawValue, datePickers, { removeNullValues = fal
|
|
|
7104
6569
|
if (value == null && removeNullValues) {
|
|
7105
6570
|
return acc;
|
|
7106
6571
|
}
|
|
7107
|
-
if (isValidDate
|
|
6572
|
+
if (isValidDate(value) && !_hasShowTime(datePickers, key)) {
|
|
7108
6573
|
value = getUTCDateWithoutTimezoneIssues(value);
|
|
7109
6574
|
}
|
|
7110
6575
|
return {
|
|
@@ -7149,10 +6614,11 @@ class ImageLogoUrlUtils {
|
|
|
7149
6614
|
}
|
|
7150
6615
|
|
|
7151
6616
|
// injection tokens + related utilities
|
|
6617
|
+
// directives
|
|
7152
6618
|
|
|
7153
6619
|
/**
|
|
7154
6620
|
* Generated bundle index. Do not edit.
|
|
7155
6621
|
*/
|
|
7156
6622
|
|
|
7157
|
-
export { AdvancedDirective, AngularAcceleratorMissingTranslationHandler, AngularAcceleratorModule, AngularAcceleratorPrimeNgModule,
|
|
6623
|
+
export { AdvancedDirective, AngularAcceleratorMissingTranslationHandler, AngularAcceleratorModule, AngularAcceleratorPrimeNgModule, BasicDirective, BreadcrumbService, ColorUtils, ColumnGroupSelectionComponent, ColumnType, CustomGroupColumnSelectorComponent, DataLayoutSelectionComponent, DataListGridComponent, DataListGridSortingComponent, DataOperationStrategy, DataTableComponent, DataViewComponent, DateUtils, DiagramComponent, DialogContentComponent, DialogFooterComponent, DialogInlineComponent, DialogMessageContentComponent, DynamicPipe, ExportDataService, FilterType, FilterViewComponent, GlobalErrorComponent, GroupByCountDiagramComponent, IfBreakpointDirective, IfPermissionDirective, ImageLogoUrlUtils, InteractiveDataViewComponent, LifecycleComponent, LoadingIndicatorComponent, LoadingIndicatorDirective, ObjectUtils, OcxContentComponent, OcxContentContainerComponent, OcxContentContainerDirective, OcxContentDirective, OcxTimeAgoPipe, PageHeaderComponent, PortalDialogService, RelativeDatePipe, SearchHeaderComponent, SrcDirective, TemplateDirective, TemplateType, TooltipOnOverflowDirective, atLeastOneFieldFilledValidator, buildSearchCriteria, enumToDropdownOptions, findEntryWithKeyword, findTemplate, flattenObject, limit, providePortalDialogService, removeKeyword, searchPrefixWithSpecialChars };
|
|
7158
6624
|
//# sourceMappingURL=onecx-angular-accelerator.mjs.map
|