@alfresco/adf-core 8.3.0-17240447502 → 8.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,23 +1,26 @@
1
1
  import { Emitters as JsApiEmitters, HttpClient as JsApiHttpClient } from '@alfresco/js-api';
2
2
  import { HttpClient } from '@angular/common/http';
3
3
  import { RequestOptions, SecurityOptions } from './interfaces';
4
- import ee, { Emitter } from 'event-emitter';
4
+ import { EventEmitter } from 'eventemitter3';
5
5
  import * as i0 from "@angular/core";
6
+ type EventEmitterInstance = InstanceType<typeof EventEmitter>;
7
+ type EventEmitterEvents = 'progress' | 'success' | 'error' | 'forbidden' | 'abort' | 'unauthorized' | string;
6
8
  export interface Emitters {
7
- readonly eventEmitter: Emitter;
8
- readonly apiClientEmitter: Emitter;
9
+ readonly eventEmitter: EventEmitterInstance;
10
+ readonly apiClientEmitter: EventEmitterInstance;
9
11
  }
10
- export declare class AdfHttpClient implements ee.Emitter, JsApiHttpClient {
12
+ export declare class AdfHttpClient implements JsApiHttpClient {
11
13
  private httpClient;
12
- on: ee.EmitterMethod;
13
- off: ee.EmitterMethod;
14
- once: ee.EmitterMethod;
14
+ private eventEmitter;
15
15
  _disableCsrf: boolean;
16
- emit: (type: string, ...args: any[]) => void;
17
16
  get disableCsrf(): boolean;
18
17
  set disableCsrf(disableCsrf: boolean);
19
18
  private defaultSecurityOptions;
20
19
  constructor(httpClient: HttpClient);
20
+ on(event: EventEmitterEvents, fn: (...args: any[]) => void, context?: any): this;
21
+ off(event: EventEmitterEvents, fn?: (...args: any[]) => void, context?: any): this;
22
+ once(event: EventEmitterEvents, fn: (...args: any[]) => void, context?: any): this;
23
+ emit(event: EventEmitterEvents, ...args: any[]): boolean;
21
24
  setDefaultSecurityOption(options: any): void;
22
25
  merge(...objects: any[]): any;
23
26
  request<T = any>(url: string, options?: RequestOptions, sc?: SecurityOptions, emitters?: JsApiEmitters): Promise<T>;
@@ -66,3 +69,4 @@ export declare class AdfHttpClient implements ee.Emitter, JsApiHttpClient {
66
69
  static ɵfac: i0.ɵɵFactoryDeclaration<AdfHttpClient, never>;
67
70
  static ɵprov: i0.ɵɵInjectableDeclaration<AdfHttpClient>;
68
71
  }
72
+ export {};
@@ -30,4 +30,4 @@ export declare const getQueryParamsWithCustomEncoder: (obj: Record<string | numb
30
30
  * @returns object with updated values
31
31
  */
32
32
  export declare const removeNilValues: (obj: Record<string | number, unknown>) => {};
33
- export declare const convertObjectToFormData: (formParams: Record<string | number, string | Blob>) => FormData;
33
+ export declare const convertObjectToFormData: (formParams: Record<string | number, string | Blob | Array<string | Blob>>) => FormData;
@@ -8,7 +8,7 @@ import * as i1$1 from '@ngx-translate/core';
8
8
  import { TranslatePipe, provideTranslateService, TranslateLoader, TranslateModule } from '@ngx-translate/core';
9
9
  import * as i1$8 from '@angular/common/http';
10
10
  import { HttpClient, HttpHeaders, HttpResponse, provideHttpClient, HTTP_INTERCEPTORS, withInterceptorsFromDi, withXsrfConfiguration } from '@angular/common/http';
11
- import { ReplaySubject, BehaviorSubject, of, Subject, switchMap as switchMap$1, from, fromEvent, Observable, throwError, combineLatest, defer, EMPTY, race, forkJoin, merge } from 'rxjs';
11
+ import { ReplaySubject, BehaviorSubject, of, Subject, switchMap as switchMap$1, from, fromEvent, Observable, throwError, firstValueFrom, combineLatest, defer, EMPTY, race, forkJoin, merge } from 'rxjs';
12
12
  import { map, distinctUntilChanged, take, switchMap, delay, catchError, skipWhile, filter, first, timeout, shareReplay, mergeMap, tap, retry, takeUntil, debounceTime, share, pairwise, buffer } from 'rxjs/operators';
13
13
  import * as i1$4 from '@alfresco/adf-extensions';
14
14
  import { ExtensionService, mergeObjects, ExtensionsModule, PreviewExtensionComponent } from '@alfresco/adf-extensions';
@@ -62,7 +62,6 @@ import * as i2$6 from '@angular/material/checkbox';
62
62
  import { MatCheckboxModule } from '@angular/material/checkbox';
63
63
  import * as i1$a from 'angular-oauth2-oidc';
64
64
  import { OAuthStorage, AuthConfig, OAuthService, OAuthErrorEvent, OAuthLogger, OAuthSuccessEvent, AUTH_CONFIG, provideOAuthClient } from 'angular-oauth2-oidc';
65
- import ee from 'event-emitter';
66
65
  import { Minimatch } from 'minimatch';
67
66
  import { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';
68
67
  import { AuthenticationInterceptor, Authentication } from '@alfresco/adf-core/auth';
@@ -7231,7 +7230,6 @@ class BaseAuthenticationService {
7231
7230
  this.onError = new ReplaySubject(1);
7232
7231
  this.onLogin = new ReplaySubject(1);
7233
7232
  this.onLogout = new ReplaySubject(1);
7234
- ee(this);
7235
7233
  }
7236
7234
  /**
7237
7235
  * Adds the auth token to an HTTP header using the 'bearer' scheme.
@@ -7552,7 +7550,7 @@ class AuthConfigService {
7552
7550
  return this._authConfig;
7553
7551
  }
7554
7552
  loadConfig() {
7555
- return this.appConfigService.onLoad.pipe(take(1)).toPromise().then(this.loadAppConfig.bind(this));
7553
+ return firstValueFrom(this.appConfigService.onLoad.pipe(take(1))).then(this.loadAppConfig.bind(this));
7556
7554
  }
7557
7555
  loadAppConfig() {
7558
7556
  const oauth2 = this.appConfigService.oauth2;
@@ -7676,26 +7674,6 @@ class OidcAuthenticationService extends BaseAuthenticationService {
7676
7674
  */
7677
7675
  this.shouldPerformSsoLogin$ = combineLatest([this.auth.authenticated$, this.auth.isDiscoveryDocumentLoaded$]).pipe(map(([authenticated, isDiscoveryDocumentLoaded]) => !authenticated && isDiscoveryDocumentLoaded));
7678
7676
  }
7679
- /**
7680
- * @deprecated use `isLoggedIn` instead
7681
- * @returns true if the ECM provider is logged in
7682
- */
7683
- isEcmLoggedIn() {
7684
- if (this.isECMProvider() || this.isALLProvider()) {
7685
- return this.isLoggedIn();
7686
- }
7687
- return false;
7688
- }
7689
- /**
7690
- * @deprecated use `isLoggedIn` instead
7691
- * @returns true if the BPM provider is logged in
7692
- */
7693
- isBpmLoggedIn() {
7694
- if (this.isBPMProvider() || this.isALLProvider()) {
7695
- return this.isLoggedIn();
7696
- }
7697
- return false;
7698
- }
7699
7677
  isLoggedIn() {
7700
7678
  return this.oauthService.hasValidAccessToken() && this.oauthService.hasValidIdToken();
7701
7679
  }
@@ -7741,20 +7719,6 @@ class OidcAuthenticationService extends BaseAuthenticationService {
7741
7719
  getUsername() {
7742
7720
  return this.jwtHelperService.getValueFromLocalToken(JwtHelperService.USER_PREFERRED_USERNAME);
7743
7721
  }
7744
- /**
7745
- * @deprecated use `getUsername` instead
7746
- * @returns the logged username
7747
- */
7748
- getEcmUsername() {
7749
- return this.getUsername();
7750
- }
7751
- /**
7752
- * @deprecated use `getUsername` instead
7753
- * @returns the logged username
7754
- */
7755
- getBpmUsername() {
7756
- return this.getUsername();
7757
- }
7758
7722
  ssoLogin(redirectUrl) {
7759
7723
  this.auth.login(redirectUrl);
7760
7724
  }
@@ -8367,26 +8331,6 @@ class BasicAlfrescoAuthService extends BaseAuthenticationService {
8367
8331
  return '';
8368
8332
  }
8369
8333
  }
8370
- /**
8371
- * @deprecated
8372
- * @returns content auth token
8373
- */
8374
- getTicketEcm() {
8375
- return this.contentAuth.getToken();
8376
- }
8377
- /**
8378
- * @deprecated
8379
- * @returns process auth token
8380
- */
8381
- getTicketBpm() {
8382
- return this.processAuth.getToken();
8383
- }
8384
- isBpmLoggedIn() {
8385
- return this.processAuth.isLoggedIn();
8386
- }
8387
- isEcmLoggedIn() {
8388
- return this.contentAuth.isLoggedIn();
8389
- }
8390
8334
  isLoggedIn() {
8391
8335
  const authWithCredentials = this.isKerberosEnabled();
8392
8336
  if (this.isBPMProvider()) {
@@ -8458,20 +8402,6 @@ class BasicAlfrescoAuthService extends BaseAuthenticationService {
8458
8402
  hasSelectedProviderAll(provider) {
8459
8403
  return this.redirectUrl && (this.redirectUrl.provider === 'ALL' || provider === 'ALL');
8460
8404
  }
8461
- /**
8462
- * @deprecated use `getUsername()` instead
8463
- * @returns the username of the authenticated user
8464
- */
8465
- getBpmUsername() {
8466
- return this.processAuth.getUsername();
8467
- }
8468
- /**
8469
- * @deprecated use `getUsername()` instead
8470
- * @returns the username of the authenticated user
8471
- */
8472
- getEcmUsername() {
8473
- return this.contentAuth.getUsername();
8474
- }
8475
8405
  /**
8476
8406
  * Gets the username of the authenticated user.
8477
8407
  *
@@ -9036,30 +8966,6 @@ class AuthenticationService {
9036
8966
  return from(this.basicAlfrescoAuthService.logout());
9037
8967
  }
9038
8968
  }
9039
- /**
9040
- * @deprecated use `isLoggedIn` instead
9041
- * @returns true if the ECM provider is logged in
9042
- */
9043
- isEcmLoggedIn() {
9044
- if (this.isOauth()) {
9045
- return this.oidcAuthenticationService.isLoggedIn();
9046
- }
9047
- else {
9048
- return this.basicAlfrescoAuthService.isEcmLoggedIn();
9049
- }
9050
- }
9051
- /**
9052
- * @deprecated use `isLoggedIn` instead
9053
- * @returns true if the BPM provider is logged in
9054
- */
9055
- isBpmLoggedIn() {
9056
- if (this.isOauth()) {
9057
- return this.oidcAuthenticationService.isLoggedIn();
9058
- }
9059
- else {
9060
- return this.basicAlfrescoAuthService.isBpmLoggedIn();
9061
- }
9062
- }
9063
8969
  reset() {
9064
8970
  if (this.isOauth()) {
9065
8971
  return this.oidcAuthenticationService.reset();
@@ -9089,20 +8995,6 @@ class AuthenticationService {
9089
8995
  return this.basicAlfrescoAuthService.getUsername();
9090
8996
  }
9091
8997
  }
9092
- /**
9093
- * @deprecated use `getUsername` instead
9094
- * @returns the logged username
9095
- */
9096
- getEcmUsername() {
9097
- return this.getUsername();
9098
- }
9099
- /**
9100
- * @deprecated use `getUsername` instead
9101
- * @returns the logged username
9102
- */
9103
- getBpmUsername() {
9104
- return this.getUsername();
9105
- }
9106
8998
  getAuthHeaders(requestUrl, headers) {
9107
8999
  if (this.isOauth()) {
9108
9000
  return this.oidcAuthenticationService.getAuthHeaders(requestUrl, headers);
@@ -9355,7 +9247,7 @@ const AuthGuardEcm = async (_, state) => {
9355
9247
  if (authenticationService.isLoggedIn() && authenticationService.isOauth() && authGuardBaseService.isLoginFragmentPresent()) {
9356
9248
  return authGuardBaseService.redirectSSOSuccessURL();
9357
9249
  }
9358
- if (authenticationService.isEcmLoggedIn() || authGuardBaseService.withCredentials) {
9250
+ if (authenticationService.isLoggedIn() || authGuardBaseService.withCredentials) {
9359
9251
  return true;
9360
9252
  }
9361
9253
  return authGuardBaseService.redirectToUrl(state.url);
@@ -9900,7 +9792,7 @@ class IdentityUserService {
9900
9792
  async getUsersByRolesWithCurrentUser(roleNames) {
9901
9793
  const filteredUsers = [];
9902
9794
  if (roleNames && roleNames.length > 0) {
9903
- const users = await this.getUsers().toPromise();
9795
+ const users = await firstValueFrom(this.getUsers());
9904
9796
  for (let i = 0; i < users.length; i++) {
9905
9797
  const hasAnyRole = await this.userHasAnyRole(users[i].id, roleNames);
9906
9798
  if (hasAnyRole) {
@@ -9920,7 +9812,7 @@ class IdentityUserService {
9920
9812
  const filteredUsers = [];
9921
9813
  if (roleNames && roleNames.length > 0) {
9922
9814
  const currentUser = this.getCurrentUserInfo();
9923
- let users = await this.getUsers().toPromise();
9815
+ let users = await firstValueFrom(this.getUsers());
9924
9816
  users = users.filter(({ username }) => username !== currentUser.username);
9925
9817
  for (let i = 0; i < users.length; i++) {
9926
9818
  const hasAnyRole = await this.userHasAnyRole(users[i].id, roleNames);
@@ -9932,7 +9824,7 @@ class IdentityUserService {
9932
9824
  return filteredUsers;
9933
9825
  }
9934
9826
  async userHasAnyRole(userId, roleNames) {
9935
- const userRoles = await this.getUserRoles(userId).toPromise();
9827
+ const userRoles = await firstValueFrom(this.getUserRoles(userId));
9936
9828
  const hasAnyRole = roleNames.some((roleName) => {
9937
9829
  const filteredRoles = userRoles.filter((userRole) => userRole.name.toLocaleLowerCase() === roleName.toLocaleLowerCase());
9938
9830
  return filteredRoles.length > 0;
@@ -13418,13 +13310,13 @@ class SnackbarContentComponent {
13418
13310
  this.data.callActionOnIconClick ? this.snackBarRef.dismissWithAction() : this.snackBarRef.dismiss();
13419
13311
  }
13420
13312
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: SnackbarContentComponent, deps: [{ token: i1$b.MatSnackBarRef }, { token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
13421
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: SnackbarContentComponent, isStandalone: true, selector: "adf-snackbar-content", host: { classAttribute: "mat-simple-snackbar" }, ngImport: i0, template: "<p class=\"adf-snackbar-message-content\" data-automation-id=\"adf-snackbar-message-content\" aria-hidden=\"true\">\n @if (data.decorativeIcon) {\n <mat-icon data-automation-id=\"adf-snackbar-decorative-icon\">{{ data.decorativeIcon }}</mat-icon>\n }\n {{ data.message }}\n</p>\n\n@if (data.showAction) {\n <div class=\"adf-snackbar-message-content-action\" aria-hidden=\"true\">\n @if (data.actionLabel) {\n <button mat-button (click)=\"snackBarRef.dismissWithAction()\" class=\"adf-snackbar-message-content-action-button\"\n data-automation-id=\"adf-snackbar-message-content-action-button\">\n {{data.actionLabel}}\n </button>\n }\n @if (data.actionIcon) {\n <button mat-button (click)=\"onIconClicked()\" class=\"adf-snackbar-message-content-action-icon\"\n [attr.aria-label]=\"data.actionIconAriaLabel | translate\">\n <mat-icon>{{ data.actionIcon }}</mat-icon>\n </button>\n }\n </div>\n}\n", styles: [":host{display:flex;align-items:center;justify-content:space-between}:host .adf-snackbar-message-content{display:flex;align-items:center;margin:0}:host .adf-snackbar-message-content mat-icon{margin-right:8px}:host .adf-snackbar-message-content-action{margin-left:24px;display:flex;flex-direction:row}:host .adf-snackbar-message-content-action .mat-mdc-button{min-width:0;margin:-8px;height:unset}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-button{margin-right:8px;padding-left:16px;padding-right:16px;width:auto;-webkit-font-smoothing:subpixel-antialiased}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-icon{padding:0;width:auto}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-icon mat-icon{height:24px;width:24px;font-size:24px;margin-right:0;margin-top:4px}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
13313
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: SnackbarContentComponent, isStandalone: true, selector: "adf-snackbar-content", host: { classAttribute: "mat-simple-snackbar" }, ngImport: i0, template: "<p class=\"adf-snackbar-message-content\" data-automation-id=\"adf-snackbar-message-content\" aria-hidden=\"true\">\n @if (data.decorativeIcon) {\n <mat-icon data-automation-id=\"adf-snackbar-decorative-icon\">{{ data.decorativeIcon }}</mat-icon>\n }\n {{ data.message }}\n</p>\n\n@if (data.showAction) {\n <div class=\"adf-snackbar-message-content-action\" aria-hidden=\"true\">\n @if (data.actionLabel) {\n <button mat-button (click)=\"snackBarRef.dismissWithAction()\" class=\"adf-snackbar-message-content-action-button\"\n data-automation-id=\"adf-snackbar-message-content-action-button\">\n {{data.actionLabel}}\n </button>\n }\n @if (data.actionIcon) {\n <button mat-button (click)=\"onIconClicked()\" class=\"adf-snackbar-message-content-action-icon\"\n [attr.aria-label]=\"data.actionIconAriaLabel | translate\">\n <mat-icon>{{ data.actionIcon }}</mat-icon>\n </button>\n }\n </div>\n}\n", styles: [":host{display:flex;align-items:center;justify-content:space-between}:host .adf-snackbar-message-content{display:flex;align-items:center;margin:0;overflow-wrap:anywhere;gap:8px}:host .adf-snackbar-message-content mat-icon{flex:0 0 auto;align-self:flex-start}:host .adf-snackbar-message-content-action{margin-left:24px;display:flex;flex-direction:row}:host .adf-snackbar-message-content-action .mat-mdc-button{min-width:0;margin:-8px;height:unset}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-button{margin-right:8px;padding-left:16px;padding-right:16px;width:auto;-webkit-font-smoothing:subpixel-antialiased}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-icon{padding:0;width:auto}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-icon mat-icon{height:24px;width:24px;font-size:24px;margin-right:0;margin-top:4px}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
13422
13314
  }
13423
13315
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: SnackbarContentComponent, decorators: [{
13424
13316
  type: Component,
13425
13317
  args: [{ selector: 'adf-snackbar-content', imports: [MatIconModule, TranslatePipe, MatButtonModule], host: {
13426
13318
  class: 'mat-simple-snackbar'
13427
- }, template: "<p class=\"adf-snackbar-message-content\" data-automation-id=\"adf-snackbar-message-content\" aria-hidden=\"true\">\n @if (data.decorativeIcon) {\n <mat-icon data-automation-id=\"adf-snackbar-decorative-icon\">{{ data.decorativeIcon }}</mat-icon>\n }\n {{ data.message }}\n</p>\n\n@if (data.showAction) {\n <div class=\"adf-snackbar-message-content-action\" aria-hidden=\"true\">\n @if (data.actionLabel) {\n <button mat-button (click)=\"snackBarRef.dismissWithAction()\" class=\"adf-snackbar-message-content-action-button\"\n data-automation-id=\"adf-snackbar-message-content-action-button\">\n {{data.actionLabel}}\n </button>\n }\n @if (data.actionIcon) {\n <button mat-button (click)=\"onIconClicked()\" class=\"adf-snackbar-message-content-action-icon\"\n [attr.aria-label]=\"data.actionIconAriaLabel | translate\">\n <mat-icon>{{ data.actionIcon }}</mat-icon>\n </button>\n }\n </div>\n}\n", styles: [":host{display:flex;align-items:center;justify-content:space-between}:host .adf-snackbar-message-content{display:flex;align-items:center;margin:0}:host .adf-snackbar-message-content mat-icon{margin-right:8px}:host .adf-snackbar-message-content-action{margin-left:24px;display:flex;flex-direction:row}:host .adf-snackbar-message-content-action .mat-mdc-button{min-width:0;margin:-8px;height:unset}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-button{margin-right:8px;padding-left:16px;padding-right:16px;width:auto;-webkit-font-smoothing:subpixel-antialiased}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-icon{padding:0;width:auto}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-icon mat-icon{height:24px;width:24px;font-size:24px;margin-right:0;margin-top:4px}\n"] }]
13319
+ }, template: "<p class=\"adf-snackbar-message-content\" data-automation-id=\"adf-snackbar-message-content\" aria-hidden=\"true\">\n @if (data.decorativeIcon) {\n <mat-icon data-automation-id=\"adf-snackbar-decorative-icon\">{{ data.decorativeIcon }}</mat-icon>\n }\n {{ data.message }}\n</p>\n\n@if (data.showAction) {\n <div class=\"adf-snackbar-message-content-action\" aria-hidden=\"true\">\n @if (data.actionLabel) {\n <button mat-button (click)=\"snackBarRef.dismissWithAction()\" class=\"adf-snackbar-message-content-action-button\"\n data-automation-id=\"adf-snackbar-message-content-action-button\">\n {{data.actionLabel}}\n </button>\n }\n @if (data.actionIcon) {\n <button mat-button (click)=\"onIconClicked()\" class=\"adf-snackbar-message-content-action-icon\"\n [attr.aria-label]=\"data.actionIconAriaLabel | translate\">\n <mat-icon>{{ data.actionIcon }}</mat-icon>\n </button>\n }\n </div>\n}\n", styles: [":host{display:flex;align-items:center;justify-content:space-between}:host .adf-snackbar-message-content{display:flex;align-items:center;margin:0;overflow-wrap:anywhere;gap:8px}:host .adf-snackbar-message-content mat-icon{flex:0 0 auto;align-self:flex-start}:host .adf-snackbar-message-content-action{margin-left:24px;display:flex;flex-direction:row}:host .adf-snackbar-message-content-action .mat-mdc-button{min-width:0;margin:-8px;height:unset}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-button{margin-right:8px;padding-left:16px;padding-right:16px;width:auto;-webkit-font-smoothing:subpixel-antialiased}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-icon{padding:0;width:auto}:host .adf-snackbar-message-content-action .mat-mdc-button.adf-snackbar-message-content-action-icon mat-icon{height:24px;width:24px;font-size:24px;margin-right:0;margin-top:4px}\n"] }]
13428
13320
  }], ctorParameters: () => [{ type: i1$b.MatSnackBarRef }, { type: undefined, decorators: [{
13429
13321
  type: Inject,
13430
13322
  args: [MAT_SNACK_BAR_DATA]
@@ -18311,7 +18203,7 @@ class CardViewTextItemComponent extends BaseCardView {
18311
18203
  return String(Math.trunc(Number(value)));
18312
18204
  }
18313
18205
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: CardViewTextItemComponent, deps: [{ token: ClipboardService }, { token: TranslationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
18314
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: CardViewTextItemComponent, isStandalone: true, selector: "adf-card-view-textitem", inputs: { displayEmpty: "displayEmpty", copyToClipboardAction: "copyToClipboardAction", useChipsForMultiValueProperty: "useChipsForMultiValueProperty", multiValueSeparator: "multiValueSeparator", displayLabelForChips: "displayLabelForChips" }, host: { classAttribute: "adf-card-view-textitem" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [ngSwitch]=\"templateType\">\n <div *ngSwitchDefault>\n <mat-form-field\n subscriptSizing=\"dynamic\"\n [floatLabel]=\"'always'\"\n class=\"adf-property-field adf-card-textitem-field\"\n [ngClass]=\"{\n 'adf-property-read-only': !isEditable\n }\"\n >\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >\n {{ property.label | translate }}\n </mat-label>\n\n <input\n matInput\n *ngIf=\"!property.multiline\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors,\n 'adf-property-value-not-editable': !editable\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n (dblclick)=\"copyToClipboard(property.displayValue)\"\n [title]=\"'CORE.METADATA.ACTIONS.COPY_TO_CLIPBOARD' | translate\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n (keydown)=\"undoText($event)\"\n />\n <textarea\n matInput\n *ngIf=\"property.multiline\"\n title=\"{{ property.label | translate }}\"\n [cdkTextareaAutosize]=\"true\"\n [cdkAutosizeMinRows]=\"1\"\n [cdkAutosizeMaxRows]=\"5\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n >\n </textarea>\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'chipsTemplate'\"\n class=\"adf-property-field adf-textitem-chip-list-container\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <mat-label\n *ngIf=\"showLabelForChips\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <mat-chip-grid #chipElement class=\"adf-textitem-chip-list\">\n <mat-chip-row *ngFor=\"let propertyValue of editedValue; let idx = index\" [removable]=\"isEditable\" (removed)=\"removeValueFromList(idx)\">\n {{ propertyValue }}\n <mat-icon *ngIf=\"isEditable\" matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n </mat-chip-grid>\n\n <mat-form-field\n *ngIf=\"isEditable\"\n class=\"adf-property-field adf-textitem-chip-list-input\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <input\n matInput\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"editedValue ? '' : (property.default | translate)\"\n [attr.aria-label]=\"property.label | translate\"\n [matChipInputFor]=\"chipElement\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addValueToList($event)\"\n [attr.data-automation-id]=\"'card-textitem-editchipinput-' + property.key\"\n />\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'clickableTemplate'\"\n role=\"button\"\n class=\"adf-textitem-clickable\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n [attr.data-automation-id]=\"'card-textitem-toggle-' + property.key\"\n tabindex=\"0\"\n (keyup.enter)=\"clicked()\"\n (click)=\"clicked()\"\n >\n <mat-form-field class=\"adf-property-field adf-card-textitem-field \" [floatLabel]=\"property.default ? 'always' : null\">\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <input\n matInput\n [type]=\"property.inputType\"\n class=\"adf-property-value\"\n title=\"{{ property.label | translate }}\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-textitem-clickable-value': isClickable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors,\n 'adf-property-value-has-icon-suffix': showClickableIcon\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [(ngModel)]=\"editedValue\"\n (blur)=\"update()\"\n (keydown.enter)=\"update()\"\n [readonly]=\"!isEditable\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n />\n <button\n mat-icon-button\n matSuffix\n *ngIf=\"showClickableIcon\"\n class=\"adf-textitem-action\"\n [attr.title]=\"'CORE.METADATA.ACTIONS.EDIT' | translate\"\n [attr.data-automation-id]=\"'card-textitem-clickable-icon-' + property.key\"\n >\n <mat-icon class=\"adf-textitem-icon\">{{ property?.icon }}</mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'emptyTemplate'\">\n <span class=\"adf-textitem-default-value\">{{ property.default | translate }}</span>\n </div>\n\n <mat-error *ngIf=\"isEditable && hasErrors\" class=\"adf-textitem-error\" [attr.data-automation-id]=\"'card-textitem-error-' + property.key\">\n <ul>\n <li *ngFor=\"let error of errors\">{{ error.message | translate : error }}</li>\n </ul>\n </mat-error>\n</div>\n", styles: [".adf-card-view-textitem .adf-textitem-error{font-size:var(--theme-caption-font-size);padding-top:6px}.adf-card-view-textitem .adf-textitem-error:before{display:none}.adf-card-view-textitem .adf-textitem-error ul{margin:0;padding:0;list-style-type:none}.adf-card-view-textitem .adf-textitem-error ul li{margin:0;padding:0}.adf-card-view-textitem .adf-textitem-action{width:30px;height:30px;padding:0;line-height:20px;color:var(--adf-theme-foreground-text-color-025)}.adf-card-view-textitem .adf-textitem-action:hover,.adf-card-view-textitem .adf-textitem-action:focus{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-action .mat-mdc-button-touch-target{width:30px;height:30px}.adf-card-view-textitem .mat-mdc-form-field-icon-suffix{position:absolute;right:1px;bottom:7px}.adf-card-view-textitem .adf-textitem-chip-list-container .mat-mdc-floating-label{margin-top:6px}.adf-card-view-textitem .adf-textitem-clickable{cursor:pointer;padding-top:3px}.adf-card-view-textitem .adf-textitem-clickable .adf-textitem-action:hover{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-clickable .adf-property-field .mat-mdc-input-element{color:var(--theme-primary-color);cursor:pointer}.adf-card-view-textitem .adf-textitem-default-value{color:var(--adf-theme-foreground-text-color-054)}.adf-card-view-textitem .adf-property-read-only:not(:has(.adf-property-readonly-value)){border-bottom:1px solid var(--adf-metadata-property-panel-border-color)}.adf-card-view-textitem .adf-property-value-not-editable{color:var(--adf-metadata-property-panel-title-color)}.adf-card-view-textitem .adf-property-value-has-icon-suffix{padding-right:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adf-card-view-textitem .mdc-line-ripple:before,.adf-card-view-textitem .mdc-line-ripple:after{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i6.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i8.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i8.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i8.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i8.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatSnackBarModule }], encapsulation: i0.ViewEncapsulation.None }); }
18206
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: CardViewTextItemComponent, isStandalone: true, selector: "adf-card-view-textitem", inputs: { displayEmpty: "displayEmpty", copyToClipboardAction: "copyToClipboardAction", useChipsForMultiValueProperty: "useChipsForMultiValueProperty", multiValueSeparator: "multiValueSeparator", displayLabelForChips: "displayLabelForChips" }, host: { classAttribute: "adf-card-view-textitem" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [ngSwitch]=\"templateType\">\n <div *ngSwitchDefault>\n <mat-form-field\n subscriptSizing=\"dynamic\"\n [floatLabel]=\"'always'\"\n class=\"adf-property-field adf-card-textitem-field\"\n [ngClass]=\"{\n 'adf-property-read-only': !isEditable\n }\"\n >\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >\n {{ property.label | translate }}\n </mat-label>\n\n <input\n matInput\n *ngIf=\"!property.multiline\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors,\n 'adf-property-value-not-editable': !editable\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n (dblclick)=\"copyToClipboard(property.displayValue)\"\n [title]=\"'CORE.METADATA.ACTIONS.COPY_TO_CLIPBOARD' | translate\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n (keydown)=\"undoText($event)\"\n />\n <textarea\n matInput\n *ngIf=\"property.multiline\"\n title=\"{{ property.label | translate }}\"\n [cdkTextareaAutosize]=\"true\"\n [cdkAutosizeMinRows]=\"1\"\n [cdkAutosizeMaxRows]=\"5\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n >\n </textarea>\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'chipsTemplate'\"\n class=\"adf-property-field adf-textitem-chip-list-container\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <mat-label\n *ngIf=\"showLabelForChips\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <mat-chip-grid #chipElement class=\"adf-textitem-chip-list\">\n <mat-chip-row *ngFor=\"let propertyValue of editedValue; let idx = index\" [removable]=\"isEditable\" (removed)=\"removeValueFromList(idx)\">\n {{ propertyValue }}\n <mat-icon *ngIf=\"isEditable\" matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n </mat-chip-grid>\n\n <mat-form-field\n *ngIf=\"isEditable\"\n [floatLabel]=\"'always'\"\n class=\"adf-property-field adf-textitem-chip-list-input\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <input\n matInput\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"editedValue ? '' : (property.default | translate)\"\n [attr.aria-label]=\"property.label | translate\"\n [matChipInputFor]=\"chipElement\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addValueToList($event)\"\n [attr.data-automation-id]=\"'card-textitem-editchipinput-' + property.key\"\n />\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'clickableTemplate'\"\n role=\"button\"\n class=\"adf-textitem-clickable\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n [attr.data-automation-id]=\"'card-textitem-toggle-' + property.key\"\n tabindex=\"0\"\n (keyup.enter)=\"clicked()\"\n (click)=\"clicked()\"\n >\n <mat-form-field class=\"adf-property-field adf-card-textitem-field\" [floatLabel]=\"'always'\">\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <input\n matInput\n [type]=\"property.inputType\"\n class=\"adf-property-value\"\n title=\"{{ property.label | translate }}\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-textitem-clickable-value': isClickable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors,\n 'adf-property-value-has-icon-suffix': showClickableIcon\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [(ngModel)]=\"editedValue\"\n (blur)=\"update()\"\n (keydown.enter)=\"update()\"\n [readonly]=\"!isEditable\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n />\n <button\n mat-icon-button\n matSuffix\n *ngIf=\"showClickableIcon\"\n class=\"adf-textitem-action\"\n [attr.title]=\"'CORE.METADATA.ACTIONS.EDIT' | translate\"\n [attr.data-automation-id]=\"'card-textitem-clickable-icon-' + property.key\"\n >\n <mat-icon class=\"adf-textitem-icon\">{{ property?.icon }}</mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'emptyTemplate'\">\n <span class=\"adf-textitem-default-value\">{{ property.default | translate }}</span>\n </div>\n\n <mat-error *ngIf=\"isEditable && hasErrors\" class=\"adf-textitem-error\" [attr.data-automation-id]=\"'card-textitem-error-' + property.key\">\n <ul>\n <li *ngFor=\"let error of errors\">{{ error.message | translate : error }}</li>\n </ul>\n </mat-error>\n</div>\n", styles: [".adf-card-view-textitem .adf-textitem-error{font-size:var(--theme-caption-font-size);padding-top:6px}.adf-card-view-textitem .adf-textitem-error:before{display:none}.adf-card-view-textitem .adf-textitem-error ul{margin:0;padding:0;list-style-type:none}.adf-card-view-textitem .adf-textitem-error ul li{margin:0;padding:0}.adf-card-view-textitem .adf-textitem-action{width:30px;height:30px;padding:0;line-height:20px;color:var(--adf-theme-foreground-text-color-025)}.adf-card-view-textitem .adf-textitem-action:hover,.adf-card-view-textitem .adf-textitem-action:focus{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-action .mat-mdc-button-touch-target{width:30px;height:30px}.adf-card-view-textitem .mat-mdc-form-field-icon-suffix{position:absolute;right:1px;bottom:7px}.adf-card-view-textitem .adf-textitem-chip-list-container .mat-mdc-floating-label{margin-top:6px}.adf-card-view-textitem .adf-textitem-clickable{cursor:pointer;padding-top:3px}.adf-card-view-textitem .adf-textitem-clickable .adf-textitem-action:hover{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-clickable .adf-property-field .mat-mdc-input-element{color:var(--theme-primary-color);cursor:pointer}.adf-card-view-textitem .adf-textitem-default-value{color:var(--adf-theme-foreground-text-color-054)}.adf-card-view-textitem .adf-property-read-only:not(:has(.adf-property-readonly-value)){border-bottom:1px solid var(--adf-metadata-property-panel-border-color)}.adf-card-view-textitem .adf-property-value-not-editable{color:var(--adf-metadata-property-panel-title-color)}.adf-card-view-textitem .adf-property-value-has-icon-suffix{padding-right:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adf-card-view-textitem .mdc-line-ripple:before,.adf-card-view-textitem .mdc-line-ripple:after{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i6.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i8.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i8.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i8.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i8.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatSnackBarModule }], encapsulation: i0.ViewEncapsulation.None }); }
18315
18207
  }
18316
18208
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: CardViewTextItemComponent, decorators: [{
18317
18209
  type: Component,
@@ -18326,7 +18218,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
18326
18218
  FormsModule,
18327
18219
  MatButtonModule,
18328
18220
  MatSnackBarModule
18329
- ], encapsulation: ViewEncapsulation.None, host: { class: 'adf-card-view-textitem' }, template: "<div [ngSwitch]=\"templateType\">\n <div *ngSwitchDefault>\n <mat-form-field\n subscriptSizing=\"dynamic\"\n [floatLabel]=\"'always'\"\n class=\"adf-property-field adf-card-textitem-field\"\n [ngClass]=\"{\n 'adf-property-read-only': !isEditable\n }\"\n >\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >\n {{ property.label | translate }}\n </mat-label>\n\n <input\n matInput\n *ngIf=\"!property.multiline\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors,\n 'adf-property-value-not-editable': !editable\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n (dblclick)=\"copyToClipboard(property.displayValue)\"\n [title]=\"'CORE.METADATA.ACTIONS.COPY_TO_CLIPBOARD' | translate\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n (keydown)=\"undoText($event)\"\n />\n <textarea\n matInput\n *ngIf=\"property.multiline\"\n title=\"{{ property.label | translate }}\"\n [cdkTextareaAutosize]=\"true\"\n [cdkAutosizeMinRows]=\"1\"\n [cdkAutosizeMaxRows]=\"5\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n >\n </textarea>\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'chipsTemplate'\"\n class=\"adf-property-field adf-textitem-chip-list-container\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <mat-label\n *ngIf=\"showLabelForChips\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <mat-chip-grid #chipElement class=\"adf-textitem-chip-list\">\n <mat-chip-row *ngFor=\"let propertyValue of editedValue; let idx = index\" [removable]=\"isEditable\" (removed)=\"removeValueFromList(idx)\">\n {{ propertyValue }}\n <mat-icon *ngIf=\"isEditable\" matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n </mat-chip-grid>\n\n <mat-form-field\n *ngIf=\"isEditable\"\n class=\"adf-property-field adf-textitem-chip-list-input\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <input\n matInput\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"editedValue ? '' : (property.default | translate)\"\n [attr.aria-label]=\"property.label | translate\"\n [matChipInputFor]=\"chipElement\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addValueToList($event)\"\n [attr.data-automation-id]=\"'card-textitem-editchipinput-' + property.key\"\n />\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'clickableTemplate'\"\n role=\"button\"\n class=\"adf-textitem-clickable\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n [attr.data-automation-id]=\"'card-textitem-toggle-' + property.key\"\n tabindex=\"0\"\n (keyup.enter)=\"clicked()\"\n (click)=\"clicked()\"\n >\n <mat-form-field class=\"adf-property-field adf-card-textitem-field \" [floatLabel]=\"property.default ? 'always' : null\">\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <input\n matInput\n [type]=\"property.inputType\"\n class=\"adf-property-value\"\n title=\"{{ property.label | translate }}\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-textitem-clickable-value': isClickable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors,\n 'adf-property-value-has-icon-suffix': showClickableIcon\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [(ngModel)]=\"editedValue\"\n (blur)=\"update()\"\n (keydown.enter)=\"update()\"\n [readonly]=\"!isEditable\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n />\n <button\n mat-icon-button\n matSuffix\n *ngIf=\"showClickableIcon\"\n class=\"adf-textitem-action\"\n [attr.title]=\"'CORE.METADATA.ACTIONS.EDIT' | translate\"\n [attr.data-automation-id]=\"'card-textitem-clickable-icon-' + property.key\"\n >\n <mat-icon class=\"adf-textitem-icon\">{{ property?.icon }}</mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'emptyTemplate'\">\n <span class=\"adf-textitem-default-value\">{{ property.default | translate }}</span>\n </div>\n\n <mat-error *ngIf=\"isEditable && hasErrors\" class=\"adf-textitem-error\" [attr.data-automation-id]=\"'card-textitem-error-' + property.key\">\n <ul>\n <li *ngFor=\"let error of errors\">{{ error.message | translate : error }}</li>\n </ul>\n </mat-error>\n</div>\n", styles: [".adf-card-view-textitem .adf-textitem-error{font-size:var(--theme-caption-font-size);padding-top:6px}.adf-card-view-textitem .adf-textitem-error:before{display:none}.adf-card-view-textitem .adf-textitem-error ul{margin:0;padding:0;list-style-type:none}.adf-card-view-textitem .adf-textitem-error ul li{margin:0;padding:0}.adf-card-view-textitem .adf-textitem-action{width:30px;height:30px;padding:0;line-height:20px;color:var(--adf-theme-foreground-text-color-025)}.adf-card-view-textitem .adf-textitem-action:hover,.adf-card-view-textitem .adf-textitem-action:focus{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-action .mat-mdc-button-touch-target{width:30px;height:30px}.adf-card-view-textitem .mat-mdc-form-field-icon-suffix{position:absolute;right:1px;bottom:7px}.adf-card-view-textitem .adf-textitem-chip-list-container .mat-mdc-floating-label{margin-top:6px}.adf-card-view-textitem .adf-textitem-clickable{cursor:pointer;padding-top:3px}.adf-card-view-textitem .adf-textitem-clickable .adf-textitem-action:hover{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-clickable .adf-property-field .mat-mdc-input-element{color:var(--theme-primary-color);cursor:pointer}.adf-card-view-textitem .adf-textitem-default-value{color:var(--adf-theme-foreground-text-color-054)}.adf-card-view-textitem .adf-property-read-only:not(:has(.adf-property-readonly-value)){border-bottom:1px solid var(--adf-metadata-property-panel-border-color)}.adf-card-view-textitem .adf-property-value-not-editable{color:var(--adf-metadata-property-panel-title-color)}.adf-card-view-textitem .adf-property-value-has-icon-suffix{padding-right:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adf-card-view-textitem .mdc-line-ripple:before,.adf-card-view-textitem .mdc-line-ripple:after{display:none}\n"] }]
18221
+ ], encapsulation: ViewEncapsulation.None, host: { class: 'adf-card-view-textitem' }, template: "<div [ngSwitch]=\"templateType\">\n <div *ngSwitchDefault>\n <mat-form-field\n subscriptSizing=\"dynamic\"\n [floatLabel]=\"'always'\"\n class=\"adf-property-field adf-card-textitem-field\"\n [ngClass]=\"{\n 'adf-property-read-only': !isEditable\n }\"\n >\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >\n {{ property.label | translate }}\n </mat-label>\n\n <input\n matInput\n *ngIf=\"!property.multiline\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors,\n 'adf-property-value-not-editable': !editable\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n (dblclick)=\"copyToClipboard(property.displayValue)\"\n [title]=\"'CORE.METADATA.ACTIONS.COPY_TO_CLIPBOARD' | translate\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n (keydown)=\"undoText($event)\"\n />\n <textarea\n matInput\n *ngIf=\"property.multiline\"\n title=\"{{ property.label | translate }}\"\n [cdkTextareaAutosize]=\"true\"\n [cdkAutosizeMinRows]=\"1\"\n [cdkAutosizeMaxRows]=\"5\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n >\n </textarea>\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'chipsTemplate'\"\n class=\"adf-property-field adf-textitem-chip-list-container\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <mat-label\n *ngIf=\"showLabelForChips\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <mat-chip-grid #chipElement class=\"adf-textitem-chip-list\">\n <mat-chip-row *ngFor=\"let propertyValue of editedValue; let idx = index\" [removable]=\"isEditable\" (removed)=\"removeValueFromList(idx)\">\n {{ propertyValue }}\n <mat-icon *ngIf=\"isEditable\" matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n </mat-chip-grid>\n\n <mat-form-field\n *ngIf=\"isEditable\"\n [floatLabel]=\"'always'\"\n class=\"adf-property-field adf-textitem-chip-list-input\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <input\n matInput\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"editedValue ? '' : (property.default | translate)\"\n [attr.aria-label]=\"property.label | translate\"\n [matChipInputFor]=\"chipElement\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addValueToList($event)\"\n [attr.data-automation-id]=\"'card-textitem-editchipinput-' + property.key\"\n />\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'clickableTemplate'\"\n role=\"button\"\n class=\"adf-textitem-clickable\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n [attr.data-automation-id]=\"'card-textitem-toggle-' + property.key\"\n tabindex=\"0\"\n (keyup.enter)=\"clicked()\"\n (click)=\"clicked()\"\n >\n <mat-form-field class=\"adf-property-field adf-card-textitem-field\" [floatLabel]=\"'always'\">\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <input\n matInput\n [type]=\"property.inputType\"\n class=\"adf-property-value\"\n title=\"{{ property.label | translate }}\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-textitem-clickable-value': isClickable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors,\n 'adf-property-value-has-icon-suffix': showClickableIcon\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [(ngModel)]=\"editedValue\"\n (blur)=\"update()\"\n (keydown.enter)=\"update()\"\n [readonly]=\"!isEditable\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n />\n <button\n mat-icon-button\n matSuffix\n *ngIf=\"showClickableIcon\"\n class=\"adf-textitem-action\"\n [attr.title]=\"'CORE.METADATA.ACTIONS.EDIT' | translate\"\n [attr.data-automation-id]=\"'card-textitem-clickable-icon-' + property.key\"\n >\n <mat-icon class=\"adf-textitem-icon\">{{ property?.icon }}</mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'emptyTemplate'\">\n <span class=\"adf-textitem-default-value\">{{ property.default | translate }}</span>\n </div>\n\n <mat-error *ngIf=\"isEditable && hasErrors\" class=\"adf-textitem-error\" [attr.data-automation-id]=\"'card-textitem-error-' + property.key\">\n <ul>\n <li *ngFor=\"let error of errors\">{{ error.message | translate : error }}</li>\n </ul>\n </mat-error>\n</div>\n", styles: [".adf-card-view-textitem .adf-textitem-error{font-size:var(--theme-caption-font-size);padding-top:6px}.adf-card-view-textitem .adf-textitem-error:before{display:none}.adf-card-view-textitem .adf-textitem-error ul{margin:0;padding:0;list-style-type:none}.adf-card-view-textitem .adf-textitem-error ul li{margin:0;padding:0}.adf-card-view-textitem .adf-textitem-action{width:30px;height:30px;padding:0;line-height:20px;color:var(--adf-theme-foreground-text-color-025)}.adf-card-view-textitem .adf-textitem-action:hover,.adf-card-view-textitem .adf-textitem-action:focus{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-action .mat-mdc-button-touch-target{width:30px;height:30px}.adf-card-view-textitem .mat-mdc-form-field-icon-suffix{position:absolute;right:1px;bottom:7px}.adf-card-view-textitem .adf-textitem-chip-list-container .mat-mdc-floating-label{margin-top:6px}.adf-card-view-textitem .adf-textitem-clickable{cursor:pointer;padding-top:3px}.adf-card-view-textitem .adf-textitem-clickable .adf-textitem-action:hover{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-clickable .adf-property-field .mat-mdc-input-element{color:var(--theme-primary-color);cursor:pointer}.adf-card-view-textitem .adf-textitem-default-value{color:var(--adf-theme-foreground-text-color-054)}.adf-card-view-textitem .adf-property-read-only:not(:has(.adf-property-readonly-value)){border-bottom:1px solid var(--adf-metadata-property-panel-border-color)}.adf-card-view-textitem .adf-property-value-not-editable{color:var(--adf-metadata-property-panel-title-color)}.adf-card-view-textitem .adf-property-value-has-icon-suffix{padding-right:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adf-card-view-textitem .mdc-line-ripple:before,.adf-card-view-textitem .mdc-line-ripple:after{display:none}\n"] }]
18330
18222
  }], ctorParameters: () => [{ type: ClipboardService }, { type: TranslationService }, { type: i0.ChangeDetectorRef }], propDecorators: { displayEmpty: [{
18331
18223
  type: Input
18332
18224
  }], copyToClipboardAction: [{
@@ -21292,23 +21184,27 @@ class MinLengthFieldValidator {
21292
21184
  }
21293
21185
  }
21294
21186
  class MaxLengthFieldValidator {
21295
- constructor() {
21296
- this.supportedTypes = [FormFieldTypes.TEXT, FormFieldTypes.MULTILINE_TEXT];
21187
+ constructor(supportedTypes = [FormFieldTypes.TEXT, FormFieldTypes.MULTILINE_TEXT], maxLength) {
21188
+ this.supportedTypes = supportedTypes;
21189
+ this.maxLength = maxLength;
21297
21190
  }
21298
21191
  isSupported(field) {
21299
- return field && this.supportedTypes.indexOf(field.type) > -1 && field.maxLength > 0;
21192
+ return field && this.supportedTypes.indexOf(field.type) > -1 && this.getMaxLength(field) > 0;
21300
21193
  }
21301
21194
  validate(field) {
21302
21195
  if (this.isSupported(field) && field.value && field.isVisible) {
21303
- if (field.value.length <= field.maxLength) {
21196
+ if (field.value.toString().length <= this.getMaxLength(field)) {
21304
21197
  return true;
21305
21198
  }
21306
21199
  field.validationSummary.message = `FORM.FIELD.VALIDATOR.NO_LONGER_THAN`;
21307
- field.validationSummary.attributes.set('maxLength', field.maxLength.toLocaleString());
21200
+ field.validationSummary.attributes.set('maxLength', this.getMaxLength(field).toLocaleString());
21308
21201
  return false;
21309
21202
  }
21310
21203
  return true;
21311
21204
  }
21205
+ getMaxLength(field) {
21206
+ return this.maxLength ?? field.maxLength;
21207
+ }
21312
21208
  }
21313
21209
  class MinValueFieldValidator {
21314
21210
  constructor() {
@@ -21439,6 +21335,7 @@ const FORM_FIELD_VALIDATORS = [
21439
21335
  new NumberFieldValidator(),
21440
21336
  new MinLengthFieldValidator(),
21441
21337
  new MaxLengthFieldValidator(),
21338
+ new MaxLengthFieldValidator([FormFieldTypes.NUMBER], 10),
21442
21339
  new MinValueFieldValidator(),
21443
21340
  new MaxValueFieldValidator(),
21444
21341
  new RegExFieldValidator(),
@@ -27071,11 +26968,11 @@ class ConfirmDialogComponent {
27071
26968
  return this.sanitizer.sanitize(SecurityContext.HTML, this.htmlContent);
27072
26969
  }
27073
26970
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$5.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
27074
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ConfirmDialogComponent, isStandalone: true, selector: "adf-confirm-dialog", host: { classAttribute: "adf-confirm-dialog" }, ngImport: i0, template: "<h1 mat-dialog-title data-automation-id=\"adf-confirm-dialog-title\">{{ title | translate }}</h1>\n<mat-dialog-content>\n <div class=\"adf-confirm-dialog-content\">\n <p *ngIf=\"!htmlContent; else customContent\" data-automation-id=\"adf-confirm-dialog-base-message\">\n {{ message | translate }}\n </p>\n <ng-template #customContent>\n <span [innerHTML]=\"sanitizedHtmlContent()\" data-automation-id=\"adf-confirm-dialog-custom-content\"></span>\n </ng-template>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions>\n <span class=\"adf-dialog-spacer\" data-automation-id=\"adf-confirm-dialog-spacer\"></span>\n <button id=\"adf-confirm-accept\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n color=\"primary\"\n data-automation-id=\"adf-confirm-dialog-confirmation\"\n [mat-dialog-close]=\"true\">\n {{ yesLabel | translate }}\n </button>\n <button *ngIf=\"thirdOptionLabel\"\n id=\"adf-confirm-all\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n [mat-dialog-close]=\"thirdOptionLabel\"\n data-automation-id=\"adf-confirm-dialog-confirm-all\">{{ thirdOptionLabel | translate }}\n </button>\n <button id=\"adf-confirm-cancel\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n [mat-dialog-close]=\"false\"\n data-automation-id=\"adf-confirm-dialog-reject\"\n cdkFocusInitial>\n {{ noLabel | translate }}\n </button>\n</mat-dialog-actions>\n", styles: [".adf-dialog-spacer{flex:1 1 auto}.adf-confirm-dialog .adf-confirm-dialog-button{text-transform:uppercase}.adf-confirm-dialog .adf-confirm-dialog-content{width:100%}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$7.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$7.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$7.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$7.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
26971
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ConfirmDialogComponent, isStandalone: true, selector: "adf-confirm-dialog", host: { classAttribute: "adf-confirm-dialog" }, ngImport: i0, template: "<h1 mat-dialog-title data-automation-id=\"adf-confirm-dialog-title\">{{ title | translate }}</h1>\n<mat-dialog-content>\n <div class=\"adf-confirm-dialog-content\">\n <p *ngIf=\"!htmlContent; else customContent\" data-automation-id=\"adf-confirm-dialog-base-message\">{{ message | translate }}</p>\n <ng-template #customContent>\n <span [innerHTML]=\"sanitizedHtmlContent()\" data-automation-id=\"adf-confirm-dialog-custom-content\"></span>\n </ng-template>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions>\n <span class=\"adf-dialog-spacer\" data-automation-id=\"adf-confirm-dialog-spacer\"></span>\n <button\n id=\"adf-confirm-cancel\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n [mat-dialog-close]=\"false\"\n data-automation-id=\"adf-confirm-dialog-reject\"\n >\n {{ noLabel | translate }}\n </button>\n <button\n *ngIf=\"thirdOptionLabel\"\n id=\"adf-confirm-all\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n [mat-dialog-close]=\"thirdOptionLabel\"\n data-automation-id=\"adf-confirm-dialog-confirm-all\"\n >\n {{ thirdOptionLabel | translate }}\n </button>\n <button\n id=\"adf-confirm-accept\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n color=\"primary\"\n data-automation-id=\"adf-confirm-dialog-confirmation\"\n [mat-dialog-close]=\"true\"\n cdkFocusInitial\n >\n {{ yesLabel | translate }}\n </button>\n</mat-dialog-actions>\n", styles: [".adf-dialog-spacer{flex:1 1 auto}.adf-confirm-dialog .adf-confirm-dialog-button{text-transform:uppercase}.adf-confirm-dialog .adf-confirm-dialog-content{width:100%}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$7.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$7.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$7.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$7.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
27075
26972
  }
27076
26973
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
27077
26974
  type: Component,
27078
- args: [{ selector: 'adf-confirm-dialog', host: { class: 'adf-confirm-dialog' }, encapsulation: ViewEncapsulation.None, standalone: true, imports: [TranslatePipe, MatDialogModule, NgIf, MatButtonModule], template: "<h1 mat-dialog-title data-automation-id=\"adf-confirm-dialog-title\">{{ title | translate }}</h1>\n<mat-dialog-content>\n <div class=\"adf-confirm-dialog-content\">\n <p *ngIf=\"!htmlContent; else customContent\" data-automation-id=\"adf-confirm-dialog-base-message\">\n {{ message | translate }}\n </p>\n <ng-template #customContent>\n <span [innerHTML]=\"sanitizedHtmlContent()\" data-automation-id=\"adf-confirm-dialog-custom-content\"></span>\n </ng-template>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions>\n <span class=\"adf-dialog-spacer\" data-automation-id=\"adf-confirm-dialog-spacer\"></span>\n <button id=\"adf-confirm-accept\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n color=\"primary\"\n data-automation-id=\"adf-confirm-dialog-confirmation\"\n [mat-dialog-close]=\"true\">\n {{ yesLabel | translate }}\n </button>\n <button *ngIf=\"thirdOptionLabel\"\n id=\"adf-confirm-all\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n [mat-dialog-close]=\"thirdOptionLabel\"\n data-automation-id=\"adf-confirm-dialog-confirm-all\">{{ thirdOptionLabel | translate }}\n </button>\n <button id=\"adf-confirm-cancel\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n [mat-dialog-close]=\"false\"\n data-automation-id=\"adf-confirm-dialog-reject\"\n cdkFocusInitial>\n {{ noLabel | translate }}\n </button>\n</mat-dialog-actions>\n", styles: [".adf-dialog-spacer{flex:1 1 auto}.adf-confirm-dialog .adf-confirm-dialog-button{text-transform:uppercase}.adf-confirm-dialog .adf-confirm-dialog-content{width:100%}\n"] }]
26975
+ args: [{ selector: 'adf-confirm-dialog', host: { class: 'adf-confirm-dialog' }, encapsulation: ViewEncapsulation.None, standalone: true, imports: [TranslatePipe, MatDialogModule, NgIf, MatButtonModule], template: "<h1 mat-dialog-title data-automation-id=\"adf-confirm-dialog-title\">{{ title | translate }}</h1>\n<mat-dialog-content>\n <div class=\"adf-confirm-dialog-content\">\n <p *ngIf=\"!htmlContent; else customContent\" data-automation-id=\"adf-confirm-dialog-base-message\">{{ message | translate }}</p>\n <ng-template #customContent>\n <span [innerHTML]=\"sanitizedHtmlContent()\" data-automation-id=\"adf-confirm-dialog-custom-content\"></span>\n </ng-template>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions>\n <span class=\"adf-dialog-spacer\" data-automation-id=\"adf-confirm-dialog-spacer\"></span>\n <button\n id=\"adf-confirm-cancel\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n [mat-dialog-close]=\"false\"\n data-automation-id=\"adf-confirm-dialog-reject\"\n >\n {{ noLabel | translate }}\n </button>\n <button\n *ngIf=\"thirdOptionLabel\"\n id=\"adf-confirm-all\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n [mat-dialog-close]=\"thirdOptionLabel\"\n data-automation-id=\"adf-confirm-dialog-confirm-all\"\n >\n {{ thirdOptionLabel | translate }}\n </button>\n <button\n id=\"adf-confirm-accept\"\n class=\"adf-confirm-dialog-button\"\n mat-button\n color=\"primary\"\n data-automation-id=\"adf-confirm-dialog-confirmation\"\n [mat-dialog-close]=\"true\"\n cdkFocusInitial\n >\n {{ yesLabel | translate }}\n </button>\n</mat-dialog-actions>\n", styles: [".adf-dialog-spacer{flex:1 1 auto}.adf-confirm-dialog .adf-confirm-dialog-button{text-transform:uppercase}.adf-confirm-dialog .adf-confirm-dialog-content{width:100%}\n"] }]
27079
26976
  }], ctorParameters: () => [{ type: undefined, decorators: [{
27080
26977
  type: Inject,
27081
26978
  args: [MAT_DIALOG_DATA]