@c8y/ngx-components 1024.16.5 → 1024.16.6

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.
Files changed (29) hide show
  1. package/fesm2022/c8y-ngx-components-bookmarks.mjs +1 -1
  2. package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
  3. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +1 -1
  4. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  5. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +1 -1
  6. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  7. package/fesm2022/c8y-ngx-components-device-profile.mjs +1 -1
  8. package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
  9. package/fesm2022/c8y-ngx-components-ecosystem.mjs +1 -1
  10. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  11. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +1 -1
  12. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
  13. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +1 -1
  14. package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
  15. package/fesm2022/c8y-ngx-components-repository-software.mjs +1 -1
  16. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  17. package/fesm2022/c8y-ngx-components-sub-assets.mjs +30 -10
  18. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  19. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +1 -1
  20. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  21. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs +1 -1
  22. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs.map +1 -1
  23. package/fesm2022/c8y-ngx-components.mjs +11 -5
  24. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  25. package/package.json +1 -1
  26. package/types/c8y-ngx-components-sub-assets.d.ts +10 -1
  27. package/types/c8y-ngx-components-sub-assets.d.ts.map +1 -1
  28. package/types/c8y-ngx-components.d.ts +6 -1
  29. package/types/c8y-ngx-components.d.ts.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, input, effect, Directive, Pipe, createEnvironmentInjector, InjectionToken, Optional, Inject, EventEmitter, NgModule, LOCALE_ID, NgModuleRef, createNgModule, isDevMode, inject, DOCUMENT, EnvironmentInjector, Injector, Input, HostListener, Component, HostBinding, Output, forwardRef, DestroyRef, ViewChild, signal, viewChild, ChangeDetectionStrategy, contentChildren, untracked, SecurityContext, TemplateRef, ElementRef, provideAppInitializer, Self, SkipSelf, Attribute, ContentChild, computed, ContentChildren, ViewContainerRef, output, ChangeDetectorRef, ViewChildren, createComponent, runInInjectionContext, importProvidersFrom, SimpleChange, reflectComponentType, ViewEncapsulation, Type } from '@angular/core';
2
+ import { Injectable, input, effect, Directive, Pipe, createEnvironmentInjector, InjectionToken, Optional, Inject, EventEmitter, NgModule, LOCALE_ID, NgModuleRef, createNgModule, isDevMode, inject, DOCUMENT, EnvironmentInjector, Injector, Input, HostListener, Component, HostBinding, Output, forwardRef, DestroyRef, ViewChild, signal, viewChild, ChangeDetectionStrategy, contentChildren, untracked, SecurityContext, TemplateRef, ElementRef, provideAppInitializer, Self, SkipSelf, Attribute, ContentChild, computed, ContentChildren, ViewContainerRef, booleanAttribute, output, ChangeDetectorRef, ViewChildren, createComponent, runInInjectionContext, importProvidersFrom, SimpleChange, reflectComponentType, ViewEncapsulation, Type } from '@angular/core';
3
3
  import * as i1$2 from 'ngx-bootstrap/dropdown';
4
4
  import { BsDropdownDirective, BsDropdownModule } from 'ngx-bootstrap/dropdown';
5
5
  import * as i4$2 from '@angular/cdk/a11y';
@@ -19625,6 +19625,9 @@ class InputGroupEditableComponent {
19625
19625
  this.size = input('', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
19626
19626
  /** Placeholder text shown inside the input when the value is empty. */
19627
19627
  this.placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
19628
+ /** Native `title` forwarded to the input, so a value that is truncated still shows in full on
19629
+ * hover. Passed through as-is (not translated). */
19630
+ this.title = input('', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
19628
19631
  /** When `true`, renders a `<textarea>` with `c8y-textarea-autoresize` instead of `<input>`.
19629
19632
  * The textarea starts at a single-line height and grows automatically as the user types. */
19630
19633
  this.multiline = input(false, ...(ngDevMode ? [{ debugName: "multiline" }] : /* istanbul ignore next */ []));
@@ -19649,6 +19652,8 @@ class InputGroupEditableComponent {
19649
19652
  this.asyncValidators = input(null, ...(ngDevMode ? [{ debugName: "asyncValidators" }] : /* istanbul ignore next */ []));
19650
19653
  /** The `autocomplete` attribute forwarded to the underlying `<input>` element. Defaults to `'off'`. */
19651
19654
  this.autocomplete = input('off', ...(ngDevMode ? [{ debugName: "autocomplete" }] : /* istanbul ignore next */ []));
19655
+ /** When `true`, the value must not be empty: a `Validators.required` check is applied.*/
19656
+ this.required = input(false, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
19652
19657
  /** Emitted when the user confirms an edit. Provides the new string value.
19653
19658
  * Not emitted when `[noSaveButton]="true"`. */
19654
19659
  this.save = output();
@@ -19735,6 +19740,7 @@ class InputGroupEditableComponent {
19735
19740
  syncInternalValidators() {
19736
19741
  const inputV = this.validators();
19737
19742
  const syncList = [
19743
+ ...(this.required() ? [Validators.required] : []),
19738
19744
  ...(this.outerValidator ? [this.outerValidator] : []),
19739
19745
  ...(Array.isArray(inputV) ? inputV : inputV ? [inputV] : [])
19740
19746
  ];
@@ -19792,13 +19798,13 @@ class InputGroupEditableComponent {
19792
19798
  }, 0);
19793
19799
  }
19794
19800
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InputGroupEditableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19795
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: InputGroupEditableComponent, isStandalone: true, selector: "c8y-input-group-editable", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, multiline: { classPropertyName: "multiline", publicName: "multiline", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, noSaveButton: { classPropertyName: "noSaveButton", publicName: "noSaveButton", isSignal: true, isRequired: false, transformFunction: null }, formGroupClass: { classPropertyName: "formGroupClass", publicName: "formGroupClass", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, asyncValidators: { classPropertyName: "asyncValidators", publicName: "asyncValidators", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { save: "save", cancel: "cancel" }, host: { classAttribute: "d-contents" }, providers: [
19801
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: InputGroupEditableComponent, isStandalone: true, selector: "c8y-input-group-editable", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, multiline: { classPropertyName: "multiline", publicName: "multiline", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, noSaveButton: { classPropertyName: "noSaveButton", publicName: "noSaveButton", isSignal: true, isRequired: false, transformFunction: null }, formGroupClass: { classPropertyName: "formGroupClass", publicName: "formGroupClass", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, asyncValidators: { classPropertyName: "asyncValidators", publicName: "asyncValidators", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { save: "save", cancel: "cancel" }, host: { classAttribute: "d-contents" }, providers: [
19796
19802
  {
19797
19803
  provide: NG_VALUE_ACCESSOR,
19798
19804
  useExisting: forwardRef(() => InputGroupEditableComponent),
19799
19805
  multi: true
19800
19806
  }
19801
- ], queries: [{ propertyName: "customErrorMessages", predicate: MessageDirective }], viewQueries: [{ propertyName: "autoresizeDir", first: true, predicate: TextareaAutoresizeDirective, descendants: true, isSignal: true }, { propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<c8y-form-group\n [class]=\"formGroupClass()\"\n [status]=\"!!errors ? 'error' : ''\"\n>\n <div\n class=\"input-group input-group-editable\"\n [class.input-group-sm]=\"size() === 'sm'\"\n [class.input-group-lg]=\"size() === 'lg'\"\n [class.input-group-editable--no-actions]=\"noSaveButton()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n role=\"group\"\n >\n @if (multiline()) {\n <textarea\n class=\"form-control no-resize\"\n [style.max-height]=\"maxHeight() || null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.control.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n c8y-textarea-autoresize\n ></textarea>\n } @else {\n <input\n class=\"form-control\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [attr.autocomplete]=\"autocomplete()\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n data-1p-ignore\n data-lpignore=\"true\"\n data-bwignore\n />\n }\n <!-- Edit mode indicator hook used by _input-groups.scss -->\n <span aria-hidden=\"true\"></span>\n @if (!internalControl.disabled && !noSaveButton()) {\n <div class=\"input-group-btn min-width-0\">\n <button\n class=\"btn btn-clean\"\n [title]=\"'Cancel' | translate\"\n [attr.aria-label]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n <i\n c8yIcon=\"times\"\n aria-hidden=\"true\"\n ></i>\n </button>\n <button\n class=\"btn btn-clean text-primary\"\n [title]=\"'Save' | translate\"\n [attr.aria-label]=\"'Save' | translate\"\n type=\"button\"\n [disabled]=\"isSaveDisabled\"\n (click)=\"onSave()\"\n >\n <i\n c8yIcon=\"check\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n }\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ liveMessage | translate }}</span\n >\n </div>\n <c8y-messages\n [show]=\"errors\"\n [additionalMessages]=\"customErrorMessages\"\n ></c8y-messages>\n</c8y-form-group>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.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: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: TextareaAutoresizeDirective, selector: "[c8y-textarea-autoresize]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19807
+ ], queries: [{ propertyName: "customErrorMessages", predicate: MessageDirective }], viewQueries: [{ propertyName: "autoresizeDir", first: true, predicate: TextareaAutoresizeDirective, descendants: true, isSignal: true }, { propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<c8y-form-group\n [class]=\"formGroupClass()\"\n [status]=\"!!errors ? 'error' : ''\"\n>\n <div\n class=\"input-group input-group-editable\"\n [class.input-group-sm]=\"size() === 'sm'\"\n [class.input-group-lg]=\"size() === 'lg'\"\n [class.input-group-editable--no-actions]=\"noSaveButton()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n role=\"group\"\n >\n @if (multiline()) {\n <textarea\n class=\"form-control no-resize\"\n [style.max-height]=\"maxHeight() || null\"\n [attr.title]=\"title() || null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-invalid]=\"errors ? 'true' : null\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.control.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n c8y-textarea-autoresize\n ></textarea>\n } @else {\n <input\n class=\"form-control\"\n [attr.title]=\"title() || null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-invalid]=\"errors ? 'true' : null\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [attr.autocomplete]=\"autocomplete()\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n data-1p-ignore\n data-lpignore=\"true\"\n data-bwignore\n />\n }\n <!-- Edit mode indicator hook used by _input-groups.scss -->\n <span aria-hidden=\"true\"></span>\n @if (!internalControl.disabled && !noSaveButton() && internalControl.dirty) {\n <div class=\"input-group-btn min-width-0\">\n <button\n class=\"btn btn-clean\"\n [title]=\"'Cancel' | translate\"\n [attr.aria-label]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n <i\n c8yIcon=\"times\"\n aria-hidden=\"true\"\n ></i>\n </button>\n <button\n class=\"btn btn-clean text-primary\"\n [title]=\"'Save' | translate\"\n [attr.aria-label]=\"'Save' | translate\"\n type=\"button\"\n [disabled]=\"isSaveDisabled\"\n (click)=\"onSave()\"\n >\n <i\n c8yIcon=\"check\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n }\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ liveMessage | translate }}</span\n >\n </div>\n <c8y-messages\n role=\"alert\"\n [show]=\"errors\"\n [additionalMessages]=\"customErrorMessages\"\n ></c8y-messages>\n</c8y-form-group>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.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: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: TextareaAutoresizeDirective, selector: "[c8y-textarea-autoresize]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19802
19808
  }
19803
19809
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InputGroupEditableComponent, decorators: [{
19804
19810
  type: Component,
@@ -19815,8 +19821,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
19815
19821
  useExisting: forwardRef(() => InputGroupEditableComponent),
19816
19822
  multi: true
19817
19823
  }
19818
- ], template: "<c8y-form-group\n [class]=\"formGroupClass()\"\n [status]=\"!!errors ? 'error' : ''\"\n>\n <div\n class=\"input-group input-group-editable\"\n [class.input-group-sm]=\"size() === 'sm'\"\n [class.input-group-lg]=\"size() === 'lg'\"\n [class.input-group-editable--no-actions]=\"noSaveButton()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n role=\"group\"\n >\n @if (multiline()) {\n <textarea\n class=\"form-control no-resize\"\n [style.max-height]=\"maxHeight() || null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.control.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n c8y-textarea-autoresize\n ></textarea>\n } @else {\n <input\n class=\"form-control\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [attr.autocomplete]=\"autocomplete()\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n data-1p-ignore\n data-lpignore=\"true\"\n data-bwignore\n />\n }\n <!-- Edit mode indicator hook used by _input-groups.scss -->\n <span aria-hidden=\"true\"></span>\n @if (!internalControl.disabled && !noSaveButton()) {\n <div class=\"input-group-btn min-width-0\">\n <button\n class=\"btn btn-clean\"\n [title]=\"'Cancel' | translate\"\n [attr.aria-label]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n <i\n c8yIcon=\"times\"\n aria-hidden=\"true\"\n ></i>\n </button>\n <button\n class=\"btn btn-clean text-primary\"\n [title]=\"'Save' | translate\"\n [attr.aria-label]=\"'Save' | translate\"\n type=\"button\"\n [disabled]=\"isSaveDisabled\"\n (click)=\"onSave()\"\n >\n <i\n c8yIcon=\"check\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n }\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ liveMessage | translate }}</span\n >\n </div>\n <c8y-messages\n [show]=\"errors\"\n [additionalMessages]=\"customErrorMessages\"\n ></c8y-messages>\n</c8y-form-group>\n" }]
19819
- }], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: true }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], multiline: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiline", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], maxLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLength", required: false }] }], noSaveButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "noSaveButton", required: false }] }], formGroupClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "formGroupClass", required: false }] }], validators: [{ type: i0.Input, args: [{ isSignal: true, alias: "validators", required: false }] }], asyncValidators: [{ type: i0.Input, args: [{ isSignal: true, alias: "asyncValidators", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], save: [{ type: i0.Output, args: ["save"] }], cancel: [{ type: i0.Output, args: ["cancel"] }], customErrorMessages: [{
19824
+ ], template: "<c8y-form-group\n [class]=\"formGroupClass()\"\n [status]=\"!!errors ? 'error' : ''\"\n>\n <div\n class=\"input-group input-group-editable\"\n [class.input-group-sm]=\"size() === 'sm'\"\n [class.input-group-lg]=\"size() === 'lg'\"\n [class.input-group-editable--no-actions]=\"noSaveButton()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n role=\"group\"\n >\n @if (multiline()) {\n <textarea\n class=\"form-control no-resize\"\n [style.max-height]=\"maxHeight() || null\"\n [attr.title]=\"title() || null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-invalid]=\"errors ? 'true' : null\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.control.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n c8y-textarea-autoresize\n ></textarea>\n } @else {\n <input\n class=\"form-control\"\n [attr.title]=\"title() || null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-invalid]=\"errors ? 'true' : null\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [attr.autocomplete]=\"autocomplete()\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n data-1p-ignore\n data-lpignore=\"true\"\n data-bwignore\n />\n }\n <!-- Edit mode indicator hook used by _input-groups.scss -->\n <span aria-hidden=\"true\"></span>\n @if (!internalControl.disabled && !noSaveButton() && internalControl.dirty) {\n <div class=\"input-group-btn min-width-0\">\n <button\n class=\"btn btn-clean\"\n [title]=\"'Cancel' | translate\"\n [attr.aria-label]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n <i\n c8yIcon=\"times\"\n aria-hidden=\"true\"\n ></i>\n </button>\n <button\n class=\"btn btn-clean text-primary\"\n [title]=\"'Save' | translate\"\n [attr.aria-label]=\"'Save' | translate\"\n type=\"button\"\n [disabled]=\"isSaveDisabled\"\n (click)=\"onSave()\"\n >\n <i\n c8yIcon=\"check\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n }\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ liveMessage | translate }}</span\n >\n </div>\n <c8y-messages\n role=\"alert\"\n [show]=\"errors\"\n [additionalMessages]=\"customErrorMessages\"\n ></c8y-messages>\n</c8y-form-group>\n" }]
19825
+ }], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: true }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], multiline: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiline", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], maxLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLength", required: false }] }], noSaveButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "noSaveButton", required: false }] }], formGroupClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "formGroupClass", required: false }] }], validators: [{ type: i0.Input, args: [{ isSignal: true, alias: "validators", required: false }] }], asyncValidators: [{ type: i0.Input, args: [{ isSignal: true, alias: "asyncValidators", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], save: [{ type: i0.Output, args: ["save"] }], cancel: [{ type: i0.Output, args: ["cancel"] }], customErrorMessages: [{
19820
19826
  type: ContentChildren,
19821
19827
  args: [MessageDirective]
19822
19828
  }], autoresizeDir: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TextareaAutoresizeDirective), { isSignal: true }] }], inputEl: [{ type: i0.ViewChild, args: ['inputEl', { isSignal: true }] }] } });