@solcre-org/core-ui 2.18.2 → 2.18.3
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/solcre-org-core-ui.mjs +250 -46
- package/fesm2022/solcre-org-core-ui.mjs.map +1 -1
- package/index.d.ts +52 -4
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { HostBinding, Directive, input, Component, inject, output, computed, signal, effect, Pipe, Injectable, ElementRef, untracked, HostListener, ViewChild, ViewContainerRef, TemplateRef, InjectionToken, ContentChild, ChangeDetectionStrategy, viewChild, ChangeDetectorRef, afterNextRender, makeEnvironmentProviders, importProvidersFrom } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/common';
|
|
4
4
|
import { CommonModule, DatePipe } from '@angular/common';
|
|
5
|
-
import * as
|
|
5
|
+
import * as i4 from '@ngx-translate/core';
|
|
6
6
|
import { TranslateModule, TranslateService, TranslateLoader } from '@ngx-translate/core';
|
|
7
|
-
import * as i3
|
|
7
|
+
import * as i3 from '@angular/forms';
|
|
8
8
|
import { FormControl, Validators, FormsModule, ReactiveFormsModule, FormBuilder } from '@angular/forms';
|
|
9
9
|
import * as i5 from '@ng-select/ng-select';
|
|
10
10
|
import { NgSelectModule, NgSelectComponent } from '@ng-select/ng-select';
|
|
@@ -12,7 +12,7 @@ import { AuthService, ApiService } from '@solcre-org/core';
|
|
|
12
12
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
13
13
|
import { distinctUntilChanged, debounceTime, tap as tap$1, map as map$1, filter, catchError as catchError$1 } from 'rxjs/operators';
|
|
14
14
|
import { map, BehaviorSubject, Subject, throttleTime, takeUntil, debounceTime as debounceTime$1, distinctUntilChanged as distinctUntilChanged$1, tap, switchMap, of, catchError, finalize, throwError, Observable, forkJoin, zip, timeout, Subscription, from } from 'rxjs';
|
|
15
|
-
import * as i4 from '@angular/router';
|
|
15
|
+
import * as i4$1 from '@angular/router';
|
|
16
16
|
import { RouterModule, Router, NavigationEnd, NavigationStart } from '@angular/router';
|
|
17
17
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
18
18
|
import * as i1$1 from '@angular/common/http';
|
|
@@ -47,7 +47,7 @@ class FieldErrorsComponent {
|
|
|
47
47
|
<span class="c-entry-error">{{ error | translate }}</span>
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
50
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
51
51
|
}
|
|
52
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FieldErrorsComponent, decorators: [{
|
|
53
53
|
type: Component,
|
|
@@ -117,7 +117,7 @@ class ActiveFiltersComponent {
|
|
|
117
117
|
return filter.removable !== false;
|
|
118
118
|
}
|
|
119
119
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ActiveFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
120
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: ActiveFiltersComponent, isStandalone: true, selector: "core-active-filters", inputs: { activeFilters: { classPropertyName: "activeFilters", publicName: "activeFilters", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onFilterRemove: "onFilterRemove", onClearAll: "onClearAll" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-active-filters u-push-b\" *ngIf=\"hasFilters()\">\n <p class=\"c-active-filters__text\">\n <span class=\"icon-filter\"></span>\n {{ activeFiltersTitle() | translate }}:\n </p>\n \n <button \n *ngFor=\"let filter of visibleFilters()\" \n class=\"c-active-filters__button\" \n type=\"button\"\n [title]=\"filter.label | translate\"\n (click)=\"removeFilter(filter)\"\n [disabled]=\"!isFilterRemovable(filter)\">\n {{ filter.label | translate }}: {{ getDisplayValue(filter) }}\n <span *ngIf=\"isFilterRemovable(filter)\" class=\"icon-close c-active-filters__button-icon\"></span>\n </button>\n \n <button \n *ngIf=\"showClearButton()\"\n class=\"c-active-filters__remove\" \n type=\"button\"\n (click)=\"clearAllFilters()\">\n {{ clearFiltersLabel() | translate }}\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
120
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: ActiveFiltersComponent, isStandalone: true, selector: "core-active-filters", inputs: { activeFilters: { classPropertyName: "activeFilters", publicName: "activeFilters", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onFilterRemove: "onFilterRemove", onClearAll: "onClearAll" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-active-filters u-push-b\" *ngIf=\"hasFilters()\">\n <p class=\"c-active-filters__text\">\n <span class=\"icon-filter\"></span>\n {{ activeFiltersTitle() | translate }}:\n </p>\n \n <button \n *ngFor=\"let filter of visibleFilters()\" \n class=\"c-active-filters__button\" \n type=\"button\"\n [title]=\"filter.label | translate\"\n (click)=\"removeFilter(filter)\"\n [disabled]=\"!isFilterRemovable(filter)\">\n {{ filter.label | translate }}: {{ getDisplayValue(filter) }}\n <span *ngIf=\"isFilterRemovable(filter)\" class=\"icon-close c-active-filters__button-icon\"></span>\n </button>\n \n <button \n *ngIf=\"showClearButton()\"\n class=\"c-active-filters__remove\" \n type=\"button\"\n (click)=\"clearAllFilters()\">\n {{ clearFiltersLabel() | translate }}\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
121
121
|
}
|
|
122
122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ActiveFiltersComponent, decorators: [{
|
|
123
123
|
type: Component,
|
|
@@ -571,7 +571,7 @@ class CheckboxFieldComponent extends BaseFieldComponent {
|
|
|
571
571
|
}
|
|
572
572
|
}
|
|
573
573
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CheckboxFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
574
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CheckboxFieldComponent, isStandalone: true, selector: "core-checkbox-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- Clase para layout inline cuando hay m\u00FAltiples opciones -->\n<div class=\"c-entry-toggle-holder\" [class.hasSeparatedOptions]=\"hasSeparatedOptions()\" [class.multiple-inline]=\"hasMultipleOptions()\">\n\n <span class=\"c-entry-text\"\n *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredIndicator()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n \n @if (hasMultipleOptions()) {\n @for (option of options(); track option.value) {\n\n <!-- ! Solcre: Este .c-entry-toggle deber\u00EDa ser un componente en s\u00ED mismo. -->\n <!-- ! Solcre: El cannot-deselect no est\u00E1 over-engineered. Deber\u00EDa ser un Radio. -->\n <label class=\"c-entry-toggle\"\n [class.is-invalid]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\"\n [class.cannot-deselect]=\"cannotDeselect(option)\">\n\n <!-- onBlurInput() maneja validaciones y marca el campo como touched para mostrar errores -->\n @if (!allowMultiple() && isRequired()) {\n <!-- Cuando allowMultiple: false y required: true, usar radio buttons para todas las opciones -->\n <input\n type=\"radio\"\n [attr.id]=\"field().key.toString() + '_' + option.value\"\n [attr.name]=\"field().key.toString()\"\n [checked]=\"isOptionSelected(option)\"\n (change)=\"handleOptionChange(option, $event)\"\n (blur)=\"onBlurInput()\"\n />\n } @else if (cannotDeselect(option)) {\n <!-- Usar radio cuando no se puede deseleccionar (modo m\u00FAltiple con una sola opci\u00F3n) -->\n <input\n type=\"radio\"\n [attr.id]=\"field().key.toString() + '_' + option.value\"\n [attr.name]=\"field().key.toString()\"\n [checked]=\"isOptionSelected(option)\"\n (change)=\"handleOptionChange(option, $event)\"\n (blur)=\"onBlurInput()\"\n />\n } @else {\n <!-- Usar checkbox normal cuando se puede deseleccionar -->\n <input\n type=\"checkbox\"\n [attr.id]=\"field().key.toString() + '_' + option.value\"\n [attr.name]=\"allowMultiple() ? field().key.toString() + '[]' : field().key.toString()\"\n [checked]=\"isOptionSelected(option)\"\n (change)=\"handleOptionChange(option, $event)\"\n (blur)=\"onBlurInput()\"\n />\n }\n <span class=\"c-entry-toggle__toggle\"></span>\n\n <span class=\"c-entry-toggle__text\">\n {{ option.label | translate }}\n @if(option.externalLink) {\n <!-- Link externo funcional implementado -->\n <a class=\"icon-external-link-thin\" [href]=\"option.externalLink\" target=\"_blank\"></a>\n }\n </span>\n @if(option.detail) {\n <!-- Texto de detalle funcional implementado -->\n <span class=\"c-form-checkbox__detail\">{{ option.detail }}</span>\n }\n </label>\n\n }\n } @else {\n <!-- ! Solcre: Este .c-entry-toggle deber\u00EDa ser un componente en s\u00ED mismo. -->\n <!-- ! Solcre: El cannot-deselect no est\u00E1 over-engineered. Deber\u00EDa ser un Radio. -->\n <label class=\"c-entry-toggle\"\n [class.is-invalid]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\"\n [class.cannot-deselect]=\"isRequired() && !!formControl().value\">\n\n <!-- onBlurInput() maneja validaciones y marca el campo como touched para mostrar errores -->\n @if (isRequired() && !!formControl().value) {\n <!-- Usar radio cuando es requerido y tiene valor (cannot-deselect) -->\n <input\n type=\"radio\"\n [attr.id]=\"field().key.toString()\"\n [attr.name]=\"field().key.toString()\"\n [checked]=\"!!formControl().value\"\n (change)=\"onRadioChange($event)\"\n (blur)=\"onBlurInput()\"\n />\n } @else {\n <!-- Usar checkbox normal cuando se puede deseleccionar -->\n <input\n type=\"checkbox\"\n [attr.id]=\"field().key.toString()\"\n [attr.name]=\"field().key.toString()\"\n [formControl]=\"formControl()\"\n (blur)=\"onBlurInput()\"\n />\n }\n <span class=\"c-entry-toggle__toggle\"></span>\n <span class=\"c-entry-toggle__text\">\n {{ field().label | translate }}\n @if (hasRequiredIndicator()) {\n <span class=\"c-required\">*</span>\n }\n @if(externalLink()) {\n <!-- Link externo funcional implementado -->\n <a class=\"icon-external-link-thin\" [href]=\"externalLink()\" target=\"_blank\"></a>\n }\n </span>\n @if(detail()) {\n <!-- Texto de detalle funcional implementado -->\n <span class=\"c-form-checkbox__detail\">{{ detail() }}</span>\n }\n </label>\n }\n\n <core-field-errors [errors]=\"errors()\" />\n</div> \n ", styles: [".cannot-deselect{pointer-events:none;cursor:not-allowed}.c-entry-text+.c-entry-toggle-holder.hasSeparatedOptions{margin-top:calc(var(--_entry-group-gap) * .8)}.c-entry-toggle-holder.hasSeparatedOptions{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--_entry-group-gap) * .8)}.c-entry-toggle-holder.hasSeparatedOptions .c-entry-text{grid-column:span 2;margin-top:1em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
574
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CheckboxFieldComponent, isStandalone: true, selector: "core-checkbox-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- Clase para layout inline cuando hay m\u00FAltiples opciones -->\n<div class=\"c-entry-toggle-holder\" [class.hasSeparatedOptions]=\"hasSeparatedOptions()\" [class.multiple-inline]=\"hasMultipleOptions()\">\n\n <span class=\"c-entry-text\"\n *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredIndicator()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n \n @if (hasMultipleOptions()) {\n @for (option of options(); track option.value) {\n\n <!-- ! Solcre: Este .c-entry-toggle deber\u00EDa ser un componente en s\u00ED mismo. -->\n <!-- ! Solcre: El cannot-deselect no est\u00E1 over-engineered. Deber\u00EDa ser un Radio. -->\n <label class=\"c-entry-toggle\"\n [class.is-invalid]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\"\n [class.cannot-deselect]=\"cannotDeselect(option)\">\n\n <!-- onBlurInput() maneja validaciones y marca el campo como touched para mostrar errores -->\n @if (!allowMultiple() && isRequired()) {\n <!-- Cuando allowMultiple: false y required: true, usar radio buttons para todas las opciones -->\n <input\n type=\"radio\"\n [attr.id]=\"field().key.toString() + '_' + option.value\"\n [attr.name]=\"field().key.toString()\"\n [checked]=\"isOptionSelected(option)\"\n (change)=\"handleOptionChange(option, $event)\"\n (blur)=\"onBlurInput()\"\n />\n } @else if (cannotDeselect(option)) {\n <!-- Usar radio cuando no se puede deseleccionar (modo m\u00FAltiple con una sola opci\u00F3n) -->\n <input\n type=\"radio\"\n [attr.id]=\"field().key.toString() + '_' + option.value\"\n [attr.name]=\"field().key.toString()\"\n [checked]=\"isOptionSelected(option)\"\n (change)=\"handleOptionChange(option, $event)\"\n (blur)=\"onBlurInput()\"\n />\n } @else {\n <!-- Usar checkbox normal cuando se puede deseleccionar -->\n <input\n type=\"checkbox\"\n [attr.id]=\"field().key.toString() + '_' + option.value\"\n [attr.name]=\"allowMultiple() ? field().key.toString() + '[]' : field().key.toString()\"\n [checked]=\"isOptionSelected(option)\"\n (change)=\"handleOptionChange(option, $event)\"\n (blur)=\"onBlurInput()\"\n />\n }\n <span class=\"c-entry-toggle__toggle\"></span>\n\n <span class=\"c-entry-toggle__text\">\n {{ option.label | translate }}\n @if(option.externalLink) {\n <!-- Link externo funcional implementado -->\n <a class=\"icon-external-link-thin\" [href]=\"option.externalLink\" target=\"_blank\"></a>\n }\n </span>\n @if(option.detail) {\n <!-- Texto de detalle funcional implementado -->\n <span class=\"c-form-checkbox__detail\">{{ option.detail }}</span>\n }\n </label>\n\n }\n } @else {\n <!-- ! Solcre: Este .c-entry-toggle deber\u00EDa ser un componente en s\u00ED mismo. -->\n <!-- ! Solcre: El cannot-deselect no est\u00E1 over-engineered. Deber\u00EDa ser un Radio. -->\n <label class=\"c-entry-toggle\"\n [class.is-invalid]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\"\n [class.cannot-deselect]=\"isRequired() && !!formControl().value\">\n\n <!-- onBlurInput() maneja validaciones y marca el campo como touched para mostrar errores -->\n @if (isRequired() && !!formControl().value) {\n <!-- Usar radio cuando es requerido y tiene valor (cannot-deselect) -->\n <input\n type=\"radio\"\n [attr.id]=\"field().key.toString()\"\n [attr.name]=\"field().key.toString()\"\n [checked]=\"!!formControl().value\"\n (change)=\"onRadioChange($event)\"\n (blur)=\"onBlurInput()\"\n />\n } @else {\n <!-- Usar checkbox normal cuando se puede deseleccionar -->\n <input\n type=\"checkbox\"\n [attr.id]=\"field().key.toString()\"\n [attr.name]=\"field().key.toString()\"\n [formControl]=\"formControl()\"\n (blur)=\"onBlurInput()\"\n />\n }\n <span class=\"c-entry-toggle__toggle\"></span>\n <span class=\"c-entry-toggle__text\">\n {{ field().label | translate }}\n @if (hasRequiredIndicator()) {\n <span class=\"c-required\">*</span>\n }\n @if(externalLink()) {\n <!-- Link externo funcional implementado -->\n <a class=\"icon-external-link-thin\" [href]=\"externalLink()\" target=\"_blank\"></a>\n }\n </span>\n @if(detail()) {\n <!-- Texto de detalle funcional implementado -->\n <span class=\"c-form-checkbox__detail\">{{ detail() }}</span>\n }\n </label>\n }\n\n <core-field-errors [errors]=\"errors()\" />\n</div> \n ", styles: [".cannot-deselect{pointer-events:none;cursor:not-allowed}.c-entry-text+.c-entry-toggle-holder.hasSeparatedOptions{margin-top:calc(var(--_entry-group-gap) * .8)}.c-entry-toggle-holder.hasSeparatedOptions{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--_entry-group-gap) * .8)}.c-entry-toggle-holder.hasSeparatedOptions .c-entry-text{grid-column:span 2;margin-top:1em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
575
575
|
}
|
|
576
576
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CheckboxFieldComponent, decorators: [{
|
|
577
577
|
type: Component,
|
|
@@ -660,7 +660,7 @@ class ColorPickerFieldComponent extends BaseFieldComponent {
|
|
|
660
660
|
this.onEnterInput(keyboardEvent);
|
|
661
661
|
}
|
|
662
662
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ColorPickerFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
663
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: ColorPickerFieldComponent, isStandalone: true, selector: "core-color-picker-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <div class=\"c-entry-input c-entry-input--color\"\n [class.is-readonly]=\"isReadonly()\"\n [class.is-disabled]=\"isDisabled()\">\n <div class=\"c-color-picker\">\n <div class=\"c-color-picker__preview-wrapper\">\n <div \n class=\"c-color-picker__preview\"\n [style.background-color]=\"getCurrentColor()\"\n (click)=\"togglePicker()\"\n [class.c-color-picker__preview--disabled]=\"isDisabled()\">\n </div>\n \n <input\n type=\"text\"\n class=\"c-color-picker__text-input\"\n [id]=\"field().key\"\n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '#4783E1') | translate\"\n [class.c-color-picker__text-input--disabled]=\"isDisabled()\"\n [class.c-color-picker__text-input--error]=\"hasError()\"\n (input)=\"onTextInputChange($event)\"\n (blur)=\"onBlurInput($event)\"\n (keydown.enter)=\"handleEnterKey($event)\"\n maxlength=\"7\"\n />\n \n <input\n type=\"color\"\n class=\"c-color-picker__native-input\"\n [value]=\"getCurrentColor()\"\n [disabled]=\"isDisabled()\"\n (input)=\"onColorInputChange($event)\"\n />\n </div>\n\n @if (isPickerOpen()) {\n <div class=\"c-color-picker__dropdown\">\n <div class=\"c-color-picker__preset-colors\">\n @for (color of presetColors(); track color) {\n <button\n type=\"button\"\n class=\"c-color-picker__preset-color\"\n [style.background-color]=\"color\"\n [class.c-color-picker__preset-color--selected]=\"getCurrentColor() === color\"\n (click)=\"selectColor(color)\"\n [title]=\"color\">\n </button>\n }\n </div>\n </div>\n }\n </div>\n </div>\n\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n", styles: [".c-color-picker{position:relative;width:100%}.c-color-picker__preview-wrapper{display:flex;align-items:center;gap:8px}.c-color-picker__preview{width:36px;height:36px;border-radius:6px;border:2px solid var(--color-border, #e0e0e0);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;flex-shrink:0}.c-color-picker__preview:hover:not(.c-color-picker__preview--disabled){border-color:var(--color-primary, #4783E1);box-shadow:0 0 0 2px #4783e133}.c-color-picker__preview--disabled{cursor:not-allowed;opacity:.6}.c-color-picker__text-input{flex:1;height:36px;padding:0 12px;font-size:14px;font-family:monospace;text-transform:uppercase;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;background-color:var(--color-background, #fff);transition:border-color .2s ease,box-shadow .2s ease}.c-color-picker__text-input:focus{outline:none;border-color:var(--color-primary, #4783E1);box-shadow:0 0 0 2px #4783e133}.c-color-picker__text-input--disabled{background-color:var(--color-disabled-bg, #f5f5f5);cursor:not-allowed;opacity:.6}.c-color-picker__text-input--error{border-color:var(--color-danger, #dc3545)}.c-color-picker__text-input--error:focus{box-shadow:0 0 0 2px #dc354533}.c-color-picker__native-input{width:36px;height:36px;padding:0;border:none;border-radius:6px;cursor:pointer;flex-shrink:0}.c-color-picker__native-input::-webkit-color-swatch-wrapper{padding:0}.c-color-picker__native-input::-webkit-color-swatch{border:2px solid var(--color-border, #e0e0e0);border-radius:6px}.c-color-picker__native-input:disabled{cursor:not-allowed;opacity:.6}.c-color-picker__dropdown{position:absolute;top:calc(100% + 8px);left:0;z-index:1000;background-color:var(--color-background, #fff);border:1px solid var(--color-border, #e0e0e0);border-radius:8px;box-shadow:0 4px 12px #00000026;padding:12px;min-width:200px}.c-color-picker__preset-colors{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.c-color-picker__preset-color{width:32px;height:32px;border:2px solid transparent;border-radius:6px;cursor:pointer;padding:0;transition:transform .15s ease,border-color .15s ease}.c-color-picker__preset-color:hover{transform:scale(1.1)}.c-color-picker__preset-color--selected{border-color:var(--color-text, #333);box-shadow:0 0 0 2px var(--color-background, #fff),0 0 0 4px var(--color-primary, #4783E1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
663
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: ColorPickerFieldComponent, isStandalone: true, selector: "core-color-picker-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <div class=\"c-entry-input c-entry-input--color\"\n [class.is-readonly]=\"isReadonly()\"\n [class.is-disabled]=\"isDisabled()\">\n <div class=\"c-color-picker\">\n <div class=\"c-color-picker__preview-wrapper\">\n <div \n class=\"c-color-picker__preview\"\n [style.background-color]=\"getCurrentColor()\"\n (click)=\"togglePicker()\"\n [class.c-color-picker__preview--disabled]=\"isDisabled()\">\n </div>\n \n <input\n type=\"text\"\n class=\"c-color-picker__text-input\"\n [id]=\"field().key\"\n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '#4783E1') | translate\"\n [class.c-color-picker__text-input--disabled]=\"isDisabled()\"\n [class.c-color-picker__text-input--error]=\"hasError()\"\n (input)=\"onTextInputChange($event)\"\n (blur)=\"onBlurInput($event)\"\n (keydown.enter)=\"handleEnterKey($event)\"\n maxlength=\"7\"\n />\n \n <input\n type=\"color\"\n class=\"c-color-picker__native-input\"\n [value]=\"getCurrentColor()\"\n [disabled]=\"isDisabled()\"\n (input)=\"onColorInputChange($event)\"\n />\n </div>\n\n @if (isPickerOpen()) {\n <div class=\"c-color-picker__dropdown\">\n <div class=\"c-color-picker__preset-colors\">\n @for (color of presetColors(); track color) {\n <button\n type=\"button\"\n class=\"c-color-picker__preset-color\"\n [style.background-color]=\"color\"\n [class.c-color-picker__preset-color--selected]=\"getCurrentColor() === color\"\n (click)=\"selectColor(color)\"\n [title]=\"color\">\n </button>\n }\n </div>\n </div>\n }\n </div>\n </div>\n\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n", styles: [".c-color-picker{position:relative;width:100%}.c-color-picker__preview-wrapper{display:flex;align-items:center;gap:8px}.c-color-picker__preview{width:36px;height:36px;border-radius:6px;border:2px solid var(--color-border, #e0e0e0);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;flex-shrink:0}.c-color-picker__preview:hover:not(.c-color-picker__preview--disabled){border-color:var(--color-primary, #4783E1);box-shadow:0 0 0 2px #4783e133}.c-color-picker__preview--disabled{cursor:not-allowed;opacity:.6}.c-color-picker__text-input{flex:1;height:36px;padding:0 12px;font-size:14px;font-family:monospace;text-transform:uppercase;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;background-color:var(--color-background, #fff);transition:border-color .2s ease,box-shadow .2s ease}.c-color-picker__text-input:focus{outline:none;border-color:var(--color-primary, #4783E1);box-shadow:0 0 0 2px #4783e133}.c-color-picker__text-input--disabled{background-color:var(--color-disabled-bg, #f5f5f5);cursor:not-allowed;opacity:.6}.c-color-picker__text-input--error{border-color:var(--color-danger, #dc3545)}.c-color-picker__text-input--error:focus{box-shadow:0 0 0 2px #dc354533}.c-color-picker__native-input{width:36px;height:36px;padding:0;border:none;border-radius:6px;cursor:pointer;flex-shrink:0}.c-color-picker__native-input::-webkit-color-swatch-wrapper{padding:0}.c-color-picker__native-input::-webkit-color-swatch{border:2px solid var(--color-border, #e0e0e0);border-radius:6px}.c-color-picker__native-input:disabled{cursor:not-allowed;opacity:.6}.c-color-picker__dropdown{position:absolute;top:calc(100% + 8px);left:0;z-index:1000;background-color:var(--color-background, #fff);border:1px solid var(--color-border, #e0e0e0);border-radius:8px;box-shadow:0 4px 12px #00000026;padding:12px;min-width:200px}.c-color-picker__preset-colors{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.c-color-picker__preset-color{width:32px;height:32px;border:2px solid transparent;border-radius:6px;cursor:pointer;padding:0;transition:transform .15s ease,border-color .15s ease}.c-color-picker__preset-color:hover{transform:scale(1.1)}.c-color-picker__preset-color--selected{border-color:var(--color-text, #333);box-shadow:0 0 0 2px var(--color-background, #fff),0 0 0 4px var(--color-primary, #4783E1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
664
664
|
}
|
|
665
665
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ColorPickerFieldComponent, decorators: [{
|
|
666
666
|
type: Component,
|
|
@@ -828,13 +828,215 @@ class DateFieldComponent extends BaseFieldComponent {
|
|
|
828
828
|
}
|
|
829
829
|
}
|
|
830
830
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DateFieldComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
831
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DateFieldComponent, isStandalone: true, selector: "core-date-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <span class=\"c-entry-input\"\n [class.is-placeholder]=\"!formControl().value\"\n [class.is-invalid]=\"hasError()\">\n \n <input type=\"date\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"formControl()\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n (blur)=\"onBlurInput()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\">\n \n <button class=\"c-entry-input__addon icon-calendar-thin\" \n tabindex=\"-1\"\n type=\"button\"\n (click)=\"onCalendarClick($event)\"></button>\n\n \n </span>\n <core-field-errors [errors]=\"errors()\" />\n</label>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
831
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DateFieldComponent, isStandalone: true, selector: "core-date-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <span class=\"c-entry-input\"\n [class.is-placeholder]=\"!formControl().value\"\n [class.is-invalid]=\"hasError()\">\n \n <input type=\"date\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"formControl()\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n (blur)=\"onBlurInput()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\">\n \n <button class=\"c-entry-input__addon icon-calendar-thin\" \n tabindex=\"-1\"\n type=\"button\"\n (click)=\"onCalendarClick($event)\"></button>\n\n \n </span>\n <core-field-errors [errors]=\"errors()\" />\n</label>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
832
832
|
}
|
|
833
833
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DateFieldComponent, decorators: [{
|
|
834
834
|
type: Component,
|
|
835
835
|
args: [{ selector: 'core-date-field', standalone: true, imports: [CommonModule, FormsModule, TranslateModule, ReactiveFormsModule, FieldErrorsComponent], hostDirectives: [CoreHostDirective], template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <span class=\"c-entry-input\"\n [class.is-placeholder]=\"!formControl().value\"\n [class.is-invalid]=\"hasError()\">\n \n <input type=\"date\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"formControl()\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n (blur)=\"onBlurInput()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\">\n \n <button class=\"c-entry-input__addon icon-calendar-thin\" \n tabindex=\"-1\"\n type=\"button\"\n (click)=\"onCalendarClick($event)\"></button>\n\n \n </span>\n <core-field-errors [errors]=\"errors()\" />\n</label>\n" }]
|
|
836
836
|
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
837
837
|
|
|
838
|
+
class DateRangeFieldComponent extends BaseFieldComponent {
|
|
839
|
+
elementRef;
|
|
840
|
+
isStartPickerOpen = false;
|
|
841
|
+
isEndPickerOpen = false;
|
|
842
|
+
startDateControl = signal(new FormControl(''));
|
|
843
|
+
endDateControl = signal(new FormControl(''));
|
|
844
|
+
startDateValue = signal(null);
|
|
845
|
+
endDateValue = signal(null);
|
|
846
|
+
minDate = computed(() => {
|
|
847
|
+
const fieldCfg = this.field();
|
|
848
|
+
const dateConfig = fieldCfg.dateRangeConfig;
|
|
849
|
+
if (dateConfig?.allowPastDates === false) {
|
|
850
|
+
const today = new Date();
|
|
851
|
+
return today.toISOString().split('T')[0];
|
|
852
|
+
}
|
|
853
|
+
return dateConfig?.minDate || null;
|
|
854
|
+
});
|
|
855
|
+
maxDate = computed(() => {
|
|
856
|
+
const fieldCfg = this.field();
|
|
857
|
+
const dateConfig = fieldCfg.dateRangeConfig;
|
|
858
|
+
if (dateConfig?.allowFutureDates === false) {
|
|
859
|
+
const today = new Date();
|
|
860
|
+
return today.toISOString().split('T')[0];
|
|
861
|
+
}
|
|
862
|
+
return dateConfig?.maxDate || null;
|
|
863
|
+
});
|
|
864
|
+
endMinDate = computed(() => {
|
|
865
|
+
const startValue = this.startDateValue();
|
|
866
|
+
if (startValue) {
|
|
867
|
+
return startValue;
|
|
868
|
+
}
|
|
869
|
+
return this.minDate();
|
|
870
|
+
});
|
|
871
|
+
startMaxDate = computed(() => {
|
|
872
|
+
const endValue = this.endDateValue();
|
|
873
|
+
if (endValue) {
|
|
874
|
+
return endValue;
|
|
875
|
+
}
|
|
876
|
+
return this.maxDate();
|
|
877
|
+
});
|
|
878
|
+
startDateLabel = computed(() => {
|
|
879
|
+
const fieldCfg = this.field();
|
|
880
|
+
return fieldCfg.dateRangeConfig?.startDateLabel || 'daterange.startDate';
|
|
881
|
+
});
|
|
882
|
+
endDateLabel = computed(() => {
|
|
883
|
+
const fieldCfg = this.field();
|
|
884
|
+
return fieldCfg.dateRangeConfig?.endDateLabel || 'daterange.endDate';
|
|
885
|
+
});
|
|
886
|
+
constructor(elementRef) {
|
|
887
|
+
super();
|
|
888
|
+
this.elementRef = elementRef;
|
|
889
|
+
effect(() => {
|
|
890
|
+
const shouldDisable = this.mode() === ModalMode.VIEW || this.evaluateReadonly();
|
|
891
|
+
const startControl = this.startDateControl();
|
|
892
|
+
const endControl = this.endDateControl();
|
|
893
|
+
if (shouldDisable) {
|
|
894
|
+
if (startControl.enabled)
|
|
895
|
+
startControl.disable();
|
|
896
|
+
if (endControl.enabled)
|
|
897
|
+
endControl.disable();
|
|
898
|
+
}
|
|
899
|
+
else {
|
|
900
|
+
if (startControl.disabled)
|
|
901
|
+
startControl.enable();
|
|
902
|
+
if (endControl.disabled)
|
|
903
|
+
endControl.enable();
|
|
904
|
+
}
|
|
905
|
+
});
|
|
906
|
+
}
|
|
907
|
+
initializeFormControl() {
|
|
908
|
+
const modeConfig = this.field().modes?.[this.mode()];
|
|
909
|
+
const validators = modeConfig?.validators ?? this.field().validators ?? [];
|
|
910
|
+
let initialValue = this.value();
|
|
911
|
+
const startDate = this.formatDateValue(initialValue?.startDate);
|
|
912
|
+
const endDate = this.formatDateValue(initialValue?.endDate);
|
|
913
|
+
this.startDateValue.set(startDate || null);
|
|
914
|
+
this.endDateValue.set(endDate || null);
|
|
915
|
+
this.startDateControl.set(new FormControl(startDate, validators));
|
|
916
|
+
this.endDateControl.set(new FormControl(endDate, validators));
|
|
917
|
+
this.formControl.set(new FormControl(initialValue, validators));
|
|
918
|
+
this.startDateControl().valueChanges.subscribe(() => this.emitValueChange());
|
|
919
|
+
this.endDateControl().valueChanges.subscribe(() => this.emitValueChange());
|
|
920
|
+
}
|
|
921
|
+
formatDateValue(value) {
|
|
922
|
+
if (!value)
|
|
923
|
+
return '';
|
|
924
|
+
if (typeof value === 'string') {
|
|
925
|
+
const date = new Date(value);
|
|
926
|
+
if (!isNaN(date.getTime())) {
|
|
927
|
+
return date.toISOString().split('T')[0];
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
return value || '';
|
|
931
|
+
}
|
|
932
|
+
emitValueChange() {
|
|
933
|
+
const startDate = this.startDateControl().value || null;
|
|
934
|
+
const endDate = this.endDateControl().value || null;
|
|
935
|
+
this.startDateValue.set(startDate);
|
|
936
|
+
this.endDateValue.set(endDate);
|
|
937
|
+
if (startDate && endDate && startDate > endDate) {
|
|
938
|
+
this.endDateControl().setValue('', { emitEvent: false });
|
|
939
|
+
this.endDateValue.set(null);
|
|
940
|
+
}
|
|
941
|
+
const rangeValue = {
|
|
942
|
+
startDate: this.startDateControl().value || null,
|
|
943
|
+
endDate: this.endDateControl().value || null
|
|
944
|
+
};
|
|
945
|
+
this.formControl().setValue(rangeValue, { emitEvent: false });
|
|
946
|
+
this.valueChange.emit(rangeValue);
|
|
947
|
+
}
|
|
948
|
+
ngAfterViewInit() {
|
|
949
|
+
this.initializeDateInputs();
|
|
950
|
+
}
|
|
951
|
+
ngOnDestroy() {
|
|
952
|
+
this.removeDateInputListeners();
|
|
953
|
+
}
|
|
954
|
+
initializeDateInputs() {
|
|
955
|
+
const inputs = this.elementRef.nativeElement.querySelectorAll('input[type="date"]');
|
|
956
|
+
inputs.forEach((input) => {
|
|
957
|
+
input.addEventListener('blur', () => {
|
|
958
|
+
this.isStartPickerOpen = false;
|
|
959
|
+
this.isEndPickerOpen = false;
|
|
960
|
+
});
|
|
961
|
+
input.addEventListener('change', () => {
|
|
962
|
+
this.isStartPickerOpen = false;
|
|
963
|
+
this.isEndPickerOpen = false;
|
|
964
|
+
});
|
|
965
|
+
input.addEventListener('input', (e) => this.updateHasValue(e));
|
|
966
|
+
this.updateHasValue({ target: input });
|
|
967
|
+
});
|
|
968
|
+
}
|
|
969
|
+
removeDateInputListeners() {
|
|
970
|
+
const inputs = this.elementRef.nativeElement.querySelectorAll('input[type="date"]');
|
|
971
|
+
inputs.forEach((input) => {
|
|
972
|
+
input.removeEventListener('blur', () => { });
|
|
973
|
+
input.removeEventListener('change', () => { });
|
|
974
|
+
input.removeEventListener('input', (e) => this.updateHasValue(e));
|
|
975
|
+
});
|
|
976
|
+
}
|
|
977
|
+
showDatePicker(input) {
|
|
978
|
+
try {
|
|
979
|
+
if (input.showPicker && typeof input.showPicker === 'function') {
|
|
980
|
+
input.showPicker();
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
catch (error) {
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
updateHasValue(event) {
|
|
987
|
+
const target = event.target;
|
|
988
|
+
if (target?.value) {
|
|
989
|
+
target.classList.add('has-value');
|
|
990
|
+
}
|
|
991
|
+
else {
|
|
992
|
+
target?.classList.remove('has-value');
|
|
993
|
+
}
|
|
994
|
+
}
|
|
995
|
+
onBlurInput() {
|
|
996
|
+
this.onBlur();
|
|
997
|
+
}
|
|
998
|
+
onStartCalendarClick(event) {
|
|
999
|
+
event.preventDefault();
|
|
1000
|
+
event.stopPropagation();
|
|
1001
|
+
const button = event.target;
|
|
1002
|
+
const input = button?.closest('.c-entry-input')?.querySelector('input[type="date"]');
|
|
1003
|
+
if (input) {
|
|
1004
|
+
if (this.isStartPickerOpen) {
|
|
1005
|
+
input.blur();
|
|
1006
|
+
this.isStartPickerOpen = false;
|
|
1007
|
+
}
|
|
1008
|
+
else {
|
|
1009
|
+
input.focus();
|
|
1010
|
+
this.showDatePicker(input);
|
|
1011
|
+
this.isStartPickerOpen = true;
|
|
1012
|
+
}
|
|
1013
|
+
}
|
|
1014
|
+
}
|
|
1015
|
+
onEndCalendarClick(event) {
|
|
1016
|
+
event.preventDefault();
|
|
1017
|
+
event.stopPropagation();
|
|
1018
|
+
const button = event.target;
|
|
1019
|
+
const input = button?.closest('.c-entry-input')?.querySelector('input[type="date"]');
|
|
1020
|
+
if (input) {
|
|
1021
|
+
if (this.isEndPickerOpen) {
|
|
1022
|
+
input.blur();
|
|
1023
|
+
this.isEndPickerOpen = false;
|
|
1024
|
+
}
|
|
1025
|
+
else {
|
|
1026
|
+
input.focus();
|
|
1027
|
+
this.showDatePicker(input);
|
|
1028
|
+
this.isEndPickerOpen = true;
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DateRangeFieldComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1033
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DateRangeFieldComponent, isStandalone: true, selector: "core-daterange-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <div class=\"c-daterange\">\n <div class=\"c-daterange__field\">\n <span class=\"c-entry-input\"\n [class.is-placeholder]=\"!startDateControl().value\"\n [class.is-invalid]=\"hasError()\">\n \n <input type=\"date\"\n [id]=\"field().key.toString() + '_start'\"\n [name]=\"field().key.toString() + '_start'\"\n [formControl]=\"startDateControl()\"\n [min]=\"minDate()\"\n [max]=\"startMaxDate()\"\n (blur)=\"onBlurInput()\"\n [placeholder]=\"(startDateLabel() | translate)\">\n \n <button class=\"c-entry-input__addon icon-calendar-thin\" \n tabindex=\"-1\"\n type=\"button\"\n (click)=\"onStartCalendarClick($event)\"></button>\n </span>\n </div>\n\n <span class=\"c-daterange__separator\">\u2192</span>\n\n <div class=\"c-daterange__field\">\n <span class=\"c-entry-input\"\n [class.is-placeholder]=\"!endDateControl().value\"\n [class.is-invalid]=\"hasError()\">\n \n <input type=\"date\"\n [id]=\"field().key.toString() + '_end'\"\n [name]=\"field().key.toString() + '_end'\"\n [formControl]=\"endDateControl()\"\n [min]=\"endMinDate()\"\n [max]=\"maxDate()\"\n (blur)=\"onBlurInput()\"\n [placeholder]=\"(endDateLabel() | translate)\">\n \n <button class=\"c-entry-input__addon icon-calendar-thin\" \n tabindex=\"-1\"\n type=\"button\"\n (click)=\"onEndCalendarClick($event)\"></button>\n </span>\n </div>\n </div>\n \n <core-field-errors [errors]=\"errors()\" />\n</label>\n", styles: [".c-daterange{display:flex;align-items:center;gap:.5rem}.c-daterange__field{flex:1;min-width:0}.c-daterange__separator{color:var(--color-text-secondary, #6b7280);font-size:1rem;flex-shrink:0;padding:0 .25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
1034
|
+
}
|
|
1035
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DateRangeFieldComponent, decorators: [{
|
|
1036
|
+
type: Component,
|
|
1037
|
+
args: [{ selector: 'core-daterange-field', standalone: true, imports: [CommonModule, FormsModule, TranslateModule, ReactiveFormsModule, FieldErrorsComponent], hostDirectives: [CoreHostDirective], template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <div class=\"c-daterange\">\n <div class=\"c-daterange__field\">\n <span class=\"c-entry-input\"\n [class.is-placeholder]=\"!startDateControl().value\"\n [class.is-invalid]=\"hasError()\">\n \n <input type=\"date\"\n [id]=\"field().key.toString() + '_start'\"\n [name]=\"field().key.toString() + '_start'\"\n [formControl]=\"startDateControl()\"\n [min]=\"minDate()\"\n [max]=\"startMaxDate()\"\n (blur)=\"onBlurInput()\"\n [placeholder]=\"(startDateLabel() | translate)\">\n \n <button class=\"c-entry-input__addon icon-calendar-thin\" \n tabindex=\"-1\"\n type=\"button\"\n (click)=\"onStartCalendarClick($event)\"></button>\n </span>\n </div>\n\n <span class=\"c-daterange__separator\">\u2192</span>\n\n <div class=\"c-daterange__field\">\n <span class=\"c-entry-input\"\n [class.is-placeholder]=\"!endDateControl().value\"\n [class.is-invalid]=\"hasError()\">\n \n <input type=\"date\"\n [id]=\"field().key.toString() + '_end'\"\n [name]=\"field().key.toString() + '_end'\"\n [formControl]=\"endDateControl()\"\n [min]=\"endMinDate()\"\n [max]=\"maxDate()\"\n (blur)=\"onBlurInput()\"\n [placeholder]=\"(endDateLabel() | translate)\">\n \n <button class=\"c-entry-input__addon icon-calendar-thin\" \n tabindex=\"-1\"\n type=\"button\"\n (click)=\"onEndCalendarClick($event)\"></button>\n </span>\n </div>\n </div>\n \n <core-field-errors [errors]=\"errors()\" />\n</label>\n", styles: [".c-daterange{display:flex;align-items:center;gap:.5rem}.c-daterange__field{flex:1;min-width:0}.c-daterange__separator{color:var(--color-text-secondary, #6b7280);font-size:1rem;flex-shrink:0;padding:0 .25rem}\n"] }]
|
|
1038
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
1039
|
+
|
|
838
1040
|
var TimeInterval;
|
|
839
1041
|
(function (TimeInterval) {
|
|
840
1042
|
TimeInterval["MINUTES_15"] = "15_MINUTES";
|
|
@@ -1112,7 +1314,7 @@ class DatetimeFieldComponent {
|
|
|
1112
1314
|
}
|
|
1113
1315
|
}
|
|
1114
1316
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DatetimeFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1115
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DatetimeFieldComponent, isStandalone: true, selector: "core-datetime-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: false, transformFunction: null }, formValue: { classPropertyName: "formValue", publicName: "formValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", onBlurEvent: "onBlurEvent", onEnterEvent: "onEnterEvent" }, usesOnChanges: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <label class=\"c-entry-text\" *ngIf=\"field().label\" [for]=\"field().key.toString()\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </label>\n <div class=\"c-entry-datetime\">\n <span class=\"c-entry-input\" [class.is-invalid]=\"hasError()\">\n <input\n type=\"date\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [value]=\"formattedDate()\"\n [disabled]=\"isDisabled()\"\n (input)=\"onDateChange($event)\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"onEnter($any($event))\"\n />\n <button class=\"c-entry-input__addon icon-calendar-thin\" \n tabindex=\"-1\"\n type=\"button\"\n (click)=\"onCalendarClick($event)\"></button>\n </span>\n <span class=\"c-entry-input c-entry-input--ng-select\" [class.is-invalid]=\"hasError()\">\n <ng-select\n [items]=\"hoursOptions()\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [ngModel]=\"selectedHour()\"\n (ngModelChange)=\"onHourChange($event)\"\n [disabled]=\"isDisabled()\"\n [clearable]=\"false\"\n [searchable]=\"false\"\n (blur)=\"onBlur()\"\n [placeholder]=\"isHourPlaceholderVisible() ? 'HH' : ''\"\n >\n <ng-template ng-option-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n </ng-select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </span>\n <span class=\"c-entry-datetime__separator\">:</span>\n <span class=\"c-entry-input c-entry-input--ng-select\" [class.is-invalid]=\"hasError()\">\n <ng-select\n [items]=\"minutesOptions()\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [ngModel]=\"selectedMinute()\"\n (ngModelChange)=\"onMinuteChange($event)\"\n [disabled]=\"isDisabled()\"\n [clearable]=\"false\"\n [searchable]=\"false\"\n (blur)=\"onBlur()\"\n [placeholder]=\"isMinutePlaceholderVisible() ? 'MM' : ''\"\n >\n <ng-template ng-option-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n </ng-select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </span>\n </div>\n <core-field-errors [errors]=\"errors()\" />\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
1317
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DatetimeFieldComponent, isStandalone: true, selector: "core-datetime-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: false, transformFunction: null }, formValue: { classPropertyName: "formValue", publicName: "formValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", onBlurEvent: "onBlurEvent", onEnterEvent: "onEnterEvent" }, usesOnChanges: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <label class=\"c-entry-text\" *ngIf=\"field().label\" [for]=\"field().key.toString()\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </label>\n <div class=\"c-entry-datetime\">\n <span class=\"c-entry-input\" [class.is-invalid]=\"hasError()\">\n <input\n type=\"date\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [value]=\"formattedDate()\"\n [disabled]=\"isDisabled()\"\n (input)=\"onDateChange($event)\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"onEnter($any($event))\"\n />\n <button class=\"c-entry-input__addon icon-calendar-thin\" \n tabindex=\"-1\"\n type=\"button\"\n (click)=\"onCalendarClick($event)\"></button>\n </span>\n <span class=\"c-entry-input c-entry-input--ng-select\" [class.is-invalid]=\"hasError()\">\n <ng-select\n [items]=\"hoursOptions()\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [ngModel]=\"selectedHour()\"\n (ngModelChange)=\"onHourChange($event)\"\n [disabled]=\"isDisabled()\"\n [clearable]=\"false\"\n [searchable]=\"false\"\n (blur)=\"onBlur()\"\n [placeholder]=\"isHourPlaceholderVisible() ? 'HH' : ''\"\n >\n <ng-template ng-option-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n </ng-select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </span>\n <span class=\"c-entry-datetime__separator\">:</span>\n <span class=\"c-entry-input c-entry-input--ng-select\" [class.is-invalid]=\"hasError()\">\n <ng-select\n [items]=\"minutesOptions()\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [ngModel]=\"selectedMinute()\"\n (ngModelChange)=\"onMinuteChange($event)\"\n [disabled]=\"isDisabled()\"\n [clearable]=\"false\"\n [searchable]=\"false\"\n (blur)=\"onBlur()\"\n [placeholder]=\"isMinutePlaceholderVisible() ? 'MM' : ''\"\n >\n <ng-template ng-option-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n </ng-select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </span>\n </div>\n <core-field-errors [errors]=\"errors()\" />\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "tabFocusOnClearButton", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i5.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i5.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
1116
1318
|
}
|
|
1117
1319
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DatetimeFieldComponent, decorators: [{
|
|
1118
1320
|
type: Component,
|
|
@@ -1273,7 +1475,7 @@ class DocumentFieldComponent extends BaseFieldComponent {
|
|
|
1273
1475
|
return this.fieldConfig().documentNumberPlaceholder || 'Ingrese el número de documento';
|
|
1274
1476
|
}
|
|
1275
1477
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DocumentFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1276
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DocumentFieldComponent, isStandalone: true, selector: "core-document-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-entry-group\">\n <label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n <div class=\"c-entry-grid\">\n <span class=\"c-entry-select\" [style.--chars]=\"documentTypeChars()\">\n <select \n [value]=\"documentTypeControl.value\"\n [disabled]=\"isDisabled()\"\n (focus)=\"onDocumentTypeFocus()\"\n (change)=\"onDocumentTypeChange($event)\"\n (blur)=\"onDocumentTypeBlur()\">\n <option value=\"\" disabled>{{ getDocumentTypePlaceholder() | translate }}</option>\n @for (option of documentTypeOptions(); track option.value) {\n <option [value]=\"option.value\">{{ option.label | translate }}</option>\n }\n </select>\n <span class=\"c-entry-select__arrow icon-arrow-down\"></span>\n </span>\n <span class=\"c-entry-input\" [style.--chars]=\"documentNumberChars()\">\n <input \n type=\"text\" \n [value]=\"documentNumberControl.value\"\n [placeholder]=\"getDocumentNumberPlaceholder() | translate\"\n [disabled]=\"isDisabled()\"\n (focus)=\"onDocumentNumberFocus()\"\n (input)=\"onDocumentNumberChange($event)\"\n (blur)=\"onDocumentNumberBlur()\">\n </span>\n </div>\n @if (hasError()) {\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n }\n </label>\n</div>\n\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
1478
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DocumentFieldComponent, isStandalone: true, selector: "core-document-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-entry-group\">\n <label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n <div class=\"c-entry-grid\">\n <span class=\"c-entry-select\" [style.--chars]=\"documentTypeChars()\">\n <select \n [value]=\"documentTypeControl.value\"\n [disabled]=\"isDisabled()\"\n (focus)=\"onDocumentTypeFocus()\"\n (change)=\"onDocumentTypeChange($event)\"\n (blur)=\"onDocumentTypeBlur()\">\n <option value=\"\" disabled>{{ getDocumentTypePlaceholder() | translate }}</option>\n @for (option of documentTypeOptions(); track option.value) {\n <option [value]=\"option.value\">{{ option.label | translate }}</option>\n }\n </select>\n <span class=\"c-entry-select__arrow icon-arrow-down\"></span>\n </span>\n <span class=\"c-entry-input\" [style.--chars]=\"documentNumberChars()\">\n <input \n type=\"text\" \n [value]=\"documentNumberControl.value\"\n [placeholder]=\"getDocumentNumberPlaceholder() | translate\"\n [disabled]=\"isDisabled()\"\n (focus)=\"onDocumentNumberFocus()\"\n (input)=\"onDocumentNumberChange($event)\"\n (blur)=\"onDocumentNumberBlur()\">\n </span>\n </div>\n @if (hasError()) {\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n }\n </label>\n</div>\n\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
1277
1479
|
}
|
|
1278
1480
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DocumentFieldComponent, decorators: [{
|
|
1279
1481
|
type: Component,
|
|
@@ -2226,7 +2428,7 @@ class FileFieldComponent extends BaseFieldComponent {
|
|
|
2226
2428
|
this.onBlur();
|
|
2227
2429
|
}
|
|
2228
2430
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FileFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2229
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: FileFieldComponent, isStandalone: true, selector: "core-file-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n @if (field().label) {\n <span class=\"c-entry-text\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n }\n <div class=\"c-entry-file\" [class.has-error]=\"hasError()\">\n @if(fieldConfig().multiple || isEditMode() || allFiles().length === 0) {\n <label class=\"c-entry-file__label\">\n <span class=\"icon-upload c-entry-file__icon\"></span>\n <input\n type=\"file\"\n class=\"c-entry-file__input\"\n (change)=\"onFileSelected($event)\"\n [accept]=\"fieldConfig().accept\"\n [multiple]=\"fieldConfig().multiple\"\n (blur)=\"onBlurInput()\"\n [readonly]=\"isReadonly()\"\n >\n {{ fieldConfig().placeholder ?? fieldConfig().label | translate }}\n @if(fieldConfig().acceptString) {\n <br>\n <span class=\"c-entry-file__filename\" id=\"file-name\">{{ fieldConfig().acceptString }}</span>\n }\n </label>\n }\n\n @if (allFiles().length > 0) {\n <div class=\"c-attachments\">\n <p class=\"c-entry-text\">{{ 'files.attachedFiles' | translate }}</p>\n \n <ul class=\"c-attachments__list\">\n @for (file of allFiles(); track $index; let i = $index) {\n <li class=\"c-attachments__item\">\n <div class=\"c-bulleted-text\">\n @if(!isServerFile(file)) {\n <time>{{ getCurrentDate() }}</time>\n <span>{{ getCurrentUser() }}</span>\n }\n </div>\n \n <div class=\"c-attachments__holder\">\n @if(!isServerFile(file) && file.type.startsWith('image/') && fieldConfig().showPreview !== false) {\n <div class=\"c-attachments__content\">\n <div class=\"c-attachments__pic\">\n @if(isPreviewFile(file) && getOriginalUrl(file)) {\n <core-image-preview\n [src]=\"getOriginalUrl(file)!\"\n [alt]=\"file.name\"\n ></core-image-preview>\n } @else if(getPreviewUrl(file)) {\n <core-image-preview\n [src]=\"getPreviewUrl(file)!\"\n [alt]=\"file.name\"\n ></core-image-preview>\n }\n </div>\n <div class=\"c-attachments__text\">\n <span class=\"c-attachments__name-file\">{{ file.name }}</span>\n <span class=\"c-attachments__file-size\">({{ formatFileSize(file.size) }})</span>\n </div>\n </div>\n } @else {\n <a class=\"c-attachments__content\">\n @if(isServerFile(file)) {\n <span class=\"icon-file\"></span>\n {{ file.filename }}\n } @else {\n <span [class]=\"getFileIcon(file)\"></span>\n <div class=\"c-attachments__text\">\n <span class=\"c-attachments__name-file\">{{ file.name }}</span>\n <span class=\"c-attachments__file-size\">({{ formatFileSize(file.size) }})</span>\n </div>\n }\n </a>\n }\n\n <div class=\"c-attachments__actions u-flex u-flex--wrap\">\n <button \n type=\"button\" \n class=\"c-link context:error\" \n (click)=\"removeFile(i)\"\n [title]=\"'files.remove' | translate\"\n >\n <span class=\"icon-delete\"></span>\n {{ 'files.remove' | translate }}\n </button>\n\n @if(fieldConfig().customActions) {\n @for(action of fieldConfig().customActions; track action.id) {\n <button \n type=\"button\"\n class=\"c-link c-link--underlined\" \n (click)=\"action.action(file)\"\n [title]=\"action.label | translate\"\n >\n {{ action.label | translate }}\n <span [ngClass]=\"action.icon | coreIconCompat\"></span>\n </button>\n }\n }\n </div>\n </div>\n </li>\n }\n </ul>\n </div>\n }\n </div>\n <core-field-errors [errors]=\"errors()\" />\n @if(displayErrorMessage()) {\n <span class=\"c-entry-error\">{{ displayErrorMessage()!.key | translate:displayErrorMessage()!.params }}</span>\n }\n</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
2431
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: FileFieldComponent, isStandalone: true, selector: "core-file-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n @if (field().label) {\n <span class=\"c-entry-text\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n }\n <div class=\"c-entry-file\" [class.has-error]=\"hasError()\">\n @if(fieldConfig().multiple || isEditMode() || allFiles().length === 0) {\n <label class=\"c-entry-file__label\">\n <span class=\"icon-upload c-entry-file__icon\"></span>\n <input\n type=\"file\"\n class=\"c-entry-file__input\"\n (change)=\"onFileSelected($event)\"\n [accept]=\"fieldConfig().accept\"\n [multiple]=\"fieldConfig().multiple\"\n (blur)=\"onBlurInput()\"\n [readonly]=\"isReadonly()\"\n >\n {{ fieldConfig().placeholder ?? fieldConfig().label | translate }}\n @if(fieldConfig().acceptString) {\n <br>\n <span class=\"c-entry-file__filename\" id=\"file-name\">{{ fieldConfig().acceptString }}</span>\n }\n </label>\n }\n\n @if (allFiles().length > 0) {\n <div class=\"c-attachments\">\n <p class=\"c-entry-text\">{{ 'files.attachedFiles' | translate }}</p>\n \n <ul class=\"c-attachments__list\">\n @for (file of allFiles(); track $index; let i = $index) {\n <li class=\"c-attachments__item\">\n <div class=\"c-bulleted-text\">\n @if(!isServerFile(file)) {\n <time>{{ getCurrentDate() }}</time>\n <span>{{ getCurrentUser() }}</span>\n }\n </div>\n \n <div class=\"c-attachments__holder\">\n @if(!isServerFile(file) && file.type.startsWith('image/') && fieldConfig().showPreview !== false) {\n <div class=\"c-attachments__content\">\n <div class=\"c-attachments__pic\">\n @if(isPreviewFile(file) && getOriginalUrl(file)) {\n <core-image-preview\n [src]=\"getOriginalUrl(file)!\"\n [alt]=\"file.name\"\n ></core-image-preview>\n } @else if(getPreviewUrl(file)) {\n <core-image-preview\n [src]=\"getPreviewUrl(file)!\"\n [alt]=\"file.name\"\n ></core-image-preview>\n }\n </div>\n <div class=\"c-attachments__text\">\n <span class=\"c-attachments__name-file\">{{ file.name }}</span>\n <span class=\"c-attachments__file-size\">({{ formatFileSize(file.size) }})</span>\n </div>\n </div>\n } @else {\n <a class=\"c-attachments__content\">\n @if(isServerFile(file)) {\n <span class=\"icon-file\"></span>\n {{ file.filename }}\n } @else {\n <span [class]=\"getFileIcon(file)\"></span>\n <div class=\"c-attachments__text\">\n <span class=\"c-attachments__name-file\">{{ file.name }}</span>\n <span class=\"c-attachments__file-size\">({{ formatFileSize(file.size) }})</span>\n </div>\n }\n </a>\n }\n\n <div class=\"c-attachments__actions u-flex u-flex--wrap\">\n <button \n type=\"button\" \n class=\"c-link context:error\" \n (click)=\"removeFile(i)\"\n [title]=\"'files.remove' | translate\"\n >\n <span class=\"icon-delete\"></span>\n {{ 'files.remove' | translate }}\n </button>\n\n @if(fieldConfig().customActions) {\n @for(action of fieldConfig().customActions; track action.id) {\n <button \n type=\"button\"\n class=\"c-link c-link--underlined\" \n (click)=\"action.action(file)\"\n [title]=\"action.label | translate\"\n >\n {{ action.label | translate }}\n <span [ngClass]=\"action.icon | coreIconCompat\"></span>\n </button>\n }\n }\n </div>\n </div>\n </li>\n }\n </ul>\n </div>\n }\n </div>\n <core-field-errors [errors]=\"errors()\" />\n @if(displayErrorMessage()) {\n <span class=\"c-entry-error\">{{ displayErrorMessage()!.key | translate:displayErrorMessage()!.params }}</span>\n }\n</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }, { kind: "component", type: ImagePreviewComponent, selector: "core-image-preview", inputs: ["src", "alt", "title", "width", "height", "objectFit", "borderRadius", "cursor", "loading", "isRelative", "showSkeleton", "skeletonAnimation"] }] });
|
|
2230
2432
|
}
|
|
2231
2433
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FileFieldComponent, decorators: [{
|
|
2232
2434
|
type: Component,
|
|
@@ -2420,7 +2622,7 @@ class NumberFieldComponent extends BaseFieldComponent {
|
|
|
2420
2622
|
this.onBlur();
|
|
2421
2623
|
}
|
|
2422
2624
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NumberFieldComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2423
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: NumberFieldComponent, isStandalone: true, selector: "core-number-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!--\n \u2705! Solcre: Detalles para Ambos tipos de inputs implementados:\n \u2705 title y aria-label de los botones - Ahora usan traducciones din\u00E1micas\n \u2705 style=\"--chars: XXX\" - Implementado con getCharsWidth()\n \u2705 Bot\u00F3n de Sumar chequea el atributo max - Implementado isIncrementDisabled()\n \u2705 Bot\u00F3n de Restar chequea el atributo min - Implementado isDecrementDisabled()\n \u2705 Estado disabled agregado (disabled y .is-disabled) - Implementado isDisabled()\n \u2705 Atributos min/max agregados a los inputs\n (?) El .c-entry-stepper o .c-entry-input deber\u00EDa ser un componente en s\u00ED mismo (No me queda claro esto)\n -->\n\n @if (fieldType() === NumberFieldConfigType.OUTSIDE) {\n\n <div class=\"c-entry-stepper\" \n [style.--chars]=\"getCharsWidth()\"\n [class.is-disabled]=\"isDisabled()\">\n\n <button class=\"c-entry-stepper__control icon-counter-down js-input-number-control\"\n type=\"button\"\n [disabled]=\"isDecrementDisabled()\"\n (click)=\"onControlClick(-1)\"\n (mousedown)=\"handleMouseDown($event, -1)\"\n (mouseup)=\"handleMouseUp($event)\"\n (mouseleave)=\"handleMouseUp($event)\"\n (touchstart)=\"handleTouchStart($event, -1)\"\n (touchend)=\"handleTouchEnd($event)\"\n (touchcancel)=\"handleTouchEnd($event)\"\n [title]=\"'number-field.decrement' | translate\"\n [attr.aria-label]=\"'number-field.decrement' | translate\"\n tabindex=\"-1\"></button>\n\n <input class=\"c-entry-input\"\n type=\"number\"\n [min]=\"getMinValue()\"\n [max]=\"getMaxValue()\"\n inputmode=\"numeric\"\n [class.is-invalid]=\"hasError()\"\n [class.is-disabled]=\"isDisabled() || getDisableInput()\"\n [class.is-readonly]=\"isReadonly()\"\n [readonly]=\"isReadonly()\"\n [style.pointer-events]=\"!getCanUseInput() ? 'none' : 'auto'\"\n [style.user-select]=\"!getCanUseInput() ? 'none' : 'auto'\"\n \n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"formControl()\"\n (blur)=\"onBlurInput()\"\n (keydown)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (keypress)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (keyup)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (input)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (paste)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (drop)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n [placeholder]=\"(field().placeholder ?? '') | translate\">\n\n <button class=\"c-entry-stepper__control icon-counter-up js-input-number-control\"\n type=\"button\"\n [disabled]=\"isIncrementDisabled()\"\n (click)=\"onControlClick(1)\"\n (mousedown)=\"handleMouseDown($event, 1)\"\n (mouseup)=\"handleMouseUp($event)\"\n (mouseleave)=\"handleMouseUp($event)\"\n (touchstart)=\"handleTouchStart($event, 1)\"\n (touchend)=\"handleTouchEnd($event)\"\n (touchcancel)=\"handleTouchEnd($event)\"\n [title]=\"'number-field.increment' | translate\"\n [attr.aria-label]=\"'number-field.increment' | translate\"\n tabindex=\"-1\"></button>\n </div>\n \n } @else {\n\n <label class=\"c-entry-input\"\n [style.--chars]=\"getCharsWidth()\"\n [class.is-invalid]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\">\n <span *ngIf=\"iconClass()\" class=\"{{ iconClass() | coreIconCompat }}\"></span>\n\n <input\n type=\"number\"\n [min]=\"getMinValue()\"\n [max]=\"getMaxValue()\"\n inputmode=\"decimal\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-readonly]=\"isReadonly()\"\n [readonly]=\"!getCanUseInput()\"\n [style.pointer-events]=\"!getCanUseInput() ? 'none' : 'auto'\"\n [style.user-select]=\"!getCanUseInput() ? 'none' : 'auto'\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"formControl()\"\n (blur)=\"onBlurInput()\"\n (keydown)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (keypress)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (keyup)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (input)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (paste)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (drop)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n />\n\n <span class=\"c-entry-number-controls\">\n <button class=\"icon-arrow-up js-input-number-control\"\n type=\"button\"\n [disabled]=\"isIncrementDisabled()\"\n (click)=\"onControlClick(1)\"\n (mousedown)=\"handleMouseDown($event, 1)\"\n (mouseup)=\"handleMouseUp($event)\"\n (mouseleave)=\"handleMouseUp($event)\"\n (touchstart)=\"handleTouchStart($event, 1)\"\n (touchend)=\"handleTouchEnd($event)\"\n (touchcancel)=\"handleTouchEnd($event)\"\n [title]=\"'number-field.increment' | translate\"\n [attr.aria-label]=\"'number-field.increment' | translate\"\n tabindex=\"-1\"\n ></button>\n <button class=\"icon-arrow-down js-input-number-control\"\n type=\"button\"\n [disabled]=\"isDecrementDisabled()\"\n (click)=\"onControlClick(-1)\"\n (mousedown)=\"handleMouseDown($event, -1)\"\n (mouseup)=\"handleMouseUp($event)\"\n (mouseleave)=\"handleMouseUp($event)\"\n (touchstart)=\"handleTouchStart($event, -1)\"\n (touchend)=\"handleTouchEnd($event)\"\n (touchcancel)=\"handleTouchEnd($event)\"\n [title]=\"'number-field.decrement' | translate\"\n [attr.aria-label]=\"'number-field.decrement' | translate\"\n tabindex=\"-1\"\n ></button>\n </span>\n </label>\n }\n <core-field-errors [errors]=\"errors()\" />\n</div> <!-- .c-entry-item -->\n", styles: [".c-entry-input.is-readonly,.c-entry-stepper .c-entry-input.is-readonly{cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
2625
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: NumberFieldComponent, isStandalone: true, selector: "core-number-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!--\n \u2705! Solcre: Detalles para Ambos tipos de inputs implementados:\n \u2705 title y aria-label de los botones - Ahora usan traducciones din\u00E1micas\n \u2705 style=\"--chars: XXX\" - Implementado con getCharsWidth()\n \u2705 Bot\u00F3n de Sumar chequea el atributo max - Implementado isIncrementDisabled()\n \u2705 Bot\u00F3n de Restar chequea el atributo min - Implementado isDecrementDisabled()\n \u2705 Estado disabled agregado (disabled y .is-disabled) - Implementado isDisabled()\n \u2705 Atributos min/max agregados a los inputs\n (?) El .c-entry-stepper o .c-entry-input deber\u00EDa ser un componente en s\u00ED mismo (No me queda claro esto)\n -->\n\n @if (fieldType() === NumberFieldConfigType.OUTSIDE) {\n\n <div class=\"c-entry-stepper\" \n [style.--chars]=\"getCharsWidth()\"\n [class.is-disabled]=\"isDisabled()\">\n\n <button class=\"c-entry-stepper__control icon-counter-down js-input-number-control\"\n type=\"button\"\n [disabled]=\"isDecrementDisabled()\"\n (click)=\"onControlClick(-1)\"\n (mousedown)=\"handleMouseDown($event, -1)\"\n (mouseup)=\"handleMouseUp($event)\"\n (mouseleave)=\"handleMouseUp($event)\"\n (touchstart)=\"handleTouchStart($event, -1)\"\n (touchend)=\"handleTouchEnd($event)\"\n (touchcancel)=\"handleTouchEnd($event)\"\n [title]=\"'number-field.decrement' | translate\"\n [attr.aria-label]=\"'number-field.decrement' | translate\"\n tabindex=\"-1\"></button>\n\n <input class=\"c-entry-input\"\n type=\"number\"\n [min]=\"getMinValue()\"\n [max]=\"getMaxValue()\"\n inputmode=\"numeric\"\n [class.is-invalid]=\"hasError()\"\n [class.is-disabled]=\"isDisabled() || getDisableInput()\"\n [class.is-readonly]=\"isReadonly()\"\n [readonly]=\"isReadonly()\"\n [style.pointer-events]=\"!getCanUseInput() ? 'none' : 'auto'\"\n [style.user-select]=\"!getCanUseInput() ? 'none' : 'auto'\"\n \n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"formControl()\"\n (blur)=\"onBlurInput()\"\n (keydown)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (keypress)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (keyup)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (input)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (paste)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (drop)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n [placeholder]=\"(field().placeholder ?? '') | translate\">\n\n <button class=\"c-entry-stepper__control icon-counter-up js-input-number-control\"\n type=\"button\"\n [disabled]=\"isIncrementDisabled()\"\n (click)=\"onControlClick(1)\"\n (mousedown)=\"handleMouseDown($event, 1)\"\n (mouseup)=\"handleMouseUp($event)\"\n (mouseleave)=\"handleMouseUp($event)\"\n (touchstart)=\"handleTouchStart($event, 1)\"\n (touchend)=\"handleTouchEnd($event)\"\n (touchcancel)=\"handleTouchEnd($event)\"\n [title]=\"'number-field.increment' | translate\"\n [attr.aria-label]=\"'number-field.increment' | translate\"\n tabindex=\"-1\"></button>\n </div>\n \n } @else {\n\n <label class=\"c-entry-input\"\n [style.--chars]=\"getCharsWidth()\"\n [class.is-invalid]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\">\n <span *ngIf=\"iconClass()\" class=\"{{ iconClass() | coreIconCompat }}\"></span>\n\n <input\n type=\"number\"\n [min]=\"getMinValue()\"\n [max]=\"getMaxValue()\"\n inputmode=\"decimal\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-readonly]=\"isReadonly()\"\n [readonly]=\"!getCanUseInput()\"\n [style.pointer-events]=\"!getCanUseInput() ? 'none' : 'auto'\"\n [style.user-select]=\"!getCanUseInput() ? 'none' : 'auto'\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"formControl()\"\n (blur)=\"onBlurInput()\"\n (keydown)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (keypress)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (keyup)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (input)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (paste)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n (drop)=\"!getCanUseInput() ? $event.preventDefault() : null\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n />\n\n <span class=\"c-entry-number-controls\">\n <button class=\"icon-arrow-up js-input-number-control\"\n type=\"button\"\n [disabled]=\"isIncrementDisabled()\"\n (click)=\"onControlClick(1)\"\n (mousedown)=\"handleMouseDown($event, 1)\"\n (mouseup)=\"handleMouseUp($event)\"\n (mouseleave)=\"handleMouseUp($event)\"\n (touchstart)=\"handleTouchStart($event, 1)\"\n (touchend)=\"handleTouchEnd($event)\"\n (touchcancel)=\"handleTouchEnd($event)\"\n [title]=\"'number-field.increment' | translate\"\n [attr.aria-label]=\"'number-field.increment' | translate\"\n tabindex=\"-1\"\n ></button>\n <button class=\"icon-arrow-down js-input-number-control\"\n type=\"button\"\n [disabled]=\"isDecrementDisabled()\"\n (click)=\"onControlClick(-1)\"\n (mousedown)=\"handleMouseDown($event, -1)\"\n (mouseup)=\"handleMouseUp($event)\"\n (mouseleave)=\"handleMouseUp($event)\"\n (touchstart)=\"handleTouchStart($event, -1)\"\n (touchend)=\"handleTouchEnd($event)\"\n (touchcancel)=\"handleTouchEnd($event)\"\n [title]=\"'number-field.decrement' | translate\"\n [attr.aria-label]=\"'number-field.decrement' | translate\"\n tabindex=\"-1\"\n ></button>\n </span>\n </label>\n }\n <core-field-errors [errors]=\"errors()\" />\n</div> <!-- .c-entry-item -->\n", styles: [".c-entry-input.is-readonly,.c-entry-stepper .c-entry-input.is-readonly{cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }] });
|
|
2424
2626
|
}
|
|
2425
2627
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NumberFieldComponent, decorators: [{
|
|
2426
2628
|
type: Component,
|
|
@@ -2466,7 +2668,7 @@ class PasswordFieldComponent extends BaseFieldComponent {
|
|
|
2466
2668
|
this.onBlur();
|
|
2467
2669
|
}
|
|
2468
2670
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PasswordFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2469
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: PasswordFieldComponent, isStandalone: true, selector: "core-password-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- ! Solcre: Esto lo estoy haciendo a ciegas \uD83D\uDE05 -->\n \n<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <label class=\"c-entry-input\"\n [class.is-invalid]=\"hasError()\"\n [class.is-readonly]=\"hasError()\"\n [class.is-disabled]=\"hasError()\">\n\n @if (field().prefixIcon) {\n <span class=\"c-entry-input__addon {{ field().prefixIcon }}\"></span>\n }\n\n <input \n [type]=\"inputType()\" \n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n (blur)=\"onBlurInput()\">\n\n <button class=\"c-entry-input__addon\"\n (click)=\"togglePasswordVisibility()\"\n [class]=\"showPassword()? 'icon-password-hide-thin' :'icon-password-thin'\"\n ></button>\n\n </label>\n <core-field-errors [errors]=\"errors()\" />\n</div> <!-- .c-entry-item -->\n\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
2671
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: PasswordFieldComponent, isStandalone: true, selector: "core-password-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- ! Solcre: Esto lo estoy haciendo a ciegas \uD83D\uDE05 -->\n \n<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <label class=\"c-entry-input\"\n [class.is-invalid]=\"hasError()\"\n [class.is-readonly]=\"hasError()\"\n [class.is-disabled]=\"hasError()\">\n\n @if (field().prefixIcon) {\n <span class=\"c-entry-input__addon {{ field().prefixIcon }}\"></span>\n }\n\n <input \n [type]=\"inputType()\" \n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n (blur)=\"onBlurInput()\">\n\n <button class=\"c-entry-input__addon\"\n (click)=\"togglePasswordVisibility()\"\n [class]=\"showPassword()? 'icon-password-hide-thin' :'icon-password-thin'\"\n ></button>\n\n </label>\n <core-field-errors [errors]=\"errors()\" />\n</div> <!-- .c-entry-item -->\n\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
2470
2672
|
}
|
|
2471
2673
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PasswordFieldComponent, decorators: [{
|
|
2472
2674
|
type: Component,
|
|
@@ -2490,6 +2692,7 @@ var FieldType;
|
|
|
2490
2692
|
FieldType["CHECKBOX"] = "checkbox";
|
|
2491
2693
|
FieldType["SELECT"] = "select";
|
|
2492
2694
|
FieldType["DATE"] = "date";
|
|
2695
|
+
FieldType["DATERANGE"] = "daterange";
|
|
2493
2696
|
FieldType["DATETIME"] = "datetime";
|
|
2494
2697
|
FieldType["TIME"] = "time";
|
|
2495
2698
|
FieldType["PASSWORD"] = "password";
|
|
@@ -3526,7 +3729,7 @@ class PhoneFieldComponent extends BaseFieldComponent {
|
|
|
3526
3729
|
}
|
|
3527
3730
|
}
|
|
3528
3731
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PhoneFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3529
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: PhoneFieldComponent, isStandalone: true, selector: "core-phone-field", host: { listeners: { "document:click": "onDocumentClick($event)" } }, usesInheritance: true, ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <div class=\"c-entry-phone\" [class.is-disabled]=\"isDisabled()\">\n <div\n class=\"c-entry-input c-entry-input--phone c-area-code js-area-code c-phone-field__custom-select\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-readonly]=\"isReadonly()\"\n (click)=\"onAreaCodeClick($event)\"\n (keydown.enter)=\"onAreaCodeKeydown($any($event))\"\n (keydown.space)=\"onAreaCodeKeydown($any($event))\"\n role=\"button\"\n [attr.tabindex]=\"isDisabled() ? -1 : 0\"\n [attr.aria-expanded]=\"isDropdownOpen()\"\n [attr.aria-haspopup]=\"true\"\n >\n <input type=\"hidden\" class=\"js-area-value\" [value]=\"selectedCountry()?.phone || ''\" />\n <div class=\"c-area-code__selected js-area-code-selected\">\n @if (phoneConfig().showFlags && selectedCountry()?.flag) {\n <img\n class=\"c-area-code__flag\"\n [src]=\"getFlagUrl(selectedCountry()!)\"\n [alt]=\"selectedCountry()?.name || ''\"\n (error)=\"onFlagError($event)\"\n />\n }\n <span class=\"c-area-code__num\">{{ getSelectedCountryDisplay() }}</span>\n <span class=\"c-area-code__arrow icon-arrow-down\"></span>\n </div>\n <div class=\"c-area-code__options js-area-code-options\" [class.show]=\"isDropdownOpen()\">\n @for (country of availableCountries(); track country.code + '-' + country.name) {\n <div class=\"c-area-code__option\" (click)=\"selectCountry(country, $event)\">\n @if (phoneConfig().showFlags && country.flag) {\n <img\n class=\"c-area-code__flag\"\n [src]=\"getFlagUrl(country)\"\n [alt]=\"country.name\"\n (error)=\"onFlagError($event)\"\n />\n }\n <span>{{ getCountryLabel(country) }}</span>\n </div>\n }\n </div>\n </div>\n\n <span\n class=\"c-entry-input\"\n [class.is-readonly]=\"isReadonly() || field().blocked\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-invalid]=\"hasError()\"\n >\n <input\n type=\"tel\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"phoneControl\"\n [placeholder]=\"getPhonePlaceholder() | translate\"\n [readonly]=\"isReadonly() || field().blocked\"\n [class.has-error]=\"hasError()\"\n [class.is-invalid]=\"hasError()\"\n inputmode=\"numeric\"\n autocomplete=\"tel\"\n (blur)=\"onBlurInput()\"\n (keydown.enter)=\"onEnterInput($any($event))\"\n (keypress)=\"onPhoneKeyPress($event)\"\n />\n </span>\n </div>\n\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3
|
|
3732
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: PhoneFieldComponent, isStandalone: true, selector: "core-phone-field", host: { listeners: { "document:click": "onDocumentClick($event)" } }, usesInheritance: true, ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <div class=\"c-entry-phone\" [class.is-disabled]=\"isDisabled()\">\n <div\n class=\"c-entry-input c-entry-input--phone c-area-code js-area-code c-phone-field__custom-select\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-readonly]=\"isReadonly()\"\n (click)=\"onAreaCodeClick($event)\"\n (keydown.enter)=\"onAreaCodeKeydown($any($event))\"\n (keydown.space)=\"onAreaCodeKeydown($any($event))\"\n role=\"button\"\n [attr.tabindex]=\"isDisabled() ? -1 : 0\"\n [attr.aria-expanded]=\"isDropdownOpen()\"\n [attr.aria-haspopup]=\"true\"\n >\n <input type=\"hidden\" class=\"js-area-value\" [value]=\"selectedCountry()?.phone || ''\" />\n <div class=\"c-area-code__selected js-area-code-selected\">\n @if (phoneConfig().showFlags && selectedCountry()?.flag) {\n <img\n class=\"c-area-code__flag\"\n [src]=\"getFlagUrl(selectedCountry()!)\"\n [alt]=\"selectedCountry()?.name || ''\"\n (error)=\"onFlagError($event)\"\n />\n }\n <span class=\"c-area-code__num\">{{ getSelectedCountryDisplay() }}</span>\n <span class=\"c-area-code__arrow icon-arrow-down\"></span>\n </div>\n <div class=\"c-area-code__options js-area-code-options\" [class.show]=\"isDropdownOpen()\">\n @for (country of availableCountries(); track country.code + '-' + country.name) {\n <div class=\"c-area-code__option\" (click)=\"selectCountry(country, $event)\">\n @if (phoneConfig().showFlags && country.flag) {\n <img\n class=\"c-area-code__flag\"\n [src]=\"getFlagUrl(country)\"\n [alt]=\"country.name\"\n (error)=\"onFlagError($event)\"\n />\n }\n <span>{{ getCountryLabel(country) }}</span>\n </div>\n }\n </div>\n </div>\n\n <span\n class=\"c-entry-input\"\n [class.is-readonly]=\"isReadonly() || field().blocked\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-invalid]=\"hasError()\"\n >\n <input\n type=\"tel\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"phoneControl\"\n [placeholder]=\"getPhonePlaceholder() | translate\"\n [readonly]=\"isReadonly() || field().blocked\"\n [class.has-error]=\"hasError()\"\n [class.is-invalid]=\"hasError()\"\n inputmode=\"numeric\"\n autocomplete=\"tel\"\n (blur)=\"onBlurInput()\"\n (keydown.enter)=\"onEnterInput($any($event))\"\n (keypress)=\"onPhoneKeyPress($event)\"\n />\n </span>\n </div>\n\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
3530
3733
|
}
|
|
3531
3734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PhoneFieldComponent, decorators: [{
|
|
3532
3735
|
type: Component,
|
|
@@ -3821,7 +4024,7 @@ class SelectFieldComponent extends BaseFieldComponent {
|
|
|
3821
4024
|
this.hasValue.set(false);
|
|
3822
4025
|
}
|
|
3823
4026
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SelectFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3824
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SelectFieldComponent, isStandalone: true, selector: "core-select-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "ngSelect", first: true, predicate: NgSelectComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- Todo: Ng select + c-entry-select -->\n\n<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <div\n class=\"c-entry-input c-entry-input--ng-select c-entry-input--ng-select-alt\"\n [class.is-placeholder]=\"isPlaceholderVisible()\"\n [class.is-invalid]=\"hasError()\"\n [class.disabled]=\"isDisabled()\"\n >\n <ng-select\n [items]=\"field().options ?? []\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [multiple]=\"field().multiple\"\n [formControl]=\"formControl()\"\n [compareWith]=\"compareWith\"\n [class.has-error]=\"hasError()\"\n [class.disabled]=\"isDisabled()\"\n [readonly]=\"isReadonly()\"\n [clearable]=\"true\"\n [searchable]=\"isSearchable()\"\n (blur)=\"onBlurInput()\"\n (change)=\"onSelectChange($event)\"\n (clear)=\"onSelectClear()\"\n [placeholder]=\"\n isPlaceholderVisible() ? (field().placeholder ?? '' | translate) : ''\n \"\n >\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\n {{ item.label | translate }}\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n <!-- Estilos que aparecen en la etiqueta del item seleccionado -->\n {{ item.label | translate }}\n </ng-template>\n <ng-template ng-notfound-tmp>\n <span class=\"ng-select-notfound\">{{\n \"modal.field.serverSelect.noResults\" | translate\n }}</span>\n </ng-template>\n </ng-select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </div>\n <core-field-errors [errors]=\"errors()\" />\n</div>\n", styles: [".ng-select .ng-select-container .ng-value-container{flex-wrap:wrap}.c-entry-input--ng-select.is-placeholder ::ng-deep .ng-select .ng-select-container .ng-value-container .ng-input input::placeholder{color:var(--_entry-input-placeholder-color);opacity:1}.c-entry-input--ng-select.is-placeholder ::ng-deep .ng-select .ng-select-container .ng-value-container .ng-input input{color:var(--_entry-input-placeholder-color)}.c-entry-input--ng-select:not(.is-placeholder) ::ng-deep .ng-select .ng-select-container .ng-value-container .ng-input input::placeholder{opacity:0}::ng-deep .ng-select{width:100%!important;display:contents}.c-entry-input--ng-select{position:relative}.ng-dropdown-panel{width:auto!important}::ng-deep .ng-dropdown-panel{top:0;right:0}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-value{background-color:var(--form-highlighted-color, var(--color-neutral-300));color:#3f4e6a;border-radius:var(--_entry-input-br);padding:.2em .8em;margin:.2em;border:none;border-radius:4px}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-value .ng-value-icon{border:none;padding-right:.4em;color:#3f4e6a}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items{border:none;min-height:auto;padding:0;position:relative;right:0;margin-top:3em;box-shadow:1em 2.4em 3.4em -2em hsl(var(--color-neutral-900-hsl)/25%);background-color:var(--color-neutral-100)}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{padding:.6em .8em;color:#6a788c;cursor:pointer;transition:background-color .1s ease-out}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{color:var(--color-primary-400)}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected{color:var(--color-primary-400);font-weight:500}::ng-deep .ng-dropdown-panel .scrollable-content{background:#f2f5fa}::ng-deep .ng-dropdown-panel-items.scroll-host{background:#f2f5fa;padding:1em;border-radius:var(--_entry-input-br)}::ng-deep app-server-select-field .ng-select:not(.ng-select-filtered):not(.ng-select-opened) .ng-dropdown-panel{opacity:0!important}::ng-deep .c-entry-input--ng-select{--_entry-input-padd-y: .76em}::ng-deep .c-entry-input--ng-select:has(.ng-value-container .ng-value){--_entry-input-padd-y: .35em}::ng-deep .c-entry-input--ng-select:has(.ng-value-container .ng-value) .ng-select .ng-select-container .ng-value-container .ng-input{margin-left:8px;z-index:0}::ng-deep .c-entry-input--ng-select:has(.ng-value-container .ng-value) .ng-select .ng-select-container .ng-value-container .ng-input>input{height:100%}::ng-deep .ng-dropdown-panel-items.scroll-host:has(.ng-select-notfound){background-color:hsl(from hsl(var(--color-context-error-hsl)) h s 94%);color:hsl(from hsl(var(--color-context-error-hsl)) h s 60%)}::ng-deep .ng-dropdown-panel-items.scroll-host:has(.ng-select-loading){background-color:hsl(from hsl(var(--color-alternative-800-hsl)) h s 96%);color:hsl(from hsl(var(--color-alternative-800-hsl)) h 90% 70%)}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container{display:grid;justify-content:start}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{height:-webkit-fill-available}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input>input{height:98%}::ng-deep .ng-select.ng-select-single .ng-select-container{overflow:visible;position:relative;cursor:pointer}::ng-deep .ng-select.ng-select-single .ng-select-container:before{content:\"\";position:absolute;left:calc(var(--_entry-input-padd-x) * -1);right:calc(var(--_entry-input-padd-x) * -1 - var(--_entry-input-addon-gap) - var(--_entry-input-addon-icon-fz));top:calc(max(var(--_entry-input-padd-y) * var(--_size-factor, 1),2px)*-1);bottom:calc(max(var(--_entry-input-padd-y) * var(--_size-factor, 1),2px)*-1)}::ng-deep .ng-select .ng-clear-wrapper .ng-clear{position:absolute;top:50%;transform:translateY(-50%)}@media (hover: hover){::ng-deep .ng-select .ng-clear-wrapper:is(:hover,:focus-visible){color:var(--color-hover)}}.c-entry-input--ng-select.disabled{opacity:.6;pointer-events:none}::ng-deep .ng-select.disabled{opacity:.6;pointer-events:none}::ng-deep .ng-select.disabled .ng-select-container{background-color:var(--color-neutral-100, #f5f5f5);cursor:not-allowed}::ng-deep .ng-select.disabled .ng-select-container .ng-value-container .ng-input input{cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
4027
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SelectFieldComponent, isStandalone: true, selector: "core-select-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "ngSelect", first: true, predicate: NgSelectComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- Todo: Ng select + c-entry-select -->\n\n<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <div\n class=\"c-entry-input c-entry-input--ng-select c-entry-input--ng-select-alt\"\n [class.is-placeholder]=\"isPlaceholderVisible()\"\n [class.is-invalid]=\"hasError()\"\n [class.disabled]=\"isDisabled()\"\n >\n <ng-select\n [items]=\"field().options ?? []\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [multiple]=\"field().multiple\"\n [formControl]=\"formControl()\"\n [compareWith]=\"compareWith\"\n [class.has-error]=\"hasError()\"\n [class.disabled]=\"isDisabled()\"\n [readonly]=\"isReadonly()\"\n [clearable]=\"true\"\n [searchable]=\"isSearchable()\"\n (blur)=\"onBlurInput()\"\n (change)=\"onSelectChange($event)\"\n (clear)=\"onSelectClear()\"\n [placeholder]=\"\n isPlaceholderVisible() ? (field().placeholder ?? '' | translate) : ''\n \"\n >\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\n {{ item.label | translate }}\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n <!-- Estilos que aparecen en la etiqueta del item seleccionado -->\n {{ item.label | translate }}\n </ng-template>\n <ng-template ng-notfound-tmp>\n <span class=\"ng-select-notfound\">{{\n \"modal.field.serverSelect.noResults\" | translate\n }}</span>\n </ng-template>\n </ng-select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </div>\n <core-field-errors [errors]=\"errors()\" />\n</div>\n", styles: [".ng-select .ng-select-container .ng-value-container{flex-wrap:wrap}.c-entry-input--ng-select.is-placeholder ::ng-deep .ng-select .ng-select-container .ng-value-container .ng-input input::placeholder{color:var(--_entry-input-placeholder-color);opacity:1}.c-entry-input--ng-select.is-placeholder ::ng-deep .ng-select .ng-select-container .ng-value-container .ng-input input{color:var(--_entry-input-placeholder-color)}.c-entry-input--ng-select:not(.is-placeholder) ::ng-deep .ng-select .ng-select-container .ng-value-container .ng-input input::placeholder{opacity:0}::ng-deep .ng-select{width:100%!important;display:contents}.c-entry-input--ng-select{position:relative}.ng-dropdown-panel{width:auto!important}::ng-deep .ng-dropdown-panel{top:0;right:0}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-value{background-color:var(--form-highlighted-color, var(--color-neutral-300));color:#3f4e6a;border-radius:var(--_entry-input-br);padding:.2em .8em;margin:.2em;border:none;border-radius:4px}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-value .ng-value-icon{border:none;padding-right:.4em;color:#3f4e6a}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items{border:none;min-height:auto;padding:0;position:relative;right:0;margin-top:3em;box-shadow:1em 2.4em 3.4em -2em hsl(var(--color-neutral-900-hsl)/25%);background-color:var(--color-neutral-100)}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{padding:.6em .8em;color:#6a788c;cursor:pointer;transition:background-color .1s ease-out}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{color:var(--color-primary-400)}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected{color:var(--color-primary-400);font-weight:500}::ng-deep .ng-dropdown-panel .scrollable-content{background:#f2f5fa}::ng-deep .ng-dropdown-panel-items.scroll-host{background:#f2f5fa;padding:1em;border-radius:var(--_entry-input-br)}::ng-deep app-server-select-field .ng-select:not(.ng-select-filtered):not(.ng-select-opened) .ng-dropdown-panel{opacity:0!important}::ng-deep .c-entry-input--ng-select{--_entry-input-padd-y: .76em}::ng-deep .c-entry-input--ng-select:has(.ng-value-container .ng-value){--_entry-input-padd-y: .35em}::ng-deep .c-entry-input--ng-select:has(.ng-value-container .ng-value) .ng-select .ng-select-container .ng-value-container .ng-input{margin-left:8px;z-index:0}::ng-deep .c-entry-input--ng-select:has(.ng-value-container .ng-value) .ng-select .ng-select-container .ng-value-container .ng-input>input{height:100%}::ng-deep .ng-dropdown-panel-items.scroll-host:has(.ng-select-notfound){background-color:hsl(from hsl(var(--color-context-error-hsl)) h s 94%);color:hsl(from hsl(var(--color-context-error-hsl)) h s 60%)}::ng-deep .ng-dropdown-panel-items.scroll-host:has(.ng-select-loading){background-color:hsl(from hsl(var(--color-alternative-800-hsl)) h s 96%);color:hsl(from hsl(var(--color-alternative-800-hsl)) h 90% 70%)}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container{display:grid;justify-content:start}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{height:-webkit-fill-available}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input>input{height:98%}::ng-deep .ng-select.ng-select-single .ng-select-container{overflow:visible;position:relative;cursor:pointer}::ng-deep .ng-select.ng-select-single .ng-select-container:before{content:\"\";position:absolute;left:calc(var(--_entry-input-padd-x) * -1);right:calc(var(--_entry-input-padd-x) * -1 - var(--_entry-input-addon-gap) - var(--_entry-input-addon-icon-fz));top:calc(max(var(--_entry-input-padd-y) * var(--_size-factor, 1),2px)*-1);bottom:calc(max(var(--_entry-input-padd-y) * var(--_size-factor, 1),2px)*-1)}::ng-deep .ng-select .ng-clear-wrapper .ng-clear{position:absolute;top:50%;transform:translateY(-50%)}@media (hover: hover){::ng-deep .ng-select .ng-clear-wrapper:is(:hover,:focus-visible){color:var(--color-hover)}}.c-entry-input--ng-select.disabled{opacity:.6;pointer-events:none}::ng-deep .ng-select.disabled{opacity:.6;pointer-events:none}::ng-deep .ng-select.disabled .ng-select-container{background-color:var(--color-neutral-100, #f5f5f5);cursor:not-allowed}::ng-deep .ng-select.disabled .ng-select-container .ng-value-container .ng-input input{cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "tabFocusOnClearButton", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i5.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i5.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i5.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
3825
4028
|
}
|
|
3826
4029
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SelectFieldComponent, decorators: [{
|
|
3827
4030
|
type: Component,
|
|
@@ -4508,7 +4711,7 @@ class ServerSelectFieldComponent extends BaseFieldComponent {
|
|
|
4508
4711
|
}
|
|
4509
4712
|
}
|
|
4510
4713
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ServerSelectFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4511
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: ServerSelectFieldComponent, isStandalone: true, selector: "core-server-select-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "ngSelect", first: true, predicate: ["ngSelect"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- ! Solcre: Deberia ser el mismo componente que el select-field.component -->\n<!-- Todo: Ng select + c-entry-select -->\n \n<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n \n <!-- ! Solcre: El .c-entry-select deberia ser un componente en s\u00ED mismo -->\n <!-- ! Solcre: Sacar el .is-placeholder en el onChange -->\n \n <span class=\"c-entry-input c-entry-input--ng-select\"\n [class.is-placeholder]=\"isPlaceholderVisible()\">\n <!-- <div class=\"c-entry-select\"> -->\n \n <ng-select #ngSelect\n [items]=\"items()\"\n [bindValue]=\"field().bindValue ?? 'id'\"\n [multiple]=\"field().multiple\"\n [formControl]=\"formControl()\"\n [compareWith]=\"compareWith\"\n [class.has-error]=\"hasError()\"\n [readonly]=\"field().readonly\"\n [clearable]=\"!!value()\"\n [searchable]=\"isSearchable()\"\n [loading]=\"isLoading()\"\n [typeahead]=\"searchInput$\"\n (blur)=\"onBlurInput()\"\n (click)=\"onFieldClick()\"\n (beforeOpen)=\"onBeforeOpen()\"\n (open)=\"onOpen()\"\n (close)=\"onClose()\"\n (change)=\"onSelectChange($event)\"\n (clear)=\"onSelectClear()\"\n [placeholder]=\"isPlaceholderVisible() ? ((field().placeholder ?? 'commons.select.placeholder') | translate) : ''\"\n [virtualScroll]=\"true\"\n [clearable]=\"true\"\n >\n <!-- Estilos para cuando se clickea el select para buscar (si es conveniente dejarlo vac\u00EDo) -->\n <ng-template ng-typetosearch-tmp></ng-template>\n <ng-template ng-option-tmp let-item=\"item\">\n <!-- Estilos de opciones del select-->\n {{ getDisplayLabel(item) }}\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n <!-- Estilos que aparecen en la etiqueta del item seleccionado -->\n {{ getDisplayLabel(item) }}\n </ng-template>\n <ng-template ng-loadingtext-tmp>\n <span class=\"ng-select-loading\">{{ 'commons.loading' | translate }}</span>\n </ng-template>\n <ng-template ng-notfound-tmp>\n <ng-container *ngIf=\"isLoading(); else noData\">\n <span class=\"ng-select-loading\">{{ 'commons.loading' | translate }}</span>\n </ng-container>\n <ng-template #noData>\n <ng-container *ngIf=\"hasSearched(); else startTyping\">\n <span class=\"ng-select-notfound\">{{ 'modal.field.serverSelect.noResults' | translate }}</span>\n </ng-container>\n <ng-template #startTyping>\n <span class=\"ng-select-start-typing\">{{ 'modal.field.serverSelect.typeToSearch' | translate }}</span>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-select>\n \n <!-- <span class=\"c-entry-select__arrow icon-arrow-down\"></span> -->\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </span> <!-- .c-entry-select || .c-entry-input -->\n <core-field-errors [errors]=\"errors()\" />\n</div> <!-- .c-entry-item -->", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
4714
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: ServerSelectFieldComponent, isStandalone: true, selector: "core-server-select-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "ngSelect", first: true, predicate: ["ngSelect"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- ! Solcre: Deberia ser el mismo componente que el select-field.component -->\n<!-- Todo: Ng select + c-entry-select -->\n \n<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n \n <!-- ! Solcre: El .c-entry-select deberia ser un componente en s\u00ED mismo -->\n <!-- ! Solcre: Sacar el .is-placeholder en el onChange -->\n \n <span class=\"c-entry-input c-entry-input--ng-select\"\n [class.is-placeholder]=\"isPlaceholderVisible()\">\n <!-- <div class=\"c-entry-select\"> -->\n \n <ng-select #ngSelect\n [items]=\"items()\"\n [bindValue]=\"field().bindValue ?? 'id'\"\n [multiple]=\"field().multiple\"\n [formControl]=\"formControl()\"\n [compareWith]=\"compareWith\"\n [class.has-error]=\"hasError()\"\n [readonly]=\"field().readonly\"\n [clearable]=\"!!value()\"\n [searchable]=\"isSearchable()\"\n [loading]=\"isLoading()\"\n [typeahead]=\"searchInput$\"\n (blur)=\"onBlurInput()\"\n (click)=\"onFieldClick()\"\n (beforeOpen)=\"onBeforeOpen()\"\n (open)=\"onOpen()\"\n (close)=\"onClose()\"\n (change)=\"onSelectChange($event)\"\n (clear)=\"onSelectClear()\"\n [placeholder]=\"isPlaceholderVisible() ? ((field().placeholder ?? 'commons.select.placeholder') | translate) : ''\"\n [virtualScroll]=\"true\"\n [clearable]=\"true\"\n >\n <!-- Estilos para cuando se clickea el select para buscar (si es conveniente dejarlo vac\u00EDo) -->\n <ng-template ng-typetosearch-tmp></ng-template>\n <ng-template ng-option-tmp let-item=\"item\">\n <!-- Estilos de opciones del select-->\n {{ getDisplayLabel(item) }}\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n <!-- Estilos que aparecen en la etiqueta del item seleccionado -->\n {{ getDisplayLabel(item) }}\n </ng-template>\n <ng-template ng-loadingtext-tmp>\n <span class=\"ng-select-loading\">{{ 'commons.loading' | translate }}</span>\n </ng-template>\n <ng-template ng-notfound-tmp>\n <ng-container *ngIf=\"isLoading(); else noData\">\n <span class=\"ng-select-loading\">{{ 'commons.loading' | translate }}</span>\n </ng-container>\n <ng-template #noData>\n <ng-container *ngIf=\"hasSearched(); else startTyping\">\n <span class=\"ng-select-notfound\">{{ 'modal.field.serverSelect.noResults' | translate }}</span>\n </ng-container>\n <ng-template #startTyping>\n <span class=\"ng-select-start-typing\">{{ 'modal.field.serverSelect.typeToSearch' | translate }}</span>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-select>\n \n <!-- <span class=\"c-entry-select__arrow icon-arrow-down\"></span> -->\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </span> <!-- .c-entry-select || .c-entry-input -->\n <core-field-errors [errors]=\"errors()\" />\n</div> <!-- .c-entry-item -->", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "tabFocusOnClearButton", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i5.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i5.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i5.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { kind: "directive", type: i5.NgTypeToSearchTemplateDirective, selector: "[ng-typetosearch-tmp]" }, { kind: "directive", type: i5.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
4512
4715
|
}
|
|
4513
4716
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ServerSelectFieldComponent, decorators: [{
|
|
4514
4717
|
type: Component,
|
|
@@ -4591,7 +4794,7 @@ class SwitchFieldComponent extends BaseFieldComponent {
|
|
|
4591
4794
|
this.onBlur();
|
|
4592
4795
|
}
|
|
4593
4796
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SwitchFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4594
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SwitchFieldComponent, isStandalone: true, selector: "core-switch-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- <div class=\"c-entry-toggle-holder\" [class.is-invalid]=\"hasError()\"> -->\n<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\"\n *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!-- \n (?)Solcre: El .c-entry-toggle deber\u00EDa ser un componente por si solo\n -->\n <label class=\"c-entry-toggle\"\n [class.is-invalid]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\">\n \n <!-- \n \u2705 onBlurInput(): Maneja el evento blur para:\n - Validar el campo al perder el foco\n - Actualizar el estado del formulario \n - Disparar eventos de cambio si es necesario\n -->\n <input\n type=\"checkbox\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"formControl()\"\n [attr.aria-label]=\"(field().label || field().key.toString()) | translate\"\n (blur)=\"onBlurInput()\"\n />\n <span class=\"c-entry-toggle__text\">{{ labelOff() | translate }}</span>\n <span class=\"c-entry-toggle__switch\"></span>\n <span class=\"c-entry-toggle__text\">{{ labelOn() | translate }}</span>\n </label>\n <core-field-errors [errors]=\"errors()\" />\n</div>\n", styles: [".disabled{opacity:.5;pointer-events:none;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
4797
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SwitchFieldComponent, isStandalone: true, selector: "core-switch-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- <div class=\"c-entry-toggle-holder\" [class.is-invalid]=\"hasError()\"> -->\n<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\"\n *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!-- \n (?)Solcre: El .c-entry-toggle deber\u00EDa ser un componente por si solo\n -->\n <label class=\"c-entry-toggle\"\n [class.is-invalid]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\">\n \n <!-- \n \u2705 onBlurInput(): Maneja el evento blur para:\n - Validar el campo al perder el foco\n - Actualizar el estado del formulario \n - Disparar eventos de cambio si es necesario\n -->\n <input\n type=\"checkbox\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"formControl()\"\n [attr.aria-label]=\"(field().label || field().key.toString()) | translate\"\n (blur)=\"onBlurInput()\"\n />\n <span class=\"c-entry-toggle__text\">{{ labelOff() | translate }}</span>\n <span class=\"c-entry-toggle__switch\"></span>\n <span class=\"c-entry-toggle__text\">{{ labelOn() | translate }}</span>\n </label>\n <core-field-errors [errors]=\"errors()\" />\n</div>\n", styles: [".disabled{opacity:.5;pointer-events:none;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
4595
4798
|
}
|
|
4596
4799
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SwitchFieldComponent, decorators: [{
|
|
4597
4800
|
type: Component,
|
|
@@ -4633,7 +4836,7 @@ class TextAreaFieldComponent extends BaseFieldComponent {
|
|
|
4633
4836
|
this.onBlur();
|
|
4634
4837
|
}
|
|
4635
4838
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TextAreaFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4636
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TextAreaFieldComponent, isStandalone: true, selector: "core-text-area-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!-- ! Solcre: Falta un estado disabled -->\n <textarea class=\"c-entry-input\"\n rows=\"4\"\n [class.is-invalid]=\"hasError()\"\n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n (blur)=\"onBlurInput()\">\n </textarea>\n <core-field-errors [errors]=\"errors()\" />\n</label>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
4839
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TextAreaFieldComponent, isStandalone: true, selector: "core-text-area-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!-- ! Solcre: Falta un estado disabled -->\n <textarea class=\"c-entry-input\"\n rows=\"4\"\n [class.is-invalid]=\"hasError()\"\n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n (blur)=\"onBlurInput()\">\n </textarea>\n <core-field-errors [errors]=\"errors()\" />\n</label>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
4637
4840
|
}
|
|
4638
4841
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TextAreaFieldComponent, decorators: [{
|
|
4639
4842
|
type: Component,
|
|
@@ -4688,7 +4891,7 @@ class TextFieldComponent extends BaseFieldComponent {
|
|
|
4688
4891
|
this.onEnterInput(keyboardEvent);
|
|
4689
4892
|
}
|
|
4690
4893
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4691
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TextFieldComponent, isStandalone: true, selector: "core-text-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!-- \n ! Solcre: Detalles del input implementados:\n \u2705 Estado disabled agregado - Implementado isDisabled()\n \u2705 Type din\u00E1mico implementado - Acepta text, email, url, tel, etc.\n \u2705 style=\"--chars: XXX\" implementado - Ancho adaptable seg\u00FAn caracteres\n \u2705 PrefixIcon agregado - Soporte para iconos de prefijo\n -->\n\n <span class=\"c-entry-input\"\n [style.--chars]=\"getCharsWidth()\"\n [class.is-readonly]=\"isReadonly() || field().blocked\"\n [class.is-disabled]=\"isDisabled()\">\n @if (field().prefixIcon) {\n <span class=\"c-entry-input__addon\" [class]=\"field().prefixIcon | coreIconCompat\"></span>\n }\n <input \n [type]=\"getInputType()\"\n [class.has-error]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-invalid]=\"hasError()\"\n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n (blur)=\"onBlurInput($event)\"\n (keydown.enter)=\"handleEnterKey($event)\"\n />\n <span *ngIf=\"field().blocked\" class=\"c-entry-input__addon icon-locked-thin\"></span>\n </span>\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
4894
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TextFieldComponent, isStandalone: true, selector: "core-text-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!-- \n ! Solcre: Detalles del input implementados:\n \u2705 Estado disabled agregado - Implementado isDisabled()\n \u2705 Type din\u00E1mico implementado - Acepta text, email, url, tel, etc.\n \u2705 style=\"--chars: XXX\" implementado - Ancho adaptable seg\u00FAn caracteres\n \u2705 PrefixIcon agregado - Soporte para iconos de prefijo\n -->\n\n <span class=\"c-entry-input\"\n [style.--chars]=\"getCharsWidth()\"\n [class.is-readonly]=\"isReadonly() || field().blocked\"\n [class.is-disabled]=\"isDisabled()\">\n @if (field().prefixIcon) {\n <span class=\"c-entry-input__addon\" [class]=\"field().prefixIcon | coreIconCompat\"></span>\n }\n <input \n [type]=\"getInputType()\"\n [class.has-error]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-invalid]=\"hasError()\"\n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n (blur)=\"onBlurInput($event)\"\n (keydown.enter)=\"handleEnterKey($event)\"\n />\n <span *ngIf=\"field().blocked\" class=\"c-entry-input__addon icon-locked-thin\"></span>\n </span>\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }] });
|
|
4692
4895
|
}
|
|
4693
4896
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TextFieldComponent, decorators: [{
|
|
4694
4897
|
type: Component,
|
|
@@ -5025,7 +5228,7 @@ class TimeFieldComponent {
|
|
|
5025
5228
|
}, 0);
|
|
5026
5229
|
}
|
|
5027
5230
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TimeFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5028
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TimeFieldComponent, isStandalone: true, selector: "core-time-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: false, transformFunction: null }, formValue: { classPropertyName: "formValue", publicName: "formValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", onBlurEvent: "onBlurEvent", onEnterEvent: "onEnterEvent" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\" [class.time-field-range]=\"includeEndTime()\">\n <!-- Start Time Field -->\n <div class=\"time-field-container\">\n <label class=\"c-entry-text\" [for]=\"field().key.toString() + '-start'\">\n {{ startTimeLabel() | translate }}\n @if (includeEndTime() ? hasStartTimeRequiredValidator() : hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </label>\n \n <span class=\"c-entry-input c-entry-input--ng-select\" [class.is-invalid]=\"includeEndTime() ? hasStartTimeError() : hasError()\">\n <ng-select\n [id]=\"field().key.toString() + '-start'\"\n [items]=\"startTimeOptions()\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [clearable]=\"!(includeEndTime() ? hasStartTimeRequiredValidator() : hasRequiredValidators())\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"selectedStartTime()\"\n (ngModelChange)=\"onStartTimeChange($event)\"\n (blur)=\"onStartTimeBlur()\"\n [placeholder]=\"isStartPlaceholderVisible() ? ('time-field.select-time' | translate) : ''\"\n [searchable]=\"false\">\n \n <ng-template ng-option-tmp let-item=\"item\">\n {{ item.label }}\n @if (item.used) {\n <span class=\"used-indicator\"> ({{ 'time-field.used' | translate }})</span>\n }\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n </ng-select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </span>\n \n <!-- Start Time Individual Error Messages -->\n @if (includeEndTime() && hasStartTimeError()) {\n <core-field-errors [errors]=\"startTimeErrors()\"></core-field-errors>\n }\n </div>\n\n <!-- End Time Field (only if includeEndTime is true) -->\n @if (includeEndTime()) {\n <div class=\"time-field-container time-field-end\">\n <label class=\"c-entry-text\" [for]=\"field().key.toString() + '-end'\">\n {{ endTimeLabel() | translate }}\n @if (hasEndTimeRequiredValidator()) {\n <span class=\"c-required\">*</span>\n }\n </label>\n \n <span class=\"c-entry-input c-entry-input--ng-select\" [class.is-invalid]=\"hasEndTimeError()\">\n <ng-select\n [id]=\"field().key.toString() + '-end'\"\n [items]=\"endTimeOptions()\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [clearable]=\"!hasEndTimeRequiredValidator()\"\n [disabled]=\"isDisabled() || !selectedStartTime()\"\n [ngModel]=\"selectedEndTime()\"\n (ngModelChange)=\"onEndTimeChange($event)\"\n (blur)=\"onEndTimeBlur()\"\n [placeholder]=\"isEndPlaceholderVisible() ? ('time-field.select-end-time' | translate) : ''\"\n [searchable]=\"false\">\n \n <ng-template ng-option-tmp let-item=\"item\">\n {{ item.label }}\n @if (item.used) {\n <span class=\"used-indicator\"> ({{ 'time-field.used' | translate }})</span>\n }\n @if (selectedStartTime() && item.value === selectedStartTime()!) {\n <span class=\"unavailable-indicator\"> ({{ 'time-field.unavailable' | translate }})</span>\n }\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n </ng-select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </span>\n \n <!-- End Time Individual Error Messages -->\n @if (hasEndTimeError()) {\n <core-field-errors [errors]=\"endTimeErrors()\"></core-field-errors>\n }\n </div>\n }\n\n <!-- General Error Messages (only if not using individual validation) -->\n @if (!includeEndTime() && hasError()) {\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3
|
|
5231
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TimeFieldComponent, isStandalone: true, selector: "core-time-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: false, transformFunction: null }, formValue: { classPropertyName: "formValue", publicName: "formValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", onBlurEvent: "onBlurEvent", onEnterEvent: "onEnterEvent" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\" [class.time-field-range]=\"includeEndTime()\">\n <!-- Start Time Field -->\n <div class=\"time-field-container\">\n <label class=\"c-entry-text\" [for]=\"field().key.toString() + '-start'\">\n {{ startTimeLabel() | translate }}\n @if (includeEndTime() ? hasStartTimeRequiredValidator() : hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </label>\n \n <span class=\"c-entry-input c-entry-input--ng-select\" [class.is-invalid]=\"includeEndTime() ? hasStartTimeError() : hasError()\">\n <ng-select\n [id]=\"field().key.toString() + '-start'\"\n [items]=\"startTimeOptions()\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [clearable]=\"!(includeEndTime() ? hasStartTimeRequiredValidator() : hasRequiredValidators())\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"selectedStartTime()\"\n (ngModelChange)=\"onStartTimeChange($event)\"\n (blur)=\"onStartTimeBlur()\"\n [placeholder]=\"isStartPlaceholderVisible() ? ('time-field.select-time' | translate) : ''\"\n [searchable]=\"false\">\n \n <ng-template ng-option-tmp let-item=\"item\">\n {{ item.label }}\n @if (item.used) {\n <span class=\"used-indicator\"> ({{ 'time-field.used' | translate }})</span>\n }\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n </ng-select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </span>\n \n <!-- Start Time Individual Error Messages -->\n @if (includeEndTime() && hasStartTimeError()) {\n <core-field-errors [errors]=\"startTimeErrors()\"></core-field-errors>\n }\n </div>\n\n <!-- End Time Field (only if includeEndTime is true) -->\n @if (includeEndTime()) {\n <div class=\"time-field-container time-field-end\">\n <label class=\"c-entry-text\" [for]=\"field().key.toString() + '-end'\">\n {{ endTimeLabel() | translate }}\n @if (hasEndTimeRequiredValidator()) {\n <span class=\"c-required\">*</span>\n }\n </label>\n \n <span class=\"c-entry-input c-entry-input--ng-select\" [class.is-invalid]=\"hasEndTimeError()\">\n <ng-select\n [id]=\"field().key.toString() + '-end'\"\n [items]=\"endTimeOptions()\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [clearable]=\"!hasEndTimeRequiredValidator()\"\n [disabled]=\"isDisabled() || !selectedStartTime()\"\n [ngModel]=\"selectedEndTime()\"\n (ngModelChange)=\"onEndTimeChange($event)\"\n (blur)=\"onEndTimeBlur()\"\n [placeholder]=\"isEndPlaceholderVisible() ? ('time-field.select-end-time' | translate) : ''\"\n [searchable]=\"false\">\n \n <ng-template ng-option-tmp let-item=\"item\">\n {{ item.label }}\n @if (item.used) {\n <span class=\"used-indicator\"> ({{ 'time-field.used' | translate }})</span>\n }\n @if (selectedStartTime() && item.value === selectedStartTime()!) {\n <span class=\"unavailable-indicator\"> ({{ 'time-field.unavailable' | translate }})</span>\n }\n </ng-template>\n <ng-template ng-label-tmp let-item=\"item\">\n {{ item.label }}\n </ng-template>\n </ng-select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </span>\n \n <!-- End Time Individual Error Messages -->\n @if (hasEndTimeError()) {\n <core-field-errors [errors]=\"endTimeErrors()\"></core-field-errors>\n }\n </div>\n }\n\n <!-- General Error Messages (only if not using individual validation) -->\n @if (!includeEndTime() && hasError()) {\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "tabFocusOnClearButton", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i5.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i5.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
5029
5232
|
}
|
|
5030
5233
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TimeFieldComponent, decorators: [{
|
|
5031
5234
|
type: Component,
|
|
@@ -5054,6 +5257,7 @@ class DynamicFieldDirective {
|
|
|
5054
5257
|
select: SelectFieldComponent,
|
|
5055
5258
|
'server-select': ServerSelectFieldComponent,
|
|
5056
5259
|
date: DateFieldComponent,
|
|
5260
|
+
daterange: DateRangeFieldComponent,
|
|
5057
5261
|
datetime: DatetimeFieldComponent,
|
|
5058
5262
|
time: TimeFieldComponent,
|
|
5059
5263
|
password: PasswordFieldComponent,
|
|
@@ -5446,7 +5650,7 @@ class MultiEntryFieldComponent {
|
|
|
5446
5650
|
}
|
|
5447
5651
|
}
|
|
5448
5652
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MultiEntryFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5449
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: MultiEntryFieldComponent, isStandalone: true, selector: "core-multi-entry-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: false, transformFunction: null }, formValue: { classPropertyName: "formValue", publicName: "formValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", onBlurEvent: "onBlurEvent", onEnterEvent: "onEnterEvent", hasErrors: "hasErrors" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-entry-group\">\n @for (entry of entries(); track entry.id; let index = $index) {\n <div class=\"c-entry-item\">\n <!-- Campo din\u00E1mico para cada entrada -->\n <div\n coreDynamicField\n [field]=\"createFieldConfigForEntry(index)\"\n [value]=\"entry.value\"\n [mode]=\"mode()\"\n [errors]=\"getEntryErrors(index)\"\n [rowData]=\"rowData()\"\n [formValue]=\"formValue()\"\n (valueChange)=\"onFieldValueChange($event, index)\"\n (onBlurEvent)=\"onFieldBlur($event)\"\n (onEnterEvent)=\"onFieldEnter($event)\">\n </div>\n\n <!-- Botones de acci\u00F3n (agregar/eliminar) -->\n @if (shouldShowActions(index)) {\n <div class=\"c-entry-actions\">\n @if (shouldShowAddButton(index)) {\n <button \n type=\"button\"\n class=\"c-entry-action c-entry-action--add\"\n (click)=\"addEntry()\"\n [disabled]=\"isDisabled()\"\n [title]=\"addLabel() | translate\"\n [attr.aria-label]=\"addLabel() | translate\">\n <span class=\"icon-counter-up\"></span>\n {{ addLabel() | translate }}\n </button>\n }\n \n @if (shouldShowRemoveButton(index)) {\n <button \n type=\"button\"\n class=\"c-entry-action c-entry-action--remove\"\n (click)=\"removeEntry(index)\"\n [disabled]=\"isDisabled()\"\n [title]=\"removeLabel() | translate\"\n [attr.aria-label]=\"removeLabel() | translate\">\n <span class=\"icon-counter-down\"></span>\n {{ removeLabel() | translate }}\n </button>\n }\n </div>\n }\n </div>\n }\n\n <!-- Errores del campo principal (solo si hay errores globales) -->\n @if (errors().length > 0) {\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
5653
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: MultiEntryFieldComponent, isStandalone: true, selector: "core-multi-entry-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: false, transformFunction: null }, formValue: { classPropertyName: "formValue", publicName: "formValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", onBlurEvent: "onBlurEvent", onEnterEvent: "onEnterEvent", hasErrors: "hasErrors" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-entry-group\">\n @for (entry of entries(); track entry.id; let index = $index) {\n <div class=\"c-entry-item\">\n <!-- Campo din\u00E1mico para cada entrada -->\n <div\n coreDynamicField\n [field]=\"createFieldConfigForEntry(index)\"\n [value]=\"entry.value\"\n [mode]=\"mode()\"\n [errors]=\"getEntryErrors(index)\"\n [rowData]=\"rowData()\"\n [formValue]=\"formValue()\"\n (valueChange)=\"onFieldValueChange($event, index)\"\n (onBlurEvent)=\"onFieldBlur($event)\"\n (onEnterEvent)=\"onFieldEnter($event)\">\n </div>\n\n <!-- Botones de acci\u00F3n (agregar/eliminar) -->\n @if (shouldShowActions(index)) {\n <div class=\"c-entry-actions\">\n @if (shouldShowAddButton(index)) {\n <button \n type=\"button\"\n class=\"c-entry-action c-entry-action--add\"\n (click)=\"addEntry()\"\n [disabled]=\"isDisabled()\"\n [title]=\"addLabel() | translate\"\n [attr.aria-label]=\"addLabel() | translate\">\n <span class=\"icon-counter-up\"></span>\n {{ addLabel() | translate }}\n </button>\n }\n \n @if (shouldShowRemoveButton(index)) {\n <button \n type=\"button\"\n class=\"c-entry-action c-entry-action--remove\"\n (click)=\"removeEntry(index)\"\n [disabled]=\"isDisabled()\"\n [title]=\"removeLabel() | translate\"\n [attr.aria-label]=\"removeLabel() | translate\">\n <span class=\"icon-counter-down\"></span>\n {{ removeLabel() | translate }}\n </button>\n }\n </div>\n }\n </div>\n }\n\n <!-- Errores del campo principal (solo si hay errores globales) -->\n @if (errors().length > 0) {\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "directive", type: DynamicFieldDirective, selector: "[coreDynamicField]", inputs: ["field", "value", "mode", "errors", "rowData", "formValue"], outputs: ["valueChange", "onBlurEvent", "onEnterEvent", "selectionChange"] }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
|
|
5450
5654
|
}
|
|
5451
5655
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MultiEntryFieldComponent, decorators: [{
|
|
5452
5656
|
type: Component,
|
|
@@ -5596,7 +5800,7 @@ class DataListItemComponent {
|
|
|
5596
5800
|
return this.customTemplate() instanceof TemplateRef;
|
|
5597
5801
|
}
|
|
5598
5802
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DataListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5599
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DataListItemComponent, isStandalone: true, selector: "core-data-list-item", inputs: { key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, formattedValue: { classPropertyName: "formattedValue", publicName: "formattedValue", isSignal: true, isRequired: false, transformFunction: null }, customTemplate: { classPropertyName: "customTemplate", publicName: "customTemplate", isSignal: true, isRequired: false, transformFunction: null }, templateContext: { classPropertyName: "templateContext", publicName: "templateContext", isSignal: true, isRequired: false, transformFunction: null }, itemCssClasses: { classPropertyName: "itemCssClasses", publicName: "itemCssClasses", isSignal: true, isRequired: false, transformFunction: null }, keyCssClasses: { classPropertyName: "keyCssClasses", publicName: "keyCssClasses", isSignal: true, isRequired: false, transformFunction: null }, valueCssClasses: { classPropertyName: "valueCssClasses", publicName: "valueCssClasses", isSignal: true, isRequired: false, transformFunction: null }, customCssClasses: { classPropertyName: "customCssClasses", publicName: "customCssClasses", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div [class]=\"getItemClasses()\">\n <p [class]=\"getKeyClasses()\">{{ label() | translate }}</p>\n \n @if (hasCustomTemplate()) {\n <div [class]=\"getValueClasses()\">\n <ng-container\n [ngTemplateOutlet]=\"customTemplate()!\"\n [ngTemplateOutletContext]=\"templateContext()\"\n ></ng-container>\n </div>\n } @else {\n <p [class]=\"getValueClasses()\">\n {{ formattedValue() }}\n </p>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
5803
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DataListItemComponent, isStandalone: true, selector: "core-data-list-item", inputs: { key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, formattedValue: { classPropertyName: "formattedValue", publicName: "formattedValue", isSignal: true, isRequired: false, transformFunction: null }, customTemplate: { classPropertyName: "customTemplate", publicName: "customTemplate", isSignal: true, isRequired: false, transformFunction: null }, templateContext: { classPropertyName: "templateContext", publicName: "templateContext", isSignal: true, isRequired: false, transformFunction: null }, itemCssClasses: { classPropertyName: "itemCssClasses", publicName: "itemCssClasses", isSignal: true, isRequired: false, transformFunction: null }, keyCssClasses: { classPropertyName: "keyCssClasses", publicName: "keyCssClasses", isSignal: true, isRequired: false, transformFunction: null }, valueCssClasses: { classPropertyName: "valueCssClasses", publicName: "valueCssClasses", isSignal: true, isRequired: false, transformFunction: null }, customCssClasses: { classPropertyName: "customCssClasses", publicName: "customCssClasses", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div [class]=\"getItemClasses()\">\n <p [class]=\"getKeyClasses()\">{{ label() | translate }}</p>\n \n @if (hasCustomTemplate()) {\n <div [class]=\"getValueClasses()\">\n <ng-container\n [ngTemplateOutlet]=\"customTemplate()!\"\n [ngTemplateOutletContext]=\"templateContext()\"\n ></ng-container>\n </div>\n } @else {\n <p [class]=\"getValueClasses()\">\n {{ formattedValue() }}\n </p>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
5600
5804
|
}
|
|
5601
5805
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DataListItemComponent, decorators: [{
|
|
5602
5806
|
type: Component,
|
|
@@ -5729,7 +5933,7 @@ class DataListComponent {
|
|
|
5729
5933
|
return item.customTemplate instanceof TemplateRef ? item.customTemplate : null;
|
|
5730
5934
|
}
|
|
5731
5935
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5732
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DataListComponent, isStandalone: true, selector: "core-data-list", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, customTemplate: { classPropertyName: "customTemplate", publicName: "customTemplate", isSignal: true, isRequired: false, transformFunction: null }, showEmptyMessage: { classPropertyName: "showEmptyMessage", publicName: "showEmptyMessage", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, cssClasses: { classPropertyName: "cssClasses", publicName: "cssClasses", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div [class]=\"cssClasses()\">\n @if (customTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"customTemplate()\"\n [ngTemplateOutletContext]=\"{\n $implicit: data(),\n items: visibleItems(),\n getFormattedValue: getFormattedValue.bind(this)\n }\"\n ></ng-container>\n } @else if (shouldShowContent()) {\n @for (item of visibleItems(); track item.key) {\n <core-data-list-item\n [key]=\"item.key\"\n [label]=\"item.label\"\n [value]=\"getItemValue(item)\"\n [formattedValue]=\"getFormattedValue(item)\"\n [customTemplate]=\"getItemTemplateRef(item)\"\n [templateContext]=\"getItemTemplateContext(item)\"\n [customCssClasses]=\"item.cssClasses || {}\">\n </core-data-list-item>\n }\n } @else if (shouldShowEmptyMessage()) {\n <div class=\"c-data-list__empty\">\n <p>{{ emptyMessage() | translate }}</p>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
5936
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DataListComponent, isStandalone: true, selector: "core-data-list", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, customTemplate: { classPropertyName: "customTemplate", publicName: "customTemplate", isSignal: true, isRequired: false, transformFunction: null }, showEmptyMessage: { classPropertyName: "showEmptyMessage", publicName: "showEmptyMessage", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, cssClasses: { classPropertyName: "cssClasses", publicName: "cssClasses", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div [class]=\"cssClasses()\">\n @if (customTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"customTemplate()\"\n [ngTemplateOutletContext]=\"{\n $implicit: data(),\n items: visibleItems(),\n getFormattedValue: getFormattedValue.bind(this)\n }\"\n ></ng-container>\n } @else if (shouldShowContent()) {\n @for (item of visibleItems(); track item.key) {\n <core-data-list-item\n [key]=\"item.key\"\n [label]=\"item.label\"\n [value]=\"getItemValue(item)\"\n [formattedValue]=\"getFormattedValue(item)\"\n [customTemplate]=\"getItemTemplateRef(item)\"\n [templateContext]=\"getItemTemplateContext(item)\"\n [customCssClasses]=\"item.cssClasses || {}\">\n </core-data-list-item>\n }\n } @else if (shouldShowEmptyMessage()) {\n <div class=\"c-data-list__empty\">\n <p>{{ emptyMessage() | translate }}</p>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: DataListItemComponent, selector: "core-data-list-item", inputs: ["key", "label", "value", "formattedValue", "customTemplate", "templateContext", "itemCssClasses", "keyCssClasses", "valueCssClasses", "customCssClasses"] }] });
|
|
5733
5937
|
}
|
|
5734
5938
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DataListComponent, decorators: [{
|
|
5735
5939
|
type: Component,
|
|
@@ -6159,7 +6363,7 @@ class GenericButtonComponent {
|
|
|
6159
6363
|
return this.config().tooltip ?? (this.isIconOnly() ? this.config().text ?? '' : '');
|
|
6160
6364
|
}
|
|
6161
6365
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6162
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: GenericButtonComponent, isStandalone: true, selector: "core-generic-button", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClick: "buttonClick" }, host: { properties: { "class": "this.hostClasses" } }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<ng-container *ngIf=\"config().routerLink && !isDisabled(); else normalButton\">\n <button \n [class]=\"buttonClasses()\"\n [routerLink]=\"config().routerLink\"\n [queryParams]=\"config().queryParams\"\n [fragment]=\"config().fragment\"\n [attr.aria-label]=\"getAriaLabel() | translate\"\n [attr.title]=\"getTitle() | translate\"\n [attr.id]=\"config().id\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClick($event)\"\n [class.c-tooltip-container]=\"config().tooltipConfig?.hasTooltip\"\n type=\"button\">\n \n <span \n *ngIf=\"hasIcon() && iconPositionLeft()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <ng-container *ngIf=\"shouldShowText()\">\n {{ (config().text ?? '') | translate }}\n </ng-container>\n \n <span \n *ngIf=\"hasIcon() && iconPositionRight()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <span *ngIf=\"config().loading\" class=\"spinner\"></span>\n\n <span *ngIf=\"config().tooltipConfig?.hasTooltip && !isDisabled()\" class=\"c-tooltip c-tooltip--{{config().tooltipConfig?.position}}\">\n {{ config().tooltipConfig?.text ?? '' | translate }}\n </span>\n </button>\n</ng-container>\n\n<ng-template #normalButton>\n <ng-container *ngIf=\"config().href && !isDisabled(); else regularButton\">\n <a \n [class]=\"buttonClasses()\"\n [href]=\"config().href\"\n [target]=\"config().target || '_self'\"\n [attr.aria-label]=\"getAriaLabel() | translate\"\n [attr.title]=\"getTitle() | translate\"\n [attr.id]=\"config().id\"\n (click)=\"onClick($event)\"\n type=\"button\"\n [class.c-tooltip-container]=\"config().tooltipConfig?.hasTooltip\">\n \n <span \n *ngIf=\"hasIcon() && iconPositionLeft()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <ng-container *ngIf=\"shouldShowText()\">\n {{ (config().text ?? '') | translate }}\n </ng-container>\n \n <span \n *ngIf=\"hasIcon() && iconPositionRight()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <span *ngIf=\"config().loading\" class=\"spinner\"></span>\n\n <span *ngIf=\"config().tooltipConfig?.hasTooltip && !isDisabled()\" class=\"c-tooltip c-tooltip--{{config().tooltipConfig?.position}}\">\n {{ config().tooltipConfig?.text ?? '' | translate }}\n </span>\n </a>\n </ng-container>\n</ng-template>\n\n<ng-template #regularButton>\n <button \n [class]=\"buttonClasses()\"\n [attr.aria-label]=\"getAriaLabel() | translate\"\n [attr.title]=\"getTitle() | translate\"\n [attr.id]=\"config().id\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClick($event)\"\n type=\"button\"\n [class.c-tooltip-container]=\"config().tooltipConfig?.hasTooltip\">\n \n <span \n *ngIf=\"hasIcon() && iconPositionLeft()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <ng-container *ngIf=\"shouldShowText()\">\n {{ (config().text ?? '') | translate }}\n </ng-container>\n \n <span \n *ngIf=\"hasIcon() && iconPositionRight()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <span *ngIf=\"config().loading\" class=\"spinner\"></span>\n\n <span *ngIf=\"config().tooltipConfig?.hasTooltip && !isDisabled()\" class=\"c-tooltip c-tooltip--{{config().tooltipConfig?.position}}\">\n {{ config().tooltipConfig?.text ?? '' | translate }}\n </span>\n </button>\n</ng-template> ", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
6366
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: GenericButtonComponent, isStandalone: true, selector: "core-generic-button", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClick: "buttonClick" }, host: { properties: { "class": "this.hostClasses" } }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<ng-container *ngIf=\"config().routerLink && !isDisabled(); else normalButton\">\n <button \n [class]=\"buttonClasses()\"\n [routerLink]=\"config().routerLink\"\n [queryParams]=\"config().queryParams\"\n [fragment]=\"config().fragment\"\n [attr.aria-label]=\"getAriaLabel() | translate\"\n [attr.title]=\"getTitle() | translate\"\n [attr.id]=\"config().id\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClick($event)\"\n [class.c-tooltip-container]=\"config().tooltipConfig?.hasTooltip\"\n type=\"button\">\n \n <span \n *ngIf=\"hasIcon() && iconPositionLeft()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <ng-container *ngIf=\"shouldShowText()\">\n {{ (config().text ?? '') | translate }}\n </ng-container>\n \n <span \n *ngIf=\"hasIcon() && iconPositionRight()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <span *ngIf=\"config().loading\" class=\"spinner\"></span>\n\n <span *ngIf=\"config().tooltipConfig?.hasTooltip && !isDisabled()\" class=\"c-tooltip c-tooltip--{{config().tooltipConfig?.position}}\">\n {{ config().tooltipConfig?.text ?? '' | translate }}\n </span>\n </button>\n</ng-container>\n\n<ng-template #normalButton>\n <ng-container *ngIf=\"config().href && !isDisabled(); else regularButton\">\n <a \n [class]=\"buttonClasses()\"\n [href]=\"config().href\"\n [target]=\"config().target || '_self'\"\n [attr.aria-label]=\"getAriaLabel() | translate\"\n [attr.title]=\"getTitle() | translate\"\n [attr.id]=\"config().id\"\n (click)=\"onClick($event)\"\n type=\"button\"\n [class.c-tooltip-container]=\"config().tooltipConfig?.hasTooltip\">\n \n <span \n *ngIf=\"hasIcon() && iconPositionLeft()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <ng-container *ngIf=\"shouldShowText()\">\n {{ (config().text ?? '') | translate }}\n </ng-container>\n \n <span \n *ngIf=\"hasIcon() && iconPositionRight()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <span *ngIf=\"config().loading\" class=\"spinner\"></span>\n\n <span *ngIf=\"config().tooltipConfig?.hasTooltip && !isDisabled()\" class=\"c-tooltip c-tooltip--{{config().tooltipConfig?.position}}\">\n {{ config().tooltipConfig?.text ?? '' | translate }}\n </span>\n </a>\n </ng-container>\n</ng-template>\n\n<ng-template #regularButton>\n <button \n [class]=\"buttonClasses()\"\n [attr.aria-label]=\"getAriaLabel() | translate\"\n [attr.title]=\"getTitle() | translate\"\n [attr.id]=\"config().id\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClick($event)\"\n type=\"button\"\n [class.c-tooltip-container]=\"config().tooltipConfig?.hasTooltip\">\n \n <span \n *ngIf=\"hasIcon() && iconPositionLeft()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <ng-container *ngIf=\"shouldShowText()\">\n {{ (config().text ?? '') | translate }}\n </ng-container>\n \n <span \n *ngIf=\"hasIcon() && iconPositionRight()\" \n [ngClass]=\"config().icon | coreIconCompat\">\n </span>\n \n <span *ngIf=\"config().loading\" class=\"spinner\"></span>\n\n <span *ngIf=\"config().tooltipConfig?.hasTooltip && !isDisabled()\" class=\"c-tooltip c-tooltip--{{config().tooltipConfig?.position}}\">\n {{ config().tooltipConfig?.text ?? '' | translate }}\n </span>\n </button>\n</ng-template> ", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }] });
|
|
6163
6367
|
}
|
|
6164
6368
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericButtonComponent, decorators: [{
|
|
6165
6369
|
type: Component,
|
|
@@ -6223,7 +6427,7 @@ class GenericTabsComponent {
|
|
|
6223
6427
|
return !!(this.customTabTemplate && this.config().allowCustomTemplate);
|
|
6224
6428
|
}
|
|
6225
6429
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6226
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericTabsComponent, isStandalone: true, selector: "nav[core-generic-tabs]", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, activeTabId: { classPropertyName: "activeTabId", publicName: "activeTabId", isSignal: true, isRequired: false, transformFunction: null }, hasTabErrors: { classPropertyName: "hasTabErrors", publicName: "hasTabErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tabClick: "tabClick", tabChange: "tabChange" }, host: { properties: { "class": "config().containerClass" } }, queries: [{ propertyName: "customTabTemplate", first: true, predicate: ["customTabTemplate"], descendants: true }], ngImport: i0, template: "<ul [class]=\"config().listClass\">\n @for (tab of config().tabs; track tab.id; let i = $index) {\n <li [class]=\"config().itemClass\">\n @if (hasCustomTemplate()) {\n <ng-container \n [ngTemplateOutlet]=\"customTabTemplate || null\" \n [ngTemplateOutletContext]=\"{\n $implicit: tab,\n index: i,\n isActive: isTabActive(tab),\n onClick: onTabClick.bind(this, tab, i)\n }\">\n </ng-container>\n } @else {\n <!-- DEV: Aplicar componente button generico -->\n <button\n type=\"button\"\n [class]=\"getTabClasses(tab)\"\n [disabled]=\"tab.disabled\"\n (click)=\"onTabClick(tab, i, $event)\"\n >\n @if (tab.translationKey) {\n {{ tab.translationKey | translate }}\n } @else {\n {{ getTabLabel(tab) }}\n }\n @if (hasTabErrors()(tab.id)) {\n <span class=\"icon-alert-circle\"></span>\n }\n </button>\n }\n </li>\n }\n</ul> ", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
6430
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericTabsComponent, isStandalone: true, selector: "nav[core-generic-tabs]", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, activeTabId: { classPropertyName: "activeTabId", publicName: "activeTabId", isSignal: true, isRequired: false, transformFunction: null }, hasTabErrors: { classPropertyName: "hasTabErrors", publicName: "hasTabErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tabClick: "tabClick", tabChange: "tabChange" }, host: { properties: { "class": "config().containerClass" } }, queries: [{ propertyName: "customTabTemplate", first: true, predicate: ["customTabTemplate"], descendants: true }], ngImport: i0, template: "<ul [class]=\"config().listClass\">\n @for (tab of config().tabs; track tab.id; let i = $index) {\n <li [class]=\"config().itemClass\">\n @if (hasCustomTemplate()) {\n <ng-container \n [ngTemplateOutlet]=\"customTabTemplate || null\" \n [ngTemplateOutletContext]=\"{\n $implicit: tab,\n index: i,\n isActive: isTabActive(tab),\n onClick: onTabClick.bind(this, tab, i)\n }\">\n </ng-container>\n } @else {\n <!-- DEV: Aplicar componente button generico -->\n <button\n type=\"button\"\n [class]=\"getTabClasses(tab)\"\n [disabled]=\"tab.disabled\"\n (click)=\"onTabClick(tab, i, $event)\"\n >\n @if (tab.translationKey) {\n {{ tab.translationKey | translate }}\n } @else {\n {{ getTabLabel(tab) }}\n }\n @if (hasTabErrors()(tab.id)) {\n <span class=\"icon-alert-circle\"></span>\n }\n </button>\n }\n </li>\n }\n</ul> ", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6227
6431
|
}
|
|
6228
6432
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericTabsComponent, decorators: [{
|
|
6229
6433
|
type: Component,
|
|
@@ -6683,7 +6887,7 @@ class GenericStepsComponent {
|
|
|
6683
6887
|
.join('; ');
|
|
6684
6888
|
}
|
|
6685
6889
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericStepsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6686
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericStepsComponent, isStandalone: true, selector: "core-generic-steps", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, useService: { classPropertyName: "useService", publicName: "useService", isSignal: true, isRequired: false, transformFunction: null }, instanceId: { classPropertyName: "instanceId", publicName: "instanceId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stepClick: "stepClick", stepChange: "stepChange", serviceStepChange: "serviceStepChange" }, usesOnChanges: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<nav class=\"c-steps-container\" [class]=\"config().customClass\" [style]=\"getCustomStyles()\">\n <ol class=\"c-steps\" [class]=\"'c-steps--' + (config().layout || 'horizontal') + ' c-steps--' + (config().size || StepSize.MEDIUM)\">\n @for (step of currentSteps(); track step.id; let i = $index) {\n <li class=\"c-steps__step\">\n <button \n type=\"button\"\n class=\"c-steps__item\"\n [class]=\"getStepClasses(step)\"\n [disabled]=\"step.disabled\"\n [title]=\"step.tooltip || step.title\"\n (click)=\"onStepClick(step, i, $event)\"\n [attr.data-step-id]=\"step.id\">\n \n <span class=\"c-steps__num\" [class]=\"'c-steps__num--' + step.type\" [style]=\"step.id === currentActiveStepId() ? '--step-border: var(--step-active-border); font-weight: 800' : ''\">\n @if (step.type === StepType.ICON || step.status === StepStatus.COMPLETE) {\n <i [ngClass]=\"getStepContent(step) | coreIconCompat\"></i>\n } @else {\n @if (shouldTranslateContent(step)) {\n <strong *ngIf=\"step.id === currentActiveStepId()\">{{ getTranslatedStepContent(step) | translate }}</strong>\n <span *ngIf=\"step.id !== currentActiveStepId()\">{{ getTranslatedStepContent(step) | translate }}</span>\n } @else {\n <strong *ngIf=\"step.id === currentActiveStepId()\">{{ getStepContent(step) }}</strong>\n <span *ngIf=\"step.id !== currentActiveStepId()\">{{ getStepContent(step) }}</span>\n }\n }\n </span>\n \n @if (config().showLabels !== false) {\n <span class=\"c-steps__text\">{{ step.title | translate }}</span>\n }\n </button>\n \n @if (config().showConnectors !== false && i < currentSteps().length - 1) {\n <div class=\"c-steps__connector\" [class]=\"getConnectorClasses(i)\"></div>\n }\n </li>\n }\n </ol>\n</nav>\n\n@if (activeStep()) {\n <div class=\"c-steps__content\" [attr.data-active-step]=\"currentActiveStepId()\">\n <ng-content></ng-content>\n </div>\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
6890
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericStepsComponent, isStandalone: true, selector: "core-generic-steps", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, useService: { classPropertyName: "useService", publicName: "useService", isSignal: true, isRequired: false, transformFunction: null }, instanceId: { classPropertyName: "instanceId", publicName: "instanceId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stepClick: "stepClick", stepChange: "stepChange", serviceStepChange: "serviceStepChange" }, usesOnChanges: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<nav class=\"c-steps-container\" [class]=\"config().customClass\" [style]=\"getCustomStyles()\">\n <ol class=\"c-steps\" [class]=\"'c-steps--' + (config().layout || 'horizontal') + ' c-steps--' + (config().size || StepSize.MEDIUM)\">\n @for (step of currentSteps(); track step.id; let i = $index) {\n <li class=\"c-steps__step\">\n <button \n type=\"button\"\n class=\"c-steps__item\"\n [class]=\"getStepClasses(step)\"\n [disabled]=\"step.disabled\"\n [title]=\"step.tooltip || step.title\"\n (click)=\"onStepClick(step, i, $event)\"\n [attr.data-step-id]=\"step.id\">\n \n <span class=\"c-steps__num\" [class]=\"'c-steps__num--' + step.type\" [style]=\"step.id === currentActiveStepId() ? '--step-border: var(--step-active-border); font-weight: 800' : ''\">\n @if (step.type === StepType.ICON || step.status === StepStatus.COMPLETE) {\n <i [ngClass]=\"getStepContent(step) | coreIconCompat\"></i>\n } @else {\n @if (shouldTranslateContent(step)) {\n <strong *ngIf=\"step.id === currentActiveStepId()\">{{ getTranslatedStepContent(step) | translate }}</strong>\n <span *ngIf=\"step.id !== currentActiveStepId()\">{{ getTranslatedStepContent(step) | translate }}</span>\n } @else {\n <strong *ngIf=\"step.id === currentActiveStepId()\">{{ getStepContent(step) }}</strong>\n <span *ngIf=\"step.id !== currentActiveStepId()\">{{ getStepContent(step) }}</span>\n }\n }\n </span>\n \n @if (config().showLabels !== false) {\n <span class=\"c-steps__text\">{{ step.title | translate }}</span>\n }\n </button>\n \n @if (config().showConnectors !== false && i < currentSteps().length - 1) {\n <div class=\"c-steps__connector\" [class]=\"getConnectorClasses(i)\"></div>\n }\n </li>\n }\n </ol>\n</nav>\n\n@if (activeStep()) {\n <div class=\"c-steps__content\" [attr.data-active-step]=\"currentActiveStepId()\">\n <ng-content></ng-content>\n </div>\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
6687
6891
|
}
|
|
6688
6892
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericStepsComponent, decorators: [{
|
|
6689
6893
|
type: Component,
|
|
@@ -7880,7 +8084,7 @@ class GenericModalComponent {
|
|
|
7880
8084
|
});
|
|
7881
8085
|
}
|
|
7882
8086
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7883
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericModalComponent, isStandalone: true, selector: "core-generic-modal", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: true, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: false, transformFunction: null }, tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, customTemplate: { classPropertyName: "customTemplate", publicName: "customTemplate", isSignal: true, isRequired: false, transformFunction: null }, customViewTemplate: { classPropertyName: "customViewTemplate", publicName: "customViewTemplate", isSignal: true, isRequired: false, transformFunction: null }, finalStepTemplate: { classPropertyName: "finalStepTemplate", publicName: "finalStepTemplate", isSignal: true, isRequired: false, transformFunction: null }, buttonConfig: { classPropertyName: "buttonConfig", publicName: "buttonConfig", isSignal: true, isRequired: false, transformFunction: null }, modelFactory: { classPropertyName: "modelFactory", publicName: "modelFactory", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, customHasChanges: { classPropertyName: "customHasChanges", publicName: "customHasChanges", isSignal: true, isRequired: false, transformFunction: null }, stepValidationEnabled: { classPropertyName: "stepValidationEnabled", publicName: "stepValidationEnabled", isSignal: true, isRequired: false, transformFunction: null }, allowFreeNavigation: { classPropertyName: "allowFreeNavigation", publicName: "allowFreeNavigation", isSignal: true, isRequired: false, transformFunction: null }, autoMarkCompleted: { classPropertyName: "autoMarkCompleted", publicName: "autoMarkCompleted", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { save: "save", close: "close", modalData: "modalData" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-modal\" [class.is-visible]=\"isOpen()\" [class.is-closing]=\"isClosing()\">\n <div class=\"c-modal__overlay\" (click)=\"onClose()\"></div>\n <div class=\"c-modal__holder\">\n <div class=\"c-modal__header\">\n <p class=\"c-modal__title\">\n {{ title() | translate }}\n </p>\n <core-generic-button\n [config]=\"closeButtonConfig()\"\n (buttonClick)=\"onClose()\">\n </core-generic-button>\n </div>\n <div class=\"c-modal__body\">\n @if (editedData() || customTemplate()) {\n @if (hasTabs()) {\n <nav core-generic-tabs\n [config]=\"genericTabsConfig()\"\n [activeTabId]=\"activeTabId()\"\n [hasTabErrors]=\"hasTabErrorsFunction\"\n (tabChange)=\"onGenericTabChange($event)\">\n </nav>\n } @else if (hasSteps()) {\n <core-generic-steps\n [config]=\"stepsConfig()\">\n </core-generic-steps>\n }\n\n @if (customTemplate()) {\n <div class=\"c-entry-group\">\n <ng-container\n [ngTemplateOutlet]=\"customTemplate()\"\n [ngTemplateOutletContext]=\"{\n $implicit: editedData(),\n mode: mode(),\n updateField: onFieldValueChange.bind(this),\n save: onSave.bind(this),\n close: onClose.bind(this),\n activeTabId: activeTabId(),\n onTabChange: onTabChange.bind(this),\n getFieldErrors: getFieldErrors.bind(this),\n validateAllFields: validateAllFields.bind(this),\n hasErrors: hasErrors(),\n setCustomHasChanges: setCustomHasChanges.bind(this)\n }\"\n ></ng-container>\n </div> <!-- .c-entry-group -->\n } @else if (editedData()) {\n @if (mode() === ModalMode.VIEW) {\n <core-data-list\n [items]=\"dataListItems()\"\n [data]=\"editedData()\"\n [customTemplate]=\"customViewTemplate()\"\n [emptyMessage]=\"'modal.noData'\"\n ></core-data-list>\n } @else {\n @if (hasSteps() && currentStep()?.customTemplate) {\n <!-- Renderizar template personalizado del step -->\n <div class=\"c-entry-group\">\n <ng-container\n [ngTemplateOutlet]=\"currentStep()!.customTemplate!\"\n [ngTemplateOutletContext]=\"{\n $implicit: editedData(),\n mode: mode(),\n updateField: onFieldValueChange.bind(this),\n save: onSave.bind(this),\n close: onClose.bind(this),\n getFieldErrors: getFieldErrors.bind(this)\n }\"\n ></ng-container>\n </div>\n } @else {\n <!-- Renderizar campos normales -->\n <div class=\"c-entry-group\">\n @for (field of currentFields(); track field.key) {\n @if (getFieldConfig(field).visible) {\n <div\n coreDynamicField\n [field]=\"getFieldConfig(field)\"\n [value]=\"editedData()![field.key]\"\n [mode]=\"mode()\"\n [errors]=\"getFieldErrors(field.key)\"\n [rowData]=\"editedData()\"\n [formValue]=\"editedData()\"\n (valueChange)=\"onFieldValueChange(field.key, $event)\"\n (onBlurEvent)=\"validateAllFields()\"\n (selectionChange)=\"onSelectionChange($event)\"\n ></div>\n }\n }\n </div> <!-- .c-entry-group -->\n }\n }\n }\n } @else {\n <p>{{ 'modal.noData' | translate }}</p>\n }\n </div>\n <div class=\"c-modal__bottom\">\n @if (buttonConfig().length > 0) {\n @for (button of buttonConfig(); track $index) {\n <core-generic-button\n [config]=\"getCustomButtonConfig(button)\"\n [data]=\"data()\"\n (buttonClick)=\"onCustomButtonClick(button)\">\n </core-generic-button>\n }\n } @else {\n @if (hasSteps()) {\n <!-- Botones para navegaci\u00F3n de steps -->\n <core-generic-button\n [config]=\"defaultCancelButtonConfig()\"\n (buttonClick)=\"onClose()\">\n </core-generic-button>\n @if (currentStepIndex() > 0) {\n <core-generic-button\n [config]=\"prevStepButtonConfig()\"\n (buttonClick)=\"goToPreviousStep()\">\n </core-generic-button>\n }\n <core-generic-button\n [config]=\"nextStepButtonConfig()\"\n (buttonClick)=\"goToNextStep()\">\n </core-generic-button>\n } @else {\n <!-- Botones normales para modales sin steps -->\n <core-generic-button\n [config]=\"defaultCancelButtonConfig()\"\n (buttonClick)=\"onClose()\">\n </core-generic-button>\n @if (mode() !== ModalMode.VIEW && showSaveButton()) {\n <core-generic-button\n [config]=\"defaultSaveButtonConfig()\"\n (buttonClick)=\"onSave()\">\n </core-generic-button>\n }\n }\n }\n </div>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
8087
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericModalComponent, isStandalone: true, selector: "core-generic-modal", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: true, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: false, transformFunction: null }, tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, customTemplate: { classPropertyName: "customTemplate", publicName: "customTemplate", isSignal: true, isRequired: false, transformFunction: null }, customViewTemplate: { classPropertyName: "customViewTemplate", publicName: "customViewTemplate", isSignal: true, isRequired: false, transformFunction: null }, finalStepTemplate: { classPropertyName: "finalStepTemplate", publicName: "finalStepTemplate", isSignal: true, isRequired: false, transformFunction: null }, buttonConfig: { classPropertyName: "buttonConfig", publicName: "buttonConfig", isSignal: true, isRequired: false, transformFunction: null }, modelFactory: { classPropertyName: "modelFactory", publicName: "modelFactory", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, customHasChanges: { classPropertyName: "customHasChanges", publicName: "customHasChanges", isSignal: true, isRequired: false, transformFunction: null }, stepValidationEnabled: { classPropertyName: "stepValidationEnabled", publicName: "stepValidationEnabled", isSignal: true, isRequired: false, transformFunction: null }, allowFreeNavigation: { classPropertyName: "allowFreeNavigation", publicName: "allowFreeNavigation", isSignal: true, isRequired: false, transformFunction: null }, autoMarkCompleted: { classPropertyName: "autoMarkCompleted", publicName: "autoMarkCompleted", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { save: "save", close: "close", modalData: "modalData" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-modal\" [class.is-visible]=\"isOpen()\" [class.is-closing]=\"isClosing()\">\n <div class=\"c-modal__overlay\" (click)=\"onClose()\"></div>\n <div class=\"c-modal__holder\">\n <div class=\"c-modal__header\">\n <p class=\"c-modal__title\">\n {{ title() | translate }}\n </p>\n <core-generic-button\n [config]=\"closeButtonConfig()\"\n (buttonClick)=\"onClose()\">\n </core-generic-button>\n </div>\n <div class=\"c-modal__body\">\n @if (editedData() || customTemplate()) {\n @if (hasTabs()) {\n <nav core-generic-tabs\n [config]=\"genericTabsConfig()\"\n [activeTabId]=\"activeTabId()\"\n [hasTabErrors]=\"hasTabErrorsFunction\"\n (tabChange)=\"onGenericTabChange($event)\">\n </nav>\n } @else if (hasSteps()) {\n <core-generic-steps\n [config]=\"stepsConfig()\">\n </core-generic-steps>\n }\n\n @if (customTemplate()) {\n <div class=\"c-entry-group\">\n <ng-container\n [ngTemplateOutlet]=\"customTemplate()\"\n [ngTemplateOutletContext]=\"{\n $implicit: editedData(),\n mode: mode(),\n updateField: onFieldValueChange.bind(this),\n save: onSave.bind(this),\n close: onClose.bind(this),\n activeTabId: activeTabId(),\n onTabChange: onTabChange.bind(this),\n getFieldErrors: getFieldErrors.bind(this),\n validateAllFields: validateAllFields.bind(this),\n hasErrors: hasErrors(),\n setCustomHasChanges: setCustomHasChanges.bind(this)\n }\"\n ></ng-container>\n </div> <!-- .c-entry-group -->\n } @else if (editedData()) {\n @if (mode() === ModalMode.VIEW) {\n <core-data-list\n [items]=\"dataListItems()\"\n [data]=\"editedData()\"\n [customTemplate]=\"customViewTemplate()\"\n [emptyMessage]=\"'modal.noData'\"\n ></core-data-list>\n } @else {\n @if (hasSteps() && currentStep()?.customTemplate) {\n <!-- Renderizar template personalizado del step -->\n <div class=\"c-entry-group\">\n <ng-container\n [ngTemplateOutlet]=\"currentStep()!.customTemplate!\"\n [ngTemplateOutletContext]=\"{\n $implicit: editedData(),\n mode: mode(),\n updateField: onFieldValueChange.bind(this),\n save: onSave.bind(this),\n close: onClose.bind(this),\n getFieldErrors: getFieldErrors.bind(this)\n }\"\n ></ng-container>\n </div>\n } @else {\n <!-- Renderizar campos normales -->\n <div class=\"c-entry-group\">\n @for (field of currentFields(); track field.key) {\n @if (getFieldConfig(field).visible) {\n <div\n coreDynamicField\n [field]=\"getFieldConfig(field)\"\n [value]=\"editedData()![field.key]\"\n [mode]=\"mode()\"\n [errors]=\"getFieldErrors(field.key)\"\n [rowData]=\"editedData()\"\n [formValue]=\"editedData()\"\n (valueChange)=\"onFieldValueChange(field.key, $event)\"\n (onBlurEvent)=\"validateAllFields()\"\n (selectionChange)=\"onSelectionChange($event)\"\n ></div>\n }\n }\n </div> <!-- .c-entry-group -->\n }\n }\n }\n } @else {\n <p>{{ 'modal.noData' | translate }}</p>\n }\n </div>\n <div class=\"c-modal__bottom\">\n @if (buttonConfig().length > 0) {\n @for (button of buttonConfig(); track $index) {\n <core-generic-button\n [config]=\"getCustomButtonConfig(button)\"\n [data]=\"data()\"\n (buttonClick)=\"onCustomButtonClick(button)\">\n </core-generic-button>\n }\n } @else {\n @if (hasSteps()) {\n <!-- Botones para navegaci\u00F3n de steps -->\n <core-generic-button\n [config]=\"defaultCancelButtonConfig()\"\n (buttonClick)=\"onClose()\">\n </core-generic-button>\n @if (currentStepIndex() > 0) {\n <core-generic-button\n [config]=\"prevStepButtonConfig()\"\n (buttonClick)=\"goToPreviousStep()\">\n </core-generic-button>\n }\n <core-generic-button\n [config]=\"nextStepButtonConfig()\"\n (buttonClick)=\"goToNextStep()\">\n </core-generic-button>\n } @else {\n <!-- Botones normales para modales sin steps -->\n <core-generic-button\n [config]=\"defaultCancelButtonConfig()\"\n (buttonClick)=\"onClose()\">\n </core-generic-button>\n @if (mode() !== ModalMode.VIEW && showSaveButton()) {\n <core-generic-button\n [config]=\"defaultSaveButtonConfig()\"\n (buttonClick)=\"onSave()\">\n </core-generic-button>\n }\n }\n }\n </div>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "directive", type: DynamicFieldDirective, selector: "[coreDynamicField]", inputs: ["field", "value", "mode", "errors", "rowData", "formValue"], outputs: ["valueChange", "onBlurEvent", "onEnterEvent", "selectionChange"] }, { kind: "component", type: GenericTabsComponent, selector: "nav[core-generic-tabs]", inputs: ["config", "activeTabId", "hasTabErrors"], outputs: ["tabClick", "tabChange"] }, { kind: "component", type: GenericStepsComponent, selector: "core-generic-steps", inputs: ["config", "useService", "instanceId"], outputs: ["stepClick", "stepChange", "serviceStepChange"] }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }, { kind: "component", type: DataListComponent, selector: "core-data-list", inputs: ["items", "fields", "data", "customTemplate", "showEmptyMessage", "emptyMessage", "cssClasses"] }] });
|
|
7884
8088
|
}
|
|
7885
8089
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericModalComponent, decorators: [{
|
|
7886
8090
|
type: Component,
|
|
@@ -10065,7 +10269,7 @@ class GenericPaginationComponent {
|
|
|
10065
10269
|
return pages;
|
|
10066
10270
|
}
|
|
10067
10271
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericPaginationComponent, deps: [{ token: PaginationService }, { token: TableDataService }], target: i0.ɵɵFactoryTarget.Component });
|
|
10068
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericPaginationComponent, isStandalone: true, selector: "core-generic-pagination", inputs: { tableId: { classPropertyName: "tableId", publicName: "tableId", isSignal: true, isRequired: false, transformFunction: null }, isServerSide: { classPropertyName: "isServerSide", publicName: "isServerSide", isSignal: true, isRequired: false, transformFunction: null }, showPagination: { classPropertyName: "showPagination", publicName: "showPagination", isSignal: true, isRequired: false, transformFunction: null }, showPageSizeSelector: { classPropertyName: "showPageSizeSelector", publicName: "showPageSizeSelector", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "@if (getTotalItems() > 0) {\n <div class=\"c-pagination\">\n <p class=\"c-pagination__summary\">\n {{ 'pagination.viewing' | translate }} \n <span>{{ getDisplayedRange().start }}-{{ getDisplayedRange().end }}</span> \n {{ 'pagination.of' | translate }} \n <span>{{ getTotalItems() }}</span>\n </p>\n \n @if (showPageSizeSelector()) {\n <div class=\"c-pagination__select\">\n <label for=\"page-size-{{ tableId }}\" class=\"c-pagination__summary\">\n {{ 'pagination.itemsPerPage' | translate }}:\n </label>\n <div class=\"c-pagination__select-holder\">\n <select \n id=\"page-size-{{ tableId }}\"\n class=\"c-input \"\n [value]=\"getPageSize()\"\n (change)=\"handlePageSizeChange($event)\">\n @for (option of getPageSizeOptions(); track option) {\n <option [value]=\"option\">{{ option }}</option>\n }\n </select>\n </div>\n </div>\n }\n\n @if (showPagination()) {\n <nav class=\"c-pager\">\n <ul class=\"c-pager__list\">\n <li class=\"c-pager__item\">\n <a class=\"c-pager__link\" \n [class.disabled]=\"getCurrentPage() === 1\" \n (click)=\"onPageChange(getCurrentPage() - 1)\">\n <span class=\"icon-arrow-left\"></span>\n </a>\n </li>\n\n <ng-container *ngFor=\"let page of getVisiblePages()\">\n <li class=\"c-pager__item\">\n @if (page === '...') {\n <span class=\"c-pager__link\">...</span>\n } @else {\n <a class=\"c-pager__link\" \n [class.is-active]=\"getCurrentPage() === page\"\n (click)=\"onPageChange(+page)\">\n {{ page }}\n </a>\n }\n </li>\n </ng-container>\n\n <li class=\"c-pager__item\">\n <a class=\"c-pager__link\" \n [class.disabled]=\"getCurrentPage() === getTotalPages()\"\n (click)=\"onPageChange(getCurrentPage() + 1)\">\n <span class=\"icon-arrow-right\"></span>\n </a>\n </li>\n </ul>\n </nav>\n }\n </div>\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
10272
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericPaginationComponent, isStandalone: true, selector: "core-generic-pagination", inputs: { tableId: { classPropertyName: "tableId", publicName: "tableId", isSignal: true, isRequired: false, transformFunction: null }, isServerSide: { classPropertyName: "isServerSide", publicName: "isServerSide", isSignal: true, isRequired: false, transformFunction: null }, showPagination: { classPropertyName: "showPagination", publicName: "showPagination", isSignal: true, isRequired: false, transformFunction: null }, showPageSizeSelector: { classPropertyName: "showPageSizeSelector", publicName: "showPageSizeSelector", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "@if (getTotalItems() > 0) {\n <div class=\"c-pagination\">\n <p class=\"c-pagination__summary\">\n {{ 'pagination.viewing' | translate }} \n <span>{{ getDisplayedRange().start }}-{{ getDisplayedRange().end }}</span> \n {{ 'pagination.of' | translate }} \n <span>{{ getTotalItems() }}</span>\n </p>\n \n @if (showPageSizeSelector()) {\n <div class=\"c-pagination__select\">\n <label for=\"page-size-{{ tableId }}\" class=\"c-pagination__summary\">\n {{ 'pagination.itemsPerPage' | translate }}:\n </label>\n <div class=\"c-pagination__select-holder\">\n <select \n id=\"page-size-{{ tableId }}\"\n class=\"c-input \"\n [value]=\"getPageSize()\"\n (change)=\"handlePageSizeChange($event)\">\n @for (option of getPageSizeOptions(); track option) {\n <option [value]=\"option\">{{ option }}</option>\n }\n </select>\n </div>\n </div>\n }\n\n @if (showPagination()) {\n <nav class=\"c-pager\">\n <ul class=\"c-pager__list\">\n <li class=\"c-pager__item\">\n <a class=\"c-pager__link\" \n [class.disabled]=\"getCurrentPage() === 1\" \n (click)=\"onPageChange(getCurrentPage() - 1)\">\n <span class=\"icon-arrow-left\"></span>\n </a>\n </li>\n\n <ng-container *ngFor=\"let page of getVisiblePages()\">\n <li class=\"c-pager__item\">\n @if (page === '...') {\n <span class=\"c-pager__link\">...</span>\n } @else {\n <a class=\"c-pager__link\" \n [class.is-active]=\"getCurrentPage() === page\"\n (click)=\"onPageChange(+page)\">\n {{ page }}\n </a>\n }\n </li>\n </ng-container>\n\n <li class=\"c-pager__item\">\n <a class=\"c-pager__link\" \n [class.disabled]=\"getCurrentPage() === getTotalPages()\"\n (click)=\"onPageChange(getCurrentPage() + 1)\">\n <span class=\"icon-arrow-right\"></span>\n </a>\n </li>\n </ul>\n </nav>\n }\n </div>\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
10069
10273
|
}
|
|
10070
10274
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericPaginationComponent, decorators: [{
|
|
10071
10275
|
type: Component,
|
|
@@ -10160,7 +10364,7 @@ class ConfirmationDialogComponent {
|
|
|
10160
10364
|
}
|
|
10161
10365
|
}
|
|
10162
10366
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ConfirmationDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10163
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: ConfirmationDialogComponent, isStandalone: true, selector: "core-confirmation-dialog", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { confirm: "confirm", cancel: "cancel" }, queries: [{ propertyName: "customContentTemplate", first: true, predicate: ["customContent"], descendants: true }], viewQueries: [{ propertyName: "popupElement", first: true, predicate: ["popup"], descendants: true }, { propertyName: "overlayElement", first: true, predicate: ["overlay"], descendants: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-popup\" \n [class.c-popup--xl]=\"config().size === 'xl'\" \n [class.is-visible]=\"isOpen()\" \n [ngClass]=\"config().customClass\"\n #popup \n *ngIf=\"isOpen()\">\n <div class=\"c-popup__overlay\" (click)=\"onCancel()\" #overlay></div>\n <div class=\"c-popup__holder\">\n @if(config().showCloseButton) {\n <core-generic-button\n [config]=\"closeButtonConfig()\"\n (buttonClick)=\"onCancel()\">\n </core-generic-button>\n }\n @if (config().icon) {\n <span class=\"c-popup__icon\" [ngClass]=\"config().icon | coreIconCompat\"></span>\n }\n\n <p class=\"c-popup__title u-heading u-fz--600\">\n {{ config().title | translate: config().messageParams }}\n </p>\n\n @if (config().customTemplate) {\n <ng-container *ngTemplateOutlet=\"config().customTemplate!; context: config().customTemplateContext\"></ng-container>\n } @else {\n \n @if (config().message) {\n <p class=\"c-popup__text u-text\">\n {{ config().message ?? '' | translate: config().messageParams }}\n </p>\n }\n\n @if (config().inputConfig) {\n <label class=\"c-popup__form c-entry-item\">\n <span class=\"c-entry-text\">\n {{ config().inputConfig?.label ?? '' | translate }}\n @if (!config().inputConfig?.validationValue) {\n <!-- Todo: D\u00F3nde est\u00E1 el .u-text--muted ? -->\n <span class=\"u-text--muted\"> ({{ 'common.optional' | translate }})</span>\n }\n </span>\n <input \n class=\"c-entry-input\"\n type=\"text\"\n [placeholder]=\"config().inputConfig?.placeholder ?? '' | translate\"\n [(ngModel)]=\"inputValue\"\n (ngModelChange)=\"onInputChange($event)\"\n [required]=\"!!config().inputConfig?.validationValue\"\n >\n </label>\n }\n\n }\n\n <div class=\"c-popup__btns u-flex u-push-t--xl\">\n @if (config().showCancelButton !== false) {\n <core-generic-button\n [config]=\"cancelButtonConfig()\"\n (buttonClick)=\"onCancel()\">\n </core-generic-button>\n }\n @if (config().showConfirmButton !== false) {\n <core-generic-button\n [config]=\"confirmButtonConfig()\"\n (buttonClick)=\"onConfirm()\">\n </core-generic-button>\n }\n </div>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
10367
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: ConfirmationDialogComponent, isStandalone: true, selector: "core-confirmation-dialog", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { confirm: "confirm", cancel: "cancel" }, queries: [{ propertyName: "customContentTemplate", first: true, predicate: ["customContent"], descendants: true }], viewQueries: [{ propertyName: "popupElement", first: true, predicate: ["popup"], descendants: true }, { propertyName: "overlayElement", first: true, predicate: ["overlay"], descendants: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-popup\" \n [class.c-popup--xl]=\"config().size === 'xl'\" \n [class.is-visible]=\"isOpen()\" \n [ngClass]=\"config().customClass\"\n #popup \n *ngIf=\"isOpen()\">\n <div class=\"c-popup__overlay\" (click)=\"onCancel()\" #overlay></div>\n <div class=\"c-popup__holder\">\n @if(config().showCloseButton) {\n <core-generic-button\n [config]=\"closeButtonConfig()\"\n (buttonClick)=\"onCancel()\">\n </core-generic-button>\n }\n @if (config().icon) {\n <span class=\"c-popup__icon\" [ngClass]=\"config().icon | coreIconCompat\"></span>\n }\n\n <p class=\"c-popup__title u-heading u-fz--600\">\n {{ config().title | translate: config().messageParams }}\n </p>\n\n @if (config().customTemplate) {\n <ng-container *ngTemplateOutlet=\"config().customTemplate!; context: config().customTemplateContext\"></ng-container>\n } @else {\n \n @if (config().message) {\n <p class=\"c-popup__text u-text\">\n {{ config().message ?? '' | translate: config().messageParams }}\n </p>\n }\n\n @if (config().inputConfig) {\n <label class=\"c-popup__form c-entry-item\">\n <span class=\"c-entry-text\">\n {{ config().inputConfig?.label ?? '' | translate }}\n @if (!config().inputConfig?.validationValue) {\n <!-- Todo: D\u00F3nde est\u00E1 el .u-text--muted ? -->\n <span class=\"u-text--muted\"> ({{ 'common.optional' | translate }})</span>\n }\n </span>\n <input \n class=\"c-entry-input\"\n type=\"text\"\n [placeholder]=\"config().inputConfig?.placeholder ?? '' | translate\"\n [(ngModel)]=\"inputValue\"\n (ngModelChange)=\"onInputChange($event)\"\n [required]=\"!!config().inputConfig?.validationValue\"\n >\n </label>\n }\n\n }\n\n <div class=\"c-popup__btns u-flex u-push-t--xl\">\n @if (config().showCancelButton !== false) {\n <core-generic-button\n [config]=\"cancelButtonConfig()\"\n (buttonClick)=\"onCancel()\">\n </core-generic-button>\n }\n @if (config().showConfirmButton !== false) {\n <core-generic-button\n [config]=\"confirmButtonConfig()\"\n (buttonClick)=\"onConfirm()\">\n </core-generic-button>\n }\n </div>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }] });
|
|
10164
10368
|
}
|
|
10165
10369
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
10166
10370
|
type: Component,
|
|
@@ -10916,7 +11120,7 @@ class FilterModalComponent {
|
|
|
10916
11120
|
overlay.addEventListener('animationend', onAnimationEnd);
|
|
10917
11121
|
}
|
|
10918
11122
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FilterModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10919
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: FilterModalComponent, isStandalone: true, selector: "core-filter-modal", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null }, currentFilterValues: { classPropertyName: "currentFilterValues", publicName: "currentFilterValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close", filterChange: "filterChange", clearFilters: "clearFilters", globalFilterChange: "globalFilterChange" }, usesOnChanges: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-modal\" [class.is-visible]=\"isOpen()\" [class.is-closing]=\"isClosing()\">\n <div class=\"c-modal__overlay\" (click)=\"onClose()\"></div>\n <div class=\"c-modal__holder\">\n <div class=\"c-modal__header\">\n <p class=\"c-modal__title\">\n {{ \"table.filterBy\" | translate }}\n </p>\n <core-generic-button\n [config]=\"closeButtonConfig()\"\n (buttonClick)=\"onClose()\">\n </core-generic-button>\n </div>\n <div class=\"c-modal__body\">\n <form class=\"c-entry-group\">\n @for (filter of visibleFilters(); track filter.key.toString() + '-' + clearTrigger()) {\n <div coreDynamicField [field]=\"getFieldConfig(filter)\" [value]=\"getFieldValue(filter.key.toString())\"\n [mode]=\"ModalMode.FILTER\" (valueChange)=\"updateFilter(filter.key.toString(), $event)\">\n </div>\n }\n </form>\n </div>\n <div class=\"c-modal__bottom\">\n <core-generic-button\n [config]=\"clearButtonConfig()\"\n (buttonClick)=\"onClear()\">\n </core-generic-button>\n <core-generic-button\n [config]=\"applyButtonConfig()\"\n (buttonClick)=\"onApply()\">\n </core-generic-button>\n </div>\n </div>\n</div>", styles: [".c-link.disabled{opacity:.5;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
11123
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: FilterModalComponent, isStandalone: true, selector: "core-filter-modal", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null }, currentFilterValues: { classPropertyName: "currentFilterValues", publicName: "currentFilterValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close", filterChange: "filterChange", clearFilters: "clearFilters", globalFilterChange: "globalFilterChange" }, usesOnChanges: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-modal\" [class.is-visible]=\"isOpen()\" [class.is-closing]=\"isClosing()\">\n <div class=\"c-modal__overlay\" (click)=\"onClose()\"></div>\n <div class=\"c-modal__holder\">\n <div class=\"c-modal__header\">\n <p class=\"c-modal__title\">\n {{ \"table.filterBy\" | translate }}\n </p>\n <core-generic-button\n [config]=\"closeButtonConfig()\"\n (buttonClick)=\"onClose()\">\n </core-generic-button>\n </div>\n <div class=\"c-modal__body\">\n <form class=\"c-entry-group\">\n @for (filter of visibleFilters(); track filter.key.toString() + '-' + clearTrigger()) {\n <div coreDynamicField [field]=\"getFieldConfig(filter)\" [value]=\"getFieldValue(filter.key.toString())\"\n [mode]=\"ModalMode.FILTER\" (valueChange)=\"updateFilter(filter.key.toString(), $event)\">\n </div>\n }\n </form>\n </div>\n <div class=\"c-modal__bottom\">\n <core-generic-button\n [config]=\"clearButtonConfig()\"\n (buttonClick)=\"onClear()\">\n </core-generic-button>\n <core-generic-button\n [config]=\"applyButtonConfig()\"\n (buttonClick)=\"onApply()\">\n </core-generic-button>\n </div>\n </div>\n</div>", styles: [".c-link.disabled{opacity:.5;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: DynamicFieldDirective, selector: "[coreDynamicField]", inputs: ["field", "value", "mode", "errors", "rowData", "formValue"], outputs: ["valueChange", "onBlurEvent", "onEnterEvent", "selectionChange"] }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }] });
|
|
10920
11124
|
}
|
|
10921
11125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FilterModalComponent, decorators: [{
|
|
10922
11126
|
type: Component,
|
|
@@ -12530,7 +12734,7 @@ class CoreManualRefreshComponent {
|
|
|
12530
12734
|
return this.lastUpdateTimeString();
|
|
12531
12735
|
}
|
|
12532
12736
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CoreManualRefreshComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12533
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CoreManualRefreshComponent, isStandalone: true, selector: "core-manual-refresh", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, refreshId: { classPropertyName: "refreshId", publicName: "refreshId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onRefresh: "onRefresh", timestampUpdated: "timestampUpdated" }, ngImport: i0, template: "<div class=\"c-refresh u-flex u-push-b\">\n @if (config().showLastUpdate && lastUpdateTimeString()) {\n <p class=\"u-text\">{{ lastUpdateLabel() | translate }}: {{ lastUpdateTimeString() }}</p>\n }\n <button class=\"c-icon-btn\" [attr.aria-label]=\"ariaLabel()\" (click)=\"onRefreshClick()\">\n <span class=\"icon-reload\"></span>\n </button>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
12737
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CoreManualRefreshComponent, isStandalone: true, selector: "core-manual-refresh", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, refreshId: { classPropertyName: "refreshId", publicName: "refreshId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onRefresh: "onRefresh", timestampUpdated: "timestampUpdated" }, ngImport: i0, template: "<div class=\"c-refresh u-flex u-push-b\">\n @if (config().showLastUpdate && lastUpdateTimeString()) {\n <p class=\"u-text\">{{ lastUpdateLabel() | translate }}: {{ lastUpdateTimeString() }}</p>\n }\n <button class=\"c-icon-btn\" [attr.aria-label]=\"ariaLabel()\" (click)=\"onRefreshClick()\">\n <span class=\"icon-reload\"></span>\n </button>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
12534
12738
|
}
|
|
12535
12739
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CoreManualRefreshComponent, decorators: [{
|
|
12536
12740
|
type: Component,
|
|
@@ -12573,7 +12777,7 @@ class GenericSwitchComponent {
|
|
|
12573
12777
|
this.valueChange.emit(option.value);
|
|
12574
12778
|
}
|
|
12575
12779
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12576
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericSwitchComponent, isStandalone: true, selector: "core-generic-switch", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, selectedValue: { classPropertyName: "selectedValue", publicName: "selectedValue", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"c-switch\" [attr.aria-label]=\"ariaLabel()\" role=\"group\">\n @for (option of options(); track option.value) {\n <button\n class=\"c-icon-btn\"\n [class]=\"option.icon || '' | coreIconCompat\"\n [class.is-active]=\"isSelected(option.value)\"\n [class.is-disabled]=\"option.disabled\"\n [attr.title]=\"option.tooltip || option.label || '' | translate\"\n [attr.aria-pressed]=\"isSelected(option.value)\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.data-value]=\"option.value\"\n (click)=\"onOptionClick(option)\"\n >\n @if (option.label && !option.icon) {\n {{ option.label | translate }}\n }\n </button>\n }\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
12780
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericSwitchComponent, isStandalone: true, selector: "core-generic-switch", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, selectedValue: { classPropertyName: "selectedValue", publicName: "selectedValue", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"c-switch\" [attr.aria-label]=\"ariaLabel()\" role=\"group\">\n @for (option of options(); track option.value) {\n <button\n class=\"c-icon-btn\"\n [class]=\"option.icon || '' | coreIconCompat\"\n [class.is-active]=\"isSelected(option.value)\"\n [class.is-disabled]=\"option.disabled\"\n [attr.title]=\"option.tooltip || option.label || '' | translate\"\n [attr.aria-pressed]=\"isSelected(option.value)\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.data-value]=\"option.value\"\n (click)=\"onOptionClick(option)\"\n >\n @if (option.label && !option.icon) {\n {{ option.label | translate }}\n }\n </button>\n }\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
12577
12781
|
}
|
|
12578
12782
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericSwitchComponent, decorators: [{
|
|
12579
12783
|
type: Component,
|
|
@@ -12718,7 +12922,7 @@ class FixedActionsMobileModalComponent {
|
|
|
12718
12922
|
return false;
|
|
12719
12923
|
}
|
|
12720
12924
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FixedActionsMobileModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12721
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: FixedActionsMobileModalComponent, isStandalone: true, selector: "core-fixed-actions-mobile-modal", ngImport: i0, template: "@if (isVisible()) {\n <div class=\"c-services-chat c-modal is-visible\">\n <div class=\"c-modal__overlay\" (click)=\"onOverlayClick($event)\"></div>\n <div class=\"c-modal__holder\">\n <div class=\"c-modal__header\">\n @if (modalData()?.title || modalData()?.subtitle) {\n <p class=\"c-modal__title\">\n {{ modalData()?.title }}\n @if (modalData()?.subtitle) {\n <br>\n <small>{{ modalData()?.subtitle }}</small>\n }\n </p>\n }\n <button \n type=\"button\" \n class=\"c-icon-btn c-modal__close\" \n aria-label=\"Cerrar\" \n title=\"Cerrar\"\n (click)=\"onClose()\">\n <span class=\"icon-cross-thin\"></span>\n </button>\n </div>\n <div class=\"c-modal__body\">\n <nav class=\"c-mobile-nav\">\n <ul>\n @for (action of visibleActions(); track $index) {\n <li class=\"c-mobile-nav__item\">\n <a \n class=\"c-mobile-nav__link\" \n [class.is-disabled]=\"isActionDisabled(action)\"\n [attr.aria-disabled]=\"isActionDisabled(action)\"\n href=\"javascript:void(0)\"\n (click)=\"onActionClick(action)\">\n @if (getActionIcon(action)) {\n <span [ngClass]=\"getActionIcon(action) | coreIconCompat\"></span>\n }\n {{ getActionLabel(action) | translate }}\n </a>\n </li>\n }\n </ul>\n </nav>\n </div>\n </div>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
12925
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: FixedActionsMobileModalComponent, isStandalone: true, selector: "core-fixed-actions-mobile-modal", ngImport: i0, template: "@if (isVisible()) {\n <div class=\"c-services-chat c-modal is-visible\">\n <div class=\"c-modal__overlay\" (click)=\"onOverlayClick($event)\"></div>\n <div class=\"c-modal__holder\">\n <div class=\"c-modal__header\">\n @if (modalData()?.title || modalData()?.subtitle) {\n <p class=\"c-modal__title\">\n {{ modalData()?.title }}\n @if (modalData()?.subtitle) {\n <br>\n <small>{{ modalData()?.subtitle }}</small>\n }\n </p>\n }\n <button \n type=\"button\" \n class=\"c-icon-btn c-modal__close\" \n aria-label=\"Cerrar\" \n title=\"Cerrar\"\n (click)=\"onClose()\">\n <span class=\"icon-cross-thin\"></span>\n </button>\n </div>\n <div class=\"c-modal__body\">\n <nav class=\"c-mobile-nav\">\n <ul>\n @for (action of visibleActions(); track $index) {\n <li class=\"c-mobile-nav__item\">\n <a \n class=\"c-mobile-nav__link\" \n [class.is-disabled]=\"isActionDisabled(action)\"\n [attr.aria-disabled]=\"isActionDisabled(action)\"\n href=\"javascript:void(0)\"\n (click)=\"onActionClick(action)\">\n @if (getActionIcon(action)) {\n <span [ngClass]=\"getActionIcon(action) | coreIconCompat\"></span>\n }\n {{ getActionLabel(action) | translate }}\n </a>\n </li>\n }\n </ul>\n </nav>\n </div>\n </div>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }] });
|
|
12722
12926
|
}
|
|
12723
12927
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FixedActionsMobileModalComponent, decorators: [{
|
|
12724
12928
|
type: Component,
|
|
@@ -14990,7 +15194,7 @@ class GenericTableComponent {
|
|
|
14990
15194
|
};
|
|
14991
15195
|
}
|
|
14992
15196
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14993
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericTableComponent, isStandalone: true, selector: "core-generic-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, modalFields: { classPropertyName: "modalFields", publicName: "modalFields", isSignal: true, isRequired: false, transformFunction: null }, modalTabs: { classPropertyName: "modalTabs", publicName: "modalTabs", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null }, customActions: { classPropertyName: "customActions", publicName: "customActions", isSignal: true, isRequired: false, transformFunction: null }, globalActions: { classPropertyName: "globalActions", publicName: "globalActions", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: true, isRequired: false, transformFunction: null }, showSelection: { classPropertyName: "showSelection", publicName: "showSelection", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, showCreateButton: { classPropertyName: "showCreateButton", publicName: "showCreateButton", isSignal: true, isRequired: false, transformFunction: null }, filterButtonConfig: { classPropertyName: "filterButtonConfig", publicName: "filterButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonConfig: { classPropertyName: "createButtonConfig", publicName: "createButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonText: { classPropertyName: "createButtonText", publicName: "createButtonText", isSignal: true, isRequired: false, transformFunction: null }, dataInput: { classPropertyName: "dataInput", publicName: "dataInput", isSignal: true, isRequired: false, transformFunction: null }, customFilters: { classPropertyName: "customFilters", publicName: "customFilters", isSignal: true, isRequired: false, transformFunction: null }, enablePagination: { classPropertyName: "enablePagination", publicName: "enablePagination", isSignal: true, isRequired: false, transformFunction: null }, modelFactory: { classPropertyName: "modelFactory", publicName: "modelFactory", isSignal: true, isRequired: false, transformFunction: null }, endpoint: { classPropertyName: "endpoint", publicName: "endpoint", isSignal: true, isRequired: false, transformFunction: null }, customParams: { classPropertyName: "customParams", publicName: "customParams", isSignal: true, isRequired: false, transformFunction: null }, customArrayKey: { classPropertyName: "customArrayKey", publicName: "customArrayKey", isSignal: true, isRequired: false, transformFunction: null }, listTitle: { classPropertyName: "listTitle", publicName: "listTitle", isSignal: true, isRequired: false, transformFunction: null }, moreData: { classPropertyName: "moreData", publicName: "moreData", isSignal: true, isRequired: false, transformFunction: null }, inModal: { classPropertyName: "inModal", publicName: "inModal", isSignal: true, isRequired: false, transformFunction: null }, expansionConfig: { classPropertyName: "expansionConfig", publicName: "expansionConfig", isSignal: true, isRequired: false, transformFunction: null }, fileUploadConfig: { classPropertyName: "fileUploadConfig", publicName: "fileUploadConfig", isSignal: true, isRequired: false, transformFunction: null }, rowStyleConfigs: { classPropertyName: "rowStyleConfigs", publicName: "rowStyleConfigs", isSignal: true, isRequired: false, transformFunction: null }, columnDisabledConfigs: { classPropertyName: "columnDisabledConfigs", publicName: "columnDisabledConfigs", isSignal: true, isRequired: false, transformFunction: null }, rowVisibilityConfigs: { classPropertyName: "rowVisibilityConfigs", publicName: "rowVisibilityConfigs", isSignal: true, isRequired: false, transformFunction: null }, headerOrder: { classPropertyName: "headerOrder", publicName: "headerOrder", isSignal: true, isRequired: false, transformFunction: null }, showActiveFilters: { classPropertyName: "showActiveFilters", publicName: "showActiveFilters", isSignal: true, isRequired: false, transformFunction: null }, activeFiltersConfig: { classPropertyName: "activeFiltersConfig", publicName: "activeFiltersConfig", isSignal: true, isRequired: false, transformFunction: null }, sortConfig: { classPropertyName: "sortConfig", publicName: "sortConfig", isSignal: true, isRequired: false, transformFunction: null }, showManualRefresh: { classPropertyName: "showManualRefresh", publicName: "showManualRefresh", isSignal: true, isRequired: false, transformFunction: null }, manualRefreshConfig: { classPropertyName: "manualRefreshConfig", publicName: "manualRefreshConfig", isSignal: true, isRequired: false, transformFunction: null }, refreshButtonConfig: { classPropertyName: "refreshButtonConfig", publicName: "refreshButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, fixedActionsConfig: { classPropertyName: "fixedActionsConfig", publicName: "fixedActionsConfig", isSignal: true, isRequired: false, transformFunction: null }, deletedFilterKey: { classPropertyName: "deletedFilterKey", publicName: "deletedFilterKey", isSignal: true, isRequired: false, transformFunction: null }, scrollTable: { classPropertyName: "scrollTable", publicName: "scrollTable", isSignal: true, isRequired: false, transformFunction: null }, customEdit: { classPropertyName: "customEdit", publicName: "customEdit", isSignal: true, isRequired: false, transformFunction: null }, customDelete: { classPropertyName: "customDelete", publicName: "customDelete", isSignal: true, isRequired: false, transformFunction: null }, customView: { classPropertyName: "customView", publicName: "customView", isSignal: true, isRequired: false, transformFunction: null }, customSave: { classPropertyName: "customSave", publicName: "customSave", isSignal: true, isRequired: false, transformFunction: null }, useCustomSave: { classPropertyName: "useCustomSave", publicName: "useCustomSave", isSignal: true, isRequired: false, transformFunction: null }, onApiError: { classPropertyName: "onApiError", publicName: "onApiError", isSignal: true, isRequired: false, transformFunction: null }, inlineEditConfig: { classPropertyName: "inlineEditConfig", publicName: "inlineEditConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered", selectionChanged: "selectionChanged", dataCreated: "dataCreated", dataUpdated: "dataUpdated", dataDeleted: "dataDeleted", dataFetched: "dataFetched", onMoreDataLoaded: "onMoreDataLoaded", globalActionTriggered: "globalActionTriggered", modalData: "modalData", beforeSave: "beforeSave", onFilterChange: "onFilterChange", onClearFilters: "onClearFilters", activeFilterRemoved: "activeFilterRemoved", activeFiltersCleared: "activeFiltersCleared", dataRefreshed: "dataRefreshed", inlineEditSave: "inlineEditSave", inlineEditModeChanged: "inlineEditModeChanged", inlineEditValidationError: "inlineEditValidationError" }, host: { listeners: { "window:beforeunload": "onBeforeUnload($event)", "document:click": "closeSubmenu()" } }, providers: [TableDataService, FilterService, PaginationService, ModelApiService, InlineEditService], viewQueries: [{ propertyName: "sentinel", first: true, predicate: ["sentinel"], descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: ["dropdownTrigger"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "manualRefreshComponent", first: true, predicate: CoreManualRefreshComponent, descendants: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "@if (showActiveFilters()) {\n <core-active-filters\n [activeFilters]=\"currentActiveFilters()\"\n [config]=\"activeFiltersConfig()\"\n (onFilterRemove)=\"onActiveFilterRemove($event)\"\n (onClearAll)=\"onActiveFiltersClear()\">\n </core-active-filters>\n}\n<div class=\"c-table\" [class.c-table--scroll]=\"scrollTable()\" [class.in-modal]=\"inModal()\" [class.inline-edit-mode]=\"inlineEditService.isInlineEditMode()\">\n @if (shouldShowManualRefresh()) {\n <core-manual-refresh \n [config]=\"getManualRefreshConfig()\"\n (onRefresh)=\"onManualRefresh()\">\n </core-manual-refresh>\n }\n <table>\n <thead>\n <tr>\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <th class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isAllSelected()\" (change)=\"masterToggle()\" />\n </th>\n }\n @for (column of columns(); track $index) {\n <th [ngClass]=\"column.align ? 'u-align-' + column.align : ''\">\n @if (isColumnSortable(column)) {\n <button class=\"c-table-order\" tabindex=\"-1\"\n [class.is-asc]=\"getColumnSortState(column) === SortDirection.ASC\"\n [class.is-desc]=\"getColumnSortState(column) === SortDirection.DESC\"\n [class.has-multiple-sorts]=\"isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null\"\n [title]=\"getSortButtonTitle(column)\"\n (click)=\"onColumnHeaderClick(column)\">\n {{ column.label | translate }}\n <!-- @if (isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null) {\n <span class=\"c-table-order__priority\">{{ getColumnSortPriority(column)! + 1 }}</span>\n } -->\n <span class=\"c-table-order__controls\">\n <span class=\"c-table-order__arrow--desc icon-arrow-up\"></span>\n <span class=\"c-table-order__arrow--asc icon-arrow-down\"></span>\n </span>\n </button>\n } @else {\n {{ column.label | translate }}\n }\n </th>\n }\n @if (showActions() && (actions().length > 0 || customActions().length > 0)) {\n <th class=\"u-align-right\">{{ 'table.actions' | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of displayedData(); track row.getId()) {\n <tr [ngClass]=\"getRowClasses(row)\" \n [class.is-editable]=\"isRowInEditMode(row.getId())\"\n [class.is-disabled]=\"isRowDisabled(row)\">\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <td class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isRowSelected(row)\" (change)=\"toggleRow(row)\" />\n </td>\n }\n @for (column of columns(); track $index) {\n <td [attr.data-label]=\"column.label | translate\" \n [ngClass]=\"[\n column.align ? 'u-align-' + column.align : '',\n getCellDisabledClasses(row, column)\n ]\" \n [class.is-editing]=\"isColumnEditable(column, row)\"\n [class.is-column-disabled]=\"isColumnDisabledForRow(row, column)\">\n @if (column.template) {\n <!-- Todo: Ver qu\u00E9 es esto -->\n <ng-container *ngTemplateOutlet=\"column.template; context: { $implicit: row, column: column }\"></ng-container>\n } @else if (isColumnEditable(column, row)) {\n <!-- !Solcre: Modo de edici\u00F3n en l\u00EDnea usando DynamicField -->\n <div class=\"c-table__inline-edit\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong>\n <div\n coreDynamicField\n [field]=\"getInlineEditableConfigWithState(row, column)!\"\n [value]=\"getEditingValue(row, column)\"\n [mode]=\"ModalMode.EDIT\"\n [errors]=\"getCellErrors(row, column)\"\n [rowData]=\"row\"\n (valueChange)=\"onCellValueChange(row, column, $event)\"\n (onBlurEvent)=\"onCellBlur(row, column)\"\n (onEnterEvent)=\"onCellEnter(row, column)\"\n ></div>\n </div>\n } @else {\n <div class=\"c-table__content\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong> {{ getFormattedValue(row,\n column) }}\n </div>\n }\n </td>\n }\n\n <!-- Actions-->\n\n @if (showActions() && (actions().length > 0 || customActions().length > 0 || expansionConfig()?.enabled)) {\n\n <td class=\"u-align-right\">\n <div class=\"c-table__actions\">\n <core-dropdown [rowId]=\"row.getId()\" [extraDefaultActions]=\"getVisibleDefaultActions(row, true)\"\n [extraCustomActions]=\"getVisibleCustomActions(row, true)\" [row]=\"row\"\n [triggerElementId]=\"'dropdown-trigger-' + row.getId()\"\n (actionTriggered)=\"triggerAction($event.action, $event.row)\"\n (customActionTriggered)=\"triggerCustomAction($event.action, $event.row)\" #dropdown>\n </core-dropdown>\n @for (actionConfig of getVisibleDefaultActions(row, false); track actionConfig.action) {\n @if (hasPermission(actionConfig)) {\n @if (actionConfig.action === TableAction.VIEW || actionConfig.action === TableAction.EDIT ||\n actionConfig.action === TableAction.DELETE || actionConfig.action === TableAction.RECOVER) {\n <core-generic-button [config]=\"getActionButtonConfig(actionConfig.action, actionConfig, row)\"\n (buttonClick)=\"onButtonClick($event, actionConfig.action, row)\">\n </core-generic-button>\n }\n }\n }\n @for (customAction of getVisibleCustomActions(row, false); track customAction.label || $index) {\n @if (hasPermission(customAction)) {\n @if (customAction.isSwitch && customAction.switchOptions) {\n <core-generic-switch\n [options]=\"customAction.switchOptions\"\n [selectedValue]=\"customAction.switchValue ? customAction.switchValue(row) : null\"\n [ariaLabel]=\"customAction.switchAriaLabel || customAction.title\"\n (valueChange)=\"onCustomActionSwitchChange($event, customAction, row)\">\n </core-generic-switch>\n } @else {\n <core-generic-button [config]=\"getCustomActionButtonConfigForRow(customAction, row)\"\n (buttonClick)=\"onButtonClick($event, customAction, row)\">\n </core-generic-button>\n }\n }\n }\n\n @for (outsideAction of getOutsideFixedActionsForRow(row); track $index) {\n @if (outsideAction.type === 'table' || outsideAction.type === 'custom' ? hasPermission(outsideAction.config) : true) {\n <core-generic-button \n [config]=\"getOutsideFixedActionButtonConfig(outsideAction, row)\"\n (buttonClick)=\"onOutsideFixedActionClick($event, outsideAction, row)\">\n </core-generic-button>\n }\n }\n\n @if (hasExtraActionsForRow(row)) {\n <core-generic-button [config]=\"getMoreActionsButtonConfig(row.getId())\" [data]=\"row\"\n (buttonClick)=\"onMoreActionsClick($event, row.getId())\" #dropdownTrigger>\n </core-generic-button>\n }\n\n @if (expansionConfig()?.enabled) {\n <!-- \u2705 Solcre: Celda dedicada para expansi\u00F3n en su posici\u00F3n correcta -->\n <core-generic-button [config]=\"getExpandButtonConfig(row)\" (buttonClick)=\"onExpandButtonClick($event, row)\">\n </core-generic-button>\n }\n\n </div> <!-- .c-table__actions -->\n </td> <!-- td parent of .c-table__actions -->\n } <!-- @if (showActions() -->\n\n\n </tr>\n @if (expansionConfig()?.enabled && isRowExpanded(row)) {\n <!-- Todo: Ver que es esto -->\n <tr class=\"c-table-dropdown\" [ngClass]=\"getRowClasses(row)\">\n <td [attr.colspan]=\"displayedColumns().length\" class=\"c-table-dropdown__holder\">\n <ng-container *ngTemplateOutlet=\"expansionConfig()!.template; context: { $implicit: row }\">\n </ng-container>\n </td>\n </tr>\n }\n } @empty {\n <tr>\n <!-- Todo: Estilo .no-data -->\n <td [attr.colspan]=\"displayedColumns().length\">\n <p class=\"c-placeholder\">{{ 'table.noData' | translate }}</p>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div> <!-- .c-table -->\n\n<!-- Todo: Todo lo que viene dsp de la tabla -->\n\n@if (!enablePagination()) {\n<!-- Todo: Ver qu\u00E9 onda esto -->\n<div #sentinel class=\"sentinel\"></div>\n}\n\n@if (enablePagination()) {\n<core-generic-pagination \n [tableId]=\"tableId\" \n [isServerSide]=\"!!endpoint()\"\n [showPagination]=\"shouldShowPagination()\"\n [showPageSizeSelector]=\"shouldShowPageSizeSelector()\">\n</core-generic-pagination>\n}\n\n<core-generic-modal [isOpen]=\"tableActionService.getIsModalOpen()\" [mode]=\"tableActionService.getModalMode()\"\n [data]=\"tableActionService.getModalData()\" [fields]=\"hasTabs() ? [] : tableActionService.getModalFieldsToShow()\"\n [tabs]=\"hasTabs() ? modalTabs() : []\" [title]=\"tableActionService.getModalTitle()\" [modelFactory]=\"modelFactory() || null\"\n (save)=\"onModalSave($event)\" (close)=\"tableActionService.closeModal()\" (modalData)=\"onModalData($event)\">\n</core-generic-modal>\n\n<core-filter-modal [isOpen]=\"isFilterModalOpen()\" [filters]=\"customFilters()\" [currentFilterValues]=\"currentFilterValues()\" (close)=\"closeFiltersPopup()\"\n (filterChange)=\"handleFilterChange($event)\" (globalFilterChange)=\"applyGlobalFilter($event)\"\n (clearFilters)=\"handleClearFilters()\">\n</core-filter-modal>\n\n<!-- @if (shouldShowFixedActions()) {\n <div class=\"c-fixed-actions\" [ngClass]=\"'c-fixed-actions--' + (fixedActionsConfig()?.position || 'right')\">\n @for (action of fixedActionsArray(); track $index) {\n @if (shouldShowFixedAction(action)) {\n <button \n type=\"button\"\n [ngClass]=\"getFixedActionClass(action)\"\n [disabled]=\"isFixedActionDisabled(action)\"\n [title]=\"getFixedActionTooltip(action) || ''\"\n [attr.aria-label]=\"getFixedActionTooltip(action) || action.label || ''\"\n (click)=\"onFixedActionClick(action)\">\n </button>\n }\n }\n </div>\n} -->\n\n<core-fixed-actions-mobile-modal />\n", styles: [".c-table-dropdown{padding:16px;background-color:var(--color-neutral-200);border-top:1px solid var(--color-alternative-100)}.c-table-dropdown td{border-bottom:none}@keyframes newItemHighlight{0%{background-color:#f8f9fa;border-left-color:var(--color-context-success)}25%{background-color:#e9ecef}50%{background-color:#f8f9fa}75%{background-color:#e9ecef}to{background-color:transparent;border-left-color:transparent}}@media (max-width: 61.1875rem){.c-table-dropdown{background-color:var(--color-neutral-200);border-radius:0 0 var(--app-br) var(--app-br);border-top:none;margin-top:calc(var(--_gap-y) * -1 - var(--app-br))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: GenericModalComponent, selector: "core-generic-modal", inputs: ["isOpen", "mode", "data", "fields", "tabs", "steps", "title", "isMultiple", "customTemplate", "customViewTemplate", "finalStepTemplate", "buttonConfig", "modelFactory", "errors", "validators", "customHasChanges", "stepValidationEnabled", "allowFreeNavigation", "autoMarkCompleted"], outputs: ["save", "close", "modalData"] }, { kind: "component", type: GenericPaginationComponent, selector: "core-generic-pagination", inputs: ["tableId", "isServerSide", "showPagination", "showPageSizeSelector"] }, { kind: "component", type: DropdownComponent, selector: "core-dropdown", inputs: ["rowId", "triggerElementId", "extraDefaultActions", "extraCustomActions", "row"], outputs: ["actionTriggered", "customActionTriggered"] }, { kind: "component", type: FilterModalComponent, selector: "core-filter-modal", inputs: ["isOpen", "filters", "currentFilterValues"], outputs: ["close", "filterChange", "clearFilters", "globalFilterChange"] }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }, { kind: "directive", type: DynamicFieldDirective, selector: "[coreDynamicField]", inputs: ["field", "value", "mode", "errors", "rowData", "formValue"], outputs: ["valueChange", "onBlurEvent", "onEnterEvent", "selectionChange"] }, { kind: "component", type: ActiveFiltersComponent, selector: "core-active-filters", inputs: ["activeFilters", "config"], outputs: ["onFilterRemove", "onClearAll"] }, { kind: "component", type: CoreManualRefreshComponent, selector: "core-manual-refresh", inputs: ["config", "refreshId"], outputs: ["onRefresh", "timestampUpdated"] }, { kind: "component", type: GenericSwitchComponent, selector: "core-generic-switch", inputs: ["options", "selectedValue", "ariaLabel"], outputs: ["valueChange"] }, { kind: "component", type: FixedActionsMobileModalComponent, selector: "core-fixed-actions-mobile-modal" }] });
|
|
15197
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericTableComponent, isStandalone: true, selector: "core-generic-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, modalFields: { classPropertyName: "modalFields", publicName: "modalFields", isSignal: true, isRequired: false, transformFunction: null }, modalTabs: { classPropertyName: "modalTabs", publicName: "modalTabs", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null }, customActions: { classPropertyName: "customActions", publicName: "customActions", isSignal: true, isRequired: false, transformFunction: null }, globalActions: { classPropertyName: "globalActions", publicName: "globalActions", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: true, isRequired: false, transformFunction: null }, showSelection: { classPropertyName: "showSelection", publicName: "showSelection", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, showCreateButton: { classPropertyName: "showCreateButton", publicName: "showCreateButton", isSignal: true, isRequired: false, transformFunction: null }, filterButtonConfig: { classPropertyName: "filterButtonConfig", publicName: "filterButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonConfig: { classPropertyName: "createButtonConfig", publicName: "createButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonText: { classPropertyName: "createButtonText", publicName: "createButtonText", isSignal: true, isRequired: false, transformFunction: null }, dataInput: { classPropertyName: "dataInput", publicName: "dataInput", isSignal: true, isRequired: false, transformFunction: null }, customFilters: { classPropertyName: "customFilters", publicName: "customFilters", isSignal: true, isRequired: false, transformFunction: null }, enablePagination: { classPropertyName: "enablePagination", publicName: "enablePagination", isSignal: true, isRequired: false, transformFunction: null }, modelFactory: { classPropertyName: "modelFactory", publicName: "modelFactory", isSignal: true, isRequired: false, transformFunction: null }, endpoint: { classPropertyName: "endpoint", publicName: "endpoint", isSignal: true, isRequired: false, transformFunction: null }, customParams: { classPropertyName: "customParams", publicName: "customParams", isSignal: true, isRequired: false, transformFunction: null }, customArrayKey: { classPropertyName: "customArrayKey", publicName: "customArrayKey", isSignal: true, isRequired: false, transformFunction: null }, listTitle: { classPropertyName: "listTitle", publicName: "listTitle", isSignal: true, isRequired: false, transformFunction: null }, moreData: { classPropertyName: "moreData", publicName: "moreData", isSignal: true, isRequired: false, transformFunction: null }, inModal: { classPropertyName: "inModal", publicName: "inModal", isSignal: true, isRequired: false, transformFunction: null }, expansionConfig: { classPropertyName: "expansionConfig", publicName: "expansionConfig", isSignal: true, isRequired: false, transformFunction: null }, fileUploadConfig: { classPropertyName: "fileUploadConfig", publicName: "fileUploadConfig", isSignal: true, isRequired: false, transformFunction: null }, rowStyleConfigs: { classPropertyName: "rowStyleConfigs", publicName: "rowStyleConfigs", isSignal: true, isRequired: false, transformFunction: null }, columnDisabledConfigs: { classPropertyName: "columnDisabledConfigs", publicName: "columnDisabledConfigs", isSignal: true, isRequired: false, transformFunction: null }, rowVisibilityConfigs: { classPropertyName: "rowVisibilityConfigs", publicName: "rowVisibilityConfigs", isSignal: true, isRequired: false, transformFunction: null }, headerOrder: { classPropertyName: "headerOrder", publicName: "headerOrder", isSignal: true, isRequired: false, transformFunction: null }, showActiveFilters: { classPropertyName: "showActiveFilters", publicName: "showActiveFilters", isSignal: true, isRequired: false, transformFunction: null }, activeFiltersConfig: { classPropertyName: "activeFiltersConfig", publicName: "activeFiltersConfig", isSignal: true, isRequired: false, transformFunction: null }, sortConfig: { classPropertyName: "sortConfig", publicName: "sortConfig", isSignal: true, isRequired: false, transformFunction: null }, showManualRefresh: { classPropertyName: "showManualRefresh", publicName: "showManualRefresh", isSignal: true, isRequired: false, transformFunction: null }, manualRefreshConfig: { classPropertyName: "manualRefreshConfig", publicName: "manualRefreshConfig", isSignal: true, isRequired: false, transformFunction: null }, refreshButtonConfig: { classPropertyName: "refreshButtonConfig", publicName: "refreshButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, fixedActionsConfig: { classPropertyName: "fixedActionsConfig", publicName: "fixedActionsConfig", isSignal: true, isRequired: false, transformFunction: null }, deletedFilterKey: { classPropertyName: "deletedFilterKey", publicName: "deletedFilterKey", isSignal: true, isRequired: false, transformFunction: null }, scrollTable: { classPropertyName: "scrollTable", publicName: "scrollTable", isSignal: true, isRequired: false, transformFunction: null }, customEdit: { classPropertyName: "customEdit", publicName: "customEdit", isSignal: true, isRequired: false, transformFunction: null }, customDelete: { classPropertyName: "customDelete", publicName: "customDelete", isSignal: true, isRequired: false, transformFunction: null }, customView: { classPropertyName: "customView", publicName: "customView", isSignal: true, isRequired: false, transformFunction: null }, customSave: { classPropertyName: "customSave", publicName: "customSave", isSignal: true, isRequired: false, transformFunction: null }, useCustomSave: { classPropertyName: "useCustomSave", publicName: "useCustomSave", isSignal: true, isRequired: false, transformFunction: null }, onApiError: { classPropertyName: "onApiError", publicName: "onApiError", isSignal: true, isRequired: false, transformFunction: null }, inlineEditConfig: { classPropertyName: "inlineEditConfig", publicName: "inlineEditConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered", selectionChanged: "selectionChanged", dataCreated: "dataCreated", dataUpdated: "dataUpdated", dataDeleted: "dataDeleted", dataFetched: "dataFetched", onMoreDataLoaded: "onMoreDataLoaded", globalActionTriggered: "globalActionTriggered", modalData: "modalData", beforeSave: "beforeSave", onFilterChange: "onFilterChange", onClearFilters: "onClearFilters", activeFilterRemoved: "activeFilterRemoved", activeFiltersCleared: "activeFiltersCleared", dataRefreshed: "dataRefreshed", inlineEditSave: "inlineEditSave", inlineEditModeChanged: "inlineEditModeChanged", inlineEditValidationError: "inlineEditValidationError" }, host: { listeners: { "window:beforeunload": "onBeforeUnload($event)", "document:click": "closeSubmenu()" } }, providers: [TableDataService, FilterService, PaginationService, ModelApiService, InlineEditService], viewQueries: [{ propertyName: "sentinel", first: true, predicate: ["sentinel"], descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: ["dropdownTrigger"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "manualRefreshComponent", first: true, predicate: CoreManualRefreshComponent, descendants: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "@if (showActiveFilters()) {\n <core-active-filters\n [activeFilters]=\"currentActiveFilters()\"\n [config]=\"activeFiltersConfig()\"\n (onFilterRemove)=\"onActiveFilterRemove($event)\"\n (onClearAll)=\"onActiveFiltersClear()\">\n </core-active-filters>\n}\n<div class=\"c-table\" [class.c-table--scroll]=\"scrollTable()\" [class.in-modal]=\"inModal()\" [class.inline-edit-mode]=\"inlineEditService.isInlineEditMode()\">\n @if (shouldShowManualRefresh()) {\n <core-manual-refresh \n [config]=\"getManualRefreshConfig()\"\n (onRefresh)=\"onManualRefresh()\">\n </core-manual-refresh>\n }\n <table>\n <thead>\n <tr>\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <th class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isAllSelected()\" (change)=\"masterToggle()\" />\n </th>\n }\n @for (column of columns(); track $index) {\n <th [ngClass]=\"column.align ? 'u-align-' + column.align : ''\">\n @if (isColumnSortable(column)) {\n <button class=\"c-table-order\" tabindex=\"-1\"\n [class.is-asc]=\"getColumnSortState(column) === SortDirection.ASC\"\n [class.is-desc]=\"getColumnSortState(column) === SortDirection.DESC\"\n [class.has-multiple-sorts]=\"isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null\"\n [title]=\"getSortButtonTitle(column)\"\n (click)=\"onColumnHeaderClick(column)\">\n {{ column.label | translate }}\n <!-- @if (isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null) {\n <span class=\"c-table-order__priority\">{{ getColumnSortPriority(column)! + 1 }}</span>\n } -->\n <span class=\"c-table-order__controls\">\n <span class=\"c-table-order__arrow--desc icon-arrow-up\"></span>\n <span class=\"c-table-order__arrow--asc icon-arrow-down\"></span>\n </span>\n </button>\n } @else {\n {{ column.label | translate }}\n }\n </th>\n }\n @if (showActions() && (actions().length > 0 || customActions().length > 0)) {\n <th class=\"u-align-right\">{{ 'table.actions' | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of displayedData(); track row.getId()) {\n <tr [ngClass]=\"getRowClasses(row)\" \n [class.is-editable]=\"isRowInEditMode(row.getId())\"\n [class.is-disabled]=\"isRowDisabled(row)\">\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <td class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isRowSelected(row)\" (change)=\"toggleRow(row)\" />\n </td>\n }\n @for (column of columns(); track $index) {\n <td [attr.data-label]=\"column.label | translate\" \n [ngClass]=\"[\n column.align ? 'u-align-' + column.align : '',\n getCellDisabledClasses(row, column)\n ]\" \n [class.is-editing]=\"isColumnEditable(column, row)\"\n [class.is-column-disabled]=\"isColumnDisabledForRow(row, column)\">\n @if (column.template) {\n <!-- Todo: Ver qu\u00E9 es esto -->\n <ng-container *ngTemplateOutlet=\"column.template; context: { $implicit: row, column: column }\"></ng-container>\n } @else if (isColumnEditable(column, row)) {\n <!-- !Solcre: Modo de edici\u00F3n en l\u00EDnea usando DynamicField -->\n <div class=\"c-table__inline-edit\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong>\n <div\n coreDynamicField\n [field]=\"getInlineEditableConfigWithState(row, column)!\"\n [value]=\"getEditingValue(row, column)\"\n [mode]=\"ModalMode.EDIT\"\n [errors]=\"getCellErrors(row, column)\"\n [rowData]=\"row\"\n (valueChange)=\"onCellValueChange(row, column, $event)\"\n (onBlurEvent)=\"onCellBlur(row, column)\"\n (onEnterEvent)=\"onCellEnter(row, column)\"\n ></div>\n </div>\n } @else {\n <div class=\"c-table__content\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong> {{ getFormattedValue(row,\n column) }}\n </div>\n }\n </td>\n }\n\n <!-- Actions-->\n\n @if (showActions() && (actions().length > 0 || customActions().length > 0 || expansionConfig()?.enabled)) {\n\n <td class=\"u-align-right\">\n <div class=\"c-table__actions\">\n <core-dropdown [rowId]=\"row.getId()\" [extraDefaultActions]=\"getVisibleDefaultActions(row, true)\"\n [extraCustomActions]=\"getVisibleCustomActions(row, true)\" [row]=\"row\"\n [triggerElementId]=\"'dropdown-trigger-' + row.getId()\"\n (actionTriggered)=\"triggerAction($event.action, $event.row)\"\n (customActionTriggered)=\"triggerCustomAction($event.action, $event.row)\" #dropdown>\n </core-dropdown>\n @for (actionConfig of getVisibleDefaultActions(row, false); track actionConfig.action) {\n @if (hasPermission(actionConfig)) {\n @if (actionConfig.action === TableAction.VIEW || actionConfig.action === TableAction.EDIT ||\n actionConfig.action === TableAction.DELETE || actionConfig.action === TableAction.RECOVER) {\n <core-generic-button [config]=\"getActionButtonConfig(actionConfig.action, actionConfig, row)\"\n (buttonClick)=\"onButtonClick($event, actionConfig.action, row)\">\n </core-generic-button>\n }\n }\n }\n @for (customAction of getVisibleCustomActions(row, false); track customAction.label || $index) {\n @if (hasPermission(customAction)) {\n @if (customAction.isSwitch && customAction.switchOptions) {\n <core-generic-switch\n [options]=\"customAction.switchOptions\"\n [selectedValue]=\"customAction.switchValue ? customAction.switchValue(row) : null\"\n [ariaLabel]=\"customAction.switchAriaLabel || customAction.title\"\n (valueChange)=\"onCustomActionSwitchChange($event, customAction, row)\">\n </core-generic-switch>\n } @else {\n <core-generic-button [config]=\"getCustomActionButtonConfigForRow(customAction, row)\"\n (buttonClick)=\"onButtonClick($event, customAction, row)\">\n </core-generic-button>\n }\n }\n }\n\n @for (outsideAction of getOutsideFixedActionsForRow(row); track $index) {\n @if (outsideAction.type === 'table' || outsideAction.type === 'custom' ? hasPermission(outsideAction.config) : true) {\n <core-generic-button \n [config]=\"getOutsideFixedActionButtonConfig(outsideAction, row)\"\n (buttonClick)=\"onOutsideFixedActionClick($event, outsideAction, row)\">\n </core-generic-button>\n }\n }\n\n @if (hasExtraActionsForRow(row)) {\n <core-generic-button [config]=\"getMoreActionsButtonConfig(row.getId())\" [data]=\"row\"\n (buttonClick)=\"onMoreActionsClick($event, row.getId())\" #dropdownTrigger>\n </core-generic-button>\n }\n\n @if (expansionConfig()?.enabled) {\n <!-- \u2705 Solcre: Celda dedicada para expansi\u00F3n en su posici\u00F3n correcta -->\n <core-generic-button [config]=\"getExpandButtonConfig(row)\" (buttonClick)=\"onExpandButtonClick($event, row)\">\n </core-generic-button>\n }\n\n </div> <!-- .c-table__actions -->\n </td> <!-- td parent of .c-table__actions -->\n } <!-- @if (showActions() -->\n\n\n </tr>\n @if (expansionConfig()?.enabled && isRowExpanded(row)) {\n <!-- Todo: Ver que es esto -->\n <tr class=\"c-table-dropdown\" [ngClass]=\"getRowClasses(row)\">\n <td [attr.colspan]=\"displayedColumns().length\" class=\"c-table-dropdown__holder\">\n <ng-container *ngTemplateOutlet=\"expansionConfig()!.template; context: { $implicit: row }\">\n </ng-container>\n </td>\n </tr>\n }\n } @empty {\n <tr>\n <!-- Todo: Estilo .no-data -->\n <td [attr.colspan]=\"displayedColumns().length\">\n <p class=\"c-placeholder\">{{ 'table.noData' | translate }}</p>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div> <!-- .c-table -->\n\n<!-- Todo: Todo lo que viene dsp de la tabla -->\n\n@if (!enablePagination()) {\n<!-- Todo: Ver qu\u00E9 onda esto -->\n<div #sentinel class=\"sentinel\"></div>\n}\n\n@if (enablePagination()) {\n<core-generic-pagination \n [tableId]=\"tableId\" \n [isServerSide]=\"!!endpoint()\"\n [showPagination]=\"shouldShowPagination()\"\n [showPageSizeSelector]=\"shouldShowPageSizeSelector()\">\n</core-generic-pagination>\n}\n\n<core-generic-modal [isOpen]=\"tableActionService.getIsModalOpen()\" [mode]=\"tableActionService.getModalMode()\"\n [data]=\"tableActionService.getModalData()\" [fields]=\"hasTabs() ? [] : tableActionService.getModalFieldsToShow()\"\n [tabs]=\"hasTabs() ? modalTabs() : []\" [title]=\"tableActionService.getModalTitle()\" [modelFactory]=\"modelFactory() || null\"\n (save)=\"onModalSave($event)\" (close)=\"tableActionService.closeModal()\" (modalData)=\"onModalData($event)\">\n</core-generic-modal>\n\n<core-filter-modal [isOpen]=\"isFilterModalOpen()\" [filters]=\"customFilters()\" [currentFilterValues]=\"currentFilterValues()\" (close)=\"closeFiltersPopup()\"\n (filterChange)=\"handleFilterChange($event)\" (globalFilterChange)=\"applyGlobalFilter($event)\"\n (clearFilters)=\"handleClearFilters()\">\n</core-filter-modal>\n\n<!-- @if (shouldShowFixedActions()) {\n <div class=\"c-fixed-actions\" [ngClass]=\"'c-fixed-actions--' + (fixedActionsConfig()?.position || 'right')\">\n @for (action of fixedActionsArray(); track $index) {\n @if (shouldShowFixedAction(action)) {\n <button \n type=\"button\"\n [ngClass]=\"getFixedActionClass(action)\"\n [disabled]=\"isFixedActionDisabled(action)\"\n [title]=\"getFixedActionTooltip(action) || ''\"\n [attr.aria-label]=\"getFixedActionTooltip(action) || action.label || ''\"\n (click)=\"onFixedActionClick(action)\">\n </button>\n }\n }\n </div>\n} -->\n\n<core-fixed-actions-mobile-modal />\n", styles: [".c-table-dropdown{padding:16px;background-color:var(--color-neutral-200);border-top:1px solid var(--color-alternative-100)}.c-table-dropdown td{border-bottom:none}@keyframes newItemHighlight{0%{background-color:#f8f9fa;border-left-color:var(--color-context-success)}25%{background-color:#e9ecef}50%{background-color:#f8f9fa}75%{background-color:#e9ecef}to{background-color:transparent;border-left-color:transparent}}@media (max-width: 61.1875rem){.c-table-dropdown{background-color:var(--color-neutral-200);border-radius:0 0 var(--app-br) var(--app-br);border-top:none;margin-top:calc(var(--_gap-y) * -1 - var(--app-br))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: GenericModalComponent, selector: "core-generic-modal", inputs: ["isOpen", "mode", "data", "fields", "tabs", "steps", "title", "isMultiple", "customTemplate", "customViewTemplate", "finalStepTemplate", "buttonConfig", "modelFactory", "errors", "validators", "customHasChanges", "stepValidationEnabled", "allowFreeNavigation", "autoMarkCompleted"], outputs: ["save", "close", "modalData"] }, { kind: "component", type: GenericPaginationComponent, selector: "core-generic-pagination", inputs: ["tableId", "isServerSide", "showPagination", "showPageSizeSelector"] }, { kind: "component", type: DropdownComponent, selector: "core-dropdown", inputs: ["rowId", "triggerElementId", "extraDefaultActions", "extraCustomActions", "row"], outputs: ["actionTriggered", "customActionTriggered"] }, { kind: "component", type: FilterModalComponent, selector: "core-filter-modal", inputs: ["isOpen", "filters", "currentFilterValues"], outputs: ["close", "filterChange", "clearFilters", "globalFilterChange"] }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }, { kind: "directive", type: DynamicFieldDirective, selector: "[coreDynamicField]", inputs: ["field", "value", "mode", "errors", "rowData", "formValue"], outputs: ["valueChange", "onBlurEvent", "onEnterEvent", "selectionChange"] }, { kind: "component", type: ActiveFiltersComponent, selector: "core-active-filters", inputs: ["activeFilters", "config"], outputs: ["onFilterRemove", "onClearAll"] }, { kind: "component", type: CoreManualRefreshComponent, selector: "core-manual-refresh", inputs: ["config", "refreshId"], outputs: ["onRefresh", "timestampUpdated"] }, { kind: "component", type: GenericSwitchComponent, selector: "core-generic-switch", inputs: ["options", "selectedValue", "ariaLabel"], outputs: ["valueChange"] }, { kind: "component", type: FixedActionsMobileModalComponent, selector: "core-fixed-actions-mobile-modal" }] });
|
|
14994
15198
|
}
|
|
14995
15199
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericTableComponent, decorators: [{
|
|
14996
15200
|
type: Component,
|
|
@@ -15105,7 +15309,7 @@ class AlertContainerComponent {
|
|
|
15105
15309
|
</core-alert>
|
|
15106
15310
|
}
|
|
15107
15311
|
</div>
|
|
15108
|
-
`, isInline: true, dependencies: [{ kind: "component", type: AlertComponent, selector: "core-alert", inputs: ["alert"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
15312
|
+
`, isInline: true, dependencies: [{ kind: "component", type: AlertComponent, selector: "core-alert", inputs: ["alert"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
15109
15313
|
}
|
|
15110
15314
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AlertContainerComponent, decorators: [{
|
|
15111
15315
|
type: Component,
|
|
@@ -15295,7 +15499,7 @@ class GenericDocumentationComponent {
|
|
|
15295
15499
|
return this.config().emptyStateMessage || 'documentation.noDocuments';
|
|
15296
15500
|
}
|
|
15297
15501
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericDocumentationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15298
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericDocumentationComponent, isStandalone: true, selector: "core-generic-documentation", inputs: { documents: { classPropertyName: "documents", publicName: "documents", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, permissions: { classPropertyName: "permissions", publicName: "permissions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered", uploadRequested: "uploadRequested" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div\n *ngIf=\"!loading() && hasDocuments() && isGridMode()\"\n class=\"c-components-grid\"\n>\n <div\n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\"\n class=\"c-doc\"\n >\n <div\n class=\"c-bulleted-text\"\n *ngIf=\"config().showUploadDate || config().showUploadedBy\"\n >\n <time\n *ngIf=\"config().showUploadDate\"\n [attr.datetime]=\"document.uploadedDate\"\n >\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span *ngIf=\"config().showUploadedBy\">\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p\n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\"\n >\n {{ document.description }}\n </p>\n </div>\n <!-- DEV: Ajustar botones -->\n <div class=\"c-doc__group-btns\">\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DOWNLOAD,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(DocumentAction.DELETE, document, $event.originalEvent)\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(DocumentAction.HELP, document, $event.originalEvent)\n \"\n >\n </core-generic-button>\n </div>\n </div>\n </div>\n</div>\n\n<div\n *ngIf=\"!loading() && hasDocuments() && isListMode()\"\n class=\"c-components-grid\"\n>\n <ul class=\"c-doc-list\">\n <li\n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\"\n class=\"c-doc-list__item\"\n >\n <div class=\"c-doc\">\n <div\n class=\"c-bulleted-text\"\n *ngIf=\"config().showUploadDate || config().showUploadedBy\"\n >\n <time\n *ngIf=\"config().showUploadDate\"\n [attr.datetime]=\"document.uploadedDate\"\n >\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span *ngIf=\"config().showUploadedBy\">\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p\n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\"\n >\n {{ document.description }}\n </p>\n </div>\n\n <div class=\"c-doc__group-btns\">\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DOWNLOAD,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DELETE,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.HELP,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>\n\n<!-- Loading state -->\n<div *ngIf=\"loading()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon icon-loading\"></span>\n <p class=\"c-empty-state__message\">{{ \"commons.loading\" | translate }}</p>\n </div>\n</div>\n\n<!-- Empty state - No documents -->\n<div *ngIf=\"!loading() && !hasDocuments()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon\" [class]=\"getEmptyStateIcon()\"></span>\n <p class=\"c-empty-state__message\">\n {{ getEmptyStateMessage() | translate }}\n </p>\n\n <!-- Upload button if user can upload -->\n @if(config().showUploadButton) {\n <core-generic-button\n [config]=\"uploadButtonConfig()\"\n (buttonClick)=\"onUploadClick($event.originalEvent)\"\n ></core-generic-button>\n }\n </div>\n</div>\n", styles: [".c-empty-state{--_color-main-hsl: var(--color-neutral-800-hsl);--_color-text-hsl: var(--color-neutral-800-hsl);--_py: 4em;--_px: 1.5em;--_br: var(--core-main-br);--_fz: var(--fz-200);display:flex;justify-content:center;align-items:center;text-align:center;padding:var(--_py) var(--_px);background-color:hsl(var(--_color-main-hsl)/4%);border-radius:var(--_br);font-size:var(--_fz);font-weight:600;max-width:100rem}.c-empty-state__content{max-width:25em}.c-empty-state__icon{display:block;font-size:2.4em;margin-bottom:.6em;opacity:.7}.c-empty-state__icon.icon-loading{animation:spin 1s linear infinite}.c-empty-state__message{color:#6b7280;line-height:1.5}.c-empty-state core-generic-button{display:block;margin-top:1.8em}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
15502
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericDocumentationComponent, isStandalone: true, selector: "core-generic-documentation", inputs: { documents: { classPropertyName: "documents", publicName: "documents", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, permissions: { classPropertyName: "permissions", publicName: "permissions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered", uploadRequested: "uploadRequested" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div\n *ngIf=\"!loading() && hasDocuments() && isGridMode()\"\n class=\"c-components-grid\"\n>\n <div\n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\"\n class=\"c-doc\"\n >\n <div\n class=\"c-bulleted-text\"\n *ngIf=\"config().showUploadDate || config().showUploadedBy\"\n >\n <time\n *ngIf=\"config().showUploadDate\"\n [attr.datetime]=\"document.uploadedDate\"\n >\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span *ngIf=\"config().showUploadedBy\">\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p\n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\"\n >\n {{ document.description }}\n </p>\n </div>\n <!-- DEV: Ajustar botones -->\n <div class=\"c-doc__group-btns\">\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DOWNLOAD,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(DocumentAction.DELETE, document, $event.originalEvent)\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(DocumentAction.HELP, document, $event.originalEvent)\n \"\n >\n </core-generic-button>\n </div>\n </div>\n </div>\n</div>\n\n<div\n *ngIf=\"!loading() && hasDocuments() && isListMode()\"\n class=\"c-components-grid\"\n>\n <ul class=\"c-doc-list\">\n <li\n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\"\n class=\"c-doc-list__item\"\n >\n <div class=\"c-doc\">\n <div\n class=\"c-bulleted-text\"\n *ngIf=\"config().showUploadDate || config().showUploadedBy\"\n >\n <time\n *ngIf=\"config().showUploadDate\"\n [attr.datetime]=\"document.uploadedDate\"\n >\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span *ngIf=\"config().showUploadedBy\">\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p\n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\"\n >\n {{ document.description }}\n </p>\n </div>\n\n <div class=\"c-doc__group-btns\">\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DOWNLOAD,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DELETE,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.HELP,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>\n\n<!-- Loading state -->\n<div *ngIf=\"loading()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon icon-loading\"></span>\n <p class=\"c-empty-state__message\">{{ \"commons.loading\" | translate }}</p>\n </div>\n</div>\n\n<!-- Empty state - No documents -->\n<div *ngIf=\"!loading() && !hasDocuments()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon\" [class]=\"getEmptyStateIcon()\"></span>\n <p class=\"c-empty-state__message\">\n {{ getEmptyStateMessage() | translate }}\n </p>\n\n <!-- Upload button if user can upload -->\n @if(config().showUploadButton) {\n <core-generic-button\n [config]=\"uploadButtonConfig()\"\n (buttonClick)=\"onUploadClick($event.originalEvent)\"\n ></core-generic-button>\n }\n </div>\n</div>\n", styles: [".c-empty-state{--_color-main-hsl: var(--color-neutral-800-hsl);--_color-text-hsl: var(--color-neutral-800-hsl);--_py: 4em;--_px: 1.5em;--_br: var(--core-main-br);--_fz: var(--fz-200);display:flex;justify-content:center;align-items:center;text-align:center;padding:var(--_py) var(--_px);background-color:hsl(var(--_color-main-hsl)/4%);border-radius:var(--_br);font-size:var(--_fz);font-weight:600;max-width:100rem}.c-empty-state__content{max-width:25em}.c-empty-state__icon{display:block;font-size:2.4em;margin-bottom:.6em;opacity:.7}.c-empty-state__icon.icon-loading{animation:spin 1s linear infinite}.c-empty-state__message{color:#6b7280;line-height:1.5}.c-empty-state core-generic-button{display:block;margin-top:1.8em}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }] });
|
|
15299
15503
|
}
|
|
15300
15504
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericDocumentationComponent, decorators: [{
|
|
15301
15505
|
type: Component,
|
|
@@ -15948,7 +16152,7 @@ class GenericSidebarComponent {
|
|
|
15948
16152
|
return this.customModalService.getIsOpen();
|
|
15949
16153
|
}
|
|
15950
16154
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15951
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericSidebarComponent, isStandalone: true, selector: "core-generic-sidebar", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, customTemplate: { classPropertyName: "customTemplate", publicName: "customTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClicked: "itemClicked", subItemClicked: "subItemClicked" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "sidebarContentTemplate", first: true, predicate: ["sidebarContentTemplate"], descendants: true, isSignal: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "@if(getConfig() && hasValidConfiguration() && shouldRenderSidebar()) {\n\n @if(getConfig()?.backButton) {\n <button class=\"c-back-link\" (click)=\"getConfig()?.backButton?.action()\">\n <span class=\"icon-arrow-left\"></span>\n @if(getConfig()?.backButton?.labelNeedsTranslation && getConfig()?.backButton?.label) {\n {{ getConfig()!.backButton!.label | translate }}\n } @else if(getConfig()?.backButton?.label) {\n {{ getConfig()!.backButton!.label }}\n }\n </button>\n }\n\n @if (shouldShowMobileVersion()) {\n \n @if (getMobileType() === SidebarMobileType.SELECT) {\n <div class=\"c-sidebar-mobile\">\n <label class=\"c-entry-input\">\n <select (change)=\"onMobileSelectChange($event)\" [value]=\"getActiveItemId()\">\n <option value=\"\">Seleccionar...</option>\n @for(item of getConfig()?.items || []; track item.id) {\n @if(item.children && item.children.length > 0) {\n <optgroup [label]=\"item.label\">\n @for(subItem of item.children; track subItem.id) {\n <option [disabled]=\"subItem.disabled\" [value]=\"subItem.id\" [selected]=\"subItem.active\">\n {{ subItem.label }}\n </option>\n }\n </optgroup>\n } @else {\n <option [disabled]=\"item.disabled\" [value]=\"item.id\" [selected]=\"item.active\">\n {{ item.label }}\n </option>\n }\n }\n </select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </label>\n </div>\n }\n\n @if (getMobileType() === SidebarMobileType.SCROLL) {\n <div class=\"c-sidebar-mobile c-sidebar-mobile--scroll\">\n <nav class=\"c-sidenav c-sidenav--mobile-scroll\">\n @if(getConfig()?.title) {\n <p class=\"c-sidenav__heading u-heading u-fz--300\">\n <strong>\n @if(shouldTranslateTitle()) {\n {{ getTitleDisplay() | translate }}\n } @else {\n {{ getTitleDisplay() }}\n }\n </strong>\n </p>\n }\n \n <ul class=\"c-sidenav__list c-sidenav__list--scrollable\">\n @for(item of getScrollableItems(); track item.id) {\n <li class=\"c-sidenav__item\">\n @if(item.children && item.children.length > 0) {\n <a class=\"c-sidenav__link\">{{ item.label }}</a>\n <ul class=\"c-sidenav__sublist\">\n @for(subItem of item.children; track subItem.id) {\n <li class=\"c-sidenav__subitem\">\n <a class=\"c-sidenav__sublink\"\n [class.is-disabled]=\"subItem.disabled\"\n [class.is-active]=\"subItem.active\"\n (click)=\"onSubItemClick(subItem)\">\n {{ subItem.label }}\n </a>\n </li>\n }\n </ul>\n } @else {\n <a class=\"c-sidenav__link\"\n [class.is-disabled]=\"item.disabled\"\n [class.is-active]=\"item.active\"\n (click)=\"onItemClick(item)\">\n @if(item.icon) {\n <span [ngClass]=\"item.icon | coreIconCompat\"></span>\n }\n {{ item.label }}\n </a>\n }\n </li>\n }\n </ul>\n </nav>\n </div>\n }\n\n @if (getMobileType() === SidebarMobileType.MODAL) {\n <!-- El modal se renderiza desde el componente layout usando el servicio -->\n <!-- No renderizamos nada aqu\u00ED para ocultar completamente el sidebar -->\n }\n }\n\n @if (shouldShowDesktopVersion()) {\n <nav class=\"c-sidenav\" style=\"--_layout-padd-y: calc(var(--space-y) * 1.8);\">\n \n @if(getConfig()?.title) {\n <p class=\"c-sidenav__heading u-heading u-fz--300\">\n <strong>\n @if(shouldTranslateTitle()) {\n {{ getTitleDisplay() | translate }}\n } @else {\n {{ getTitleDisplay() }}\n }\n </strong>\n </p>\n }\n \n @if(shouldUseCustomTemplate() && isTemplateInsideNav()) {\n <ng-container \n [ngTemplateOutlet]=\"getActiveTemplate()\" \n [ngTemplateOutletContext]=\"{\n $implicit: getConfig(),\n config: getConfig(),\n position: position(),\n onItemClick: onItemClick.bind(this),\n onSubItemClick: onSubItemClick.bind(this)\n }\">\n </ng-container>\n } @else if (!shouldUseCustomTemplate()) {\n <ul class=\"c-sidenav__list\">\n @for(item of getConfig()?.items || []; track item.id) {\n <li class=\"c-sidenav__item\">\n @if(item.children && item.children.length > 0) {\n <a class=\"c-sidenav__link\">{{ item.label }}</a>\n <ul class=\"c-sidenav__sublist\">\n @for(subItem of item.children; track subItem.id) {\n <li class=\"c-sidenav__subitem\">\n <a class=\"c-sidenav__sublink\"\n [class.is-disabled]=\"subItem.disabled\"\n [class.is-active]=\"subItem.active\"\n (click)=\"onSubItemClick(subItem)\">\n {{ subItem.label }}\n </a>\n </li>\n }\n </ul>\n } @else {\n <a class=\"c-sidenav__link\"\n [class.is-disabled]=\"item.disabled\"\n [class.is-active]=\"item.active\"\n (click)=\"onItemClick(item)\">\n @if(item.icon) {\n <span [ngClass]=\"item.icon | coreIconCompat\"></span>\n }\n {{ item.label }}\n </a>\n }\n </li>\n }\n </ul>\n }\n </nav>\n }\n} \n\n<ng-template #sidebarContentTemplate>\n <nav class=\"c-sidenav c-sidenav--modal\">\n @if(shouldUseCustomTemplate() && isTemplateInsideNav()) {\n <ng-container \n [ngTemplateOutlet]=\"getActiveTemplate()\" \n [ngTemplateOutletContext]=\"{\n $implicit: getConfig(),\n config: getConfig(),\n position: position(),\n onItemClick: onItemClick.bind(this),\n onSubItemClick: onSubItemClick.bind(this)\n }\">\n </ng-container>\n } @else if (!shouldUseCustomTemplate()) {\n <ul class=\"c-sidenav__list\">\n @for(item of getConfig()?.items || []; track item.id) {\n <li class=\"c-sidenav__item\">\n @if(item.children && item.children.length > 0) {\n <a class=\"c-sidenav__link\">{{ item.label }}</a>\n <ul class=\"c-sidenav__sublist\">\n @for(subItem of item.children; track subItem.id) {\n <li class=\"c-sidenav__subitem\">\n <a class=\"c-sidenav__sublink\"\n [class.is-disabled]=\"subItem.disabled\"\n [class.is-active]=\"subItem.active\"\n (click)=\"onSubItemClick(subItem); modalService.closeModal()\">\n {{ subItem.label }}\n </a>\n </li>\n }\n </ul>\n } @else {\n <a class=\"c-sidenav__link\"\n [class.is-disabled]=\"item.disabled\"\n [class.is-active]=\"item.active\"\n (click)=\"onItemClick(item); modalService.closeModal()\">\n @if(item.icon) {\n <span [ngClass]=\"item.icon | coreIconCompat\"></span>\n }\n {{ item.label }}\n </a>\n }\n </li>\n }\n </ul>\n }\n </nav>\n</ng-template>\n\n@if(shouldUseCustomTemplate() && !isTemplateInsideNav()) {\n <ng-container \n [ngTemplateOutlet]=\"getActiveTemplate()\" \n [ngTemplateOutletContext]=\"{\n $implicit: getConfig(),\n config: getConfig(),\n position: position(),\n onItemClick: onItemClick.bind(this),\n onSubItemClick: onSubItemClick.bind(this)\n }\">\n </ng-container>\n}\n\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }] });
|
|
16155
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericSidebarComponent, isStandalone: true, selector: "core-generic-sidebar", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, customTemplate: { classPropertyName: "customTemplate", publicName: "customTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClicked: "itemClicked", subItemClicked: "subItemClicked" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "sidebarContentTemplate", first: true, predicate: ["sidebarContentTemplate"], descendants: true, isSignal: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "@if(getConfig() && hasValidConfiguration() && shouldRenderSidebar()) {\n\n @if(getConfig()?.backButton) {\n <button class=\"c-back-link\" (click)=\"getConfig()?.backButton?.action()\">\n <span class=\"icon-arrow-left\"></span>\n @if(getConfig()?.backButton?.labelNeedsTranslation && getConfig()?.backButton?.label) {\n {{ getConfig()!.backButton!.label | translate }}\n } @else if(getConfig()?.backButton?.label) {\n {{ getConfig()!.backButton!.label }}\n }\n </button>\n }\n\n @if (shouldShowMobileVersion()) {\n \n @if (getMobileType() === SidebarMobileType.SELECT) {\n <div class=\"c-sidebar-mobile\">\n <label class=\"c-entry-input\">\n <select (change)=\"onMobileSelectChange($event)\" [value]=\"getActiveItemId()\">\n <option value=\"\">Seleccionar...</option>\n @for(item of getConfig()?.items || []; track item.id) {\n @if(item.children && item.children.length > 0) {\n <optgroup [label]=\"item.label\">\n @for(subItem of item.children; track subItem.id) {\n <option [disabled]=\"subItem.disabled\" [value]=\"subItem.id\" [selected]=\"subItem.active\">\n {{ subItem.label }}\n </option>\n }\n </optgroup>\n } @else {\n <option [disabled]=\"item.disabled\" [value]=\"item.id\" [selected]=\"item.active\">\n {{ item.label }}\n </option>\n }\n }\n </select>\n <span class=\"c-entry-input__addon icon-select-arrow\"></span>\n </label>\n </div>\n }\n\n @if (getMobileType() === SidebarMobileType.SCROLL) {\n <div class=\"c-sidebar-mobile c-sidebar-mobile--scroll\">\n <nav class=\"c-sidenav c-sidenav--mobile-scroll\">\n @if(getConfig()?.title) {\n <p class=\"c-sidenav__heading u-heading u-fz--300\">\n <strong>\n @if(shouldTranslateTitle()) {\n {{ getTitleDisplay() | translate }}\n } @else {\n {{ getTitleDisplay() }}\n }\n </strong>\n </p>\n }\n \n <ul class=\"c-sidenav__list c-sidenav__list--scrollable\">\n @for(item of getScrollableItems(); track item.id) {\n <li class=\"c-sidenav__item\">\n @if(item.children && item.children.length > 0) {\n <a class=\"c-sidenav__link\">{{ item.label }}</a>\n <ul class=\"c-sidenav__sublist\">\n @for(subItem of item.children; track subItem.id) {\n <li class=\"c-sidenav__subitem\">\n <a class=\"c-sidenav__sublink\"\n [class.is-disabled]=\"subItem.disabled\"\n [class.is-active]=\"subItem.active\"\n (click)=\"onSubItemClick(subItem)\">\n {{ subItem.label }}\n </a>\n </li>\n }\n </ul>\n } @else {\n <a class=\"c-sidenav__link\"\n [class.is-disabled]=\"item.disabled\"\n [class.is-active]=\"item.active\"\n (click)=\"onItemClick(item)\">\n @if(item.icon) {\n <span [ngClass]=\"item.icon | coreIconCompat\"></span>\n }\n {{ item.label }}\n </a>\n }\n </li>\n }\n </ul>\n </nav>\n </div>\n }\n\n @if (getMobileType() === SidebarMobileType.MODAL) {\n <!-- El modal se renderiza desde el componente layout usando el servicio -->\n <!-- No renderizamos nada aqu\u00ED para ocultar completamente el sidebar -->\n }\n }\n\n @if (shouldShowDesktopVersion()) {\n <nav class=\"c-sidenav\" style=\"--_layout-padd-y: calc(var(--space-y) * 1.8);\">\n \n @if(getConfig()?.title) {\n <p class=\"c-sidenav__heading u-heading u-fz--300\">\n <strong>\n @if(shouldTranslateTitle()) {\n {{ getTitleDisplay() | translate }}\n } @else {\n {{ getTitleDisplay() }}\n }\n </strong>\n </p>\n }\n \n @if(shouldUseCustomTemplate() && isTemplateInsideNav()) {\n <ng-container \n [ngTemplateOutlet]=\"getActiveTemplate()\" \n [ngTemplateOutletContext]=\"{\n $implicit: getConfig(),\n config: getConfig(),\n position: position(),\n onItemClick: onItemClick.bind(this),\n onSubItemClick: onSubItemClick.bind(this)\n }\">\n </ng-container>\n } @else if (!shouldUseCustomTemplate()) {\n <ul class=\"c-sidenav__list\">\n @for(item of getConfig()?.items || []; track item.id) {\n <li class=\"c-sidenav__item\">\n @if(item.children && item.children.length > 0) {\n <a class=\"c-sidenav__link\">{{ item.label }}</a>\n <ul class=\"c-sidenav__sublist\">\n @for(subItem of item.children; track subItem.id) {\n <li class=\"c-sidenav__subitem\">\n <a class=\"c-sidenav__sublink\"\n [class.is-disabled]=\"subItem.disabled\"\n [class.is-active]=\"subItem.active\"\n (click)=\"onSubItemClick(subItem)\">\n {{ subItem.label }}\n </a>\n </li>\n }\n </ul>\n } @else {\n <a class=\"c-sidenav__link\"\n [class.is-disabled]=\"item.disabled\"\n [class.is-active]=\"item.active\"\n (click)=\"onItemClick(item)\">\n @if(item.icon) {\n <span [ngClass]=\"item.icon | coreIconCompat\"></span>\n }\n {{ item.label }}\n </a>\n }\n </li>\n }\n </ul>\n }\n </nav>\n }\n} \n\n<ng-template #sidebarContentTemplate>\n <nav class=\"c-sidenav c-sidenav--modal\">\n @if(shouldUseCustomTemplate() && isTemplateInsideNav()) {\n <ng-container \n [ngTemplateOutlet]=\"getActiveTemplate()\" \n [ngTemplateOutletContext]=\"{\n $implicit: getConfig(),\n config: getConfig(),\n position: position(),\n onItemClick: onItemClick.bind(this),\n onSubItemClick: onSubItemClick.bind(this)\n }\">\n </ng-container>\n } @else if (!shouldUseCustomTemplate()) {\n <ul class=\"c-sidenav__list\">\n @for(item of getConfig()?.items || []; track item.id) {\n <li class=\"c-sidenav__item\">\n @if(item.children && item.children.length > 0) {\n <a class=\"c-sidenav__link\">{{ item.label }}</a>\n <ul class=\"c-sidenav__sublist\">\n @for(subItem of item.children; track subItem.id) {\n <li class=\"c-sidenav__subitem\">\n <a class=\"c-sidenav__sublink\"\n [class.is-disabled]=\"subItem.disabled\"\n [class.is-active]=\"subItem.active\"\n (click)=\"onSubItemClick(subItem); modalService.closeModal()\">\n {{ subItem.label }}\n </a>\n </li>\n }\n </ul>\n } @else {\n <a class=\"c-sidenav__link\"\n [class.is-disabled]=\"item.disabled\"\n [class.is-active]=\"item.active\"\n (click)=\"onItemClick(item); modalService.closeModal()\">\n @if(item.icon) {\n <span [ngClass]=\"item.icon | coreIconCompat\"></span>\n }\n {{ item.label }}\n </a>\n }\n </li>\n }\n </ul>\n }\n </nav>\n</ng-template>\n\n@if(shouldUseCustomTemplate() && !isTemplateInsideNav()) {\n <ng-container \n [ngTemplateOutlet]=\"getActiveTemplate()\" \n [ngTemplateOutletContext]=\"{\n $implicit: getConfig(),\n config: getConfig(),\n position: position(),\n onItemClick: onItemClick.bind(this),\n onSubItemClick: onSubItemClick.bind(this)\n }\">\n </ng-container>\n}\n\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }] });
|
|
15952
16156
|
}
|
|
15953
16157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericSidebarComponent, decorators: [{
|
|
15954
16158
|
type: Component,
|
|
@@ -16229,7 +16433,7 @@ class GenericTimelineComponent {
|
|
|
16229
16433
|
return item.id || index;
|
|
16230
16434
|
}
|
|
16231
16435
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericTimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16232
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericTimelineComponent, isStandalone: true, selector: "core-generic-timeline", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, showDate: { classPropertyName: "showDate", publicName: "showDate", isSignal: true, isRequired: false, transformFunction: null }, showStatus: { classPropertyName: "showStatus", publicName: "showStatus", isSignal: true, isRequired: false, transformFunction: null }, enableActions: { classPropertyName: "enableActions", publicName: "enableActions", isSignal: true, isRequired: false, transformFunction: null }, customClass: { classPropertyName: "customClass", publicName: "customClass", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, sortAscending: { classPropertyName: "sortAscending", publicName: "sortAscending", isSignal: true, isRequired: false, transformFunction: null }, filterStatuses: { classPropertyName: "filterStatuses", publicName: "filterStatuses", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClicked: "itemClicked", actionClicked: "actionClicked" }, queries: [{ propertyName: "customTemplate", first: true, predicate: ["timelineTemplate"], descendants: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-timeline-container\">\n @if (hasItems()) {\n <ul [class]=\"getTimelineClasses()\">\n @for (item of processedItems(); track trackByItemId($index, item)) {\n @if (isValidItem(item)) {\n <li [class]=\"getItemClasses(item)\" (click)=\"onItemClick(item)\">\n <div class=\"c-timeline__info\">\n @if (hasCustomTemplate()) {\n @if (customTemplate) {\n <ng-container *ngTemplateOutlet=\"customTemplate; context: { $implicit: item, index: $index }\"></ng-container>\n } @else if (mergedConfig().customTemplate) {\n <ng-container *ngTemplateOutlet=\"mergedConfig().customTemplate!; context: { $implicit: item, index: $index }\"></ng-container>\n }\n } @else {\n <div>\n <p class=\"u-text\">{{ item.text }}</p>\n <div class=\"c-bulleted-text\">\n @if (mergedConfig().showDate) {\n <time [attr.datetime]=\"item.date\">\n {{ formatDate(item.date) }}\n </time>\n }\n @if (mergedConfig().showStatus) {\n <span \n [ngClass]=\"getStatusClass(item.status)\">\n {{ item.status }}\n </span>\n }\n </div>\n </div>\n }\n \n @if (mergedConfig().enableActions && item.actionText && item.isActive) {\n <core-generic-button\n [config]=\"getActionButtonConfig(item)\"\n (clicked)=\"onActionClick(item, $event)\">\n </core-generic-button>\n }\n </div>\n </li>\n }\n }\n </ul>\n } @else {\n <div class=\"c-timeline-empty\">\n <p class=\"c-timeline-empty__message\">\n {{ mergedConfig().emptyMessage! | translate }}\n </p>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
16436
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericTimelineComponent, isStandalone: true, selector: "core-generic-timeline", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, showDate: { classPropertyName: "showDate", publicName: "showDate", isSignal: true, isRequired: false, transformFunction: null }, showStatus: { classPropertyName: "showStatus", publicName: "showStatus", isSignal: true, isRequired: false, transformFunction: null }, enableActions: { classPropertyName: "enableActions", publicName: "enableActions", isSignal: true, isRequired: false, transformFunction: null }, customClass: { classPropertyName: "customClass", publicName: "customClass", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, sortAscending: { classPropertyName: "sortAscending", publicName: "sortAscending", isSignal: true, isRequired: false, transformFunction: null }, filterStatuses: { classPropertyName: "filterStatuses", publicName: "filterStatuses", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClicked: "itemClicked", actionClicked: "actionClicked" }, queries: [{ propertyName: "customTemplate", first: true, predicate: ["timelineTemplate"], descendants: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div class=\"c-timeline-container\">\n @if (hasItems()) {\n <ul [class]=\"getTimelineClasses()\">\n @for (item of processedItems(); track trackByItemId($index, item)) {\n @if (isValidItem(item)) {\n <li [class]=\"getItemClasses(item)\" (click)=\"onItemClick(item)\">\n <div class=\"c-timeline__info\">\n @if (hasCustomTemplate()) {\n @if (customTemplate) {\n <ng-container *ngTemplateOutlet=\"customTemplate; context: { $implicit: item, index: $index }\"></ng-container>\n } @else if (mergedConfig().customTemplate) {\n <ng-container *ngTemplateOutlet=\"mergedConfig().customTemplate!; context: { $implicit: item, index: $index }\"></ng-container>\n }\n } @else {\n <div>\n <p class=\"u-text\">{{ item.text }}</p>\n <div class=\"c-bulleted-text\">\n @if (mergedConfig().showDate) {\n <time [attr.datetime]=\"item.date\">\n {{ formatDate(item.date) }}\n </time>\n }\n @if (mergedConfig().showStatus) {\n <span \n [ngClass]=\"getStatusClass(item.status)\">\n {{ item.status }}\n </span>\n }\n </div>\n </div>\n }\n \n @if (mergedConfig().enableActions && item.actionText && item.isActive) {\n <core-generic-button\n [config]=\"getActionButtonConfig(item)\"\n (clicked)=\"onActionClick(item, $event)\">\n </core-generic-button>\n }\n </div>\n </li>\n }\n }\n </ul>\n } @else {\n <div class=\"c-timeline-empty\">\n <p class=\"c-timeline-empty__message\">\n {{ mergedConfig().emptyMessage! | translate }}\n </p>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }] });
|
|
16233
16437
|
}
|
|
16234
16438
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericTimelineComponent, decorators: [{
|
|
16235
16439
|
type: Component,
|
|
@@ -16553,7 +16757,7 @@ class MobileHeaderComponent {
|
|
|
16553
16757
|
action.callback();
|
|
16554
16758
|
}
|
|
16555
16759
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MobileHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16556
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: MobileHeaderComponent, isStandalone: true, selector: "core-mobile-header", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { menuClick: "menuClick", refreshClick: "refreshClick", filterClick: "filterClick" }, ngImport: i0, template: "@if (shouldShow()) {\n <div class=\"c-header-mobile__holder\">\n <div class=\"c-header-mobile__row\">\n <div class=\"c-header-mobile__col\">\n <p class=\"c-header-mobile__title\">{{ displayTitle() | translate }}</p>\n @for (action of headerActions(); track action.id) {\n <core-generic-button\n [config]=\"action.buttonConfig\"\n (buttonClick)=\"onHeaderActionClick(action)\">\n </core-generic-button>\n }\n </div>\n <div class=\"c-header-mobile__col c-header-mobile__actions\">\n <button \n type=\"button\" \n class=\"c-header-mobile__menu icon-burger\"\n [attr.aria-label]=\"'mobile-header.menu' | translate\"\n (click)=\"onMenuClick()\">\n </button>\n </div>\n </div>\n </div>\n \n @if (customTemplate()) {\n <ng-container *ngTemplateOutlet=\"customTemplate()!\"></ng-container>\n }\n \n @if (shouldShowRefreshButton() || shouldShowFilterButton()) {\n <div class=\"c-header-mobile__subnav\" \n [class.c-header-mobile__subnav--light]=\"config().lightSubnav !== false\">\n <div class=\"u-flex u-flex--space-between\">\n @if (shouldShowRefreshButton()) {\n <button \n type=\"button\"\n class=\"c-btn c-btn--stroke c-btn--secondary\"\n (click)=\"onRefreshClick()\">\n <span class=\"icon-reload\"></span>\n {{ (config().refreshButtonLabel || 'mobile-header.refresh') | translate }}\n </button>\n } @else {\n <div></div>\n }\n \n @if (shouldShowFilterButton()) {\n <button \n type=\"button\"\n class=\"c-btn c-btn--stroke\"\n (click)=\"onFilterClick()\">\n <span class=\"icon-filter\"></span>\n {{ (config().filterButtonLabel || 'mobile-header.filter') | translate }}\n </button>\n }\n </div>\n </div>\n }\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
16760
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: MobileHeaderComponent, isStandalone: true, selector: "core-mobile-header", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { menuClick: "menuClick", refreshClick: "refreshClick", filterClick: "filterClick" }, ngImport: i0, template: "@if (shouldShow()) {\n <div class=\"c-header-mobile__holder\">\n <div class=\"c-header-mobile__row\">\n <div class=\"c-header-mobile__col\">\n <p class=\"c-header-mobile__title\">{{ displayTitle() | translate }}</p>\n @for (action of headerActions(); track action.id) {\n <core-generic-button\n [config]=\"action.buttonConfig\"\n (buttonClick)=\"onHeaderActionClick(action)\">\n </core-generic-button>\n }\n </div>\n <div class=\"c-header-mobile__col c-header-mobile__actions\">\n <button \n type=\"button\" \n class=\"c-header-mobile__menu icon-burger\"\n [attr.aria-label]=\"'mobile-header.menu' | translate\"\n (click)=\"onMenuClick()\">\n </button>\n </div>\n </div>\n </div>\n \n @if (customTemplate()) {\n <ng-container *ngTemplateOutlet=\"customTemplate()!\"></ng-container>\n }\n \n @if (shouldShowRefreshButton() || shouldShowFilterButton()) {\n <div class=\"c-header-mobile__subnav\" \n [class.c-header-mobile__subnav--light]=\"config().lightSubnav !== false\">\n <div class=\"u-flex u-flex--space-between\">\n @if (shouldShowRefreshButton()) {\n <button \n type=\"button\"\n class=\"c-btn c-btn--stroke c-btn--secondary\"\n (click)=\"onRefreshClick()\">\n <span class=\"icon-reload\"></span>\n {{ (config().refreshButtonLabel || 'mobile-header.refresh') | translate }}\n </button>\n } @else {\n <div></div>\n }\n \n @if (shouldShowFilterButton()) {\n <button \n type=\"button\"\n class=\"c-btn c-btn--stroke\"\n (click)=\"onFilterClick()\">\n <span class=\"icon-filter\"></span>\n {{ (config().filterButtonLabel || 'mobile-header.filter') | translate }}\n </button>\n }\n </div>\n </div>\n }\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }] });
|
|
16557
16761
|
}
|
|
16558
16762
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MobileHeaderComponent, decorators: [{
|
|
16559
16763
|
type: Component,
|
|
@@ -16661,11 +16865,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
16661
16865
|
// Este archivo es generado automáticamente por scripts/update-version.js
|
|
16662
16866
|
// No edites manualmente este archivo
|
|
16663
16867
|
const VERSION = {
|
|
16664
|
-
full: '2.18.
|
|
16868
|
+
full: '2.18.3',
|
|
16665
16869
|
major: 2,
|
|
16666
16870
|
minor: 18,
|
|
16667
|
-
patch:
|
|
16668
|
-
timestamp: '2026-01-
|
|
16871
|
+
patch: 3,
|
|
16872
|
+
timestamp: '2026-01-02T14:37:35.394Z',
|
|
16669
16873
|
buildDate: '2/1/2026'
|
|
16670
16874
|
};
|
|
16671
16875
|
|
|
@@ -17054,7 +17258,7 @@ class MainNavComponent {
|
|
|
17054
17258
|
});
|
|
17055
17259
|
}
|
|
17056
17260
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MainNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17057
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: MainNavComponent, isStandalone: true, selector: "core-main-nav", inputs: { navConfig: { classPropertyName: "navConfig", publicName: "navConfig", isSignal: true, isRequired: false, transformFunction: null }, appVersion: { classPropertyName: "appVersion", publicName: "appVersion", isSignal: true, isRequired: false, transformFunction: null }, navItems: { classPropertyName: "navItems", publicName: "navItems", isSignal: true, isRequired: false, transformFunction: null }, bottomNavItems: { classPropertyName: "bottomNavItems", publicName: "bottomNavItems", isSignal: true, isRequired: false, transformFunction: null }, isProduction: { classPropertyName: "isProduction", publicName: "isProduction", isSignal: true, isRequired: false, transformFunction: null }, logoImagesConfig: { classPropertyName: "logoImagesConfig", publicName: "logoImagesConfig", isSignal: true, isRequired: false, transformFunction: null }, collapsedLogo: { classPropertyName: "collapsedLogo", publicName: "collapsedLogo", isSignal: true, isRequired: false, transformFunction: null }, expandedLogo: { classPropertyName: "expandedLogo", publicName: "expandedLogo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onLogout: "onLogout", onNavItemAction: "onNavItemAction" }, usesOnChanges: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- ! Refactor: Start -->\n<div class=\"c-nav-overlay\" (click)=\"toggleMobileNav()\"></div>\n<div class=\"o-layout__nav c-main-nav\">\n <!-- [ngClass]=\"{'nav-expanded': !isCollapsed}\"> -->\n <div class=\"c-main-nav__viewport\">\n <!-- Toggle btn -->\n <button\n (click)=\"onToggleSidebar()\"\n class=\"c-main-nav__toggle c-mn-toggle\"\n [title]=\"\n isCollapsed\n ? ('Expandir navegaci\u00F3n' | translate)\n : ('Colapsar navegaci\u00F3n' | translate)\n \"\n aria-label=\"Expandir navegaci\u00F3n\"\n ></button>\n\n <!-- Brand -->\n @if(navConfig().showLogo !== false) {\n <div class=\"c-main-nav__brand c-mn-brand\">\n @if(getCollapsedLogoSrc()) {\n <img\n class=\"c-mn-brand__iso\"\n [src]=\"getCollapsedLogoSrc()\"\n [width]=\"getCollapsedLogoSettings().width\"\n [height]=\"getCollapsedLogoSettings().height\"\n [alt]=\"getCollapsedLogoSettings().alt\"\n />\n } @if(getExpandedLogoSrc()) {\n <img\n class=\"c-mn-brand__logo\"\n [src]=\"getExpandedLogoSrc()\"\n [width]=\"getExpandedLogoSettings().width\"\n [height]=\"getExpandedLogoSettings().height\"\n [alt]=\"getExpandedLogoSettings().alt\"\n />\n }\n </div>\n }\n\n <!-- User -->\n @if(shouldShowUserSection()) {\n <div class=\"c-main-nav__user c-mn-user\">\n <div class=\"c-mn-user__short c-mn-user__nav-close\">\n <span>{{ getUserInitials() }}</span>\n </div>\n <div class=\"c-mn-user__nav-open\">\n <p class=\"c-mn-user__welcome\">\n @if(userConfig?.greetingKey) {\n {{ userConfig?.greetingKey ?? \"\" | translate }}\n } @else if(userConfig?.greetingText) {\n {{ userConfig?.greetingText }}\n } @else { Bienvenido/a, }\n </p>\n <p class=\"c-mn-user__name\">\n @if(userConfig?.nameKey) {\n {{ userConfig?.nameKey ?? \"\" | translate }}\n } @else if(userConfig?.name) {\n {{ userConfig?.name }}\n } @else {\n {{ getFallbackUserName() }}\n }\n </p>\n </div>\n </div>\n }\n\n <!-- Nav -->\n <nav class=\"c-main-nav__nav c-mn-nav\">\n <ul class=\"c-mn-nav__list\">\n <ng-template #menuItems let-items=\"items\" let-level=\"level\">\n <ng-container *ngFor=\"let item of items; let i = index\">\n <ng-container\n *ngIf=\"\n hasPermission(item) &&\n !item.hidden &&\n (!item.children || hasVisibleChildren(item))\n \"\n >\n <li\n class=\"c-mn-nav__item c-mn-nav__submenu\"\n [ngClass]=\"{\n 'is-expanded': isSectionExpanded(item.label, level)\n }\"\n *ngIf=\"\n item.children && hasVisibleChildren(item);\n else singleLink\n \"\n >\n <button\n class=\"c-mn-nav__link\"\n [ngClass]=\"{ 'is-active': isParentActive(item) }\"\n (click)=\"toggleSection(item.label, level)\"\n [title]=\"isCollapsed ? (item.label | translate) : ''\"\n >\n <span\n class=\"c-mn-nav__icon\"\n [ngClass]=\"item.icon | coreIconCompat\"\n ></span>\n <span class=\"c-mn-nav__text\">\n {{ item.label | translate }}\n <span class=\"c-mn-nav__plus\"></span>\n </span>\n </button>\n\n <div class=\"c-mn-nav__subholder\">\n <ul class=\"c-mn-nav__sublist\">\n <ng-container\n *ngFor=\"let child of item.children; let j = index\"\n >\n <ng-container\n *ngIf=\"\n hasPermission(child) &&\n !child.hidden &&\n (!child.children || hasVisibleChildren(child))\n \"\n >\n <ng-container *ngIf=\"!child.children; else nestedChild\">\n <li class=\"c-mn-nav__subitem\">\n <button\n class=\"c-mn-nav__sublink\"\n [routerLink]=\"child.disabled ? null : child.path\"\n routerLinkActive=\"is-active\"\n [routerLinkActiveOptions]=\"{ exact: false }\"\n [title]=\"\n isCollapsed ? (child.label | translate) : ''\n \"\n [ngClass]=\"{ 'is-disabled': child.disabled }\"\n [style.pointer-events]=\"\n child.disabled ? 'none' : 'auto'\n \"\n [style.opacity]=\"child.disabled ? '0.5' : '1'\"\n >\n {{ child.label | translate }}\n </button>\n </li>\n </ng-container>\n\n <ng-template #nestedChild>\n <li\n class=\"c-mn-nav__subitem\"\n [ngClass]=\"{\n 'submenu-open':\n isSectionExpanded(child.label, level + 1) &&\n !isCollapsed\n }\"\n *ngIf=\"child.children && hasVisibleChildren(child)\"\n >\n <button\n class=\"c-mn-nav__sublink\"\n [ngClass]=\"{ 'is-active': isParentActive(child) }\"\n (click)=\"toggleSection(child.label, level + 1)\"\n [title]=\"\n isCollapsed ? (child.label | translate) : ''\n \"\n >\n {{ child.label | translate }}\n </button>\n\n <div class=\"c-mn-nav__subholder\">\n <ul class=\"c-mn-nav__sublist\">\n <ng-container\n *ngFor=\"let subItem of child.children\"\n >\n <li\n class=\"c-mn-nav__subitem\"\n *ngIf=\"\n hasPermission(subItem) && !subItem.hidden\n \"\n >\n <button\n class=\"c-mn-nav__sublink\"\n [routerLink]=\"subItem.path\"\n routerLinkActive=\"is-active\"\n >\n {{ subItem.label | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </li>\n </ng-template>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n </li>\n\n <ng-template #singleLink>\n <li class=\"c-mn-nav__item\" [ngClass]=\"item.cssClass\">\n <!-- Nav item with custom action (no routing) -->\n <ng-container *ngIf=\"hasCustomAction(item); else routeLink\">\n <button\n class=\"c-mn-nav__link\"\n (click)=\"onNavItemClick(item, $event)\"\n [title]=\"isCollapsed ? (item.label | translate) : ''\"\n [ngClass]=\"{ 'is-disabled': item.disabled }\"\n [disabled]=\"item.disabled\"\n [style.opacity]=\"item.disabled ? '0.5' : '1'\"\n >\n <span\n class=\"c-mn-nav__icon\"\n [ngClass]=\"item.icon | coreIconCompat\"\n ></span>\n <span class=\"c-mn-nav__text\">\n {{ item.label | translate }}\n </span>\n </button>\n </ng-container>\n\n <!-- Nav item with router link (default behavior) -->\n <ng-template #routeLink>\n <button\n class=\"c-mn-nav__link\"\n [routerLink]=\"item.disabled ? null : item.path\"\n routerLinkActive=\"is-active\"\n [routerLinkActiveOptions]=\"{ exact: false }\"\n [title]=\"isCollapsed ? (item.label | translate) : ''\"\n [ngClass]=\"{ 'is-disabled': item.disabled }\"\n [disabled]=\"item.disabled\"\n [style.opacity]=\"item.disabled ? '0.5' : '1'\"\n >\n <span\n class=\"c-mn-nav__icon\"\n [ngClass]=\"item.icon | coreIconCompat\"\n ></span>\n <span class=\"c-mn-nav__text\">\n {{ item.label | translate }}\n </span>\n </button>\n </ng-template>\n </li>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"\n menuItems;\n context: { items: navItems(), level: 0 }\n \"\n ></ng-container>\n </ul>\n </nav>\n <!-- .c-mn-nav -->\n\n <!-- TODO User -->\n\n <nav class=\"c-main-nav__bottom c-mn-nav\">\n <ul class=\"c-mn-nav__list\">\n <li class=\"c-mn-nav__item\">\n <button\n class=\"c-mn-nav__link\"\n (click)=\"logout()\"\n [title]=\"isCollapsed ? ('sidebar.logout' | translate) : ''\"\n >\n <span class=\"c-mn-nav__icon icon-logout\"></span>\n <span class=\"c-mn-nav__text\">\n {{ \"sidebar.logout\" | translate }}\n </span>\n </button>\n </li>\n @if(navConfig().showVersion !== false) {\n <li class=\"c-mn-nav__version\">v{{ appVersion().full }}</li>\n }\n </ul>\n </nav>\n </div>\n <!-- .c-main-nav__viewport -->\n</div>\n<!-- .c-main-nav -->\n\n<!-- ! Refactor: End -->\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }] });
|
|
17261
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: MainNavComponent, isStandalone: true, selector: "core-main-nav", inputs: { navConfig: { classPropertyName: "navConfig", publicName: "navConfig", isSignal: true, isRequired: false, transformFunction: null }, appVersion: { classPropertyName: "appVersion", publicName: "appVersion", isSignal: true, isRequired: false, transformFunction: null }, navItems: { classPropertyName: "navItems", publicName: "navItems", isSignal: true, isRequired: false, transformFunction: null }, bottomNavItems: { classPropertyName: "bottomNavItems", publicName: "bottomNavItems", isSignal: true, isRequired: false, transformFunction: null }, isProduction: { classPropertyName: "isProduction", publicName: "isProduction", isSignal: true, isRequired: false, transformFunction: null }, logoImagesConfig: { classPropertyName: "logoImagesConfig", publicName: "logoImagesConfig", isSignal: true, isRequired: false, transformFunction: null }, collapsedLogo: { classPropertyName: "collapsedLogo", publicName: "collapsedLogo", isSignal: true, isRequired: false, transformFunction: null }, expandedLogo: { classPropertyName: "expandedLogo", publicName: "expandedLogo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onLogout: "onLogout", onNavItemAction: "onNavItemAction" }, usesOnChanges: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<!-- ! Refactor: Start -->\n<div class=\"c-nav-overlay\" (click)=\"toggleMobileNav()\"></div>\n<div class=\"o-layout__nav c-main-nav\">\n <!-- [ngClass]=\"{'nav-expanded': !isCollapsed}\"> -->\n <div class=\"c-main-nav__viewport\">\n <!-- Toggle btn -->\n <button\n (click)=\"onToggleSidebar()\"\n class=\"c-main-nav__toggle c-mn-toggle\"\n [title]=\"\n isCollapsed\n ? ('Expandir navegaci\u00F3n' | translate)\n : ('Colapsar navegaci\u00F3n' | translate)\n \"\n aria-label=\"Expandir navegaci\u00F3n\"\n ></button>\n\n <!-- Brand -->\n @if(navConfig().showLogo !== false) {\n <div class=\"c-main-nav__brand c-mn-brand\">\n @if(getCollapsedLogoSrc()) {\n <img\n class=\"c-mn-brand__iso\"\n [src]=\"getCollapsedLogoSrc()\"\n [width]=\"getCollapsedLogoSettings().width\"\n [height]=\"getCollapsedLogoSettings().height\"\n [alt]=\"getCollapsedLogoSettings().alt\"\n />\n } @if(getExpandedLogoSrc()) {\n <img\n class=\"c-mn-brand__logo\"\n [src]=\"getExpandedLogoSrc()\"\n [width]=\"getExpandedLogoSettings().width\"\n [height]=\"getExpandedLogoSettings().height\"\n [alt]=\"getExpandedLogoSettings().alt\"\n />\n }\n </div>\n }\n\n <!-- User -->\n @if(shouldShowUserSection()) {\n <div class=\"c-main-nav__user c-mn-user\">\n <div class=\"c-mn-user__short c-mn-user__nav-close\">\n <span>{{ getUserInitials() }}</span>\n </div>\n <div class=\"c-mn-user__nav-open\">\n <p class=\"c-mn-user__welcome\">\n @if(userConfig?.greetingKey) {\n {{ userConfig?.greetingKey ?? \"\" | translate }}\n } @else if(userConfig?.greetingText) {\n {{ userConfig?.greetingText }}\n } @else { Bienvenido/a, }\n </p>\n <p class=\"c-mn-user__name\">\n @if(userConfig?.nameKey) {\n {{ userConfig?.nameKey ?? \"\" | translate }}\n } @else if(userConfig?.name) {\n {{ userConfig?.name }}\n } @else {\n {{ getFallbackUserName() }}\n }\n </p>\n </div>\n </div>\n }\n\n <!-- Nav -->\n <nav class=\"c-main-nav__nav c-mn-nav\">\n <ul class=\"c-mn-nav__list\">\n <ng-template #menuItems let-items=\"items\" let-level=\"level\">\n <ng-container *ngFor=\"let item of items; let i = index\">\n <ng-container\n *ngIf=\"\n hasPermission(item) &&\n !item.hidden &&\n (!item.children || hasVisibleChildren(item))\n \"\n >\n <li\n class=\"c-mn-nav__item c-mn-nav__submenu\"\n [ngClass]=\"{\n 'is-expanded': isSectionExpanded(item.label, level)\n }\"\n *ngIf=\"\n item.children && hasVisibleChildren(item);\n else singleLink\n \"\n >\n <button\n class=\"c-mn-nav__link\"\n [ngClass]=\"{ 'is-active': isParentActive(item) }\"\n (click)=\"toggleSection(item.label, level)\"\n [title]=\"isCollapsed ? (item.label | translate) : ''\"\n >\n <span\n class=\"c-mn-nav__icon\"\n [ngClass]=\"item.icon | coreIconCompat\"\n ></span>\n <span class=\"c-mn-nav__text\">\n {{ item.label | translate }}\n <span class=\"c-mn-nav__plus\"></span>\n </span>\n </button>\n\n <div class=\"c-mn-nav__subholder\">\n <ul class=\"c-mn-nav__sublist\">\n <ng-container\n *ngFor=\"let child of item.children; let j = index\"\n >\n <ng-container\n *ngIf=\"\n hasPermission(child) &&\n !child.hidden &&\n (!child.children || hasVisibleChildren(child))\n \"\n >\n <ng-container *ngIf=\"!child.children; else nestedChild\">\n <li class=\"c-mn-nav__subitem\">\n <button\n class=\"c-mn-nav__sublink\"\n [routerLink]=\"child.disabled ? null : child.path\"\n routerLinkActive=\"is-active\"\n [routerLinkActiveOptions]=\"{ exact: false }\"\n [title]=\"\n isCollapsed ? (child.label | translate) : ''\n \"\n [ngClass]=\"{ 'is-disabled': child.disabled }\"\n [style.pointer-events]=\"\n child.disabled ? 'none' : 'auto'\n \"\n [style.opacity]=\"child.disabled ? '0.5' : '1'\"\n >\n {{ child.label | translate }}\n </button>\n </li>\n </ng-container>\n\n <ng-template #nestedChild>\n <li\n class=\"c-mn-nav__subitem\"\n [ngClass]=\"{\n 'submenu-open':\n isSectionExpanded(child.label, level + 1) &&\n !isCollapsed\n }\"\n *ngIf=\"child.children && hasVisibleChildren(child)\"\n >\n <button\n class=\"c-mn-nav__sublink\"\n [ngClass]=\"{ 'is-active': isParentActive(child) }\"\n (click)=\"toggleSection(child.label, level + 1)\"\n [title]=\"\n isCollapsed ? (child.label | translate) : ''\n \"\n >\n {{ child.label | translate }}\n </button>\n\n <div class=\"c-mn-nav__subholder\">\n <ul class=\"c-mn-nav__sublist\">\n <ng-container\n *ngFor=\"let subItem of child.children\"\n >\n <li\n class=\"c-mn-nav__subitem\"\n *ngIf=\"\n hasPermission(subItem) && !subItem.hidden\n \"\n >\n <button\n class=\"c-mn-nav__sublink\"\n [routerLink]=\"subItem.path\"\n routerLinkActive=\"is-active\"\n >\n {{ subItem.label | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </li>\n </ng-template>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n </li>\n\n <ng-template #singleLink>\n <li class=\"c-mn-nav__item\" [ngClass]=\"item.cssClass\">\n <!-- Nav item with custom action (no routing) -->\n <ng-container *ngIf=\"hasCustomAction(item); else routeLink\">\n <button\n class=\"c-mn-nav__link\"\n (click)=\"onNavItemClick(item, $event)\"\n [title]=\"isCollapsed ? (item.label | translate) : ''\"\n [ngClass]=\"{ 'is-disabled': item.disabled }\"\n [disabled]=\"item.disabled\"\n [style.opacity]=\"item.disabled ? '0.5' : '1'\"\n >\n <span\n class=\"c-mn-nav__icon\"\n [ngClass]=\"item.icon | coreIconCompat\"\n ></span>\n <span class=\"c-mn-nav__text\">\n {{ item.label | translate }}\n </span>\n </button>\n </ng-container>\n\n <!-- Nav item with router link (default behavior) -->\n <ng-template #routeLink>\n <button\n class=\"c-mn-nav__link\"\n [routerLink]=\"item.disabled ? null : item.path\"\n routerLinkActive=\"is-active\"\n [routerLinkActiveOptions]=\"{ exact: false }\"\n [title]=\"isCollapsed ? (item.label | translate) : ''\"\n [ngClass]=\"{ 'is-disabled': item.disabled }\"\n [disabled]=\"item.disabled\"\n [style.opacity]=\"item.disabled ? '0.5' : '1'\"\n >\n <span\n class=\"c-mn-nav__icon\"\n [ngClass]=\"item.icon | coreIconCompat\"\n ></span>\n <span class=\"c-mn-nav__text\">\n {{ item.label | translate }}\n </span>\n </button>\n </ng-template>\n </li>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"\n menuItems;\n context: { items: navItems(), level: 0 }\n \"\n ></ng-container>\n </ul>\n </nav>\n <!-- .c-mn-nav -->\n\n <!-- TODO User -->\n\n <nav class=\"c-main-nav__bottom c-mn-nav\">\n <ul class=\"c-mn-nav__list\">\n <li class=\"c-mn-nav__item\">\n <button\n class=\"c-mn-nav__link\"\n (click)=\"logout()\"\n [title]=\"isCollapsed ? ('sidebar.logout' | translate) : ''\"\n >\n <span class=\"c-mn-nav__icon icon-logout\"></span>\n <span class=\"c-mn-nav__text\">\n {{ \"sidebar.logout\" | translate }}\n </span>\n </button>\n </li>\n @if(navConfig().showVersion !== false) {\n <li class=\"c-mn-nav__version\">v{{ appVersion().full }}</li>\n }\n </ul>\n </nav>\n </div>\n <!-- .c-main-nav__viewport -->\n</div>\n<!-- .c-main-nav -->\n\n<!-- ! Refactor: End -->\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4$1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }] });
|
|
17058
17262
|
}
|
|
17059
17263
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MainNavComponent, decorators: [{
|
|
17060
17264
|
type: Component,
|
|
@@ -19356,7 +19560,7 @@ class FilePreviewComponent {
|
|
|
19356
19560
|
return `repeat(${columns}, 1fr)`;
|
|
19357
19561
|
}
|
|
19358
19562
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FilePreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19359
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: FilePreviewComponent, isStandalone: true, selector: "core-file-preview", inputs: { fileModels: { classPropertyName: "fileModels", publicName: "fileModels", isSignal: true, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered" }, ngImport: i0, template: "<div class=\"c-attachments\">\n @if (processedFiles().length === 0) {\n <p class=\"c-placeholder u-push-t\">\n <span [class]=\"config().emptyStateIcon || 'icon-file-not-found'\"></span>\n {{ config().emptyStateMessage || 'file_preview.no_files' | translate }}\n </p>\n } @else {\n <ul class=\"c-attachments__list\">\n @for (file of processedFiles(); track file.id) {\n\n\n <li class=\"c-attachments__item\">\n\n <div class=\"c-bulleted-text\">\n @if (config().showUploadDate) {\n <time>\n {{ formatDate(file.uploadedDate) }}\n </time>\n }\n @if (config().showUploadedBy) {\n <span>\n {{ file.uploadedBy }}\n </span>\n }\n </div>\n\n <div class=\"c-attachments__holder\">\n <div class=\"c-attachments__content\">\n @if (filePreviewService.isImage(file.contentType)) {\n @if (file.thumbnailUrl) {\n <div class=\"c-attachments__pic\">\n <picture class=\"c-img-preview c-pic\">\n <img \n [src]=\"file.thumbnailUrl\" \n [alt]=\"file.filename\" \n class=\"js-img-preview\"\n (click)=\"openImageModal(file.thumbnailUrl, file.filename)\">\n </picture>\n </div>\n } @else {\n <span [class]=\"filePreviewService.getFileIcon(file.contentType)\" class=\"file-icon\"></span>\n }\n } @else {\n <span [class]=\"filePreviewService.getFileIcon(file.contentType)\" class=\"file-icon\"></span>\n }\n\n <div class=\"c-attachments__text\">\n @if (config().showFilename !== false && (!filePreviewService.isImage(file.contentType) || config().showFilename === true)) {\n @if (config().allowDownload && file.canDownload) {\n <a class=\"c-attachments__name-file c-attachments__name-file--clickable\" \n [title]=\"'Haz clic para descargar: ' + file.filename\"\n (click)=\"onAction('download', file)\">\n {{ filePreviewService.truncateFilename(file.filename, config().maxFilenameLength || 30) }}\n </a>\n } @else {\n <span class=\"c-attachments__name-file\" [title]=\"file.filename\">\n {{ filePreviewService.truncateFilename(file.filename, config().maxFilenameLength || 30) }}\n </span>\n }\n }\n @if (config().showFileSize) {\n <span class=\"c-attachments__file-size\">\n {{ filePreviewService.formatFileSize(file.size) }}\n </span>\n }\n </div>\n </div>\n\n \n\n <div class=\"c-attachments__actions u-flex u-flex--wrap\">\n @if (config().allowDelete && file.canDelete) {\n <core-generic-button \n [config]=\"getDeleteButtonConfig(file)\"\n (buttonClick)=\"onAction('delete', file)\">\n </core-generic-button>\n }\n </div>\n </div>\n </li>\n }\n </ul>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
19563
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: FilePreviewComponent, isStandalone: true, selector: "core-file-preview", inputs: { fileModels: { classPropertyName: "fileModels", publicName: "fileModels", isSignal: true, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered" }, ngImport: i0, template: "<div class=\"c-attachments\">\n @if (processedFiles().length === 0) {\n <p class=\"c-placeholder u-push-t\">\n <span [class]=\"config().emptyStateIcon || 'icon-file-not-found'\"></span>\n {{ config().emptyStateMessage || 'file_preview.no_files' | translate }}\n </p>\n } @else {\n <ul class=\"c-attachments__list\">\n @for (file of processedFiles(); track file.id) {\n\n\n <li class=\"c-attachments__item\">\n\n <div class=\"c-bulleted-text\">\n @if (config().showUploadDate) {\n <time>\n {{ formatDate(file.uploadedDate) }}\n </time>\n }\n @if (config().showUploadedBy) {\n <span>\n {{ file.uploadedBy }}\n </span>\n }\n </div>\n\n <div class=\"c-attachments__holder\">\n <div class=\"c-attachments__content\">\n @if (filePreviewService.isImage(file.contentType)) {\n @if (file.thumbnailUrl) {\n <div class=\"c-attachments__pic\">\n <picture class=\"c-img-preview c-pic\">\n <img \n [src]=\"file.thumbnailUrl\" \n [alt]=\"file.filename\" \n class=\"js-img-preview\"\n (click)=\"openImageModal(file.thumbnailUrl, file.filename)\">\n </picture>\n </div>\n } @else {\n <span [class]=\"filePreviewService.getFileIcon(file.contentType)\" class=\"file-icon\"></span>\n }\n } @else {\n <span [class]=\"filePreviewService.getFileIcon(file.contentType)\" class=\"file-icon\"></span>\n }\n\n <div class=\"c-attachments__text\">\n @if (config().showFilename !== false && (!filePreviewService.isImage(file.contentType) || config().showFilename === true)) {\n @if (config().allowDownload && file.canDownload) {\n <a class=\"c-attachments__name-file c-attachments__name-file--clickable\" \n [title]=\"'Haz clic para descargar: ' + file.filename\"\n (click)=\"onAction('download', file)\">\n {{ filePreviewService.truncateFilename(file.filename, config().maxFilenameLength || 30) }}\n </a>\n } @else {\n <span class=\"c-attachments__name-file\" [title]=\"file.filename\">\n {{ filePreviewService.truncateFilename(file.filename, config().maxFilenameLength || 30) }}\n </span>\n }\n }\n @if (config().showFileSize) {\n <span class=\"c-attachments__file-size\">\n {{ filePreviewService.formatFileSize(file.size) }}\n </span>\n }\n </div>\n </div>\n\n \n\n <div class=\"c-attachments__actions u-flex u-flex--wrap\">\n @if (config().allowDelete && file.canDelete) {\n <core-generic-button \n [config]=\"getDeleteButtonConfig(file)\"\n (buttonClick)=\"onAction('delete', file)\">\n </core-generic-button>\n }\n </div>\n </div>\n </li>\n }\n </ul>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }] });
|
|
19360
19564
|
}
|
|
19361
19565
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FilePreviewComponent, decorators: [{
|
|
19362
19566
|
type: Component,
|
|
@@ -20953,7 +21157,7 @@ class AdLoginButtonComponent {
|
|
|
20953
21157
|
}
|
|
20954
21158
|
}
|
|
20955
21159
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AdLoginButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20956
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AdLoginButtonComponent, isStandalone: true, selector: "core-ad-login-button", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { authEvent: "authEvent" }, ngImport: i0, template: "<div class=\"ad-auth-container\" [ngClass]=\"config().customClass\">\n @if (!isConfigured) {\n <div class=\"ad-auth-not-configured\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n {{ \"adAuth.not Configured\" | translate }}\n </div>\n } @else if (isLoading() && config().showLoader !== false) {\n <div class=\"ad-auth-loading\">\n <span class=\"ad-auth-spinner\"></span>\n {{ \"adAuth.authenticating\" | translate }}\n </div>\n } @else if (isAuthenticated() && currentUser()) { @if (showUserInfo()) {\n <div class=\"ad-auth-user-info\">\n <div class=\"ad-auth-user-avatar\">\n {{ userInitials() }}\n </div>\n <div class=\"ad-auth-user-details\">\n <p class=\"ad-auth-user-name\">\n {{ currentUser()!.name || (\"adAuth.user\" | translate) }}\n </p>\n <p class=\"ad-auth-user-email\">{{ currentUser()!.email }}</p>\n </div>\n </div>\n }\n\n <div class=\"ad-auth-buttons\">\n <core-generic-button\n [config]=\"logoutButtonConfig()\"\n (buttonClick)=\"onLogoutClick()\"\n />\n </div>\n } @else { @if (error()) {\n <div class=\"ad-auth-error\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n {{ \"adAuth.authError\" | translate }}\n </div>\n }\n\n <div class=\"ad-auth-buttons\">\n <core-generic-button\n [config]=\"loginButtonConfig()\"\n (buttonClick)=\"onLoginClick()\"\n />\n </div>\n }\n</div>\n", styles: [":host{display:block}.ad-auth-container{display:flex;flex-direction:column;gap:.75rem}.ad-auth-user-info{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background-color:var(--color-background-secondary, #f5f5f5);border-radius:var(--border-radius, .375rem);font-size:.875rem}.ad-auth-user-avatar{width:2.5rem;height:2.5rem;border-radius:50%;background:linear-gradient(135deg,var(--color-primary, #0078d4) 0%,var(--color-primary-dark, #106ebe) 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1rem;flex-shrink:0}.ad-auth-user-details{flex:1;min-width:0}.ad-auth-user-name{font-weight:600;color:var(--color-text-primary, #1a1a1a);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ad-auth-user-email{color:var(--color-text-secondary, #666);margin:0;font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ad-auth-loading{display:flex;align-items:center;justify-content:center;padding:1rem;color:var(--color-text-secondary, #666);font-size:.875rem}.ad-auth-spinner{display:inline-block;width:1rem;height:1rem;border:2px solid var(--color-border, #e0e0e0);border-top-color:var(--color-primary, #0078d4);border-radius:50%;animation:spin .6s linear infinite;margin-right:.5rem}@keyframes spin{to{transform:rotate(360deg)}}.ad-auth-error{padding:.75rem 1rem;background-color:var(--color-danger-light, #fee);color:var(--color-danger, #d32f2f);border-radius:var(--border-radius, .375rem);font-size:.875rem}.ad-auth-not-configured{padding:1rem;background-color:var(--color-warning-light, #fff8e1);color:var(--color-warning-dark, #f57c00);border-radius:var(--border-radius, .375rem);font-size:.875rem;text-align:center}.ad-auth-buttons{display:flex;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type:
|
|
21160
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AdLoginButtonComponent, isStandalone: true, selector: "core-ad-login-button", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { authEvent: "authEvent" }, ngImport: i0, template: "<div class=\"ad-auth-container\" [ngClass]=\"config().customClass\">\n @if (!isConfigured) {\n <div class=\"ad-auth-not-configured\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n {{ \"adAuth.not Configured\" | translate }}\n </div>\n } @else if (isLoading() && config().showLoader !== false) {\n <div class=\"ad-auth-loading\">\n <span class=\"ad-auth-spinner\"></span>\n {{ \"adAuth.authenticating\" | translate }}\n </div>\n } @else if (isAuthenticated() && currentUser()) { @if (showUserInfo()) {\n <div class=\"ad-auth-user-info\">\n <div class=\"ad-auth-user-avatar\">\n {{ userInitials() }}\n </div>\n <div class=\"ad-auth-user-details\">\n <p class=\"ad-auth-user-name\">\n {{ currentUser()!.name || (\"adAuth.user\" | translate) }}\n </p>\n <p class=\"ad-auth-user-email\">{{ currentUser()!.email }}</p>\n </div>\n </div>\n }\n\n <div class=\"ad-auth-buttons\">\n <core-generic-button\n [config]=\"logoutButtonConfig()\"\n (buttonClick)=\"onLogoutClick()\"\n />\n </div>\n } @else { @if (error()) {\n <div class=\"ad-auth-error\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n {{ \"adAuth.authError\" | translate }}\n </div>\n }\n\n <div class=\"ad-auth-buttons\">\n <core-generic-button\n [config]=\"loginButtonConfig()\"\n (buttonClick)=\"onLoginClick()\"\n />\n </div>\n }\n</div>\n", styles: [":host{display:block}.ad-auth-container{display:flex;flex-direction:column;gap:.75rem}.ad-auth-user-info{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background-color:var(--color-background-secondary, #f5f5f5);border-radius:var(--border-radius, .375rem);font-size:.875rem}.ad-auth-user-avatar{width:2.5rem;height:2.5rem;border-radius:50%;background:linear-gradient(135deg,var(--color-primary, #0078d4) 0%,var(--color-primary-dark, #106ebe) 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1rem;flex-shrink:0}.ad-auth-user-details{flex:1;min-width:0}.ad-auth-user-name{font-weight:600;color:var(--color-text-primary, #1a1a1a);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ad-auth-user-email{color:var(--color-text-secondary, #666);margin:0;font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ad-auth-loading{display:flex;align-items:center;justify-content:center;padding:1rem;color:var(--color-text-secondary, #666);font-size:.875rem}.ad-auth-spinner{display:inline-block;width:1rem;height:1rem;border:2px solid var(--color-border, #e0e0e0);border-top-color:var(--color-primary, #0078d4);border-radius:50%;animation:spin .6s linear infinite;margin-right:.5rem}@keyframes spin{to{transform:rotate(360deg)}}.ad-auth-error{padding:.75rem 1rem;background-color:var(--color-danger-light, #fee);color:var(--color-danger, #d32f2f);border-radius:var(--border-radius, .375rem);font-size:.875rem}.ad-auth-not-configured{padding:1rem;background-color:var(--color-warning-light, #fff8e1);color:var(--color-warning-dark, #f57c00);border-radius:var(--border-radius, .375rem);font-size:.875rem;text-align:center}.ad-auth-buttons{display:flex;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
20957
21161
|
}
|
|
20958
21162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AdLoginButtonComponent, decorators: [{
|
|
20959
21163
|
type: Component,
|
|
@@ -22033,5 +22237,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
22033
22237
|
* Generated bundle index. Do not edit.
|
|
22034
22238
|
*/
|
|
22035
22239
|
|
|
22036
|
-
export { AD_AUTH_CONFIG, AD_AUTH_INTERCEPTOR_CONFIG, ALL_COUNTRY_CODES, ActiveFiltersComponent, AdAuthService, AdInteractionType, AdLoginButtonComponent, AgeValidationHelper, AlertComponent, AlertContainerComponent, AlertService, AlertType, ApiConfigurationProvider, BaseFieldComponent, ButtonContext, ButtonSize, ButtonType, COMMON_COUNTRIES, CacheBustingInterceptor, CalendarEventType, CardComponent, CarouselComponent, ChatMessagePosition, ChatMessageType, CheckboxFieldComponent, ColorPickerFieldComponent, ConfigurationModel, ConfirmationDialogComponent, ConfirmationDialogService, CoreHostDirective, CoreManualRefreshComponent, CoreUiHttpLoaderFactory, CoreUiTranslateLoader, CoreUiTranslateService, CountryCode, CustomClassService, DEFAULT_AD_AUTH_INTERCEPTOR_CONFIG, DEFAULT_COUNTRIES, DEFAULT_SCHEDULER_CONFIG, DataListComponent, DataListItemComponent, DataStoreService, DateFieldComponent, DateUtility, DatetimeFieldComponent, DayState, DayType, DialogActions, DocumentAction, DocumentDisplayMode, DocumentFieldComponent, DocumentFieldValidators, DocumentPayloadMode, DropdownComponent, DropdownDirection, DropdownService, DynamicFieldDirective, DynamicFieldsHelper, FieldErrorsComponent, FieldType, FileFieldComponent, FileModel, FilePreviewActionType, FileTemplateModel, FileTemplateType, FileType, FileTypeModel, FileUploadService, FilterModalComponent, FilterService, FilterType, FixedActionPosition, FixedActionsMobileModalComponent, FixedActionsMobileModalService, GalleryAnimationType, GalleryLayoutType, GalleryModalComponent, GalleryModalGlobalService, GenericButtonComponent, GenericCalendarComponent, GenericChatComponent, GenericChatService, GenericDocumentationComponent, GenericFixedActionsComponent, GenericGalleryComponent, GenericModalComponent, GenericPaginationComponent, GenericRatingComponent, GenericSchedulerComponent, GenericSidebarComponent, GenericSkeletonComponent, GenericStepsComponent, GenericSwitchComponent, GenericTableComponent, GenericTabsComponent, GenericTimelineComponent, GlobalApiConfigService, HeaderComponent, HeaderConfigurationService, HeaderElementType, HeaderService, HttpLoaderFactory, ImageModalComponent, ImageModalService, ImagePreviewComponent, LATIN_AMERICA_COUNTRIES, LayoutAuth, LayoutBreakpoint, LayoutComponent, LayoutService, LayoutStateService, LayoutType, LoaderComponent, LoaderService, MODEL_REFERENCE_SORT_KEY, MainNavComponent, MainNavService, ManualRefreshService, MobileHeaderComponent, MobileResolutionService, ModalMode, ModelApiService, MultiEntryFieldComponent, MultiEntryOutputFormat, NumberFieldComponent, NumberFieldConfigType, NumberFieldType, NumberRange, PERMISSION_ACTIONS_PROVIDER, PERMISSION_PROVIDER, PERMISSION_RESOURCES_PROVIDER, PaginationService, PasswordFieldComponent, PermissionEnumsService, PermissionModel, PermissionService, PermissionWrapperService, PermissionsActions, PermissionsCustomActions, PermissionsInterceptor, PermissionsResources, PhoneFieldComponent, ProgressBarComponent, ProgressBarSize, RatingService, RatingSize, RatingType, RedirectUrlService, ResetPasswordModel, RoleModel, SOUTH_AMERICA_COUNTRIES, SelectFieldComponent, ServerSelectFieldComponent, ServerSelectService, SidebarCustomModalComponent, SidebarCustomModalService, SidebarHeight, SidebarMobileModalService, SidebarMobileType, SidebarPosition, SidebarService, SidebarState, SidebarTemplateRegistryService, SidebarVisibility, SidebarWidth, SkeletonAnimation, SkeletonService, SkeletonSize, SkeletonType, SmartFieldComponent, SortDirection, SortMode, StepSize, StepStatus, StepType, StepsService, SwitchFieldComponent, TableAction, TableActionService, TableDataService, TableFixedActionsService, TableSortService, TextAreaFieldComponent, TextFieldComponent, TimeFieldComponent, TimeInterval, TimelineService, TimelineStatus, TimelineType, TranslationMergeService, UruguayanDocumentValidationHelper, UsersModel, VERSION, WeekDay, adAuthGuard, adAuthInterceptor, adGuestGuard, adRoleGuard, ageValidator, calculateAge, equalToValidator, generateRandomUruguayanDocument, getCountryCodeStrings, getLatestBirthDateForAge, getRandomCi, getUruguayanDocumentValidationDigit, getValidationDigit, isSameDate, isValidCountryCode, provideAdAuth, provideAdAuthInterceptor, provideAdAuthWithInterceptor, provideCoreUiTranslateLoader, providePermissionActions, providePermissionEnums, providePermissionResources, providePermissionService, providePermissionServiceFactory, provideTranslateLoader, random, transform, transformUruguayanDocument, uruguayanDocumentValidator, validate, validateAge, validateCi, validateUruguayanDocument, validationDigit };
|
|
22240
|
+
export { AD_AUTH_CONFIG, AD_AUTH_INTERCEPTOR_CONFIG, ALL_COUNTRY_CODES, ActiveFiltersComponent, AdAuthService, AdInteractionType, AdLoginButtonComponent, AgeValidationHelper, AlertComponent, AlertContainerComponent, AlertService, AlertType, ApiConfigurationProvider, BaseFieldComponent, ButtonContext, ButtonSize, ButtonType, COMMON_COUNTRIES, CacheBustingInterceptor, CalendarEventType, CardComponent, CarouselComponent, ChatMessagePosition, ChatMessageType, CheckboxFieldComponent, ColorPickerFieldComponent, ConfigurationModel, ConfirmationDialogComponent, ConfirmationDialogService, CoreHostDirective, CoreManualRefreshComponent, CoreUiHttpLoaderFactory, CoreUiTranslateLoader, CoreUiTranslateService, CountryCode, CustomClassService, DEFAULT_AD_AUTH_INTERCEPTOR_CONFIG, DEFAULT_COUNTRIES, DEFAULT_SCHEDULER_CONFIG, DataListComponent, DataListItemComponent, DataStoreService, DateFieldComponent, DateRangeFieldComponent, DateUtility, DatetimeFieldComponent, DayState, DayType, DialogActions, DocumentAction, DocumentDisplayMode, DocumentFieldComponent, DocumentFieldValidators, DocumentPayloadMode, DropdownComponent, DropdownDirection, DropdownService, DynamicFieldDirective, DynamicFieldsHelper, FieldErrorsComponent, FieldType, FileFieldComponent, FileModel, FilePreviewActionType, FileTemplateModel, FileTemplateType, FileType, FileTypeModel, FileUploadService, FilterModalComponent, FilterService, FilterType, FixedActionPosition, FixedActionsMobileModalComponent, FixedActionsMobileModalService, GalleryAnimationType, GalleryLayoutType, GalleryModalComponent, GalleryModalGlobalService, GenericButtonComponent, GenericCalendarComponent, GenericChatComponent, GenericChatService, GenericDocumentationComponent, GenericFixedActionsComponent, GenericGalleryComponent, GenericModalComponent, GenericPaginationComponent, GenericRatingComponent, GenericSchedulerComponent, GenericSidebarComponent, GenericSkeletonComponent, GenericStepsComponent, GenericSwitchComponent, GenericTableComponent, GenericTabsComponent, GenericTimelineComponent, GlobalApiConfigService, HeaderComponent, HeaderConfigurationService, HeaderElementType, HeaderService, HttpLoaderFactory, ImageModalComponent, ImageModalService, ImagePreviewComponent, LATIN_AMERICA_COUNTRIES, LayoutAuth, LayoutBreakpoint, LayoutComponent, LayoutService, LayoutStateService, LayoutType, LoaderComponent, LoaderService, MODEL_REFERENCE_SORT_KEY, MainNavComponent, MainNavService, ManualRefreshService, MobileHeaderComponent, MobileResolutionService, ModalMode, ModelApiService, MultiEntryFieldComponent, MultiEntryOutputFormat, NumberFieldComponent, NumberFieldConfigType, NumberFieldType, NumberRange, PERMISSION_ACTIONS_PROVIDER, PERMISSION_PROVIDER, PERMISSION_RESOURCES_PROVIDER, PaginationService, PasswordFieldComponent, PermissionEnumsService, PermissionModel, PermissionService, PermissionWrapperService, PermissionsActions, PermissionsCustomActions, PermissionsInterceptor, PermissionsResources, PhoneFieldComponent, ProgressBarComponent, ProgressBarSize, RatingService, RatingSize, RatingType, RedirectUrlService, ResetPasswordModel, RoleModel, SOUTH_AMERICA_COUNTRIES, SelectFieldComponent, ServerSelectFieldComponent, ServerSelectService, SidebarCustomModalComponent, SidebarCustomModalService, SidebarHeight, SidebarMobileModalService, SidebarMobileType, SidebarPosition, SidebarService, SidebarState, SidebarTemplateRegistryService, SidebarVisibility, SidebarWidth, SkeletonAnimation, SkeletonService, SkeletonSize, SkeletonType, SmartFieldComponent, SortDirection, SortMode, StepSize, StepStatus, StepType, StepsService, SwitchFieldComponent, TableAction, TableActionService, TableDataService, TableFixedActionsService, TableSortService, TextAreaFieldComponent, TextFieldComponent, TimeFieldComponent, TimeInterval, TimelineService, TimelineStatus, TimelineType, TranslationMergeService, UruguayanDocumentValidationHelper, UsersModel, VERSION, WeekDay, adAuthGuard, adAuthInterceptor, adGuestGuard, adRoleGuard, ageValidator, calculateAge, equalToValidator, generateRandomUruguayanDocument, getCountryCodeStrings, getLatestBirthDateForAge, getRandomCi, getUruguayanDocumentValidationDigit, getValidationDigit, isSameDate, isValidCountryCode, provideAdAuth, provideAdAuthInterceptor, provideAdAuthWithInterceptor, provideCoreUiTranslateLoader, providePermissionActions, providePermissionEnums, providePermissionResources, providePermissionService, providePermissionServiceFactory, provideTranslateLoader, random, transform, transformUruguayanDocument, uruguayanDocumentValidator, validate, validateAge, validateCi, validateUruguayanDocument, validationDigit };
|
|
22037
22241
|
//# sourceMappingURL=solcre-org-core-ui.mjs.map
|