desy-angular 4.0.0 → 5.1.1
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/bundles/desy-angular.umd.js +1473 -386
- package/bundles/desy-angular.umd.js.map +1 -1
- package/bundles/desy-angular.umd.min.js +2 -2
- package/bundles/desy-angular.umd.min.js.map +1 -1
- package/desy-angular.d.ts +30 -25
- package/desy-angular.metadata.json +1 -1
- package/esm2015/desy-angular.js +31 -26
- package/esm2015/lib/desy-angular.module.js +1 -3
- package/esm2015/lib/desy-buttons/components/button/button.component.js +9 -16
- package/esm2015/lib/desy-buttons/components/button-loader/button-loader.component.js +8 -3
- package/esm2015/lib/desy-buttons/components/dropdown/dropdown.component.js +70 -70
- package/esm2015/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.js +6 -15
- package/esm2015/lib/desy-buttons/components/listbox/listbox.component.js +67 -55
- package/esm2015/lib/desy-buttons/components/pill/pill.component.js +5 -3
- package/esm2015/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.js +15 -0
- package/esm2015/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.js +15 -0
- package/esm2015/lib/desy-buttons/components/toggle/toggle.component.js +41 -0
- package/esm2015/lib/desy-buttons/desy-buttons.module.js +12 -3
- package/esm2015/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.js +36 -2
- package/esm2015/lib/desy-forms/components/checkboxes/checkboxes.component.js +2 -2
- package/esm2015/lib/desy-forms/components/tree/interfaces/itree-item.js +3 -0
- package/esm2015/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.js +2 -0
- package/esm2015/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.js +151 -0
- package/esm2015/lib/desy-forms/components/tree/tree-item/tree-item.component.js +365 -0
- package/esm2015/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.js +25 -0
- package/esm2015/lib/desy-forms/components/tree/tree-sub/tree-sub.component.js +14 -0
- package/esm2015/lib/desy-forms/components/tree/tree.component.js +396 -0
- package/esm2015/lib/desy-forms/desy-forms.module.js +15 -1
- package/esm2015/lib/desy-forms/interfaces/item-checkbox-data.js +1 -1
- package/esm2015/lib/desy-modals/components/modal/modal.component.js +2 -2
- package/esm2015/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.js +14 -49
- package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.js +7 -4
- package/esm2015/lib/desy-nav/components/header/header-subnav/header-subnav.component.js +9 -37
- package/esm2015/lib/desy-nav/components/header/header.component.js +2 -2
- package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.js +2 -2
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical.component.js +12 -3
- package/esm2015/lib/desy-nav/components/menubar/menubar.component.js +3 -3
- package/esm2015/lib/desy-nav/components/nav/nav.component.js +33 -2
- package/esm2015/lib/desy-nav/desy-nav.module.js +4 -2
- package/esm2015/lib/desy-nav/interfaces/header-dropdown-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/header-subnav-data.js +1 -1
- package/esm2015/lib/desy-pagination/components/pagination/pagination.component.js +2 -2
- package/esm2015/lib/desy-views/components/alert/alert.component.js +28 -23
- package/esm2015/public-api.js +5 -1
- package/fesm2015/desy-angular.js +1371 -351
- package/fesm2015/desy-angular.js.map +1 -1
- package/lib/desy-buttons/components/button/button.component.d.ts +6 -6
- package/lib/desy-buttons/components/button-loader/button-loader.component.d.ts +1 -0
- package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +4 -7
- package/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.d.ts +2 -6
- package/lib/desy-buttons/components/listbox/listbox.component.d.ts +1 -2
- package/lib/desy-buttons/components/pill/pill.component.d.ts +1 -0
- package/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.d.ts +5 -0
- package/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.d.ts +5 -0
- package/lib/desy-buttons/components/toggle/toggle.component.d.ts +15 -0
- package/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.d.ts +5 -0
- package/lib/desy-forms/components/tree/interfaces/itree-item.d.ts +5 -0
- package/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.d.ts +5 -0
- package/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.d.ts +43 -0
- package/lib/desy-forms/components/tree/tree-item/tree-item.component.d.ts +85 -0
- package/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.d.ts +10 -0
- package/lib/desy-forms/components/tree/tree-sub/tree-sub.component.d.ts +6 -0
- package/lib/desy-forms/components/tree/tree.component.d.ts +107 -0
- package/lib/desy-forms/interfaces/item-checkbox-data.d.ts +1 -0
- package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +7 -10
- package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +5 -5
- package/lib/desy-nav/components/menu-vertical/menu-vertical.component.d.ts +1 -0
- package/lib/desy-nav/components/nav/nav.component.d.ts +3 -0
- package/lib/desy-nav/interfaces/header-dropdown-data.d.ts +5 -1
- package/lib/desy-nav/interfaces/header-subnav-data.d.ts +5 -1
- package/lib/desy-views/components/alert/alert.component.d.ts +6 -4
- package/package.json +2 -2
- package/public-api.d.ts +4 -0
package/fesm2015/desy-angular.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Input, ViewChild, EventEmitter, Output, ElementRef,
|
|
2
|
+
import { Component, Input, ViewChild, EventEmitter, HostBinding, Output, ElementRef, QueryList, ViewChildren, ContentChildren, ChangeDetectorRef, HostListener, forwardRef, Pipe, Optional, Host, Directive, TemplateRef, ChangeDetectionStrategy, ViewContainerRef, ComponentFactoryResolver, Type, ComponentRef, Injectable, Injector, ApplicationRef, ContentChild, SecurityContext, NgModule } from '@angular/core';
|
|
3
3
|
import { __decorate, __awaiter } from 'tslib';
|
|
4
4
|
import { NG_VALUE_ACCESSOR, ControlContainer, NgForm, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
5
|
import { trigger, state, style, transition, animate, query, animateChild } from '@angular/animations';
|
|
@@ -8,7 +8,6 @@ import { Location, CommonModule } from '@angular/common';
|
|
|
8
8
|
import { RouterModule } from '@angular/router';
|
|
9
9
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
10
10
|
import { NgxTippyModule } from 'ngx-tippy-wrapper';
|
|
11
|
-
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* componente para heredar los atributos de accesibilidad
|
|
@@ -131,23 +130,13 @@ AccessibilityAndContentRequiredComponent.propDecorators = {
|
|
|
131
130
|
tabindex: [{ type: Input }]
|
|
132
131
|
};
|
|
133
132
|
|
|
134
|
-
class ButtonComponent extends
|
|
133
|
+
class ButtonComponent extends AccessibilityComponent {
|
|
135
134
|
constructor() {
|
|
136
135
|
super(...arguments);
|
|
136
|
+
this.hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host
|
|
137
137
|
this.clickEvent = new EventEmitter();
|
|
138
138
|
this.avoidingDoubleClick = false;
|
|
139
139
|
}
|
|
140
|
-
ngOnInit() {
|
|
141
|
-
//this.required();
|
|
142
|
-
}
|
|
143
|
-
ngOnChanges(changes) {
|
|
144
|
-
//this.required();
|
|
145
|
-
}
|
|
146
|
-
required() {
|
|
147
|
-
if (this.getElement() !== this.staticElementTypeInput) {
|
|
148
|
-
//textOrHtmlRequiredFunction(this.text, this.html);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
140
|
onClick(event) {
|
|
152
141
|
if (this.preventDoubleClick) {
|
|
153
142
|
if (!this.avoidingDoubleClick) {
|
|
@@ -209,12 +198,15 @@ ButtonComponent.ELEMENT_INPUT = 'input';
|
|
|
209
198
|
ButtonComponent.decorators = [
|
|
210
199
|
{ type: Component, args: [{
|
|
211
200
|
selector: 'desy-button',
|
|
212
|
-
template: "<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n
|
|
201
|
+
template: "<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n<ng-container [ngSwitch]=\"getElement()\">\r\n <ng-container *ngSwitchCase=\"staticElementTypeA\">\r\n <!-- routerLink modifica href, por eso se duplica para que no convivan en un mismo html -->\r\n <a *ngIf=\"routerLink\" draggable=\"false\" (click)=\"onClick($event)\"\r\n [routerLink]=\"routerLink\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\r\n [attr.tabindex]=\"tabindex ? tabindex : (isDisabled() ? -1 : null)\"\r\n [attr.role]=\"role ? role : 'button'\"\r\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\r\n [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\" [deleteContentIfEmpty]=\"false\"\r\n [class]=\"getClassNames()\"\r\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </a>\r\n\r\n <a *ngIf=\"!routerLink\" draggable=\"false\" (click)=\"onClick($event)\"\r\n [href]=\"href | externalHref\"\r\n [attr.target]=\"target ? target : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : (isDisabled() ? -1 : null)\"\r\n [attr.role]=\"role ? role : 'button'\"\r\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\r\n [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\" [deleteContentIfEmpty]=\"false\"\r\n [class]=\"getClassNames()\"\r\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </a>\r\n\r\n </ng-container>\r\n\r\n <button *ngSwitchCase=\"staticElementTypeButton\" (click)=\"onClick($event)\"\r\n [routerLink]=\"routerLink ? routerLink : null\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\r\n [attr.name]=\"name ? name : null\"\r\n [attr.value]=\"value ? value : null\"\r\n [attr.disabled]=\"isDisabled()\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\r\n [attr.data-prevent-double-click]=\"preventDoubleClick ? 'true' : null\"\r\n [attr.type]=\"type ? type : null\"\r\n [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\" [deleteContentIfEmpty]=\"false\"\r\n [class]=\"getClassNames()\"\r\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </button>\r\n\r\n <input *ngSwitchCase=\"staticElementTypeInput\" (click)=\"onClick($event)\"\r\n [routerLink]=\"routerLink ? routerLink : null\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\r\n [attr.name]=\"name ? name : null\"\r\n [value]=\"text ? text : null\"\r\n [attr.disabled]=\"isDisabled()\"\r\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.data-prevent-double-click]=\"preventDoubleClick ? 'true' : null\"\r\n [attr.type]=\"type ? type : 'submit'\"\r\n [class]=\"getClassNames()\"\r\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n</ng-container>\r\n"
|
|
213
202
|
},] }
|
|
214
203
|
];
|
|
215
204
|
ButtonComponent.propDecorators = {
|
|
205
|
+
hostTabIndex: [{ type: HostBinding, args: ['attr.tabindex',] }],
|
|
216
206
|
id: [{ type: Input }],
|
|
217
207
|
classes: [{ type: Input }],
|
|
208
|
+
html: [{ type: Input }],
|
|
209
|
+
text: [{ type: Input }],
|
|
218
210
|
element: [{ type: Input }],
|
|
219
211
|
name: [{ type: Input }],
|
|
220
212
|
type: [{ type: Input }],
|
|
@@ -229,6 +221,10 @@ ButtonComponent.propDecorators = {
|
|
|
229
221
|
};
|
|
230
222
|
|
|
231
223
|
class ButtonLoaderComponent extends ButtonComponent {
|
|
224
|
+
constructor() {
|
|
225
|
+
super(...arguments);
|
|
226
|
+
this.hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host
|
|
227
|
+
}
|
|
232
228
|
getClassNames() {
|
|
233
229
|
let classNames = 'c-button-loader relative';
|
|
234
230
|
if (this.classes) {
|
|
@@ -261,10 +257,11 @@ ButtonLoaderComponent.DEFAULT_SUCCESS_TEXT = 'Acción realizada con éxito';
|
|
|
261
257
|
ButtonLoaderComponent.decorators = [
|
|
262
258
|
{ type: Component, args: [{
|
|
263
259
|
selector: 'desy-button-loader',
|
|
264
|
-
template: "<ng-template #spinnerTemplate>\r\n <span class=\"c-button-loader__spinner flex items-center justify-center absolute inset-0\">\r\n <desy-spinner [text]=\"getSpinnerText()\" [classes]=\"loaderClasses\" ></desy-spinner>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #successTemplate>\r\n <span class=\"c-button-loader__success flex items-center justify-center absolute inset-0\">\r\n <p class=\"sr-only\" role=\"alert\" aria-live=\"assertive\">{{ getSuccessText() }}</p>\r\n <span aria-hidden=\"true\">\u2713</span>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n
|
|
260
|
+
template: "<ng-template #spinnerTemplate>\r\n <span class=\"c-button-loader__spinner flex items-center justify-center absolute inset-0\">\r\n <desy-spinner [text]=\"getSpinnerText()\" [classes]=\"loaderClasses\" ></desy-spinner>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #successTemplate>\r\n <span class=\"c-button-loader__success flex items-center justify-center absolute inset-0\">\r\n <p class=\"sr-only\" role=\"alert\" aria-live=\"assertive\">{{ getSuccessText() }}</p>\r\n <span aria-hidden=\"true\">\u2713</span>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n<ng-container [ngSwitch]=\"getElement()\">\r\n <ng-container *ngSwitchCase=\"staticElementTypeA\">\r\n <a *ngIf=\"routerLink\" draggable=\"false\" (click)=\"onClick($event)\"\r\n [routerLink]=\"routerLink\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\r\n role=\"button\"\r\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\r\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : (isDisabled() ? -1 : null)\"\r\n [class]=\"getClassNames()\">\r\n <ng-container *ngTemplateOutlet=\"spinnerTemplate\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"successTemplate\"></ng-container>\r\n <span class=\"c-button-loader__content inline-flex align-baseline\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\" [deleteContentIfEmpty]=\"false\"><ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></span>\r\n </a>\r\n\r\n <a *ngIf=\"!routerLink\" draggable=\"false\" (click)=\"onClick($event)\"\r\n [href]=\"href | externalHref\" [attr.target]=\"target ? target : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : (isDisabled() ? -1 : null)\"\r\n role=\"button\"\r\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\r\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [class]=\"getClassNames()\">\r\n <ng-container *ngTemplateOutlet=\"spinnerTemplate\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"successTemplate\"></ng-container>\r\n <span class=\"c-button-loader__content inline-flex align-baseline\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\" [deleteContentIfEmpty]=\"false\"><ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></span>\r\n </a>\r\n </ng-container>\r\n\r\n <button *ngSwitchCase=\"staticElementTypeButton\" (click)=\"onClick($event)\"\r\n [routerLink]=\"routerLink ? routerLink : null\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\r\n [attr.name]=\"name ? name : null\"\r\n [attr.value]=\"value ? value : null\"\r\n [attr.disabled]=\"isDisabled()\"\r\n [attr.role]=\"(role ? role : null)\"\r\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\r\n [attr.data-prevent-double-click]=\"preventDoubleClick ? 'true' : null\"\r\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" [attr.tabindex]=\"tabindex ? tabindex : null\"\r\n [attr.type]=\"type ? type : null\"\r\n [class]=\"getClassNames()\">\r\n <ng-container *ngTemplateOutlet=\"spinnerTemplate\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"successTemplate\"></ng-container>\r\n <span class=\"c-button-loader__content inline-flex align-baseline\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\" [deleteContentIfEmpty]=\"false\"> <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></span>\r\n </button>\r\n\r\n <div *ngSwitchCase=\"staticElementTypeInput\" (click)=\"onClick($event)\"\r\n [attr.name]=\"name ? name : null\"\r\n [routerLink]=\"routerLink ? routerLink : null\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\r\n [attr.disabled]=\"isDisabled()\"\r\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\r\n [attr.role]=\"(role ? role : null)\"\r\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" [attr.tabindex]=\"tabindex ? tabindex : null\"\r\n [class]=\"getClassNames()\"\r\n [attr.data-prevent-double-click]=\"preventDoubleClick ? 'true' : null\">\r\n <span class=\"c-button-loader__content inline-flex align-baseline\">\r\n <input [value]=\"text ? text : null\" [type]=\"type ? type : 'submit'\" class=\"bg-transparent font-semibold\">\r\n </span>\r\n <ng-container *ngTemplateOutlet=\"spinnerTemplate\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"successTemplate\"></ng-container>\r\n </div>\r\n</ng-container>\r\n"
|
|
265
261
|
},] }
|
|
266
262
|
];
|
|
267
263
|
ButtonLoaderComponent.propDecorators = {
|
|
264
|
+
hostTabIndex: [{ type: HostBinding, args: ['attr.tabindex',] }],
|
|
268
265
|
loaderText: [{ type: Input }],
|
|
269
266
|
loaderClasses: [{ type: Input }],
|
|
270
267
|
state: [{ type: Input }],
|
|
@@ -326,96 +323,97 @@ class DropdownComponent extends AccessibilityAndContentRequiredComponent {
|
|
|
326
323
|
constructor() {
|
|
327
324
|
super(...arguments);
|
|
328
325
|
this.clickEvent = new EventEmitter();
|
|
329
|
-
this.
|
|
326
|
+
this.isOpen = false;
|
|
330
327
|
this.clickOutsideEnabled = false;
|
|
331
328
|
}
|
|
332
329
|
ngOnInit() {
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
},
|
|
365
|
-
};
|
|
366
|
-
},
|
|
367
|
-
}],
|
|
368
|
-
role: false,
|
|
369
|
-
aria: {
|
|
370
|
-
content: 'auto',
|
|
371
|
-
},
|
|
372
|
-
onShown(instance) {
|
|
373
|
-
const firstFocusable = FocusUtils.getFirstFocusableElement(contentTooltip);
|
|
374
|
-
if (firstFocusable) {
|
|
375
|
-
setTimeout(() => firstFocusable.focus());
|
|
330
|
+
let contentTooltip;
|
|
331
|
+
if (this.dropdownContent && this.dropdownContent.nativeElement) {
|
|
332
|
+
contentTooltip = this.dropdownContent.nativeElement;
|
|
333
|
+
contentTooltip.style.display = 'block';
|
|
334
|
+
this.tippyProperties = {
|
|
335
|
+
placement: 'bottom-start',
|
|
336
|
+
inlinePositioning: true,
|
|
337
|
+
content: contentTooltip,
|
|
338
|
+
allowHTML: true,
|
|
339
|
+
trigger: 'click',
|
|
340
|
+
hideOnClick: true,
|
|
341
|
+
interactive: true,
|
|
342
|
+
arrow: false,
|
|
343
|
+
offset: [0, -10],
|
|
344
|
+
theme: '',
|
|
345
|
+
plugins: [
|
|
346
|
+
{
|
|
347
|
+
name: 'hideOnPopperBlur',
|
|
348
|
+
defaultValue: true,
|
|
349
|
+
fn(instance) {
|
|
350
|
+
return {
|
|
351
|
+
onCreate() {
|
|
352
|
+
instance.popper.addEventListener('focusout', (event) => {
|
|
353
|
+
if (instance.props.hideOnPopperBlur &&
|
|
354
|
+
event.relatedTarget &&
|
|
355
|
+
!instance.popper.contains(event.relatedTarget)) {
|
|
356
|
+
instance.hide();
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
},
|
|
360
|
+
};
|
|
376
361
|
}
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
name: 'hideOnEsc',
|
|
365
|
+
defaultValue: true,
|
|
366
|
+
fn({ hide }) {
|
|
367
|
+
function onKeyDown(event) {
|
|
368
|
+
if (event.key === DropdownComponent.KEY_CODE_ESC) {
|
|
369
|
+
hide();
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
return {
|
|
373
|
+
onShow() {
|
|
374
|
+
document.addEventListener('keydown', onKeyDown);
|
|
375
|
+
},
|
|
376
|
+
onHide() {
|
|
377
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
378
|
+
},
|
|
379
|
+
};
|
|
380
|
+
},
|
|
377
381
|
}
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
382
|
+
],
|
|
383
|
+
role: false,
|
|
384
|
+
aria: {
|
|
385
|
+
content: 'auto',
|
|
386
|
+
},
|
|
387
|
+
onShown(instance) {
|
|
388
|
+
const firstFocusable = FocusUtils.getFirstFocusableElement(contentTooltip);
|
|
389
|
+
if (firstFocusable) {
|
|
390
|
+
firstFocusable.focus();
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
};
|
|
385
394
|
}
|
|
386
395
|
}
|
|
387
396
|
onClick(event) {
|
|
388
397
|
if (!this.isDisabled()) {
|
|
389
|
-
this.toggleDropdown();
|
|
390
398
|
this.clickEvent.emit(event);
|
|
391
399
|
}
|
|
392
400
|
}
|
|
393
|
-
|
|
394
|
-
this.
|
|
395
|
-
setTimeout(() => this.clickOutsideEnabled = this.show);
|
|
396
|
-
}
|
|
397
|
-
closeDropdown() {
|
|
398
|
-
this.show = false;
|
|
399
|
-
this.clickOutsideEnabled = false;
|
|
401
|
+
setOpen(isOpen) {
|
|
402
|
+
this.isOpen = isOpen;
|
|
400
403
|
}
|
|
401
404
|
isDisabled() {
|
|
402
405
|
return this.disabled ? true : null;
|
|
403
406
|
}
|
|
404
|
-
onKeyDown(event) {
|
|
405
|
-
if (event.key === DropdownComponent.KEY_CODE_ESC) {
|
|
406
|
-
this.closeDropdown();
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
407
|
}
|
|
410
408
|
DropdownComponent.KEY_CODE_ESC = 'Escape';
|
|
411
409
|
DropdownComponent.decorators = [
|
|
412
410
|
{ type: Component, args: [{
|
|
413
411
|
selector: 'desy-dropdown',
|
|
414
|
-
template: "
|
|
412
|
+
template: "<div [class]=\"classesContainer ? classesContainer : 'relative'\"\r\n (desyContentEmpty)=\"setOpen(false)\" (desyContentNotEmpty)=\"setOpen(true)\">\r\n <button #desyContentEmptyIgnore (click)=\"onClick($event)\"\r\n ngxTippy [tippyProps]=\"tippyProperties\"\r\n [class]=\"['c-dropdown', classes] | makeHtmlList\"\r\n [attr.disabled]=\"isDisabled() ? 'disabled' : null\"\r\n aria-haspopup=\"true\"\r\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\r\n [attr.aria-expanded]=\"isOpen\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.tabIndex]=\"isDisabled() ? '-1' : tabindex\">\r\n <span class=\"inline-flex self-center max-w-xs align-middle truncate\">\r\n <ng-container *desyCustomInnerContent=\"{ html: html, text: text }\"></ng-container>\r\n <ng-content></ng-content>\r\n </span>\r\n <svg class=\"inline-block -mr-2 align-middle -my-px\" viewBox=\"0 0 96 96\" aria-hidden=\"true\" fill=\"currentColor\" focusable=\"false\" width=\"1.5em\" height=\"1.5em\"><g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g></svg>\r\n </button>\r\n <span *ngIf=\"hiddenText\" #desyContentEmptyIgnore class=\"sr-only\">{{ hiddenText }}</span>\r\n <div #dropdownContent style=\"display: none;\"\r\n [class]=\"['-ml-sm mt-2 border border-neutral-base shadow-md bg-white', classesTooltip] | makeHtmlList\">\r\n <ng-container *ngTemplateOutlet=\"caller\"></ng-container>\r\n </div>\r\n</div>\r\n"
|
|
415
413
|
},] }
|
|
416
414
|
];
|
|
417
415
|
DropdownComponent.propDecorators = {
|
|
418
|
-
dropdownContent: [{ type: ViewChild, args: ['dropdownContent', { read: ElementRef },] }],
|
|
416
|
+
dropdownContent: [{ type: ViewChild, args: ['dropdownContent', { read: ElementRef, static: true },] }],
|
|
419
417
|
id: [{ type: Input }],
|
|
420
418
|
disabled: [{ type: Input }],
|
|
421
419
|
hiddenText: [{ type: Input }],
|
|
@@ -423,8 +421,7 @@ DropdownComponent.propDecorators = {
|
|
|
423
421
|
classesTooltip: [{ type: Input }],
|
|
424
422
|
classes: [{ type: Input }],
|
|
425
423
|
caller: [{ type: Input }],
|
|
426
|
-
clickEvent: [{ type: Output }]
|
|
427
|
-
onKeyDown: [{ type: HostListener, args: ['window:keydown', ['$event'],] }]
|
|
424
|
+
clickEvent: [{ type: Output }]
|
|
428
425
|
};
|
|
429
426
|
|
|
430
427
|
/**
|
|
@@ -445,26 +442,16 @@ class StringUtils {
|
|
|
445
442
|
}
|
|
446
443
|
}
|
|
447
444
|
|
|
448
|
-
class ListboxLabelComponent {
|
|
449
|
-
constructor() {
|
|
450
|
-
this.isInit = false;
|
|
451
|
-
}
|
|
452
|
-
ngOnInit() {
|
|
453
|
-
setTimeout(() => this.isInit = !!this.content);
|
|
454
|
-
}
|
|
455
|
-
getContent() {
|
|
456
|
-
return this.isInit ? this.content : null;
|
|
457
|
-
}
|
|
445
|
+
class ListboxLabelComponent extends ContentBaseComponent {
|
|
458
446
|
}
|
|
459
447
|
ListboxLabelComponent.decorators = [
|
|
460
448
|
{ type: Component, args: [{
|
|
461
449
|
selector: 'desy-listbox-label',
|
|
462
|
-
template: "<ng-template #
|
|
450
|
+
template: "<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n"
|
|
463
451
|
},] }
|
|
464
452
|
];
|
|
465
453
|
ListboxLabelComponent.propDecorators = {
|
|
466
|
-
classes: [{ type: Input }]
|
|
467
|
-
content: [{ type: ViewChild, args: ['childComponentTemplate',] }]
|
|
454
|
+
classes: [{ type: Input }]
|
|
468
455
|
};
|
|
469
456
|
|
|
470
457
|
class ListboxItemComponent extends AccessibilityComponent {
|
|
@@ -536,51 +523,70 @@ class ListboxComponent extends AccessibilityAndTextOrHtmlRequiredComponent {
|
|
|
536
523
|
super(...arguments);
|
|
537
524
|
this.itemsChange = new EventEmitter();
|
|
538
525
|
this.activeItemChange = new EventEmitter();
|
|
539
|
-
this.isListVisible = false;
|
|
526
|
+
this.isListVisible = false; // Indica si la lista se está mostrando
|
|
540
527
|
}
|
|
541
528
|
ngOnInit() {
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
},
|
|
574
|
-
}],
|
|
575
|
-
role: false,
|
|
576
|
-
aria: {
|
|
577
|
-
content: 'auto',
|
|
529
|
+
const listboxButtonElement = this.listboxButton.nativeElement;
|
|
530
|
+
if (this.listboxContent && this.listboxContent.nativeElement) {
|
|
531
|
+
const contentTooltip = this.listboxContent.nativeElement;
|
|
532
|
+
this.tippyProperties = {
|
|
533
|
+
placement: 'bottom-start',
|
|
534
|
+
inlinePositioning: true,
|
|
535
|
+
content: contentTooltip,
|
|
536
|
+
allowHTML: true,
|
|
537
|
+
trigger: 'click',
|
|
538
|
+
hideOnClick: true,
|
|
539
|
+
interactive: true,
|
|
540
|
+
arrow: false,
|
|
541
|
+
offset: [0, -10],
|
|
542
|
+
theme: '',
|
|
543
|
+
plugins: [
|
|
544
|
+
{
|
|
545
|
+
name: 'hideOnPopperBlur',
|
|
546
|
+
defaultValue: true,
|
|
547
|
+
fn(instance) {
|
|
548
|
+
return {
|
|
549
|
+
onCreate() {
|
|
550
|
+
instance.popper.addEventListener('focusout', (event) => {
|
|
551
|
+
if (instance.props.hideOnPopperBlur &&
|
|
552
|
+
event.relatedTarget &&
|
|
553
|
+
!instance.popper.contains(event.relatedTarget)) {
|
|
554
|
+
instance.hide();
|
|
555
|
+
}
|
|
556
|
+
});
|
|
557
|
+
},
|
|
558
|
+
};
|
|
559
|
+
}
|
|
578
560
|
},
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
561
|
+
{
|
|
562
|
+
name: 'hideOnEsc',
|
|
563
|
+
defaultValue: true,
|
|
564
|
+
fn({ hide }) {
|
|
565
|
+
function onKeyDown(event) {
|
|
566
|
+
if (event.key === ListboxComponent.KEY_CODE_ESC) {
|
|
567
|
+
hide();
|
|
568
|
+
listboxButtonElement.focus();
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
return {
|
|
572
|
+
onShow() {
|
|
573
|
+
document.addEventListener('keydown', onKeyDown);
|
|
574
|
+
},
|
|
575
|
+
onHide() {
|
|
576
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
577
|
+
},
|
|
578
|
+
};
|
|
579
|
+
},
|
|
580
|
+
}
|
|
581
|
+
],
|
|
582
|
+
role: false,
|
|
583
|
+
aria: {
|
|
584
|
+
content: 'auto',
|
|
585
|
+
},
|
|
586
|
+
onShow: this.onListShow.bind(this),
|
|
587
|
+
onHidden: this.onListClose.bind(this)
|
|
588
|
+
};
|
|
589
|
+
}
|
|
584
590
|
}
|
|
585
591
|
ngOnChanges() {
|
|
586
592
|
setTimeout(() => {
|
|
@@ -667,11 +673,11 @@ class ListboxComponent extends AccessibilityAndTextOrHtmlRequiredComponent {
|
|
|
667
673
|
if (this.doesChangeButtonText && !this.isMultiselectable && activeItems.length > 0) {
|
|
668
674
|
const activeItemOption = this.listboxOptions.find((item, index) => index === activeItems[0].index);
|
|
669
675
|
if (activeItemOption) {
|
|
670
|
-
this.
|
|
676
|
+
this.buttonContentHtml = activeItemOption.nativeElement.innerHTML;
|
|
671
677
|
}
|
|
672
678
|
}
|
|
673
679
|
else {
|
|
674
|
-
this.
|
|
680
|
+
this.buttonContentHtml = this.html ? this.html : null;
|
|
675
681
|
}
|
|
676
682
|
// Si hay cambios, se emiten
|
|
677
683
|
if (hasActiveItemChange) {
|
|
@@ -687,9 +693,6 @@ class ListboxComponent extends AccessibilityAndTextOrHtmlRequiredComponent {
|
|
|
687
693
|
}
|
|
688
694
|
onListClose() {
|
|
689
695
|
this.isListVisible = false;
|
|
690
|
-
if (this.listboxButton) {
|
|
691
|
-
this.listboxButton.nativeElement.focus();
|
|
692
|
-
}
|
|
693
696
|
}
|
|
694
697
|
onListFocus() {
|
|
695
698
|
const activeItemsData = this.getActiveItemsData();
|
|
@@ -763,22 +766,18 @@ class ListboxComponent extends AccessibilityAndTextOrHtmlRequiredComponent {
|
|
|
763
766
|
getLabelContent(label) {
|
|
764
767
|
return label.html ? label.html : `<p>${StringUtils.escapeHtml(label.text)}</p>`;
|
|
765
768
|
}
|
|
766
|
-
isButtonContentHtml() {
|
|
767
|
-
const activeItemsData = this.getActiveItemsData();
|
|
768
|
-
return !!(this.doesChangeButtonText && !this.isMultiselectable && activeItemsData.length > 0 ? true : this.html);
|
|
769
|
-
}
|
|
770
769
|
}
|
|
771
770
|
ListboxComponent.KEY_CODE_ESC = 'Escape';
|
|
772
771
|
ListboxComponent.decorators = [
|
|
773
772
|
{ type: Component, args: [{
|
|
774
773
|
selector: 'desy-listbox',
|
|
775
|
-
template: "<div [ngClass]=\"classesContainer ? classesContainer : 'relative'\">\r\n <div
|
|
774
|
+
template: "<div [ngClass]=\"classesContainer ? classesContainer : 'relative'\">\r\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelComponent?.classes, label?.classes] | makeHtmlList\">\r\n <ng-container *desyCustomInnerContent=\"{ component: labelComponent, html: label ? getLabelContent(label) : null }\"></ng-container>\r\n </div>\r\n <button #button [id]=\"id + '-button'\"\r\n [class]=\"['c-listbox', classes] | makeHtmlList\"\r\n ngxTippy [tippyProps]=\"tippyProperties\"\r\n aria-haspopup=\"listbox\"\r\n [attr.aria-labelledby]=\"[hasLabel() ? id + '-label' : null, id + '-button'] | makeHtmlList\"\r\n [attr.disabled]=\"disabled ? 'disabled' : null\"\r\n [attr.aria-disabled]=\"disabled ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\r\n [attr.aria-role] = \"role ? role : null\"\r\n [attr.aria-label] = \"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby] = \"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-hidden] = \"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-controls] = \"ariaControls ? ariaControls : null\"\r\n [attr.aria-current] = \"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live] = \"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded] = \"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errorMessage] = \"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-hasppup] = \"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-tabindex] = \"tabindex ? tabindex : null\">\r\n <span class=\"inline-flex self-center max-w-xs align-middle truncate\">\r\n <ng-container *desyCustomInnerContent=\"{ html: buttonContentHtml, text: text }\"></ng-container>\r\n </span>\r\n <svg class=\"inline-block -mr-2 align-middle -my-px\" viewBox=\"0 0 96 96\" aria-hidden=\"true\" fill=\"currentColor\" focusable=\"false\" width=\"1.5em\" height=\"1.5em\"><g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g></svg>\r\n </button>\r\n <div #tooltip [class]=\"['c-listbox__tooltip -ml-sm mt-2 border border-neutral-base shadow-md bg-white', classesTooltip] | makeHtmlList\">\r\n <ul *ngIf=\"itemList\"\r\n #list [id]=\"id\"\r\n (focus)=\"onListFocus()\"\r\n (keydown.arrowUp)=\"moveFocus(currentFocusIndex - 1, $event)\"\r\n (keydown.arrowDown)=\"moveFocus(currentFocusIndex + 1, $event)\"\r\n (keydown.home)=\"moveFocus(0, $event)\"\r\n (keydown.end)=\"moveFocus(items.length - 1, $event)\"\r\n (keydown.space)=\"onSpace($event)\"\r\n role=\"listbox\"\r\n tabindex=\"-1\"\r\n class=\"text-sm outline-none\"\r\n [attr.aria-labelledby]=\"hasLabel() ? id : (ariaLabelledBy ? ariaLabelledBy : null)\"\r\n [attr.aria-multiselectable]=\"isMultiselectable ? 'true' : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-label] = \"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby] = \"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-hidden] = \"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-controls] = \"ariaControls ? ariaControls : null\"\r\n [attr.aria-current] = \"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live] = \"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded] = \"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage] = \"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup] = \"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-activedescendant] = \"lastActiveItems.length > 0 ? getItemId(lastActiveItems[0].item, lastActiveItems[0].index) : null\">\r\n <ng-container *ngFor=\"let item of itemList; index as index\">\r\n <li #option *ngIf=\"item\" role=\"option\" (click)=\"selectItem(index)\"\r\n [class]=\"['flex items-center pr-base pl-lg py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'focused': index === currentFocusIndex}\"\r\n [attr.aria-label]=\"item.active ? 'true' : (item.ariaLabel ? item.ariaLabel : null)\"\r\n [id]=\"getItemId(item, index)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-hidden] = \"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current] = \"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live] = \"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup] = \"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.aria-tabindex] = \"item.tabindex ? item.tabindex : null\"\r\n\r\n [attr.aria-checked]=\"item.active\"\r\n [attr.aria-selected]=\"item.active\">\r\n <ng-container *desyCustomInnerContent=\"{ template: item['content'], html: item.html, text: item.text }\"></ng-container>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n</div>\r\n"
|
|
776
775
|
},] }
|
|
777
776
|
];
|
|
778
777
|
ListboxComponent.propDecorators = {
|
|
779
|
-
listboxButton: [{ type: ViewChild, args: ['button', { read: ElementRef },] }],
|
|
778
|
+
listboxButton: [{ type: ViewChild, args: ['button', { read: ElementRef, static: true },] }],
|
|
780
779
|
listboxList: [{ type: ViewChild, args: ['list', { read: ElementRef },] }],
|
|
781
|
-
listboxContent: [{ type: ViewChild, args: ['tooltip', { read: ElementRef },] }],
|
|
780
|
+
listboxContent: [{ type: ViewChild, args: ['tooltip', { read: ElementRef, static: true },] }],
|
|
782
781
|
listboxOptions: [{ type: ViewChildren, args: ['option', { read: ElementRef },] }],
|
|
783
782
|
labelComponent: [{ type: ContentChildren, args: [ListboxLabelComponent,] }],
|
|
784
783
|
itemComponentList: [{ type: ContentChildren, args: [ListboxItemComponent,] }],
|
|
@@ -803,6 +802,7 @@ class PillComponent extends AccessibilityAndContentRequiredComponent {
|
|
|
803
802
|
constructor() {
|
|
804
803
|
super(...arguments);
|
|
805
804
|
this.clickEvent = new EventEmitter();
|
|
805
|
+
this.hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host
|
|
806
806
|
}
|
|
807
807
|
onClick(event) {
|
|
808
808
|
this.clickEvent.emit(event);
|
|
@@ -856,7 +856,8 @@ PillComponent.propDecorators = {
|
|
|
856
856
|
routerLinkActiveClasses: [{ type: Input }],
|
|
857
857
|
classes: [{ type: Input }],
|
|
858
858
|
id: [{ type: Input }],
|
|
859
|
-
clickEvent: [{ type: Output }]
|
|
859
|
+
clickEvent: [{ type: Output }],
|
|
860
|
+
hostTabIndex: [{ type: HostBinding, args: ['attr.tabindex',] }]
|
|
860
861
|
};
|
|
861
862
|
|
|
862
863
|
class ContentComponent extends ContentBaseComponent {
|
|
@@ -2234,6 +2235,7 @@ class CheckboxItemComponent extends AccessibilityComponent {
|
|
|
2234
2235
|
this.checkboxes = checkboxes;
|
|
2235
2236
|
this.changeDetectorRef = changeDetectorRef;
|
|
2236
2237
|
this.checkedChange = new EventEmitter();
|
|
2238
|
+
this.indeterminateChange = new EventEmitter();
|
|
2237
2239
|
if (!this.checkboxes) {
|
|
2238
2240
|
throw Error('Checkbox items must be inside of CheckboxesComponent');
|
|
2239
2241
|
}
|
|
@@ -2255,6 +2257,10 @@ class CheckboxItemComponent extends AccessibilityComponent {
|
|
|
2255
2257
|
else if (this.lastValue !== undefined && this.lastValue !== this.value) {
|
|
2256
2258
|
this.checkboxes.updateValueFromCheckboxItems();
|
|
2257
2259
|
}
|
|
2260
|
+
if (this.indeterminateChecked !== this.lastIndeterminate && this.isInit()) {
|
|
2261
|
+
this.setIndeterminateChecked(this.indeterminateChecked);
|
|
2262
|
+
this.checkboxes.updateValueFromCheckboxItems();
|
|
2263
|
+
}
|
|
2258
2264
|
this.lastValue = this.value;
|
|
2259
2265
|
if (this.id !== this.checkboxId) {
|
|
2260
2266
|
this.checkboxes.markForUpdateCheckboxIds();
|
|
@@ -2262,6 +2268,7 @@ class CheckboxItemComponent extends AccessibilityComponent {
|
|
|
2262
2268
|
}
|
|
2263
2269
|
ngAfterViewInit() {
|
|
2264
2270
|
this.setChecked(this.checked);
|
|
2271
|
+
this.setIndeterminateChecked(this.indeterminateChecked);
|
|
2265
2272
|
this.checkboxes.updateValueFromCheckboxItems();
|
|
2266
2273
|
}
|
|
2267
2274
|
getItemHintId() {
|
|
@@ -2281,6 +2288,7 @@ class CheckboxItemComponent extends AccessibilityComponent {
|
|
|
2281
2288
|
}
|
|
2282
2289
|
}
|
|
2283
2290
|
this.setChecked(input.checked);
|
|
2291
|
+
this.setIndeterminateChecked(input.indeterminate);
|
|
2284
2292
|
this.checkboxes.updateValueFromCheckboxItems();
|
|
2285
2293
|
}
|
|
2286
2294
|
setChecked(checked) {
|
|
@@ -2289,6 +2297,26 @@ class CheckboxItemComponent extends AccessibilityComponent {
|
|
|
2289
2297
|
this.checkedChange.emit(checked);
|
|
2290
2298
|
this.changeDetectorRef.detectChanges(); // Avisa al elemento input para que actualice su estado
|
|
2291
2299
|
}
|
|
2300
|
+
setIndeterminateChecked(indeterminateChecked) {
|
|
2301
|
+
this.indeterminateChecked = indeterminateChecked;
|
|
2302
|
+
this.lastIndeterminate = indeterminateChecked;
|
|
2303
|
+
this.indeterminateChange.emit(indeterminateChecked);
|
|
2304
|
+
this.changeDetectorRef.detectChanges(); // Avisa al elemento input para que actualice su estado
|
|
2305
|
+
}
|
|
2306
|
+
setIndeterminateStatus() {
|
|
2307
|
+
var _a;
|
|
2308
|
+
const input = (_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.nativeElement;
|
|
2309
|
+
if (input) {
|
|
2310
|
+
if (this.indeterminateChecked) {
|
|
2311
|
+
input.readOnly = true;
|
|
2312
|
+
input.indeterminate = true;
|
|
2313
|
+
}
|
|
2314
|
+
else if (input.readOnly) {
|
|
2315
|
+
input.readOnly = false;
|
|
2316
|
+
input.indeterminate = false;
|
|
2317
|
+
}
|
|
2318
|
+
}
|
|
2319
|
+
}
|
|
2292
2320
|
isInit() {
|
|
2293
2321
|
return !!this.inputElement;
|
|
2294
2322
|
}
|
|
@@ -2369,13 +2397,18 @@ CheckboxItemComponent.propDecorators = {
|
|
|
2369
2397
|
conditional: [{ type: Input }],
|
|
2370
2398
|
disabled: [{ type: Input }],
|
|
2371
2399
|
isIndeterminate: [{ type: Input }],
|
|
2400
|
+
indeterminateChecked: [{ type: Input }],
|
|
2372
2401
|
classes: [{ type: Input }],
|
|
2373
2402
|
labelComponentList: [{ type: ContentChildren, args: [LabelComponent,] }],
|
|
2374
2403
|
hintComponentList: [{ type: ContentChildren, args: [HintComponent,] }],
|
|
2375
2404
|
conditionalContentList: [{ type: ContentChildren, args: [ContentComponent,] }],
|
|
2376
2405
|
checked: [{ type: Input }],
|
|
2377
|
-
checkedChange: [{ type: Output }]
|
|
2378
|
-
}
|
|
2406
|
+
checkedChange: [{ type: Output }],
|
|
2407
|
+
indeterminateChange: [{ type: Output }]
|
|
2408
|
+
};
|
|
2409
|
+
__decorate([
|
|
2410
|
+
DesyOnInputChange('setIndeterminateStatus')
|
|
2411
|
+
], CheckboxItemComponent.prototype, "indeterminateChecked", void 0);
|
|
2379
2412
|
|
|
2380
2413
|
class CheckboxesComponent extends FormFieldComponent {
|
|
2381
2414
|
constructor() {
|
|
@@ -2559,7 +2592,7 @@ class CheckboxesComponent extends FormFieldComponent {
|
|
|
2559
2592
|
CheckboxesComponent.decorators = [
|
|
2560
2593
|
{ type: Component, args: [{
|
|
2561
2594
|
selector: 'desy-checkboxes',
|
|
2562
|
-
template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses == 'c-form-group--error') }\">\r\n\r\n <ng-container *ngIf=\"hasFieldsetComponent()\">\r\n <ng-content select=\"desy-fieldset\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\r\n <desy-fieldset *ngIf=\"fieldsetData\"\r\n [classes]=\"fieldsetData.classes\"\r\n [id]=\"fieldsetData.id\"\r\n [legendData]=\"fieldsetData.legend\"\r\n [headingLevel]=\"fieldsetData.headingLevel\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n [role]=\"fieldsetData.role\"\r\n [ariaLabel]=\"fieldsetData.ariaLabel\"\r\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\r\n [ariaHidden]=\"fieldsetData.ariaHidden\"\r\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\r\n [ariaControls]=\"fieldsetData.ariaControls\"\r\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\r\n [ariaLive]=\"fieldsetData.ariaLive\"\r\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\r\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\r\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !!legendComponent\"\r\n [legendRef]=\"legendTemplate\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\r\n <ng-template #legendTemplate>\r\n <ng-content select=\"desy-legend\"></ng-content>\r\n </ng-template>\r\n </desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && legendRef\"\r\n [legendRef]=\"legendRef\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && legendData\"\r\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && !legendData && legendText\"\r\n [legendText]=\"legendText\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasFieldset()\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n\r\n<ng-template #innerHtml>\r\n <ng-container *ngIf=\"hasHintComponent()\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasHintComponent()\">\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData\"\r\n [id]=\"getHintId()\"\r\n [text]=\"hintData.text\"\r\n [html]=\"hintData.html\"\r\n [classes]=\"hintData.classes\"\r\n [role]=\"hintData.role\"\r\n [ariaLabel]=\"hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"hintData.ariaHidden\"\r\n [ariaDisabled]=\"hintData.ariaDisabled\"\r\n [ariaControls]=\"hintData.ariaControls\"\r\n [ariaCurrent]=\"hintData.ariaCurrent\"\r\n [ariaLive]=\"hintData.ariaLive\"\r\n [ariaExpanded]=\"hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\r\n [tabindex]=\"hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\r\n [id]=\"getErrorId()\"\r\n [text]=\"errorMessageData.text\"\r\n [html]=\"errorMessageData.html\"\r\n [classes]=\"errorMessageData.classes\"\r\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\r\n [role]=\"errorMessageData.role\"\r\n [ariaLabel]=\"errorMessageData.ariaLabel\"\r\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessageData.ariaHidden\"\r\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\r\n [ariaControls]=\"errorMessageData.ariaControls\"\r\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\r\n [ariaLive]=\"errorMessageData.ariaLive\"\r\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\r\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\r\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n </ng-container>\r\n\r\n <div [class]=\"['c-checkboxes', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngIf=\"checkboxComponentItems && checkboxComponentItems.length > 0\">\r\n <ng-content select=\"desy-checkbox-item\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!(checkboxComponentItems && checkboxComponentItems.length > 0) && items\">\r\n <desy-checkbox-item *ngFor=\"let item of items; index as i\"\r\n [id]=\"item.id\"\r\n [disabled]=\"item.disabled\"\r\n [name]=\"item.name\"\r\n [classes]=\"item.classes\"\r\n [value]=\"item.value\"\r\n [(checked)]=\"item.checked\"\r\n [conditional]=\"item.conditional\"\r\n [isIndeterminate]=\"item.isIndeterminate\"\r\n\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\">\r\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\r\n [classes]=\"item.labelData ? item.labelData.classes : null\"\r\n [role]=\"item.labelData ? item.labelData.role : null\"\r\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\r\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\r\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\r\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\r\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\r\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\r\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\r\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\r\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\r\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\r\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\r\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\r\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\r\n [text]=\"item.hintData.text\"\r\n [html]=\"item.hintData.html\"\r\n [classes]=\"item.hintData.classes\"\r\n [role]=\"item.hintData.role\"\r\n [ariaLabel]=\"item.hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"item.hintData.ariaHidden\"\r\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\r\n [ariaControls]=\"item.hintData.ariaControls\"\r\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\r\n [ariaLive]=\"item.hintData.ariaLive\"\r\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\r\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\r\n <desy-content *ngIf=\"item.conditionalHtml\">\r\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\r\n </desy-content>\r\n </desy-checkbox-item>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n",
|
|
2595
|
+
template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses == 'c-form-group--error') }\">\r\n\r\n <ng-container *ngIf=\"hasFieldsetComponent()\">\r\n <ng-content select=\"desy-fieldset\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\r\n <desy-fieldset *ngIf=\"fieldsetData\"\r\n [classes]=\"fieldsetData.classes\"\r\n [id]=\"fieldsetData.id\"\r\n [legendData]=\"fieldsetData.legend\"\r\n [headingLevel]=\"fieldsetData.headingLevel\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n [role]=\"fieldsetData.role\"\r\n [ariaLabel]=\"fieldsetData.ariaLabel\"\r\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\r\n [ariaHidden]=\"fieldsetData.ariaHidden\"\r\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\r\n [ariaControls]=\"fieldsetData.ariaControls\"\r\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\r\n [ariaLive]=\"fieldsetData.ariaLive\"\r\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\r\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\r\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !!legendComponent\"\r\n [legendRef]=\"legendTemplate\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\r\n <ng-template #legendTemplate>\r\n <ng-content select=\"desy-legend\"></ng-content>\r\n </ng-template>\r\n </desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && legendRef\"\r\n [legendRef]=\"legendRef\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && legendData\"\r\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && !legendData && legendText\"\r\n [legendText]=\"legendText\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasFieldset()\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n\r\n<ng-template #innerHtml>\r\n <ng-container *ngIf=\"hasHintComponent()\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasHintComponent()\">\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData\"\r\n [id]=\"getHintId()\"\r\n [text]=\"hintData.text\"\r\n [html]=\"hintData.html\"\r\n [classes]=\"hintData.classes\"\r\n [role]=\"hintData.role\"\r\n [ariaLabel]=\"hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"hintData.ariaHidden\"\r\n [ariaDisabled]=\"hintData.ariaDisabled\"\r\n [ariaControls]=\"hintData.ariaControls\"\r\n [ariaCurrent]=\"hintData.ariaCurrent\"\r\n [ariaLive]=\"hintData.ariaLive\"\r\n [ariaExpanded]=\"hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\r\n [tabindex]=\"hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\r\n [id]=\"getErrorId()\"\r\n [text]=\"errorMessageData.text\"\r\n [html]=\"errorMessageData.html\"\r\n [classes]=\"errorMessageData.classes\"\r\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\r\n [role]=\"errorMessageData.role\"\r\n [ariaLabel]=\"errorMessageData.ariaLabel\"\r\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessageData.ariaHidden\"\r\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\r\n [ariaControls]=\"errorMessageData.ariaControls\"\r\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\r\n [ariaLive]=\"errorMessageData.ariaLive\"\r\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\r\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\r\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n </ng-container>\r\n\r\n <div [class]=\"['c-checkboxes', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngIf=\"checkboxComponentItems && checkboxComponentItems.length > 0\">\r\n <ng-content select=\"desy-checkbox-item\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!(checkboxComponentItems && checkboxComponentItems.length > 0) && items\">\r\n <desy-checkbox-item *ngFor=\"let item of items; index as i\"\r\n [id]=\"item.id\"\r\n [disabled]=\"item.disabled\"\r\n [name]=\"item.name\"\r\n [classes]=\"item.classes\"\r\n [value]=\"item.value\"\r\n [(checked)]=\"item.checked\"\r\n [conditional]=\"item.conditional\"\r\n [isIndeterminate]=\"item.isIndeterminate\"\r\n [indeterminateChecked]=\"item.indeterminateChecked\"\r\n\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\">\r\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\r\n [classes]=\"item.labelData ? item.labelData.classes : null\"\r\n [role]=\"item.labelData ? item.labelData.role : null\"\r\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\r\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\r\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\r\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\r\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\r\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\r\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\r\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\r\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\r\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\r\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\r\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\r\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\r\n [text]=\"item.hintData.text\"\r\n [html]=\"item.hintData.html\"\r\n [classes]=\"item.hintData.classes\"\r\n [role]=\"item.hintData.role\"\r\n [ariaLabel]=\"item.hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"item.hintData.ariaHidden\"\r\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\r\n [ariaControls]=\"item.hintData.ariaControls\"\r\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\r\n [ariaLive]=\"item.hintData.ariaLive\"\r\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\r\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\r\n <desy-content *ngIf=\"item.conditionalHtml\">\r\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\r\n </desy-content>\r\n </desy-checkbox-item>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n",
|
|
2563
2596
|
providers: [
|
|
2564
2597
|
{
|
|
2565
2598
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -2982,41 +3015,1000 @@ class SearchBarComponent extends FormFieldComponent {
|
|
|
2982
3015
|
throw Error('label is required');
|
|
2983
3016
|
}
|
|
2984
3017
|
}
|
|
2985
|
-
ngAfterViewInit() {
|
|
2986
|
-
if (this.button && this.button.length > 1) {
|
|
2987
|
-
throw Error('only 1 button in content is allowed');
|
|
3018
|
+
ngAfterViewInit() {
|
|
3019
|
+
if (this.button && this.button.length > 1) {
|
|
3020
|
+
throw Error('only 1 button in content is allowed');
|
|
3021
|
+
}
|
|
3022
|
+
}
|
|
3023
|
+
onClick(event) {
|
|
3024
|
+
if (!this.disabled) {
|
|
3025
|
+
this.clickEvent.emit(event);
|
|
3026
|
+
}
|
|
3027
|
+
}
|
|
3028
|
+
hasButton() {
|
|
3029
|
+
return this.button && this.button.length > 0;
|
|
3030
|
+
}
|
|
3031
|
+
}
|
|
3032
|
+
SearchBarComponent.decorators = [
|
|
3033
|
+
{ type: Component, args: [{
|
|
3034
|
+
selector: 'desy-search-bar',
|
|
3035
|
+
template: "<!-- searchbar -->\r\n<div class=\"relative\" [ngClass]=\"{'flex flex-wrap items-end': hasButton()}\">\r\n <ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\r\n <desy-label *ngIf=\"!labelRef && labelData\"\r\n [text]=\"labelData.text\"\r\n [html]=\"labelData.html\"\r\n classes=\"sr-only\"\r\n [isPageHeading]=\"labelData.isPageHeading\"\r\n [for]=\"id\"\r\n [role]=\"labelData.role\"\r\n [ariaLabel]=\"labelData.ariaLabel\"\r\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\r\n [ariaHidden]=\"labelData.ariaHidden\"\r\n [ariaDisabled]=\"labelData.ariaDisabled\"\r\n [ariaControls]=\"labelData.ariaControls\"\r\n [ariaCurrent]=\"labelData.ariaCurrent\"\r\n [ariaLive]=\"labelData.ariaLive\"\r\n [ariaExpanded]=\"labelData.ariaExpanded\"\r\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\r\n [tabindex]=\"labelData.tabindex\"></desy-label>\r\n <desy-label *ngIf=\"!labelRef && !labelData && labelText\" [text]=\"labelText\" classes=\"sr-only\" [for]=\"id\"></desy-label>\r\n <input type=\"search\"\r\n [class]=\"['c-input block mt-sm pr-12 border-black rounded font-semibold placeholder-neutral-dark focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base', classes] | makeHtmlList\"\r\n [ngClass]=\"{'border-alert-base ring-2 ring-alert-base': hasErrorsMessage(),'w-full': !hasButton()}\"\r\n [value]=\"value\" (input)=\"onInput($event.target.value)\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.name]=\"id ? id : null\"\r\n [attr.aria-describedby]=\"[describedBy, getErrorId()] | makeHtmlList:null\"\r\n [attr.aria-errormessage]=\"hasErrorsMessage() ? getErrorId() : null\"\r\n [attr.aria-invalid]=\"hasErrorsMessage() ? true : null\"\r\n [attr.disabled]=\"disabled ? true : null\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngIf=\"hasButton(); else defaultButton\">\r\n <ng-content select=\"desy-button\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultButton>\r\n <button type=\"submit\" [attr.disabled]=\"disabled ? 'disabled' : null\" [attr.aria-disabled]=\"disabled ? 'true' : null\"\r\n (click)=\"onClick($event)\"\r\n [class]=\"['absolute top-0 right-0 m-sm p-0.5 text-primary-base hover:text-primary-dark focus:bg-warning-base focus:outline-none focus:shadow-outline-focus', buttonClasses] | makeHtmlList\">\r\n <span class=\"sr-only\">Buscar</span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"1.375em\" height=\"1.375em\" aria-hidden=\"true\"><path d=\"M23.498 23.487a1.713 1.713 0 000-2.421l-4.572-4.575a.43.43 0 01-.062-.539 10.283 10.283 0 10-2.911 2.911.43.43 0 01.539.055l4.574 4.574a1.712 1.712 0 002.433-.005zM3.451 10.289a6.85 6.85 0 116.85 6.85 6.85 6.85 0 01-6.85-6.85z\" fill=\"currentColor\"/></svg>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\r\n [id]=\"getErrorId()\"\r\n [text]=\"errorMessageData.text\"\r\n [html]=\"errorMessageData.html\"\r\n [classes]=\"errorMessageData.classes\"\r\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\r\n [role]=\"errorMessageData.role\"\r\n [ariaLabel]=\"errorMessageData.ariaLabel\"\r\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessageData.ariaHidden\"\r\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\r\n [ariaControls]=\"errorMessageData.ariaControls\"\r\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\r\n [ariaLive]=\"errorMessageData.ariaLive\"\r\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\r\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\r\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n</div>\r\n<!-- /searchbar -->\r\n",
|
|
3036
|
+
providers: [
|
|
3037
|
+
{
|
|
3038
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3039
|
+
useExisting: forwardRef(() => SearchBarComponent),
|
|
3040
|
+
multi: true
|
|
3041
|
+
}
|
|
3042
|
+
]
|
|
3043
|
+
},] }
|
|
3044
|
+
];
|
|
3045
|
+
SearchBarComponent.propDecorators = {
|
|
3046
|
+
button: [{ type: ContentChildren, args: [ButtonComponent,] }],
|
|
3047
|
+
describedBy: [{ type: Input }],
|
|
3048
|
+
classes: [{ type: Input }],
|
|
3049
|
+
buttonClasses: [{ type: Input }],
|
|
3050
|
+
placeholder: [{ type: Input }],
|
|
3051
|
+
clickEvent: [{ type: Output }]
|
|
3052
|
+
};
|
|
3053
|
+
|
|
3054
|
+
class TreeSubComponent extends ContentBaseComponent {
|
|
3055
|
+
}
|
|
3056
|
+
TreeSubComponent.decorators = [
|
|
3057
|
+
{ type: Component, args: [{
|
|
3058
|
+
selector: 'desy-tree-sub',
|
|
3059
|
+
template: "<ng-template #contentTemplate>\r\n <ul [class]=\"['c-tree__itemgroup', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : 'group'\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-content></ng-content>\r\n </ul>\r\n</ng-template>\r\n"
|
|
3060
|
+
},] }
|
|
3061
|
+
];
|
|
3062
|
+
TreeSubComponent.propDecorators = {
|
|
3063
|
+
classes: [{ type: Input }]
|
|
3064
|
+
};
|
|
3065
|
+
|
|
3066
|
+
class ITreeItem {
|
|
3067
|
+
}
|
|
3068
|
+
|
|
3069
|
+
class SearchUtils {
|
|
3070
|
+
/**
|
|
3071
|
+
* Comprueba si una cadena de texto (target) contiene cualquier palabra de otro texto (text)
|
|
3072
|
+
* @param target - Texto en el que buscar
|
|
3073
|
+
* @param text - Texto a buscar
|
|
3074
|
+
* @param fullWord - Indica si las palabras del texto a buscar deben aparecer enteras
|
|
3075
|
+
*/
|
|
3076
|
+
static containsAnyWordFrom(target, text, fullWord) {
|
|
3077
|
+
let words = [];
|
|
3078
|
+
let includes = false;
|
|
3079
|
+
const simplifiedTarget = this.getSimplifiedString(target);
|
|
3080
|
+
if (text && text.split(' ').length > 1) {
|
|
3081
|
+
words = text.split(' ');
|
|
3082
|
+
}
|
|
3083
|
+
words.push(text);
|
|
3084
|
+
words.forEach(word => {
|
|
3085
|
+
if (simplifiedTarget && word) {
|
|
3086
|
+
if ((fullWord && simplifiedTarget === this.getSimplifiedString(word))
|
|
3087
|
+
|| (!fullWord && simplifiedTarget.includes(this.getSimplifiedString(word)))) {
|
|
3088
|
+
includes = true;
|
|
3089
|
+
}
|
|
3090
|
+
}
|
|
3091
|
+
});
|
|
3092
|
+
return includes;
|
|
3093
|
+
}
|
|
3094
|
+
/**
|
|
3095
|
+
* Convierte a mayúsculas, elimina espacios y reemplaza/elimina caracteres especiales para realizar comparaciones más tolerantes
|
|
3096
|
+
* @param str - cadena de entrada
|
|
3097
|
+
*/
|
|
3098
|
+
static getSimplifiedString(str) {
|
|
3099
|
+
let res = str;
|
|
3100
|
+
if (str) {
|
|
3101
|
+
res = str.toLocaleUpperCase().trim();
|
|
3102
|
+
res = res.replace('Á', 'A');
|
|
3103
|
+
res = res.replace('É', 'E');
|
|
3104
|
+
res = res.replace('Í', 'I');
|
|
3105
|
+
res = res.replace('Ó', 'O');
|
|
3106
|
+
res = res.replace('Ú', 'U');
|
|
3107
|
+
res = res.replace('À', 'A');
|
|
3108
|
+
res = res.replace('È', 'E');
|
|
3109
|
+
res = res.replace('Ì', 'I');
|
|
3110
|
+
res = res.replace('Ò', 'O');
|
|
3111
|
+
res = res.replace('Ù', 'U');
|
|
3112
|
+
res = res.replace('Ä', 'A');
|
|
3113
|
+
res = res.replace('Ë', 'E');
|
|
3114
|
+
res = res.replace('Ï', 'I');
|
|
3115
|
+
res = res.replace('Ö', 'O');
|
|
3116
|
+
res = res.replace('Ü', 'U');
|
|
3117
|
+
res = res.replace(',', '');
|
|
3118
|
+
res = res.replace('.', '');
|
|
3119
|
+
res = res.replace('\'', '');
|
|
3120
|
+
res = res.replace('"', '');
|
|
3121
|
+
}
|
|
3122
|
+
return res;
|
|
3123
|
+
}
|
|
3124
|
+
}
|
|
3125
|
+
|
|
3126
|
+
class TreeCheckboxComponent extends AccessibilityComponent {
|
|
3127
|
+
constructor(changeDetector) {
|
|
3128
|
+
super();
|
|
3129
|
+
this.changeDetector = changeDetector;
|
|
3130
|
+
this.checkedChange = new EventEmitter();
|
|
3131
|
+
this.indeterminateCheckedChange = new EventEmitter();
|
|
3132
|
+
this.hasError = false;
|
|
3133
|
+
this._hasInit = false;
|
|
3134
|
+
}
|
|
3135
|
+
ngOnInit() {
|
|
3136
|
+
this._hasInit = true;
|
|
3137
|
+
this.onDescribedByChange();
|
|
3138
|
+
}
|
|
3139
|
+
detectChanges() {
|
|
3140
|
+
this.changeDetector.detectChanges();
|
|
3141
|
+
}
|
|
3142
|
+
hasChanged() {
|
|
3143
|
+
if (this._hasInit) {
|
|
3144
|
+
const input = this.inputElement.nativeElement;
|
|
3145
|
+
// Se establece el cambio a visualizar en el input
|
|
3146
|
+
if (this.isIndeterminate) {
|
|
3147
|
+
if (input.readOnly) {
|
|
3148
|
+
input.checked = false;
|
|
3149
|
+
input.readOnly = false;
|
|
3150
|
+
}
|
|
3151
|
+
else if (!input.checked) {
|
|
3152
|
+
input.readOnly = true;
|
|
3153
|
+
input.indeterminate = true;
|
|
3154
|
+
}
|
|
3155
|
+
}
|
|
3156
|
+
this.setIndeterminateChecked(input.indeterminate);
|
|
3157
|
+
this.checkedChange.emit(input.checked);
|
|
3158
|
+
}
|
|
3159
|
+
}
|
|
3160
|
+
onIdChange() {
|
|
3161
|
+
this.overrideLabelParams();
|
|
3162
|
+
this.overrideHintParams();
|
|
3163
|
+
}
|
|
3164
|
+
setIndeterminateStatus() {
|
|
3165
|
+
var _a;
|
|
3166
|
+
const input = (_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.nativeElement;
|
|
3167
|
+
if (input) {
|
|
3168
|
+
if (this.indeterminateChecked) {
|
|
3169
|
+
input.readOnly = true;
|
|
3170
|
+
input.indeterminate = true;
|
|
3171
|
+
}
|
|
3172
|
+
else if (input.readOnly) {
|
|
3173
|
+
input.readOnly = false;
|
|
3174
|
+
input.indeterminate = false;
|
|
3175
|
+
}
|
|
3176
|
+
}
|
|
3177
|
+
}
|
|
3178
|
+
setIndeterminateChecked(indeterminateChecked) {
|
|
3179
|
+
this.indeterminateChecked = indeterminateChecked;
|
|
3180
|
+
this._lastIndeterminate = indeterminateChecked;
|
|
3181
|
+
this.indeterminateCheckedChange.emit(indeterminateChecked);
|
|
3182
|
+
this.changeDetector.detectChanges(); // Avisa al elemento input para que actualice su estado
|
|
3183
|
+
}
|
|
3184
|
+
focus() {
|
|
3185
|
+
this.inputElement.nativeElement.focus();
|
|
3186
|
+
}
|
|
3187
|
+
matchesText(value) {
|
|
3188
|
+
const checkboxText = this.contentWrapper.nativeElement.textContent;
|
|
3189
|
+
return SearchUtils.containsAnyWordFrom(checkboxText, value);
|
|
3190
|
+
}
|
|
3191
|
+
preventDefault(event) {
|
|
3192
|
+
event.preventDefault();
|
|
3193
|
+
}
|
|
3194
|
+
getHintId() {
|
|
3195
|
+
return this.hintComponent ? this.hintComponent.id : '';
|
|
3196
|
+
}
|
|
3197
|
+
overrideLabelParams() {
|
|
3198
|
+
if (this.labelComponent) {
|
|
3199
|
+
this.labelComponent.for = this.id + '-input';
|
|
3200
|
+
if (!this.labelComponent.classes) {
|
|
3201
|
+
this.labelComponent.classes = 'block relative -top-xs -left-8 pl-8 py-xs';
|
|
3202
|
+
}
|
|
3203
|
+
this.labelComponent.detectChanges();
|
|
3204
|
+
}
|
|
3205
|
+
}
|
|
3206
|
+
overrideHintParams() {
|
|
3207
|
+
if (this.hintComponent) {
|
|
3208
|
+
if (!this.hintComponent.id) {
|
|
3209
|
+
this.hintComponent.id = this.id + '-item-hint';
|
|
3210
|
+
}
|
|
3211
|
+
this.hintComponent.detectChanges();
|
|
3212
|
+
}
|
|
3213
|
+
this.onDescribedByChange();
|
|
3214
|
+
}
|
|
3215
|
+
getItemDescribedBy() {
|
|
3216
|
+
return (this.describedBy ? this.describedBy : '') + ' ' + this.getHintId();
|
|
3217
|
+
}
|
|
3218
|
+
onDescribedByChange() {
|
|
3219
|
+
if (this.ariaDescribedBy) {
|
|
3220
|
+
this.itemDescribedBy = this.ariaDescribedBy;
|
|
3221
|
+
}
|
|
3222
|
+
else {
|
|
3223
|
+
this.itemDescribedBy = this.getItemDescribedBy();
|
|
3224
|
+
}
|
|
3225
|
+
}
|
|
3226
|
+
}
|
|
3227
|
+
TreeCheckboxComponent.decorators = [
|
|
3228
|
+
{ type: Component, args: [{
|
|
3229
|
+
selector: 'desy-tree-checkbox',
|
|
3230
|
+
template: "<div [class]=\"classes\" [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers}\">\r\n <div class=\"relative flex items-start py-xs\">\r\n <div class=\"flex items-center mx-sm\">\r\n <input #input class=\"w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\r\n [id]=\"id + '-input'\"\r\n [name]=\"name\"\r\n [type]=\"type === 'checkbox' ? 'checkbox' : 'radio'\"\r\n [value]=\"value\"\r\n [checked]=\"checked\"\r\n (change)=\"hasChanged()\"\r\n [disabled]=\"disabled ? disabled : null\"\r\n [attr.aria-invalid]=\"hasError ? 'true' : null\"\r\n\r\n [attr.role]=\"role ? role : 'group'\"\r\n [attr.aria-describedby]=\"itemDescribedBy\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\"\r\n\r\n (keydown.home)=\"preventDefault($event)\"\r\n (keydown.end)=\"preventDefault($event)\"\r\n (keydown.arrowup)=\"preventDefault($event)\"\r\n (keydown.arrowdown)=\"preventDefault($event)\"\r\n (keydown.arrowright)=\"preventDefault($event)\"\r\n (keydown.arrowleft)=\"preventDefault($event)\">\r\n </div>\r\n <div #contentWrapper class=\"flex-1 pt-0.5 leading-5\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n"
|
|
3231
|
+
},] }
|
|
3232
|
+
];
|
|
3233
|
+
TreeCheckboxComponent.ctorParameters = () => [
|
|
3234
|
+
{ type: ChangeDetectorRef }
|
|
3235
|
+
];
|
|
3236
|
+
TreeCheckboxComponent.propDecorators = {
|
|
3237
|
+
inputElement: [{ type: ViewChild, args: ['input', { static: true },] }],
|
|
3238
|
+
contentWrapper: [{ type: ViewChild, args: ['contentWrapper', { static: true },] }],
|
|
3239
|
+
id: [{ type: Input }],
|
|
3240
|
+
name: [{ type: Input }],
|
|
3241
|
+
type: [{ type: Input }],
|
|
3242
|
+
classes: [{ type: Input }],
|
|
3243
|
+
value: [{ type: Input }],
|
|
3244
|
+
checked: [{ type: Input }],
|
|
3245
|
+
checkedChange: [{ type: Output }],
|
|
3246
|
+
isIndeterminate: [{ type: Input }],
|
|
3247
|
+
indeterminateChecked: [{ type: Input }],
|
|
3248
|
+
indeterminateCheckedChange: [{ type: Output }],
|
|
3249
|
+
disabled: [{ type: Input }],
|
|
3250
|
+
hasDividers: [{ type: Input }],
|
|
3251
|
+
describedBy: [{ type: Input }],
|
|
3252
|
+
hasError: [{ type: Input }],
|
|
3253
|
+
labelComponent: [{ type: Input }],
|
|
3254
|
+
hintComponent: [{ type: Input }]
|
|
3255
|
+
};
|
|
3256
|
+
__decorate([
|
|
3257
|
+
DesyOnInputChange('onIdChange')
|
|
3258
|
+
], TreeCheckboxComponent.prototype, "id", void 0);
|
|
3259
|
+
__decorate([
|
|
3260
|
+
DesyOnInputChange('setIndeterminateStatus')
|
|
3261
|
+
], TreeCheckboxComponent.prototype, "indeterminateChecked", void 0);
|
|
3262
|
+
__decorate([
|
|
3263
|
+
DesyOnInputChange('onDescribedByChange')
|
|
3264
|
+
], TreeCheckboxComponent.prototype, "describedBy", void 0);
|
|
3265
|
+
__decorate([
|
|
3266
|
+
DesyOnInputChange('overrideLabelParams')
|
|
3267
|
+
], TreeCheckboxComponent.prototype, "labelComponent", void 0);
|
|
3268
|
+
__decorate([
|
|
3269
|
+
DesyOnInputChange('overrideHintParams')
|
|
3270
|
+
], TreeCheckboxComponent.prototype, "hintComponent", void 0);
|
|
3271
|
+
|
|
3272
|
+
class TreeItemComponent extends AccessibilityComponent {
|
|
3273
|
+
constructor(changeDetector, element) {
|
|
3274
|
+
super();
|
|
3275
|
+
this.changeDetector = changeDetector;
|
|
3276
|
+
this.element = element;
|
|
3277
|
+
this.checkedChange = new EventEmitter();
|
|
3278
|
+
this.checkedChangeForTree = new EventEmitter();
|
|
3279
|
+
this.expandedChange = new EventEmitter();
|
|
3280
|
+
this.indeterminateCheckedChange = new EventEmitter();
|
|
3281
|
+
/*
|
|
3282
|
+
* Identificador del wrapper del componente. Se utiliza para recorrer el árbol en sentido inverso y que cada item
|
|
3283
|
+
* sepa cuál es su item/árbol padre.
|
|
3284
|
+
* Esto es necesario ya que, a la hora de construir un árbol dinámico con templates,
|
|
3285
|
+
* el decorador @ContentChildren no funciona correctamente y no los detecta.
|
|
3286
|
+
* Dejo el enlace de un problema similar: https://github.com/angular/angular/issues/21751
|
|
3287
|
+
*/
|
|
3288
|
+
this.treeItemKey = TreeItemComponent.generateStaticItemKey();
|
|
3289
|
+
this.allParentsExpanded = true; // True si el elemento es visible según los elementos expandidos
|
|
3290
|
+
this.inheritedMatchesSearch = true; // True si el elemento es visible según los criterios de búsqueda
|
|
3291
|
+
// Evento para emitir al componente arbol cuando se pretende abandonar el foco del item
|
|
3292
|
+
this.quitFocus = new EventEmitter();
|
|
3293
|
+
this.isFocus = false;
|
|
3294
|
+
this.isHover = false;
|
|
3295
|
+
}
|
|
3296
|
+
ngOnChanges(changes) {
|
|
3297
|
+
if (this.sub && this.sub.itemList) {
|
|
3298
|
+
this.sub.itemList.forEach(item => item.refreshAllParentsExpandedRecursive(this.allParentsExpanded && this.expanded));
|
|
3299
|
+
}
|
|
3300
|
+
for (const propName in changes) {
|
|
3301
|
+
if (changes.hasOwnProperty(propName)) {
|
|
3302
|
+
switch (propName) {
|
|
3303
|
+
case 'checked': {
|
|
3304
|
+
// Reasignamos el valor de checked cuando detectamos el cambio en la entrada
|
|
3305
|
+
setTimeout(() => {
|
|
3306
|
+
this.setChecked(this.checked, false, false);
|
|
3307
|
+
if (this.inheritedExpandedFirstLevel && this.checked && !this.expanded) {
|
|
3308
|
+
this.expandSub(true);
|
|
3309
|
+
}
|
|
3310
|
+
});
|
|
3311
|
+
break;
|
|
3312
|
+
}
|
|
3313
|
+
}
|
|
3314
|
+
}
|
|
3315
|
+
}
|
|
3316
|
+
}
|
|
3317
|
+
/*
|
|
3318
|
+
* Métodos expuestos que permiten configurar al ítem de forma externa
|
|
3319
|
+
*/
|
|
3320
|
+
focus() {
|
|
3321
|
+
var _a;
|
|
3322
|
+
(_a = this.checkbox) === null || _a === void 0 ? void 0 : _a.focus();
|
|
3323
|
+
this.handleItemFocus(true);
|
|
3324
|
+
}
|
|
3325
|
+
setCheckedAutomaticallyDependingOnChildren() {
|
|
3326
|
+
if (this.sub) {
|
|
3327
|
+
this.sub.itemList.forEach(item => item.setCheckedAutomaticallyDependingOnChildren());
|
|
3328
|
+
if (this.areAllChildrenChecked()) {
|
|
3329
|
+
if (this.indeterminateChecked) {
|
|
3330
|
+
this.setIndeterminateChecked(false);
|
|
3331
|
+
}
|
|
3332
|
+
if (!this.checked) {
|
|
3333
|
+
this.setChecked(true, true);
|
|
3334
|
+
}
|
|
3335
|
+
}
|
|
3336
|
+
else if (this.hasChildrenCheckedOrIndeterminate()) {
|
|
3337
|
+
if (!this.indeterminateChecked) {
|
|
3338
|
+
this.setIndeterminateChecked(true);
|
|
3339
|
+
}
|
|
3340
|
+
if (this.checked) {
|
|
3341
|
+
this.setChecked(false, true);
|
|
3342
|
+
}
|
|
3343
|
+
}
|
|
3344
|
+
else {
|
|
3345
|
+
if (this.indeterminateChecked) {
|
|
3346
|
+
this.setIndeterminateChecked(false);
|
|
3347
|
+
}
|
|
3348
|
+
if (this.checked) {
|
|
3349
|
+
this.setChecked(false, true);
|
|
3350
|
+
}
|
|
3351
|
+
}
|
|
3352
|
+
}
|
|
3353
|
+
}
|
|
3354
|
+
refreshAllParentsExpandedRecursive(value) {
|
|
3355
|
+
this.allParentsExpanded = value;
|
|
3356
|
+
if (this.sub) {
|
|
3357
|
+
this.sub.itemList.forEach(item => item.refreshAllParentsExpandedRecursive(value && this.expanded));
|
|
3358
|
+
}
|
|
3359
|
+
}
|
|
3360
|
+
detectChanges() {
|
|
3361
|
+
this.changeDetector.detectChanges();
|
|
3362
|
+
}
|
|
3363
|
+
expandSub(value) {
|
|
3364
|
+
this.expanded = value;
|
|
3365
|
+
if (this.sub) {
|
|
3366
|
+
this.sub.itemList.forEach(item => item.refreshAllParentsExpandedRecursive(this.allParentsExpanded && value));
|
|
3367
|
+
}
|
|
3368
|
+
this.expandedChange.emit(value);
|
|
3369
|
+
}
|
|
3370
|
+
/*
|
|
3371
|
+
* Gestion de eventos
|
|
3372
|
+
*/
|
|
3373
|
+
handleCheckboxChange(checked) {
|
|
3374
|
+
this.setChecked(checked, false);
|
|
3375
|
+
if (this.inheritedExpandedFirstLevel && checked && !this.expanded) {
|
|
3376
|
+
this.expandSub(true);
|
|
3377
|
+
}
|
|
3378
|
+
}
|
|
3379
|
+
handleIndeterminateCheckedChange(indeterminate) {
|
|
3380
|
+
this.indeterminateCheckedChange.emit(indeterminate);
|
|
3381
|
+
}
|
|
3382
|
+
handleItemFocus(value, condition = true) {
|
|
3383
|
+
if (condition) {
|
|
3384
|
+
this.isFocus = value;
|
|
3385
|
+
}
|
|
3386
|
+
}
|
|
3387
|
+
handleItemHover(value, condition = true) {
|
|
3388
|
+
if (condition) {
|
|
3389
|
+
this.isHover = value;
|
|
3390
|
+
}
|
|
3391
|
+
}
|
|
3392
|
+
handleArrowUp(event, condition = true) {
|
|
3393
|
+
if (condition) {
|
|
3394
|
+
event.preventDefault();
|
|
3395
|
+
this.quitFocus.emit({
|
|
3396
|
+
nextElement: 'previous',
|
|
3397
|
+
currentItem: this
|
|
3398
|
+
});
|
|
3399
|
+
}
|
|
3400
|
+
}
|
|
3401
|
+
handleHome(event, condition = true) {
|
|
3402
|
+
if (condition) {
|
|
3403
|
+
event.preventDefault();
|
|
3404
|
+
this.quitFocus.emit({
|
|
3405
|
+
nextElement: 'first',
|
|
3406
|
+
currentItem: this
|
|
3407
|
+
});
|
|
3408
|
+
}
|
|
3409
|
+
}
|
|
3410
|
+
handleEnd(event, condition = true) {
|
|
3411
|
+
if (condition) {
|
|
3412
|
+
event.preventDefault();
|
|
3413
|
+
this.quitFocus.emit({
|
|
3414
|
+
nextElement: 'last',
|
|
3415
|
+
currentItem: this
|
|
3416
|
+
});
|
|
3417
|
+
}
|
|
3418
|
+
}
|
|
3419
|
+
handleArrowDown(event, condition = true) {
|
|
3420
|
+
if (condition) {
|
|
3421
|
+
event.preventDefault();
|
|
3422
|
+
this.quitFocus.emit({
|
|
3423
|
+
nextElement: 'next',
|
|
3424
|
+
currentItem: this
|
|
3425
|
+
});
|
|
3426
|
+
}
|
|
3427
|
+
}
|
|
3428
|
+
handleArrowRight(event, condition = true) {
|
|
3429
|
+
var _a;
|
|
3430
|
+
if (condition && this.sub && ((_a = this.sub.itemList) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
3431
|
+
event.preventDefault();
|
|
3432
|
+
if (this.expanded) {
|
|
3433
|
+
this.quitFocus.emit({
|
|
3434
|
+
nextElement: 'firstChild',
|
|
3435
|
+
currentItem: this
|
|
3436
|
+
});
|
|
3437
|
+
}
|
|
3438
|
+
else {
|
|
3439
|
+
this.expandSub(true);
|
|
3440
|
+
}
|
|
3441
|
+
}
|
|
3442
|
+
}
|
|
3443
|
+
handleArrowLeft(event, condition = true) {
|
|
3444
|
+
if (condition) {
|
|
3445
|
+
event.preventDefault();
|
|
3446
|
+
if (this.expanded) {
|
|
3447
|
+
this.expandSub(false);
|
|
3448
|
+
}
|
|
3449
|
+
else if (this.subLevel > 0) {
|
|
3450
|
+
this.quitFocus.emit({
|
|
3451
|
+
nextElement: 'parent',
|
|
3452
|
+
currentItem: this
|
|
3453
|
+
});
|
|
3454
|
+
}
|
|
3455
|
+
}
|
|
3456
|
+
}
|
|
3457
|
+
/*
|
|
3458
|
+
* Setters and getters
|
|
3459
|
+
*/
|
|
3460
|
+
setChecked(checked, ignoreInTree, emitEvent = true) {
|
|
3461
|
+
if (!this.disabled) {
|
|
3462
|
+
this.checked = checked;
|
|
3463
|
+
}
|
|
3464
|
+
if (!this.inheritedDecoupleChildFromParent && this.sub && this.sub.itemList && !this.indeterminateChecked) {
|
|
3465
|
+
this.sub.itemList.forEach(item => {
|
|
3466
|
+
item.setIndeterminateChecked(false);
|
|
3467
|
+
item.setChecked(checked, true);
|
|
3468
|
+
});
|
|
3469
|
+
}
|
|
3470
|
+
if (emitEvent) {
|
|
3471
|
+
this.checkedChange.emit(checked);
|
|
3472
|
+
}
|
|
3473
|
+
if (!ignoreInTree) {
|
|
3474
|
+
this.checkedChangeForTree.emit(checked);
|
|
3475
|
+
}
|
|
3476
|
+
}
|
|
3477
|
+
setIndeterminateChecked(indeterminate) {
|
|
3478
|
+
if (!this.disabled) {
|
|
3479
|
+
this.indeterminateChecked = indeterminate;
|
|
3480
|
+
this.indeterminateCheckedChange.emit(indeterminate);
|
|
3481
|
+
}
|
|
3482
|
+
}
|
|
3483
|
+
setSubLevel(subLevel) {
|
|
3484
|
+
this.subLevel = subLevel;
|
|
3485
|
+
if (this.sub && this.sub.itemList) {
|
|
3486
|
+
this.sub.itemList.forEach(item => item.setSubLevel(subLevel + 1));
|
|
3487
|
+
}
|
|
3488
|
+
}
|
|
3489
|
+
setOrderRecursively(order) {
|
|
3490
|
+
this.orderInTree = order;
|
|
3491
|
+
let newOrder = order + 1;
|
|
3492
|
+
if (this.sub && this.sub.itemList) {
|
|
3493
|
+
this.sub.itemList.forEach(item => {
|
|
3494
|
+
newOrder = item.setOrderRecursively(newOrder);
|
|
3495
|
+
});
|
|
3496
|
+
}
|
|
3497
|
+
return newOrder;
|
|
3498
|
+
}
|
|
3499
|
+
setDefaultId(defaultId) {
|
|
3500
|
+
this.defaultId = defaultId;
|
|
3501
|
+
this.setDefaultIdRecursive();
|
|
3502
|
+
}
|
|
3503
|
+
setDefaultIdRecursive() {
|
|
3504
|
+
if (this.sub && this.sub.itemList) {
|
|
3505
|
+
this.sub.itemList.forEach((item, index) => {
|
|
3506
|
+
item.setDefaultId(`sub-${this.getId()}-${index}`);
|
|
3507
|
+
});
|
|
3508
|
+
}
|
|
3509
|
+
}
|
|
3510
|
+
getId() {
|
|
3511
|
+
return this.id ? this.id : this.defaultId;
|
|
3512
|
+
}
|
|
3513
|
+
isHidden() {
|
|
3514
|
+
return !this.inheritedMatchesSearch && (!this.sub || this.areAllChildrenHidden());
|
|
3515
|
+
}
|
|
3516
|
+
areAllChildrenHidden() {
|
|
3517
|
+
const children = this.sub.itemList;
|
|
3518
|
+
return children.findIndex(child => !child.isHidden()) < 0;
|
|
3519
|
+
}
|
|
3520
|
+
areAllChildrenChecked() {
|
|
3521
|
+
const children = this.sub.itemList;
|
|
3522
|
+
return children.findIndex(child => !child.checked) < 0;
|
|
3523
|
+
}
|
|
3524
|
+
hasChildrenCheckedOrIndeterminate() {
|
|
3525
|
+
const children = this.sub.itemList;
|
|
3526
|
+
return children.findIndex(child => child.checked || child.indeterminateChecked) >= 0;
|
|
3527
|
+
}
|
|
3528
|
+
matchesText(value) {
|
|
3529
|
+
var _a;
|
|
3530
|
+
let matches;
|
|
3531
|
+
if (this.allParentsExpanded && !this.isHidden()) {
|
|
3532
|
+
matches = (_a = this.checkbox) === null || _a === void 0 ? void 0 : _a.matchesText(value);
|
|
3533
|
+
}
|
|
3534
|
+
else {
|
|
3535
|
+
const itemText = this.hiddenWrapper.nativeElement.textContent;
|
|
3536
|
+
matches = SearchUtils.containsAnyWordFrom(itemText, value);
|
|
3537
|
+
}
|
|
3538
|
+
return matches;
|
|
3539
|
+
}
|
|
3540
|
+
getKey() {
|
|
3541
|
+
return this.treeItemKey;
|
|
3542
|
+
}
|
|
3543
|
+
getParentKey() {
|
|
3544
|
+
let parentKey;
|
|
3545
|
+
let parentElement = this.element.nativeElement.parentElement;
|
|
3546
|
+
while (parentElement && parentElement.tagName !== 'BODY' && parentElement.tagName !== 'DESY-TREE-ITEM' && parentElement.tagName !== 'DESY-TREE') {
|
|
3547
|
+
parentElement = parentElement.parentElement;
|
|
3548
|
+
}
|
|
3549
|
+
if (parentElement.tagName === 'BODY') {
|
|
3550
|
+
throw new Error('Parent for tree-item not found');
|
|
3551
|
+
}
|
|
3552
|
+
if (parentElement.tagName === 'DESY-TREE') {
|
|
3553
|
+
parentKey = 'root';
|
|
3554
|
+
}
|
|
3555
|
+
if (parentElement.tagName === 'DESY-TREE-ITEM') {
|
|
3556
|
+
parentKey = parentElement.getAttribute('desy-tree-item-key');
|
|
3557
|
+
}
|
|
3558
|
+
return parentKey;
|
|
3559
|
+
}
|
|
3560
|
+
/*
|
|
3561
|
+
* Métodos privados
|
|
3562
|
+
*/
|
|
3563
|
+
/**
|
|
3564
|
+
* Genera una clave única para el componente
|
|
3565
|
+
* @private
|
|
3566
|
+
*/
|
|
3567
|
+
static generateStaticItemKey() {
|
|
3568
|
+
const key = 'tree-item-key-' + TreeItemComponent._treeItemKeySuffix;
|
|
3569
|
+
TreeItemComponent._treeItemKeySuffix++;
|
|
3570
|
+
return key;
|
|
3571
|
+
}
|
|
3572
|
+
}
|
|
3573
|
+
TreeItemComponent._treeItemKeySuffix = 0; // Sufijo estático para generar siempre claves distintas
|
|
3574
|
+
TreeItemComponent.decorators = [
|
|
3575
|
+
{ type: Component, args: [{
|
|
3576
|
+
selector: 'desy-tree-item',
|
|
3577
|
+
template: "<li *ngIf=\"allParentsExpanded && !isHidden(); else hidden\"\r\n [id]=\"id\"\r\n [class]=\"'c-tree__item focus:outline-none'\"\r\n [ngClass]=\"{\r\n 'ml-4': subLevel === 0,\r\n 'ml-8': subLevel !== 0,\r\n 'c-tree__item--focus': isFocus && !sub,\r\n 'c-tree__item--hover': isHover && !sub,\r\n 'font-bold': active && subLevel === 0\r\n }\"\r\n (focusin)=\"handleItemFocus(true, !sub)\"\r\n (focusout)=\"handleItemFocus(false, !sub)\"\r\n (mouseover)=\"handleItemHover(true, !sub)\"\r\n (mouseout)=\"handleItemHover(false, !sub)\"\r\n (keydown.home)=\"handleHome($event, !sub)\"\r\n (keydown.end)=\"handleEnd($event, !sub)\"\r\n (keydown.arrowup)=\"handleArrowUp($event, !sub)\"\r\n (keydown.arrowdown)=\"handleArrowDown($event, !sub)\"\r\n (keydown.arrowright)=\"handleArrowRight($event, !sub)\"\r\n (keydown.arrowleft)=\"handleArrowLeft($event, !sub)\"\r\n role=\"treeitem\"\r\n [attr.aria-expanded]=\"sub ? (expanded ? 'true' : 'false') : null\"\r\n [attr.aria-current]=\"active && subLevel === 0 ? 'page' : null\"\r\n [attr.disabled]=\"disabled && subLevel === 0 ? 'disabled' : null\"\r\n [attr.aria-disabled]=\"disabled && subLevel === 0 ? 'true' : null\"\r\n [attr.tabIndex]=\"disabled && subLevel === 0 ? '-1' : null\">\r\n <div *ngIf=\"!sub && subLevel !== 0; else childrenTree\"\r\n [id]=\"id\"\r\n [class]=\"['block', classes] | makeHtmlList\"\r\n [ngClass]=\"{'font-bold': active}\"\r\n [attr.title]=\"title ? title : null\"\r\n [attr.disabled]=\"disabled ? 'disabled' : null\"\r\n\r\n [attr.role]=\"role ? role : 'tree'\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : (disabled ? 'true' : null)\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : (active ? 'page' : null)\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : (disabled ? '-1' : null)\">\r\n <div class=\"font-bold\" *ngIf=\"active; else checkbox\">\r\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\r\n </div>\r\n </div>\r\n</li>\r\n\r\n<ng-template #childrenTree>\r\n <div *ngIf=\"sub; else checkbox\" class=\"w-full h-full\"\r\n [ngClass]=\"{'c-tree__item--focus': isFocus && sub, 'c-tree__item--hover': isHover && sub}\"\r\n (focusin)=\"handleItemFocus(true)\"\r\n (focusout)=\"handleItemFocus(false)\"\r\n (mouseover)=\"handleItemHover(true)\"\r\n (mouseout)=\"handleItemHover(false)\"\r\n (keydown.home)=\"handleHome($event)\"\r\n (keydown.end)=\"handleEnd($event)\"\r\n (keydown.arrowup)=\"handleArrowUp($event)\"\r\n (keydown.arrowdown)=\"handleArrowDown($event)\"\r\n (keydown.arrowright)=\"handleArrowRight($event)\"\r\n (keydown.arrowLeft)=\"handleArrowLeft($event)\">\r\n <div [class]=\"['w-full flex items-center relative focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black text-left', classes] | makeHtmlList\"\r\n\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <span class=\"absolute top-3 -left-4 flex items-center w-4 h-2.5 text-primary-base font-bold\">\r\n <svg (click)=\"expandSub(false)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\" width=\"10\" height=\"10\" aria-hidden=\"true\" class=\"c-tree__minus\"><path fill=\"currentColor\" d=\"M9.286 5.714H.714a.714.714 0 010-1.428h8.572a.714.714 0 010 1.428z\"/></svg>\r\n <svg (click)=\"expandSub(true)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\" width=\"10\" height=\"10\" aria-hidden=\"true\" class=\"c-tree__plus\"><path fill=\"currentColor\" d=\"M9.286 4.286H5.893a.179.179 0 01-.179-.179V.714a.714.714 0 00-1.428 0v3.393a.179.179 0 01-.179.179H.714a.714.714 0 000 1.428h3.393a.179.179 0 01.179.179v3.393a.714.714 0 001.428 0V5.893a.179.179 0 01.179-.179h3.393a.714.714 0 000-1.428z\"/></svg>\r\n </span>\r\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-container *desyCustomInnerContent=\"{ component: sub }\"></ng-container>\r\n</ng-template>\r\n\r\n<!-- Se incorpora el contenido m\u00EDnimo para funcionar con el objetivo de mejorar el rendimiento -->\r\n<ng-template #hidden>\r\n <li class=\"hidden\">\r\n <div #hiddenWrapper>\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </div>\r\n <ng-container *desyCustomInnerContent=\"{ component: sub }\"></ng-container>\r\n </li>\r\n</ng-template>\r\n\r\n<ng-template #checkbox>\r\n <desy-tree-checkbox [name]=\"name ? name : parentName\"\r\n [id]=\"getId()\"\r\n [value]=\"value\"\r\n [classes]=\"classes\"\r\n [type]=\"type\"\r\n [(checked)]=\"checked\" (checkedChange)=\"handleCheckboxChange($event)\"\r\n [hasError]=\"inheritedHasError\"\r\n [disabled]=\"disabled\"\r\n [hasDividers]=\"hasDividers\"\r\n [describedBy]=\"[inheritedDescribedBy, hint?.id] | makeHtmlList\"\r\n [isIndeterminate]=\"isIndeterminate\"\r\n [(indeterminateChecked)]=\"indeterminateChecked\"\r\n (indeterminateCheckedChange)=\"handleIndeterminateCheckedChange($event)\"\r\n\r\n [labelComponent]=\"label\"\r\n [hintComponent]=\"hint\"\r\n\r\n [role]=\"role\"\r\n [ariaLabel]=\"ariaLabel\"\r\n [ariaDescribedBy]=\"ariaDescribedBy\"\r\n [ariaLabelledBy]=\"ariaLabelledBy\"\r\n [ariaHidden]=\"ariaHidden\"\r\n [ariaDisabled]=\"ariaDisabled\"\r\n [ariaControls]=\"ariaControls\"\r\n [ariaCurrent]=\"ariaCurrent\"\r\n [ariaLive]=\"ariaLive\"\r\n [ariaExpanded]=\"ariaExpanded\"\r\n [ariaErrorMessage]=\"ariaErrorMessage\"\r\n [ariaHasPopup]=\"ariaHasPopup\"\r\n [ariaModal]=\"ariaModal\"\r\n [tabindex]=\"tabindex\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </desy-tree-checkbox>\r\n</ng-template>\r\n\r\n<ng-template #content>\r\n <ng-content select=\"desy-label\"></ng-content>\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n</ng-template>\r\n",
|
|
3578
|
+
providers: [
|
|
3579
|
+
{
|
|
3580
|
+
provide: ITreeItem,
|
|
3581
|
+
useExisting: forwardRef(() => TreeItemComponent)
|
|
3582
|
+
}
|
|
3583
|
+
]
|
|
3584
|
+
},] }
|
|
3585
|
+
];
|
|
3586
|
+
TreeItemComponent.ctorParameters = () => [
|
|
3587
|
+
{ type: ChangeDetectorRef },
|
|
3588
|
+
{ type: ElementRef }
|
|
3589
|
+
];
|
|
3590
|
+
TreeItemComponent.propDecorators = {
|
|
3591
|
+
hiddenWrapper: [{ type: ViewChild, args: ['hiddenWrapper',] }],
|
|
3592
|
+
id: [{ type: Input }],
|
|
3593
|
+
name: [{ type: Input }],
|
|
3594
|
+
value: [{ type: Input }],
|
|
3595
|
+
classes: [{ type: Input }],
|
|
3596
|
+
active: [{ type: Input }],
|
|
3597
|
+
disabled: [{ type: Input }],
|
|
3598
|
+
title: [{ type: Input }],
|
|
3599
|
+
hasDividers: [{ type: Input }],
|
|
3600
|
+
isIndeterminate: [{ type: Input }],
|
|
3601
|
+
checked: [{ type: Input }],
|
|
3602
|
+
checkedChange: [{ type: Output }],
|
|
3603
|
+
expanded: [{ type: Input }],
|
|
3604
|
+
expandedChange: [{ type: Output }],
|
|
3605
|
+
indeterminateChecked: [{ type: Input }],
|
|
3606
|
+
indeterminateCheckedChange: [{ type: Output }],
|
|
3607
|
+
sub: [{ type: ContentChildren, args: [TreeSubComponent,] }],
|
|
3608
|
+
hint: [{ type: ContentChildren, args: [HintComponent,] }],
|
|
3609
|
+
label: [{ type: ContentChildren, args: [LabelComponent,] }],
|
|
3610
|
+
checkbox: [{ type: ViewChild, args: [TreeCheckboxComponent,] }],
|
|
3611
|
+
treeItemKey: [{ type: HostBinding, args: ['attr.desy-tree-item-key',] }]
|
|
3612
|
+
};
|
|
3613
|
+
__decorate([
|
|
3614
|
+
DesyOnInputChange('setDefaultIdRecursive')
|
|
3615
|
+
], TreeItemComponent.prototype, "id", void 0);
|
|
3616
|
+
__decorate([
|
|
3617
|
+
DesyContentChild({ onSetCallbackName: 'overrideSubValues' })
|
|
3618
|
+
], TreeItemComponent.prototype, "sub", void 0);
|
|
3619
|
+
__decorate([
|
|
3620
|
+
DesyContentChild()
|
|
3621
|
+
], TreeItemComponent.prototype, "hint", void 0);
|
|
3622
|
+
__decorate([
|
|
3623
|
+
DesyContentChild()
|
|
3624
|
+
], TreeItemComponent.prototype, "label", void 0);
|
|
3625
|
+
|
|
3626
|
+
class TreeComponent extends FormFieldComponent {
|
|
3627
|
+
constructor(changeDetector) {
|
|
3628
|
+
super();
|
|
3629
|
+
this.changeDetector = changeDetector;
|
|
3630
|
+
this.expandedFirstLevel = true;
|
|
3631
|
+
this.decoupleChildFromParent = false;
|
|
3632
|
+
this.disableDefaultSearch = false;
|
|
3633
|
+
this.searchMatchValuesChange = new EventEmitter();
|
|
3634
|
+
this.rootItems = [];
|
|
3635
|
+
this._itemListCheckedSubscriptions = [];
|
|
3636
|
+
this._itemListQuitFocusSubscriptions = [];
|
|
3637
|
+
this._alreadyConfiguringItems = false;
|
|
3638
|
+
}
|
|
3639
|
+
ngOnDestroy() {
|
|
3640
|
+
var _a, _b;
|
|
3641
|
+
this.clearSubscriptions(this._itemListCheckedSubscriptions);
|
|
3642
|
+
this.clearSubscriptions(this._itemListQuitFocusSubscriptions);
|
|
3643
|
+
(_a = this._itemListSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
3644
|
+
(_b = this._allItemListSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
|
|
3645
|
+
}
|
|
3646
|
+
ngOnChanges(changes) {
|
|
3647
|
+
this.configureAllItems();
|
|
3648
|
+
}
|
|
3649
|
+
/*
|
|
3650
|
+
* Eventos
|
|
3651
|
+
*/
|
|
3652
|
+
/**
|
|
3653
|
+
* Actualiza el valor del componente al checkquearse un ítem
|
|
3654
|
+
* @param originItem ítem modificado
|
|
3655
|
+
*/
|
|
3656
|
+
updateValueFromItems(originItem) {
|
|
3657
|
+
// Si es radio, se desactivan el resto de items cuando se activa otro item
|
|
3658
|
+
if (this.type !== 'checkbox') {
|
|
3659
|
+
const items = this.getAllItemsInOrder();
|
|
3660
|
+
items.forEach(item => {
|
|
3661
|
+
if (item !== originItem && item.checked) {
|
|
3662
|
+
item.setChecked(false, true);
|
|
3663
|
+
}
|
|
3664
|
+
});
|
|
3665
|
+
}
|
|
3666
|
+
else if (!this.decoupleChildFromParent) {
|
|
3667
|
+
this.rootItems.forEach(item => item.setCheckedAutomaticallyDependingOnChildren());
|
|
3668
|
+
}
|
|
3669
|
+
// Si es checkbox se modifica el valor y se emite
|
|
3670
|
+
if (this.type === 'checkbox') {
|
|
3671
|
+
this.value = [];
|
|
3672
|
+
const items = this.getAllItemsInOrder();
|
|
3673
|
+
items.forEach(item => {
|
|
3674
|
+
if (item.checked) {
|
|
3675
|
+
this.value.push(item.value);
|
|
3676
|
+
}
|
|
3677
|
+
});
|
|
3678
|
+
this.onChange(this.value);
|
|
3679
|
+
}
|
|
3680
|
+
}
|
|
3681
|
+
/**
|
|
3682
|
+
* Gestiona cuando el foco abandona un ítem desde un evento de teclado controlado
|
|
3683
|
+
* @param options
|
|
3684
|
+
*/
|
|
3685
|
+
handleItemQuitFocus(options) {
|
|
3686
|
+
if (options && options.nextElement) {
|
|
3687
|
+
const items = this.getAllItemsInOrder();
|
|
3688
|
+
const focusableItems = items.filter(item => !item.isHidden() && !item.disabled && item.allParentsExpanded);
|
|
3689
|
+
switch (options.nextElement) {
|
|
3690
|
+
case "first":
|
|
3691
|
+
focusableItems[0].focus();
|
|
3692
|
+
break;
|
|
3693
|
+
case "last":
|
|
3694
|
+
focusableItems[focusableItems.length - 1].focus();
|
|
3695
|
+
break;
|
|
3696
|
+
case "parent":
|
|
3697
|
+
const currentSubLevel = options.currentItem.subLevel;
|
|
3698
|
+
if (currentSubLevel > 0) {
|
|
3699
|
+
const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);
|
|
3700
|
+
const parent = focusableItems.slice(0, currentItemIndex).reverse().find(item => item.subLevel < currentSubLevel);
|
|
3701
|
+
if (parent) {
|
|
3702
|
+
parent.focus();
|
|
3703
|
+
}
|
|
3704
|
+
}
|
|
3705
|
+
break;
|
|
3706
|
+
case "firstChild":
|
|
3707
|
+
case "next":
|
|
3708
|
+
if (options.currentItem) {
|
|
3709
|
+
let currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);
|
|
3710
|
+
if (currentItemIndex < focusableItems.length - 1) {
|
|
3711
|
+
focusableItems[currentItemIndex + 1].focus();
|
|
3712
|
+
}
|
|
3713
|
+
}
|
|
3714
|
+
break;
|
|
3715
|
+
case "previous":
|
|
3716
|
+
if (options.currentItem) {
|
|
3717
|
+
const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);
|
|
3718
|
+
if (currentItemIndex > 0) {
|
|
3719
|
+
focusableItems[currentItemIndex - 1].focus();
|
|
3720
|
+
}
|
|
3721
|
+
}
|
|
3722
|
+
break;
|
|
3723
|
+
}
|
|
3724
|
+
}
|
|
3725
|
+
}
|
|
3726
|
+
/**
|
|
3727
|
+
* Realiza la búsqueda interna de los items en el componente
|
|
3728
|
+
* @param value texto de búsqueda
|
|
3729
|
+
*/
|
|
3730
|
+
onSearch(value) {
|
|
3731
|
+
if (!this.disableDefaultSearch) {
|
|
3732
|
+
if (value && value.length > 0) {
|
|
3733
|
+
this.searchMatchValues = this.allItems.filter(item => item.matchesText(value)).map(item => item.value);
|
|
3734
|
+
}
|
|
3735
|
+
else {
|
|
3736
|
+
this.searchMatchValues = null;
|
|
3737
|
+
}
|
|
3738
|
+
this.searchMatchValuesChange.emit(this.searchMatchValues);
|
|
3739
|
+
}
|
|
3740
|
+
}
|
|
3741
|
+
/*
|
|
3742
|
+
* Eventos al cambiar propiedades
|
|
3743
|
+
*/
|
|
3744
|
+
/**
|
|
3745
|
+
* Configura los items del árbol
|
|
3746
|
+
*/
|
|
3747
|
+
configureAllItems() {
|
|
3748
|
+
if (!this._alreadyConfiguringItems) {
|
|
3749
|
+
this._alreadyConfiguringItems = true;
|
|
3750
|
+
// Lo realizamos desde un setTimeout para que todos los inputs, values y demás vivan en paz y armonía
|
|
3751
|
+
setTimeout(() => {
|
|
3752
|
+
var _a;
|
|
3753
|
+
if (((_a = this.allItems) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
3754
|
+
this.clearSubscriptions(this._itemListCheckedSubscriptions);
|
|
3755
|
+
this.clearSubscriptions(this._itemListQuitFocusSubscriptions);
|
|
3756
|
+
this.allItems.forEach(item => {
|
|
3757
|
+
item.parentName = this.name;
|
|
3758
|
+
item.type = this.type;
|
|
3759
|
+
item.inheritedDescribedBy = this.getDescribedByForItems();
|
|
3760
|
+
item.inheritedExpandedFirstLevel = this.expandedFirstLevel;
|
|
3761
|
+
item.inheritedDecoupleChildFromParent = this.decoupleChildFromParent;
|
|
3762
|
+
if (this.value && this.value.length > 0) {
|
|
3763
|
+
item.setChecked(!!this.value.find(v => v === item.value), true);
|
|
3764
|
+
}
|
|
3765
|
+
item.detectChanges();
|
|
3766
|
+
const checkedSubscription = item.checkedChangeForTree.subscribe(() => this.updateValueFromItems(item));
|
|
3767
|
+
this._itemListCheckedSubscriptions.push(checkedSubscription);
|
|
3768
|
+
const quitFocusSubscription = item.quitFocus.subscribe(options => this.handleItemQuitFocus(options));
|
|
3769
|
+
this._itemListQuitFocusSubscriptions.push(quitFocusSubscription);
|
|
3770
|
+
});
|
|
3771
|
+
this.setErrorInItems(this.hasErrorMessageComponent());
|
|
3772
|
+
this.buildTree();
|
|
3773
|
+
if (!this.value) {
|
|
3774
|
+
this.updateValueFromItems();
|
|
3775
|
+
}
|
|
3776
|
+
}
|
|
3777
|
+
if (this.allItems && !this._allItemListSubscription) {
|
|
3778
|
+
this._allItemListSubscription = this.allItems.changes.subscribe(() => this.configureAllItems());
|
|
3779
|
+
}
|
|
3780
|
+
this.changeDetector.detectChanges();
|
|
3781
|
+
this._alreadyConfiguringItems = false;
|
|
3782
|
+
});
|
|
3783
|
+
}
|
|
3784
|
+
}
|
|
3785
|
+
/**
|
|
3786
|
+
* Modifica los items visibles según el filtro de búsqueda
|
|
3787
|
+
*/
|
|
3788
|
+
onSearchMatchValuesChange() {
|
|
3789
|
+
if (this.allItems) {
|
|
3790
|
+
this.allItems.forEach(item => {
|
|
3791
|
+
item.inheritedMatchesSearch = true;
|
|
3792
|
+
});
|
|
3793
|
+
if (this.searchMatchValues !== null && this.searchMatchValues !== undefined) {
|
|
3794
|
+
this.allItems.forEach(item => {
|
|
3795
|
+
if (this.searchMatchValues.findIndex(value => item.value === value) < 0) {
|
|
3796
|
+
item.inheritedMatchesSearch = false;
|
|
3797
|
+
}
|
|
3798
|
+
});
|
|
3799
|
+
}
|
|
3800
|
+
}
|
|
3801
|
+
}
|
|
3802
|
+
/*
|
|
3803
|
+
* Getters and setters
|
|
3804
|
+
*/
|
|
3805
|
+
getIdPrefix() {
|
|
3806
|
+
return this.idPrefix ? this.idPrefix : this.name;
|
|
3807
|
+
}
|
|
3808
|
+
getDescribedBy() {
|
|
3809
|
+
let describedBy = '';
|
|
3810
|
+
if (this.describedBy) {
|
|
3811
|
+
describedBy = this.describedBy;
|
|
3812
|
+
}
|
|
3813
|
+
if (this.hasHintComponent() && this.hintComponent.id) {
|
|
3814
|
+
describedBy = describedBy + ' ' + this.hintComponent.id;
|
|
3815
|
+
}
|
|
3816
|
+
if (this.hasErrorMessageComponent() && this.errorMessageComponent.id) {
|
|
3817
|
+
describedBy = describedBy + ' ' + this.errorMessageComponent.id;
|
|
3818
|
+
}
|
|
3819
|
+
return describedBy;
|
|
3820
|
+
}
|
|
3821
|
+
/**
|
|
3822
|
+
* Devuelve el valor de describedBy que se transmitirá a los items
|
|
3823
|
+
*/
|
|
3824
|
+
getDescribedByForItems() {
|
|
3825
|
+
let describedBy;
|
|
3826
|
+
if (this.hasFieldsetComponent()) {
|
|
3827
|
+
describedBy = this.fieldsetComponent.describedBy;
|
|
3828
|
+
}
|
|
3829
|
+
else {
|
|
3830
|
+
describedBy = this.getDescribedBy();
|
|
3831
|
+
}
|
|
3832
|
+
return describedBy;
|
|
3833
|
+
}
|
|
3834
|
+
hasFieldsetComponent() {
|
|
3835
|
+
return !!this.fieldsetComponent;
|
|
3836
|
+
}
|
|
3837
|
+
/**
|
|
3838
|
+
* Overrides super.getHintId();
|
|
3839
|
+
*/
|
|
3840
|
+
getHintId() {
|
|
3841
|
+
var _a;
|
|
3842
|
+
return this.idPrefix ? this.idPrefix + '-hint' : (_a = this.hintComponent) === null || _a === void 0 ? void 0 : _a.id;
|
|
3843
|
+
}
|
|
3844
|
+
/**
|
|
3845
|
+
* Overrides super.getHintId();
|
|
3846
|
+
*/
|
|
3847
|
+
getErrorId() {
|
|
3848
|
+
var _a;
|
|
3849
|
+
return this.idPrefix ? this.idPrefix + '-error' : (_a = this.errorMessageComponent) === null || _a === void 0 ? void 0 : _a.id;
|
|
3850
|
+
}
|
|
3851
|
+
/*
|
|
3852
|
+
* Funciones para reemplazar el contenido del fieldset, label, hint o errormessage
|
|
3853
|
+
*/
|
|
3854
|
+
overrideFieldsetParams(fieldset) {
|
|
3855
|
+
fieldset.caller = this.innerHtml;
|
|
3856
|
+
fieldset.errorId = this.getErrorId();
|
|
3857
|
+
fieldset.describedBy = this.getDescribedBy();
|
|
3858
|
+
fieldset.detectChanges();
|
|
3859
|
+
}
|
|
3860
|
+
overrideSearchBarParams(searchbar) {
|
|
3861
|
+
const defaultOnChange = searchbar.onChange;
|
|
3862
|
+
const newOnChange = value => {
|
|
3863
|
+
this.onSearch(value);
|
|
3864
|
+
defaultOnChange(value);
|
|
3865
|
+
};
|
|
3866
|
+
searchbar.registerOnChange(newOnChange);
|
|
3867
|
+
}
|
|
3868
|
+
/**
|
|
3869
|
+
* Se llama desde FormField
|
|
3870
|
+
*/
|
|
3871
|
+
overrideHintParams(hint) {
|
|
3872
|
+
hint.id = this.getHintId();
|
|
3873
|
+
hint.detectChanges();
|
|
3874
|
+
}
|
|
3875
|
+
/**
|
|
3876
|
+
* Se llama desde FormField
|
|
3877
|
+
*/
|
|
3878
|
+
overrideErrorMessageParams(errorMessage) {
|
|
3879
|
+
errorMessage.id = this.getErrorId();
|
|
3880
|
+
this.setErrorInItems(this.hasErrorMessageComponent());
|
|
3881
|
+
errorMessage.detectChanges();
|
|
3882
|
+
}
|
|
3883
|
+
/**
|
|
3884
|
+
* Se llama desde FormField
|
|
3885
|
+
*/
|
|
3886
|
+
onDeleteErrorMessage(errorMessage) {
|
|
3887
|
+
this.setErrorInItems(this.hasErrorMessageComponent());
|
|
3888
|
+
}
|
|
3889
|
+
/*
|
|
3890
|
+
* Métodos privados
|
|
3891
|
+
*/
|
|
3892
|
+
/**
|
|
3893
|
+
* Configura la estructura del árbol
|
|
3894
|
+
* @private
|
|
3895
|
+
*/
|
|
3896
|
+
buildTree() {
|
|
3897
|
+
// Se crea un mapa para tener accesibles los items por key y se borran los listados existentes
|
|
3898
|
+
const itemMap = {};
|
|
3899
|
+
this.rootItems = [];
|
|
3900
|
+
this.allItems.forEach(item => {
|
|
3901
|
+
const key = item.getKey();
|
|
3902
|
+
itemMap[key] = item;
|
|
3903
|
+
if (item.sub) {
|
|
3904
|
+
item.sub.itemList = [];
|
|
3905
|
+
}
|
|
3906
|
+
});
|
|
3907
|
+
// Se añaden los items a los listados correspondientes
|
|
3908
|
+
this.allItems.forEach(item => {
|
|
3909
|
+
const parentKey = item.getParentKey();
|
|
3910
|
+
if (parentKey === 'root') {
|
|
3911
|
+
this.rootItems.push(item);
|
|
3912
|
+
}
|
|
3913
|
+
else if (parentKey) {
|
|
3914
|
+
const sub = itemMap[parentKey].sub;
|
|
3915
|
+
if (sub) {
|
|
3916
|
+
sub.itemList.push(item);
|
|
3917
|
+
}
|
|
3918
|
+
}
|
|
3919
|
+
});
|
|
3920
|
+
// Se configuran los items desde root
|
|
3921
|
+
let order = 0;
|
|
3922
|
+
this.rootItems.forEach((item, index) => {
|
|
3923
|
+
item.setSubLevel(0);
|
|
3924
|
+
item.setDefaultId(`${this.idPrefix}-${index}`);
|
|
3925
|
+
item.refreshAllParentsExpandedRecursive(true);
|
|
3926
|
+
item.setCheckedAutomaticallyDependingOnChildren();
|
|
3927
|
+
order = item.setOrderRecursively(order);
|
|
3928
|
+
});
|
|
3929
|
+
}
|
|
3930
|
+
/**
|
|
3931
|
+
* Si tiene un mensaje de error, se indica a los items
|
|
3932
|
+
* @param hasError
|
|
3933
|
+
* @private
|
|
3934
|
+
*/
|
|
3935
|
+
setErrorInItems(hasError) {
|
|
3936
|
+
var _a;
|
|
3937
|
+
if (((_a = this.allItems) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
3938
|
+
this.allItems.forEach(item => {
|
|
3939
|
+
item.inheritedHasError = hasError;
|
|
3940
|
+
item.detectChanges();
|
|
3941
|
+
});
|
|
3942
|
+
}
|
|
3943
|
+
}
|
|
3944
|
+
/**
|
|
3945
|
+
* Limpia un listado de subscripciones
|
|
3946
|
+
* @param subscriptionList
|
|
3947
|
+
* @private
|
|
3948
|
+
*/
|
|
3949
|
+
clearSubscriptions(subscriptionList) {
|
|
3950
|
+
if (subscriptionList.length > 0) {
|
|
3951
|
+
subscriptionList.forEach(s => s.unsubscribe());
|
|
3952
|
+
subscriptionList.splice(0, subscriptionList.length);
|
|
2988
3953
|
}
|
|
2989
3954
|
}
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
3955
|
+
/**
|
|
3956
|
+
* Devuelve los items del árbol ordenados
|
|
3957
|
+
* @private
|
|
3958
|
+
*/
|
|
3959
|
+
getAllItemsInOrder() {
|
|
3960
|
+
let list = [];
|
|
3961
|
+
if (this.allItems) {
|
|
3962
|
+
list = this.allItems.toArray().sort((a, b) => a.orderInTree > b.orderInTree ? 1 : -1);
|
|
2993
3963
|
}
|
|
2994
|
-
|
|
2995
|
-
hasButton() {
|
|
2996
|
-
return this.button && this.button.length > 0;
|
|
3964
|
+
return list;
|
|
2997
3965
|
}
|
|
2998
3966
|
}
|
|
2999
|
-
|
|
3967
|
+
TreeComponent.decorators = [
|
|
3000
3968
|
{ type: Component, args: [{
|
|
3001
|
-
selector: 'desy-
|
|
3002
|
-
template: "
|
|
3969
|
+
selector: 'desy-tree',
|
|
3970
|
+
template: "\r\n<ng-template #innerHtml>\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n <ng-content select=\"desy-search-bar\"></ng-content>\r\n <ul [class]=\"['c-tree', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : 'tree'\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-content></ng-content>\r\n </ul>\r\n</ng-template>\r\n\r\n<!-- tree -->\r\n<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\r\n <ng-container *ngIf=\"hasFieldsetComponent(); else innerHtml\">\r\n <ng-content select=\"desy-fieldset\"></ng-content>\r\n </ng-container>\r\n</div>\r\n",
|
|
3003
3971
|
providers: [
|
|
3004
3972
|
{
|
|
3005
3973
|
provide: NG_VALUE_ACCESSOR,
|
|
3006
|
-
useExisting: forwardRef(() =>
|
|
3974
|
+
useExisting: forwardRef(() => TreeComponent),
|
|
3007
3975
|
multi: true
|
|
3008
3976
|
}
|
|
3009
3977
|
]
|
|
3010
3978
|
},] }
|
|
3011
3979
|
];
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3980
|
+
TreeComponent.ctorParameters = () => [
|
|
3981
|
+
{ type: ChangeDetectorRef }
|
|
3982
|
+
];
|
|
3983
|
+
TreeComponent.propDecorators = {
|
|
3984
|
+
idPrefix: [{ type: Input }],
|
|
3015
3985
|
classes: [{ type: Input }],
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
}
|
|
3986
|
+
formGroupClasses: [{ type: Input }],
|
|
3987
|
+
name: [{ type: Input }],
|
|
3988
|
+
type: [{ type: Input }],
|
|
3989
|
+
describedBy: [{ type: Input }],
|
|
3990
|
+
expandedFirstLevel: [{ type: Input }],
|
|
3991
|
+
decoupleChildFromParent: [{ type: Input }],
|
|
3992
|
+
disableDefaultSearch: [{ type: Input }],
|
|
3993
|
+
searchMatchValues: [{ type: Input }],
|
|
3994
|
+
searchMatchValuesChange: [{ type: Output }],
|
|
3995
|
+
allItems: [{ type: ContentChildren, args: [TreeItemComponent, { descendants: true },] }],
|
|
3996
|
+
fieldsetComponent: [{ type: ContentChildren, args: [FieldsetComponent,] }],
|
|
3997
|
+
searchBarComponent: [{ type: ContentChildren, args: [SearchBarComponent,] }],
|
|
3998
|
+
innerHtml: [{ type: ViewChild, args: ['innerHtml', { static: true },] }]
|
|
3999
|
+
};
|
|
4000
|
+
__decorate([
|
|
4001
|
+
DesyOnInputChange('onSearchMatchValuesChange')
|
|
4002
|
+
], TreeComponent.prototype, "searchMatchValues", void 0);
|
|
4003
|
+
__decorate([
|
|
4004
|
+
DesyOnInputChange('configureAllItems')
|
|
4005
|
+
], TreeComponent.prototype, "allItems", void 0);
|
|
4006
|
+
__decorate([
|
|
4007
|
+
DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams' })
|
|
4008
|
+
], TreeComponent.prototype, "fieldsetComponent", void 0);
|
|
4009
|
+
__decorate([
|
|
4010
|
+
DesyContentChild({ onSetCallbackName: 'overrideSearchBarParams' })
|
|
4011
|
+
], TreeComponent.prototype, "searchBarComponent", void 0);
|
|
3020
4012
|
|
|
3021
4013
|
class ConditionDirective {
|
|
3022
4014
|
constructor(templateRef) {
|
|
@@ -3052,6 +4044,30 @@ ConditionDirective.propDecorators = {
|
|
|
3052
4044
|
items: [{ type: Input }]
|
|
3053
4045
|
};
|
|
3054
4046
|
|
|
4047
|
+
class TreeItemsGeneratorComponent {
|
|
4048
|
+
constructor(viewContainerRef) {
|
|
4049
|
+
this.viewContainerRef = viewContainerRef;
|
|
4050
|
+
}
|
|
4051
|
+
ngOnInit() {
|
|
4052
|
+
this.viewContainerRef.createEmbeddedView(this.content);
|
|
4053
|
+
}
|
|
4054
|
+
}
|
|
4055
|
+
TreeItemsGeneratorComponent.decorators = [
|
|
4056
|
+
{ type: Component, args: [{
|
|
4057
|
+
selector: 'desy-tree-items-generator',
|
|
4058
|
+
template: "<ng-template #content>\r\n <ng-container *ngIf=\"items && itemTemplate\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n",
|
|
4059
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
4060
|
+
},] }
|
|
4061
|
+
];
|
|
4062
|
+
TreeItemsGeneratorComponent.ctorParameters = () => [
|
|
4063
|
+
{ type: ViewContainerRef }
|
|
4064
|
+
];
|
|
4065
|
+
TreeItemsGeneratorComponent.propDecorators = {
|
|
4066
|
+
content: [{ type: ViewChild, args: ['content', { static: true },] }],
|
|
4067
|
+
items: [{ type: Input }],
|
|
4068
|
+
itemTemplate: [{ type: Input }]
|
|
4069
|
+
};
|
|
4070
|
+
|
|
3055
4071
|
class ModalButtonPrimaryComponent extends ContentBaseComponent {
|
|
3056
4072
|
constructor() {
|
|
3057
4073
|
super(...arguments);
|
|
@@ -3181,7 +4197,7 @@ class ModalComponent extends AccessibilityComponent {
|
|
|
3181
4197
|
ModalComponent.decorators = [
|
|
3182
4198
|
{ type: Component, args: [{
|
|
3183
4199
|
selector: 'desy-modal',
|
|
3184
|
-
template: "<div [class]=\"[ 'relative max-w-lg mx-auto p-base lg:p-lg border border-neutral-base rounded bg-white', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <div *ngIf=\"iconComponent || icon\" class=\"flex justify-center p-base\"\r\n (desyContentEmpty)=\"handleIconContentEmpty(true)\"\r\n (desyContentNotEmpty)=\"handleIconContentEmpty(false)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\r\n <ng-container *ngIf=\"!hasIconContent\">\r\n <ng-container [ngSwitch]=\"getType()\">\r\n <svg *ngSwitchCase=\"'discard'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-alert-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M4.375 70a65.625 65.625 0 10131.25 0 65.625 65.625 0 10-131.25 0zM23.596 116.404l92.808-92.808\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'delete'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-alert-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M100.625 122.5h-61.25a8.75 8.75 0 01-8.75-8.75V35h78.75v78.75a8.75 8.75 0 01-8.75 8.75zM56.875 96.25v-35M83.125 96.25v-35M13.125 35h113.75M83.125 17.5h-26.25a8.75 8.75 0 00-8.75 8.75V35h43.75v-8.75a8.75 8.75 0 00-8.75-8.75z\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'edit'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M73.89 82.46l-21.652 3.098 3.091-21.66 55.685-55.685a13.125 13.125 0 0118.562 18.562z\" stroke-width=\"8.749995\"/><path d=\"M111.545 83.125v43.75a8.75 8.75 0 01-8.75 8.75h-87.5a8.75 8.75 0 01-8.75-8.75v-87.5a8.75 8.75 0 018.75-8.75h43.75\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'changes'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M107.112 40.833a48.125 48.125 0 00-85.237 30.608v13.142M35 104.463a48.125 48.125 0 0083.125-33.022v-8.75\" stroke-width=\"8.749995\"/><path d=\"M4.375 67.066l17.5 17.5 17.5-17.5M135.625 80.19l-17.5-17.5-17.5 17.5\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'publish'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M16.094 91.17a9.707 9.707 0 01-5.145-17.938L118.767 5.833a9.7 9.7 0 0114.676 10.034l-21 111.842a9.707 9.707 0 01-17.301 4.031L64.75 91.17z\" stroke-width=\"8.749995\"/><path d=\"M64.75 91.17H50.167v30.163a9.7 9.7 0 0015.166 8.015l18.539-12.635zM64.744 91.17l64.633-85.11\" stroke-width=\"8.749995\"/></g></svg>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h1 *ngSwitchCase=\"1\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h1>\r\n <h2 *ngSwitchCase=\"2\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h2>\r\n <h3 *ngSwitchCase=\"3\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h3>\r\n <h4 *ngSwitchCase=\"4\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h4>\r\n <h5 *ngSwitchCase=\"5\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h5>\r\n </ng-container>\r\n\r\n <div *ngIf=\"descriptionIsHtml\" [class]=\"getDescriptionClasses()\"\r\n (desyContentChange)=\"checkDescriptionContent($event)\" [observeProperties]=\"{ attributes: false, childList: true, characterData: true, subtree: true }\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: descriptionComponent,\r\n html: description ? description.html : null,\r\n text: description ? description.text : null\r\n }\"></ng-container>\r\n </div>\r\n <p *ngIf=\"!descriptionIsHtml\" [class]=\"getDescriptionClasses()\"\r\n (desyContentChange)=\"checkDescriptionContent($event)\" [observeProperties]=\"{ attributes: false, childList: true, characterData: true, subtree: true }\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: descriptionComponent,\r\n html: description ? description.html : null,\r\n text: description ? description.text : null\r\n }\"></ng-container>\r\n </p>\r\n\r\n <div *ngIf=\"contentComponent || caller\" class=\"p-base\">\r\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\r\n </div>\r\n\r\n <div class=\"flex flex-wrap gap-sm w-full\" [ngClass]=\"(itemsPrimary || (primaryButtonComponents && primaryButtonComponents.length > 0)) && (itemsSecondary || (secondaryButtonComponents && secondaryButtonComponents.length > 0)) ? 'justify-between' : 'justify-center'\">\r\n <ng-template #buttons let-items=\"items\">\r\n <ng-container *ngIf=\"items\">\r\n <div class=\"mt-sm\" *ngIf=\"items.length === 1\">\r\n <desy-button (clickEvent)=\"clickButtonEmit(items[0], $event)\" [classes]=\"items[0].classes\">\r\n <ng-container *desyCustomInnerContent=\"{ component: items[0], text: items[0].text }\"></ng-container>\r\n </desy-button>\r\n </div>\r\n\r\n <!-- FIXME De momento se mantiene el nbsp por no tener clases diferentes a desy-frontend.\r\n Eliminar al adaptar a una versi\u00F3n de desy-frontend que lo contemple -->\r\n <ul class=\"flex flex-wrap gap-sm\" *ngIf=\"items.length > 1\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <li>\r\n <desy-button (clickEvent)=\"clickButtonEmit(item, $event)\" [classes]=\"item.classes\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\r\n </desy-button>\r\n </li> \r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"buttons; context: { items: getPrimaryItems() }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"buttons; context: { items: getSecondaryItems() }\"></ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"isDismissible\">\r\n <div class=\"absolute top-0 right-0 p-sm lg:p-base\">\r\n <button (click)=\"closeDialog()\" class=\"p-sm focus:bg-warning-base focus:border-warning-base focus:shadow-outline-black focus:text-black focus:outline-none\" aria-label=\"X: Cerrar la ventana emergente\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4\" aria-hidden=\"true\" role=\"presentation\"><path d=\"M85.91 71.77a2.5 2.5 0 010-3.54l46.16-46.16a10 10 0 10-14.14-14.14L71.77 54.09a2.5 2.5 0 01-3.54 0L22.07 7.93A10 10 0 007.93 22.07l46.16 46.16a2.5 2.5 0 010 3.54L7.93 117.93a10 10 0 0014.14 14.14l46.16-46.16a2.5 2.5 0 013.54 0l46.16 46.16a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\r\n </button>\r\n </div>\r\n </ng-container>\r\n</div>\r\n"
|
|
4200
|
+
template: "<div [class]=\"[ 'relative max-w-lg mx-auto p-base lg:p-lg border border-neutral-base rounded bg-white', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <div *ngIf=\"iconComponent || icon\" class=\"flex justify-center p-base\"\r\n (desyContentEmpty)=\"handleIconContentEmpty(true)\"\r\n (desyContentNotEmpty)=\"handleIconContentEmpty(false)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\r\n <ng-container *ngIf=\"!hasIconContent\">\r\n <ng-container [ngSwitch]=\"getType()\">\r\n <svg *ngSwitchCase=\"'discard'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-alert-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M4.375 70a65.625 65.625 0 10131.25 0 65.625 65.625 0 10-131.25 0zM23.596 116.404l92.808-92.808\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'delete'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-alert-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M100.625 122.5h-61.25a8.75 8.75 0 01-8.75-8.75V35h78.75v78.75a8.75 8.75 0 01-8.75 8.75zM56.875 96.25v-35M83.125 96.25v-35M13.125 35h113.75M83.125 17.5h-26.25a8.75 8.75 0 00-8.75 8.75V35h43.75v-8.75a8.75 8.75 0 00-8.75-8.75z\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'edit'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M73.89 82.46l-21.652 3.098 3.091-21.66 55.685-55.685a13.125 13.125 0 0118.562 18.562z\" stroke-width=\"8.749995\"/><path d=\"M111.545 83.125v43.75a8.75 8.75 0 01-8.75 8.75h-87.5a8.75 8.75 0 01-8.75-8.75v-87.5a8.75 8.75 0 018.75-8.75h43.75\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'changes'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M107.112 40.833a48.125 48.125 0 00-85.237 30.608v13.142M35 104.463a48.125 48.125 0 0083.125-33.022v-8.75\" stroke-width=\"8.749995\"/><path d=\"M4.375 67.066l17.5 17.5 17.5-17.5M135.625 80.19l-17.5-17.5-17.5 17.5\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'publish'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M16.094 91.17a9.707 9.707 0 01-5.145-17.938L118.767 5.833a9.7 9.7 0 0114.676 10.034l-21 111.842a9.707 9.707 0 01-17.301 4.031L64.75 91.17z\" stroke-width=\"8.749995\"/><path d=\"M64.75 91.17H50.167v30.163a9.7 9.7 0 0015.166 8.015l18.539-12.635zM64.744 91.17l64.633-85.11\" stroke-width=\"8.749995\"/></g></svg>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h1 *ngSwitchCase=\"1\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h1>\r\n <h2 *ngSwitchCase=\"2\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h2>\r\n <h3 *ngSwitchCase=\"3\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h3>\r\n <h4 *ngSwitchCase=\"4\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h4>\r\n <h5 *ngSwitchCase=\"5\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h5>\r\n </ng-container>\r\n\r\n <div *ngIf=\"descriptionIsHtml\" [class]=\"getDescriptionClasses()\"\r\n (desyContentChange)=\"checkDescriptionContent($event)\" [observeProperties]=\"{ attributes: false, childList: true, characterData: true, subtree: true }\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: descriptionComponent,\r\n html: description ? description.html : null,\r\n text: description ? description.text : null\r\n }\"></ng-container>\r\n </div>\r\n <p *ngIf=\"!descriptionIsHtml\" [class]=\"getDescriptionClasses()\"\r\n (desyContentChange)=\"checkDescriptionContent($event)\" [observeProperties]=\"{ attributes: false, childList: true, characterData: true, subtree: true }\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: descriptionComponent,\r\n html: description ? description.html : null,\r\n text: description ? description.text : null\r\n }\"></ng-container>\r\n </p>\r\n\r\n <div *ngIf=\"contentComponent || caller\" class=\"p-base\">\r\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\r\n </div>\r\n\r\n <div class=\"flex flex-wrap gap-sm w-full\" [ngClass]=\"(itemsPrimary || (primaryButtonComponents && primaryButtonComponents.length > 0)) && (itemsSecondary || (secondaryButtonComponents && secondaryButtonComponents.length > 0)) ? 'justify-between' : 'justify-center'\">\r\n <ng-template #buttons let-items=\"items\">\r\n <ng-container *ngIf=\"items\">\r\n <div class=\"mt-sm\" *ngIf=\"items.length === 1\">\r\n <desy-button (clickEvent)=\"clickButtonEmit(items[0], $event)\" [classes]=\"items[0].classes\">\r\n <ng-container *desyCustomInnerContent=\"{ component: items[0], text: items[0].text }\"></ng-container>\r\n </desy-button>\r\n </div>\r\n\r\n <!-- FIXME De momento se mantiene el nbsp por no tener clases diferentes a desy-html.\r\n Eliminar al adaptar a una versi\u00F3n de desy-html que lo contemple -->\r\n <ul class=\"flex flex-wrap gap-sm\" *ngIf=\"items.length > 1\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <li>\r\n <desy-button (clickEvent)=\"clickButtonEmit(item, $event)\" [classes]=\"item.classes\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\r\n </desy-button>\r\n </li> \r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"buttons; context: { items: getPrimaryItems() }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"buttons; context: { items: getSecondaryItems() }\"></ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"isDismissible\">\r\n <div class=\"absolute top-0 right-0 p-sm lg:p-base\">\r\n <button (click)=\"closeDialog()\" class=\"p-sm focus:bg-warning-base focus:border-warning-base focus:shadow-outline-black focus:text-black focus:outline-none\" aria-label=\"X: Cerrar la ventana emergente\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4\" aria-hidden=\"true\" role=\"presentation\"><path d=\"M85.91 71.77a2.5 2.5 0 010-3.54l46.16-46.16a10 10 0 10-14.14-14.14L71.77 54.09a2.5 2.5 0 01-3.54 0L22.07 7.93A10 10 0 007.93 22.07l46.16 46.16a2.5 2.5 0 010 3.54L7.93 117.93a10 10 0 0014.14 14.14l46.16-46.16a2.5 2.5 0 013.54 0l46.16 46.16a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\r\n </button>\r\n </div>\r\n </ng-container>\r\n</div>\r\n"
|
|
3185
4201
|
},] }
|
|
3186
4202
|
];
|
|
3187
4203
|
ModalComponent.ctorParameters = () => [
|
|
@@ -3567,6 +4583,8 @@ class HeaderOffcanvasComponent {
|
|
|
3567
4583
|
if (this.isOpen()) {
|
|
3568
4584
|
this.dialogService.closeDialog(this.dialog);
|
|
3569
4585
|
this.dialog = null;
|
|
4586
|
+
const elementToFocus = document.getElementById('header-offcanvas-button');
|
|
4587
|
+
elementToFocus === null || elementToFocus === void 0 ? void 0 : elementToFocus.focus();
|
|
3570
4588
|
}
|
|
3571
4589
|
}
|
|
3572
4590
|
isOpen() {
|
|
@@ -3591,14 +4609,15 @@ class HeaderOffcanvasComponent {
|
|
|
3591
4609
|
}
|
|
3592
4610
|
HeaderOffcanvasComponent.dialogOptions = {
|
|
3593
4611
|
id: 'header-offcanvas-dialog',
|
|
3594
|
-
focusOnClose: 'header-offcanvas',
|
|
4612
|
+
focusOnClose: 'header-offcanvas-button',
|
|
3595
4613
|
ariaModal: 'true',
|
|
3596
|
-
ariaLabelledBy: 'header-offcanvas-button-text'
|
|
4614
|
+
ariaLabelledBy: 'header-offcanvas-button-text',
|
|
4615
|
+
role: 'dialog'
|
|
3597
4616
|
};
|
|
3598
4617
|
HeaderOffcanvasComponent.decorators = [
|
|
3599
4618
|
{ type: Component, args: [{
|
|
3600
4619
|
selector: 'desy-header-offcanvas',
|
|
3601
|
-
template: "\r\n<ng-template #offcanvasContent>\r\n <div class=\"origin-top-left left-0 fixed inset-0 h-screen\">\r\n <div class=\"h-full overflow-auto relative w-offcanvas h-screen ml-offcanvas-negative bg-white z-10\"\r\n [desyClickOutside]=\"isOpen()\" (clickOutside)=\"close()\">\r\n <div class=\"text-right p-sm\">\r\n <button (click)=\"close()\" id=\"header-offcanvas-button-close\" class=\"c-button c-button--sm c-button--transparent m-sm\"\r\n (desyContentEmpty)=\"handleEmptyContent('Header-offcanvas close button')\">\r\n <ng-container *desyCustomInnerContent=\"{ component: closeButton }\"></ng-container> <svg #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 14\" width=\"14\" height=\"14\" class=\"self-center ml-2\"><path fill=\"currentColor\" d=\"M8.591 7.177a.25.25 0 010-.354l4.616-4.616A1 1 0 1011.793.793L7.177 5.409a.25.25 0 01-.354 0L2.207.793A1 1 0 00.793 2.207l4.616 4.616a.25.25 0 010 .354L.793 11.793a1 1 0 001.414 1.414l4.616-4.616a.25.25 0 01.354 0l4.616 4.616a1 1 0 001.414-1.414z\"/></svg>\r\n </button>\r\n </div>\r\n <ng-container *desyCustomInnerContent=\"{ component: content }\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-container *desyCustomInnerContent=\"{ component: button }\"></ng-container>\r\n"
|
|
4620
|
+
template: "\r\n<ng-template #offcanvasContent>\r\n <div class=\"origin-top-left left-0 fixed inset-0 h-screen\">\r\n <div class=\"h-full overflow-auto relative w-offcanvas h-screen ml-offcanvas-negative bg-white z-10\"\r\n [desyClickOutside]=\"isOpen()\" (clickOutside)=\"close()\">\r\n <div class=\"text-right p-sm\">\r\n <button (click)=\"close()\" id=\"header-offcanvas-button-close\" class=\"c-button c-button--sm c-button--transparent m-sm\"\r\n (desyContentEmpty)=\"handleEmptyContent('Header-offcanvas close button')\">\r\n <ng-container *desyCustomInnerContent=\"{ component: closeButton }\"></ng-container> <svg #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 14\" width=\"14\" height=\"14\" class=\"self-center ml-2\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M8.591 7.177a.25.25 0 010-.354l4.616-4.616A1 1 0 1011.793.793L7.177 5.409a.25.25 0 01-.354 0L2.207.793A1 1 0 00.793 2.207l4.616 4.616a.25.25 0 010 .354L.793 11.793a1 1 0 001.414 1.414l4.616-4.616a.25.25 0 01.354 0l4.616 4.616a1 1 0 001.414-1.414z\"/></svg>\r\n </button>\r\n </div>\r\n <ng-container *desyCustomInnerContent=\"{ component: content }\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-container *desyCustomInnerContent=\"{ component: button }\"></ng-container>\r\n"
|
|
3602
4621
|
},] }
|
|
3603
4622
|
];
|
|
3604
4623
|
HeaderOffcanvasComponent.ctorParameters = () => [
|
|
@@ -3765,11 +4784,42 @@ class NavComponent extends AccessibilityComponent {
|
|
|
3765
4784
|
getIdPrefix() {
|
|
3766
4785
|
return this.idPrefix ? this.idPrefix : 'nav-item';
|
|
3767
4786
|
}
|
|
4787
|
+
movePrevious(event, currentIndex) {
|
|
4788
|
+
event.preventDefault();
|
|
4789
|
+
const items = this.getItemList();
|
|
4790
|
+
let nextIndex = currentIndex - 1;
|
|
4791
|
+
while (nextIndex >= 0 && !this.isFocusableItem(items[nextIndex])) {
|
|
4792
|
+
nextIndex--;
|
|
4793
|
+
}
|
|
4794
|
+
if (nextIndex < items.length) {
|
|
4795
|
+
const itemElem = document.getElementById(this.getItemId(items[nextIndex], nextIndex));
|
|
4796
|
+
if (itemElem) {
|
|
4797
|
+
itemElem.focus();
|
|
4798
|
+
}
|
|
4799
|
+
}
|
|
4800
|
+
}
|
|
4801
|
+
moveNext(event, currentIndex) {
|
|
4802
|
+
event.preventDefault();
|
|
4803
|
+
const items = this.getItemList();
|
|
4804
|
+
let nextIndex = currentIndex + 1;
|
|
4805
|
+
while (nextIndex < items.length && !this.isFocusableItem(items[nextIndex])) {
|
|
4806
|
+
nextIndex++;
|
|
4807
|
+
}
|
|
4808
|
+
if (nextIndex < items.length) {
|
|
4809
|
+
const itemElem = document.getElementById(this.getItemId(items[nextIndex], nextIndex));
|
|
4810
|
+
if (itemElem) {
|
|
4811
|
+
itemElem.focus();
|
|
4812
|
+
}
|
|
4813
|
+
}
|
|
4814
|
+
}
|
|
4815
|
+
isFocusableItem(item) {
|
|
4816
|
+
return !item.active && !item.disabled;
|
|
4817
|
+
}
|
|
3768
4818
|
}
|
|
3769
4819
|
NavComponent.decorators = [
|
|
3770
4820
|
{ type: Component, args: [{
|
|
3771
4821
|
selector: 'desy-nav',
|
|
3772
|
-
template: "<ng-template #innerHtml>\r\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\r\n <li>\r\n <span *ngIf=\"item.active\"\r\n [class]=\"['flex items-center px-base py-sm font-semibold', item.classes] | makeHtmlList\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"hasNav ? 'true' : 'page'\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex\"\r\n (click)=\"onClick($event, item)\">\r\n <strong>\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </strong>\r\n </span>\r\n <a *ngIf=\"!item.active && item.href\"\r\n [href]=\"item.href | externalHref\" [target]=\"item.target\"\r\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\r\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n (desyContentEmpty)=\"handleContentEmpty(i)\"\r\n (click)=\"onClick($event, item)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n <svg #desyContentEmptyIgnore *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\r\n </a>\r\n <a *ngIf=\"!item.active && !item.href\"\r\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\r\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\r\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n (click)=\"onClick($event, item)\"\r\n (desyContentEmpty)=\"handleContentEmpty(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n <svg #desyContentEmptyIgnore *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\r\n </a>\r\n </li>\r\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\r\n <div class=\"sr-only\">Separador</div>\r\n </li>\r\n </ng-container>\r\n</ng-template>\r\n\r\n\r\n<ul *ngIf=\"!hasNav; else wrapIntoNav\"\r\n [class]=\"['text-sm', classes] | makeHtmlList\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n</ul>\r\n<ng-template #wrapIntoNav>\r\n <nav [class]=\"['text-sm', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ul>\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ul>\r\n </nav>\r\n</ng-template>\r\n"
|
|
4822
|
+
template: "<ng-template #innerHtml>\r\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\r\n <li>\r\n <span *ngIf=\"item.active\"\r\n [class]=\"['flex items-center px-base py-sm font-semibold', item.classes] | makeHtmlList\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"hasNav ? 'true' : 'page'\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex\"\r\n (click)=\"onClick($event, item)\">\r\n <strong>\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </strong>\r\n </span>\r\n <a *ngIf=\"!item.active && item.href\"\r\n [href]=\"item.href | externalHref\" [target]=\"item.target\"\r\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\r\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n (desyContentEmpty)=\"handleContentEmpty(i)\"\r\n (keydown.arrowUp)=\"movePrevious($event, i)\"\r\n (keydown.arrowDown)=\"moveNext($event, i)\"\r\n (click)=\"onClick($event, item)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n <svg #desyContentEmptyIgnore *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\r\n </a>\r\n <a *ngIf=\"!item.active && !item.href\"\r\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\r\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\r\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n (keydown.arrowUp)=\"movePrevious($event, i)\"\r\n (keydown.arrowDown)=\"moveNext($event, i)\"\r\n (click)=\"onClick($event, item)\"\r\n (desyContentEmpty)=\"handleContentEmpty(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n <svg #desyContentEmptyIgnore *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\r\n </a>\r\n </li>\r\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\r\n <div class=\"sr-only\">Separador</div>\r\n </li>\r\n </ng-container>\r\n</ng-template>\r\n\r\n\r\n<ul *ngIf=\"!hasNav; else wrapIntoNav\"\r\n [class]=\"['text-sm', classes] | makeHtmlList\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n</ul>\r\n<ng-template #wrapIntoNav>\r\n <nav [class]=\"['text-sm', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ul>\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ul>\r\n </nav>\r\n</ng-template>\r\n"
|
|
3773
4823
|
},] }
|
|
3774
4824
|
];
|
|
3775
4825
|
NavComponent.propDecorators = {
|
|
@@ -3781,20 +4831,7 @@ NavComponent.propDecorators = {
|
|
|
3781
4831
|
itemComponentList: [{ type: ContentChildren, args: [NavItemComponent,] }]
|
|
3782
4832
|
};
|
|
3783
4833
|
|
|
3784
|
-
class HeaderSubnavComponent {
|
|
3785
|
-
constructor() {
|
|
3786
|
-
this.isOpen = false;
|
|
3787
|
-
this.clickOutsideEnabled = false;
|
|
3788
|
-
}
|
|
3789
|
-
toggleOpen() {
|
|
3790
|
-
this.isOpen = !this.isOpen;
|
|
3791
|
-
setTimeout(() => this.clickOutsideEnabled = this.isOpen);
|
|
3792
|
-
}
|
|
3793
|
-
onKeydownEscape() {
|
|
3794
|
-
this.isOpen = false;
|
|
3795
|
-
this.clickOutsideEnabled = false;
|
|
3796
|
-
document.getElementById('header-subnav-button').focus();
|
|
3797
|
-
}
|
|
4834
|
+
class HeaderSubnavComponent extends AccessibilityComponent {
|
|
3798
4835
|
hasSubnavItems() {
|
|
3799
4836
|
return this.nav && this.nav.getItemList().length > 0;
|
|
3800
4837
|
}
|
|
@@ -3812,50 +4849,21 @@ class HeaderSubnavComponent {
|
|
|
3812
4849
|
HeaderSubnavComponent.decorators = [
|
|
3813
4850
|
{ type: Component, args: [{
|
|
3814
4851
|
selector: 'desy-header-subnav',
|
|
3815
|
-
template: "
|
|
3816
|
-
animations: [
|
|
3817
|
-
trigger('toggleDropdown', [
|
|
3818
|
-
state('void', style({
|
|
3819
|
-
opacity: '0.0',
|
|
3820
|
-
transform: 'scale(0.95)'
|
|
3821
|
-
})),
|
|
3822
|
-
state('*', style({
|
|
3823
|
-
opacity: '1.0',
|
|
3824
|
-
transform: 'scale(1.0)'
|
|
3825
|
-
})),
|
|
3826
|
-
transition(':enter', [
|
|
3827
|
-
animate('100ms ease-out')
|
|
3828
|
-
]),
|
|
3829
|
-
transition(':leave', [
|
|
3830
|
-
animate('75ms ease-in')
|
|
3831
|
-
])
|
|
3832
|
-
])
|
|
3833
|
-
]
|
|
4852
|
+
template: "<ng-template #templateNav>\r\n <ng-content select=\"desy-nav\"></ng-content>\r\n</ng-template>\r\n\r\n<ng-template #templateContent>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n<div class=\"hidden lg:flex items-center\" *ngIf=\"hasSubnavItems(); else noItems\">\r\n <div class=\"ml-3 py-2 relative border-r border-l border-neutral-base\">\r\n <p class=\"sr-only\">Aplicaci\u00F3n actual: </p>\r\n <desy-dropdown [hiddenText]=\"hiddenText\"\r\n [classesContainer]=\"classesContainer\"\r\n [classesTooltip]=\"classesTooltip\"\r\n [classes]=\"classes ? classes : 'c-dropdown--header'\"\r\n [caller]=\"caller\"\r\n\r\n [role]=\"role\"\r\n [ariaLabel]=\"ariaLabel\"\r\n [ariaDescribedBy]=\"ariaDescribedBy\"\r\n [ariaLabelledBy]=\"ariaLabelledBy\"\r\n [ariaHidden]=\"ariaHidden\"\r\n [ariaDisabled]=\"ariaDisabled\"\r\n [ariaControls]=\"ariaControls\"\r\n [ariaCurrent]=\"ariaCurrent\"\r\n [ariaLive]=\"ariaLive\"\r\n [ariaExpanded]=\"ariaExpanded\"\r\n [ariaErrorMessage]=\"ariaErrorMessage\"\r\n [ariaHasPopup]=\"ariaHasPopup\"\r\n [tabindex]=\"tabindex\">\r\n <ng-container *ngTemplateOutlet=\"templateContent\"></ng-container>\r\n <ng-template #caller>\r\n <ng-container *ngTemplateOutlet=\"templateNav\"></ng-container>\r\n </ng-template>\r\n </desy-dropdown>\r\n </div>\r\n</div>\r\n<ng-template #noItems>\r\n <p class=\"hidden lg:inline-block align-middle ml-4 px-3 py-4 border-r border-l border-neutral-base text-sm text-white\"\r\n (desyContentEmpty)=\"handleEmptyContent('Header-subnav')\">\r\n <span #desyContentEmptyIgnore class=\"sr-only\">Aplicaci\u00F3n actual: </span>\r\n <ng-container *ngTemplateOutlet=\"templateContent\"></ng-container>\r\n </p>\r\n</ng-template>\r\n\r\n\r\n"
|
|
3834
4853
|
},] }
|
|
3835
4854
|
];
|
|
3836
4855
|
HeaderSubnavComponent.propDecorators = {
|
|
3837
|
-
|
|
4856
|
+
hiddenText: [{ type: Input }],
|
|
4857
|
+
classesContainer: [{ type: Input }],
|
|
4858
|
+
classesTooltip: [{ type: Input }],
|
|
4859
|
+
classes: [{ type: Input }],
|
|
3838
4860
|
nav: [{ type: ContentChildren, args: [NavComponent,] }]
|
|
3839
4861
|
};
|
|
3840
4862
|
__decorate([
|
|
3841
4863
|
DesyContentChild({ onSetCallbackName: 'overrideNavParams' })
|
|
3842
4864
|
], HeaderSubnavComponent.prototype, "nav", void 0);
|
|
3843
4865
|
|
|
3844
|
-
class HeaderDropdownComponent {
|
|
3845
|
-
constructor() {
|
|
3846
|
-
this.hostClass = 'hidden lg:block';
|
|
3847
|
-
this.isOpen = false;
|
|
3848
|
-
this.clickOutsideEnabled = false;
|
|
3849
|
-
}
|
|
3850
|
-
toggleOpen() {
|
|
3851
|
-
this.isOpen = !this.isOpen;
|
|
3852
|
-
setTimeout(() => this.clickOutsideEnabled = this.isOpen);
|
|
3853
|
-
}
|
|
3854
|
-
onKeydownEscape() {
|
|
3855
|
-
this.isOpen = false;
|
|
3856
|
-
this.clickOutsideEnabled = false;
|
|
3857
|
-
document.getElementById('header-dropdown-button').focus();
|
|
3858
|
-
}
|
|
4866
|
+
class HeaderDropdownComponent extends AccessibilityComponent {
|
|
3859
4867
|
overrideNavParams(nav) {
|
|
3860
4868
|
nav.hasNav = true;
|
|
3861
4869
|
nav.idPrefix = 'header-dropdown-nav-item';
|
|
@@ -3863,12 +4871,6 @@ class HeaderDropdownComponent {
|
|
|
3863
4871
|
nav.classes = 'w-max max-w-64';
|
|
3864
4872
|
// nav.id = 'id-dropdown-nav'; // No existe como param de navComponent
|
|
3865
4873
|
}
|
|
3866
|
-
/**
|
|
3867
|
-
* Estable las clases del elemento html del componente
|
|
3868
|
-
*/
|
|
3869
|
-
setHostClass() {
|
|
3870
|
-
this.hostClass = this.classes ? this.classes : 'hidden lg:block';
|
|
3871
|
-
}
|
|
3872
4874
|
handleEmptyContent(element) {
|
|
3873
4875
|
throw new Error(`${element} content is required`);
|
|
3874
4876
|
}
|
|
@@ -3876,38 +4878,23 @@ class HeaderDropdownComponent {
|
|
|
3876
4878
|
HeaderDropdownComponent.decorators = [
|
|
3877
4879
|
{ type: Component, args: [{
|
|
3878
4880
|
selector: 'desy-header-dropdown',
|
|
3879
|
-
template: "<div class=\"ml-4 flex items-center lg:ml-6\">\r\n <div class=\"ml-3 relative\">\r\n <
|
|
3880
|
-
animations: [
|
|
3881
|
-
trigger('toggleDropdown', [
|
|
3882
|
-
state('void', style({
|
|
3883
|
-
opacity: '0.0',
|
|
3884
|
-
transform: 'scale(0.95)'
|
|
3885
|
-
})),
|
|
3886
|
-
state('*', style({
|
|
3887
|
-
opacity: '1.0',
|
|
3888
|
-
transform: 'scale(1.0)'
|
|
3889
|
-
})),
|
|
3890
|
-
transition(':enter', [
|
|
3891
|
-
animate('100ms ease-out')
|
|
3892
|
-
]),
|
|
3893
|
-
transition(':leave', [
|
|
3894
|
-
animate('75ms ease-in')
|
|
3895
|
-
])
|
|
3896
|
-
])
|
|
3897
|
-
]
|
|
4881
|
+
template: "<div class=\"ml-4 flex items-center lg:ml-6\">\r\n <div class=\"ml-3 relative\">\r\n <desy-dropdown [hiddenText]=\"hiddenText\"\r\n [classesContainer]=\"classesContainer ? classesContainer : 'hidden lg:block'\"\r\n [classesTooltip]=\"classesTooltip\"\r\n [classes]=\"classes ? classes : 'c-dropdown--header'\"\r\n [caller]=\"caller\"\r\n\r\n [role]=\"role\"\r\n [ariaLabel]=\"ariaLabel\"\r\n [ariaDescribedBy]=\"ariaDescribedBy\"\r\n [ariaLabelledBy]=\"ariaLabelledBy\"\r\n [ariaHidden]=\"ariaHidden\"\r\n [ariaDisabled]=\"ariaDisabled\"\r\n [ariaControls]=\"ariaControls\"\r\n [ariaCurrent]=\"ariaCurrent\"\r\n [ariaLive]=\"ariaLive\"\r\n [ariaExpanded]=\"ariaExpanded\"\r\n [ariaErrorMessage]=\"ariaErrorMessage\"\r\n [ariaHasPopup]=\"ariaHasPopup\"\r\n [tabindex]=\"tabindex\">\r\n <ng-content></ng-content>\r\n </desy-dropdown>\r\n <ng-template #caller>\r\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: templateNav }\"></ng-container>\r\n </ng-template>\r\n </div>\r\n</div>\r\n\r\n<ng-template #templateNav>\r\n <ng-content select=\"desy-nav\"></ng-content>\r\n</ng-template>\r\n"
|
|
3898
4882
|
},] }
|
|
3899
4883
|
];
|
|
3900
4884
|
HeaderDropdownComponent.propDecorators = {
|
|
4885
|
+
hiddenText: [{ type: Input }],
|
|
4886
|
+
classesContainer: [{ type: Input }],
|
|
4887
|
+
classesTooltip: [{ type: Input }],
|
|
3901
4888
|
classes: [{ type: Input }],
|
|
3902
|
-
|
|
3903
|
-
|
|
4889
|
+
nav: [{ type: ContentChildren, args: [NavComponent,] }],
|
|
4890
|
+
contentComponent: [{ type: ContentChildren, args: [ContentComponent,] }]
|
|
3904
4891
|
};
|
|
3905
|
-
__decorate([
|
|
3906
|
-
DesyOnInputChange('setHostClass')
|
|
3907
|
-
], HeaderDropdownComponent.prototype, "classes", void 0);
|
|
3908
4892
|
__decorate([
|
|
3909
4893
|
DesyContentChild({ onSetCallbackName: 'overrideNavParams' })
|
|
3910
|
-
], HeaderDropdownComponent.prototype, "nav", void 0);
|
|
4894
|
+
], HeaderDropdownComponent.prototype, "nav", void 0);
|
|
4895
|
+
__decorate([
|
|
4896
|
+
DesyContentChild()
|
|
4897
|
+
], HeaderDropdownComponent.prototype, "contentComponent", void 0);
|
|
3911
4898
|
|
|
3912
4899
|
class SkipLinkComponent extends AccessibilityComponent {
|
|
3913
4900
|
constructor(changeDetectorRef) {
|
|
@@ -3962,7 +4949,7 @@ class HeaderComponent extends AccessibilityComponent {
|
|
|
3962
4949
|
HeaderComponent.decorators = [
|
|
3963
4950
|
{ type: Component, args: [{
|
|
3964
4951
|
selector: 'desy-header',
|
|
3965
|
-
template: "<header [ngClass]=\"classes\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <div [ngClass]=\"containerClasses\">\r\n <nav [attr.aria-labelledby]=\"skiplinkComponent ? skiplinkComponent.id : 'skip-link'\">\r\n <ng-content select=\"desy-skip-link\"></ng-content>\r\n <desy-skip-link *ngIf=\"!skiplinkComponent\" text=\"Saltar al contenido principal\" [id]=\"'skip-link'\"></desy-skip-link>\r\n </nav>\r\n <div class=\"flex h-1 bg-red-700\">\r\n <div class=\"flex-auto bg-yellow-300 h-full\"></div>\r\n <div class=\"flex-auto bg-red-500 h-full\"></div>\r\n <div class=\"flex-auto bg-red-800 h-full\"></div>\r\n </div>\r\n <div class=\"bg-black\">\r\n <div class=\"container mx-auto px-base\">\r\n <div class=\"flex items-center justify-between min-h-14\">\r\n <div class=\"flex flex-wrap items-center\">\r\n <div class=\"flex items-center flex-shrink-0\">\r\n <a *ngIf=\"homepageRouterLink || !homepageUrl\" [routerLink]=\"homepageRouterLink\" [fragment]=\"homepageFragment\" class=\"text-white focus:outline-none focus:shadow-outline-warning\" title=\"Ir a la p\u00E1gina de inicio\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 216.878 51.894\" width=\"144\" height=\"32\" [ngClass]=\"{'sm:block': expandedLogo}\" class=\"fill-current hidden\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/><path data-name=\"typo\" d=\"M59.352 45.091V32.36h2.074c4.307 0 6.668 2.266 6.668 6.382 0 4.212-2.265 6.349-6.7 6.349zm15.489-16.974v21.281h14.1v-4.307h-9.348v-4.85h9.253v-4.308h-9.253v-3.542h9.348v-4.275zm32.389 0l-7.757 21.282h5.041l2.3-6.477h6.509l2.265 6.477h5.138l-7.912-21.281zm2.807 4.4l-1.978 6.287h3.989zm63.051 6h-4.754v6.7a6.262 6.262 0 01-2.042.288c-3.638 0-6.317-2.84-6.317-6.7 0-4.147 2.84-6.923 7.051-6.923a11.142 11.142 0 016.062 1.851v-4.849a17.388 17.388 0 00-6.477-1.276c-6.891 0-11.677 4.626-11.677 11.262 0 6.54 4.689 10.976 11.677 10.976a19.329 19.329 0 006.477-1.117zm24.023.192c0-6.35-4.722-10.976-11.167-10.976a11.024 11.024 0 00.16 22.047c6.445.001 11.007-4.593 11.007-11.07zm-11.1-6.637c-3.573 0-5.966 2.713-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.681 5.934-6.7s-2.428-6.699-6.033-6.699zm12.94-3.956v21.281h4.85v-13.56l8.58 13.56h4.5V28.116h-4.849l.006 13.235-8.237-13.235zm-126.6-15h-4.754v6.7a6.266 6.266 0 01-2.042.287c-3.637 0-6.317-2.84-6.317-6.7 0-4.148 2.84-6.923 7.051-6.923a11.152 11.152 0 016.062 1.85V3.481a17.386 17.386 0 00-6.477-1.277c-6.891 0-11.677 4.626-11.677 11.263 0 6.54 4.69 10.974 11.677 10.974a19.342 19.342 0 006.477-1.116zm24 .191c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.159 22.046c6.437-.002 11-4.597 11-11.074zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.457 6.7 6.062 6.7c3.573 0 5.935-2.68 5.935-6.7s-2.437-6.702-6.042-6.702zm12.695-3.956v21.281h8.806c4.69 0 7.433-2.33 7.433-6.318 0-2.743-1.563-4.721-4.435-5.551a4.665 4.665 0 002.9-4.371c.032-3.382-2.265-5.041-6.859-5.041zm7.083 7.944c2.074 0 2.9-.575 2.9-2.01 0-1.372-.8-1.882-3.062-1.882h-2.074v3.892zm.638 9c2.36 0 3.381-.734 3.381-2.457 0-1.786-1.053-2.489-3.573-2.489h-2.679v4.946zm14.274-16.942h-4.768v21.281h4.754zm2.07 0v21.281h14.1v-4.307h-9.349v-4.85h9.253v-4.307h-9.253V6.993h9.349V2.718zm75.145 10.592c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.16 22.046c6.435-.004 10.997-4.599 10.997-11.076zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.68 5.934-6.7s-2.438-6.704-6.043-6.704zm-37.783 32.132l-2.01-6.287-1.978 6.287zM126.43 49.398v-8.743h.606c3.063 0 3.382.319 5.423 5.583a10.7 10.7 0 00.447 1.085l.415.989a9.523 9.523 0 00.51 1.085h6.911l2.3-6.477h6.509l2.265 6.477h5.137l-7.912-21.281h-5.583l-6.288 17.258a89.817 89.817 0 01-1.549-3.411c-.83-1.819-1.308-2.362-2.84-3a5.086 5.086 0 003.892-5.106c0-3.828-2.52-5.743-7.593-5.743h-7.53v21.281zm0-12.763h2.105c2.042 0 3.063-.734 3.063-2.265s-.926-2.2-3-2.2h-2.17zm16.613-12.643V15.25h.605c3.063 0 3.382.319 5.424 5.583a10.427 10.427 0 00.447 1.085l.415.989a9.465 9.465 0 00.51 1.085h9.578l.027-13.652 8.555 13.652h4.5V2.711h-4.849l.021 13.056-8.252-13.056h-4.851v19.812a44.3 44.3 0 01-2.942-5.962c-.829-1.818-1.307-2.36-2.839-3a5.085 5.085 0 003.892-5.1c0-3.829-2.521-5.743-7.594-5.743h-7.529v21.281zm0-12.762h2.106c2.041 0 3.062-.734 3.062-2.265s-.924-2.2-3-2.2h-2.169zM54.53 28.117v21.281h7.114c7.21 0 11.454-3.956 11.454-10.657 0-6.669-4.339-10.625-11.709-10.625z\" fill-rule=\"evenodd\"/></svg>\r\n <svg class=\"w-8 h-8 fill-current\" [ngClass]=\"{'sm:hidden': expandedLogo}\" viewBox=\"0 0 51.894 51.894\" width=\"32\" height=\"32\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/></svg>\r\n </a>\r\n <a *ngIf=\"!homepageRouterLink && homepageUrl\" [href]=\"homepageUrl | externalHref\" class=\"text-white focus:outline-none focus:shadow-outline-warning\" title=\"Ir a la p\u00E1gina de inicio\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 216.878 51.894\" width=\"144\" height=\"32\" [ngClass]=\"{'sm:block': expandedLogo}\" class=\"fill-current hidden\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/><path data-name=\"typo\" d=\"M59.352 45.091V32.36h2.074c4.307 0 6.668 2.266 6.668 6.382 0 4.212-2.265 6.349-6.7 6.349zm15.489-16.974v21.281h14.1v-4.307h-9.348v-4.85h9.253v-4.308h-9.253v-3.542h9.348v-4.275zm32.389 0l-7.757 21.282h5.041l2.3-6.477h6.509l2.265 6.477h5.138l-7.912-21.281zm2.807 4.4l-1.978 6.287h3.989zm63.051 6h-4.754v6.7a6.262 6.262 0 01-2.042.288c-3.638 0-6.317-2.84-6.317-6.7 0-4.147 2.84-6.923 7.051-6.923a11.142 11.142 0 016.062 1.851v-4.849a17.388 17.388 0 00-6.477-1.276c-6.891 0-11.677 4.626-11.677 11.262 0 6.54 4.689 10.976 11.677 10.976a19.329 19.329 0 006.477-1.117zm24.023.192c0-6.35-4.722-10.976-11.167-10.976a11.024 11.024 0 00.16 22.047c6.445.001 11.007-4.593 11.007-11.07zm-11.1-6.637c-3.573 0-5.966 2.713-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.681 5.934-6.7s-2.428-6.699-6.033-6.699zm12.94-3.956v21.281h4.85v-13.56l8.58 13.56h4.5V28.116h-4.849l.006 13.235-8.237-13.235zm-126.6-15h-4.754v6.7a6.266 6.266 0 01-2.042.287c-3.637 0-6.317-2.84-6.317-6.7 0-4.148 2.84-6.923 7.051-6.923a11.152 11.152 0 016.062 1.85V3.481a17.386 17.386 0 00-6.477-1.277c-6.891 0-11.677 4.626-11.677 11.263 0 6.54 4.69 10.974 11.677 10.974a19.342 19.342 0 006.477-1.116zm24 .191c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.159 22.046c6.437-.002 11-4.597 11-11.074zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.457 6.7 6.062 6.7c3.573 0 5.935-2.68 5.935-6.7s-2.437-6.702-6.042-6.702zm12.695-3.956v21.281h8.806c4.69 0 7.433-2.33 7.433-6.318 0-2.743-1.563-4.721-4.435-5.551a4.665 4.665 0 002.9-4.371c.032-3.382-2.265-5.041-6.859-5.041zm7.083 7.944c2.074 0 2.9-.575 2.9-2.01 0-1.372-.8-1.882-3.062-1.882h-2.074v3.892zm.638 9c2.36 0 3.381-.734 3.381-2.457 0-1.786-1.053-2.489-3.573-2.489h-2.679v4.946zm14.274-16.942h-4.768v21.281h4.754zm2.07 0v21.281h14.1v-4.307h-9.349v-4.85h9.253v-4.307h-9.253V6.993h9.349V2.718zm75.145 10.592c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.16 22.046c6.435-.004 10.997-4.599 10.997-11.076zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.68 5.934-6.7s-2.438-6.704-6.043-6.704zm-37.783 32.132l-2.01-6.287-1.978 6.287zM126.43 49.398v-8.743h.606c3.063 0 3.382.319 5.423 5.583a10.7 10.7 0 00.447 1.085l.415.989a9.523 9.523 0 00.51 1.085h6.911l2.3-6.477h6.509l2.265 6.477h5.137l-7.912-21.281h-5.583l-6.288 17.258a89.817 89.817 0 01-1.549-3.411c-.83-1.819-1.308-2.362-2.84-3a5.086 5.086 0 003.892-5.106c0-3.828-2.52-5.743-7.593-5.743h-7.53v21.281zm0-12.763h2.105c2.042 0 3.063-.734 3.063-2.265s-.926-2.2-3-2.2h-2.17zm16.613-12.643V15.25h.605c3.063 0 3.382.319 5.424 5.583a10.427 10.427 0 00.447 1.085l.415.989a9.465 9.465 0 00.51 1.085h9.578l.027-13.652 8.555 13.652h4.5V2.711h-4.849l.021 13.056-8.252-13.056h-4.851v19.812a44.3 44.3 0 01-2.942-5.962c-.829-1.818-1.307-2.36-2.839-3a5.085 5.085 0 003.892-5.1c0-3.829-2.521-5.743-7.594-5.743h-7.529v21.281zm0-12.762h2.106c2.041 0 3.062-.734 3.062-2.265s-.924-2.2-3-2.2h-2.169zM54.53 28.117v21.281h7.114c7.21 0 11.454-3.956 11.454-10.657 0-6.669-4.339-10.625-11.709-10.625z\" fill-rule=\"evenodd\"/></svg>\r\n <svg class=\"w-8 h-8 fill-current\" [ngClass]=\"{'sm:hidden': expandedLogo}\" viewBox=\"0 0 51.894 51.894\" width=\"32\" height=\"32\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/></svg>\r\n </a>\r\n\r\n <ng-content select=\"desy-header-subnav\"></ng-content>\r\n <desy-header-subnav *ngIf=\"!subnavComponent && subnavData && (subnavData.text || subnavData.html)\" [classes]=\"subnavData.classes\">\r\n <ng-container *desyCustomInnerContent=\"{ html: subnavData.html, text: subnavData.text }\"></ng-container>\r\n <desy-nav *ngIf=\"subnavData && subnavData.items && subnavData.items.length > 0\"\r\n [hasNav]=\"true\"\r\n [idPrefix]=\"'header-subnav-nav-item'\"\r\n [classes]=\"'w-max max-w-64'\"\r\n [items]=\"subnavData.items\"\r\n [id]=\"'id-subnav-nav'\"\r\n [ariaLabel]=\"'Aplicaciones'\"></desy-nav>\r\n </desy-header-subnav>\r\n </div>\r\n\r\n <ng-content select=\"desy-header-navigation\"></ng-content>\r\n <desy-header-navigation *ngIf=\"!navigationComponent && navigationData && navigationData.items && navigationData.items.length > 0\"\r\n [idPrefix]=\"'header-nav-item'\"\r\n [classes]=\"navigationData.classes\"\r\n [items]=\"navigationData.items\"\r\n [ariaLabel]=\"'Men\u00FA principal'\"></desy-header-navigation>\r\n </div>\r\n\r\n <ng-content select=\"desy-header-dropdown\"></ng-content>\r\n <ng-container *ngIf=\"!dropdownComponent && dropdownData && dropdownData.items && dropdownData.items.length > 0\">\r\n <desy-header-dropdown [classes]=\"dropdownData.classes\">\r\n <ng-container *desyCustomInnerContent=\"{ html: dropdownData.html, text: dropdownData.text }\"></ng-container>\r\n <desy-nav [hasNav]=\"true\"\r\n [idPrefix]=\"'header-dropdown-nav-item'\"\r\n [classes]=\"'w-max max-w-64'\"\r\n [items]=\"dropdownData.items\"\r\n [id]=\"'id-dropdown-nav'\"\r\n [ariaLabel]=\"'Men\u00FA de usuario'\"></desy-nav>\r\n </desy-header-dropdown>\r\n </ng-container>\r\n\r\n <ng-content select=\"desy-header-offcanvas\"></ng-content>\r\n <ng-container *ngIf=\"!offcanvasComponent && offcanvasData\">\r\n <desy-header-offcanvas [classes]=\"offcanvasData.classes\">\r\n <desy-header-offcanvas-button>\r\n <ng-container *desyCustomInnerContent=\"{ html: offcanvasData.html, text: offcanvasData.text }\"></ng-container>\r\n </desy-header-offcanvas-button>\r\n <desy-header-offcanvas-close-button>{{ offcanvasData.textClose }}</desy-header-offcanvas-close-button>\r\n <desy-content>\r\n <ng-container *desyCustomInnerContent=\"{ template: offcanvasData.contentHtml }\"></ng-container>\r\n </desy-content>\r\n </desy-header-offcanvas>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n"
|
|
4952
|
+
template: "<header [ngClass]=\"classes\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <div [ngClass]=\"containerClasses\">\r\n <nav [attr.aria-labelledby]=\"skiplinkComponent ? skiplinkComponent.id : 'skip-link'\">\r\n <ng-content select=\"desy-skip-link\"></ng-content>\r\n <desy-skip-link *ngIf=\"!skiplinkComponent\" text=\"Saltar al contenido principal\" [id]=\"'skip-link'\"></desy-skip-link>\r\n </nav>\r\n <div class=\"flex h-1 bg-red-700\">\r\n <div class=\"flex-auto bg-yellow-300 h-full\"></div>\r\n <div class=\"flex-auto bg-red-500 h-full\"></div>\r\n <div class=\"flex-auto bg-red-800 h-full\"></div>\r\n </div>\r\n <div class=\"bg-black\">\r\n <div class=\"container mx-auto px-base\">\r\n <div class=\"flex items-center justify-between min-h-14\">\r\n <div class=\"flex flex-wrap items-center\">\r\n <div class=\"flex items-center flex-shrink-0\">\r\n <a *ngIf=\"homepageRouterLink || !homepageUrl\" [routerLink]=\"homepageRouterLink\" [fragment]=\"homepageFragment\" class=\"text-white focus:outline-none focus:shadow-outline-warning\" title=\"Ir a la p\u00E1gina de inicio\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 216.878 51.894\" width=\"144\" height=\"32\" [ngClass]=\"{'sm:block': expandedLogo}\" class=\"fill-current hidden\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/><path data-name=\"typo\" d=\"M59.352 45.091V32.36h2.074c4.307 0 6.668 2.266 6.668 6.382 0 4.212-2.265 6.349-6.7 6.349zm15.489-16.974v21.281h14.1v-4.307h-9.348v-4.85h9.253v-4.308h-9.253v-3.542h9.348v-4.275zm32.389 0l-7.757 21.282h5.041l2.3-6.477h6.509l2.265 6.477h5.138l-7.912-21.281zm2.807 4.4l-1.978 6.287h3.989zm63.051 6h-4.754v6.7a6.262 6.262 0 01-2.042.288c-3.638 0-6.317-2.84-6.317-6.7 0-4.147 2.84-6.923 7.051-6.923a11.142 11.142 0 016.062 1.851v-4.849a17.388 17.388 0 00-6.477-1.276c-6.891 0-11.677 4.626-11.677 11.262 0 6.54 4.689 10.976 11.677 10.976a19.329 19.329 0 006.477-1.117zm24.023.192c0-6.35-4.722-10.976-11.167-10.976a11.024 11.024 0 00.16 22.047c6.445.001 11.007-4.593 11.007-11.07zm-11.1-6.637c-3.573 0-5.966 2.713-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.681 5.934-6.7s-2.428-6.699-6.033-6.699zm12.94-3.956v21.281h4.85v-13.56l8.58 13.56h4.5V28.116h-4.849l.006 13.235-8.237-13.235zm-126.6-15h-4.754v6.7a6.266 6.266 0 01-2.042.287c-3.637 0-6.317-2.84-6.317-6.7 0-4.148 2.84-6.923 7.051-6.923a11.152 11.152 0 016.062 1.85V3.481a17.386 17.386 0 00-6.477-1.277c-6.891 0-11.677 4.626-11.677 11.263 0 6.54 4.69 10.974 11.677 10.974a19.342 19.342 0 006.477-1.116zm24 .191c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.159 22.046c6.437-.002 11-4.597 11-11.074zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.457 6.7 6.062 6.7c3.573 0 5.935-2.68 5.935-6.7s-2.437-6.702-6.042-6.702zm12.695-3.956v21.281h8.806c4.69 0 7.433-2.33 7.433-6.318 0-2.743-1.563-4.721-4.435-5.551a4.665 4.665 0 002.9-4.371c.032-3.382-2.265-5.041-6.859-5.041zm7.083 7.944c2.074 0 2.9-.575 2.9-2.01 0-1.372-.8-1.882-3.062-1.882h-2.074v3.892zm.638 9c2.36 0 3.381-.734 3.381-2.457 0-1.786-1.053-2.489-3.573-2.489h-2.679v4.946zm14.274-16.942h-4.768v21.281h4.754zm2.07 0v21.281h14.1v-4.307h-9.349v-4.85h9.253v-4.307h-9.253V6.993h9.349V2.718zm75.145 10.592c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.16 22.046c6.435-.004 10.997-4.599 10.997-11.076zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.68 5.934-6.7s-2.438-6.704-6.043-6.704zm-37.783 32.132l-2.01-6.287-1.978 6.287zM126.43 49.398v-8.743h.606c3.063 0 3.382.319 5.423 5.583a10.7 10.7 0 00.447 1.085l.415.989a9.523 9.523 0 00.51 1.085h6.911l2.3-6.477h6.509l2.265 6.477h5.137l-7.912-21.281h-5.583l-6.288 17.258a89.817 89.817 0 01-1.549-3.411c-.83-1.819-1.308-2.362-2.84-3a5.086 5.086 0 003.892-5.106c0-3.828-2.52-5.743-7.593-5.743h-7.53v21.281zm0-12.763h2.105c2.042 0 3.063-.734 3.063-2.265s-.926-2.2-3-2.2h-2.17zm16.613-12.643V15.25h.605c3.063 0 3.382.319 5.424 5.583a10.427 10.427 0 00.447 1.085l.415.989a9.465 9.465 0 00.51 1.085h9.578l.027-13.652 8.555 13.652h4.5V2.711h-4.849l.021 13.056-8.252-13.056h-4.851v19.812a44.3 44.3 0 01-2.942-5.962c-.829-1.818-1.307-2.36-2.839-3a5.085 5.085 0 003.892-5.1c0-3.829-2.521-5.743-7.594-5.743h-7.529v21.281zm0-12.762h2.106c2.041 0 3.062-.734 3.062-2.265s-.924-2.2-3-2.2h-2.169zM54.53 28.117v21.281h7.114c7.21 0 11.454-3.956 11.454-10.657 0-6.669-4.339-10.625-11.709-10.625z\" fill-rule=\"evenodd\"/></svg>\r\n <svg class=\"w-8 h-8 fill-current\" [ngClass]=\"{'sm:hidden': expandedLogo}\" viewBox=\"0 0 51.894 51.894\" width=\"32\" height=\"32\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/></svg>\r\n </a>\r\n <a *ngIf=\"!homepageRouterLink && homepageUrl\" [href]=\"homepageUrl | externalHref\" class=\"text-white focus:outline-none focus:shadow-outline-warning\" title=\"Ir a la p\u00E1gina de inicio\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 216.878 51.894\" width=\"144\" height=\"32\" [ngClass]=\"{'sm:block': expandedLogo}\" class=\"fill-current hidden\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/><path data-name=\"typo\" d=\"M59.352 45.091V32.36h2.074c4.307 0 6.668 2.266 6.668 6.382 0 4.212-2.265 6.349-6.7 6.349zm15.489-16.974v21.281h14.1v-4.307h-9.348v-4.85h9.253v-4.308h-9.253v-3.542h9.348v-4.275zm32.389 0l-7.757 21.282h5.041l2.3-6.477h6.509l2.265 6.477h5.138l-7.912-21.281zm2.807 4.4l-1.978 6.287h3.989zm63.051 6h-4.754v6.7a6.262 6.262 0 01-2.042.288c-3.638 0-6.317-2.84-6.317-6.7 0-4.147 2.84-6.923 7.051-6.923a11.142 11.142 0 016.062 1.851v-4.849a17.388 17.388 0 00-6.477-1.276c-6.891 0-11.677 4.626-11.677 11.262 0 6.54 4.689 10.976 11.677 10.976a19.329 19.329 0 006.477-1.117zm24.023.192c0-6.35-4.722-10.976-11.167-10.976a11.024 11.024 0 00.16 22.047c6.445.001 11.007-4.593 11.007-11.07zm-11.1-6.637c-3.573 0-5.966 2.713-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.681 5.934-6.7s-2.428-6.699-6.033-6.699zm12.94-3.956v21.281h4.85v-13.56l8.58 13.56h4.5V28.116h-4.849l.006 13.235-8.237-13.235zm-126.6-15h-4.754v6.7a6.266 6.266 0 01-2.042.287c-3.637 0-6.317-2.84-6.317-6.7 0-4.148 2.84-6.923 7.051-6.923a11.152 11.152 0 016.062 1.85V3.481a17.386 17.386 0 00-6.477-1.277c-6.891 0-11.677 4.626-11.677 11.263 0 6.54 4.69 10.974 11.677 10.974a19.342 19.342 0 006.477-1.116zm24 .191c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.159 22.046c6.437-.002 11-4.597 11-11.074zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.457 6.7 6.062 6.7c3.573 0 5.935-2.68 5.935-6.7s-2.437-6.702-6.042-6.702zm12.695-3.956v21.281h8.806c4.69 0 7.433-2.33 7.433-6.318 0-2.743-1.563-4.721-4.435-5.551a4.665 4.665 0 002.9-4.371c.032-3.382-2.265-5.041-6.859-5.041zm7.083 7.944c2.074 0 2.9-.575 2.9-2.01 0-1.372-.8-1.882-3.062-1.882h-2.074v3.892zm.638 9c2.36 0 3.381-.734 3.381-2.457 0-1.786-1.053-2.489-3.573-2.489h-2.679v4.946zm14.274-16.942h-4.768v21.281h4.754zm2.07 0v21.281h14.1v-4.307h-9.349v-4.85h9.253v-4.307h-9.253V6.993h9.349V2.718zm75.145 10.592c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.16 22.046c6.435-.004 10.997-4.599 10.997-11.076zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.68 5.934-6.7s-2.438-6.704-6.043-6.704zm-37.783 32.132l-2.01-6.287-1.978 6.287zM126.43 49.398v-8.743h.606c3.063 0 3.382.319 5.423 5.583a10.7 10.7 0 00.447 1.085l.415.989a9.523 9.523 0 00.51 1.085h6.911l2.3-6.477h6.509l2.265 6.477h5.137l-7.912-21.281h-5.583l-6.288 17.258a89.817 89.817 0 01-1.549-3.411c-.83-1.819-1.308-2.362-2.84-3a5.086 5.086 0 003.892-5.106c0-3.828-2.52-5.743-7.593-5.743h-7.53v21.281zm0-12.763h2.105c2.042 0 3.063-.734 3.063-2.265s-.926-2.2-3-2.2h-2.17zm16.613-12.643V15.25h.605c3.063 0 3.382.319 5.424 5.583a10.427 10.427 0 00.447 1.085l.415.989a9.465 9.465 0 00.51 1.085h9.578l.027-13.652 8.555 13.652h4.5V2.711h-4.849l.021 13.056-8.252-13.056h-4.851v19.812a44.3 44.3 0 01-2.942-5.962c-.829-1.818-1.307-2.36-2.839-3a5.085 5.085 0 003.892-5.1c0-3.829-2.521-5.743-7.594-5.743h-7.529v21.281zm0-12.762h2.106c2.041 0 3.062-.734 3.062-2.265s-.924-2.2-3-2.2h-2.169zM54.53 28.117v21.281h7.114c7.21 0 11.454-3.956 11.454-10.657 0-6.669-4.339-10.625-11.709-10.625z\" fill-rule=\"evenodd\"/></svg>\r\n <svg class=\"w-8 h-8 fill-current\" [ngClass]=\"{'sm:hidden': expandedLogo}\" viewBox=\"0 0 51.894 51.894\" width=\"32\" height=\"32\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/></svg>\r\n </a>\r\n\r\n <ng-content select=\"desy-header-subnav\"></ng-content>\r\n <desy-header-subnav *ngIf=\"!subnavComponent && subnavData && (subnavData.text || subnavData.html)\"\r\n [classes]=\"subnavData.classes\"\r\n [hiddenText]=\"subnavData.hiddenText\"\r\n [classesContainer]=\"subnavData.classesContainer\"\r\n [classesTooltip]=\"subnavData.classesTooltip\"\r\n [role]=\"subnavData.role\"\r\n [ariaLabel]=\"subnavData.ariaLabel\"\r\n [ariaDescribedBy]=\"subnavData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"subnavData.ariaLabelledBy\"\r\n [ariaHidden]=\"subnavData.ariaHidden\"\r\n [ariaDisabled]=\"subnavData.ariaDisabled\"\r\n [ariaControls]=\"subnavData.ariaControls\"\r\n [ariaCurrent]=\"subnavData.ariaCurrent\"\r\n [ariaLive]=\"subnavData.ariaLive\"\r\n [ariaExpanded]=\"subnavData.ariaExpanded\"\r\n [ariaErrorMessage]=\"subnavData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"subnavData.ariaHasPopup\"\r\n [tabindex]=\"subnavData.tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ html: subnavData.html, text: subnavData.text }\"></ng-container>\r\n <desy-nav *ngIf=\"subnavData && subnavData.items && subnavData.items.length > 0\"\r\n [hasNav]=\"true\"\r\n [idPrefix]=\"'header-subnav-nav-item'\"\r\n [classes]=\"'w-max max-w-64'\"\r\n [items]=\"subnavData.items\"\r\n [id]=\"'id-subnav-nav'\"\r\n [ariaLabel]=\"'Aplicaciones'\"></desy-nav>\r\n </desy-header-subnav>\r\n </div>\r\n\r\n <ng-content select=\"desy-header-navigation\"></ng-content>\r\n <desy-header-navigation *ngIf=\"!navigationComponent && navigationData && navigationData.items && navigationData.items.length > 0\"\r\n [idPrefix]=\"'header-nav-item'\"\r\n [classes]=\"navigationData.classes\"\r\n [items]=\"navigationData.items\"\r\n [ariaLabel]=\"'Men\u00FA principal'\"></desy-header-navigation>\r\n </div>\r\n\r\n <ng-content select=\"desy-header-dropdown\"></ng-content>\r\n <ng-container *ngIf=\"!dropdownComponent && dropdownData && dropdownData.items && dropdownData.items.length > 0\">\r\n <desy-header-dropdown [classes]=\"dropdownData.classes\"\r\n [hiddenText]=\"dropdownData.hiddenText\"\r\n [classesContainer]=\"dropdownData.classesContainer\"\r\n [classesTooltip]=\"dropdownData.classesTooltip\"\r\n [role]=\"dropdownData.role\"\r\n [ariaLabel]=\"dropdownData.ariaLabel\"\r\n [ariaDescribedBy]=\"dropdownData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"dropdownData.ariaLabelledBy\"\r\n [ariaHidden]=\"dropdownData.ariaHidden\"\r\n [ariaDisabled]=\"dropdownData.ariaDisabled\"\r\n [ariaControls]=\"dropdownData.ariaControls\"\r\n [ariaCurrent]=\"dropdownData.ariaCurrent\"\r\n [ariaLive]=\"dropdownData.ariaLive\"\r\n [ariaExpanded]=\"dropdownData.ariaExpanded\"\r\n [ariaErrorMessage]=\"dropdownData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"dropdownData.ariaHasPopup\"\r\n [tabindex]=\"dropdownData.tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ html: dropdownData.html, text: dropdownData.text }\"></ng-container>\r\n <desy-nav [hasNav]=\"true\"\r\n [idPrefix]=\"'header-dropdown-nav-item'\"\r\n [classes]=\"'w-max max-w-64'\"\r\n [items]=\"dropdownData.items\"\r\n [id]=\"'id-dropdown-nav'\"\r\n [ariaLabel]=\"'Men\u00FA de usuario'\"></desy-nav>\r\n </desy-header-dropdown>\r\n </ng-container>\r\n\r\n <ng-content select=\"desy-header-offcanvas\"></ng-content>\r\n <ng-container *ngIf=\"!offcanvasComponent && offcanvasData\">\r\n <desy-header-offcanvas [classes]=\"offcanvasData.classes\">\r\n <desy-header-offcanvas-button>\r\n <ng-container *desyCustomInnerContent=\"{ html: offcanvasData.html, text: offcanvasData.text }\"></ng-container>\r\n </desy-header-offcanvas-button>\r\n <desy-header-offcanvas-close-button>{{ offcanvasData.textClose }}</desy-header-offcanvas-close-button>\r\n <desy-content>\r\n <ng-container *desyCustomInnerContent=\"{ template: offcanvasData.contentHtml }\"></ng-container>\r\n </desy-content>\r\n </desy-header-offcanvas>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n"
|
|
3966
4953
|
},] }
|
|
3967
4954
|
];
|
|
3968
4955
|
HeaderComponent.propDecorators = {
|
|
@@ -4245,7 +5232,7 @@ class MenuHorizontalComponent extends AccessibilityComponent {
|
|
|
4245
5232
|
MenuHorizontalComponent.decorators = [
|
|
4246
5233
|
{ type: Component, args: [{
|
|
4247
5234
|
selector: 'desy-menu-horizontal',
|
|
4248
|
-
template: "<!-- menu-horizontal -->\r\n<nav [class]=\"['c-menu-horizontal', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ul class=\"c-menu-horizontal__list lg:flex lg:flex-wrap\">\r\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\r\n <li *ngIf=\"item\">\r\n <span *ngIf=\"item.active; else elseBlock\" [attr.id]=\"getItemId(item, i)\"\r\n [class]=\"['c-menu-horizontal__active flex items-center relative py-sm lg:px-lg lg:py-base border border-transparent truncate font-semibold', item.classes] | makeHtmlList\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n aria-current=\"page\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n <strong (desyContentEmpty)=\"handleEmptyItem(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </strong>\r\n </span>\r\n <ng-template #elseBlock>\r\n <a *ngIf=\"item.routerLink && !item.href\" (click)=\"onClick($event, item)\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [routerLink]=\"item.routerLink\"\r\n [fragment]=\"item.fragment\"\r\n [class]=\"['c-menu-horizontal__link relative flex items-center py-sm lg:px-lg lg:py-base border border-transparent text-black hover:text-primary-base underline truncate focus:outline-none', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'
|
|
5235
|
+
template: "<!-- menu-horizontal -->\r\n<nav [class]=\"['c-menu-horizontal', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ul class=\"c-menu-horizontal__list lg:flex lg:flex-wrap\">\r\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\r\n <li *ngIf=\"item\">\r\n <span *ngIf=\"item.active; else elseBlock\" [attr.id]=\"getItemId(item, i)\"\r\n [class]=\"['c-menu-horizontal__active flex items-center relative py-sm lg:px-lg lg:py-base border border-transparent truncate font-semibold', item.classes] | makeHtmlList\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n aria-current=\"page\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n <strong (desyContentEmpty)=\"handleEmptyItem(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </strong>\r\n </span>\r\n <ng-template #elseBlock>\r\n <a *ngIf=\"item.routerLink && !item.href\" (click)=\"onClick($event, item)\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [routerLink]=\"item.routerLink\"\r\n [fragment]=\"item.fragment\"\r\n [class]=\"['c-menu-horizontal__link relative flex items-center py-sm lg:px-lg lg:py-base border border-transparent text-black hover:text-primary-base underline truncate focus:outline-none', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'no-underline pointer-events-none': item.disabled}\"\r\n [attr.disabled]=\"item.disabled ? 'disabled' : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\">\r\n <span class=\"flex items-center pointer-events-none\" (desyContentEmpty)=\"handleEmptyItem(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </span>\r\n </a>\r\n <a *ngIf=\"!item.routerLink && item.href\" (click)=\"onClick($event, item)\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [href]=\"item.href | externalHref\"\r\n [target]=\"item.target\"\r\n [class]=\"['c-menu-horizontal__link relative flex items-center py-sm lg:px-lg lg:py-base border border-transparent text-black hover:text-primary-base underline truncate focus:outline-none', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'no-underline pointer-events-none': item.disabled}\"\r\n [attr.disabled]=\"item.disabled ? 'disabled' : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\">\r\n <span class=\"flex items-center pointer-events-none\" (desyContentEmpty)=\"handleEmptyItem(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </span>\r\n </a>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</nav>\r\n<!-- /menu-horizontal -->\r\n"
|
|
4249
5236
|
},] }
|
|
4250
5237
|
];
|
|
4251
5238
|
MenuHorizontalComponent.propDecorators = {
|
|
@@ -4340,7 +5327,7 @@ class MenuVerticalComponent extends AccessibilityComponent {
|
|
|
4340
5327
|
else {
|
|
4341
5328
|
const idPrefix = this.idPrefix ? this.idPrefix : 'nav-item';
|
|
4342
5329
|
if (i === 0) {
|
|
4343
|
-
return idPrefix;
|
|
5330
|
+
return idPrefix + '-0';
|
|
4344
5331
|
}
|
|
4345
5332
|
else {
|
|
4346
5333
|
return idPrefix + '-' + i;
|
|
@@ -4377,11 +5364,20 @@ class MenuVerticalComponent extends AccessibilityComponent {
|
|
|
4377
5364
|
const subItems = sub instanceof MenuVerticalItemSubComponent ? sub.itemComponents.toArray() : sub.items;
|
|
4378
5365
|
return subItems && subItems.length > 0 ? subItems : null;
|
|
4379
5366
|
}
|
|
5367
|
+
focus(id, idFocus) {
|
|
5368
|
+
const elementToQuitFocus = document.getElementById(id);
|
|
5369
|
+
elementToQuitFocus.blur();
|
|
5370
|
+
if (idFocus) {
|
|
5371
|
+
const elementToFocus = document.getElementById(idFocus);
|
|
5372
|
+
elementToFocus.tabIndex = 0;
|
|
5373
|
+
elementToFocus === null || elementToFocus === void 0 ? void 0 : elementToFocus.focus();
|
|
5374
|
+
}
|
|
5375
|
+
}
|
|
4380
5376
|
}
|
|
4381
5377
|
MenuVerticalComponent.decorators = [
|
|
4382
5378
|
{ type: Component, args: [{
|
|
4383
5379
|
selector: 'desy-menu-vertical',
|
|
4384
|
-
template: "<!--\r\n Template para ser utilizado tanto por los items como por los subitems:\r\n - item: Item que representa\r\n - index: indice del item en la lista\r\n - id: identificador del item\r\n - isRoot: si pertenece al nivel raiz\r\n-->\r\n<ng-template #itemTemplate let-item=\"item\" let-index=\"index\" let-id=\"id\" let-sub=\"sub\" let-isRoot=\"isRoot\">\r\n <ng-container *ngIf=\"item\">\r\n <li class=\"m-base\" [ngClass]=\"{'origin-top-left text-sm': !isRoot}\">\r\n <ng-container *ngIf=\"item.href || item.routerLink; else notHref\">\r\n <a *ngIf=\"item.href; else hasRouterLink\" [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [href]=\"item.href | externalHref\"\r\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{\r\n 'underline': hasUnderline,\r\n 'hover:text-primary-base hover:underline': !item.disabled,\r\n 'no-underline pointer-events-none': item.disabled,\r\n 'font-bold': item.active\r\n }\"\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </a>\r\n <ng-template #hasRouterLink>\r\n <!-- Todos los enlaces que admiten o href o routerLink estar\u00EDa bien unificarlos (en todos los componentes).\r\n Para ello, ser\u00EDa necesario crear una directiva para a\u00F1adir o quitar la directiva routerLink si no tiene href.\r\n Sin embargo, esto no es posible actualmente, ya que Angular todav\u00EDa no permite a\u00F1adir directivas din\u00E1micamente:\r\n https://angular.io/guide/roadmap#support-adding-directives-to-host-elements -->\r\n <a [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment ? item.fragment : null\"
|
|
5380
|
+
template: "<!--\r\n Template para ser utilizado tanto por los items como por los subitems:\r\n - item: Item que representa\r\n - index: indice del item en la lista\r\n - id: identificador del item\r\n - isRoot: si pertenece al nivel raiz\r\n-->\r\n<ng-template #itemTemplate let-item=\"item\" let-index=\"index\" let-id=\"id\" let-sub=\"sub\" let-isRoot=\"isRoot\">\r\n <ng-container *ngIf=\"item\">\r\n <li class=\"m-base\" [ngClass]=\"{'origin-top-left text-sm': !isRoot}\">\r\n <ng-container *ngIf=\"item.href || item.routerLink; else notHref\">\r\n <a *ngIf=\"item.href; else hasRouterLink\" [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [href]=\"item.href | externalHref\"\r\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{\r\n 'underline': hasUnderline,\r\n 'hover:text-primary-base hover:underline': !item.disabled,\r\n 'no-underline pointer-events-none': item.disabled,\r\n 'font-bold': item.active\r\n }\"\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </a>\r\n <ng-template #hasRouterLink>\r\n <!-- Todos los enlaces que admiten o href o routerLink estar\u00EDa bien unificarlos (en todos los componentes).\r\n Para ello, ser\u00EDa necesario crear una directiva para a\u00F1adir o quitar la directiva routerLink si no tiene href.\r\n Sin embargo, esto no es posible actualmente, ya que Angular todav\u00EDa no permite a\u00F1adir directivas din\u00E1micamente:\r\n https://angular.io/guide/roadmap#support-adding-directives-to-host-elements -->\r\n <a [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment ? item.fragment : null\"\r\n [routerLinkActive]=\"item.routerLinkActiveClasses ? item.routerLinkActiveClasses : []\"\r\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{\r\n 'underline': hasUnderline,\r\n 'hover:text-primary-base hover:underline': !item.disabled,\r\n 'no-underline pointer-events-none': item.disabled,\r\n 'font-bold': item.active\r\n }\"\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\"\r\n \r\n (click)=\"focus(id, item.fragment ? item.fragment : null)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #notHref>\r\n <span [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [class]=\"['block px-xs', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'font-bold': item.active}\"\r\n\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </span>\r\n </ng-template>\r\n <ng-container *ngIf=\"isRoot && sub\">\r\n <ul *ngIf=\"getSubItems(sub)\" [ngClass]=\"sub.classes\"\r\n [attr.aria-describedby]=\"sub.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"sub.ariaErrorMessage\"\r\n [attr.aria-label]=\"sub.ariaLabel\"\r\n [attr.aria-labelledby]=\"sub.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"sub.ariaHidden\"\r\n [attr.aria-disabled]=\"sub.ariaDisabled\"\r\n [attr.aria-controls]=\"sub.ariaControls\"\r\n [attr.aria-current]=\"sub.ariaCurrent\"\r\n [attr.aria-live]=\"sub.ariaLive\"\r\n [attr.aria-expanded]=\"sub.ariaExpanded\"\r\n [attr.aria-haspopup]=\"sub.ariaHasPopup\"\r\n [attr.tabindex]=\"sub.tabindex\">\r\n <ng-container *ngFor=\"let subItem of getSubItems(sub); index as subIndex\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n item: subItem,\r\n id: getSubItemId(item, index, subIndex),\r\n index: subIndex,\r\n isRoot: false\r\n }\">\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n <div *ngIf=\"!getSubItems(sub)\"\r\n [class]=\"['mb-base px-xs origin-top-left text-sm text-neutral-dark', sub.classes] | makeHtmlList\"\r\n [id]=\"'sub-' + id\">\r\n <ng-container *desyCustomInnerContent=\"{ component: sub, html: sub.html }\"></ng-container>\r\n </div>\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\r\n <div class=\"sr-only\">Separador</div>\r\n </li>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<nav [ngClass]=\"classes\"\r\n [attr.role]=\"(role ? role : null)\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <ul class=\"text-base\">\r\n <ng-container *ngFor=\"let item of getItems(); index as index\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item, id: getId(item, index), index: index, sub: getItemSub(item), isRoot: true }\">\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n</nav>\r\n",
|
|
4385
5381
|
animations: [
|
|
4386
5382
|
trigger('displayMenuVertical', [
|
|
4387
5383
|
state('void', style({
|
|
@@ -4775,7 +5771,7 @@ class MenubarComponent extends AccessibilityComponent {
|
|
|
4775
5771
|
if (!items || items.length === 0) {
|
|
4776
5772
|
throw Error('Items are required');
|
|
4777
5773
|
}
|
|
4778
|
-
// No se ha puesto label required porque en algunos ejemplos de desy-
|
|
5774
|
+
// No se ha puesto label required porque en algunos ejemplos de desy-html no aparece
|
|
4779
5775
|
}
|
|
4780
5776
|
handleEmptyItem(text) {
|
|
4781
5777
|
throw Error(text);
|
|
@@ -5156,7 +6152,7 @@ class MenubarComponent extends AccessibilityComponent {
|
|
|
5156
6152
|
MenubarComponent.decorators = [
|
|
5157
6153
|
{ type: Component, args: [{
|
|
5158
6154
|
selector: 'desy-menubar',
|
|
5159
|
-
template: "<div [attr.id]=\"id\" [class]=\"['c-menubar', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngIf=\"getLabelRef()\">\r\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelComponent ? labelComponent.classes : (labelData ? labelData.classes : null)] | makeHtmlList\">\r\n <ng-container *ngTemplateOutlet=\"getLabelRef()\"></ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!getLabelRef() && (labelData || labelText)\">\r\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelData ? labelData.classes : null] | makeHtmlList\">\r\n <ng-container *desyCustomInnerContent=\"{ html: getLabelContent() }\"></ng-container>\r\n </div>\r\n </ng-container>\r\n <ul #menubar [id]=\"id + '-menubar'\" class=\"lg:flex lg:flex-wrap\" role=\"menubar\"\r\n (focusin)=\"handleMenuFocusIn()\"\r\n (focusout)=\"handleMenuFocusOut($event)\"\r\n [ngClass]=\"{ 'focus': isFocused }\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"getLabelRef() || labelData || labelText ? id + '-label' : null\">\r\n <ng-container *ngFor=\"let item of getItems(); index as itemIndex\">\r\n <li class=\"relative\" role=\"none\" desyMenubaritem (contentChanged)=\"checkChanges()\">\r\n <a *ngIf=\"item.sub\" #link\r\n role=\"menuitem\" aria-haspopup=\"true\" aria-expanded=\"false\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\">\r\n <span class=\"inline-flex self-center max-w-xs align-middle truncate\" #itemContentWrapper\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </span>\r\n <svg class=\"inline-block -mr-2 align-middle -my-px\" viewBox=\"0 0 96 96\" aria-hidden=\"true\" fill=\"currentColor\" focusable=\"false\" width=\"1.5em\" height=\"1.5em\"><g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g></svg>\r\n </a>\r\n <a *ngIf=\"item.routerLink && !item.sub\" #link #itemContentWrapper\r\n role=\"menuitem\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [routerLink]=\"item.routerLink\"\r\n [routerLinkActive]=\"item.routerLinkActiveClasses ? item.routerLinkActiveClasses : ''\"\r\n [fragment]=\"item.fragment\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledBy]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </a>\r\n <a *ngIf=\"!item.routerLink && item.href && !item.sub\" #link #itemContentWrapper\r\n role=\"menuitem\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [href]=\"item.href | externalHref\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledBy]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </a>\r\n\r\n <ul *ngIf=\"item.sub && getItemSubitems(item)\" #popupMenu role=\"menu\" tabindex=\"-1\"\r\n [ngStyle]=\"getPopupStyle(itemIndex)\"\r\n [class]=\"['c-menubar__tooltip w-max max-w-64 hidden border border-neutral-base shadow-md bg-white text-sm', item.sub.classes] | makeHtmlList\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : (item.sub.ariaLabel ? item.sub.ariaLabel : null)\"\r\n [attr.aria-describedby]=\"item.sub.ariaDescribedBy ? item.sub.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.sub.ariaLabelledBy ? item.sub.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.sub.ariaHidden ? item.sub.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.sub.ariaDisabled ? item.sub.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.sub.ariaControls ? item.sub.ariaControls : null\"\r\n [attr.aria-current]=\"item.sub.ariaCurrent ? item.sub.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.sub.ariaLive ? item.sub.ariaLive : null\"\r\n [attr.aria-expanded]=\"!!(menuData && menuData[itemIndex].open)\"\r\n [attr.aria-errormessage]=\"item.sub.ariaErrorMessage ? item.sub.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.sub.ariaHasPopup ? item.sub.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.sub.ariaModal ? item.sub.ariaModal : null\">\r\n <ng-container *ngFor=\"let subItem of getItemSubitems(item); index as subItemIndex\">\r\n <ng-container [ngSwitch]=\"subItem.role\">\r\n <li #popupMenuItem *ngSwitchCase=\"'none'\" role=\"none\" tabindex=\"-1\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li *ngSwitchCase=\"'group'\">\r\n <ul role=\"group\" [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n [attr.aria-label]=\"subItem.ariaLabel ? subItem.ariaLabel : null\">\r\n <ng-container *ngFor=\"let subsubitem of getSubItemSubitems(subItem); index as subsubIndex\">\r\n <ng-container *ngIf=\"subsubitem\">\r\n <li #popupMenuItem [attr.role]=\"subsubitem.role ? subsubitem.role : null\" tabindex=\"-1\"\r\n [id]=\"getSubItemId(subsubitem, subsubIndex, getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex)))\"\r\n (desyContentEmpty)=\"handleEmptyItem('subsubitem content, html or text is required at position ' + subsubIndex + ' of subItem ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex, subsubIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex, subsubIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex, subsubIndex)\"\r\n [attr.aria-checked]=\"getSubSubItemAriaChecked(subsubitem)\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subsubitem, html: subsubitem.html, text: subsubitem.text}\"></ng-container>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'menuitem'\" role=\"menuitem\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white focus:bg-primary-base focus:text-white focus:outline-none\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'menuitemcheckbox'\" role=\"menuitemcheckbox\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n [attr.aria-checked]=\"!!subItem.checked\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'separator'\" role=\"separator\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n class=\"my-sm border-b border-neutral-base\">\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n"
|
|
6155
|
+
template: "<div [attr.id]=\"id\" [class]=\"['c-menubar', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngIf=\"getLabelRef()\">\r\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelComponent ? labelComponent.classes : (labelData ? labelData.classes : null)] | makeHtmlList\">\r\n <ng-container *ngTemplateOutlet=\"getLabelRef()\"></ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!getLabelRef() && (labelData || labelText)\">\r\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelData ? labelData.classes : null] | makeHtmlList\">\r\n <ng-container *desyCustomInnerContent=\"{ html: getLabelContent() }\"></ng-container>\r\n </div>\r\n </ng-container>\r\n <ul #menubar [id]=\"id + '-menubar'\" class=\"lg:flex lg:flex-wrap\" role=\"menubar\"\r\n (focusin)=\"handleMenuFocusIn()\"\r\n (focusout)=\"handleMenuFocusOut($event)\"\r\n [ngClass]=\"{ 'focus': isFocused }\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"getLabelRef() || labelData || labelText ? id + '-label' : null\">\r\n <ng-container *ngFor=\"let item of getItems(); index as itemIndex\">\r\n <li class=\"relative\" role=\"none\" desyMenubaritem (contentChanged)=\"checkChanges()\">\r\n <a *ngIf=\"item.sub\" #link\r\n role=\"menuitem\" aria-haspopup=\"true\" aria-expanded=\"false\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\">\r\n <span class=\"inline-flex self-center max-w-xs align-middle truncate\" #itemContentWrapper\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </span>\r\n <svg class=\"inline-block -mr-2 align-middle -my-px\" viewBox=\"0 0 96 96\" aria-hidden=\"true\" fill=\"currentColor\" focusable=\"false\" width=\"1.5em\" height=\"1.5em\"><g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g></svg>\r\n </a>\r\n <a *ngIf=\"item.routerLink && !item.sub\" #link #itemContentWrapper\r\n role=\"menuitem\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [routerLink]=\"item.routerLink\"\r\n [routerLinkActive]=\"item.routerLinkActiveClasses ? item.routerLinkActiveClasses : []\"\r\n [fragment]=\"item.fragment\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledBy]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </a>\r\n <a *ngIf=\"!item.routerLink && item.href && !item.sub\" #link #itemContentWrapper\r\n role=\"menuitem\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [href]=\"item.href | externalHref\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledBy]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </a>\r\n\r\n <ul *ngIf=\"item.sub && getItemSubitems(item)\" #popupMenu role=\"menu\" tabindex=\"-1\"\r\n [ngStyle]=\"getPopupStyle(itemIndex)\"\r\n [class]=\"['c-menubar__tooltip w-max max-w-64 hidden border border-neutral-base shadow-md bg-white text-sm', item.sub.classes] | makeHtmlList\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : (item.sub.ariaLabel ? item.sub.ariaLabel : null)\"\r\n [attr.aria-describedby]=\"item.sub.ariaDescribedBy ? item.sub.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.sub.ariaLabelledBy ? item.sub.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.sub.ariaHidden ? item.sub.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.sub.ariaDisabled ? item.sub.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.sub.ariaControls ? item.sub.ariaControls : null\"\r\n [attr.aria-current]=\"item.sub.ariaCurrent ? item.sub.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.sub.ariaLive ? item.sub.ariaLive : null\"\r\n [attr.aria-expanded]=\"!!(menuData && menuData[itemIndex].open)\"\r\n [attr.aria-errormessage]=\"item.sub.ariaErrorMessage ? item.sub.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.sub.ariaHasPopup ? item.sub.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.sub.ariaModal ? item.sub.ariaModal : null\">\r\n <ng-container *ngFor=\"let subItem of getItemSubitems(item); index as subItemIndex\">\r\n <ng-container [ngSwitch]=\"subItem.role\">\r\n <li #popupMenuItem *ngSwitchCase=\"'none'\" role=\"none\" tabindex=\"-1\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li *ngSwitchCase=\"'group'\" role=\"none\">\r\n <ul role=\"group\" [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n [attr.aria-label]=\"subItem.ariaLabel ? subItem.ariaLabel : null\">\r\n <ng-container *ngFor=\"let subsubitem of getSubItemSubitems(subItem); index as subsubIndex\">\r\n <ng-container *ngIf=\"subsubitem\">\r\n <li #popupMenuItem [attr.role]=\"subsubitem.role ? subsubitem.role : null\" tabindex=\"-1\"\r\n [id]=\"getSubItemId(subsubitem, subsubIndex, getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex)))\"\r\n (desyContentEmpty)=\"handleEmptyItem('subsubitem content, html or text is required at position ' + subsubIndex + ' of subItem ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex, subsubIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex, subsubIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex, subsubIndex)\"\r\n [attr.aria-checked]=\"getSubSubItemAriaChecked(subsubitem)\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subsubitem, html: subsubitem.html, text: subsubitem.text}\"></ng-container>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'menuitem'\" role=\"menuitem\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white focus:bg-primary-base focus:text-white focus:outline-none\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'menuitemcheckbox'\" role=\"menuitemcheckbox\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n [attr.aria-checked]=\"!!subItem.checked\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'separator'\" role=\"separator\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n class=\"my-sm border-b border-neutral-base\">\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n"
|
|
5160
6156
|
},] }
|
|
5161
6157
|
];
|
|
5162
6158
|
MenubarComponent.ctorParameters = () => [
|
|
@@ -5408,63 +6404,6 @@ __decorate([
|
|
|
5408
6404
|
DesyContentChild()
|
|
5409
6405
|
], TableComponent.prototype, "headerComponent", void 0);
|
|
5410
6406
|
|
|
5411
|
-
class SearchUtils {
|
|
5412
|
-
/**
|
|
5413
|
-
* Comprueba si una cadena de texto (target) contiene cualquier palabra de otro texto (text)
|
|
5414
|
-
* @param target - Texto en el que buscar
|
|
5415
|
-
* @param text - Texto a buscar
|
|
5416
|
-
* @param fullWord - Indica si las palabras del texto a buscar deben aparecer enteras
|
|
5417
|
-
*/
|
|
5418
|
-
static containsAnyWordFrom(target, text, fullWord) {
|
|
5419
|
-
let words = [];
|
|
5420
|
-
let includes = false;
|
|
5421
|
-
const simplifiedTarget = this.getSimplifiedString(target);
|
|
5422
|
-
if (text && text.split(' ').length > 1) {
|
|
5423
|
-
words = text.split(' ');
|
|
5424
|
-
}
|
|
5425
|
-
words.push(text);
|
|
5426
|
-
words.forEach(word => {
|
|
5427
|
-
if (simplifiedTarget && word) {
|
|
5428
|
-
if ((fullWord && simplifiedTarget === this.getSimplifiedString(word))
|
|
5429
|
-
|| (!fullWord && simplifiedTarget.includes(this.getSimplifiedString(word)))) {
|
|
5430
|
-
includes = true;
|
|
5431
|
-
}
|
|
5432
|
-
}
|
|
5433
|
-
});
|
|
5434
|
-
return includes;
|
|
5435
|
-
}
|
|
5436
|
-
/**
|
|
5437
|
-
* Convierte a mayúsculas, elimina espacios y reemplaza/elimina caracteres especiales para realizar comparaciones más tolerantes
|
|
5438
|
-
* @param str - cadena de entrada
|
|
5439
|
-
*/
|
|
5440
|
-
static getSimplifiedString(str) {
|
|
5441
|
-
let res = str;
|
|
5442
|
-
if (str) {
|
|
5443
|
-
res = str.toLocaleUpperCase().trim();
|
|
5444
|
-
res = res.replace('Á', 'A');
|
|
5445
|
-
res = res.replace('É', 'E');
|
|
5446
|
-
res = res.replace('Í', 'I');
|
|
5447
|
-
res = res.replace('Ó', 'O');
|
|
5448
|
-
res = res.replace('Ú', 'U');
|
|
5449
|
-
res = res.replace('À', 'A');
|
|
5450
|
-
res = res.replace('È', 'E');
|
|
5451
|
-
res = res.replace('Ì', 'I');
|
|
5452
|
-
res = res.replace('Ò', 'O');
|
|
5453
|
-
res = res.replace('Ù', 'U');
|
|
5454
|
-
res = res.replace('Ä', 'A');
|
|
5455
|
-
res = res.replace('Ë', 'E');
|
|
5456
|
-
res = res.replace('Ï', 'I');
|
|
5457
|
-
res = res.replace('Ö', 'O');
|
|
5458
|
-
res = res.replace('Ü', 'U');
|
|
5459
|
-
res = res.replace(',', '');
|
|
5460
|
-
res = res.replace('.', '');
|
|
5461
|
-
res = res.replace('\'', '');
|
|
5462
|
-
res = res.replace('"', '');
|
|
5463
|
-
}
|
|
5464
|
-
return res;
|
|
5465
|
-
}
|
|
5466
|
-
}
|
|
5467
|
-
|
|
5468
6407
|
var OrderBy;
|
|
5469
6408
|
(function (OrderBy) {
|
|
5470
6409
|
OrderBy["none"] = "none";
|
|
@@ -5868,13 +6807,20 @@ class AlertComponent extends AccessibilityComponent {
|
|
|
5868
6807
|
this.activeChange = new EventEmitter();
|
|
5869
6808
|
this.lastActiveState = undefined;
|
|
5870
6809
|
this.hasViewinit = false;
|
|
6810
|
+
this.createdCallerFromType = false;
|
|
5871
6811
|
}
|
|
5872
|
-
|
|
5873
|
-
|
|
6812
|
+
set active(value) {
|
|
6813
|
+
setTimeout(() => {
|
|
6814
|
+
this._active = value;
|
|
6815
|
+
this.cdRef.detectChanges();
|
|
6816
|
+
this.handleActiveState();
|
|
6817
|
+
});
|
|
6818
|
+
}
|
|
6819
|
+
get active() {
|
|
6820
|
+
return this._active;
|
|
5874
6821
|
}
|
|
5875
6822
|
ngOnDestroy() {
|
|
5876
6823
|
this.active = false;
|
|
5877
|
-
this.handleActiveState();
|
|
5878
6824
|
}
|
|
5879
6825
|
ngAfterViewInit() {
|
|
5880
6826
|
if (!this.id) {
|
|
@@ -5884,30 +6830,28 @@ class AlertComponent extends AccessibilityComponent {
|
|
|
5884
6830
|
throw Error('caller is required');
|
|
5885
6831
|
}
|
|
5886
6832
|
this.hasViewinit = true;
|
|
5887
|
-
this.cdRef.detectChanges();
|
|
5888
|
-
if (this.callerType) {
|
|
5889
|
-
const factory = this.factoryResolver.resolveComponentFactory(this.callerType);
|
|
5890
|
-
const component = this.container.createComponent(factory);
|
|
5891
|
-
if (this.onCallerCreationCallback) {
|
|
5892
|
-
this.onCallerCreationCallback(this, component);
|
|
5893
|
-
}
|
|
5894
|
-
}
|
|
5895
6833
|
this.handleActiveState();
|
|
5896
|
-
this.cdRef.detectChanges();
|
|
5897
6834
|
}
|
|
5898
6835
|
dismiss() {
|
|
5899
6836
|
this.activeChange.emit(false);
|
|
5900
6837
|
}
|
|
5901
6838
|
handleActiveState() {
|
|
5902
|
-
if (this.
|
|
5903
|
-
|
|
5904
|
-
|
|
5905
|
-
|
|
5906
|
-
|
|
5907
|
-
|
|
5908
|
-
|
|
5909
|
-
|
|
5910
|
-
|
|
6839
|
+
if (this._active && this.callerType && !this.createdCallerFromType) {
|
|
6840
|
+
const factory = this.factoryResolver.resolveComponentFactory(this.callerType);
|
|
6841
|
+
const component = this.container.createComponent(factory);
|
|
6842
|
+
if (this.onCallerCreationCallback) {
|
|
6843
|
+
this.onCallerCreationCallback(this, component);
|
|
6844
|
+
}
|
|
6845
|
+
this.createdCallerFromType = true;
|
|
6846
|
+
}
|
|
6847
|
+
if (this._active !== this.lastActiveState && this.hasViewinit) {
|
|
6848
|
+
this.lastActiveState = this._active;
|
|
6849
|
+
if (this._active && this.focusFirst) {
|
|
6850
|
+
this.cdRef.detectChanges();
|
|
6851
|
+
const focusElem = FocusUtils.getFirstFocusableElement(this.alertWrapper.nativeElement);
|
|
6852
|
+
if (focusElem) {
|
|
6853
|
+
focusElem.focus();
|
|
6854
|
+
}
|
|
5911
6855
|
}
|
|
5912
6856
|
}
|
|
5913
6857
|
}
|
|
@@ -5915,7 +6859,7 @@ class AlertComponent extends AccessibilityComponent {
|
|
|
5915
6859
|
AlertComponent.decorators = [
|
|
5916
6860
|
{ type: Component, args: [{
|
|
5917
6861
|
selector: 'desy-alert',
|
|
5918
|
-
template: "<div #alertWrapper\r\n [id]=\"id\" [class]=\"classes ? classes : null\"
|
|
6862
|
+
template: "<div #alertWrapper\r\n [id]=\"id\" [class]=\"classes ? classes : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\">\r\n <ng-container *ngIf=\"active\">\r\n <ng-template #container></ng-template>\r\n <ng-container *ngTemplateOutlet=\"caller; context:callerContext\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n"
|
|
5919
6863
|
},] }
|
|
5920
6864
|
];
|
|
5921
6865
|
AlertComponent.ctorParameters = () => [
|
|
@@ -6828,7 +7772,7 @@ class PaginationComponent extends AccessibilityComponent {
|
|
|
6828
7772
|
PaginationComponent.decorators = [
|
|
6829
7773
|
{ type: Component, args: [{
|
|
6830
7774
|
selector: 'desy-pagination',
|
|
6831
|
-
template: "<div [attr.id]=\"id ? id : null\" [class]=\"['lg:flex lg:flex-wrap lg:align-center', classesContainer] | makeHtmlList\">\r\n <ng-container *ngIf=\"hasSelect\">\r\n <p class=\"w-full mb-xs text-sm text-neutral-dark\">\r\n Selecciona una p\u00E1gina para cargar datos\r\n </p>\r\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <desy-button (clickEvent)=\"previous()\" [id]=\"getIdPrefix() + '-previous'\"\r\n [html]=\"previousIcon + prefix + previousText + getSuffix(currentPage - 2)\" [disabled]=\"currentPage === 1 || !hasPrevious\"\r\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\r\n <desy-listbox [id]=\"id + '-listbox'\"\r\n [idPrefix]=\"idPrefix\"\r\n [text]=\"'P\u00E1gina ' + getActiveItemText()\"\r\n [classes]=\"'c-listbox--sm c-listbox--transparent mr-xs'\"\r\n [doesChangeButtonText]=\"true\"\r\n [label]=\"{ text: 'Selecciona una p\u00E1gina para cargar datos', classes: 'sr-only' }\"\r\n [(items)]=\"items\"\r\n (activeItemChange)=\"changePage(+$event.text)\"></desy-listbox>\r\n <desy-button (clickEvent)=\"next()\" [id]=\"getIdPrefix() + '-next'\"\r\n [html]=\"prefix + nextText + getSuffix(currentPage) + nextIcon\" [disabled]=\"currentPage === nPages || !hasNext\"\r\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\r\n </nav>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasSelect\">\r\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ul class=\"flex flex-wrap\">\r\n <li *ngFor=\"let item of items; index as i\">\r\n <desy-button *ngIf=\"item.active\" [id]=\"getButtonId(i)\"\r\n [html]=\"'<strong>' + prefix + (i + 1) + getSuffix(i) + '</strong>'\"\r\n classes=\"c-button--primary c-button--disabled mb-sm mr-sm\"\r\n disabled=\"true\" ariaCurrent=\"page\" tabindex=\"-1\" ></desy-button>\r\n <desy-button *ngIf=\"!item.active\" [id]=\"getButtonId(i)\"\r\n [html]=\"prefix + (i + 1) + getSuffix(i)\"\r\n (clickEvent)=\"changePage(i + 1)\"\r\n classes=\"mb-sm mr-sm\"></desy-button>\r\n </li>\r\n </ul>\r\n </nav>\r\n </ng-container>\r\n <p class=\"block lg:ml-auto text-sm text-neutral-dark\">\r\n <span class=\"sr-only\">Posici\u00F3n de paginaci\u00F3n: </span>{{(currentPage - 1) * itemsPerPage + 1}} - {{getLastItemNumber(currentPage - 1)}} de {{totalItems}}\r\n </p>\r\n</div>\r\n"
|
|
7775
|
+
template: "<div [attr.id]=\"id ? id : null\" [class]=\"['lg:flex lg:flex-wrap lg:align-center', classesContainer] | makeHtmlList\">\r\n <ng-container *ngIf=\"hasSelect\">\r\n <p class=\"w-full mb-xs text-sm text-neutral-dark\">\r\n Selecciona una p\u00E1gina para cargar datos\r\n </p>\r\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <desy-button (clickEvent)=\"previous()\" [id]=\"getIdPrefix() + '-previous'\"\r\n [html]=\"previousIcon + prefix + previousText + getSuffix(currentPage - 2)\" [disabled]=\"currentPage === 1 || !hasPrevious\"\r\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\r\n <desy-listbox [id]=\"id + '-listbox'\"\r\n [idPrefix]=\"idPrefix\"\r\n [text]=\"'P\u00E1gina ' + getActiveItemText()\"\r\n [classes]=\"'c-listbox--sm c-listbox--transparent mr-xs'\"\r\n [classesTooltip]=\"'max-h-52 overflow-y-auto'\"\r\n [doesChangeButtonText]=\"true\"\r\n [label]=\"{ text: 'Selecciona una p\u00E1gina para cargar datos', classes: 'sr-only' }\"\r\n [(items)]=\"items\"\r\n (activeItemChange)=\"changePage(+$event.text)\"></desy-listbox>\r\n <desy-button (clickEvent)=\"next()\" [id]=\"getIdPrefix() + '-next'\"\r\n [html]=\"prefix + nextText + getSuffix(currentPage) + nextIcon\" [disabled]=\"currentPage === nPages || !hasNext\"\r\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\r\n </nav>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasSelect\">\r\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ul class=\"flex flex-wrap\">\r\n <li *ngFor=\"let item of items; index as i\">\r\n <desy-button *ngIf=\"item.active\" [id]=\"getButtonId(i)\"\r\n [html]=\"'<strong>' + prefix + (i + 1) + getSuffix(i) + '</strong>'\"\r\n classes=\"c-button--primary c-button--disabled mb-sm mr-sm\"\r\n disabled=\"true\" ariaCurrent=\"page\" tabindex=\"-1\" ></desy-button>\r\n <desy-button *ngIf=\"!item.active\" [id]=\"getButtonId(i)\"\r\n [html]=\"prefix + (i + 1) + getSuffix(i)\"\r\n (clickEvent)=\"changePage(i + 1)\"\r\n classes=\"mb-sm mr-sm\"></desy-button>\r\n </li>\r\n </ul>\r\n </nav>\r\n </ng-container>\r\n <p class=\"block lg:ml-auto text-sm text-neutral-dark\">\r\n <span class=\"sr-only\">Posici\u00F3n de paginaci\u00F3n: </span>{{(currentPage - 1) * itemsPerPage + 1}} - {{getLastItemNumber(currentPage - 1)}} de {{totalItems}}\r\n </p>\r\n</div>\r\n"
|
|
6832
7776
|
},] }
|
|
6833
7777
|
];
|
|
6834
7778
|
PaginationComponent.propDecorators = {
|
|
@@ -7307,6 +8251,11 @@ DesyFormsModule.decorators = [
|
|
|
7307
8251
|
DateInputDayComponent,
|
|
7308
8252
|
DateInputMonthComponent,
|
|
7309
8253
|
DateInputYearComponent,
|
|
8254
|
+
TreeComponent,
|
|
8255
|
+
TreeSubComponent,
|
|
8256
|
+
TreeItemComponent,
|
|
8257
|
+
TreeCheckboxComponent,
|
|
8258
|
+
TreeItemsGeneratorComponent,
|
|
7310
8259
|
ConditionDirective,
|
|
7311
8260
|
],
|
|
7312
8261
|
imports: [
|
|
@@ -7343,6 +8292,10 @@ DesyFormsModule.decorators = [
|
|
|
7343
8292
|
DateInputDayComponent,
|
|
7344
8293
|
DateInputMonthComponent,
|
|
7345
8294
|
DateInputYearComponent,
|
|
8295
|
+
TreeComponent,
|
|
8296
|
+
TreeSubComponent,
|
|
8297
|
+
TreeItemComponent,
|
|
8298
|
+
TreeItemsGeneratorComponent,
|
|
7346
8299
|
ConditionDirective
|
|
7347
8300
|
]
|
|
7348
8301
|
},] }
|
|
@@ -7537,6 +8490,67 @@ DesyViewsModule.decorators = [
|
|
|
7537
8490
|
},] }
|
|
7538
8491
|
];
|
|
7539
8492
|
|
|
8493
|
+
class ToggleOffStateComponent extends AccessibilityComponent {
|
|
8494
|
+
}
|
|
8495
|
+
ToggleOffStateComponent.decorators = [
|
|
8496
|
+
{ type: Component, args: [{
|
|
8497
|
+
selector: 'desy-toggle-off-state',
|
|
8498
|
+
template: "<ng-template #contentTemplateOffState>\r\n <ng-content></ng-content>\r\n</ng-template>"
|
|
8499
|
+
},] }
|
|
8500
|
+
];
|
|
8501
|
+
ToggleOffStateComponent.propDecorators = {
|
|
8502
|
+
content: [{ type: ViewChild, args: ['contentTemplateOffState', { static: true },] }],
|
|
8503
|
+
classes: [{ type: Input }]
|
|
8504
|
+
};
|
|
8505
|
+
|
|
8506
|
+
class ToggleOnStateComponent extends AccessibilityComponent {
|
|
8507
|
+
}
|
|
8508
|
+
ToggleOnStateComponent.decorators = [
|
|
8509
|
+
{ type: Component, args: [{
|
|
8510
|
+
selector: 'desy-toggle-on-state',
|
|
8511
|
+
template: "<ng-template #contentTemplateOnState>\r\n <ng-content></ng-content>\r\n</ng-template>"
|
|
8512
|
+
},] }
|
|
8513
|
+
];
|
|
8514
|
+
ToggleOnStateComponent.propDecorators = {
|
|
8515
|
+
content: [{ type: ViewChild, args: ['contentTemplateOnState', { static: true },] }],
|
|
8516
|
+
classes: [{ type: Input }]
|
|
8517
|
+
};
|
|
8518
|
+
|
|
8519
|
+
class ToggleComponent extends AccessibilityComponent {
|
|
8520
|
+
constructor() {
|
|
8521
|
+
super(...arguments);
|
|
8522
|
+
this.clickEvent = new EventEmitter();
|
|
8523
|
+
this.pressedChange = new EventEmitter();
|
|
8524
|
+
}
|
|
8525
|
+
onClick(event) {
|
|
8526
|
+
this.pressed = !this.pressed;
|
|
8527
|
+
this.pressedChange.emit(this.pressed);
|
|
8528
|
+
this.clickEvent.emit(event);
|
|
8529
|
+
}
|
|
8530
|
+
}
|
|
8531
|
+
ToggleComponent.decorators = [
|
|
8532
|
+
{ type: Component, args: [{
|
|
8533
|
+
selector: 'desy-toggle',
|
|
8534
|
+
template: "<!-- toggle -->\r\n<div class=\"relative\">\r\n <button *ngIf=\"isSwitch\"\r\n (click)=\"onClick($event)\"\r\n [type]=\"'button'\"\r\n [class]=\"pressed ? (classes + ' ' + contentTemplateOnState?.classes) : (classes + ' ' + contentTemplateOffState?.classes)\"\r\n [attr.aria-checked]=\"pressed ? 'true' : 'false'\"\r\n \r\n [attr.id]=\"id ? id : null\" \r\n [attr.role]=\"'switch'\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\" \r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" \r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\" \r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" \r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" \r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" \r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n \r\n <span [class]=\"pressed ? 'hidden' : ''\"><ng-container *ngTemplateOutlet=\"contentTemplateOffState?.content\"></ng-container></span>\r\n <span [class]=\"pressed ? '' : 'hidden'\"><ng-container *ngTemplateOutlet=\"contentTemplateOnState?.content\"></ng-container></span>\r\n </button>\r\n\r\n <button *ngIf=\"!isSwitch\"\r\n (click)=\"onClick($event)\"\r\n [type]=\"'button'\"\r\n [class]=\"pressed ? (classes + ' ' + contentTemplateOnState?.classes) : (classes + ' ' + contentTemplateOffState?.classes)\"\r\n [attr.aria-pressed]=\"pressed ? 'true' : 'false'\"\r\n [attr.id]=\"id ? id : null\" \r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\" \r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" \r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\" \r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" \r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" \r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" \r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n \r\n <span [class]=\"pressed ? 'hidden' : ''\"><ng-container *ngTemplateOutlet=\"contentTemplateOffState?.content\"></ng-container></span>\r\n <span [class]=\"pressed ? '' : 'hidden'\"><ng-container *ngTemplateOutlet=\"contentTemplateOnState?.content\"></ng-container></span>\r\n </button>\r\n</div>\r\n<!-- /toggle -->"
|
|
8535
|
+
},] }
|
|
8536
|
+
];
|
|
8537
|
+
ToggleComponent.propDecorators = {
|
|
8538
|
+
id: [{ type: Input }],
|
|
8539
|
+
isSwitch: [{ type: Input }],
|
|
8540
|
+
pressed: [{ type: Input }],
|
|
8541
|
+
classes: [{ type: Input }],
|
|
8542
|
+
clickEvent: [{ type: Output }],
|
|
8543
|
+
pressedChange: [{ type: Output }],
|
|
8544
|
+
contentTemplateOnState: [{ type: ContentChildren, args: [ToggleOnStateComponent,] }],
|
|
8545
|
+
contentTemplateOffState: [{ type: ContentChildren, args: [ToggleOffStateComponent,] }]
|
|
8546
|
+
};
|
|
8547
|
+
__decorate([
|
|
8548
|
+
DesyContentChild()
|
|
8549
|
+
], ToggleComponent.prototype, "contentTemplateOnState", void 0);
|
|
8550
|
+
__decorate([
|
|
8551
|
+
DesyContentChild()
|
|
8552
|
+
], ToggleComponent.prototype, "contentTemplateOffState", void 0);
|
|
8553
|
+
|
|
7540
8554
|
class DesyButtonsModule {
|
|
7541
8555
|
}
|
|
7542
8556
|
DesyButtonsModule.decorators = [
|
|
@@ -7548,7 +8562,10 @@ DesyButtonsModule.decorators = [
|
|
|
7548
8562
|
ListboxComponent,
|
|
7549
8563
|
PillComponent,
|
|
7550
8564
|
ListboxItemComponent,
|
|
7551
|
-
ListboxLabelComponent
|
|
8565
|
+
ListboxLabelComponent,
|
|
8566
|
+
ToggleComponent,
|
|
8567
|
+
ToggleOnStateComponent,
|
|
8568
|
+
ToggleOffStateComponent
|
|
7552
8569
|
],
|
|
7553
8570
|
imports: [
|
|
7554
8571
|
CommonModule,
|
|
@@ -7563,7 +8580,10 @@ DesyButtonsModule.decorators = [
|
|
|
7563
8580
|
ListboxComponent,
|
|
7564
8581
|
PillComponent,
|
|
7565
8582
|
ListboxItemComponent,
|
|
7566
|
-
ListboxLabelComponent
|
|
8583
|
+
ListboxLabelComponent,
|
|
8584
|
+
ToggleComponent,
|
|
8585
|
+
ToggleOnStateComponent,
|
|
8586
|
+
ToggleOffStateComponent
|
|
7567
8587
|
]
|
|
7568
8588
|
},] }
|
|
7569
8589
|
];
|
|
@@ -7636,7 +8656,8 @@ DesyNavModule.decorators = [
|
|
|
7636
8656
|
imports: [
|
|
7637
8657
|
CommonModule,
|
|
7638
8658
|
SharedModule,
|
|
7639
|
-
DesyCommonsModule
|
|
8659
|
+
DesyCommonsModule,
|
|
8660
|
+
DesyButtonsModule
|
|
7640
8661
|
],
|
|
7641
8662
|
exports: [
|
|
7642
8663
|
BreadcrumbsComponent,
|
|
@@ -7819,7 +8840,6 @@ class DesyAngularModule {
|
|
|
7819
8840
|
DesyAngularModule.decorators = [
|
|
7820
8841
|
{ type: NgModule, args: [{
|
|
7821
8842
|
imports: [
|
|
7822
|
-
BrowserAnimationsModule,
|
|
7823
8843
|
DesyButtonsModule,
|
|
7824
8844
|
DesyCommonsModule,
|
|
7825
8845
|
DesyFormsModule,
|
|
@@ -7852,5 +8872,5 @@ DesyAngularModule.decorators = [
|
|
|
7852
8872
|
* Generated bundle index. Do not edit.
|
|
7853
8873
|
*/
|
|
7854
8874
|
|
|
7855
|
-
export { AccordionComponent, AccordionHeaderComponent, AccordionItemComponent, AlertComponent, AlertService, BreadcrumbsComponent, BreadcrumbsItemComponent, ButtonComponent, ButtonLoaderComponent, CharacterCountComponent, CheckboxItemComponent, CheckboxesComponent, CollapsibleComponent, ConditionDirective, ContentComponent, DateInputComponent, DefinitionComponent, DescriptionComponent, DescriptionItemComponent, DescriptionListComponent, DesyAngularModule, DesyButtonsModule, DesyCommonsModule, DesyFormsModule, DesyModalsModule, DesyNavModule, DesyPaginationModule, DesyTablesModule, DesyViewsModule, DetailsComponent, DialogComponent, DialogService, DropdownComponent, ErrorMessageComponent, ErrorSummaryComponent, ErrorSummaryItemComponent, FieldsetComponent, FileUploadComponent, FooterComponent, FooterMetaComponent, FooterMetaItemComponent, FooterNavigationComponent, FooterNavigationItemComponent, HeaderComponent, HeaderDropdownComponent, HeaderNavigationComponent, HeaderOffcanvasButtonComponent, HeaderOffcanvasCloseButtonComponent, HeaderOffcanvasComponent, HeaderSubnavComponent, HintComponent, IconComponent, InputComponent, InputGroupComponent, InputGroupDividerComponent, InputGroupInputComponent, InputGroupSelectComponent, ItemComponent, ItemContentBottomComponent, ItemContentRightComponent, ItemItemComponent, LabelComponent, LegendComponent, ListboxComponent, ListboxItemComponent, ListboxLabelComponent, MediaObjectComponent, MenuHorizontalComponent, MenuHorizontalItemComponent, MenuVerticalComponent, MenuVerticalItemComponent, MenuVerticalItemSubComponent, MenuVerticalItemSubItemComponent, MenubarComponent, MenubarItemComponent, MenubarLabelComponent, MenubarSubitemComponent, MenubarSubsubitemComponent, ModalButtonPrimaryComponent, ModalButtonSecondaryComponent, ModalComponent, NavComponent, NavItemComponent, NotificationComponent, NotificationItemComponent, OptionComponent, OptionGroupComponent, OrderBy, PaginationComponent, PillComponent, RadioItemComponent, RadiosComponent, SearchBarComponent, SelectComponent, SkipLinkComponent, SpinnerComponent, StatusComponent, StatusItemComponent, TableAdvancedComponent, TableAdvancedHeaderCellComponent, TableAdvancedHeaderComponent, TableAdvancedRowCellComponent, TableAdvancedRowComponent, TableCaptionComponent, TableCellComponent, TableComponent, TableHeaderComponent, TableRowComponent, TabsComponent, TermComponent, TextareaComponent, TitleComponent, TooltipContentComponent, summaryTextOrSummaryHtmlRequiredFunction,
|
|
8875
|
+
export { AccordionComponent, AccordionHeaderComponent, AccordionItemComponent, AlertComponent, AlertService, BreadcrumbsComponent, BreadcrumbsItemComponent, ButtonComponent, ButtonLoaderComponent, CharacterCountComponent, CheckboxItemComponent, CheckboxesComponent, CollapsibleComponent, ConditionDirective, ContentComponent, DateInputComponent, DefinitionComponent, DescriptionComponent, DescriptionItemComponent, DescriptionListComponent, DesyAngularModule, DesyButtonsModule, DesyCommonsModule, DesyFormsModule, DesyModalsModule, DesyNavModule, DesyPaginationModule, DesyTablesModule, DesyViewsModule, DetailsComponent, DialogComponent, DialogService, DropdownComponent, ErrorMessageComponent, ErrorSummaryComponent, ErrorSummaryItemComponent, FieldsetComponent, FileUploadComponent, FooterComponent, FooterMetaComponent, FooterMetaItemComponent, FooterNavigationComponent, FooterNavigationItemComponent, HeaderComponent, HeaderDropdownComponent, HeaderNavigationComponent, HeaderOffcanvasButtonComponent, HeaderOffcanvasCloseButtonComponent, HeaderOffcanvasComponent, HeaderSubnavComponent, HintComponent, IconComponent, InputComponent, InputGroupComponent, InputGroupDividerComponent, InputGroupInputComponent, InputGroupSelectComponent, ItemComponent, ItemContentBottomComponent, ItemContentRightComponent, ItemItemComponent, LabelComponent, LegendComponent, ListboxComponent, ListboxItemComponent, ListboxLabelComponent, MediaObjectComponent, MenuHorizontalComponent, MenuHorizontalItemComponent, MenuVerticalComponent, MenuVerticalItemComponent, MenuVerticalItemSubComponent, MenuVerticalItemSubItemComponent, MenubarComponent, MenubarItemComponent, MenubarLabelComponent, MenubarSubitemComponent, MenubarSubsubitemComponent, ModalButtonPrimaryComponent, ModalButtonSecondaryComponent, ModalComponent, NavComponent, NavItemComponent, NotificationComponent, NotificationItemComponent, OptionComponent, OptionGroupComponent, OrderBy, PaginationComponent, PillComponent, RadioItemComponent, RadiosComponent, SearchBarComponent, SelectComponent, SkipLinkComponent, SpinnerComponent, StatusComponent, StatusItemComponent, TableAdvancedComponent, TableAdvancedHeaderCellComponent, TableAdvancedHeaderComponent, TableAdvancedRowCellComponent, TableAdvancedRowComponent, TableCaptionComponent, TableCellComponent, TableComponent, TableHeaderComponent, TableRowComponent, TabsComponent, TermComponent, TextareaComponent, TitleComponent, TooltipContentComponent, TreeComponent, TreeItemComponent, TreeItemsGeneratorComponent, TreeSubComponent, summaryTextOrSummaryHtmlRequiredFunction, AccessibilityComponent as ɵa, AccessibilityAndContentRequiredComponent as ɵb, AttributeChangeDirective as ɵba, InnerContentDirective as ɵbb, ClickOutsideDirective as ɵbc, ContentChangeDirective as ɵbd, ContentEmptyDirective as ɵbe, CustomInnerContentDirective as ɵbf, TooltipComponent as ɵbg, TemplateDrivenWrapperComponent as ɵbh, DateInputDividerComponent as ɵbi, DateInputDayComponent as ɵbj, DateInputMonthComponent as ɵbk, DateInputYearComponent as ɵbl, FocusClickedCellDirective as ɵbm, AccessibilityAndTextOrHtmlRequiredComponent as ɵc, DesyContentChild as ɵd, ContentBaseComponent as ɵe, FormFieldComponent as ɵf, SelectItemComponent as ɵg, DesyOnInputChange as ɵh, InputGroupItemComponent as ɵi, DateInputItemComponent as ɵj, ITreeItem as ɵk, TreeCheckboxComponent as ɵl, HeaderNavigationItemComponent as ɵm, MenubaritemDirective as ɵn, RowDirective as ɵo, CellDirective as ɵp, TabItemComponent as ɵq, PanelComponent as ɵr, ToggleComponent as ɵs, ToggleOnStateComponent as ɵt, ToggleOffStateComponent as ɵu, SharedModule as ɵv, TextOrHtmlRequiredComponent as ɵw, InnerHtmlPipe as ɵx, MakeHtmlListPipe as ɵy, ExternalHrefPipe as ɵz };
|
|
7856
8876
|
//# sourceMappingURL=desy-angular.js.map
|