@quadrel-enterprise-ui/framework 20.26.0 → 20.26.2
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, Directive, InjectionToken, HostBinding, Input, ViewEncapsulation, Component, Injectable, Injector, HostListener, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, NgModule, EventEmitter, Output, Renderer2, Pipe, ViewContainerRef, NO_ERRORS_SCHEMA, DestroyRef, SecurityContext, NgZone, ViewChildren, forwardRef, ContentChildren, ContentChild, isDevMode, QueryList, CUSTOM_ELEMENTS_SCHEMA, provideAppInitializer
|
|
2
|
+
import { inject, ElementRef, Directive, InjectionToken, HostBinding, Input, ViewEncapsulation, Component, Injectable, Injector, HostListener, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, NgModule, EventEmitter, Output, Renderer2, Pipe, ViewContainerRef, NO_ERRORS_SCHEMA, DestroyRef, SecurityContext, NgZone, ViewChildren, forwardRef, ContentChildren, ContentChild, isDevMode, QueryList, TemplateRef, CUSTOM_ELEMENTS_SCHEMA, provideAppInitializer } from '@angular/core';
|
|
3
3
|
import { Dialog, DialogRef, DialogModule } from '@angular/cdk/dialog';
|
|
4
4
|
import * as i1 from '@angular/common';
|
|
5
5
|
import { CommonModule, NgFor, NgIf, NgClass, NgTemplateOutlet, AsyncPipe } from '@angular/common';
|
|
@@ -8411,10 +8411,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
8411
8411
|
}]
|
|
8412
8412
|
}] });
|
|
8413
8413
|
|
|
8414
|
+
/**
|
|
8415
|
+
* Focuses its host element once, after the initial view init, when `qdAutofocus` is `true`.
|
|
8416
|
+
*
|
|
8417
|
+
* Init-only by design: the input is read in `ngAfterViewInit` only. A later `false -> true`
|
|
8418
|
+
* change on an already-rendered element is intentionally ignored to avoid stealing focus
|
|
8419
|
+
* mid-interaction (this mirrors the native `autofocus` attribute). An element that appears
|
|
8420
|
+
* later (e.g. via `*ngIf`) still autofocuses, because `ngAfterViewInit` runs when it is created.
|
|
8421
|
+
*
|
|
8422
|
+
* Coordinated app-wide through {@link QdAutofocusService}: only one element may autofocus per
|
|
8423
|
+
* view; the guard is released once the focused element blurs, so a newly opened view can
|
|
8424
|
+
* autofocus again. Using it on more than one active element at a time logs a warning and is
|
|
8425
|
+
* ignored for the surplus elements.
|
|
8426
|
+
*/
|
|
8414
8427
|
class QdAutofocusDirective {
|
|
8415
8428
|
autofocusService = inject(QdAutofocusService);
|
|
8416
8429
|
elementRef = inject(ElementRef);
|
|
8417
8430
|
qdAutofocus = false;
|
|
8431
|
+
_timeoutId;
|
|
8432
|
+
_blurHandler;
|
|
8418
8433
|
ngAfterViewInit() {
|
|
8419
8434
|
if (!this.qdAutofocus)
|
|
8420
8435
|
return;
|
|
@@ -8423,14 +8438,24 @@ class QdAutofocusDirective {
|
|
|
8423
8438
|
return;
|
|
8424
8439
|
}
|
|
8425
8440
|
this.autofocusService.isAutofocusActivated = true;
|
|
8426
|
-
setTimeout(() => {
|
|
8427
|
-
this.elementRef.nativeElement
|
|
8428
|
-
|
|
8441
|
+
this._timeoutId = setTimeout(() => {
|
|
8442
|
+
const element = this.elementRef.nativeElement;
|
|
8443
|
+
if (!element.isConnected) {
|
|
8429
8444
|
this.autofocusService.isAutofocusActivated = false;
|
|
8430
|
-
|
|
8445
|
+
return;
|
|
8446
|
+
}
|
|
8447
|
+
element.focus();
|
|
8448
|
+
this._blurHandler = () => {
|
|
8449
|
+
this.autofocusService.isAutofocusActivated = false;
|
|
8450
|
+
};
|
|
8451
|
+
element.addEventListener('blur', this._blurHandler, { once: true });
|
|
8431
8452
|
}, 0);
|
|
8432
8453
|
}
|
|
8433
8454
|
ngOnDestroy() {
|
|
8455
|
+
if (this._timeoutId)
|
|
8456
|
+
clearTimeout(this._timeoutId);
|
|
8457
|
+
if (this._blurHandler)
|
|
8458
|
+
this.elementRef.nativeElement.removeEventListener('blur', this._blurHandler);
|
|
8434
8459
|
this.autofocusService.isAutofocusActivated = false;
|
|
8435
8460
|
}
|
|
8436
8461
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -30167,8 +30192,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
30167
30192
|
/**
|
|
30168
30193
|
* **QdPageTabHeader* renders the header of a single tab. It is used quadrel-internally.
|
|
30169
30194
|
*/
|
|
30170
|
-
class QdPageTabHeaderComponent
|
|
30171
|
-
STEP_STATE = STEP_STATE;
|
|
30195
|
+
class QdPageTabHeaderComponent {
|
|
30172
30196
|
/** State of the given tab. */
|
|
30173
30197
|
state;
|
|
30174
30198
|
/** Label of the given tab. */
|
|
@@ -30185,24 +30209,21 @@ class QdPageTabHeaderComponent extends CdkStepHeader {
|
|
|
30185
30209
|
* A static test ID for integration tests can be set.
|
|
30186
30210
|
*/
|
|
30187
30211
|
testId;
|
|
30188
|
-
constructor() {
|
|
30189
|
-
const elementRef = inject(ElementRef);
|
|
30190
|
-
super(elementRef);
|
|
30191
|
-
}
|
|
30192
30212
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30193
|
-
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 ===
|
|
30213
|
+
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: { attributes: { "role": "tab" }, properties: { "attr.data-test-id": "testId", "class.qd-tab-current": "isSelected && !isDisabled", "class.qd-tab-disabled": "isDisabled", "class.qd-tab-done": "state === 'done'", "class.qd-tab-edit": "state === 'edit'", "class.qd-tab-error": "state === 'error'" } }, 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 });
|
|
30194
30214
|
}
|
|
30195
30215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabHeaderComponent, decorators: [{
|
|
30196
30216
|
type: Component,
|
|
30197
30217
|
args: [{ selector: 'qd-page-tab-header', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
30198
30218
|
'[attr.data-test-id]': 'testId',
|
|
30219
|
+
role: 'tab',
|
|
30199
30220
|
'[class.qd-tab-current]': 'isSelected && !isDisabled',
|
|
30200
30221
|
'[class.qd-tab-disabled]': 'isDisabled',
|
|
30201
|
-
'[class.qd-tab-done]':
|
|
30202
|
-
'[class.qd-tab-edit]':
|
|
30203
|
-
'[class.qd-tab-error]':
|
|
30222
|
+
'[class.qd-tab-done]': "state === 'done'",
|
|
30223
|
+
'[class.qd-tab-edit]': "state === 'edit'",
|
|
30224
|
+
'[class.qd-tab-error]': "state === 'error'"
|
|
30204
30225
|
}, 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"] }]
|
|
30205
|
-
}],
|
|
30226
|
+
}], propDecorators: { state: [{
|
|
30206
30227
|
type: Input
|
|
30207
30228
|
}], label: [{
|
|
30208
30229
|
type: Input
|
|
@@ -30219,13 +30240,112 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
30219
30240
|
args: ['data-test-id']
|
|
30220
30241
|
}] } });
|
|
30221
30242
|
|
|
30243
|
+
// @ts-strict-ignore
|
|
30244
|
+
/**
|
|
30245
|
+
* The **QdPageTab** is a single tab inside the **QdPageTabs** within a **QdPage**.
|
|
30246
|
+
*/
|
|
30247
|
+
class QdPageTabComponent {
|
|
30248
|
+
_pageTabs = inject(forwardRef(() => QdPageTabsComponent));
|
|
30249
|
+
translate = inject(TranslateService);
|
|
30250
|
+
/**
|
|
30251
|
+
* Configuration of QdPageTabComponent.
|
|
30252
|
+
*
|
|
30253
|
+
* * @note The use of CDK attributes is not permitted. Please configure this component here.
|
|
30254
|
+
*/
|
|
30255
|
+
config;
|
|
30256
|
+
/** Form control for this tab. */
|
|
30257
|
+
set tabControl(tabControl) {
|
|
30258
|
+
this.stepControl = tabControl;
|
|
30259
|
+
}
|
|
30260
|
+
get tabControl() {
|
|
30261
|
+
return this.stepControl;
|
|
30262
|
+
}
|
|
30263
|
+
infoBanners;
|
|
30264
|
+
content;
|
|
30265
|
+
stepControl;
|
|
30266
|
+
interacted = false;
|
|
30267
|
+
editable = true;
|
|
30268
|
+
get completed() {
|
|
30269
|
+
if (!this.interacted)
|
|
30270
|
+
return false;
|
|
30271
|
+
const control = this.tabControl;
|
|
30272
|
+
if (!control)
|
|
30273
|
+
return true;
|
|
30274
|
+
return !control.invalid && !control.pending;
|
|
30275
|
+
}
|
|
30276
|
+
get hasError() {
|
|
30277
|
+
return this.interacted && !!this.tabControl?.invalid;
|
|
30278
|
+
}
|
|
30279
|
+
_destroyed$ = new Subject();
|
|
30280
|
+
select() {
|
|
30281
|
+
const index = this._pageTabs.tabs.toArray().indexOf(this);
|
|
30282
|
+
if (index >= 0)
|
|
30283
|
+
this._pageTabs.selectedIndex = index;
|
|
30284
|
+
}
|
|
30285
|
+
ngOnInit() {
|
|
30286
|
+
this.validateLabel();
|
|
30287
|
+
if (this.tabControl)
|
|
30288
|
+
this.initErrorCheck();
|
|
30289
|
+
}
|
|
30290
|
+
ngOnChanges(changes) {
|
|
30291
|
+
['label', 'errorMessage', 'state']
|
|
30292
|
+
.filter(inputName => !!changes[inputName])
|
|
30293
|
+
.forEach(inputName => this.blockCdkInput(inputName));
|
|
30294
|
+
}
|
|
30295
|
+
ngOnDestroy() {
|
|
30296
|
+
this._destroyed$.complete();
|
|
30297
|
+
}
|
|
30298
|
+
blockCdkInput(inputName) {
|
|
30299
|
+
throw new Error(`Quadrel Framework | QdPageTab - The use of the "${inputName}" attribute is not permitted. Please use QdPageTabConfig instead.`);
|
|
30300
|
+
}
|
|
30301
|
+
validateLabel() {
|
|
30302
|
+
if (!this.config?.label?.i18n)
|
|
30303
|
+
console.error('Quadrel Framework | QdPageTab - Please provide a label for the tab.');
|
|
30304
|
+
}
|
|
30305
|
+
initErrorCheck() {
|
|
30306
|
+
this.tabControl.statusChanges.pipe(takeUntil$1(this._destroyed$)).subscribe(() => {
|
|
30307
|
+
if (this.hasAnyError(this.tabControl)) {
|
|
30308
|
+
this.interacted = true;
|
|
30309
|
+
}
|
|
30310
|
+
this._pageTabs._stateChanged();
|
|
30311
|
+
});
|
|
30312
|
+
}
|
|
30313
|
+
hasAnyError(control) {
|
|
30314
|
+
if (control.errors && control.touched)
|
|
30315
|
+
return true;
|
|
30316
|
+
if (control instanceof FormGroup) {
|
|
30317
|
+
return Object.values(control.controls).some(control => this.hasAnyError(control));
|
|
30318
|
+
}
|
|
30319
|
+
if (control instanceof FormArray) {
|
|
30320
|
+
return control.controls.some(control => this.hasAnyError(control));
|
|
30321
|
+
}
|
|
30322
|
+
return false;
|
|
30323
|
+
}
|
|
30324
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30325
|
+
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" }, queries: [{ propertyName: "infoBanners", predicate: QdPageInfoBannerComponent }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template>\n <div class=\"page-info-banners\">\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n\n <ng-content></ng-content>\n</ng-template>\n", styles: [".page-info-banners:has(>qd-page-info-banner:not(.qd-page-info-banner-empty)){padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}.page-info-banners>qd-page-info-banner:last-child{margin-bottom:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
30326
|
+
}
|
|
30327
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabComponent, decorators: [{
|
|
30328
|
+
type: Component,
|
|
30329
|
+
args: [{ selector: 'qd-page-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-template>\n <div class=\"page-info-banners\">\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n\n <ng-content></ng-content>\n</ng-template>\n", styles: [".page-info-banners:has(>qd-page-info-banner:not(.qd-page-info-banner-empty)){padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}.page-info-banners>qd-page-info-banner:last-child{margin-bottom:0}\n"] }]
|
|
30330
|
+
}], propDecorators: { config: [{
|
|
30331
|
+
type: Input
|
|
30332
|
+
}], tabControl: [{
|
|
30333
|
+
type: Input
|
|
30334
|
+
}], infoBanners: [{
|
|
30335
|
+
type: ContentChildren,
|
|
30336
|
+
args: [QdPageInfoBannerComponent]
|
|
30337
|
+
}], content: [{
|
|
30338
|
+
type: ViewChild,
|
|
30339
|
+
args: [TemplateRef, { static: true }]
|
|
30340
|
+
}] } });
|
|
30341
|
+
|
|
30222
30342
|
const TAB_PARAM_NAME = 'tab';
|
|
30223
30343
|
const OWNED_PARAMS = [TAB_PARAM_NAME];
|
|
30224
30344
|
const FEATURE_LABEL = { name: 'Page Tabs', plural: 'page tabs' };
|
|
30225
30345
|
/**
|
|
30226
30346
|
* Per-view adapter that syncs `QdPageTabsComponent` selection with the URL `?tab=` query
|
|
30227
30347
|
* param via `QdRouterQueryParamHubService`. Reads on activation and selects the matching
|
|
30228
|
-
* tab (with fallback for unknown/disabled names), writes on `
|
|
30348
|
+
* tab (with fallback for unknown/disabled names), writes on `tabSelection`. Coordination,
|
|
30229
30349
|
* ownership, and write batching are delegated to the hub — see its JSDoc for details.
|
|
30230
30350
|
* Behavior contracts live in `page-tabs-router-connector.service.spec.ts` and
|
|
30231
30351
|
* `router-query-param-hub.integration.cy.ts`.
|
|
@@ -30236,9 +30356,9 @@ const FEATURE_LABEL = { name: 'Page Tabs', plural: 'page tabs' };
|
|
|
30236
30356
|
* write pipeline (see commit 57f0a271a).
|
|
30237
30357
|
*
|
|
30238
30358
|
* Internal invariant: when the requested tab is unknown or disabled, `selectFallbackTab()`
|
|
30239
|
-
* writes the URL explicitly.
|
|
30240
|
-
*
|
|
30241
|
-
*
|
|
30359
|
+
* writes the URL explicitly. `tabSelection` is not emitted if the fallback is already
|
|
30360
|
+
* the selected tab, so without the explicit write deep-links like `?tab=phantom` would
|
|
30361
|
+
* leave a stale param in the URL.
|
|
30242
30362
|
*/
|
|
30243
30363
|
class QdPageTabsRouterConnectorService {
|
|
30244
30364
|
_hub = inject(QdRouterQueryParamHubService);
|
|
@@ -30287,8 +30407,8 @@ class QdPageTabsRouterConnectorService {
|
|
|
30287
30407
|
}
|
|
30288
30408
|
subscribeToTabChanges() {
|
|
30289
30409
|
const component = this._connectedComponent;
|
|
30290
|
-
this._writeSubscription = component.
|
|
30291
|
-
.pipe(map(event => event.
|
|
30410
|
+
this._writeSubscription = component.tabSelection
|
|
30411
|
+
.pipe(map(event => event.selectedTab?.config?.name), takeUntilDestroyed(this._destroyRef))
|
|
30292
30412
|
.subscribe(name => this.writeUrl(name));
|
|
30293
30413
|
}
|
|
30294
30414
|
writeUrl(name) {
|
|
@@ -30524,10 +30644,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
30524
30644
|
* - If an invalid tab name is provided in URL, the first available tab is selected
|
|
30525
30645
|
* - If no tab parameter is present, the `selectedIndex` or first non-disabled tab is selected
|
|
30526
30646
|
*/
|
|
30527
|
-
class QdPageTabsComponent
|
|
30647
|
+
class QdPageTabsComponent {
|
|
30528
30648
|
footerService = inject(QdPageFooterService, { optional: true });
|
|
30529
30649
|
pageStoreService = inject(QdPageStoreService);
|
|
30530
30650
|
routerConnector = inject(QdPageTabsRouterConnectorService);
|
|
30651
|
+
_changeDetectorRef = inject(ChangeDetectorRef);
|
|
30652
|
+
destroyRef = inject(DestroyRef);
|
|
30653
|
+
static _idCounter = 0;
|
|
30654
|
+
_id = QdPageTabsComponent._idCounter++;
|
|
30531
30655
|
get hasPageFooter() {
|
|
30532
30656
|
return !!this.footerService;
|
|
30533
30657
|
}
|
|
@@ -30540,23 +30664,45 @@ class QdPageTabsComponent extends CdkStepper {
|
|
|
30540
30664
|
*/
|
|
30541
30665
|
testId = 'page-tabs';
|
|
30542
30666
|
tabSelection = new EventEmitter();
|
|
30667
|
+
_tabs;
|
|
30668
|
+
linear = false;
|
|
30669
|
+
_selectedIndex = 0;
|
|
30543
30670
|
_viewonly;
|
|
30544
|
-
destroyRef = inject(DestroyRef);
|
|
30545
30671
|
get tabs() {
|
|
30546
|
-
return this.
|
|
30672
|
+
return this._tabs;
|
|
30547
30673
|
}
|
|
30548
30674
|
get selected() {
|
|
30549
|
-
return
|
|
30675
|
+
return this._tabs?.get(this._selectedIndex);
|
|
30550
30676
|
}
|
|
30551
|
-
set selected(
|
|
30552
|
-
|
|
30677
|
+
set selected(tab) {
|
|
30678
|
+
if (!tab)
|
|
30679
|
+
return;
|
|
30680
|
+
const index = this._tabs?.toArray().indexOf(tab);
|
|
30681
|
+
if (index !== undefined && index >= 0) {
|
|
30682
|
+
this.selectedIndex = index;
|
|
30683
|
+
}
|
|
30553
30684
|
}
|
|
30554
|
-
|
|
30555
|
-
|
|
30556
|
-
|
|
30557
|
-
|
|
30558
|
-
|
|
30559
|
-
|
|
30685
|
+
get selectedIndex() {
|
|
30686
|
+
return this._selectedIndex;
|
|
30687
|
+
}
|
|
30688
|
+
set selectedIndex(newIndex) {
|
|
30689
|
+
if (newIndex === this._selectedIndex)
|
|
30690
|
+
return;
|
|
30691
|
+
const prevIndex = this._selectedIndex;
|
|
30692
|
+
const prevTab = this._tabs?.get(prevIndex);
|
|
30693
|
+
if (prevTab?.tabControl) {
|
|
30694
|
+
prevTab.interacted = true;
|
|
30695
|
+
}
|
|
30696
|
+
this._selectedIndex = newIndex;
|
|
30697
|
+
if (this._tabs) {
|
|
30698
|
+
this.tabSelection.emit({
|
|
30699
|
+
selectedIndex: newIndex,
|
|
30700
|
+
previouslySelectedIndex: prevIndex,
|
|
30701
|
+
selectedTab: this._tabs.get(newIndex),
|
|
30702
|
+
previouslySelectedTab: this._tabs.get(prevIndex)
|
|
30703
|
+
});
|
|
30704
|
+
}
|
|
30705
|
+
this._changeDetectorRef.markForCheck();
|
|
30560
30706
|
}
|
|
30561
30707
|
ngOnInit() {
|
|
30562
30708
|
this.linear = false;
|
|
@@ -30570,24 +30716,10 @@ class QdPageTabsComponent extends CdkStepper {
|
|
|
30570
30716
|
.filter(inputName => !!changes[inputName])
|
|
30571
30717
|
.forEach(inputName => this.blockCdkInput(inputName));
|
|
30572
30718
|
}
|
|
30573
|
-
_getIndicatorType(index, state) {
|
|
30574
|
-
if (state)
|
|
30575
|
-
return state;
|
|
30576
|
-
const step = this.steps.get(index);
|
|
30577
|
-
if (!step)
|
|
30578
|
-
return 'number';
|
|
30579
|
-
if (step.hasError)
|
|
30580
|
-
return 'error';
|
|
30581
|
-
if (step.completed)
|
|
30582
|
-
return step.editable ? 'edit' : 'done';
|
|
30583
|
-
return 'number';
|
|
30584
|
-
}
|
|
30585
30719
|
ngAfterContentInit() {
|
|
30586
|
-
|
|
30587
|
-
this.tabs.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this._stateChanged());
|
|
30720
|
+
this._tabs.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this._stateChanged());
|
|
30588
30721
|
}
|
|
30589
30722
|
ngAfterViewInit() {
|
|
30590
|
-
super.ngAfterViewInit();
|
|
30591
30723
|
setTimeout(() => {
|
|
30592
30724
|
if (this.config?.connectWithRouter) {
|
|
30593
30725
|
this.configureBookmarkableTabs();
|
|
@@ -30596,9 +30728,42 @@ class QdPageTabsComponent extends CdkStepper {
|
|
|
30596
30728
|
this.initializeTabSelection();
|
|
30597
30729
|
});
|
|
30598
30730
|
}
|
|
30731
|
+
_stateChanged() {
|
|
30732
|
+
this._changeDetectorRef.markForCheck();
|
|
30733
|
+
}
|
|
30734
|
+
_getIndicatorType(index) {
|
|
30735
|
+
const tab = this._tabs.get(index);
|
|
30736
|
+
if (!tab)
|
|
30737
|
+
return 'number';
|
|
30738
|
+
if (tab.hasError && !this._viewonly)
|
|
30739
|
+
return 'error';
|
|
30740
|
+
if (tab.completed)
|
|
30741
|
+
return tab.editable ? 'edit' : 'done';
|
|
30742
|
+
return 'number';
|
|
30743
|
+
}
|
|
30744
|
+
_getTabLabelId(i) {
|
|
30745
|
+
return `qd-tabs-${this._id}-label-${i}`;
|
|
30746
|
+
}
|
|
30747
|
+
save() {
|
|
30748
|
+
this.selected?.tabControl?.markAllAsTouched();
|
|
30749
|
+
const tabControlValues = this._tabs.map(tab => tab.tabControl?.value);
|
|
30750
|
+
this.config?.submitButton?.handler?.(tabControlValues);
|
|
30751
|
+
}
|
|
30752
|
+
selectTab(tab) {
|
|
30753
|
+
if (tab.config?.isDisabled)
|
|
30754
|
+
return;
|
|
30755
|
+
tab.select();
|
|
30756
|
+
}
|
|
30757
|
+
isSubmitButtonShown() {
|
|
30758
|
+
return this.config?.submitButton?.isHidden !== true && !this.footerService;
|
|
30759
|
+
}
|
|
30760
|
+
isSubmitButtonDisabled() {
|
|
30761
|
+
return this.config?.submitButton?.isDisabled;
|
|
30762
|
+
}
|
|
30599
30763
|
initializeTabSelection() {
|
|
30600
30764
|
if (this.config?.selectedIndex && this.isTabSelectable(this.config.selectedIndex)) {
|
|
30601
|
-
this.
|
|
30765
|
+
this._selectedIndex = this.config.selectedIndex;
|
|
30766
|
+
this._changeDetectorRef.markForCheck();
|
|
30602
30767
|
return;
|
|
30603
30768
|
}
|
|
30604
30769
|
this.selectFirstNotDisabledTab();
|
|
@@ -30607,19 +30772,20 @@ class QdPageTabsComponent extends CdkStepper {
|
|
|
30607
30772
|
this.routerConnector.connectTabsWithRouter(this).pipe(takeUntilDestroyed(this.destroyRef)).subscribe();
|
|
30608
30773
|
}
|
|
30609
30774
|
isTabSelectable(index) {
|
|
30610
|
-
const tab = this.
|
|
30775
|
+
const tab = this._tabs.get(index);
|
|
30611
30776
|
return !!tab && !tab.config.isDisabled;
|
|
30612
30777
|
}
|
|
30613
30778
|
/**
|
|
30614
30779
|
* Selects the first tab that is not disabled.
|
|
30615
30780
|
*/
|
|
30616
30781
|
selectFirstNotDisabledTab() {
|
|
30617
|
-
this.
|
|
30782
|
+
this._tabs.some((tab, tabIndex) => {
|
|
30618
30783
|
if (!tab.config.isDisabled) {
|
|
30619
30784
|
if (this.config) {
|
|
30620
30785
|
this.config.selectedIndex = tabIndex;
|
|
30621
30786
|
}
|
|
30622
|
-
this.
|
|
30787
|
+
this._selectedIndex = tabIndex;
|
|
30788
|
+
this._changeDetectorRef.markForCheck();
|
|
30623
30789
|
return true;
|
|
30624
30790
|
}
|
|
30625
30791
|
else {
|
|
@@ -30627,51 +30793,25 @@ class QdPageTabsComponent extends CdkStepper {
|
|
|
30627
30793
|
}
|
|
30628
30794
|
});
|
|
30629
30795
|
}
|
|
30630
|
-
save() {
|
|
30631
|
-
this.selected?.tabControl?.markAllAsTouched();
|
|
30632
|
-
const tabControlValues = this.tabs.map(tab => tab.tabControl?.value);
|
|
30633
|
-
this.config?.submitButton?.handler?.(tabControlValues);
|
|
30634
|
-
}
|
|
30635
|
-
selectTab(tab) {
|
|
30636
|
-
if (tab.config?.isDisabled)
|
|
30637
|
-
return;
|
|
30638
|
-
tab.select();
|
|
30639
|
-
}
|
|
30640
|
-
isSubmitButtonShown() {
|
|
30641
|
-
return this.config?.submitButton?.isHidden !== true && !this.footerService;
|
|
30642
|
-
}
|
|
30643
|
-
isSubmitButtonDisabled() {
|
|
30644
|
-
return this.config?.submitButton?.isDisabled;
|
|
30645
|
-
}
|
|
30646
|
-
_getTabLabelId(i) {
|
|
30647
|
-
return this._getStepLabelId(i);
|
|
30648
|
-
}
|
|
30649
30796
|
blockCdkInput(inputName) {
|
|
30650
30797
|
throw new Error(`Quadrel Framework | QdPageTabs - The use of the "${inputName}" attribute is not permitted. Please use QdPageTabsConfig instead.`);
|
|
30651
30798
|
}
|
|
30652
|
-
mapSelectionChangeToTabSelectionOutput() {
|
|
30653
|
-
this.selectionChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(selectionEvent => {
|
|
30654
|
-
this.tabSelection.emit({
|
|
30655
|
-
selectedIndex: selectionEvent.selectedIndex,
|
|
30656
|
-
previouslySelectedIndex: selectionEvent.previouslySelectedIndex,
|
|
30657
|
-
selectedTab: selectionEvent.selectedStep,
|
|
30658
|
-
previouslySelectedTab: selectionEvent.previouslySelectedStep
|
|
30659
|
-
});
|
|
30660
|
-
});
|
|
30661
|
-
}
|
|
30662
30799
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30663
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: QdPageTabsComponent, isStandalone: true, selector: "qd-page-tabs", inputs: { config: "config", testId: ["data-test-id", "testId"] }, outputs: { tabSelection: "tabSelection" }, host: { properties: { "class.standalone": "!
|
|
30800
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: QdPageTabsComponent, isStandalone: true, selector: "qd-page-tabs", inputs: { config: "config", testId: ["data-test-id", "testId"] }, outputs: { tabSelection: "tabSelection" }, host: { properties: { "class.standalone": "!footerService" }, classAttribute: "qd-tabs" }, providers: [QdPageTabsRouterConnectorService], queries: [{ propertyName: "_tabs", predicate: i0.forwardRef(() => QdPageTabComponent) }], usesOnChanges: true, ngImport: i0, template: "<div class=\"qd-tabs-items-container\" [ngClass]=\"{ scrollable: config?.scrollabe }\">\n <qd-page-tab-header\n *ngFor=\"let tab of tabs; let i = index\"\n (click)=\"selectTab(tab)\"\n [id]=\"_getTabLabelId(i)\"\n [index]=\"i\"\n [state]=\"_getIndicatorType(i)\"\n [label]=\"tab.config.label.i18n | translate\"\n [counters]=\"tab.config.counters\"\n [isSelected]=\"selectedIndex === i\"\n [isDisabled]=\"tab.config?.isDisabled\"\n [data-test-id]=\"testId + '-header' + '-' + i\"\n >\n </qd-page-tab-header>\n</div>\n\n<div class=\"tabs-content\">\n <ng-container *ngIf=\"!selected?.config?.isDisabled\" [ngTemplateOutlet]=\"selected?.content\"></ng-container>\n</div>\n\n<div class=\"qd-tabs-action-area\" *ngIf=\"isSubmitButtonShown()\">\n <button qdButton (click)=\"save()\" [disabled]=\"isSubmitButtonDisabled()\" [data-test-id]=\"testId + '-submit'\">\n {{ config?.submitButton?.i18n || \"i18n.qd.tabs.button.submit\" | translate }}\n </button>\n</div>\n", styles: [":host{display:flex;flex-direction:column}:host.standalone{height:calc(100% - 50px)}:host .qd-tabs-items-container{display:flex;width:100%;flex-direction:row;flex-wrap:wrap;padding:0 1.25rem;border-bottom:.125rem solid rgb(213,213,213);background-color:#fff;gap:0 .9375rem}@media (max-width: 599.98px){:host .qd-tabs-items-container{padding:0 .9375rem}}@media (max-width: 1279.98px){:host .qd-tabs-items-container.scrollable{flex-wrap:nowrap;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none}}:host .tabs-content{flex:1 1 auto}:host .qd-tabs-action-area{display:flex;width:100%;height:50px;justify-content:flex-end}:host .qd-tabs-action-area button{margin-right:1.25rem}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: QdPageTabHeaderComponent, selector: "qd-page-tab-header", inputs: ["state", "label", "counters", "index", "isSelected", "isDisabled", "data-test-id"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: QdButtonModule }, { kind: "component", type: QdButtonComponent, selector: "button[qdButton], a[qdButton], button[qd-button]", inputs: ["disabled", "color", "icon", "data-test-id", "additionalInfo"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
30664
30801
|
}
|
|
30665
30802
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabsComponent, decorators: [{
|
|
30666
30803
|
type: Component,
|
|
30667
|
-
args: [{ selector: 'qd-page-tabs', providers: [
|
|
30668
|
-
}],
|
|
30804
|
+
args: [{ selector: 'qd-page-tabs', providers: [QdPageTabsRouterConnectorService], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'qd-tabs', '[class.standalone]': '!footerService' }, standalone: true, imports: [NgFor, NgIf, NgTemplateOutlet, QdPageTabHeaderComponent, TranslateModule, QdButtonModule, CommonModule], template: "<div class=\"qd-tabs-items-container\" [ngClass]=\"{ scrollable: config?.scrollabe }\">\n <qd-page-tab-header\n *ngFor=\"let tab of tabs; let i = index\"\n (click)=\"selectTab(tab)\"\n [id]=\"_getTabLabelId(i)\"\n [index]=\"i\"\n [state]=\"_getIndicatorType(i)\"\n [label]=\"tab.config.label.i18n | translate\"\n [counters]=\"tab.config.counters\"\n [isSelected]=\"selectedIndex === i\"\n [isDisabled]=\"tab.config?.isDisabled\"\n [data-test-id]=\"testId + '-header' + '-' + i\"\n >\n </qd-page-tab-header>\n</div>\n\n<div class=\"tabs-content\">\n <ng-container *ngIf=\"!selected?.config?.isDisabled\" [ngTemplateOutlet]=\"selected?.content\"></ng-container>\n</div>\n\n<div class=\"qd-tabs-action-area\" *ngIf=\"isSubmitButtonShown()\">\n <button qdButton (click)=\"save()\" [disabled]=\"isSubmitButtonDisabled()\" [data-test-id]=\"testId + '-submit'\">\n {{ config?.submitButton?.i18n || \"i18n.qd.tabs.button.submit\" | translate }}\n </button>\n</div>\n", styles: [":host{display:flex;flex-direction:column}:host.standalone{height:calc(100% - 50px)}:host .qd-tabs-items-container{display:flex;width:100%;flex-direction:row;flex-wrap:wrap;padding:0 1.25rem;border-bottom:.125rem solid rgb(213,213,213);background-color:#fff;gap:0 .9375rem}@media (max-width: 599.98px){:host .qd-tabs-items-container{padding:0 .9375rem}}@media (max-width: 1279.98px){:host .qd-tabs-items-container.scrollable{flex-wrap:nowrap;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none}}:host .tabs-content{flex:1 1 auto}:host .qd-tabs-action-area{display:flex;width:100%;height:50px;justify-content:flex-end}:host .qd-tabs-action-area button{margin-right:1.25rem}\n"] }]
|
|
30805
|
+
}], propDecorators: { config: [{
|
|
30669
30806
|
type: Input
|
|
30670
30807
|
}], testId: [{
|
|
30671
30808
|
type: Input,
|
|
30672
30809
|
args: ['data-test-id']
|
|
30673
30810
|
}], tabSelection: [{
|
|
30674
30811
|
type: Output
|
|
30812
|
+
}], _tabs: [{
|
|
30813
|
+
type: ContentChildren,
|
|
30814
|
+
args: [forwardRef(() => QdPageTabComponent)]
|
|
30675
30815
|
}] } });
|
|
30676
30816
|
|
|
30677
30817
|
class QdPageSubmitActionService {
|
|
@@ -34255,93 +34395,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
34255
34395
|
}]
|
|
34256
34396
|
}] });
|
|
34257
34397
|
|
|
34258
|
-
// @ts-strict-ignore
|
|
34259
|
-
/**
|
|
34260
|
-
* The **QdPageTab** is a single tab inside the **QdPageTabs** within a **QdPage**.
|
|
34261
|
-
*/
|
|
34262
|
-
class QdPageTabComponent extends CdkStep {
|
|
34263
|
-
translate = inject(TranslateService);
|
|
34264
|
-
/**
|
|
34265
|
-
* Configuration of QdPageTabComponent.
|
|
34266
|
-
*
|
|
34267
|
-
* * @note The use of CDK attributes is not permitted. Please configure this component here.
|
|
34268
|
-
*/
|
|
34269
|
-
config;
|
|
34270
|
-
/** Form control for this tab. */
|
|
34271
|
-
set tabControl(tabControl) {
|
|
34272
|
-
this.stepControl = tabControl;
|
|
34273
|
-
}
|
|
34274
|
-
get tabControl() {
|
|
34275
|
-
return this.stepControl;
|
|
34276
|
-
}
|
|
34277
|
-
infoBanners;
|
|
34278
|
-
_destroyed$ = new Subject();
|
|
34279
|
-
constructor() {
|
|
34280
|
-
const tabs = inject(QdPageTabsComponent);
|
|
34281
|
-
const stepperOptions = inject(STEPPER_GLOBAL_OPTIONS, { optional: true });
|
|
34282
|
-
super(tabs, stepperOptions);
|
|
34283
|
-
}
|
|
34284
|
-
ngOnInit() {
|
|
34285
|
-
this.validateLabel();
|
|
34286
|
-
if (this.tabControl)
|
|
34287
|
-
this.initErrorCheck();
|
|
34288
|
-
}
|
|
34289
|
-
ngOnChanges(changes) {
|
|
34290
|
-
super.ngOnChanges();
|
|
34291
|
-
['label', 'errorMessage', 'state']
|
|
34292
|
-
.filter(inputName => !!changes[inputName])
|
|
34293
|
-
.forEach(inputName => this.blockCdkInput(inputName));
|
|
34294
|
-
}
|
|
34295
|
-
ngOnDestroy() {
|
|
34296
|
-
this._destroyed$.complete();
|
|
34297
|
-
}
|
|
34298
|
-
blockCdkInput(inputName) {
|
|
34299
|
-
throw new Error(`Quadrel Framework | QdPageTab - The use of the "${inputName}" attribute is not permitted. Please use QdPageTabConfig instead.`);
|
|
34300
|
-
}
|
|
34301
|
-
validateLabel() {
|
|
34302
|
-
if (!this.config?.label?.i18n)
|
|
34303
|
-
console.error('Quadrel Framework | QdPageTab - Please provide a label for the tab.');
|
|
34304
|
-
}
|
|
34305
|
-
initErrorCheck() {
|
|
34306
|
-
this.tabControl.statusChanges.pipe(takeUntil$1(this._destroyed$)).subscribe(() => {
|
|
34307
|
-
if (this.hasAnyError(this.tabControl)) {
|
|
34308
|
-
this.interacted = true;
|
|
34309
|
-
}
|
|
34310
|
-
});
|
|
34311
|
-
}
|
|
34312
|
-
hasAnyError(control) {
|
|
34313
|
-
if (control.errors && control.touched)
|
|
34314
|
-
return true;
|
|
34315
|
-
if (control instanceof FormGroup) {
|
|
34316
|
-
return Object.values(control.controls).some(control => this.hasAnyError(control));
|
|
34317
|
-
}
|
|
34318
|
-
if (control instanceof FormArray) {
|
|
34319
|
-
return control.controls.some(control => this.hasAnyError(control));
|
|
34320
|
-
}
|
|
34321
|
-
return false;
|
|
34322
|
-
}
|
|
34323
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
34324
|
-
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: [
|
|
34325
|
-
{ provide: CdkStep, useExisting: QdPageTabComponent },
|
|
34326
|
-
{ provide: STEPPER_GLOBAL_OPTIONS, useValue: { showError: true } }
|
|
34327
|
-
], queries: [{ propertyName: "infoBanners", predicate: QdPageInfoBannerComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template>\n <div class=\"page-info-banners\">\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n\n <ng-content></ng-content>\n</ng-template>\n", styles: [".page-info-banners:has(>qd-page-info-banner:not(.qd-page-info-banner-empty)){padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}.page-info-banners>qd-page-info-banner:last-child{margin-bottom:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
34328
|
-
}
|
|
34329
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabComponent, decorators: [{
|
|
34330
|
-
type: Component,
|
|
34331
|
-
args: [{ selector: 'qd-page-tab', providers: [
|
|
34332
|
-
{ provide: CdkStep, useExisting: QdPageTabComponent },
|
|
34333
|
-
{ provide: STEPPER_GLOBAL_OPTIONS, useValue: { showError: true } }
|
|
34334
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true // inherited by CdkStep
|
|
34335
|
-
, template: "<ng-template>\n <div class=\"page-info-banners\">\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n\n <ng-content></ng-content>\n</ng-template>\n", styles: [".page-info-banners:has(>qd-page-info-banner:not(.qd-page-info-banner-empty)){padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}.page-info-banners>qd-page-info-banner:last-child{margin-bottom:0}\n"] }]
|
|
34336
|
-
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
34337
|
-
type: Input
|
|
34338
|
-
}], tabControl: [{
|
|
34339
|
-
type: Input
|
|
34340
|
-
}], infoBanners: [{
|
|
34341
|
-
type: ContentChildren,
|
|
34342
|
-
args: [QdPageInfoBannerComponent]
|
|
34343
|
-
}] } });
|
|
34344
|
-
|
|
34345
34398
|
/**
|
|
34346
34399
|
* **qdPageTabParameterize** turns the active page tab into the `tab` query parameter
|
|
34347
34400
|
* (`?tab=<name>`).
|
|
@@ -34372,7 +34425,6 @@ class QdPageTabsModule {
|
|
|
34372
34425
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
34373
34426
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabsModule, declarations: [QdPageTabsAdapterDirective], imports: [CommonModule,
|
|
34374
34427
|
TranslateModule,
|
|
34375
|
-
CdkStepperModule,
|
|
34376
34428
|
QdButtonModule,
|
|
34377
34429
|
QdIconModule,
|
|
34378
34430
|
QdPageTabsComponent,
|
|
@@ -34381,7 +34433,6 @@ class QdPageTabsModule {
|
|
|
34381
34433
|
QdPageTabHeaderCountersComponent], exports: [QdPageTabsComponent, QdPageTabComponent, QdPageTabsAdapterDirective] });
|
|
34382
34434
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabsModule, imports: [CommonModule,
|
|
34383
34435
|
TranslateModule,
|
|
34384
|
-
CdkStepperModule,
|
|
34385
34436
|
QdButtonModule,
|
|
34386
34437
|
QdIconModule,
|
|
34387
34438
|
QdPageTabsComponent] });
|
|
@@ -34392,7 +34443,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
34392
34443
|
imports: [
|
|
34393
34444
|
CommonModule,
|
|
34394
34445
|
TranslateModule,
|
|
34395
|
-
CdkStepperModule,
|
|
34396
34446
|
QdButtonModule,
|
|
34397
34447
|
QdIconModule,
|
|
34398
34448
|
QdPageTabsComponent,
|
|
@@ -35049,5 +35099,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
35049
35099
|
* Generated bundle index. Do not edit.
|
|
35050
35100
|
*/
|
|
35051
35101
|
|
|
35052
|
-
export { APP_ENVIRONMENT, AVAILABLE_ICONS, BACKEND_ERROR_CODES, MockLocaleDatePipe, NavigationTileComponent, NavigationTilesComponent, QD_DIALOG_CONFIRMATION_RESOLVER_TOKEN, QD_FILE_MANAGER_TOKEN, QD_FILE_UPLOAD_MANAGER_TOKEN, QD_FORM_OPTIONS_RESOLVER, QD_PAGE_OBJECT_RESOLVER_TOKEN, QD_PAGE_STEP_RESOLVER_TOKEN, QD_POPOVER_TOP_FIRST, QD_SAFE_BOTTOM_OFFSET, QD_TABLE_DATA_RESOLVER_TOKEN, QD_UPLOAD_HTTP_OPTIONS, QdButtonComponent, QdButtonGhostDirective, QdButtonGridComponent, QdButtonLinkDirective, QdButtonModule, QdButtonStackButtonComponent, QdButtonStackComponent, QdCheckboxChipsComponent, QdCheckboxComponent, QdCheckboxesComponent, QdChipComponent, QdChipModule, QdColumnAutoFillDirective, QdColumnBreakBeforeDirective, QdColumnDirective, QdColumnDisableResponsiveColspansDirective, QdColumnFullGridWidthDirective, QdColumnNextInSameRowDirective, QdColumnsDirective, QdColumnsDisableAutoFillDirective, QdColumnsDisableResponsiveColspansDirective, QdColumnsMaxDirective, QdCommentsComponent, QdCommentsModule, QdConnectFormStateToPageDirective, QdConnectorTableContextDirective, QdConnectorTableFilterDirective, QdConnectorTableSearchDirective, QdContactCardComponent, QdContactCardModule, QdContainerPairsCaptionComponent, QdContainerPairsContainerComponent, QdContainerPairsHeaderComponent, QdContainerPairsItemComponent, QdContainerPairsValueComponent, QdContextService, QdCoreModule, QdDatepickerComponent, QdDialogActionComponent, QdDialogAuthSessionEndComponent, QdDialogAuthSessionEndService, QdDialogComponent, QdDialogConfirmationComponent, QdDialogConfirmationErrorDirective, QdDialogConfirmationInfoDirective, QdDialogConfirmationSuccessDirective, QdDialogModule, QdDialogRecordStepperComponent, QdDialogService, QdDialogSize, QdDisabledDirective, QdDropdownComponent, QdFileCollectorComponent, QdFileCollectorModule, QdFileSizePipe$1 as QdFileSizePipe, QdFileUploadComponent, QdFileUploadService, QdFilterComponent, QdFilterFormItemsComponent, QdFilterModule, QdFilterRestParamBuilder, QdFilterService, QdFooterActionType, QdFormArray, QdFormBuilder, QdFormControl, QdFormGroup, QdFormModule, QdGridComponent, QdGridModule, QdHorizontalPairsCaptionComponent, QdHorizontalPairsComponent, QdHorizontalPairsItemComponent, QdHorizontalPairsValueComponent, QdIconButtonComponent, QdIconComponent, QdIconModule, QdImageComponent, QdImageModule, QdIndeterminateProgressBarComponent, QdInputComponent, QdListModule, QdMenuButtonComponent, QdMockBreakpointService, QdMockButtonComponent, QdMockButtonGhostDirective, QdMockButtonGridComponent, QdMockButtonLinkDirective, QdMockButtonModule, QdMockButtonStackButtonComponent, QdMockButtonStackComponent, QdMockCalendarComponent, QdMockCheckboxChipsComponent, QdMockCheckboxComponent, QdMockCheckboxesComponent, QdMockChipComponent, QdMockChipModule, QdMockColumnDirective, QdMockColumnsDirective, QdMockContactCardComponent, QdMockContactCardModule, QdMockContainerPairsCaptionComponent, QdMockContainerPairsContainerComponent, QdMockContainerPairsHeaderComponent, QdMockContainerPairsItemComponent, QdMockContainerPairsValueComponent, QdMockCoreModule, QdMockCounterBadgeComponent, QdMockDatepickerComponent, QdMockDisabledDirective, QdMockDropdownComponent, QdMockFileCollectorComponent, QdMockFileCollectorModule, QdMockFilterCategoryBooleanComponent, QdMockFilterCategoryComponent, QdMockFilterCategoryDateComponent, QdMockFilterCategoryDateRangeComponent, QdMockFilterCategoryFreeTextComponent, QdMockFilterCategorySelectComponent, QdMockFilterComponent, QdMockFilterFormItemsComponent, QdMockFilterItemBooleanComponent, QdMockFilterItemDateComponent, QdMockFilterItemDateRangeComponent, QdMockFilterItemFreeTextComponent, QdMockFilterItemMultiSelectComponent, QdMockFilterItemSingleSelectComponent, QdMockFilterModule, QdMockFilterService, QdMockFormErrorComponent, QdMockFormGroupErrorComponent, QdMockFormHintComponent, QdMockFormLabelComponent, QdMockFormReadonlyComponent, QdMockFormViewonlyComponent, QdMockFormsModule, QdMockGridModule, QdMockIconButtonComponent, QdMockIconComponent, QdMockIconModule, QdMockImageComponent, QdMockImageModule, QdMockIndeterminateProgressBarComponent, QdMockInputComponent, QdMockListModule, QdMockNavigationTileComponent, QdMockNavigationTilesComponent, QdMockNavigationTilesModule, QdMockNotificationComponent, QdMockNotificationContentComponent, QdMockNotificationsComponent, QdMockNotificationsModule, QdMockNotificationsService, QdMockPageComponent, QdMockPageModule, QdMockPercentageProgressBarComponent, QdMockPinCodeComponent, QdMockPlaceHolderModule, QdMockPopoverOnClickDirective, QdMockProgressBarModule, QdMockQdPlaceHolderComponent, QdMockRadioButtonsComponent, QdMockRwdDisabledDirective, QdMockSearchComponent, QdMockSearchModule, QdMockSectionComponent, QdMockSectionModule, QdMockShellComponent, QdMockShellFooterComponent, QdMockShellHeaderBannerComponent, QdMockShellHeaderComponent, QdMockShellHeaderSearchComponent, QdMockShellHeaderWidgetComponent, QdMockShellModule, QdMockShellToolbarComponent, QdMockShellToolbarItemComponent, QdMockStatusIndicatorCaptionComponent, QdMockStatusIndicatorComponent, QdMockStatusIndicatorItemComponent, QdMockStatusIndicatorModule, QdMockStatusPairsCaptionComponent, QdMockStatusPairsComponent, QdMockStatusPairsErrorComponent, QdMockStatusPairsItemComponent, QdMockStatusPairsValueComponent, QdMockSwitchComponent, QdMockSwitchesComponent, QdMockTableComponent, QdMockTableModule, QdMockTextSectionComponent, QdMockTextSectionHeadlineComponent, QdMockTextSectionModule, QdMockTextSectionParagraphComponent, QdMockTextareaComponent, QdMockTileButtonListComponent, QdMockTileComponent, QdMockTileTextListComponent, QdMockTileTextListItemComponent, QdMockTileTitleComponent, QdMockTilesContainerComponent, QdMockTilesContainerTitleComponent, QdMockTilesModule, QdMockTranslatePipe, QdMockVisuallyHiddenDirective, QdMultiInputComponent, QdNavigationTilesModule, QdNotificationComponent, QdNotificationContentComponent, QdNotificationsComponent, QdNotificationsHttpInterceptorService, QdNotificationsModule, QdNotificationsService, QdNotificationsSnackbarListenerDirective, QdNumberInputService, QdPageComponent, QdPageControlPanelComponent, QdPageFooterComponent, QdPageFooterCustomContentDirective, QdPageInfoBannerComponent, QdPageModule, QdPageStepComponent, QdPageStepperAdapterDirective, QdPageStepperComponent, QdPageStepperModule, QdPageStoreService, QdPageTabComponent, QdPageTabsAdapterDirective, QdPageTabsComponent, QdPageTabsModule, QdPanelSectionActionsComponent, QdPanelSectionComponent, QdPanelSectionModule, QdPanelSectionStatusComponent, QdPanelSectionTextParagraphComponent, QdPendingChangesGuardDirective, QdPercentageProgressBarComponent, QdPinCodeComponent, QdPlaceHolderComponent, QdPlaceHolderModule, QdPlaceholderPipe, QdProgressBarModule, QdProjectionGuardComponent, QdPushEventsService, QdQuickEditComponent, QdQuickEditModule, QdRadioButtonsComponent, QdRichtextComponent, QdRouterQueryParamHubService, QdRwdDisabledDirective, QdSearchComponent, QdSearchModule, QdSearchService, QdSectionAdapterDirective, QdSectionComponent, QdSectionModule, QdSectionToolbarComponent, QdShellComponent, QdShellModule, QdSortDirection, QdSpinnerComponent, QdSpinnerModule, QdStatusIndicatorComponent, QdStatusIndicatorModule, QdStatusPairsCaptionComponent, QdStatusPairsComponent, QdStatusPairsErrorComponent, QdStatusPairsItemComponent, QdStatusPairsValueComponent, QdSubgridComponent, QdSwitchComponent, QdSwitchesComponent, QdTableComponent, QdTableModule, QdTableSpringTools, QdTextSectionComponent, QdTextSectionHeadlineComponent, QdTextSectionModule, QdTextSectionParagraphComponent, QdTextareaComponent, QdTileButtonListComponent, QdTileComponent, QdTileTextListComponent, QdTileTextListItemComponent, QdTileTitleComponent, QdTilesComponent, QdTilesModule, QdTilesTitleComponent, QdTooltipAtIntersectionDirective, QdTooltipIconComponent, QdTreeComponent, QdTreeModule, QdTreeRowExpanderService, QdUiMockModule, QdUiModule, QdUploadErrorType, QdValidators, QdViewportAdaptiveDirective, QdVisuallyHiddenDirective, chipColorDefault, createMetadataStream, qdFilterParameterize, qdMergeParams, qdPageTabParameterize, qdPaginationParameterize, qdSearchParameterize, qdSortParameterize, qdTableQueryParameterize, qdWrapParams, quadrelIconNames, updateHtmlLang };
|
|
35102
|
+
export { APP_ENVIRONMENT, AVAILABLE_ICONS, BACKEND_ERROR_CODES, MockLocaleDatePipe, NavigationTileComponent, NavigationTilesComponent, QD_DIALOG_CONFIRMATION_RESOLVER_TOKEN, QD_FILE_MANAGER_TOKEN, QD_FILE_UPLOAD_MANAGER_TOKEN, QD_FORM_OPTIONS_RESOLVER, QD_PAGE_OBJECT_RESOLVER_TOKEN, QD_PAGE_STEP_RESOLVER_TOKEN, QD_POPOVER_TOP_FIRST, QD_SAFE_BOTTOM_OFFSET, QD_TABLE_DATA_RESOLVER_TOKEN, QD_UPLOAD_HTTP_OPTIONS, QdButtonComponent, QdButtonGhostDirective, QdButtonGridComponent, QdButtonLinkDirective, QdButtonModule, QdButtonStackButtonComponent, QdButtonStackComponent, QdCheckboxChipsComponent, QdCheckboxComponent, QdCheckboxesComponent, QdChipComponent, QdChipModule, QdColumnAutoFillDirective, QdColumnBreakBeforeDirective, QdColumnDirective, QdColumnDisableResponsiveColspansDirective, QdColumnFullGridWidthDirective, QdColumnNextInSameRowDirective, QdColumnsDirective, QdColumnsDisableAutoFillDirective, QdColumnsDisableResponsiveColspansDirective, QdColumnsMaxDirective, QdCommentsComponent, QdCommentsModule, QdConnectFormStateToPageDirective, QdConnectorTableContextDirective, QdConnectorTableFilterDirective, QdConnectorTableSearchDirective, QdContactCardComponent, QdContactCardModule, QdContainerPairsCaptionComponent, QdContainerPairsContainerComponent, QdContainerPairsHeaderComponent, QdContainerPairsItemComponent, QdContainerPairsValueComponent, QdContextService, QdCoreModule, QdDatepickerComponent, QdDialogActionComponent, QdDialogAuthSessionEndComponent, QdDialogAuthSessionEndService, QdDialogComponent, QdDialogConfirmationComponent, QdDialogConfirmationErrorDirective, QdDialogConfirmationInfoDirective, QdDialogConfirmationSuccessDirective, QdDialogModule, QdDialogRecordStepperComponent, QdDialogService, QdDialogSize, QdDisabledDirective, QdDropdownComponent, QdFileCollectorComponent, QdFileCollectorModule, QdFileSizePipe$1 as QdFileSizePipe, QdFileUploadComponent, QdFileUploadService, QdFilterComponent, QdFilterFormItemsComponent, QdFilterModule, QdFilterRestParamBuilder, QdFilterService, QdFooterActionType, QdFormArray, QdFormBuilder, QdFormControl, QdFormGroup, QdFormModule, QdGridComponent, QdGridModule, QdHorizontalPairsCaptionComponent, QdHorizontalPairsComponent, QdHorizontalPairsItemComponent, QdHorizontalPairsValueComponent, QdIconButtonComponent, QdIconComponent, QdIconModule, QdImageComponent, QdImageModule, QdIndeterminateProgressBarComponent, QdInputComponent, QdListModule, QdMenuButtonComponent, QdMockBreakpointService, QdMockButtonComponent, QdMockButtonGhostDirective, QdMockButtonGridComponent, QdMockButtonLinkDirective, QdMockButtonModule, QdMockButtonStackButtonComponent, QdMockButtonStackComponent, QdMockCalendarComponent, QdMockCheckboxChipsComponent, QdMockCheckboxComponent, QdMockCheckboxesComponent, QdMockChipComponent, QdMockChipModule, QdMockColumnDirective, QdMockColumnsDirective, QdMockContactCardComponent, QdMockContactCardModule, QdMockContainerPairsCaptionComponent, QdMockContainerPairsContainerComponent, QdMockContainerPairsHeaderComponent, QdMockContainerPairsItemComponent, QdMockContainerPairsValueComponent, QdMockCoreModule, QdMockCounterBadgeComponent, QdMockDatepickerComponent, QdMockDisabledDirective, QdMockDropdownComponent, QdMockFileCollectorComponent, QdMockFileCollectorModule, QdMockFilterCategoryBooleanComponent, QdMockFilterCategoryComponent, QdMockFilterCategoryDateComponent, QdMockFilterCategoryDateRangeComponent, QdMockFilterCategoryFreeTextComponent, QdMockFilterCategorySelectComponent, QdMockFilterComponent, QdMockFilterFormItemsComponent, QdMockFilterItemBooleanComponent, QdMockFilterItemDateComponent, QdMockFilterItemDateRangeComponent, QdMockFilterItemFreeTextComponent, QdMockFilterItemMultiSelectComponent, QdMockFilterItemSingleSelectComponent, QdMockFilterModule, QdMockFilterService, QdMockFormErrorComponent, QdMockFormGroupErrorComponent, QdMockFormHintComponent, QdMockFormLabelComponent, QdMockFormReadonlyComponent, QdMockFormViewonlyComponent, QdMockFormsModule, QdMockGridModule, QdMockIconButtonComponent, QdMockIconComponent, QdMockIconModule, QdMockImageComponent, QdMockImageModule, QdMockIndeterminateProgressBarComponent, QdMockInputComponent, QdMockListModule, QdMockNavigationTileComponent, QdMockNavigationTilesComponent, QdMockNavigationTilesModule, QdMockNotificationComponent, QdMockNotificationContentComponent, QdMockNotificationsComponent, QdMockNotificationsModule, QdMockNotificationsService, QdMockPageComponent, QdMockPageModule, QdMockPercentageProgressBarComponent, QdMockPinCodeComponent, QdMockPlaceHolderModule, QdMockPopoverOnClickDirective, QdMockProgressBarModule, QdMockQdPlaceHolderComponent, QdMockRadioButtonsComponent, QdMockRwdDisabledDirective, QdMockSearchComponent, QdMockSearchModule, QdMockSectionComponent, QdMockSectionModule, QdMockShellComponent, QdMockShellFooterComponent, QdMockShellHeaderBannerComponent, QdMockShellHeaderComponent, QdMockShellHeaderSearchComponent, QdMockShellHeaderWidgetComponent, QdMockShellModule, QdMockShellToolbarComponent, QdMockShellToolbarItemComponent, QdMockStatusIndicatorCaptionComponent, QdMockStatusIndicatorComponent, QdMockStatusIndicatorItemComponent, QdMockStatusIndicatorModule, QdMockStatusPairsCaptionComponent, QdMockStatusPairsComponent, QdMockStatusPairsErrorComponent, QdMockStatusPairsItemComponent, QdMockStatusPairsValueComponent, QdMockSwitchComponent, QdMockSwitchesComponent, QdMockTableComponent, QdMockTableModule, QdMockTextSectionComponent, QdMockTextSectionHeadlineComponent, QdMockTextSectionModule, QdMockTextSectionParagraphComponent, QdMockTextareaComponent, QdMockTileButtonListComponent, QdMockTileComponent, QdMockTileTextListComponent, QdMockTileTextListItemComponent, QdMockTileTitleComponent, QdMockTilesContainerComponent, QdMockTilesContainerTitleComponent, QdMockTilesModule, QdMockTranslatePipe, QdMockVisuallyHiddenDirective, QdMultiInputComponent, QdNavigationTilesModule, QdNotificationComponent, QdNotificationContentComponent, QdNotificationsComponent, QdNotificationsHttpInterceptorService, QdNotificationsModule, QdNotificationsService, QdNotificationsSnackbarListenerDirective, QdNumberInputService, QdPageComponent, QdPageControlPanelComponent, QdPageFooterComponent, QdPageFooterCustomContentDirective, QdPageInfoBannerComponent, QdPageModule, QdPageStepComponent, QdPageStepperAdapterDirective, QdPageStepperComponent, QdPageStepperModule, QdPageStoreService, QdPageTabComponent, QdPageTabsAdapterDirective, QdPageTabsComponent, QdPageTabsModule, QdPanelSectionActionsComponent, QdPanelSectionComponent, QdPanelSectionModule, QdPanelSectionStatusComponent, QdPanelSectionTextParagraphComponent, QdPendingChangesGuardDirective, QdPercentageProgressBarComponent, QdPinCodeComponent, QdPlaceHolderComponent, QdPlaceHolderModule, QdPlaceholderPipe, QdProgressBarModule, QdProjectionGuardComponent, QdPushEventsService, QdQuickEditComponent, QdQuickEditModule, QdRadioButtonsComponent, QdRichtextComponent, QdRouterQueryParamHubService, QdRwdDisabledDirective, QdSearchComponent, QdSearchModule, QdSearchService, QdSectionAdapterDirective, QdSectionComponent, QdSectionModule, QdSectionToolbarComponent, QdShellComponent, QdShellModule, QdSortDirection, QdSpinnerComponent, QdSpinnerModule, QdStatusIndicatorComponent, QdStatusIndicatorModule, QdStatusPairsCaptionComponent, QdStatusPairsComponent, QdStatusPairsErrorComponent, QdStatusPairsItemComponent, QdStatusPairsValueComponent, QdSubgridComponent, QdSwitchComponent, QdSwitchesComponent, QdTableComponent, QdTableModule, QdTableSpringTools, QdTextSectionComponent, QdTextSectionHeadlineComponent, QdTextSectionModule, QdTextSectionParagraphComponent, QdTextareaComponent, QdTileButtonListComponent, QdTileComponent, QdTileTextListComponent, QdTileTextListItemComponent, QdTileTitleComponent, QdTilesComponent, QdTilesModule, QdTilesTitleComponent, QdTooltipAtIntersectionDirective, QdTooltipIconComponent, QdTreeComponent, QdTreeModule, QdTreeRowExpanderService, QdUiMockModule, QdUiModule, QdUploadErrorType, QdValidators, QdViewportAdaptiveDirective, QdVisuallyHiddenDirective, WHITELIST_ERROR_CODES, chipColorDefault, createMetadataStream, qdFilterParameterize, qdMergeParams, qdPageTabParameterize, qdPaginationParameterize, qdSearchParameterize, qdSortParameterize, qdTableQueryParameterize, qdWrapParams, quadrelIconNames, updateHtmlLang };
|
|
35053
35103
|
//# sourceMappingURL=quadrel-enterprise-ui-framework.mjs.map
|