@solcre-org/core-ui 2.15.3 → 2.15.5
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.
|
@@ -10842,6 +10842,7 @@ class HeaderService {
|
|
|
10842
10842
|
showDefaultCreate = signal(true);
|
|
10843
10843
|
headerOrder = signal(undefined);
|
|
10844
10844
|
customTemplate = signal(null);
|
|
10845
|
+
mobileCustomTemplate = signal(null);
|
|
10845
10846
|
filterButtonConfig = signal(undefined);
|
|
10846
10847
|
createButtonConfig = signal(undefined);
|
|
10847
10848
|
createButtonText = signal(undefined);
|
|
@@ -10906,6 +10907,12 @@ class HeaderService {
|
|
|
10906
10907
|
setCustomTemplate(template) {
|
|
10907
10908
|
this.customTemplate.set(template);
|
|
10908
10909
|
}
|
|
10910
|
+
getMobileCustomTemplate() {
|
|
10911
|
+
return this.mobileCustomTemplate;
|
|
10912
|
+
}
|
|
10913
|
+
setMobileCustomTemplate(template) {
|
|
10914
|
+
this.mobileCustomTemplate.set(template);
|
|
10915
|
+
}
|
|
10909
10916
|
clearHeaderData() {
|
|
10910
10917
|
this.title.set('');
|
|
10911
10918
|
this.text.set('');
|
|
@@ -10916,6 +10923,7 @@ class HeaderService {
|
|
|
10916
10923
|
this.hasCreatePermission.set(false);
|
|
10917
10924
|
this.headerOrder.set(undefined);
|
|
10918
10925
|
this.customTemplate.set(null);
|
|
10926
|
+
this.mobileCustomTemplate.set(null);
|
|
10919
10927
|
this.filterButtonConfig.set(undefined);
|
|
10920
10928
|
this.createButtonConfig.set(undefined);
|
|
10921
10929
|
this.createButtonText.set(undefined);
|
|
@@ -15197,6 +15205,10 @@ class MobileHeaderComponent {
|
|
|
15197
15205
|
refreshClick = output();
|
|
15198
15206
|
filterClick = output();
|
|
15199
15207
|
shouldShow = this.mobileResolutionService.shouldShowMobileHeader;
|
|
15208
|
+
displayTitle = computed(() => {
|
|
15209
|
+
const headerTitle = this.headerService.getTitle()();
|
|
15210
|
+
return headerTitle || this.config().title;
|
|
15211
|
+
});
|
|
15200
15212
|
shouldShowRefreshButton = computed(() => {
|
|
15201
15213
|
const config = this.config();
|
|
15202
15214
|
if (config.showRefreshButton !== undefined) {
|
|
@@ -15211,6 +15223,13 @@ class MobileHeaderComponent {
|
|
|
15211
15223
|
}
|
|
15212
15224
|
return this.headerService.hasFilters();
|
|
15213
15225
|
});
|
|
15226
|
+
customTemplate = computed(() => {
|
|
15227
|
+
const configTemplate = this.config().customTemplate;
|
|
15228
|
+
if (configTemplate) {
|
|
15229
|
+
return configTemplate;
|
|
15230
|
+
}
|
|
15231
|
+
return this.headerService.getMobileCustomTemplate()();
|
|
15232
|
+
});
|
|
15214
15233
|
onMenuClick() {
|
|
15215
15234
|
this.menuClick.emit();
|
|
15216
15235
|
}
|
|
@@ -15221,11 +15240,11 @@ class MobileHeaderComponent {
|
|
|
15221
15240
|
this.filterClick.emit();
|
|
15222
15241
|
}
|
|
15223
15242
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MobileHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15224
|
-
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\">{{
|
|
15243
|
+
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 </div>\n <div class=\"c-header-mobile__col\"> <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 }\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: i3.TranslatePipe, name: "translate" }] });
|
|
15225
15244
|
}
|
|
15226
15245
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MobileHeaderComponent, decorators: [{
|
|
15227
15246
|
type: Component,
|
|
15228
|
-
args: [{ selector: 'core-mobile-header', standalone: true, imports: [CommonModule, TranslateModule], 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\">{{
|
|
15247
|
+
args: [{ selector: 'core-mobile-header', standalone: true, imports: [CommonModule, TranslateModule], 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 </div>\n <div class=\"c-header-mobile__col\"> <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 }\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" }]
|
|
15229
15248
|
}] });
|
|
15230
15249
|
|
|
15231
15250
|
var PermissionsActions;
|
|
@@ -15302,11 +15321,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
15302
15321
|
// Este archivo es generado automáticamente por scripts/update-version.js
|
|
15303
15322
|
// No edites manualmente este archivo
|
|
15304
15323
|
const VERSION = {
|
|
15305
|
-
full: '2.15.
|
|
15324
|
+
full: '2.15.5',
|
|
15306
15325
|
major: 2,
|
|
15307
15326
|
minor: 15,
|
|
15308
|
-
patch:
|
|
15309
|
-
timestamp: '2025-10-
|
|
15327
|
+
patch: 5,
|
|
15328
|
+
timestamp: '2025-10-10T16:14:37.566Z',
|
|
15310
15329
|
buildDate: '10/10/2025'
|
|
15311
15330
|
};
|
|
15312
15331
|
|
|
@@ -15317,7 +15336,9 @@ class MainNavComponent {
|
|
|
15317
15336
|
router = inject(Router);
|
|
15318
15337
|
mobileResolutionService = inject(MobileResolutionService);
|
|
15319
15338
|
isCollapsed = false;
|
|
15320
|
-
isMobile
|
|
15339
|
+
get isMobile() {
|
|
15340
|
+
return this.mobileResolutionService.shouldShowMobileHeader();
|
|
15341
|
+
}
|
|
15321
15342
|
isBottomNavOpen = false;
|
|
15322
15343
|
expandedSections = {};
|
|
15323
15344
|
routerSubscription = new Subscription();
|
|
@@ -15353,7 +15374,6 @@ class MainNavComponent {
|
|
|
15353
15374
|
};
|
|
15354
15375
|
}
|
|
15355
15376
|
ngOnInit() {
|
|
15356
|
-
this.checkIfMobile();
|
|
15357
15377
|
this.setupResizeListener();
|
|
15358
15378
|
this.mainNavService.isCollapsed$.subscribe(isCollapsed => {
|
|
15359
15379
|
const wasCollapsed = this.isCollapsed;
|
|
@@ -15381,6 +15401,9 @@ class MainNavComponent {
|
|
|
15381
15401
|
this.routerSubscription.add(this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((event) => {
|
|
15382
15402
|
this.updateExpandedSectionsBasedOnCurrentRoute(event.url);
|
|
15383
15403
|
this.updateBottomNavActiveState(event.url);
|
|
15404
|
+
if (this.isBottomNavOpen) {
|
|
15405
|
+
this.closeMobileNav();
|
|
15406
|
+
}
|
|
15384
15407
|
}));
|
|
15385
15408
|
this.updateExpandedSectionsBasedOnCurrentRoute(this.router.url);
|
|
15386
15409
|
this.updateBottomNavActiveState(this.router.url);
|
|
@@ -15542,13 +15565,18 @@ class MainNavComponent {
|
|
|
15542
15565
|
document.documentElement.classList.add('nav-expanded');
|
|
15543
15566
|
}
|
|
15544
15567
|
else {
|
|
15545
|
-
|
|
15546
|
-
setTimeout(() => {
|
|
15547
|
-
document.body.classList.remove('bottom-nav-open');
|
|
15548
|
-
document.body.classList.remove('bottom-nav-closing');
|
|
15549
|
-
}, 700);
|
|
15568
|
+
this.closeMobileNav();
|
|
15550
15569
|
}
|
|
15551
15570
|
}
|
|
15571
|
+
closeMobileNav() {
|
|
15572
|
+
this.isBottomNavOpen = false;
|
|
15573
|
+
document.body.classList.add('bottom-nav-closing');
|
|
15574
|
+
document.documentElement.classList.remove('nav-expanded');
|
|
15575
|
+
setTimeout(() => {
|
|
15576
|
+
document.body.classList.remove('bottom-nav-open');
|
|
15577
|
+
document.body.classList.remove('bottom-nav-closing');
|
|
15578
|
+
}, 700);
|
|
15579
|
+
}
|
|
15552
15580
|
onBottomNavItemClick(item) {
|
|
15553
15581
|
if (item.disabled)
|
|
15554
15582
|
return;
|
|
@@ -15581,14 +15609,10 @@ class MainNavComponent {
|
|
|
15581
15609
|
}
|
|
15582
15610
|
return classes;
|
|
15583
15611
|
}
|
|
15584
|
-
checkIfMobile() {
|
|
15585
|
-
this.isMobile = window.innerWidth <= this.mobileResolutionService.breakpoint();
|
|
15586
|
-
}
|
|
15587
15612
|
setupResizeListener() {
|
|
15588
15613
|
window.addEventListener('resize', this.onResize.bind(this));
|
|
15589
15614
|
}
|
|
15590
15615
|
onResize() {
|
|
15591
|
-
this.checkIfMobile();
|
|
15592
15616
|
if (!this.isMobile && this.isBottomNavOpen) {
|
|
15593
15617
|
this.isBottomNavOpen = false;
|
|
15594
15618
|
document.body.classList.remove('bottom-nav-open', 'bottom-nav-closing');
|