@quadrel-enterprise-ui/framework 20.11.1 → 20.11.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.
|
@@ -52,7 +52,7 @@ class QdButtonLinkDirective {
|
|
|
52
52
|
ngOnInit() {
|
|
53
53
|
// TODO: Delete directive "qd-button-link" in Version 21
|
|
54
54
|
if (this._elementRef.nativeElement.attributes.hasOwnProperty('qd-button-link')) {
|
|
55
|
-
console.warn('
|
|
55
|
+
console.warn('Quadrel Framework | QdButtonLink - The directive "qd-button-link" is deprecated. Please use "qdButtonLink" instead.');
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdButtonLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -649,7 +649,7 @@ class QdIconComponent {
|
|
|
649
649
|
this.iconCode = icon.htmlEntity;
|
|
650
650
|
}
|
|
651
651
|
if (!icon) {
|
|
652
|
-
console.error(`
|
|
652
|
+
console.error(`Quadrel Framework | QdIcon - "${this.icon}" does not appear to be a valid Quadrel Icon. Please check documentation for available icons.`);
|
|
653
653
|
}
|
|
654
654
|
}
|
|
655
655
|
insertIconSvgOnce() {
|
|
@@ -698,7 +698,7 @@ class QdSnackbarService {
|
|
|
698
698
|
if (this.isPausing)
|
|
699
699
|
return;
|
|
700
700
|
if (!this._overlayRef) {
|
|
701
|
-
console.error('
|
|
701
|
+
console.error('Quadrel Framework | QdNotifications - You are trying to open a notification as snackbar but there is no Snackbar Listener initialized.');
|
|
702
702
|
return;
|
|
703
703
|
}
|
|
704
704
|
this._notificationsSubject.next([...this._notificationsSubject.value, notification]);
|
|
@@ -916,7 +916,7 @@ class QdNotificationsService {
|
|
|
916
916
|
return;
|
|
917
917
|
if (this.zeroToInfinity(snackbarNotificationLifeTime) >
|
|
918
918
|
this.zeroToInfinity(this.getNotificationLifeTime(notification))) {
|
|
919
|
-
console.warn('The life time of the snackbar notification must be shorter than the life time of the main notification.');
|
|
919
|
+
console.warn('Quadrel Framework | QdNotifications - The life time of the snackbar notification must be shorter than the life time of the main notification.');
|
|
920
920
|
return;
|
|
921
921
|
}
|
|
922
922
|
setTimeout(() => this.snackbarService.close(notification.uuid), snackbarNotificationLifeTime * 1000);
|
|
@@ -926,7 +926,7 @@ class QdNotificationsService {
|
|
|
926
926
|
if (osNotificationLifeTime === undefined)
|
|
927
927
|
return;
|
|
928
928
|
if (this.zeroToInfinity(osNotificationLifeTime) > this.zeroToInfinity(this.getNotificationLifeTime(notification))) {
|
|
929
|
-
console.warn('The life time of the OS notification must be shorter than the life time of the main notification.');
|
|
929
|
+
console.warn('Quadrel Framework | QdNotifications - The life time of the OS notification must be shorter than the life time of the main notification.');
|
|
930
930
|
return;
|
|
931
931
|
}
|
|
932
932
|
setTimeout(() => this.osNotificationsService.close(notification.uuid), osNotificationLifeTime * 1000);
|
|
@@ -1046,7 +1046,7 @@ class QdButtonComponent {
|
|
|
1046
1046
|
ngOnInit() {
|
|
1047
1047
|
// TODO: Delete directive "qd-button" in Version 20
|
|
1048
1048
|
if (this._elementRef.nativeElement.attributes.hasOwnProperty('qd-button')) {
|
|
1049
|
-
console.warn('
|
|
1049
|
+
console.warn('Quadrel Framework | QdButton - The directive "qd-button" is deprecated. Please use "qdButton" instead.');
|
|
1050
1050
|
}
|
|
1051
1051
|
}
|
|
1052
1052
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -1265,7 +1265,7 @@ class QdDialogService {
|
|
|
1265
1265
|
this.clearPageDialogCanCloseForce();
|
|
1266
1266
|
this.updateDialogData(data);
|
|
1267
1267
|
if (!this.pageDialogHost)
|
|
1268
|
-
throw new Error('
|
|
1268
|
+
throw new Error('Quadrel Framework | QdDialog - Page dialog host component is not provided.');
|
|
1269
1269
|
this.open(this.pageDialogHost, { dialogSize: QdDialogSize.FullWidth });
|
|
1270
1270
|
this.navigateInsideDialog(routePath || this.getFirstDialogOutletRoutePathOrThrow());
|
|
1271
1271
|
}
|
|
@@ -1326,7 +1326,7 @@ class QdDialogService {
|
|
|
1326
1326
|
getFirstDialogOutletRoutePathOrThrow() {
|
|
1327
1327
|
const firstDialogOutletRoutePath = this.router.config.find(route => route.outlet === 'dialog')?.path;
|
|
1328
1328
|
if (!firstDialogOutletRoutePath || this.hasRoutePathParameters(firstDialogOutletRoutePath)) {
|
|
1329
|
-
throw new Error('
|
|
1329
|
+
throw new Error('Quadrel Framework | QdDialog - Please provide a route for the openPageDialogWithBreadcrumbs method. ' +
|
|
1330
1330
|
'The main dialog route could not be determined automatically.');
|
|
1331
1331
|
}
|
|
1332
1332
|
return firstDialogOutletRoutePath;
|
|
@@ -1368,7 +1368,7 @@ class QdIconButtonComponent {
|
|
|
1368
1368
|
ngOnInit() {
|
|
1369
1369
|
// TODO: Delete directive "qd-icon-button" in Version 15
|
|
1370
1370
|
if (this._elementRef.nativeElement.attributes.hasOwnProperty('qd-icon-button')) {
|
|
1371
|
-
console.warn('
|
|
1371
|
+
console.warn('Quadrel Framework | QdIconButton - The directive "qd-icon-button" is deprecated. Please use "qdIconButton" instead.');
|
|
1372
1372
|
}
|
|
1373
1373
|
}
|
|
1374
1374
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -6690,7 +6690,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
6690
6690
|
class QdProjectionGuardComponent {
|
|
6691
6691
|
elementRef = inject(ElementRef);
|
|
6692
6692
|
isDisabled = false;
|
|
6693
|
-
warningMessage = '
|
|
6693
|
+
warningMessage = 'Quadrel Framework | QdProjectionGuard - This content is not supported and cannot be displayed:';
|
|
6694
6694
|
wildcardSlot;
|
|
6695
6695
|
ngAfterContentInit() {
|
|
6696
6696
|
if (this.isDisabled)
|
|
@@ -7100,10 +7100,10 @@ class QdPushEventsService {
|
|
|
7100
7100
|
this._listeners = [];
|
|
7101
7101
|
}
|
|
7102
7102
|
logWarn(message) {
|
|
7103
|
-
console.warn(`
|
|
7103
|
+
console.warn(`Quadrel Framework | QdPushEvents - ${message}`);
|
|
7104
7104
|
}
|
|
7105
7105
|
logError(message, err) {
|
|
7106
|
-
console.error(`
|
|
7106
|
+
console.error(`Quadrel Framework | QdPushEvents - ${message}`, err);
|
|
7107
7107
|
}
|
|
7108
7108
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPushEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7109
7109
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPushEventsService, providedIn: 'root' });
|
|
@@ -7180,7 +7180,7 @@ class QdTooltipOnClickDirective {
|
|
|
7180
7180
|
truncateText(text) {
|
|
7181
7181
|
if (text.length <= MAX_TOOLTIP_CHARACTER)
|
|
7182
7182
|
return text.trim();
|
|
7183
|
-
console.warn(`
|
|
7183
|
+
console.warn(`Quadrel Framework | QdTooltip - Tooltip content exceeds ${MAX_TOOLTIP_CHARACTER} characters. It will be truncated.`);
|
|
7184
7184
|
return `${text.substring(0, MAX_TOOLTIP_CHARACTER).trim()}...`;
|
|
7185
7185
|
}
|
|
7186
7186
|
translate(key) {
|
|
@@ -7871,7 +7871,7 @@ class QdAutofocusDirective {
|
|
|
7871
7871
|
if (!this.qdAutofocus)
|
|
7872
7872
|
return;
|
|
7873
7873
|
if (this.autofocusService.isAutofocusActivated) {
|
|
7874
|
-
console.warn('
|
|
7874
|
+
console.warn('Quadrel Framework | QdAutofocus - "hasAutofocus" can be used only once.');
|
|
7875
7875
|
return;
|
|
7876
7876
|
}
|
|
7877
7877
|
this.autofocusService.isAutofocusActivated = true;
|
|
@@ -8194,7 +8194,7 @@ class QdEventBrokerService {
|
|
|
8194
8194
|
}
|
|
8195
8195
|
consume(topic) {
|
|
8196
8196
|
if (!this._topics.has(topic)) {
|
|
8197
|
-
console.warn(`
|
|
8197
|
+
console.warn(`Quadrel Framework | QdEventBroker - Topic "${topic}" does not exist.`);
|
|
8198
8198
|
return EMPTY;
|
|
8199
8199
|
}
|
|
8200
8200
|
return this._topics.get(topic).pipe(filter(event => event.payload != null), distinctUntilChanged((prev, curr) => isEqual(prev, curr)), shareReplay(1));
|
|
@@ -8558,11 +8558,11 @@ class QdCheckboxChipsComponent {
|
|
|
8558
8558
|
if (this.formControlName) {
|
|
8559
8559
|
this.control = this.controlContainer.control.get(this.formControlName);
|
|
8560
8560
|
if (!(this.control instanceof QdFormControl)) {
|
|
8561
|
-
console.warn('
|
|
8561
|
+
console.warn('Quadrel Framework | QdCheckboxChips - Please use the QdFormControl instead of the Angular FormControl.');
|
|
8562
8562
|
}
|
|
8563
8563
|
}
|
|
8564
8564
|
else {
|
|
8565
|
-
console.warn('
|
|
8565
|
+
console.warn('Quadrel Framework | QdCheckboxChips - Missing FormControlName directive from host element of the component.');
|
|
8566
8566
|
}
|
|
8567
8567
|
}
|
|
8568
8568
|
this._subs.add(this.actionEmitterService.hintEventEmitter$.subscribe(() => this.clickHint.emit()));
|
|
@@ -9010,7 +9010,7 @@ class QdCheckboxesComponent {
|
|
|
9010
9010
|
this.control = this.controlContainer.control.get(this.formControlName);
|
|
9011
9011
|
}
|
|
9012
9012
|
else {
|
|
9013
|
-
console.warn('
|
|
9013
|
+
console.warn('Quadrel Framework | QdCheckboxGroup - Missing FormControlName directive from host element of the component.');
|
|
9014
9014
|
}
|
|
9015
9015
|
}
|
|
9016
9016
|
this.setInitialValues();
|
|
@@ -9604,7 +9604,7 @@ class QdFormOptionsResolverRegistry {
|
|
|
9604
9604
|
return null;
|
|
9605
9605
|
const matches = this.resolvers.filter(r => r?.name === this.resolverName);
|
|
9606
9606
|
if (matches.length > 1)
|
|
9607
|
-
throw new Error(`
|
|
9607
|
+
throw new Error(`Quadrel Framework | QdForms - Multiple QdFormOptionsResolvers with the name "${this.resolverName}" found. Resolver names must be unique.`);
|
|
9608
9608
|
return matches[0] ?? null;
|
|
9609
9609
|
}
|
|
9610
9610
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdFormOptionsResolverRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -9704,9 +9704,9 @@ class QdFormOptionsService {
|
|
|
9704
9704
|
}
|
|
9705
9705
|
validateOptionsSetup(componentName) {
|
|
9706
9706
|
if (!this.hasOptions())
|
|
9707
|
-
console.warn(`
|
|
9707
|
+
console.warn(`Quadrel Framework | ${componentName} - No options defined. Either provide "options" or configure a resolver via "optionsResolverName".`);
|
|
9708
9708
|
if (this._config?.options?.length && this._resolver)
|
|
9709
|
-
console.warn(`
|
|
9709
|
+
console.warn(`Quadrel Framework | ${componentName} - Config key "options" ignored because QD_FORM_OPTIONS_RESOLVER is configured.`);
|
|
9710
9710
|
}
|
|
9711
9711
|
load(value) {
|
|
9712
9712
|
if (value === this._lastLoadedValue)
|
|
@@ -10203,7 +10203,7 @@ class QdDropdownComponent {
|
|
|
10203
10203
|
this.control = directive.control;
|
|
10204
10204
|
return;
|
|
10205
10205
|
}
|
|
10206
|
-
console.warn('
|
|
10206
|
+
console.warn('Quadrel Framework | QdDropdown - Missing FormControlName directive from host element of the component.');
|
|
10207
10207
|
}
|
|
10208
10208
|
updateConfiguration() {
|
|
10209
10209
|
this.label = getLabel(this.config);
|
|
@@ -10612,8 +10612,8 @@ class QdInputOptionsDirective extends QdPopoverOnClickDirective {
|
|
|
10612
10612
|
}
|
|
10613
10613
|
logWarningIfBothOptionsAndResolverAreUsed() {
|
|
10614
10614
|
if (this.config?.options && this.config.options.length > 0 && !!this._optionsResolver) {
|
|
10615
|
-
console.warn('
|
|
10616
|
-
'the options will be ignored
|
|
10615
|
+
console.warn('Quadrel Framework | QdInput - If both options and QD_FORM_OPTIONS_RESOLVER are used, ' +
|
|
10616
|
+
'the options will be ignored.');
|
|
10617
10617
|
}
|
|
10618
10618
|
}
|
|
10619
10619
|
closePopover() {
|
|
@@ -11051,7 +11051,7 @@ class QdInputComponent {
|
|
|
11051
11051
|
this.control = this.controlContainer.control.get(this.formControlName);
|
|
11052
11052
|
// TODO remove logic for support of angular FormControl with angular 20 update
|
|
11053
11053
|
if (!(this.control instanceof QdFormControl))
|
|
11054
|
-
console.warn('
|
|
11054
|
+
console.warn('Quadrel Framework | QdInput - Please use the QdFormControl instead of the Angular FormControl.');
|
|
11055
11055
|
}
|
|
11056
11056
|
}
|
|
11057
11057
|
this.writeValue(this.value ?? getValue(this.config));
|
|
@@ -11576,7 +11576,7 @@ class QdDatepickerComponent {
|
|
|
11576
11576
|
this.control = this.controlContainer.control.get(this.formControlName);
|
|
11577
11577
|
}
|
|
11578
11578
|
else {
|
|
11579
|
-
console.warn('
|
|
11579
|
+
console.warn('Quadrel Framework | QdDatepicker - Missing FormControlName directive from host element of the component.');
|
|
11580
11580
|
}
|
|
11581
11581
|
}
|
|
11582
11582
|
initInnerControl() {
|
|
@@ -12147,7 +12147,7 @@ class QdTranslateService {
|
|
|
12147
12147
|
else if (translatable.translation) {
|
|
12148
12148
|
translation = translatable.translation[this.translateService.currentLang || 'de'];
|
|
12149
12149
|
if (translation === undefined) {
|
|
12150
|
-
console.error(`Language "${this.translateService.currentLang}" is not implemented
|
|
12150
|
+
console.error(`Quadrel Framework | QdTranslate - Language "${this.translateService.currentLang}" is not implemented.`);
|
|
12151
12151
|
}
|
|
12152
12152
|
}
|
|
12153
12153
|
return translation || '';
|
|
@@ -12732,21 +12732,7 @@ function removeListItem(list, el) {
|
|
|
12732
12732
|
if (index > -1)
|
|
12733
12733
|
list.splice(index, 1);
|
|
12734
12734
|
}
|
|
12735
|
-
const validatorsDroppedWithOptsWarning =
|
|
12736
|
-
It looks like you're constructing using a QdFormControl with both an options argument and an
|
|
12737
|
-
validators argument. Mixing these arguments will cause your validators in the argument to be dropped.
|
|
12738
|
-
You should either put all your validators in the options object, or in separate validators
|
|
12739
|
-
arguments. For example:
|
|
12740
|
-
|
|
12741
|
-
// Using validators arguments
|
|
12742
|
-
fc = new QdFormControl(42, Validators.required, myAsyncValidator);
|
|
12743
|
-
|
|
12744
|
-
// Using AbstractControlOptions
|
|
12745
|
-
fc = new QdFormControl(42, {validators: Validators.required, asyncValidators: myAV});
|
|
12746
|
-
|
|
12747
|
-
// Do NOT mix them: validators in additional argument will be dropped!
|
|
12748
|
-
fc = new QdFormControl(42, {validators: Validators.required}, /* Oops! */ myAsyncValidator);
|
|
12749
|
-
`;
|
|
12735
|
+
const validatorsDroppedWithOptsWarning = 'Quadrel Framework | QdForms - QdFormControl received both an options object and a separate validators argument. The standalone validators argument is dropped. Pass all validators inside the options object or via the separate arguments, not both.';
|
|
12750
12736
|
|
|
12751
12737
|
function hasUnit(control) {
|
|
12752
12738
|
return control.value?.value != null && control.value?.unit != null;
|
|
@@ -13113,7 +13099,7 @@ class QdMultiInputComponent {
|
|
|
13113
13099
|
* TODO remove logic for support of [formControlName] directive and FormControl with angular 14 update
|
|
13114
13100
|
*/
|
|
13115
13101
|
set formControlName(formControlName) {
|
|
13116
|
-
console.warn('
|
|
13102
|
+
console.warn('Quadrel Framework | QdMultiInput - Please use <qd-multi-input> with the QdFormArray form control and the [formArrayName] directive.');
|
|
13117
13103
|
this._formControlName = formControlName;
|
|
13118
13104
|
}
|
|
13119
13105
|
get formControlName() {
|
|
@@ -13223,7 +13209,7 @@ class QdMultiInputComponent {
|
|
|
13223
13209
|
if (this.formArrayName) {
|
|
13224
13210
|
const formArray = this.controlContainer.control.get(this.formArrayName);
|
|
13225
13211
|
if (!formArray) {
|
|
13226
|
-
console.warn('
|
|
13212
|
+
console.warn('Quadrel Framework | QdMultiInput - No form control found for the provided [formArrayName]', this.formArrayName);
|
|
13227
13213
|
return;
|
|
13228
13214
|
}
|
|
13229
13215
|
// Updating form array programmatically from outside
|
|
@@ -13242,7 +13228,7 @@ class QdMultiInputComponent {
|
|
|
13242
13228
|
else {
|
|
13243
13229
|
// TODO remove logic for support of Angular FormControl with angular 19 update
|
|
13244
13230
|
this.formArray = this.qdFormArrayFactoryService.createQdFormArrayFromFormControl(formArray);
|
|
13245
|
-
console.warn('
|
|
13231
|
+
console.warn('Quadrel Framework | QdMultiInput - Please use <qd-multi-input> with the QdFormArray form control.');
|
|
13246
13232
|
}
|
|
13247
13233
|
this.disabled = formArray.disabled;
|
|
13248
13234
|
this._onDisabledChange = (disabled) => {
|
|
@@ -13251,7 +13237,7 @@ class QdMultiInputComponent {
|
|
|
13251
13237
|
this.formArray.registerOnDisabledChange(this._onDisabledChange);
|
|
13252
13238
|
}
|
|
13253
13239
|
else {
|
|
13254
|
-
console.warn('
|
|
13240
|
+
console.warn('Quadrel Framework | QdMultiInput - Missing [formArrayName] directive from host element of the component.');
|
|
13255
13241
|
}
|
|
13256
13242
|
}
|
|
13257
13243
|
ngOnChanges(changes) {
|
|
@@ -13777,7 +13763,7 @@ class QdPinCodeComponent {
|
|
|
13777
13763
|
this.control = this.controlContainer.control.get(this.formControlName);
|
|
13778
13764
|
}
|
|
13779
13765
|
else {
|
|
13780
|
-
console.warn('
|
|
13766
|
+
console.warn('Quadrel Framework | QdPinCode - Missing FormControlName directive from host element of the component.');
|
|
13781
13767
|
}
|
|
13782
13768
|
}
|
|
13783
13769
|
this._subs.add(this.actionEmitterService.hintEventEmitter$.subscribe(() => this.clickHint.emit()));
|
|
@@ -14237,7 +14223,7 @@ class QdRadioButtonsComponent {
|
|
|
14237
14223
|
this.control = this.controlContainer.control.get(this.formControlName);
|
|
14238
14224
|
}
|
|
14239
14225
|
else {
|
|
14240
|
-
console.warn('
|
|
14226
|
+
console.warn('Quadrel Framework | QdRadioButtons - Missing FormControlName directive from host element of the component.');
|
|
14241
14227
|
}
|
|
14242
14228
|
}
|
|
14243
14229
|
this.initRadioButtonList();
|
|
@@ -14642,7 +14628,7 @@ class QdRichtextComponent {
|
|
|
14642
14628
|
this.control = this.controlContainer.control?.get(this.formControlName) ?? undefined;
|
|
14643
14629
|
}
|
|
14644
14630
|
else {
|
|
14645
|
-
console.warn('
|
|
14631
|
+
console.warn('Quadrel Framework | QdSwitches - Missing FormControlName directive from host element of the component.');
|
|
14646
14632
|
}
|
|
14647
14633
|
}
|
|
14648
14634
|
this._subs.add(this.actionEmitterService.hintEventEmitter$.subscribe(() => this.clickHint.emit()));
|
|
@@ -14967,7 +14953,7 @@ class QdSwitchesComponent {
|
|
|
14967
14953
|
this.control = this.controlContainer.control.get(this.formControlName);
|
|
14968
14954
|
}
|
|
14969
14955
|
else {
|
|
14970
|
-
console.warn('
|
|
14956
|
+
console.warn('Quadrel Framework | QdSwitches - Missing FormControlName directive from host element of the component.');
|
|
14971
14957
|
}
|
|
14972
14958
|
}
|
|
14973
14959
|
this.switchesService.setList(this.options);
|
|
@@ -15235,11 +15221,11 @@ class QdTextareaComponent {
|
|
|
15235
15221
|
this.control = this.controlContainer.control.get(this.formControlName);
|
|
15236
15222
|
// TODO remove logic for support of angular FormControl with angular 18 update
|
|
15237
15223
|
if (!(this.control instanceof QdFormControl)) {
|
|
15238
|
-
console.warn('
|
|
15224
|
+
console.warn('Quadrel Framework | QdTextarea - Please use the QdFormControl instead of the Angular FormControl.');
|
|
15239
15225
|
}
|
|
15240
15226
|
}
|
|
15241
15227
|
else {
|
|
15242
|
-
console.warn('
|
|
15228
|
+
console.warn('Quadrel Framework | QdTextarea - Missing FormControlName directive from host element of the component.');
|
|
15243
15229
|
}
|
|
15244
15230
|
}
|
|
15245
15231
|
this.valueForView = this.value || getValue(this.config);
|
|
@@ -16296,7 +16282,7 @@ class QdButtonStackButtonComponent {
|
|
|
16296
16282
|
ngOnInit() {
|
|
16297
16283
|
// TODO: Delete directive "qd-button-stack" in Version 15
|
|
16298
16284
|
if (this._elementRef.nativeElement.attributes.hasOwnProperty('qd-button-stack')) {
|
|
16299
|
-
console.warn('
|
|
16285
|
+
console.warn('Quadrel Framework | QdButtonStack - The directive "qd-button-stack" is deprecated. Please use "qdButtonStack" instead.');
|
|
16300
16286
|
}
|
|
16301
16287
|
}
|
|
16302
16288
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdButtonStackButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -16389,7 +16375,7 @@ class QdMenuButtonComponent {
|
|
|
16389
16375
|
}
|
|
16390
16376
|
ngOnInit() {
|
|
16391
16377
|
if (!this.config)
|
|
16392
|
-
console.error('
|
|
16378
|
+
console.error('Quadrel Framework | QdMenuButton - Please provide a valid config.');
|
|
16393
16379
|
}
|
|
16394
16380
|
hasUnhiddenActions() {
|
|
16395
16381
|
return this.config?.actions?.some(action => !action.isHidden) ?? false;
|
|
@@ -16648,7 +16634,7 @@ class QdColumnAutoFillDirective {
|
|
|
16648
16634
|
}
|
|
16649
16635
|
}
|
|
16650
16636
|
logErrorMessage(message) {
|
|
16651
|
-
console.error(
|
|
16637
|
+
console.error(`Quadrel Framework | QdColumnAutoFill - ${message}`);
|
|
16652
16638
|
}
|
|
16653
16639
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdColumnAutoFillDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16654
16640
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: QdColumnAutoFillDirective, isStandalone: false, selector: "[qdColumnAutoFill]", ngImport: i0 });
|
|
@@ -16697,7 +16683,7 @@ class QdColumnsDisableAutoFillDirective {
|
|
|
16697
16683
|
}
|
|
16698
16684
|
}
|
|
16699
16685
|
logErrorMessage(message) {
|
|
16700
|
-
console.error(
|
|
16686
|
+
console.error(`Quadrel Framework | QdColumnsDisableAutoFill - ${message}`);
|
|
16701
16687
|
}
|
|
16702
16688
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdColumnsDisableAutoFillDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16703
16689
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: QdColumnsDisableAutoFillDirective, isStandalone: false, selector: "[qdColumnsDisableAutoFill]", ngImport: i0 });
|
|
@@ -16971,7 +16957,7 @@ class QdColumnDisableResponsiveColspansDirective {
|
|
|
16971
16957
|
}
|
|
16972
16958
|
}
|
|
16973
16959
|
logErrorMessage(message) {
|
|
16974
|
-
console.error(
|
|
16960
|
+
console.error(`Quadrel Framework | QdColumnDisableResponsiveColspans - ${message}`);
|
|
16975
16961
|
}
|
|
16976
16962
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdColumnDisableResponsiveColspansDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16977
16963
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: QdColumnDisableResponsiveColspansDirective, isStandalone: false, selector: "[qdColumnDisableResponsiveColspans]", ngImport: i0 });
|
|
@@ -17030,7 +17016,7 @@ class QdColumnsMaxDirective {
|
|
|
17030
17016
|
}
|
|
17031
17017
|
}
|
|
17032
17018
|
logErrorMessage(message) {
|
|
17033
|
-
console.error(
|
|
17019
|
+
console.error(`Quadrel Framework | QdColumnsMax - ${message}`);
|
|
17034
17020
|
}
|
|
17035
17021
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdColumnsMaxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17036
17022
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: QdColumnsMaxDirective, isStandalone: false, selector: "[qdColumnsMax]", inputs: { qdColumnsMax: "qdColumnsMax" }, ngImport: i0 });
|
|
@@ -17197,7 +17183,7 @@ class QdColumnBreakBeforeDirective {
|
|
|
17197
17183
|
}
|
|
17198
17184
|
}
|
|
17199
17185
|
logErrorMessage(message) {
|
|
17200
|
-
console.error(
|
|
17186
|
+
console.error(`Quadrel Framework | QdColumnBreakBefore - ${message}`);
|
|
17201
17187
|
}
|
|
17202
17188
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdColumnBreakBeforeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17203
17189
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: QdColumnBreakBeforeDirective, isStandalone: false, selector: "[qdColumnBreakBefore]", ngImport: i0 });
|
|
@@ -17248,7 +17234,7 @@ class QdColumnNextInSameRowDirective {
|
|
|
17248
17234
|
}
|
|
17249
17235
|
if (!nextSiblingColspan) {
|
|
17250
17236
|
this.logErrorMessage('The next sibling of the element marked with qdColumnNextInSameRow ' +
|
|
17251
|
-
'has to be an element with a qdColumn directive
|
|
17237
|
+
'has to be an element with a qdColumn directive.');
|
|
17252
17238
|
}
|
|
17253
17239
|
if (nextSiblingColspan) {
|
|
17254
17240
|
this._renderer.addClass(this.element, QdColumnNextInSameRowDirective.className);
|
|
@@ -17270,7 +17256,7 @@ class QdColumnNextInSameRowDirective {
|
|
|
17270
17256
|
return QdColumnDirective.getQdColumnColspan(nextSibling);
|
|
17271
17257
|
}
|
|
17272
17258
|
logErrorMessage(message) {
|
|
17273
|
-
console.error(
|
|
17259
|
+
console.error(`Quadrel Framework | QdColumnNextInSameRow - ${message}`);
|
|
17274
17260
|
}
|
|
17275
17261
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdColumnNextInSameRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17276
17262
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: QdColumnNextInSameRowDirective, isStandalone: false, selector: "[qdColumnNextInSameRow]", ngImport: i0 });
|
|
@@ -17320,7 +17306,7 @@ class QdColumnFullGridWidthDirective {
|
|
|
17320
17306
|
}
|
|
17321
17307
|
}
|
|
17322
17308
|
logErrorMessage(message) {
|
|
17323
|
-
console.error(
|
|
17309
|
+
console.error(`Quadrel Framework | QdColumnFullGridWidth - ${message}`);
|
|
17324
17310
|
}
|
|
17325
17311
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdColumnFullGridWidthDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17326
17312
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: QdColumnFullGridWidthDirective, isStandalone: false, selector: "[qdColumnFullGridWidth]", ngImport: i0 });
|
|
@@ -17368,7 +17354,7 @@ class QdColumnsDisableResponsiveColspansDirective {
|
|
|
17368
17354
|
}
|
|
17369
17355
|
}
|
|
17370
17356
|
logErrorMessage(message) {
|
|
17371
|
-
console.error(
|
|
17357
|
+
console.error(`Quadrel Framework | QdColumnsDisableResponsiveColspans - ${message}`);
|
|
17372
17358
|
}
|
|
17373
17359
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdColumnsDisableResponsiveColspansDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17374
17360
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: QdColumnsDisableResponsiveColspansDirective, isStandalone: false, selector: "[qdColumnsDisableResponsiveColspans]", ngImport: i0 });
|
|
@@ -18166,7 +18152,7 @@ class QdPendingChangesGuardDirective {
|
|
|
18166
18152
|
formGroup;
|
|
18167
18153
|
constructor() {
|
|
18168
18154
|
if (!this.ngForm && !this.formGroupDirective) {
|
|
18169
|
-
console.error('
|
|
18155
|
+
console.error('Quadrel Framework | QdPendingChangesGuard - requires NgForm or FormGroupDirective to be present on the host element.');
|
|
18170
18156
|
}
|
|
18171
18157
|
}
|
|
18172
18158
|
ngOnInit() {
|
|
@@ -19341,7 +19327,7 @@ class QdFileCollectorComponent {
|
|
|
19341
19327
|
isEqual$1(config.allowedFileNamePattern, this.fileTypeService.getFileNamePattern(config.allowedFileTypes)));
|
|
19342
19328
|
}
|
|
19343
19329
|
logError(message) {
|
|
19344
|
-
console.error(`
|
|
19330
|
+
console.error(`Quadrel Framework | QdFileCollector - ${message}`);
|
|
19345
19331
|
}
|
|
19346
19332
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdFileCollectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19347
19333
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: QdFileCollectorComponent, isStandalone: false, selector: "qd-file-collector", inputs: { config: "config", testId: ["data-test-id", "testId"] }, providers: [QdFileCollectorService, QdFileCollectorValidationService], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<button\n qdButton\n qdButtonGhost\n icon=\"plus\"\n *ngIf=\"canShowAddButton\"\n (click)=\"clickFileInput()\"\n [data-test-id]=\"testId + '-button-add-new'\"\n>\n {{ config?.standaloneAddNewLabel?.i18n || \"i18n.qd.fileCollector.standalone.addNew\" | translate }}\n</button>\n\n<input\n [disabled]=\"config?.readonly || config?.viewonly\"\n type=\"file\"\n (change)=\"handleFiles($event)\"\n #fileInput\n hidden\n multiple=\"multiple\"\n/>\n\n<qd-file-collector-allowed-files-description\n *ngIf=\"!config?.readonly && !config?.viewonly\"\n [attr.data-test-id]=\"testId + '-allowed-files-description'\"\n></qd-file-collector-allowed-files-description>\n\n<ng-container *ngFor=\"let fileUpload of this.fileUploads; let i = index\">\n <qd-file-collector-item\n *ngIf=\"!fileUpload.error && fileUpload.progress === 100\"\n [progress]=\"fileUpload.progress\"\n [newlyUploaded]=\"fileUpload.newlyUploaded\"\n [collectedFile]=\"fileUpload.collectedFile\"\n [error]=\"fileUpload.error\"\n [readonly]=\"config?.readonly\"\n [viewonly]=\"config?.viewonly\"\n [downloadFilesWithHttpClient]=\"config?.downloadFilesWithHttpClient\"\n [data-test-id]=\"testId + '-item-' + i\"\n ></qd-file-collector-item>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column}:host>.qd-button{align-self:end;margin-bottom:1.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QdButtonComponent, selector: "button[qdButton], a[qdButton], button[qd-button]", inputs: ["disabled", "color", "icon", "data-test-id", "additionalInfo"] }, { kind: "directive", type: QdButtonGhostDirective, selector: "button[qdButtonGhost], a[qdButtonGhost]" }, { kind: "component", type: QdFileCollectorAllowedFilesDescriptionComponent, selector: "qd-file-collector-allowed-files-description" }, { kind: "component", type: QdFileCollectorItemComponent, selector: "qd-file-collector-item", inputs: ["progress", "newlyUploaded", "collectedFile", "error", "readonly", "viewonly", "downloadFilesWithHttpClient", "data-test-id"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
@@ -19582,7 +19568,7 @@ function resetCategoryFilter$1(state, categoryIndex) {
|
|
|
19582
19568
|
const isIsoTimestampValid = (isoTimestamp) => {
|
|
19583
19569
|
const valid = new RegExp(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d((:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|([+-][0-2]\d:[0-5]\d|Z))/).test(isoTimestamp);
|
|
19584
19570
|
if (!valid && isoTimestamp !== '') {
|
|
19585
|
-
console.warn('
|
|
19571
|
+
console.warn('Quadrel Framework | QdFilter - The given ISO 8601 date string is not valid.');
|
|
19586
19572
|
}
|
|
19587
19573
|
return valid;
|
|
19588
19574
|
};
|
|
@@ -19694,7 +19680,7 @@ function validateFilterSelection(filterSelection, filterCategories, selectionSou
|
|
|
19694
19680
|
Object.keys(filterSelection).forEach(selectionCategory => {
|
|
19695
19681
|
const categoryInFilter = filterCategories.find(category => category.category === selectionCategory);
|
|
19696
19682
|
if (!categoryInFilter) {
|
|
19697
|
-
console.warn(`The category "${selectionCategory}" that is given in the ${selectionSource} is not part of the filter
|
|
19683
|
+
console.warn(`Quadrel Framework | QdFilter - The category "${selectionCategory}" that is given in the ${selectionSource} is not part of the filter.`);
|
|
19698
19684
|
return;
|
|
19699
19685
|
}
|
|
19700
19686
|
switch (categoryInFilter.type) {
|
|
@@ -19704,8 +19690,8 @@ function validateFilterSelection(filterSelection, filterCategories, selectionSou
|
|
|
19704
19690
|
const items = categoryInFilter.items;
|
|
19705
19691
|
filterSelection[selectionCategory].forEach(selectionItem => {
|
|
19706
19692
|
if (!items.some(item => item.item === selectionItem)) {
|
|
19707
|
-
console.warn(`The item "${selectionItem}" that is given in the ${selectionSource} ` +
|
|
19708
|
-
`is not contained in the filter category "${selectionCategory}"
|
|
19693
|
+
console.warn(`Quadrel Framework | QdFilter - The item "${selectionItem}" that is given in the ${selectionSource} ` +
|
|
19694
|
+
`is not contained in the filter category "${selectionCategory}".`);
|
|
19709
19695
|
}
|
|
19710
19696
|
});
|
|
19711
19697
|
break;
|
|
@@ -19715,7 +19701,7 @@ function validateFilterSelection(filterSelection, filterCategories, selectionSou
|
|
|
19715
19701
|
case 'dateTimeRange':
|
|
19716
19702
|
filterSelection[selectionCategory].forEach((selectionItem, itemIndex) => {
|
|
19717
19703
|
if (selectionItem !== '' && isNaN(Date.parse(selectionItem))) {
|
|
19718
|
-
console.error(`The given ${selectionSource} contains an invalid date for the category "${selectionCategory}"
|
|
19704
|
+
console.error(`Quadrel Framework | QdFilter - The given ${selectionSource} contains an invalid date for the category "${selectionCategory}".`);
|
|
19719
19705
|
filterSelection[selectionCategory][itemIndex] = '';
|
|
19720
19706
|
}
|
|
19721
19707
|
});
|
|
@@ -19727,7 +19713,7 @@ function validateFilterSelection(filterSelection, filterCategories, selectionSou
|
|
|
19727
19713
|
const initialState$2 = {};
|
|
19728
19714
|
const _filterReducer = createReducer(initialState$2, on(QdFilterActions.initFilterState, (state, { filterId, filterData }) => {
|
|
19729
19715
|
if (filterData === undefined || filterData.categories.length === 0) {
|
|
19730
|
-
console.warn('
|
|
19716
|
+
console.warn('Quadrel Framework | QdFilter - The "filterData" input is invalid. To use this input, please read the documentation.');
|
|
19731
19717
|
return state;
|
|
19732
19718
|
}
|
|
19733
19719
|
return updateStateWithNewFilter(state, filterId, createFilterState(filterData));
|
|
@@ -19767,7 +19753,7 @@ const _filterReducer = createReducer(initialState$2, on(QdFilterActions.initFilt
|
|
|
19767
19753
|
}), on(QdFilterActions.updateCategoryTranslation, (state, { filterId, filterData }) => {
|
|
19768
19754
|
const newFilter = getNewFilter(state, filterId);
|
|
19769
19755
|
if (filterData === undefined || filterData.categories.length === 0) {
|
|
19770
|
-
console.warn('
|
|
19756
|
+
console.warn('Quadrel Framework | QdFilter - The "filterData" input is invalid. To use this input, please read the documentation.');
|
|
19771
19757
|
return state;
|
|
19772
19758
|
}
|
|
19773
19759
|
newFilter.categories.forEach((_category, i) => {
|
|
@@ -20963,7 +20949,7 @@ class QdFilterRouterConnectorService {
|
|
|
20963
20949
|
return of(false);
|
|
20964
20950
|
}
|
|
20965
20951
|
if (this._connectedFilter) {
|
|
20966
|
-
console.error('
|
|
20952
|
+
console.error('Quadrel Framework | QdFilter - More than one filter with enabled "connectWithRouter" config is not allowed. ' +
|
|
20967
20953
|
'Please set connectWithRouter to false except for one filter.');
|
|
20968
20954
|
return of(false);
|
|
20969
20955
|
}
|
|
@@ -21251,7 +21237,7 @@ class QdFilterComponent {
|
|
|
21251
21237
|
}
|
|
21252
21238
|
validateConfig() {
|
|
21253
21239
|
if (this.filterData?.outputLegacyQueryStringFormat !== false && this.queryStringOutput.observers.length > 0) {
|
|
21254
|
-
console.warn('
|
|
21240
|
+
console.warn('Quadrel Framework | QdFilter - You use the "queryStringOutput" with the legacy format. To use the new format please set "outputLegacyQueryStringFormat" to false. The legacy format will be removed in future releases.');
|
|
21255
21241
|
}
|
|
21256
21242
|
}
|
|
21257
21243
|
init() {
|
|
@@ -21938,9 +21924,9 @@ class NavigationTileComponent {
|
|
|
21938
21924
|
}
|
|
21939
21925
|
validate() {
|
|
21940
21926
|
if (!this.title)
|
|
21941
|
-
console.error('
|
|
21927
|
+
console.error('Quadrel Framework | QdNavigationTile - You should provide a title.');
|
|
21942
21928
|
if (!this.icon)
|
|
21943
|
-
console.error('
|
|
21929
|
+
console.error('Quadrel Framework | QdNavigationTile - You should provide an icon.');
|
|
21944
21930
|
}
|
|
21945
21931
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NavigationTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21946
21932
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: NavigationTileComponent, isStandalone: false, selector: "a[qd-navigation-tile]", inputs: { title: "title", icon: "icon" }, ngImport: i0, template: "<qd-icon *ngIf=\"icon\" [icon]=\"icon\"></qd-icon>\n<small>{{ title | translate }}</small>\n", styles: [":host{display:block;height:10rem;align-items:unset;padding:.75rem;border:1px solid rgb(213,213,213);background-color:#fff;color:unset;line-height:unset;text-align:unset;text-decoration:unset}qd-icon{display:block;margin-bottom:2.8125rem;font-size:2rem}small{color:#171717;font-size:14px;font-weight:500;line-height:20px;text-wrap:normal}@media (min-width: 1280px){small{font-size:1rem}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QdIconComponent, selector: "qd-icon", inputs: ["icon"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
@@ -22038,7 +22024,7 @@ class QdSearchRouterConnectorService {
|
|
|
22038
22024
|
return of(false);
|
|
22039
22025
|
}
|
|
22040
22026
|
if (this._connectedSearch) {
|
|
22041
|
-
console.error('
|
|
22027
|
+
console.error('Quadrel Framework | QdSearch - More than one search with enabled "connectWithRouter" config is not allowed. ' +
|
|
22042
22028
|
'Please set connectWithRouter to false except for one search.');
|
|
22043
22029
|
return of(false);
|
|
22044
22030
|
}
|
|
@@ -22493,7 +22479,7 @@ class QdContextService {
|
|
|
22493
22479
|
setValue(contextId, selection) {
|
|
22494
22480
|
const index = this._configuredContexts.value.findIndex(context => context.id === contextId);
|
|
22495
22481
|
if (index < 0)
|
|
22496
|
-
throw new Error(`
|
|
22482
|
+
throw new Error(`Quadrel Framework | QdContext - Cannot set value of unconfigured context ${contextId}`);
|
|
22497
22483
|
this._values.next([
|
|
22498
22484
|
...this._values.value.filter(value => value.contextId !== contextId),
|
|
22499
22485
|
{ contextId, value: selection }
|
|
@@ -23131,7 +23117,7 @@ class QdTableResolverService {
|
|
|
23131
23117
|
refresh(resolverOptions = {}) {
|
|
23132
23118
|
const resolver = this.tableDataResolver;
|
|
23133
23119
|
if (!resolver)
|
|
23134
|
-
return console.warn('
|
|
23120
|
+
return console.warn('Quadrel Framework | QdTable - Refresh skipped: resolver not provided.');
|
|
23135
23121
|
const { pageIndex } = resolverOptions;
|
|
23136
23122
|
if (this._refreshSubscription)
|
|
23137
23123
|
this._refreshSubscription.unsubscribe();
|
|
@@ -23255,7 +23241,7 @@ class QdTableResponsiveRowService {
|
|
|
23255
23241
|
const maxCurrentColumns = this.columnMapping[this._currentBreakpoint];
|
|
23256
23242
|
let columnsDefinitions = this._config.columns.map(column => column.column);
|
|
23257
23243
|
if (this.mainColumnIndex >= maxCurrentColumns) {
|
|
23258
|
-
console.warn('
|
|
23244
|
+
console.warn('Quadrel Framework | QdTable - The index of the "mainColumn" cannot be equal or greater than maximum columns for this breakpoint.');
|
|
23259
23245
|
return columnsDefinitions;
|
|
23260
23246
|
}
|
|
23261
23247
|
if (maxCurrentColumns >= columnsLength)
|
|
@@ -23655,10 +23641,10 @@ class QdTablePaginatorComponent {
|
|
|
23655
23641
|
}
|
|
23656
23642
|
isConfigValid() {
|
|
23657
23643
|
if (this.config?.hasPagination) {
|
|
23658
|
-
console.warn('
|
|
23644
|
+
console.warn('Quadrel Framework | QdTable Pagination - The config "hasPagination" is deprecated. Please use "pagination" instead.');
|
|
23659
23645
|
}
|
|
23660
23646
|
if (!this.tableDataResolver) {
|
|
23661
|
-
console.error('
|
|
23647
|
+
console.error('Quadrel Framework | QdTable Pagination - Provide a resolver for pagination. Please use the "QD_TABLE_DATA_RESOLVER_TOKEN" injection token.');
|
|
23662
23648
|
return false;
|
|
23663
23649
|
}
|
|
23664
23650
|
return true;
|
|
@@ -23952,7 +23938,7 @@ class QdTableBodyComponent {
|
|
|
23952
23938
|
}
|
|
23953
23939
|
primaryAction(rowData, index) {
|
|
23954
23940
|
if (!this.config.primaryAction?.handler)
|
|
23955
|
-
return console.warn('
|
|
23941
|
+
return console.warn('Quadrel Framework | QdTable - No handler defined for primary action.');
|
|
23956
23942
|
if (this.config.primaryAction?.highlightOnRevisit) {
|
|
23957
23943
|
this.tableStoreService.setLastVisitedRow(resolveRowIdentifier(rowData, index, this.config.trackRowBy));
|
|
23958
23944
|
}
|
|
@@ -24014,7 +24000,7 @@ class QdTableEmptyStateComponent {
|
|
|
24014
24000
|
}
|
|
24015
24001
|
getI18n() {
|
|
24016
24002
|
if (!this.emptyStateService.i18ns)
|
|
24017
|
-
console.warn('
|
|
24003
|
+
console.warn('Quadrel Framework | QdTable - No translations available.');
|
|
24018
24004
|
return this.emptyStateService.i18ns;
|
|
24019
24005
|
}
|
|
24020
24006
|
handleClick() {
|
|
@@ -24473,7 +24459,7 @@ class QdTableComponent {
|
|
|
24473
24459
|
}
|
|
24474
24460
|
registerConnector(connectorName) {
|
|
24475
24461
|
if (!this.tableDataResolver) {
|
|
24476
|
-
console.warn('
|
|
24462
|
+
console.warn('Quadrel Framework | QdTable - qdConnectToFilter only works with a resolver. Please inject the resolver using QD_TABLE_DATA_RESOLVER_TOKEN.');
|
|
24477
24463
|
return;
|
|
24478
24464
|
}
|
|
24479
24465
|
this._connectors.push({ connectorName, connectorState: QdTableConnectorState.AWAITING });
|
|
@@ -24522,7 +24508,7 @@ class QdTableComponent {
|
|
|
24522
24508
|
this.secondaryActionOutput.emit(recentAction);
|
|
24523
24509
|
const action = this.config.secondaryActions?.find(a => a.type === recentAction.type);
|
|
24524
24510
|
if (!action?.handler)
|
|
24525
|
-
return console.warn('
|
|
24511
|
+
return console.warn('Quadrel Framework | QdTable - No handler defined for secondary action:', recentAction.type);
|
|
24526
24512
|
if (action.highlightOnRevisit) {
|
|
24527
24513
|
this.tableStoreService.setLastVisitedRow(resolveRowIdentifier(recentAction.rowData, recentAction.index, this.config.trackRowBy));
|
|
24528
24514
|
}
|
|
@@ -24546,13 +24532,13 @@ class QdTableComponent {
|
|
|
24546
24532
|
if (!this.config.refreshOnPushEvent)
|
|
24547
24533
|
return;
|
|
24548
24534
|
if (!this.config.uid) {
|
|
24549
|
-
console.error('
|
|
24550
|
-
'The table uid has to match the path of the server side event.');
|
|
24535
|
+
console.error('Quadrel Framework | QdTable - A "uid" has to be defined when "refreshOnPushEvent" is enabled. ' +
|
|
24536
|
+
'The table "uid" has to match the path of the server side event.');
|
|
24551
24537
|
return;
|
|
24552
24538
|
}
|
|
24553
24539
|
if (!this.pushEventsService || !this.pushEventsService.isConnectedOrConnecting()) {
|
|
24554
|
-
console.error('
|
|
24555
|
-
'if you enable the refreshOnPushEvent flag in the table.');
|
|
24540
|
+
console.error('Quadrel Framework | QdTable - You have to connect the QdPushEventsService on your own ' +
|
|
24541
|
+
'if you enable the "refreshOnPushEvent" flag in the table.');
|
|
24556
24542
|
return;
|
|
24557
24543
|
}
|
|
24558
24544
|
const pushEventsService = this.pushEventsService;
|
|
@@ -24565,11 +24551,11 @@ class QdTableComponent {
|
|
|
24565
24551
|
return data.path.includes(this.config.uid);
|
|
24566
24552
|
}
|
|
24567
24553
|
catch (error) {
|
|
24568
|
-
console.warn('Failed to process messageEvent:', error);
|
|
24554
|
+
console.warn('Quadrel Framework | QdTable - Failed to process messageEvent:', error);
|
|
24569
24555
|
return false;
|
|
24570
24556
|
}
|
|
24571
24557
|
}), catchError(error => {
|
|
24572
|
-
console.error('Error in event stream:', error);
|
|
24558
|
+
console.error('Quadrel Framework | QdTable - Error in event stream:', error);
|
|
24573
24559
|
return NEVER;
|
|
24574
24560
|
}))
|
|
24575
24561
|
.subscribe(() => this.triggerRefresh());
|
|
@@ -24589,14 +24575,14 @@ class QdTableComponent {
|
|
|
24589
24575
|
}
|
|
24590
24576
|
validateConfig() {
|
|
24591
24577
|
if (!this.config.i18ns) {
|
|
24592
|
-
console.warn('
|
|
24578
|
+
console.warn('Quadrel Framework | QdTable - No translations available for the secondaryActions.');
|
|
24593
24579
|
}
|
|
24594
24580
|
if (this.hasHighlightOnRevisit() && !this.config.uid) {
|
|
24595
|
-
console.warn('
|
|
24581
|
+
console.warn('Quadrel Framework | QdTable - A "uid" has to be defined when "highlightOnRevisit" is enabled. ' +
|
|
24596
24582
|
'Without a uid, the table state does not persist across navigation.');
|
|
24597
24583
|
}
|
|
24598
24584
|
if (this.config.selection?.type === 'multiSelect' && this.hasPagination && !this.config.trackRowBy) {
|
|
24599
|
-
throw new Error('
|
|
24585
|
+
throw new Error('Quadrel Framework | QdTable - "trackRowBy" is required when combining "selection: multiSelect" with pagination. ' +
|
|
24600
24586
|
'Provide a trackRowBy function (e.g. `trackRowBy: row => row.uid`) that returns a unique identifier ' +
|
|
24601
24587
|
'per row, otherwise selections cannot be persisted across pages, page-size or sort changes.');
|
|
24602
24588
|
}
|
|
@@ -24612,7 +24598,7 @@ class QdTableComponent {
|
|
|
24612
24598
|
mapColumnFillsWidth() {
|
|
24613
24599
|
if (!this.config.mainColumnNotFillingWidth)
|
|
24614
24600
|
return;
|
|
24615
|
-
console.warn('
|
|
24601
|
+
console.warn('Quadrel Framework | QdTable - The config key "mainColumnNotFillingWidth" is deprecated. Please use "whichColumnFillsWidth" instead.');
|
|
24616
24602
|
if (this.config.whichColumnFillsWidth)
|
|
24617
24603
|
return;
|
|
24618
24604
|
this.config.whichColumnFillsWidth = 'none';
|
|
@@ -24865,7 +24851,7 @@ class QdConnectorTableFilterDirective {
|
|
|
24865
24851
|
constructor() {
|
|
24866
24852
|
const toolbarComponentsService = this.toolbarComponentsService;
|
|
24867
24853
|
if (!toolbarComponentsService)
|
|
24868
|
-
throw new Error('
|
|
24854
|
+
throw new Error('Quadrel Framework | QdConnectorTableFilter - Please use this directive only within <qd-section>.');
|
|
24869
24855
|
this.tableComponent.registerConnector('filter');
|
|
24870
24856
|
}
|
|
24871
24857
|
ngAfterViewInit() {
|
|
@@ -24887,7 +24873,7 @@ class QdConnectorTableFilterDirective {
|
|
|
24887
24873
|
}
|
|
24888
24874
|
validateAndApplyConfig() {
|
|
24889
24875
|
if (this.filterComponent.hasFilterData())
|
|
24890
|
-
console.error('
|
|
24876
|
+
console.error('Quadrel Framework | QdConnectorTableFilter - Please remove the redundant "filterConfig" in the "sectionConfig". Will be overridden by this directive.');
|
|
24891
24877
|
this.filterComponent.setFilterConfig({ ...this.qdConnectToFilter, emitOutputsInitially: true });
|
|
24892
24878
|
}
|
|
24893
24879
|
subscribeToFilterChanges() {
|
|
@@ -24951,7 +24937,7 @@ class QdConnectorTableSearchDirective {
|
|
|
24951
24937
|
constructor() {
|
|
24952
24938
|
const toolbarComponentsService = this.toolbarComponentsService;
|
|
24953
24939
|
if (!toolbarComponentsService)
|
|
24954
|
-
throw new Error('
|
|
24940
|
+
throw new Error('Quadrel Framework | QdConnectorTableSearch - Please use this directive only within <qd-section>.');
|
|
24955
24941
|
this.tableComponent.registerConnector('search');
|
|
24956
24942
|
}
|
|
24957
24943
|
ngAfterViewInit() {
|
|
@@ -24969,7 +24955,7 @@ class QdConnectorTableSearchDirective {
|
|
|
24969
24955
|
}
|
|
24970
24956
|
validateAndApplyConfig() {
|
|
24971
24957
|
if (this.searchComponent.hasConfigData())
|
|
24972
|
-
console.warn('
|
|
24958
|
+
console.warn('Quadrel Framework | QdConnectorTableSearch - Please remove the redundant "searchConfig" in the "sectionConfig". Will be overridden by this directive.');
|
|
24973
24959
|
this.searchComponent.configData = { emitEmptySearch: true, ...this.qdConnectToSearch };
|
|
24974
24960
|
}
|
|
24975
24961
|
subscribeToSearchChanges() {
|
|
@@ -25038,7 +25024,7 @@ class QdSectionAdapterDirective {
|
|
|
25038
25024
|
const toRemove = Array.from(host.children).filter(child => child.tagName !== 'QD-SECTION');
|
|
25039
25025
|
toRemove.forEach(el => {
|
|
25040
25026
|
this.renderer.removeChild(host, el);
|
|
25041
|
-
console.warn('
|
|
25027
|
+
console.warn('Quadrel Framework | QdSectionAdapter - Only "qd-section" is supported. The following content is not rendered:', el);
|
|
25042
25028
|
});
|
|
25043
25029
|
}
|
|
25044
25030
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdSectionAdapterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -25158,13 +25144,13 @@ class QdSectionToolbarActionComponent {
|
|
|
25158
25144
|
}
|
|
25159
25145
|
validateConfig() {
|
|
25160
25146
|
if (this._config.action) {
|
|
25161
|
-
console.warn('
|
|
25147
|
+
console.warn('Quadrel Framework | QdSection - The "action" key is deprecated and will be removed in v18. Use "actions" instead.');
|
|
25162
25148
|
}
|
|
25163
25149
|
if (this._config.action && this._config.actions) {
|
|
25164
|
-
console.error('
|
|
25150
|
+
console.error('Quadrel Framework | QdSection - Both "action" and "actions" are defined in the configuration. Please use only "actions".');
|
|
25165
25151
|
}
|
|
25166
25152
|
if (this._config.actions && this._config.actions.filter(action => action.type === 'addNew').length > 1) {
|
|
25167
|
-
console.error('
|
|
25153
|
+
console.error('Quadrel Framework | QdSection - The action type "addNew" is used multiple times in "actions". Please use "addNew" only once.');
|
|
25168
25154
|
}
|
|
25169
25155
|
}
|
|
25170
25156
|
// TODO: Remove in v19
|
|
@@ -26182,7 +26168,7 @@ class QdTreeEmptyStateComponent {
|
|
|
26182
26168
|
config;
|
|
26183
26169
|
getI18n() {
|
|
26184
26170
|
if (!this.emptyStateService.i18ns)
|
|
26185
|
-
console.warn('
|
|
26171
|
+
console.warn('Quadrel Framework | QdTree - No translations available.');
|
|
26186
26172
|
return this.emptyStateService.i18ns;
|
|
26187
26173
|
}
|
|
26188
26174
|
handleClick() {
|
|
@@ -26371,7 +26357,7 @@ class QdTreeComponent {
|
|
|
26371
26357
|
}
|
|
26372
26358
|
validateConfig() {
|
|
26373
26359
|
if (!this.config.i18ns) {
|
|
26374
|
-
console.warn('
|
|
26360
|
+
console.warn('Quadrel Framework | QdTree - No translations available for the secondaryActions.');
|
|
26375
26361
|
}
|
|
26376
26362
|
}
|
|
26377
26363
|
initializeGroupService() {
|
|
@@ -26380,7 +26366,7 @@ class QdTreeComponent {
|
|
|
26380
26366
|
}
|
|
26381
26367
|
catch (err) {
|
|
26382
26368
|
if (err instanceof QdGroupedIndicesNotConsecutiveError) {
|
|
26383
|
-
console.error('
|
|
26369
|
+
console.error('Quadrel Framework | QdTree - Non-sequential "tree" content types are not allowed.');
|
|
26384
26370
|
}
|
|
26385
26371
|
}
|
|
26386
26372
|
}
|
|
@@ -26414,7 +26400,7 @@ class QdTreeComponent {
|
|
|
26414
26400
|
this.secondaryActionOutput.emit(recentAction);
|
|
26415
26401
|
const action = this.config.secondaryActions?.find(a => a.type === recentAction.type);
|
|
26416
26402
|
if (!action?.handler)
|
|
26417
|
-
return console.warn('
|
|
26403
|
+
return console.warn('Quadrel Framework | QdTree - No handler defined for secondary action:', recentAction.type);
|
|
26418
26404
|
action.handler(recentAction);
|
|
26419
26405
|
});
|
|
26420
26406
|
}
|
|
@@ -26665,7 +26651,7 @@ class QdPageFooterService {
|
|
|
26665
26651
|
updates.forEach(({ actionKey, partialAction }) => {
|
|
26666
26652
|
const action = currentActionsMap.get(actionKey);
|
|
26667
26653
|
if (!action)
|
|
26668
|
-
return console.warn(`
|
|
26654
|
+
return console.warn(`Quadrel Framework | QdPageFooter - Action with key "${actionKey}" not found.`);
|
|
26669
26655
|
updatedActionsMap.set(actionKey, { ...action, ...partialAction });
|
|
26670
26656
|
});
|
|
26671
26657
|
this._pageFooterActions.next(updatedActionsMap);
|
|
@@ -27185,7 +27171,7 @@ class QdDynamicFacetComponent {
|
|
|
27185
27171
|
ngOnInit() {
|
|
27186
27172
|
const facet = this.dynamicFacetsService.getFacet(this.facet.options.type);
|
|
27187
27173
|
if (!facet) {
|
|
27188
|
-
console.error('
|
|
27174
|
+
console.error('Quadrel Framework | QdPage - Facet could not be found.');
|
|
27189
27175
|
return;
|
|
27190
27176
|
}
|
|
27191
27177
|
const viewContainerRef = this.dynamicFacet.viewContainerRef;
|
|
@@ -27234,13 +27220,13 @@ class QdPageCommitActionExecutor {
|
|
|
27234
27220
|
onAfterSnapshot?.();
|
|
27235
27221
|
}
|
|
27236
27222
|
catch (err) {
|
|
27237
|
-
console.error('
|
|
27223
|
+
console.error('Quadrel Framework | QdPage - internal onAfterSnapshot hook threw after form was marked as saved.', err);
|
|
27238
27224
|
}
|
|
27239
27225
|
try {
|
|
27240
27226
|
action.onSuccess?.();
|
|
27241
27227
|
}
|
|
27242
27228
|
catch (err) {
|
|
27243
|
-
console.error('
|
|
27229
|
+
console.error('Quadrel Framework | QdPage - onSuccess callback threw after form was marked as saved.', err);
|
|
27244
27230
|
}
|
|
27245
27231
|
});
|
|
27246
27232
|
};
|
|
@@ -27259,14 +27245,14 @@ class QdPageCommitActionExecutor {
|
|
|
27259
27245
|
}
|
|
27260
27246
|
static handleError(action, err) {
|
|
27261
27247
|
if (!action.onError) {
|
|
27262
|
-
console.error('
|
|
27248
|
+
console.error('Quadrel Framework | QdPage - Commit action observable errored — form was not marked as saved. Provide an `onError` hook on the action, or handle errors in the handler.', err);
|
|
27263
27249
|
return;
|
|
27264
27250
|
}
|
|
27265
27251
|
try {
|
|
27266
27252
|
action.onError(err);
|
|
27267
27253
|
}
|
|
27268
27254
|
catch (callbackErr) {
|
|
27269
|
-
console.error('
|
|
27255
|
+
console.error('Quadrel Framework | QdPage - onError callback threw.', callbackErr);
|
|
27270
27256
|
}
|
|
27271
27257
|
}
|
|
27272
27258
|
}
|
|
@@ -27401,7 +27387,7 @@ class QdFormGroupManagerService {
|
|
|
27401
27387
|
captured.set(key, structuredClone(fg.getRawValue()));
|
|
27402
27388
|
}
|
|
27403
27389
|
catch (err) {
|
|
27404
|
-
throw new Error(`
|
|
27390
|
+
throw new Error(`Quadrel Framework | QdFormGroupManager - captureFormValues() failed for group "${key}". ` +
|
|
27405
27391
|
`Form values must be structured-cloneable. Non-cloneable values like functions, ` +
|
|
27406
27392
|
`symbols, or DOM nodes are not supported. Original error: ${String(err)}`);
|
|
27407
27393
|
}
|
|
@@ -27495,7 +27481,7 @@ class QdFormGroupManagerService {
|
|
|
27495
27481
|
initFormArrayFromValues(array, values) {
|
|
27496
27482
|
const protoValue = values[0];
|
|
27497
27483
|
if (!protoValue || typeof protoValue !== 'object') {
|
|
27498
|
-
console.warn('
|
|
27484
|
+
console.warn('Quadrel Framework | QdFormGroupManager - Cannot restore FormArray: no prototype and value is not object-like.');
|
|
27499
27485
|
return;
|
|
27500
27486
|
}
|
|
27501
27487
|
for (let i = 0; i < values.length; i++) {
|
|
@@ -27517,7 +27503,7 @@ class QdFormGroupManagerService {
|
|
|
27517
27503
|
const arrControls = control.controls.map(c => this.deepCloneControl(c));
|
|
27518
27504
|
return new FormArray(arrControls, control.validator, control.asyncValidator);
|
|
27519
27505
|
}
|
|
27520
|
-
throw new Error('
|
|
27506
|
+
throw new Error('Quadrel Framework | QdFormGroupManager - Unsupported control type.');
|
|
27521
27507
|
}
|
|
27522
27508
|
areFormGroupsValid(fg) {
|
|
27523
27509
|
return Object.values(fg.controls).every(c => (c.disabled && !c.validator && !c.asyncValidator ? true : c.valid));
|
|
@@ -27949,7 +27935,7 @@ class QdPageObjectHeaderComponent {
|
|
|
27949
27935
|
!(metadata$ instanceof ReplaySubject) &&
|
|
27950
27936
|
!(metadata$ instanceof BehaviorSubject)) {
|
|
27951
27937
|
this._metadataStreamTypeWarned = true;
|
|
27952
|
-
console.warn('
|
|
27938
|
+
console.warn('Quadrel Framework | QdPageObjectHeader - metadata$ is a plain Subject. Emissions fired before the ' +
|
|
27953
27939
|
"header subscribes (e.g. during the consuming component's ngOnInit) will be lost. " +
|
|
27954
27940
|
'Use createMetadataStream() or pass a ReplaySubject(1)/BehaviorSubject instead.');
|
|
27955
27941
|
}
|
|
@@ -28061,7 +28047,7 @@ class QdPageStepperAdapterDirective {
|
|
|
28061
28047
|
const toRemove = Array.from(host.children).filter(child => child.tagName !== 'QD-PAGE-STEPPER');
|
|
28062
28048
|
toRemove.forEach(el => {
|
|
28063
28049
|
this.renderer.removeChild(host, el);
|
|
28064
|
-
console.warn('
|
|
28050
|
+
console.warn('Quadrel Framework | QdPageStepperAdapter - Only "qd-page-stepper" is supported. The following content is not rendered:', el);
|
|
28065
28051
|
});
|
|
28066
28052
|
}
|
|
28067
28053
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageStepperAdapterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -28211,7 +28197,7 @@ class QdPageStepperComponent extends CdkStepper {
|
|
|
28211
28197
|
ngOnInit() {
|
|
28212
28198
|
this.linear = true;
|
|
28213
28199
|
if (this.footerService && (this.config?.submit || this.config?.cancel)) {
|
|
28214
|
-
throw new Error('
|
|
28200
|
+
throw new Error('Quadrel Framework | QdPageStepper - When using <qd-page-stepper> inside <qd-page>, don\'t use the "submit" and "cancel" attributes. Instead, use the QdPageConfig.');
|
|
28215
28201
|
}
|
|
28216
28202
|
if (this.footerService) {
|
|
28217
28203
|
this.selectedIndexChange.pipe(takeUntil(this._destroyed$)).subscribe(() => this.updateFooterActionsVisibility());
|
|
@@ -28417,7 +28403,7 @@ class QdPageStepperComponent extends CdkStepper {
|
|
|
28417
28403
|
.subscribe(isValid => this.footerService.updateActions([{ actionKey: 'submit', partialAction: { isDisabled: !isValid } }]));
|
|
28418
28404
|
}
|
|
28419
28405
|
blockCdkInput(inputName) {
|
|
28420
|
-
throw new Error(`
|
|
28406
|
+
throw new Error(`Quadrel Framework | QdPageStepper - The "${inputName}" attribute is not allowed. Please use QdPageStepperConfig instead.`);
|
|
28421
28407
|
}
|
|
28422
28408
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
28423
28409
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: QdPageStepperComponent, isStandalone: true, selector: "qd-page-stepper", inputs: { config: "config", testId: ["data-test-id", "testId"] }, outputs: { submitted: "submitted" }, host: { properties: { "class.standalone": "!footerService" }, classAttribute: "qd-stepper" }, providers: [{ provide: CdkStepper, useExisting: QdPageStepperComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"qd-stepper-items-container\" *ngIf=\"steps.length > 1\">\n <qd-page-step-header\n *ngFor=\"let step of steps; let i = index\"\n (click)=\"handleClickHeader(step, i)\"\n [id]=\"_getStepLabelId(i)\"\n [ngClass]=\"'qd-step'\"\n [index]=\"i\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.config.label.i18n | translate\"\n [selected]=\"selectedIndex === i\"\n [active]=\"step.completed || selectedIndex === i || !linear\"\n [optional]=\"step.optional\"\n [locked]=\"!step.editable && i < selectedIndex\"\n >\n </qd-page-step-header>\n</div>\n\n<div class=\"stepper-content\">\n <ng-container [ngTemplateOutlet]=\"selected?.content\"></ng-container>\n</div>\n\n<div class=\"qd-stepper-action-area\" *ngIf=\"!footerService\">\n <button qdButton qdButtonGhost (click)=\"cancel()\" [data-test-id]=\"testId + '-cancel'\">\n {{ config?.cancel?.i18n || \"i18n.qd.stepper.cancel\" | translate }}\n </button>\n\n <button\n *ngIf=\"showPreviousButton(selectedIndex)\"\n qdButton\n qdButtonGhost\n (click)=\"previousStep()\"\n [data-test-id]=\"testId + '-previous'\"\n >\n {{ config?.previous?.i18n || \"i18n.qd.stepper.previous\" | translate }}\n </button>\n\n <button\n *ngIf=\"showNextButton(selectedIndex)\"\n qdButton\n [disabled]=\"(selectedStepValid$ | async) === false\"\n (click)=\"nextStep()\"\n [data-test-id]=\"testId + '-next'\"\n >\n {{ config?.next?.i18n || \"i18n.qd.stepper.next\" | translate }}\n </button>\n\n <button\n *ngIf=\"showSubmitButton(selectedIndex)\"\n qdButton\n (click)=\"submit()\"\n [disabled]=\"(allStepsValid$ | async) === false\"\n [data-test-id]=\"testId + '-submit'\"\n >\n {{ config?.submit?.i18n || \"i18n.qd.stepper.submit\" | translate }}\n </button>\n</div>\n", styles: [":host{display:flex;flex-direction:column}:host.standalone{height:calc(100% - 50px)}:host .qd-stepper-items-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:0 1.25rem;border-bottom:.125rem solid rgb(213,213,213);background-color:#fff;gap:0 .625rem}@media (max-width: 599.98px){:host .qd-stepper-items-container{padding:0 .9375rem}}:host .stepper-content{flex:1 1 auto}:host .qd-stepper-action-area{display:flex;width:100%;height:3.125rem;justify-content:flex-end}:host .qd-stepper-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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: QdPageStepHeaderComponent, selector: "qd-page-step-header", inputs: ["state", "label", "index", "selected", "active", "optional", "locked"] }, { 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: "directive", type: QdButtonGhostDirective, selector: "button[qdButtonGhost], a[qdButtonGhost]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
@@ -28492,7 +28478,7 @@ class QdPageTabsAdapterDirective {
|
|
|
28492
28478
|
const toRemove = Array.from(host.children).filter(child => child.tagName !== 'QD-PAGE-TABS');
|
|
28493
28479
|
toRemove.forEach(el => {
|
|
28494
28480
|
this.renderer.removeChild(host, el);
|
|
28495
|
-
console.warn('
|
|
28481
|
+
console.warn('Quadrel Framework | QdPageTabsAdapter - Only "qd-page-tabs" is supported. The following content is not rendered:', el);
|
|
28496
28482
|
});
|
|
28497
28483
|
}
|
|
28498
28484
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabsAdapterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -28841,7 +28827,7 @@ class QdPageTabsComponent extends CdkStepper {
|
|
|
28841
28827
|
pageTab.select();
|
|
28842
28828
|
}
|
|
28843
28829
|
else {
|
|
28844
|
-
console.warn('
|
|
28830
|
+
console.warn('Quadrel Framework | QdPageTabs - No tab found with name "' + tabNameFromParams + '".');
|
|
28845
28831
|
this.selectFirstNotDisabledTab(true);
|
|
28846
28832
|
}
|
|
28847
28833
|
});
|
|
@@ -28865,7 +28851,7 @@ class QdPageTabsComponent extends CdkStepper {
|
|
|
28865
28851
|
});
|
|
28866
28852
|
}
|
|
28867
28853
|
else {
|
|
28868
|
-
console.warn('
|
|
28854
|
+
console.warn('Quadrel Framework | QdPageTabs - "connectedWithRouter" is active, however <qd-page-tab> has no "name" attribute.');
|
|
28869
28855
|
}
|
|
28870
28856
|
}
|
|
28871
28857
|
});
|
|
@@ -28929,7 +28915,7 @@ class QdPageTabsComponent extends CdkStepper {
|
|
|
28929
28915
|
return this._getStepLabelId(i);
|
|
28930
28916
|
}
|
|
28931
28917
|
blockCdkInput(inputName) {
|
|
28932
|
-
throw new Error(`
|
|
28918
|
+
throw new Error(`Quadrel Framework | QdPageTabs - The use of the "${inputName}" attribute is not permitted. Please use QdPageTabsConfig instead.`);
|
|
28933
28919
|
}
|
|
28934
28920
|
mapSelectionChangeToTabSelectionOutput() {
|
|
28935
28921
|
this.selectionChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(selectionEvent => {
|
|
@@ -29495,7 +29481,7 @@ class QdPageComponent {
|
|
|
29495
29481
|
infoBanners;
|
|
29496
29482
|
footerHasContent$;
|
|
29497
29483
|
isFooterVisible;
|
|
29498
|
-
projectionGuardMessage = '
|
|
29484
|
+
projectionGuardMessage = 'Quadrel Framework | QdPage - This content is not supported. Please use the [qdSectionAdapter] directive for custom content projection.';
|
|
29499
29485
|
_isInitialized = false;
|
|
29500
29486
|
_destroyed$ = new Subject();
|
|
29501
29487
|
_cancelSubmitValidation$ = new Subject();
|
|
@@ -29590,7 +29576,7 @@ class QdPageComponent {
|
|
|
29590
29576
|
}
|
|
29591
29577
|
checkConfigValidity() {
|
|
29592
29578
|
if (!this.config)
|
|
29593
|
-
console.warn('
|
|
29579
|
+
console.warn('Quadrel Framework | QdPage - To configure the page you should provide a valid config.');
|
|
29594
29580
|
}
|
|
29595
29581
|
setupCreatePageFooterActions() {
|
|
29596
29582
|
const pageTypeConfig = this.config?.pageTypeConfig;
|
|
@@ -29836,15 +29822,15 @@ class QdConnectFormStateToPageDirective {
|
|
|
29836
29822
|
isValid() {
|
|
29837
29823
|
const hasFormGroup = this.formGroupDirective?.control;
|
|
29838
29824
|
if (!hasFormGroup) {
|
|
29839
|
-
console.error('
|
|
29825
|
+
console.error('Quadrel Framework | QdConnectFormStateToPage - Either a [formGroup] binding or <qd-quick-edit> with a FormGroup is required.');
|
|
29840
29826
|
return false;
|
|
29841
29827
|
}
|
|
29842
29828
|
if (!this.formGroupManagerService) {
|
|
29843
|
-
console.error('
|
|
29829
|
+
console.error('Quadrel Framework | QdConnectFormStateToPage - The connector must be used within <qd-page>.');
|
|
29844
29830
|
return false;
|
|
29845
29831
|
}
|
|
29846
29832
|
if (!this.formGroupManagerService.isFormGroupKeyUnique(this.qdConnectFormStateToPage)) {
|
|
29847
|
-
console.error(`
|
|
29833
|
+
console.error(`Quadrel Framework | QdConnectFormStateToPage - The FormGroup key "${this.qdConnectFormStateToPage}" is not unique.`);
|
|
29848
29834
|
return false;
|
|
29849
29835
|
}
|
|
29850
29836
|
return true;
|
|
@@ -30858,9 +30844,7 @@ class QdShellServiceNavigationComponent {
|
|
|
30858
30844
|
this.logPamsEnvironmentMissingError();
|
|
30859
30845
|
}
|
|
30860
30846
|
logPamsEnvironmentMissingError() {
|
|
30861
|
-
console.error('
|
|
30862
|
-
'pamsEnvrionment is missing. The pamsEnvironment has to be given in the shell service navigation config or ' +
|
|
30863
|
-
'has to be provided in the backend auth config!');
|
|
30847
|
+
console.error('Quadrel Framework | QdShell - Config key "pamsEnvironment" is required to render <qd-shell-service-navigation>. Provide it in the service-navigation config or via the backend auth config.');
|
|
30864
30848
|
}
|
|
30865
30849
|
setLanguageFromUrlAfterNavigation() {
|
|
30866
30850
|
this.languageFromUrlService
|
|
@@ -31406,7 +31390,7 @@ class QdShellHeaderComponent {
|
|
|
31406
31390
|
}
|
|
31407
31391
|
validateTitle() {
|
|
31408
31392
|
if (this.config.title && typeof this.config.title === 'string') {
|
|
31409
|
-
console.warn('
|
|
31393
|
+
console.warn('Quadrel Framework | QdShell - "title" as a plain string is deprecated and will be removed in the next major release. Please use an i18n key instead.');
|
|
31410
31394
|
}
|
|
31411
31395
|
}
|
|
31412
31396
|
async = async;
|
|
@@ -31442,7 +31426,7 @@ class QdShellNavigationLinkComponent {
|
|
|
31442
31426
|
config;
|
|
31443
31427
|
handleClick() {
|
|
31444
31428
|
if (!this.config.handler) {
|
|
31445
|
-
console.error('
|
|
31429
|
+
console.error('Quadrel Framework | QdShell - Please provide a handler function for the navigation element.');
|
|
31446
31430
|
return;
|
|
31447
31431
|
}
|
|
31448
31432
|
if (this.config.handler && !this.config.isCurrent)
|
|
@@ -31955,7 +31939,7 @@ class QdShellComponent {
|
|
|
31955
31939
|
ngAfterViewInit() {
|
|
31956
31940
|
// TODO: Remove in v17! The comments will be integrated in the QdPage.
|
|
31957
31941
|
if (this.commentsComponent.length > 0)
|
|
31958
|
-
console.warn('
|
|
31942
|
+
console.warn('Quadrel Framework | QdShell - Using comments inside <qd-shell> is deprecated and will be removed in v17. Use <qd-page> instead.');
|
|
31959
31943
|
this.closeShellRightIfCommentsDisappear();
|
|
31960
31944
|
}
|
|
31961
31945
|
closeShellRightIfCommentsDisappear() {
|
|
@@ -32464,11 +32448,11 @@ class QdPageStepComponent extends CdkStep {
|
|
|
32464
32448
|
this._destroyed$.complete();
|
|
32465
32449
|
}
|
|
32466
32450
|
blockCdkInput(inputName) {
|
|
32467
|
-
throw new Error(`
|
|
32451
|
+
throw new Error(`Quadrel Framework | QdPageStep - The use of the "${inputName}" attribute is not permitted. Please use QdPageStepConfig instead.`);
|
|
32468
32452
|
}
|
|
32469
32453
|
validateLabel() {
|
|
32470
32454
|
if (!this.config?.label?.i18n)
|
|
32471
|
-
console.error('
|
|
32455
|
+
console.error('Quadrel Framework | QdPageStep - Please provide a label for the step.');
|
|
32472
32456
|
}
|
|
32473
32457
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32474
32458
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: QdPageStepComponent, isStandalone: true, selector: "qd-page-step", inputs: { config: "config", control: "control" }, host: { classAttribute: "qd-stepper" }, providers: [
|
|
@@ -32574,11 +32558,11 @@ class QdPageTabComponent extends CdkStep {
|
|
|
32574
32558
|
this._destroyed$.complete();
|
|
32575
32559
|
}
|
|
32576
32560
|
blockCdkInput(inputName) {
|
|
32577
|
-
throw new Error(`
|
|
32561
|
+
throw new Error(`Quadrel Framework | QdPageTab - The use of the "${inputName}" attribute is not permitted. Please use QdPageTabConfig instead.`);
|
|
32578
32562
|
}
|
|
32579
32563
|
validateLabel() {
|
|
32580
32564
|
if (!this.config?.label?.i18n)
|
|
32581
|
-
console.error('
|
|
32565
|
+
console.error('Quadrel Framework | QdPageTab - Please provide a label for the tab.');
|
|
32582
32566
|
}
|
|
32583
32567
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: QdPageTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32584
32568
|
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: [
|
|
@@ -33026,11 +33010,11 @@ class QdQuickEditComponent {
|
|
|
33026
33010
|
}
|
|
33027
33011
|
validateSetup() {
|
|
33028
33012
|
if (this.data != null && this.controlContainer != null)
|
|
33029
|
-
console.warn('
|
|
33013
|
+
console.warn('Quadrel Framework | QdQuickEdit - Data is being ignored when used as FormArray.');
|
|
33030
33014
|
if (!this.data && !this.controlContainer)
|
|
33031
|
-
console.warn('
|
|
33015
|
+
console.warn('Quadrel Framework | QdQuickEdit - Either use <qd-quick-edit> as a FormControl with formArrayName binding or provide data via input.');
|
|
33032
33016
|
if (this.controlContainer && this.config.columns.some(column => column.validators != null))
|
|
33033
|
-
console.warn('
|
|
33017
|
+
console.warn('Quadrel Framework | QdQuickEdit - Please provide validators in the specific FormControls directly for default validators to be added.');
|
|
33034
33018
|
}
|
|
33035
33019
|
redrawOnNextChange() {
|
|
33036
33020
|
this.togglerDrawing = !this.togglerDrawing;
|