@alfresco/adf-core 8.4.0-20032496569 → 8.4.0-20091691691
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/adf-core.mjs +307 -237
- package/fesm2022/adf-core.mjs.map +1 -1
- package/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.d.ts +4 -2
- package/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.d.ts +4 -1
- package/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.scss +1 -1
- package/lib/card-view/directives/card-view-property-validator.directive.d.ts +30 -0
- package/package.json +3 -3
package/fesm2022/adf-core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Input, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, Injectable, TemplateRef, ContentChild, Directive, ContentChildren, RendererFactory2, effect, Optional, Inject, NgModule, HostBinding, Pipe, InjectionToken, provideAppInitializer, EventEmitter, HostListener, ViewChild, Output, ViewChildren, DestroyRef, QueryList, Self, signal, computed, DEFAULT_CURRENCY_CODE, SecurityContext, ElementRef,
|
|
2
|
+
import { Input, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, Injectable, TemplateRef, ContentChild, Directive, ContentChildren, RendererFactory2, effect, Optional, Inject, NgModule, HostBinding, Pipe, InjectionToken, provideAppInitializer, EventEmitter, HostListener, ViewChild, Output, ViewChildren, DestroyRef, QueryList, Self, signal, computed, DEFAULT_CURRENCY_CODE, SecurityContext, ElementRef, forwardRef, ViewContainerRef, Compiler, ChangeDetectorRef, Injector } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule, DOCUMENT, NgIf, NgClass, NgForOf, AsyncPipe, NgTemplateOutlet, NgStyle, DecimalPipe, DatePipe, CurrencyPipe, NgFor } from '@angular/common';
|
|
5
5
|
import * as i2 from '@angular/material/table';
|
|
@@ -43,9 +43,9 @@ import { MatToolbarModule } from '@angular/material/toolbar';
|
|
|
43
43
|
import * as i1$7 from '@angular/material/dialog';
|
|
44
44
|
import { MAT_DIALOG_DATA, MatDialogModule, MatDialog } from '@angular/material/dialog';
|
|
45
45
|
import * as i4 from '@angular/forms';
|
|
46
|
-
import { UntypedFormControl, Validators, ReactiveFormsModule, FormsModule, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
46
|
+
import { UntypedFormControl, Validators, ReactiveFormsModule, FormsModule, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
47
47
|
import * as i2$4 from '@angular/material/form-field';
|
|
48
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
48
|
+
import { MatFormFieldModule, MatError } from '@angular/material/form-field';
|
|
49
49
|
import * as i3$1 from '@angular/material/input';
|
|
50
50
|
import { MatInputModule } from '@angular/material/input';
|
|
51
51
|
import * as i3$2 from '@angular/cdk/a11y';
|
|
@@ -18187,7 +18187,7 @@ class CardViewTextItemComponent extends BaseCardView {
|
|
|
18187
18187
|
return String(Math.trunc(Number(value)));
|
|
18188
18188
|
}
|
|
18189
18189
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CardViewTextItemComponent, deps: [{ token: ClipboardService }, { token: TranslationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18190
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", 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-chip-list-container .mat-mdc-form-field-infix{padding-top:0}.adf-card-view-textitem .adf-textitem-chip-list-container .mat-mdc-form-field-infix .adf-property-value{margin-left:0}.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-064)}.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}\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 }); }
|
|
18190
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", 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 (blur)=\"update()\"\n [aria-describedby]=\"'adf-card-textitem-error-' + property.key\"\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 [aria-describedby]=\"'adf-card-textitem-error-' + 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\n *ngIf=\"isEditable && hasErrors\"\n class=\"adf-textitem-error\"\n [attr.data-automation-id]=\"'card-textitem-error-' + property.key\"\n [id]=\"'adf-card-textitem-error-' + property.key\"\n role=\"alert\"\n aria-live=\"polite\">\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-chip-list-container .mat-mdc-form-field-infix{padding-top:0}.adf-card-view-textitem .adf-textitem-chip-list-container .mat-mdc-form-field-infix .adf-property-value{margin-left:0}.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-064)}.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}\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 }); }
|
|
18191
18191
|
}
|
|
18192
18192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CardViewTextItemComponent, decorators: [{
|
|
18193
18193
|
type: Component,
|
|
@@ -18202,7 +18202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
18202
18202
|
FormsModule,
|
|
18203
18203
|
MatButtonModule,
|
|
18204
18204
|
MatSnackBarModule
|
|
18205
|
-
], 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
|
|
18205
|
+
], 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 (blur)=\"update()\"\n [aria-describedby]=\"'adf-card-textitem-error-' + property.key\"\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 [aria-describedby]=\"'adf-card-textitem-error-' + 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\n *ngIf=\"isEditable && hasErrors\"\n class=\"adf-textitem-error\"\n [attr.data-automation-id]=\"'card-textitem-error-' + property.key\"\n [id]=\"'adf-card-textitem-error-' + property.key\"\n role=\"alert\"\n aria-live=\"polite\">\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-chip-list-container .mat-mdc-form-field-infix{padding-top:0}.adf-card-view-textitem .adf-textitem-chip-list-container .mat-mdc-form-field-infix .adf-property-value{margin-left:0}.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-064)}.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}\n"] }]
|
|
18206
18206
|
}], ctorParameters: () => [{ type: ClipboardService }, { type: TranslationService }, { type: i0.ChangeDetectorRef }], propDecorators: { displayEmpty: [{
|
|
18207
18207
|
type: Input
|
|
18208
18208
|
}], copyToClipboardAction: [{
|
|
@@ -18497,6 +18497,284 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
18497
18497
|
type: Output
|
|
18498
18498
|
}] } });
|
|
18499
18499
|
|
|
18500
|
+
/*!
|
|
18501
|
+
* @license
|
|
18502
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
18503
|
+
*
|
|
18504
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
18505
|
+
* you may not use this file except in compliance with the License.
|
|
18506
|
+
* You may obtain a copy of the License at
|
|
18507
|
+
*
|
|
18508
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
18509
|
+
*
|
|
18510
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18511
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18512
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18513
|
+
* See the License for the specific language governing permissions and
|
|
18514
|
+
* limitations under the License.
|
|
18515
|
+
*/
|
|
18516
|
+
class CardViewItemMatchValidator {
|
|
18517
|
+
constructor(expression, flags, requiresMatch) {
|
|
18518
|
+
this.expression = expression;
|
|
18519
|
+
this.flags = flags;
|
|
18520
|
+
this.requiresMatch = requiresMatch;
|
|
18521
|
+
this.message = 'CORE.CARDVIEW.VALIDATORS.MATCH_VALIDATION_ERROR';
|
|
18522
|
+
}
|
|
18523
|
+
isValid(value) {
|
|
18524
|
+
const regex = new RegExp(this.expression, this?.flags);
|
|
18525
|
+
if (Array.isArray(value)) {
|
|
18526
|
+
return value.every((val) => (this.requiresMatch ? this.matchRegex(val, regex) : !this.matchRegex(val, regex)));
|
|
18527
|
+
}
|
|
18528
|
+
return value === '' || (this.requiresMatch ? this.matchRegex(value, regex) : !this.matchRegex(value, regex));
|
|
18529
|
+
}
|
|
18530
|
+
matchRegex(value, regex) {
|
|
18531
|
+
return regex.test(value);
|
|
18532
|
+
}
|
|
18533
|
+
}
|
|
18534
|
+
|
|
18535
|
+
/*!
|
|
18536
|
+
* @license
|
|
18537
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
18538
|
+
*
|
|
18539
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
18540
|
+
* you may not use this file except in compliance with the License.
|
|
18541
|
+
* You may obtain a copy of the License at
|
|
18542
|
+
*
|
|
18543
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
18544
|
+
*
|
|
18545
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18546
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18547
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18548
|
+
* See the License for the specific language governing permissions and
|
|
18549
|
+
* limitations under the License.
|
|
18550
|
+
*/
|
|
18551
|
+
class CardViewItemIntValidator {
|
|
18552
|
+
constructor() {
|
|
18553
|
+
this.message = 'CORE.CARDVIEW.VALIDATORS.INT_VALIDATION_ERROR';
|
|
18554
|
+
}
|
|
18555
|
+
isValid(value) {
|
|
18556
|
+
if (Array.isArray(value)) {
|
|
18557
|
+
return value.every(this.isIntegerNumber);
|
|
18558
|
+
}
|
|
18559
|
+
return value === '' || (!isNaN(value) && this.isIntegerNumber(value) && this.isNotOnlySpace(value));
|
|
18560
|
+
}
|
|
18561
|
+
isIntegerNumber(value) {
|
|
18562
|
+
const parsedNumber = Number(value);
|
|
18563
|
+
return (parsedNumber | 0) === parsedNumber;
|
|
18564
|
+
}
|
|
18565
|
+
isNotOnlySpace(value) {
|
|
18566
|
+
return String(value).trim() !== '';
|
|
18567
|
+
}
|
|
18568
|
+
}
|
|
18569
|
+
|
|
18570
|
+
/*!
|
|
18571
|
+
* @license
|
|
18572
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
18573
|
+
*
|
|
18574
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
18575
|
+
* you may not use this file except in compliance with the License.
|
|
18576
|
+
* You may obtain a copy of the License at
|
|
18577
|
+
*
|
|
18578
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
18579
|
+
*
|
|
18580
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18581
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18582
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18583
|
+
* See the License for the specific language governing permissions and
|
|
18584
|
+
* limitations under the License.
|
|
18585
|
+
*/
|
|
18586
|
+
class CardViewItemMinMaxValidator {
|
|
18587
|
+
constructor(minValue, maxValue) {
|
|
18588
|
+
this.minValue = minValue;
|
|
18589
|
+
this.maxValue = maxValue;
|
|
18590
|
+
this.message = 'CORE.CARDVIEW.VALIDATORS.MINMAX_VALIDATION_ERROR';
|
|
18591
|
+
this.intValidator = new CardViewItemIntValidator();
|
|
18592
|
+
}
|
|
18593
|
+
isValid(value) {
|
|
18594
|
+
if (Array.isArray(value)) {
|
|
18595
|
+
return value.every((val) => this.isInRange(val, this.minValue, this.maxValue));
|
|
18596
|
+
}
|
|
18597
|
+
return value === '' || (this.intValidator.isValid(value) && this.isInRange(value, this.minValue, this.maxValue));
|
|
18598
|
+
}
|
|
18599
|
+
isInRange(value, min, max) {
|
|
18600
|
+
return value >= min && value <= max;
|
|
18601
|
+
}
|
|
18602
|
+
}
|
|
18603
|
+
|
|
18604
|
+
/*!
|
|
18605
|
+
* @license
|
|
18606
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
18607
|
+
*
|
|
18608
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
18609
|
+
* you may not use this file except in compliance with the License.
|
|
18610
|
+
* You may obtain a copy of the License at
|
|
18611
|
+
*
|
|
18612
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
18613
|
+
*
|
|
18614
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18615
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18616
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18617
|
+
* See the License for the specific language governing permissions and
|
|
18618
|
+
* limitations under the License.
|
|
18619
|
+
*/
|
|
18620
|
+
class CardViewItemLengthValidator {
|
|
18621
|
+
constructor(minLength, maxLength) {
|
|
18622
|
+
this.minLength = minLength;
|
|
18623
|
+
this.maxLength = maxLength;
|
|
18624
|
+
this.message = 'CORE.CARDVIEW.VALIDATORS.LENGTH_VALIDATION_ERROR';
|
|
18625
|
+
}
|
|
18626
|
+
isValid(value) {
|
|
18627
|
+
if (Array.isArray(value)) {
|
|
18628
|
+
return value.every((val) => this.isCorrectLength(val, this.minLength, this.maxLength));
|
|
18629
|
+
}
|
|
18630
|
+
return value === '' || this.isCorrectLength(value, this.minLength, this.maxLength);
|
|
18631
|
+
}
|
|
18632
|
+
isCorrectLength(value, min, max) {
|
|
18633
|
+
const length = value.length;
|
|
18634
|
+
return length >= min && length <= max;
|
|
18635
|
+
}
|
|
18636
|
+
}
|
|
18637
|
+
|
|
18638
|
+
/*!
|
|
18639
|
+
* @license
|
|
18640
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
18641
|
+
*
|
|
18642
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
18643
|
+
* you may not use this file except in compliance with the License.
|
|
18644
|
+
* You may obtain a copy of the License at
|
|
18645
|
+
*
|
|
18646
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
18647
|
+
*
|
|
18648
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18649
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18650
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18651
|
+
* See the License for the specific language governing permissions and
|
|
18652
|
+
* limitations under the License.
|
|
18653
|
+
*/
|
|
18654
|
+
const validators = {
|
|
18655
|
+
minmax: (parameters) => new CardViewItemMinMaxValidator(parameters.minValue, parameters.maxValue),
|
|
18656
|
+
regex: (parameters) => new CardViewItemMatchValidator(parameters.expression, parameters.flags, parameters.requiresMatch),
|
|
18657
|
+
length: (parameters) => new CardViewItemLengthValidator(parameters.minLength, parameters.maxLength)
|
|
18658
|
+
};
|
|
18659
|
+
|
|
18660
|
+
/*!
|
|
18661
|
+
* @license
|
|
18662
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
18663
|
+
*
|
|
18664
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
18665
|
+
* you may not use this file except in compliance with the License.
|
|
18666
|
+
* You may obtain a copy of the License at
|
|
18667
|
+
*
|
|
18668
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
18669
|
+
*
|
|
18670
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18671
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18672
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18673
|
+
* See the License for the specific language governing permissions and
|
|
18674
|
+
* limitations under the License.
|
|
18675
|
+
*/
|
|
18676
|
+
class CardViewBaseItemModel {
|
|
18677
|
+
constructor(props) {
|
|
18678
|
+
this.label = props.label || '';
|
|
18679
|
+
this.value = props.value?.displayName || props.value;
|
|
18680
|
+
this.key = props.key;
|
|
18681
|
+
this.default = props.default;
|
|
18682
|
+
this.editable = !!props.editable;
|
|
18683
|
+
this.clickable = !!props.clickable;
|
|
18684
|
+
this.icon = props.icon || '';
|
|
18685
|
+
this.hint = props.hint || '';
|
|
18686
|
+
this.validators = props.validators || [];
|
|
18687
|
+
this.data = props.data || null;
|
|
18688
|
+
this.multivalued = !!props.multivalued;
|
|
18689
|
+
if (props?.constraints?.length ?? 0) {
|
|
18690
|
+
for (const constraint of props.constraints) {
|
|
18691
|
+
if (constraint.type !== 'LIST') {
|
|
18692
|
+
const validatorFactory = validators[constraint.type.toLowerCase()];
|
|
18693
|
+
if (validatorFactory !== undefined) {
|
|
18694
|
+
this.validators.push(validatorFactory(constraint.parameters));
|
|
18695
|
+
}
|
|
18696
|
+
else {
|
|
18697
|
+
console.warn(`Validator for type ${constraint.type} is not supported`);
|
|
18698
|
+
}
|
|
18699
|
+
}
|
|
18700
|
+
}
|
|
18701
|
+
}
|
|
18702
|
+
}
|
|
18703
|
+
isEmpty() {
|
|
18704
|
+
return (this.value === undefined ||
|
|
18705
|
+
this.value === null ||
|
|
18706
|
+
(typeof this.value === 'string' && this.value.length === 0) ||
|
|
18707
|
+
(Array.isArray(this.value) && this.value.length === 0));
|
|
18708
|
+
}
|
|
18709
|
+
isValid(newValue) {
|
|
18710
|
+
if (!this.validators.length) {
|
|
18711
|
+
return true;
|
|
18712
|
+
}
|
|
18713
|
+
return this.validators.map((validator) => validator.isValid(newValue)).reduce((isValidUntilNow, isValid) => isValidUntilNow && isValid, true);
|
|
18714
|
+
}
|
|
18715
|
+
getValidationErrors(value) {
|
|
18716
|
+
if (!this.validators.length) {
|
|
18717
|
+
return [];
|
|
18718
|
+
}
|
|
18719
|
+
return this.validators.filter((validator) => !validator.isValid(value)).map((validator) => validator);
|
|
18720
|
+
}
|
|
18721
|
+
}
|
|
18722
|
+
|
|
18723
|
+
/*!
|
|
18724
|
+
* @license
|
|
18725
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
18726
|
+
*
|
|
18727
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
18728
|
+
* you may not use this file except in compliance with the License.
|
|
18729
|
+
* You may obtain a copy of the License at
|
|
18730
|
+
*
|
|
18731
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
18732
|
+
*
|
|
18733
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18734
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18735
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18736
|
+
* See the License for the specific language governing permissions and
|
|
18737
|
+
* limitations under the License.
|
|
18738
|
+
*/
|
|
18739
|
+
class CardViewPropertyValidatorDirective {
|
|
18740
|
+
constructor(translateService) {
|
|
18741
|
+
this.translateService = translateService;
|
|
18742
|
+
this.validated = new EventEmitter();
|
|
18743
|
+
}
|
|
18744
|
+
validate(control) {
|
|
18745
|
+
const errors = this.property.isValid(control.value)
|
|
18746
|
+
? null
|
|
18747
|
+
: Object.fromEntries(this.property.validators.map((validator) => [validator.message, this.translateService.instant(validator.message)]));
|
|
18748
|
+
this.validated.emit(errors ? Object.values(errors) : []);
|
|
18749
|
+
return errors;
|
|
18750
|
+
}
|
|
18751
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CardViewPropertyValidatorDirective, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
18752
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: CardViewPropertyValidatorDirective, isStandalone: true, selector: "[adf-card-view-property-validator]", inputs: { property: "property" }, outputs: { validated: "validated" }, providers: [
|
|
18753
|
+
{
|
|
18754
|
+
provide: NG_VALIDATORS,
|
|
18755
|
+
useExisting: forwardRef(() => CardViewPropertyValidatorDirective),
|
|
18756
|
+
multi: true
|
|
18757
|
+
}
|
|
18758
|
+
], ngImport: i0 }); }
|
|
18759
|
+
}
|
|
18760
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CardViewPropertyValidatorDirective, decorators: [{
|
|
18761
|
+
type: Directive,
|
|
18762
|
+
args: [{
|
|
18763
|
+
selector: '[adf-card-view-property-validator]',
|
|
18764
|
+
providers: [
|
|
18765
|
+
{
|
|
18766
|
+
provide: NG_VALIDATORS,
|
|
18767
|
+
useExisting: forwardRef(() => CardViewPropertyValidatorDirective),
|
|
18768
|
+
multi: true
|
|
18769
|
+
}
|
|
18770
|
+
]
|
|
18771
|
+
}]
|
|
18772
|
+
}], ctorParameters: () => [{ type: i1$1.TranslateService }], propDecorators: { property: [{
|
|
18773
|
+
type: Input
|
|
18774
|
+
}], validated: [{
|
|
18775
|
+
type: Output
|
|
18776
|
+
}] } });
|
|
18777
|
+
|
|
18500
18778
|
/*!
|
|
18501
18779
|
* @license
|
|
18502
18780
|
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
@@ -18516,7 +18794,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
18516
18794
|
class CardViewSelectItemComponent extends BaseCardView {
|
|
18517
18795
|
constructor() {
|
|
18518
18796
|
super(...arguments);
|
|
18519
|
-
this.appConfig = inject(AppConfigService);
|
|
18520
18797
|
this.displayNoneOption = true;
|
|
18521
18798
|
this.displayEmpty = true;
|
|
18522
18799
|
this.filter$ = new BehaviorSubject('');
|
|
@@ -18525,8 +18802,13 @@ class CardViewSelectItemComponent extends BaseCardView {
|
|
|
18525
18802
|
this.templateType = '';
|
|
18526
18803
|
this.autocompleteControl = new UntypedFormControl();
|
|
18527
18804
|
this.destroyRef = inject(DestroyRef);
|
|
18805
|
+
this.appConfig = inject(AppConfigService);
|
|
18806
|
+
this._error = '';
|
|
18528
18807
|
}
|
|
18529
18808
|
static { this.HIDE_FILTER_LIMIT = 5; }
|
|
18809
|
+
get error() {
|
|
18810
|
+
return this._error;
|
|
18811
|
+
}
|
|
18530
18812
|
ngOnChanges(changes) {
|
|
18531
18813
|
this.value = this.property.value;
|
|
18532
18814
|
if (changes.property?.firstChange) {
|
|
@@ -18583,6 +18865,9 @@ class CardViewSelectItemComponent extends BaseCardView {
|
|
|
18583
18865
|
this.cardViewUpdateService.update({ ...this.property }, selectedOption);
|
|
18584
18866
|
this.property.value = selectedOption;
|
|
18585
18867
|
}
|
|
18868
|
+
onValidation(errors) {
|
|
18869
|
+
this._error = errors.join('<br>');
|
|
18870
|
+
}
|
|
18586
18871
|
get showProperty() {
|
|
18587
18872
|
return this.displayEmpty || !this.property.isEmpty();
|
|
18588
18873
|
}
|
|
@@ -18590,7 +18875,7 @@ class CardViewSelectItemComponent extends BaseCardView {
|
|
|
18590
18875
|
return this.appConfig.get('content-metadata.selectFilterLimit', CardViewSelectItemComponent.HIDE_FILTER_LIMIT);
|
|
18591
18876
|
}
|
|
18592
18877
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CardViewSelectItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
18593
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: CardViewSelectItemComponent, isStandalone: true, selector: "adf-card-view-selectitem", inputs: { options$: "options$", displayNoneOption: "displayNoneOption", displayEmpty: "displayEmpty" }, host: { classAttribute: "adf-card-view-selectitem" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!property.isEmpty() || isEditable\">\n <div [ngSwitch]=\"templateType\">\n <div *ngSwitchDefault>\n <div *ngIf=\"!isEditable\"\n [attr.data-automation-id]=\"'card-select-label-' + property.key\"\n class=\"adf-property-label adf-property-label-non-editable\"\n >{{ property.label | translate }}\n </div>\n <div class=\"adf-property-field\">\n <div\n *ngIf=\"!isEditable\"\n class=\"adf-property-value adf-property-read-only\"\n [attr.data-automation-id]=\"'select-readonly-value-' + property.key\"\n data-automation-class=\"read-only-value\"\n [title]=\"property.displayValue | async | translate\"\n >\n {{ property.displayValue | async | translate }}\n </div>\n <div *ngIf=\"isEditable\">\n <mat-form-field class=\"adf-property-value\">\n <mat-label\n [attr.data-automation-id]=\"'card-select-label-' + property.key\"\n class=\"adf-property-label adf-property-value-editable\"\n [ngClass]=\"{\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >{{ property.label | translate }}\n </mat-label>\n <mat-select\n [(value)]=\"value\"\n [ngClass]=\"{ 'adf-property-readonly-value': isReadonlyProperty }\"\n panelClass=\"adf-select-filter\"\n (selectionChange)=\"onChange($event)\"\n data-automation-class=\"select-box\"\n [aria-label]=\"property.label | translate\"\n >\n <adf-select-filter-input *ngIf=\"showInputFilter\" (change)=\"onFilterInputChange($event)\" />\n <mat-option *ngIf=\"displayNoneOption\">{{ 'CORE.CARDVIEW.NONE' | translate }}</mat-option>\n <mat-option *ngFor=\"let option of list$ | async\" [value]=\"option.key\">\n {{ option.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n <div *ngSwitchCase=\"'autocompleteBased'\">\n <mat-form-field\n class=\"adf-property-field adf-card-selectitem-autocomplete \"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n [floatLabel]=\"property.default ? 'always' : null\"\n >\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-autocomplete-based-selectitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{\n 'adf-property-value-editable': isEditable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <input\n matInput\n [matAutocomplete]=\"auto\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': isEditable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"autocompleteControl\"\n [title]=\"'CORE.METADATA.ACTIONS.COPY_TO_CLIPBOARD' | translate\"\n [attr.data-automation-id]=\"'card-autocomplete-based-selectitem-value-' + property.key\"\n />\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onOptionSelected($event)\">\n <mat-option\n *ngFor=\"let option of property.options$ | async\"\n [value]=\"option.key\"\n [attr.data-automation-id]=\"'card-autocomplete-based-selectitem-option-' + property.key\"\n >\n {{ option.label }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n </div>\n</ng-container>\n", styles: [".adf-card-view-selectitem .adf-property-value{width:100%}.adf-card-view-selectitem .adf-select-filter-input{background:var(--adf-theme-background-card-color);position:sticky;top:0;left:0;right:0;z-index:1}.adf-card-view-selectitem .adf-property-value-editable{padding-left:0}.adf-card-view-selectitem .adf-property-value-editable .mdc-text-field--no-label .mat-mdc-form-field-infix{padding:0}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-text-field-wrapper{background-color:unset}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-select{margin-top:0;border-radius:6px}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-select .mat-mdc-select-value{color:var(--adf-metadata-action-button-clear-color)}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-select .mat-mdc-select-trigger{padding-left:6px;padding-right:6px}.adf-card-view-selectitem .adf-card-selectitem-autocomplete .adf-property-value-editable{padding-left:10px}.adf-card-view-selectitem .mat-mdc-form-field-subscript-wrapper{display:none}.adf-card-view-selectitem .adf-property-read-only{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;cursor:default;padding:6px 0}.adf-card-view-selectitem .mdc-line-ripple{display:none}.adf-card-view-selectitem .adf-property-readonly-value{color:var(--adf-metadata-property-panel-label-color)}.adf-card-view-selectitem .adf-property-label-non-editable{cursor:default;font-size:10px}\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: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { 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: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: SelectFilterInputComponent, selector: "adf-select-filter-input", outputs: ["change"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i4$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { 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: "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"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
18878
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: CardViewSelectItemComponent, isStandalone: true, selector: "adf-card-view-selectitem", inputs: { options$: "options$", displayNoneOption: "displayNoneOption", displayEmpty: "displayEmpty" }, host: { classAttribute: "adf-card-view-selectitem" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!property.isEmpty() || isEditable\">\n <div [ngSwitch]=\"templateType\">\n <div *ngSwitchDefault>\n <div *ngIf=\"!isEditable\"\n [attr.data-automation-id]=\"'card-select-label-' + property.key\"\n class=\"adf-property-label adf-property-label-non-editable\"\n >{{ property.label | translate }}\n </div>\n <div class=\"adf-property-field\">\n <div\n *ngIf=\"!isEditable\"\n class=\"adf-property-value adf-property-read-only\"\n [attr.data-automation-id]=\"'select-readonly-value-' + property.key\"\n data-automation-class=\"read-only-value\"\n [title]=\"property.displayValue | async | translate\"\n >\n {{ property.displayValue | async | translate }}\n </div>\n <div *ngIf=\"isEditable\">\n <mat-form-field class=\"adf-property-value\">\n <mat-label\n [attr.data-automation-id]=\"'card-select-label-' + property.key\"\n class=\"adf-property-label adf-property-value-editable\"\n [ngClass]=\"{\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >{{ property.label | translate }}\n </mat-label>\n <mat-select\n [(ngModel)]=\"value\"\n [ngClass]=\"{ 'adf-property-readonly-value': isReadonlyProperty }\"\n panelClass=\"adf-select-filter\"\n (selectionChange)=\"onChange($event)\"\n data-automation-class=\"select-box\"\n [aria-label]=\"property.label | translate\"\n adf-card-view-property-validator\n [property]=\"property\"\n (validated)=\"onValidation($event)\"\n >\n <adf-select-filter-input *ngIf=\"showInputFilter\" (change)=\"onFilterInputChange($event)\" />\n <mat-option *ngIf=\"displayNoneOption\">{{ 'CORE.CARDVIEW.NONE' | translate }}</mat-option>\n <mat-option *ngFor=\"let option of list$ | async\" [value]=\"option.key\">\n {{ option.label | translate }}\n </mat-option>\n </mat-select>\n <mat-error [innerHTML]=\"error\" />\n </mat-form-field>\n </div>\n </div>\n </div>\n <div *ngSwitchCase=\"'autocompleteBased'\">\n <mat-form-field\n class=\"adf-property-field adf-card-selectitem-autocomplete \"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n [floatLabel]=\"property.default ? 'always' : null\"\n >\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-autocomplete-based-selectitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{\n 'adf-property-value-editable': isEditable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <input\n matInput\n [matAutocomplete]=\"auto\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': isEditable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"autocompleteControl\"\n [title]=\"'CORE.METADATA.ACTIONS.COPY_TO_CLIPBOARD' | translate\"\n [attr.data-automation-id]=\"'card-autocomplete-based-selectitem-value-' + property.key\"\n />\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onOptionSelected($event)\">\n <mat-option\n *ngFor=\"let option of property.options$ | async\"\n [value]=\"option.key\"\n [attr.data-automation-id]=\"'card-autocomplete-based-selectitem-option-' + property.key\"\n >\n {{ option.label }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n </div>\n</ng-container>\n", styles: [".adf-card-view-selectitem .adf-property-value{width:100%}.adf-card-view-selectitem .adf-select-filter-input{background:var(--adf-theme-background-card-color);position:sticky;top:0;left:0;right:0;z-index:1}.adf-card-view-selectitem .adf-property-value-editable{padding-left:0}.adf-card-view-selectitem .adf-property-value-editable .mdc-text-field--no-label .mat-mdc-form-field-infix{padding:0}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-text-field-wrapper{background-color:unset}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-select{margin-top:0;border-radius:6px}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-select .mat-mdc-select-value{color:var(--adf-metadata-action-button-clear-color)}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-select .mat-mdc-select-trigger{padding-left:6px;padding-right:6px}.adf-card-view-selectitem .adf-card-selectitem-autocomplete .adf-property-value-editable{padding-left:10px}.adf-card-view-selectitem .mat-mdc-form-field-subscript-wrapper{display:block}.adf-card-view-selectitem .adf-property-read-only{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;cursor:default;padding:6px 0}.adf-card-view-selectitem .mdc-line-ripple{display:none}.adf-card-view-selectitem .adf-property-readonly-value{color:var(--adf-metadata-property-panel-label-color)}.adf-card-view-selectitem .adf-property-label-non-editable{cursor:default;font-size:10px}\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: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { 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: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: SelectFilterInputComponent, selector: "adf-select-filter-input", outputs: ["change"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i4$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { 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: "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: "directive", type: CardViewPropertyValidatorDirective, selector: "[adf-card-view-property-validator]", inputs: ["property"], outputs: ["validated"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
18594
18879
|
}
|
|
18595
18880
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CardViewSelectItemComponent, decorators: [{
|
|
18596
18881
|
type: Component,
|
|
@@ -18602,8 +18887,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
18602
18887
|
SelectFilterInputComponent,
|
|
18603
18888
|
MatAutocompleteModule,
|
|
18604
18889
|
MatInputModule,
|
|
18605
|
-
ReactiveFormsModule
|
|
18606
|
-
|
|
18890
|
+
ReactiveFormsModule,
|
|
18891
|
+
CardViewPropertyValidatorDirective,
|
|
18892
|
+
FormsModule
|
|
18893
|
+
], encapsulation: ViewEncapsulation.None, host: { class: 'adf-card-view-selectitem' }, template: "<ng-container *ngIf=\"!property.isEmpty() || isEditable\">\n <div [ngSwitch]=\"templateType\">\n <div *ngSwitchDefault>\n <div *ngIf=\"!isEditable\"\n [attr.data-automation-id]=\"'card-select-label-' + property.key\"\n class=\"adf-property-label adf-property-label-non-editable\"\n >{{ property.label | translate }}\n </div>\n <div class=\"adf-property-field\">\n <div\n *ngIf=\"!isEditable\"\n class=\"adf-property-value adf-property-read-only\"\n [attr.data-automation-id]=\"'select-readonly-value-' + property.key\"\n data-automation-class=\"read-only-value\"\n [title]=\"property.displayValue | async | translate\"\n >\n {{ property.displayValue | async | translate }}\n </div>\n <div *ngIf=\"isEditable\">\n <mat-form-field class=\"adf-property-value\">\n <mat-label\n [attr.data-automation-id]=\"'card-select-label-' + property.key\"\n class=\"adf-property-label adf-property-value-editable\"\n [ngClass]=\"{\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >{{ property.label | translate }}\n </mat-label>\n <mat-select\n [(ngModel)]=\"value\"\n [ngClass]=\"{ 'adf-property-readonly-value': isReadonlyProperty }\"\n panelClass=\"adf-select-filter\"\n (selectionChange)=\"onChange($event)\"\n data-automation-class=\"select-box\"\n [aria-label]=\"property.label | translate\"\n adf-card-view-property-validator\n [property]=\"property\"\n (validated)=\"onValidation($event)\"\n >\n <adf-select-filter-input *ngIf=\"showInputFilter\" (change)=\"onFilterInputChange($event)\" />\n <mat-option *ngIf=\"displayNoneOption\">{{ 'CORE.CARDVIEW.NONE' | translate }}</mat-option>\n <mat-option *ngFor=\"let option of list$ | async\" [value]=\"option.key\">\n {{ option.label | translate }}\n </mat-option>\n </mat-select>\n <mat-error [innerHTML]=\"error\" />\n </mat-form-field>\n </div>\n </div>\n </div>\n <div *ngSwitchCase=\"'autocompleteBased'\">\n <mat-form-field\n class=\"adf-property-field adf-card-selectitem-autocomplete \"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n [floatLabel]=\"property.default ? 'always' : null\"\n >\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-autocomplete-based-selectitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{\n 'adf-property-value-editable': isEditable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <input\n matInput\n [matAutocomplete]=\"auto\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': isEditable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"autocompleteControl\"\n [title]=\"'CORE.METADATA.ACTIONS.COPY_TO_CLIPBOARD' | translate\"\n [attr.data-automation-id]=\"'card-autocomplete-based-selectitem-value-' + property.key\"\n />\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onOptionSelected($event)\">\n <mat-option\n *ngFor=\"let option of property.options$ | async\"\n [value]=\"option.key\"\n [attr.data-automation-id]=\"'card-autocomplete-based-selectitem-option-' + property.key\"\n >\n {{ option.label }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n </div>\n</ng-container>\n", styles: [".adf-card-view-selectitem .adf-property-value{width:100%}.adf-card-view-selectitem .adf-select-filter-input{background:var(--adf-theme-background-card-color);position:sticky;top:0;left:0;right:0;z-index:1}.adf-card-view-selectitem .adf-property-value-editable{padding-left:0}.adf-card-view-selectitem .adf-property-value-editable .mdc-text-field--no-label .mat-mdc-form-field-infix{padding:0}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-text-field-wrapper{background-color:unset}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-select{margin-top:0;border-radius:6px}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-select .mat-mdc-select-value{color:var(--adf-metadata-action-button-clear-color)}.adf-card-view-selectitem .adf-property-value-editable .mat-mdc-select .mat-mdc-select-trigger{padding-left:6px;padding-right:6px}.adf-card-view-selectitem .adf-card-selectitem-autocomplete .adf-property-value-editable{padding-left:10px}.adf-card-view-selectitem .mat-mdc-form-field-subscript-wrapper{display:block}.adf-card-view-selectitem .adf-property-read-only{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;cursor:default;padding:6px 0}.adf-card-view-selectitem .mdc-line-ripple{display:none}.adf-card-view-selectitem .adf-property-readonly-value{color:var(--adf-metadata-property-panel-label-color)}.adf-card-view-selectitem .adf-property-label-non-editable{cursor:default;font-size:10px}\n"] }]
|
|
18607
18894
|
}], propDecorators: { options$: [{
|
|
18608
18895
|
type: Input
|
|
18609
18896
|
}], displayNoneOption: [{
|
|
@@ -18629,16 +18916,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
18629
18916
|
* limitations under the License.
|
|
18630
18917
|
*/
|
|
18631
18918
|
class CardViewBoolItemComponent extends BaseCardView {
|
|
18632
|
-
|
|
18633
|
-
|
|
18634
|
-
|
|
18919
|
+
get error() {
|
|
18920
|
+
return this._error;
|
|
18921
|
+
}
|
|
18922
|
+
changed(checked) {
|
|
18923
|
+
this.cardViewUpdateService.update({ ...this.property }, checked);
|
|
18924
|
+
this.property.value = checked;
|
|
18925
|
+
}
|
|
18926
|
+
onValidation(errors) {
|
|
18927
|
+
this._error = errors.join('<br>');
|
|
18635
18928
|
}
|
|
18636
18929
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CardViewBoolItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
18637
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: CardViewBoolItemComponent, isStandalone: true, selector: "adf-card-view-boolitem", inputs: { editable: "editable" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!property.isEmpty() || isEditable\">\n <div class=\"adf-property-value\">\n <mat-checkbox [attr.data-automation-id]=\"'card-boolean-' + property.key\"\n [attr.title]=\"'CORE.METADATA.ACTIONS.TOGGLE' | translate\"\n [checked]=\"property.displayValue\"\n [disabled]=\"!isEditable\"\n color=\"primary\"\n (
|
|
18930
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: CardViewBoolItemComponent, isStandalone: true, selector: "adf-card-view-boolitem", inputs: { editable: "editable" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!property.isEmpty() || isEditable\">\n <div class=\"adf-property-value\">\n <mat-checkbox [attr.data-automation-id]=\"'card-boolean-' + property.key\"\n [attr.title]=\"'CORE.METADATA.ACTIONS.TOGGLE' | translate\"\n [ngModel]=\"property.displayValue\"\n [checked]=\"property.displayValue\"\n [disabled]=\"!isEditable\"\n color=\"primary\"\n (ngModelChange)=\"changed($event)\"\n adf-card-view-property-validator\n [property]=\"property\"\n (validated)=\"onValidation($event)\"\n #checkbox=\"ngModel\" >\n <div [attr.data-automation-id]=\"'card-boolean-label-' + property.key\"\n class=\"adf-property-label\">{{ property.label | translate }}</div>\n <mat-error *ngIf=\"checkbox.touched\" [innerHTML]=\"error\" />\n </mat-checkbox>\n </div>\n</ng-container>\n", styles: [".adf-property-value{padding:15px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2$6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: CardViewPropertyValidatorDirective, selector: "[adf-card-view-property-validator]", inputs: ["property"], outputs: ["validated"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }] }); }
|
|
18638
18931
|
}
|
|
18639
18932
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CardViewBoolItemComponent, decorators: [{
|
|
18640
18933
|
type: Component,
|
|
18641
|
-
args: [{ selector: 'adf-card-view-boolitem', imports: [CommonModule, MatCheckboxModule, TranslatePipe], template: "<ng-container *ngIf=\"!property.isEmpty() || isEditable\">\n <div class=\"adf-property-value\">\n <mat-checkbox [attr.data-automation-id]=\"'card-boolean-' + property.key\"\n [attr.title]=\"'CORE.METADATA.ACTIONS.TOGGLE' | translate\"\n [checked]=\"property.displayValue\"\n [disabled]=\"!isEditable\"\n color=\"primary\"\n (
|
|
18934
|
+
args: [{ selector: 'adf-card-view-boolitem', imports: [CommonModule, MatCheckboxModule, TranslatePipe, CardViewPropertyValidatorDirective, FormsModule, MatError], template: "<ng-container *ngIf=\"!property.isEmpty() || isEditable\">\n <div class=\"adf-property-value\">\n <mat-checkbox [attr.data-automation-id]=\"'card-boolean-' + property.key\"\n [attr.title]=\"'CORE.METADATA.ACTIONS.TOGGLE' | translate\"\n [ngModel]=\"property.displayValue\"\n [checked]=\"property.displayValue\"\n [disabled]=\"!isEditable\"\n color=\"primary\"\n (ngModelChange)=\"changed($event)\"\n adf-card-view-property-validator\n [property]=\"property\"\n (validated)=\"onValidation($event)\"\n #checkbox=\"ngModel\" >\n <div [attr.data-automation-id]=\"'card-boolean-label-' + property.key\"\n class=\"adf-property-label\">{{ property.label | translate }}</div>\n <mat-error *ngIf=\"checkbox.touched\" [innerHTML]=\"error\" />\n </mat-checkbox>\n </div>\n</ng-container>\n", styles: [".adf-property-value{padding:15px 0}\n"] }]
|
|
18642
18935
|
}], propDecorators: { editable: [{
|
|
18643
18936
|
type: Input
|
|
18644
18937
|
}] } });
|
|
@@ -19174,41 +19467,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
19174
19467
|
* limitations under the License.
|
|
19175
19468
|
*/
|
|
19176
19469
|
|
|
19177
|
-
/*!
|
|
19178
|
-
* @license
|
|
19179
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
19180
|
-
*
|
|
19181
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
19182
|
-
* you may not use this file except in compliance with the License.
|
|
19183
|
-
* You may obtain a copy of the License at
|
|
19184
|
-
*
|
|
19185
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
19186
|
-
*
|
|
19187
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19188
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19189
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19190
|
-
* See the License for the specific language governing permissions and
|
|
19191
|
-
* limitations under the License.
|
|
19192
|
-
*/
|
|
19193
|
-
class CardViewItemIntValidator {
|
|
19194
|
-
constructor() {
|
|
19195
|
-
this.message = 'CORE.CARDVIEW.VALIDATORS.INT_VALIDATION_ERROR';
|
|
19196
|
-
}
|
|
19197
|
-
isValid(value) {
|
|
19198
|
-
if (Array.isArray(value)) {
|
|
19199
|
-
return value.every(this.isIntegerNumber);
|
|
19200
|
-
}
|
|
19201
|
-
return value === '' || (!isNaN(value) && this.isIntegerNumber(value) && this.isNotOnlySpace(value));
|
|
19202
|
-
}
|
|
19203
|
-
isIntegerNumber(value) {
|
|
19204
|
-
const parsedNumber = Number(value);
|
|
19205
|
-
return (parsedNumber | 0) === parsedNumber;
|
|
19206
|
-
}
|
|
19207
|
-
isNotOnlySpace(value) {
|
|
19208
|
-
return String(value).trim() !== '';
|
|
19209
|
-
}
|
|
19210
|
-
}
|
|
19211
|
-
|
|
19212
19470
|
/*!
|
|
19213
19471
|
* @license
|
|
19214
19472
|
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
@@ -19354,194 +19612,6 @@ class CardViewItemPositiveLongValidator {
|
|
|
19354
19612
|
* See the License for the specific language governing permissions and
|
|
19355
19613
|
* limitations under the License.
|
|
19356
19614
|
*/
|
|
19357
|
-
class CardViewItemMatchValidator {
|
|
19358
|
-
constructor(expression, flags, requiresMatch) {
|
|
19359
|
-
this.expression = expression;
|
|
19360
|
-
this.flags = flags;
|
|
19361
|
-
this.requiresMatch = requiresMatch;
|
|
19362
|
-
this.message = 'CORE.CARDVIEW.VALIDATORS.MATCH_VALIDATION_ERROR';
|
|
19363
|
-
}
|
|
19364
|
-
isValid(value) {
|
|
19365
|
-
const regex = new RegExp(this.expression, this?.flags);
|
|
19366
|
-
if (Array.isArray(value)) {
|
|
19367
|
-
return value.every((val) => (this.requiresMatch ? this.matchRegex(val, regex) : !this.matchRegex(val, regex)));
|
|
19368
|
-
}
|
|
19369
|
-
return value === '' || (this.requiresMatch ? this.matchRegex(value, regex) : !this.matchRegex(value, regex));
|
|
19370
|
-
}
|
|
19371
|
-
matchRegex(value, regex) {
|
|
19372
|
-
return regex.test(value);
|
|
19373
|
-
}
|
|
19374
|
-
}
|
|
19375
|
-
|
|
19376
|
-
/*!
|
|
19377
|
-
* @license
|
|
19378
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
19379
|
-
*
|
|
19380
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
19381
|
-
* you may not use this file except in compliance with the License.
|
|
19382
|
-
* You may obtain a copy of the License at
|
|
19383
|
-
*
|
|
19384
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
19385
|
-
*
|
|
19386
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19387
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19388
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19389
|
-
* See the License for the specific language governing permissions and
|
|
19390
|
-
* limitations under the License.
|
|
19391
|
-
*/
|
|
19392
|
-
class CardViewItemMinMaxValidator {
|
|
19393
|
-
constructor(minValue, maxValue) {
|
|
19394
|
-
this.minValue = minValue;
|
|
19395
|
-
this.maxValue = maxValue;
|
|
19396
|
-
this.message = 'CORE.CARDVIEW.VALIDATORS.MINMAX_VALIDATION_ERROR';
|
|
19397
|
-
this.intValidator = new CardViewItemIntValidator();
|
|
19398
|
-
}
|
|
19399
|
-
isValid(value) {
|
|
19400
|
-
if (Array.isArray(value)) {
|
|
19401
|
-
return value.every((val) => this.isInRange(val, this.minValue, this.maxValue));
|
|
19402
|
-
}
|
|
19403
|
-
return value === '' || (this.intValidator.isValid(value) && this.isInRange(value, this.minValue, this.maxValue));
|
|
19404
|
-
}
|
|
19405
|
-
isInRange(value, min, max) {
|
|
19406
|
-
return value >= min && value <= max;
|
|
19407
|
-
}
|
|
19408
|
-
}
|
|
19409
|
-
|
|
19410
|
-
/*!
|
|
19411
|
-
* @license
|
|
19412
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
19413
|
-
*
|
|
19414
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
19415
|
-
* you may not use this file except in compliance with the License.
|
|
19416
|
-
* You may obtain a copy of the License at
|
|
19417
|
-
*
|
|
19418
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
19419
|
-
*
|
|
19420
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19421
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19422
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19423
|
-
* See the License for the specific language governing permissions and
|
|
19424
|
-
* limitations under the License.
|
|
19425
|
-
*/
|
|
19426
|
-
class CardViewItemLengthValidator {
|
|
19427
|
-
constructor(minLength, maxLength) {
|
|
19428
|
-
this.minLength = minLength;
|
|
19429
|
-
this.maxLength = maxLength;
|
|
19430
|
-
this.message = 'CORE.CARDVIEW.VALIDATORS.LENGTH_VALIDATION_ERROR';
|
|
19431
|
-
}
|
|
19432
|
-
isValid(value) {
|
|
19433
|
-
if (Array.isArray(value)) {
|
|
19434
|
-
return value.every((val) => this.isCorrectLength(val, this.minLength, this.maxLength));
|
|
19435
|
-
}
|
|
19436
|
-
return value === '' || this.isCorrectLength(value, this.minLength, this.maxLength);
|
|
19437
|
-
}
|
|
19438
|
-
isCorrectLength(value, min, max) {
|
|
19439
|
-
const length = value.length;
|
|
19440
|
-
return length >= min && length <= max;
|
|
19441
|
-
}
|
|
19442
|
-
}
|
|
19443
|
-
|
|
19444
|
-
/*!
|
|
19445
|
-
* @license
|
|
19446
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
19447
|
-
*
|
|
19448
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
19449
|
-
* you may not use this file except in compliance with the License.
|
|
19450
|
-
* You may obtain a copy of the License at
|
|
19451
|
-
*
|
|
19452
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
19453
|
-
*
|
|
19454
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19455
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19456
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19457
|
-
* See the License for the specific language governing permissions and
|
|
19458
|
-
* limitations under the License.
|
|
19459
|
-
*/
|
|
19460
|
-
const validators = {
|
|
19461
|
-
minmax: (parameters) => new CardViewItemMinMaxValidator(parameters.minValue, parameters.maxValue),
|
|
19462
|
-
regex: (parameters) => new CardViewItemMatchValidator(parameters.expression, parameters.flags, parameters.requiresMatch),
|
|
19463
|
-
length: (parameters) => new CardViewItemLengthValidator(parameters.minLength, parameters.maxLength)
|
|
19464
|
-
};
|
|
19465
|
-
|
|
19466
|
-
/*!
|
|
19467
|
-
* @license
|
|
19468
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
19469
|
-
*
|
|
19470
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
19471
|
-
* you may not use this file except in compliance with the License.
|
|
19472
|
-
* You may obtain a copy of the License at
|
|
19473
|
-
*
|
|
19474
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
19475
|
-
*
|
|
19476
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19477
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19478
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19479
|
-
* See the License for the specific language governing permissions and
|
|
19480
|
-
* limitations under the License.
|
|
19481
|
-
*/
|
|
19482
|
-
|
|
19483
|
-
/*!
|
|
19484
|
-
* @license
|
|
19485
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
19486
|
-
*
|
|
19487
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
19488
|
-
* you may not use this file except in compliance with the License.
|
|
19489
|
-
* You may obtain a copy of the License at
|
|
19490
|
-
*
|
|
19491
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
19492
|
-
*
|
|
19493
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19494
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19495
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19496
|
-
* See the License for the specific language governing permissions and
|
|
19497
|
-
* limitations under the License.
|
|
19498
|
-
*/
|
|
19499
|
-
class CardViewBaseItemModel {
|
|
19500
|
-
constructor(props) {
|
|
19501
|
-
this.label = props.label || '';
|
|
19502
|
-
this.value = props.value?.displayName || props.value;
|
|
19503
|
-
this.key = props.key;
|
|
19504
|
-
this.default = props.default;
|
|
19505
|
-
this.editable = !!props.editable;
|
|
19506
|
-
this.clickable = !!props.clickable;
|
|
19507
|
-
this.icon = props.icon || '';
|
|
19508
|
-
this.hint = props.hint || '';
|
|
19509
|
-
this.validators = props.validators || [];
|
|
19510
|
-
this.data = props.data || null;
|
|
19511
|
-
this.multivalued = !!props.multivalued;
|
|
19512
|
-
if (props?.constraints?.length ?? 0) {
|
|
19513
|
-
for (const constraint of props.constraints) {
|
|
19514
|
-
if (constraint.type !== 'LIST') {
|
|
19515
|
-
const validatorFactory = validators[constraint.type.toLowerCase()];
|
|
19516
|
-
if (validatorFactory !== undefined) {
|
|
19517
|
-
this.validators.push(validatorFactory(constraint.parameters));
|
|
19518
|
-
}
|
|
19519
|
-
else {
|
|
19520
|
-
console.warn(`Validator for type ${constraint.type} is not supported`);
|
|
19521
|
-
}
|
|
19522
|
-
}
|
|
19523
|
-
}
|
|
19524
|
-
}
|
|
19525
|
-
}
|
|
19526
|
-
isEmpty() {
|
|
19527
|
-
return (this.value === undefined ||
|
|
19528
|
-
this.value === null ||
|
|
19529
|
-
(typeof this.value === 'string' && this.value.length === 0) ||
|
|
19530
|
-
(Array.isArray(this.value) && this.value.length === 0));
|
|
19531
|
-
}
|
|
19532
|
-
isValid(newValue) {
|
|
19533
|
-
if (!this.validators.length) {
|
|
19534
|
-
return true;
|
|
19535
|
-
}
|
|
19536
|
-
return this.validators.map((validator) => validator.isValid(newValue)).reduce((isValidUntilNow, isValid) => isValidUntilNow && isValid, true);
|
|
19537
|
-
}
|
|
19538
|
-
getValidationErrors(value) {
|
|
19539
|
-
if (!this.validators.length) {
|
|
19540
|
-
return [];
|
|
19541
|
-
}
|
|
19542
|
-
return this.validators.filter((validator) => !validator.isValid(value)).map((validator) => validator);
|
|
19543
|
-
}
|
|
19544
|
-
}
|
|
19545
19615
|
|
|
19546
19616
|
/*!
|
|
19547
19617
|
* @license
|