@solcre-org/core-ui 2.13.3 → 2.13.4
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 +66 -203
- package/fesm2022/solcre-org-core-ui.mjs.map +1 -1
- package/index.d.ts +9 -22
- package/package.json +1 -1
|
@@ -4500,17 +4500,11 @@ class TimeFieldComponent {
|
|
|
4500
4500
|
valueChange = output();
|
|
4501
4501
|
onBlurEvent = output();
|
|
4502
4502
|
onEnterEvent = output();
|
|
4503
|
-
startTimeChange = output();
|
|
4504
|
-
endTimeChange = output();
|
|
4505
|
-
startTimeBlur = output();
|
|
4506
|
-
endTimeBlur = output();
|
|
4507
4503
|
ModalMode = ModalMode;
|
|
4508
4504
|
selectedStartTime = signal(null);
|
|
4509
4505
|
selectedEndTime = signal(null);
|
|
4510
4506
|
hasStartValue = signal(false);
|
|
4511
4507
|
hasEndValue = signal(false);
|
|
4512
|
-
startTimeErrors = signal([]);
|
|
4513
|
-
endTimeErrors = signal([]);
|
|
4514
4508
|
config = computed(() => this.field().config || {});
|
|
4515
4509
|
isStartPlaceholderVisible = computed(() => {
|
|
4516
4510
|
const hasVal = this.hasStartValue();
|
|
@@ -4571,28 +4565,46 @@ class TimeFieldComponent {
|
|
|
4571
4565
|
const validators = this.getCurrentValidators();
|
|
4572
4566
|
return validators.some((validator) => validator === Validators.required);
|
|
4573
4567
|
});
|
|
4574
|
-
|
|
4568
|
+
startTimeErrors = computed(() => {
|
|
4569
|
+
const validators = this.getCurrentValidators();
|
|
4570
|
+
const startTime = this.selectedStartTime();
|
|
4575
4571
|
const errors = [];
|
|
4576
|
-
if (this.
|
|
4577
|
-
|
|
4572
|
+
if (this.includeEndTime()) {
|
|
4573
|
+
validators.forEach((validator) => {
|
|
4574
|
+
if (validator === Validators.required && (!startTime || startTime.trim() === '')) {
|
|
4575
|
+
errors.push('time-field.errors.start-time-required');
|
|
4576
|
+
}
|
|
4577
|
+
});
|
|
4578
4578
|
}
|
|
4579
4579
|
return errors;
|
|
4580
|
-
}
|
|
4581
|
-
|
|
4580
|
+
});
|
|
4581
|
+
endTimeErrors = computed(() => {
|
|
4582
|
+
const validators = this.getCurrentValidators();
|
|
4583
|
+
const endTime = this.selectedEndTime();
|
|
4582
4584
|
const errors = [];
|
|
4583
|
-
if (
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
if (this.config().enforceEndTimeAfterStart && value && this.selectedStartTime()) {
|
|
4590
|
-
if (this.isTimeBeforeOrEqual(value, this.selectedStartTime())) {
|
|
4591
|
-
errors.push('time-field.errors.end-time-after-start');
|
|
4592
|
-
}
|
|
4585
|
+
if (this.includeEndTime()) {
|
|
4586
|
+
validators.forEach((validator) => {
|
|
4587
|
+
if (validator === Validators.required && (!endTime || endTime.trim() === '')) {
|
|
4588
|
+
errors.push('time-field.errors.end-time-required');
|
|
4589
|
+
}
|
|
4590
|
+
});
|
|
4593
4591
|
}
|
|
4594
4592
|
return errors;
|
|
4595
|
-
}
|
|
4593
|
+
});
|
|
4594
|
+
hasStartTimeError = computed(() => {
|
|
4595
|
+
return this.startTimeErrors().length > 0;
|
|
4596
|
+
});
|
|
4597
|
+
hasEndTimeError = computed(() => {
|
|
4598
|
+
return this.endTimeErrors().length > 0;
|
|
4599
|
+
});
|
|
4600
|
+
hasStartTimeRequiredValidator = computed(() => {
|
|
4601
|
+
const validators = this.getCurrentValidators();
|
|
4602
|
+
return this.includeEndTime() && validators.some((validator) => validator === Validators.required);
|
|
4603
|
+
});
|
|
4604
|
+
hasEndTimeRequiredValidator = computed(() => {
|
|
4605
|
+
const validators = this.getCurrentValidators();
|
|
4606
|
+
return this.includeEndTime() && validators.some((validator) => validator === Validators.required);
|
|
4607
|
+
});
|
|
4596
4608
|
getCurrentValidators() {
|
|
4597
4609
|
const modeConfig = this.field().modes?.[this.mode()];
|
|
4598
4610
|
const modeValidators = modeConfig?.validators;
|
|
@@ -4603,6 +4615,7 @@ class TimeFieldComponent {
|
|
|
4603
4615
|
return validatorConfig(this.formValue());
|
|
4604
4616
|
}
|
|
4605
4617
|
catch (error) {
|
|
4618
|
+
console.warn('Error evaluating dynamic validators:', error);
|
|
4606
4619
|
return [];
|
|
4607
4620
|
}
|
|
4608
4621
|
}
|
|
@@ -4620,22 +4633,16 @@ class TimeFieldComponent {
|
|
|
4620
4633
|
}
|
|
4621
4634
|
return readonly || false;
|
|
4622
4635
|
}
|
|
4623
|
-
userInteracted = signal(false);
|
|
4624
4636
|
constructor() {
|
|
4625
4637
|
effect(() => {
|
|
4626
4638
|
const newValue = this.value();
|
|
4627
|
-
|
|
4628
|
-
|
|
4629
|
-
this.initializeFromValue(newValue);
|
|
4630
|
-
}
|
|
4631
|
-
}, { allowSignalWrites: true });
|
|
4639
|
+
this.initializeFromValue(newValue);
|
|
4640
|
+
});
|
|
4632
4641
|
effect(() => {
|
|
4633
4642
|
const mode = this.mode();
|
|
4634
4643
|
const currentValue = this.value();
|
|
4635
4644
|
const config = this.config();
|
|
4636
|
-
|
|
4637
|
-
if (!hasUserInteracted &&
|
|
4638
|
-
(mode === ModalMode.CREATE || mode === ModalMode.EDIT) &&
|
|
4645
|
+
if ((mode === ModalMode.CREATE || mode === ModalMode.EDIT) &&
|
|
4639
4646
|
(!currentValue || this.isEmptyValue(currentValue)) &&
|
|
4640
4647
|
(config.defaultStartTime || config.defaultEndTime)) {
|
|
4641
4648
|
const hasCurrentStartTime = this.selectedStartTime();
|
|
@@ -4644,7 +4651,7 @@ class TimeFieldComponent {
|
|
|
4644
4651
|
this.applyDefaultValues();
|
|
4645
4652
|
}
|
|
4646
4653
|
}
|
|
4647
|
-
}
|
|
4654
|
+
});
|
|
4648
4655
|
effect(() => {
|
|
4649
4656
|
const startTime = this.selectedStartTime();
|
|
4650
4657
|
this.hasStartValue.set(startTime !== null && startTime !== undefined && startTime !== '');
|
|
@@ -4656,16 +4663,17 @@ class TimeFieldComponent {
|
|
|
4656
4663
|
effect(() => {
|
|
4657
4664
|
const fieldCfg = this.field();
|
|
4658
4665
|
const formValue = this.formValue();
|
|
4659
|
-
|
|
4660
|
-
if (!hasUserInteracted && 'dynamicValue' in fieldCfg && typeof fieldCfg.dynamicValue === 'function') {
|
|
4666
|
+
if ('dynamicValue' in fieldCfg && typeof fieldCfg.dynamicValue === 'function') {
|
|
4661
4667
|
const newValue = fieldCfg.dynamicValue(formValue || {});
|
|
4662
4668
|
const currentValue = this.value();
|
|
4663
4669
|
if (newValue !== null && newValue !== undefined && newValue !== currentValue) {
|
|
4664
4670
|
this.initializeFromValue(newValue);
|
|
4665
|
-
|
|
4671
|
+
setTimeout(() => {
|
|
4672
|
+
this.valueChange.emit(newValue);
|
|
4673
|
+
}, 0);
|
|
4666
4674
|
}
|
|
4667
4675
|
}
|
|
4668
|
-
}
|
|
4676
|
+
});
|
|
4669
4677
|
}
|
|
4670
4678
|
initializeFromValue(value) {
|
|
4671
4679
|
if (!value) {
|
|
@@ -4714,43 +4722,28 @@ class TimeFieldComponent {
|
|
|
4714
4722
|
return options;
|
|
4715
4723
|
}
|
|
4716
4724
|
onStartTimeChange(value) {
|
|
4717
|
-
this.userInteracted.set(true);
|
|
4718
4725
|
this.selectedStartTime.set(value);
|
|
4719
|
-
const startTimeErrors = this.validateStartTime(value);
|
|
4720
|
-
this.startTimeErrors.set(startTimeErrors);
|
|
4721
4726
|
const currentEndTime = this.selectedEndTime();
|
|
4722
4727
|
const enforceEndTimeAfterStart = this.config().enforceEndTimeAfterStart || false;
|
|
4723
4728
|
if (value && currentEndTime) {
|
|
4724
4729
|
if (enforceEndTimeAfterStart && this.isTimeBeforeOrEqual(currentEndTime, value)) {
|
|
4725
4730
|
this.selectedEndTime.set(null);
|
|
4726
|
-
this.endTimeErrors.set(['time-field.errors.end-time-after-start']);
|
|
4727
4731
|
}
|
|
4728
4732
|
else if (!enforceEndTimeAfterStart && currentEndTime === value) {
|
|
4729
4733
|
this.selectedEndTime.set(null);
|
|
4730
4734
|
}
|
|
4731
4735
|
}
|
|
4732
|
-
if (this.includeEndTime()) {
|
|
4733
|
-
const endTimeErrors = this.validateEndTime(this.selectedEndTime());
|
|
4734
|
-
this.endTimeErrors.set(endTimeErrors);
|
|
4735
|
-
}
|
|
4736
|
-
this.startTimeChange.emit(value);
|
|
4737
4736
|
this.emitValue();
|
|
4738
4737
|
}
|
|
4739
4738
|
onEndTimeChange(value) {
|
|
4740
|
-
this.userInteracted.set(true);
|
|
4741
4739
|
const startTime = this.selectedStartTime();
|
|
4742
4740
|
const enforceEndTimeAfterStart = this.config().enforceEndTimeAfterStart || false;
|
|
4743
|
-
const endTimeErrors = this.validateEndTime(value);
|
|
4744
4741
|
if (value && startTime && enforceEndTimeAfterStart) {
|
|
4745
4742
|
if (this.isTimeBeforeOrEqual(value, startTime)) {
|
|
4746
|
-
endTimeErrors.push('time-field.errors.end-time-after-start');
|
|
4747
|
-
this.endTimeErrors.set(endTimeErrors);
|
|
4748
4743
|
return;
|
|
4749
4744
|
}
|
|
4750
4745
|
}
|
|
4751
4746
|
this.selectedEndTime.set(value);
|
|
4752
|
-
this.endTimeErrors.set(endTimeErrors);
|
|
4753
|
-
this.endTimeChange.emit(value);
|
|
4754
4747
|
this.emitValue();
|
|
4755
4748
|
}
|
|
4756
4749
|
emitValue() {
|
|
@@ -4759,24 +4752,30 @@ class TimeFieldComponent {
|
|
|
4759
4752
|
if (this.includeEndTime()) {
|
|
4760
4753
|
const timeFieldValue = {
|
|
4761
4754
|
startTime,
|
|
4762
|
-
endTime
|
|
4755
|
+
endTime
|
|
4763
4756
|
};
|
|
4764
4757
|
this.valueChange.emit(timeFieldValue);
|
|
4765
4758
|
}
|
|
4766
4759
|
else {
|
|
4767
4760
|
this.valueChange.emit(startTime);
|
|
4768
4761
|
}
|
|
4762
|
+
this.validateIndividualFields();
|
|
4763
|
+
}
|
|
4764
|
+
validateIndividualFields() {
|
|
4765
|
+
if (!this.includeEndTime()) {
|
|
4766
|
+
return;
|
|
4767
|
+
}
|
|
4768
|
+
const validators = this.getCurrentValidators();
|
|
4769
|
+
const hasRequiredValidator = validators.some((validator) => validator === Validators.required);
|
|
4770
|
+
if (hasRequiredValidator) {
|
|
4771
|
+
setTimeout(() => {
|
|
4772
|
+
}, 0);
|
|
4773
|
+
}
|
|
4769
4774
|
}
|
|
4770
4775
|
onStartTimeBlur() {
|
|
4771
|
-
const startTimeErrors = this.validateStartTime(this.selectedStartTime());
|
|
4772
|
-
this.startTimeErrors.set(startTimeErrors);
|
|
4773
|
-
this.startTimeBlur.emit();
|
|
4774
4776
|
this.onBlurEvent.emit(this.field().key);
|
|
4775
4777
|
}
|
|
4776
4778
|
onEndTimeBlur() {
|
|
4777
|
-
const endTimeErrors = this.validateEndTime(this.selectedEndTime());
|
|
4778
|
-
this.endTimeErrors.set(endTimeErrors);
|
|
4779
|
-
this.endTimeBlur.emit();
|
|
4780
4779
|
this.onBlurEvent.emit(this.field().key);
|
|
4781
4780
|
}
|
|
4782
4781
|
isTimeBeforeOrEqual(time1, time2) {
|
|
@@ -4816,14 +4815,16 @@ class TimeFieldComponent {
|
|
|
4816
4815
|
this.selectedEndTime.set(defaultEndTime);
|
|
4817
4816
|
}
|
|
4818
4817
|
}
|
|
4819
|
-
|
|
4818
|
+
setTimeout(() => {
|
|
4819
|
+
this.emitValue();
|
|
4820
|
+
}, 0);
|
|
4820
4821
|
}
|
|
4821
4822
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TimeFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4822
|
-
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", startTimeChange: "startTimeChange", endTimeChange: "endTimeChange", startTimeBlur: "startTimeBlur", endTimeBlur: "endTimeBlur" }, 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 (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]=\"startTimeErrors().length > 0\">\n <ng-select\n [id]=\"field().key.toString() + '-start'\"\n [items]=\"startTimeOptions()\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [clearable]=\"!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 <!-- Errores espec\u00EDficos para Start Time -->\n @if (startTimeErrors().length > 0) {\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 (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]=\"endTimeErrors().length > 0\">\n <ng-select\n [id]=\"field().key.toString() + '-end'\"\n [items]=\"endTimeOptions()\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [clearable]=\"true\"\n [disabled]=\"isDisabled()\"\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 <!-- Errores espec\u00EDficos para End Time -->\n @if (endTimeErrors().length > 0) {\n <core-field-errors [errors]=\"endTimeErrors()\"></core-field-errors>\n }\n </div>\n }\n\n <!-- Error Messages Globales (si es necesario) -->\n @if (hasError() && errors().length > 0) {\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n }\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-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}::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)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.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"] }] });
|
|
4823
|
+
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: [".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-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}::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)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.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"] }] });
|
|
4823
4824
|
}
|
|
4824
4825
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TimeFieldComponent, decorators: [{
|
|
4825
4826
|
type: Component,
|
|
4826
|
-
args: [{ selector: 'core-time-field', standalone: true, imports: [CommonModule, FormsModule, TranslateModule, ReactiveFormsModule, NgSelectModule, FieldErrorsComponent], hostDirectives: [CoreHostDirective], 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 (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]=\"
|
|
4827
|
+
args: [{ selector: 'core-time-field', standalone: true, imports: [CommonModule, FormsModule, TranslateModule, ReactiveFormsModule, NgSelectModule, FieldErrorsComponent], hostDirectives: [CoreHostDirective], 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: [".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-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}::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)}}\n"] }]
|
|
4827
4828
|
}], ctorParameters: () => [] });
|
|
4828
4829
|
|
|
4829
4830
|
class DynamicFieldDirective {
|
|
@@ -14724,11 +14725,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
14724
14725
|
// Este archivo es generado automáticamente por scripts/update-version.js
|
|
14725
14726
|
// No edites manualmente este archivo
|
|
14726
14727
|
const VERSION = {
|
|
14727
|
-
full: '2.13.
|
|
14728
|
+
full: '2.13.4',
|
|
14728
14729
|
major: 2,
|
|
14729
14730
|
minor: 13,
|
|
14730
|
-
patch:
|
|
14731
|
-
timestamp: '2025-09-
|
|
14731
|
+
patch: 4,
|
|
14732
|
+
timestamp: '2025-09-26T13:18:16.891Z',
|
|
14732
14733
|
buildDate: '26/9/2025'
|
|
14733
14734
|
};
|
|
14734
14735
|
|
|
@@ -17702,144 +17703,6 @@ class DocumentFieldValidators {
|
|
|
17702
17703
|
};
|
|
17703
17704
|
}
|
|
17704
17705
|
|
|
17705
|
-
class TimeFieldValidators {
|
|
17706
|
-
static required = (control) => {
|
|
17707
|
-
const value = control.value;
|
|
17708
|
-
if (!value) {
|
|
17709
|
-
return { required: true };
|
|
17710
|
-
}
|
|
17711
|
-
if (typeof value === 'string') {
|
|
17712
|
-
return value.trim() ? null : { required: true };
|
|
17713
|
-
}
|
|
17714
|
-
if (typeof value === 'object' && 'startTime' in value) {
|
|
17715
|
-
const timeValue = value;
|
|
17716
|
-
if (!timeValue.startTime || !timeValue.startTime.trim()) {
|
|
17717
|
-
return { required: true };
|
|
17718
|
-
}
|
|
17719
|
-
return null;
|
|
17720
|
-
}
|
|
17721
|
-
return { required: true };
|
|
17722
|
-
};
|
|
17723
|
-
static requiredBoth = (control) => {
|
|
17724
|
-
const value = control.value;
|
|
17725
|
-
if (!value) {
|
|
17726
|
-
return { required: true };
|
|
17727
|
-
}
|
|
17728
|
-
if (typeof value === 'string') {
|
|
17729
|
-
return value.trim() ? null : { required: true };
|
|
17730
|
-
}
|
|
17731
|
-
if (typeof value === 'object' && 'startTime' in value) {
|
|
17732
|
-
const timeValue = value;
|
|
17733
|
-
if (!timeValue.startTime || !timeValue.startTime.trim()) {
|
|
17734
|
-
return { required: true };
|
|
17735
|
-
}
|
|
17736
|
-
if (!timeValue.endTime || !timeValue.endTime.trim()) {
|
|
17737
|
-
return { required: true };
|
|
17738
|
-
}
|
|
17739
|
-
return null;
|
|
17740
|
-
}
|
|
17741
|
-
return { required: true };
|
|
17742
|
-
};
|
|
17743
|
-
static requiredStartTime = (control) => {
|
|
17744
|
-
const value = control.value;
|
|
17745
|
-
if (!value || value.trim() === '') {
|
|
17746
|
-
return { required: true };
|
|
17747
|
-
}
|
|
17748
|
-
return null;
|
|
17749
|
-
};
|
|
17750
|
-
static requiredEndTime = (control) => {
|
|
17751
|
-
const value = control.value;
|
|
17752
|
-
if (!value || value.trim() === '') {
|
|
17753
|
-
return { required: true };
|
|
17754
|
-
}
|
|
17755
|
-
return null;
|
|
17756
|
-
};
|
|
17757
|
-
static noValidation = (control) => {
|
|
17758
|
-
return null;
|
|
17759
|
-
};
|
|
17760
|
-
static requiredBothSmart = (control) => {
|
|
17761
|
-
const value = control.value;
|
|
17762
|
-
if (!value) {
|
|
17763
|
-
return { required: true };
|
|
17764
|
-
}
|
|
17765
|
-
if (typeof value === 'string') {
|
|
17766
|
-
return value.trim() ? null : { required: true };
|
|
17767
|
-
}
|
|
17768
|
-
if (typeof value === 'object' && 'startTime' in value) {
|
|
17769
|
-
const timeValue = value;
|
|
17770
|
-
if (!timeValue.startTime || !timeValue.startTime.trim()) {
|
|
17771
|
-
return { required: true };
|
|
17772
|
-
}
|
|
17773
|
-
if (!timeValue.endTime || !timeValue.endTime.trim()) {
|
|
17774
|
-
if (!control.touched) {
|
|
17775
|
-
return null;
|
|
17776
|
-
}
|
|
17777
|
-
return { required: true };
|
|
17778
|
-
}
|
|
17779
|
-
return null;
|
|
17780
|
-
}
|
|
17781
|
-
return { required: true };
|
|
17782
|
-
};
|
|
17783
|
-
static endTimeAfterStart = (control) => {
|
|
17784
|
-
const value = control.value;
|
|
17785
|
-
if (!value || typeof value !== 'object' || !('startTime' in value)) {
|
|
17786
|
-
return null;
|
|
17787
|
-
}
|
|
17788
|
-
const timeValue = value;
|
|
17789
|
-
const { startTime, endTime } = timeValue;
|
|
17790
|
-
if (!startTime || !endTime) {
|
|
17791
|
-
return null;
|
|
17792
|
-
}
|
|
17793
|
-
if (!isTimeAfter(endTime, startTime)) {
|
|
17794
|
-
return { endTimeAfterStart: true };
|
|
17795
|
-
}
|
|
17796
|
-
return null;
|
|
17797
|
-
};
|
|
17798
|
-
static createValidator(includeEndTime, enforceEndTimeAfterStart = false) {
|
|
17799
|
-
return (control) => {
|
|
17800
|
-
const value = control.value;
|
|
17801
|
-
if (!value) {
|
|
17802
|
-
return { required: true };
|
|
17803
|
-
}
|
|
17804
|
-
if (!includeEndTime) {
|
|
17805
|
-
if (typeof value === 'string') {
|
|
17806
|
-
return value.trim() ? null : { required: true };
|
|
17807
|
-
}
|
|
17808
|
-
if (typeof value === 'object' && 'startTime' in value) {
|
|
17809
|
-
const timeValue = value;
|
|
17810
|
-
return timeValue.startTime && timeValue.startTime.trim() ? null : { required: true };
|
|
17811
|
-
}
|
|
17812
|
-
return { required: true };
|
|
17813
|
-
}
|
|
17814
|
-
if (typeof value === 'object' && 'startTime' in value) {
|
|
17815
|
-
const timeValue = value;
|
|
17816
|
-
if (!timeValue.startTime || !timeValue.startTime.trim()) {
|
|
17817
|
-
return { required: true };
|
|
17818
|
-
}
|
|
17819
|
-
if (control.touched || control.dirty) {
|
|
17820
|
-
if (!timeValue.endTime || !timeValue.endTime.trim()) {
|
|
17821
|
-
return { required: true };
|
|
17822
|
-
}
|
|
17823
|
-
if (enforceEndTimeAfterStart && !isTimeAfter(timeValue.endTime, timeValue.startTime)) {
|
|
17824
|
-
return { endTimeAfterStart: true };
|
|
17825
|
-
}
|
|
17826
|
-
}
|
|
17827
|
-
return null;
|
|
17828
|
-
}
|
|
17829
|
-
return { required: true };
|
|
17830
|
-
};
|
|
17831
|
-
}
|
|
17832
|
-
}
|
|
17833
|
-
function isTimeAfter(time1, time2) {
|
|
17834
|
-
if (!time1 || !time2)
|
|
17835
|
-
return false;
|
|
17836
|
-
const [hours1, minutes1] = time1.split(':').map(Number);
|
|
17837
|
-
const [hours2, minutes2] = time2.split(':').map(Number);
|
|
17838
|
-
const totalMinutes1 = hours1 * 60 + minutes1;
|
|
17839
|
-
const totalMinutes2 = hours2 * 60 + minutes2;
|
|
17840
|
-
return totalMinutes1 > totalMinutes2;
|
|
17841
|
-
}
|
|
17842
|
-
|
|
17843
17706
|
function HttpLoaderFactory(http) {
|
|
17844
17707
|
return new TranslateHttpLoader(http, './assets/i18n/', '/main.json');
|
|
17845
17708
|
}
|
|
@@ -17939,5 +17802,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
17939
17802
|
* Generated bundle index. Do not edit.
|
|
17940
17803
|
*/
|
|
17941
17804
|
|
|
17942
|
-
export { ALL_COUNTRY_CODES, ActiveFiltersComponent, AgeValidationHelper, AlertComponent, AlertContainerComponent, AlertService, AlertType, ApiConfigurationProvider, BaseFieldComponent, ButtonContext, ButtonSize, ButtonType, COMMON_COUNTRIES, CacheBustingInterceptor, CardComponent, CarouselComponent, ChatMessagePosition, ChatMessageType, CheckboxFieldComponent, ConfigurationModel, ConfirmationDialogComponent, ConfirmationDialogService, CoreHostDirective, CoreManualRefreshComponent, CoreUiHttpLoaderFactory, CoreUiTranslateLoader, CoreUiTranslateService, CountryCode, DEFAULT_COUNTRIES, DataListComponent, DataListItemComponent, DateFieldComponent, DateUtility, DatetimeFieldComponent, DialogActions, DocumentAction, DocumentDisplayMode, DocumentFieldComponent, DocumentFieldValidators, DocumentPayloadMode, DropdownComponent, DropdownDirection, DropdownService, DynamicFieldDirective, DynamicFieldsHelper, FieldErrorsComponent, FieldType, FileFieldComponent, FileModel, FilePreviewActionType, FileTemplateModel, FileTemplateType, FileType, FileTypeModel, FileUploadService, FilterModalComponent, FilterService, FilterType, GalleryAnimationType, GalleryLayoutType, GalleryModalComponent, GalleryModalGlobalService, GenericButtonComponent, GenericChatComponent, GenericChatService, GenericDocumentationComponent, GenericGalleryComponent, GenericModalComponent, GenericPaginationComponent, GenericRatingComponent, GenericSidebarComponent, GenericSkeletonComponent, GenericStepsComponent, GenericTableComponent, GenericTabsComponent, GenericTimelineComponent, GlobalApiConfigService, HeaderComponent, HeaderConfigurationService, HeaderElementType, HeaderService, HttpLoaderFactory, ImageModalComponent, ImageModalService, ImagePreviewComponent, LATIN_AMERICA_COUNTRIES, LayoutAuth, LayoutBreakpoint, LayoutComponent, LayoutService, LayoutStateService, LayoutType, LoaderComponent, LoaderService, MainNavComponent, MainNavService, ManualRefreshService, ModalMode, ModelApiService, MultiEntryFieldComponent, MultiEntryOutputFormat, NumberFieldComponent, NumberFieldConfigType, NumberFieldType, NumberRange, PERMISSION_ACTIONS_PROVIDER, PERMISSION_PROVIDER, PERMISSION_RESOURCES_PROVIDER, PaginationService, PasswordFieldComponent, PermissionEnumsService, PermissionModel, PermissionService, PermissionWrapperService, PermissionsActions, PermissionsInterceptor, PermissionsResources, PhoneFieldComponent, ProgressBarComponent, ProgressBarSize, RatingService, RatingSize, RatingType, 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, TableSortService, TextAreaFieldComponent, TextFieldComponent, TimeFieldComponent,
|
|
17805
|
+
export { ALL_COUNTRY_CODES, ActiveFiltersComponent, AgeValidationHelper, AlertComponent, AlertContainerComponent, AlertService, AlertType, ApiConfigurationProvider, BaseFieldComponent, ButtonContext, ButtonSize, ButtonType, COMMON_COUNTRIES, CacheBustingInterceptor, CardComponent, CarouselComponent, ChatMessagePosition, ChatMessageType, CheckboxFieldComponent, ConfigurationModel, ConfirmationDialogComponent, ConfirmationDialogService, CoreHostDirective, CoreManualRefreshComponent, CoreUiHttpLoaderFactory, CoreUiTranslateLoader, CoreUiTranslateService, CountryCode, DEFAULT_COUNTRIES, DataListComponent, DataListItemComponent, DateFieldComponent, DateUtility, DatetimeFieldComponent, DialogActions, DocumentAction, DocumentDisplayMode, DocumentFieldComponent, DocumentFieldValidators, DocumentPayloadMode, DropdownComponent, DropdownDirection, DropdownService, DynamicFieldDirective, DynamicFieldsHelper, FieldErrorsComponent, FieldType, FileFieldComponent, FileModel, FilePreviewActionType, FileTemplateModel, FileTemplateType, FileType, FileTypeModel, FileUploadService, FilterModalComponent, FilterService, FilterType, GalleryAnimationType, GalleryLayoutType, GalleryModalComponent, GalleryModalGlobalService, GenericButtonComponent, GenericChatComponent, GenericChatService, GenericDocumentationComponent, GenericGalleryComponent, GenericModalComponent, GenericPaginationComponent, GenericRatingComponent, GenericSidebarComponent, GenericSkeletonComponent, GenericStepsComponent, GenericTableComponent, GenericTabsComponent, GenericTimelineComponent, GlobalApiConfigService, HeaderComponent, HeaderConfigurationService, HeaderElementType, HeaderService, HttpLoaderFactory, ImageModalComponent, ImageModalService, ImagePreviewComponent, LATIN_AMERICA_COUNTRIES, LayoutAuth, LayoutBreakpoint, LayoutComponent, LayoutService, LayoutStateService, LayoutType, LoaderComponent, LoaderService, MainNavComponent, MainNavService, ManualRefreshService, ModalMode, ModelApiService, MultiEntryFieldComponent, MultiEntryOutputFormat, NumberFieldComponent, NumberFieldConfigType, NumberFieldType, NumberRange, PERMISSION_ACTIONS_PROVIDER, PERMISSION_PROVIDER, PERMISSION_RESOURCES_PROVIDER, PaginationService, PasswordFieldComponent, PermissionEnumsService, PermissionModel, PermissionService, PermissionWrapperService, PermissionsActions, PermissionsInterceptor, PermissionsResources, PhoneFieldComponent, ProgressBarComponent, ProgressBarSize, RatingService, RatingSize, RatingType, 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, TableSortService, TextAreaFieldComponent, TextFieldComponent, TimeFieldComponent, TimeInterval, TimelineService, TimelineStatus, TimelineType, TranslationMergeService, UruguayanDocumentValidationHelper, UsersModel, VERSION, ageValidator, calculateAge, equalToValidator, generateRandomUruguayanDocument, getCountryCodeStrings, getLatestBirthDateForAge, getRandomCi, getUruguayanDocumentValidationDigit, getValidationDigit, isSameDate, isValidCountryCode, provideCoreUiTranslateLoader, providePermissionActions, providePermissionEnums, providePermissionResources, providePermissionService, providePermissionServiceFactory, provideTranslateLoader, random, transform, transformUruguayanDocument, uruguayanDocumentValidator, validate, validateAge, validateCi, validateUruguayanDocument, validationDigit };
|
|
17943
17806
|
//# sourceMappingURL=solcre-org-core-ui.mjs.map
|