@quadrel-enterprise-ui/framework 20.15.0 → 20.15.1
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.
|
@@ -35,6 +35,8 @@ import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
|
35
35
|
import * as i1$1 from '@ngrx/store';
|
|
36
36
|
import { createAction, props, createReducer, on, createSelector, createFeatureSelector, Store, StoreModule } from '@ngrx/store';
|
|
37
37
|
import { diff } from 'deep-object-diff';
|
|
38
|
+
import * as i1$2 from '@angular/cdk/scrolling';
|
|
39
|
+
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
38
40
|
import isObject from 'lodash/isObject';
|
|
39
41
|
import omit from 'lodash/omit';
|
|
40
42
|
import { Directionality } from '@angular/cdk/bidi';
|
|
@@ -973,6 +975,8 @@ class QdButtonAdditionalInfoComponent {
|
|
|
973
975
|
return 'warningHexFilled';
|
|
974
976
|
case 'info':
|
|
975
977
|
return 'exclamationCircle';
|
|
978
|
+
default:
|
|
979
|
+
return '';
|
|
976
980
|
}
|
|
977
981
|
}
|
|
978
982
|
get infoType() {
|
|
@@ -2076,8 +2080,6 @@ class QdMockPopoverOnClickDirective {
|
|
|
2076
2080
|
closed = new EventEmitter();
|
|
2077
2081
|
_open = false;
|
|
2078
2082
|
_embeddedView;
|
|
2079
|
-
ngOnInit() { }
|
|
2080
|
-
ngOnDestroy() { }
|
|
2081
2083
|
show(event) {
|
|
2082
2084
|
if (this.qdPopoverStopPropagation)
|
|
2083
2085
|
event.stopPropagation();
|
|
@@ -7437,6 +7439,9 @@ const OVERLAY_WIDTH = 280;
|
|
|
7437
7439
|
const UNSUBSCRIBE_IMMEDIATELY = true;
|
|
7438
7440
|
const THRESHOLD = 1;
|
|
7439
7441
|
/**
|
|
7442
|
+
* @deprecated Will be removed in v21. This directive is no longer used inside
|
|
7443
|
+
* the framework. Use `QdTooltipOnClickDirective` (`[qdTooltipOnClick]`) instead.
|
|
7444
|
+
*
|
|
7440
7445
|
* QdTooltipAtIntersectionDirective provides a tooltip. This will be triggered if the content is intersected.
|
|
7441
7446
|
*
|
|
7442
7447
|
* * Selector: [qdTooltipAtIntersection]
|
|
@@ -7496,7 +7501,8 @@ class QdTooltipAtIntersectionDirective {
|
|
|
7496
7501
|
positionStrategy: this._positionBuilder
|
|
7497
7502
|
.flexibleConnectedTo(this._host)
|
|
7498
7503
|
.withPositions([{ originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' }]),
|
|
7499
|
-
width: convertPxToRem(OVERLAY_WIDTH)
|
|
7504
|
+
width: convertPxToRem(OVERLAY_WIDTH),
|
|
7505
|
+
scrollStrategy: this._overlay.scrollStrategies.reposition()
|
|
7500
7506
|
});
|
|
7501
7507
|
}
|
|
7502
7508
|
subscribeShow() {
|
|
@@ -7562,7 +7568,10 @@ class QdTooltipOnClickDirective {
|
|
|
7562
7568
|
.withFlexibleDimensions(false)
|
|
7563
7569
|
.withPush(false)
|
|
7564
7570
|
.withPositions(TOOLTIP_POSITIONS);
|
|
7565
|
-
this._overlayRef = this.overlay.create({
|
|
7571
|
+
this._overlayRef = this.overlay.create({
|
|
7572
|
+
positionStrategy,
|
|
7573
|
+
scrollStrategy: this.overlay.scrollStrategies.reposition()
|
|
7574
|
+
});
|
|
7566
7575
|
const tooltipRef = this._overlayRef.attach(new ComponentPortal(QdTooltipComponent));
|
|
7567
7576
|
tooltipRef.instance.content = this.getContent();
|
|
7568
7577
|
}
|
|
@@ -8177,6 +8186,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
8177
8186
|
}] } });
|
|
8178
8187
|
|
|
8179
8188
|
// @ts-strict-ignore
|
|
8189
|
+
/**
|
|
8190
|
+
* @deprecated Will be removed in v21. This directive is no longer used inside
|
|
8191
|
+
* the framework. Use `QdPopoverOnClickDirective` (`[qdPopoverOnClick]`) instead.
|
|
8192
|
+
*/
|
|
8180
8193
|
class QdPopoverOnHoverDirective {
|
|
8181
8194
|
hostRef = inject(ElementRef);
|
|
8182
8195
|
overlayPositionBuilder = inject(OverlayPositionBuilder);
|
|
@@ -8203,7 +8216,12 @@ class QdPopoverOnHoverDirective {
|
|
|
8203
8216
|
overlayY: 'top'
|
|
8204
8217
|
}
|
|
8205
8218
|
]);
|
|
8206
|
-
this.overlayRef = this.overlay.create({
|
|
8219
|
+
this.overlayRef = this.overlay.create({
|
|
8220
|
+
positionStrategy,
|
|
8221
|
+
width: this.qdPopoverWidth,
|
|
8222
|
+
disposeOnNavigation: true,
|
|
8223
|
+
scrollStrategy: this.overlay.scrollStrategies.reposition()
|
|
8224
|
+
});
|
|
8207
8225
|
}
|
|
8208
8226
|
ngOnDestroy() {
|
|
8209
8227
|
this.close();
|
|
@@ -11477,7 +11495,7 @@ class QdInputComponent {
|
|
|
11477
11495
|
}
|
|
11478
11496
|
get maxLength() {
|
|
11479
11497
|
if (!(this.control instanceof QdFormControl))
|
|
11480
|
-
return;
|
|
11498
|
+
return undefined;
|
|
11481
11499
|
return this.control.getMaxLengthOrUndefined();
|
|
11482
11500
|
}
|
|
11483
11501
|
get valueAsList() {
|
|
@@ -11682,8 +11700,10 @@ class QdInputComponent {
|
|
|
11682
11700
|
if (!this.control)
|
|
11683
11701
|
return;
|
|
11684
11702
|
const modelValue = this.control.value;
|
|
11685
|
-
if (modelValue == null)
|
|
11686
|
-
|
|
11703
|
+
if (modelValue == null) {
|
|
11704
|
+
this._value = getValueWithUnit(modelValue, this.config);
|
|
11705
|
+
return;
|
|
11706
|
+
}
|
|
11687
11707
|
const normalized = getValueWithUnit(modelValue, this.config);
|
|
11688
11708
|
const target = this.hasUnits ? normalized : normalized.value;
|
|
11689
11709
|
if (!isEqual(modelValue, target))
|
|
@@ -15730,7 +15750,7 @@ class QdTextareaComponent {
|
|
|
15730
15750
|
}
|
|
15731
15751
|
get maxLength() {
|
|
15732
15752
|
if (!(this.control instanceof QdFormControl))
|
|
15733
|
-
return;
|
|
15753
|
+
return undefined;
|
|
15734
15754
|
return this.control.getMaxLengthOrUndefined();
|
|
15735
15755
|
}
|
|
15736
15756
|
ngOnInit() {
|
|
@@ -26034,7 +26054,7 @@ class QdSectionToolbarComponent {
|
|
|
26034
26054
|
toolbarComponents;
|
|
26035
26055
|
get searchConfigData() {
|
|
26036
26056
|
if (this.config.search === false)
|
|
26037
|
-
return;
|
|
26057
|
+
return undefined;
|
|
26038
26058
|
return this.config.search;
|
|
26039
26059
|
}
|
|
26040
26060
|
get filterData() {
|
|
@@ -27470,11 +27490,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
27470
27490
|
class QdPageControlPanelComponent {
|
|
27471
27491
|
config;
|
|
27472
27492
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageControlPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27473
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: QdPageControlPanelComponent, isStandalone: false, selector: "qd-page-control-panel", inputs: { config: "config" }, ngImport: i0, template: "<header>\n {{ config.title.i18n | translate }}\n</header>\n\n<main>\n <ng-content select=\"qd-text-section\"></ng-content>\n <ng-content select=\"qd-panel-section\"></ng-content>\n <ng-content select=\"qd-section\"></ng-content>\n</main>\n", styles: ["qd-page-control-panel{position:relative;display:flex;height:100%;flex-direction:column;background:#fff}qd-page-control-panel header{padding:.75rem 1rem .5rem;border-bottom:.125rem solid rgb(213,213,213);color:#171717;font-size:.875rem;font-weight:700;line-height:1.25rem}qd-page-control-panel main{flex-grow:99;overflow-y:auto}qd-page-control-panel qd-panel-section:last-child{margin-bottom:.75rem}qd-page-control-panel qd-section{margin:0 1rem}qd-page-control-panel qd-section:first-child{margin-top:1rem}qd-page-control-panel qd-section:last-child{margin-bottom:1rem}\n"], dependencies: [{ kind: "pipe", type: i3.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
27493
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: QdPageControlPanelComponent, isStandalone: false, selector: "qd-page-control-panel", inputs: { config: "config" }, ngImport: i0, template: "<header>\n {{ config.title.i18n | translate }}\n</header>\n\n<main cdkScrollable>\n <ng-content select=\"qd-text-section\"></ng-content>\n <ng-content select=\"qd-panel-section\"></ng-content>\n <ng-content select=\"qd-section\"></ng-content>\n</main>\n", styles: ["qd-page-control-panel{position:relative;display:flex;height:100%;flex-direction:column;background:#fff}qd-page-control-panel header{padding:.75rem 1rem .5rem;border-bottom:.125rem solid rgb(213,213,213);color:#171717;font-size:.875rem;font-weight:700;line-height:1.25rem}qd-page-control-panel main{flex-grow:99;overflow-y:auto}qd-page-control-panel qd-panel-section:last-child{margin-bottom:.75rem}qd-page-control-panel qd-section{margin:0 1rem}qd-page-control-panel qd-section:first-child{margin-top:1rem}qd-page-control-panel qd-section:last-child{margin-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: i1$2.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
27474
27494
|
}
|
|
27475
27495
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageControlPanelComponent, decorators: [{
|
|
27476
27496
|
type: Component,
|
|
27477
|
-
args: [{ selector: 'qd-page-control-panel', encapsulation: ViewEncapsulation.None, standalone: false, template: "<header>\n {{ config.title.i18n | translate }}\n</header>\n\n<main>\n <ng-content select=\"qd-text-section\"></ng-content>\n <ng-content select=\"qd-panel-section\"></ng-content>\n <ng-content select=\"qd-section\"></ng-content>\n</main>\n", styles: ["qd-page-control-panel{position:relative;display:flex;height:100%;flex-direction:column;background:#fff}qd-page-control-panel header{padding:.75rem 1rem .5rem;border-bottom:.125rem solid rgb(213,213,213);color:#171717;font-size:.875rem;font-weight:700;line-height:1.25rem}qd-page-control-panel main{flex-grow:99;overflow-y:auto}qd-page-control-panel qd-panel-section:last-child{margin-bottom:.75rem}qd-page-control-panel qd-section{margin:0 1rem}qd-page-control-panel qd-section:first-child{margin-top:1rem}qd-page-control-panel qd-section:last-child{margin-bottom:1rem}\n"] }]
|
|
27497
|
+
args: [{ selector: 'qd-page-control-panel', encapsulation: ViewEncapsulation.None, standalone: false, template: "<header>\n {{ config.title.i18n | translate }}\n</header>\n\n<main cdkScrollable>\n <ng-content select=\"qd-text-section\"></ng-content>\n <ng-content select=\"qd-panel-section\"></ng-content>\n <ng-content select=\"qd-section\"></ng-content>\n</main>\n", styles: ["qd-page-control-panel{position:relative;display:flex;height:100%;flex-direction:column;background:#fff}qd-page-control-panel header{padding:.75rem 1rem .5rem;border-bottom:.125rem solid rgb(213,213,213);color:#171717;font-size:.875rem;font-weight:700;line-height:1.25rem}qd-page-control-panel main{flex-grow:99;overflow-y:auto}qd-page-control-panel qd-panel-section:last-child{margin-bottom:.75rem}qd-page-control-panel qd-section{margin:0 1rem}qd-page-control-panel qd-section:first-child{margin-top:1rem}qd-page-control-panel qd-section:last-child{margin-bottom:1rem}\n"] }]
|
|
27478
27498
|
}], propDecorators: { config: [{
|
|
27479
27499
|
type: Input,
|
|
27480
27500
|
args: [{ required: true }]
|
|
@@ -28596,6 +28616,7 @@ class QdPageObjectHeaderComponent {
|
|
|
28596
28616
|
get headerFacets() {
|
|
28597
28617
|
if (this.hasHeaderFacets(this.config))
|
|
28598
28618
|
return this.config.headerFacets;
|
|
28619
|
+
return undefined;
|
|
28599
28620
|
}
|
|
28600
28621
|
get isInspectAndViewMode$() {
|
|
28601
28622
|
return this.pageStoreService.isViewonly$.pipe(takeUntil(this._destroyed$), map(isView => this.config.pageType === 'inspect' && isView));
|
|
@@ -29401,7 +29422,7 @@ class QdPageTabHeaderComponent extends CdkStepHeader {
|
|
|
29401
29422
|
super(elementRef);
|
|
29402
29423
|
}
|
|
29403
29424
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29404
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: QdPageTabHeaderComponent, isStandalone: true, selector: "qd-page-tab-header", inputs: { state: "state", label: "label", counters: "counters", index: "index", isSelected: "isSelected", isDisabled: "isDisabled", testId: ["data-test-id", "testId"] }, host: { properties: { "attr.data-test-id": "testId", "class.qd-tab-current": "isSelected && !isDisabled", "class.qd-tab-disabled": "isDisabled", "class.qd-tab-done": "state === STEP_STATE.DONE", "class.qd-tab-edit": "state === STEP_STATE.EDIT", "class.qd-tab-error": "state === STEP_STATE.ERROR" } }, usesInheritance: true, ngImport: i0, template: "<span class=\"qd-tab-caption\">\n {{ label }}\n <qd-page-tab-header-counters [counters]=\"counters\" [data-test-id]=\"testId + '-counters'\" />\n</span>\n", styles: [":host{position:relative;display:inline-flex;height:2.5rem;padding:.625rem 0;cursor:pointer;color:#757575;font-size:14px;font-weight:400;line-height:18px}:host .qd-tab-caption{font-weight:500}:host:hover,:host.qd-tab-current{color:#069}:host.qd-tab-current .qd-tab-caption{position:relative}:host.qd-tab-current .qd-tab-caption:after{position:absolute;bottom:-.6875rem;left:0;display:inline-block;width:100%;height:.25rem;background-color:#069;content:\"\"}:host.qd-tab-done,:host.qd-tab-edit{color:#171717}:host.qd-tab-error{color:#c70023}:host.qd-tab-disabled{color:#b4b4b4;cursor:default}:host.qd-tab-disabled:hover{color:#b4b4b4}\n"], dependencies: [{ kind: "component", type: QdPageTabHeaderCountersComponent, selector: "qd-page-tab-header-counters", inputs: ["counters", "data-test-id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
29425
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: QdPageTabHeaderComponent, isStandalone: true, selector: "qd-page-tab-header", inputs: { state: "state", label: "label", counters: "counters", index: "index", isSelected: "isSelected", isDisabled: "isDisabled", testId: ["data-test-id", "testId"] }, host: { properties: { "attr.data-test-id": "testId", "class.qd-tab-current": "isSelected && !isDisabled", "class.qd-tab-disabled": "isDisabled", "class.qd-tab-done": "state === STEP_STATE.DONE", "class.qd-tab-edit": "state === STEP_STATE.EDIT", "class.qd-tab-error": "state === STEP_STATE.ERROR" } }, usesInheritance: true, ngImport: i0, template: "<span class=\"qd-tab-caption\">\n {{ label }}\n <qd-page-tab-header-counters [counters]=\"counters\" [data-test-id]=\"testId + '-counters'\" />\n</span>\n", styles: [":host{position:relative;display:inline-flex;height:2.5rem;padding:.625rem 0;cursor:pointer;color:#757575;font-size:14px;font-weight:400;line-height:18px}:host .qd-tab-caption{font-weight:500;white-space:nowrap}:host:hover,:host.qd-tab-current{color:#069}:host.qd-tab-current .qd-tab-caption{position:relative}:host.qd-tab-current .qd-tab-caption:after{position:absolute;bottom:-.6875rem;left:0;display:inline-block;width:100%;height:.25rem;background-color:#069;content:\"\"}:host.qd-tab-done,:host.qd-tab-edit{color:#171717}:host.qd-tab-error{color:#c70023}:host.qd-tab-disabled{color:#b4b4b4;cursor:default}:host.qd-tab-disabled:hover{color:#b4b4b4}\n"], dependencies: [{ kind: "component", type: QdPageTabHeaderCountersComponent, selector: "qd-page-tab-header-counters", inputs: ["counters", "data-test-id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
29405
29426
|
}
|
|
29406
29427
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabHeaderComponent, decorators: [{
|
|
29407
29428
|
type: Component,
|
|
@@ -29412,7 +29433,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
29412
29433
|
'[class.qd-tab-done]': 'state === STEP_STATE.DONE',
|
|
29413
29434
|
'[class.qd-tab-edit]': 'state === STEP_STATE.EDIT',
|
|
29414
29435
|
'[class.qd-tab-error]': 'state === STEP_STATE.ERROR'
|
|
29415
|
-
}, standalone: true, imports: [QdPageTabHeaderCountersComponent], template: "<span class=\"qd-tab-caption\">\n {{ label }}\n <qd-page-tab-header-counters [counters]=\"counters\" [data-test-id]=\"testId + '-counters'\" />\n</span>\n", styles: [":host{position:relative;display:inline-flex;height:2.5rem;padding:.625rem 0;cursor:pointer;color:#757575;font-size:14px;font-weight:400;line-height:18px}:host .qd-tab-caption{font-weight:500}:host:hover,:host.qd-tab-current{color:#069}:host.qd-tab-current .qd-tab-caption{position:relative}:host.qd-tab-current .qd-tab-caption:after{position:absolute;bottom:-.6875rem;left:0;display:inline-block;width:100%;height:.25rem;background-color:#069;content:\"\"}:host.qd-tab-done,:host.qd-tab-edit{color:#171717}:host.qd-tab-error{color:#c70023}:host.qd-tab-disabled{color:#b4b4b4;cursor:default}:host.qd-tab-disabled:hover{color:#b4b4b4}\n"] }]
|
|
29436
|
+
}, standalone: true, imports: [QdPageTabHeaderCountersComponent], template: "<span class=\"qd-tab-caption\">\n {{ label }}\n <qd-page-tab-header-counters [counters]=\"counters\" [data-test-id]=\"testId + '-counters'\" />\n</span>\n", styles: [":host{position:relative;display:inline-flex;height:2.5rem;padding:.625rem 0;cursor:pointer;color:#757575;font-size:14px;font-weight:400;line-height:18px}:host .qd-tab-caption{font-weight:500;white-space:nowrap}:host:hover,:host.qd-tab-current{color:#069}:host.qd-tab-current .qd-tab-caption{position:relative}:host.qd-tab-current .qd-tab-caption:after{position:absolute;bottom:-.6875rem;left:0;display:inline-block;width:100%;height:.25rem;background-color:#069;content:\"\"}:host.qd-tab-done,:host.qd-tab-edit{color:#171717}:host.qd-tab-error{color:#c70023}:host.qd-tab-disabled{color:#b4b4b4;cursor:default}:host.qd-tab-disabled:hover{color:#b4b4b4}\n"] }]
|
|
29416
29437
|
}], ctorParameters: () => [], propDecorators: { state: [{
|
|
29417
29438
|
type: Input
|
|
29418
29439
|
}], label: [{
|
|
@@ -30651,7 +30672,7 @@ class QdPageComponent {
|
|
|
30651
30672
|
QdPageSubmitActionService,
|
|
30652
30673
|
QdResolverTriggerService,
|
|
30653
30674
|
QdPageNavigationInterceptorService
|
|
30654
|
-
], queries: [{ propertyName: "controlPanel", first: true, predicate: QdPageControlPanelComponent, descendants: true }, { propertyName: "stepperComponent", first: true, predicate: QdPageStepperComponent, descendants: true }, { propertyName: "tabsComponent", first: true, predicate: QdPageTabsComponent, descendants: true }, { propertyName: "stepperAdapterDirective", first: true, predicate: QdPageStepperAdapterDirective, descendants: true }, { propertyName: "tabsAdapterDirective", first: true, predicate: QdPageTabsAdapterDirective, descendants: true }, { propertyName: "sections", predicate: QdSectionComponent }, { propertyName: "infoBanners", predicate: QdPageInfoBannerComponent }], usesOnChanges: true, ngImport: i0, template: "<main qdSnackbarListener>\n <qd-page-object-header\n [data-test-id]=\"testId\"\n [attr.data-test-id]=\"testId + 'object-header'\"\n [config]=\"config\"\n [hasNavigation]=\"hasNavigation\"\n ></qd-page-object-header>\n\n <div class=\"page-info-banners\">\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"config.pageType === 'create' || config.pageType === 'custom'\">\n <ng-content select=\"qd-page-stepper\"></ng-content>\n <ng-content select=\"[qdPageStepperAdapter]\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"config.pageType === 'overview' || config.pageType === 'inspect' || config.pageType === 'custom'\">\n <ng-content select=\"qd-page-tabs\"></ng-content>\n <ng-content select=\"[qdPageTabsAdapter]\"></ng-content>\n <ng-content select=\"qd-section\"></ng-content>\n <ng-content select=\"[qdSectionAdapter]\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"config.pageType === 'custom'\">\n <ng-container *ngTemplateOutlet=\"projectedContent\"></ng-container>\n </ng-container>\n</main>\n\n<footer *ngIf=\"footerHasContent$ | async\">\n <qd-page-footer [attr.data-test-id]=\"testId + '-footer'\">\n <ng-content select=\"[qdPageFooter]\"></ng-content>\n </qd-page-footer>\n</footer>\n\n<aside *ngIf=\"isControlPanelVisible\">\n <ng-content select=\"qd-page-control-panel\"></ng-content>\n</aside>\n\n<qd-projection-guard *ngIf=\"config.pageType !== 'custom'\" [warningMessage]=\"projectionGuardMessage\">\n <ng-container *ngTemplateOutlet=\"projectedContent\"></ng-container>\n</qd-projection-guard>\n\n<ng-template #projectedContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{position:absolute;display:grid;overflow:hidden;width:100%;height:100%;background:#efefef;grid-template-areas:\"main\";grid-template-columns:1fr;grid-template-rows:1fr}:host.has-control-panel{grid-template-areas:\"main aside\";grid-template-columns:1fr 18.75rem}:host.control-panel-broad{grid-template-columns:1fr 27rem}:host.has-info-banners .page-info-banners{padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}@media (max-width: 599.98px){:host.has-info-banners .page-info-banners{padding-right:.9375rem;padding-left:.9375rem}}:host.has-info-banners qd-page-info-banner:last-child{margin-bottom:0}:host.has-footer{grid-template-areas:\"main\" \"footer\";grid-template-rows:calc(100% - 4rem) 4rem}:host.has-control-panel.has-footer{grid-template-areas:\"main aside\" \"footer aside\"}:host main{position:relative;grid-area:main;overflow-y:auto}:host aside{border-left:rgb(213,213,213) solid .0625rem;background:#fff;grid-area:aside}:host footer{grid-area:footer}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success{position:relative;top:-.5rem;padding-top:0rem;padding-bottom:0rem;border-top-width:0;margin-bottom:0rem}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .icon,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .icon,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .icon,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .icon{display:none}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .title,:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .message,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .title,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .message,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .title,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .message,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .title,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .message{position:relative;top:-.625rem}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info:before,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning:before,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical:before,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success:before{position:relative;top:-.625rem;left:-2.75rem;display:block;width:calc(100% + 4.75rem);height:.625rem;background-color:#fff;content:\"\"}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: QdProjectionGuardComponent, selector: "qd-projection-guard", inputs: ["isDisabled", "warningMessage"] }, { kind: "component", type: QdPageFooterComponent, selector: "qd-page-footer" }, { kind: "component", type: QdPageObjectHeaderComponent, selector: "qd-page-object-header", inputs: ["config", "hasNavigation", "data-test-id"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
30675
|
+
], queries: [{ propertyName: "controlPanel", first: true, predicate: QdPageControlPanelComponent, descendants: true }, { propertyName: "stepperComponent", first: true, predicate: QdPageStepperComponent, descendants: true }, { propertyName: "tabsComponent", first: true, predicate: QdPageTabsComponent, descendants: true }, { propertyName: "stepperAdapterDirective", first: true, predicate: QdPageStepperAdapterDirective, descendants: true }, { propertyName: "tabsAdapterDirective", first: true, predicate: QdPageTabsAdapterDirective, descendants: true }, { propertyName: "sections", predicate: QdSectionComponent }, { propertyName: "infoBanners", predicate: QdPageInfoBannerComponent }], usesOnChanges: true, ngImport: i0, template: "<main qdSnackbarListener cdkScrollable>\n <qd-page-object-header\n [data-test-id]=\"testId\"\n [attr.data-test-id]=\"testId + 'object-header'\"\n [config]=\"config\"\n [hasNavigation]=\"hasNavigation\"\n ></qd-page-object-header>\n\n <div class=\"page-info-banners\">\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"config.pageType === 'create' || config.pageType === 'custom'\">\n <ng-content select=\"qd-page-stepper\"></ng-content>\n <ng-content select=\"[qdPageStepperAdapter]\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"config.pageType === 'overview' || config.pageType === 'inspect' || config.pageType === 'custom'\">\n <ng-content select=\"qd-page-tabs\"></ng-content>\n <ng-content select=\"[qdPageTabsAdapter]\"></ng-content>\n <ng-content select=\"qd-section\"></ng-content>\n <ng-content select=\"[qdSectionAdapter]\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"config.pageType === 'custom'\">\n <ng-container *ngTemplateOutlet=\"projectedContent\"></ng-container>\n </ng-container>\n</main>\n\n<footer *ngIf=\"footerHasContent$ | async\">\n <qd-page-footer [attr.data-test-id]=\"testId + '-footer'\">\n <ng-content select=\"[qdPageFooter]\"></ng-content>\n </qd-page-footer>\n</footer>\n\n<aside *ngIf=\"isControlPanelVisible\">\n <ng-content select=\"qd-page-control-panel\"></ng-content>\n</aside>\n\n<qd-projection-guard *ngIf=\"config.pageType !== 'custom'\" [warningMessage]=\"projectionGuardMessage\">\n <ng-container *ngTemplateOutlet=\"projectedContent\"></ng-container>\n</qd-projection-guard>\n\n<ng-template #projectedContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{position:absolute;display:grid;overflow:hidden;width:100%;height:100%;background:#efefef;grid-template-areas:\"main\";grid-template-columns:1fr;grid-template-rows:1fr}:host.has-control-panel{grid-template-areas:\"main aside\";grid-template-columns:1fr 18.75rem}:host.control-panel-broad{grid-template-columns:1fr 27rem}:host.has-info-banners .page-info-banners{padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}@media (max-width: 599.98px){:host.has-info-banners .page-info-banners{padding-right:.9375rem;padding-left:.9375rem}}:host.has-info-banners qd-page-info-banner:last-child{margin-bottom:0}:host.has-footer{grid-template-areas:\"main\" \"footer\";grid-template-rows:calc(100% - 4rem) 4rem}:host.has-control-panel.has-footer{grid-template-areas:\"main aside\" \"footer aside\"}:host main{position:relative;grid-area:main;overflow-y:auto}:host aside{border-left:rgb(213,213,213) solid .0625rem;background:#fff;grid-area:aside}:host footer{grid-area:footer}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success{position:relative;top:-.5rem;padding-top:0rem;padding-bottom:0rem;border-top-width:0;margin-bottom:0rem}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .icon,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .icon,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .icon,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .icon{display:none}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .title,:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .message,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .title,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .message,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .title,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .message,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .title,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .message{position:relative;top:-.625rem}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info:before,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning:before,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical:before,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success:before{position:relative;top:-.625rem;left:-2.75rem;display:block;width:calc(100% + 4.75rem);height:.625rem;background-color:#fff;content:\"\"}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: QdProjectionGuardComponent, selector: "qd-projection-guard", inputs: ["isDisabled", "warningMessage"] }, { kind: "component", type: QdPageFooterComponent, selector: "qd-page-footer" }, { kind: "component", type: QdPageObjectHeaderComponent, selector: "qd-page-object-header", inputs: ["config", "hasNavigation", "data-test-id"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
30655
30676
|
}
|
|
30656
30677
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageComponent, decorators: [{
|
|
30657
30678
|
type: Component,
|
|
@@ -30661,7 +30682,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
30661
30682
|
QdPageSubmitActionService,
|
|
30662
30683
|
QdResolverTriggerService,
|
|
30663
30684
|
QdPageNavigationInterceptorService
|
|
30664
|
-
], host: { '[class.has-control-panel]': 'isControlPanelVisible', '[class.control-panel-broad]': 'isControlPanelBroad' }, standalone: false, template: "<main qdSnackbarListener>\n <qd-page-object-header\n [data-test-id]=\"testId\"\n [attr.data-test-id]=\"testId + 'object-header'\"\n [config]=\"config\"\n [hasNavigation]=\"hasNavigation\"\n ></qd-page-object-header>\n\n <div class=\"page-info-banners\">\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"config.pageType === 'create' || config.pageType === 'custom'\">\n <ng-content select=\"qd-page-stepper\"></ng-content>\n <ng-content select=\"[qdPageStepperAdapter]\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"config.pageType === 'overview' || config.pageType === 'inspect' || config.pageType === 'custom'\">\n <ng-content select=\"qd-page-tabs\"></ng-content>\n <ng-content select=\"[qdPageTabsAdapter]\"></ng-content>\n <ng-content select=\"qd-section\"></ng-content>\n <ng-content select=\"[qdSectionAdapter]\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"config.pageType === 'custom'\">\n <ng-container *ngTemplateOutlet=\"projectedContent\"></ng-container>\n </ng-container>\n</main>\n\n<footer *ngIf=\"footerHasContent$ | async\">\n <qd-page-footer [attr.data-test-id]=\"testId + '-footer'\">\n <ng-content select=\"[qdPageFooter]\"></ng-content>\n </qd-page-footer>\n</footer>\n\n<aside *ngIf=\"isControlPanelVisible\">\n <ng-content select=\"qd-page-control-panel\"></ng-content>\n</aside>\n\n<qd-projection-guard *ngIf=\"config.pageType !== 'custom'\" [warningMessage]=\"projectionGuardMessage\">\n <ng-container *ngTemplateOutlet=\"projectedContent\"></ng-container>\n</qd-projection-guard>\n\n<ng-template #projectedContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{position:absolute;display:grid;overflow:hidden;width:100%;height:100%;background:#efefef;grid-template-areas:\"main\";grid-template-columns:1fr;grid-template-rows:1fr}:host.has-control-panel{grid-template-areas:\"main aside\";grid-template-columns:1fr 18.75rem}:host.control-panel-broad{grid-template-columns:1fr 27rem}:host.has-info-banners .page-info-banners{padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}@media (max-width: 599.98px){:host.has-info-banners .page-info-banners{padding-right:.9375rem;padding-left:.9375rem}}:host.has-info-banners qd-page-info-banner:last-child{margin-bottom:0}:host.has-footer{grid-template-areas:\"main\" \"footer\";grid-template-rows:calc(100% - 4rem) 4rem}:host.has-control-panel.has-footer{grid-template-areas:\"main aside\" \"footer aside\"}:host main{position:relative;grid-area:main;overflow-y:auto}:host aside{border-left:rgb(213,213,213) solid .0625rem;background:#fff;grid-area:aside}:host footer{grid-area:footer}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success{position:relative;top:-.5rem;padding-top:0rem;padding-bottom:0rem;border-top-width:0;margin-bottom:0rem}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .icon,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .icon,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .icon,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .icon{display:none}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .title,:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .message,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .title,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .message,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .title,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .message,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .title,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .message{position:relative;top:-.625rem}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info:before,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning:before,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical:before,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success:before{position:relative;top:-.625rem;left:-2.75rem;display:block;width:calc(100% + 4.75rem);height:.625rem;background-color:#fff;content:\"\"}\n"] }]
|
|
30685
|
+
], host: { '[class.has-control-panel]': 'isControlPanelVisible', '[class.control-panel-broad]': 'isControlPanelBroad' }, standalone: false, template: "<main qdSnackbarListener cdkScrollable>\n <qd-page-object-header\n [data-test-id]=\"testId\"\n [attr.data-test-id]=\"testId + 'object-header'\"\n [config]=\"config\"\n [hasNavigation]=\"hasNavigation\"\n ></qd-page-object-header>\n\n <div class=\"page-info-banners\">\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"config.pageType === 'create' || config.pageType === 'custom'\">\n <ng-content select=\"qd-page-stepper\"></ng-content>\n <ng-content select=\"[qdPageStepperAdapter]\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"config.pageType === 'overview' || config.pageType === 'inspect' || config.pageType === 'custom'\">\n <ng-content select=\"qd-page-tabs\"></ng-content>\n <ng-content select=\"[qdPageTabsAdapter]\"></ng-content>\n <ng-content select=\"qd-section\"></ng-content>\n <ng-content select=\"[qdSectionAdapter]\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"config.pageType === 'custom'\">\n <ng-container *ngTemplateOutlet=\"projectedContent\"></ng-container>\n </ng-container>\n</main>\n\n<footer *ngIf=\"footerHasContent$ | async\">\n <qd-page-footer [attr.data-test-id]=\"testId + '-footer'\">\n <ng-content select=\"[qdPageFooter]\"></ng-content>\n </qd-page-footer>\n</footer>\n\n<aside *ngIf=\"isControlPanelVisible\">\n <ng-content select=\"qd-page-control-panel\"></ng-content>\n</aside>\n\n<qd-projection-guard *ngIf=\"config.pageType !== 'custom'\" [warningMessage]=\"projectionGuardMessage\">\n <ng-container *ngTemplateOutlet=\"projectedContent\"></ng-container>\n</qd-projection-guard>\n\n<ng-template #projectedContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{position:absolute;display:grid;overflow:hidden;width:100%;height:100%;background:#efefef;grid-template-areas:\"main\";grid-template-columns:1fr;grid-template-rows:1fr}:host.has-control-panel{grid-template-areas:\"main aside\";grid-template-columns:1fr 18.75rem}:host.control-panel-broad{grid-template-columns:1fr 27rem}:host.has-info-banners .page-info-banners{padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}@media (max-width: 599.98px){:host.has-info-banners .page-info-banners{padding-right:.9375rem;padding-left:.9375rem}}:host.has-info-banners qd-page-info-banner:last-child{margin-bottom:0}:host.has-footer{grid-template-areas:\"main\" \"footer\";grid-template-rows:calc(100% - 4rem) 4rem}:host.has-control-panel.has-footer{grid-template-areas:\"main aside\" \"footer aside\"}:host main{position:relative;grid-area:main;overflow-y:auto}:host aside{border-left:rgb(213,213,213) solid .0625rem;background:#fff;grid-area:aside}:host footer{grid-area:footer}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success{position:relative;top:-.5rem;padding-top:0rem;padding-bottom:0rem;border-top-width:0;margin-bottom:0rem}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .icon,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .icon,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .icon,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .icon{display:none}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .title,:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info .message,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .title,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning .message,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .title,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical .message,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .title,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success .message{position:relative;top:-.625rem}:host ::ng-deep .qd-page-info-banner-info+.qd-page-info-banner-info:before,:host ::ng-deep .qd-page-info-banner-warning+.qd-page-info-banner-warning:before,:host ::ng-deep .qd-page-info-banner-critical+.qd-page-info-banner-critical:before,:host ::ng-deep .qd-page-info-banner-success+.qd-page-info-banner-success:before{position:relative;top:-.625rem;left:-2.75rem;display:block;width:calc(100% + 4.75rem);height:.625rem;background-color:#fff;content:\"\"}\n"] }]
|
|
30665
30686
|
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
30666
30687
|
type: Input,
|
|
30667
30688
|
args: [{ required: true }]
|
|
@@ -30808,6 +30829,7 @@ class QdPageModule {
|
|
|
30808
30829
|
QdPageFooterCustomContentDirective,
|
|
30809
30830
|
QdContextSelectDialogComponent,
|
|
30810
30831
|
QdPageInfoBannerComponent], imports: [CommonModule,
|
|
30832
|
+
ScrollingModule,
|
|
30811
30833
|
TranslateModule,
|
|
30812
30834
|
QdButtonModule,
|
|
30813
30835
|
QdButtonModule,
|
|
@@ -30836,6 +30858,7 @@ class QdPageModule {
|
|
|
30836
30858
|
useValue: DynamicFacetsServiceInstance
|
|
30837
30859
|
}
|
|
30838
30860
|
], imports: [CommonModule,
|
|
30861
|
+
ScrollingModule,
|
|
30839
30862
|
TranslateModule,
|
|
30840
30863
|
QdButtonModule,
|
|
30841
30864
|
QdButtonModule,
|
|
@@ -30857,6 +30880,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
30857
30880
|
args: [{
|
|
30858
30881
|
imports: [
|
|
30859
30882
|
CommonModule,
|
|
30883
|
+
ScrollingModule,
|
|
30860
30884
|
TranslateModule,
|
|
30861
30885
|
QdButtonModule,
|
|
30862
30886
|
QdButtonModule,
|
|
@@ -31213,7 +31237,7 @@ class QdShellHeaderBannerComponent {
|
|
|
31213
31237
|
bannerService = inject(QdShellBannerService);
|
|
31214
31238
|
get colorClassName() {
|
|
31215
31239
|
if (this.bannerService.isProduction || this.bannerService.bannerText === '')
|
|
31216
|
-
return;
|
|
31240
|
+
return '';
|
|
31217
31241
|
return 'qd-shell__banner qd-shell__banner--' + this.bannerService.bannerText.toLowerCase();
|
|
31218
31242
|
}
|
|
31219
31243
|
get shouldRender() {
|
|
@@ -33489,6 +33513,8 @@ class QdPageTabComponent extends CdkStep {
|
|
|
33489
33513
|
}
|
|
33490
33514
|
ngOnInit() {
|
|
33491
33515
|
this.validateLabel();
|
|
33516
|
+
if (this.tabControl)
|
|
33517
|
+
this.initErrorCheck();
|
|
33492
33518
|
}
|
|
33493
33519
|
ngOnChanges(changes) {
|
|
33494
33520
|
super.ngOnChanges();
|
|
@@ -33506,6 +33532,24 @@ class QdPageTabComponent extends CdkStep {
|
|
|
33506
33532
|
if (!this.config?.label?.i18n)
|
|
33507
33533
|
console.error('Quadrel Framework | QdPageTab - Please provide a label for the tab.');
|
|
33508
33534
|
}
|
|
33535
|
+
initErrorCheck() {
|
|
33536
|
+
this.tabControl.statusChanges.pipe(takeUntil$1(this._destroyed$)).subscribe(() => {
|
|
33537
|
+
if (this.hasAnyError(this.tabControl)) {
|
|
33538
|
+
this.interacted = true;
|
|
33539
|
+
}
|
|
33540
|
+
});
|
|
33541
|
+
}
|
|
33542
|
+
hasAnyError(control) {
|
|
33543
|
+
if (control.errors && control.touched)
|
|
33544
|
+
return true;
|
|
33545
|
+
if (control instanceof FormGroup) {
|
|
33546
|
+
return Object.values(control.controls).some(this.hasAnyError);
|
|
33547
|
+
}
|
|
33548
|
+
if (control instanceof FormArray) {
|
|
33549
|
+
return control.controls.some(this.hasAnyError);
|
|
33550
|
+
}
|
|
33551
|
+
return false;
|
|
33552
|
+
}
|
|
33509
33553
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
33510
33554
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: QdPageTabComponent, isStandalone: true, selector: "qd-page-tab", inputs: { config: "config", tabControl: "tabControl" }, providers: [
|
|
33511
33555
|
{ provide: CdkStep, useExisting: QdPageTabComponent },
|