@solcre-org/core-ui 2.20.8 → 2.20.9
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.
|
@@ -1377,6 +1377,9 @@ class SelectFieldComponent extends BaseFieldComponent {
|
|
|
1377
1377
|
const hasValidValue = !Array.isArray(signalValue) || signalValue.length > 0;
|
|
1378
1378
|
this.hasValue.set(hasValidValue);
|
|
1379
1379
|
}
|
|
1380
|
+
else {
|
|
1381
|
+
this.hasValue.set(false);
|
|
1382
|
+
}
|
|
1380
1383
|
});
|
|
1381
1384
|
effect(() => {
|
|
1382
1385
|
const shouldDisable = this.mode() === ModalMode.VIEW || this.evaluateReadonly() || this.evaluateDisabled();
|
|
@@ -16697,6 +16700,7 @@ class HeaderComponent {
|
|
|
16697
16700
|
filterRequested = output();
|
|
16698
16701
|
createRequested = output();
|
|
16699
16702
|
globalActionTriggered = output();
|
|
16703
|
+
clearTrigger = signal(0);
|
|
16700
16704
|
constructor() {
|
|
16701
16705
|
this.user = this.authService.getLoggedUser();
|
|
16702
16706
|
}
|
|
@@ -16936,12 +16940,13 @@ class HeaderComponent {
|
|
|
16936
16940
|
return allFilters.filter(filter => filter.showOutsideFilterModal === true);
|
|
16937
16941
|
}
|
|
16938
16942
|
getFilterValue(key) {
|
|
16943
|
+
const trigger = this.clearTrigger();
|
|
16939
16944
|
const pendingFilters = this.headerService.getPendingHeaderFilters()();
|
|
16940
16945
|
const appliedFilters = this.headerService.getHeaderFilterValues()();
|
|
16941
16946
|
if (pendingFilters.has(key)) {
|
|
16942
|
-
return pendingFilters.get(key) ??
|
|
16947
|
+
return pendingFilters.get(key) ?? null;
|
|
16943
16948
|
}
|
|
16944
|
-
return appliedFilters.get(key) ??
|
|
16949
|
+
return appliedFilters.get(key) ?? null;
|
|
16945
16950
|
}
|
|
16946
16951
|
onFilterValueChange(key, value) {
|
|
16947
16952
|
const callback = this.headerService.getHeaderFilterChangeCallback()();
|
|
@@ -16998,6 +17003,12 @@ class HeaderComponent {
|
|
|
16998
17003
|
if (clearCallback) {
|
|
16999
17004
|
clearCallback();
|
|
17000
17005
|
}
|
|
17006
|
+
const emptyFilters = new Map();
|
|
17007
|
+
this.getHeaderFilters().forEach(filter => {
|
|
17008
|
+
emptyFilters.set(filter.key.toString(), null);
|
|
17009
|
+
});
|
|
17010
|
+
this.headerService.setPendingHeaderFilters(emptyFilters);
|
|
17011
|
+
this.clearTrigger.update(v => v + 1);
|
|
17001
17012
|
}
|
|
17002
17013
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17003
17014
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: HeaderComponent, isStandalone: true, selector: "core-header", outputs: { filterRequested: "filterRequested", createRequested: "createRequested", globalActionTriggered: "globalActionTriggered" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "@if (headerService.getIsVisible()()) {\n @if (!headerService.getHeaderOutside()()) {\n <div class=\"c-header\">\n <div class=\"c-header__row\">\n <div class=\"c-header__group\">\n <h2 class=\"c-header__heading u-heading\">{{ getHeaderTitle() }}</h2>\n </div>\n\n <div class=\"c-header__group u-flex\">\n @for (\n element of headerService.getOrderedElements();\n track element.type + \"-\" + (element.actionId || $index)\n ) {\n @if (headerService.isElementVisible(element.type, element)) {\n @switch (element.type) {\n @case (HeaderElementType.GLOBAL_ACTIONS) {\n @for (\n globalAction of headerService.getGlobalActions()();\n track globalAction.label || $index\n ) {\n @if (hasPermission(globalAction)) {\n @if (\n globalAction.isSwitch && globalAction.switchOptions\n ) {\n <core-generic-switch\n [options]=\"globalAction.switchOptions\"\n [selectedValue]=\"globalAction.switchSelectedValue\"\n [ariaLabel]=\"\n globalAction.switchAriaLabel ||\n globalAction.label ||\n 'Switch options'\n \"\n (valueChange)=\"\n onGlobalSwitchChange($event, globalAction)\n \"\n >\n </core-generic-switch>\n } @else {\n <core-generic-button\n [config]=\"getGlobalActionButtonConfig(globalAction)\"\n (buttonClick)=\"\n onGlobalButtonClick($event, globalAction)\n \"\n >\n </core-generic-button>\n }\n }\n }\n }\n\n @case (HeaderElementType.CUSTOM_ACTIONS) {\n @for (\n customAction of headerService.getCustomActions()();\n track customAction.id\n ) {\n @if (isCustomActionVisible(customAction)) {\n <core-generic-button\n [config]=\"getCustomActionButtonConfig(customAction)\"\n (buttonClick)=\"\n onCustomButtonClick($event, customAction)\n \"\n >\n </core-generic-button>\n }\n }\n }\n\n @case (HeaderElementType.FILTER) {\n <core-generic-button\n [config]=\"getFilterButtonConfig()\"\n (buttonClick)=\"onFilterButtonClick()\"\n >\n </core-generic-button>\n }\n\n @case (HeaderElementType.CREATE) {\n <core-generic-button\n [config]=\"getCreateButtonConfig()\"\n (buttonClick)=\"onCreateButtonClick()\"\n >\n </core-generic-button>\n }\n\n @case (HeaderElementType.INDIVIDUAL_ACTION) {\n @if (getIndividualAction(element); as action) {\n @if (hasIndividualActionPermission(action)) {\n @if (isIndividualActionSwitch(action)) {\n <core-generic-switch\n [options]=\"action.switchOptions\"\n [selectedValue]=\"action.switchSelectedValue\"\n [ariaLabel]=\"\n action.switchAriaLabel ||\n action.label ||\n 'Switch options'\n \"\n (valueChange)=\"onGlobalSwitchChange($event, action)\"\n >\n </core-generic-switch>\n } @else if (element.actionType === \"global\") {\n <core-generic-button\n [config]=\"getGlobalActionButtonConfig(action)\"\n (buttonClick)=\"onGlobalButtonClick($event, action)\"\n >\n </core-generic-button>\n } @else if (element.actionType === \"custom\") {\n <core-generic-button\n [config]=\"getCustomActionButtonConfig(action)\"\n (buttonClick)=\"onCustomButtonClick($event, action)\"\n >\n </core-generic-button>\n }\n }\n }\n }\n }\n }\n }\n </div>\n </div>\n\n <p class=\"c-header__text u-text\" *ngIf=\"getHeaderText()\">\n {{ getHeaderText() }}\n </p>\n\n @if (\n headerService.isElementVisible(HeaderElementType.CUSTOM_TEMPLATE) &&\n headerService.getCustomTemplate()()\n ) {\n <ng-container\n [ngTemplateOutlet]=\"headerService.getCustomTemplate()()\"\n ></ng-container>\n }\n\n <!-- Custom filters outside modal -->\n @if (getHeaderFilters().length > 0) {\n <div class=\"c-header__bottom\">\n <div class=\"c-header__filters\">\n <!-- Filter fields row -->\n <div>\n @for (filter of getHeaderFilters(); track filter.key) {\n <div class=\"c-header__filter-item\">\n <div\n coreDynamicField\n [field]=\"filter\"\n [value]=\"getFilterValue(filter.key.toString())\"\n [mode]=\"ModalMode.FILTER\"\n [errors]=\"getFilterErrors(filter.key.toString())\"\n (valueChange)=\"\n onFilterValueChange(filter.key.toString(), $event)\n \"\n ></div>\n </div>\n }\n </div>\n\n <!-- Action buttons row -->\n <div class=\"c-header__filter-actions\">\n <core-generic-button\n [config]=\"getApplyFiltersButtonConfig()\"\n (buttonClick)=\"onApplyHeaderFilters()\"\n >\n </core-generic-button>\n <core-generic-button\n [config]=\"getClearFiltersButtonConfig()\"\n (buttonClick)=\"onClearHeaderFilters()\"\n >\n </core-generic-button>\n </div>\n </div>\n </div>\n }\n </div>\n } @else {\n @if (\n headerService.isElementVisible(HeaderElementType.CUSTOM_TEMPLATE) &&\n headerService.getCustomTemplate()()\n ) {\n <ng-container\n [ngTemplateOutlet]=\"headerService.getCustomTemplate()()\"\n ></ng-container>\n }\n }\n}\n", styles: [":root{--header-bg: #ffffff;--header-text: #333;--header-shadow: rgba(0, 0, 0, .1);--logout-btn-color: #e74c3c;--logout-btn-hover: #c0392b;--theme-btn-color: #666;--theme-btn-hover: #007bff}.dark-mode{--header-bg: #1a1a1a;--header-text: #e0e0e0;--header-shadow: rgba(255, 255, 255, .1);--logout-btn-color: #ff6b6b;--logout-btn-hover: #ff8787;--theme-btn-color: #bbb;--theme-btn-hover: #4da8ff}.header{background-color:var(--header-bg);box-shadow:0 2px 4px var(--header-shadow);padding:15px 20px;display:flex;justify-content:space-between;align-items:center}.header .user-info{font-weight:500;color:var(--header-text)}.header .header-actions{display:flex;align-items:center;gap:15px}.header .theme-toggle-btn{background:none;border:none;color:var(--theme-btn-color);font-size:16px;cursor:pointer;display:flex;align-items:center}.header .theme-toggle-btn:hover{color:var(--theme-btn-hover)}.header .logout-btn{background:none;border:none;color:var(--logout-btn-color);font-size:16px;cursor:pointer;display:flex;align-items:center}.header .logout-btn i{margin-right:5px}.header .logout-btn:hover{color:var(--logout-btn-hover)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }, { kind: "component", type: GenericSwitchComponent, selector: "core-generic-switch", inputs: ["options", "selectedValue", "ariaLabel"], outputs: ["valueChange"] }, { kind: "directive", type: DynamicFieldDirective, selector: "[coreDynamicField]", inputs: ["field", "value", "mode", "errors", "rowData", "formValue"], outputs: ["valueChange", "onBlurEvent", "onEnterEvent", "selectionChange"] }] });
|
|
@@ -17170,12 +17181,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
17170
17181
|
// Este archivo es generado automáticamente por scripts/update-version.js
|
|
17171
17182
|
// No edites manualmente este archivo
|
|
17172
17183
|
const VERSION = {
|
|
17173
|
-
full: '2.20.
|
|
17184
|
+
full: '2.20.9',
|
|
17174
17185
|
major: 2,
|
|
17175
17186
|
minor: 20,
|
|
17176
|
-
patch:
|
|
17177
|
-
timestamp: '2026-02-
|
|
17178
|
-
buildDate: '
|
|
17187
|
+
patch: 9,
|
|
17188
|
+
timestamp: '2026-02-03T15:24:39.625Z',
|
|
17189
|
+
buildDate: '3/2/2026'
|
|
17179
17190
|
};
|
|
17180
17191
|
|
|
17181
17192
|
class MainNavComponent {
|