desy-angular 6.0.0 → 6.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"desy-angular.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/desy-angular/src/lib/shared/components/accessibility/accessibility.component.ts","../../../projects/desy-angular/src/lib/shared/components/content-base/content-base.component.ts","../../../projects/desy-angular/src/lib/shared/components/text-or-html-required/text-or-html-required.component.ts","../../../projects/desy-angular/src/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.ts","../../../projects/desy-angular/src/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/button/button.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/button-loader/button-loader.component.ts","../../../projects/desy-angular/src/lib/shared/utils/focus-utils.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/dropdown/dropdown.component.ts","../../../projects/desy-angular/src/lib/shared/utils/string-utils.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.ts","../../../projects/desy-angular/src/lib/shared/decorators/desy-content-child.decorator.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/pill/pill.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/content/content.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/description/description.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/icon/icon.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/title/title.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/hint/hint.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/label/label.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/error-message/error-message.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/fieldset/legend/legend.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/fieldset/fieldset.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/form-field/form-field.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/textarea/textarea.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/character-count/character-count.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input/input.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/select-item/select-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/option/option.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/option-group/option-group.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/select.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/file-upload/file-upload.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.ts","../../../projects/desy-angular/src/lib/shared/decorators/desy-on-input-change.decorator.ts","../../../projects/desy-angular/src/lib/shared/pipes/make-html-list.pipe.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/radios/radio-item/radio-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/radios/radios.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/checkboxes/checkboxes.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/search-bar/search-bar.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-sub/tree-sub.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/interfaces/itree-item.ts","../../../projects/desy-angular/src/lib/shared/utils/search-utils.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-item/tree-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree.component.ts","../../../projects/desy-angular/src/lib/desy-forms/directives/condition.directive.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/dialog/dialog.component.ts","../../../projects/desy-angular/src/lib/desy-modals/services/dialog.service.ts","../../../projects/desy-angular/src/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-navigation/header-navigation.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/nav/nav-item/nav-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/nav/nav.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-subnav/header-subnav.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/skip-link/skip-link.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-meta/footer-meta.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/error-summary/error-summary.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/directives/menubaritem.directive.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/menubar.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/notification/notification-item/notification-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/notification/notification.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-cell.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-header.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-caption.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-row.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/table.component.ts","../../../projects/desy-angular/src/lib/desy-tables/interfaces/head-cell-data.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.ts","../../../projects/desy-angular/src/lib/desy-tables/directives/cell.directive.ts","../../../projects/desy-angular/src/lib/desy-tables/directives/row.directive.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/table-advanced.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/alert/alert.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion/accordion-header/accordion-header.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion/accordion-item/accordion-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion/accordion.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-history.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/spinner/spinner.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/details/details.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/term/term.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/definition/definition.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/description-item/description-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/description-list.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/collapsible/collapsible.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item-content-right/item-content-right.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item-item/item-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/media-object/media-object.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/status/status.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/status-item/status-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/tabs/panel/panel.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/tabs/tab-item/tab-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/tabs/tabs.component.ts","../../../projects/desy-angular/src/lib/desy-views/services/alert.service.ts","../../../projects/desy-angular/src/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.ts","../../../projects/desy-angular/src/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.ts","../../../projects/desy-angular/src/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.ts","../../../projects/desy-angular/src/lib/desy-pagination/components/pagination/pagination.component.ts","../../../projects/desy-angular/src/lib/shared/pipes/inner-html.pipe.ts","../../../projects/desy-angular/src/lib/shared/pipes/external-href.pipe.ts","../../../projects/desy-angular/src/lib/shared/directives/attribute-change.directive.ts","../../../projects/desy-angular/src/lib/shared/directives/inner-content.directive.ts","../../../projects/desy-angular/src/lib/shared/directives/click-outside.directive.ts","../../../projects/desy-angular/src/lib/shared/directives/content-change.directive.ts","../../../projects/desy-angular/src/lib/shared/directives/custom-inner-content.directive.ts","../../../projects/desy-angular/src/lib/shared/shared.module.ts","../../../projects/desy-angular/src/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/divider/divider.component.ts","../../../projects/desy-angular/src/lib/desy-commons/desy-commons.module.ts","../../../projects/desy-angular/src/lib/desy-forms/desy-forms.module.ts","../../../projects/desy-angular/src/lib/desy-views/components/tooltip/tooltip.component.ts","../../../projects/desy-angular/src/lib/desy-views/desy-views.module.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/desy-buttons.module.ts","../../../projects/desy-angular/src/lib/desy-modals/desy-modals.module.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/menu-navigation.component.ts","../../../projects/desy-angular/src/lib/desy-nav/desy-nav.module.ts","../../../projects/desy-angular/src/lib/desy-tables/directives/focus-clicked-cell.directive.ts","../../../projects/desy-angular/src/lib/desy-tables/desy-tables.module.ts","../../../projects/desy-angular/src/lib/desy-pagination/desy-pagination.module.ts","../../../projects/desy-angular/src/lib/desy-angular.module.ts","../../../projects/desy-angular/src/public-api.ts","../../../projects/desy-angular/src/desy-angular.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AccesibilityData } from '../../interfaces/accesibility-data';\r\n\r\n/**\r\n * componente para heredar los atributos de accesibilidad\r\n */\r\n@Component({\r\n selector: 'desy-accessibility',\r\n template: '<div></div>'\r\n})\r\nexport class AccessibilityComponent implements AccesibilityData {\r\n @Input() role: string;\r\n @Input() ariaLabel: string;\r\n @Input() ariaDescribedBy: string;\r\n @Input() ariaLabelledBy: string;\r\n @Input() ariaHidden: string;\r\n @Input() ariaDisabled: string;\r\n @Input() ariaControls: string;\r\n @Input() ariaCurrent: string;\r\n @Input() ariaLive: string;\r\n @Input() ariaExpanded: string;\r\n @Input() ariaErrorMessage: string;\r\n @Input() ariaHasPopup: string;\r\n @Input() ariaModal: string;\r\n @Input() tabindex: string;\r\n\r\n /*\r\n Copiar para facilitar el uso por defecto\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 [attr.tabindex]=\"tabindex ? tabindex : null\"\r\n */\r\n}\r\n","import {Component, TemplateRef, ViewChild} from '@angular/core';\r\nimport {AccessibilityComponent} from '../accessibility/accessibility.component';\r\n/**\r\n * Componente base para proyectar contenido\r\n */\r\n@Component({\r\n selector: 'desy-content-base',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ContentBaseComponent extends AccessibilityComponent {\r\n\r\n @ViewChild('contentTemplate', { static: true }) private content: TemplateRef<any>;\r\n\r\n public getContent(): TemplateRef<any> {\r\n return this.content;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'desy-text-or-html-required',\r\n template: '<div></div>'\r\n})\r\nexport class TextOrHtmlRequiredComponent {\r\n\r\n /***\r\n * componente base para el comportamiento de texto o html required - YA NO ES REQUIRIDO\r\n * \r\n **/\r\n\r\n @Input() text: string;\r\n @Input() html: string;\r\n\r\n}\r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { AccesibilityData } from '../../interfaces/accesibility-data';\r\nimport { TextOrHtmlRequiredComponent } from '../text-or-html-required/text-or-html-required.component';\r\n\r\n@Component({\r\n selector: 'desy-accessibility-and-text-or-html-required',\r\n template: '<div></div>'\r\n})\r\nexport class AccessibilityAndTextOrHtmlRequiredComponent extends TextOrHtmlRequiredComponent implements AccesibilityData {\r\n\r\n /**\r\n * componente para heredar los atributos de accesibilidad y\r\n * el texto o html required - YA NO ES REQUIERIDO\r\n * \r\n * \r\n */\r\n\r\n // Atributos de accesibilidad\r\n @Input() role: string;\r\n @Input() ariaLabel: string;\r\n @Input() ariaDescribedBy: string;\r\n @Input() ariaLabelledBy: string;\r\n @Input() ariaHidden: string;\r\n @Input() ariaDisabled: string;\r\n @Input() ariaControls: string;\r\n @Input() ariaCurrent: string;\r\n @Input() ariaLive: string;\r\n @Input() ariaExpanded: string;\r\n @Input() ariaErrorMessage: string;\r\n @Input() ariaHasPopup: string;\r\n @Input() tabindex: string;\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AccesibilityData } from '../../interfaces/accesibility-data';\r\n\r\n@Component({\r\n selector: 'desy-accessibility-and-content-required',\r\n template: '<div></div>'\r\n})\r\nexport class AccessibilityAndContentRequiredComponent implements AccesibilityData {\r\n\r\n /**\r\n * componente para heredar los atributos de accesibilidad y\r\n * el content required\r\n *\r\n * si en el componente que extiende de este, se implementa el onInit o Onchanges,\r\n * habra que incluir la llamada al a funcion contentRequiredFunction\r\n *\r\n */\r\n @Input() html: string;\r\n @Input() text: string;\r\n\r\n // Atributos de accesibilidad\r\n @Input() role: string;\r\n @Input() ariaLabel: string;\r\n @Input() ariaDescribedBy: string;\r\n @Input() ariaLabelledBy: string;\r\n @Input() ariaHidden: string;\r\n @Input() ariaDisabled: string;\r\n @Input() ariaControls: string;\r\n @Input() ariaCurrent: string;\r\n @Input() ariaLive: string;\r\n @Input() ariaExpanded: string;\r\n @Input() ariaErrorMessage: string;\r\n @Input() ariaHasPopup: string;\r\n @Input() tabindex: string;\r\n\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\r\nimport { AccessibilityComponent, ContentBaseComponent} from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-button',\r\n templateUrl: './button.component.html'\r\n})\r\nexport class ButtonComponent extends ContentBaseComponent {\r\n\r\n public static readonly ELEMENT_A: string = 'a';\r\n public static readonly ELEMENT_BUTTON: string = 'button';\r\n public static readonly ELEMENT_INPUT: string = 'input';\r\n\r\n\r\n @HostBinding('attr.tabindex') readonly hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() html: string;\r\n @Input() text: string;\r\n\r\n @Input() element: string; // 'a', 'button' o 'input'\r\n @Input() name: string;\r\n @Input() type: string;\r\n @Input() value: any;\r\n @Input() disabled: boolean;\r\n @Input() href: string;\r\n @Input() target: string;\r\n @Input() preventDoubleClick: boolean;\r\n\r\n @Input() routerLink: string|any[];\r\n @Input() routerLinkActiveClasses: string|string[];\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n\r\n avoidingDoubleClick = false;\r\n\r\n onClick(event: any): void {\r\n if (this.preventDoubleClick) {\r\n if (!this.avoidingDoubleClick){\r\n this.avoidingDoubleClick = true;\r\n this.clickEvent.emit(event);\r\n setTimeout(() => {\r\n this.avoidingDoubleClick = false;\r\n }, 1000);\r\n } else {\r\n event.preventDefault(); // evitamos propagar el evento por ejemplo un submit en un formulario\r\n }\r\n } else {\r\n this.clickEvent.emit(event);\r\n }\r\n }\r\n\r\n getElement(): string {\r\n let element: string;\r\n if (this.element) {\r\n element = this.element.toLocaleLowerCase();\r\n } else {\r\n if (this.href) {\r\n element = ButtonComponent.ELEMENT_A;\r\n } else {\r\n element = ButtonComponent.ELEMENT_BUTTON;\r\n }\r\n }\r\n return element;\r\n }\r\n\r\n getClassNames(): string {\r\n let classNames = 'c-button';\r\n if (this.classes) {\r\n classNames += ' ' + this.classes;\r\n }\r\n if (this.disabled) {\r\n classNames += ' c-button--disabled';\r\n }\r\n return classNames;\r\n }\r\n\r\n isDisabled(): boolean {\r\n return this.disabled ? true : null;\r\n }\r\n\r\n get staticElementTypeA(): string {\r\n return ButtonComponent.ELEMENT_A;\r\n }\r\n\r\n get staticElementTypeButton(): string {\r\n return ButtonComponent.ELEMENT_BUTTON;\r\n }\r\n\r\n get staticElementTypeInput(): string {\r\n return ButtonComponent.ELEMENT_INPUT;\r\n }\r\n}\r\n","import {Component, HostBinding, Input} from '@angular/core';\r\nimport { ButtonComponent } from '../button/button.component';\r\n\r\n@Component({\r\n selector: 'desy-button-loader',\r\n templateUrl: './button-loader.component.html'\r\n})\r\nexport class ButtonLoaderComponent extends ButtonComponent {\r\n\r\n public static readonly STATE_LOADING: string = 'is-loading';\r\n public static readonly STATE_SUCCESS: string = 'is-success';\r\n\r\n private static readonly DEFAULT_LOADER_TEXT: string = 'Acción en curso';\r\n private static readonly DEFAULT_SUCCESS_TEXT: string = 'Acción realizada con éxito';\r\n\r\n @HostBinding('attr.tabindex') readonly hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host\r\n\r\n @Input() loaderText: string;\r\n @Input() loaderClasses: string;\r\n @Input() state: string;\r\n @Input() successText: string;\r\n\r\n getClassNames(): string {\r\n let classNames = 'c-button-loader relative';\r\n if (this.classes) {\r\n classNames += ' ' + this.classes;\r\n }\r\n if (this.disabled) {\r\n classNames += ' c-button-loader--disabled';\r\n }\r\n return classNames;\r\n }\r\n\r\n getSpinnerText(): string {\r\n let spinnerText: string = null;\r\n\r\n if (this.state === ButtonLoaderComponent.STATE_LOADING) {\r\n spinnerText = this.loaderText ? this.loaderText : ButtonLoaderComponent.DEFAULT_LOADER_TEXT;\r\n }\r\n\r\n return spinnerText;\r\n }\r\n\r\n\r\n getSuccessText(): string {\r\n let successText: string = null;\r\n\r\n if (this.state === ButtonLoaderComponent.STATE_SUCCESS) {\r\n successText = this.successText ? this.successText : ButtonLoaderComponent.DEFAULT_SUCCESS_TEXT;\r\n }\r\n\r\n return successText;\r\n }\r\n}\r\n","export class FocusUtils {\r\n\r\n public static getFirstFocusableElement(parent?: HTMLElement): HTMLElement {\r\n const selectionableElements = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\r\n let focusableList;\r\n if (parent) {\r\n focusableList = parent.querySelectorAll(selectionableElements);\r\n } else {\r\n focusableList = document.querySelectorAll(selectionableElements);\r\n }\r\n\r\n if (!focusableList || focusableList.length === 0) {\r\n return null;\r\n }\r\n\r\n let firstFocusable = null;\r\n let i = 0;\r\n while (i < focusableList.length) {\r\n try {\r\n const element = focusableList.item(i) as HTMLInputElement;\r\n if (FocusUtils.isFocusable(element)) {\r\n firstFocusable = element;\r\n break;\r\n }\r\n } catch (e) {\r\n\r\n }\r\n i++;\r\n }\r\n\r\n return firstFocusable;\r\n }\r\n\r\n public static isFocusable(element: any): boolean {\r\n if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)) {\r\n return true;\r\n }\r\n\r\n if (element.disabled) {\r\n return false;\r\n }\r\n\r\n switch (element.nodeName) {\r\n case 'A':\r\n return !!element.href && element.rel !== 'ignore';\r\n case 'INPUT':\r\n return element.type !== 'hidden' && element.type !== 'file';\r\n case 'BUTTON':\r\n case 'SELECT':\r\n case 'TEXTAREA':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ElementRef,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n HostBinding,\r\n} from '@angular/core';\r\nimport { AccessibilityAndContentRequiredComponent } from '../../../shared/components';\r\nimport { FocusUtils } from '../../../shared/utils/focus-utils';\r\n\r\n@Component({\r\n selector: 'desy-dropdown',\r\n templateUrl: './dropdown.component.html'\r\n})\r\nexport class DropdownComponent extends AccessibilityAndContentRequiredComponent implements OnInit, OnChanges {\r\n \r\n static readonly KEY_CODE_ESC = 'Escape';\r\n\r\n @ViewChild('dropdownContent', { read: ElementRef, static: true }) dropdownContent: ElementRef;\r\n\r\n @Input() id: string;\r\n @Input() disabled: boolean;\r\n @Input() hiddenText: string;\r\n @Input() @HostBinding('class') classesContainer: any;\r\n @Input() classesTooltip: string;\r\n @Input() caller: TemplateRef<any>;\r\n @Input() classes: string;\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n\r\n isOpen = false;\r\n clickOutsideEnabled = false;\r\n\r\n tippyProperties: any;\r\n\r\n ngOnInit(): any {\r\n let contentTooltip: HTMLElement;\r\n if (this.dropdownContent && this.dropdownContent.nativeElement) {\r\n contentTooltip = this.dropdownContent.nativeElement as HTMLElement;\r\n contentTooltip.style.display = 'block';\r\n this.tippyProperties = {\r\n placement: 'bottom-start',\r\n inlinePositioning: true,\r\n content: contentTooltip,\r\n allowHTML: true, // Make sure you are sanitizing any user data if rendering HTML to prevent XSS attacks.\r\n trigger: 'click',\r\n hideOnClick: true,\r\n interactive: true,\r\n arrow: false,\r\n offset: [0, -10],\r\n theme: '',\r\n plugins: [\r\n {\r\n name: 'hideOnPopperBlur',\r\n defaultValue: true,\r\n fn(instance) {\r\n return {\r\n onCreate() {\r\n instance.popper.addEventListener('focusout', (event) => {\r\n if (\r\n instance.props.hideOnPopperBlur &&\r\n event.relatedTarget &&\r\n !instance.popper.contains(event.relatedTarget)\r\n ) {\r\n instance.hide();\r\n }\r\n });\r\n },\r\n };\r\n }\r\n }, {\r\n name: 'hideOnEsc',\r\n defaultValue: true,\r\n fn({hide}): any {\r\n\r\n function onKeyDown(event: KeyboardEvent): void {\r\n if (event.key === DropdownComponent.KEY_CODE_ESC) {\r\n hide();\r\n }\r\n }\r\n\r\n return {\r\n onShow(): void {\r\n document.addEventListener('keydown', onKeyDown);\r\n },\r\n onHide(): void {\r\n document.removeEventListener('keydown', onKeyDown);\r\n },\r\n };\r\n },\r\n }\r\n ],\r\n role: false,\r\n aria: {\r\n content: 'auto',\r\n },\r\n onShown(instance): void {\r\n const firstFocusable = FocusUtils.getFirstFocusableElement(contentTooltip);\r\n if (firstFocusable) {\r\n firstFocusable.focus();\r\n }\r\n }\r\n };\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classesContainer = this.classesContainer ? this.classesContainer : 'relative';\r\n }\r\n\r\n onClick(event: any): void {\r\n if (!this.isDisabled()){\r\n this.clickEvent.emit(event);\r\n }\r\n }\r\n\r\n setOpen(isOpen: boolean): void {\r\n this.isOpen = isOpen;\r\n }\r\n\r\n isDisabled(): boolean {\r\n return this.disabled ? true : null;\r\n }\r\n}\r\n","/**\r\n * Facilita funciones de utilidad para trabajar con strings\r\n */\r\nexport class StringUtils {\r\n\r\n /**\r\n * Escapa los caracteres propios de HTML para mostrarlos como contenido\r\n * @param value texto en formato html\r\n */\r\n public static escapeHtml(value: string): string {\r\n return value ? value\r\n .replace(new RegExp(`&`, 'g'), '&amp;')\r\n .replace(new RegExp(`<`, 'g'), '&lt;')\r\n .replace(new RegExp(`>`, 'g'), '&gt;')\r\n .replace(new RegExp(`\"`, 'g'), '&quot;')\r\n .replace(new RegExp(`'`, 'g'), '&#39;') : '';\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-listbox-label',\r\n templateUrl: './listbox-label.component.html'\r\n})\r\nexport class ListboxLabelComponent extends ContentBaseComponent {\r\n\r\n @Input() classes: string;\r\n\r\n}\r\n","import {Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild} from '@angular/core';\r\nimport {ListboxItemData} from '../../../interfaces/listbox-item-data';\r\nimport {AccessibilityComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-listbox-item',\r\n templateUrl: './listbox-item.component.html'\r\n})\r\nexport class ListboxItemComponent extends AccessibilityComponent implements ListboxItemData, OnChanges {\r\n\r\n @ViewChild('childComponentTemplate') content;\r\n\r\n @Input() id?: string;\r\n @Input() active?: boolean;\r\n @Input() classes?: string;\r\n @Input() title?: string;\r\n\r\n @Output() itemChange = new EventEmitter();\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.itemChange.emit(changes);\r\n }\r\n\r\n}\r\n","import {QueryList} from '@angular/core';\r\n\r\n/**\r\n * Decorador para convertir una queryList de componentes obtenidos con ContentChildren a un único componente, de forma que sea similar a un\r\n * ContentChild pero admitiendo únicamente los compontentes insertados en el primer nivel.\r\n * Debe utilizarse siempre junto a un ContentChildren\r\n * Si en el constructor de la clase en la que se utiliza se inyecta el Change detector con nombre 'changeDetectorRef', se indicará que hay\r\n * cambios cuando se detecten.\r\n * @param options opciones adicionales:\r\n * - onSetCallbackName: nombre del método al que llamar tras asociarse el valor. Esto puede utilizarse, por ejemplo, para sobreescribir\r\n * parámetros definidos externamente en el componente.\r\n * - onDeleteCallbackName: nombre del método al que llamar tras desasociarse el valor.\r\n */\r\nexport function DesyContentChild(options?: { onSetCallbackName?: string, onDeleteCallbackName?: string }): PropertyDecorator {\r\n return (target: any, propertyKey: string) => {\r\n const privateKeyName = `_${propertyKey}`;\r\n const privateQueryListKeyName = `_${propertyKey}Querylist`;\r\n\r\n Object.defineProperty(target, propertyKey, {\r\n set(value): void {\r\n const queryList = value instanceof QueryList ? value as QueryList<any> : null;\r\n if (queryList && !this[privateQueryListKeyName]) {\r\n this[privateQueryListKeyName] = queryList;\r\n queryList.changes.subscribe(() => {\r\n const previousValue = this[privateKeyName];\r\n this[privateKeyName] = queryList && queryList.length > 0 ? queryList.first : null;\r\n\r\n if (options && options.onSetCallbackName && this[options.onSetCallbackName] && this[privateKeyName] ) {\r\n this[options.onSetCallbackName](this[privateKeyName]);\r\n }\r\n\r\n if (options && options.onDeleteCallbackName && this[options.onDeleteCallbackName] && previousValue && !this[privateKeyName] ) {\r\n this[options.onDeleteCallbackName]();\r\n }\r\n });\r\n queryList.notifyOnChanges();\r\n }\r\n },\r\n get(): any {\r\n return this[privateKeyName];\r\n }\r\n });\r\n };\r\n}\r\n","import {\r\n Component,\r\n ContentChildren, DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {AccessibilityAndTextOrHtmlRequiredComponent} from '../../../shared/components';\r\nimport {ListboxLabelData} from '../../interfaces/listbox-label-data';\r\nimport {ListboxItemData} from '../../interfaces/listbox-item-data';\r\nimport {StringUtils} from '../../../shared/utils/string-utils';\r\nimport {ListboxLabelComponent} from './listbox-label/listbox-label.component';\r\nimport {ListboxItemComponent} from './listbox-item/listbox-item.component';\r\nimport {Subscription} from 'rxjs';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-listbox',\r\n templateUrl: './listbox.component.html'\r\n})\r\nexport class ListboxComponent extends AccessibilityAndTextOrHtmlRequiredComponent implements OnInit, OnChanges, DoCheck {\r\n\r\n static readonly KEY_CODE_ESC = 'Escape';\r\n\r\n @ViewChild('button', { read: ElementRef, static: true }) listboxButton: ElementRef;\r\n @ViewChild('list', { read: ElementRef }) listboxList: ElementRef;\r\n @ViewChild('tooltip', { read: ElementRef, static: true }) listboxContent: ElementRef;\r\n @ViewChildren('option', { read: ElementRef }) listboxOptions: QueryList<ElementRef>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ListboxLabelComponent) labelComponent: ListboxLabelComponent;\r\n @ContentChildren(ListboxItemComponent) itemComponentList: QueryList<ListboxItemComponent>;\r\n\r\n @Input() id: string; // required\r\n @Input() isMultiselectable: boolean;\r\n @Input() doesChangeButtonText: boolean;\r\n @Input() label: ListboxLabelData;\r\n @Input() classes: string;\r\n @Input() classesContainer: string;\r\n @Input() classesTooltip: string;\r\n @Input() idPrefix: string;\r\n @Input() disabled: boolean;\r\n @Input() items: ListboxItemData[];\r\n @Output() itemsChange = new EventEmitter();\r\n @Output() activeItemChange = new EventEmitter();\r\n\r\n tippyProperties: any; // Propiedades de tippy\r\n currentFocusIndex: number; // Índice del elemento actual con focus\r\n buttonContentHtml: string; // Puede ser el pasado por parámetro o el item seleccionado en caso de currentFocusIndex=true\r\n isListVisible = false; // Indica si la lista se está mostrando\r\n\r\n // conditionalId y conditionalItem representan en desy-html el item activo. Aquí es mejor obtenerlo cuando se necesita\r\n lastActiveItems: { item: ListboxItemData, index: number }[];\r\n itemComponentSubscriptions: Subscription[];\r\n\r\n itemList: ListboxItemData[];\r\n\r\n\r\n ngOnInit(): void {\r\n const listboxButtonElement = this.listboxButton.nativeElement;\r\n if (this.listboxContent && this.listboxContent.nativeElement) {\r\n const contentTooltip = this.listboxContent.nativeElement as HTMLElement;\r\n this.tippyProperties = { \r\n placement: 'bottom-start',\r\n inlinePositioning: true, \r\n content: contentTooltip,\r\n allowHTML: true, // Make sure you are sanitizing any user data if rendering HTML to prevent XSS attacks.\r\n trigger: 'click',\r\n hideOnClick: true,\r\n interactive: true,\r\n arrow: false,\r\n offset: [0, -10],\r\n theme: '',\r\n plugins: [\r\n {\r\n name: 'hideOnPopperBlur',\r\n defaultValue: true,\r\n fn(instance) {\r\n return {\r\n onCreate() {\r\n instance.popper.addEventListener('focusout', (event) => {\r\n if (\r\n instance.props.hideOnPopperBlur &&\r\n event.relatedTarget &&\r\n !instance.popper.contains(event.relatedTarget)\r\n ) {\r\n instance.hide();\r\n }\r\n });\r\n },\r\n };\r\n }\r\n }, {\r\n name: 'hideOnEsc',\r\n defaultValue: true,\r\n fn({hide}): any {\r\n\r\n function onKeyDown(event: KeyboardEvent): void {\r\n if (event.key === ListboxComponent.KEY_CODE_ESC) {\r\n hide();\r\n listboxButtonElement.focus();\r\n }\r\n }\r\n\r\n return {\r\n onShow(): void {\r\n document.addEventListener('keydown', onKeyDown);\r\n },\r\n onHide(): void {\r\n document.removeEventListener('keydown', onKeyDown);\r\n },\r\n };\r\n },\r\n }\r\n ],\r\n role: false,\r\n aria: {\r\n content: 'auto',\r\n },\r\n onShow: this.onListShow.bind(this),\r\n onHidden: this.onListClose.bind(this)\r\n };\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n setTimeout(() => {\r\n\r\n if (this.itemComponentList && this.itemComponentList.length > 0) {\r\n if (this.itemComponentSubscriptions) {\r\n this.itemComponentSubscriptions.forEach(s => s.unsubscribe());\r\n }\r\n this.itemComponentSubscriptions = [];\r\n this.itemList = [];\r\n this.itemComponentList.forEach(item => {\r\n const subscription = item.itemChange.subscribe(() => this.checkActiveItems());\r\n this.itemComponentSubscriptions.push(subscription);\r\n this.itemList.push(item);\r\n });\r\n } else {\r\n this.itemList = this.items;\r\n }\r\n\r\n this.checkActiveItems();\r\n });\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (!this.items || !this.itemList) {\r\n return;\r\n }\r\n\r\n this.checkActiveItems();\r\n }\r\n\r\n private getActiveItemsData(): { item: ListboxItemData, index: number }[] {\r\n return this.itemList\r\n .map((item, index) => item.active ? {item, index} : null)\r\n .filter(item => item !== null);\r\n }\r\n\r\n private checkActiveItems(): void {\r\n let activeItems: { item: ListboxItemData, index: number }[] = this.itemList\r\n .map((item, index) => item.active ? {item, index} : null)\r\n .filter(item => item !== null);\r\n\r\n let hasActiveItemChange = false;\r\n if (this.lastActiveItems && activeItems.length === this.lastActiveItems.length) {\r\n for (let i = 0; i < activeItems.length; i++) {\r\n if (activeItems[i].index !== this.lastActiveItems[i].index) {\r\n hasActiveItemChange = true;\r\n break;\r\n }\r\n }\r\n } else {\r\n hasActiveItemChange = true;\r\n }\r\n\r\n // Si hay cambios externos y es selección única, anulamos la selección anterior\r\n if (this.lastActiveItems && !this.isMultiselectable && hasActiveItemChange) {\r\n if (activeItems.length !== this.lastActiveItems.length) {\r\n for (const newItem of activeItems) {\r\n if (this.lastActiveItems.findIndex(i => i.index === newItem.index) >= 0) {\r\n newItem.item.active = false;\r\n }\r\n\r\n activeItems = activeItems.filter(item => item.item.active);\r\n }\r\n }\r\n }\r\n\r\n this.lastActiveItems = activeItems;\r\n\r\n // Se cambia el contenido del botón\r\n if (this.doesChangeButtonText && !this.isMultiselectable && activeItems.length > 0) {\r\n const activeItemOption = this.listboxOptions.find((item, index) => index === activeItems[0].index);\r\n if (activeItemOption) {\r\n this.buttonContentHtml = activeItemOption.nativeElement.innerHTML;\r\n }\r\n } else {\r\n this.buttonContentHtml = this.html ? this.html : null;\r\n }\r\n\r\n // Si hay cambios, se emiten\r\n if (hasActiveItemChange) {\r\n this.itemsChange.emit(this.itemList);\r\n this.activeItemChange.emit(activeItems.length > 0 ? activeItems[0].item : null);\r\n }\r\n }\r\n\r\n onListShow(): void {\r\n this.isListVisible = true;\r\n if (this.listboxList) {\r\n setTimeout(() => this.listboxList.nativeElement.focus());\r\n }\r\n }\r\n\r\n onListClose(): void {\r\n this.isListVisible = false;\r\n }\r\n\r\n onListFocus(): void {\r\n const activeItemsData = this.getActiveItemsData();\r\n if (activeItemsData.length > 0) {\r\n const activeElem = document.getElementById(this.getItemId(activeItemsData[0].item, activeItemsData[0].index));\r\n if (activeElem) {\r\n activeElem.focus();\r\n this.currentFocusIndex = activeItemsData[0].index;\r\n }\r\n } else if (this.itemList && this.itemList.length > 0) {\r\n this.currentFocusIndex = 0;\r\n if (!this.isMultiselectable) {\r\n this.selectItem(0);\r\n }\r\n } else {\r\n console.warn('No element to focus');\r\n }\r\n }\r\n\r\n moveFocus(position: number, event: KeyboardEvent): void {\r\n event.preventDefault();\r\n if (position >= 0 && position < this.itemList.length) {\r\n if (this.isMultiselectable) {\r\n this.currentFocusIndex = position;\r\n } else {\r\n this.selectItem(position);\r\n }\r\n }\r\n }\r\n\r\n onSpace(event: KeyboardEvent): void {\r\n event.preventDefault();\r\n if (this.isMultiselectable) {\r\n this.selectItem(this.currentFocusIndex);\r\n }\r\n }\r\n\r\n selectItem(index: number): void {\r\n if (!this.isMultiselectable) {\r\n this.itemList.forEach(item => item.active = false);\r\n this.itemList[index].active = true;\r\n } else {\r\n this.itemList[index].active = !this.itemList[index].active;\r\n }\r\n this.currentFocusIndex = index;\r\n\r\n this.checkActiveItems();\r\n }\r\n\r\n /*\r\n * Métodos para facilitar contenido al template\r\n */\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.id + '-listbox-item';\r\n }\r\n\r\n getItemId(item: ListboxItemData, index: number): string {\r\n let itemId: string;\r\n if (item.id) {\r\n itemId = item.id;\r\n } else {\r\n itemId = this.getIdPrefix();\r\n if (index > 0) {\r\n itemId += `-${index}`;\r\n }\r\n }\r\n return itemId;\r\n }\r\n\r\n hasLabel(): boolean {\r\n return !!(this.label || this.labelComponent);\r\n }\r\n\r\n getLabelContent(label: ListboxLabelData): string {\r\n return label.html ? label.html : `<p>${ StringUtils.escapeHtml(label.text) }</p>`;\r\n }\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { AccessibilityAndContentRequiredComponent } from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-pill',\r\n templateUrl: './pill.component.html'\r\n})\r\nexport class PillComponent extends AccessibilityAndContentRequiredComponent {\r\n\r\n public static readonly TYPE_A: string = 'a';\r\n public static readonly TYPE_BUTTON: string = 'button';\r\n public static readonly TYPE_SPAN: string = 'span';\r\n\r\n @Input() type: string; // 'a', 'button' o 'span'\r\n @Input() href: string;\r\n @Input() target: string;\r\n @Input() routerLink: string|any[];\r\n @Input() routerLinkActiveClasses: string|string[];\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n\r\n @HostBinding('attr.tabindex') readonly hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host\r\n\r\n onClick(event: any): void {\r\n this.clickEvent.emit(event);\r\n }\r\n\r\n getType(): string {\r\n let type: string;\r\n if (this.type){\r\n type = this.type.toLocaleLowerCase();\r\n } else {\r\n if (this.href) {\r\n type = PillComponent.TYPE_A;\r\n } else {\r\n type = PillComponent.TYPE_SPAN;\r\n }\r\n }\r\n return type;\r\n }\r\n\r\n getClassNames(): string {\r\n let classNames = 'c-pill';\r\n if (this.classes) {\r\n classNames += ' ' + this.classes;\r\n }\r\n return classNames;\r\n }\r\n\r\n get staticElementTypeA(): string {\r\n return PillComponent.TYPE_A;\r\n }\r\n\r\n get staticElementTypeButton(): string {\r\n return PillComponent.TYPE_BUTTON;\r\n }\r\n\r\n get staticElementTypeSpan(): string {\r\n return PillComponent.TYPE_SPAN;\r\n }\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../shared/components';\r\nimport {ContentData} from '../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-content',\r\n templateUrl: './content.component.html'\r\n})\r\nexport class ContentComponent extends ContentBaseComponent implements ContentData {\r\n @Input() classes: string;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../shared/components';\r\nimport {DescriptionData} from '../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-description',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class DescriptionComponent extends ContentBaseComponent implements DescriptionData {\r\n @Input() classes: string;\r\n @Input() visuallyHiddenTitle?: string;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {IconData} from '../../interfaces';\r\nimport {ContentBaseComponent} from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-icon',\r\n templateUrl: './icon.component.html'\r\n})\r\nexport class IconComponent extends ContentBaseComponent implements IconData {\r\n\r\n @Input() type: string;\r\n @Input() containerClasses?: string;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../shared/components';\r\nimport {TitleData} from '../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-title',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TitleComponent extends ContentBaseComponent implements TitleData {\r\n @Input() classes: string;\r\n}\r\n","import {ChangeDetectorRef, Component, Input} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-hint',\r\n templateUrl: './hint.component.html',\r\n})\r\nexport class HintComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() html: string;\r\n @Input() text: string;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n public detectChanges(): void {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import {ChangeDetectorRef, Component, Input} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\n\r\n\r\n@Component({\r\n selector: 'desy-label',\r\n templateUrl: './label.component.html'\r\n})\r\nexport class LabelComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() html: string;\r\n @Input() text: string;\r\n @Input() isPageHeading: boolean;\r\n @Input() headingLevel: number;\r\n @Input() for: string;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n public detectChanges(): void {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import {ChangeDetectorRef, Component, Input} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-error-message',\r\n templateUrl: './error-message.component.html'\r\n})\r\nexport class ErrorMessageComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() html: string;\r\n @Input() text: string;\r\n @Input() visuallyHiddenText: string;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n public detectChanges(): void {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { Component, Input, SimpleChanges } from '@angular/core';\r\nimport { AccessibilityAndContentRequiredComponent } from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-legend',\r\n templateUrl: './legend.component.html'\r\n})\r\nexport class LegendComponent extends AccessibilityAndContentRequiredComponent {\r\n\r\n @Input() classes: string;\r\n @Input() isPageHeading: boolean;\r\n @Input() headingLevel: number;\r\n \r\n}\r\n","import {ChangeDetectorRef, Component, ContentChildren, Input, TemplateRef} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { LegendComponent } from './legend/legend.component';\r\nimport { LegendData } from '../../interfaces';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-fieldset',\r\n templateUrl: './fieldset.component.html'\r\n})\r\nexport class FieldsetComponent extends AccessibilityComponent {\r\n\r\n @Input() describedBy: string;\r\n @Input() errorId: string;\r\n\r\n /**\r\n * legenda, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir legendComponent\r\n * 2) incluir template\r\n * 3) incluir objeto legend (interfaz expuesta)\r\n * 4) incluir legendText - incluir un label con solo un texto\r\n */\r\n @Input() legendRef: TemplateRef<LegendComponent>;\r\n @Input() legendData: LegendData;\r\n @Input() legendText: string;\r\n\r\n @Input() classes: string;\r\n @Input() caller: TemplateRef<any>;\r\n\r\n @Input() id: string;\r\n @Input() headingLevel: number;\r\n\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n public detectChanges(): void {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n HostListener,\r\n Input,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { LabelComponent } from '../label/label.component';\r\nimport { HintComponent } from '../hint/hint.component';\r\nimport { ErrorMessageComponent } from '../error-message/error-message.component';\r\nimport { LabelData, HintData, ErrorMessageData } from '../../interfaces';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n\r\n@Component({\r\n selector: 'desy-form-field',\r\n template: ''\r\n})\r\nexport class FormFieldComponent<T> extends AccessibilityComponent implements ControlValueAccessor {\r\n\r\n @Input() id: string;\r\n @Input() disabled: boolean;\r\n value: T;\r\n\r\n /*\r\n * label, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente\r\n * 2) incluir template\r\n * 3) incluir objeto label (interfaz expuesta)\r\n * 4) incluir legendText - incluir un label con solo un texto\r\n */\r\n @DesyContentChild({ onSetCallbackName: 'overrideLabelParams', onDeleteCallbackName: 'onDeleteLabel'})\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n @Input() labelRef: TemplateRef<LabelComponent>;\r\n @Input() labelData: LabelData;\r\n @Input() labelText: string;\r\n\r\n /*\r\n * hint, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente\r\n * 2) incluir template\r\n * 3) incluir objeto label (interfaz expuesta)\r\n * 4) incluir hintText - incluir un hint con solo un texto\r\n */\r\n @DesyContentChild({ onSetCallbackName: 'overrideHintParams', onDeleteCallbackName: 'onDeleteHint'})\r\n @ContentChildren(HintComponent) hintComponent: HintComponent;\r\n @Input() hintRef: TemplateRef<HintComponent>;\r\n @Input() hintData: HintData;\r\n @Input() hintText: string;\r\n\r\n /*\r\n * errorMessage, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente\r\n * 2) incluir template\r\n * 3) incluir objeto label (interfaz expuesta)\r\n * 4) incluir errorText - incluir un errorText con solo un texto\r\n */\r\n @DesyContentChild({ onSetCallbackName: 'overrideErrorMessageParams', onDeleteCallbackName: 'onDeleteErrorMessage'})\r\n @ContentChildren(ErrorMessageComponent) errorMessageComponent: ErrorMessageComponent;\r\n @Input() errorMessageRef: TemplateRef<ErrorMessageComponent>;\r\n @Input() errorMessageData: ErrorMessageData;\r\n @Input() errorMessageText: string;\r\n\r\n\r\n @HostListener('focusout')\r\n onblur(): void {\r\n // DESY-77 SI TOCAN EL COMPONENTE Y SALEN SIN MODIFICAR EL VALOR, QUE SE ACTUALICE TOUCHED\r\n this.onTouch();\r\n }\r\n\r\n\r\n /*\r\n * Implementación de los métodos del ControlValueAccessor\r\n */\r\n\r\n onChange = (_: any) => {};\r\n onTouch = () => { };\r\n\r\n onInput(value: T): void{\r\n this.value = value;\r\n this.onTouch();\r\n this.onChange(this.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n writeValue(value: T): void {\r\n if (value){\r\n this.value = value;\r\n }\r\n this.onChange(value);\r\n }\r\n\r\n\r\n /*\r\n * Funciones para recuperar valores comunes\r\n */\r\n\r\n getHintId(): string {\r\n return this.hasHint() ? this.id + '-hint' : null;\r\n }\r\n\r\n getErrorId(): string {\r\n return this.hasErrorsMessage() ? this.id + '-error' : null;\r\n }\r\n\r\n hasLabel(): boolean {\r\n return !!(this.hasLabelComponent() || this.labelText || this.labelRef ||\r\n (this.labelData && (this.labelData.text || this.labelData.html)));\r\n }\r\n\r\n hasHint(): boolean {\r\n return !!(this.hasHintComponent() || this.hintText || this.hintRef || (this.hintData && (this.hintData.text || this.hintData.html)));\r\n }\r\n\r\n hasErrorsMessage(): boolean {\r\n return !!(this.hasErrorMessageComponent() || this.errorMessageText || this.errorMessageRef ||\r\n (this.errorMessageData && (this.errorMessageData.text || this.errorMessageData.html)));\r\n }\r\n\r\n hasLabelComponent(): boolean {\r\n return !!this.labelComponent;\r\n }\r\n\r\n hasHintComponent(): boolean {\r\n return !!this.hintComponent;\r\n }\r\n\r\n hasErrorMessageComponent(): boolean {\r\n return !!this.errorMessageComponent;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n ViewChild,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\n\r\n@Component({\r\n selector: 'desy-textarea',\r\n templateUrl: './textarea.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class TextareaComponent extends FormFieldComponent<string> implements OnChanges {\r\n\r\n protected static readonly DEFAULT_ROWS = 5;\r\n\r\n @ViewChild('textarea') textareaElement: ElementRef;\r\n\r\n @Input() name: string;\r\n @Input() rows: number;\r\n @Input() placeholder: string;\r\n @Input() describedBy: string;\r\n\r\n // form group class - asignar clases a la etiqueta desy-input\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n @Input() classes: string;\r\n @Input() autocomplete: string;\r\n @Input() maxlength: number;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n inputTransform = (value: string): string => value;\r\n\r\n ngOnChanges(): void {\r\n this.writeValue(this.value);\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n\r\n getRows(): number {\r\n return this.rows ? this.rows : TextareaComponent.DEFAULT_ROWS;\r\n }\r\n\r\n onInput(value: any): void{\r\n super.onInput(this.inputTransform(this.ensureText(value)));\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = this.inputTransform(this.ensureText(value));\r\n this.onChange(this.value);\r\n }\r\n\r\n registerInputTransform(fn: (value: string) => string): void {\r\n this.inputTransform = fn;\r\n }\r\n\r\n private ensureText(value: any): string {\r\n return value ? value || '' : '';\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport { TextareaComponent } from '../textarea/textarea.component';\r\n\r\n@Component({\r\n selector: 'desy-character-count',\r\n templateUrl: './character-count.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CharacterCountComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CharacterCountComponent extends FormFieldComponent<string> implements AfterViewInit, OnChanges {\r\n\r\n @ViewChild(TextareaComponent) textarea;\r\n\r\n @Input() name: string;\r\n @Input() type: string;\r\n @Input() rows: number;\r\n @Input() placeholder: string;\r\n @Input() maxlength: number;\r\n @Input() countbbdd: boolean;\r\n @Input() maxwords: number;\r\n @Input() threshold: number;\r\n @Input() formGroupClasses: string;\r\n @Input() countMessageClasses: string;\r\n @Input() classes: string;\r\n\r\n textareaElement: HTMLTextAreaElement;\r\n displayCountMessage: boolean;\r\n remaining: number;\r\n\r\n ngAfterViewInit(): void {\r\n this.textareaElement = (this.textarea.textareaElement.nativeElement as HTMLTextAreaElement);\r\n this.textarea.registerInputTransform(this.inputTransform.bind(this));\r\n this.registerOnChange(this.onChange);\r\n this.registerOnTouched(this.onTouch);\r\n this.textarea.setDisabledState(this.disabled);\r\n setTimeout(() => this.textarea.writeValue(this.value), 50);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.textarea) {\r\n setTimeout(() => this.textarea.ngOnChanges(changes), 50);\r\n }\r\n }\r\n\r\n inputTransform(value: string): string {\r\n if (value) {\r\n if (this.maxlength) {\r\n let length = this.calculateLenght(value);\r\n this.displayCountMessage = !this.threshold || length > (this.maxlength * this.threshold / 100);\r\n while (length > this.maxlength) {\r\n value = value.substring(0, value.length - 1);\r\n length = this.calculateLenght(value);\r\n }\r\n this.remaining = this.maxlength - length;\r\n } else {\r\n const words = value.match(/[\\wáéíóúÁÉÍÓÚüÜñÑ]+/g) || [];\r\n this.displayCountMessage = !this.threshold || (words.length > this.maxwords * this.threshold / 100);\r\n while ( words.length > this.maxwords) {\r\n value = value.substring(0, value.lastIndexOf(words.pop()));\r\n }\r\n this.remaining = this.maxwords - words.length;\r\n }\r\n } else {\r\n value = '';\r\n this.displayCountMessage = !this.threshold;\r\n this.remaining = this.maxlength ? this.maxlength : this.maxwords;\r\n }\r\n\r\n this.textareaElement.value = value;\r\n return value;\r\n }\r\n\r\n calculateLenght(value: string): number {\r\n let length = value.length;\r\n if (this.countbbdd && value) {\r\n const specialChars = value.match(/[^A-z0-9_\\s.,:;]/g);\r\n length += specialChars ? specialChars.length : 0;\r\n }\r\n return length;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n if (this.textarea) {\r\n this.textarea.registerOnChange(fn);\r\n this.onChange = (_: any) => {};\r\n }\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n if (this.textarea) {\r\n this.textarea.registerOnTouched(fn);\r\n this.onTouch = () => { };\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n if (this.textarea) {\r\n this.textarea.setDisabledState(isDisabled);\r\n }\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.value = value;\r\n if (this.textarea) {\r\n this.textarea.writeValue(value);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, forwardRef, HostBinding, Input, OnChanges, SimpleChanges, DoCheck } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\n\r\n@Component({\r\n selector: 'desy-input',\r\n templateUrl: './input.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InputComponent extends FormFieldComponent<any> implements OnChanges, DoCheck {\r\n\r\n @Input() name: string;\r\n @Input() type: string;\r\n @Input() describedBy: string;\r\n @Input() pattern: string;\r\n @Input() inputmode: string;\r\n @Input() placeholder: string;\r\n\r\n // form group class - asignar clases a la etiqueta desy-input\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n\r\n @Input() classes: string;\r\n @Input() autocomplete: string;\r\n @Input() maxlength: number;\r\n @Input() errorId: string;\r\n @Input() attributes: any;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n ngDoCheck(): void {\r\n if(this.attributes){\r\n this.setAttributes();\r\n }\r\n }\r\n\r\n setAttributes(){\r\n const input = document.getElementById(this.id ? this.id : 'input');\r\n const attr = this.attributes;\r\n Object.keys(attr).forEach(key => {\r\n input?.setAttribute(key, attr[key]);\r\n });\r\n }\r\n\r\n getErrorId(): string {\r\n return this.errorId ? this.errorId : super.getErrorId();\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.value = value || '';\r\n } else {\r\n this.value = '';\r\n }\r\n this.onChange(this.value);\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-select-item',\r\n templateUrl: './select-item.component.html'\r\n})\r\nexport class SelectItemComponent extends ContentBaseComponent {\r\n\r\n @Input() disabled: boolean;\r\n}\r\n","import {Component, forwardRef, Input} from '@angular/core';\r\nimport {SelectItemData} from '../../../interfaces';\r\nimport {SelectItemComponent} from '../select-item/select-item.component';\r\n\r\n@Component({\r\n selector: 'desy-option',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>',\r\n providers: [{provide: SelectItemComponent, useExisting: forwardRef(() => OptionComponent)}],\r\n})\r\nexport class OptionComponent extends SelectItemComponent implements SelectItemData {\r\n\r\n @Input() value: string;\r\n @Input() selected: boolean;\r\n @Input() hidden: boolean;\r\n\r\n}\r\n","import {Component, ContentChildren, forwardRef, Input, QueryList} from '@angular/core';\r\nimport {SelectItemComponent} from '../select-item/select-item.component';\r\nimport {OptionComponent} from '../option/option.component';\r\n\r\n@Component({\r\n selector: 'desy-option-group',\r\n templateUrl: './option-group.component.html',\r\n providers: [{provide: SelectItemComponent, useExisting: forwardRef(() => OptionGroupComponent)}],\r\n})\r\nexport class OptionGroupComponent extends SelectItemComponent {\r\n\r\n @Input() label: string;\r\n\r\n @ContentChildren(OptionComponent) items: QueryList<OptionComponent>;\r\n}\r\n","import {Component, forwardRef, Input, OnInit, OnChanges, SimpleChanges, ContentChildren, QueryList, AfterContentInit, HostBinding} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { SelectItemData } from '../../interfaces';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport {OptionGroupComponent} from './option-group/option-group.component';\r\nimport {SelectItemComponent} from './select-item/select-item.component';\r\n\r\n@Component({\r\n selector: 'desy-select',\r\n templateUrl: './select.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SelectComponent extends FormFieldComponent<any> implements AfterContentInit, OnChanges {\r\n\r\n @Input() name: string;\r\n @Input() items: SelectItemData[];\r\n @Input() describedBy?: string;\r\n\r\n\r\n // form group class - asignar clases a la etiqueta desy-select\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n\r\n @Input() classes: string;\r\n\r\n @ContentChildren(SelectItemComponent) itemComponents: QueryList<SelectItemComponent>;\r\n contentInit = false;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.contentInit = true;\r\n if (!this.value) {\r\n const items = this.getItems();\r\n const itemSelected = items?.find(item => item.selected);\r\n if (itemSelected) {\r\n setTimeout(() => this.writeValue(itemSelected.value));\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n this.onChange(value);\r\n }\r\n\r\n getItems(): SelectItemData[] {\r\n const items = (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\r\n return items;\r\n }\r\n\r\n isItemSelected(item: SelectItemData): boolean {\r\n return this.value ? this.value === item.value : item.selected;\r\n }\r\n\r\n isOptionGroup(item: SelectItemData): boolean {\r\n return item instanceof OptionGroupComponent;\r\n }\r\n\r\n}\r\n","import { Component, forwardRef, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\n\r\n@Component({\r\n selector: 'desy-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: forwardRef(() => FileUploadComponent),\r\n }\r\n ]\r\n})\r\nexport class FileUploadComponent extends FormFieldComponent<File> implements ControlValueAccessor, OnChanges {\r\n\r\n @Input() name: string;\r\n @Input() describedBy: string;\r\n @Input() classes: string;\r\n @Input() accept: string;\r\n\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n\r\n constructor() {\r\n super();\r\n }\r\n/***\r\n * nos devuelve un array de file : File[]\r\n * pero solo nos guardamos el primero\r\n * solo dejamos seleccionar uno\r\n */\r\n onInput(value: any): void{\r\n if (value && value.length > 0 && value[0]){\r\n this.value = value[0];\r\n }else {\r\n this.value = null;\r\n }\r\n this.onTouch();\r\n this.onChange(this.value);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ItemInputGroupData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-input-group-item',\r\n template: ''\r\n})\r\nexport class InputGroupItemComponent implements ItemInputGroupData {\r\n @Input() classes?: string;\r\n\r\n}\r\n","/**\r\n * Decorador para controlar los cambios de un input\r\n * @param callbackName nombre de la función a la que se llamará tras aplicar el cambio\r\n */\r\nexport function DesyOnInputChange(callbackName: string): PropertyDecorator {\r\n return (target: any, propertyKey: string) => {\r\n const privateKeyName = `_${propertyKey}`;\r\n\r\n Object.defineProperty(target, propertyKey, {\r\n set(value): void {\r\n this[privateKeyName] = value;\r\n this[callbackName]();\r\n },\r\n get(): any {\r\n return this[privateKeyName];\r\n }\r\n });\r\n };\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'makeHtmlList'\r\n})\r\nexport class MakeHtmlListPipe implements PipeTransform {\r\n\r\n transform(classes: string[], valueForEmpty?: string): string|null {\r\n let filteredList = classes.filter(c => c).join(' ');\r\n if (filteredList.length === 0 && valueForEmpty) {\r\n filteredList = valueForEmpty;\r\n }\r\n return filteredList;\r\n }\r\n}\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {InputGroupItemComponent} from '../input-group-item/input-group-item.component';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-input-group-input',\r\n templateUrl: './input-group-input.component.html',\r\n providers: [{provide: InputGroupItemComponent, useExisting: forwardRef(() => InputGroupInputComponent)}],\r\n})\r\nexport class InputGroupInputComponent extends InputGroupItemComponent {\r\n\r\n isSelect = false;\r\n\r\n @Input() id?: string;\r\n @Input() name: string;\r\n @Input() value?: any;\r\n @Output() valueChange = new EventEmitter<any>();\r\n @Input() formGroupClasses?: string;\r\n\r\n @Input() type?: string;\r\n @Input() inputmode?: string;\r\n @Input() autocomplete?: string;\r\n @Input() placeholder?: string;\r\n @Input() pattern?: string;\r\n @Input() maxlength?: number;\r\n @Input() disabled?: boolean;\r\n\r\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {InputGroupItemComponent} from '../input-group-item/input-group-item.component';\r\nimport {OptionComponent} from '../../select/option/option.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {LabelComponent} from '../../label/label.component';\r\n\r\n@Component({\r\n selector: 'desy-input-group-select',\r\n templateUrl: './input-group-select.component.html',\r\n providers: [{provide: InputGroupItemComponent, useExisting: forwardRef(() => InputGroupSelectComponent)}],\r\n})\r\nexport class InputGroupSelectComponent extends InputGroupItemComponent {\r\n\r\n isSelect = true;\r\n\r\n @Input() id?: string;\r\n @Input() name: string;\r\n @Input() value?: any;\r\n @Output() valueChange = new EventEmitter<any>();\r\n @Input() formGroupClasses?: string;\r\n @Input() disabled?: boolean;\r\n\r\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\r\n @ContentChildren(OptionComponent) selectItemComponentList: QueryList<OptionComponent>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n\r\n}\r\n","import {Component, forwardRef, TemplateRef, ViewChild} from '@angular/core';\r\nimport {InputGroupItemComponent} from '../input-group-item/input-group-item.component';\r\nimport {ItemDividerInputGroupData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-input-group-divider',\r\n templateUrl: './input-group-divider.component.html',\r\n providers: [{provide: InputGroupItemComponent, useExisting: forwardRef(() => InputGroupDividerComponent)}],\r\n})\r\nexport class InputGroupDividerComponent extends InputGroupItemComponent implements ItemDividerInputGroupData {\r\n\r\n isSelect = false;\r\n divider = this;\r\n\r\n @ViewChild('dividerContent', { static: true }) dividerContent: TemplateRef<any>;\r\n\r\n}\r\n","import {\r\n AfterContentInit, AfterViewChecked,\r\n Component,\r\n ContentChildren, EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional, Output,\r\n QueryList,\r\n TemplateRef, ViewChild,\r\n OnChanges\r\n} from '@angular/core';\r\nimport {FieldsetData, LegendData, ItemInputGroupData, LabelData, SelectItemData} from '../../interfaces';\r\nimport { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { LegendComponent } from '../fieldset/legend/legend.component';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport {InputGroupItemComponent} from './input-group-item/input-group-item.component';\r\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {FieldsetComponent} from '../fieldset/fieldset.component';\r\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\r\nimport {InputGroupInputComponent} from './input-group-input/input-group-input.component';\r\nimport {InputGroupSelectComponent} from './input-group-select/input-group-select.component';\r\nimport {InputGroupDividerComponent} from './input-group-divider/input-group-divider.component';\r\nimport {StringUtils} from '../../../shared/utils/string-utils';\r\n\r\n@Component({\r\n selector: 'desy-input-group',\r\n templateUrl: './input-group.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputGroupComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InputGroupComponent extends FormFieldComponent<any> implements AfterContentInit, AfterViewChecked, OnChanges {\r\n\r\n @Input() ngModelGroup: string;\r\n\r\n @DesyOnInputChange('onExternalChange')\r\n @Input() items: ItemInputGroupData[];\r\n @Output() itemsChange: EventEmitter<ItemInputGroupData[]> = new EventEmitter<ItemInputGroupData[]>();\r\n\r\n @DesyOnInputChange('onExternalChange')\r\n @Input() namePrefix: string;\r\n @Input() classes: string;\r\n\r\n // form group class - asignar clases a la etiqueta desy-input-group\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n\r\n @Input() errorMessage: string;\r\n @Input() id: string;\r\n\r\n /**\r\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir objeto FieldsetData (interfaz expuesta)\r\n * 2) incluir template legend\r\n * 3) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\r\n * 4) incluir legendText - incluir un fieldset con un texto en la legenda\r\n */\r\n @Input() fieldsetData: FieldsetData;\r\n @Input() legendRef: TemplateRef<LegendComponent>;\r\n @Input() legendData: LegendData;\r\n @Input() legendText: string;\r\n\r\n @ContentChildren(InputGroupItemComponent) itemsComponents: QueryList<InputGroupItemComponent>;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\r\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\r\n\r\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\r\n\r\n private contentInit = false;\r\n\r\n constructor(@Optional() public controlContainer: ControlContainer) {\r\n super();\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.contentInit = true;\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n const items = this.getItems();\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.value = value;\r\n const items = this.getItems();\r\n items.forEach(item => {\r\n const v = this.value[this.getItemName(item)];\r\n item.value = v ? v : null;\r\n });\r\n\r\n if (this.items) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n this.onChange(value);\r\n }\r\n\r\n onExternalChange(): void {\r\n if (!this.contentInit) {\r\n return;\r\n }\r\n\r\n if (!this.value) {\r\n this.value = {};\r\n }\r\n\r\n const items = this.getItems();\r\n items.forEach(item => this.value[this.getItemName(item)] = item.value);\r\n this.onChange(this.value);\r\n }\r\n\r\n onInternalChange(item: ItemInputGroupData, itemValue: any): void {\r\n const itemName = this.getItemName(item);\r\n if (!this.value) {\r\n this.value = {};\r\n }\r\n\r\n if (this.value[itemName] !== itemValue) {\r\n this.value[itemName] = itemValue;\r\n this.onChange(this.value);\r\n\r\n if (item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent) {\r\n item.valueChange.emit(itemValue);\r\n }\r\n\r\n if (this.items) {\r\n item.value = itemValue;\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n }\r\n\r\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\r\n fieldset.caller = this.innerHtml;\r\n fieldset.errorId = this.getErrorId();\r\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\r\n fieldset.role = 'group';\r\n fieldset.detectChanges();\r\n }\r\n\r\n /*\r\n * Métodos para proporcionar datos\r\n */\r\n getItems(): ItemInputGroupData[] {\r\n return this.itemsComponents && this.itemsComponents.length ? this.itemsComponents.toArray() : this.items;\r\n }\r\n\r\n getItemLabelRef(item: ItemInputGroupData): TemplateRef<any> {\r\n return item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent ? item.labelRef : null;\r\n }\r\n\r\n getItemLabelData(item: ItemInputGroupData): LabelData {\r\n return item.labelData ? item.labelData : { text: item.labelText };\r\n }\r\n\r\n hasFieldset(): boolean {\r\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData\r\n || (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\r\n }\r\n\r\n hasFieldsetComponent(): boolean {\r\n return !!this.fieldsetComponent;\r\n }\r\n\r\n hasLegendComponent(): boolean {\r\n return !!this.legendComponent;\r\n }\r\n\r\n getItemName(item: ItemInputGroupData): string {\r\n return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;\r\n }\r\n\r\n getItemSelectOptions(item: ItemInputGroupData): SelectItemData[] {\r\n return item instanceof InputGroupSelectComponent ?\r\n item.selectItemComponentList.toArray() : item.selectItems;\r\n }\r\n\r\n getItemDividerTemplate(item: ItemInputGroupData): TemplateRef<any> {\r\n return item.divider instanceof InputGroupDividerComponent ? item.divider.dividerContent : null;\r\n }\r\n\r\n getItemDividerHtml(item: ItemInputGroupData): string {\r\n return item.divider.html ? item.divider.html : `<p>${ StringUtils.escapeHtml(item.divider.text) }</p>`;\r\n }\r\n\r\n isSelectItem(item: ItemInputGroupData): boolean {\r\n let hasSelectItems;\r\n if (item instanceof InputGroupSelectComponent) {\r\n hasSelectItems = item.selectItemComponentList && item.selectItemComponentList.length > 0;\r\n } else {\r\n hasSelectItems = item.selectItems;\r\n }\r\n return item.isSelect && hasSelectItems;\r\n }\r\n\r\n hasItemLabel(item: ItemInputGroupData): boolean {\r\n return !!((item.labelData && (item.labelData.text || item.labelData.html)) || item.labelText);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Host,\r\n Input,\r\n OnChanges, OnDestroy, OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {ItemRadioData} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport {RadiosComponent} from '../radios.component';\r\nimport {animate, animateChild, query, state, style, transition, trigger} from '@angular/animations';\r\nimport {HintComponent} from '../../hint/hint.component';\r\n\r\n\r\n@Component({\r\n selector: 'desy-radio-item',\r\n templateUrl: './radio-item.component.html',\r\n animations: [\r\n trigger('displayConditional', [\r\n state('void', style({\r\n opacity: '0.0',\r\n transform: 'scale(0.95)'\r\n })),\r\n state('*', style({\r\n opacity: '1.0',\r\n transform: 'scale(1.0)'\r\n })),\r\n transition(':enter', [\r\n animate('100ms ease-out')\r\n ]),\r\n transition('* => *', [\r\n query('@*', animateChild(), {optional: true})\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class RadioItemComponent extends ContentBaseComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit, ItemRadioData {\r\n\r\n @ViewChild('input') inputElement: ElementRef;\r\n\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() value: any;\r\n @Input() conditional: boolean;\r\n @Input() disabled: boolean;\r\n @Input() divider: string;\r\n @Input() classes: string;\r\n\r\n @ContentChildren(LabelComponent) labelComponentList: QueryList<LabelComponent>;\r\n @ContentChildren(HintComponent) hintComponentList: QueryList<HintComponent>;\r\n @ContentChildren(ContentComponent) conditionalContentList: QueryList<ContentComponent>;\r\n\r\n @Input() checked: boolean;\r\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n index = 0;\r\n lastChecked;\r\n lastValue;\r\n radioId;\r\n\r\n constructor(@Host() private radios: RadiosComponent, private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n if (!this.radios) {\r\n throw Error('Radios items must be inside of RadiosComponent');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.radios.markForUpdateCheckboxIds();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.radios.markForUpdateCheckboxIds();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.checked !== this.lastChecked && this.isInit()) {\r\n this.setChecked(this.checked);\r\n this.radios.updateValueFromRadioItems();\r\n } else if (this.lastValue !== undefined && this.lastValue !== this.value) {\r\n this.radios.updateValueFromRadioItems();\r\n }\r\n this.lastValue = this.value;\r\n\r\n if (this.id !== this.radioId) {\r\n this.radios.markForUpdateCheckboxIds();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setChecked(this.checked);\r\n this.radios.updateValueFromRadioItems();\r\n }\r\n\r\n setChecked(checked: boolean): void {\r\n this.checked = checked;\r\n this.lastChecked = checked;\r\n this.checkedChange.emit(checked);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n /*\r\n * Funciones para aportar información desde el componente checkboxes que lo contiene\r\n */\r\n\r\n getItemHintId(): string {\r\n return this.hintComponentList && this.hintComponentList.length > 0 && this.radioId ? this.radioId + '-item-hint' : null;\r\n }\r\n\r\n hasChanged(): void {\r\n this.setChecked(this.isInputChecked());\r\n this.radios.updateValueFromRadioItems();\r\n }\r\n\r\n isInit(): boolean {\r\n return !!this.inputElement;\r\n }\r\n\r\n isInputChecked(): boolean {\r\n return this.inputElement ? this.inputElement.nativeElement.checked : null;\r\n }\r\n\r\n updateRadioId(index?: number): void {\r\n if (this.id) {\r\n this.radioId = this.id;\r\n } else {\r\n const idPrefix = this.radios.idPrefix ? this.radios.idPrefix : this.radios.name;\r\n if (index === 0) {\r\n this.radioId = idPrefix;\r\n } else {\r\n this.radioId = `${idPrefix}-${index}`;\r\n }\r\n }\r\n\r\n if (this.labelComponentList && this.labelComponentList.length > 0) {\r\n this.labelComponentList.first.for = this.radioId;\r\n }\r\n\r\n if (this.hintComponentList && this.hintComponentList.length > 0) {\r\n this.hintComponentList.first.id = this.getItemHintId();\r\n }\r\n\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n /*\r\n * Funciones para aportar información desde el componente checkboxes que lo contiene\r\n */\r\n\r\n hasDividers(): boolean {\r\n return this.radios.hasDividers;\r\n }\r\n\r\n hasError(): boolean {\r\n return this.radios.hasErrorsMessage();\r\n }\r\n\r\n getNameRadio(): string {\r\n return this.radios.name;\r\n }\r\n\r\n getDescribedBy(): string {\r\n return !this.radios.hasFieldset() ? this.radios.describedBy : null;\r\n }\r\n\r\n}\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n DoCheck,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n QueryList,\r\n TemplateRef, ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {FieldsetData, ItemRadioData, LegendData} from '../../interfaces';\r\nimport {LegendComponent} from '../fieldset/legend/legend.component';\r\nimport {FormFieldComponent} from '../form-field/form-field.component';\r\nimport {RadioItemComponent} from './radio-item/radio-item.component';\r\nimport {FieldsetComponent} from '../fieldset/fieldset.component';\r\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\r\nimport {HintComponent} from '../hint/hint.component';\r\nimport {ErrorMessageComponent} from '../error-message/error-message.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\r\n\r\n@Component({\r\n selector: 'desy-radios',\r\n templateUrl: './radios.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadiosComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class RadiosComponent extends FormFieldComponent<any> implements DoCheck, AfterContentInit {\r\n \r\n /**\r\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente FieldsetComponent\r\n * 2) incluir objeto FieldsetData (interfaz expuesta)\r\n * 3) incluir componente LegendComponent\r\n * 4) incluir template legend\r\n * 5) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\r\n * 6) incluir legendText - incluir un fieldset con un texto en la legenda\r\n */\r\n @Input() fieldsetData: FieldsetData;\r\n @Input() legendRef: TemplateRef<LegendComponent>;\r\n @Input() legendData: LegendData;\r\n @Input() legendText: string;\r\n \r\n @DesyOnInputChange('onIdPrefixChange')\r\n @Input() idPrefix: string;\r\n \r\n @DesyOnInputChange('onNameChange')\r\n @Input() name: string;\r\n \r\n @Input() items: ItemRadioData[];\r\n @Output() itemsChange = new EventEmitter<ItemRadioData[]>();\r\n \r\n @Input() formGroupClasses: string;\r\n @Input() hasDividers: boolean;\r\n @Input() hasError: boolean;\r\n @Input() classes: string;\r\n @Input() describedBy: string;\r\n \r\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\r\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\r\n \r\n @ContentChildren(RadioItemComponent) radioComponentItems: QueryList<RadioItemComponent>;\r\n \r\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\r\n @ViewChildren(RadioItemComponent) radioComponentItems2: QueryList<RadioItemComponent>;\r\n \r\n private nextValue = null;\r\n private updateChekboxIds = false;\r\n private contentInit = false;\r\n \r\n ngDoCheck(): void {\r\n if (this.nextValue !== null && (this.nextValue !== '' || (this.value && this.value !== ''))) {\r\n this.value = this.nextValue;\r\n this.nextValue = null;\r\n const updateItems = this.updateRadioItemsChecked();\r\n setTimeout(() => {\r\n this.onChange(this.value);\r\n if (updateItems && this.items && this.items.length > 0) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n });\r\n }\r\n\r\n if (this.updateChekboxIds) {\r\n const checkboxItems = this.getRadioItems();\r\n if (checkboxItems.length > 0) {\r\n checkboxItems.forEach((item, index) => item.updateRadioId(index));\r\n }\r\n this.updateChekboxIds = false;\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n\r\n this.contentInit = true;\r\n }\r\n\r\n /**\r\n * Se sobrescribe el writeValue de FormField para gestionar en un único punto el valor de value\r\n * @param value nuevo valor a establecer\r\n */\r\n writeValue(value: any[]): void {\r\n if (value) {\r\n this.nextValue = value;\r\n }\r\n }\r\n\r\n onIdPrefixChange(): void {\r\n if (this.contentInit) {\r\n this.markForUpdateCheckboxIds();\r\n }\r\n this.propagateNewIdPrefixValue();\r\n }\r\n\r\n\r\n onNameChange(): void {\r\n\r\n if (this.contentInit) {\r\n this.markForUpdateCheckboxIds();\r\n }\r\n\r\n this.propagateNewIdPrefixValue();\r\n }\r\n\r\n /**\r\n * Actualiza los componentes externos que tienen valores dependientes de idPrefix\r\n * @private\r\n */\r\n private propagateNewIdPrefixValue(): void {\r\n if (this.hintComponent) {\r\n this.overrideHintParams(this.hintComponent);\r\n }\r\n\r\n if (this.errorMessageComponent) {\r\n this.overrideErrorMessageParams(this.errorMessageComponent);\r\n }\r\n\r\n // Al hacer el override de hint o error ya se aplica sobre el fieldset, por lo que sólo es necesario aplicarlo directamente\r\n // sobre el fieldset cuando ninguno de estos existe\r\n if (!this.hintComponent && !this.errorMessageComponent && this.fieldsetComponent) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n markForUpdateCheckboxIds(): void {\r\n this.updateChekboxIds = true;\r\n }\r\n\r\n /**\r\n * Actualiza el estado de los items según el valor asignado al componente\r\n */\r\n private updateRadioItemsChecked(): boolean {\r\n let itemsUpdated = false;\r\n const checkboxItems = this.getRadioItems();\r\n if (checkboxItems.length > 0) {\r\n checkboxItems.forEach(item => {\r\n if (item.value === this.value && !item.lastChecked) {\r\n item.setChecked(true);\r\n itemsUpdated = true;\r\n } else if (item.value !== this.value && item.lastChecked) {\r\n item.setChecked(false);\r\n itemsUpdated = true;\r\n }\r\n });\r\n }\r\n return itemsUpdated;\r\n }\r\n\r\n /**\r\n * Actualiza el valor cuando se produce un cambio en los items, tanto interno como externo\r\n */\r\n updateValueFromRadioItems(): void {\r\n\r\n /*\r\n * Se realiza dentro de un timeout porque, aunque los componentes items se hayan inicializado, en este componente puede ser que todavía\r\n * no se detecten, y por tanto el getCheckboxItems no devuelva la lista correcta.\r\n */\r\n setTimeout( () => {\r\n const items = this.getRadioItems();\r\n if (items && items.length > 0 && items.findIndex(item => !item.isInit() && !item.divider) < 0) {\r\n const checkedItem = items.find(item => item.isInputChecked() && !item.divider);\r\n this.nextValue = checkedItem ? checkedItem.value : null;\r\n }\r\n });\r\n\r\n if (this.items && this.items.length > 0) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n\r\n /*\r\n * Funciones para reemplazar el contenido del fieldset, label, hint o errormessage\r\n */\r\n\r\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\r\n fieldset.caller = this.innerHtml;\r\n fieldset.errorId = this.getErrorId();\r\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\r\n fieldset.detectChanges();\r\n }\r\n\r\n overrideHintParams(hint: HintComponent): void {\r\n hint.id = this.getHintId();\r\n hint.detectChanges();\r\n\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n overrideErrorMessageParams(errorMessage: ErrorMessageComponent): void {\r\n errorMessage.id = this.getErrorId();\r\n errorMessage.detectChanges();\r\n\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n onDeleteHint(): void {\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n onDeleteErrorMessage(): void {\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Funciones para recuperar valores comunes\r\n */\r\n\r\n hasFieldset(): boolean {\r\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData ||\r\n (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\r\n }\r\n\r\n hasFieldsetComponent(): boolean {\r\n return !!this.fieldsetComponent;\r\n }\r\n\r\n hasLegendComponent(): boolean {\r\n return !!this.legendComponent;\r\n }\r\n\r\n getErrorId(): string {\r\n return this.hasErrorsMessage() ? this.getIdPrefix() + '-error' : null;\r\n }\r\n\r\n getHintId(): string {\r\n return this.hasHint() ? this.getIdPrefix() + '-hint' : null;\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.name;\r\n }\r\n\r\n getRadioItems(): RadioItemComponent[] {\r\n let checkboxItems = [];\r\n if (this.radioComponentItems && this.radioComponentItems.length > 0) {\r\n checkboxItems = this.radioComponentItems.toArray();\r\n } else if (this.radioComponentItems2 && this.radioComponentItems2.length > 0) {\r\n checkboxItems = this.radioComponentItems2.toArray();\r\n }\r\n return checkboxItems;\r\n }\r\n}\r\n","import {\r\n AfterViewInit, ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Host,\r\n HostBinding,\r\n Input, OnChanges, OnDestroy, OnInit,\r\n Output, QueryList, SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {ItemCheckboxData} from '../../../interfaces';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport {animate, animateChild, query, state, style, transition, trigger} from '@angular/animations';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport {HintComponent} from '../../hint/hint.component';\r\nimport {CheckboxesComponent} from '../checkboxes.component';\r\nimport {AccessibilityComponent} from '../../../../shared/components';\r\nimport {DesyOnInputChange} from \"../../../../shared/decorators/desy-on-input-change.decorator\";\r\n\r\n@Component({\r\n selector: 'desy-checkbox-item',\r\n templateUrl: './checkbox-item.component.html',\r\n animations: [\r\n trigger('displayConditional', [\r\n state('void', style({\r\n opacity: '0.0',\r\n transform: 'scale(0.95)'\r\n })),\r\n state('*', style({\r\n opacity: '1.0',\r\n transform: 'scale(1.0)'\r\n })),\r\n transition(':enter', [\r\n animate('100ms ease-out')\r\n ]),\r\n transition('* => *', [\r\n query('@*', animateChild(), {optional: true})\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class CheckboxItemComponent extends AccessibilityComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit, ItemCheckboxData {\r\n\r\n @ViewChild('input') inputElement: ElementRef;\r\n\r\n @Input() id: string;\r\n @Input() value: any;\r\n @Input() name: string;\r\n @Input() conditional: boolean;\r\n @Input() disabled: boolean;\r\n @Input() isIndeterminate: boolean;\r\n\r\n @DesyOnInputChange('setIndeterminateStatus')\r\n @Input() indeterminateChecked: boolean;\r\n @Input() @HostBinding('class') classes: any;\r\n\r\n @ContentChildren(LabelComponent) labelComponentList: QueryList<LabelComponent>;\r\n @ContentChildren(HintComponent) hintComponentList: QueryList<HintComponent>;\r\n @ContentChildren(ContentComponent) conditionalContentList: QueryList<ContentComponent>;\r\n\r\n @Input() checked: boolean;\r\n\r\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() indeterminateChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n lastChecked;\r\n lastIndeterminate;\r\n lastValue;\r\n checkboxId;\r\n\r\n constructor(@Host() private checkboxes: CheckboxesComponent, private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n if (!this.checkboxes) {\r\n throw Error('Checkbox items must be inside of CheckboxesComponent');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.checkboxes.markForUpdateCheckboxIds();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.checkboxes.markForUpdateCheckboxIds();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.checkboxes.hasDividers ? this.classes += ' border-t border-b border-neutral-base -mb-px' : this.classes;\r\n if (this.checked !== this.lastChecked && this.isInit()) {\r\n this.setChecked(this.checked);\r\n this.checkboxes.updateValueFromCheckboxItems();\r\n } else if (this.lastValue !== undefined && this.lastValue !== this.value) {\r\n this.checkboxes.updateValueFromCheckboxItems();\r\n }\r\n\r\n if(this.indeterminateChecked !== this.lastIndeterminate && this.isInit()){\r\n this.setIndeterminateChecked(this.indeterminateChecked);\r\n this.checkboxes.updateValueFromCheckboxItems();\r\n }\r\n\r\n\r\n this.lastValue = this.value;\r\n\r\n if (this.id !== this.checkboxId) {\r\n this.checkboxes.markForUpdateCheckboxIds();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setChecked(this.checked);\r\n this.setIndeterminateChecked(this.indeterminateChecked);\r\n this.checkboxes.updateValueFromCheckboxItems();\r\n }\r\n\r\n getItemHintId(): string {\r\n return this.hintComponentList && this.hintComponentList.length > 0 && this.checkboxId ? this.checkboxId + '-item-hint' : null;\r\n }\r\n\r\n hasChanged(): void {\r\n // Se establece el cambio a visualizar en el input\r\n const input = this.inputElement.nativeElement;\r\n if (this.isIndeterminate) {\r\n if (input.readOnly) {\r\n input.checked = false;\r\n input.readOnly = false;\r\n } else if (!input.checked) {\r\n input.readOnly = true;\r\n input.indeterminate = true;\r\n }\r\n }\r\n this.setChecked(input.checked);\r\n this.setIndeterminateChecked(input.indeterminate);\r\n this.checkboxes.updateValueFromCheckboxItems();\r\n }\r\n\r\n setChecked(checked: boolean): void {\r\n this.checked = checked;\r\n this.lastChecked = checked;\r\n this.checkedChange.emit(checked);\r\n this.changeDetectorRef.detectChanges(); // Avisa al elemento input para que actualice su estado\r\n }\r\n\r\n setIndeterminateChecked(indeterminateChecked: boolean): void {\r\n this.indeterminateChecked = indeterminateChecked;\r\n this.lastIndeterminate = indeterminateChecked;\r\n this.indeterminateChange.emit(indeterminateChecked);\r\n this.changeDetectorRef.detectChanges(); // Avisa al elemento input para que actualice su estado\r\n }\r\n\r\n setIndeterminateStatus(): void {\r\n const input = this.inputElement?.nativeElement;\r\n if (input) {\r\n if (this.indeterminateChecked) {\r\n input.readOnly = true;\r\n input.indeterminate = true;\r\n } else if (input.readOnly) {\r\n input.readOnly = false;\r\n input.indeterminate = false;\r\n }\r\n }\r\n }\r\n\r\n isInit(): boolean {\r\n return !!this.inputElement;\r\n }\r\n\r\n getValue(): any {\r\n const input = this.inputElement.nativeElement;\r\n return input.checked || input.indeterminate ? this.value : null;\r\n }\r\n\r\n updateCheckboxId(index?: number): void {\r\n if (this.id) {\r\n this.checkboxId = this.id;\r\n } else {\r\n const idPrefix = this.checkboxes.idPrefix ? this.checkboxes.idPrefix : this.checkboxes.name;\r\n if (index === 0) {\r\n this.checkboxId = idPrefix;\r\n } else {\r\n this.checkboxId = `${idPrefix}-${index}`;\r\n }\r\n }\r\n\r\n if (this.labelComponentList && this.labelComponentList.length > 0) {\r\n this.labelComponentList.first.for = this.checkboxId;\r\n }\r\n\r\n if (this.hintComponentList && this.hintComponentList.length > 0) {\r\n this.hintComponentList.first.id = this.getItemHintId();\r\n }\r\n\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n /*\r\n * Funciones para aportar información desde el componente checkboxes que lo contiene\r\n */\r\n\r\n hasDividers(): boolean {\r\n return this.checkboxes.hasDividers; \r\n }\r\n\r\n hasError(): boolean {\r\n return this.checkboxes.hasErrorsMessage();\r\n }\r\n\r\n getNameCheckbox(): string {\r\n return this.checkboxes.name;\r\n }\r\n\r\n getDescribedBy(): string {\r\n return !this.checkboxes.hasFieldset() ? this.checkboxes.describedBy : null;\r\n }\r\n}\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren, DoCheck, EventEmitter,\r\n forwardRef,\r\n Input, Output,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef, ViewChild, ViewChildren\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport { FieldsetData, LegendData, ItemCheckboxData } from '../../interfaces';\r\nimport { LegendComponent } from '../fieldset/legend/legend.component';\r\nimport {CheckboxItemComponent} from './checkbox-item/checkbox-item.component';\r\nimport {HintComponent} from '../hint/hint.component';\r\nimport {ErrorMessageComponent} from '../error-message/error-message.component';\r\nimport {FieldsetComponent} from '../fieldset/fieldset.component';\r\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\r\n\r\n\r\n@Component({\r\n selector: 'desy-checkboxes',\r\n templateUrl: './checkboxes.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CheckboxesComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CheckboxesComponent extends FormFieldComponent<any[]> implements AfterContentInit, DoCheck {\r\n \r\n /**\r\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente FieldsetComponent\r\n * 2) incluir objeto FieldsetData (interfaz expuesta)\r\n * 3) incluir componente LegendComponent\r\n * 4) incluir template legend\r\n * 5) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\r\n * 6) incluir legendText - incluir un fieldset con un texto en la legenda\r\n */\r\n @Input() fieldsetData: FieldsetData;\r\n @Input() legendRef: TemplateRef<LegendComponent>;\r\n @Input() legendData: LegendData;\r\n @Input() legendText: string;\r\n\r\n @DesyOnInputChange('onIdPrefixChange')\r\n @Input() idPrefix: string;\r\n \r\n @DesyOnInputChange('onNameChange')\r\n @Input() name: string;\r\n \r\n @Input() items: ItemCheckboxData[];\r\n @Output() itemsChange = new EventEmitter<ItemCheckboxData[]>();\r\n \r\n @Input() formGroupClasses: string;\r\n @Input() hasDividers: boolean;\r\n @Input() hasError: boolean;\r\n @Input() classes: string;\r\n @Input() describedBy: string;\r\n \r\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\r\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\r\n \r\n @ContentChildren(CheckboxItemComponent) checkboxComponentItems: QueryList<CheckboxItemComponent>;\r\n \r\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\r\n @ViewChildren(CheckboxItemComponent) checkboxComponentItems2: QueryList<CheckboxItemComponent>;\r\n \r\n private nextValue = null;\r\n private updateChekboxIds = false;\r\n private contentInit = false;\r\n \r\n ngDoCheck(): void {\r\n if (this.nextValue !== null && (this.nextValue.length > 0 || (this.value && this.value.length > 0))) {\r\n this.value = this.nextValue;\r\n this.nextValue = null;\r\n this.updateCheckboxItemsChecked();\r\n setTimeout(() => {\r\n this.onChange(this.value);\r\n if (this.items && this.items.length > 0) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n });\r\n }\r\n\r\n if (this.updateChekboxIds) {\r\n const checkboxItems = this.getCheckboxItems();\r\n if (checkboxItems.length > 0) {\r\n checkboxItems.forEach((item, index) => item.updateCheckboxId(index));\r\n }\r\n this.updateChekboxIds = false;\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n\r\n this.contentInit = true;\r\n }\r\n\r\n /**\r\n * Se sobrescribe el writeValue de FormField para gestionar en un único punto el valor de value\r\n * @param value nuevo valor a establecer\r\n */\r\n writeValue(value: any[]): void {\r\n if (value) {\r\n this.nextValue = value;\r\n }\r\n }\r\n\r\n onIdPrefixChange(): void {\r\n if (this.contentInit) {\r\n this.markForUpdateCheckboxIds();\r\n }\r\n this.propagateNewIdPrefixValue();\r\n }\r\n\r\n\r\n onNameChange(): void {\r\n\r\n if (this.contentInit) {\r\n this.markForUpdateCheckboxIds();\r\n }\r\n\r\n this.propagateNewIdPrefixValue();\r\n }\r\n\r\n /**\r\n * Actualiza los componentes externos que tienen valores dependientes de idPrefix\r\n * @private\r\n */\r\n private propagateNewIdPrefixValue(): void {\r\n if (this.hintComponent) {\r\n this.overrideHintParams(this.hintComponent);\r\n }\r\n\r\n if (this.errorMessageComponent) {\r\n this.overrideErrorMessageParams(this.errorMessageComponent);\r\n }\r\n\r\n // Al hacer el override de hint o error ya se aplica sobre el fieldset, por lo que sólo es necesario aplicarlo directamente\r\n // sobre el fieldset cuando ninguno de estos existe\r\n if (!this.hintComponent && !this.errorMessageComponent && this.fieldsetComponent) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n markForUpdateCheckboxIds(): void {\r\n this.updateChekboxIds = true;\r\n }\r\n\r\n\r\n /**\r\n * Actualiza el estado de los items según el valor asignado al componente\r\n */\r\n private updateCheckboxItemsChecked(): void {\r\n const checkboxItems = this.getCheckboxItems();\r\n if (checkboxItems.length > 0) {\r\n checkboxItems.forEach(item => {\r\n const itemChecked = Array.isArray(this.value) ? this.value.findIndex(v => v === item.value) > -1 : this.value === item.value;\r\n if (itemChecked !== item.lastChecked) {\r\n item.setChecked(itemChecked);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Actualiza el valor cuando se produce un cambio en los items, tanto interno como externo\r\n */\r\n updateValueFromCheckboxItems(): void {\r\n\r\n /*\r\n * Se realiza dentro de un timeout porque, aunque los componentes items se hayan inicializado, en este componente puede ser que todavía\r\n * no se detecten, y por tanto el getCheckboxItems no devuelva la lista correcta.\r\n */\r\n setTimeout( () => {\r\n const items = this.getCheckboxItems();\r\n if (items && items.length > 0 && items.findIndex(item => !item.isInit()) < 0) {\r\n this.nextValue = items.filter(item => item.checked).map(item => item.getValue());\r\n }\r\n });\r\n\r\n if (this.items && this.items.length > 0) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n\r\n /*\r\n * Funciones para reemplazar el contenido del fieldset, label, hint o errormessage\r\n */\r\n\r\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\r\n fieldset.caller = this.innerHtml;\r\n fieldset.errorId = this.getErrorId();\r\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\r\n fieldset.detectChanges();\r\n }\r\n\r\n overrideHintParams(hint: HintComponent): void {\r\n hint.id = this.getHintId();\r\n hint.detectChanges();\r\n\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n overrideErrorMessageParams(errorMessage: ErrorMessageComponent): void {\r\n errorMessage.id = this.getErrorId();\r\n errorMessage.detectChanges();\r\n\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n onDeleteHint(): void {\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n onDeleteErrorMessage(): void {\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Funciones para recuperar valores comunes\r\n */\r\n\r\n\r\n hasFieldset(): boolean {\r\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData ||\r\n (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\r\n }\r\n\r\n hasFieldsetComponent(): boolean {\r\n return !!this.fieldsetComponent;\r\n }\r\n\r\n hasLegendComponent(): boolean {\r\n return !!this.legendComponent;\r\n }\r\n\r\n getErrorId(): string {\r\n return this.hasErrorsMessage() ? this.getIdPrefix() + '-error' : undefined;\r\n }\r\n\r\n getHintId(): string {\r\n return this.hasHint() ? this.getIdPrefix() + '-hint' : undefined;\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.name;\r\n }\r\n\r\n getCheckboxItems(): CheckboxItemComponent[] {\r\n let checkboxItems = [];\r\n if (this.checkboxComponentItems && this.checkboxComponentItems.length > 0) {\r\n checkboxItems = this.checkboxComponentItems.toArray();\r\n } else if (this.checkboxComponentItems2 && this.checkboxComponentItems2.length > 0) {\r\n checkboxItems = this.checkboxComponentItems2.toArray();\r\n }\r\n return checkboxItems;\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ItemDateInputData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-date-input-item',\r\n template: ''\r\n})\r\nexport class DateInputItemComponent implements ItemDateInputData {\r\n @Input() classes?: string;\r\n\r\n}\r\n","import {Component, ContentChildren, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild} from '@angular/core';\r\nimport { ItemDateInputData } from '../../../interfaces';\r\nimport { LabelData } from '../../../interfaces';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\r\n\r\n@Component({\r\n selector: 'desy-input-day',\r\n templateUrl: './date-input-day.component.html',\r\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDayComponent)}],\r\n})\r\nexport class DateInputDayComponent extends DateInputItemComponent implements ItemDateInputData {\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() labelText: string;\r\n @Input() labelData: LabelData;\r\n @Input() disabled: boolean;\r\n @Input() hasErrors: boolean;\r\n @Input() value: any;\r\n @Input() autocomplete: string;\r\n @Input() pattern: string;\r\n @Input() classes: string;\r\n @Input() maxlength: number;\r\n\r\n @Output() valueChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n\r\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\r\n\r\n}\r\n","import {Component, ContentChildren, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild} from '@angular/core';\r\nimport { ItemDateInputData } from '../../../interfaces';\r\nimport { LabelData } from '../../../interfaces';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\r\n\r\n@Component({\r\n selector: 'desy-input-month',\r\n templateUrl: './date-input-month.component.html',\r\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputMonthComponent)}],\r\n})\r\nexport class DateInputMonthComponent extends DateInputItemComponent implements ItemDateInputData {\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() labelText: string;\r\n @Input() labelData: LabelData;\r\n @Input() disabled: boolean;\r\n @Input() hasErrors: boolean;\r\n @Input() value: any;\r\n @Input() autocomplete: string;\r\n @Input() pattern: string;\r\n @Input() classes: string;\r\n @Input() maxlength: number;\r\n\r\n @Output() valueChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n\r\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\r\n\r\n}\r\n","import {Component, ContentChildren, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild} from '@angular/core';\r\nimport { ItemDateInputData } from '../../../interfaces';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\r\n\r\n@Component({\r\n selector: 'desy-input-year',\r\n templateUrl: './date-input-year.component.html',\r\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputYearComponent)}],\r\n})\r\nexport class DateInputYearComponent extends DateInputItemComponent implements ItemDateInputData {\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() disabled: boolean;\r\n @Input() hasErrors: boolean;\r\n @Input() value: any;\r\n @Input() autocomplete: string;\r\n @Input() pattern: string;\r\n @Input() classes: string;\r\n @Input() maxlength: number;\r\n\r\n @Output() valueChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n\r\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\r\n\r\n}\r\n","import {Component, forwardRef, TemplateRef, ViewChild} from '@angular/core';\r\nimport { ItemDividerDateInputData } from '../../../interfaces/item-divider-date-input-data';\r\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\r\n\r\n@Component({\r\n selector: 'desy-date-input-divider',\r\n templateUrl: './date-input-divider.component.html',\r\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDividerComponent)}],\r\n})\r\nexport class DateInputDividerComponent extends DateInputItemComponent implements ItemDividerDateInputData {\r\n\r\n divider = this;\r\n\r\n @ViewChild('dividerContent', { static: true }) dividerContent: TemplateRef<any>;\r\n}\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren, EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n Optional, Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n HostBinding,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport { FieldsetData, LegendData, ItemDateInputData, LabelData } from '../../interfaces';\r\nimport { LegendComponent } from '../fieldset/legend/legend.component';\r\nimport { FieldsetComponent } from '../fieldset/fieldset.component';\r\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { DateInputDayComponent } from './date-input-day/date-input-day.component';\r\nimport { DateInputMonthComponent } from './date-input-month/date-input-month.component';\r\nimport { DateInputYearComponent } from './date-input-year/date-input-year.component';\r\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\r\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\r\nimport { DateInputDividerComponent } from './date-input-divider/date-input-divider.component';\r\nimport { StringUtils } from '../../../shared/utils/string-utils';\r\nimport { DateInputItemComponent } from './date-input-item/date-input-item.component';\r\n\r\n@Component({\r\n selector: 'desy-date-input',\r\n templateUrl: './date-input.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DateInputComponent extends FormFieldComponent<any> implements AfterContentInit, OnChanges {\r\n\r\n private static defaultItems = [\r\n {\r\n name: 'day',\r\n classes: 'w-14',\r\n maxlength: 2\r\n },\r\n {\r\n name: 'month',\r\n classes: 'w-14',\r\n maxlength: 2\r\n },\r\n {\r\n name: 'year',\r\n classes: 'w-20',\r\n maxlength: 4\r\n }\r\n ];\r\n\r\n @Input() ngModelGroup: string;\r\n\r\n @DesyOnInputChange('onExternalChange')\r\n @Input() items: ItemDateInputData[];\r\n @Output() itemsChange: EventEmitter<ItemDateInputData[]> = new EventEmitter<ItemDateInputData[]>();\r\n\r\n @DesyOnInputChange('onExternalChange')\r\n @Input() namePrefix: string;\r\n @Input() classes: string;\r\n @Input() errorMessage: string;\r\n @Input() id: string;\r\n // form group class - asignar clases a la etiqueta desy-input\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\r\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\r\n\r\n @ContentChildren(DateInputItemComponent) dateInputItemComponents: QueryList<DateInputItemComponent>;\r\n\r\n /**\r\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir objeto FieldsetData (interfaz expuesta)\r\n * 2) incluir template legend\r\n * 3) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\r\n * 4) incluir legendText - incluir un fieldset con un texto en la legenda\r\n */\r\n @Input() fieldsetData: FieldsetData;\r\n @Input() legendRef: TemplateRef<LegendComponent>;\r\n @Input() legendData: LegendData;\r\n @Input() legendText: string;\r\n\r\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\r\n\r\n private contentInit = false;\r\n\r\n constructor(@Optional() public controlContainer: ControlContainer) {\r\n super();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.contentInit = true;\r\n }\r\n\r\n initDefaultItems(): void {\r\n if (!this.items) {\r\n this.items = [\r\n {\r\n name: 'día',\r\n classes: 'w-14',\r\n maxlength: 2\r\n },\r\n {\r\n name: 'mes',\r\n classes: 'w-14',\r\n maxlength: 2\r\n },\r\n {\r\n name: 'año',\r\n classes: 'w-20',\r\n maxlength: 4\r\n }\r\n ];\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n if (this.value) {\r\n const items = this.getItems();\r\n items.forEach(item => item.value = this.value[this.getItemName(item)]);\r\n\r\n if (this.items) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n this.onChange(value);\r\n }\r\n\r\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\r\n fieldset.caller = this.innerHtml;\r\n fieldset.errorId = this.getErrorId();\r\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\r\n fieldset.role = 'group';\r\n fieldset.detectChanges();\r\n }\r\n\r\n onExternalChange(): void {\r\n if (!this.contentInit) {\r\n return;\r\n }\r\n\r\n if (!this.value) {\r\n this.value = {};\r\n }\r\n\r\n const items = this.getItems();\r\n items.forEach(item => this.value[this.getItemName(item)] = item.value);\r\n const newVal = {};\r\n Object.assign(newVal, this.value);\r\n this.onChange(newVal);\r\n }\r\n\r\n onInternalChange(item: ItemDateInputData, itemValue: number): void {\r\n const itemName = this.getItemName(item);\r\n if (!this.value) {\r\n this.value = {};\r\n }\r\n\r\n if (this.value[itemName] !== itemValue) {\r\n this.value[itemName] = itemValue ? +itemValue : undefined;\r\n const newVal = {};\r\n Object.assign(newVal, this.value);\r\n this.onChange(newVal);\r\n if (item instanceof DateInputDayComponent || item instanceof DateInputMonthComponent || item instanceof DateInputYearComponent) {\r\n item.valueChange.emit(itemValue);\r\n }\r\n\r\n if (this.items) {\r\n item.value = itemValue;\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n }\r\n\r\n hasFieldset(): boolean {\r\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData\r\n || (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\r\n }\r\n\r\n hasFieldsetComponent(): boolean {\r\n return !!this.fieldsetComponent;\r\n }\r\n\r\n hasLegendComponent(): boolean {\r\n return !!this.legendComponent;\r\n }\r\n\r\n hasErrorMessageComponent(): boolean {\r\n return !!this.errorMessageComponent;\r\n }\r\n\r\n getItemName(item: ItemDateInputData): string {\r\n return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;\r\n }\r\n\r\n getItemLabel(item: ItemDateInputData): LabelData {\r\n let labelData: LabelData;\r\n if (item.labelData && (item.labelData.text || item.labelData.html)) {\r\n labelData = item.labelData;\r\n } else {\r\n labelData = {\r\n text: item.labelText ? item.labelText : (item.name ? item.name.toUpperCase() : null)\r\n };\r\n }\r\n return labelData;\r\n }\r\n\r\n getItemLabelRef(item: ItemDateInputData): TemplateRef<any> {\r\n return item instanceof DateInputDayComponent || item instanceof DateInputMonthComponent || item instanceof DateInputYearComponent ?\r\n item.labelRef : null;\r\n }\r\n\r\n getItems(): ItemDateInputData[] {\r\n let items;\r\n if (this.dateInputItemComponents && this.dateInputItemComponents.length > 0) {\r\n items = this.dateInputItemComponents.toArray();\r\n } else if (this.items) {\r\n items = this.items;\r\n } else if (this.contentInit) {\r\n items = DateInputComponent.defaultItems;\r\n } else {\r\n items = [];\r\n }\r\n\r\n\r\n return items;\r\n }\r\n\r\n getItemDividerTemplate(item: ItemDateInputData): TemplateRef<any> {\r\n return item.divider instanceof DateInputDividerComponent ? item.divider.dividerContent : null;\r\n }\r\n getItemDividerHtml(item: ItemDateInputData): string {\r\n return item.divider.html ? item.divider.html : `<p>${ StringUtils.escapeHtml(item.divider.text) }</p>`;\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n DoCheck,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Output, QueryList, SimpleChanges\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport { ButtonComponent } from '../../../desy-buttons/components/button/button.component';\r\n\r\n@Component({\r\n selector: 'desy-search-bar',\r\n templateUrl: './search-bar.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SearchBarComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SearchBarComponent extends FormFieldComponent<string> implements DoCheck { \r\n \r\n @ContentChildren(ButtonComponent) button: QueryList<ButtonComponent>;\r\n\r\n @Input() describedBy: string;\r\n @HostBinding('class') hasButtonClass: string;\r\n @Input() classes: any;\r\n @Input() buttonClasses: string;\r\n @Input() placeholder: string;\r\n @Output() clickEvent = new EventEmitter();\r\n \r\n value = '';\r\n \r\n onClick(event: any): void {\r\n if (!this.disabled) {\r\n this.clickEvent.emit(event);\r\n }\r\n }\r\n\r\n hasButton(): boolean {\r\n return this.button && this.button.length > 0;\r\n }\r\n\r\n ngDoCheck(): void {\r\n this.hasButtonClass = this.hasButton() ? 'relative flex flex-wrap items-end' : 'relative';\r\n } \r\n}\r\n","import {\r\n Component,\r\n Input,\r\n} from '@angular/core';\r\nimport {ITreeItem} from \"../interfaces/itree-item\";\r\nimport {ContentBaseComponent} from \"../../../../shared/components\";\r\n\r\n@Component({\r\n selector: 'desy-tree-sub',\r\n templateUrl: './tree-sub.component.html'\r\n})\r\nexport class TreeSubComponent extends ContentBaseComponent {\r\n\r\n @Input() classes: string;\r\n\r\n itemList: ITreeItem[];\r\n\r\n}\r\n","export class ITreeItem {\r\n id: string;\r\n subLevel: number;\r\n defaultId: string;\r\n}\r\n","export class SearchUtils {\r\n\r\n /**\r\n * Comprueba si una cadena de texto (target) contiene cualquier palabra de otro texto (text)\r\n * @param target - Texto en el que buscar\r\n * @param text - Texto a buscar\r\n * @param fullWord - Indica si las palabras del texto a buscar deben aparecer enteras\r\n */\r\n public static containsAnyWordFrom(target: string, text: string, fullWord?: boolean): boolean {\r\n let words: string[] = [];\r\n let includes = false;\r\n const simplifiedTarget = this.getSimplifiedString(target);\r\n\r\n if (text && text.split(' ').length > 1) {\r\n words = text.split(' ');\r\n }\r\n words.push(text);\r\n\r\n words.forEach(word => {\r\n if (simplifiedTarget && word) {\r\n if ((fullWord && simplifiedTarget === this.getSimplifiedString(word))\r\n || (!fullWord && simplifiedTarget.includes(this.getSimplifiedString(word)))) {\r\n includes = true;\r\n }\r\n }\r\n });\r\n\r\n return includes;\r\n }\r\n\r\n /**\r\n * Convierte a mayúsculas, elimina espacios y reemplaza/elimina caracteres especiales para realizar comparaciones más tolerantes\r\n * @param str - cadena de entrada\r\n */\r\n private static getSimplifiedString(str: string): string {\r\n let res = str;\r\n if (str) {\r\n res = str.toLocaleUpperCase().trim();\r\n // acentos\r\n res = res.replace(/Á/g, 'A');\r\n res = res.replace(/É/g, 'E');\r\n res = res.replace(/Í/g, 'I');\r\n res = res.replace(/Ó/g, 'O');\r\n res = res.replace(/Ú/g, 'U');\r\n res = res.replace(/À/g, 'A');\r\n res = res.replace(/È/g, 'E');\r\n res = res.replace(/Ì/g, 'I');\r\n res = res.replace(/Ò/g, 'O');\r\n res = res.replace(/Ù/g, 'U');\r\n res = res.replace(/Ä/g, 'A');\r\n res = res.replace(/Ë/g, 'E');\r\n res = res.replace(/Ï/g, 'I');\r\n res = res.replace(/Ö/g, 'O');\r\n res = res.replace(/Ü/g, 'U');\r\n\r\n res = res.replace('Á', 'A');\r\n res = res.replace('É', 'E');\r\n res = res.replace('Í', 'I');\r\n res = res.replace('Ó', 'O');\r\n res = res.replace('Ú', 'U');\r\n res = res.replace('À', 'A');\r\n res = res.replace('È', 'E');\r\n res = res.replace('Ì', 'I');\r\n res = res.replace('Ò', 'O');\r\n res = res.replace('Ù', 'U');\r\n res = res.replace('Ä', 'A');\r\n res = res.replace('Ë', 'E');\r\n res = res.replace('Ï', 'I');\r\n res = res.replace('Ö', 'O');\r\n res = res.replace('Ü', 'U');\r\n\r\n // signos puntuacion\r\n res = res.replace(',', '');\r\n res = res.replace('.', '');\r\n res = res.replace('\\'', '');\r\n res = res.replace('\"', '');\r\n res = res.replace(/\\,/g, '');\r\n res = res.replace(/\\./g, '');\r\n res = res.replace(/\\'/g, '');\r\n res = res.replace(/\\\"/g, '');\r\n }\r\n\r\n return res;\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {LabelComponent} from \"../../label/label.component\";\r\nimport {HintComponent} from \"../../hint/hint.component\";\r\nimport {DesyOnInputChange} from \"../../../../shared/decorators/desy-on-input-change.decorator\";\r\nimport {SearchUtils} from \"../../../../shared/utils/search-utils\";\r\nimport {AccessibilityComponent} from \"../../../../shared/components\";\r\n\r\n@Component({\r\n selector: 'desy-tree-checkbox',\r\n templateUrl: './tree-checkbox.component.html'\r\n})\r\nexport class TreeCheckboxComponent extends AccessibilityComponent implements OnInit {\r\n\r\n @ViewChild('input', { static: true }) inputElement: ElementRef;\r\n @ViewChild('contentWrapper', { static: true }) contentWrapper: ElementRef;\r\n\r\n @DesyOnInputChange('onIdChange')\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() type: 'radio'|'checkbox'|null|undefined;\r\n @Input() classes: string;\r\n\r\n @Input() value: any;\r\n\r\n @Input() checked: boolean;\r\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() isIndeterminate: boolean;\r\n\r\n @DesyOnInputChange('setIndeterminateStatus')\r\n @Input() indeterminateChecked: boolean;\r\n @Output() indeterminateCheckedChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() disabled: boolean;\r\n @Input() hasDividers: boolean;\r\n\r\n @DesyOnInputChange('onDescribedByChange')\r\n @Input() describedBy: string;\r\n @Input() hasError = false;\r\n\r\n @DesyOnInputChange('overrideLabelParams')\r\n @Input() labelComponent: LabelComponent;\r\n\r\n @DesyOnInputChange('overrideHintParams')\r\n @Input() hintComponent: HintComponent;\r\n\r\n itemDescribedBy: string;\r\n\r\n private _lastIndeterminate;\r\n private _hasInit = false;\r\n\r\n constructor(private changeDetector: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._hasInit = true;\r\n this.onDescribedByChange();\r\n }\r\n\r\n detectChanges(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n hasChanged(): void {\r\n if (this._hasInit) {\r\n\r\n const input = this.inputElement.nativeElement;\r\n\r\n // Se establece el cambio a visualizar en el input\r\n if (this.isIndeterminate) {\r\n if (input.readOnly) {\r\n input.checked = false;\r\n input.readOnly = false;\r\n } else if (!input.checked) {\r\n input.readOnly = true;\r\n input.indeterminate = true;\r\n }\r\n }\r\n\r\n this.setIndeterminateChecked(input.indeterminate);\r\n this.checkedChange.emit(input.checked);\r\n }\r\n }\r\n\r\n onIdChange(): void {\r\n this.overrideLabelParams();\r\n this.overrideHintParams();\r\n }\r\n\r\n setIndeterminateStatus(): void {\r\n const input = this.inputElement?.nativeElement;\r\n if (input) {\r\n if (this.indeterminateChecked) {\r\n input.readOnly = true;\r\n input.indeterminate = true;\r\n } else if (input.readOnly) {\r\n input.readOnly = false;\r\n input.indeterminate = false;\r\n }\r\n }\r\n }\r\n\r\n setIndeterminateChecked(indeterminateChecked: boolean): void {\r\n this.indeterminateChecked = indeterminateChecked;\r\n this._lastIndeterminate = indeterminateChecked;\r\n this.indeterminateCheckedChange.emit(indeterminateChecked);\r\n this.changeDetector.detectChanges(); // Avisa al elemento input para que actualice su estado\r\n }\r\n\r\n focus(): void {\r\n this.inputElement.nativeElement.focus();\r\n }\r\n\r\n matchesText(value: string): boolean {\r\n const checkboxText = this.contentWrapper.nativeElement.textContent;\r\n return SearchUtils.containsAnyWordFrom(checkboxText, value);\r\n }\r\n\r\n preventDefault(event: KeyboardEvent): void {\r\n event.preventDefault();\r\n }\r\n\r\n getHintId(): string {\r\n return this.hintComponent ? this.hintComponent.id : '';\r\n }\r\n\r\n overrideLabelParams(): void {\r\n if (this.labelComponent) {\r\n this.labelComponent.for = this.id + '-input';\r\n if (!this.labelComponent.classes) {\r\n this.labelComponent.classes = 'block relative -top-xs -left-8 pl-8 py-xs';\r\n }\r\n this.labelComponent.detectChanges();\r\n }\r\n }\r\n\r\n overrideHintParams(): void {\r\n if (this.hintComponent) {\r\n if (!this.hintComponent.id) {\r\n this.hintComponent.id = this.id + '-item-hint';\r\n }\r\n this.hintComponent.detectChanges();\r\n }\r\n this.onDescribedByChange();\r\n }\r\n\r\n getItemDescribedBy(): string {\r\n return (this.describedBy ? this.describedBy : '') + ' ' + this.getHintId();\r\n }\r\n\r\n onDescribedByChange(): void {\r\n if (this.ariaDescribedBy) {\r\n this.itemDescribedBy = this.ariaDescribedBy;\r\n } else {\r\n this.itemDescribedBy = this.getItemDescribedBy();\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren, ElementRef,\r\n EventEmitter,\r\n forwardRef, HostBinding,\r\n Input,\r\n OnChanges,\r\n Output, SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {DesyContentChild} from \"../../../../shared/decorators/desy-content-child.decorator\";\r\nimport {TreeSubComponent} from \"../tree-sub/tree-sub.component\";\r\nimport {ITreeItem} from \"../interfaces/itree-item\";\r\nimport {HintComponent} from \"../../hint/hint.component\";\r\nimport {LabelComponent} from \"../../label/label.component\";\r\nimport {QuitTreeItemFocusOptions} from \"../interfaces/quit-tree-item-focus-options\";\r\nimport {TreeCheckboxComponent} from \"../tree-checkbox/tree-checkbox.component\";\r\nimport {AccessibilityComponent} from \"../../../../shared/components\";\r\nimport {DesyOnInputChange} from \"../../../../shared/decorators/desy-on-input-change.decorator\";\r\nimport {SearchUtils} from \"../../../../shared/utils/search-utils\";\r\n\r\n@Component({\r\n selector: 'desy-tree-item',\r\n templateUrl: './tree-item.component.html',\r\n providers: [\r\n {\r\n provide: ITreeItem,\r\n useExisting: forwardRef(() => TreeItemComponent)\r\n }\r\n ]\r\n})\r\nexport class TreeItemComponent extends AccessibilityComponent implements OnChanges, ITreeItem {\r\n\r\n private static _treeItemKeySuffix = 0; // Sufijo estático para generar siempre claves distintas\r\n @ViewChild('hiddenWrapper') hiddenWrapper: ElementRef;\r\n\r\n @DesyOnInputChange('setDefaultIdRecursive')\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() value: string;\r\n @Input() classes: string;\r\n @Input() active: boolean;\r\n @Input() disabled: boolean;\r\n @Input() title: string;\r\n @Input() hasDividers: boolean;\r\n @Input() isIndeterminate: boolean;\r\n\r\n @Input() checked: boolean;\r\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\r\n checkedChangeForTree: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() expanded: boolean;\r\n @Output() expandedChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() indeterminateChecked: boolean;\r\n @Output() indeterminateCheckedChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideSubValues'})\r\n @ContentChildren(TreeSubComponent) sub: TreeSubComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HintComponent) hint: HintComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) label: LabelComponent;\r\n\r\n @ViewChild(TreeCheckboxComponent) checkbox: TreeCheckboxComponent;\r\n\r\n /*\r\n * Identificador del wrapper del componente. Se utiliza para recorrer el árbol en sentido inverso y que cada item\r\n * sepa cuál es su item/árbol padre.\r\n * Esto es necesario ya que, a la hora de construir un árbol dinámico con templates,\r\n * el decorador @ContentChildren no funciona correctamente y no los detecta.\r\n * Dejo el enlace de un problema similar: https://github.com/angular/angular/issues/21751\r\n */\r\n @HostBinding('attr.desy-tree-item-key')\r\n readonly treeItemKey: string = TreeItemComponent.generateStaticItemKey();\r\n\r\n type: 'radio'|'checkbox'|null|undefined;\r\n subLevel: number; // Nivel dentro del arbol. 0 son los items a nivel de raiz.\r\n\r\n // Propiedades definidas por el componente árbol que el item puede utilizar, sobrescribir o ampliar\r\n parentName: string;\r\n defaultId;\r\n inheritedExpandedFirstLevel: boolean;\r\n inheritedDecoupleChildFromParent: boolean;\r\n inheritedDescribedBy: string;\r\n inheritedHasError: boolean;\r\n allParentsExpanded = true; // True si el elemento es visible según los elementos expandidos\r\n inheritedMatchesSearch = true; // True si el elemento es visible según los criterios de búsqueda\r\n orderInTree: number;\r\n\r\n // Evento para emitir al componente arbol cuando se pretende abandonar el foco del item\r\n quitFocus: EventEmitter<QuitTreeItemFocusOptions> = new EventEmitter<QuitTreeItemFocusOptions>();\r\n\r\n isFocus = false;\r\n isHover = false;\r\n private _matchesValidText = false; // True si el contenido del item encaja con los criterios de búsqueda y se está filtrando\r\n\r\n constructor(private changeDetector: ChangeDetectorRef, private element: ElementRef) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.sub && this.sub.itemList) {\r\n this.sub.itemList.forEach(item => (item as TreeItemComponent).refreshAllParentsExpandedRecursive(this.allParentsExpanded && this.expanded));\r\n }\r\n\r\n for (const propName in changes) {\r\n if (changes.hasOwnProperty(propName)) {\r\n switch (propName) {\r\n case 'checked': {\r\n // Reasignamos el valor de checked cuando detectamos el cambio en la entrada\r\n setTimeout(() => {\r\n this.setChecked(this.checked, false, false);\r\n if (this.inheritedExpandedFirstLevel && this.checked && !this.expanded) {\r\n this.expandSub(true);\r\n }\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /*\r\n * Métodos expuestos que permiten configurar al ítem de forma externa\r\n */\r\n\r\n focus(): void {\r\n this.checkbox?.focus();\r\n this.handleItemFocus(true);\r\n }\r\n\r\n setCheckedAutomaticallyDependingOnChildren(): void {\r\n if (this.sub) {\r\n this.sub.itemList.forEach(item => (item as TreeItemComponent).setCheckedAutomaticallyDependingOnChildren());\r\n if (this.areAllChildrenChecked()) {\r\n if (this.indeterminateChecked) {\r\n this.setIndeterminateChecked(false);\r\n }\r\n\r\n if (!this.checked) {\r\n this.setChecked(true, true);\r\n }\r\n } else if (this.hasChildrenCheckedOrIndeterminate()) {\r\n if (!this.indeterminateChecked) {\r\n this.setIndeterminateChecked(true);\r\n }\r\n\r\n if (this.checked) {\r\n this.setChecked(false, true);\r\n }\r\n } else {\r\n if (this.indeterminateChecked) {\r\n this.setIndeterminateChecked(false);\r\n }\r\n\r\n if (this.checked) {\r\n this.setChecked(false, true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n refreshAllParentsExpandedRecursive(value): void {\r\n this.allParentsExpanded = value;\r\n if (this.sub) {\r\n this.sub.itemList.forEach(item => (item as TreeItemComponent).refreshAllParentsExpandedRecursive(value && this.expanded));\r\n }\r\n }\r\n\r\n detectChanges(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n expandSub(value: boolean): void {\r\n this.expanded = value;\r\n if (this.sub) {\r\n this.sub.itemList.forEach(item => (item as TreeItemComponent).refreshAllParentsExpandedRecursive(this.allParentsExpanded && value));\r\n }\r\n this.expandedChange.emit(value);\r\n }\r\n\r\n /*\r\n * Gestion de eventos\r\n */\r\n\r\n handleCheckboxChange(checked: boolean): void {\r\n this.setChecked(checked, false);\r\n if (this.inheritedExpandedFirstLevel && checked && !this.expanded) {\r\n this.expandSub(true);\r\n }\r\n }\r\n\r\n handleIndeterminateCheckedChange(indeterminate: boolean): void {\r\n this.indeterminateCheckedChange.emit(indeterminate);\r\n }\r\n\r\n handleItemFocus(value, condition=true): void {\r\n if (condition) {\r\n this.isFocus = value;\r\n }\r\n }\r\n\r\n handleItemHover(value, condition=true): void {\r\n if (condition) {\r\n this.isHover = value;\r\n }\r\n }\r\n\r\n handleArrowUp(event: KeyboardEvent, condition=true): void {\r\n if (condition) {\r\n event.preventDefault();\r\n this.quitFocus.emit({\r\n nextElement: 'previous',\r\n currentItem: this\r\n });\r\n }\r\n }\r\n\r\n handleHome(event: KeyboardEvent, condition=true): void {\r\n if (condition) {\r\n event.preventDefault();\r\n this.quitFocus.emit({\r\n nextElement: 'first',\r\n currentItem: this\r\n });\r\n }\r\n }\r\n\r\n handleEnd(event: KeyboardEvent, condition=true): void {\r\n if (condition) {\r\n event.preventDefault();\r\n this.quitFocus.emit({\r\n nextElement: 'last',\r\n currentItem: this\r\n });\r\n }\r\n }\r\n\r\n handleArrowDown(event: KeyboardEvent, condition=true): void {\r\n if (condition) {\r\n event.preventDefault();\r\n this.quitFocus.emit({\r\n nextElement: 'next',\r\n currentItem: this\r\n });\r\n }\r\n }\r\n\r\n handleArrowRight(event: KeyboardEvent, condition=true): void {\r\n if (condition && this.sub && this.sub.itemList?.length > 0) {\r\n event.preventDefault();\r\n if (this.expanded) {\r\n this.quitFocus.emit({\r\n nextElement: 'firstChild',\r\n currentItem: this\r\n });\r\n } else {\r\n this.expandSub(true);\r\n }\r\n }\r\n }\r\n\r\n handleArrowLeft(event: KeyboardEvent, condition=true): void {\r\n if (condition) {\r\n event.preventDefault();\r\n if (this.expanded) {\r\n this.expandSub(false);\r\n } else if (this.subLevel > 0) {\r\n this.quitFocus.emit({\r\n nextElement: 'parent',\r\n currentItem: this\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Setters and getters\r\n */\r\n\r\n setChecked(checked: boolean, ignoreInTree: boolean, emitEvent = true): void {\r\n if (!this.disabled) {\r\n this.checked = checked;\r\n }\r\n\r\n if (!this.inheritedDecoupleChildFromParent && this.sub && this.sub.itemList && !this.indeterminateChecked) {\r\n this.sub.itemList.forEach(item => {\r\n (item as TreeItemComponent).setIndeterminateChecked(false);\r\n (item as TreeItemComponent).setChecked(checked, true)\r\n });\r\n }\r\n\r\n if (emitEvent) {\r\n this.checkedChange.emit(checked);\r\n }\r\n\r\n if (!ignoreInTree) {\r\n this.checkedChangeForTree.emit(checked);\r\n }\r\n }\r\n\r\n setIndeterminateChecked(indeterminate: boolean): void {\r\n if (!this.disabled) {\r\n this.indeterminateChecked = indeterminate;\r\n this.indeterminateCheckedChange.emit(indeterminate);\r\n }\r\n }\r\n\r\n setSubLevel(subLevel: number): void {\r\n this.subLevel = subLevel;\r\n if (this.sub && this.sub.itemList) {\r\n this.sub.itemList.forEach(item => (item as TreeItemComponent).setSubLevel(subLevel + 1));\r\n }\r\n }\r\n\r\n setOrderRecursively(order: number): number {\r\n this.orderInTree = order;\r\n let newOrder = order + 1;\r\n if (this.sub && this.sub.itemList) {\r\n this.sub.itemList.forEach(item => {\r\n newOrder = (item as TreeItemComponent).setOrderRecursively(newOrder);\r\n });\r\n }\r\n return newOrder;\r\n }\r\n\r\n setDefaultId(defaultId: string): void {\r\n this.defaultId = defaultId;\r\n this.setDefaultIdRecursive();\r\n }\r\n\r\n setDefaultIdRecursive(): void {\r\n if (this.sub && this.sub.itemList) {\r\n this.sub.itemList.forEach((item, index) => {\r\n (item as TreeItemComponent).setDefaultId(`sub-${this.getId()}-${index}`);\r\n });\r\n }\r\n }\r\n\r\n getId(): string {\r\n return this.id ? this.id : this.defaultId;\r\n }\r\n\r\n isHidden(): boolean {\r\n return !this.inheritedMatchesSearch && (!this.sub || this.areAllChildrenHidden());\r\n }\r\n\r\n areAllChildrenHidden(): boolean {\r\n const children = this.sub.itemList;\r\n return children.findIndex(child => !(child as TreeItemComponent).isHidden()) < 0;\r\n }\r\n\r\n areAllChildrenChecked(): boolean {\r\n const children = this.sub.itemList;\r\n return children.findIndex(child => !(child as TreeItemComponent).checked) < 0;\r\n }\r\n\r\n hasChildrenCheckedOrIndeterminate(): boolean {\r\n const children = this.sub.itemList;\r\n return children.findIndex(child => (child as TreeItemComponent).checked || (child as TreeItemComponent).indeterminateChecked) >= 0;\r\n }\r\n\r\n matchesText(value: string): boolean {\r\n let matches: boolean;\r\n if (this.allParentsExpanded && !this.isHidden()) {\r\n matches = this.checkbox?.matchesText(value);\r\n } else {\r\n const itemText = this.hiddenWrapper.nativeElement.textContent;\r\n matches = SearchUtils.containsAnyWordFrom(itemText, value);\r\n }\r\n this._matchesValidText = value ? matches : false;\r\n return matches;\r\n }\r\n\r\n getKey(): string {\r\n return this.treeItemKey;\r\n }\r\n\r\n getParentKey(): string {\r\n let parentKey: string;\r\n let parentElement = this.element.nativeElement.parentElement;\r\n while (parentElement && parentElement.tagName !== 'BODY' && parentElement.tagName !== 'DESY-TREE-ITEM' && parentElement.tagName !== 'DESY-TREE') {\r\n parentElement = parentElement.parentElement;\r\n }\r\n\r\n if (parentElement.tagName === 'BODY') {\r\n throw new Error('Parent for tree-item not found');\r\n }\r\n\r\n if (parentElement.tagName === 'DESY-TREE') {\r\n parentKey = 'root';\r\n }\r\n\r\n if (parentElement.tagName === 'DESY-TREE-ITEM') {\r\n parentKey = parentElement.getAttribute('desy-tree-item-key');\r\n }\r\n\r\n return parentKey;\r\n }\r\n\r\n isActive(): boolean {\r\n return this.active || this._matchesValidText;\r\n }\r\n\r\n /*\r\n * Métodos privados\r\n */\r\n\r\n /**\r\n * Genera una clave única para el componente\r\n * @private\r\n */\r\n private static generateStaticItemKey(): string {\r\n const key = 'tree-item-key-' + TreeItemComponent._treeItemKeySuffix;\r\n TreeItemComponent._treeItemKeySuffix++;\r\n return key;\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren, EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output, QueryList,\r\n SimpleChanges, TemplateRef, ViewChild\r\n} from '@angular/core';\r\nimport {DesyContentChild} from \"../../../shared/decorators/desy-content-child.decorator\";\r\nimport {TreeItemComponent} from \"./tree-item/tree-item.component\";\r\nimport {DesyOnInputChange} from \"../../../shared/decorators/desy-on-input-change.decorator\";\r\nimport {NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport {FormFieldComponent} from \"../form-field/form-field.component\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {FieldsetComponent} from \"../fieldset/fieldset.component\";\r\nimport {QuitTreeItemFocusOptions} from \"./interfaces/quit-tree-item-focus-options\";\r\nimport {SearchBarComponent} from \"../search-bar/search-bar.component\";\r\n\r\n@Component({\r\n selector: 'desy-tree',\r\n templateUrl: './tree.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TreeComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class TreeComponent extends FormFieldComponent<any[]> implements OnChanges, OnDestroy {\r\n\r\n @Input() idPrefix: string;\r\n @Input() classes: string;\r\n @Input() name: string;\r\n @Input() type: 'radio'|'checkbox'|null|undefined;\r\n @Input() describedBy: string;\r\n\r\n @Input() formGroupClasses: any;\r\n\r\n @Input() expandedFirstLevel = true;\r\n @Input() decoupleChildFromParent = false;\r\n\r\n @Input() disableDefaultSearch = false;\r\n\r\n @DesyOnInputChange('onSearchMatchValuesChange')\r\n @Input() searchMatchValues: string[];\r\n @Output() searchMatchValuesChange: EventEmitter<string[]> = new EventEmitter<string[]>();\r\n\r\n @DesyOnInputChange('configureAllItems')\r\n @ContentChildren(TreeItemComponent, { descendants: true }) allItems: QueryList<TreeItemComponent>;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\r\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideSearchBarParams'})\r\n @ContentChildren(SearchBarComponent) searchBarComponent: SearchBarComponent;\r\n\r\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\r\n\r\n private rootItems: TreeItemComponent[] = [];\r\n private _itemListSubscription: Subscription;\r\n private _allItemListSubscription: Subscription;\r\n private _itemListCheckedSubscriptions: Subscription[] = [];\r\n private _itemListQuitFocusSubscriptions: Subscription[] = [];\r\n private _alreadyConfiguringItems = false;\r\n\r\n constructor(private changeDetector: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.clearSubscriptions(this._itemListCheckedSubscriptions);\r\n this.clearSubscriptions(this._itemListQuitFocusSubscriptions);\r\n this._itemListSubscription?.unsubscribe();\r\n this._allItemListSubscription?.unsubscribe();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.configureAllItems();\r\n }\r\n\r\n /**\r\n * Se sobrescribe el valor para actualizar los items\r\n * @Override\r\n */\r\n writeValue(value: any): void {\r\n this.value = value;\r\n this.configureAllItems(true);\r\n this.onChange(this.value);\r\n }\r\n\r\n /*\r\n * Eventos\r\n */\r\n\r\n /**\r\n * Actualiza el valor del componente al checkquearse un ítem\r\n * @param originItem ítem modificado\r\n */\r\n updateValueFromItems(originItem?: TreeItemComponent): void {\r\n\r\n // Si es radio, se desactivan el resto de items cuando se activa otro item\r\n if (this.type !== 'checkbox') {\r\n const items = this.getAllItemsInOrder();\r\n items.forEach(item => {\r\n if (item !== originItem && item.checked) {\r\n item.setChecked(false, true);\r\n }\r\n });\r\n } else if (!this.decoupleChildFromParent) {\r\n this.rootItems.forEach(item => item.setCheckedAutomaticallyDependingOnChildren());\r\n }\r\n\r\n this.value = [];\r\n const items = this.getAllItemsInOrder();\r\n items.forEach(item => {\r\n if (item.checked) {\r\n this.value.push(item.value);\r\n }\r\n });\r\n this.onChange(this.value);\r\n }\r\n\r\n /**\r\n * Gestiona cuando el foco abandona un ítem desde un evento de teclado controlado\r\n * @param options\r\n */\r\n handleItemQuitFocus(options: QuitTreeItemFocusOptions): void {\r\n if (options && options.nextElement) {\r\n const items = this.getAllItemsInOrder();\r\n const focusableItems = items.filter(item => !item.isHidden() && !item.disabled && item.allParentsExpanded);\r\n switch (options.nextElement) {\r\n case \"first\":\r\n focusableItems[0].focus();\r\n break;\r\n case \"last\":\r\n focusableItems[focusableItems.length - 1].focus();\r\n break;\r\n case \"parent\":\r\n const currentSubLevel = options.currentItem.subLevel;\r\n if (currentSubLevel > 0) {\r\n const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);\r\n const parent = focusableItems.slice(0, currentItemIndex).reverse().find(item => item.subLevel < currentSubLevel);\r\n if (parent) {\r\n parent.focus();\r\n }\r\n }\r\n break;\r\n case \"firstChild\":\r\n case \"next\":\r\n if (options.currentItem) {\r\n let currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);\r\n if (currentItemIndex < focusableItems.length - 1) {\r\n focusableItems[currentItemIndex + 1].focus();\r\n }\r\n }\r\n break;\r\n case \"previous\":\r\n if (options.currentItem) {\r\n const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);\r\n if (currentItemIndex > 0) {\r\n focusableItems[currentItemIndex - 1].focus();\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Realiza la búsqueda interna de los items en el componente\r\n * @param value texto de búsqueda\r\n */\r\n onSearch(value: string): void {\r\n if (!this.disableDefaultSearch) {\r\n if (value && value.length > 0) {\r\n this.searchMatchValues = this.allItems.filter(item => item.matchesText(value)).map(item => item.value);\r\n } else {\r\n this.searchMatchValues = null;\r\n }\r\n this.searchMatchValuesChange.emit(this.searchMatchValues);\r\n }\r\n }\r\n\r\n /*\r\n * Eventos al cambiar propiedades\r\n */\r\n\r\n /**\r\n * Configura los items del árbol\r\n */\r\n configureAllItems(isValueChange = false): void {\r\n\r\n if (!this._alreadyConfiguringItems) {\r\n this._alreadyConfiguringItems = true;\r\n\r\n // Lo realizamos desde un setTimeout para que todos los inputs, values y demás vivan en paz y armonía\r\n setTimeout(() => {\r\n if (this.allItems?.length > 0) {\r\n this.clearSubscriptions(this._itemListCheckedSubscriptions);\r\n this.clearSubscriptions(this._itemListQuitFocusSubscriptions);\r\n this.allItems.forEach(item => {\r\n item.parentName = this.name;\r\n item.type = this.type;\r\n item.inheritedDescribedBy = this.getDescribedByForItems();\r\n item.inheritedExpandedFirstLevel = this.expandedFirstLevel;\r\n item.inheritedDecoupleChildFromParent = this.decoupleChildFromParent;\r\n if ((this.value && this.value.length > 0) || isValueChange) {\r\n const valueList = this.value ? this.value : [];\r\n item.setChecked(!!valueList.find(v => v === item.value), true);\r\n }\r\n item.detectChanges();\r\n\r\n const checkedSubscription = item.checkedChangeForTree.subscribe(() => this.updateValueFromItems(item));\r\n this._itemListCheckedSubscriptions.push(checkedSubscription);\r\n\r\n const quitFocusSubscription = item.quitFocus.subscribe(options => this.handleItemQuitFocus(options));\r\n this._itemListQuitFocusSubscriptions.push(quitFocusSubscription);\r\n });\r\n\r\n this.setErrorInItems(this.hasErrorMessageComponent());\r\n\r\n this.buildTree();\r\n if (!this.value) {\r\n this.updateValueFromItems();\r\n }\r\n\r\n if (this.searchMatchValues) {\r\n this.onSearchMatchValuesChange();\r\n }\r\n }\r\n\r\n if (this.allItems && !this._allItemListSubscription) {\r\n this._allItemListSubscription = this.allItems.changes.subscribe(() => this.configureAllItems());\r\n }\r\n\r\n this.changeDetector.detectChanges();\r\n this._alreadyConfiguringItems = false;\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Modifica los items visibles según el filtro de búsqueda\r\n */\r\n onSearchMatchValuesChange(): void {\r\n if (this.allItems) {\r\n this.allItems.forEach(item => {\r\n item.inheritedMatchesSearch = true;\r\n });\r\n\r\n if (this.searchMatchValues !== null && this.searchMatchValues !== undefined) {\r\n this.allItems.forEach(item => {\r\n if (this.searchMatchValues.findIndex(value => item.value === value) < 0) {\r\n item.inheritedMatchesSearch = false;\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n /*\r\n * Getters and setters\r\n */\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.name;\r\n }\r\n\r\n getDescribedBy(): string {\r\n let describedBy = '';\r\n if (this.describedBy) {\r\n describedBy = this.describedBy;\r\n }\r\n\r\n if (this.hasHintComponent() && this.hintComponent.id) {\r\n describedBy = describedBy + ' ' + this.hintComponent.id;\r\n }\r\n\r\n if (this.hasErrorMessageComponent() && this.errorMessageComponent.id) {\r\n describedBy = describedBy + ' ' + this.errorMessageComponent.id;\r\n }\r\n\r\n return describedBy;\r\n }\r\n\r\n /**\r\n * Devuelve el valor de describedBy que se transmitirá a los items\r\n */\r\n getDescribedByForItems(): string {\r\n let describedBy;\r\n if (this.hasFieldsetComponent()) {\r\n describedBy = this.fieldsetComponent.describedBy;\r\n } else {\r\n describedBy = this.getDescribedBy();\r\n }\r\n\r\n return describedBy;\r\n }\r\n\r\n hasFieldsetComponent(): boolean {\r\n return !!this.fieldsetComponent;\r\n }\r\n\r\n /**\r\n * Overrides super.getHintId();\r\n */\r\n getHintId(): string {\r\n return this.idPrefix ? this.idPrefix + '-hint' : this.hintComponent?.id;\r\n }\r\n\r\n /**\r\n * Overrides super.getHintId();\r\n */\r\n getErrorId(): string {\r\n return this.idPrefix ? this.idPrefix + '-error' : this.errorMessageComponent?.id;\r\n }\r\n\r\n /*\r\n * Funciones para reemplazar el contenido del fieldset, label, hint o errormessage\r\n */\r\n\r\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\r\n fieldset.caller = this.innerHtml;\r\n fieldset.errorId = this.getErrorId();\r\n fieldset.describedBy = this.getDescribedBy();\r\n fieldset.detectChanges();\r\n }\r\n\r\n overrideSearchBarParams(searchbar: SearchBarComponent): void {\r\n const defaultOnChange = searchbar.onChange;\r\n const newOnChange = value => {\r\n this.onSearch(value);\r\n defaultOnChange(value);\r\n }\r\n searchbar.registerOnChange(newOnChange);\r\n }\r\n\r\n /**\r\n * Se llama desde FormField\r\n */\r\n overrideHintParams(hint): void {\r\n hint.id = this.getHintId();\r\n hint.detectChanges();\r\n }\r\n\r\n /**\r\n * Se llama desde FormField\r\n */\r\n overrideErrorMessageParams(errorMessage): void {\r\n errorMessage.id = this.getErrorId();\r\n this.setErrorInItems(this.hasErrorMessageComponent());\r\n errorMessage.detectChanges();\r\n }\r\n\r\n /**\r\n * Se llama desde FormField\r\n */\r\n onDeleteErrorMessage(errorMessage): void {\r\n this.setErrorInItems(this.hasErrorMessageComponent());\r\n }\r\n\r\n /*\r\n * Métodos privados\r\n */\r\n\r\n /**\r\n * Configura la estructura del árbol\r\n * @private\r\n */\r\n private buildTree(): void {\r\n\r\n // Se crea un mapa para tener accesibles los items por key y se borran los listados existentes\r\n const itemMap = {}\r\n this.rootItems = [];\r\n this.allItems.forEach(item => {\r\n const key = item.getKey();\r\n itemMap[key] = item;\r\n if (item.sub) {\r\n item.sub.itemList = [];\r\n }\r\n });\r\n\r\n // Se añaden los items a los listados correspondientes\r\n this.allItems.forEach(item => {\r\n const parentKey = item.getParentKey();\r\n if (parentKey === 'root') {\r\n this.rootItems.push(item);\r\n } else if (parentKey) {\r\n const sub = itemMap[parentKey].sub;\r\n if (sub) {\r\n sub.itemList.push(item);\r\n }\r\n }\r\n });\r\n\r\n // Se configuran los items desde root\r\n let order = 0;\r\n this.rootItems.forEach((item, index) => {\r\n item.setSubLevel(0);\r\n item.setDefaultId(`${this.idPrefix}-${index}`);\r\n item.refreshAllParentsExpandedRecursive(true);\r\n if (!this.decoupleChildFromParent) {\r\n item.setCheckedAutomaticallyDependingOnChildren();\r\n }\r\n order = item.setOrderRecursively(order);\r\n });\r\n }\r\n\r\n /**\r\n * Si tiene un mensaje de error, se indica a los items\r\n * @param hasError\r\n * @private\r\n */\r\n private setErrorInItems(hasError: boolean): void {\r\n if (this.allItems?.length > 0) {\r\n this.allItems.forEach(item => {\r\n item.inheritedHasError = hasError;\r\n item.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Limpia un listado de subscripciones\r\n * @param subscriptionList\r\n * @private\r\n */\r\n private clearSubscriptions(subscriptionList: Subscription[]): void {\r\n if (subscriptionList.length > 0) {\r\n subscriptionList.forEach(s => s.unsubscribe());\r\n subscriptionList.splice(0, subscriptionList.length)\r\n }\r\n }\r\n\r\n /**\r\n * Devuelve los items del árbol ordenados\r\n * @private\r\n */\r\n private getAllItemsInOrder(): TreeItemComponent[] {\r\n let list = [];\r\n if (this.allItems) {\r\n list = this.allItems.toArray().sort((a, b) => a.orderInTree > b.orderInTree ? 1 : -1)\r\n }\r\n return list\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, TemplateRef } from '@angular/core';\r\nimport { ItemCheckboxData, ItemRadioWithTemplateData } from '../interfaces';\r\n\r\n@Directive({\r\n selector: '[desyCondition]'\r\n})\r\nexport class ConditionDirective implements OnChanges {\r\n\r\n /**\r\n * Condition, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir objeto ItemCheckboxData o ItemRadioWithTemplateData (interfaces expuesta)\r\n * 2) incluir value y el listado de ItemCheckboxData[] o ItemRadioWithTemplateData[]\r\n */\r\n @Input() item: ItemCheckboxData|ItemRadioWithTemplateData;\r\n\r\n @Input() value: any;\r\n @Input() items: ItemCheckboxData[]|ItemRadioWithTemplateData[];\r\n\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n\r\n ngOnChanges(): void {\r\n if (this.item) {\r\n this.item.conditionalHtml = this.templateRef;\r\n } else if (this.value && this.items) {\r\n for (const item of this.items) {\r\n if (item.value === this.value) {\r\n item.conditionalHtml = this.templateRef;\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport {TreeItemComponent} from \"../tree-item/tree-item.component\";\r\n\r\n@Component({\r\n selector: 'desy-tree-items-generator',\r\n templateUrl: './tree-items-generator.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TreeItemsGeneratorComponent implements OnInit {\r\n\r\n @ViewChild('content', { static: true }) content: TemplateRef<any>;\r\n\r\n @Input() items: any[];\r\n @Input() itemTemplate: TemplateRef<TreeItemComponent>;\r\n\r\n constructor(private viewContainerRef: ViewContainerRef) { }\r\n\r\n ngOnInit(): void {\r\n this.viewContainerRef.createEmbeddedView(this.content);\r\n }\r\n\r\n}\r\n","import { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\r\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ModalButtonData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-modal-button-primary',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ModalButtonPrimaryComponent extends ButtonComponent implements ModalButtonData {\r\n @Input() classes: string;\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n}\r\n","import { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\r\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ModalButtonData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-modal-button-secondary',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ModalButtonSecondaryComponent extends ButtonComponent implements ModalButtonData {\r\n @Input() classes: string;\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n}\r\n","import { ButtonLoaderComponent } from './../../../../desy-buttons/components/button-loader/button-loader.component';\r\nimport { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\r\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ModalButtonData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-modal-button-loader-primary',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ModalButtonLoaderPrimaryComponent extends ButtonLoaderComponent implements ModalButtonData {\r\n @Input() classes: string;\r\n @Input() state: string;\r\n @Output() clickEvent = new EventEmitter();\r\n}\r\n","import { ButtonLoaderComponent } from './../../../../desy-buttons/components/button-loader/button-loader.component';\r\nimport { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\r\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ModalButtonData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-modal-button-loader-secondary',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ModalButtonLoaderSecondaryComponent extends ButtonLoaderComponent implements ModalButtonData {\r\n @Input() classes: string;\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren, ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport { ModalButtonData, ModalData, ModalIconData } from '../../interfaces';\r\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\r\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\r\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\nimport {ModalButtonPrimaryComponent} from './modal-button-primary/modal-button-primary.component';\r\nimport {ModalButtonSecondaryComponent} from './modal-button-secondary/modal-button-secondary.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { ModalButtonLoaderPrimaryComponent } from './modal-button-loader-primary/modal-button-loader-primary.component';\r\nimport { ModalButtonLoaderSecondaryComponent } from './modal-button-loader-secondary/modal-button-loader-secondary.component';\r\n\r\n@Component({\r\n selector: 'desy-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ModalComponent extends AccessibilityComponent {\r\n\r\n @Input() title: ModalData;\r\n @Input() description: ModalData;\r\n @Input() itemsPrimary: ModalButtonData[];\r\n @Input() itemsSecondary: ModalButtonData[];\r\n @Input() itemsLoaderPrimary: ModalButtonData[];\r\n @Input() itemsLoaderSecondary: ModalButtonData[];\r\n @Input() icon: ModalIconData;\r\n @Input() headingLevel: number;\r\n\r\n @Input() isDismissible: boolean;\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() caller: TemplateRef<any>;\r\n\r\n @Output() closeModal: EventEmitter<void> = new EventEmitter();\r\n @Output() clickButton: EventEmitter<any> = new EventEmitter();\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @ContentChildren(ModalButtonPrimaryComponent) primaryButtonComponents: QueryList<ModalButtonPrimaryComponent>;\r\n @ContentChildren(ModalButtonSecondaryComponent) secondaryButtonComponents: QueryList<ModalButtonSecondaryComponent>;\r\n\r\n @ContentChildren(ModalButtonLoaderPrimaryComponent) primaryButtonLoaderComponents: QueryList<ModalButtonLoaderPrimaryComponent>;\r\n @ContentChildren(ModalButtonLoaderSecondaryComponent) secondaryButtonLoaderComponents: QueryList<ModalButtonLoaderSecondaryComponent>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(IconComponent) iconComponent: IconComponent;\r\n\r\n hasIconContent = true;\r\n descriptionIsHtml = true;\r\n descriptionIsEmpty = false;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n closeDialog(): void {\r\n this.closeModal.emit();\r\n }\r\n\r\n getType(): string {\r\n let type: string;\r\n if (this.iconComponent) {\r\n type = this.iconComponent.type ? this.iconComponent.type.toLocaleLowerCase() : null;\r\n } else if (this.icon.type) {\r\n type = this.icon.type ? this.icon.type.toLocaleLowerCase() : null;\r\n }\r\n\r\n return type;\r\n }\r\n\r\n checkDescriptionContent(element: ElementRef): void {\r\n const childs: NodeListOf<ChildNode> = element.nativeElement.childNodes;\r\n let hasHtml = false;\r\n let hasContent = false;\r\n for (let i = 0; i < childs.length && !hasHtml; i++) {\r\n const item = childs.item(i);\r\n if (item.nodeType === Node.TEXT_NODE && item.textContent.length > 0) {\r\n hasContent = true;\r\n } else if (item.nodeType === Node.ELEMENT_NODE || item.nodeType === Node.CDATA_SECTION_NODE) {\r\n hasHtml = true;\r\n hasContent = true;\r\n }\r\n }\r\n\r\n const descriptionWasEmpty = this.descriptionIsEmpty;\r\n this.descriptionIsEmpty = !hasContent;\r\n this.descriptionIsHtml = hasHtml;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n clickButtonEmit(item: ModalButtonData, event): void{\r\n this.clickButton.emit(event);\r\n\r\n if (item instanceof ModalButtonPrimaryComponent || item instanceof ModalButtonSecondaryComponent || item instanceof ModalButtonLoaderPrimaryComponent || item instanceof ModalButtonLoaderSecondaryComponent) {\r\n item.clickEvent.emit(event);\r\n }\r\n }\r\n\r\n handleIconContentEmpty(isEmpty: boolean): void {\r\n this.hasIconContent = !isEmpty;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n getTitleClasses(): string {\r\n let classes = 'c-h2 px-base text-center focus:outline-none focus:underline';\r\n if (this.titleComponent && this.titleComponent.classes) {\r\n classes = this.titleComponent.classes;\r\n } else if (this.title && this.title.classes) {\r\n classes = this.title.classes;\r\n }\r\n return classes;\r\n }\r\n\r\n getDescriptionClasses(): string {\r\n let classes = 'c-paragraph-base my-base text-center';\r\n if (this.descriptionComponent && this.descriptionComponent.classes) {\r\n classes = this.descriptionComponent.classes;\r\n } else if (this.description && this.description.classes) {\r\n classes = this.description.classes;\r\n }\r\n return classes;\r\n }\r\n\r\n getPrimaryItems(): ModalButtonData[]|ModalButtonPrimaryComponent[] {\r\n return this.primaryButtonComponents && this.primaryButtonComponents.length > 0 ? this.primaryButtonComponents.toArray()\r\n : this.itemsPrimary;\r\n }\r\n\r\n getSecondaryItems(): ModalButtonData[]|ModalButtonPrimaryComponent[] {\r\n return this.secondaryButtonComponents && this.secondaryButtonComponents.length > 0 ? this.secondaryButtonComponents.toArray()\r\n : this.itemsSecondary;\r\n }\r\n\r\n getPrimaryLoaderItems(): ModalButtonData[]|ModalButtonLoaderPrimaryComponent[] {\r\n return this.primaryButtonLoaderComponents && this.primaryButtonLoaderComponents.length > 0 ? this.primaryButtonLoaderComponents.toArray() : this.itemsLoaderPrimary;\r\n }\r\n\r\n getSecondaryLoaderItems(): ModalButtonData[]|ModalButtonLoaderSecondaryComponent[] {\r\n return this.secondaryButtonLoaderComponents && this.secondaryButtonLoaderComponents.length > 0 ? this.secondaryButtonLoaderComponents.toArray() : this.itemsLoaderSecondary;\r\n }\r\n}\r\n","import {\r\n Component,\r\n HostListener,\r\n OnChanges,\r\n OnDestroy,\r\n Input,\r\n ViewChild,\r\n ViewContainerRef,\r\n TemplateRef,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Output,\r\n HostBinding,\r\n EventEmitter, ComponentRef, ElementRef, Type, ComponentFactoryResolver\r\n} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { ConfigurableFocusTrap, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';\r\nimport { FocusUtils } from '../../../shared/utils/focus-utils';\r\n\r\nlet numDialogsOpened = 0;\r\ntype DialogCreationCallback = ((dialog: DialogComponent, caller: ComponentRef<any>) => void);\r\n\r\n@Component({\r\n selector: 'desy-dialog',\r\n templateUrl: './dialog.component.html'\r\n})\r\nexport class DialogComponent extends AccessibilityComponent implements OnChanges, OnDestroy, AfterViewInit {\r\n\r\n static readonly DIALOG_OPEN_CLASS = 'has-dialog';\r\n static readonly KEY_CODE_ESC = 'Escape';\r\n\r\n @ViewChild('container', {read: ViewContainerRef}) container: ViewContainerRef;\r\n @ViewChild('focusTrapWrapper') focusTrapWrapper: ElementRef;\r\n\r\n @Input() active: boolean;\r\n @Output() activeChange = new EventEmitter<boolean>();\r\n\r\n @Input() id: any;\r\n @Input() caller: TemplateRef<any>;\r\n @Input() focusOnClose: string|HTMLElement;\r\n @Input() dismissOnBackdrop: boolean;\r\n @Input() classes: string;\r\n \r\n public callerType: Type<any>;\r\n public onCallerCreationCallback: DialogCreationCallback;\r\n\r\n lastActiveState = false;\r\n focusTrap: ConfigurableFocusTrap;\r\n clickOutsideEnabled = false;\r\n childElem: ElementRef;\r\n\r\n constructor(private cdRef: ChangeDetectorRef,\r\n private focusTrapFactory: ConfigurableFocusTrapFactory,\r\n private factoryResolver: ComponentFactoryResolver) {\r\n super();\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.focusTrapWrapper) {\r\n this.handleActiveState();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n \r\n if (this.callerType) {\r\n const factory = this.factoryResolver.resolveComponentFactory(this.callerType);\r\n const component = this.container.createComponent(factory);\r\n if (this.onCallerCreationCallback) {\r\n this.onCallerCreationCallback(this, component);\r\n }\r\n }\r\n\r\n if (this.focusTrapWrapper.nativeElement.children && this.focusTrapWrapper.nativeElement.children.length === 1) {\r\n this.childElem = this.focusTrapWrapper.nativeElement.children[0];\r\n }\r\n\r\n this.handleActiveState();\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.active = false;\r\n this.handleActiveState();\r\n }\r\n\r\n\r\n public dismiss(): void {\r\n this.activeChange.emit(false);\r\n }\r\n\r\n\r\n @HostListener('document:keyup', ['$event'])\r\n onKeyUp(event: KeyboardEvent): void {\r\n if (event.key === DialogComponent.KEY_CODE_ESC) {\r\n event.stopPropagation();\r\n this.dismiss();\r\n }\r\n }\r\n\r\n handleActiveState(): void {\r\n if (!this.focusTrap) {\r\n this.focusTrap = this.focusTrapFactory.create(this.focusTrapWrapper.nativeElement);\r\n }\r\n\r\n if (this.active !== this.lastActiveState) {\r\n this.lastActiveState = this.active;\r\n\r\n // Habilitar/deshabilitar scroll\r\n if (this.active && numDialogsOpened === 0) {\r\n document.body.classList.add(DialogComponent.DIALOG_OPEN_CLASS);\r\n } else if (!this.active && numDialogsOpened === 1) {\r\n document.body.classList.remove(DialogComponent.DIALOG_OPEN_CLASS);\r\n if (document.body.classList.length === 0) {\r\n document.body.removeAttribute('class');\r\n }\r\n }\r\n\r\n if (this.active) {\r\n setTimeout(() => this.focusTrap.focusInitialElement());\r\n numDialogsOpened++;\r\n } else {\r\n let focusElem: HTMLElement;\r\n this.focusTrap.destroy();\r\n if (this.focusOnClose) {\r\n if (typeof this.focusOnClose === 'string') {\r\n focusElem = document.getElementById(this.focusOnClose);\r\n } else {\r\n focusElem = this.focusOnClose;\r\n }\r\n } else {\r\n focusElem = FocusUtils.getFirstFocusableElement();\r\n }\r\n if (focusElem) {\r\n setTimeout(() => focusElem.focus());\r\n }\r\n numDialogsOpened--;\r\n }\r\n\r\n setTimeout(() => this.clickOutsideEnabled = this.active);\r\n }\r\n }\r\n\r\n handleClickOutside(): void {\r\n if (this.dismissOnBackdrop) {\r\n this.dismiss();\r\n }\r\n }\r\n}\r\n","import {\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n ComponentRef, EmbeddedViewRef,\r\n Injectable,\r\n Injector,\r\n TemplateRef,\r\n Type\r\n} from '@angular/core';\r\nimport { DialogOptions, ModalOptions, OpenDialogResult } from '../interfaces';\r\nimport { DialogComponent } from '../components/dialog/dialog.component';\r\nimport { ModalComponent } from '../components/modal/modal.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogService {\r\n\r\n constructor(private factoryResolver: ComponentFactoryResolver,\r\n private defaultInjector: Injector,\r\n private appRef: ApplicationRef) { }\r\n\r\n openDialog(caller: Type<any>|ModalOptions|TemplateRef<any>,\r\n dialogOptions: DialogOptions): Promise<OpenDialogResult> {\r\n return new Promise<OpenDialogResult>((resolve, reject) => {\r\n\r\n if (!caller) {\r\n reject('caller is required');\r\n }\r\n\r\n if (!dialogOptions) {\r\n reject('dialogOptions is required');\r\n }\r\n\r\n const dialog = this.createDialog(dialogOptions);\r\n const result: OpenDialogResult = {\r\n dialog\r\n };\r\n\r\n if (caller instanceof Type) {\r\n dialog.instance.callerType = caller;\r\n dialog.instance.onCallerCreationCallback = (d, c) => {\r\n result.component = c;\r\n resolve(result);\r\n };\r\n } else if (caller instanceof TemplateRef) {\r\n dialog.instance.caller = caller;\r\n resolve(result);\r\n } else {\r\n dialog.instance.callerType = ModalComponent;\r\n dialog.instance.onCallerCreationCallback = (d, c) => {\r\n this.initModal(d, c, caller);\r\n result.component = c;\r\n resolve(result);\r\n };\r\n }\r\n });\r\n }\r\n\r\n closeDialog(dialog: ComponentRef<DialogComponent>|DialogComponent): void {\r\n if (dialog) {\r\n if (dialog instanceof ComponentRef) {\r\n dialog.instance.dismiss();\r\n } else {\r\n dialog.dismiss();\r\n }\r\n }\r\n }\r\n\r\n onCloseDialog(dialog: ComponentRef<DialogComponent>|DialogComponent): Promise<void> {\r\n return new Promise<void>((resolve => {\r\n let d;\r\n if (dialog instanceof ComponentRef) {\r\n d = dialog.instance;\r\n } else {\r\n d = dialog;\r\n }\r\n\r\n const subscription = d.activeChange.subscribe(() => {\r\n resolve();\r\n subscription.unsubscribe();\r\n });\r\n }));\r\n }\r\n\r\n private createDialog(dialogOptions: DialogOptions): ComponentRef<DialogComponent> {\r\n const factory = this.factoryResolver.resolveComponentFactory(DialogComponent);\r\n let dialog;\r\n if (dialogOptions.rootViewContainer) {\r\n dialog = dialogOptions.rootViewContainer.createComponent<DialogComponent>(factory);\r\n } else {\r\n dialog = factory.create(this.defaultInjector);\r\n this.appRef.attachView(dialog.hostView);\r\n const componentElement = (dialog.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(componentElement);\r\n }\r\n\r\n dialog.instance.active = true;\r\n if (dialogOptions) {\r\n Object.assign(dialog.instance, dialogOptions);\r\n }\r\n\r\n this.onCloseDialog(dialog).then(() => dialog.destroy());\r\n\r\n return dialog;\r\n }\r\n\r\n private initModal(dialog: DialogComponent, modalRef: ComponentRef<ModalComponent>, modalOptions: ModalOptions): void {\r\n modalRef.instance.title = modalOptions.title;\r\n modalRef.instance.description = modalOptions.description;\r\n modalRef.instance.itemsPrimary = modalOptions.itemsPrimary;\r\n modalRef.instance.itemsSecondary = modalOptions.itemsSecondary;\r\n modalRef.instance.icon = modalOptions.icon;\r\n\r\n modalRef.instance.isDismissible = modalOptions.isDismissible;\r\n modalRef.instance.id = modalOptions.id;\r\n modalRef.instance.classes = modalOptions.classes;\r\n modalRef.instance.caller = modalOptions.caller;\r\n\r\n if (modalOptions.isDismissible) {\r\n const subscription = modalRef.instance.closeModal.subscribe(() => {\r\n this.closeDialog(dialog);\r\n subscription.unsubscribe();\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport { BreadcrumbsData } from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-breadcrumbs-item',\r\n templateUrl: './breadcrumbs-item.component.html'\r\n})\r\nexport class BreadcrumbsItemComponent extends ContentBaseComponent implements BreadcrumbsData {\r\n\r\n @Input() id?: string;\r\n @Input() routerLink?: string;\r\n\r\n}\r\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { BreadcrumbsData } from '../../interfaces';\r\nimport { BreadcrumbsItemComponent } from './breadcrumbs-item/breadcrumbs-item.component';\r\n\r\n@Component({\r\n selector: 'desy-breadcrumbs',\r\n templateUrl: './breadcrumbs.component.html'\r\n})\r\nexport class BreadcrumbsComponent extends AccessibilityComponent {\r\n\r\n @Input() items: Array<BreadcrumbsData>;\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n @Input() collapseOnMobile: boolean;\r\n @Input() hasBackButton: boolean;\r\n @ContentChildren(BreadcrumbsItemComponent) itemComponentList: QueryList<BreadcrumbsItemComponent>;\r\n\r\n constructor(private location: Location){\r\n super();\r\n }\r\n\r\n getLength(): number {\r\n let itemsLength: number = this.items ? this.items.length : this.itemComponentList.length;\r\n\r\n if (this.hasBackButton) {\r\n itemsLength += 1;\r\n }\r\n return itemsLength;\r\n }\r\n\r\n goBack(): void {\r\n this.location.back();\r\n }\r\n\r\n getItemList(): BreadcrumbsData[] {\r\n const itemList = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;\r\n\r\n return itemList;\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-header-offcanvas-close-button',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class HeaderOffcanvasCloseButtonComponent extends ContentBaseComponent {\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-header-offcanvas-button',\r\n templateUrl: './header-offcanvas-button.component.html'\r\n})\r\nexport class HeaderOffcanvasButtonComponent extends ContentBaseComponent {\r\n\r\n openOffcanvas = async () => {};\r\n\r\n async handleClick(event: Event): Promise<void> {\r\n event.stopPropagation();\r\n await this.openOffcanvas();\r\n }\r\n\r\n\r\n}\r\n","import {\r\n Component,\r\n ComponentRef,\r\n ContentChildren,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport {HeaderOffcanvasCloseButtonComponent} from './header-offcanvas-close-button/header-offcanvas-close-button.component';\r\nimport {DialogComponent} from '../../../../desy-modals/components/dialog/dialog.component';\r\nimport {DialogService} from '../../../../desy-modals/services/dialog.service';\r\nimport {DialogOptions} from '../../../../desy-modals/interfaces';\r\nimport {HeaderOffcanvasButtonComponent} from './header-offcanvas-button/header-offcanvas-button.component';\r\nimport {DesyOnInputChange} from '../../../../shared/decorators/desy-on-input-change.decorator';\r\n\r\n@Component({\r\n selector: 'desy-header-offcanvas',\r\n templateUrl: './header-offcanvas.component.html'\r\n})\r\nexport class HeaderOffcanvasComponent implements OnDestroy {\r\n\r\n private static dialogOptions: DialogOptions = {\r\n id: 'header-offcanvas-dialog',\r\n focusOnClose: 'header-offcanvas-button',\r\n ariaModal: 'true',\r\n ariaLabelledBy: 'header-offcanvas-button-text',\r\n role: 'dialog'\r\n };\r\n\r\n @DesyOnInputChange('setHostClass')\r\n @Input() classes: string;\r\n\r\n @HostBinding('class') hostClass = '-mr-2 flex lg:hidden';\r\n\r\n @ViewChild('offcanvasContent') offcanvasContent: TemplateRef<any>;\r\n\r\n @DesyContentChild({onSetCallbackName: 'bindButton'})\r\n @ContentChildren(HeaderOffcanvasButtonComponent) button: HeaderOffcanvasButtonComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) content: ContentComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HeaderOffcanvasCloseButtonComponent) closeButton: HeaderOffcanvasCloseButtonComponent;\r\n\r\n private dialog: ComponentRef<DialogComponent>;\r\n\r\n constructor(private dialogService: DialogService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.isOpen()) {\r\n this.close();\r\n }\r\n }\r\n\r\n async open(): Promise<void> {\r\n if (!this.isOpen()) {\r\n this.dialog = (await this.dialogService.openDialog(this.offcanvasContent, HeaderOffcanvasComponent.dialogOptions)).dialog;\r\n this.dialogService.onCloseDialog(this.dialog).then(() => this.dialog = null);\r\n }\r\n }\r\n\r\n close(): void {\r\n if (this.isOpen()) {\r\n this.dialogService.closeDialog(this.dialog);\r\n this.dialog = null;\r\n const elementToFocus = document.getElementById('header-offcanvas-button');\r\n elementToFocus?.focus()\r\n }\r\n }\r\n\r\n isOpen(): boolean {\r\n return !!this.dialog;\r\n }\r\n\r\n /**\r\n * Estable las clases del elemento html del componente\r\n */\r\n setHostClass(): void {\r\n this.hostClass = this.classes ? this.classes : '-mr-2 flex lg:hidden';\r\n }\r\n\r\n /**\r\n * Enlaza el botón del componente hijo con la acción de abrir de este componente\r\n * @param button componente botón pasado como contenido\r\n */\r\n bindButton(button: HeaderOffcanvasButtonComponent): void {\r\n button.openOffcanvas = this.open.bind(this);\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {HeaderNavigationItemData} from '../../../../interfaces/header-navigation-item-data';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-header-navigation-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class HeaderNavigationItemComponent extends ContentBaseComponent implements HeaderNavigationItemData {\r\n @Input() href: string;\r\n @Input() routerLink: string;\r\n @Input() fragment: string;\r\n @Input() id: string;\r\n @Input() active: boolean;\r\n @Input() disabled: boolean;\r\n}\r\n","import {AfterContentInit, Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport { HeaderNavigationItemData } from '../../../interfaces/header-navigation-item-data';\r\nimport { AccessibilityComponent } from '../../../../shared/components';\r\nimport {HeaderNavigationItemComponent} from './header-navigation-item/header-navigation-item.component';\r\n\r\n@Component({\r\n selector: 'desy-header-navigation',\r\n templateUrl: './header-navigation.component.html'\r\n})\r\nexport class HeaderNavigationComponent extends AccessibilityComponent implements AfterContentInit {\r\n\r\n @Input() idPrefix: string;\r\n @Input() classes: string;\r\n @Input() items: HeaderNavigationItemData[];\r\n\r\n @ContentChildren(HeaderNavigationItemComponent) itemComponents: QueryList<HeaderNavigationItemComponent>;\r\n\r\n ngAfterContentInit(): void {\r\n const items = this.getItems();\r\n }\r\n\r\n getItemId(item: HeaderNavigationItemData, index: number): string {\r\n const prefix = this.idPrefix ? this.idPrefix : 'header-nav-item';\r\n const suffix = index > 0 ? '-' + index : '';\r\n return item.id ? item.id : prefix + suffix;\r\n }\r\n\r\n getItems(): HeaderNavigationItemData[] {\r\n return this.itemComponents && this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items;\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {NavItemData, NavItemEventData} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-nav-item',\r\n templateUrl: './nav-item.component.html'\r\n})\r\nexport class NavItemComponent extends ContentBaseComponent implements NavItemData {\r\n\r\n @Input() id?: string;\r\n @Input() active?: boolean;\r\n @Input() classes?: string;\r\n @Input() title?: string;\r\n @Input() href?: string;\r\n @Input() routerLink?: string|any[];\r\n @Input() fragment?: string;\r\n @Input() target?: string;\r\n @Input() disabled?: boolean;\r\n @Input() divider?: boolean;\r\n\r\n @Output() clickEvent = new EventEmitter<NavItemEventData>();\r\n @Output() activeChange = new EventEmitter<boolean>();\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList\r\n} from '@angular/core';\r\nimport {\r\n AccessibilityComponent\r\n} from '../../../shared/components';\r\nimport {NavItemData, NavItemEventData} from '../../interfaces';\r\nimport {NavItemComponent} from './nav-item/nav-item.component';\r\n\r\n\r\n@Component({\r\n selector: 'desy-nav',\r\n templateUrl: './nav.component.html'\r\n})\r\nexport class NavComponent extends AccessibilityComponent {\r\n\r\n @Input() hasNav = true;\r\n @Input() idPrefix: string;\r\n @Input() items: NavItemData[];\r\n @Input() classes: string;\r\n\r\n @Output() clickEvent = new EventEmitter<NavItemEventData>();\r\n @ContentChildren(NavItemComponent) itemComponentList: QueryList<NavItemComponent>;\r\n\r\n onClick(event: any, item: NavItemData): void {\r\n const itemsActiveChange = [];\r\n if (!item.active) {\r\n itemsActiveChange.push(item);\r\n }\r\n\r\n const itemList = this.getItemList();\r\n itemList.forEach(i => {\r\n if (i.active && i !== item) {\r\n itemsActiveChange.push(i);\r\n }\r\n i.active = false;\r\n });\r\n item.active = true;\r\n\r\n // Se emite el evento sólo para los items cuyo valor de active ha sido modificado\r\n itemsActiveChange.forEach(i => {\r\n if (i instanceof NavItemComponent) {\r\n i.activeChange.emit(i.active);\r\n }\r\n });\r\n\r\n this.clickEvent.emit({ item, event });\r\n if (item instanceof NavItemComponent) {\r\n item.clickEvent.emit({ item, event });\r\n }\r\n }\r\n\r\n getItemList(): NavItemData[] {\r\n const itemList = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;\r\n \r\n return itemList;\r\n }\r\n\r\n getItemId(item: NavItemData, index: number): string {\r\n let id;\r\n if (item.id) {\r\n id = item.id;\r\n } else if (index === 0) {\r\n id = this.getIdPrefix();\r\n } else {\r\n id = this.getIdPrefix() + '-' + index;\r\n }\r\n return id;\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : 'nav-item';\r\n }\r\n\r\n movePrevious(event: KeyboardEvent, currentIndex: number): void {\r\n event.preventDefault();\r\n const items = this.getItemList();\r\n let nextIndex = currentIndex - 1;\r\n while (nextIndex >= 0 && !this.isFocusableItem(items[nextIndex])) {\r\n nextIndex--;\r\n }\r\n\r\n if (nextIndex < items.length) {\r\n const itemElem = document.getElementById(this.getItemId(items[nextIndex], nextIndex));\r\n if (itemElem) {\r\n itemElem.focus();\r\n }\r\n }\r\n }\r\n\r\n moveNext(event: KeyboardEvent, currentIndex: number): void {\r\n event.preventDefault();\r\n const items = this.getItemList();\r\n let nextIndex = currentIndex + 1;\r\n while (nextIndex < items.length && !this.isFocusableItem(items[nextIndex])) {\r\n nextIndex++;\r\n }\r\n\r\n if (nextIndex < items.length) {\r\n const itemElem = document.getElementById(this.getItemId(items[nextIndex], nextIndex));\r\n if (itemElem) {\r\n itemElem.focus();\r\n }\r\n }\r\n }\r\n\r\n simulateClick(event: KeyboardEvent, item: NavItemData, index: number): void {\r\n event.preventDefault();\r\n const element = document.getElementById(this.getItemId(item, index));\r\n element?.click();\r\n }\r\n\r\n\r\n private isFocusableItem(item: NavItemData): boolean {\r\n return !item.active && !item.disabled;\r\n }\r\n\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport {NavComponent} from '../../nav/nav.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {AccessibilityComponent} from \"../../../../shared/components\";\r\n\r\n@Component({\r\n selector: 'desy-header-subnav',\r\n templateUrl: './header-subnav.component.html'\r\n})\r\nexport class HeaderSubnavComponent extends AccessibilityComponent {\r\n\r\n @Input() hiddenText: string;\r\n @Input() classesContainer: string;\r\n @Input() classesTooltip: string;\r\n @Input() classes: string;\r\n\r\n @DesyContentChild({onSetCallbackName: 'overrideNavParams'})\r\n @ContentChildren(NavComponent) nav: NavComponent;\r\n\r\n hasSubnavItems(): boolean {\r\n return this.nav && this.nav.getItemList().length > 0;\r\n }\r\n\r\n overrideNavParams(nav: NavComponent): void {\r\n nav.hasNav = true;\r\n nav.idPrefix = 'header-subnav-nav-item';\r\n nav.ariaLabel = 'Aplicaciones';\r\n nav.classes = 'w-max max-w-64';\r\n // nav.id = 'id-subnav-nav'; // No existe como param de navComponent\r\n }\r\n\r\n\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {NavComponent} from '../../nav/nav.component';\r\nimport {AccessibilityComponent} from \"../../../../shared/components\";\r\nimport {ContentComponent} from \"../../../../desy-commons/components/content/content.component\";\r\n\r\n@Component({\r\n selector: 'desy-header-dropdown',\r\n templateUrl: './header-dropdown.component.html',\r\n})\r\nexport class HeaderDropdownComponent extends AccessibilityComponent {\r\n\r\n @Input() hiddenText: string;\r\n @Input() classesContainer: string;\r\n @Input() classesTooltip: string;\r\n @Input() classes: string;\r\n\r\n @DesyContentChild({onSetCallbackName: 'overrideNavParams'})\r\n @ContentChildren(NavComponent) nav: NavComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n overrideNavParams(nav: NavComponent): void {\r\n nav.hasNav = true;\r\n nav.idPrefix = 'header-dropdown-nav-item';\r\n nav.ariaLabel = 'Menú de usuario';\r\n nav.classes = 'w-max max-w-64';\r\n // nav.id = 'id-dropdown-nav'; // No existe como param de navComponent\r\n }\r\n\r\n}\r\n","import {ChangeDetectorRef, Component, Input} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-skip-link',\r\n templateUrl: './skip-link.component.html'\r\n})\r\nexport class SkipLinkComponent extends AccessibilityComponent {\r\n\r\n @Input() html: string;\r\n @Input() text: string;\r\n @Input() fragment: string;\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n hasContent = true;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n getClassNames(): string {\r\n let classNames = 'c-skip-link sr-only active:not-sr-only focus:not-sr-only focus:outline-none focus:shadow-outline-focus block p-base bg-warning-base text-center text-black underline';\r\n if (this.classes) {\r\n classNames += ' ' + this.classes;\r\n }\r\n return classNames;\r\n }\r\n\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { HeaderSubnavData } from '../../interfaces';\r\nimport { HeaderNavigationData } from '../../interfaces';\r\nimport { HeaderDropdownData } from '../../interfaces';\r\nimport { HeaderOffcanvasData } from '../../interfaces';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {HeaderOffcanvasComponent} from './header-offcanvas/header-offcanvas.component';\r\nimport {HeaderNavigationComponent} from './header-navigation/header-navigation.component';\r\nimport {HeaderSubnavComponent} from './header-subnav/header-subnav.component';\r\nimport {HeaderDropdownComponent} from './header-dropdown/header-dropdown.component';\r\nimport {SkipLinkComponent} from '../skip-link/skip-link.component';\r\n\r\n@Component({\r\n selector: 'desy-header',\r\n templateUrl: './header.component.html'\r\n})\r\nexport class HeaderComponent extends AccessibilityComponent {\r\n\r\n @Input() classes: string;\r\n @Input() containerClasses: string;\r\n @Input() homepageUrl: string;\r\n @Input() homepageRouterLink: string;\r\n @Input() homepageFragment: string;\r\n @Input() expandedLogo: boolean;\r\n @Input() noLogo: boolean;\r\n @Input() customLogoHtml: string;\r\n @Input() customNavigationHtml: string;\r\n\r\n @Input() subnavData: HeaderSubnavData;\r\n @Input() navigationData: HeaderNavigationData;\r\n @Input() dropdownData: HeaderDropdownData;\r\n @Input() offcanvasData: HeaderOffcanvasData;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideSkipLinkParams'})\r\n @ContentChildren(SkipLinkComponent) skiplinkComponent: SkipLinkComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HeaderSubnavComponent) subnavComponent: HeaderSubnavComponent;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideNavigationParams'})\r\n @ContentChildren(HeaderNavigationComponent) navigationComponent: HeaderNavigationComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HeaderDropdownComponent) dropdownComponent: HeaderDropdownComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HeaderOffcanvasComponent) offcanvasComponent: HeaderOffcanvasComponent;\r\n\r\n\r\n overrideSkipLinkParams(skiplinkComponent: SkipLinkComponent): void {\r\n skiplinkComponent.id = skiplinkComponent.id || 'skip-link';\r\n skiplinkComponent.text = 'Saltar al contenido principal';\r\n }\r\n\r\n overrideNavigationParams(navigationComponent: HeaderNavigationComponent): void {\r\n navigationComponent.idPrefix = 'header-nav-item';\r\n navigationComponent.ariaLabel = 'Menú principal';\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {NavigationItemData} from '../../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-footer-navigation-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class FooterNavigationItemComponent extends ContentBaseComponent implements NavigationItemData {\r\n @Input() href?: string;\r\n @Input() routerLink?: string;\r\n @Input() fragment?: string;\r\n}\r\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport {NavigationData} from '../../../interfaces';\r\nimport {FooterNavigationItemComponent} from './footer-navigation-item/footer-navigation-item.component';\r\n\r\n@Component({\r\n selector: 'desy-footer-navigation',\r\n templateUrl: './footer-navigation.component.html'\r\n})\r\nexport class FooterNavigationComponent implements NavigationData {\r\n @Input() title: string;\r\n @Input() columns: number;\r\n\r\n @ContentChildren(FooterNavigationItemComponent) itemComponents: QueryList<FooterNavigationItemComponent>;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {MetaItemData} from '../../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-footer-meta-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class FooterMetaItemComponent extends ContentBaseComponent implements MetaItemData {\r\n @Input() href?: string;\r\n @Input() routerLink?: string;\r\n @Input() fragment?: string;\r\n}\r\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport {MetaData} from '../../../interfaces';\r\nimport {FooterMetaItemComponent} from './footer-meta-item/footer-meta-item.component';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-footer-meta',\r\n template: ''\r\n})\r\nexport class FooterMetaComponent extends ContentBaseComponent implements MetaData {\r\n\r\n @Input() visuallyHiddenTitle: string;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n @ContentChildren(FooterMetaItemComponent) itemComponents: QueryList<FooterMetaItemComponent>;\r\n}\r\n","import { DescriptionComponent } from './../../../desy-commons/components/description/description.component';\r\nimport { DescriptionData } from '../../../desy-commons/interfaces/';\r\nimport {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {MetaData, MetaItemData, NavigationData, NavigationItemData} from '../../interfaces';\r\nimport {IconData} from '../../../desy-commons/interfaces';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\r\nimport {FooterNavigationComponent} from './footer-navigation/footer-navigation.component';\r\nimport {FooterMetaComponent} from './footer-meta/footer-meta.component';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\n\r\n\r\n@Component({\r\n selector: 'desy-footer',\r\n templateUrl: './footer.component.html'\r\n})\r\nexport class FooterComponent extends AccessibilityComponent {\r\n\r\n @Input() meta: MetaData;\r\n @Input() navigation: NavigationData[];\r\n @Input() icon: IconData;\r\n @Input() containerClasses: string;\r\n @Input() classes: string;\r\n @Input() description: DescriptionData;\r\n @Input() noLogo: boolean;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(IconComponent) iconComponent: IconComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(FooterMetaComponent) metaComponent: FooterMetaComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent\r\n\r\n @ContentChildren(FooterNavigationComponent) navigationComponent: QueryList<FooterNavigationComponent>;\r\n\r\n\r\n getNavigationItems(): NavigationData[] {\r\n const navItems = this.navigationComponent && this.navigationComponent.length > 0 ? this.navigationComponent.toArray() : this.navigation;\r\n return navItems && navItems.length > 0 ? navItems : null;\r\n }\r\n\r\n getNavigationItemItems(navigation: NavigationData): NavigationItemData[] {\r\n return navigation instanceof FooterNavigationComponent ? navigation.itemComponents.toArray() : navigation.items;\r\n }\r\n\r\n getMetaItems(meta: MetaData): MetaItemData[] {\r\n return meta instanceof FooterMetaComponent ? meta.itemComponents.toArray() : meta.items;\r\n }\r\n\r\n getMetaContent(meta: MetaData): ContentComponent {\r\n return meta instanceof FooterMetaComponent ? meta.contentComponent : null;\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ErrorSummaryData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-error-summary-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ErrorSummaryItemComponent extends ContentBaseComponent implements ErrorSummaryData {\r\n\r\n @Input() fragment: string;\r\n @Input() id: string;\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ContentChildren,\r\n QueryList\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {ErrorSummaryData} from '../../interfaces';\r\nimport {ErrorSummaryItemComponent} from './error-summary-item/error-summary-item.component';\r\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\r\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-error-summary',\r\n templateUrl: './error-summary.component.html'\r\n})\r\nexport class ErrorSummaryComponent extends AccessibilityComponent {\r\n\r\n @Input() titleText: string;\r\n @Input() titleHtml: string;\r\n @Input() descriptionText: string;\r\n @Input() descriptionHtml: string;\r\n @Input() classes: string;\r\n @Input() id: string;\r\n @Input() errorList: Array<ErrorSummaryData>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\r\n\r\n @ContentChildren(ErrorSummaryItemComponent) errorComponentList: QueryList<ErrorSummaryItemComponent>;\r\n\r\n lastErrorItemCount: number;\r\n\r\n getErrorItemList(): ErrorSummaryData[] {\r\n let errorItemList: ErrorSummaryData[];\r\n if (this.errorComponentList && this.errorComponentList.length > 0) {\r\n errorItemList = this.errorComponentList.toArray();\r\n } else {\r\n errorItemList = this.errorList ? this.errorList : null;\r\n }\r\n\r\n const lastLength = this.lastErrorItemCount;\r\n this.lastErrorItemCount = errorItemList ? errorItemList.length : null;\r\n\r\n return errorItemList;\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {MenuHorizontalItemData, MenuHorizontalItemEventData} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menu-horizontal-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class MenuHorizontalItemComponent extends ContentBaseComponent implements MenuHorizontalItemData {\r\n\r\n @Input() href?: string;\r\n @Input() routerLink?: string|any[];\r\n @Input() fragment?: string;\r\n @Input() target?: string;\r\n @Input() id?: string;\r\n @Input() active?: boolean;\r\n @Input() disabled?: boolean;\r\n @Input() classes?: string;\r\n\r\n @Output() clickEvent = new EventEmitter<MenuHorizontalItemEventData>();\r\n @Output() activeChange = new EventEmitter<boolean>();\r\n\r\n}\r\n","import {Component, ContentChildren, EventEmitter, Input, OnChanges, Output, QueryList, SimpleChanges} from '@angular/core';\r\nimport { MenuHorizontalItemData, MenuHorizontalItemEventData } from '../../interfaces';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport {MenuHorizontalItemComponent} from './menu-horizontal-item/menu-horizontal-item.component';\r\n\r\n@Component({\r\n selector: 'desy-menu-horizontal',\r\n templateUrl: './menu-horizontal.component.html'\r\n})\r\nexport class MenuHorizontalComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() idPrefix: string;\r\n @Input() classes: string;\r\n @Input() items: MenuHorizontalItemData[];\r\n\r\n @ContentChildren(MenuHorizontalItemComponent) itemComponents: QueryList<MenuHorizontalItemComponent>;\r\n\r\n @Output() clickEvent = new EventEmitter<MenuHorizontalItemEventData>();\r\n\r\n onClick(event: any, item: MenuHorizontalItemData): void {\r\n const itemsActiveChange = [];\r\n if (!item.active) {\r\n itemsActiveChange.push(item);\r\n }\r\n\r\n const itemList = this.getItemList();\r\n itemList.forEach(i => {\r\n if (i.active && i !== item) {\r\n itemsActiveChange.push(i);\r\n }\r\n i.active = false;\r\n });\r\n item.active = true;\r\n\r\n // Se emite el evento sólo para los items cuyo valor de active ha sido modificado\r\n itemsActiveChange.forEach(i => {\r\n if (i instanceof MenuHorizontalItemComponent) {\r\n i.activeChange.emit(i.active);\r\n }\r\n });\r\n\r\n this.clickEvent.emit({ item, event });\r\n if (item instanceof MenuHorizontalItemComponent) {\r\n item.clickEvent.emit({ item, event });\r\n }\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : 'menu-item';\r\n }\r\n\r\n getItemList(): MenuHorizontalItemData[] {\r\n const itemList = this.itemComponents && this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items; \r\n return itemList;\r\n }\r\n\r\n\r\n getItemId(item: MenuHorizontalItemData, index: number): string {\r\n let id;\r\n if (item.id) {\r\n id = item.id;\r\n } else if (index === 0) {\r\n id = this.getIdPrefix();\r\n } else {\r\n id = this.getIdPrefix() + '-' + index;\r\n }\r\n return id;\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {MenuVerticalSubItemsData} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menu-vertical-item-sub-item',\r\n templateUrl: './menu-vertical-item-sub-item.component.html'\r\n})\r\nexport class MenuVerticalItemSubItemComponent extends ContentBaseComponent implements MenuVerticalSubItemsData {\r\n\r\n @Input() id?: string;\r\n @Input() classes?: string;\r\n @Input() href?: string;\r\n @Input() routerLink?: string;\r\n @Input() routerLinkActiveClasses?: string;\r\n @Input() fragment?: string;\r\n @Input() target?: string;\r\n @Input() disabled?: boolean;\r\n @Input() active?: boolean;\r\n @Input() divider?: boolean;\r\n @Input() title?: string;\r\n}\r\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport {MenuVerticalSubData} from '../../../interfaces';\r\nimport {MenuVerticalItemSubItemComponent} from '../menu-vertical-item-sub-item/menu-vertical-item-sub-item.component';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menu-vertical-item-sub',\r\n templateUrl: './menu-vertical-item-sub.component.html'\r\n})\r\nexport class MenuVerticalItemSubComponent extends ContentBaseComponent implements MenuVerticalSubData {\r\n @Input() classes?: string;\r\n\r\n @ContentChildren(MenuVerticalItemSubItemComponent) itemComponents: QueryList<MenuVerticalItemSubItemComponent>;\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport {MenuVerticalItemsData} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {MenuVerticalItemSubComponent} from '../menu-vertical-item-sub/menu-vertical-item-sub.component';\r\n\r\n@Component({\r\n selector: 'desy-menu-vertical-item',\r\n templateUrl: './menu-vertical-item.component.html'\r\n})\r\nexport class MenuVerticalItemComponent extends ContentBaseComponent implements MenuVerticalItemsData {\r\n\r\n @Input() id?: string;\r\n @Input() classes?: string;\r\n @Input() href?: string;\r\n @Input() routerLink?: string;\r\n @Input() routerLinkActiveClasses?: string;\r\n @Input() fragment?: string;\r\n @Input() target?: string;\r\n @Input() disabled?: boolean;\r\n @Input() active?: boolean;\r\n @Input() divider?: boolean;\r\n @Input() title?: string;\r\n @Input() expanded?: boolean; // no se utiliza\r\n\r\n @DesyContentChild()\r\n @ContentChildren(MenuVerticalItemSubComponent) subComponent: MenuVerticalItemSubComponent;\r\n\r\n}\r\n","import {Component, Input, ContentChildren, QueryList} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport {MenuVerticalItemsData, MenuVerticalSubData, MenuVerticalSubItemsData} from '../../interfaces';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { StringUtils } from '../../../shared/utils/string-utils';\r\nimport {MenuVerticalItemComponent} from './menu-vertical-item/menu-vertical-item.component';\r\nimport {MenuVerticalItemSubComponent} from './menu-vertical-item-sub/menu-vertical-item-sub.component';\r\n\r\n@Component({\r\n selector: 'desy-menu-vertical',\r\n templateUrl: './menu-vertical.component.html',\r\n animations: [\r\n trigger('displayMenuVertical', [\r\n state('void', style({\r\n opacity: '0.0',\r\n transform: 'scale(0.95)'\r\n })),\r\n state('*', style({\r\n opacity: '1.0',\r\n transform: 'scale(1.0)'\r\n })),\r\n transition(':enter', [\r\n animate('100ms ease-out')\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class MenuVerticalComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() idPrefix: string;\r\n @Input() items: MenuVerticalItemsData[];\r\n @Input() hasUnderline: boolean;\r\n @Input() classes: string;\r\n\r\n @ContentChildren(MenuVerticalItemComponent) itemComponents: QueryList<MenuVerticalItemComponent>;\r\n\r\n getItemHtml(item: MenuVerticalItemsData): string {\r\n let itemHtml: string;\r\n if (item.active) {\r\n itemHtml = item.html ? `<strong>${ item.html }</strong>` : `<strong>${ StringUtils.escapeHtml(item.text) }</strong>`;\r\n } else {\r\n itemHtml = item.html;\r\n }\r\n\r\n return itemHtml;\r\n }\r\n\r\n getId(item: MenuVerticalItemsData, i: number): string {\r\n if (item.id) {\r\n return item.id;\r\n } else {\r\n const idPrefix = this.idPrefix ? this.idPrefix : 'nav-item';\r\n if (i === 0) {\r\n return idPrefix + '-0';\r\n } else {\r\n return idPrefix + '-' + i;\r\n }\r\n }\r\n }\r\n\r\n getSubItemId(item: MenuVerticalItemsData, itemIndex: number, subItemIndex: number): string{\r\n let subItemId: string;\r\n const sub = this.getItemSub(item);\r\n const subItems = this.getSubItems(sub);\r\n const subItem = subItems[subItemIndex];\r\n if (subItem) {\r\n if (subItem.id) {\r\n subItemId = subItem.id;\r\n } else {\r\n const itemId = this.getId(item, itemIndex);\r\n subItemId = subItemIndex === 0 ? `sub-${itemId}` : `sub-${itemId}-${subItemIndex}`;\r\n }\r\n }\r\n\r\n return subItemId;\r\n }\r\n\r\n getItems(): MenuVerticalItemsData[] {\r\n const itemList = this.itemComponents && this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items;\r\n return itemList;\r\n }\r\n\r\n getItemSub(item: MenuVerticalItemsData): MenuVerticalSubData {\r\n return item instanceof MenuVerticalItemComponent ? item.subComponent : item.sub;\r\n }\r\n\r\n getSubItems(sub: MenuVerticalSubData): MenuVerticalSubItemsData[] {\r\n const subItems = sub instanceof MenuVerticalItemSubComponent ? sub.itemComponents.toArray() : sub.items;\r\n return subItems && subItems.length > 0 ? subItems : null;\r\n }\r\n}\r\n","import {\r\n ContentChild,\r\n ContentChildren,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Output,\r\n QueryList,\r\n AfterContentChecked\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[desyMenubaritem]'\r\n})\r\nexport class MenubaritemDirective implements AfterContentChecked {\r\n @ContentChild('link', { read: ElementRef }) link: ElementRef;\r\n @ContentChild('itemContentWrapper', { read: ElementRef }) itemContentWrapper: ElementRef;\r\n @ContentChild('popupMenu', { read: ElementRef }) popupMenu: ElementRef;\r\n @ContentChildren('popupMenuItem', { read: ElementRef, descendants: true}) popupMenuItems: QueryList<ElementRef>;\r\n\r\n @Output() contentChanged: EventEmitter<any> = new EventEmitter();\r\n\r\n private lastPopupMenu: ElementRef;\r\n private lastPopupMenuItems: QueryList<ElementRef>;\r\n private lastItemContentWrapper: ElementRef;\r\n private lastLink: ElementRef;\r\n\r\n contentHasBeenChecked = false;\r\n\r\n constructor(public elementRef: ElementRef) { }\r\n\r\n ngAfterContentChecked(): void {\r\n if (this.popupMenu !== this.lastPopupMenu || this.popupMenuItems !== this.lastPopupMenuItems\r\n || this.link !== this.lastLink || this.itemContentWrapper !== this.lastItemContentWrapper) {\r\n setTimeout(() => this.contentChanged.emit());\r\n this.lastPopupMenu = this.popupMenu;\r\n this.lastPopupMenuItems = this.popupMenuItems;\r\n this.lastLink = this.link;\r\n this.lastItemContentWrapper = this.itemContentWrapper;\r\n }\r\n\r\n if (!this.contentHasBeenChecked) {\r\n setTimeout(() => this.contentHasBeenChecked = true);\r\n }\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {MenubarItemSubItemSubItem} from '../../../../interfaces/menubar-item-sub-item-sub-item';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menubar-subsubitem',\r\n templateUrl: './menubar-subsubitem.component.html'\r\n})\r\nexport class MenubarSubsubitemComponent extends ContentBaseComponent implements MenubarItemSubItemSubItem {\r\n\r\n @Input() html?: string;\r\n @Input() text?: string;\r\n @Input() checked?: boolean;\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n @Output() checkedChange = new EventEmitter<boolean>();\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n} from '@angular/core';\r\nimport {MenubarItemSubItem} from '../../../../interfaces/menubar-item-sub-item';\r\nimport {MenubarItemSubItemSubItem} from '../../../../interfaces/menubar-item-sub-item-sub-item';\r\nimport {MenubarSubsubitemComponent} from '../menubar-subsubitem/menubar-subsubitem.component';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menubar-subitem',\r\n templateUrl: './menubar-subitem.component.html'\r\n})\r\nexport class MenubarSubitemComponent extends ContentBaseComponent implements MenubarItemSubItem {\r\n\r\n @Input() text?: string;\r\n @Input() html?: string;\r\n @Input() checked?: boolean;\r\n @Input() items?: MenubarItemSubItemSubItem[];\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n @Output() checkedChange = new EventEmitter<boolean>();\r\n\r\n @ContentChildren(MenubarSubsubitemComponent) subItems: QueryList<MenubarSubsubitemComponent>;\r\n\r\n public getSubItems(): MenubarSubsubitemComponent[] {\r\n return this.subItems.toArray();\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n} from '@angular/core';\r\nimport {MenubarItem} from '../../../../interfaces/menubar-item';\r\nimport {MenubarItemSub} from '../../../../interfaces/menubar-item-sub';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\nimport {MenubarSubitemComponent} from '../menubar-subitem/menubar-subitem.component';\r\n\r\n@Component({\r\n selector: 'desy-menubar-item',\r\n templateUrl: './menubar-item.component.html'\r\n})\r\nexport class MenubarItemComponent extends ContentBaseComponent implements MenubarItem {\r\n\r\n @Input() href?: string;\r\n @Input() target?: string;\r\n @Input() routerLink?: string|any[];\r\n @Input() routerLinkActiveClasses?: string;\r\n @Input() fragment?: string;\r\n @Input() text?: string;\r\n @Input() html?: string;\r\n @Input() id?: string;\r\n @Input() sub?: MenubarItemSub;\r\n @Input() classes?: string;\r\n\r\n @Input() title?: string;\r\n @Input() disabled?: boolean;\r\n @Input() active?: boolean;\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n\r\n @ContentChildren(MenubarSubitemComponent) subItems: QueryList<MenubarSubitemComponent>;\r\n\r\n public getSubItems(): MenubarSubitemComponent[] {\r\n return this.subItems.toArray();\r\n }\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menubar-label',\r\n templateUrl: './menubar-label.component.html'\r\n})\r\nexport class MenubarLabelComponent extends ContentBaseComponent {\r\n\r\n @Input() classes: string;\r\n\r\n}\r\n","import {\r\n AfterViewInit, ChangeDetectorRef,\r\n Component, ContentChildren,\r\n ElementRef, EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges, Output,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {MenubarItem} from '../../interfaces/menubar-item';\r\nimport {MenubaritemDirective} from './directives/menubaritem.directive';\r\nimport {MenubarItemSubItem} from '../../interfaces/menubar-item-sub-item';\r\nimport {MenubarItemSubItemSubItem} from '../../interfaces/menubar-item-sub-item-sub-item';\r\nimport {LabelComponent} from '../../../desy-forms/components/label/label.component';\r\nimport {LabelData} from '../../../desy-forms/interfaces';\r\nimport {StringUtils} from '../../../shared/utils/string-utils';\r\nimport {MenubarItemComponent} from './components/menubar-item/menubar-item.component';\r\nimport {MenubarSubitemComponent} from './components/menubar-subitem/menubar-subitem.component';\r\nimport {MenubarSubsubitemComponent} from './components/menubar-subsubitem/menubar-subsubitem.component';\r\nimport {MenubarLabelComponent} from './components/menubar-label/menubar-label.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-menubar',\r\n templateUrl: './menubar.component.html'\r\n})\r\nexport class MenubarComponent extends AccessibilityComponent implements OnChanges, AfterViewInit {\r\n\r\n @Input() idPrefix: string;\r\n @Input() items: MenubarItem[];\r\n @Output() itemsChange = new EventEmitter<MenubarItem[]>();\r\n @Output() activeItemChange = new EventEmitter<MenubarItem>();\r\n @Output() activeSubItemChange = new EventEmitter<MenubarItemSubItem|MenubarItemSubItemSubItem>();\r\n\r\n /**\r\n * label, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente menubar-label anidado\r\n * 2) incluir template\r\n * 3) incluir objeto label (interfaz expuesta)\r\n * 4) incluir legendText - incluir un label con solo un texto\r\n */\r\n @Input() labelRef: TemplateRef<LabelComponent>;\r\n @Input() labelData: LabelData;\r\n @Input() labelText: string;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n @HostBinding('class.c-menubar') cfg = true\r\n @Input() @HostBinding('attr.id') id: any;\r\n\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.aria-modal') ariaModalData: any\r\n\r\n @ViewChild('menubar', { read: ElementRef }) menubar: ElementRef;\r\n @ViewChildren(MenubaritemDirective) menuItems: QueryList<MenubaritemDirective>;\r\n @DesyContentChild() @ContentChildren(MenubarLabelComponent) labelComponent: MenubarLabelComponent;\r\n @ContentChildren(MenubarItemComponent) itemComponentList: QueryList<MenubarItemComponent>;\r\n\r\n menuData: any[];\r\n viewInit = false;\r\n isFocused: boolean;\r\n currentFocusItemIndex = 0;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes?: SimpleChanges): void {\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\r\n if (this.viewInit) {\r\n this.checkChanges();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.viewInit = true;\r\n this.checkChanges();\r\n }\r\n\r\n checkChanges(): void {\r\n if (!this.menuItems) {\r\n return;\r\n }\r\n \r\n this.menuData = [];\r\n this.getItems().forEach((_, index) => {\r\n const itemData = {\r\n open: false,\r\n currentFocusSubItemIndex: 0,\r\n currentFocusSubSubItemIndex: 0,\r\n menuItem: this.menuItems.toArray()[index]\r\n };\r\n this.menuData.push(itemData);\r\n });\r\n\r\n if (this.viewInit) {\r\n this.checkRequired();\r\n }\r\n\r\n\r\n const lastCurrentFocusItemIndex = this.currentFocusItemIndex;\r\n const items = this.getItems();\r\n if (items) {\r\n while (!this.isItemFocusable(this.currentFocusItemIndex % items.length)) {\r\n this.currentFocusItemIndex = (this.currentFocusItemIndex + items.length + 1) % items.length;\r\n if (this.currentFocusItemIndex === lastCurrentFocusItemIndex) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Eventos\r\n */\r\n\r\n handleMenuFocusIn(): void {\r\n this.isFocused = true;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n handleMenuFocusOut(event): void {\r\n if (!this.menubar.nativeElement.contains(event.relatedTarget)) {\r\n this.closeMenu();\r\n }\r\n this.isFocused = false;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n handleMenuItemClick(event, itemIndex: number): void {\r\n if (this.hasPopupMenu(itemIndex)) {\r\n event.preventDefault();\r\n const isOpen = this.menuData[itemIndex].open;\r\n this.closeMenu();\r\n if (!isOpen) {\r\n this.openMenu(itemIndex);\r\n }\r\n } else {\r\n this.activateMenuItem(itemIndex);\r\n }\r\n }\r\n\r\n handleMenuItemKeydown(event: KeyboardEvent, itemIndex: number): void {\r\n switch (event.key) {\r\n case 'Enter':\r\n case ' ':\r\n case 'ArrowDown':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n setTimeout(() => this.focusFirstSubItem(itemIndex));\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n\r\n case 'Escape':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu(itemIndex);\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n this.focusNextAvailableItem(itemIndex, -1);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowRight':\r\n this.focusNextAvailableItem(itemIndex, +1);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowUp':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n setTimeout(() => this.focusLastSubItem(itemIndex));\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Home':\r\n case 'PageUp':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu();\r\n }\r\n this.focusFirstItem();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'End':\r\n case 'PageDown':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu();\r\n }\r\n this.focusLastItem();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n default:\r\n if (this.isPrintableChar(event.key)) {\r\n this.focusItemByFirstChar(event.key);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n handleMenuItemMouseOver(itemIndex: number): void {\r\n this.focusItem(itemIndex, true);\r\n }\r\n\r\n handlePopupMenuItemClick(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n this.focusItem(itemIndex);\r\n this.closeMenu(itemIndex);\r\n }\r\n\r\n handlePopupMenuItemKeydown(event: KeyboardEvent, itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n const currentSubIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\r\n const currentSubSubIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\r\n const items = this.getItems();\r\n switch (event.key) {\r\n case ' ':\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n if (this.mustCloseAfterSelectPopupItem(itemIndex, subItemIndex, subSubItemIndex)) {\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Enter':\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Escape':\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowUp':\r\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, -1);\r\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength - 1) % listLength);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowDown':\r\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, +1);\r\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength + 1) % listLength);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n this.closeMenu(itemIndex);\r\n this.focusItem((itemIndex + items.length - 1) % items.length);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowRight':\r\n this.closeMenu(itemIndex);\r\n this.focusItem((itemIndex + items.length + 1) % items.length);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Home':\r\n case 'PageUp':\r\n this.focusFirstSubItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'End':\r\n case 'PageDown':\r\n this.focusLastSubItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Tab':\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n break;\r\n\r\n default:\r\n if (this.isPrintableChar(event.key)) {\r\n this.focusSubItemByFirstChar(itemIndex, event.key);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n handlePopupMenuItemMouseOver(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n this.focusSubItem(itemIndex, subItemIndex, subSubItemIndex);\r\n }\r\n\r\n /*\r\n * Comunes\r\n */\r\n\r\n checkRequired(): void {\r\n\r\n\r\n const items = this.getItems();\r\n\r\n // No se ha puesto label required porque en algunos ejemplos de desy-html no aparece\r\n }\r\n\r\n\r\n activateMenuItem(itemIndex: number): void {\r\n const items = this.getItems();\r\n this.activeItemChange.emit(items[itemIndex] as MenubarItem);\r\n if (items[itemIndex] instanceof MenubarItemComponent) {\r\n (items[itemIndex] as MenubarItemComponent).selected.emit();\r\n }\r\n }\r\n\r\n activatePopupMenuItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenubarItemSubItem|MenubarItemSubItemSubItem = subItems[subItemIndex];\r\n let subSubItems = [];\r\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\r\n subSubItems = this.getSubItemSubitems(item);\r\n item = subSubItems[subSubItemIndex];\r\n }\r\n\r\n let checkedChange = false;\r\n if (item.role === 'menuitemcheckbox') {\r\n item.checked = !item.checked;\r\n checkedChange = true;\r\n } else if (item.role === 'menuitemradio') {\r\n checkedChange = !item.checked;\r\n subSubItems.forEach(i => i.checked = false);\r\n item.checked = true;\r\n }\r\n\r\n this.itemsChange.emit(items);\r\n this.activeSubItemChange.emit(item as MenubarItem);\r\n if (item instanceof MenubarSubitemComponent || item instanceof MenubarSubsubitemComponent) {\r\n item.selected.emit();\r\n\r\n if (checkedChange) {\r\n item.checkedChange.emit(item.checked);\r\n }\r\n }\r\n }\r\n\r\n mustCloseAfterSelectPopupItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenubarItemSubItem|MenubarItemSubItemSubItem = subItems[subItemIndex];\r\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\r\n const subSubItems = this.getSubItemSubitems(item);\r\n item = subSubItems[subSubItemIndex];\r\n }\r\n\r\n return item.role !== 'menuitemcheckbox' && item.role !== 'menuitemradio';\r\n }\r\n\r\n openMenu(itemIndex: number): void {\r\n const wasOpened = this.menuData[itemIndex].open;\r\n this.menuData[itemIndex].open = true;\r\n if (wasOpened) {\r\n this.activateMenuItem(itemIndex);\r\n }\r\n }\r\n\r\n closeMenu(itemIndex?: number): void {\r\n if (itemIndex !== null && itemIndex !== undefined) {\r\n this.menuData[itemIndex].open = false;\r\n } else {\r\n this.menuData.forEach(item => item.open = false);\r\n }\r\n }\r\n\r\n hasPopupMenu(itemIndex: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n return items[itemIndex].sub && subItems && subItems.length > 0;\r\n }\r\n\r\n private isPrintableChar(str: string): boolean {\r\n return str.length === 1 && !!str.match(/\\S/);\r\n }\r\n\r\n private getMenuDataIndex(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): number {\r\n let menuDataIndex = 0;\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n for (let i = 0; i < subItemIndex; i++) {\r\n const subItem = subItems[i];\r\n const subSubItems = this.getSubItemSubitems(subItem);\r\n menuDataIndex += subSubItems && subSubItems.length > 0 ? subSubItems.length : 1;\r\n }\r\n\r\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\r\n menuDataIndex += subSubItemIndex;\r\n }\r\n\r\n return menuDataIndex;\r\n }\r\n\r\n /*\r\n * Comunes - focus\r\n */\r\n\r\n focusItem(itemIndex: number, hover?: boolean): void {\r\n const hasFocus = this.menubar.nativeElement.contains(document.activeElement);\r\n const isOpen = this.menuData[this.currentFocusItemIndex].open;\r\n\r\n if (!hover || hasFocus) {\r\n this.menuData[itemIndex].menuItem.link.nativeElement.focus();\r\n }\r\n\r\n this.closeMenu();\r\n if (isOpen && this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n }\r\n\r\n this.currentFocusItemIndex = itemIndex;\r\n }\r\n\r\n focusNextAvailableItem(fromItemIndex: number, step: number): void {\r\n let nextItem = fromItemIndex;\r\n const items = this.getItems();\r\n do {\r\n nextItem = (nextItem + items.length + step) % items.length;\r\n } while (!this.isItemFocusable(nextItem) && nextItem !== fromItemIndex);\r\n\r\n if (nextItem !== fromItemIndex) {\r\n this.focusItem(nextItem);\r\n }\r\n }\r\n\r\n focusFirstItem(): void {\r\n if (this.isItemFocusable(0)) {\r\n this.focusItem(0);\r\n } else {\r\n this.focusNextAvailableItem(0, +1);\r\n }\r\n }\r\n\r\n focusLastItem(): void {\r\n const items = this.getItems();\r\n if (this.isItemFocusable(items.length - 1)) {\r\n this.focusItem(items.length - 1);\r\n } else {\r\n this.focusNextAvailableItem(items.length - 1, -1);\r\n }\r\n }\r\n\r\n isItemFocusable(itemIndex: number): boolean {\r\n return !this.getItems()[itemIndex].disabled;\r\n }\r\n\r\n focusItemByFirstChar(char: string): void {\r\n const itemContents: string[] = this.menuItems.map(menuItem => menuItem.itemContentWrapper.nativeElement.textContent);\r\n let index = this.currentFocusItemIndex;\r\n let foundIndex = -1;\r\n do {\r\n index = (index + itemContents.length + 1) % itemContents.length;\r\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\r\n && this.isItemFocusable(index)) {\r\n foundIndex = index;\r\n }\r\n } while (foundIndex === -1 && index !== this.currentFocusItemIndex);\r\n\r\n if (foundIndex >= 0) {\r\n this.focusItem(foundIndex);\r\n }\r\n }\r\n\r\n focusSubItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n if (this.menuData[itemIndex].menuItem.popupMenuItems.length > 0) {\r\n const menuDataIndex = this.getMenuDataIndex(itemIndex, subItemIndex, subSubItemIndex);\r\n\r\n this.menuData[itemIndex].currentFocusSubItemIndex = subItemIndex;\r\n this.menuData[itemIndex].currentFocusSubSubItemIndex = subSubItemIndex;\r\n const elem = this.menuData[itemIndex].menuItem.popupMenuItems.toArray()[menuDataIndex].nativeElement;\r\n if (elem) {\r\n elem.focus();\r\n } else {\r\n console.error('No subitem to focus');\r\n }\r\n } else {\r\n console.error('No subitems');\r\n }\r\n }\r\n\r\n focusNextAvailableSubItem(itemIndex: number, fromItemSubIndex: number, fromItemSubSubIndex: number, step: number): void {\r\n let nextSubIndex = fromItemSubIndex;\r\n let nextSubSubIndex = fromItemSubSubIndex;\r\n let allSubItemsChecked;\r\n const items = this.getItems();\r\n do {\r\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step);\r\n nextSubIndex = nextIndexes.subIndex;\r\n nextSubSubIndex = nextIndexes.subSubIndex;\r\n allSubItemsChecked = (fromItemSubIndex === nextSubIndex && fromItemSubSubIndex === nextSubSubIndex);\r\n } while (!this.isSubItemFocusable(itemIndex, nextSubIndex, nextSubSubIndex) && !allSubItemsChecked);\r\n\r\n if (!allSubItemsChecked) {\r\n this.focusSubItem(itemIndex, nextSubIndex, nextSubSubIndex);\r\n }\r\n }\r\n\r\n focusFirstSubItem(itemIndex: number): void {\r\n let firstSubSubItem = null;\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n const subSubItems = this.getSubItemSubitems(subItems[0]);\r\n if (subSubItems && subSubItems.length > 0) {\r\n firstSubSubItem = 0;\r\n }\r\n\r\n if (this.isSubItemFocusable(itemIndex, 0, firstSubSubItem)) {\r\n this.focusSubItem(itemIndex, 0, firstSubSubItem);\r\n } else {\r\n this.focusNextAvailableSubItem(itemIndex, 0, firstSubSubItem, +1);\r\n }\r\n }\r\n\r\n focusLastSubItem(itemIndex: number): void {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n const lastItemIndex = subItems.length - 1;\r\n const lastItem = subItems[lastItemIndex];\r\n const subSubItems = this.getSubItemSubitems(lastItem);\r\n let lastSubSubItem = null;\r\n if (subSubItems && subSubItems.length > 0) {\r\n lastSubSubItem = subSubItems.length - 1;\r\n }\r\n\r\n if (this.isSubItemFocusable(itemIndex, lastItemIndex, lastSubSubItem)) {\r\n this.focusSubItem(itemIndex, lastItemIndex, lastSubSubItem);\r\n } else {\r\n this.focusNextAvailableSubItem(itemIndex, lastItemIndex, lastSubSubItem, -1);\r\n }\r\n }\r\n\r\n isSubItemFocusable(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenubarItemSubItem|MenubarItemSubItemSubItem = subItems[subItemIndex];\r\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\r\n const subSubItems = this.getSubItemSubitems(item);\r\n item = subSubItems[subSubItemIndex];\r\n }\r\n\r\n let isFocusable = false;\r\n if (item.role !== 'separator' && item.role !== 'none') {\r\n isFocusable = true;\r\n }\r\n\r\n return isFocusable;\r\n }\r\n\r\n focusSubItemByFirstChar(itemIndex: number, char: string): void {\r\n const itemContents: string[] = this.menuItems.toArray()[itemIndex].popupMenuItems.map(menuItem => menuItem.nativeElement.textContent);\r\n let subItemIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\r\n let subSubItemIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\r\n let foundSubIndex = -1;\r\n let foundSubSubIndex = null;\r\n let allSubItemsChecked = false;\r\n const items = this.getItems();\r\n do {\r\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, subItemIndex, subSubItemIndex, +1);\r\n subItemIndex = nextIndexes.subIndex;\r\n subSubItemIndex = nextIndexes.subSubIndex;\r\n const index = this.getMenuDataIndex(itemIndex, subItemIndex, subSubItemIndex);\r\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\r\n && this.isSubItemFocusable(itemIndex, subItemIndex, subSubItemIndex)) {\r\n foundSubIndex = subItemIndex;\r\n foundSubSubIndex = subSubItemIndex;\r\n }\r\n allSubItemsChecked = (this.menuData[itemIndex].currentFocusSubItemIndex === subItemIndex\r\n && this.menuData[itemIndex].currentFocusSubSubItemIndex === subSubItemIndex);\r\n } while (foundSubIndex === -1 && !allSubItemsChecked);\r\n\r\n if (foundSubIndex >= 0) {\r\n this.focusSubItem(itemIndex, foundSubIndex, foundSubSubIndex);\r\n }\r\n }\r\n\r\n /*\r\n * Metodos para facilitar contenido\r\n */\r\n\r\n getItems(): MenubarItem[]|MenubarItemComponent[] {\r\n let items;\r\n if (this.itemComponentList && this.itemComponentList.length > 0) {\r\n items = this.itemComponentList.toArray();\r\n } else {\r\n items = this.items;\r\n }\r\n return items;\r\n }\r\n\r\n getItemSubitems(item: MenubarItem|MenubarItemComponent): MenubarItemSubItem[]|MenubarSubitemComponent[] {\r\n let subItems = [];\r\n if (item instanceof MenubarItemComponent){\r\n subItems = item.getSubItems();\r\n }\r\n\r\n if (!subItems || subItems.length === 0) {\r\n subItems = item.sub ? item.sub.items : [];\r\n }\r\n\r\n return subItems;\r\n }\r\n\r\n getSubItemSubitems(item: MenubarItemSubItem|MenubarSubitemComponent): MenubarItemSubItemSubItem[]|MenubarSubsubitemComponent[] {\r\n let subItems = [];\r\n\r\n if (item.role === 'group') {\r\n if (item instanceof MenubarSubitemComponent) {\r\n subItems = item.getSubItems();\r\n }\r\n\r\n if (!subItems || subItems.length === 0) {\r\n subItems = item.items ? item.items : [];\r\n }\r\n }\r\n\r\n return subItems;\r\n }\r\n\r\n getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step): { subIndex: number, subSubIndex?: number} {\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n const subSubItems = this.getSubItemSubitems(subItems[nextSubIndex]);\r\n\r\n let checkNextSubItem = true;\r\n if (subSubItems && subSubItems.length > 0) {\r\n if (nextSubSubIndex + step >= 0 && nextSubSubIndex + step < subSubItems.length) {\r\n nextSubSubIndex += step;\r\n checkNextSubItem = false;\r\n }\r\n }\r\n\r\n if (checkNextSubItem) {\r\n nextSubIndex = (nextSubIndex + step + subItems.length) % subItems.length;\r\n const nextSubItemItems = this.getSubItemSubitems(subItems[nextSubIndex]);\r\n if (nextSubItemItems && nextSubItemItems.length > 0) {\r\n nextSubSubIndex = ((step > 0 ? -1 : 0) + step + nextSubItemItems.length) % nextSubItemItems.length;\r\n } else {\r\n nextSubSubIndex = null;\r\n }\r\n }\r\n\r\n return {subIndex: nextSubIndex, subSubIndex: nextSubSubIndex};\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.id + 'menubar-item';\r\n }\r\n\r\n getLabelRef(): TemplateRef<any> {\r\n return this.labelComponent ? this.labelComponent.getContent() : this.labelRef;\r\n }\r\n\r\n getLabelContent(): string {\r\n let content: string;\r\n if (this.labelData) {\r\n content = this.labelData.html ? this.labelData.html : `<p>${ StringUtils.escapeHtml(this.labelData.text) }</p>`;\r\n } else if (this.labelText) {\r\n content = `<p>${ StringUtils.escapeHtml(this.labelText) }</p>`;\r\n }\r\n return content;\r\n }\r\n\r\n getItemId(item, index: number): string {\r\n let id: string;\r\n if (item) {\r\n if (item.id) {\r\n id = item.id;\r\n } else {\r\n id = index === 0 ? this.getIdPrefix() : `${this.getIdPrefix()}-${index}`;\r\n }\r\n }\r\n return id;\r\n }\r\n\r\n getPopupStyle(itemIndex: number): object {\r\n let style = {};\r\n if (this.menuData && itemIndex < this.menuData.length) {\r\n const menuItem = this.menuData[itemIndex].menuItem;\r\n const rect = menuItem.link.nativeElement.getBoundingClientRect();\r\n if (this.menuData[itemIndex].open) {\r\n style = {\r\n position: 'absolute',\r\n top: (rect.height - 1) + 'px',\r\n left: '0px',\r\n zIndex: 100,\r\n display: 'block'\r\n };\r\n } else {\r\n style = {\r\n zIndex: 0,\r\n display: 'none'\r\n };\r\n }\r\n }\r\n\r\n return style;\r\n }\r\n\r\n getSubItemId(item, index: number, parentId: string): string {\r\n let id: string;\r\n if (item) {\r\n if (item.id) {\r\n id = item.id;\r\n } else {\r\n id = index === 0 ? `sub-${parentId}` : `sub-${parentId}-${index}`;\r\n }\r\n }\r\n return id;\r\n }\r\n\r\n getSubSubItemAriaChecked(subsubitem): string {\r\n let ariaChecked = null;\r\n if (subsubitem.role === 'menuitemcheckbox' || subsubitem.role === 'menuitemradio') {\r\n ariaChecked = !!subsubitem.checked;\r\n }\r\n return ariaChecked;\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {NotificationItemsData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-notification-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class NotificationItemComponent extends ContentBaseComponent implements NotificationItemsData {\r\n @Input() href: string;\r\n @Input() target?: string;\r\n @Input() routerLink?: string;\r\n @Input() fragment?: string;\r\n @Input() id: string;\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n SimpleChanges\r\n} from '@angular/core';\r\n\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport {NotificationItemsData} from '../../interfaces';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\r\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\r\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\nimport {NotificationItemComponent} from './notification-item/notification-item.component';\r\nimport {ContentData, DescriptionData, IconData, TitleData} from '../../../desy-commons/interfaces';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-notification',\r\n templateUrl: './notification.component.html',\r\n animations: [\r\n trigger('displayNotification', [\r\n state('void', style({\r\n opacity: '0.0',\r\n transform: 'scaleY(0.95)'\r\n })),\r\n state('*', style({\r\n opacity: '1.0',\r\n transform: 'scaleY(1.0)'\r\n })),\r\n transition(':enter', [\r\n animate('100ms ease-out')\r\n ]),\r\n transition(':leave', [\r\n animate('75ms ease-in')\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class NotificationComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() isOpen = true;\r\n @Output() isOpenChange = new EventEmitter<boolean>();\r\n\r\n @Input() title: TitleData;\r\n @Input() description: DescriptionData;\r\n @Input() content: ContentData;\r\n @Input() items: NotificationItemsData[];\r\n\r\n @Input() icon: IconData;\r\n @Input() type: string;\r\n @Input() isDismissible: boolean;\r\n @Input() headingLevel: number;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(IconComponent) iconComponent: IconComponent;\r\n\r\n @ContentChildren(NotificationItemComponent) itemCompontents: QueryList<NotificationItemComponent>;\r\n\r\n isDismissing = false;\r\n displayDefaultIcon = false;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n dismiss(): void {\r\n // Se emite 75ms más tarde para poder visualizar la animación en cualquier caso\r\n this.isDismissing = true;\r\n setTimeout(() => {\r\n this.isDismissing = false;\r\n this.isOpenChange.emit(false);\r\n }, 75);\r\n }\r\n\r\n getType(): string {\r\n let type: string;\r\n if (this.type){\r\n type = this.type.toLocaleLowerCase();\r\n }\r\n return type;\r\n }\r\n\r\n getItems(): NotificationItemsData[] {\r\n return this.itemCompontents && this.itemCompontents.length > 0 ? this.itemCompontents.toArray() : this.items;\r\n }\r\n\r\n handleIconEmpty(empty: boolean): void {\r\n this.displayDefaultIcon = empty;\r\n\r\n // Como que el contenido vacío se comprueba a posteriori, es necesario forzar la detección de cambios para mostrar el icono por defecto\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {CellData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-table-cell',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TableCellComponent extends ContentBaseComponent implements CellData {\r\n @Input() classes?: string;\r\n @Input() id?: string;\r\n @Input() colspan?: number;\r\n @Input() rowspan?: number;\r\n}\r\n","import {Component, ContentChildren, QueryList} from '@angular/core';\r\nimport {TableCellComponent} from './table-cell.component';\r\n\r\n@Component({\r\n selector: 'desy-table-header',\r\n template: ''\r\n})\r\nexport class TableHeaderComponent {\r\n @ContentChildren(TableCellComponent) cells: QueryList<TableCellComponent>;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-table-caption',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TableCaptionComponent extends ContentBaseComponent {\r\n @Input() classes: string;\r\n}\r\n","import {Component, ContentChildren, QueryList} from '@angular/core';\r\nimport {TableCellComponent} from './table-cell.component';\r\n\r\n@Component({\r\n selector: 'desy-table-row',\r\n template: ''\r\n})\r\nexport class TableRowComponent {\r\n @ContentChildren(TableCellComponent) cells: QueryList<TableCellComponent>;\r\n}\r\n","import {Component, Input, ContentChildren, QueryList} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport {CellData, WrapperData} from '../../interfaces';\r\nimport {TableHeaderComponent} from './components/table-header.component';\r\nimport {TableCellComponent} from './components/table-cell.component';\r\nimport {TableCaptionComponent} from './components/table-caption.component';\r\nimport {TableRowComponent} from './components/table-row.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n\r\n@Component({\r\n selector: 'desy-table',\r\n templateUrl: './table.component.html'\r\n})\r\nexport class TableComponent extends AccessibilityComponent {\r\n\r\n @Input() rows: Array<CellData[]>;\r\n @Input() head: CellData[];\r\n @Input() caption: string;\r\n @Input() captionClasses: string;\r\n @Input() firstCellIsHeader: boolean;\r\n @Input() classes: string;\r\n @Input() id: string;\r\n @Input() wrapper: WrapperData;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TableCaptionComponent) captionComponent: TableCaptionComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TableHeaderComponent) headerComponent: TableHeaderComponent;\r\n\r\n @ContentChildren(TableRowComponent) rowComponentList: QueryList<TableRowComponent>;\r\n\r\n getCaptionClass(): string {\r\n return this.captionComponent ? this.captionComponent.classes : this.captionClasses;\r\n }\r\n\r\n getHeaderCells(): TableCellComponent[]|CellData[] {\r\n let headerCells = [];\r\n if (this.headerComponent && this.headerComponent.cells) {\r\n headerCells = this.headerComponent.cells.toArray();\r\n } else if (this.head) {\r\n headerCells = this.head;\r\n }\r\n return headerCells;\r\n }\r\n\r\n getRows(): TableRowComponent[]|CellData[][] {\r\n const rowList = this.rowComponentList && this.rowComponentList.length > 0 ? this.rowComponentList.toArray() : this.rows;\r\n return rowList;\r\n }\r\n\r\n getRowCells(row: TableRowComponent|CellData[]): TableCellComponent[]|CellData[] {\r\n return row instanceof TableRowComponent ? row.cells.toArray() : row;\r\n }\r\n\r\n}\r\n\r\n","import { CellData } from './cell-data';\r\n\r\nexport interface HeadCellData extends CellData {\r\n orderBy?: OrderBy; // Possible values `none`, `asc`, `desc`.\r\n hasFilter?: boolean;\r\n filterClasses?: string;\r\n hasSelect?: boolean;\r\n}\r\n\r\nexport interface HeadCellModelData extends HeadCellData {\r\n valueFilter?: string;\r\n activeFilter?: boolean;\r\n valueSelect?: string;\r\n activeSelect?: boolean;\r\n}\r\n\r\nexport enum OrderBy {\r\n none = 'none',\r\n asc = 'asc',\r\n desc = 'desc'\r\n}\r\n","import { OptionComponent } from './../../../../desy-forms/components/select/option/option.component';\r\nimport { SelectComponent } from './../../../../desy-forms/components/select/select.component';\r\nimport { Component, ContentChildren, EventEmitter, Input, Output, QueryList, ViewChild } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'desy-table-advanced-select',\r\n template: ''\r\n})\r\nexport class TableAdvancedSelectComponent extends SelectComponent{\r\n isSelect = true;\r\n\r\n @Input() value: any;\r\n @Output() valueChange = new EventEmitter<any>();\r\n\r\n @ContentChildren(OptionComponent) selectItemComponentList: QueryList<OptionComponent>;\r\n}","import { ContentComponent } from './../../../../desy-commons/components/content/content.component';\r\nimport { TableAdvancedSelectComponent } from './table-advanced-select.component';\r\nimport { DesyContentChild } from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {Component, ContentChildren, Input} from '@angular/core';\r\nimport {HeadCellModelData, OrderBy} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-table-advanced-header-cell',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TableAdvancedHeaderCellComponent extends ContentBaseComponent implements HeadCellModelData {\r\n @Input() classes: string;\r\n @Input() id: string;\r\n @Input() colspan: number;\r\n @Input() rowspan: number;\r\n @Input() orderBy: OrderBy; // Possible values `none`, `asc`, `desc`.\r\n @Input() hasFilter: boolean;\r\n @Input() filterClasses: string;\r\n @Input() hasSelect?: boolean;\r\n valueFilter?: string;\r\n activeFilter?: boolean;\r\n valueSelect?: string;\r\n activeSelect?: boolean;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TableAdvancedSelectComponent) selectComponent?: TableAdvancedSelectComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent?: ContentComponent;\r\n}\r\n","import {Component, ContentChildren, QueryList} from '@angular/core';\r\nimport {TableAdvancedHeaderCellComponent} from './table-advanced-header-cell.component';\r\n\r\n@Component({\r\n selector: 'desy-table-advanced-header',\r\n template: ''\r\n})\r\nexport class TableAdvancedHeaderComponent {\r\n @ContentChildren(TableAdvancedHeaderCellComponent) cells: QueryList<TableAdvancedHeaderCellComponent>;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {CellData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-table-advanced-row-cell',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TableAdvancedRowCellComponent extends ContentBaseComponent implements CellData {\r\n @Input() classes?: string;\r\n @Input() id?: string;\r\n @Input() colspan?: number;\r\n @Input() rowspan?: number;\r\n}\r\n","import {Component, ContentChildren, EventEmitter, Input, Output, QueryList} from '@angular/core';\r\nimport {TableAdvancedRowCellComponent} from './table-advanced-row-cell.component';\r\n\r\n@Component({\r\n selector: 'desy-table-advanced-row',\r\n template: ''\r\n})\r\nexport class TableAdvancedRowComponent {\r\n\r\n @ContentChildren(TableAdvancedRowCellComponent) cellsList: QueryList<TableAdvancedRowCellComponent>;\r\n\r\n @Input() id: string;\r\n @Input() checked: boolean;\r\n @Output() checkedChange: EventEmitter<boolean> = new EventEmitter();\r\n}\r\n","import {Directive, ElementRef, Input} from '@angular/core';\r\nimport {RowData} from '../interfaces';\r\nimport {TableAdvancedRowComponent} from '../components/table-advanced/components/table-advanced-row.component';\r\n\r\n/**\r\n * Permite gestionar celdas de una fila de la tabla\r\n */\r\n@Directive({\r\n selector: '[desyCell]'\r\n})\r\nexport class CellDirective {\r\n\r\n @Input() row: RowData|TableAdvancedRowComponent;\r\n @Input() rowIndex: number;\r\n @Input() columnIndex: number;\r\n\r\n constructor(private element: ElementRef) { }\r\n\r\n public getContent(): string {\r\n return this.element.nativeElement.textContent;\r\n }\r\n}\r\n","import {ContentChildren, Directive, Input, QueryList} from '@angular/core';\r\nimport {CellDirective} from './cell.directive';\r\nimport {RowData} from '../interfaces';\r\nimport {TableAdvancedRowComponent} from '../components/table-advanced/components/table-advanced-row.component';\r\n\r\n/**\r\n * Permite gestionar filas de la tabla\r\n */\r\n@Directive({\r\n selector: '[desyRow]'\r\n})\r\nexport class RowDirective {\r\n\r\n @ContentChildren(CellDirective) contentCells: QueryList<CellDirective>;\r\n @Input() desyRow: RowData|TableAdvancedRowComponent;\r\n\r\n\r\n /**\r\n * Devuelve la celda ubicada en la columna indicada\r\n * @param column índice de la columna\r\n */\r\n public getCell(column: number): CellDirective {\r\n return this.contentCells.find(cell => cell.columnIndex === column);\r\n }\r\n}\r\n","import { ContentComponent } from './../../../desy-commons/components/content/content.component';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {SearchUtils} from '../../../shared/utils/search-utils';\r\nimport {HeadCellModelData, OrderBy, RowData, WrapperData} from '../../interfaces';\r\nimport {TableCaptionComponent} from '../table/components/table-caption.component';\r\nimport {TableAdvancedHeaderCellComponent} from './components/table-advanced-header-cell.component';\r\nimport {TableAdvancedHeaderComponent} from './components/table-advanced-header.component';\r\nimport {TableAdvancedRowComponent} from './components/table-advanced-row.component';\r\nimport {CellDirective} from '../../directives/cell.directive';\r\nimport {RowDirective} from '../../directives/row.directive';\r\nimport {RecalculateTableParams} from '../../interfaces/recalculate-table-params';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { TableAdvancedSelectComponent } from './components/table-advanced-select.component';\r\nimport { SelectItemData } from '../../../desy-forms/interfaces/select-item-data';\r\n\r\n@Component({\r\n selector: 'desy-table-advanced',\r\n templateUrl: './table-advanced.component.html'\r\n})\r\nexport class TableAdvancedComponent extends AccessibilityComponent implements AfterViewInit {\r\n\r\n @Input() rows: RowData[]; // original data\r\n @Input() head: HeadCellModelData[];\r\n\r\n @Input() caption: string;\r\n @Input() captionClasses: string;\r\n @Input() firstCellIsHeader: boolean;\r\n @Input() hasCheckboxes: boolean;\r\n @Input() idPrefix: string;\r\n @Input() classes: string;\r\n @Input() checkboxClasses: string;\r\n @Input() id: string;\r\n @Input() wrapper: WrapperData;\r\n\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TableCaptionComponent) captionComponent: TableCaptionComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TableAdvancedHeaderComponent) headerComponent: TableAdvancedHeaderComponent;\r\n\r\n @ContentChildren(TableAdvancedRowComponent) rowComponentList: QueryList<TableAdvancedRowComponent>;\r\n @ViewChildren(RowDirective) rowData: QueryList<RowDirective>;\r\n\r\n @Output() rowsChange = new EventEmitter();\r\n @Output() rowsChecked = new EventEmitter();\r\n @Output() recalculateTable = new EventEmitter<RecalculateTableParams>();\r\n\r\n visibleRows: RowData[]|TableAdvancedRowComponent[];\r\n orderByType = OrderBy;\r\n isReset: boolean;\r\n\r\n constructor(private el: ElementRef, private changeDetector: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const elemntsFocus = this.el.nativeElement.querySelector('[tabindex]');\r\n if (elemntsFocus) {\r\n elemntsFocus.setAttribute('tabindex', '0');\r\n }\r\n this.recalculateVisibleElements();\r\n }\r\n\r\n /**\r\n * Refresca las filas visibles tras realizarse una búsqueda o una ordenación\r\n */\r\n recalculateVisibleElements(): void {\r\n const recalculateParams = this.buildRecalculateParams();\r\n\r\n // Si se captura el evento recalculateTable se deja al usuario la responsabilidad de filtrar y ordenar los elementos.\r\n if (this.recalculateTable.observers.length > 0) {\r\n this.recalculateTable.emit(recalculateParams);\r\n this.changeDetector.markForCheck();\r\n } else {\r\n\r\n // Se deben mostrar todas las filas temporalmente para poder aplicar el filtro y la ordenación sobre el contenido insertado\r\n this.visibleRows = this.getRows();\r\n this.changeDetector.detectChanges();\r\n\r\n // Se aplica el filtro y la ordenación\r\n let rowData = this.filterRows(recalculateParams, this.rowData.toArray());\r\n rowData = this.sortRows(recalculateParams, rowData);\r\n this.visibleRows = rowData.map(r => r.desyRow) as RowData[]|TableAdvancedRowComponent[];\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Construye los parámetros necesarios para recalcular la tabla, indicando los filtros y la ordenación\r\n */\r\n private buildRecalculateParams(): RecalculateTableParams {\r\n const params = {\r\n filters: [],\r\n sort: null\r\n };\r\n\r\n const head = this.getHeaderCells() as (HeadCellModelData|TableAdvancedHeaderCellComponent)[];\r\n if (head) {\r\n head.forEach((headerCell, headerCellIndex) => {\r\n if (headerCell.hasFilter && headerCell.activeFilter) {\r\n params.filters.push({ columnIndex: headerCellIndex, filterText: headerCell.valueFilter });\r\n }\r\n if(headerCell.hasSelect && headerCell.activeSelect){\r\n params.filters.push({ columnIndex: headerCellIndex, filterText: headerCell.valueSelect });\r\n }\r\n });\r\n\r\n const orderByColumnIndex = head.findIndex(cell => cell.orderBy && cell.orderBy !== OrderBy.none);\r\n params.sort = (orderByColumnIndex >= 0) ? { columnIndex: orderByColumnIndex, order: head[orderByColumnIndex].orderBy } : null;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n /**\r\n * funciones de recoger ids, y caracteristicas\r\n */\r\n\r\n hasFilters(): boolean {\r\n const head = this.getHeaderCells();\r\n return head ? head.findIndex(cell => (cell.hasFilter) || (cell.hasSelect)) >= 0 : false;\r\n }\r\n\r\n getHeaderCells(): HeadCellModelData[]|TableAdvancedHeaderCellComponent[] {\r\n return this.headerComponent && this.headerComponent.cells.length > 0 ? this.headerComponent.cells.toArray() : this.head;\r\n }\r\n\r\n getRows(): RowData[]|TableAdvancedRowComponent[] {\r\n let rows = [];\r\n if (this.rowComponentList.length > 0) {\r\n rows = this.rowComponentList.toArray();\r\n } else if (this.rows) {\r\n rows = this.rows;\r\n }\r\n return rows;\r\n }\r\n\r\n /**\r\n * Si se sobreescribe el comportamiento por defecto de filtrado y ordenación, se utilizarán las indicadas desde fuera del\r\n * componente (ya sea por parámetro o por contenido).\r\n * Si no se sobreescribe, devuelve las filas calculadas.\r\n */\r\n getVisibleRows(): RowData[]|TableAdvancedRowComponent[] {\r\n return this.recalculateTable.observers.length > 0 ? this.getRows() : this.visibleRows;\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : 'id-table-row';\r\n }\r\n\r\n getIdHeader(index: number): string {\r\n return this.getIdPrefix() + '-header-' + index;\r\n }\r\n\r\n getIdRowCheckbox(index: number): string {\r\n return this.getIdPrefix() + '-checkbox-' + index;\r\n }\r\n\r\n getIdHeaderFilter(index: number): string {\r\n return this.getIdPrefix() + '-header-filter-' + index;\r\n }\r\n\r\n getIdHeaderSelect(index: number): string {\r\n return this.getIdPrefix() + '-header-select-' + index;\r\n }\r\n\r\n getCaptionClass(): string {\r\n return this.captionComponent ? this.captionComponent.classes : this.captionClasses;\r\n }\r\n\r\n getStringOrderBy(orderBy: OrderBy): string {\r\n if (orderBy === OrderBy.asc){\r\n return 'ascending';\r\n } else if (orderBy === OrderBy.desc){\r\n return 'descending';\r\n } else if (orderBy === OrderBy.none){\r\n return 'none';\r\n }\r\n }\r\n\r\n getSelectForItem(item: TableAdvancedHeaderCellComponent): TableAdvancedSelectComponent{\r\n return item.selectComponent ? item.selectComponent : null;\r\n }\r\n\r\n getItemSelectOptions(item: TableAdvancedSelectComponent): SelectItemData[] {\r\n return item.selectItemComponentList && item.selectItemComponentList.length > 0 ?\r\n item.selectItemComponentList.toArray() : item.items;\r\n }\r\n\r\n getContentComponent(item: TableAdvancedHeaderCellComponent): ContentComponent{\r\n return item.contentComponent ? item.contentComponent : null;\r\n }\r\n\r\n\r\n /**\r\n * checks\r\n */\r\n handleCheckboxChange(row: RowData|TableAdvancedRowComponent): void {\r\n if (row instanceof TableAdvancedRowComponent) {\r\n row.checkedChange.emit(row.checked);\r\n }\r\n this.notifyCheckedChange();\r\n }\r\n\r\n /**\r\n * Permite desmarcar todas las filas\r\n */\r\n private uncheckAll(): void{\r\n this.getRows().forEach(r => {\r\n const mustEmit = r.checked && r instanceof TableAdvancedRowComponent;\r\n r.checked = false;\r\n if (mustEmit) {\r\n (r as TableAdvancedRowComponent).checkedChange.emit(r.checked);\r\n }\r\n });\r\n this.notifyCheckedChange();\r\n }\r\n\r\n /**\r\n * Notifica cambios en las filas\r\n */\r\n private notifyCheckedChange(): void {\r\n if (this.rowComponentList.length === 0) {\r\n this.rowsChange.emit(this.rows);\r\n }\r\n\r\n const rowChecks: any = {};\r\n this.getRows().forEach(r => rowChecks[r.id] = !!r.checked); // Se aplican también a las no visibles\r\n this.rowsChecked.emit(rowChecks);\r\n }\r\n\r\n\r\n /**\r\n * busqueda\r\n */\r\n handleInputSearch(item: HeadCellModelData): void {\r\n if (item.hasFilter) { // si tiene buscador\r\n item.activeFilter = !!item.valueFilter;\r\n this.uncheckAll();\r\n }\r\n if(item.hasSelect){ //Si tiene seleccionable\r\n item.activeSelect = !!item.valueSelect;\r\n this.uncheckAll();\r\n }\r\n\r\n this.recalculateVisibleElements();\r\n }\r\n\r\n /**\r\n * Se filtran las filas según lo especificado en la barra de búsqueda de cada columna.\r\n * Si no hay búsqueda sse devuelven todas las filas.\r\n * @param recalculateParams parametros para recalcular los elementos visibles\r\n * @param rows lista con todas las filas\r\n * @return lista de filas filtrada\r\n */\r\n private filterRows(recalculateParams: RecalculateTableParams, rows: RowDirective[]): RowDirective[] {\r\n let filteredRows = rows;\r\n recalculateParams.filters.forEach(filter => {\r\n filteredRows = filteredRows.filter(row =>\r\n SearchUtils.containsAnyWordFrom(row.getCell(filter.columnIndex).getContent(), filter.filterText));\r\n });\r\n return filteredRows;\r\n }\r\n\r\n /**\r\n * ordenacion\r\n */\r\n\r\n /**\r\n * Permite indicar que se debe ordenar la tabla\r\n * @param index indice de la columna\r\n */\r\n handleSortByColumn(index: number): void {\r\n const head = this.getHeaderCells();\r\n if (head) {\r\n head.forEach((cell, cellIndex) => {\r\n if (cell.orderBy) {\r\n cell.orderBy = cellIndex === index ? this.getNextDirection(cell) : OrderBy.none;\r\n }\r\n });\r\n }\r\n\r\n this.recalculateVisibleElements();\r\n }\r\n\r\n\r\n /**\r\n * Ordena las filas indicadas según la columna especificada en la cabecera\r\n * @param recalculateParams parametros para recalcular los elementos visibles\r\n * @param rows filas de la tabla a ordenar\r\n * @return mismas filas pero ordenadas por la columna indicada\r\n */\r\n private sortRows(recalculateParams: RecalculateTableParams, rows: RowDirective[]): RowDirective[] {\r\n let sortedRows = rows;\r\n if (recalculateParams.sort) {\r\n const columnIndex = recalculateParams.sort.columnIndex;\r\n const isAsc = recalculateParams.sort.order === OrderBy.asc;\r\n sortedRows = rows.sort((a, b) =>\r\n this.compareCellContent(a.getCell(columnIndex), b.getCell(columnIndex), isAsc));\r\n }\r\n\r\n return sortedRows;\r\n }\r\n\r\n /**\r\n * Compara el contenido de dos celdas. Este se invierte si el orden especificado es descendente.\r\n */\r\n compareCellContent(a: CellDirective, b: CellDirective, isAsc: boolean): number{\r\n let result;\r\n const aComparable = this.cleanCurrency(a.getContent());\r\n const bComparable = this.cleanCurrency(b.getContent());\r\n\r\n if (isNaN(+aComparable) && isNaN(+bComparable) ) { // son textos\r\n result = aComparable.localeCompare(bComparable, 'es', { sensitivity: 'base', ignorePunctuation: true });\r\n }else{ // son numeros\r\n result = aComparable.localeCompare(bComparable, undefined, { numeric: true });\r\n }\r\n\r\n return result * (isAsc ? 1 : -1);\r\n }\r\n\r\n /**\r\n * se calcula la ordenación nueva\r\n */\r\n private getNextDirection(item: HeadCellModelData): OrderBy {\r\n if (item.orderBy === OrderBy.none || item.orderBy === OrderBy.desc) {\r\n return OrderBy.asc;\r\n } else {\r\n return OrderBy.desc;\r\n }\r\n }\r\n\r\n /**\r\n * si es una cantidad de dinero se quita € para poder comparar los numeros\r\n */\r\n private cleanCurrency(txt: string): string {\r\n if (/[\\d.,]+[\\€]/g.test(txt)) {\r\n txt = txt.replace(/€/g, '');\r\n }\r\n return txt;\r\n }\r\n\r\n selectFilter(item: TableAdvancedSelectComponent, itemValue: any): void {\r\n item.valueChange.emit(itemValue);\r\n\r\n const head = this.getHeaderCells();\r\n const rows = this.getRows();\r\n if (head && rows) {\r\n head.forEach((cell: TableAdvancedHeaderCellComponent, cellIndex) => {\r\n });\r\n rows.forEach(row => {\r\n });\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component, ComponentFactoryResolver, ComponentRef,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n TemplateRef, Type,\r\n ViewChild, ViewContainerRef\r\n} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { FocusUtils } from '../../../shared/utils/focus-utils';\r\n\r\ntype AlertCreationCallback = ((dialog: AlertComponent, caller: ComponentRef<any>) => void);\r\n\r\n@Component({\r\n selector: 'desy-alert',\r\n templateUrl: './alert.component.html'\r\n})\r\nexport class AlertComponent extends AccessibilityComponent implements OnDestroy, AfterViewInit {\r\n\r\n @ViewChild('alertWrapper') alertWrapper: ElementRef;\r\n @ViewChild('container', {read: ViewContainerRef}) container: ViewContainerRef;\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() caller: TemplateRef<any>;\r\n @Input() focusFirst: boolean;\r\n\r\n @Input() set active(value: boolean) {\r\n setTimeout(() => {\r\n this._active = value;\r\n this.cdRef.detectChanges();\r\n this.handleActiveState();\r\n });\r\n }\r\n get active(): boolean {\r\n return this._active;\r\n }\r\n @Output() activeChange = new EventEmitter<boolean>();\r\n\r\n private _active: boolean;\r\n public callerContext: any;\r\n public callerType: Type<any>;\r\n public onCallerCreationCallback: AlertCreationCallback;\r\n\r\n private lastActiveState: boolean = undefined;\r\n private hasViewinit = false;\r\n private createdCallerFromType = false;\r\n\r\n constructor(private cdRef: ChangeDetectorRef, private factoryResolver: ComponentFactoryResolver) {\r\n super();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.active = false;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n this.hasViewinit = true;\r\n this.handleActiveState();\r\n }\r\n\r\n dismiss(): void {\r\n this.activeChange.emit(false);\r\n }\r\n\r\n handleActiveState(): void {\r\n if (this._active && this.callerType && !this.createdCallerFromType) {\r\n const factory = this.factoryResolver.resolveComponentFactory(this.callerType);\r\n const component = this.container.createComponent(factory);\r\n if (this.onCallerCreationCallback) {\r\n this.onCallerCreationCallback(this, component);\r\n }\r\n this.createdCallerFromType = true;\r\n }\r\n\r\n if (this._active !== this.lastActiveState && this.hasViewinit) {\r\n this.lastActiveState = this._active;\r\n\r\n if (this._active && this.focusFirst) {\r\n this.cdRef.detectChanges();\r\n const focusElem = FocusUtils.getFirstFocusableElement(this.alertWrapper.nativeElement as HTMLElement);\r\n if (focusElem) {\r\n focusElem.focus();\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {AccordionHeaderData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-accordion-header',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class AccordionHeaderComponent extends ContentBaseComponent implements AccordionHeaderData {\r\n\r\n @Input() classes?: string;\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { ContentBaseComponent } from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-accordion-item-show-button',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class AccordionItemShowButtonComponent extends ContentBaseComponent {\r\n\r\n @Input() classes: string;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { ContentBaseComponent } from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-accordion-item-hide-button',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class AccordionItemHideButtonComponent extends ContentBaseComponent {\r\n\r\n @Input() classes: string;\r\n}\r\n","import {Component, ContentChildren, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {AccordionItemData} from '../../../interfaces';\r\nimport {AccordionHeaderComponent} from '../accordion-header/accordion-header.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport {AccessibilityComponent} from '../../../../shared/components';\r\nimport {AccordionItemShowButtonComponent} from '../../accordion-history/accordion-item-show-button/accordion-item-show-button.component';\r\nimport {AccordionItemHideButtonComponent} from '../../accordion-history/accordion-item-hide-button/accordion-item-hide-button.component';\r\n\r\n@Component({\r\n selector: 'desy-accordion-item',\r\n template: '',\r\n})\r\nexport class AccordionItemComponent extends AccessibilityComponent implements AccordionItemData {\r\n\r\n @Input() id: string;\r\n @Input() open: boolean;\r\n @Input() classes: string;\r\n\r\n @Output() openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @DesyContentChild()\r\n @ContentChildren(AccordionHeaderComponent) headerComponent: AccordionHeaderComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(AccordionItemShowButtonComponent) showHeaderButton: AccordionItemShowButtonComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(AccordionItemHideButtonComponent) hideHeaderButton: AccordionItemHideButtonComponent;\r\n\r\n}\r\n","import {Component, ContentChildren, ElementRef, HostBinding, Input, OnChanges, QueryList, SimpleChanges, ViewChildren} from '@angular/core';\r\nimport {AccordionHeaderData} from '../../interfaces';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {AccordionItemData} from '../../interfaces';\r\nimport {AccordionHeaderComponent} from './accordion-header/accordion-header.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {AccordionItemComponent} from './accordion-item/accordion-item.component';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\n\r\n\r\n@Component({\r\n selector: 'desy-accordion',\r\n templateUrl: './accordion.component.html'\r\n})\r\nexport class AccordionComponent extends AccessibilityComponent implements OnChanges {\r\n \r\n @ViewChildren('itemSelector') itemSelectors: QueryList<ElementRef>;\r\n\r\n @Input() idPrefix: string;\r\n @Input() allowToggle: boolean;\r\n @Input() allowMultiple: boolean;\r\n @Input() heading: AccordionHeaderData;\r\n @Input() headingLevel;\r\n @Input() showControl: boolean;\r\n @Input() items: AccordionItemData[];\r\n \r\n @Input() @HostBinding('class') classes: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.aria-modal') ariaModalData: any\r\n \r\n @DesyContentChild()\r\n @ContentChildren(AccordionHeaderComponent) headingComponent: AccordionHeaderComponent;\r\n @ContentChildren(AccordionItemComponent) itemComponentList: QueryList<AccordionItemComponent>;\r\n\r\n showAll = true;\r\n currentItem: number;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\r\n }\r\n\r\n getItemId(item, index: number): string {\r\n let id;\r\n if (item.id) {\r\n id = item.id;\r\n } else {\r\n if (index === 0) {\r\n id = this.idPrefix ? this.idPrefix : undefined;\r\n } else {\r\n id = this.idPrefix ? this.idPrefix + '-' + index : index;\r\n }\r\n }\r\n return id;\r\n }\r\n\r\n changeAll(): void {\r\n const items = this.getItems();\r\n items.forEach(item => {\r\n const isChange = item.open !== this.showAll;\r\n item.open = this.showAll;\r\n if (isChange && item instanceof AccordionItemComponent) {\r\n item.openChange.emit(item.open);\r\n }\r\n });\r\n this.showAll = !this.showAll;\r\n }\r\n\r\n toggleItem(item: AccordionItemData): void {\r\n if (!item.open || this.allowToggle) {\r\n const newOpenValue = !item.open;\r\n if (!this.allowMultiple) {\r\n const items = this.getItems();\r\n items.forEach(it => {\r\n const wasOpen = it.open;\r\n it.open = false;\r\n if (wasOpen && it !== item && it instanceof AccordionItemComponent) {\r\n it.openChange.emit(it.open);\r\n }\r\n });\r\n }\r\n item.open = newOpenValue;\r\n if (item instanceof AccordionItemComponent) {\r\n item.openChange.emit(item.open);\r\n }\r\n }\r\n }\r\n\r\n focusFirstItem(event): void {\r\n event.preventDefault();\r\n this.itemSelectors.toArray()[0].nativeElement.focus();\r\n }\r\n\r\n focusLastItem(event): void {\r\n event.preventDefault();\r\n this.itemSelectors.toArray()[this.itemSelectors.length - 1].nativeElement.focus();\r\n }\r\n\r\n focusNextItem(event, focusedItem: number): void {\r\n event.preventDefault();\r\n const selectors = this.itemSelectors.toArray();\r\n if (selectors[(focusedItem + 1) % selectors.length] != null) {\r\n selectors[(focusedItem + 1) % selectors.length].nativeElement.focus();\r\n }\r\n }\r\n\r\n focusPreviousItem(event, focusedItem: number): void {\r\n event.preventDefault();\r\n const selectors = this.itemSelectors.toArray();\r\n if (selectors[(focusedItem + selectors.length - 1) % selectors.length] != null) {\r\n selectors[(focusedItem + selectors.length - 1) % selectors.length].nativeElement.focus();\r\n }\r\n }\r\n\r\n selectItem( i: number ): void {\r\n this.currentItem = i;\r\n }\r\n\r\n getTitleClasses(): string {\r\n let classes = 'c-h2 mb-base';\r\n if (this.headingComponent && this.headingComponent.classes) {\r\n classes = this.headingComponent.classes;\r\n } else if (this.heading && this.heading.classes) {\r\n classes = this.heading.classes;\r\n }\r\n return classes;\r\n }\r\n\r\n getItems(): AccordionItemData[] {\r\n const items = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;\r\n return items;\r\n }\r\n\r\n getItemHeader(item: AccordionItemData): AccordionHeaderComponent {\r\n return item instanceof AccordionItemComponent ? item.headerComponent : null;\r\n } \r\n\r\n getItemContent(item: AccordionItemData): ContentComponent {\r\n return item instanceof AccordionItemComponent ? item.contentComponent : null;\r\n }\r\n\r\n}\r\n","import { Component, ContentChildren, Input } from '@angular/core';\r\nimport { DesyContentChild } from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport { AccordionItemComponent } from '../../accordion/accordion-item/accordion-item.component';\r\nimport { AccordionItemHideButtonComponent } from '../accordion-item-hide-button/accordion-item-hide-button.component';\r\nimport { AccordionItemShowButtonComponent } from '../accordion-item-show-button/accordion-item-show-button.component';\r\n\r\n@Component({\r\n selector: 'desy-accordion-history-item',\r\n template: '',\r\n})\r\nexport class AccordionHistoryItemComponent extends AccordionItemComponent {\r\n\r\n @Input() status: 'current' | 'pending' | 'muted' | 'currentmuted' | any;\r\n @Input() disabled = false;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(AccordionItemShowButtonComponent) showButton: AccordionItemShowButtonComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(AccordionItemHideButtonComponent) hideButton: AccordionItemHideButtonComponent;\r\n}\r\n","import { Component, ContentChildren, QueryList } from '@angular/core';\r\nimport { AccordionComponent } from '../accordion/accordion.component';\r\nimport { AccordionHistoryItemComponent } from './accordion-history-item/accordion-history-item.component';\r\n\r\n@Component({\r\n selector: 'desy-accordion-history',\r\n templateUrl: './accordion-history.component.html'\r\n})\r\nexport class AccordionHistoryComponent extends AccordionComponent {\r\n\r\n // Sobreescribe el tipo del listado de items\r\n @ContentChildren(AccordionHistoryItemComponent) itemComponentList: QueryList<AccordionHistoryItemComponent>;\r\n}\r\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-spinner',\r\n templateUrl: './spinner.component.html'\r\n})\r\nexport class SpinnerComponent extends AccessibilityComponent implements OnChanges{\r\n\r\n @Input() text: string;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.aria-modal') ariaModalData: any\r\n\r\n @Input() id: string;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.classes ? this.classes += ' c-spinner' : 'c-spinner'\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-details',\r\n templateUrl: './details.component.html'\r\n})\r\nexport class DetailsComponent extends AccessibilityComponent {\r\n\r\n @Input() summaryText: string;\r\n @Input() summaryHtml: string;\r\n @Input() summaryClasses: string;\r\n @Input() containerClasses: string;\r\n @Input() id: string;\r\n @Input() open: boolean;\r\n @Input() classes: string;\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {TermDefinitionData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-term',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TermComponent extends ContentBaseComponent implements TermDefinitionData {\r\n\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {TermDefinitionData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-definition',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class DefinitionComponent extends ContentBaseComponent implements TermDefinitionData {\r\n\r\n @Input() classes: string;\r\n @Input() id: string;\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport {DescriptionItemData} from '../../../interfaces';\r\nimport {TermComponent} from '../term/term.component';\r\nimport {DefinitionComponent} from '../definition/definition.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-description-item',\r\n template: ''\r\n})\r\nexport class DescriptionItemComponent implements DescriptionItemData {\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TermComponent) term: TermComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DefinitionComponent) definition: DefinitionComponent;\r\n\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n}\r\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { DescriptionItemData } from '../../interfaces';\r\nimport {DescriptionItemComponent} from './description-item/description-item.component';\r\n\r\n@Component({\r\n selector: 'desy-description-list',\r\n templateUrl: './description-list.component.html'\r\n})\r\nexport class DescriptionListComponent extends AccessibilityComponent {\r\n\r\n @Input() items: Array<DescriptionItemData>;\r\n @ContentChildren(DescriptionItemComponent) itemComponents: QueryList<DescriptionItemComponent>;\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n\r\n getItems(): DescriptionItemData[]|DescriptionItemComponent[] {\r\n const items = (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\r\n return items;\r\n }\r\n\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Component, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { AccessibilityAndContentRequiredComponent } from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-collapsible',\r\n templateUrl: './collapsible.component.html',\r\n animations: [\r\n trigger('displayCollapsible', [\r\n state('void', style({\r\n opacity: '0.0',\r\n transform: 'scaleY(0.95)'\r\n })),\r\n state('*', style({\r\n opacity: '1.0',\r\n transform: 'scaleY(1.0)'\r\n })),\r\n transition(':enter', [\r\n animate('100ms ease-out')\r\n ]),\r\n transition(':leave', [\r\n animate('75ms ease-in')\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class CollapsibleComponent extends AccessibilityAndContentRequiredComponent implements OnInit, OnChanges {\r\n\r\n @Input() headerText: string;\r\n @Input() headerHtml: string;\r\n @Input() id: string;\r\n @Input() open: boolean;\r\n @Input() classes: string;\r\n show: string;\r\n\r\n isOpen(): void {\r\n this.open = !this.open;\r\n this.toggleOpen();\r\n }\r\n\r\n toggleOpen(): void {\r\n if (this.open){\r\n this.show = 'Ocultar';\r\n } else {\r\n this.show = 'Mostrar';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.toggleOpen();\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.toggleOpen();\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-item-content-right',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ItemContentRightComponent extends ContentBaseComponent {\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ContentData} from '../../../../desy-commons/interfaces';\r\n\r\n@Component({\r\n selector: 'desy-item-content-bottom',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ItemContentBottomComponent extends ContentBaseComponent implements ContentData {\r\n @Input() classes: string;\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-item-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ItemItemComponent extends ContentBaseComponent {\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {ContentData, DescriptionData, IconData, TitleData} from '../../../desy-commons/interfaces';\r\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\r\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\r\nimport {ItemContentRightComponent} from './item-content-right/item-content-right.component';\r\nimport {ItemContentBottomComponent} from './item-content-bottom/item-content-bottom.component';\r\nimport {ItemItemComponent} from './item-item/item-item.component';\r\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-item',\r\n templateUrl: './item.component.html'\r\n})\r\nexport class ItemComponent extends AccessibilityComponent implements OnChanges, OnInit {\r\n\r\n @Input() title: TitleData;\r\n @Input() description: DescriptionData;\r\n @Input() headingLevel: number;\r\n @Input() items: string[];\r\n @Input() content: ContentData;\r\n @Input() icon: IconData;\r\n @Input() isDraggable: boolean;\r\n @Input() isLocked: boolean;\r\n @Input() caller: TemplateRef<any>;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n @Input() @HostBinding('attr.id') id: any;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(IconComponent) iconComponent: IconComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ItemContentBottomComponent) contentBottomComponent: ItemContentBottomComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ItemContentRightComponent) contentRightComponent: ItemContentRightComponent;\r\n\r\n @ContentChildren(ItemItemComponent) itemComponents: QueryList<ItemItemComponent>;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n ngOnInit(): void {\r\n const progressInterval = setInterval(() => {\r\n this.checkClasses();\r\n clearInterval(progressInterval); \r\n }, 500);\r\n }\r\n\r\n getItems(): string[]|ItemItemComponent[] {\r\n return this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items;\r\n }\r\n\r\n handleIconContentEmpty(isEmpty: boolean): void {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n getTitle(): TitleData {\r\n return this.titleComponent ? this.titleComponent : (this.title ? this.title : null);\r\n }\r\n\r\n getIcon(): IconData {\r\n return this.iconComponent ? this.iconComponent : (this.icon ? this.icon : null)\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.checkClasses();\r\n }\r\n\r\n checkClasses (): void {\r\n if(this.getTitle()){\r\n this.classes = this.classes ? this.classes += ' flex flex-wrap p-base bg-white border border-neutral-base rounded' : 'flex flex-wrap p-base bg-white border border-neutral-base rounded';\r\n this.id = this.id ? this.id : null;\r\n }\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-media-object-figure',\r\n templateUrl: './media-object-figure.component.html'\r\n})\r\nexport class MediaObjectFigureComponent extends ContentBaseComponent {\r\n\r\n}\r\n","import { AccessibilityComponent } from '../../../shared/components';\r\nimport { Component, Input, TemplateRef, ContentChildren, ElementRef, ViewChild, HostBinding, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { ContentComponent } from '../../../desy-commons/components/content/content.component';\r\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { MediaObjectFigureComponent } from './media-object-figure/media-object-figure.component';\r\n\r\n@Component({\r\n selector: 'desy-media-object',\r\n templateUrl: './media-object.component.html'\r\n})\r\nexport class MediaObjectComponent extends AccessibilityComponent implements OnChanges { \r\n\r\n @Input() figureHtml: string;\r\n @Input() center: boolean;\r\n @Input() reverse: boolean;\r\n @Input() figureClasses: string;\r\n @Input() contenClasses: string;\r\n \r\n @Input() caller: TemplateRef<any>;\r\n @Input() id: string;\r\n \r\n @Input() @HostBinding('class') classes: any;\r\n @HostBinding('class.items-center') cfgr: boolean;\r\n\r\n //Accessibility\r\n @HostBinding('attr.id') idData: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.tabindex') tabindexData: any;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(MediaObjectFigureComponent) mediaObjectFigureComponent: MediaObjectFigureComponent;\r\n\r\n @ViewChild('mediaFigureContent', { read: ElementRef, static: true }) mediaFigureContent: ElementRef;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = 'flex' + (this.classes ? ' ' + this.classes : '') + (this.center==true ? ' ' : '');\r\n this.cfgr = this.center;\r\n this.idData = this.id ? this.id : null;\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.tabindexData = this.tabindex ? this.tabindex : null;\r\n }\r\n\r\n}\r\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { StatusIconData } from '../../interfaces/status-icon-data';\r\n\r\n@Component({\r\n selector: 'desy-status',\r\n templateUrl: './status.component.html'\r\n})\r\nexport class StatusComponent extends AccessibilityComponent implements OnChanges{\r\n\r\n @Input() text: string;\r\n @Input() id: string;\r\n @Input() icon: StatusIconData;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n\r\n //Accessibility\r\n @HostBinding('attr.id') idData: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.tabindex') tabindexData: any;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.classes ? this.classes : null;\r\n this.idData = this.id ? this.id : null;\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.tabindexData = this.tabindex ? this.tabindex : null;\r\n }\r\n\r\n getType(): string {\r\n let type: string;\r\n if (this.icon && this.icon.type){\r\n type = this.icon.type.toLocaleLowerCase();\r\n } else {\r\n type = 'success';\r\n } \r\n return type;\r\n }\r\n}\r\n","import { Component, ContentChildren, HostBinding, Input, OnChanges, QueryList, SimpleChanges, TemplateRef } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { DescriptionItemData, StatusItemTitleData, StatusData } from '../../interfaces';\r\nimport { ErrorMessageData, HintData } from '../../../desy-forms/interfaces';\r\nimport { DescriptionItemComponent } from '../description-list/description-item/description-item.component';\r\nimport { TitleComponent } from '../../../desy-commons/components/title/title.component';\r\nimport { HintComponent } from '../../../desy-forms/components/hint/hint.component';\r\nimport { ErrorMessageComponent } from '../../../desy-forms/components/error-message/error-message.component';\r\nimport { StatusComponent } from '../status/status.component';\r\nimport { ContentComponent } from '../../../desy-commons/components/content/content.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-status-item',\r\n templateUrl: './status-item.component.html'\r\n})\r\nexport class StatusItemComponent extends AccessibilityComponent implements OnChanges{ \r\n\r\n @Input() id: string; \r\n\r\n @Input() errorId: string;\r\n @Input() describedBy: string;\r\n\r\n @Input() title: StatusItemTitleData;\r\n @Input() hint: HintData;\r\n @Input() errorMessage: ErrorMessageData;\r\n @Input() items: DescriptionItemData[];\r\n @Input() status: StatusData;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n\r\n //Accessibility\r\n @HostBinding('attr.id') idData: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.tabindex') tabindexData: any;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HintComponent) hintComponent: HintComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ErrorMessageComponent) errorMessageComponent: ErrorMessageComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @ContentChildren(DescriptionItemComponent) itemComponents: QueryList<DescriptionItemComponent>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(StatusComponent) statusComponent: StatusComponent;\r\n @Input() caller: TemplateRef<any>;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.classes ? this.classes : null;\r\n this.idData = this.id ? this.id : null;\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.tabindexData = this.tabindex ? this.tabindex : null;\r\n }\r\n\r\n getItems(): DescriptionItemData[]|DescriptionItemComponent[] {\r\n return (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {TabsPanelData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-panel',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class PanelComponent extends ContentBaseComponent implements TabsPanelData {\r\n\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n}","import {Component, ContentChildren, Input } from '@angular/core';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport { PanelComponent } from '../panel/panel.component';\r\nimport { TabsItemsData, TabsPanelData } from '../../../interfaces';\r\nimport { AccessibilityComponent } from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-tab-item',\r\n template: ''\r\n})\r\nexport class TabItemComponent extends AccessibilityComponent implements TabsItemsData {\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(PanelComponent) panelComponent: PanelComponent;\r\n\r\n @Input() classes: string;\r\n @Input() disabled: boolean;\r\n @Input() id: string;\r\n panel?: TabsPanelData;\r\n\r\n}\r\n","import {\r\n AfterViewInit, ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { StringUtils } from '../../../shared/utils/string-utils';\r\nimport {TabsItemsData} from '../../interfaces';\r\nimport { TabItemComponent } from './tab-item/tab-item.component';\r\n\r\n@Component({\r\n selector: 'desy-tabs',\r\n templateUrl: './tabs.component.html'\r\n})\r\nexport class TabsComponent extends AccessibilityComponent implements AfterViewInit, OnChanges {\r\n\r\n @ContentChildren(TabItemComponent) itemComponents: QueryList<TabItemComponent>;\r\n @ViewChildren('tabSelector') tabSelectors: QueryList<ElementRef>;\r\n @ViewChildren('tabSelectorContentWrapper') tabSelectorContentWrapper: QueryList<ElementRef>;\r\n @ViewChild('tabSrOnly') tabSrOnly: ElementRef;\r\n\r\n\r\n @Input() id: string;\r\n @Input() idPrefix: string;\r\n @Input() headingLevel: number;\r\n \r\n @Input() title: string;\r\n @Input() tablistAriaLabel: string;\r\n @Input() items: TabsItemsData[];\r\n \r\n @Input() @HostBinding('class') classes: any;\r\n\r\n //Accessibility\r\n @HostBinding('attr.id') idData: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.tabindex') tabindexData: any;\r\n\r\n currentTab = 0;\r\n currentPanel;\r\n\r\n constructor(private changeDetector: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.classes ? 'c-tabs ' + this.classes : 'c-tabs';\r\n this.idData = this.id ? this.id : null;\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.tabindexData = this.tabindex ? this.tabindex : null;\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n if(this.items){\r\n const item = this.getItems();\r\n this.selectTab(item.findIndex(value => !value.disabled));\r\n }\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n getItems(): TabsItemsData[]|TabItemComponent[] {\r\n const items = (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\r\n return items;\r\n }\r\n\r\n getItemPanel(tab: number): TabItemComponent {\r\n let panel;\r\n const items = this.getItems();\r\n const item = items[tab];\r\n if (item instanceof TabItemComponent){\r\n panel = item.panelComponent;\r\n }\r\n return panel;\r\n }\r\n\r\n\r\n getIdPrefix(): string {\r\n if (this.idPrefix) {\r\n return this.idPrefix;\r\n }\r\n }\r\n\r\n getItemId(index: number): string {\r\n let id;\r\n const item = this.getItems();\r\n if (item[index].id) {\r\n id = item[index].id;\r\n } else {\r\n id = this.getIdPrefix() + '-' + index;\r\n }\r\n return id;\r\n }\r\n\r\n isDisabled(item: TabsItemsData): boolean {\r\n return item.disabled ? true : null;\r\n }\r\n\r\n\r\n selectTab( i: number ): void {\r\n this.currentTab = i;\r\n const currentItem = this.getItems()[i];\r\n this.currentPanel = currentItem instanceof TabItemComponent ? currentItem.panelComponent : currentItem.panel;\r\n this.tabSrOnly.nativeElement.innerHTML = this.tabSelectorContentWrapper.toArray()[this.currentTab].nativeElement.innerHTML;\r\n }\r\n\r\n focusFirstTab(event?): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n const enabledTabs = this.tabSelectors.filter((item, index) => !item[index].disabled);\r\n enabledTabs[0].nativeElement.focus();\r\n }\r\n\r\n focusLastTab(event?): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n const enabledTabs = this.tabSelectors.filter((item, index) => !item[index].disabled);\r\n enabledTabs[enabledTabs.length - 1].nativeElement.focus();\r\n }\r\n\r\n focusNextTab(focusedTab: number): void {\r\n const item = this.getItems();\r\n let nextTab = (focusedTab + 1) % item.length;\r\n while (nextTab !== focusedTab) {\r\n if (!item[nextTab].disabled) {\r\n this.tabSelectors.find((i, index) => index === nextTab).nativeElement.focus();\r\n break;\r\n }\r\n nextTab = (nextTab + 1) % item.length;\r\n }\r\n }\r\n\r\n focusPreviousTab(focusedTab: number): void {\r\n const item = this.getItems();\r\n let previousTab = (focusedTab - 1 + item.length) % item.length;\r\n while (previousTab !== focusedTab) {\r\n if (!item[previousTab].disabled) {\r\n this.tabSelectors.find((i, index) => index === previousTab).nativeElement.focus();\r\n break;\r\n }\r\n previousTab = (previousTab - 1 + item.length) % item.length;\r\n }\r\n }\r\n\r\n getPanelContent(tab: number): string {\r\n const item = this.getItems();\r\n return item[tab].panel && item[tab].panel.text ? `<p>${ StringUtils.escapeHtml(item[tab].panel.text) }</p>` : null;\r\n }\r\n}\r\n","import {\r\n ComponentFactoryResolver, ComponentRef,\r\n Injectable,\r\n TemplateRef, Type\r\n} from '@angular/core';\r\nimport { AlertOptions } from '../interfaces/alert-options';\r\nimport { OpenAlertResult } from '../interfaces/open-alert-result';\r\nimport { AlertComponent } from '../components/alert/alert.component';\r\nimport { NotificationComponent } from '../../desy-nav/components/notification/notification.component';\r\nimport { NotificationOptions } from '../../desy-nav/interfaces/notification-options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AlertService {\r\n\r\n constructor(private factoryResolver: ComponentFactoryResolver) { }\r\n\r\n public openAlert(caller: TemplateRef<any>|NotificationOptions, alertOptions: AlertOptions): Promise<OpenAlertResult> {\r\n return new Promise<OpenAlertResult>((resolve, reject) => {\r\n\r\n if (!caller) {\r\n reject('caller is required');\r\n }\r\n\r\n if (!alertOptions) {\r\n reject('alertOptions is required');\r\n }\r\n\r\n const alert = this.createAlert(alertOptions);\r\n const result: OpenAlertResult = {\r\n alert\r\n };\r\n\r\n\r\n if (caller instanceof TemplateRef) {\r\n alert.instance.caller = caller;\r\n resolve(result);\r\n } else {\r\n alert.instance.callerType = NotificationComponent;\r\n alert.instance.onCallerCreationCallback = (d, c) => {\r\n this.initNotification(d, c, caller);\r\n result.component = c;\r\n resolve(result);\r\n };\r\n }\r\n });\r\n }\r\n\r\n public closeAlert(alert: ComponentRef<AlertComponent>|AlertComponent): void {\r\n if (alert) {\r\n if (alert instanceof ComponentRef) {\r\n alert.instance.dismiss();\r\n } else {\r\n alert.dismiss();\r\n }\r\n }\r\n }\r\n\r\n public onCloseAlert(alert: ComponentRef<AlertComponent>|AlertComponent): Promise<void> {\r\n return new Promise<void>((resolve => {\r\n let a;\r\n if (alert instanceof ComponentRef) {\r\n a = alert.instance;\r\n } else {\r\n a = alert;\r\n }\r\n\r\n const subscription = a.activeChange.subscribe(() => {\r\n resolve();\r\n subscription.unsubscribe();\r\n });\r\n }));\r\n }\r\n\r\n\r\n private createAlert(alertOptions: AlertOptions): ComponentRef<AlertComponent> {\r\n const factory = this.factoryResolver.resolveComponentFactory(AlertComponent);\r\n const alert = alertOptions.place.createComponent<AlertComponent>(factory);\r\n\r\n alert.instance.active = true;\r\n if (alertOptions) {\r\n Object.assign(alert.instance, alertOptions);\r\n }\r\n\r\n this.onCloseAlert(alert).then(() => alert.destroy());\r\n\r\n return alert;\r\n }\r\n\r\n private initNotification(alert: AlertComponent, notificationRef: ComponentRef<NotificationComponent>,\r\n options: NotificationOptions): void {\r\n Object.assign(notificationRef.instance, options);\r\n if (options.isDismissible) {\r\n const subscription = notificationRef.instance.isOpenChange.subscribe(() => {\r\n this.closeAlert(alert);\r\n subscription.unsubscribe();\r\n });\r\n }\r\n }\r\n}\r\n","import {Component} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-tooltip-content',\r\n templateUrl: './tooltip-content.component.html'\r\n})\r\nexport class TooltipContentComponent extends ContentBaseComponent {\r\n}\r\n","import { ContentBaseComponent } from './../../../shared/components/content-base/content-base.component';\r\nimport { Component, Input } from '@angular/core';\r\nimport { ListboxItemData } from '../../../desy-buttons/interfaces/listbox-item-data';\r\n\r\n\r\n@Component({\r\n selector: 'desy-pagination-item-perpage',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class PaginationItemPerPageComponent extends ContentBaseComponent implements ListboxItemData {\r\n @Input() classes?: string;\r\n @Input() value: number;\r\n active: boolean;\r\n}\r\n","import { ContentBaseComponent } from './../../../shared/components/content-base/content-base.component';\r\nimport { Component, Input } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'desy-pagination-listbox-label',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class PaginationListboxLabelComponent extends ContentBaseComponent {\r\n @Input() classes?: string;\r\n\r\n}\r\n","\r\nimport { Component, ContentChildren, EventEmitter, Input, OnChanges, Output, SimpleChanges, QueryList, AfterViewInit, HostBinding } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { PaginationItemData } from '../../interfaces';\r\nimport { PaginationItemPerPageComponent } from '../pagination-item-perpage/pagination-item-perpage.component';\r\nimport { PaginationListboxLabelComponent } from '../pagination-listbox-label/pagination-listbox-label.component';\r\n\r\n\r\n@Component({\r\n selector: 'desy-pagination',\r\n templateUrl: './pagination.component.html'\r\n})\r\nexport class PaginationComponent extends AccessibilityComponent implements OnChanges, AfterViewInit { \r\n \r\n @Input() hasSelect: boolean;\r\n @Input() idPrefix: string;\r\n @Input() totalItems: number;\r\n @Input() itemsPerPage: number;\r\n @Input() hasPrevious: boolean;\r\n @Input() hasNext: boolean;\r\n @Input() previousText: string;\r\n @Input() nextText: string;\r\n @Input() hasSelectItemsPerPage: string;\r\n @Input() classes: string;\r\n\r\n @Input() @HostBinding('class') classesContainer: any;\r\n @Input() @HostBinding('attr.id') id: any;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(PaginationListboxLabelComponent) listboxLabel: PaginationListboxLabelComponent;\r\n\r\n @ContentChildren(PaginationItemPerPageComponent) listboxItems: QueryList<PaginationItemPerPageComponent>;\r\n\r\n @Input() currentPage = 1; // == currentPageindex + 1\r\n @Output() currentPageChange = new EventEmitter<number>();\r\n\r\n nPages: number;\r\n items: PaginationItemData[];\r\n\r\n defaultText: boolean = false;\r\n\r\n readonly previousIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"self-center h-2.5 w-2.5 mr-2\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M54.87 71.77a2.5 2.5 0 010-3.54L106 17.07A10 10 0 1091.89 2.93L35.43 59.39a15 15 0 000 21.22l56.46 56.46A10 10 0 10106 122.93z\" fill=\"currentColor\" /></svg>';\r\n readonly nextIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"self-center h-2.5 w-2.5 ml-2\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M34 137.07a10 10 0 010-14.14l51.13-51.16a2.5 2.5 0 000-3.54L34 17.07A10 10 0 0148.11 2.93l56.46 56.46a15 15 0 010 21.22l-56.46 56.46a10 10 0 01-14.11 0z\" fill=\"currentColor\" /></svg>';\r\n readonly prefix = '<span class=\"sr-only\">Página&nbsp;</span>';\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.checkChanges();\r\n this.classesContainer = this.classesContainer ? this.classesContainer += ' lg:flex lg:flex-wrap lg:items-center lg:gap-base' : 'lg:flex lg:flex-wrap lg:items-center lg:gap-base'\r\n this.id = this.id ? this.id : null\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if(this.itemsPerPage && this.listboxItems && this.listboxItems.length > 0){\r\n let itemActive = false;\r\n this.listboxItems.forEach((item) => {\r\n if(this.itemsPerPage == item.value){\r\n item.active = true; \r\n itemActive = true\r\n }\r\n });\r\n if(!itemActive){\r\n this.listboxItems.first.active = true;\r\n }\r\n }\r\n }\r\n\r\n checkChanges(){\r\n this.nPages = Math.ceil(this.totalItems / this.itemsPerPage);\r\n\r\n if (!this.currentPage || this.currentPage < 1 || this.currentPage > this.nPages) {\r\n this.currentPage = 1;\r\n setTimeout( () => this.currentPageChange.emit(this.currentPage));\r\n }\r\n\r\n if (!this.previousText) {\r\n this.previousText = 'Anterior';\r\n }\r\n if (!this.nextText) {\r\n this.nextText = 'Siguiente';\r\n }\r\n this.buildPages();\r\n }\r\n\r\n getSuffix(page: number): string {\r\n return page >= 0 && page * this.itemsPerPage < this.totalItems ?\r\n `<span class=\"sr-only\">:&nbsp;Página ${page + 1} con los resultados del ${page * this.itemsPerPage + 1} al ${this.getLastItemNumber(page)}</span>`\r\n : '';\r\n }\r\n\r\n getLastItemNumber(pageIndex: number): number {\r\n return Math.min((pageIndex + 1) * this.itemsPerPage, this.totalItems);\r\n }\r\n\r\n buildPages(): void {\r\n this.items = [];\r\n for (let i = 0; i < this.nPages; i++) {\r\n const item: PaginationItemData = {\r\n text: i + 1,\r\n active: ( (i + 1) === this.currentPage),\r\n routerLink: []\r\n };\r\n this.items.push(item);\r\n }\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : 'pagination-item';\r\n }\r\n\r\n getButtonId( index: number): string {\r\n return this.getIdPrefix() + (index === 0) ? '' : '-' + index;\r\n }\r\n\r\n changePage(current: number): void{\r\n this.currentPage = current;\r\n this.currentPageChange.emit(this.currentPage);\r\n for (let i = 0; i < this.items.length; i++) {\r\n const item = this.items[i];\r\n item.active = ((i + 1) === this.currentPage);\r\n }\r\n }\r\n\r\n previous(): void {\r\n if (this.currentPage > 1) {\r\n this.changePage(this.currentPage - 1);\r\n }\r\n }\r\n\r\n next(): void {\r\n if (this.currentPage < this.nPages) {\r\n this.changePage(this.currentPage + 1);\r\n }\r\n }\r\n\r\n getActiveItemText(): any {\r\n const activeItems = this.items.filter(item => item.active);\r\n return activeItems && activeItems.length > 0 ? activeItems[0].text : '';\r\n }\r\n\r\n getListboxLabel(): PaginationListboxLabelComponent {\r\n return this.listboxLabel ? this.listboxLabel : null;\r\n }\r\n\r\n getItemsPerPage(): PaginationItemPerPageComponent[] {\r\n return this.listboxItems && this.listboxItems.length > 0 ? this.listboxItems.toArray() : null;\r\n }\r\n\r\n changeItemsPerPage(event: any) {\r\n if(event && event.value){\r\n let newValue = event.value;\r\n this.itemsPerPage = newValue;\r\n this.buildPages();\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'innerHtml'\r\n})\r\nexport class InnerHtmlPipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n transform(value: string): SafeHtml {\r\n return this.sanitizer.sanitize(SecurityContext.HTML, value);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'externalHref'\r\n})\r\nexport class ExternalHrefPipe implements PipeTransform {\r\n\r\n /**\r\n * Asegura que un enlace externo sea correcto\r\n * @param href enlace\r\n */\r\n transform(href: string): string {\r\n let externalHref: string;\r\n if (href) {\r\n if (href.match('http(s)?://')) {\r\n externalHref = href;\r\n } else {\r\n externalHref = 'http://' + href;\r\n }\r\n } else {\r\n externalHref = '#';\r\n }\r\n return externalHref;\r\n }\r\n\r\n}\r\n","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[desyAttributeChange]'\r\n})\r\nexport class AttributeChangeDirective implements OnDestroy {\r\n\r\n private changes: MutationObserver;\r\n\r\n @Input() attributesToCheck: string|string[];\r\n\r\n @Output()\r\n public desyAttributeChange = new EventEmitter();\r\n\r\n @Output()\r\n public desyAttributeChangeMutation = new EventEmitter();\r\n\r\n constructor(private elementRef: ElementRef) {\r\n const element = this.elementRef.nativeElement;\r\n\r\n this.changes = new MutationObserver((mutations: MutationRecord[]) => {\r\n mutations.forEach((mutation: MutationRecord) => {\r\n if (this.attributesToCheck) {\r\n const attrs = typeof (this.attributesToCheck) === 'string' ? [this.attributesToCheck] : this.attributesToCheck;\r\n if (attrs.findIndex(v => v === mutation.attributeName) >= 0) {\r\n this.desyAttributeChange.emit(this.elementRef.nativeElement.innerHTML);\r\n this.desyAttributeChangeMutation.emit(mutation);\r\n }\r\n }\r\n });\r\n }\r\n );\r\n\r\n this.changes.observe(element, {\r\n attributes: true,\r\n childList: false,\r\n characterData: false,\r\n subtree: false\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.changes.disconnect();\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, OnChanges, SimpleChanges} from '@angular/core';\r\n@Directive({\r\n selector: '[desyInnerContent]'\r\n})\r\nexport class InnerContentDirective implements OnChanges {\r\n\r\n @Input('desyInnerContent') content: string;\r\n @Input() isHtml: boolean;\r\n @Input() deleteContentIfEmpty = true;\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.content) {\r\n if (this.isHtml) {\r\n this.el.nativeElement.innerHTML = this.content;\r\n } else {\r\n this.el.nativeElement.innerText = this.content;\r\n }\r\n } else if (this.deleteContentIfEmpty) {\r\n this.el.nativeElement.innerText = null;\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[desyClickOutside]'\r\n})\r\nexport class ClickOutsideDirective {\r\n\r\n @Input('desyClickOutside') active = true;\r\n @Output() clickOutside = new EventEmitter<void>();\r\n @Input() desyClickOutsideElem: Element;\r\n\r\n constructor(private hostElementRef: ElementRef) { }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(target): void {\r\n let clickedInside;\r\n if (this.desyClickOutsideElem) {\r\n clickedInside = this.desyClickOutsideElem.contains(target);\r\n } else {\r\n clickedInside = (this.hostElementRef.nativeElement as Element).contains(target);\r\n }\r\n if (!clickedInside && this.active) {\r\n this.clickOutside.emit();\r\n }\r\n }\r\n\r\n}\r\n","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\r\n\r\n/**\r\n * Permite comprobar cuándo se produce un cambio en el contenido de un elemento.\r\n * La propia directiva emite el html interno del elemento en formato string, mientras que desyContentChangeMutation emite los cambios.\r\n */\r\n@Directive({\r\n selector: '[desyContentChange]'\r\n})\r\nexport class ContentChangeDirective implements OnDestroy {\r\n\r\n private changes: MutationObserver;\r\n\r\n @Input() observeProperties: { attributes: boolean, childList: boolean, characterData: boolean, subtree: boolean } = {\r\n attributes: false,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n };\r\n\r\n @Output()\r\n public desyContentChange = new EventEmitter<ElementRef>();\r\n\r\n @Output()\r\n public desyContentChangeMutation = new EventEmitter();\r\n\r\n constructor(private elementRef: ElementRef) {\r\n const element = this.elementRef.nativeElement;\r\n\r\n this.changes = new MutationObserver((mutations: MutationRecord[]) => {\r\n mutations.forEach((mutation: MutationRecord) => {\r\n this.desyContentChange.emit(this.elementRef);\r\n this.desyContentChangeMutation.emit(mutation);\r\n });\r\n }\r\n );\r\n\r\n this.changes.observe(element, this.observeProperties);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.changes.disconnect();\r\n }\r\n}\r\n","import {\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n Directive,\r\n Injector,\r\n Input, OnChanges,\r\n SimpleChanges, TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport {ContentBaseComponent} from '../components';\r\n\r\n/**\r\n * Permite introducir contenido de forma dinámica en una posición determinada desde:\r\n * - component: Componente existente de tipo ContentBase\r\n * - html: texto html en formato string\r\n * - text: texto plano en formato string\r\n */\r\n@Directive({\r\n selector: '[desyCustomInnerContent]'\r\n})\r\nexport class CustomInnerContentDirective implements OnChanges {\r\n\r\n @Input() desyCustomInnerContent: { component?: any|ContentBaseComponent, template?: TemplateRef<any>, html?: string, text?: string };\r\n\r\n private factory: ComponentFactory<ContentBaseComponent>;\r\n\r\n constructor(private viewContainerRef: ViewContainerRef, private resolver: ComponentFactoryResolver, private injector: Injector) {\r\n this.factory = this.resolver.resolveComponentFactory(ContentBaseComponent);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.viewContainerRef.clear();\r\n if (this.desyCustomInnerContent.component && this.desyCustomInnerContent.component instanceof ContentBaseComponent) {\r\n\r\n // Se crea la vista embebida basándose en el contenido del ContentBase indicado.\r\n this.viewContainerRef.createEmbeddedView(this.desyCustomInnerContent.component.getContent());\r\n } else if (this.desyCustomInnerContent.template) {\r\n\r\n // Se crea la vista embebida utilizando directamente el template.\r\n this.viewContainerRef.createEmbeddedView(this.desyCustomInnerContent.template);\r\n } else if (this.desyCustomInnerContent.html) {\r\n\r\n // Se carga el contenido en un div temporal.\r\n const tmpWrapper = document.createElement('div');\r\n tmpWrapper.innerHTML = this.desyCustomInnerContent.html;\r\n\r\n // Los nodos hijos del div se proyectan dentro de un componente ContentBase.\r\n const nodeList = [];\r\n tmpWrapper.childNodes.forEach(node => nodeList.push(node));\r\n const componentRef = this.factory.create(this.injector, [ nodeList ]);\r\n\r\n // Finalmente se crea la vista embebida basándose en el contenido del ContentBase creado.\r\n // Se podría hacer con un this.viewContainerRef.createComponent(), pero así se evita el tag envolvente del componente en el DOM\r\n this.viewContainerRef.createEmbeddedView(componentRef.instance.getContent());\r\n } else if (this.desyCustomInnerContent.text) {\r\n\r\n // Se carga el contenido en un nodo de texto\r\n const textNode = document.createTextNode(this.desyCustomInnerContent.text);\r\n\r\n // El nodo de texto se proyecta dentro de un componente ContentBase\r\n const componentRef = this.factory.create(this.injector, [[ textNode ]]);\r\n\r\n // Finalmente se crea la vista embebida basándose en el contenido del ContentBase creado.\r\n // Se podría hacer con un this.viewContainerRef.createComponent(), pero así se evita el tag envolvente del componente en el DOM\r\n this.viewContainerRef.createEmbeddedView(componentRef.instance.getContent());\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n// components\r\nimport {\r\n AccessibilityComponent,\r\n ContentBaseComponent,\r\n TextOrHtmlRequiredComponent,\r\n AccessibilityAndTextOrHtmlRequiredComponent,\r\n AccessibilityAndContentRequiredComponent\r\n} from './components';\r\n\r\n// pipes\r\nimport { InnerHtmlPipe } from './pipes/inner-html.pipe';\r\nimport { MakeHtmlListPipe } from './pipes/make-html-list.pipe';\r\nimport { ExternalHrefPipe } from './pipes/external-href.pipe';\r\n\r\n// directives\r\nimport { AttributeChangeDirective } from './directives/attribute-change.directive';\r\nimport { InnerContentDirective } from './directives/inner-content.directive';\r\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\r\nimport { ContentChangeDirective } from './directives/content-change.directive';\r\nimport { CustomInnerContentDirective } from './directives/custom-inner-content.directive';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n // components\r\n AccessibilityComponent,\r\n ContentBaseComponent,\r\n TextOrHtmlRequiredComponent,\r\n AccessibilityAndTextOrHtmlRequiredComponent,\r\n AccessibilityAndContentRequiredComponent,\r\n\r\n // pipes\r\n InnerHtmlPipe,\r\n MakeHtmlListPipe,\r\n ExternalHrefPipe,\r\n\r\n // directives\r\n AttributeChangeDirective,\r\n InnerContentDirective,\r\n ClickOutsideDirective,\r\n ContentChangeDirective,\r\n CustomInnerContentDirective,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [\r\n RouterModule,\r\n\r\n // components\r\n AccessibilityComponent,\r\n ContentBaseComponent,\r\n TextOrHtmlRequiredComponent,\r\n AccessibilityAndTextOrHtmlRequiredComponent,\r\n AccessibilityAndContentRequiredComponent,\r\n\r\n // pipes\r\n InnerHtmlPipe,\r\n MakeHtmlListPipe,\r\n ExternalHrefPipe,\r\n\r\n // directives\r\n AttributeChangeDirective,\r\n InnerContentDirective,\r\n ClickOutsideDirective,\r\n ContentChangeDirective,\r\n CustomInnerContentDirective,\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Component } from '@angular/core';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'desy-template-driven-wrapper',\r\n templateUrl: './template-driven-wrapper.component.html',\r\n providers: [ { provide: ControlContainer, useExisting: NgForm, } ]\r\n})\r\nexport class TemplateDrivenWrapperComponent {\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { ContentBaseComponent } from '../../../shared/components';\r\nimport { DividerData } from '../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-divider',\r\n templateUrl: './divider.component.html'\r\n})\r\nexport class DividerComponent extends ContentBaseComponent implements DividerData {\r\n @Input() text?: string;\r\n @Input() html?: string;\r\n\r\n}\r\n","// componentes\r\nimport { NgModule } from '@angular/core';\r\nimport { IconComponent } from './components/icon/icon.component';\r\nimport { ContentComponent } from './components/content/content.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { NgxTippyModule } from 'ngx-tippy-wrapper';\r\nimport { TitleComponent } from './components/title/title.component';\r\nimport { DescriptionComponent } from './components/description/description.component';\r\nimport { DividerComponent } from './components/divider/divider.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n IconComponent,\r\n ContentComponent,\r\n DescriptionComponent,\r\n TitleComponent,\r\n DividerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n NgxTippyModule\r\n ],\r\n exports: [\r\n IconComponent,\r\n ContentComponent,\r\n DescriptionComponent,\r\n TitleComponent,\r\n DividerComponent\r\n ]\r\n})\r\n\r\nexport class DesyCommonsModule { }\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\n// componentes\r\nimport { TemplateDrivenWrapperComponent } from './components/template-driven-wrapper/template-driven-wrapper.component';\r\nimport { FormFieldComponent } from './components/form-field/form-field.component';\r\nimport { HintComponent } from './components/hint/hint.component';\r\nimport { LabelComponent } from './components/label/label.component';\r\nimport { ErrorMessageComponent } from './components/error-message/error-message.component';\r\nimport { FieldsetComponent } from './components/fieldset/fieldset.component';\r\nimport { LegendComponent } from './components/fieldset/legend/legend.component';\r\nimport { TextareaComponent } from './components/textarea/textarea.component';\r\nimport { CharacterCountComponent } from './components/character-count/character-count.component';\r\nimport { InputComponent } from './components/input/input.component';\r\nimport { SelectComponent } from './components/select/select.component';\r\nimport { FileUploadComponent } from './components/file-upload/file-upload.component';\r\nimport { InputGroupComponent } from './components/input-group/input-group.component';\r\nimport { RadiosComponent } from './components/radios/radios.component';\r\nimport { RadioItemComponent } from './components/radios/radio-item/radio-item.component';\r\nimport { CheckboxesComponent } from './components/checkboxes/checkboxes.component';\r\nimport { CheckboxItemComponent } from './components/checkboxes/checkbox-item/checkbox-item.component';\r\nimport { DateInputComponent } from './components/date-input/date-input.component';\r\nimport { SearchBarComponent} from './components/search-bar/search-bar.component';\r\nimport { OptionComponent } from './components/select/option/option.component';\r\nimport { DateInputDayComponent } from './components/date-input/date-input-day/date-input-day.component';\r\nimport { DateInputMonthComponent } from './components/date-input/date-input-month/date-input-month.component';\r\nimport { DateInputYearComponent } from './components/date-input/date-input-year/date-input-year.component';\r\n\r\n// directivas\r\nimport { ConditionDirective } from './directives/condition.directive';\r\n\r\nimport { DesyCommonsModule } from '../desy-commons/desy-commons.module';\r\nimport { InputGroupItemComponent } from './components/input-group/input-group-item/input-group-item.component';\r\nimport { DateInputItemComponent } from './components/date-input/date-input-item/date-input-item.component';\r\nimport { InputGroupDividerComponent } from './components/input-group/input-group-divider/input-group-divider.component';\r\nimport { DateInputDividerComponent } from './components/date-input/date-input-divider/date-input-divider.component';\r\nimport { InputGroupInputComponent } from './components/input-group/input-group-input/input-group-input.component';\r\nimport { InputGroupSelectComponent } from './components/input-group/input-group-select/input-group-select.component';\r\nimport { OptionGroupComponent } from './components/select/option-group/option-group.component';\r\nimport { SelectItemComponent } from './components/select/select-item/select-item.component';\r\nimport { TreeComponent } from './components/tree/tree.component';\r\nimport { TreeCheckboxComponent } from './components/tree/tree-checkbox/tree-checkbox.component';\r\nimport { TreeSubComponent } from './components/tree/tree-sub/tree-sub.component';\r\nimport { TreeItemComponent } from './components/tree/tree-item/tree-item.component';\r\nimport { TreeItemsGeneratorComponent } from './components/tree/tree-items-generator/tree-items-generator.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TemplateDrivenWrapperComponent,\r\n FormFieldComponent,\r\n HintComponent,\r\n LabelComponent,\r\n ErrorMessageComponent,\r\n FieldsetComponent,\r\n LegendComponent,\r\n TextareaComponent,\r\n CharacterCountComponent,\r\n InputComponent,\r\n SelectComponent,\r\n FileUploadComponent,\r\n InputGroupComponent,\r\n InputGroupItemComponent,\r\n DateInputItemComponent,\r\n InputGroupDividerComponent,\r\n DateInputDividerComponent,\r\n InputGroupInputComponent,\r\n InputGroupSelectComponent,\r\n RadiosComponent,\r\n RadioItemComponent,\r\n CheckboxesComponent,\r\n CheckboxItemComponent,\r\n DateInputComponent,\r\n SearchBarComponent,\r\n OptionComponent,\r\n OptionGroupComponent,\r\n SelectItemComponent,\r\n DateInputDayComponent,\r\n DateInputMonthComponent,\r\n DateInputYearComponent,\r\n TreeComponent,\r\n TreeSubComponent,\r\n TreeItemComponent,\r\n TreeCheckboxComponent,\r\n TreeItemsGeneratorComponent,\r\n\r\n ConditionDirective,\r\n\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule,\r\n DesyCommonsModule,\r\n ],\r\n exports: [\r\n HintComponent,\r\n LabelComponent,\r\n ErrorMessageComponent,\r\n FieldsetComponent,\r\n LegendComponent,\r\n TextareaComponent,\r\n CharacterCountComponent,\r\n InputComponent,\r\n SelectComponent,\r\n FileUploadComponent,\r\n InputGroupComponent,\r\n InputGroupDividerComponent,\r\n DateInputDividerComponent,\r\n InputGroupInputComponent,\r\n InputGroupSelectComponent,\r\n RadiosComponent,\r\n RadioItemComponent,\r\n CheckboxesComponent,\r\n CheckboxItemComponent,\r\n DateInputComponent,\r\n SearchBarComponent,\r\n OptionComponent,\r\n OptionGroupComponent,\r\n DateInputDayComponent,\r\n DateInputMonthComponent,\r\n DateInputYearComponent,\r\n TreeComponent,\r\n TreeSubComponent,\r\n TreeItemComponent,\r\n TreeItemsGeneratorComponent,\r\n\r\n ConditionDirective\r\n ]\r\n})\r\nexport class DesyFormsModule { }\r\n","import {\r\n AfterContentInit, ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\r\nimport {IconData} from '../../../desy-commons/interfaces';\r\nimport {TooltipContentComponent} from './tooltip-content/tooltip-content.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-tooltip',\r\n templateUrl: './tooltip.component.html'\r\n})\r\nexport class TooltipComponent extends AccessibilityComponent implements AfterContentInit, OnChanges {\r\n\r\n static readonly KEY_CODE_ESC = 'Escape';\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(IconComponent) iconComponent: IconComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TooltipContentComponent) tooltipContentComponent: TooltipContentComponent;\r\n\r\n @ViewChild('tooltipContent', { read: ElementRef, static: true }) tooltipContent: ElementRef;\r\n\r\n @Input() id: string;\r\n @Input() text: string;\r\n @Input() html: string;\r\n @Input() complex: boolean;\r\n @Input() classesTooltip: string;\r\n @Input() icon: IconData;\r\n @Input() caller: TemplateRef<any>;\r\n @Input() @HostBinding('class') classes: any;\r\n // @HostBinding('data-module') dataModule = \"c-tabs\";\r\n\r\n //Accessibility\r\n @HostBinding('attr.id') idData: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.tabindex') tabindexData: any;\r\n\r\n tippyProperties: any;\r\n hasContent = true;\r\n hasIconComponentContent = true;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.classes ? this.classes : null;\r\n this.idData = this.id ? this.id : null;\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.tabindexData = this.tabindex ? this.tabindex : null;\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n const contentTooltip = this.tooltipContent.nativeElement as HTMLElement;\r\n this.tippyProperties = {\r\n placement: 'top',\r\n inlinePositioning: true,\r\n content: contentTooltip,\r\n allowHTML: true, // Make sure you are sanitizing any user data if rendering HTML to prevent XSS attacks.\r\n trigger: 'mouseenter focus',\r\n hideOnClick: false,\r\n theme: '',\r\n plugins: [{\r\n name: 'hideOnEsc',\r\n defaultValue: true,\r\n fn({hide}): any {\r\n\r\n function onKeyDown(event: KeyboardEvent): void {\r\n if (event.key === TooltipComponent.KEY_CODE_ESC) {\r\n hide();\r\n }\r\n }\r\n\r\n return {\r\n onShow(): void {\r\n document.addEventListener('keydown', onKeyDown);\r\n },\r\n onHide(): void {\r\n document.removeEventListener('keydown', onKeyDown);\r\n },\r\n };\r\n },\r\n }],\r\n role: 'tooltip',\r\n aria: {\r\n content: this.complex ? 'describedby' : 'labelledby',\r\n },\r\n };\r\n }\r\n\r\n getIdButton(): string {\r\n return this.id + '-button';\r\n }\r\n\r\n getIdTooltip(): string {\r\n return this.id + '-tooltip';\r\n }\r\n\r\n handleEmptyContent(isEmpty: boolean): void {\r\n this.hasContent = !isEmpty;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n handleEmptyIconContent(isEmpty: boolean): void {\r\n this.hasIconComponentContent = !isEmpty;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n\r\n getMainContent(): string {\r\n let content;\r\n if (this.html) {\r\n content = this.html;\r\n } else if (this.text) {\r\n content = `<p>${this.text}</p>`;\r\n }\r\n return content;\r\n }\r\n\r\n getIconContent(icon: IconData): string {\r\n let iconContent;\r\n if (icon.html) {\r\n iconContent = this.icon.html;\r\n } else if (icon.type === 'info') {\r\n iconContent = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-primary-base\" role=\"img\" aria-label=\"Información\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm7.5 105a7.5 7.5 0 01-15 0V70a7.5 7.5 0 0115 0zM70 50a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>';\r\n } else if (icon.type === 'alert') {\r\n iconContent = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-alert-base\" role=\"img\" aria-label=\"Alerta\"><path d=\"M138.42 118.29l-55-110a15 15 0 00-26.84 0l-55 110A15 15 0 0015 140h110a15 15 0 0013.42-21.71zM62.5 50a7.5 7.5 0 0115 0v30a7.5 7.5 0 01-15 0zm7.5 70a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>';\r\n } else {\r\n iconContent = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-primary-base\" role=\"img\" aria-label=\"Ayuda\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm0 117.51a10 10 0 1110-10 10 10 0 01-10 10zm9.17-39.08a2.5 2.5 0 00-1.67 2.36v1.71a7.5 7.5 0 01-15 0v-10A7.5 7.5 0 0170 65a12.5 12.5 0 10-12.5-12.5 7.5 7.5 0 01-15 0 27.5 27.5 0 1136.67 25.93z\" fill=\"currentColor\"/></svg>';\r\n }\r\n return iconContent;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '../shared/shared.module';\r\n\r\nimport { AlertComponent } from './components/alert/alert.component';\r\nimport { AccordionComponent } from './components/accordion/accordion.component';\r\nimport { AccordionHeaderComponent } from './components/accordion/accordion-header/accordion-header.component';\r\nimport { AccordionHistoryComponent } from './components/accordion-history/accordion-history.component';\r\nimport { AccordionHistoryItemComponent } from './components/accordion-history/accordion-history-item/accordion-history-item.component';\r\nimport { AccordionItemComponent } from './components/accordion/accordion-item/accordion-item.component';\r\nimport { SpinnerComponent } from './components/spinner/spinner.component';\r\nimport { DetailsComponent } from './components/details/details.component';\r\nimport { CollapsibleComponent } from './components/collapsible/collapsible.component';\r\nimport { DescriptionListComponent } from './components/description-list/description-list.component';\r\nimport { ItemComponent } from './components/item/item.component';\r\nimport { MediaObjectComponent } from './components/media-object/media-object.component';\r\nimport { StatusComponent } from './components/status/status.component';\r\nimport { StatusItemComponent } from './components/status-item/status-item.component';\r\nimport { DesyFormsModule } from '../desy-forms/desy-forms.module';\r\nimport { TabsComponent } from './components/tabs/tabs.component';\r\nimport { TooltipComponent } from './components/tooltip/tooltip.component';\r\nimport { DesyCommonsModule } from '../desy-commons/desy-commons.module';\r\nimport { NgxTippyModule } from 'ngx-tippy-wrapper';\r\nimport { TooltipContentComponent } from './components/tooltip/tooltip-content/tooltip-content.component';\r\nimport { DescriptionItemComponent } from './components/description-list/description-item/description-item.component';\r\nimport { TermComponent } from './components/description-list/term/term.component';\r\nimport { DefinitionComponent } from './components/description-list/definition/definition.component';\r\nimport { ItemContentBottomComponent } from './components/item/item-content-bottom/item-content-bottom.component';\r\nimport { ItemContentRightComponent } from './components/item/item-content-right/item-content-right.component';\r\nimport { ItemItemComponent } from './components/item/item-item/item-item.component';\r\nimport { PanelComponent } from './components/tabs/panel/panel.component';\r\nimport { TabItemComponent } from './components/tabs/tab-item/tab-item.component';\r\nimport { MediaObjectFigureComponent } from './components/media-object/media-object-figure/media-object-figure.component';\r\nimport { AccordionItemShowButtonComponent } from './components/accordion-history/accordion-item-show-button/accordion-item-show-button.component';\r\nimport { AccordionItemHideButtonComponent } from './components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AlertComponent,\r\n AccordionComponent,\r\n AccordionHeaderComponent,\r\n AccordionHistoryComponent,\r\n AccordionHistoryItemComponent,\r\n AccordionItemShowButtonComponent,\r\n AccordionItemHideButtonComponent,\r\n AccordionItemComponent,\r\n SpinnerComponent,\r\n DetailsComponent,\r\n CollapsibleComponent,\r\n DescriptionListComponent,\r\n DescriptionItemComponent,\r\n TermComponent,\r\n DefinitionComponent,\r\n ItemComponent,\r\n ItemContentBottomComponent,\r\n ItemContentRightComponent,\r\n ItemItemComponent,\r\n MediaObjectComponent,\r\n StatusComponent,\r\n StatusItemComponent,\r\n TabsComponent,\r\n TooltipComponent,\r\n TooltipContentComponent,\r\n PanelComponent,\r\n TabItemComponent,\r\n MediaObjectFigureComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n DesyFormsModule,\r\n DesyCommonsModule,\r\n NgxTippyModule\r\n ],\r\n exports: [\r\n AlertComponent,\r\n AccordionComponent,\r\n AccordionHeaderComponent,\r\n AccordionHistoryComponent,\r\n AccordionHistoryItemComponent,\r\n AccordionItemShowButtonComponent,\r\n AccordionItemHideButtonComponent,\r\n AccordionItemComponent,\r\n SpinnerComponent,\r\n DetailsComponent,\r\n CollapsibleComponent,\r\n DescriptionListComponent,\r\n DescriptionItemComponent,\r\n TermComponent,\r\n DefinitionComponent,\r\n ItemComponent,\r\n ItemContentBottomComponent,\r\n ItemContentRightComponent,\r\n ItemItemComponent,\r\n MediaObjectComponent,\r\n StatusComponent,\r\n StatusItemComponent,\r\n TabsComponent,\r\n TooltipComponent,\r\n TooltipContentComponent,\r\n PanelComponent,\r\n TabItemComponent,\r\n MediaObjectFigureComponent,\r\n ]\r\n})\r\nexport class DesyViewsModule { }\r\n","import { Component, Input, ViewChild } from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-toggle-off-state',\r\n templateUrl: './toggle-off-state.component.html'\r\n})\r\nexport class ToggleOffStateComponent extends AccessibilityComponent {\r\n \r\n @ViewChild('contentTemplateOffState', { static: true }) content;\r\n\r\n @Input() classes: string;\r\n\r\n}","import { Component, Input, ViewChild } from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-toggle-on-state',\r\n templateUrl: './toggle-on-state.component.html'\r\n})\r\nexport class ToggleOnStateComponent extends AccessibilityComponent {\r\n\r\n @ViewChild('contentTemplateOnState', { static: true }) content;\r\n\r\n @Input() classes: string;\r\n\r\n}\r\n","import { Component, ContentChildren, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { ToggleOffStateComponent } from './toggle-off-state/toggle-off-state.component';\r\nimport { ToggleOnStateComponent } from './toggle-on-state/toggle-on-state.component';\r\n\r\n@Component({\r\n selector: 'desy-toggle',\r\n templateUrl: './toggle.component.html'\r\n})\r\nexport class ToggleComponent extends AccessibilityComponent {\r\n \r\n @Input() id: string;\r\n @Input() isSwitch: boolean;\r\n @Input() pressed: boolean;\r\n @Input() classes: string;\r\n @Input() isExpandible: boolean;\r\n\r\n @Input() @HostBinding('class.relative') cfg = true;\r\n \r\n @Output() clickEvent = new EventEmitter();\r\n @Output() pressedChange: EventEmitter<any> = new EventEmitter<any>();\r\n \r\n @DesyContentChild()\r\n @ContentChildren(ToggleOnStateComponent) contentTemplateOnState: ToggleOnStateComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(ToggleOffStateComponent) contentTemplateOffState: ToggleOffStateComponent;\r\n\r\n onClick(event: any): void {\r\n this.pressed = !this.pressed;\r\n this.pressedChange.emit(this.pressed);\r\n this.clickEvent.emit(event);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DesyViewsModule } from '../desy-views/desy-views.module';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { NgxTippyModule } from 'ngx-tippy-wrapper';\r\n\r\n// componentes\r\nimport { ButtonComponent } from './components/button/button.component';\r\nimport { ButtonLoaderComponent } from './components/button-loader/button-loader.component';\r\nimport { PillComponent } from './components/pill/pill.component';\r\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\r\nimport { ListboxComponent } from './components/listbox/listbox.component';\r\nimport { ListboxItemComponent } from './components/listbox/listbox-item/listbox-item.component';\r\nimport { ListboxLabelComponent } from './components/listbox/listbox-label/listbox-label.component';\r\nimport { ToggleComponent } from './components/toggle/toggle.component';\r\nimport { ToggleOnStateComponent } from './components/toggle/toggle-on-state/toggle-on-state.component';\r\nimport { ToggleOffStateComponent } from './components/toggle/toggle-off-state/toggle-off-state.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ButtonComponent,\r\n ButtonLoaderComponent,\r\n DropdownComponent,\r\n ListboxComponent,\r\n PillComponent,\r\n\r\n ListboxItemComponent,\r\n ListboxLabelComponent,\r\n ToggleComponent,\r\n ToggleOnStateComponent,\r\n ToggleOffStateComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n DesyViewsModule,\r\n NgxTippyModule\r\n ],\r\n exports: [\r\n ButtonComponent,\r\n ButtonLoaderComponent,\r\n DropdownComponent,\r\n ListboxComponent,\r\n PillComponent,\r\n\r\n ListboxItemComponent,\r\n ListboxLabelComponent,\r\n ToggleComponent,\r\n ToggleOnStateComponent,\r\n ToggleOffStateComponent\r\n ]\r\n})\r\nexport class DesyButtonsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DesyButtonsModule } from '../desy-buttons/desy-buttons.module';\r\n\r\n// components\r\nimport { ModalComponent } from './components/modal/modal.component';\r\nimport { ModalButtonPrimaryComponent } from './components/modal/modal-button-primary/modal-button-primary.component';\r\nimport { ModalButtonSecondaryComponent } from './components/modal/modal-button-secondary/modal-button-secondary.component';\r\nimport { DialogComponent } from './components/dialog/dialog.component';\r\nimport { ModalButtonLoaderPrimaryComponent } from './components/modal/modal-button-loader-primary/modal-button-loader-primary.component';\r\nimport { ModalButtonLoaderSecondaryComponent } from './components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ModalComponent,\r\n ModalButtonPrimaryComponent,\r\n ModalButtonSecondaryComponent,\r\n ModalButtonLoaderPrimaryComponent,\r\n ModalButtonLoaderSecondaryComponent,\r\n DialogComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n A11yModule,\r\n SharedModule,\r\n DesyButtonsModule\r\n ],\r\n exports: [\r\n ModalComponent,\r\n ModalButtonPrimaryComponent,\r\n ModalButtonSecondaryComponent,\r\n ModalButtonLoaderPrimaryComponent,\r\n ModalButtonLoaderSecondaryComponent,\r\n DialogComponent\r\n ],\r\n})\r\nexport class DesyModalsModule { }\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DividerData } from '../../../../../desy-commons/interfaces';\r\nimport { ContentBaseComponent } from '../../../../../shared/components';\r\nimport { MenuNavigationItemSubItem } from '../../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-menu-navigation-subitem',\r\n templateUrl: './menu-navigation-subitem.component.html'\r\n})\r\nexport class MenuNavigationSubitemComponent extends ContentBaseComponent implements MenuNavigationItemSubItem {\r\n \r\n @Input() href?: string;\r\n @Input() target?: string;\r\n @Input() text: string;\r\n @Input() html: string;\r\n @Input() id?: string;\r\n @Input() expanded?: boolean;\r\n @Input() divider?: DividerData;\r\n @Input() disabled?: boolean;\r\n @Input() sub?: MenuNavigationItemSubItem[];\r\n @Input() classes?: string;\r\n @Input() active?: boolean;\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n @Output() checkedChange = new EventEmitter<boolean>();\r\n\r\n}\r\n","import { Component, ContentChildren, EventEmitter, Input, Output, QueryList } from '@angular/core';\r\nimport { HintData } from '../../../../../desy-forms/interfaces/hint-data';\r\nimport { DividerData } from '../../../../../desy-commons/interfaces';\r\nimport { ContentBaseComponent } from '../../../../../shared/components/content-base/content-base.component';\r\nimport { MenuNavigationItem, MenuNavigationItemSubItem } from '../../../../interfaces';\r\nimport { MenuNavigationSubitemComponent } from '../menu-navigation-subitem/menu-navigation-subitem.component';\r\n\r\n@Component({\r\n selector: 'desy-menu-navigation-item',\r\n templateUrl: './menu-navigation-item.component.html'\r\n})\r\nexport class MenuNavigationItemComponent extends ContentBaseComponent implements MenuNavigationItem {\r\n \r\n @Input() href?: string;\r\n @Input() target?: string;\r\n @Input() text: string;\r\n @Input() html: string;\r\n @Input() id?: string;\r\n @Input() expanded?: boolean;\r\n @Input() divider?: DividerData;\r\n @Input() disabled?: boolean;\r\n @Input() sub?: MenuNavigationItemSubItem;\r\n @Input() classes?: string;\r\n\r\n @Input() title?: string;\r\n @Input() active?: boolean;\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n\r\n @ContentChildren(MenuNavigationSubitemComponent) subItems: QueryList<MenuNavigationSubitemComponent>;\r\n\r\n public getSubItems(): MenuNavigationSubitemComponent[] {\r\n return this.subItems.toArray();\r\n }\r\n\r\n}\r\n","import { AfterViewInit, \r\n ChangeDetectorRef, \r\n Component, \r\n ContentChildren, \r\n ElementRef, \r\n EventEmitter, \r\n HostBinding, \r\n Input, \r\n OnChanges, \r\n Output, \r\n QueryList, \r\n SimpleChanges,\r\n ViewChild, \r\n ViewChildren } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { MenuNavigationItemSubItem, MenuNavigationItemSubItemSubItem } from '../../interfaces';\r\nimport { MenuNavigationItem } from '../../interfaces/menu-navigation';\r\nimport { MenubaritemDirective } from '../menubar/directives/menubaritem.directive';\r\nimport { MenuNavigationItemComponent } from './components/menu-navigation-item/menu-navigation-item.component';\r\nimport { MenuNavigationSubitemComponent } from './components/menu-navigation-subitem/menu-navigation-subitem.component';\r\n\r\n@Component({\r\n selector: 'desy-menu-navigation',\r\n templateUrl: './menu-navigation.component.html'\r\n})\r\nexport class MenuNavigationComponent extends AccessibilityComponent implements OnChanges, AfterViewInit{\r\n\r\n @Input() idPrefix: string;\r\n @Input() items: MenuNavigationItem[];\r\n @Output() itemsChange = new EventEmitter<MenuNavigationItem[]>();\r\n @Output() activeItemChange = new EventEmitter<MenuNavigationItem>();\r\n @Output() activeSubItemChange = new EventEmitter<MenuNavigationItemSubItem | MenuNavigationItemSubItemSubItem>();\r\n\r\n @ViewChild('menunavigation', { read: ElementRef }) menunavigation: ElementRef;\r\n @ViewChildren(MenubaritemDirective) menuItems: QueryList<MenubaritemDirective>;\r\n @ContentChildren(MenuNavigationItemComponent) itemComponentList: QueryList<MenuNavigationItemComponent>;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n @HostBinding('class.c-menu-navigation') cfg = true\r\n @Input() @HostBinding('attr.id') id: any;\r\n\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.aria-modal') ariaModalData: any;\r\n\r\n menuData: any[];\r\n viewInit = false;\r\n isFocused: boolean;\r\n currentFocusItemIndex = 0;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes?: SimpleChanges): void {\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\r\n if (this.viewInit) {\r\n this.checkChanges();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.viewInit = true;\r\n this.checkChanges();\r\n }\r\n\r\n checkChanges(): void {\r\n if (!this.menuItems) {\r\n return;\r\n }\r\n \r\n this.menuData = [];\r\n this.getItems().forEach((_, index) => {\r\n const itemData = {\r\n open: false,\r\n currentFocusSubItemIndex: 0,\r\n currentFocusSubSubItemIndex: 0,\r\n menuItem: this.menuItems.toArray()[index]\r\n };\r\n this.menuData.push(itemData);\r\n });\r\n\r\n if (this.viewInit) {\r\n this.checkRequired();\r\n }\r\n\r\n\r\n const lastCurrentFocusItemIndex = this.currentFocusItemIndex;\r\n const items = this.getItems();\r\n if (items) {\r\n while (!this.isItemFocusable(this.currentFocusItemIndex % items.length)) {\r\n this.currentFocusItemIndex = (this.currentFocusItemIndex + items.length + 1) % items.length;\r\n if (this.currentFocusItemIndex === lastCurrentFocusItemIndex) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Eventos\r\n */\r\n\r\n handleMenuFocusIn(): void {\r\n this.isFocused = true;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n handleMenuFocusOut(event): void {\r\n if (!this.menunavigation.nativeElement.contains(event.relatedTarget)) {\r\n this.closeMenu();\r\n }\r\n this.isFocused = false;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n handleMenuItemClick(event, itemIndex: number): void {\r\n if (this.hasPopupMenu(itemIndex)) {\r\n event.preventDefault();\r\n const isOpen = this.menuData[itemIndex].open;\r\n this.closeMenu();\r\n if (!isOpen) {\r\n this.openMenu(itemIndex);\r\n }\r\n } else {\r\n this.activateMenuItem(itemIndex);\r\n }\r\n }\r\n\r\n handleMenuItemKeydown(event: KeyboardEvent, itemIndex: number): void {\r\n switch (event.key) {\r\n case 'Enter':\r\n case ' ':\r\n case 'ArrowDown':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n setTimeout(() => this.focusFirstSubItem(itemIndex));\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n\r\n case 'Escape':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu(itemIndex);\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n this.focusNextAvailableItem(itemIndex, -1);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowRight':\r\n this.focusNextAvailableItem(itemIndex, +1);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowUp':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n setTimeout(() => this.focusLastSubItem(itemIndex));\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Home':\r\n case 'PageUp':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu();\r\n }\r\n this.focusFirstItem();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'End':\r\n case 'PageDown':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu();\r\n }\r\n this.focusLastItem();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n default:\r\n if (this.isPrintableChar(event.key)) {\r\n this.focusItemByFirstChar(event.key);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n handleMenuItemMouseOver(itemIndex: number): void {\r\n this.focusItem(itemIndex, true);\r\n }\r\n\r\n handlePopupMenuItemClick(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n this.focusItem(itemIndex);\r\n this.closeMenu(itemIndex);\r\n }\r\n\r\n handlePopupMenuItemKeydown(event: KeyboardEvent, itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n const currentSubIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\r\n const currentSubSubIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\r\n const items = this.getItems();\r\n switch (event.key) {\r\n case ' ':\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n if (this.mustCloseAfterSelectPopupItem(itemIndex, subItemIndex, subSubItemIndex)) {\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Enter':\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Escape':\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowUp':\r\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, -1);\r\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength - 1) % listLength);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowDown':\r\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, +1);\r\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength + 1) % listLength);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n this.closeMenu(itemIndex);\r\n this.focusItem((itemIndex + items.length - 1) % items.length);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowRight':\r\n this.closeMenu(itemIndex);\r\n this.focusItem((itemIndex + items.length + 1) % items.length);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Home':\r\n case 'PageUp':\r\n this.focusFirstSubItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'End':\r\n case 'PageDown':\r\n this.focusLastSubItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Tab':\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n break;\r\n\r\n default:\r\n if (this.isPrintableChar(event.key)) {\r\n this.focusSubItemByFirstChar(itemIndex, event.key);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n handlePopupMenuItemMouseOver(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n this.focusSubItem(itemIndex, subItemIndex, subSubItemIndex);\r\n }\r\n\r\n /*\r\n * Comunes\r\n */\r\n\r\n checkRequired(): void {\r\n const items = this.getItems();\r\n }\r\n\r\n\r\n activateMenuItem(itemIndex: number): void {\r\n const items = this.getItems();\r\n this.activeItemChange.emit(items[itemIndex] as MenuNavigationItem);\r\n if (items[itemIndex] instanceof MenuNavigationItemComponent) {\r\n (items[itemIndex] as MenuNavigationItemComponent).selected.emit();\r\n }\r\n }\r\n\r\n activatePopupMenuItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenuNavigationItemSubItem|MenuNavigationItemSubItemSubItem = subItems[subItemIndex]; \r\n\r\n this.itemsChange.emit(items);\r\n this.activeSubItemChange.emit(item as MenuNavigationItem);\r\n if (item instanceof MenuNavigationSubitemComponent) {\r\n item.selected.emit();\r\n }\r\n }\r\n\r\n mustCloseAfterSelectPopupItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenuNavigationItemSubItem|MenuNavigationItemSubItemSubItem = subItems[subItemIndex];\r\n\r\n return item.role !== 'menuitemcheckbox' && item.role !== 'menuitemradio';\r\n }\r\n\r\n openMenu(itemIndex: number): void {\r\n const wasOpened = this.menuData[itemIndex].open;\r\n this.menuData[itemIndex].open = true;\r\n if (wasOpened) {\r\n this.activateMenuItem(itemIndex);\r\n }\r\n }\r\n\r\n closeMenu(itemIndex?: number): void {\r\n if (itemIndex !== null && itemIndex !== undefined) {\r\n this.menuData[itemIndex].open = false;\r\n } else {\r\n this.menuData.forEach(item => item.open = false);\r\n }\r\n }\r\n\r\n hasPopupMenu(itemIndex: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n return items[itemIndex].sub && subItems && subItems.length > 0;\r\n }\r\n\r\n private isPrintableChar(str: string): boolean {\r\n return str.length === 1 && !!str.match(/\\S/);\r\n }\r\n\r\n \r\n\r\n /*\r\n * Comunes - focus\r\n */\r\n\r\n focusItem(itemIndex: number, hover?: boolean): void {\r\n const hasFocus = this.menunavigation.nativeElement.contains(document.activeElement);\r\n const isOpen = this.menuData[this.currentFocusItemIndex].open;\r\n\r\n if (!hover || hasFocus) {\r\n this.menuData[itemIndex].menuItem.link.nativeElement.focus();\r\n }\r\n\r\n this.closeMenu();\r\n if (isOpen && this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n }\r\n\r\n this.currentFocusItemIndex = itemIndex;\r\n }\r\n\r\n focusNextAvailableItem(fromItemIndex: number, step: number): void {\r\n let nextItem = fromItemIndex;\r\n const items = this.getItems();\r\n do {\r\n nextItem = (nextItem + items.length + step) % items.length;\r\n } while (!this.isItemFocusable(nextItem) && nextItem !== fromItemIndex);\r\n\r\n if (nextItem !== fromItemIndex) {\r\n this.focusItem(nextItem);\r\n }\r\n }\r\n\r\n focusFirstItem(): void {\r\n if (this.isItemFocusable(0)) {\r\n this.focusItem(0);\r\n } else {\r\n this.focusNextAvailableItem(0, +1);\r\n }\r\n }\r\n\r\n focusLastItem(): void {\r\n const items = this.getItems();\r\n if (this.isItemFocusable(items.length - 1)) {\r\n this.focusItem(items.length - 1);\r\n } else {\r\n this.focusNextAvailableItem(items.length - 1, -1);\r\n }\r\n }\r\n\r\n isItemFocusable(itemIndex: number): boolean {\r\n return !this.getItems()[itemIndex].disabled;\r\n }\r\n\r\n focusItemByFirstChar(char: string): void {\r\n const itemContents: string[] = this.menuItems.map(menuItem => menuItem.itemContentWrapper.nativeElement.textContent);\r\n let index = this.currentFocusItemIndex;\r\n let foundIndex = -1;\r\n do {\r\n index = (index + itemContents.length + 1) % itemContents.length;\r\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\r\n && this.isItemFocusable(index)) {\r\n foundIndex = index;\r\n }\r\n } while (foundIndex === -1 && index !== this.currentFocusItemIndex);\r\n\r\n if (foundIndex >= 0) {\r\n this.focusItem(foundIndex);\r\n }\r\n }\r\n\r\n focusSubItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n if (this.menuData[itemIndex].menuItem.popupMenuItems.length > 0) {\r\n const menuDataIndex = subItemIndex;\r\n this.menuData[itemIndex].currentFocusSubItemIndex = subItemIndex;\r\n this.menuData[itemIndex].currentFocusSubSubItemIndex = subSubItemIndex;\r\n const elem = this.menuData[itemIndex].menuItem.popupMenuItems.toArray()[menuDataIndex].nativeElement;\r\n if (elem) {\r\n elem.focus();\r\n } else {\r\n console.error('No subitem to focus');\r\n }\r\n } else {\r\n console.error('No subitems');\r\n }\r\n }\r\n\r\n focusNextAvailableSubItem(itemIndex: number, fromItemSubIndex: number, fromItemSubSubIndex: number, step: number): void {\r\n let nextSubIndex = fromItemSubIndex;\r\n let nextSubSubIndex = fromItemSubSubIndex;\r\n let allSubItemsChecked;\r\n const items = this.getItems();\r\n do {\r\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step);\r\n nextSubIndex = nextIndexes.subIndex;\r\n nextSubSubIndex = nextIndexes.subSubIndex;\r\n allSubItemsChecked = (fromItemSubIndex === nextSubIndex && fromItemSubSubIndex === nextSubSubIndex);\r\n } while (!this.isSubItemFocusable(itemIndex, nextSubIndex, nextSubSubIndex) && !allSubItemsChecked);\r\n\r\n if (!allSubItemsChecked) {\r\n this.focusSubItem(itemIndex, nextSubIndex, nextSubSubIndex);\r\n }\r\n }\r\n\r\n focusFirstSubItem(itemIndex: number): void {\r\n let firstSubSubItem = null;\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n if (subItems && subItems.length > 0) {\r\n firstSubSubItem = 0;\r\n }\r\n\r\n if (this.isSubItemFocusable(itemIndex, 0, firstSubSubItem)) {\r\n this.focusSubItem(itemIndex, 0, firstSubSubItem);\r\n } else {\r\n this.focusNextAvailableSubItem(itemIndex, 0, firstSubSubItem, +1);\r\n }\r\n }\r\n\r\n focusLastSubItem(itemIndex: number): void {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n const lastItemIndex = subItems.length - 1;\r\n const lastItem = subItems[lastItemIndex];\r\n let lastSubSubItem = null;\r\n\r\n if (this.isSubItemFocusable(itemIndex, lastItemIndex, lastSubSubItem)) {\r\n this.focusSubItem(itemIndex, lastItemIndex, lastSubSubItem);\r\n } else {\r\n this.focusNextAvailableSubItem(itemIndex, lastItemIndex, lastSubSubItem, -1);\r\n }\r\n }\r\n\r\n isSubItemFocusable(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenuNavigationItemSubItem|MenuNavigationItemSubItemSubItem = subItems[subItemIndex];\r\n\r\n let isFocusable = false;\r\n if (item.role !== 'separator' && item.role !== 'none') {\r\n isFocusable = true;\r\n }\r\n return isFocusable;\r\n }\r\n\r\n focusSubItemByFirstChar(itemIndex: number, char: string): void {\r\n const itemContents: string[] = this.menuItems.toArray()[itemIndex].popupMenuItems.map(menuItem => menuItem.nativeElement.textContent);\r\n let subItemIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\r\n let subSubItemIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\r\n let foundSubIndex = -1;\r\n let foundSubSubIndex = null;\r\n let allSubItemsChecked = false;\r\n const items = this.getItems();\r\n do {\r\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, subItemIndex, subSubItemIndex, +1);\r\n subItemIndex = nextIndexes.subIndex;\r\n subSubItemIndex = nextIndexes.subSubIndex;\r\n const index = subItemIndex;\r\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\r\n && this.isSubItemFocusable(itemIndex, subItemIndex, subSubItemIndex)) {\r\n foundSubIndex = subItemIndex;\r\n foundSubSubIndex = subSubItemIndex;\r\n }\r\n allSubItemsChecked = (this.menuData[itemIndex].currentFocusSubItemIndex === subItemIndex\r\n && this.menuData[itemIndex].currentFocusSubSubItemIndex === subSubItemIndex);\r\n } while (foundSubIndex === -1 && !allSubItemsChecked);\r\n\r\n if (foundSubIndex >= 0) {\r\n this.focusSubItem(itemIndex, foundSubIndex, foundSubSubIndex);\r\n }\r\n }\r\n\r\n /*\r\n * Metodos para facilitar contenido\r\n */\r\n\r\n getItems(): MenuNavigationItem[]|MenuNavigationItemComponent[] {\r\n let items;\r\n if (this.itemComponentList && this.itemComponentList.length > 0) {\r\n items = this.itemComponentList.toArray();\r\n } else {\r\n items = this.items;\r\n }\r\n return items;\r\n }\r\n\r\n getItemSubitems(item: MenuNavigationItem|MenuNavigationItemComponent): MenuNavigationItemSubItem[]|MenuNavigationSubitemComponent[] {\r\n let subItems = [];\r\n if (item instanceof MenuNavigationItemComponent){\r\n subItems = item.getSubItems();\r\n }\r\n\r\n if (!subItems || subItems.length === 0) {\r\n subItems = item.sub ? item.sub.items : [];\r\n }\r\n return subItems;\r\n }\r\n\r\n getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step): { subIndex: number, subSubIndex?: number} {\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n\r\n let checkNextSubItem = true;\r\n if (checkNextSubItem) {\r\n nextSubIndex = (nextSubIndex + step + subItems.length) % subItems.length;\r\n } \r\n return {subIndex: nextSubIndex, subSubIndex: nextSubSubIndex};\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.id + 'menunavigation-item';\r\n }\r\n\r\n getItemId(item, index: number): string {\r\n let id: string;\r\n if (item) {\r\n if (item.id) {\r\n id = item.id;\r\n } else {\r\n id = index === 0 ? this.getIdPrefix() : `${this.getIdPrefix()}-${index}`;\r\n }\r\n }\r\n return id;\r\n }\r\n\r\n getPopupStyle(itemIndex: number): object {\r\n let style = {};\r\n if (this.menuData && itemIndex < this.menuData.length) {\r\n const menuItem = this.menuData[itemIndex].menuItem;\r\n const rect = menuItem.link.nativeElement.getBoundingClientRect();\r\n if (this.menuData[itemIndex].open) {\r\n style = {\r\n position: 'absolute',\r\n top: '0px',\r\n left: '0px',\r\n zIndex: 100,\r\n display: 'block'\r\n };\r\n } else {\r\n style = {\r\n zIndex: 0,\r\n display: 'none'\r\n };\r\n }\r\n }\r\n\r\n return style;\r\n }\r\n\r\n getSubItemId(item, index: number, parentId: string): string {\r\n let id: string;\r\n if (item) {\r\n if (item.id) {\r\n id = item.id;\r\n } else {\r\n id = index === 0 ? `sub-${parentId}` : `sub-${parentId}-${index}`;\r\n }\r\n }\r\n return id;\r\n }\r\n \r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { DesyCommonsModule } from '../desy-commons/desy-commons.module';\r\n\r\nimport { BreadcrumbsComponent } from './components/breadcrumbs/breadcrumbs.component';\r\nimport { BreadcrumbsItemComponent } from './components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\nimport { ErrorSummaryComponent } from './components/error-summary/error-summary.component';\r\nimport { ErrorSummaryItemComponent } from './components/error-summary/error-summary-item/error-summary-item.component';\r\nimport { MenuHorizontalComponent } from './components/menu-horizontal/menu-horizontal.component';\r\nimport { MenuHorizontalItemComponent } from './components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component';\r\nimport { MenuVerticalComponent } from './components/menu-vertical/menu-vertical.component';\r\nimport { NavComponent } from './components/nav/nav.component';\r\nimport { SkipLinkComponent } from './components/skip-link/skip-link.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { HeaderSubnavComponent } from './components/header/header-subnav/header-subnav.component';\r\nimport { HeaderNavigationComponent } from './components/header/header-navigation/header-navigation.component';\r\nimport { HeaderDropdownComponent } from './components/header/header-dropdown/header-dropdown.component';\r\nimport { HeaderOffcanvasButtonComponent } from './components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component';\r\nimport { HeaderOffcanvasComponent } from './components/header/header-offcanvas/header-offcanvas.component';\r\nimport { NotificationComponent } from './components/notification/notification.component';\r\nimport { NotificationItemComponent } from './components/notification/notification-item/notification-item.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { MenubarComponent } from './components/menubar/menubar.component';\r\nimport { MenubaritemDirective } from './components/menubar/directives/menubaritem.directive';\r\nimport { MenubarItemComponent } from './components/menubar/components/menubar-item/menubar-item.component';\r\nimport { MenubarSubitemComponent } from './components/menubar/components/menubar-subitem/menubar-subitem.component';\r\nimport { MenubarSubsubitemComponent } from './components/menubar/components/menubar-subsubitem/menubar-subsubitem.component';\r\nimport { MenubarLabelComponent } from './components/menubar/components/menubar-label/menubar-label.component';\r\nimport { NavItemComponent } from './components/nav/nav-item/nav-item.component';\r\nimport { MenuVerticalItemComponent } from './components/menu-vertical/menu-vertical-item/menu-vertical-item.component';\r\nimport { MenuVerticalItemSubComponent } from './components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component';\r\nimport { MenuVerticalItemSubItemComponent } from './components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component';\r\nimport { HeaderOffcanvasCloseButtonComponent } from './components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component';\r\nimport { HeaderNavigationItemComponent } from './components/header/header-navigation/header-navigation-item/header-navigation-item.component';\r\nimport { FooterMetaComponent } from './components/footer/footer-meta/footer-meta.component';\r\nimport { FooterMetaItemComponent } from './components/footer/footer-meta/footer-meta-item/footer-meta-item.component';\r\nimport { FooterNavigationComponent } from './components/footer/footer-navigation/footer-navigation.component';\r\nimport { FooterNavigationItemComponent } from './components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component';\r\nimport { DesyButtonsModule } from '../desy-buttons/desy-buttons.module';\r\nimport { MenuNavigationComponent } from './components/menu-navigation/menu-navigation.component';\r\nimport { MenuNavigationItemComponent } from './components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component';\r\nimport { MenuNavigationSubitemComponent } from './components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n BreadcrumbsComponent,\r\n BreadcrumbsItemComponent,\r\n ErrorSummaryComponent,\r\n ErrorSummaryItemComponent,\r\n FooterComponent,\r\n FooterMetaComponent,\r\n FooterMetaItemComponent,\r\n FooterNavigationComponent,\r\n FooterNavigationItemComponent,\r\n HeaderComponent,\r\n HeaderSubnavComponent,\r\n HeaderNavigationComponent,\r\n HeaderNavigationItemComponent,\r\n HeaderDropdownComponent,\r\n HeaderOffcanvasButtonComponent,\r\n HeaderOffcanvasComponent,\r\n HeaderOffcanvasCloseButtonComponent,\r\n MenuHorizontalComponent,\r\n MenuHorizontalItemComponent,\r\n MenuVerticalComponent,\r\n MenuVerticalItemComponent,\r\n MenuVerticalItemSubComponent,\r\n MenuVerticalItemSubItemComponent,\r\n MenubarComponent,\r\n MenubarLabelComponent,\r\n MenubarItemComponent,\r\n MenubarSubitemComponent,\r\n MenubarSubsubitemComponent,\r\n NavComponent,\r\n NotificationComponent,\r\n NotificationItemComponent,\r\n SkipLinkComponent,\r\n NavItemComponent,\r\n MenuNavigationComponent,\r\n\r\n MenubaritemDirective,\r\n\r\n MenuNavigationItemComponent,\r\n MenuNavigationSubitemComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n DesyCommonsModule,\r\n DesyButtonsModule\r\n ],\r\n exports: [\r\n BreadcrumbsComponent,\r\n BreadcrumbsItemComponent,\r\n ErrorSummaryComponent,\r\n ErrorSummaryItemComponent,\r\n FooterComponent,\r\n FooterMetaComponent,\r\n FooterMetaItemComponent,\r\n FooterNavigationComponent,\r\n FooterNavigationItemComponent,\r\n HeaderComponent,\r\n HeaderSubnavComponent,\r\n HeaderNavigationComponent,\r\n HeaderNavigationItemComponent,\r\n HeaderDropdownComponent,\r\n HeaderOffcanvasComponent,\r\n HeaderOffcanvasButtonComponent,\r\n HeaderOffcanvasCloseButtonComponent,\r\n MenuHorizontalComponent,\r\n MenuHorizontalItemComponent,\r\n MenuVerticalComponent,\r\n MenuVerticalItemComponent,\r\n MenuVerticalItemSubComponent,\r\n MenuVerticalItemSubItemComponent,\r\n MenubarComponent,\r\n MenubarLabelComponent,\r\n MenubarItemComponent,\r\n MenubarSubitemComponent,\r\n MenubarSubsubitemComponent,\r\n NavComponent,\r\n NotificationComponent,\r\n NotificationItemComponent,\r\n NavItemComponent,\r\n SkipLinkComponent,\r\n MenuNavigationComponent,\r\n MenuNavigationSubitemComponent,\r\n MenuNavigationItemComponent,\r\n MenuNavigationSubitemComponent,\r\n ]\r\n})\r\nexport class DesyNavModule { }\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[desyFocusClickedCell]'\r\n})\r\nexport class FocusClickedCellDirective {\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n @HostListener('click')\r\n onClick(): void {\r\n const hostElem = this.el.nativeElement; // la tabla - offsetParent\r\n const elemntsFocus = hostElem.offsetParent.querySelectorAll('[tabindex]'); // buscamos todos que pueden tener tabindex\r\n for (const iterator of elemntsFocus) {\r\n iterator.setAttribute('tabindex', '-1'); // se les quita\r\n }\r\n this.activeTabindex();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n manageArrows(event): void {\r\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp' || event.code === 'ArrowRight' || event.code === 'ArrowLeft'){\r\n let next = null;\r\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp'){\r\n let tr = null;\r\n if (event.code === 'ArrowDown') {\r\n tr = this.el.nativeElement.parentNode.nextElementSibling;\r\n } else if (event.code === 'ArrowUp') {\r\n tr = this.el.nativeElement.parentNode.previousElementSibling;\r\n }\r\n\r\n next = tr ? tr.children[this.findIndex()] : null;\r\n event.preventDefault();\r\n }\r\n\r\n if (event.code === 'ArrowRight' || event.code === 'ArrowLeft') {\r\n next = this.el.nativeElement;\r\n do {\r\n if (event.code === 'ArrowRight') {\r\n next = next.nextElementSibling;\r\n } else if (event.code === 'ArrowLeft') {\r\n next = next.previousElementSibling;\r\n }\r\n } while (next && !next.getAttribute('tabindex'));\r\n }\r\n\r\n if (next && next.getAttribute('tabindex')){\r\n this.inactiveTabindex();\r\n next.setAttribute('tabindex', '0');\r\n next.focus();\r\n }\r\n }\r\n }\r\n\r\n private activeTabindex(): void {\r\n this.el.nativeElement.setAttribute('tabindex', '0');\r\n }\r\n\r\n private inactiveTabindex(): void {\r\n this.el.nativeElement.setAttribute('tabindex', '-1');\r\n }\r\n\r\n private findIndex(): number {\r\n const mynode = this.el.nativeElement;\r\n const parentNode = this.el.nativeElement.parentNode;\r\n let index = -1;\r\n for (let i = 0; i < parentNode.children.length; i++) {\r\n const otherNode = parentNode.children[i];\r\n if (mynode.isEqualNode(otherNode)){\r\n index = i;\r\n break;\r\n }\r\n }\r\n return index;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { DesyFormsModule } from '../desy-forms/desy-forms.module';\r\n\r\nimport { TableComponent } from './components/table/table.component';\r\nimport { TableAdvancedComponent } from './components/table-advanced/table-advanced.component';\r\nimport { FocusClickedCellDirective } from './directives/focus-clicked-cell.directive';\r\nimport { TableCellComponent } from './components/table/components/table-cell.component';\r\nimport { TableHeaderComponent } from './components/table/components/table-header.component';\r\nimport { TableRowComponent } from './components/table/components/table-row.component';\r\nimport { TableCaptionComponent } from './components/table/components/table-caption.component';\r\nimport { TableAdvancedHeaderComponent } from './components/table-advanced/components/table-advanced-header.component';\r\nimport { TableAdvancedHeaderCellComponent } from './components/table-advanced/components/table-advanced-header-cell.component';\r\nimport { TableAdvancedRowComponent } from './components/table-advanced/components/table-advanced-row.component';\r\nimport { CellDirective } from './directives/cell.directive';\r\nimport { RowDirective } from './directives/row.directive';\r\nimport {TableAdvancedRowCellComponent} from './components/table-advanced/components/table-advanced-row-cell.component';\r\nimport { TableAdvancedSelectComponent } from './components/table-advanced/components/table-advanced-select.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TableComponent,\r\n TableCaptionComponent,\r\n TableCellComponent,\r\n TableHeaderComponent,\r\n TableRowComponent,\r\n TableAdvancedComponent,\r\n TableAdvancedHeaderComponent,\r\n TableAdvancedHeaderCellComponent,\r\n TableAdvancedRowComponent,\r\n TableAdvancedRowCellComponent,\r\n TableAdvancedSelectComponent,\r\n\r\n FocusClickedCellDirective,\r\n CellDirective,\r\n RowDirective,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n A11yModule,\r\n SharedModule,\r\n DesyFormsModule\r\n ],\r\n exports: [\r\n TableComponent,\r\n TableCaptionComponent,\r\n TableCellComponent,\r\n TableHeaderComponent,\r\n TableRowComponent,\r\n TableAdvancedComponent,\r\n TableAdvancedHeaderComponent,\r\n TableAdvancedHeaderCellComponent,\r\n TableAdvancedRowComponent,\r\n TableAdvancedRowCellComponent,\r\n TableAdvancedSelectComponent\r\n ]\r\n})\r\nexport class DesyTablesModule { }\r\n","import { PaginationItemPerPageComponent } from './components/pagination-item-perpage/pagination-item-perpage.component';\r\nimport { PaginationListboxLabelComponent } from './components/pagination-listbox-label/pagination-listbox-label.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { DesyNavModule } from '../desy-nav/desy-nav.module';\r\nimport { DesyButtonsModule } from '../desy-buttons/desy-buttons.module';\r\n\r\nimport { PaginationComponent } from './components/pagination/pagination.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PaginationComponent, \r\n PaginationListboxLabelComponent,\r\n PaginationItemPerPageComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n DesyNavModule,\r\n DesyButtonsModule\r\n ],\r\n exports: [\r\n PaginationComponent, \r\n PaginationListboxLabelComponent,\r\n PaginationItemPerPageComponent\r\n ]\r\n})\r\nexport class DesyPaginationModule { }\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { DesyButtonsModule } from './desy-buttons/desy-buttons.module';\r\nimport { DesyFormsModule } from './desy-forms/desy-forms.module';\r\nimport { DesyModalsModule } from './desy-modals/desy-modals.module';\r\nimport { DesyNavModule } from './desy-nav/desy-nav.module';\r\nimport { DesyTablesModule } from './desy-tables/desy-tables.module';\r\nimport { DesyViewsModule } from './desy-views/desy-views.module';\r\nimport { DesyPaginationModule } from './desy-pagination/desy-pagination.module';\r\nimport { DesyCommonsModule } from './desy-commons/desy-commons.module';\r\n\r\n@NgModule({\r\n imports: [\r\n DesyButtonsModule,\r\n DesyCommonsModule,\r\n DesyFormsModule,\r\n DesyModalsModule,\r\n DesyNavModule,\r\n DesyTablesModule,\r\n DesyViewsModule,\r\n DesyPaginationModule,\r\n DesyCommonsModule,\r\n ],\r\n exports: [\r\n DesyButtonsModule,\r\n DesyCommonsModule,\r\n DesyFormsModule,\r\n DesyModalsModule,\r\n DesyNavModule,\r\n DesyTablesModule,\r\n DesyViewsModule,\r\n DesyPaginationModule,\r\n DesyCommonsModule,\r\n ]\r\n})\r\nexport class DesyAngularModule { }\r\n","\r\n/*\r\n * Public API Surface of desy-angular\r\n */\r\n\r\n// componentes desy-button\r\nexport * from './lib/desy-buttons/components/button/button.component';\r\nexport * from './lib/desy-buttons/components/button-loader/button-loader.component';\r\nexport * from './lib/desy-buttons/components/dropdown/dropdown.component';\r\nexport * from './lib/desy-buttons/components/listbox/listbox.component';\r\nexport * from './lib/desy-buttons/components/pill/pill.component';\r\n// interfaces desy-button\r\nexport * from './lib/desy-buttons/interfaces/listbox-label-data';\r\nexport * from './lib/desy-buttons/interfaces/listbox-item-data';\r\n// subcomponentes desy-button\r\nexport * from './lib/desy-buttons/components/listbox/listbox-label/listbox-label.component';\r\nexport * from './lib/desy-buttons/components/listbox/listbox-item/listbox-item.component';\r\n\r\n// componentes desy-commons\r\nexport * from './lib/desy-commons/components/content/content.component';\r\nexport * from './lib/desy-commons/components/description/description.component';\r\nexport * from './lib/desy-commons/components/icon/icon.component';\r\nexport * from './lib/desy-commons/components/title/title.component';\r\n// interfaces desy-commons\r\nexport * from './lib/desy-commons/interfaces';\r\n\r\n// componentes desy-forms\r\nexport * from './lib/desy-forms/components/hint/hint.component';\r\nexport * from './lib/desy-forms/components/label/label.component';\r\nexport * from './lib/desy-forms/components/error-message/error-message.component';\r\nexport * from './lib/desy-forms/components/fieldset/fieldset.component';\r\nexport * from './lib/desy-forms/components/fieldset/legend/legend.component';\r\nexport * from './lib/desy-forms/components/textarea/textarea.component';\r\nexport * from './lib/desy-forms/components/character-count/character-count.component';\r\nexport * from './lib/desy-forms/components/input/input.component';\r\nexport * from './lib/desy-forms/components/select/select.component';\r\nexport * from './lib/desy-forms/components/file-upload/file-upload.component';\r\nexport * from './lib/desy-forms/components/input-group/input-group.component';\r\nexport * from './lib/desy-forms/components/radios/radios.component';\r\nexport * from './lib/desy-forms/components/checkboxes/checkboxes.component';\r\nexport * from './lib/desy-forms/components/date-input/date-input.component';\r\nexport * from './lib/desy-forms/components/search-bar/search-bar.component';\r\nexport * from './lib/desy-forms/components/tree/tree.component';\r\n// directivas desy-froms\r\nexport * from './lib/desy-forms/directives/condition.directive';\r\n// interfaces desy-forms\r\nexport * from './lib/desy-forms/interfaces/legend-data';\r\nexport * from './lib/desy-forms/interfaces/error-message-data';\r\nexport * from './lib/desy-forms/interfaces/fieldset-data';\r\nexport * from './lib/desy-forms/interfaces/hint-data';\r\nexport * from './lib/desy-forms/interfaces/item-date-input-data';\r\nexport * from './lib/desy-forms/interfaces/item-input-group-data';\r\nexport * from './lib/desy-forms/interfaces/item-divider-input-group-data';\r\nexport * from './lib/desy-forms/interfaces/item-radio-data';\r\nexport * from './lib/desy-forms/interfaces/item-checkbox-data';\r\nexport * from './lib/desy-forms/interfaces/label-data';\r\nexport * from './lib/desy-forms/interfaces/select-item-data';\r\n// sub-componentes desy-forms\r\nexport * from './lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component';\r\nexport * from './lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component';\r\nexport * from './lib/desy-forms/components/input-group/input-group-input/input-group-input.component';\r\nexport * from './lib/desy-forms/components/input-group/input-group-select/input-group-select.component';\r\nexport * from './lib/desy-forms/components/radios/radio-item/radio-item.component';\r\nexport * from './lib/desy-forms/components/select/option/option.component';\r\nexport * from './lib/desy-forms/components/select/option-group/option-group.component';\r\nexport * from './lib/desy-forms/components/tree/tree-sub/tree-sub.component';\r\nexport * from './lib/desy-forms/components/tree/tree-item/tree-item.component';\r\nexport * from './lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component';\r\n\r\n// componentes desy-modals\r\nexport * from './lib/desy-modals/components/modal/modal.component';\r\nexport * from './lib/desy-modals/components/dialog/dialog.component';\r\n// interfaces desy-modals\r\nexport * from './lib/desy-modals/interfaces/modal-icon-data';\r\nexport * from './lib/desy-modals/interfaces/modal-button-data';\r\nexport * from './lib/desy-modals/interfaces/modal-data';\r\nexport * from './lib/desy-modals/interfaces/dialog-options';\r\nexport * from './lib/desy-modals/interfaces/modal-options';\r\nexport * from './lib/desy-modals/interfaces/open-dialog-result';\r\n// servicios desy-modals\r\nexport * from './lib/desy-modals/services/dialog.service';\r\n// sub-componentes desy-modals\r\nexport * from './lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component';\r\nexport * from './lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component';\r\n\r\n// componentes desy-nav\r\nexport * from './lib/desy-nav/components/breadcrumbs/breadcrumbs.component';\r\nexport * from './lib/desy-nav/components/header/header.component';\r\nexport * from './lib/desy-nav/components/footer/footer.component';\r\nexport * from './lib/desy-nav/components/error-summary/error-summary.component';\r\nexport * from './lib/desy-nav/components/menu-horizontal/menu-horizontal.component';\r\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical.component';\r\nexport * from './lib/desy-nav/components/menubar/menubar.component';\r\nexport * from './lib/desy-nav/components/nav/nav.component';\r\nexport * from './lib/desy-nav/components/notification/notification.component';\r\nexport * from './lib/desy-nav/components/skip-link/skip-link.component';\r\n// interfaces desy-nav\r\nexport * from './lib/desy-nav/interfaces/breadcrumbs.data';\r\nexport * from './lib/desy-nav/interfaces/error-summary-data';\r\nexport * from './lib/desy-nav/interfaces/footer-data';\r\nexport * from './lib/desy-nav/interfaces/header-dropdown-data';\r\nexport * from './lib/desy-nav/interfaces/header-navigation-data';\r\nexport * from './lib/desy-nav/interfaces/header-navigation-item-data';\r\nexport * from './lib/desy-nav/interfaces/header-offcanvas-data';\r\nexport * from './lib/desy-nav/interfaces/header-subnav-data';\r\nexport * from './lib/desy-nav/interfaces/menu-horizontal-item-data';\r\nexport * from './lib/desy-nav/interfaces/menu-horizontal-item-event-data';\r\nexport * from './lib/desy-nav/interfaces/menu-vertical-items-data';\r\nexport * from './lib/desy-nav/interfaces/menu-vertical-sub-data';\r\nexport * from './lib/desy-nav/interfaces/menu-vertical-sub-items-data';\r\nexport * from './lib/desy-nav/interfaces/menubar-item';\r\nexport * from './lib/desy-nav/interfaces/menubar-item-sub';\r\nexport * from './lib/desy-nav/interfaces/menubar-item-sub-item';\r\nexport * from './lib/desy-nav/interfaces/menubar-item-sub-item-sub-item';\r\nexport * from './lib/desy-nav/interfaces/nav-item.data';\r\nexport * from './lib/desy-nav/interfaces/nav-item-event.data';\r\nexport * from './lib/desy-nav/interfaces/notification-items-data';\r\nexport * from './lib/desy-nav/interfaces/notification-options';\r\n// subcomponentes desy-nav\r\nexport * from './lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\nexport * from './lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component';\r\nexport * from './lib/desy-nav/components/footer/footer-meta/footer-meta.component';\r\nexport * from './lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component';\r\nexport * from './lib/desy-nav/components/footer/footer-navigation/footer-navigation.component';\r\nexport * from './lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component';\r\nexport * from './lib/desy-nav/components/header/header-dropdown/header-dropdown.component';\r\nexport * from './lib/desy-nav/components/header/header-navigation/header-navigation.component';\r\nexport * from './lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component';\r\nexport * from './lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component';\r\nexport * from './lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component';\r\nexport * from './lib/desy-nav/components/header/header-subnav/header-subnav.component';\r\nexport * from './lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component';\r\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component';\r\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component';\r\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component';\r\nexport * from './lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component';\r\nexport * from './lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component';\r\nexport * from './lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component';\r\nexport * from './lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component';\r\nexport * from './lib/desy-nav/components/nav/nav-item/nav-item.component';\r\nexport * from './lib/desy-nav/components/notification/notification-item/notification-item.component';\r\n\r\n// componentes desy-tables\r\nexport * from './lib/desy-tables/components/table/table.component';\r\nexport * from './lib/desy-tables/components/table-advanced/table-advanced.component';\r\n// interfaces desy-tables\r\nexport * from './lib/desy-tables/interfaces/head-cell-data';\r\nexport * from './lib/desy-tables/interfaces/cell-data';\r\nexport * from './lib/desy-tables/interfaces/row-data';\r\nexport * from './lib/desy-tables/interfaces/recalculate-table-params';\r\nexport * from './lib/desy-tables/interfaces/wrapper-data';\r\n// subcomponentes desy-tables\r\nexport * from './lib/desy-tables/components/table/components/table-cell.component';\r\nexport * from './lib/desy-tables/components/table/components/table-caption.component';\r\nexport * from './lib/desy-tables/components/table/components/table-header.component';\r\nexport * from './lib/desy-tables/components/table/components/table-row.component';\r\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-header.component';\r\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component';\r\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-row.component';\r\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component';\r\n\r\n// componentes desy-views\r\nexport * from './lib/desy-views/components/alert/alert.component';\r\nexport * from './lib/desy-views/components/accordion/accordion.component';\r\nexport * from './lib/desy-views/components/accordion-history/accordion-history.component';\r\nexport * from './lib/desy-views/components/spinner/spinner.component';\r\nexport * from './lib/desy-views/components/details/details.component';\r\nexport * from './lib/desy-views/components/description-list/description-list.component';\r\nexport * from './lib/desy-views/components/collapsible/collapsible.component';\r\nexport * from './lib/desy-views/components/item/item.component';\r\nexport * from './lib/desy-views/components/media-object/media-object.component';\r\nexport * from './lib/desy-views/components/status/status.component';\r\nexport * from './lib/desy-views/components/status-item/status-item.component';\r\nexport * from './lib/desy-views/components/tabs/tabs.component';\r\n// interfaces desy-views\r\nexport * from './lib/desy-views/interfaces';\r\n// servicios desy-views\r\nexport * from './lib/desy-views/services/alert.service';\r\n// subcomponentes desy-views\r\nexport * from './lib/desy-views/components/accordion/accordion-header/accordion-header.component';\r\nexport * from './lib/desy-views/components/accordion/accordion-item/accordion-item.component';\r\nexport * from './lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component';\r\nexport * from './lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component';\r\nexport * from './lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component';\r\nexport * from './lib/desy-views/components/description-list/definition/definition.component';\r\nexport * from './lib/desy-views/components/description-list/description-item/description-item.component';\r\nexport * from './lib/desy-views/components/item/item-content-bottom/item-content-bottom.component';\r\nexport * from './lib/desy-views/components/item/item-content-right/item-content-right.component';\r\nexport * from './lib/desy-views/components/item/item-item/item-item.component';\r\nexport * from './lib/desy-views/components/description-list/term/term.component';\r\nexport * from './lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component';\r\n\r\n// components desy-pagination\r\nexport * from './lib/desy-pagination/components/pagination/pagination.component';\r\nexport * from './lib/desy-pagination/interfaces/pagination-item.data';\r\n\r\n// modules\r\nexport * from './lib/desy-buttons/desy-buttons.module';\r\nexport * from './lib/desy-commons/desy-commons.module';\r\nexport * from './lib/desy-forms/desy-forms.module';\r\nexport * from './lib/desy-modals/desy-modals.module';\r\nexport * from './lib/desy-nav/desy-nav.module';\r\nexport * from './lib/desy-tables/desy-tables.module';\r\nexport * from './lib/desy-views/desy-views.module';\r\nexport * from './lib/desy-pagination/desy-pagination.module';\r\nexport * from './lib/desy-angular.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ToggleOffStateComponent as ɵbc} from './lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component';\nexport {ToggleOnStateComponent as ɵbb} from './lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component';\nexport {ToggleComponent as ɵba} from './lib/desy-buttons/components/toggle/toggle.component';\nexport {DividerComponent as ɵbt} from './lib/desy-commons/components/divider/divider.component';\nexport {DateInputDayComponent as ɵbq} from './lib/desy-forms/components/date-input/date-input-day/date-input-day.component';\nexport {DateInputDividerComponent as ɵbp} from './lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component';\nexport {DateInputItemComponent as ɵj} from './lib/desy-forms/components/date-input/date-input-item/date-input-item.component';\nexport {DateInputMonthComponent as ɵbr} from './lib/desy-forms/components/date-input/date-input-month/date-input-month.component';\nexport {DateInputYearComponent as ɵbs} from './lib/desy-forms/components/date-input/date-input-year/date-input-year.component';\nexport {FormFieldComponent as ɵf} from './lib/desy-forms/components/form-field/form-field.component';\nexport {InputGroupItemComponent as ɵi} from './lib/desy-forms/components/input-group/input-group-item/input-group-item.component';\nexport {SelectItemComponent as ɵg} from './lib/desy-forms/components/select/select-item/select-item.component';\nexport {TemplateDrivenWrapperComponent as ɵbo} from './lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component';\nexport {ITreeItem as ɵk} from './lib/desy-forms/components/tree/interfaces/itree-item';\nexport {TreeCheckboxComponent as ɵl} from './lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component';\nexport {ModalButtonLoaderPrimaryComponent as ɵm} from './lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component';\nexport {ModalButtonLoaderSecondaryComponent as ɵn} from './lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component';\nexport {HeaderNavigationItemComponent as ɵo} from './lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component';\nexport {MenuNavigationItemComponent as ɵbv} from './lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component';\nexport {MenuNavigationSubitemComponent as ɵbw} from './lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component';\nexport {MenuNavigationComponent as ɵbu} from './lib/desy-nav/components/menu-navigation/menu-navigation.component';\nexport {MenubaritemDirective as ɵp} from './lib/desy-nav/components/menubar/directives/menubaritem.directive';\nexport {PaginationItemPerPageComponent as ɵz} from './lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component';\nexport {PaginationListboxLabelComponent as ɵw} from './lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component';\nexport {TableAdvancedSelectComponent as ɵq} from './lib/desy-tables/components/table-advanced/components/table-advanced-select.component';\nexport {CellDirective as ɵs} from './lib/desy-tables/directives/cell.directive';\nexport {FocusClickedCellDirective as ɵbx} from './lib/desy-tables/directives/focus-clicked-cell.directive';\nexport {RowDirective as ɵr} from './lib/desy-tables/directives/row.directive';\nexport {MediaObjectFigureComponent as ɵt} from './lib/desy-views/components/media-object/media-object-figure/media-object-figure.component';\nexport {PanelComponent as ɵv} from './lib/desy-views/components/tabs/panel/panel.component';\nexport {TabItemComponent as ɵu} from './lib/desy-views/components/tabs/tab-item/tab-item.component';\nexport {TooltipComponent as ɵbn} from './lib/desy-views/components/tooltip/tooltip.component';\nexport {AccessibilityAndContentRequiredComponent as ɵb,AccessibilityAndTextOrHtmlRequiredComponent as ɵc,AccessibilityComponent as ɵe,ContentBaseComponent as ɵa,TextOrHtmlRequiredComponent as ɵbe} from './lib/shared/components';\nexport {AccessibilityComponent as ɵy} from './lib/shared/components/accessibility/accessibility.component';\nexport {ContentBaseComponent as ɵx} from './lib/shared/components/content-base/content-base.component';\nexport {DesyContentChild as ɵd} from './lib/shared/decorators/desy-content-child.decorator';\nexport {DesyOnInputChange as ɵh} from './lib/shared/decorators/desy-on-input-change.decorator';\nexport {AttributeChangeDirective as ɵbi} from './lib/shared/directives/attribute-change.directive';\nexport {ClickOutsideDirective as ɵbk} from './lib/shared/directives/click-outside.directive';\nexport {ContentChangeDirective as ɵbl} from './lib/shared/directives/content-change.directive';\nexport {CustomInnerContentDirective as ɵbm} from './lib/shared/directives/custom-inner-content.directive';\nexport {InnerContentDirective as ɵbj} from './lib/shared/directives/inner-content.directive';\nexport {ExternalHrefPipe as ɵbh} from './lib/shared/pipes/external-href.pipe';\nexport {InnerHtmlPipe as ɵbf} from './lib/shared/pipes/inner-html.pipe';\nexport {MakeHtmlListPipe as ɵbg} from './lib/shared/pipes/make-html-list.pipe';\nexport {SharedModule as ɵbd} from './lib/shared/shared.module';"],"names":["Component","Input","ViewChild","EventEmitter","HostBinding","Output","ElementRef","QueryList","ViewChildren","ContentChildren","ChangeDetectorRef","HostListener","NG_VALUE_ACCESSOR","forwardRef","Pipe","ControlContainer","Optional","trigger","state","style","transition","animate","query","animateChild","Host","Directive","TemplateRef","ChangeDetectionStrategy","ViewContainerRef","ConfigurableFocusTrapFactory","ComponentFactoryResolver","Type","ComponentRef","Injectable","Injector","ApplicationRef","Location","ContentChild","OrderBy","SecurityContext","DomSanitizer","NgModule","CommonModule","RouterModule","NgForm","NgxTippyModule","FormsModule","ReactiveFormsModule","A11yModule"],"mappings":"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,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAE7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;g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"}
1
+ {"version":3,"file":"desy-angular.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/desy-angular/src/lib/shared/components/accessibility/accessibility.component.ts","../../../projects/desy-angular/src/lib/shared/components/content-base/content-base.component.ts","../../../projects/desy-angular/src/lib/shared/components/text-or-html-required/text-or-html-required.component.ts","../../../projects/desy-angular/src/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.ts","../../../projects/desy-angular/src/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/button/button.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/button-loader/button-loader.component.ts","../../../projects/desy-angular/src/lib/shared/utils/focus-utils.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/dropdown/dropdown.component.ts","../../../projects/desy-angular/src/lib/shared/utils/string-utils.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.ts","../../../projects/desy-angular/src/lib/shared/decorators/desy-content-child.decorator.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/pill/pill.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/content/content.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/description/description.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/icon/icon.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/title/title.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/hint/hint.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/label/label.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/error-message/error-message.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/fieldset/legend/legend.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/fieldset/fieldset.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/form-field/form-field.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/textarea/textarea.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/character-count/character-count.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input/input.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/select-item/select-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/option/option.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/option-group/option-group.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/select.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/file-upload/file-upload.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.ts","../../../projects/desy-angular/src/lib/shared/decorators/desy-on-input-change.decorator.ts","../../../projects/desy-angular/src/lib/shared/pipes/make-html-list.pipe.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/radios/radio-item/radio-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/radios/radios.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/checkboxes/checkboxes.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/search-bar/search-bar.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-sub/tree-sub.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/interfaces/itree-item.ts","../../../projects/desy-angular/src/lib/shared/utils/search-utils.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-item/tree-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree.component.ts","../../../projects/desy-angular/src/lib/desy-forms/directives/condition.directive.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/dialog/dialog.component.ts","../../../projects/desy-angular/src/lib/desy-modals/services/dialog.service.ts","../../../projects/desy-angular/src/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-navigation/header-navigation.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/nav/nav-item/nav-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/nav/nav.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-subnav/header-subnav.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/skip-link/skip-link.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-meta/footer-meta.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/error-summary/error-summary.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/directives/menubaritem.directive.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/menubar.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/notification/notification-item/notification-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/notification/notification.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-cell.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-header.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-caption.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-row.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/table.component.ts","../../../projects/desy-angular/src/lib/desy-tables/interfaces/head-cell-data.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.ts","../../../projects/desy-angular/src/lib/desy-tables/directives/cell.directive.ts","../../../projects/desy-angular/src/lib/desy-tables/directives/row.directive.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/table-advanced.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/alert/alert.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion/accordion-header/accordion-header.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion/accordion-item/accordion-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion/accordion.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-history.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/spinner/spinner.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/details/details.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/term/term.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/definition/definition.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/description-item/description-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/description-list.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/collapsible/collapsible.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item-content-right/item-content-right.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item-item/item-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/media-object/media-object.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/status/status.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/status-item/status-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/tabs/panel/panel.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/tabs/tab-item/tab-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/tabs/tabs.component.ts","../../../projects/desy-angular/src/lib/desy-views/services/alert.service.ts","../../../projects/desy-angular/src/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.ts","../../../projects/desy-angular/src/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.ts","../../../projects/desy-angular/src/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.ts","../../../projects/desy-angular/src/lib/desy-pagination/components/pagination/pagination.component.ts","../../../projects/desy-angular/src/lib/shared/pipes/inner-html.pipe.ts","../../../projects/desy-angular/src/lib/shared/pipes/external-href.pipe.ts","../../../projects/desy-angular/src/lib/shared/directives/attribute-change.directive.ts","../../../projects/desy-angular/src/lib/shared/directives/inner-content.directive.ts","../../../projects/desy-angular/src/lib/shared/directives/click-outside.directive.ts","../../../projects/desy-angular/src/lib/shared/directives/content-change.directive.ts","../../../projects/desy-angular/src/lib/shared/directives/custom-inner-content.directive.ts","../../../projects/desy-angular/src/lib/shared/shared.module.ts","../../../projects/desy-angular/src/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/divider/divider.component.ts","../../../projects/desy-angular/src/lib/desy-commons/desy-commons.module.ts","../../../projects/desy-angular/src/lib/desy-forms/desy-forms.module.ts","../../../projects/desy-angular/src/lib/desy-views/components/tooltip/tooltip.component.ts","../../../projects/desy-angular/src/lib/desy-views/desy-views.module.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/desy-buttons.module.ts","../../../projects/desy-angular/src/lib/desy-modals/desy-modals.module.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/menu-navigation.component.ts","../../../projects/desy-angular/src/lib/desy-nav/desy-nav.module.ts","../../../projects/desy-angular/src/lib/desy-tables/directives/focus-clicked-cell.directive.ts","../../../projects/desy-angular/src/lib/desy-tables/desy-tables.module.ts","../../../projects/desy-angular/src/lib/desy-pagination/desy-pagination.module.ts","../../../projects/desy-angular/src/lib/desy-angular.module.ts","../../../projects/desy-angular/src/public-api.ts","../../../projects/desy-angular/src/desy-angular.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AccesibilityData } from '../../interfaces/accesibility-data';\r\n\r\n/**\r\n * componente para heredar los atributos de accesibilidad\r\n */\r\n@Component({\r\n selector: 'desy-accessibility',\r\n template: '<div></div>'\r\n})\r\nexport class AccessibilityComponent implements AccesibilityData {\r\n @Input() role: string;\r\n @Input() ariaLabel: string;\r\n @Input() ariaDescribedBy: string;\r\n @Input() ariaLabelledBy: string;\r\n @Input() ariaHidden: string;\r\n @Input() ariaDisabled: string;\r\n @Input() ariaControls: string;\r\n @Input() ariaCurrent: string;\r\n @Input() ariaLive: string;\r\n @Input() ariaExpanded: string;\r\n @Input() ariaErrorMessage: string;\r\n @Input() ariaHasPopup: string;\r\n @Input() ariaModal: string;\r\n @Input() tabindex: string;\r\n\r\n /*\r\n Copiar para facilitar el uso por defecto\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 [attr.tabindex]=\"tabindex ? tabindex : null\"\r\n */\r\n}\r\n","import {Component, TemplateRef, ViewChild} from '@angular/core';\r\nimport {AccessibilityComponent} from '../accessibility/accessibility.component';\r\n/**\r\n * Componente base para proyectar contenido\r\n */\r\n@Component({\r\n selector: 'desy-content-base',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ContentBaseComponent extends AccessibilityComponent {\r\n\r\n @ViewChild('contentTemplate', { static: true }) private content: TemplateRef<any>;\r\n\r\n public getContent(): TemplateRef<any> {\r\n return this.content;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'desy-text-or-html-required',\r\n template: '<div></div>'\r\n})\r\nexport class TextOrHtmlRequiredComponent {\r\n\r\n /***\r\n * componente base para el comportamiento de texto o html required - YA NO ES REQUIRIDO\r\n * \r\n **/\r\n\r\n @Input() text: string;\r\n @Input() html: string;\r\n\r\n}\r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { AccesibilityData } from '../../interfaces/accesibility-data';\r\nimport { TextOrHtmlRequiredComponent } from '../text-or-html-required/text-or-html-required.component';\r\n\r\n@Component({\r\n selector: 'desy-accessibility-and-text-or-html-required',\r\n template: '<div></div>'\r\n})\r\nexport class AccessibilityAndTextOrHtmlRequiredComponent extends TextOrHtmlRequiredComponent implements AccesibilityData {\r\n\r\n /**\r\n * componente para heredar los atributos de accesibilidad y\r\n * el texto o html required - YA NO ES REQUIERIDO\r\n * \r\n * \r\n */\r\n\r\n // Atributos de accesibilidad\r\n @Input() role: string;\r\n @Input() ariaLabel: string;\r\n @Input() ariaDescribedBy: string;\r\n @Input() ariaLabelledBy: string;\r\n @Input() ariaHidden: string;\r\n @Input() ariaDisabled: string;\r\n @Input() ariaControls: string;\r\n @Input() ariaCurrent: string;\r\n @Input() ariaLive: string;\r\n @Input() ariaExpanded: string;\r\n @Input() ariaErrorMessage: string;\r\n @Input() ariaHasPopup: string;\r\n @Input() tabindex: string;\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AccesibilityData } from '../../interfaces/accesibility-data';\r\n\r\n@Component({\r\n selector: 'desy-accessibility-and-content-required',\r\n template: '<div></div>'\r\n})\r\nexport class AccessibilityAndContentRequiredComponent implements AccesibilityData {\r\n\r\n /**\r\n * componente para heredar los atributos de accesibilidad y\r\n * el content required\r\n *\r\n * si en el componente que extiende de este, se implementa el onInit o Onchanges,\r\n * habra que incluir la llamada al a funcion contentRequiredFunction\r\n *\r\n */\r\n @Input() html: string;\r\n @Input() text: string;\r\n\r\n // Atributos de accesibilidad\r\n @Input() role: string;\r\n @Input() ariaLabel: string;\r\n @Input() ariaDescribedBy: string;\r\n @Input() ariaLabelledBy: string;\r\n @Input() ariaHidden: string;\r\n @Input() ariaDisabled: string;\r\n @Input() ariaControls: string;\r\n @Input() ariaCurrent: string;\r\n @Input() ariaLive: string;\r\n @Input() ariaExpanded: string;\r\n @Input() ariaErrorMessage: string;\r\n @Input() ariaHasPopup: string;\r\n @Input() tabindex: string;\r\n\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\r\nimport { AccessibilityComponent, ContentBaseComponent} from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-button',\r\n templateUrl: './button.component.html'\r\n})\r\nexport class ButtonComponent extends ContentBaseComponent {\r\n\r\n public static readonly ELEMENT_A: string = 'a';\r\n public static readonly ELEMENT_BUTTON: string = 'button';\r\n public static readonly ELEMENT_INPUT: string = 'input';\r\n\r\n\r\n @HostBinding('attr.tabindex') readonly hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() html: string;\r\n @Input() text: string;\r\n\r\n @Input() element: string; // 'a', 'button' o 'input'\r\n @Input() name: string;\r\n @Input() type: string;\r\n @Input() value: any;\r\n @Input() disabled: boolean;\r\n @Input() href: string;\r\n @Input() target: string;\r\n @Input() preventDoubleClick: boolean;\r\n\r\n @Input() routerLink: string|any[];\r\n @Input() routerLinkActiveClasses: string|string[];\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n\r\n avoidingDoubleClick = false;\r\n\r\n onClick(event: any): void {\r\n if (this.preventDoubleClick) {\r\n if (!this.avoidingDoubleClick){\r\n this.avoidingDoubleClick = true;\r\n this.clickEvent.emit(event);\r\n setTimeout(() => {\r\n this.avoidingDoubleClick = false;\r\n }, 1000);\r\n } else {\r\n event.preventDefault(); // evitamos propagar el evento por ejemplo un submit en un formulario\r\n }\r\n } else {\r\n this.clickEvent.emit(event);\r\n }\r\n }\r\n\r\n getElement(): string {\r\n let element: string;\r\n if (this.element) {\r\n element = this.element.toLocaleLowerCase();\r\n } else {\r\n if (this.href) {\r\n element = ButtonComponent.ELEMENT_A;\r\n } else {\r\n element = ButtonComponent.ELEMENT_BUTTON;\r\n }\r\n }\r\n return element;\r\n }\r\n\r\n getClassNames(): string {\r\n let classNames = 'c-button';\r\n if (this.classes) {\r\n classNames += ' ' + this.classes;\r\n }\r\n if (this.disabled) {\r\n classNames += ' c-button--disabled';\r\n }\r\n return classNames;\r\n }\r\n\r\n isDisabled(): boolean {\r\n return this.disabled ? true : null;\r\n }\r\n\r\n get staticElementTypeA(): string {\r\n return ButtonComponent.ELEMENT_A;\r\n }\r\n\r\n get staticElementTypeButton(): string {\r\n return ButtonComponent.ELEMENT_BUTTON;\r\n }\r\n\r\n get staticElementTypeInput(): string {\r\n return ButtonComponent.ELEMENT_INPUT;\r\n }\r\n}\r\n","import {Component, HostBinding, Input} from '@angular/core';\r\nimport { ButtonComponent } from '../button/button.component';\r\n\r\n@Component({\r\n selector: 'desy-button-loader',\r\n templateUrl: './button-loader.component.html'\r\n})\r\nexport class ButtonLoaderComponent extends ButtonComponent {\r\n\r\n public static readonly STATE_LOADING: string = 'is-loading';\r\n public static readonly STATE_SUCCESS: string = 'is-success';\r\n\r\n private static readonly DEFAULT_LOADER_TEXT: string = 'Acción en curso';\r\n private static readonly DEFAULT_SUCCESS_TEXT: string = 'Acción realizada con éxito';\r\n\r\n @HostBinding('attr.tabindex') readonly hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host\r\n\r\n @Input() loaderText: string;\r\n @Input() loaderClasses: string;\r\n @Input() state: string;\r\n @Input() successText: string;\r\n\r\n getClassNames(): string {\r\n let classNames = 'c-button-loader relative';\r\n if (this.classes) {\r\n classNames += ' ' + this.classes;\r\n }\r\n if (this.disabled) {\r\n classNames += ' c-button-loader--disabled';\r\n }\r\n return classNames;\r\n }\r\n\r\n getSpinnerText(): string {\r\n let spinnerText: string = null;\r\n\r\n if (this.state === ButtonLoaderComponent.STATE_LOADING) {\r\n spinnerText = this.loaderText ? this.loaderText : ButtonLoaderComponent.DEFAULT_LOADER_TEXT;\r\n }\r\n\r\n return spinnerText;\r\n }\r\n\r\n\r\n getSuccessText(): string {\r\n let successText: string = null;\r\n\r\n if (this.state === ButtonLoaderComponent.STATE_SUCCESS) {\r\n successText = this.successText ? this.successText : ButtonLoaderComponent.DEFAULT_SUCCESS_TEXT;\r\n }\r\n\r\n return successText;\r\n }\r\n}\r\n","export class FocusUtils {\r\n\r\n public static getFirstFocusableElement(parent?: HTMLElement): HTMLElement {\r\n const selectionableElements = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\r\n let focusableList;\r\n if (parent) {\r\n focusableList = parent.querySelectorAll(selectionableElements);\r\n } else {\r\n focusableList = document.querySelectorAll(selectionableElements);\r\n }\r\n\r\n if (!focusableList || focusableList.length === 0) {\r\n return null;\r\n }\r\n\r\n let firstFocusable = null;\r\n let i = 0;\r\n while (i < focusableList.length) {\r\n try {\r\n const element = focusableList.item(i) as HTMLInputElement;\r\n if (FocusUtils.isFocusable(element)) {\r\n firstFocusable = element;\r\n break;\r\n }\r\n } catch (e) {\r\n\r\n }\r\n i++;\r\n }\r\n\r\n return firstFocusable;\r\n }\r\n\r\n public static isFocusable(element: any): boolean {\r\n if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)) {\r\n return true;\r\n }\r\n\r\n if (element.disabled) {\r\n return false;\r\n }\r\n\r\n switch (element.nodeName) {\r\n case 'A':\r\n return !!element.href && element.rel !== 'ignore';\r\n case 'INPUT':\r\n return element.type !== 'hidden' && element.type !== 'file';\r\n case 'BUTTON':\r\n case 'SELECT':\r\n case 'TEXTAREA':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ElementRef,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n HostBinding,\r\n} from '@angular/core';\r\nimport { AccessibilityAndContentRequiredComponent } from '../../../shared/components';\r\nimport { FocusUtils } from '../../../shared/utils/focus-utils';\r\n\r\n@Component({\r\n selector: 'desy-dropdown',\r\n templateUrl: './dropdown.component.html'\r\n})\r\nexport class DropdownComponent extends AccessibilityAndContentRequiredComponent implements OnInit, OnChanges {\r\n \r\n static readonly KEY_CODE_ESC = 'Escape';\r\n\r\n @ViewChild('dropdownContent', { read: ElementRef, static: true }) dropdownContent: ElementRef;\r\n\r\n @Input() id: string;\r\n @Input() disabled: boolean;\r\n @Input() hiddenText: string;\r\n @Input() @HostBinding('class') classesContainer: any;\r\n @Input() classesTooltip: string;\r\n @Input() caller: TemplateRef<any>;\r\n @Input() classes: string;\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n\r\n isOpen = false;\r\n clickOutsideEnabled = false;\r\n\r\n tippyProperties: any;\r\n\r\n ngOnInit(): any {\r\n let contentTooltip: HTMLElement;\r\n if (this.dropdownContent && this.dropdownContent.nativeElement) {\r\n contentTooltip = this.dropdownContent.nativeElement as HTMLElement;\r\n contentTooltip.style.display = 'block';\r\n this.tippyProperties = {\r\n placement: 'bottom-start',\r\n inlinePositioning: true,\r\n content: contentTooltip,\r\n allowHTML: true, // Make sure you are sanitizing any user data if rendering HTML to prevent XSS attacks.\r\n trigger: 'click',\r\n hideOnClick: true,\r\n interactive: true,\r\n arrow: false,\r\n offset: [0, -10],\r\n theme: '',\r\n plugins: [\r\n {\r\n name: 'hideOnPopperBlur',\r\n defaultValue: true,\r\n fn(instance) {\r\n return {\r\n onCreate() {\r\n instance.popper.addEventListener('focusout', (event) => {\r\n if (\r\n instance.props.hideOnPopperBlur &&\r\n event.relatedTarget &&\r\n !instance.popper.contains(event.relatedTarget)\r\n ) {\r\n instance.hide();\r\n }\r\n });\r\n },\r\n };\r\n }\r\n }, {\r\n name: 'hideOnEsc',\r\n defaultValue: true,\r\n fn({hide}): any {\r\n\r\n function onKeyDown(event: KeyboardEvent): void {\r\n if (event.key === DropdownComponent.KEY_CODE_ESC) {\r\n hide();\r\n }\r\n }\r\n\r\n return {\r\n onShow(): void {\r\n document.addEventListener('keydown', onKeyDown);\r\n },\r\n onHide(): void {\r\n document.removeEventListener('keydown', onKeyDown);\r\n },\r\n };\r\n },\r\n }\r\n ],\r\n role: false,\r\n aria: {\r\n content: 'auto',\r\n },\r\n onShown(instance): void {\r\n const firstFocusable = FocusUtils.getFirstFocusableElement(contentTooltip);\r\n if (firstFocusable) {\r\n firstFocusable.focus();\r\n }\r\n }\r\n };\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classesContainer = this.classesContainer ? this.classesContainer : 'relative';\r\n }\r\n\r\n onClick(event: any): void {\r\n if (!this.isDisabled()){\r\n this.clickEvent.emit(event);\r\n }\r\n }\r\n\r\n setOpen(isOpen: boolean): void {\r\n this.isOpen = isOpen;\r\n }\r\n\r\n isDisabled(): boolean {\r\n return this.disabled ? true : null;\r\n }\r\n}\r\n","/**\r\n * Facilita funciones de utilidad para trabajar con strings\r\n */\r\nexport class StringUtils {\r\n\r\n /**\r\n * Escapa los caracteres propios de HTML para mostrarlos como contenido\r\n * @param value texto en formato html\r\n */\r\n public static escapeHtml(value: string): string {\r\n return value ? value\r\n .replace(new RegExp(`&`, 'g'), '&amp;')\r\n .replace(new RegExp(`<`, 'g'), '&lt;')\r\n .replace(new RegExp(`>`, 'g'), '&gt;')\r\n .replace(new RegExp(`\"`, 'g'), '&quot;')\r\n .replace(new RegExp(`'`, 'g'), '&#39;') : '';\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-listbox-label',\r\n templateUrl: './listbox-label.component.html'\r\n})\r\nexport class ListboxLabelComponent extends ContentBaseComponent {\r\n\r\n @Input() classes: string;\r\n\r\n}\r\n","import {Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild} from '@angular/core';\r\nimport {ListboxItemData} from '../../../interfaces/listbox-item-data';\r\nimport {AccessibilityComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-listbox-item',\r\n templateUrl: './listbox-item.component.html'\r\n})\r\nexport class ListboxItemComponent extends AccessibilityComponent implements ListboxItemData, OnChanges {\r\n\r\n @ViewChild('childComponentTemplate') content;\r\n\r\n @Input() id?: string;\r\n @Input() active?: boolean;\r\n @Input() classes?: string;\r\n @Input() title?: string;\r\n\r\n @Output() itemChange = new EventEmitter();\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.itemChange.emit(changes);\r\n }\r\n\r\n}\r\n","import {QueryList} from '@angular/core';\r\n\r\n/**\r\n * Decorador para convertir una queryList de componentes obtenidos con ContentChildren a un único componente, de forma que sea similar a un\r\n * ContentChild pero admitiendo únicamente los compontentes insertados en el primer nivel.\r\n * Debe utilizarse siempre junto a un ContentChildren\r\n * Si en el constructor de la clase en la que se utiliza se inyecta el Change detector con nombre 'changeDetectorRef', se indicará que hay\r\n * cambios cuando se detecten.\r\n * @param options opciones adicionales:\r\n * - onSetCallbackName: nombre del método al que llamar tras asociarse el valor. Esto puede utilizarse, por ejemplo, para sobreescribir\r\n * parámetros definidos externamente en el componente.\r\n * - onDeleteCallbackName: nombre del método al que llamar tras desasociarse el valor.\r\n */\r\nexport function DesyContentChild(options?: { onSetCallbackName?: string, onDeleteCallbackName?: string }): PropertyDecorator {\r\n return (target: any, propertyKey: string) => {\r\n const privateKeyName = `_${propertyKey}`;\r\n const privateQueryListKeyName = `_${propertyKey}Querylist`;\r\n\r\n Object.defineProperty(target, propertyKey, {\r\n set(value): void {\r\n const queryList = value instanceof QueryList ? value as QueryList<any> : null;\r\n if (queryList && !this[privateQueryListKeyName]) {\r\n this[privateQueryListKeyName] = queryList;\r\n queryList.changes.subscribe(() => {\r\n const previousValue = this[privateKeyName];\r\n this[privateKeyName] = queryList && queryList.length > 0 ? queryList.first : null;\r\n\r\n if (options && options.onSetCallbackName && this[options.onSetCallbackName] && this[privateKeyName] ) {\r\n this[options.onSetCallbackName](this[privateKeyName]);\r\n }\r\n\r\n if (options && options.onDeleteCallbackName && this[options.onDeleteCallbackName] && previousValue && !this[privateKeyName] ) {\r\n this[options.onDeleteCallbackName]();\r\n }\r\n });\r\n queryList.notifyOnChanges();\r\n }\r\n },\r\n get(): any {\r\n return this[privateKeyName];\r\n }\r\n });\r\n };\r\n}\r\n","import {\r\n Component,\r\n ContentChildren, DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {AccessibilityAndTextOrHtmlRequiredComponent} from '../../../shared/components';\r\nimport {ListboxLabelData} from '../../interfaces/listbox-label-data';\r\nimport {ListboxItemData} from '../../interfaces/listbox-item-data';\r\nimport {StringUtils} from '../../../shared/utils/string-utils';\r\nimport {ListboxLabelComponent} from './listbox-label/listbox-label.component';\r\nimport {ListboxItemComponent} from './listbox-item/listbox-item.component';\r\nimport {Subscription} from 'rxjs';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-listbox',\r\n templateUrl: './listbox.component.html'\r\n})\r\nexport class ListboxComponent extends AccessibilityAndTextOrHtmlRequiredComponent implements OnInit, OnChanges, DoCheck {\r\n\r\n static readonly KEY_CODE_ESC = 'Escape';\r\n\r\n @ViewChild('button', { read: ElementRef, static: true }) listboxButton: ElementRef;\r\n @ViewChild('list', { read: ElementRef }) listboxList: ElementRef;\r\n @ViewChild('tooltip', { read: ElementRef, static: true }) listboxContent: ElementRef;\r\n @ViewChildren('option', { read: ElementRef }) listboxOptions: QueryList<ElementRef>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ListboxLabelComponent) labelComponent: ListboxLabelComponent;\r\n @ContentChildren(ListboxItemComponent) itemComponentList: QueryList<ListboxItemComponent>;\r\n\r\n @Input() id: string; // required\r\n @Input() isMultiselectable: boolean;\r\n @Input() doesChangeButtonText: boolean;\r\n @Input() label: ListboxLabelData;\r\n @Input() classes: string;\r\n @Input() classesContainer: string;\r\n @Input() classesTooltip: string;\r\n @Input() idPrefix: string;\r\n @Input() disabled: boolean;\r\n @Input() items: ListboxItemData[];\r\n @Output() itemsChange = new EventEmitter();\r\n @Output() activeItemChange = new EventEmitter();\r\n\r\n tippyProperties: any; // Propiedades de tippy\r\n currentFocusIndex: number; // Índice del elemento actual con focus\r\n buttonContentHtml: string; // Puede ser el pasado por parámetro o el item seleccionado en caso de currentFocusIndex=true\r\n isListVisible = false; // Indica si la lista se está mostrando\r\n\r\n // conditionalId y conditionalItem representan en desy-html el item activo. Aquí es mejor obtenerlo cuando se necesita\r\n lastActiveItems: { item: ListboxItemData, index: number }[];\r\n itemComponentSubscriptions: Subscription[];\r\n\r\n itemList: ListboxItemData[];\r\n\r\n\r\n ngOnInit(): void {\r\n const listboxButtonElement = this.listboxButton.nativeElement;\r\n if (this.listboxContent && this.listboxContent.nativeElement) {\r\n const contentTooltip = this.listboxContent.nativeElement as HTMLElement;\r\n this.tippyProperties = { \r\n placement: 'bottom-start',\r\n inlinePositioning: true, \r\n content: contentTooltip,\r\n allowHTML: true, // Make sure you are sanitizing any user data if rendering HTML to prevent XSS attacks.\r\n trigger: 'click',\r\n hideOnClick: true,\r\n interactive: true,\r\n arrow: false,\r\n offset: [0, -10],\r\n theme: '',\r\n plugins: [\r\n {\r\n name: 'hideOnPopperBlur',\r\n defaultValue: true,\r\n fn(instance) {\r\n return {\r\n onCreate() {\r\n instance.popper.addEventListener('focusout', (event) => {\r\n if (\r\n instance.props.hideOnPopperBlur &&\r\n event.relatedTarget &&\r\n !instance.popper.contains(event.relatedTarget)\r\n ) {\r\n instance.hide();\r\n }\r\n });\r\n },\r\n };\r\n }\r\n }, {\r\n name: 'hideOnEsc',\r\n defaultValue: true,\r\n fn({hide}): any {\r\n\r\n function onKeyDown(event: KeyboardEvent): void {\r\n if (event.key === ListboxComponent.KEY_CODE_ESC) {\r\n hide();\r\n listboxButtonElement.focus();\r\n }\r\n }\r\n\r\n return {\r\n onShow(): void {\r\n document.addEventListener('keydown', onKeyDown);\r\n },\r\n onHide(): void {\r\n document.removeEventListener('keydown', onKeyDown);\r\n },\r\n };\r\n },\r\n }\r\n ],\r\n role: false,\r\n aria: {\r\n content: 'auto',\r\n },\r\n onShow: this.onListShow.bind(this),\r\n onHidden: this.onListClose.bind(this)\r\n };\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n setTimeout(() => {\r\n\r\n if (this.itemComponentList && this.itemComponentList.length > 0) {\r\n if (this.itemComponentSubscriptions) {\r\n this.itemComponentSubscriptions.forEach(s => s.unsubscribe());\r\n }\r\n this.itemComponentSubscriptions = [];\r\n this.itemList = [];\r\n this.itemComponentList.forEach(item => {\r\n const subscription = item.itemChange.subscribe(() => this.checkActiveItems());\r\n this.itemComponentSubscriptions.push(subscription);\r\n this.itemList.push(item);\r\n });\r\n } else {\r\n this.itemList = this.items;\r\n }\r\n\r\n this.checkActiveItems();\r\n });\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (!this.items || !this.itemList) {\r\n return;\r\n }\r\n\r\n this.checkActiveItems();\r\n }\r\n\r\n private getActiveItemsData(): { item: ListboxItemData, index: number }[] {\r\n return this.itemList\r\n .map((item, index) => item.active ? {item, index} : null)\r\n .filter(item => item !== null);\r\n }\r\n\r\n private checkActiveItems(): void {\r\n let activeItems: { item: ListboxItemData, index: number }[] = this.itemList\r\n .map((item, index) => item.active ? {item, index} : null)\r\n .filter(item => item !== null);\r\n\r\n let hasActiveItemChange = false;\r\n if (this.lastActiveItems && activeItems.length === this.lastActiveItems.length) {\r\n for (let i = 0; i < activeItems.length; i++) {\r\n if (activeItems[i].index !== this.lastActiveItems[i].index) {\r\n hasActiveItemChange = true;\r\n break;\r\n }\r\n }\r\n } else {\r\n hasActiveItemChange = true;\r\n }\r\n\r\n // Si hay cambios externos y es selección única, anulamos la selección anterior\r\n if (this.lastActiveItems && !this.isMultiselectable && hasActiveItemChange) {\r\n if (activeItems.length !== this.lastActiveItems.length) {\r\n for (const newItem of activeItems) {\r\n if (this.lastActiveItems.findIndex(i => i.index === newItem.index) >= 0) {\r\n newItem.item.active = false;\r\n }\r\n\r\n activeItems = activeItems.filter(item => item.item.active);\r\n }\r\n }\r\n }\r\n\r\n this.lastActiveItems = activeItems;\r\n\r\n // Se cambia el contenido del botón\r\n if (this.doesChangeButtonText && !this.isMultiselectable && activeItems.length > 0) {\r\n const activeItemOption = this.listboxOptions.find((item, index) => index === activeItems[0].index);\r\n if (activeItemOption) {\r\n this.buttonContentHtml = activeItemOption.nativeElement.innerHTML;\r\n }\r\n } else {\r\n this.buttonContentHtml = this.html ? this.html : null;\r\n }\r\n\r\n // Si hay cambios, se emiten\r\n if (hasActiveItemChange) {\r\n this.itemsChange.emit(this.itemList);\r\n this.activeItemChange.emit(activeItems.length > 0 ? activeItems[0].item : null);\r\n }\r\n }\r\n\r\n onListShow(): void {\r\n this.isListVisible = true;\r\n if (this.listboxList) {\r\n setTimeout(() => this.listboxList.nativeElement.focus());\r\n }\r\n }\r\n\r\n onListClose(): void {\r\n this.isListVisible = false;\r\n }\r\n\r\n onListFocus(): void {\r\n const activeItemsData = this.getActiveItemsData();\r\n if (activeItemsData.length > 0) {\r\n const activeElem = document.getElementById(this.getItemId(activeItemsData[0].item, activeItemsData[0].index));\r\n if (activeElem) {\r\n activeElem.focus();\r\n this.currentFocusIndex = activeItemsData[0].index;\r\n }\r\n } else if (this.itemList && this.itemList.length > 0) {\r\n this.currentFocusIndex = 0;\r\n if (!this.isMultiselectable) {\r\n this.selectItem(0);\r\n }\r\n } else {\r\n console.warn('No element to focus');\r\n }\r\n }\r\n\r\n moveFocus(position: number, event: KeyboardEvent): void {\r\n event.preventDefault();\r\n if (position >= 0 && position < this.itemList.length) {\r\n if (this.isMultiselectable) {\r\n this.currentFocusIndex = position;\r\n } else {\r\n this.selectItem(position);\r\n }\r\n }\r\n }\r\n\r\n onSpace(event: KeyboardEvent): void {\r\n event.preventDefault();\r\n if (this.isMultiselectable) {\r\n this.selectItem(this.currentFocusIndex);\r\n }\r\n }\r\n\r\n selectItem(index: number): void {\r\n if (!this.isMultiselectable) {\r\n this.itemList.forEach(item => item.active = false);\r\n this.itemList[index].active = true;\r\n } else {\r\n this.itemList[index].active = !this.itemList[index].active;\r\n }\r\n this.currentFocusIndex = index;\r\n\r\n this.checkActiveItems();\r\n }\r\n\r\n /*\r\n * Métodos para facilitar contenido al template\r\n */\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.id + '-listbox-item';\r\n }\r\n\r\n getItemId(item: ListboxItemData, index: number): string {\r\n let itemId: string;\r\n if (item.id) {\r\n itemId = item.id;\r\n } else {\r\n itemId = this.getIdPrefix();\r\n if (index > 0) {\r\n itemId += `-${index}`;\r\n }\r\n }\r\n return itemId;\r\n }\r\n\r\n hasLabel(): boolean {\r\n return !!(this.label || this.labelComponent);\r\n }\r\n\r\n getLabelContent(label: ListboxLabelData): string {\r\n return label.html ? label.html : `<p>${ StringUtils.escapeHtml(label.text) }</p>`;\r\n }\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { AccessibilityAndContentRequiredComponent } from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-pill',\r\n templateUrl: './pill.component.html'\r\n})\r\nexport class PillComponent extends AccessibilityAndContentRequiredComponent {\r\n\r\n public static readonly TYPE_A: string = 'a';\r\n public static readonly TYPE_BUTTON: string = 'button';\r\n public static readonly TYPE_SPAN: string = 'span';\r\n\r\n @Input() type: string; // 'a', 'button' o 'span'\r\n @Input() href: string;\r\n @Input() target: string;\r\n @Input() routerLink: string|any[];\r\n @Input() routerLinkActiveClasses: string|string[];\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n\r\n @HostBinding('attr.tabindex') readonly hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host\r\n\r\n onClick(event: any): void {\r\n this.clickEvent.emit(event);\r\n }\r\n\r\n getType(): string {\r\n let type: string;\r\n if (this.type){\r\n type = this.type.toLocaleLowerCase();\r\n } else {\r\n if (this.href) {\r\n type = PillComponent.TYPE_A;\r\n } else {\r\n type = PillComponent.TYPE_SPAN;\r\n }\r\n }\r\n return type;\r\n }\r\n\r\n getClassNames(): string {\r\n let classNames = 'c-pill';\r\n if (this.classes) {\r\n classNames += ' ' + this.classes;\r\n }\r\n return classNames;\r\n }\r\n\r\n get staticElementTypeA(): string {\r\n return PillComponent.TYPE_A;\r\n }\r\n\r\n get staticElementTypeButton(): string {\r\n return PillComponent.TYPE_BUTTON;\r\n }\r\n\r\n get staticElementTypeSpan(): string {\r\n return PillComponent.TYPE_SPAN;\r\n }\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../shared/components';\r\nimport {ContentData} from '../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-content',\r\n templateUrl: './content.component.html'\r\n})\r\nexport class ContentComponent extends ContentBaseComponent implements ContentData {\r\n @Input() classes: string;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../shared/components';\r\nimport {DescriptionData} from '../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-description',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class DescriptionComponent extends ContentBaseComponent implements DescriptionData {\r\n @Input() classes: string;\r\n @Input() visuallyHiddenTitle?: string;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {IconData} from '../../interfaces';\r\nimport {ContentBaseComponent} from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-icon',\r\n templateUrl: './icon.component.html'\r\n})\r\nexport class IconComponent extends ContentBaseComponent implements IconData {\r\n\r\n @Input() type: string;\r\n @Input() containerClasses?: string;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../shared/components';\r\nimport {TitleData} from '../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-title',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TitleComponent extends ContentBaseComponent implements TitleData {\r\n @Input() classes: string;\r\n}\r\n","import {ChangeDetectorRef, Component, Input} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-hint',\r\n templateUrl: './hint.component.html',\r\n})\r\nexport class HintComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() html: string;\r\n @Input() text: string;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n public detectChanges(): void {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import {ChangeDetectorRef, Component, Input} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\n\r\n\r\n@Component({\r\n selector: 'desy-label',\r\n templateUrl: './label.component.html'\r\n})\r\nexport class LabelComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() html: string;\r\n @Input() text: string;\r\n @Input() isPageHeading: boolean;\r\n @Input() headingLevel: number;\r\n @Input() for: string;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n public detectChanges(): void {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import {ChangeDetectorRef, Component, Input} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-error-message',\r\n templateUrl: './error-message.component.html'\r\n})\r\nexport class ErrorMessageComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() html: string;\r\n @Input() text: string;\r\n @Input() visuallyHiddenText: string;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n public detectChanges(): void {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { Component, Input, SimpleChanges } from '@angular/core';\r\nimport { AccessibilityAndContentRequiredComponent } from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-legend',\r\n templateUrl: './legend.component.html'\r\n})\r\nexport class LegendComponent extends AccessibilityAndContentRequiredComponent {\r\n\r\n @Input() classes: string;\r\n @Input() isPageHeading: boolean;\r\n @Input() headingLevel: number;\r\n \r\n}\r\n","import {ChangeDetectorRef, Component, ContentChildren, Input, TemplateRef} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { LegendComponent } from './legend/legend.component';\r\nimport { LegendData } from '../../interfaces';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-fieldset',\r\n templateUrl: './fieldset.component.html'\r\n})\r\nexport class FieldsetComponent extends AccessibilityComponent {\r\n\r\n @Input() describedBy: string;\r\n @Input() errorId: string;\r\n\r\n /**\r\n * legenda, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir legendComponent\r\n * 2) incluir template\r\n * 3) incluir objeto legend (interfaz expuesta)\r\n * 4) incluir legendText - incluir un label con solo un texto\r\n */\r\n @Input() legendRef: TemplateRef<LegendComponent>;\r\n @Input() legendData: LegendData;\r\n @Input() legendText: string;\r\n\r\n @Input() classes: string;\r\n @Input() caller: TemplateRef<any>;\r\n\r\n @Input() id: string;\r\n @Input() headingLevel: number;\r\n\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n public detectChanges(): void {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n HostListener,\r\n Input,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { LabelComponent } from '../label/label.component';\r\nimport { HintComponent } from '../hint/hint.component';\r\nimport { ErrorMessageComponent } from '../error-message/error-message.component';\r\nimport { LabelData, HintData, ErrorMessageData } from '../../interfaces';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n\r\n@Component({\r\n selector: 'desy-form-field',\r\n template: ''\r\n})\r\nexport class FormFieldComponent<T> extends AccessibilityComponent implements ControlValueAccessor {\r\n\r\n @Input() id: string;\r\n @Input() disabled: boolean;\r\n value: T;\r\n\r\n /*\r\n * label, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente\r\n * 2) incluir template\r\n * 3) incluir objeto label (interfaz expuesta)\r\n * 4) incluir legendText - incluir un label con solo un texto\r\n */\r\n @DesyContentChild({ onSetCallbackName: 'overrideLabelParams', onDeleteCallbackName: 'onDeleteLabel'})\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n @Input() labelRef: TemplateRef<LabelComponent>;\r\n @Input() labelData: LabelData;\r\n @Input() labelText: string;\r\n\r\n /*\r\n * hint, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente\r\n * 2) incluir template\r\n * 3) incluir objeto label (interfaz expuesta)\r\n * 4) incluir hintText - incluir un hint con solo un texto\r\n */\r\n @DesyContentChild({ onSetCallbackName: 'overrideHintParams', onDeleteCallbackName: 'onDeleteHint'})\r\n @ContentChildren(HintComponent) hintComponent: HintComponent;\r\n @Input() hintRef: TemplateRef<HintComponent>;\r\n @Input() hintData: HintData;\r\n @Input() hintText: string;\r\n\r\n /*\r\n * errorMessage, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente\r\n * 2) incluir template\r\n * 3) incluir objeto label (interfaz expuesta)\r\n * 4) incluir errorText - incluir un errorText con solo un texto\r\n */\r\n @DesyContentChild({ onSetCallbackName: 'overrideErrorMessageParams', onDeleteCallbackName: 'onDeleteErrorMessage'})\r\n @ContentChildren(ErrorMessageComponent) errorMessageComponent: ErrorMessageComponent;\r\n @Input() errorMessageRef: TemplateRef<ErrorMessageComponent>;\r\n @Input() errorMessageData: ErrorMessageData;\r\n @Input() errorMessageText: string;\r\n\r\n\r\n @HostListener('focusout')\r\n onblur(): void {\r\n // DESY-77 SI TOCAN EL COMPONENTE Y SALEN SIN MODIFICAR EL VALOR, QUE SE ACTUALICE TOUCHED\r\n this.onTouch();\r\n }\r\n\r\n\r\n /*\r\n * Implementación de los métodos del ControlValueAccessor\r\n */\r\n\r\n onChange = (_: any) => {};\r\n onTouch = () => { };\r\n\r\n onInput(value: T): void{\r\n this.value = value;\r\n this.onTouch();\r\n this.onChange(this.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n writeValue(value: T): void {\r\n if (value){\r\n this.value = value;\r\n }\r\n this.onChange(value);\r\n }\r\n\r\n\r\n /*\r\n * Funciones para recuperar valores comunes\r\n */\r\n\r\n getHintId(): string {\r\n return this.hasHint() ? this.id + '-hint' : null;\r\n }\r\n\r\n getErrorId(): string {\r\n return this.hasErrorsMessage() ? this.id + '-error' : null;\r\n }\r\n\r\n hasLabel(): boolean {\r\n return !!(this.hasLabelComponent() || this.labelText || this.labelRef ||\r\n (this.labelData && (this.labelData.text || this.labelData.html)));\r\n }\r\n\r\n hasHint(): boolean {\r\n return !!(this.hasHintComponent() || this.hintText || this.hintRef || (this.hintData && (this.hintData.text || this.hintData.html)));\r\n }\r\n\r\n hasErrorsMessage(): boolean {\r\n return !!(this.hasErrorMessageComponent() || this.errorMessageText || this.errorMessageRef ||\r\n (this.errorMessageData && (this.errorMessageData.text || this.errorMessageData.html)));\r\n }\r\n\r\n hasLabelComponent(): boolean {\r\n return !!this.labelComponent;\r\n }\r\n\r\n hasHintComponent(): boolean {\r\n return !!this.hintComponent;\r\n }\r\n\r\n hasErrorMessageComponent(): boolean {\r\n return !!this.errorMessageComponent;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n ViewChild,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\n\r\n@Component({\r\n selector: 'desy-textarea',\r\n templateUrl: './textarea.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class TextareaComponent extends FormFieldComponent<string> implements OnChanges {\r\n\r\n protected static readonly DEFAULT_ROWS = 5;\r\n\r\n @ViewChild('textarea') textareaElement: ElementRef;\r\n\r\n @Input() name: string;\r\n @Input() rows: number;\r\n @Input() placeholder: string;\r\n @Input() describedBy: string;\r\n\r\n // form group class - asignar clases a la etiqueta desy-input\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n @Input() classes: string;\r\n @Input() autocomplete: string;\r\n @Input() maxlength: number;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n inputTransform = (value: string): string => value;\r\n\r\n ngOnChanges(): void {\r\n this.writeValue(this.value);\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n\r\n getRows(): number {\r\n return this.rows ? this.rows : TextareaComponent.DEFAULT_ROWS;\r\n }\r\n\r\n onInput(value: any): void{\r\n super.onInput(this.inputTransform(this.ensureText(value)));\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = this.inputTransform(this.ensureText(value));\r\n this.onChange(this.value);\r\n }\r\n\r\n registerInputTransform(fn: (value: string) => string): void {\r\n this.inputTransform = fn;\r\n }\r\n\r\n private ensureText(value: any): string {\r\n return value ? value || '' : '';\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport { TextareaComponent } from '../textarea/textarea.component';\r\n\r\n@Component({\r\n selector: 'desy-character-count',\r\n templateUrl: './character-count.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CharacterCountComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CharacterCountComponent extends FormFieldComponent<string> implements AfterViewInit, OnChanges {\r\n\r\n @ViewChild(TextareaComponent) textarea;\r\n\r\n @Input() name: string;\r\n @Input() type: string;\r\n @Input() rows: number;\r\n @Input() placeholder: string;\r\n @Input() maxlength: number;\r\n @Input() countbbdd: boolean;\r\n @Input() maxwords: number;\r\n @Input() threshold: number;\r\n @Input() formGroupClasses: string;\r\n @Input() countMessageClasses: string;\r\n @Input() classes: string;\r\n\r\n textareaElement: HTMLTextAreaElement;\r\n displayCountMessage: boolean;\r\n remaining: number;\r\n\r\n ngAfterViewInit(): void {\r\n this.textareaElement = (this.textarea.textareaElement.nativeElement as HTMLTextAreaElement);\r\n this.textarea.registerInputTransform(this.inputTransform.bind(this));\r\n this.registerOnChange(this.onChange);\r\n this.registerOnTouched(this.onTouch);\r\n this.textarea.setDisabledState(this.disabled);\r\n setTimeout(() => this.textarea.writeValue(this.value), 50);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.textarea) {\r\n setTimeout(() => this.textarea.ngOnChanges(changes), 50);\r\n }\r\n }\r\n\r\n inputTransform(value: string): string {\r\n if (value) {\r\n if (this.maxlength) {\r\n let length = this.calculateLenght(value);\r\n this.displayCountMessage = !this.threshold || length > (this.maxlength * this.threshold / 100);\r\n while (length > this.maxlength) {\r\n value = value.substring(0, value.length - 1);\r\n length = this.calculateLenght(value);\r\n }\r\n this.remaining = this.maxlength - length;\r\n } else {\r\n const words = value.match(/[\\wáéíóúÁÉÍÓÚüÜñÑ]+/g) || [];\r\n this.displayCountMessage = !this.threshold || (words.length > this.maxwords * this.threshold / 100);\r\n while ( words.length > this.maxwords) {\r\n value = value.substring(0, value.lastIndexOf(words.pop()));\r\n }\r\n this.remaining = this.maxwords - words.length;\r\n }\r\n } else {\r\n value = '';\r\n this.displayCountMessage = !this.threshold;\r\n this.remaining = this.maxlength ? this.maxlength : this.maxwords;\r\n }\r\n\r\n this.textareaElement.value = value;\r\n return value;\r\n }\r\n\r\n calculateLenght(value: string): number {\r\n let length = value.length;\r\n if (this.countbbdd && value) {\r\n const specialChars = value.match(/[^A-z0-9_\\s.,:;]/g);\r\n length += specialChars ? specialChars.length : 0;\r\n }\r\n return length;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n if (this.textarea) {\r\n this.textarea.registerOnChange(fn);\r\n this.onChange = (_: any) => {};\r\n }\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n if (this.textarea) {\r\n this.textarea.registerOnTouched(fn);\r\n this.onTouch = () => { };\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n if (this.textarea) {\r\n this.textarea.setDisabledState(isDisabled);\r\n }\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.value = value;\r\n if (this.textarea) {\r\n this.textarea.writeValue(value);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, forwardRef, HostBinding, Input, OnChanges, SimpleChanges, DoCheck } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\n\r\n@Component({\r\n selector: 'desy-input',\r\n templateUrl: './input.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InputComponent extends FormFieldComponent<any> implements OnChanges, DoCheck {\r\n\r\n @Input() name: string;\r\n @Input() type: string;\r\n @Input() describedBy: string;\r\n @Input() pattern: string;\r\n @Input() inputmode: string;\r\n @Input() placeholder: string;\r\n\r\n // form group class - asignar clases a la etiqueta desy-input\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n\r\n @Input() classes: string;\r\n @Input() autocomplete: string;\r\n @Input() maxlength: number;\r\n @Input() errorId: string;\r\n @Input() attributes: any;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n ngDoCheck(): void {\r\n if(this.attributes){\r\n this.setAttributes();\r\n }\r\n }\r\n\r\n setAttributes(){\r\n const input = document.getElementById(this.id ? this.id : 'input');\r\n const attr = this.attributes;\r\n Object.keys(attr).forEach(key => {\r\n input?.setAttribute(key, attr[key]);\r\n });\r\n }\r\n\r\n getErrorId(): string {\r\n return this.errorId ? this.errorId : super.getErrorId();\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.value = value || '';\r\n } else {\r\n this.value = '';\r\n }\r\n this.onChange(this.value);\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-select-item',\r\n templateUrl: './select-item.component.html'\r\n})\r\nexport class SelectItemComponent extends ContentBaseComponent {\r\n\r\n @Input() disabled: boolean;\r\n}\r\n","import {Component, forwardRef, Input} from '@angular/core';\r\nimport {SelectItemData} from '../../../interfaces';\r\nimport {SelectItemComponent} from '../select-item/select-item.component';\r\n\r\n@Component({\r\n selector: 'desy-option',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>',\r\n providers: [{provide: SelectItemComponent, useExisting: forwardRef(() => OptionComponent)}],\r\n})\r\nexport class OptionComponent extends SelectItemComponent implements SelectItemData {\r\n\r\n @Input() value: string;\r\n @Input() selected: boolean;\r\n @Input() hidden: boolean;\r\n\r\n}\r\n","import {Component, ContentChildren, forwardRef, Input, QueryList} from '@angular/core';\r\nimport {SelectItemComponent} from '../select-item/select-item.component';\r\nimport {OptionComponent} from '../option/option.component';\r\n\r\n@Component({\r\n selector: 'desy-option-group',\r\n templateUrl: './option-group.component.html',\r\n providers: [{provide: SelectItemComponent, useExisting: forwardRef(() => OptionGroupComponent)}],\r\n})\r\nexport class OptionGroupComponent extends SelectItemComponent {\r\n\r\n @Input() label: string;\r\n\r\n @ContentChildren(OptionComponent) items: QueryList<OptionComponent>;\r\n}\r\n","import {Component, forwardRef, Input, OnInit, OnChanges, SimpleChanges, ContentChildren, QueryList, AfterContentInit, HostBinding} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { SelectItemData } from '../../interfaces';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport {OptionGroupComponent} from './option-group/option-group.component';\r\nimport {SelectItemComponent} from './select-item/select-item.component';\r\n\r\n@Component({\r\n selector: 'desy-select',\r\n templateUrl: './select.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SelectComponent extends FormFieldComponent<any> implements AfterContentInit, OnChanges {\r\n\r\n @Input() name: string;\r\n @Input() items: SelectItemData[];\r\n @Input() describedBy?: string;\r\n\r\n\r\n // form group class - asignar clases a la etiqueta desy-select\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n\r\n @Input() classes: string;\r\n\r\n @ContentChildren(SelectItemComponent) itemComponents: QueryList<SelectItemComponent>;\r\n contentInit = false;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.contentInit = true;\r\n if (!this.value) {\r\n const items = this.getItems();\r\n const itemSelected = items?.find(item => item.selected);\r\n if (itemSelected) {\r\n setTimeout(() => this.writeValue(itemSelected.value));\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n this.onChange(value);\r\n }\r\n\r\n getItems(): SelectItemData[] {\r\n const items = (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\r\n return items;\r\n }\r\n\r\n isItemSelected(item: SelectItemData): boolean {\r\n return this.value ? this.value === item.value : item.selected;\r\n }\r\n\r\n isOptionGroup(item: SelectItemData): boolean {\r\n return item instanceof OptionGroupComponent;\r\n }\r\n\r\n}\r\n","import { Component, forwardRef, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\n\r\n@Component({\r\n selector: 'desy-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: forwardRef(() => FileUploadComponent),\r\n }\r\n ]\r\n})\r\nexport class FileUploadComponent extends FormFieldComponent<File> implements ControlValueAccessor, OnChanges {\r\n\r\n @Input() name: string;\r\n @Input() describedBy: string;\r\n @Input() classes: string;\r\n @Input() accept: string;\r\n\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n\r\n constructor() {\r\n super();\r\n }\r\n/***\r\n * nos devuelve un array de file : File[]\r\n * pero solo nos guardamos el primero\r\n * solo dejamos seleccionar uno\r\n */\r\n onInput(value: any): void{\r\n if (value && value.length > 0 && value[0]){\r\n this.value = value[0];\r\n }else {\r\n this.value = null;\r\n }\r\n this.onTouch();\r\n this.onChange(this.value);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ItemInputGroupData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-input-group-item',\r\n template: ''\r\n})\r\nexport class InputGroupItemComponent implements ItemInputGroupData {\r\n @Input() classes?: string;\r\n\r\n}\r\n","/**\r\n * Decorador para controlar los cambios de un input\r\n * @param callbackName nombre de la función a la que se llamará tras aplicar el cambio\r\n */\r\nexport function DesyOnInputChange(callbackName: string): PropertyDecorator {\r\n return (target: any, propertyKey: string) => {\r\n const privateKeyName = `_${propertyKey}`;\r\n\r\n Object.defineProperty(target, propertyKey, {\r\n set(value): void {\r\n this[privateKeyName] = value;\r\n this[callbackName]();\r\n },\r\n get(): any {\r\n return this[privateKeyName];\r\n }\r\n });\r\n };\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'makeHtmlList'\r\n})\r\nexport class MakeHtmlListPipe implements PipeTransform {\r\n\r\n transform(classes: string[], valueForEmpty?: string): string|null {\r\n let filteredList = classes.filter(c => c).join(' ');\r\n if (filteredList.length === 0 && valueForEmpty) {\r\n filteredList = valueForEmpty;\r\n }\r\n return filteredList;\r\n }\r\n}\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {InputGroupItemComponent} from '../input-group-item/input-group-item.component';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-input-group-input',\r\n templateUrl: './input-group-input.component.html',\r\n providers: [{provide: InputGroupItemComponent, useExisting: forwardRef(() => InputGroupInputComponent)}],\r\n})\r\nexport class InputGroupInputComponent extends InputGroupItemComponent {\r\n\r\n isSelect = false;\r\n\r\n @Input() id?: string;\r\n @Input() name: string;\r\n @Input() value?: any;\r\n @Output() valueChange = new EventEmitter<any>();\r\n @Input() formGroupClasses?: string;\r\n\r\n @Input() type?: string;\r\n @Input() inputmode?: string;\r\n @Input() autocomplete?: string;\r\n @Input() placeholder?: string;\r\n @Input() pattern?: string;\r\n @Input() maxlength?: number;\r\n @Input() disabled?: boolean;\r\n\r\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {InputGroupItemComponent} from '../input-group-item/input-group-item.component';\r\nimport {OptionComponent} from '../../select/option/option.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {LabelComponent} from '../../label/label.component';\r\n\r\n@Component({\r\n selector: 'desy-input-group-select',\r\n templateUrl: './input-group-select.component.html',\r\n providers: [{provide: InputGroupItemComponent, useExisting: forwardRef(() => InputGroupSelectComponent)}],\r\n})\r\nexport class InputGroupSelectComponent extends InputGroupItemComponent {\r\n\r\n isSelect = true;\r\n\r\n @Input() id?: string;\r\n @Input() name: string;\r\n @Input() value?: any;\r\n @Output() valueChange = new EventEmitter<any>();\r\n @Input() formGroupClasses?: string;\r\n @Input() disabled?: boolean;\r\n\r\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\r\n @ContentChildren(OptionComponent) selectItemComponentList: QueryList<OptionComponent>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n\r\n}\r\n","import {Component, forwardRef, TemplateRef, ViewChild} from '@angular/core';\r\nimport {InputGroupItemComponent} from '../input-group-item/input-group-item.component';\r\nimport {ItemDividerInputGroupData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-input-group-divider',\r\n templateUrl: './input-group-divider.component.html',\r\n providers: [{provide: InputGroupItemComponent, useExisting: forwardRef(() => InputGroupDividerComponent)}],\r\n})\r\nexport class InputGroupDividerComponent extends InputGroupItemComponent implements ItemDividerInputGroupData {\r\n\r\n isSelect = false;\r\n divider = this;\r\n\r\n @ViewChild('dividerContent', { static: true }) dividerContent: TemplateRef<any>;\r\n\r\n}\r\n","import {\r\n AfterContentInit, AfterViewChecked,\r\n Component,\r\n ContentChildren, EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional, Output,\r\n QueryList,\r\n TemplateRef, ViewChild,\r\n OnChanges\r\n} from '@angular/core';\r\nimport {FieldsetData, LegendData, ItemInputGroupData, LabelData, SelectItemData} from '../../interfaces';\r\nimport { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { LegendComponent } from '../fieldset/legend/legend.component';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport {InputGroupItemComponent} from './input-group-item/input-group-item.component';\r\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {FieldsetComponent} from '../fieldset/fieldset.component';\r\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\r\nimport {InputGroupInputComponent} from './input-group-input/input-group-input.component';\r\nimport {InputGroupSelectComponent} from './input-group-select/input-group-select.component';\r\nimport {InputGroupDividerComponent} from './input-group-divider/input-group-divider.component';\r\nimport {StringUtils} from '../../../shared/utils/string-utils';\r\n\r\n@Component({\r\n selector: 'desy-input-group',\r\n templateUrl: './input-group.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputGroupComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InputGroupComponent extends FormFieldComponent<any> implements AfterContentInit, AfterViewChecked, OnChanges {\r\n\r\n @Input() ngModelGroup: string;\r\n\r\n @DesyOnInputChange('onExternalChange')\r\n @Input() items: ItemInputGroupData[];\r\n @Output() itemsChange: EventEmitter<ItemInputGroupData[]> = new EventEmitter<ItemInputGroupData[]>();\r\n\r\n @DesyOnInputChange('onExternalChange')\r\n @Input() namePrefix: string;\r\n @Input() classes: string;\r\n\r\n // form group class - asignar clases a la etiqueta desy-input-group\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n\r\n @Input() errorMessage: string;\r\n @Input() id: string;\r\n\r\n /**\r\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir objeto FieldsetData (interfaz expuesta)\r\n * 2) incluir template legend\r\n * 3) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\r\n * 4) incluir legendText - incluir un fieldset con un texto en la legenda\r\n */\r\n @Input() fieldsetData: FieldsetData;\r\n @Input() legendRef: TemplateRef<LegendComponent>;\r\n @Input() legendData: LegendData;\r\n @Input() legendText: string;\r\n\r\n @ContentChildren(InputGroupItemComponent) itemsComponents: QueryList<InputGroupItemComponent>;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\r\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\r\n\r\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\r\n\r\n private contentInit = false;\r\n\r\n constructor(@Optional() public controlContainer: ControlContainer) {\r\n super();\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.contentInit = true;\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n const items = this.getItems();\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.value = value;\r\n const items = this.getItems();\r\n items.forEach(item => {\r\n const v = this.value[this.getItemName(item)];\r\n item.value = v ? v : null;\r\n });\r\n\r\n if (this.items) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n this.onChange(value);\r\n }\r\n\r\n onExternalChange(): void {\r\n if (!this.contentInit) {\r\n return;\r\n }\r\n\r\n if (!this.value) {\r\n this.value = {};\r\n }\r\n\r\n const items = this.getItems();\r\n items.forEach(item => this.value[this.getItemName(item)] = item.value);\r\n this.onChange(this.value);\r\n }\r\n\r\n onInternalChange(item: ItemInputGroupData, itemValue: any): void {\r\n const itemName = this.getItemName(item);\r\n if (!this.value) {\r\n this.value = {};\r\n }\r\n\r\n if (this.value[itemName] !== itemValue) {\r\n this.value[itemName] = itemValue;\r\n this.onChange(this.value);\r\n\r\n if (item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent) {\r\n item.valueChange.emit(itemValue);\r\n }\r\n\r\n if (this.items) {\r\n item.value = itemValue;\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n }\r\n\r\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\r\n fieldset.caller = this.innerHtml;\r\n fieldset.errorId = this.getErrorId();\r\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\r\n fieldset.role = 'group';\r\n fieldset.detectChanges();\r\n }\r\n\r\n /*\r\n * Métodos para proporcionar datos\r\n */\r\n getItems(): ItemInputGroupData[] {\r\n return this.itemsComponents && this.itemsComponents.length ? this.itemsComponents.toArray() : this.items;\r\n }\r\n\r\n getItemLabelRef(item: ItemInputGroupData): TemplateRef<any> {\r\n return item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent ? item.labelRef : null;\r\n }\r\n\r\n getItemLabelData(item: ItemInputGroupData): LabelData {\r\n return item.labelData ? item.labelData : { text: item.labelText };\r\n }\r\n\r\n hasFieldset(): boolean {\r\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData\r\n || (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\r\n }\r\n\r\n hasFieldsetComponent(): boolean {\r\n return !!this.fieldsetComponent;\r\n }\r\n\r\n hasLegendComponent(): boolean {\r\n return !!this.legendComponent;\r\n }\r\n\r\n getItemName(item: ItemInputGroupData): string {\r\n return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;\r\n }\r\n\r\n getItemSelectOptions(item: ItemInputGroupData): SelectItemData[] {\r\n return item instanceof InputGroupSelectComponent ?\r\n item.selectItemComponentList.toArray() : item.selectItems;\r\n }\r\n\r\n getItemDividerTemplate(item: ItemInputGroupData): TemplateRef<any> {\r\n return item.divider instanceof InputGroupDividerComponent ? item.divider.dividerContent : null;\r\n }\r\n\r\n getItemDividerHtml(item: ItemInputGroupData): string {\r\n return item.divider.html ? item.divider.html : `<p>${ StringUtils.escapeHtml(item.divider.text) }</p>`;\r\n }\r\n\r\n isSelectItem(item: ItemInputGroupData): boolean {\r\n let hasSelectItems;\r\n if (item instanceof InputGroupSelectComponent) {\r\n hasSelectItems = item.selectItemComponentList && item.selectItemComponentList.length > 0;\r\n } else {\r\n hasSelectItems = item.selectItems;\r\n }\r\n return item.isSelect && hasSelectItems;\r\n }\r\n\r\n hasItemLabel(item: ItemInputGroupData): boolean {\r\n return !!((item.labelData && (item.labelData.text || item.labelData.html)) || item.labelText);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Host,\r\n Input,\r\n OnChanges, OnDestroy, OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {ItemRadioData} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport {RadiosComponent} from '../radios.component';\r\nimport {animate, animateChild, query, state, style, transition, trigger} from '@angular/animations';\r\nimport {HintComponent} from '../../hint/hint.component';\r\n\r\n\r\n@Component({\r\n selector: 'desy-radio-item',\r\n templateUrl: './radio-item.component.html',\r\n animations: [\r\n trigger('displayConditional', [\r\n state('void', style({\r\n opacity: '0.0',\r\n transform: 'scale(0.95)'\r\n })),\r\n state('*', style({\r\n opacity: '1.0',\r\n transform: 'scale(1.0)'\r\n })),\r\n transition(':enter', [\r\n animate('100ms ease-out')\r\n ]),\r\n transition('* => *', [\r\n query('@*', animateChild(), {optional: true})\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class RadioItemComponent extends ContentBaseComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit, ItemRadioData {\r\n\r\n @ViewChild('input') inputElement: ElementRef;\r\n\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() value: any;\r\n @Input() conditional: boolean;\r\n @Input() disabled: boolean;\r\n @Input() divider: string;\r\n @Input() classes: string;\r\n\r\n @ContentChildren(LabelComponent) labelComponentList: QueryList<LabelComponent>;\r\n @ContentChildren(HintComponent) hintComponentList: QueryList<HintComponent>;\r\n @ContentChildren(ContentComponent) conditionalContentList: QueryList<ContentComponent>;\r\n\r\n @Input() checked: boolean;\r\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n index = 0;\r\n lastChecked;\r\n lastValue;\r\n radioId;\r\n\r\n constructor(@Host() private radios: RadiosComponent, private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n if (!this.radios) {\r\n throw Error('Radios items must be inside of RadiosComponent');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.radios.markForUpdateCheckboxIds();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.radios.markForUpdateCheckboxIds();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.checked !== this.lastChecked && this.isInit()) {\r\n this.setChecked(this.checked);\r\n this.radios.updateValueFromRadioItems();\r\n } else if (this.lastValue !== undefined && this.lastValue !== this.value) {\r\n this.radios.updateValueFromRadioItems();\r\n }\r\n this.lastValue = this.value;\r\n\r\n if (this.id !== this.radioId) {\r\n this.radios.markForUpdateCheckboxIds();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setChecked(this.checked);\r\n this.radios.updateValueFromRadioItems();\r\n }\r\n\r\n setChecked(checked: boolean): void {\r\n this.checked = checked;\r\n this.lastChecked = checked;\r\n this.checkedChange.emit(checked);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n /*\r\n * Funciones para aportar información desde el componente checkboxes que lo contiene\r\n */\r\n\r\n getItemHintId(): string {\r\n return this.hintComponentList && this.hintComponentList.length > 0 && this.radioId ? this.radioId + '-item-hint' : null;\r\n }\r\n\r\n hasChanged(): void {\r\n this.setChecked(this.isInputChecked());\r\n this.radios.updateValueFromRadioItems();\r\n }\r\n\r\n isInit(): boolean {\r\n return !!this.inputElement;\r\n }\r\n\r\n isInputChecked(): boolean {\r\n return this.inputElement ? this.inputElement.nativeElement.checked : null;\r\n }\r\n\r\n updateRadioId(index?: number): void {\r\n if (this.id) {\r\n this.radioId = this.id;\r\n } else {\r\n const idPrefix = this.radios.idPrefix ? this.radios.idPrefix : this.radios.name;\r\n if (index === 0) {\r\n this.radioId = idPrefix;\r\n } else {\r\n this.radioId = `${idPrefix}-${index}`;\r\n }\r\n }\r\n\r\n if (this.labelComponentList && this.labelComponentList.length > 0) {\r\n this.labelComponentList.first.for = this.radioId;\r\n }\r\n\r\n if (this.hintComponentList && this.hintComponentList.length > 0) {\r\n this.hintComponentList.first.id = this.getItemHintId();\r\n }\r\n\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n /*\r\n * Funciones para aportar información desde el componente checkboxes que lo contiene\r\n */\r\n\r\n hasDividers(): boolean {\r\n return this.radios.hasDividers;\r\n }\r\n\r\n hasError(): boolean {\r\n return this.radios.hasErrorsMessage();\r\n }\r\n\r\n getNameRadio(): string {\r\n return this.radios.name;\r\n }\r\n\r\n getDescribedBy(): string {\r\n return !this.radios.hasFieldset() ? this.radios.describedBy : null;\r\n }\r\n\r\n}\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n DoCheck,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n QueryList,\r\n TemplateRef, ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {FieldsetData, ItemRadioData, LegendData} from '../../interfaces';\r\nimport {LegendComponent} from '../fieldset/legend/legend.component';\r\nimport {FormFieldComponent} from '../form-field/form-field.component';\r\nimport {RadioItemComponent} from './radio-item/radio-item.component';\r\nimport {FieldsetComponent} from '../fieldset/fieldset.component';\r\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\r\nimport {HintComponent} from '../hint/hint.component';\r\nimport {ErrorMessageComponent} from '../error-message/error-message.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\r\n\r\n@Component({\r\n selector: 'desy-radios',\r\n templateUrl: './radios.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadiosComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class RadiosComponent extends FormFieldComponent<any> implements DoCheck, AfterContentInit {\r\n \r\n /**\r\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente FieldsetComponent\r\n * 2) incluir objeto FieldsetData (interfaz expuesta)\r\n * 3) incluir componente LegendComponent\r\n * 4) incluir template legend\r\n * 5) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\r\n * 6) incluir legendText - incluir un fieldset con un texto en la legenda\r\n */\r\n @Input() fieldsetData: FieldsetData;\r\n @Input() legendRef: TemplateRef<LegendComponent>;\r\n @Input() legendData: LegendData;\r\n @Input() legendText: string;\r\n \r\n @DesyOnInputChange('onIdPrefixChange')\r\n @Input() idPrefix: string;\r\n \r\n @DesyOnInputChange('onNameChange')\r\n @Input() name: string;\r\n \r\n @Input() items: ItemRadioData[];\r\n @Output() itemsChange = new EventEmitter<ItemRadioData[]>();\r\n \r\n @Input() formGroupClasses: string;\r\n @Input() hasDividers: boolean;\r\n @Input() hasError: boolean;\r\n @Input() classes: string;\r\n @Input() describedBy: string;\r\n \r\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\r\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\r\n \r\n @ContentChildren(RadioItemComponent) radioComponentItems: QueryList<RadioItemComponent>;\r\n \r\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\r\n @ViewChildren(RadioItemComponent) radioComponentItems2: QueryList<RadioItemComponent>;\r\n \r\n private nextValue = null;\r\n private updateChekboxIds = false;\r\n private contentInit = false;\r\n \r\n ngDoCheck(): void {\r\n if (this.nextValue !== null && (this.nextValue !== '' || (this.value && this.value !== ''))) {\r\n this.value = this.nextValue;\r\n this.nextValue = null;\r\n const updateItems = this.updateRadioItemsChecked();\r\n setTimeout(() => {\r\n this.onChange(this.value);\r\n if (updateItems && this.items && this.items.length > 0) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n });\r\n }\r\n\r\n if (this.updateChekboxIds) {\r\n const checkboxItems = this.getRadioItems();\r\n if (checkboxItems.length > 0) {\r\n checkboxItems.forEach((item, index) => item.updateRadioId(index));\r\n }\r\n this.updateChekboxIds = false;\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n\r\n this.contentInit = true;\r\n }\r\n\r\n /**\r\n * Se sobrescribe el writeValue de FormField para gestionar en un único punto el valor de value\r\n * @param value nuevo valor a establecer\r\n */\r\n writeValue(value: any[]): void {\r\n if (value) {\r\n this.nextValue = value;\r\n }\r\n }\r\n\r\n onIdPrefixChange(): void {\r\n if (this.contentInit) {\r\n this.markForUpdateCheckboxIds();\r\n }\r\n this.propagateNewIdPrefixValue();\r\n }\r\n\r\n\r\n onNameChange(): void {\r\n\r\n if (this.contentInit) {\r\n this.markForUpdateCheckboxIds();\r\n }\r\n\r\n this.propagateNewIdPrefixValue();\r\n }\r\n\r\n /**\r\n * Actualiza los componentes externos que tienen valores dependientes de idPrefix\r\n * @private\r\n */\r\n private propagateNewIdPrefixValue(): void {\r\n if (this.hintComponent) {\r\n this.overrideHintParams(this.hintComponent);\r\n }\r\n\r\n if (this.errorMessageComponent) {\r\n this.overrideErrorMessageParams(this.errorMessageComponent);\r\n }\r\n\r\n // Al hacer el override de hint o error ya se aplica sobre el fieldset, por lo que sólo es necesario aplicarlo directamente\r\n // sobre el fieldset cuando ninguno de estos existe\r\n if (!this.hintComponent && !this.errorMessageComponent && this.fieldsetComponent) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n markForUpdateCheckboxIds(): void {\r\n this.updateChekboxIds = true;\r\n }\r\n\r\n /**\r\n * Actualiza el estado de los items según el valor asignado al componente\r\n */\r\n private updateRadioItemsChecked(): boolean {\r\n let itemsUpdated = false;\r\n const checkboxItems = this.getRadioItems();\r\n if (checkboxItems.length > 0) {\r\n checkboxItems.forEach(item => {\r\n if (item.value === this.value && !item.lastChecked) {\r\n item.setChecked(true);\r\n itemsUpdated = true;\r\n } else if (item.value !== this.value && item.lastChecked) {\r\n item.setChecked(false);\r\n itemsUpdated = true;\r\n }\r\n });\r\n }\r\n return itemsUpdated;\r\n }\r\n\r\n /**\r\n * Actualiza el valor cuando se produce un cambio en los items, tanto interno como externo\r\n */\r\n updateValueFromRadioItems(): void {\r\n\r\n /*\r\n * Se realiza dentro de un timeout porque, aunque los componentes items se hayan inicializado, en este componente puede ser que todavía\r\n * no se detecten, y por tanto el getCheckboxItems no devuelva la lista correcta.\r\n */\r\n setTimeout( () => {\r\n const items = this.getRadioItems();\r\n if (items && items.length > 0 && items.findIndex(item => !item.isInit() && !item.divider) < 0) {\r\n const checkedItem = items.find(item => item.isInputChecked() && !item.divider);\r\n this.nextValue = checkedItem ? checkedItem.value : null;\r\n }\r\n });\r\n\r\n if (this.items && this.items.length > 0) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n\r\n /*\r\n * Funciones para reemplazar el contenido del fieldset, label, hint o errormessage\r\n */\r\n\r\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\r\n fieldset.caller = this.innerHtml;\r\n fieldset.errorId = this.getErrorId();\r\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\r\n fieldset.detectChanges();\r\n }\r\n\r\n overrideHintParams(hint: HintComponent): void {\r\n hint.id = this.getHintId();\r\n hint.detectChanges();\r\n\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n overrideErrorMessageParams(errorMessage: ErrorMessageComponent): void {\r\n errorMessage.id = this.getErrorId();\r\n errorMessage.detectChanges();\r\n\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n onDeleteHint(): void {\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n onDeleteErrorMessage(): void {\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Funciones para recuperar valores comunes\r\n */\r\n\r\n hasFieldset(): boolean {\r\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData ||\r\n (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\r\n }\r\n\r\n hasFieldsetComponent(): boolean {\r\n return !!this.fieldsetComponent;\r\n }\r\n\r\n hasLegendComponent(): boolean {\r\n return !!this.legendComponent;\r\n }\r\n\r\n getErrorId(): string {\r\n return this.hasErrorsMessage() ? this.getIdPrefix() + '-error' : null;\r\n }\r\n\r\n getHintId(): string {\r\n return this.hasHint() ? this.getIdPrefix() + '-hint' : null;\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.name;\r\n }\r\n\r\n getRadioItems(): RadioItemComponent[] {\r\n let checkboxItems = [];\r\n if (this.radioComponentItems && this.radioComponentItems.length > 0) {\r\n checkboxItems = this.radioComponentItems.toArray();\r\n } else if (this.radioComponentItems2 && this.radioComponentItems2.length > 0) {\r\n checkboxItems = this.radioComponentItems2.toArray();\r\n }\r\n return checkboxItems;\r\n }\r\n}\r\n","import {\r\n AfterViewInit, ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Host,\r\n HostBinding,\r\n Input, OnChanges, OnDestroy, OnInit,\r\n Output, QueryList, SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {ItemCheckboxData} from '../../../interfaces';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport {animate, animateChild, query, state, style, transition, trigger} from '@angular/animations';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport {HintComponent} from '../../hint/hint.component';\r\nimport {CheckboxesComponent} from '../checkboxes.component';\r\nimport {AccessibilityComponent} from '../../../../shared/components';\r\nimport {DesyOnInputChange} from \"../../../../shared/decorators/desy-on-input-change.decorator\";\r\n\r\n@Component({\r\n selector: 'desy-checkbox-item',\r\n templateUrl: './checkbox-item.component.html',\r\n animations: [\r\n trigger('displayConditional', [\r\n state('void', style({\r\n opacity: '0.0',\r\n transform: 'scale(0.95)'\r\n })),\r\n state('*', style({\r\n opacity: '1.0',\r\n transform: 'scale(1.0)'\r\n })),\r\n transition(':enter', [\r\n animate('100ms ease-out')\r\n ]),\r\n transition('* => *', [\r\n query('@*', animateChild(), {optional: true})\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class CheckboxItemComponent extends AccessibilityComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit, ItemCheckboxData {\r\n\r\n @ViewChild('input') inputElement: ElementRef;\r\n\r\n @Input() id: string;\r\n @Input() value: any;\r\n @Input() name: string;\r\n @Input() conditional: boolean;\r\n @Input() disabled: boolean;\r\n @Input() isIndeterminate: boolean;\r\n\r\n @DesyOnInputChange('setIndeterminateStatus')\r\n @Input() indeterminateChecked: boolean;\r\n @Input() @HostBinding('class') classes: any;\r\n\r\n @ContentChildren(LabelComponent) labelComponentList: QueryList<LabelComponent>;\r\n @ContentChildren(HintComponent) hintComponentList: QueryList<HintComponent>;\r\n @ContentChildren(ContentComponent) conditionalContentList: QueryList<ContentComponent>;\r\n\r\n @Input() checked: boolean;\r\n\r\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() indeterminateChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n lastChecked;\r\n lastIndeterminate;\r\n lastValue;\r\n checkboxId;\r\n\r\n constructor(@Host() private checkboxes: CheckboxesComponent, private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n if (!this.checkboxes) {\r\n throw Error('Checkbox items must be inside of CheckboxesComponent');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.checkboxes.markForUpdateCheckboxIds();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.checkboxes.markForUpdateCheckboxIds();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.checkboxes.hasDividers ? this.classes += ' border-t border-b border-neutral-base -mb-px' : this.classes;\r\n if (this.checked !== this.lastChecked && this.isInit()) {\r\n this.setChecked(this.checked);\r\n this.checkboxes.updateValueFromCheckboxItems();\r\n } else if (this.lastValue !== undefined && this.lastValue !== this.value) {\r\n this.checkboxes.updateValueFromCheckboxItems();\r\n }\r\n\r\n if(this.indeterminateChecked !== this.lastIndeterminate && this.isInit()){\r\n this.setIndeterminateChecked(this.indeterminateChecked);\r\n this.checkboxes.updateValueFromCheckboxItems();\r\n }\r\n\r\n\r\n this.lastValue = this.value;\r\n\r\n if (this.id !== this.checkboxId) {\r\n this.checkboxes.markForUpdateCheckboxIds();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setChecked(this.checked);\r\n this.setIndeterminateChecked(this.indeterminateChecked);\r\n this.checkboxes.updateValueFromCheckboxItems();\r\n }\r\n\r\n getItemHintId(): string {\r\n return this.hintComponentList && this.hintComponentList.length > 0 && this.checkboxId ? this.checkboxId + '-item-hint' : null;\r\n }\r\n\r\n hasChanged(): void {\r\n // Se establece el cambio a visualizar en el input\r\n const input = this.inputElement.nativeElement;\r\n if (this.isIndeterminate) {\r\n if (input.readOnly) {\r\n input.checked = false;\r\n input.readOnly = false;\r\n } else if (!input.checked) {\r\n input.readOnly = true;\r\n input.indeterminate = true;\r\n }\r\n }\r\n this.setChecked(input.checked);\r\n this.setIndeterminateChecked(input.indeterminate);\r\n this.checkboxes.updateValueFromCheckboxItems();\r\n }\r\n\r\n setChecked(checked: boolean): void {\r\n this.checked = checked;\r\n this.lastChecked = checked;\r\n this.checkedChange.emit(checked);\r\n this.changeDetectorRef.detectChanges(); // Avisa al elemento input para que actualice su estado\r\n }\r\n\r\n setIndeterminateChecked(indeterminateChecked: boolean): void {\r\n this.indeterminateChecked = indeterminateChecked;\r\n this.lastIndeterminate = indeterminateChecked;\r\n this.indeterminateChange.emit(indeterminateChecked);\r\n this.changeDetectorRef.detectChanges(); // Avisa al elemento input para que actualice su estado\r\n }\r\n\r\n setIndeterminateStatus(): void {\r\n const input = this.inputElement?.nativeElement;\r\n if (input) {\r\n if (this.indeterminateChecked) {\r\n input.readOnly = true;\r\n input.indeterminate = true;\r\n } else if (input.readOnly) {\r\n input.readOnly = false;\r\n input.indeterminate = false;\r\n }\r\n }\r\n }\r\n\r\n isInit(): boolean {\r\n return !!this.inputElement;\r\n }\r\n\r\n getValue(): any {\r\n const input = this.inputElement.nativeElement;\r\n return input.checked || input.indeterminate ? this.value : null;\r\n }\r\n\r\n updateCheckboxId(index?: number): void {\r\n if (this.id) {\r\n this.checkboxId = this.id;\r\n } else {\r\n const idPrefix = this.checkboxes.idPrefix ? this.checkboxes.idPrefix : this.checkboxes.name;\r\n if (index === 0) {\r\n this.checkboxId = idPrefix;\r\n } else {\r\n this.checkboxId = `${idPrefix}-${index}`;\r\n }\r\n }\r\n\r\n if (this.labelComponentList && this.labelComponentList.length > 0) {\r\n this.labelComponentList.first.for = this.checkboxId;\r\n }\r\n\r\n if (this.hintComponentList && this.hintComponentList.length > 0) {\r\n this.hintComponentList.first.id = this.getItemHintId();\r\n }\r\n\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n /*\r\n * Funciones para aportar información desde el componente checkboxes que lo contiene\r\n */\r\n\r\n hasDividers(): boolean {\r\n return this.checkboxes.hasDividers; \r\n }\r\n\r\n hasError(): boolean {\r\n return this.checkboxes.hasErrorsMessage();\r\n }\r\n\r\n getNameCheckbox(): string {\r\n return this.checkboxes.name;\r\n }\r\n\r\n getDescribedBy(): string {\r\n return !this.checkboxes.hasFieldset() ? this.checkboxes.describedBy : null;\r\n }\r\n}\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren, DoCheck, EventEmitter,\r\n forwardRef,\r\n Input, Output,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef, ViewChild, ViewChildren\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport { FieldsetData, LegendData, ItemCheckboxData } from '../../interfaces';\r\nimport { LegendComponent } from '../fieldset/legend/legend.component';\r\nimport {CheckboxItemComponent} from './checkbox-item/checkbox-item.component';\r\nimport {HintComponent} from '../hint/hint.component';\r\nimport {ErrorMessageComponent} from '../error-message/error-message.component';\r\nimport {FieldsetComponent} from '../fieldset/fieldset.component';\r\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\r\n\r\n\r\n@Component({\r\n selector: 'desy-checkboxes',\r\n templateUrl: './checkboxes.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CheckboxesComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CheckboxesComponent extends FormFieldComponent<any[]> implements AfterContentInit, DoCheck {\r\n \r\n /**\r\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente FieldsetComponent\r\n * 2) incluir objeto FieldsetData (interfaz expuesta)\r\n * 3) incluir componente LegendComponent\r\n * 4) incluir template legend\r\n * 5) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\r\n * 6) incluir legendText - incluir un fieldset con un texto en la legenda\r\n */\r\n @Input() fieldsetData: FieldsetData;\r\n @Input() legendRef: TemplateRef<LegendComponent>;\r\n @Input() legendData: LegendData;\r\n @Input() legendText: string;\r\n\r\n @DesyOnInputChange('onIdPrefixChange')\r\n @Input() idPrefix: string;\r\n \r\n @DesyOnInputChange('onNameChange')\r\n @Input() name: string;\r\n \r\n @Input() items: ItemCheckboxData[];\r\n @Output() itemsChange = new EventEmitter<ItemCheckboxData[]>();\r\n \r\n @Input() formGroupClasses: string;\r\n @Input() hasDividers: boolean;\r\n @Input() hasError: boolean;\r\n @Input() classes: string;\r\n @Input() describedBy: string;\r\n \r\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\r\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\r\n \r\n @ContentChildren(CheckboxItemComponent) checkboxComponentItems: QueryList<CheckboxItemComponent>;\r\n \r\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\r\n @ViewChildren(CheckboxItemComponent) checkboxComponentItems2: QueryList<CheckboxItemComponent>;\r\n \r\n private nextValue = null;\r\n private updateChekboxIds = false;\r\n private contentInit = false;\r\n \r\n ngDoCheck(): void {\r\n if (this.nextValue !== null && (this.nextValue.length > 0 || (this.value && this.value.length > 0))) {\r\n this.value = this.nextValue;\r\n this.nextValue = null;\r\n this.updateCheckboxItemsChecked();\r\n setTimeout(() => {\r\n this.onChange(this.value);\r\n if (this.items && this.items.length > 0) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n });\r\n }\r\n\r\n if (this.updateChekboxIds) {\r\n const checkboxItems = this.getCheckboxItems();\r\n if (checkboxItems.length > 0) {\r\n checkboxItems.forEach((item, index) => item.updateCheckboxId(index));\r\n }\r\n this.updateChekboxIds = false;\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n\r\n this.contentInit = true;\r\n }\r\n\r\n /**\r\n * Se sobrescribe el writeValue de FormField para gestionar en un único punto el valor de value\r\n * @param value nuevo valor a establecer\r\n */\r\n writeValue(value: any[]): void {\r\n if (value) {\r\n this.nextValue = value;\r\n }\r\n }\r\n\r\n onIdPrefixChange(): void {\r\n if (this.contentInit) {\r\n this.markForUpdateCheckboxIds();\r\n }\r\n this.propagateNewIdPrefixValue();\r\n }\r\n\r\n\r\n onNameChange(): void {\r\n\r\n if (this.contentInit) {\r\n this.markForUpdateCheckboxIds();\r\n }\r\n\r\n this.propagateNewIdPrefixValue();\r\n }\r\n\r\n /**\r\n * Actualiza los componentes externos que tienen valores dependientes de idPrefix\r\n * @private\r\n */\r\n private propagateNewIdPrefixValue(): void {\r\n if (this.hintComponent) {\r\n this.overrideHintParams(this.hintComponent);\r\n }\r\n\r\n if (this.errorMessageComponent) {\r\n this.overrideErrorMessageParams(this.errorMessageComponent);\r\n }\r\n\r\n // Al hacer el override de hint o error ya se aplica sobre el fieldset, por lo que sólo es necesario aplicarlo directamente\r\n // sobre el fieldset cuando ninguno de estos existe\r\n if (!this.hintComponent && !this.errorMessageComponent && this.fieldsetComponent) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n markForUpdateCheckboxIds(): void {\r\n this.updateChekboxIds = true;\r\n }\r\n\r\n\r\n /**\r\n * Actualiza el estado de los items según el valor asignado al componente\r\n */\r\n private updateCheckboxItemsChecked(): void {\r\n const checkboxItems = this.getCheckboxItems();\r\n if (checkboxItems.length > 0) {\r\n checkboxItems.forEach(item => {\r\n const itemChecked = Array.isArray(this.value) ? this.value.findIndex(v => v === item.value) > -1 : this.value === item.value;\r\n if (itemChecked !== item.lastChecked) {\r\n item.setChecked(itemChecked);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Actualiza el valor cuando se produce un cambio en los items, tanto interno como externo\r\n */\r\n updateValueFromCheckboxItems(): void {\r\n\r\n /*\r\n * Se realiza dentro de un timeout porque, aunque los componentes items se hayan inicializado, en este componente puede ser que todavía\r\n * no se detecten, y por tanto el getCheckboxItems no devuelva la lista correcta.\r\n */\r\n setTimeout( () => {\r\n const items = this.getCheckboxItems();\r\n if (items && items.length > 0 && items.findIndex(item => !item.isInit()) < 0) {\r\n this.nextValue = items.filter(item => item.checked).map(item => item.getValue());\r\n }\r\n });\r\n\r\n if (this.items && this.items.length > 0) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n\r\n /*\r\n * Funciones para reemplazar el contenido del fieldset, label, hint o errormessage\r\n */\r\n\r\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\r\n fieldset.caller = this.innerHtml;\r\n fieldset.errorId = this.getErrorId();\r\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\r\n fieldset.detectChanges();\r\n }\r\n\r\n overrideHintParams(hint: HintComponent): void {\r\n hint.id = this.getHintId();\r\n hint.detectChanges();\r\n\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n overrideErrorMessageParams(errorMessage: ErrorMessageComponent): void {\r\n errorMessage.id = this.getErrorId();\r\n errorMessage.detectChanges();\r\n\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n onDeleteHint(): void {\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n onDeleteErrorMessage(): void {\r\n if (this.hasFieldsetComponent()) {\r\n this.overrideFieldsetParams(this.fieldsetComponent);\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Funciones para recuperar valores comunes\r\n */\r\n\r\n\r\n hasFieldset(): boolean {\r\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData ||\r\n (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\r\n }\r\n\r\n hasFieldsetComponent(): boolean {\r\n return !!this.fieldsetComponent;\r\n }\r\n\r\n hasLegendComponent(): boolean {\r\n return !!this.legendComponent;\r\n }\r\n\r\n getErrorId(): string {\r\n return this.hasErrorsMessage() ? this.getIdPrefix() + '-error' : undefined;\r\n }\r\n\r\n getHintId(): string {\r\n return this.hasHint() ? this.getIdPrefix() + '-hint' : undefined;\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.name;\r\n }\r\n\r\n getCheckboxItems(): CheckboxItemComponent[] {\r\n let checkboxItems = [];\r\n if (this.checkboxComponentItems && this.checkboxComponentItems.length > 0) {\r\n checkboxItems = this.checkboxComponentItems.toArray();\r\n } else if (this.checkboxComponentItems2 && this.checkboxComponentItems2.length > 0) {\r\n checkboxItems = this.checkboxComponentItems2.toArray();\r\n }\r\n return checkboxItems;\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ItemDateInputData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-date-input-item',\r\n template: ''\r\n})\r\nexport class DateInputItemComponent implements ItemDateInputData {\r\n @Input() classes?: string;\r\n\r\n}\r\n","import {Component, ContentChildren, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild} from '@angular/core';\r\nimport { ItemDateInputData } from '../../../interfaces';\r\nimport { LabelData } from '../../../interfaces';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\r\n\r\n@Component({\r\n selector: 'desy-input-day',\r\n templateUrl: './date-input-day.component.html',\r\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDayComponent)}],\r\n})\r\nexport class DateInputDayComponent extends DateInputItemComponent implements ItemDateInputData {\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() labelText: string;\r\n @Input() labelData: LabelData;\r\n @Input() disabled: boolean;\r\n @Input() hasErrors: boolean;\r\n @Input() value: any;\r\n @Input() autocomplete: string;\r\n @Input() pattern: string;\r\n @Input() classes: string;\r\n @Input() maxlength: number;\r\n\r\n @Output() valueChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n\r\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\r\n\r\n}\r\n","import {Component, ContentChildren, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild} from '@angular/core';\r\nimport { ItemDateInputData } from '../../../interfaces';\r\nimport { LabelData } from '../../../interfaces';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\r\n\r\n@Component({\r\n selector: 'desy-input-month',\r\n templateUrl: './date-input-month.component.html',\r\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputMonthComponent)}],\r\n})\r\nexport class DateInputMonthComponent extends DateInputItemComponent implements ItemDateInputData {\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() labelText: string;\r\n @Input() labelData: LabelData;\r\n @Input() disabled: boolean;\r\n @Input() hasErrors: boolean;\r\n @Input() value: any;\r\n @Input() autocomplete: string;\r\n @Input() pattern: string;\r\n @Input() classes: string;\r\n @Input() maxlength: number;\r\n\r\n @Output() valueChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n\r\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\r\n\r\n}\r\n","import {Component, ContentChildren, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild} from '@angular/core';\r\nimport { ItemDateInputData } from '../../../interfaces';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {LabelComponent} from '../../label/label.component';\r\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\r\n\r\n@Component({\r\n selector: 'desy-input-year',\r\n templateUrl: './date-input-year.component.html',\r\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputYearComponent)}],\r\n})\r\nexport class DateInputYearComponent extends DateInputItemComponent implements ItemDateInputData {\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() disabled: boolean;\r\n @Input() hasErrors: boolean;\r\n @Input() value: any;\r\n @Input() autocomplete: string;\r\n @Input() pattern: string;\r\n @Input() classes: string;\r\n @Input() maxlength: number;\r\n\r\n @Output() valueChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\r\n\r\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\r\n\r\n}\r\n","import {Component, forwardRef, TemplateRef, ViewChild} from '@angular/core';\r\nimport { ItemDividerDateInputData } from '../../../interfaces/item-divider-date-input-data';\r\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\r\n\r\n@Component({\r\n selector: 'desy-date-input-divider',\r\n templateUrl: './date-input-divider.component.html',\r\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDividerComponent)}],\r\n})\r\nexport class DateInputDividerComponent extends DateInputItemComponent implements ItemDividerDateInputData {\r\n\r\n divider = this;\r\n\r\n @ViewChild('dividerContent', { static: true }) dividerContent: TemplateRef<any>;\r\n}\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren, EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n Optional, Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n HostBinding,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport { FieldsetData, LegendData, ItemDateInputData, LabelData } from '../../interfaces';\r\nimport { LegendComponent } from '../fieldset/legend/legend.component';\r\nimport { FieldsetComponent } from '../fieldset/fieldset.component';\r\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { DateInputDayComponent } from './date-input-day/date-input-day.component';\r\nimport { DateInputMonthComponent } from './date-input-month/date-input-month.component';\r\nimport { DateInputYearComponent } from './date-input-year/date-input-year.component';\r\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\r\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\r\nimport { DateInputDividerComponent } from './date-input-divider/date-input-divider.component';\r\nimport { StringUtils } from '../../../shared/utils/string-utils';\r\nimport { DateInputItemComponent } from './date-input-item/date-input-item.component';\r\n\r\n@Component({\r\n selector: 'desy-date-input',\r\n templateUrl: './date-input.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DateInputComponent extends FormFieldComponent<any> implements AfterContentInit, OnChanges {\r\n\r\n private static defaultItems = [\r\n {\r\n name: 'day',\r\n classes: 'w-14',\r\n maxlength: 2\r\n },\r\n {\r\n name: 'month',\r\n classes: 'w-14',\r\n maxlength: 2\r\n },\r\n {\r\n name: 'year',\r\n classes: 'w-20',\r\n maxlength: 4\r\n }\r\n ];\r\n\r\n @Input() ngModelGroup: string;\r\n\r\n @DesyOnInputChange('onExternalChange')\r\n @Input() items: ItemDateInputData[];\r\n @Output() itemsChange: EventEmitter<ItemDateInputData[]> = new EventEmitter<ItemDateInputData[]>();\r\n\r\n @DesyOnInputChange('onExternalChange')\r\n @Input() namePrefix: string;\r\n @Input() classes: string;\r\n @Input() errorMessage: string;\r\n @Input() id: string;\r\n // form group class - asignar clases a la etiqueta desy-input\r\n @HostBinding('class.c-form-group') cfg = true;\r\n @HostBinding('class.c-form-group--error') cfgr: boolean;\r\n @Input() @HostBinding('class') formGroupClasses: any;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\r\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\r\n\r\n @ContentChildren(DateInputItemComponent) dateInputItemComponents: QueryList<DateInputItemComponent>;\r\n\r\n /**\r\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir objeto FieldsetData (interfaz expuesta)\r\n * 2) incluir template legend\r\n * 3) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\r\n * 4) incluir legendText - incluir un fieldset con un texto en la legenda\r\n */\r\n @Input() fieldsetData: FieldsetData;\r\n @Input() legendRef: TemplateRef<LegendComponent>;\r\n @Input() legendData: LegendData;\r\n @Input() legendText: string;\r\n\r\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\r\n\r\n private contentInit = false;\r\n\r\n constructor(@Optional() public controlContainer: ControlContainer) {\r\n super();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.contentInit = true;\r\n }\r\n\r\n initDefaultItems(): void {\r\n if (!this.items) {\r\n this.items = [\r\n {\r\n name: 'día',\r\n classes: 'w-14',\r\n maxlength: 2\r\n },\r\n {\r\n name: 'mes',\r\n classes: 'w-14',\r\n maxlength: 2\r\n },\r\n {\r\n name: 'año',\r\n classes: 'w-20',\r\n maxlength: 4\r\n }\r\n ];\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n if (this.value) {\r\n const items = this.getItems();\r\n items.forEach(item => item.value = this.value[this.getItemName(item)]);\r\n\r\n if (this.items) {\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n this.onChange(value);\r\n }\r\n\r\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\r\n fieldset.caller = this.innerHtml;\r\n fieldset.errorId = this.getErrorId();\r\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\r\n fieldset.role = 'group';\r\n fieldset.detectChanges();\r\n }\r\n\r\n onExternalChange(): void {\r\n if (!this.contentInit) {\r\n return;\r\n }\r\n\r\n if (!this.value) {\r\n this.value = {};\r\n }\r\n\r\n const items = this.getItems();\r\n items.forEach(item => this.value[this.getItemName(item)] = item.value);\r\n const newVal = {};\r\n Object.assign(newVal, this.value);\r\n this.onChange(newVal);\r\n }\r\n\r\n onInternalChange(item: ItemDateInputData, itemValue: number): void {\r\n const itemName = this.getItemName(item);\r\n if (!this.value) {\r\n this.value = {};\r\n }\r\n\r\n if (this.value[itemName] !== itemValue) {\r\n this.value[itemName] = itemValue ? +itemValue : undefined;\r\n const newVal = {};\r\n Object.assign(newVal, this.value);\r\n this.onChange(newVal);\r\n if (item instanceof DateInputDayComponent || item instanceof DateInputMonthComponent || item instanceof DateInputYearComponent) {\r\n item.valueChange.emit(itemValue);\r\n }\r\n\r\n if (this.items) {\r\n item.value = itemValue;\r\n this.itemsChange.emit(this.items);\r\n }\r\n }\r\n }\r\n\r\n hasFieldset(): boolean {\r\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData\r\n || (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\r\n }\r\n\r\n hasFieldsetComponent(): boolean {\r\n return !!this.fieldsetComponent;\r\n }\r\n\r\n hasLegendComponent(): boolean {\r\n return !!this.legendComponent;\r\n }\r\n\r\n hasErrorMessageComponent(): boolean {\r\n return !!this.errorMessageComponent;\r\n }\r\n\r\n getItemName(item: ItemDateInputData): string {\r\n return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;\r\n }\r\n\r\n getItemLabel(item: ItemDateInputData): LabelData {\r\n let labelData: LabelData;\r\n if (item.labelData && (item.labelData.text || item.labelData.html)) {\r\n labelData = item.labelData;\r\n } else {\r\n labelData = {\r\n text: item.labelText ? item.labelText : (item.name ? item.name.toUpperCase() : null)\r\n };\r\n }\r\n return labelData;\r\n }\r\n\r\n getItemLabelRef(item: ItemDateInputData): TemplateRef<any> {\r\n return item instanceof DateInputDayComponent || item instanceof DateInputMonthComponent || item instanceof DateInputYearComponent ?\r\n item.labelRef : null;\r\n }\r\n\r\n getItems(): ItemDateInputData[] {\r\n let items;\r\n if (this.dateInputItemComponents && this.dateInputItemComponents.length > 0) {\r\n items = this.dateInputItemComponents.toArray();\r\n } else if (this.items) {\r\n items = this.items;\r\n } else if (this.contentInit) {\r\n items = DateInputComponent.defaultItems;\r\n } else {\r\n items = [];\r\n }\r\n\r\n\r\n return items;\r\n }\r\n\r\n getItemDividerTemplate(item: ItemDateInputData): TemplateRef<any> {\r\n return item.divider instanceof DateInputDividerComponent ? item.divider.dividerContent : null;\r\n }\r\n getItemDividerHtml(item: ItemDateInputData): string {\r\n return item.divider.html ? item.divider.html : `<p>${ StringUtils.escapeHtml(item.divider.text) }</p>`;\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n DoCheck,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Output, QueryList, SimpleChanges\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport { ButtonComponent } from '../../../desy-buttons/components/button/button.component';\r\n\r\n@Component({\r\n selector: 'desy-search-bar',\r\n templateUrl: './search-bar.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SearchBarComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SearchBarComponent extends FormFieldComponent<string> implements DoCheck { \r\n \r\n @ContentChildren(ButtonComponent) button: QueryList<ButtonComponent>;\r\n\r\n @Input() describedBy: string;\r\n @HostBinding('class') hasButtonClass: string;\r\n @Input() classes: any;\r\n @Input() buttonClasses: string;\r\n @Input() placeholder: string;\r\n @Output() clickEvent = new EventEmitter();\r\n \r\n value = '';\r\n \r\n onClick(event: any): void {\r\n if (!this.disabled) {\r\n this.clickEvent.emit(event);\r\n }\r\n }\r\n\r\n hasButton(): boolean {\r\n return this.button && this.button.length > 0;\r\n }\r\n\r\n ngDoCheck(): void {\r\n this.hasButtonClass = this.hasButton() ? 'relative flex flex-wrap items-end' : 'relative';\r\n } \r\n}\r\n","import {\r\n Component,\r\n Input,\r\n} from '@angular/core';\r\nimport {ITreeItem} from \"../interfaces/itree-item\";\r\nimport {ContentBaseComponent} from \"../../../../shared/components\";\r\n\r\n@Component({\r\n selector: 'desy-tree-sub',\r\n templateUrl: './tree-sub.component.html'\r\n})\r\nexport class TreeSubComponent extends ContentBaseComponent {\r\n\r\n @Input() classes: string;\r\n\r\n itemList: ITreeItem[];\r\n\r\n}\r\n","export class ITreeItem {\r\n id: string;\r\n subLevel: number;\r\n defaultId: string;\r\n}\r\n","export class SearchUtils {\r\n\r\n /**\r\n * Comprueba si una cadena de texto (target) contiene cualquier palabra de otro texto (text)\r\n * @param target - Texto en el que buscar\r\n * @param text - Texto a buscar\r\n * @param fullWord - Indica si las palabras del texto a buscar deben aparecer enteras\r\n */\r\n public static containsAnyWordFrom(target: string, text: string, fullWord?: boolean): boolean {\r\n let words: string[] = [];\r\n let includes = false;\r\n const simplifiedTarget = this.getSimplifiedString(target);\r\n\r\n if (text && text.split(' ').length > 1) {\r\n words = text.split(' ');\r\n }\r\n words.push(text);\r\n\r\n words.forEach(word => {\r\n if (simplifiedTarget && word) {\r\n if ((fullWord && simplifiedTarget === this.getSimplifiedString(word))\r\n || (!fullWord && simplifiedTarget.includes(this.getSimplifiedString(word)))) {\r\n includes = true;\r\n }\r\n }\r\n });\r\n\r\n return includes;\r\n }\r\n\r\n /**\r\n * Convierte a mayúsculas, elimina espacios y reemplaza/elimina caracteres especiales para realizar comparaciones más tolerantes\r\n * @param str - cadena de entrada\r\n */\r\n private static getSimplifiedString(str: string): string {\r\n let res = str;\r\n if (str) {\r\n res = str.toLocaleUpperCase().trim();\r\n // acentos\r\n res = res.replace(/Á/g, 'A');\r\n res = res.replace(/É/g, 'E');\r\n res = res.replace(/Í/g, 'I');\r\n res = res.replace(/Ó/g, 'O');\r\n res = res.replace(/Ú/g, 'U');\r\n res = res.replace(/À/g, 'A');\r\n res = res.replace(/È/g, 'E');\r\n res = res.replace(/Ì/g, 'I');\r\n res = res.replace(/Ò/g, 'O');\r\n res = res.replace(/Ù/g, 'U');\r\n res = res.replace(/Ä/g, 'A');\r\n res = res.replace(/Ë/g, 'E');\r\n res = res.replace(/Ï/g, 'I');\r\n res = res.replace(/Ö/g, 'O');\r\n res = res.replace(/Ü/g, 'U');\r\n\r\n res = res.replace('Á', 'A');\r\n res = res.replace('É', 'E');\r\n res = res.replace('Í', 'I');\r\n res = res.replace('Ó', 'O');\r\n res = res.replace('Ú', 'U');\r\n res = res.replace('À', 'A');\r\n res = res.replace('È', 'E');\r\n res = res.replace('Ì', 'I');\r\n res = res.replace('Ò', 'O');\r\n res = res.replace('Ù', 'U');\r\n res = res.replace('Ä', 'A');\r\n res = res.replace('Ë', 'E');\r\n res = res.replace('Ï', 'I');\r\n res = res.replace('Ö', 'O');\r\n res = res.replace('Ü', 'U');\r\n\r\n // signos puntuacion\r\n res = res.replace(',', '');\r\n res = res.replace('.', '');\r\n res = res.replace('\\'', '');\r\n res = res.replace('\"', '');\r\n res = res.replace(/\\,/g, '');\r\n res = res.replace(/\\./g, '');\r\n res = res.replace(/\\'/g, '');\r\n res = res.replace(/\\\"/g, '');\r\n }\r\n\r\n return res;\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {LabelComponent} from \"../../label/label.component\";\r\nimport {HintComponent} from \"../../hint/hint.component\";\r\nimport {DesyOnInputChange} from \"../../../../shared/decorators/desy-on-input-change.decorator\";\r\nimport {SearchUtils} from \"../../../../shared/utils/search-utils\";\r\nimport {AccessibilityComponent} from \"../../../../shared/components\";\r\n\r\n@Component({\r\n selector: 'desy-tree-checkbox',\r\n templateUrl: './tree-checkbox.component.html'\r\n})\r\nexport class TreeCheckboxComponent extends AccessibilityComponent implements OnInit {\r\n\r\n @ViewChild('input', { static: true }) inputElement: ElementRef;\r\n @ViewChild('contentWrapper', { static: true }) contentWrapper: ElementRef;\r\n\r\n @DesyOnInputChange('onIdChange')\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() type: 'radio'|'checkbox'|null|undefined;\r\n @Input() classes: string;\r\n\r\n @Input() value: any;\r\n\r\n @Input() checked: boolean;\r\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() isIndeterminate: boolean;\r\n\r\n @DesyOnInputChange('setIndeterminateStatus')\r\n @Input() indeterminateChecked: boolean;\r\n @Output() indeterminateCheckedChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() disabled: boolean;\r\n @Input() hasDividers: boolean;\r\n\r\n @DesyOnInputChange('onDescribedByChange')\r\n @Input() describedBy: string;\r\n @Input() hasError = false;\r\n\r\n @DesyOnInputChange('overrideLabelParams')\r\n @Input() labelComponent: LabelComponent;\r\n\r\n @DesyOnInputChange('overrideHintParams')\r\n @Input() hintComponent: HintComponent;\r\n\r\n itemDescribedBy: string;\r\n\r\n private _lastIndeterminate;\r\n private _hasInit = false;\r\n\r\n constructor(private changeDetector: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._hasInit = true;\r\n this.onDescribedByChange();\r\n }\r\n\r\n detectChanges(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n hasChanged(): void {\r\n if (this._hasInit) {\r\n\r\n const input = this.inputElement.nativeElement;\r\n\r\n // Se establece el cambio a visualizar en el input\r\n if (this.isIndeterminate) {\r\n if (input.readOnly) {\r\n input.checked = false;\r\n input.readOnly = false;\r\n } else if (!input.checked) {\r\n input.readOnly = true;\r\n input.indeterminate = true;\r\n }\r\n }\r\n\r\n this.setIndeterminateChecked(input.indeterminate);\r\n this.checkedChange.emit(input.checked);\r\n }\r\n }\r\n\r\n onIdChange(): void {\r\n this.overrideLabelParams();\r\n this.overrideHintParams();\r\n }\r\n\r\n setIndeterminateStatus(): void {\r\n const input = this.inputElement?.nativeElement;\r\n if (input) {\r\n if (this.indeterminateChecked) {\r\n input.readOnly = true;\r\n input.indeterminate = true;\r\n } else if (input.readOnly) {\r\n input.readOnly = false;\r\n input.indeterminate = false;\r\n }\r\n }\r\n }\r\n\r\n setIndeterminateChecked(indeterminateChecked: boolean): void {\r\n this.indeterminateChecked = indeterminateChecked;\r\n this._lastIndeterminate = indeterminateChecked;\r\n this.indeterminateCheckedChange.emit(indeterminateChecked);\r\n this.changeDetector.detectChanges(); // Avisa al elemento input para que actualice su estado\r\n }\r\n\r\n focus(): void {\r\n this.inputElement.nativeElement.focus();\r\n }\r\n\r\n matchesText(value: string): boolean {\r\n const checkboxText = this.contentWrapper.nativeElement.textContent;\r\n return SearchUtils.containsAnyWordFrom(checkboxText, value);\r\n }\r\n\r\n preventDefault(event: KeyboardEvent): void {\r\n event.preventDefault();\r\n }\r\n\r\n getHintId(): string {\r\n return this.hintComponent ? this.hintComponent.id : '';\r\n }\r\n\r\n overrideLabelParams(): void {\r\n if (this.labelComponent) {\r\n this.labelComponent.for = this.id + '-input';\r\n if (!this.labelComponent.classes) {\r\n this.labelComponent.classes = 'block relative -top-xs -left-8 pl-8 py-xs';\r\n }\r\n this.labelComponent.detectChanges();\r\n }\r\n }\r\n\r\n overrideHintParams(): void {\r\n if (this.hintComponent) {\r\n if (!this.hintComponent.id) {\r\n this.hintComponent.id = this.id + '-item-hint';\r\n }\r\n this.hintComponent.detectChanges();\r\n }\r\n this.onDescribedByChange();\r\n }\r\n\r\n getItemDescribedBy(): string {\r\n return (this.describedBy ? this.describedBy : '') + ' ' + this.getHintId();\r\n }\r\n\r\n onDescribedByChange(): void {\r\n if (this.ariaDescribedBy) {\r\n this.itemDescribedBy = this.ariaDescribedBy;\r\n } else {\r\n this.itemDescribedBy = this.getItemDescribedBy();\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren, ElementRef,\r\n EventEmitter,\r\n forwardRef, HostBinding,\r\n Input,\r\n OnChanges,\r\n Output, SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {DesyContentChild} from \"../../../../shared/decorators/desy-content-child.decorator\";\r\nimport {TreeSubComponent} from \"../tree-sub/tree-sub.component\";\r\nimport {ITreeItem} from \"../interfaces/itree-item\";\r\nimport {HintComponent} from \"../../hint/hint.component\";\r\nimport {LabelComponent} from \"../../label/label.component\";\r\nimport {QuitTreeItemFocusOptions} from \"../interfaces/quit-tree-item-focus-options\";\r\nimport {TreeCheckboxComponent} from \"../tree-checkbox/tree-checkbox.component\";\r\nimport {AccessibilityComponent} from \"../../../../shared/components\";\r\nimport {DesyOnInputChange} from \"../../../../shared/decorators/desy-on-input-change.decorator\";\r\nimport {SearchUtils} from \"../../../../shared/utils/search-utils\";\r\n\r\n@Component({\r\n selector: 'desy-tree-item',\r\n templateUrl: './tree-item.component.html',\r\n providers: [\r\n {\r\n provide: ITreeItem,\r\n useExisting: forwardRef(() => TreeItemComponent)\r\n }\r\n ]\r\n})\r\nexport class TreeItemComponent extends AccessibilityComponent implements OnChanges, ITreeItem {\r\n\r\n private static _treeItemKeySuffix = 0; // Sufijo estático para generar siempre claves distintas\r\n @ViewChild('hiddenWrapper') hiddenWrapper: ElementRef;\r\n\r\n @DesyOnInputChange('setDefaultIdRecursive')\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() value: string;\r\n @Input() classes: string;\r\n @Input() active: boolean;\r\n @Input() disabled: boolean;\r\n @Input() title: string;\r\n @Input() hasDividers: boolean;\r\n @Input() isIndeterminate: boolean;\r\n\r\n @Input() checked: boolean;\r\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\r\n checkedChangeForTree: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() expanded: boolean;\r\n @Output() expandedChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() indeterminateChecked: boolean;\r\n @Output() indeterminateCheckedChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideSubValues'})\r\n @ContentChildren(TreeSubComponent) sub: TreeSubComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HintComponent) hint: HintComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(LabelComponent) label: LabelComponent;\r\n\r\n @ViewChild(TreeCheckboxComponent) checkbox: TreeCheckboxComponent;\r\n\r\n /*\r\n * Identificador del wrapper del componente. Se utiliza para recorrer el árbol en sentido inverso y que cada item\r\n * sepa cuál es su item/árbol padre.\r\n * Esto es necesario ya que, a la hora de construir un árbol dinámico con templates,\r\n * el decorador @ContentChildren no funciona correctamente y no los detecta.\r\n * Dejo el enlace de un problema similar: https://github.com/angular/angular/issues/21751\r\n */\r\n @HostBinding('attr.desy-tree-item-key')\r\n readonly treeItemKey: string = TreeItemComponent.generateStaticItemKey();\r\n\r\n type: 'radio'|'checkbox'|null|undefined;\r\n subLevel: number; // Nivel dentro del arbol. 0 son los items a nivel de raiz.\r\n\r\n // Propiedades definidas por el componente árbol que el item puede utilizar, sobrescribir o ampliar\r\n parentName: string;\r\n defaultId;\r\n inheritedExpandedFirstLevel: boolean;\r\n inheritedDecoupleChildFromParent: boolean;\r\n inheritedDescribedBy: string;\r\n inheritedHasError: boolean;\r\n allParentsExpanded = true; // True si el elemento es visible según los elementos expandidos\r\n inheritedMatchesSearch = true; // True si el elemento es visible según los criterios de búsqueda\r\n orderInTree: number;\r\n\r\n // Evento para emitir al componente arbol cuando se pretende abandonar el foco del item\r\n quitFocus: EventEmitter<QuitTreeItemFocusOptions> = new EventEmitter<QuitTreeItemFocusOptions>();\r\n\r\n isFocus = false;\r\n isHover = false;\r\n private _matchesValidText = false; // True si el contenido del item encaja con los criterios de búsqueda y se está filtrando\r\n\r\n constructor(private changeDetector: ChangeDetectorRef, private element: ElementRef) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.sub && this.sub.itemList) {\r\n this.sub.itemList.forEach(item => (item as TreeItemComponent).refreshAllParentsExpandedRecursive(this.allParentsExpanded && this.expanded));\r\n }\r\n\r\n for (const propName in changes) {\r\n if (changes.hasOwnProperty(propName)) {\r\n switch (propName) {\r\n case 'checked': {\r\n // Reasignamos el valor de checked cuando detectamos el cambio en la entrada\r\n setTimeout(() => {\r\n this.setChecked(this.checked, false, false);\r\n if (this.inheritedExpandedFirstLevel && this.checked && !this.expanded) {\r\n this.expandSub(true);\r\n }\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /*\r\n * Métodos expuestos que permiten configurar al ítem de forma externa\r\n */\r\n\r\n focus(): void {\r\n this.checkbox?.focus();\r\n this.handleItemFocus(true);\r\n }\r\n\r\n setCheckedAutomaticallyDependingOnChildren(): void {\r\n if (this.sub) {\r\n this.sub.itemList.forEach(item => (item as TreeItemComponent).setCheckedAutomaticallyDependingOnChildren());\r\n if (this.areAllChildrenChecked()) {\r\n if (this.indeterminateChecked) {\r\n this.setIndeterminateChecked(false);\r\n }\r\n\r\n if (!this.checked) {\r\n this.setChecked(true, true);\r\n }\r\n } else if (this.hasChildrenCheckedOrIndeterminate()) {\r\n if (!this.indeterminateChecked) {\r\n this.setIndeterminateChecked(true);\r\n }\r\n\r\n if (this.checked) {\r\n this.setChecked(false, true);\r\n }\r\n } else {\r\n if (this.indeterminateChecked) {\r\n this.setIndeterminateChecked(false);\r\n }\r\n\r\n if (this.checked) {\r\n this.setChecked(false, true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n refreshAllParentsExpandedRecursive(value): void {\r\n this.allParentsExpanded = value;\r\n if (this.sub) {\r\n this.sub.itemList.forEach(item => (item as TreeItemComponent).refreshAllParentsExpandedRecursive(value && this.expanded));\r\n }\r\n }\r\n\r\n detectChanges(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n expandSub(value: boolean): void {\r\n this.expanded = value;\r\n if (this.sub) {\r\n this.sub.itemList.forEach(item => (item as TreeItemComponent).refreshAllParentsExpandedRecursive(this.allParentsExpanded && value));\r\n }\r\n this.expandedChange.emit(value);\r\n }\r\n\r\n /*\r\n * Gestion de eventos\r\n */\r\n\r\n handleCheckboxChange(checked: boolean): void {\r\n this.setChecked(checked, false);\r\n if (this.inheritedExpandedFirstLevel && checked && !this.expanded) {\r\n this.expandSub(true);\r\n }\r\n }\r\n\r\n handleIndeterminateCheckedChange(indeterminate: boolean): void {\r\n this.indeterminateCheckedChange.emit(indeterminate);\r\n }\r\n\r\n handleItemFocus(value, condition=true): void {\r\n if (condition) {\r\n this.isFocus = value;\r\n }\r\n }\r\n\r\n handleItemHover(value, condition=true): void {\r\n if (condition) {\r\n this.isHover = value;\r\n }\r\n }\r\n\r\n handleArrowUp(event: KeyboardEvent, condition=true): void {\r\n if (condition) {\r\n event.preventDefault();\r\n this.quitFocus.emit({\r\n nextElement: 'previous',\r\n currentItem: this\r\n });\r\n }\r\n }\r\n\r\n handleHome(event: KeyboardEvent, condition=true): void {\r\n if (condition) {\r\n event.preventDefault();\r\n this.quitFocus.emit({\r\n nextElement: 'first',\r\n currentItem: this\r\n });\r\n }\r\n }\r\n\r\n handleEnd(event: KeyboardEvent, condition=true): void {\r\n if (condition) {\r\n event.preventDefault();\r\n this.quitFocus.emit({\r\n nextElement: 'last',\r\n currentItem: this\r\n });\r\n }\r\n }\r\n\r\n handleArrowDown(event: KeyboardEvent, condition=true): void {\r\n if (condition) {\r\n event.preventDefault();\r\n this.quitFocus.emit({\r\n nextElement: 'next',\r\n currentItem: this\r\n });\r\n }\r\n }\r\n\r\n handleArrowRight(event: KeyboardEvent, condition=true): void {\r\n if (condition && this.sub && this.sub.itemList?.length > 0) {\r\n event.preventDefault();\r\n if (this.expanded) {\r\n this.quitFocus.emit({\r\n nextElement: 'firstChild',\r\n currentItem: this\r\n });\r\n } else {\r\n this.expandSub(true);\r\n }\r\n }\r\n }\r\n\r\n handleArrowLeft(event: KeyboardEvent, condition=true): void {\r\n if (condition) {\r\n event.preventDefault();\r\n if (this.expanded) {\r\n this.expandSub(false);\r\n } else if (this.subLevel > 0) {\r\n this.quitFocus.emit({\r\n nextElement: 'parent',\r\n currentItem: this\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Setters and getters\r\n */\r\n\r\n setChecked(checked: boolean, ignoreInTree: boolean, emitEvent = true): void {\r\n if (!this.disabled) {\r\n this.checked = checked;\r\n }\r\n\r\n if (!this.inheritedDecoupleChildFromParent && this.sub && this.sub.itemList && !this.indeterminateChecked) {\r\n this.sub.itemList.forEach(item => {\r\n (item as TreeItemComponent).setIndeterminateChecked(false);\r\n (item as TreeItemComponent).setChecked(checked, true)\r\n });\r\n }\r\n\r\n if (emitEvent) {\r\n this.checkedChange.emit(checked);\r\n }\r\n\r\n if (!ignoreInTree) {\r\n this.checkedChangeForTree.emit(checked);\r\n }\r\n }\r\n\r\n setIndeterminateChecked(indeterminate: boolean): void {\r\n if (!this.disabled) {\r\n this.indeterminateChecked = indeterminate;\r\n this.indeterminateCheckedChange.emit(indeterminate);\r\n }\r\n }\r\n\r\n setSubLevel(subLevel: number): void {\r\n this.subLevel = subLevel;\r\n if (this.sub && this.sub.itemList) {\r\n this.sub.itemList.forEach(item => (item as TreeItemComponent).setSubLevel(subLevel + 1));\r\n }\r\n }\r\n\r\n setOrderRecursively(order: number): number {\r\n this.orderInTree = order;\r\n let newOrder = order + 1;\r\n if (this.sub && this.sub.itemList) {\r\n this.sub.itemList.forEach(item => {\r\n newOrder = (item as TreeItemComponent).setOrderRecursively(newOrder);\r\n });\r\n }\r\n return newOrder;\r\n }\r\n\r\n setDefaultId(defaultId: string): void {\r\n this.defaultId = defaultId;\r\n this.setDefaultIdRecursive();\r\n }\r\n\r\n setDefaultIdRecursive(): void {\r\n if (this.sub && this.sub.itemList) {\r\n this.sub.itemList.forEach((item, index) => {\r\n (item as TreeItemComponent).setDefaultId(`sub-${this.getId()}-${index}`);\r\n });\r\n }\r\n }\r\n\r\n getId(): string {\r\n return this.id ? this.id : this.defaultId;\r\n }\r\n\r\n isHidden(): boolean {\r\n return !this.inheritedMatchesSearch && (!this.sub || this.areAllChildrenHidden());\r\n }\r\n\r\n areAllChildrenHidden(): boolean {\r\n const children = this.sub.itemList;\r\n return children.findIndex(child => !(child as TreeItemComponent).isHidden()) < 0;\r\n }\r\n\r\n areAllChildrenChecked(): boolean {\r\n const children = this.sub.itemList;\r\n return children.findIndex(child => !(child as TreeItemComponent).checked) < 0;\r\n }\r\n\r\n hasChildrenCheckedOrIndeterminate(): boolean {\r\n const children = this.sub.itemList;\r\n return children.findIndex(child => (child as TreeItemComponent).checked || (child as TreeItemComponent).indeterminateChecked) >= 0;\r\n }\r\n\r\n matchesText(value: string): boolean {\r\n let matches: boolean;\r\n if (this.allParentsExpanded && !this.isHidden()) {\r\n matches = this.checkbox?.matchesText(value);\r\n } else {\r\n const itemText = this.hiddenWrapper.nativeElement.textContent;\r\n matches = SearchUtils.containsAnyWordFrom(itemText, value);\r\n }\r\n this._matchesValidText = value ? matches : false;\r\n return matches;\r\n }\r\n\r\n getKey(): string {\r\n return this.treeItemKey;\r\n }\r\n\r\n getParentKey(): string {\r\n let parentKey: string;\r\n let parentElement = this.element.nativeElement.parentElement;\r\n while (parentElement && parentElement.tagName !== 'BODY' && parentElement.tagName !== 'DESY-TREE-ITEM' && parentElement.tagName !== 'DESY-TREE') {\r\n parentElement = parentElement.parentElement;\r\n }\r\n\r\n if (parentElement.tagName === 'BODY') {\r\n throw new Error('Parent for tree-item not found');\r\n }\r\n\r\n if (parentElement.tagName === 'DESY-TREE') {\r\n parentKey = 'root';\r\n }\r\n\r\n if (parentElement.tagName === 'DESY-TREE-ITEM') {\r\n parentKey = parentElement.getAttribute('desy-tree-item-key');\r\n }\r\n\r\n return parentKey;\r\n }\r\n\r\n isActive(): boolean {\r\n return this.active || this._matchesValidText;\r\n }\r\n\r\n /*\r\n * Métodos privados\r\n */\r\n\r\n /**\r\n * Genera una clave única para el componente\r\n * @private\r\n */\r\n private static generateStaticItemKey(): string {\r\n const key = 'tree-item-key-' + TreeItemComponent._treeItemKeySuffix;\r\n TreeItemComponent._treeItemKeySuffix++;\r\n return key;\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren, EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output, QueryList,\r\n SimpleChanges, TemplateRef, ViewChild\r\n} from '@angular/core';\r\nimport {DesyContentChild} from \"../../../shared/decorators/desy-content-child.decorator\";\r\nimport {TreeItemComponent} from \"./tree-item/tree-item.component\";\r\nimport {DesyOnInputChange} from \"../../../shared/decorators/desy-on-input-change.decorator\";\r\nimport {NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport {FormFieldComponent} from \"../form-field/form-field.component\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {FieldsetComponent} from \"../fieldset/fieldset.component\";\r\nimport {QuitTreeItemFocusOptions} from \"./interfaces/quit-tree-item-focus-options\";\r\nimport {SearchBarComponent} from \"../search-bar/search-bar.component\";\r\n\r\n@Component({\r\n selector: 'desy-tree',\r\n templateUrl: './tree.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TreeComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class TreeComponent extends FormFieldComponent<any[]> implements OnChanges, OnDestroy {\r\n\r\n @Input() idPrefix: string;\r\n @Input() classes: string;\r\n @Input() name: string;\r\n @Input() type: 'radio'|'checkbox'|null|undefined;\r\n @Input() describedBy: string;\r\n\r\n @Input() formGroupClasses: any;\r\n\r\n @Input() expandedFirstLevel = true;\r\n @Input() decoupleChildFromParent = false;\r\n\r\n @Input() disableDefaultSearch = false;\r\n\r\n @DesyOnInputChange('onSearchMatchValuesChange')\r\n @Input() searchMatchValues: string[];\r\n @Output() searchMatchValuesChange: EventEmitter<string[]> = new EventEmitter<string[]>();\r\n\r\n @DesyOnInputChange('configureAllItems')\r\n @ContentChildren(TreeItemComponent, { descendants: true }) allItems: QueryList<TreeItemComponent>;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\r\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideSearchBarParams'})\r\n @ContentChildren(SearchBarComponent) searchBarComponent: SearchBarComponent;\r\n\r\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\r\n\r\n private rootItems: TreeItemComponent[] = [];\r\n private _itemListSubscription: Subscription;\r\n private _allItemListSubscription: Subscription;\r\n private _itemListCheckedSubscriptions: Subscription[] = [];\r\n private _itemListQuitFocusSubscriptions: Subscription[] = [];\r\n private _alreadyConfiguringItems = false;\r\n\r\n constructor(private changeDetector: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.clearSubscriptions(this._itemListCheckedSubscriptions);\r\n this.clearSubscriptions(this._itemListQuitFocusSubscriptions);\r\n this._itemListSubscription?.unsubscribe();\r\n this._allItemListSubscription?.unsubscribe();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.configureAllItems();\r\n }\r\n\r\n /**\r\n * Se sobrescribe el valor para actualizar los items\r\n * @Override\r\n */\r\n writeValue(value: any): void {\r\n this.value = value;\r\n this.configureAllItems(true);\r\n this.onChange(this.value);\r\n }\r\n\r\n /*\r\n * Eventos\r\n */\r\n\r\n /**\r\n * Actualiza el valor del componente al checkquearse un ítem\r\n * @param originItem ítem modificado\r\n */\r\n updateValueFromItems(originItem?: TreeItemComponent): void {\r\n\r\n // Si es radio, se desactivan el resto de items cuando se activa otro item\r\n if (this.type !== 'checkbox') {\r\n const items = this.getAllItemsInOrder();\r\n items.forEach(item => {\r\n if (item !== originItem && item.checked) {\r\n item.setChecked(false, true);\r\n }\r\n });\r\n } else if (!this.decoupleChildFromParent) {\r\n this.rootItems.forEach(item => item.setCheckedAutomaticallyDependingOnChildren());\r\n }\r\n\r\n this.value = [];\r\n const items = this.getAllItemsInOrder();\r\n items.forEach(item => {\r\n if (item.checked) {\r\n this.value.push(item.value);\r\n }\r\n });\r\n this.onChange(this.value);\r\n }\r\n\r\n /**\r\n * Gestiona cuando el foco abandona un ítem desde un evento de teclado controlado\r\n * @param options\r\n */\r\n handleItemQuitFocus(options: QuitTreeItemFocusOptions): void {\r\n if (options && options.nextElement) {\r\n const items = this.getAllItemsInOrder();\r\n const focusableItems = items.filter(item => !item.isHidden() && !item.disabled && item.allParentsExpanded);\r\n switch (options.nextElement) {\r\n case \"first\":\r\n focusableItems[0].focus();\r\n break;\r\n case \"last\":\r\n focusableItems[focusableItems.length - 1].focus();\r\n break;\r\n case \"parent\":\r\n const currentSubLevel = options.currentItem.subLevel;\r\n if (currentSubLevel > 0) {\r\n const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);\r\n const parent = focusableItems.slice(0, currentItemIndex).reverse().find(item => item.subLevel < currentSubLevel);\r\n if (parent) {\r\n parent.focus();\r\n }\r\n }\r\n break;\r\n case \"firstChild\":\r\n case \"next\":\r\n if (options.currentItem) {\r\n let currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);\r\n if (currentItemIndex < focusableItems.length - 1) {\r\n focusableItems[currentItemIndex + 1].focus();\r\n }\r\n }\r\n break;\r\n case \"previous\":\r\n if (options.currentItem) {\r\n const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);\r\n if (currentItemIndex > 0) {\r\n focusableItems[currentItemIndex - 1].focus();\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Realiza la búsqueda interna de los items en el componente\r\n * @param value texto de búsqueda\r\n */\r\n onSearch(value: string): void {\r\n if (!this.disableDefaultSearch) {\r\n if (value && value.length > 0) {\r\n this.searchMatchValues = this.allItems.filter(item => item.matchesText(value)).map(item => item.value);\r\n } else {\r\n this.searchMatchValues = null;\r\n }\r\n this.searchMatchValuesChange.emit(this.searchMatchValues);\r\n }\r\n }\r\n\r\n /*\r\n * Eventos al cambiar propiedades\r\n */\r\n\r\n /**\r\n * Configura los items del árbol\r\n */\r\n configureAllItems(isValueChange = false): void {\r\n\r\n if (!this._alreadyConfiguringItems) {\r\n this._alreadyConfiguringItems = true;\r\n\r\n // Lo realizamos desde un setTimeout para que todos los inputs, values y demás vivan en paz y armonía\r\n setTimeout(() => {\r\n if (this.allItems?.length > 0) {\r\n this.clearSubscriptions(this._itemListCheckedSubscriptions);\r\n this.clearSubscriptions(this._itemListQuitFocusSubscriptions);\r\n this.allItems.forEach(item => {\r\n item.parentName = this.name;\r\n item.type = this.type;\r\n item.inheritedDescribedBy = this.getDescribedByForItems();\r\n item.inheritedExpandedFirstLevel = this.expandedFirstLevel;\r\n item.inheritedDecoupleChildFromParent = this.decoupleChildFromParent;\r\n if ((this.value && this.value.length > 0) || isValueChange) {\r\n const valueList = this.value ? this.value : [];\r\n item.setChecked(!!valueList.find(v => v === item.value), true);\r\n }\r\n item.detectChanges();\r\n\r\n const checkedSubscription = item.checkedChangeForTree.subscribe(() => this.updateValueFromItems(item));\r\n this._itemListCheckedSubscriptions.push(checkedSubscription);\r\n\r\n const quitFocusSubscription = item.quitFocus.subscribe(options => this.handleItemQuitFocus(options));\r\n this._itemListQuitFocusSubscriptions.push(quitFocusSubscription);\r\n });\r\n\r\n this.setErrorInItems(this.hasErrorMessageComponent());\r\n\r\n this.buildTree();\r\n if (!this.value) {\r\n this.updateValueFromItems();\r\n }\r\n\r\n if (this.searchMatchValues) {\r\n this.onSearchMatchValuesChange();\r\n }\r\n }\r\n\r\n if (this.allItems && !this._allItemListSubscription) {\r\n this._allItemListSubscription = this.allItems.changes.subscribe(() => this.configureAllItems());\r\n }\r\n\r\n this.changeDetector.detectChanges();\r\n this._alreadyConfiguringItems = false;\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Modifica los items visibles según el filtro de búsqueda\r\n */\r\n onSearchMatchValuesChange(): void {\r\n if (this.allItems) {\r\n this.allItems.forEach(item => {\r\n item.inheritedMatchesSearch = true;\r\n });\r\n\r\n if (this.searchMatchValues !== null && this.searchMatchValues !== undefined) {\r\n this.allItems.forEach(item => {\r\n if (this.searchMatchValues.findIndex(value => item.value === value) < 0) {\r\n item.inheritedMatchesSearch = false;\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n /*\r\n * Getters and setters\r\n */\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.name;\r\n }\r\n\r\n getDescribedBy(): string {\r\n let describedBy = '';\r\n if (this.describedBy) {\r\n describedBy = this.describedBy;\r\n }\r\n\r\n if (this.hasHintComponent() && this.hintComponent.id) {\r\n describedBy = describedBy + ' ' + this.hintComponent.id;\r\n }\r\n\r\n if (this.hasErrorMessageComponent() && this.errorMessageComponent.id) {\r\n describedBy = describedBy + ' ' + this.errorMessageComponent.id;\r\n }\r\n\r\n return describedBy;\r\n }\r\n\r\n /**\r\n * Devuelve el valor de describedBy que se transmitirá a los items\r\n */\r\n getDescribedByForItems(): string {\r\n let describedBy;\r\n if (this.hasFieldsetComponent()) {\r\n describedBy = this.fieldsetComponent.describedBy;\r\n } else {\r\n describedBy = this.getDescribedBy();\r\n }\r\n\r\n return describedBy;\r\n }\r\n\r\n hasFieldsetComponent(): boolean {\r\n return !!this.fieldsetComponent;\r\n }\r\n\r\n /**\r\n * Overrides super.getHintId();\r\n */\r\n getHintId(): string {\r\n return this.idPrefix ? this.idPrefix + '-hint' : this.hintComponent?.id;\r\n }\r\n\r\n /**\r\n * Overrides super.getHintId();\r\n */\r\n getErrorId(): string {\r\n return this.idPrefix ? this.idPrefix + '-error' : this.errorMessageComponent?.id;\r\n }\r\n\r\n /*\r\n * Funciones para reemplazar el contenido del fieldset, label, hint o errormessage\r\n */\r\n\r\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\r\n fieldset.caller = this.innerHtml;\r\n fieldset.errorId = this.getErrorId();\r\n fieldset.describedBy = this.getDescribedBy();\r\n fieldset.detectChanges();\r\n }\r\n\r\n overrideSearchBarParams(searchbar: SearchBarComponent): void {\r\n const defaultOnChange = searchbar.onChange;\r\n const newOnChange = value => {\r\n this.onSearch(value);\r\n defaultOnChange(value);\r\n }\r\n searchbar.registerOnChange(newOnChange);\r\n }\r\n\r\n /**\r\n * Se llama desde FormField\r\n */\r\n overrideHintParams(hint): void {\r\n hint.id = this.getHintId();\r\n hint.detectChanges();\r\n }\r\n\r\n /**\r\n * Se llama desde FormField\r\n */\r\n overrideErrorMessageParams(errorMessage): void {\r\n errorMessage.id = this.getErrorId();\r\n this.setErrorInItems(this.hasErrorMessageComponent());\r\n errorMessage.detectChanges();\r\n }\r\n\r\n /**\r\n * Se llama desde FormField\r\n */\r\n onDeleteErrorMessage(errorMessage): void {\r\n this.setErrorInItems(this.hasErrorMessageComponent());\r\n }\r\n\r\n /*\r\n * Métodos privados\r\n */\r\n\r\n /**\r\n * Configura la estructura del árbol\r\n * @private\r\n */\r\n private buildTree(): void {\r\n\r\n // Se crea un mapa para tener accesibles los items por key y se borran los listados existentes\r\n const itemMap = {}\r\n this.rootItems = [];\r\n this.allItems.forEach(item => {\r\n const key = item.getKey();\r\n itemMap[key] = item;\r\n if (item.sub) {\r\n item.sub.itemList = [];\r\n }\r\n });\r\n\r\n // Se añaden los items a los listados correspondientes\r\n this.allItems.forEach(item => {\r\n const parentKey = item.getParentKey();\r\n if (parentKey === 'root') {\r\n this.rootItems.push(item);\r\n } else if (parentKey) {\r\n const sub = itemMap[parentKey].sub;\r\n if (sub) {\r\n sub.itemList.push(item);\r\n }\r\n }\r\n });\r\n\r\n // Se configuran los items desde root\r\n let order = 0;\r\n this.rootItems.forEach((item, index) => {\r\n item.setSubLevel(0);\r\n item.setDefaultId(`${this.idPrefix}-${index}`);\r\n item.refreshAllParentsExpandedRecursive(true);\r\n if (!this.decoupleChildFromParent) {\r\n item.setCheckedAutomaticallyDependingOnChildren();\r\n }\r\n order = item.setOrderRecursively(order);\r\n });\r\n }\r\n\r\n /**\r\n * Si tiene un mensaje de error, se indica a los items\r\n * @param hasError\r\n * @private\r\n */\r\n private setErrorInItems(hasError: boolean): void {\r\n if (this.allItems?.length > 0) {\r\n this.allItems.forEach(item => {\r\n item.inheritedHasError = hasError;\r\n item.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Limpia un listado de subscripciones\r\n * @param subscriptionList\r\n * @private\r\n */\r\n private clearSubscriptions(subscriptionList: Subscription[]): void {\r\n if (subscriptionList.length > 0) {\r\n subscriptionList.forEach(s => s.unsubscribe());\r\n subscriptionList.splice(0, subscriptionList.length)\r\n }\r\n }\r\n\r\n /**\r\n * Devuelve los items del árbol ordenados\r\n * @private\r\n */\r\n private getAllItemsInOrder(): TreeItemComponent[] {\r\n let list = [];\r\n if (this.allItems) {\r\n list = this.allItems.toArray().sort((a, b) => a.orderInTree > b.orderInTree ? 1 : -1)\r\n }\r\n return list\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, TemplateRef } from '@angular/core';\r\nimport { ItemCheckboxData, ItemRadioWithTemplateData } from '../interfaces';\r\n\r\n@Directive({\r\n selector: '[desyCondition]'\r\n})\r\nexport class ConditionDirective implements OnChanges {\r\n\r\n /**\r\n * Condition, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir objeto ItemCheckboxData o ItemRadioWithTemplateData (interfaces expuesta)\r\n * 2) incluir value y el listado de ItemCheckboxData[] o ItemRadioWithTemplateData[]\r\n */\r\n @Input() item: ItemCheckboxData|ItemRadioWithTemplateData;\r\n\r\n @Input() value: any;\r\n @Input() items: ItemCheckboxData[]|ItemRadioWithTemplateData[];\r\n\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n\r\n ngOnChanges(): void {\r\n if (this.item) {\r\n this.item.conditionalHtml = this.templateRef;\r\n } else if (this.value && this.items) {\r\n for (const item of this.items) {\r\n if (item.value === this.value) {\r\n item.conditionalHtml = this.templateRef;\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport {TreeItemComponent} from \"../tree-item/tree-item.component\";\r\n\r\n@Component({\r\n selector: 'desy-tree-items-generator',\r\n templateUrl: './tree-items-generator.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TreeItemsGeneratorComponent implements OnInit {\r\n\r\n @ViewChild('content', { static: true }) content: TemplateRef<any>;\r\n\r\n @Input() items: any[];\r\n @Input() itemTemplate: TemplateRef<TreeItemComponent>;\r\n\r\n constructor(private viewContainerRef: ViewContainerRef) { }\r\n\r\n ngOnInit(): void {\r\n this.viewContainerRef.createEmbeddedView(this.content);\r\n }\r\n\r\n}\r\n","import { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\r\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ModalButtonData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-modal-button-primary',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ModalButtonPrimaryComponent extends ButtonComponent implements ModalButtonData {\r\n @Input() classes: string;\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n}\r\n","import { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\r\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ModalButtonData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-modal-button-secondary',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ModalButtonSecondaryComponent extends ButtonComponent implements ModalButtonData {\r\n @Input() classes: string;\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n}\r\n","import { ButtonLoaderComponent } from './../../../../desy-buttons/components/button-loader/button-loader.component';\r\nimport { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\r\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ModalButtonData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-modal-button-loader-primary',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ModalButtonLoaderPrimaryComponent extends ButtonLoaderComponent implements ModalButtonData {\r\n @Input() classes: string;\r\n @Input() state: string;\r\n @Output() clickEvent = new EventEmitter();\r\n}\r\n","import { ButtonLoaderComponent } from './../../../../desy-buttons/components/button-loader/button-loader.component';\r\nimport { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\r\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ModalButtonData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-modal-button-loader-secondary',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ModalButtonLoaderSecondaryComponent extends ButtonLoaderComponent implements ModalButtonData {\r\n @Input() classes: string;\r\n\r\n @Output() clickEvent = new EventEmitter();\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren, ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport { ModalButtonData, ModalData, ModalIconData } from '../../interfaces';\r\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\r\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\r\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\nimport {ModalButtonPrimaryComponent} from './modal-button-primary/modal-button-primary.component';\r\nimport {ModalButtonSecondaryComponent} from './modal-button-secondary/modal-button-secondary.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { ModalButtonLoaderPrimaryComponent } from './modal-button-loader-primary/modal-button-loader-primary.component';\r\nimport { ModalButtonLoaderSecondaryComponent } from './modal-button-loader-secondary/modal-button-loader-secondary.component';\r\n\r\n@Component({\r\n selector: 'desy-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ModalComponent extends AccessibilityComponent {\r\n\r\n @Input() title: ModalData;\r\n @Input() description: ModalData;\r\n @Input() itemsPrimary: ModalButtonData[];\r\n @Input() itemsSecondary: ModalButtonData[];\r\n @Input() itemsLoaderPrimary: ModalButtonData[];\r\n @Input() itemsLoaderSecondary: ModalButtonData[];\r\n @Input() icon: ModalIconData;\r\n @Input() headingLevel: number;\r\n\r\n @Input() isDismissible: boolean;\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() caller: TemplateRef<any>;\r\n\r\n @Output() closeModal: EventEmitter<void> = new EventEmitter();\r\n @Output() clickButton: EventEmitter<any> = new EventEmitter();\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @ContentChildren(ModalButtonPrimaryComponent) primaryButtonComponents: QueryList<ModalButtonPrimaryComponent>;\r\n @ContentChildren(ModalButtonSecondaryComponent) secondaryButtonComponents: QueryList<ModalButtonSecondaryComponent>;\r\n\r\n @ContentChildren(ModalButtonLoaderPrimaryComponent) primaryButtonLoaderComponents: QueryList<ModalButtonLoaderPrimaryComponent>;\r\n @ContentChildren(ModalButtonLoaderSecondaryComponent) secondaryButtonLoaderComponents: QueryList<ModalButtonLoaderSecondaryComponent>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(IconComponent) iconComponent: IconComponent;\r\n\r\n hasIconContent = true;\r\n descriptionIsHtml = true;\r\n descriptionIsEmpty = false;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n closeDialog(): void {\r\n this.closeModal.emit();\r\n }\r\n\r\n getType(): string {\r\n let type: string;\r\n if (this.iconComponent) {\r\n type = this.iconComponent.type ? this.iconComponent.type.toLocaleLowerCase() : null;\r\n } else if (this.icon.type) {\r\n type = this.icon.type ? this.icon.type.toLocaleLowerCase() : null;\r\n }\r\n\r\n return type;\r\n }\r\n\r\n checkDescriptionContent(element: ElementRef): void {\r\n const childs: NodeListOf<ChildNode> = element.nativeElement.childNodes;\r\n let hasHtml = false;\r\n let hasContent = false;\r\n for (let i = 0; i < childs.length && !hasHtml; i++) {\r\n const item = childs.item(i);\r\n if (item.nodeType === Node.TEXT_NODE && item.textContent.length > 0) {\r\n hasContent = true;\r\n } else if (item.nodeType === Node.ELEMENT_NODE || item.nodeType === Node.CDATA_SECTION_NODE) {\r\n hasHtml = true;\r\n hasContent = true;\r\n }\r\n }\r\n\r\n const descriptionWasEmpty = this.descriptionIsEmpty;\r\n this.descriptionIsEmpty = !hasContent;\r\n this.descriptionIsHtml = hasHtml;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n clickButtonEmit(item: ModalButtonData, event): void{\r\n this.clickButton.emit(event);\r\n\r\n if (item instanceof ModalButtonPrimaryComponent || item instanceof ModalButtonSecondaryComponent || item instanceof ModalButtonLoaderPrimaryComponent || item instanceof ModalButtonLoaderSecondaryComponent) {\r\n item.clickEvent.emit(event);\r\n }\r\n }\r\n\r\n handleIconContentEmpty(isEmpty: boolean): void {\r\n this.hasIconContent = !isEmpty;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n getTitleClasses(): string {\r\n let classes = 'c-h2 px-base text-center focus:outline-none focus:underline';\r\n if (this.titleComponent && this.titleComponent.classes) {\r\n classes = this.titleComponent.classes;\r\n } else if (this.title && this.title.classes) {\r\n classes = this.title.classes;\r\n }\r\n return classes;\r\n }\r\n\r\n getDescriptionClasses(): string {\r\n let classes = 'c-paragraph-base my-base text-center';\r\n if (this.descriptionComponent && this.descriptionComponent.classes) {\r\n classes = this.descriptionComponent.classes;\r\n } else if (this.description && this.description.classes) {\r\n classes = this.description.classes;\r\n }\r\n return classes;\r\n }\r\n\r\n getPrimaryItems(): ModalButtonData[]|ModalButtonPrimaryComponent[] {\r\n return this.primaryButtonComponents && this.primaryButtonComponents.length > 0 ? this.primaryButtonComponents.toArray()\r\n : this.itemsPrimary;\r\n }\r\n\r\n getSecondaryItems(): ModalButtonData[]|ModalButtonPrimaryComponent[] {\r\n return this.secondaryButtonComponents && this.secondaryButtonComponents.length > 0 ? this.secondaryButtonComponents.toArray()\r\n : this.itemsSecondary;\r\n }\r\n\r\n getPrimaryLoaderItems(): ModalButtonData[]|ModalButtonLoaderPrimaryComponent[] {\r\n return this.primaryButtonLoaderComponents && this.primaryButtonLoaderComponents.length > 0 ? this.primaryButtonLoaderComponents.toArray() : this.itemsLoaderPrimary;\r\n }\r\n\r\n getSecondaryLoaderItems(): ModalButtonData[]|ModalButtonLoaderSecondaryComponent[] {\r\n return this.secondaryButtonLoaderComponents && this.secondaryButtonLoaderComponents.length > 0 ? this.secondaryButtonLoaderComponents.toArray() : this.itemsLoaderSecondary;\r\n }\r\n}\r\n","import {\r\n Component,\r\n HostListener,\r\n OnChanges,\r\n OnDestroy,\r\n Input,\r\n ViewChild,\r\n ViewContainerRef,\r\n TemplateRef,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Output,\r\n HostBinding,\r\n EventEmitter, ComponentRef, ElementRef, Type, ComponentFactoryResolver\r\n} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { ConfigurableFocusTrap, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';\r\nimport { FocusUtils } from '../../../shared/utils/focus-utils';\r\n\r\nlet numDialogsOpened = 0;\r\ntype DialogCreationCallback = ((dialog: DialogComponent, caller: ComponentRef<any>) => void);\r\n\r\n@Component({\r\n selector: 'desy-dialog',\r\n templateUrl: './dialog.component.html'\r\n})\r\nexport class DialogComponent extends AccessibilityComponent implements OnChanges, OnDestroy, AfterViewInit {\r\n\r\n static readonly DIALOG_OPEN_CLASS = 'has-dialog';\r\n static readonly KEY_CODE_ESC = 'Escape';\r\n\r\n @ViewChild('container', {read: ViewContainerRef}) container: ViewContainerRef;\r\n @ViewChild('focusTrapWrapper') focusTrapWrapper: ElementRef;\r\n\r\n @Input() active: boolean;\r\n @Output() activeChange = new EventEmitter<boolean>();\r\n\r\n @Input() id: any;\r\n @Input() caller: TemplateRef<any>;\r\n @Input() focusOnClose: string|HTMLElement;\r\n @Input() dismissOnBackdrop: boolean;\r\n @Input() classes: string;\r\n \r\n public callerType: Type<any>;\r\n public onCallerCreationCallback: DialogCreationCallback;\r\n\r\n lastActiveState = false;\r\n focusTrap: ConfigurableFocusTrap;\r\n clickOutsideEnabled = false;\r\n childElem: ElementRef;\r\n\r\n constructor(private cdRef: ChangeDetectorRef,\r\n private focusTrapFactory: ConfigurableFocusTrapFactory,\r\n private factoryResolver: ComponentFactoryResolver) {\r\n super();\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.focusTrapWrapper) {\r\n this.handleActiveState();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n \r\n if (this.callerType) {\r\n const factory = this.factoryResolver.resolveComponentFactory(this.callerType);\r\n const component = this.container.createComponent(factory);\r\n if (this.onCallerCreationCallback) {\r\n this.onCallerCreationCallback(this, component);\r\n }\r\n }\r\n\r\n if (this.focusTrapWrapper.nativeElement.children && this.focusTrapWrapper.nativeElement.children.length === 1) {\r\n this.childElem = this.focusTrapWrapper.nativeElement.children[0];\r\n }\r\n\r\n this.handleActiveState();\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.active = false;\r\n this.handleActiveState();\r\n }\r\n\r\n\r\n public dismiss(): void {\r\n this.activeChange.emit(false);\r\n }\r\n\r\n\r\n @HostListener('document:keyup', ['$event'])\r\n onKeyUp(event: KeyboardEvent): void {\r\n if (event.key === DialogComponent.KEY_CODE_ESC) {\r\n event.stopPropagation();\r\n this.dismiss();\r\n }\r\n }\r\n\r\n handleActiveState(): void {\r\n if (!this.focusTrap) {\r\n this.focusTrap = this.focusTrapFactory.create(this.focusTrapWrapper.nativeElement);\r\n }\r\n\r\n if (this.active !== this.lastActiveState) {\r\n this.lastActiveState = this.active;\r\n\r\n // Habilitar/deshabilitar scroll\r\n if (this.active && numDialogsOpened === 0) {\r\n document.body.classList.add(DialogComponent.DIALOG_OPEN_CLASS);\r\n } else if (!this.active && numDialogsOpened === 1) {\r\n document.body.classList.remove(DialogComponent.DIALOG_OPEN_CLASS);\r\n if (document.body.classList.length === 0) {\r\n document.body.removeAttribute('class');\r\n }\r\n }\r\n\r\n if (this.active) {\r\n setTimeout(() => this.focusTrap.focusInitialElement());\r\n numDialogsOpened++;\r\n } else {\r\n let focusElem: HTMLElement;\r\n this.focusTrap.destroy();\r\n if (this.focusOnClose) {\r\n if (typeof this.focusOnClose === 'string') {\r\n focusElem = document.getElementById(this.focusOnClose);\r\n } else {\r\n focusElem = this.focusOnClose;\r\n }\r\n } else {\r\n focusElem = FocusUtils.getFirstFocusableElement();\r\n }\r\n if (focusElem) {\r\n setTimeout(() => focusElem.focus());\r\n }\r\n numDialogsOpened--;\r\n }\r\n\r\n setTimeout(() => this.clickOutsideEnabled = this.active);\r\n }\r\n }\r\n\r\n handleClickOutside(): void {\r\n if (this.dismissOnBackdrop) {\r\n this.dismiss();\r\n }\r\n }\r\n}\r\n","import {\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n ComponentRef, EmbeddedViewRef,\r\n Injectable,\r\n Injector,\r\n TemplateRef,\r\n Type\r\n} from '@angular/core';\r\nimport { DialogOptions, ModalOptions, OpenDialogResult } from '../interfaces';\r\nimport { DialogComponent } from '../components/dialog/dialog.component';\r\nimport { ModalComponent } from '../components/modal/modal.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogService {\r\n\r\n constructor(private factoryResolver: ComponentFactoryResolver,\r\n private defaultInjector: Injector,\r\n private appRef: ApplicationRef) { }\r\n\r\n openDialog(caller: Type<any>|ModalOptions|TemplateRef<any>,\r\n dialogOptions: DialogOptions): Promise<OpenDialogResult> {\r\n return new Promise<OpenDialogResult>((resolve, reject) => {\r\n\r\n if (!caller) {\r\n reject('caller is required');\r\n }\r\n\r\n if (!dialogOptions) {\r\n reject('dialogOptions is required');\r\n }\r\n\r\n const dialog = this.createDialog(dialogOptions);\r\n const result: OpenDialogResult = {\r\n dialog\r\n };\r\n\r\n if (caller instanceof Type) {\r\n dialog.instance.callerType = caller;\r\n dialog.instance.onCallerCreationCallback = (d, c) => {\r\n result.component = c;\r\n resolve(result);\r\n };\r\n } else if (caller instanceof TemplateRef) {\r\n dialog.instance.caller = caller;\r\n resolve(result);\r\n } else {\r\n dialog.instance.callerType = ModalComponent;\r\n dialog.instance.onCallerCreationCallback = (d, c) => {\r\n this.initModal(d, c, caller);\r\n result.component = c;\r\n resolve(result);\r\n };\r\n }\r\n });\r\n }\r\n\r\n closeDialog(dialog: ComponentRef<DialogComponent>|DialogComponent): void {\r\n if (dialog) {\r\n if (dialog instanceof ComponentRef) {\r\n dialog.instance.dismiss();\r\n } else {\r\n dialog.dismiss();\r\n }\r\n }\r\n }\r\n\r\n onCloseDialog(dialog: ComponentRef<DialogComponent>|DialogComponent): Promise<void> {\r\n return new Promise<void>((resolve => {\r\n let d;\r\n if (dialog instanceof ComponentRef) {\r\n d = dialog.instance;\r\n } else {\r\n d = dialog;\r\n }\r\n\r\n const subscription = d.activeChange.subscribe(() => {\r\n resolve();\r\n subscription.unsubscribe();\r\n });\r\n }));\r\n }\r\n\r\n private createDialog(dialogOptions: DialogOptions): ComponentRef<DialogComponent> {\r\n const factory = this.factoryResolver.resolveComponentFactory(DialogComponent);\r\n let dialog;\r\n if (dialogOptions.rootViewContainer) {\r\n dialog = dialogOptions.rootViewContainer.createComponent<DialogComponent>(factory);\r\n } else {\r\n dialog = factory.create(this.defaultInjector);\r\n this.appRef.attachView(dialog.hostView);\r\n const componentElement = (dialog.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(componentElement);\r\n }\r\n\r\n dialog.instance.active = true;\r\n if (dialogOptions) {\r\n Object.assign(dialog.instance, dialogOptions);\r\n }\r\n\r\n this.onCloseDialog(dialog).then(() => dialog.destroy());\r\n\r\n return dialog;\r\n }\r\n\r\n private initModal(dialog: DialogComponent, modalRef: ComponentRef<ModalComponent>, modalOptions: ModalOptions): void {\r\n modalRef.instance.title = modalOptions.title;\r\n modalRef.instance.description = modalOptions.description;\r\n modalRef.instance.itemsPrimary = modalOptions.itemsPrimary;\r\n modalRef.instance.itemsSecondary = modalOptions.itemsSecondary;\r\n modalRef.instance.icon = modalOptions.icon;\r\n\r\n modalRef.instance.isDismissible = modalOptions.isDismissible;\r\n modalRef.instance.id = modalOptions.id;\r\n modalRef.instance.classes = modalOptions.classes;\r\n modalRef.instance.caller = modalOptions.caller;\r\n\r\n if (modalOptions.isDismissible) {\r\n const subscription = modalRef.instance.closeModal.subscribe(() => {\r\n this.closeDialog(dialog);\r\n subscription.unsubscribe();\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport { BreadcrumbsData } from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-breadcrumbs-item',\r\n templateUrl: './breadcrumbs-item.component.html'\r\n})\r\nexport class BreadcrumbsItemComponent extends ContentBaseComponent implements BreadcrumbsData {\r\n\r\n @Input() id?: string;\r\n @Input() routerLink?: string;\r\n\r\n}\r\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { BreadcrumbsData } from '../../interfaces';\r\nimport { BreadcrumbsItemComponent } from './breadcrumbs-item/breadcrumbs-item.component';\r\n\r\n@Component({\r\n selector: 'desy-breadcrumbs',\r\n templateUrl: './breadcrumbs.component.html'\r\n})\r\nexport class BreadcrumbsComponent extends AccessibilityComponent {\r\n\r\n @Input() items: Array<BreadcrumbsData>;\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n @Input() collapseOnMobile: boolean;\r\n @Input() hasBackButton: boolean;\r\n @ContentChildren(BreadcrumbsItemComponent) itemComponentList: QueryList<BreadcrumbsItemComponent>;\r\n\r\n constructor(private location: Location){\r\n super();\r\n }\r\n\r\n getLength(): number {\r\n let itemsLength: number = this.items ? this.items.length : this.itemComponentList.length;\r\n\r\n if (this.hasBackButton) {\r\n itemsLength += 1;\r\n }\r\n return itemsLength;\r\n }\r\n\r\n goBack(): void {\r\n this.location.back();\r\n }\r\n\r\n getItemList(): BreadcrumbsData[] {\r\n const itemList = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;\r\n\r\n return itemList;\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-header-offcanvas-close-button',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class HeaderOffcanvasCloseButtonComponent extends ContentBaseComponent {\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-header-offcanvas-button',\r\n templateUrl: './header-offcanvas-button.component.html'\r\n})\r\nexport class HeaderOffcanvasButtonComponent extends ContentBaseComponent {\r\n\r\n openOffcanvas = async () => {};\r\n\r\n async handleClick(event: Event): Promise<void> {\r\n event.stopPropagation();\r\n await this.openOffcanvas();\r\n }\r\n\r\n\r\n}\r\n","import {\r\n Component,\r\n ComponentRef,\r\n ContentChildren,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport {HeaderOffcanvasCloseButtonComponent} from './header-offcanvas-close-button/header-offcanvas-close-button.component';\r\nimport {DialogComponent} from '../../../../desy-modals/components/dialog/dialog.component';\r\nimport {DialogService} from '../../../../desy-modals/services/dialog.service';\r\nimport {DialogOptions} from '../../../../desy-modals/interfaces';\r\nimport {HeaderOffcanvasButtonComponent} from './header-offcanvas-button/header-offcanvas-button.component';\r\nimport {DesyOnInputChange} from '../../../../shared/decorators/desy-on-input-change.decorator';\r\n\r\n@Component({\r\n selector: 'desy-header-offcanvas',\r\n templateUrl: './header-offcanvas.component.html'\r\n})\r\nexport class HeaderOffcanvasComponent implements OnDestroy {\r\n\r\n private static dialogOptions: DialogOptions = {\r\n id: 'header-offcanvas-dialog',\r\n focusOnClose: 'header-offcanvas-button',\r\n ariaModal: 'true',\r\n ariaLabelledBy: 'header-offcanvas-button-text',\r\n role: 'dialog'\r\n };\r\n\r\n @DesyOnInputChange('setHostClass')\r\n @Input() classes: string;\r\n\r\n @HostBinding('class') hostClass = '-mr-2 flex lg:hidden';\r\n\r\n @ViewChild('offcanvasContent') offcanvasContent: TemplateRef<any>;\r\n\r\n @DesyContentChild({onSetCallbackName: 'bindButton'})\r\n @ContentChildren(HeaderOffcanvasButtonComponent) button: HeaderOffcanvasButtonComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) content: ContentComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HeaderOffcanvasCloseButtonComponent) closeButton: HeaderOffcanvasCloseButtonComponent;\r\n\r\n private dialog: ComponentRef<DialogComponent>;\r\n\r\n constructor(private dialogService: DialogService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.isOpen()) {\r\n this.close();\r\n }\r\n }\r\n\r\n async open(): Promise<void> {\r\n if (!this.isOpen()) {\r\n this.dialog = (await this.dialogService.openDialog(this.offcanvasContent, HeaderOffcanvasComponent.dialogOptions)).dialog;\r\n this.dialogService.onCloseDialog(this.dialog).then(() => this.dialog = null);\r\n }\r\n }\r\n\r\n close(): void {\r\n if (this.isOpen()) {\r\n this.dialogService.closeDialog(this.dialog);\r\n this.dialog = null;\r\n const elementToFocus = document.getElementById('header-offcanvas-button');\r\n elementToFocus?.focus()\r\n }\r\n }\r\n\r\n isOpen(): boolean {\r\n return !!this.dialog;\r\n }\r\n\r\n /**\r\n * Estable las clases del elemento html del componente\r\n */\r\n setHostClass(): void {\r\n this.hostClass = this.classes ? this.classes : '-mr-2 flex lg:hidden';\r\n }\r\n\r\n /**\r\n * Enlaza el botón del componente hijo con la acción de abrir de este componente\r\n * @param button componente botón pasado como contenido\r\n */\r\n bindButton(button: HeaderOffcanvasButtonComponent): void {\r\n button.openOffcanvas = this.open.bind(this);\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {HeaderNavigationItemData} from '../../../../interfaces/header-navigation-item-data';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-header-navigation-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class HeaderNavigationItemComponent extends ContentBaseComponent implements HeaderNavigationItemData {\r\n @Input() href: string;\r\n @Input() routerLink: string;\r\n @Input() fragment: string;\r\n @Input() id: string;\r\n @Input() active: boolean;\r\n @Input() disabled: boolean;\r\n}\r\n","import {AfterContentInit, Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport { HeaderNavigationItemData } from '../../../interfaces/header-navigation-item-data';\r\nimport { AccessibilityComponent } from '../../../../shared/components';\r\nimport {HeaderNavigationItemComponent} from './header-navigation-item/header-navigation-item.component';\r\n\r\n@Component({\r\n selector: 'desy-header-navigation',\r\n templateUrl: './header-navigation.component.html'\r\n})\r\nexport class HeaderNavigationComponent extends AccessibilityComponent implements AfterContentInit {\r\n\r\n @Input() idPrefix: string;\r\n @Input() classes: string;\r\n @Input() items: HeaderNavigationItemData[];\r\n\r\n @ContentChildren(HeaderNavigationItemComponent) itemComponents: QueryList<HeaderNavigationItemComponent>;\r\n\r\n ngAfterContentInit(): void {\r\n const items = this.getItems();\r\n }\r\n\r\n getItemId(item: HeaderNavigationItemData, index: number): string {\r\n const prefix = this.idPrefix ? this.idPrefix : 'header-nav-item';\r\n const suffix = index > 0 ? '-' + index : '';\r\n return item.id ? item.id : prefix + suffix;\r\n }\r\n\r\n getItems(): HeaderNavigationItemData[] {\r\n return this.itemComponents && this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items;\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {NavItemData, NavItemEventData} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-nav-item',\r\n templateUrl: './nav-item.component.html'\r\n})\r\nexport class NavItemComponent extends ContentBaseComponent implements NavItemData {\r\n\r\n @Input() id?: string;\r\n @Input() active?: boolean;\r\n @Input() classes?: string;\r\n @Input() title?: string;\r\n @Input() href?: string;\r\n @Input() routerLink?: string|any[];\r\n @Input() fragment?: string;\r\n @Input() target?: string;\r\n @Input() disabled?: boolean;\r\n @Input() divider?: boolean;\r\n\r\n @Output() clickEvent = new EventEmitter<NavItemEventData>();\r\n @Output() activeChange = new EventEmitter<boolean>();\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList\r\n} from '@angular/core';\r\nimport {\r\n AccessibilityComponent\r\n} from '../../../shared/components';\r\nimport {NavItemData, NavItemEventData} from '../../interfaces';\r\nimport {NavItemComponent} from './nav-item/nav-item.component';\r\n\r\n\r\n@Component({\r\n selector: 'desy-nav',\r\n templateUrl: './nav.component.html'\r\n})\r\nexport class NavComponent extends AccessibilityComponent {\r\n\r\n @Input() hasNav = true;\r\n @Input() idPrefix: string;\r\n @Input() items: NavItemData[];\r\n @Input() classes: string;\r\n\r\n @Output() clickEvent = new EventEmitter<NavItemEventData>();\r\n @ContentChildren(NavItemComponent) itemComponentList: QueryList<NavItemComponent>;\r\n\r\n onClick(event: any, item: NavItemData): void {\r\n const itemsActiveChange = [];\r\n if (!item.active) {\r\n itemsActiveChange.push(item);\r\n }\r\n\r\n const itemList = this.getItemList();\r\n itemList.forEach(i => {\r\n if (i.active && i !== item) {\r\n itemsActiveChange.push(i);\r\n }\r\n i.active = false;\r\n });\r\n item.active = true;\r\n\r\n // Se emite el evento sólo para los items cuyo valor de active ha sido modificado\r\n itemsActiveChange.forEach(i => {\r\n if (i instanceof NavItemComponent) {\r\n i.activeChange.emit(i.active);\r\n }\r\n });\r\n\r\n this.clickEvent.emit({ item, event });\r\n if (item instanceof NavItemComponent) {\r\n item.clickEvent.emit({ item, event });\r\n }\r\n }\r\n\r\n getItemList(): NavItemData[] {\r\n const itemList = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;\r\n \r\n return itemList;\r\n }\r\n\r\n getItemId(item: NavItemData, index: number): string {\r\n let id;\r\n if (item.id) {\r\n id = item.id;\r\n } else if (index === 0) {\r\n id = this.getIdPrefix();\r\n } else {\r\n id = this.getIdPrefix() + '-' + index;\r\n }\r\n return id;\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : 'nav-item';\r\n }\r\n\r\n movePrevious(event: KeyboardEvent, currentIndex: number): void {\r\n event.preventDefault();\r\n const items = this.getItemList();\r\n let nextIndex = currentIndex - 1;\r\n while (nextIndex >= 0 && !this.isFocusableItem(items[nextIndex])) {\r\n nextIndex--;\r\n }\r\n\r\n if (nextIndex < items.length) {\r\n const itemElem = document.getElementById(this.getItemId(items[nextIndex], nextIndex));\r\n if (itemElem) {\r\n itemElem.focus();\r\n }\r\n }\r\n }\r\n\r\n moveNext(event: KeyboardEvent, currentIndex: number): void {\r\n event.preventDefault();\r\n const items = this.getItemList();\r\n let nextIndex = currentIndex + 1;\r\n while (nextIndex < items.length && !this.isFocusableItem(items[nextIndex])) {\r\n nextIndex++;\r\n }\r\n\r\n if (nextIndex < items.length) {\r\n const itemElem = document.getElementById(this.getItemId(items[nextIndex], nextIndex));\r\n if (itemElem) {\r\n itemElem.focus();\r\n }\r\n }\r\n }\r\n\r\n simulateClick(event: KeyboardEvent, item: NavItemData, index: number): void {\r\n event.preventDefault();\r\n const element = document.getElementById(this.getItemId(item, index));\r\n element?.click();\r\n }\r\n\r\n\r\n private isFocusableItem(item: NavItemData): boolean {\r\n return !item.active && !item.disabled;\r\n }\r\n\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport {NavComponent} from '../../nav/nav.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {AccessibilityComponent} from \"../../../../shared/components\";\r\n\r\n@Component({\r\n selector: 'desy-header-subnav',\r\n templateUrl: './header-subnav.component.html'\r\n})\r\nexport class HeaderSubnavComponent extends AccessibilityComponent {\r\n\r\n @Input() hiddenText: string;\r\n @Input() classesContainer: string;\r\n @Input() classesTooltip: string;\r\n @Input() classes: string;\r\n\r\n @DesyContentChild({onSetCallbackName: 'overrideNavParams'})\r\n @ContentChildren(NavComponent) nav: NavComponent;\r\n\r\n hasSubnavItems(): boolean {\r\n return this.nav && this.nav.getItemList().length > 0;\r\n }\r\n\r\n overrideNavParams(nav: NavComponent): void {\r\n nav.hasNav = true;\r\n nav.idPrefix = 'header-subnav-nav-item';\r\n nav.ariaLabel = 'Aplicaciones';\r\n nav.classes = 'w-max max-w-64';\r\n // nav.id = 'id-subnav-nav'; // No existe como param de navComponent\r\n }\r\n\r\n\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {NavComponent} from '../../nav/nav.component';\r\nimport {AccessibilityComponent} from \"../../../../shared/components\";\r\nimport {ContentComponent} from \"../../../../desy-commons/components/content/content.component\";\r\n\r\n@Component({\r\n selector: 'desy-header-dropdown',\r\n templateUrl: './header-dropdown.component.html',\r\n})\r\nexport class HeaderDropdownComponent extends AccessibilityComponent {\r\n\r\n @Input() hiddenText: string;\r\n @Input() classesContainer: string;\r\n @Input() classesTooltip: string;\r\n @Input() classes: string;\r\n\r\n @DesyContentChild({onSetCallbackName: 'overrideNavParams'})\r\n @ContentChildren(NavComponent) nav: NavComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n overrideNavParams(nav: NavComponent): void {\r\n nav.hasNav = true;\r\n nav.idPrefix = 'header-dropdown-nav-item';\r\n nav.ariaLabel = 'Menú de usuario';\r\n nav.classes = 'w-max max-w-64';\r\n // nav.id = 'id-dropdown-nav'; // No existe como param de navComponent\r\n }\r\n\r\n}\r\n","import {ChangeDetectorRef, Component, Input} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-skip-link',\r\n templateUrl: './skip-link.component.html'\r\n})\r\nexport class SkipLinkComponent extends AccessibilityComponent {\r\n\r\n @Input() html: string;\r\n @Input() text: string;\r\n @Input() fragment: string;\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n hasContent = true;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n getClassNames(): string {\r\n let classNames = 'c-skip-link sr-only active:not-sr-only focus:not-sr-only focus:outline-none focus:shadow-outline-focus block p-base bg-warning-base text-center text-black underline';\r\n if (this.classes) {\r\n classNames += ' ' + this.classes;\r\n }\r\n return classNames;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ContentBaseComponent } from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-header-custom-navigation',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class HeaderCustomNavigationComponent extends ContentBaseComponent{\r\n\r\n\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { HeaderSubnavData } from '../../interfaces';\r\nimport { HeaderNavigationData } from '../../interfaces';\r\nimport { HeaderDropdownData } from '../../interfaces';\r\nimport { HeaderOffcanvasData } from '../../interfaces';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {HeaderOffcanvasComponent} from './header-offcanvas/header-offcanvas.component';\r\nimport {HeaderNavigationComponent} from './header-navigation/header-navigation.component';\r\nimport {HeaderSubnavComponent} from './header-subnav/header-subnav.component';\r\nimport {HeaderDropdownComponent} from './header-dropdown/header-dropdown.component';\r\nimport {SkipLinkComponent} from '../skip-link/skip-link.component';\r\nimport { HeaderCustomNavigationComponent } from './header-custom-navigation/header-custom-navigation.component';\r\n\r\n@Component({\r\n selector: 'desy-header',\r\n templateUrl: './header.component.html'\r\n})\r\nexport class HeaderComponent extends AccessibilityComponent {\r\n\r\n @Input() classes: string;\r\n @Input() containerClasses: string;\r\n @Input() homepageUrl: string;\r\n @Input() homepageRouterLink: string;\r\n @Input() homepageFragment: string;\r\n @Input() expandedLogo: boolean;\r\n @Input() noLogo: boolean;\r\n @Input() customLogoHtml: string;\r\n @Input() customNavigationHtml: string;\r\n\r\n @Input() subnavData: HeaderSubnavData;\r\n @Input() navigationData: HeaderNavigationData;\r\n @Input() dropdownData: HeaderDropdownData;\r\n @Input() offcanvasData: HeaderOffcanvasData;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideSkipLinkParams'})\r\n @ContentChildren(SkipLinkComponent) skiplinkComponent: SkipLinkComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HeaderSubnavComponent) subnavComponent: HeaderSubnavComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HeaderCustomNavigationComponent) customNavigationComponent: HeaderCustomNavigationComponent;\r\n\r\n @DesyContentChild({ onSetCallbackName: 'overrideNavigationParams'})\r\n @ContentChildren(HeaderNavigationComponent) navigationComponent: HeaderNavigationComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HeaderDropdownComponent) dropdownComponent: HeaderDropdownComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HeaderOffcanvasComponent) offcanvasComponent: HeaderOffcanvasComponent;\r\n\r\n\r\n overrideSkipLinkParams(skiplinkComponent: SkipLinkComponent): void {\r\n skiplinkComponent.id = skiplinkComponent.id || 'skip-link';\r\n skiplinkComponent.text = 'Saltar al contenido principal';\r\n }\r\n\r\n overrideNavigationParams(navigationComponent: HeaderNavigationComponent): void {\r\n navigationComponent.idPrefix = 'header-nav-item';\r\n navigationComponent.ariaLabel = 'Menú principal';\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {NavigationItemData} from '../../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-footer-navigation-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class FooterNavigationItemComponent extends ContentBaseComponent implements NavigationItemData {\r\n @Input() href?: string;\r\n @Input() routerLink?: string;\r\n @Input() fragment?: string;\r\n}\r\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport {NavigationData} from '../../../interfaces';\r\nimport {FooterNavigationItemComponent} from './footer-navigation-item/footer-navigation-item.component';\r\n\r\n@Component({\r\n selector: 'desy-footer-navigation',\r\n templateUrl: './footer-navigation.component.html'\r\n})\r\nexport class FooterNavigationComponent implements NavigationData {\r\n @Input() title: string;\r\n @Input() columns: number;\r\n\r\n @ContentChildren(FooterNavigationItemComponent) itemComponents: QueryList<FooterNavigationItemComponent>;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {MetaItemData} from '../../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-footer-meta-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class FooterMetaItemComponent extends ContentBaseComponent implements MetaItemData {\r\n @Input() href?: string;\r\n @Input() routerLink?: string;\r\n @Input() fragment?: string;\r\n}\r\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport {MetaData} from '../../../interfaces';\r\nimport {FooterMetaItemComponent} from './footer-meta-item/footer-meta-item.component';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-footer-meta',\r\n template: ''\r\n})\r\nexport class FooterMetaComponent extends ContentBaseComponent implements MetaData {\r\n\r\n @Input() visuallyHiddenTitle: string;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n @ContentChildren(FooterMetaItemComponent) itemComponents: QueryList<FooterMetaItemComponent>;\r\n}\r\n","import { DescriptionComponent } from './../../../desy-commons/components/description/description.component';\r\nimport { DescriptionData } from '../../../desy-commons/interfaces/';\r\nimport {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {MetaData, MetaItemData, NavigationData, NavigationItemData} from '../../interfaces';\r\nimport {IconData} from '../../../desy-commons/interfaces';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\r\nimport {FooterNavigationComponent} from './footer-navigation/footer-navigation.component';\r\nimport {FooterMetaComponent} from './footer-meta/footer-meta.component';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\n\r\n\r\n@Component({\r\n selector: 'desy-footer',\r\n templateUrl: './footer.component.html'\r\n})\r\nexport class FooterComponent extends AccessibilityComponent {\r\n\r\n @Input() meta: MetaData;\r\n @Input() navigation: NavigationData[];\r\n @Input() icon: IconData;\r\n @Input() containerClasses: string;\r\n @Input() classes: string;\r\n @Input() description: DescriptionData;\r\n @Input() noLogo: boolean;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(IconComponent) iconComponent: IconComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(FooterMetaComponent) metaComponent: FooterMetaComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent\r\n\r\n @ContentChildren(FooterNavigationComponent) navigationComponent: QueryList<FooterNavigationComponent>;\r\n\r\n\r\n getNavigationItems(): NavigationData[] {\r\n const navItems = this.navigationComponent && this.navigationComponent.length > 0 ? this.navigationComponent.toArray() : this.navigation;\r\n return navItems && navItems.length > 0 ? navItems : null;\r\n }\r\n\r\n getNavigationItemItems(navigation: NavigationData): NavigationItemData[] {\r\n return navigation instanceof FooterNavigationComponent ? navigation.itemComponents.toArray() : navigation.items;\r\n }\r\n\r\n getMetaItems(meta: MetaData): MetaItemData[] {\r\n return meta instanceof FooterMetaComponent ? meta.itemComponents.toArray() : meta.items;\r\n }\r\n\r\n getMetaContent(meta: MetaData): ContentComponent {\r\n return meta instanceof FooterMetaComponent ? meta.contentComponent : null;\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ErrorSummaryData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-error-summary-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ErrorSummaryItemComponent extends ContentBaseComponent implements ErrorSummaryData {\r\n\r\n @Input() fragment: string;\r\n @Input() id: string;\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ContentChildren,\r\n QueryList\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {ErrorSummaryData} from '../../interfaces';\r\nimport {ErrorSummaryItemComponent} from './error-summary-item/error-summary-item.component';\r\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\r\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-error-summary',\r\n templateUrl: './error-summary.component.html'\r\n})\r\nexport class ErrorSummaryComponent extends AccessibilityComponent {\r\n\r\n @Input() titleText: string;\r\n @Input() titleHtml: string;\r\n @Input() descriptionText: string;\r\n @Input() descriptionHtml: string;\r\n @Input() classes: string;\r\n @Input() id: string;\r\n @Input() errorList: Array<ErrorSummaryData>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\r\n\r\n @ContentChildren(ErrorSummaryItemComponent) errorComponentList: QueryList<ErrorSummaryItemComponent>;\r\n\r\n lastErrorItemCount: number;\r\n\r\n getErrorItemList(): ErrorSummaryData[] {\r\n let errorItemList: ErrorSummaryData[];\r\n if (this.errorComponentList && this.errorComponentList.length > 0) {\r\n errorItemList = this.errorComponentList.toArray();\r\n } else {\r\n errorItemList = this.errorList ? this.errorList : null;\r\n }\r\n\r\n const lastLength = this.lastErrorItemCount;\r\n this.lastErrorItemCount = errorItemList ? errorItemList.length : null;\r\n\r\n return errorItemList;\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {MenuHorizontalItemData, MenuHorizontalItemEventData} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menu-horizontal-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class MenuHorizontalItemComponent extends ContentBaseComponent implements MenuHorizontalItemData {\r\n\r\n @Input() href?: string;\r\n @Input() routerLink?: string|any[];\r\n @Input() fragment?: string;\r\n @Input() target?: string;\r\n @Input() id?: string;\r\n @Input() active?: boolean;\r\n @Input() disabled?: boolean;\r\n @Input() classes?: string;\r\n\r\n @Output() clickEvent = new EventEmitter<MenuHorizontalItemEventData>();\r\n @Output() activeChange = new EventEmitter<boolean>();\r\n\r\n}\r\n","import {Component, ContentChildren, EventEmitter, Input, OnChanges, Output, QueryList, SimpleChanges} from '@angular/core';\r\nimport { MenuHorizontalItemData, MenuHorizontalItemEventData } from '../../interfaces';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport {MenuHorizontalItemComponent} from './menu-horizontal-item/menu-horizontal-item.component';\r\n\r\n@Component({\r\n selector: 'desy-menu-horizontal',\r\n templateUrl: './menu-horizontal.component.html'\r\n})\r\nexport class MenuHorizontalComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() idPrefix: string;\r\n @Input() classes: string;\r\n @Input() items: MenuHorizontalItemData[];\r\n\r\n @ContentChildren(MenuHorizontalItemComponent) itemComponents: QueryList<MenuHorizontalItemComponent>;\r\n\r\n @Output() clickEvent = new EventEmitter<MenuHorizontalItemEventData>();\r\n\r\n onClick(event: any, item: MenuHorizontalItemData): void {\r\n const itemsActiveChange = [];\r\n if (!item.active) {\r\n itemsActiveChange.push(item);\r\n }\r\n\r\n const itemList = this.getItemList();\r\n itemList.forEach(i => {\r\n if (i.active && i !== item) {\r\n itemsActiveChange.push(i);\r\n }\r\n i.active = false;\r\n });\r\n item.active = true;\r\n\r\n // Se emite el evento sólo para los items cuyo valor de active ha sido modificado\r\n itemsActiveChange.forEach(i => {\r\n if (i instanceof MenuHorizontalItemComponent) {\r\n i.activeChange.emit(i.active);\r\n }\r\n });\r\n\r\n this.clickEvent.emit({ item, event });\r\n if (item instanceof MenuHorizontalItemComponent) {\r\n item.clickEvent.emit({ item, event });\r\n }\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : 'menu-item';\r\n }\r\n\r\n getItemList(): MenuHorizontalItemData[] {\r\n const itemList = this.itemComponents && this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items; \r\n return itemList;\r\n }\r\n\r\n\r\n getItemId(item: MenuHorizontalItemData, index: number): string {\r\n let id;\r\n if (item.id) {\r\n id = item.id;\r\n } else if (index === 0) {\r\n id = this.getIdPrefix();\r\n } else {\r\n id = this.getIdPrefix() + '-' + index;\r\n }\r\n return id;\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {MenuVerticalSubItemsData} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menu-vertical-item-sub-item',\r\n templateUrl: './menu-vertical-item-sub-item.component.html'\r\n})\r\nexport class MenuVerticalItemSubItemComponent extends ContentBaseComponent implements MenuVerticalSubItemsData {\r\n\r\n @Input() id?: string;\r\n @Input() classes?: string;\r\n @Input() href?: string;\r\n @Input() routerLink?: string;\r\n @Input() routerLinkActiveClasses?: string;\r\n @Input() fragment?: string;\r\n @Input() target?: string;\r\n @Input() disabled?: boolean;\r\n @Input() active?: boolean;\r\n @Input() divider?: boolean;\r\n @Input() title?: string;\r\n}\r\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport {MenuVerticalSubData} from '../../../interfaces';\r\nimport {MenuVerticalItemSubItemComponent} from '../menu-vertical-item-sub-item/menu-vertical-item-sub-item.component';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menu-vertical-item-sub',\r\n templateUrl: './menu-vertical-item-sub.component.html'\r\n})\r\nexport class MenuVerticalItemSubComponent extends ContentBaseComponent implements MenuVerticalSubData {\r\n @Input() classes?: string;\r\n\r\n @ContentChildren(MenuVerticalItemSubItemComponent) itemComponents: QueryList<MenuVerticalItemSubItemComponent>;\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport {MenuVerticalItemsData} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {MenuVerticalItemSubComponent} from '../menu-vertical-item-sub/menu-vertical-item-sub.component';\r\n\r\n@Component({\r\n selector: 'desy-menu-vertical-item',\r\n templateUrl: './menu-vertical-item.component.html'\r\n})\r\nexport class MenuVerticalItemComponent extends ContentBaseComponent implements MenuVerticalItemsData {\r\n\r\n @Input() id?: string;\r\n @Input() classes?: string;\r\n @Input() href?: string;\r\n @Input() routerLink?: string;\r\n @Input() routerLinkActiveClasses?: string;\r\n @Input() fragment?: string;\r\n @Input() target?: string;\r\n @Input() disabled?: boolean;\r\n @Input() active?: boolean;\r\n @Input() divider?: boolean;\r\n @Input() title?: string;\r\n @Input() expanded?: boolean; // no se utiliza\r\n\r\n @DesyContentChild()\r\n @ContentChildren(MenuVerticalItemSubComponent) subComponent: MenuVerticalItemSubComponent;\r\n\r\n}\r\n","import {Component, Input, ContentChildren, QueryList} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport {MenuVerticalItemsData, MenuVerticalSubData, MenuVerticalSubItemsData} from '../../interfaces';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { StringUtils } from '../../../shared/utils/string-utils';\r\nimport {MenuVerticalItemComponent} from './menu-vertical-item/menu-vertical-item.component';\r\nimport {MenuVerticalItemSubComponent} from './menu-vertical-item-sub/menu-vertical-item-sub.component';\r\n\r\n@Component({\r\n selector: 'desy-menu-vertical',\r\n templateUrl: './menu-vertical.component.html',\r\n animations: [\r\n trigger('displayMenuVertical', [\r\n state('void', style({\r\n opacity: '0.0',\r\n transform: 'scale(0.95)'\r\n })),\r\n state('*', style({\r\n opacity: '1.0',\r\n transform: 'scale(1.0)'\r\n })),\r\n transition(':enter', [\r\n animate('100ms ease-out')\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class MenuVerticalComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() idPrefix: string;\r\n @Input() items: MenuVerticalItemsData[];\r\n @Input() hasUnderline: boolean;\r\n @Input() classes: string;\r\n\r\n @ContentChildren(MenuVerticalItemComponent) itemComponents: QueryList<MenuVerticalItemComponent>;\r\n\r\n getItemHtml(item: MenuVerticalItemsData): string {\r\n let itemHtml: string;\r\n if (item.active) {\r\n itemHtml = item.html ? `<strong>${ item.html }</strong>` : `<strong>${ StringUtils.escapeHtml(item.text) }</strong>`;\r\n } else {\r\n itemHtml = item.html;\r\n }\r\n\r\n return itemHtml;\r\n }\r\n\r\n getId(item: MenuVerticalItemsData, i: number): string {\r\n if (item.id) {\r\n return item.id;\r\n } else {\r\n const idPrefix = this.idPrefix ? this.idPrefix : 'nav-item';\r\n if (i === 0) {\r\n return idPrefix + '-0';\r\n } else {\r\n return idPrefix + '-' + i;\r\n }\r\n }\r\n }\r\n\r\n getSubItemId(item: MenuVerticalItemsData, itemIndex: number, subItemIndex: number): string{\r\n let subItemId: string;\r\n const sub = this.getItemSub(item);\r\n const subItems = this.getSubItems(sub);\r\n const subItem = subItems[subItemIndex];\r\n if (subItem) {\r\n if (subItem.id) {\r\n subItemId = subItem.id;\r\n } else {\r\n const itemId = this.getId(item, itemIndex);\r\n subItemId = subItemIndex === 0 ? `sub-${itemId}` : `sub-${itemId}-${subItemIndex}`;\r\n }\r\n }\r\n\r\n return subItemId;\r\n }\r\n\r\n getItems(): MenuVerticalItemsData[] {\r\n const itemList = this.itemComponents && this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items;\r\n return itemList;\r\n }\r\n\r\n getItemSub(item: MenuVerticalItemsData): MenuVerticalSubData {\r\n return item instanceof MenuVerticalItemComponent ? item.subComponent : item.sub;\r\n }\r\n\r\n getSubItems(sub: MenuVerticalSubData): MenuVerticalSubItemsData[] {\r\n const subItems = sub instanceof MenuVerticalItemSubComponent ? sub.itemComponents.toArray() : sub.items;\r\n return subItems && subItems.length > 0 ? subItems : null;\r\n }\r\n}\r\n","import {\r\n ContentChild,\r\n ContentChildren,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Output,\r\n QueryList,\r\n AfterContentChecked\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[desyMenubaritem]'\r\n})\r\nexport class MenubaritemDirective implements AfterContentChecked {\r\n @ContentChild('link', { read: ElementRef }) link: ElementRef;\r\n @ContentChild('itemContentWrapper', { read: ElementRef }) itemContentWrapper: ElementRef;\r\n @ContentChild('popupMenu', { read: ElementRef }) popupMenu: ElementRef;\r\n @ContentChildren('popupMenuItem', { read: ElementRef, descendants: true}) popupMenuItems: QueryList<ElementRef>;\r\n\r\n @Output() contentChanged: EventEmitter<any> = new EventEmitter();\r\n\r\n private lastPopupMenu: ElementRef;\r\n private lastPopupMenuItems: QueryList<ElementRef>;\r\n private lastItemContentWrapper: ElementRef;\r\n private lastLink: ElementRef;\r\n\r\n contentHasBeenChecked = false;\r\n\r\n constructor(public elementRef: ElementRef) { }\r\n\r\n ngAfterContentChecked(): void {\r\n if (this.popupMenu !== this.lastPopupMenu || this.popupMenuItems !== this.lastPopupMenuItems\r\n || this.link !== this.lastLink || this.itemContentWrapper !== this.lastItemContentWrapper) {\r\n setTimeout(() => this.contentChanged.emit());\r\n this.lastPopupMenu = this.popupMenu;\r\n this.lastPopupMenuItems = this.popupMenuItems;\r\n this.lastLink = this.link;\r\n this.lastItemContentWrapper = this.itemContentWrapper;\r\n }\r\n\r\n if (!this.contentHasBeenChecked) {\r\n setTimeout(() => this.contentHasBeenChecked = true);\r\n }\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {MenubarItemSubItemSubItem} from '../../../../interfaces/menubar-item-sub-item-sub-item';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menubar-subsubitem',\r\n templateUrl: './menubar-subsubitem.component.html'\r\n})\r\nexport class MenubarSubsubitemComponent extends ContentBaseComponent implements MenubarItemSubItemSubItem {\r\n\r\n @Input() html?: string;\r\n @Input() text?: string;\r\n @Input() checked?: boolean;\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n @Output() checkedChange = new EventEmitter<boolean>();\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n} from '@angular/core';\r\nimport {MenubarItemSubItem} from '../../../../interfaces/menubar-item-sub-item';\r\nimport {MenubarItemSubItemSubItem} from '../../../../interfaces/menubar-item-sub-item-sub-item';\r\nimport {MenubarSubsubitemComponent} from '../menubar-subsubitem/menubar-subsubitem.component';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menubar-subitem',\r\n templateUrl: './menubar-subitem.component.html'\r\n})\r\nexport class MenubarSubitemComponent extends ContentBaseComponent implements MenubarItemSubItem {\r\n\r\n @Input() text?: string;\r\n @Input() html?: string;\r\n @Input() checked?: boolean;\r\n @Input() items?: MenubarItemSubItemSubItem[];\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n @Output() checkedChange = new EventEmitter<boolean>();\r\n\r\n @ContentChildren(MenubarSubsubitemComponent) subItems: QueryList<MenubarSubsubitemComponent>;\r\n\r\n public getSubItems(): MenubarSubsubitemComponent[] {\r\n return this.subItems.toArray();\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n} from '@angular/core';\r\nimport {MenubarItem} from '../../../../interfaces/menubar-item';\r\nimport {MenubarItemSub} from '../../../../interfaces/menubar-item-sub';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\nimport {MenubarSubitemComponent} from '../menubar-subitem/menubar-subitem.component';\r\n\r\n@Component({\r\n selector: 'desy-menubar-item',\r\n templateUrl: './menubar-item.component.html'\r\n})\r\nexport class MenubarItemComponent extends ContentBaseComponent implements MenubarItem {\r\n\r\n @Input() href?: string;\r\n @Input() target?: string;\r\n @Input() routerLink?: string|any[];\r\n @Input() routerLinkActiveClasses?: string;\r\n @Input() fragment?: string;\r\n @Input() text?: string;\r\n @Input() html?: string;\r\n @Input() id?: string;\r\n @Input() sub?: MenubarItemSub;\r\n @Input() classes?: string;\r\n\r\n @Input() title?: string;\r\n @Input() disabled?: boolean;\r\n @Input() active?: boolean;\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n\r\n @ContentChildren(MenubarSubitemComponent) subItems: QueryList<MenubarSubitemComponent>;\r\n\r\n public getSubItems(): MenubarSubitemComponent[] {\r\n return this.subItems.toArray();\r\n }\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-menubar-label',\r\n templateUrl: './menubar-label.component.html'\r\n})\r\nexport class MenubarLabelComponent extends ContentBaseComponent {\r\n\r\n @Input() classes: string;\r\n\r\n}\r\n","import {\r\n AfterViewInit, ChangeDetectorRef,\r\n Component, ContentChildren,\r\n ElementRef, EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges, Output,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {MenubarItem} from '../../interfaces/menubar-item';\r\nimport {MenubaritemDirective} from './directives/menubaritem.directive';\r\nimport {MenubarItemSubItem} from '../../interfaces/menubar-item-sub-item';\r\nimport {MenubarItemSubItemSubItem} from '../../interfaces/menubar-item-sub-item-sub-item';\r\nimport {LabelComponent} from '../../../desy-forms/components/label/label.component';\r\nimport {LabelData} from '../../../desy-forms/interfaces';\r\nimport {StringUtils} from '../../../shared/utils/string-utils';\r\nimport {MenubarItemComponent} from './components/menubar-item/menubar-item.component';\r\nimport {MenubarSubitemComponent} from './components/menubar-subitem/menubar-subitem.component';\r\nimport {MenubarSubsubitemComponent} from './components/menubar-subsubitem/menubar-subsubitem.component';\r\nimport {MenubarLabelComponent} from './components/menubar-label/menubar-label.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-menubar',\r\n templateUrl: './menubar.component.html'\r\n})\r\nexport class MenubarComponent extends AccessibilityComponent implements OnChanges, AfterViewInit {\r\n\r\n @Input() idPrefix: string;\r\n @Input() items: MenubarItem[];\r\n @Output() itemsChange = new EventEmitter<MenubarItem[]>();\r\n @Output() activeItemChange = new EventEmitter<MenubarItem>();\r\n @Output() activeSubItemChange = new EventEmitter<MenubarItemSubItem|MenubarItemSubItemSubItem>();\r\n\r\n /**\r\n * label, diferentes formas de implementar, enumeradas por prioridad\r\n * 1) incluir componente menubar-label anidado\r\n * 2) incluir template\r\n * 3) incluir objeto label (interfaz expuesta)\r\n * 4) incluir legendText - incluir un label con solo un texto\r\n */\r\n @Input() labelRef: TemplateRef<LabelComponent>;\r\n @Input() labelData: LabelData;\r\n @Input() labelText: string;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n @HostBinding('class.c-menubar') cfg = true\r\n @Input() @HostBinding('attr.id') id: any;\r\n\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.aria-modal') ariaModalData: any\r\n\r\n @ViewChild('menubar', { read: ElementRef }) menubar: ElementRef;\r\n @ViewChildren(MenubaritemDirective) menuItems: QueryList<MenubaritemDirective>;\r\n @DesyContentChild() @ContentChildren(MenubarLabelComponent) labelComponent: MenubarLabelComponent;\r\n @ContentChildren(MenubarItemComponent) itemComponentList: QueryList<MenubarItemComponent>;\r\n\r\n menuData: any[];\r\n viewInit = false;\r\n isFocused: boolean;\r\n currentFocusItemIndex = 0;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes?: SimpleChanges): void {\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\r\n if (this.viewInit) {\r\n this.checkChanges();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.viewInit = true;\r\n this.checkChanges();\r\n }\r\n\r\n checkChanges(): void {\r\n if (!this.menuItems) {\r\n return;\r\n }\r\n \r\n this.menuData = [];\r\n this.getItems().forEach((_, index) => {\r\n const itemData = {\r\n open: false,\r\n currentFocusSubItemIndex: 0,\r\n currentFocusSubSubItemIndex: 0,\r\n menuItem: this.menuItems.toArray()[index]\r\n };\r\n this.menuData.push(itemData);\r\n });\r\n\r\n if (this.viewInit) {\r\n this.checkRequired();\r\n }\r\n\r\n\r\n const lastCurrentFocusItemIndex = this.currentFocusItemIndex;\r\n const items = this.getItems();\r\n if (items) {\r\n while (!this.isItemFocusable(this.currentFocusItemIndex % items.length)) {\r\n this.currentFocusItemIndex = (this.currentFocusItemIndex + items.length + 1) % items.length;\r\n if (this.currentFocusItemIndex === lastCurrentFocusItemIndex) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Eventos\r\n */\r\n\r\n handleMenuFocusIn(): void {\r\n this.isFocused = true;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n handleMenuFocusOut(event): void {\r\n if (!this.menubar.nativeElement.contains(event.relatedTarget)) {\r\n this.closeMenu();\r\n }\r\n this.isFocused = false;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n handleMenuItemClick(event, itemIndex: number): void {\r\n if (this.hasPopupMenu(itemIndex)) {\r\n event.preventDefault();\r\n const isOpen = this.menuData[itemIndex].open;\r\n this.closeMenu();\r\n if (!isOpen) {\r\n this.openMenu(itemIndex);\r\n }\r\n } else {\r\n this.activateMenuItem(itemIndex);\r\n }\r\n }\r\n\r\n handleMenuItemKeydown(event: KeyboardEvent, itemIndex: number): void {\r\n switch (event.key) {\r\n case 'Enter':\r\n case ' ':\r\n case 'ArrowDown':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n setTimeout(() => this.focusFirstSubItem(itemIndex));\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n\r\n case 'Escape':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu(itemIndex);\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n this.focusNextAvailableItem(itemIndex, -1);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowRight':\r\n this.focusNextAvailableItem(itemIndex, +1);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowUp':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n setTimeout(() => this.focusLastSubItem(itemIndex));\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Home':\r\n case 'PageUp':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu();\r\n }\r\n this.focusFirstItem();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'End':\r\n case 'PageDown':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu();\r\n }\r\n this.focusLastItem();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n default:\r\n if (this.isPrintableChar(event.key)) {\r\n this.focusItemByFirstChar(event.key);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n handleMenuItemMouseOver(itemIndex: number): void {\r\n this.focusItem(itemIndex, true);\r\n }\r\n\r\n handlePopupMenuItemClick(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n this.focusItem(itemIndex);\r\n this.closeMenu(itemIndex);\r\n }\r\n\r\n handlePopupMenuItemKeydown(event: KeyboardEvent, itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n const currentSubIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\r\n const currentSubSubIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\r\n const items = this.getItems();\r\n switch (event.key) {\r\n case ' ':\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n if (this.mustCloseAfterSelectPopupItem(itemIndex, subItemIndex, subSubItemIndex)) {\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Enter':\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Escape':\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowUp':\r\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, -1);\r\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength - 1) % listLength);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowDown':\r\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, +1);\r\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength + 1) % listLength);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n this.closeMenu(itemIndex);\r\n this.focusItem((itemIndex + items.length - 1) % items.length);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowRight':\r\n this.closeMenu(itemIndex);\r\n this.focusItem((itemIndex + items.length + 1) % items.length);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Home':\r\n case 'PageUp':\r\n this.focusFirstSubItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'End':\r\n case 'PageDown':\r\n this.focusLastSubItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Tab':\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n break;\r\n\r\n default:\r\n if (this.isPrintableChar(event.key)) {\r\n this.focusSubItemByFirstChar(itemIndex, event.key);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n handlePopupMenuItemMouseOver(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n this.focusSubItem(itemIndex, subItemIndex, subSubItemIndex);\r\n }\r\n\r\n /*\r\n * Comunes\r\n */\r\n\r\n checkRequired(): void {\r\n\r\n\r\n const items = this.getItems();\r\n\r\n // No se ha puesto label required porque en algunos ejemplos de desy-html no aparece\r\n }\r\n\r\n\r\n activateMenuItem(itemIndex: number): void {\r\n const items = this.getItems();\r\n this.activeItemChange.emit(items[itemIndex] as MenubarItem);\r\n if (items[itemIndex] instanceof MenubarItemComponent) {\r\n (items[itemIndex] as MenubarItemComponent).selected.emit();\r\n }\r\n }\r\n\r\n activatePopupMenuItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenubarItemSubItem|MenubarItemSubItemSubItem = subItems[subItemIndex];\r\n let subSubItems = [];\r\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\r\n subSubItems = this.getSubItemSubitems(item);\r\n item = subSubItems[subSubItemIndex];\r\n }\r\n\r\n let checkedChange = false;\r\n if (item.role === 'menuitemcheckbox') {\r\n item.checked = !item.checked;\r\n checkedChange = true;\r\n } else if (item.role === 'menuitemradio') {\r\n checkedChange = !item.checked;\r\n subSubItems.forEach(i => i.checked = false);\r\n item.checked = true;\r\n }\r\n\r\n this.itemsChange.emit(items);\r\n this.activeSubItemChange.emit(item as MenubarItem);\r\n if (item instanceof MenubarSubitemComponent || item instanceof MenubarSubsubitemComponent) {\r\n item.selected.emit();\r\n\r\n if (checkedChange) {\r\n item.checkedChange.emit(item.checked);\r\n }\r\n }\r\n }\r\n\r\n mustCloseAfterSelectPopupItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenubarItemSubItem|MenubarItemSubItemSubItem = subItems[subItemIndex];\r\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\r\n const subSubItems = this.getSubItemSubitems(item);\r\n item = subSubItems[subSubItemIndex];\r\n }\r\n\r\n return item.role !== 'menuitemcheckbox' && item.role !== 'menuitemradio';\r\n }\r\n\r\n openMenu(itemIndex: number): void {\r\n const wasOpened = this.menuData[itemIndex].open;\r\n this.menuData[itemIndex].open = true;\r\n if (wasOpened) {\r\n this.activateMenuItem(itemIndex);\r\n }\r\n }\r\n\r\n closeMenu(itemIndex?: number): void {\r\n if (itemIndex !== null && itemIndex !== undefined) {\r\n this.menuData[itemIndex].open = false;\r\n } else {\r\n this.menuData.forEach(item => item.open = false);\r\n }\r\n }\r\n\r\n hasPopupMenu(itemIndex: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n return items[itemIndex].sub && subItems && subItems.length > 0;\r\n }\r\n\r\n private isPrintableChar(str: string): boolean {\r\n return str.length === 1 && !!str.match(/\\S/);\r\n }\r\n\r\n private getMenuDataIndex(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): number {\r\n let menuDataIndex = 0;\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n for (let i = 0; i < subItemIndex; i++) {\r\n const subItem = subItems[i];\r\n const subSubItems = this.getSubItemSubitems(subItem);\r\n menuDataIndex += subSubItems && subSubItems.length > 0 ? subSubItems.length : 1;\r\n }\r\n\r\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\r\n menuDataIndex += subSubItemIndex;\r\n }\r\n\r\n return menuDataIndex;\r\n }\r\n\r\n /*\r\n * Comunes - focus\r\n */\r\n\r\n focusItem(itemIndex: number, hover?: boolean): void {\r\n const hasFocus = this.menubar.nativeElement.contains(document.activeElement);\r\n const isOpen = this.menuData[this.currentFocusItemIndex].open;\r\n\r\n if (!hover || hasFocus) {\r\n this.menuData[itemIndex].menuItem.link.nativeElement.focus();\r\n }\r\n\r\n this.closeMenu();\r\n if (isOpen && this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n }\r\n\r\n this.currentFocusItemIndex = itemIndex;\r\n }\r\n\r\n focusNextAvailableItem(fromItemIndex: number, step: number): void {\r\n let nextItem = fromItemIndex;\r\n const items = this.getItems();\r\n do {\r\n nextItem = (nextItem + items.length + step) % items.length;\r\n } while (!this.isItemFocusable(nextItem) && nextItem !== fromItemIndex);\r\n\r\n if (nextItem !== fromItemIndex) {\r\n this.focusItem(nextItem);\r\n }\r\n }\r\n\r\n focusFirstItem(): void {\r\n if (this.isItemFocusable(0)) {\r\n this.focusItem(0);\r\n } else {\r\n this.focusNextAvailableItem(0, +1);\r\n }\r\n }\r\n\r\n focusLastItem(): void {\r\n const items = this.getItems();\r\n if (this.isItemFocusable(items.length - 1)) {\r\n this.focusItem(items.length - 1);\r\n } else {\r\n this.focusNextAvailableItem(items.length - 1, -1);\r\n }\r\n }\r\n\r\n isItemFocusable(itemIndex: number): boolean {\r\n return !this.getItems()[itemIndex].disabled;\r\n }\r\n\r\n focusItemByFirstChar(char: string): void {\r\n const itemContents: string[] = this.menuItems.map(menuItem => menuItem.itemContentWrapper.nativeElement.textContent);\r\n let index = this.currentFocusItemIndex;\r\n let foundIndex = -1;\r\n do {\r\n index = (index + itemContents.length + 1) % itemContents.length;\r\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\r\n && this.isItemFocusable(index)) {\r\n foundIndex = index;\r\n }\r\n } while (foundIndex === -1 && index !== this.currentFocusItemIndex);\r\n\r\n if (foundIndex >= 0) {\r\n this.focusItem(foundIndex);\r\n }\r\n }\r\n\r\n focusSubItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n if (this.menuData[itemIndex].menuItem.popupMenuItems.length > 0) {\r\n const menuDataIndex = this.getMenuDataIndex(itemIndex, subItemIndex, subSubItemIndex);\r\n\r\n this.menuData[itemIndex].currentFocusSubItemIndex = subItemIndex;\r\n this.menuData[itemIndex].currentFocusSubSubItemIndex = subSubItemIndex;\r\n const elem = this.menuData[itemIndex].menuItem.popupMenuItems.toArray()[menuDataIndex].nativeElement;\r\n if (elem) {\r\n elem.focus();\r\n } else {\r\n console.error('No subitem to focus');\r\n }\r\n } else {\r\n console.error('No subitems');\r\n }\r\n }\r\n\r\n focusNextAvailableSubItem(itemIndex: number, fromItemSubIndex: number, fromItemSubSubIndex: number, step: number): void {\r\n let nextSubIndex = fromItemSubIndex;\r\n let nextSubSubIndex = fromItemSubSubIndex;\r\n let allSubItemsChecked;\r\n const items = this.getItems();\r\n do {\r\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step);\r\n nextSubIndex = nextIndexes.subIndex;\r\n nextSubSubIndex = nextIndexes.subSubIndex;\r\n allSubItemsChecked = (fromItemSubIndex === nextSubIndex && fromItemSubSubIndex === nextSubSubIndex);\r\n } while (!this.isSubItemFocusable(itemIndex, nextSubIndex, nextSubSubIndex) && !allSubItemsChecked);\r\n\r\n if (!allSubItemsChecked) {\r\n this.focusSubItem(itemIndex, nextSubIndex, nextSubSubIndex);\r\n }\r\n }\r\n\r\n focusFirstSubItem(itemIndex: number): void {\r\n let firstSubSubItem = null;\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n const subSubItems = this.getSubItemSubitems(subItems[0]);\r\n if (subSubItems && subSubItems.length > 0) {\r\n firstSubSubItem = 0;\r\n }\r\n\r\n if (this.isSubItemFocusable(itemIndex, 0, firstSubSubItem)) {\r\n this.focusSubItem(itemIndex, 0, firstSubSubItem);\r\n } else {\r\n this.focusNextAvailableSubItem(itemIndex, 0, firstSubSubItem, +1);\r\n }\r\n }\r\n\r\n focusLastSubItem(itemIndex: number): void {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n const lastItemIndex = subItems.length - 1;\r\n const lastItem = subItems[lastItemIndex];\r\n const subSubItems = this.getSubItemSubitems(lastItem);\r\n let lastSubSubItem = null;\r\n if (subSubItems && subSubItems.length > 0) {\r\n lastSubSubItem = subSubItems.length - 1;\r\n }\r\n\r\n if (this.isSubItemFocusable(itemIndex, lastItemIndex, lastSubSubItem)) {\r\n this.focusSubItem(itemIndex, lastItemIndex, lastSubSubItem);\r\n } else {\r\n this.focusNextAvailableSubItem(itemIndex, lastItemIndex, lastSubSubItem, -1);\r\n }\r\n }\r\n\r\n isSubItemFocusable(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenubarItemSubItem|MenubarItemSubItemSubItem = subItems[subItemIndex];\r\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\r\n const subSubItems = this.getSubItemSubitems(item);\r\n item = subSubItems[subSubItemIndex];\r\n }\r\n\r\n let isFocusable = false;\r\n if (item.role !== 'separator' && item.role !== 'none') {\r\n isFocusable = true;\r\n }\r\n\r\n return isFocusable;\r\n }\r\n\r\n focusSubItemByFirstChar(itemIndex: number, char: string): void {\r\n const itemContents: string[] = this.menuItems.toArray()[itemIndex].popupMenuItems.map(menuItem => menuItem.nativeElement.textContent);\r\n let subItemIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\r\n let subSubItemIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\r\n let foundSubIndex = -1;\r\n let foundSubSubIndex = null;\r\n let allSubItemsChecked = false;\r\n const items = this.getItems();\r\n do {\r\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, subItemIndex, subSubItemIndex, +1);\r\n subItemIndex = nextIndexes.subIndex;\r\n subSubItemIndex = nextIndexes.subSubIndex;\r\n const index = this.getMenuDataIndex(itemIndex, subItemIndex, subSubItemIndex);\r\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\r\n && this.isSubItemFocusable(itemIndex, subItemIndex, subSubItemIndex)) {\r\n foundSubIndex = subItemIndex;\r\n foundSubSubIndex = subSubItemIndex;\r\n }\r\n allSubItemsChecked = (this.menuData[itemIndex].currentFocusSubItemIndex === subItemIndex\r\n && this.menuData[itemIndex].currentFocusSubSubItemIndex === subSubItemIndex);\r\n } while (foundSubIndex === -1 && !allSubItemsChecked);\r\n\r\n if (foundSubIndex >= 0) {\r\n this.focusSubItem(itemIndex, foundSubIndex, foundSubSubIndex);\r\n }\r\n }\r\n\r\n /*\r\n * Metodos para facilitar contenido\r\n */\r\n\r\n getItems(): MenubarItem[]|MenubarItemComponent[] {\r\n let items;\r\n if (this.itemComponentList && this.itemComponentList.length > 0) {\r\n items = this.itemComponentList.toArray();\r\n } else {\r\n items = this.items;\r\n }\r\n return items;\r\n }\r\n\r\n getItemSubitems(item: MenubarItem|MenubarItemComponent): MenubarItemSubItem[]|MenubarSubitemComponent[] {\r\n let subItems = [];\r\n if (item instanceof MenubarItemComponent){\r\n subItems = item.getSubItems();\r\n }\r\n\r\n if (!subItems || subItems.length === 0) {\r\n subItems = item.sub ? item.sub.items : [];\r\n }\r\n\r\n return subItems;\r\n }\r\n\r\n getSubItemSubitems(item: MenubarItemSubItem|MenubarSubitemComponent): MenubarItemSubItemSubItem[]|MenubarSubsubitemComponent[] {\r\n let subItems = [];\r\n\r\n if (item.role === 'group') {\r\n if (item instanceof MenubarSubitemComponent) {\r\n subItems = item.getSubItems();\r\n }\r\n\r\n if (!subItems || subItems.length === 0) {\r\n subItems = item.items ? item.items : [];\r\n }\r\n }\r\n\r\n return subItems;\r\n }\r\n\r\n getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step): { subIndex: number, subSubIndex?: number} {\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n const subSubItems = this.getSubItemSubitems(subItems[nextSubIndex]);\r\n\r\n let checkNextSubItem = true;\r\n if (subSubItems && subSubItems.length > 0) {\r\n if (nextSubSubIndex + step >= 0 && nextSubSubIndex + step < subSubItems.length) {\r\n nextSubSubIndex += step;\r\n checkNextSubItem = false;\r\n }\r\n }\r\n\r\n if (checkNextSubItem) {\r\n nextSubIndex = (nextSubIndex + step + subItems.length) % subItems.length;\r\n const nextSubItemItems = this.getSubItemSubitems(subItems[nextSubIndex]);\r\n if (nextSubItemItems && nextSubItemItems.length > 0) {\r\n nextSubSubIndex = ((step > 0 ? -1 : 0) + step + nextSubItemItems.length) % nextSubItemItems.length;\r\n } else {\r\n nextSubSubIndex = null;\r\n }\r\n }\r\n\r\n return {subIndex: nextSubIndex, subSubIndex: nextSubSubIndex};\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.id + 'menubar-item';\r\n }\r\n\r\n getLabelRef(): TemplateRef<any> {\r\n return this.labelComponent ? this.labelComponent.getContent() : this.labelRef;\r\n }\r\n\r\n getLabelContent(): string {\r\n let content: string;\r\n if (this.labelData) {\r\n content = this.labelData.html ? this.labelData.html : `<p>${ StringUtils.escapeHtml(this.labelData.text) }</p>`;\r\n } else if (this.labelText) {\r\n content = `<p>${ StringUtils.escapeHtml(this.labelText) }</p>`;\r\n }\r\n return content;\r\n }\r\n\r\n getItemId(item, index: number): string {\r\n let id: string;\r\n if (item) {\r\n if (item.id) {\r\n id = item.id;\r\n } else {\r\n id = index === 0 ? this.getIdPrefix() : `${this.getIdPrefix()}-${index}`;\r\n }\r\n }\r\n return id;\r\n }\r\n\r\n getPopupStyle(itemIndex: number): object {\r\n let style = {};\r\n if (this.menuData && itemIndex < this.menuData.length) {\r\n const menuItem = this.menuData[itemIndex].menuItem;\r\n const rect = menuItem.link.nativeElement.getBoundingClientRect();\r\n if (this.menuData[itemIndex].open) {\r\n style = {\r\n position: 'absolute',\r\n top: (rect.height - 1) + 'px',\r\n left: '0px',\r\n zIndex: 100,\r\n display: 'block'\r\n };\r\n } else {\r\n style = {\r\n zIndex: 0,\r\n display: 'none'\r\n };\r\n }\r\n }\r\n\r\n return style;\r\n }\r\n\r\n getSubItemId(item, index: number, parentId: string): string {\r\n let id: string;\r\n if (item) {\r\n if (item.id) {\r\n id = item.id;\r\n } else {\r\n id = index === 0 ? `sub-${parentId}` : `sub-${parentId}-${index}`;\r\n }\r\n }\r\n return id;\r\n }\r\n\r\n getSubSubItemAriaChecked(subsubitem): string {\r\n let ariaChecked = null;\r\n if (subsubitem.role === 'menuitemcheckbox' || subsubitem.role === 'menuitemradio') {\r\n ariaChecked = !!subsubitem.checked;\r\n }\r\n return ariaChecked;\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {NotificationItemsData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-notification-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class NotificationItemComponent extends ContentBaseComponent implements NotificationItemsData {\r\n @Input() href: string;\r\n @Input() target?: string;\r\n @Input() routerLink?: string;\r\n @Input() fragment?: string;\r\n @Input() id: string;\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n SimpleChanges\r\n} from '@angular/core';\r\n\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport {NotificationItemsData} from '../../interfaces';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\r\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\r\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\nimport {NotificationItemComponent} from './notification-item/notification-item.component';\r\nimport {ContentData, DescriptionData, IconData, TitleData} from '../../../desy-commons/interfaces';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-notification',\r\n templateUrl: './notification.component.html',\r\n animations: [\r\n trigger('displayNotification', [\r\n state('void', style({\r\n opacity: '0.0',\r\n transform: 'scaleY(0.95)'\r\n })),\r\n state('*', style({\r\n opacity: '1.0',\r\n transform: 'scaleY(1.0)'\r\n })),\r\n transition(':enter', [\r\n animate('100ms ease-out')\r\n ]),\r\n transition(':leave', [\r\n animate('75ms ease-in')\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class NotificationComponent extends AccessibilityComponent {\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() isOpen = true;\r\n @Output() isOpenChange = new EventEmitter<boolean>();\r\n\r\n @Input() title: TitleData;\r\n @Input() description: DescriptionData;\r\n @Input() content: ContentData;\r\n @Input() items: NotificationItemsData[];\r\n\r\n @Input() icon: IconData;\r\n @Input() type: string;\r\n @Input() isDismissible: boolean;\r\n @Input() headingLevel: number;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(IconComponent) iconComponent: IconComponent;\r\n\r\n @ContentChildren(NotificationItemComponent) itemCompontents: QueryList<NotificationItemComponent>;\r\n\r\n isDismissing = false;\r\n displayDefaultIcon = false;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n dismiss(): void {\r\n // Se emite 75ms más tarde para poder visualizar la animación en cualquier caso\r\n this.isDismissing = true;\r\n setTimeout(() => {\r\n this.isDismissing = false;\r\n this.isOpenChange.emit(false);\r\n }, 75);\r\n }\r\n\r\n getType(): string {\r\n let type: string;\r\n if (this.type){\r\n type = this.type.toLocaleLowerCase();\r\n }\r\n return type;\r\n }\r\n\r\n getItems(): NotificationItemsData[] {\r\n return this.itemCompontents && this.itemCompontents.length > 0 ? this.itemCompontents.toArray() : this.items;\r\n }\r\n\r\n handleIconEmpty(empty: boolean): void {\r\n this.displayDefaultIcon = empty;\r\n\r\n // Como que el contenido vacío se comprueba a posteriori, es necesario forzar la detección de cambios para mostrar el icono por defecto\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {CellData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-table-cell',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TableCellComponent extends ContentBaseComponent implements CellData {\r\n @Input() classes?: string;\r\n @Input() id?: string;\r\n @Input() colspan?: number;\r\n @Input() rowspan?: number;\r\n}\r\n","import {Component, ContentChildren, QueryList} from '@angular/core';\r\nimport {TableCellComponent} from './table-cell.component';\r\n\r\n@Component({\r\n selector: 'desy-table-header',\r\n template: ''\r\n})\r\nexport class TableHeaderComponent {\r\n @ContentChildren(TableCellComponent) cells: QueryList<TableCellComponent>;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-table-caption',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TableCaptionComponent extends ContentBaseComponent {\r\n @Input() classes: string;\r\n}\r\n","import {Component, ContentChildren, QueryList} from '@angular/core';\r\nimport {TableCellComponent} from './table-cell.component';\r\n\r\n@Component({\r\n selector: 'desy-table-row',\r\n template: ''\r\n})\r\nexport class TableRowComponent {\r\n @ContentChildren(TableCellComponent) cells: QueryList<TableCellComponent>;\r\n}\r\n","import {Component, Input, ContentChildren, QueryList} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport {CellData, WrapperData} from '../../interfaces';\r\nimport {TableHeaderComponent} from './components/table-header.component';\r\nimport {TableCellComponent} from './components/table-cell.component';\r\nimport {TableCaptionComponent} from './components/table-caption.component';\r\nimport {TableRowComponent} from './components/table-row.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n\r\n@Component({\r\n selector: 'desy-table',\r\n templateUrl: './table.component.html'\r\n})\r\nexport class TableComponent extends AccessibilityComponent {\r\n\r\n @Input() rows: Array<CellData[]>;\r\n @Input() head: CellData[];\r\n @Input() caption: string;\r\n @Input() captionClasses: string;\r\n @Input() firstCellIsHeader: boolean;\r\n @Input() classes: string;\r\n @Input() id: string;\r\n @Input() wrapper: WrapperData;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TableCaptionComponent) captionComponent: TableCaptionComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TableHeaderComponent) headerComponent: TableHeaderComponent;\r\n\r\n @ContentChildren(TableRowComponent) rowComponentList: QueryList<TableRowComponent>;\r\n\r\n getCaptionClass(): string {\r\n return this.captionComponent ? this.captionComponent.classes : this.captionClasses;\r\n }\r\n\r\n getHeaderCells(): TableCellComponent[]|CellData[] {\r\n let headerCells = [];\r\n if (this.headerComponent && this.headerComponent.cells) {\r\n headerCells = this.headerComponent.cells.toArray();\r\n } else if (this.head) {\r\n headerCells = this.head;\r\n }\r\n return headerCells;\r\n }\r\n\r\n getRows(): TableRowComponent[]|CellData[][] {\r\n const rowList = this.rowComponentList && this.rowComponentList.length > 0 ? this.rowComponentList.toArray() : this.rows;\r\n return rowList;\r\n }\r\n\r\n getRowCells(row: TableRowComponent|CellData[]): TableCellComponent[]|CellData[] {\r\n return row instanceof TableRowComponent ? row.cells.toArray() : row;\r\n }\r\n\r\n}\r\n\r\n","import { CellData } from './cell-data';\r\n\r\nexport interface HeadCellData extends CellData {\r\n orderBy?: OrderBy; // Possible values `none`, `asc`, `desc`.\r\n hasFilter?: boolean;\r\n filterClasses?: string;\r\n hasSelect?: boolean;\r\n}\r\n\r\nexport interface HeadCellModelData extends HeadCellData {\r\n valueFilter?: string;\r\n activeFilter?: boolean;\r\n valueSelect?: string;\r\n activeSelect?: boolean;\r\n}\r\n\r\nexport enum OrderBy {\r\n none = 'none',\r\n asc = 'asc',\r\n desc = 'desc'\r\n}\r\n","import { OptionComponent } from './../../../../desy-forms/components/select/option/option.component';\r\nimport { SelectComponent } from './../../../../desy-forms/components/select/select.component';\r\nimport { Component, ContentChildren, EventEmitter, Input, Output, QueryList, ViewChild } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'desy-table-advanced-select',\r\n template: ''\r\n})\r\nexport class TableAdvancedSelectComponent extends SelectComponent{\r\n isSelect = true;\r\n\r\n @Input() value: any;\r\n @Output() valueChange = new EventEmitter<any>();\r\n\r\n @ContentChildren(OptionComponent) selectItemComponentList: QueryList<OptionComponent>;\r\n}","import { ContentComponent } from './../../../../desy-commons/components/content/content.component';\r\nimport { TableAdvancedSelectComponent } from './table-advanced-select.component';\r\nimport { DesyContentChild } from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {Component, ContentChildren, Input} from '@angular/core';\r\nimport {HeadCellModelData, OrderBy} from '../../../interfaces';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-table-advanced-header-cell',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TableAdvancedHeaderCellComponent extends ContentBaseComponent implements HeadCellModelData {\r\n @Input() classes: string;\r\n @Input() id: string;\r\n @Input() colspan: number;\r\n @Input() rowspan: number;\r\n @Input() orderBy: OrderBy; // Possible values `none`, `asc`, `desc`.\r\n @Input() hasFilter: boolean;\r\n @Input() filterClasses: string;\r\n @Input() hasSelect?: boolean;\r\n valueFilter?: string;\r\n activeFilter?: boolean;\r\n valueSelect?: string;\r\n activeSelect?: boolean;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TableAdvancedSelectComponent) selectComponent?: TableAdvancedSelectComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent?: ContentComponent;\r\n}\r\n","import {Component, ContentChildren, QueryList} from '@angular/core';\r\nimport {TableAdvancedHeaderCellComponent} from './table-advanced-header-cell.component';\r\n\r\n@Component({\r\n selector: 'desy-table-advanced-header',\r\n template: ''\r\n})\r\nexport class TableAdvancedHeaderComponent {\r\n @ContentChildren(TableAdvancedHeaderCellComponent) cells: QueryList<TableAdvancedHeaderCellComponent>;\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {CellData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-table-advanced-row-cell',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TableAdvancedRowCellComponent extends ContentBaseComponent implements CellData {\r\n @Input() classes?: string;\r\n @Input() id?: string;\r\n @Input() colspan?: number;\r\n @Input() rowspan?: number;\r\n}\r\n","import {Component, ContentChildren, EventEmitter, Input, Output, QueryList} from '@angular/core';\r\nimport {TableAdvancedRowCellComponent} from './table-advanced-row-cell.component';\r\n\r\n@Component({\r\n selector: 'desy-table-advanced-row',\r\n template: ''\r\n})\r\nexport class TableAdvancedRowComponent {\r\n\r\n @ContentChildren(TableAdvancedRowCellComponent) cellsList: QueryList<TableAdvancedRowCellComponent>;\r\n\r\n @Input() id: string;\r\n @Input() checked: boolean;\r\n @Output() checkedChange: EventEmitter<boolean> = new EventEmitter();\r\n}\r\n","import {Directive, ElementRef, Input} from '@angular/core';\r\nimport {RowData} from '../interfaces';\r\nimport {TableAdvancedRowComponent} from '../components/table-advanced/components/table-advanced-row.component';\r\n\r\n/**\r\n * Permite gestionar celdas de una fila de la tabla\r\n */\r\n@Directive({\r\n selector: '[desyCell]'\r\n})\r\nexport class CellDirective {\r\n\r\n @Input() row: RowData|TableAdvancedRowComponent;\r\n @Input() rowIndex: number;\r\n @Input() columnIndex: number;\r\n\r\n constructor(private element: ElementRef) { }\r\n\r\n public getContent(): string {\r\n return this.element.nativeElement.textContent;\r\n }\r\n}\r\n","import {ContentChildren, Directive, Input, QueryList} from '@angular/core';\r\nimport {CellDirective} from './cell.directive';\r\nimport {RowData} from '../interfaces';\r\nimport {TableAdvancedRowComponent} from '../components/table-advanced/components/table-advanced-row.component';\r\n\r\n/**\r\n * Permite gestionar filas de la tabla\r\n */\r\n@Directive({\r\n selector: '[desyRow]'\r\n})\r\nexport class RowDirective {\r\n\r\n @ContentChildren(CellDirective) contentCells: QueryList<CellDirective>;\r\n @Input() desyRow: RowData|TableAdvancedRowComponent;\r\n\r\n\r\n /**\r\n * Devuelve la celda ubicada en la columna indicada\r\n * @param column índice de la columna\r\n */\r\n public getCell(column: number): CellDirective {\r\n return this.contentCells.find(cell => cell.columnIndex === column);\r\n }\r\n}\r\n","import { ContentComponent } from './../../../desy-commons/components/content/content.component';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {SearchUtils} from '../../../shared/utils/search-utils';\r\nimport {HeadCellModelData, OrderBy, RowData, WrapperData} from '../../interfaces';\r\nimport {TableCaptionComponent} from '../table/components/table-caption.component';\r\nimport {TableAdvancedHeaderCellComponent} from './components/table-advanced-header-cell.component';\r\nimport {TableAdvancedHeaderComponent} from './components/table-advanced-header.component';\r\nimport {TableAdvancedRowComponent} from './components/table-advanced-row.component';\r\nimport {CellDirective} from '../../directives/cell.directive';\r\nimport {RowDirective} from '../../directives/row.directive';\r\nimport {RecalculateTableParams} from '../../interfaces/recalculate-table-params';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { TableAdvancedSelectComponent } from './components/table-advanced-select.component';\r\nimport { SelectItemData } from '../../../desy-forms/interfaces/select-item-data';\r\n\r\n@Component({\r\n selector: 'desy-table-advanced',\r\n templateUrl: './table-advanced.component.html'\r\n})\r\nexport class TableAdvancedComponent extends AccessibilityComponent implements AfterViewInit {\r\n\r\n @Input() rows: RowData[]; // original data\r\n @Input() head: HeadCellModelData[];\r\n\r\n @Input() caption: string;\r\n @Input() captionClasses: string;\r\n @Input() firstCellIsHeader: boolean;\r\n @Input() hasCheckboxes: boolean;\r\n @Input() idPrefix: string;\r\n @Input() classes: string;\r\n @Input() checkboxClasses: string;\r\n @Input() id: string;\r\n @Input() wrapper: WrapperData;\r\n\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TableCaptionComponent) captionComponent: TableCaptionComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TableAdvancedHeaderComponent) headerComponent: TableAdvancedHeaderComponent;\r\n\r\n @ContentChildren(TableAdvancedRowComponent) rowComponentList: QueryList<TableAdvancedRowComponent>;\r\n @ViewChildren(RowDirective) rowData: QueryList<RowDirective>;\r\n\r\n @Output() rowsChange = new EventEmitter();\r\n @Output() rowsChecked = new EventEmitter();\r\n @Output() recalculateTable = new EventEmitter<RecalculateTableParams>();\r\n\r\n visibleRows: RowData[]|TableAdvancedRowComponent[];\r\n orderByType = OrderBy;\r\n isReset: boolean;\r\n\r\n constructor(private el: ElementRef, private changeDetector: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const elemntsFocus = this.el.nativeElement.querySelector('[tabindex]');\r\n if (elemntsFocus) {\r\n elemntsFocus.setAttribute('tabindex', '0');\r\n }\r\n this.recalculateVisibleElements();\r\n }\r\n\r\n /**\r\n * Refresca las filas visibles tras realizarse una búsqueda o una ordenación\r\n */\r\n recalculateVisibleElements(): void {\r\n const recalculateParams = this.buildRecalculateParams();\r\n\r\n // Si se captura el evento recalculateTable se deja al usuario la responsabilidad de filtrar y ordenar los elementos.\r\n if (this.recalculateTable.observers.length > 0) {\r\n this.recalculateTable.emit(recalculateParams);\r\n this.changeDetector.markForCheck();\r\n } else {\r\n\r\n // Se deben mostrar todas las filas temporalmente para poder aplicar el filtro y la ordenación sobre el contenido insertado\r\n this.visibleRows = this.getRows();\r\n this.changeDetector.detectChanges();\r\n\r\n // Se aplica el filtro y la ordenación\r\n let rowData = this.filterRows(recalculateParams, this.rowData.toArray());\r\n rowData = this.sortRows(recalculateParams, rowData);\r\n this.visibleRows = rowData.map(r => r.desyRow) as RowData[]|TableAdvancedRowComponent[];\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Construye los parámetros necesarios para recalcular la tabla, indicando los filtros y la ordenación\r\n */\r\n private buildRecalculateParams(): RecalculateTableParams {\r\n const params = {\r\n filters: [],\r\n sort: null\r\n };\r\n\r\n const head = this.getHeaderCells() as (HeadCellModelData|TableAdvancedHeaderCellComponent)[];\r\n if (head) {\r\n head.forEach((headerCell, headerCellIndex) => {\r\n if (headerCell.hasFilter && headerCell.activeFilter) {\r\n params.filters.push({ columnIndex: headerCellIndex, filterText: headerCell.valueFilter });\r\n }\r\n if(headerCell.hasSelect && headerCell.activeSelect){\r\n params.filters.push({ columnIndex: headerCellIndex, filterText: headerCell.valueSelect });\r\n }\r\n });\r\n\r\n const orderByColumnIndex = head.findIndex(cell => cell.orderBy && cell.orderBy !== OrderBy.none);\r\n params.sort = (orderByColumnIndex >= 0) ? { columnIndex: orderByColumnIndex, order: head[orderByColumnIndex].orderBy } : null;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n /**\r\n * funciones de recoger ids, y caracteristicas\r\n */\r\n\r\n hasFilters(): boolean {\r\n const head = this.getHeaderCells();\r\n return head ? head.findIndex(cell => (cell.hasFilter) || (cell.hasSelect)) >= 0 : false;\r\n }\r\n\r\n getHeaderCells(): HeadCellModelData[]|TableAdvancedHeaderCellComponent[] {\r\n return this.headerComponent && this.headerComponent.cells.length > 0 ? this.headerComponent.cells.toArray() : this.head;\r\n }\r\n\r\n getRows(): RowData[]|TableAdvancedRowComponent[] {\r\n let rows = [];\r\n if (this.rowComponentList.length > 0) {\r\n rows = this.rowComponentList.toArray();\r\n } else if (this.rows) {\r\n rows = this.rows;\r\n }\r\n return rows;\r\n }\r\n\r\n /**\r\n * Si se sobreescribe el comportamiento por defecto de filtrado y ordenación, se utilizarán las indicadas desde fuera del\r\n * componente (ya sea por parámetro o por contenido).\r\n * Si no se sobreescribe, devuelve las filas calculadas.\r\n */\r\n getVisibleRows(): RowData[]|TableAdvancedRowComponent[] {\r\n return this.recalculateTable.observers.length > 0 ? this.getRows() : this.visibleRows;\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : 'id-table-row';\r\n }\r\n\r\n getIdHeader(index: number): string {\r\n return this.getIdPrefix() + '-header-' + index;\r\n }\r\n\r\n getIdRowCheckbox(index: number): string {\r\n return this.getIdPrefix() + '-checkbox-' + index;\r\n }\r\n\r\n getIdHeaderFilter(index: number): string {\r\n return this.getIdPrefix() + '-header-filter-' + index;\r\n }\r\n\r\n getIdHeaderSelect(index: number): string {\r\n return this.getIdPrefix() + '-header-select-' + index;\r\n }\r\n\r\n getCaptionClass(): string {\r\n return this.captionComponent ? this.captionComponent.classes : this.captionClasses;\r\n }\r\n\r\n getStringOrderBy(orderBy: OrderBy): string {\r\n if (orderBy === OrderBy.asc){\r\n return 'ascending';\r\n } else if (orderBy === OrderBy.desc){\r\n return 'descending';\r\n } else if (orderBy === OrderBy.none){\r\n return 'none';\r\n }\r\n }\r\n\r\n getSelectForItem(item: TableAdvancedHeaderCellComponent): TableAdvancedSelectComponent{\r\n return item.selectComponent ? item.selectComponent : null;\r\n }\r\n\r\n getItemSelectOptions(item: TableAdvancedSelectComponent): SelectItemData[] {\r\n return item.selectItemComponentList && item.selectItemComponentList.length > 0 ?\r\n item.selectItemComponentList.toArray() : item.items;\r\n }\r\n\r\n getContentComponent(item: TableAdvancedHeaderCellComponent): ContentComponent{\r\n return item.contentComponent ? item.contentComponent : null;\r\n }\r\n\r\n\r\n /**\r\n * checks\r\n */\r\n handleCheckboxChange(row: RowData|TableAdvancedRowComponent): void {\r\n if (row instanceof TableAdvancedRowComponent) {\r\n row.checkedChange.emit(row.checked);\r\n }\r\n this.notifyCheckedChange();\r\n }\r\n\r\n /**\r\n * Permite desmarcar todas las filas\r\n */\r\n private uncheckAll(): void{\r\n this.getRows().forEach(r => {\r\n const mustEmit = r.checked && r instanceof TableAdvancedRowComponent;\r\n r.checked = false;\r\n if (mustEmit) {\r\n (r as TableAdvancedRowComponent).checkedChange.emit(r.checked);\r\n }\r\n });\r\n this.notifyCheckedChange();\r\n }\r\n\r\n /**\r\n * Notifica cambios en las filas\r\n */\r\n private notifyCheckedChange(): void {\r\n if (this.rowComponentList.length === 0) {\r\n this.rowsChange.emit(this.rows);\r\n }\r\n\r\n const rowChecks: any = {};\r\n this.getRows().forEach(r => rowChecks[r.id] = !!r.checked); // Se aplican también a las no visibles\r\n this.rowsChecked.emit(rowChecks);\r\n }\r\n\r\n\r\n /**\r\n * busqueda\r\n */\r\n handleInputSearch(item: HeadCellModelData): void {\r\n if (item.hasFilter) { // si tiene buscador\r\n item.activeFilter = !!item.valueFilter;\r\n this.uncheckAll();\r\n }\r\n if(item.hasSelect){ //Si tiene seleccionable\r\n item.activeSelect = !!item.valueSelect;\r\n this.uncheckAll();\r\n }\r\n\r\n this.recalculateVisibleElements();\r\n }\r\n\r\n /**\r\n * Se filtran las filas según lo especificado en la barra de búsqueda de cada columna.\r\n * Si no hay búsqueda sse devuelven todas las filas.\r\n * @param recalculateParams parametros para recalcular los elementos visibles\r\n * @param rows lista con todas las filas\r\n * @return lista de filas filtrada\r\n */\r\n private filterRows(recalculateParams: RecalculateTableParams, rows: RowDirective[]): RowDirective[] {\r\n let filteredRows = rows;\r\n recalculateParams.filters.forEach(filter => {\r\n filteredRows = filteredRows.filter(row =>\r\n SearchUtils.containsAnyWordFrom(row.getCell(filter.columnIndex).getContent(), filter.filterText));\r\n });\r\n return filteredRows;\r\n }\r\n\r\n /**\r\n * ordenacion\r\n */\r\n\r\n /**\r\n * Permite indicar que se debe ordenar la tabla\r\n * @param index indice de la columna\r\n */\r\n handleSortByColumn(index: number): void {\r\n const head = this.getHeaderCells();\r\n if (head) {\r\n head.forEach((cell, cellIndex) => {\r\n if (cell.orderBy) {\r\n cell.orderBy = cellIndex === index ? this.getNextDirection(cell) : OrderBy.none;\r\n }\r\n });\r\n }\r\n\r\n this.recalculateVisibleElements();\r\n }\r\n\r\n\r\n /**\r\n * Ordena las filas indicadas según la columna especificada en la cabecera\r\n * @param recalculateParams parametros para recalcular los elementos visibles\r\n * @param rows filas de la tabla a ordenar\r\n * @return mismas filas pero ordenadas por la columna indicada\r\n */\r\n private sortRows(recalculateParams: RecalculateTableParams, rows: RowDirective[]): RowDirective[] {\r\n let sortedRows = rows;\r\n if (recalculateParams.sort) {\r\n const columnIndex = recalculateParams.sort.columnIndex;\r\n const isAsc = recalculateParams.sort.order === OrderBy.asc;\r\n sortedRows = rows.sort((a, b) =>\r\n this.compareCellContent(a.getCell(columnIndex), b.getCell(columnIndex), isAsc));\r\n }\r\n\r\n return sortedRows;\r\n }\r\n\r\n /**\r\n * Compara el contenido de dos celdas. Este se invierte si el orden especificado es descendente.\r\n */\r\n compareCellContent(a: CellDirective, b: CellDirective, isAsc: boolean): number{\r\n let result;\r\n const aComparable = this.cleanCurrency(a.getContent());\r\n const bComparable = this.cleanCurrency(b.getContent());\r\n\r\n if (isNaN(+aComparable) && isNaN(+bComparable) ) { // son textos\r\n result = aComparable.localeCompare(bComparable, 'es', { sensitivity: 'base', ignorePunctuation: true });\r\n }else{ // son numeros\r\n result = aComparable.localeCompare(bComparable, undefined, { numeric: true });\r\n }\r\n\r\n return result * (isAsc ? 1 : -1);\r\n }\r\n\r\n /**\r\n * se calcula la ordenación nueva\r\n */\r\n private getNextDirection(item: HeadCellModelData): OrderBy {\r\n if (item.orderBy === OrderBy.none || item.orderBy === OrderBy.desc) {\r\n return OrderBy.asc;\r\n } else {\r\n return OrderBy.desc;\r\n }\r\n }\r\n\r\n /**\r\n * si es una cantidad de dinero se quita € para poder comparar los numeros\r\n */\r\n private cleanCurrency(txt: string): string {\r\n if (/[\\d.,]+[\\€]/g.test(txt)) {\r\n txt = txt.replace(/€/g, '');\r\n }\r\n return txt;\r\n }\r\n\r\n selectFilter(item: TableAdvancedSelectComponent, itemValue: any): void {\r\n item.valueChange.emit(itemValue);\r\n\r\n const head = this.getHeaderCells();\r\n const rows = this.getRows();\r\n if (head && rows) {\r\n head.forEach((cell: TableAdvancedHeaderCellComponent, cellIndex) => {\r\n });\r\n rows.forEach(row => {\r\n });\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component, ComponentFactoryResolver, ComponentRef,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n TemplateRef, Type,\r\n ViewChild, ViewContainerRef\r\n} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { FocusUtils } from '../../../shared/utils/focus-utils';\r\n\r\ntype AlertCreationCallback = ((dialog: AlertComponent, caller: ComponentRef<any>) => void);\r\n\r\n@Component({\r\n selector: 'desy-alert',\r\n templateUrl: './alert.component.html'\r\n})\r\nexport class AlertComponent extends AccessibilityComponent implements OnDestroy, AfterViewInit {\r\n\r\n @ViewChild('alertWrapper') alertWrapper: ElementRef;\r\n @ViewChild('container', {read: ViewContainerRef}) container: ViewContainerRef;\r\n\r\n @Input() id: string;\r\n @Input() classes: string;\r\n @Input() caller: TemplateRef<any>;\r\n @Input() focusFirst: boolean;\r\n\r\n @Input() set active(value: boolean) {\r\n setTimeout(() => {\r\n this._active = value;\r\n this.cdRef.detectChanges();\r\n this.handleActiveState();\r\n });\r\n }\r\n get active(): boolean {\r\n return this._active;\r\n }\r\n @Output() activeChange = new EventEmitter<boolean>();\r\n\r\n private _active: boolean;\r\n public callerContext: any;\r\n public callerType: Type<any>;\r\n public onCallerCreationCallback: AlertCreationCallback;\r\n\r\n private lastActiveState: boolean = undefined;\r\n private hasViewinit = false;\r\n private createdCallerFromType = false;\r\n\r\n constructor(private cdRef: ChangeDetectorRef, private factoryResolver: ComponentFactoryResolver) {\r\n super();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.active = false;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n this.hasViewinit = true;\r\n this.handleActiveState();\r\n }\r\n\r\n dismiss(): void {\r\n this.activeChange.emit(false);\r\n }\r\n\r\n handleActiveState(): void {\r\n if (this._active && this.callerType && !this.createdCallerFromType) {\r\n const factory = this.factoryResolver.resolveComponentFactory(this.callerType);\r\n const component = this.container.createComponent(factory);\r\n if (this.onCallerCreationCallback) {\r\n this.onCallerCreationCallback(this, component);\r\n }\r\n this.createdCallerFromType = true;\r\n }\r\n\r\n if (this._active !== this.lastActiveState && this.hasViewinit) {\r\n this.lastActiveState = this._active;\r\n\r\n if (this._active && this.focusFirst) {\r\n this.cdRef.detectChanges();\r\n const focusElem = FocusUtils.getFirstFocusableElement(this.alertWrapper.nativeElement as HTMLElement);\r\n if (focusElem) {\r\n focusElem.focus();\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {AccordionHeaderData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-accordion-header',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class AccordionHeaderComponent extends ContentBaseComponent implements AccordionHeaderData {\r\n\r\n @Input() classes?: string;\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { ContentBaseComponent } from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-accordion-item-show-button',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class AccordionItemShowButtonComponent extends ContentBaseComponent {\r\n\r\n @Input() classes: string;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { ContentBaseComponent } from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-accordion-item-hide-button',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class AccordionItemHideButtonComponent extends ContentBaseComponent {\r\n\r\n @Input() classes: string;\r\n}\r\n","import {Component, ContentChildren, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {AccordionItemData} from '../../../interfaces';\r\nimport {AccordionHeaderComponent} from '../accordion-header/accordion-header.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport {AccessibilityComponent} from '../../../../shared/components';\r\nimport {AccordionItemShowButtonComponent} from '../../accordion-history/accordion-item-show-button/accordion-item-show-button.component';\r\nimport {AccordionItemHideButtonComponent} from '../../accordion-history/accordion-item-hide-button/accordion-item-hide-button.component';\r\n\r\n@Component({\r\n selector: 'desy-accordion-item',\r\n template: '',\r\n})\r\nexport class AccordionItemComponent extends AccessibilityComponent implements AccordionItemData {\r\n\r\n @Input() id: string;\r\n @Input() open: boolean;\r\n @Input() classes: string;\r\n\r\n @Output() openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @DesyContentChild()\r\n @ContentChildren(AccordionHeaderComponent) headerComponent: AccordionHeaderComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(AccordionItemShowButtonComponent) showHeaderButton: AccordionItemShowButtonComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(AccordionItemHideButtonComponent) hideHeaderButton: AccordionItemHideButtonComponent;\r\n\r\n}\r\n","import {Component, ContentChildren, ElementRef, HostBinding, Input, OnChanges, QueryList, SimpleChanges, ViewChildren} from '@angular/core';\r\nimport {AccordionHeaderData} from '../../interfaces';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {AccordionItemData} from '../../interfaces';\r\nimport {AccordionHeaderComponent} from './accordion-header/accordion-header.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\nimport {AccordionItemComponent} from './accordion-item/accordion-item.component';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\n\r\n\r\n@Component({\r\n selector: 'desy-accordion',\r\n templateUrl: './accordion.component.html'\r\n})\r\nexport class AccordionComponent extends AccessibilityComponent implements OnChanges {\r\n \r\n @ViewChildren('itemSelector') itemSelectors: QueryList<ElementRef>;\r\n\r\n @Input() idPrefix: string;\r\n @Input() allowToggle: boolean;\r\n @Input() allowMultiple: boolean;\r\n @Input() heading: AccordionHeaderData;\r\n @Input() headingLevel;\r\n @Input() showControl: boolean;\r\n @Input() items: AccordionItemData[];\r\n \r\n @Input() @HostBinding('class') classes: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.aria-modal') ariaModalData: any\r\n \r\n @DesyContentChild()\r\n @ContentChildren(AccordionHeaderComponent) headingComponent: AccordionHeaderComponent;\r\n @ContentChildren(AccordionItemComponent) itemComponentList: QueryList<AccordionItemComponent>;\r\n\r\n showAll = true;\r\n currentItem: number;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\r\n }\r\n\r\n getItemId(item, index: number): string {\r\n let id;\r\n if (item.id) {\r\n id = item.id;\r\n } else {\r\n if (index === 0) {\r\n id = this.idPrefix ? this.idPrefix : undefined;\r\n } else {\r\n id = this.idPrefix ? this.idPrefix + '-' + index : index;\r\n }\r\n }\r\n return id;\r\n }\r\n\r\n changeAll(): void {\r\n const items = this.getItems();\r\n items.forEach(item => {\r\n const isChange = item.open !== this.showAll;\r\n item.open = this.showAll;\r\n if (isChange && item instanceof AccordionItemComponent) {\r\n item.openChange.emit(item.open);\r\n }\r\n });\r\n this.showAll = !this.showAll;\r\n }\r\n\r\n toggleItem(item: AccordionItemData): void {\r\n if (!item.open || this.allowToggle) {\r\n const newOpenValue = !item.open;\r\n if (!this.allowMultiple) {\r\n const items = this.getItems();\r\n items.forEach(it => {\r\n const wasOpen = it.open;\r\n it.open = false;\r\n if (wasOpen && it !== item && it instanceof AccordionItemComponent) {\r\n it.openChange.emit(it.open);\r\n }\r\n });\r\n }\r\n item.open = newOpenValue;\r\n if (item instanceof AccordionItemComponent) {\r\n item.openChange.emit(item.open);\r\n }\r\n }\r\n }\r\n\r\n focusFirstItem(event): void {\r\n event.preventDefault();\r\n this.itemSelectors.toArray()[0].nativeElement.focus();\r\n }\r\n\r\n focusLastItem(event): void {\r\n event.preventDefault();\r\n this.itemSelectors.toArray()[this.itemSelectors.length - 1].nativeElement.focus();\r\n }\r\n\r\n focusNextItem(event, focusedItem: number): void {\r\n event.preventDefault();\r\n const selectors = this.itemSelectors.toArray();\r\n if (selectors[(focusedItem + 1) % selectors.length] != null) {\r\n selectors[(focusedItem + 1) % selectors.length].nativeElement.focus();\r\n }\r\n }\r\n\r\n focusPreviousItem(event, focusedItem: number): void {\r\n event.preventDefault();\r\n const selectors = this.itemSelectors.toArray();\r\n if (selectors[(focusedItem + selectors.length - 1) % selectors.length] != null) {\r\n selectors[(focusedItem + selectors.length - 1) % selectors.length].nativeElement.focus();\r\n }\r\n }\r\n\r\n selectItem( i: number ): void {\r\n this.currentItem = i;\r\n }\r\n\r\n getTitleClasses(): string {\r\n let classes = 'c-h2 mb-base';\r\n if (this.headingComponent && this.headingComponent.classes) {\r\n classes = this.headingComponent.classes;\r\n } else if (this.heading && this.heading.classes) {\r\n classes = this.heading.classes;\r\n }\r\n return classes;\r\n }\r\n\r\n getItems(): AccordionItemData[] {\r\n const items = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;\r\n return items;\r\n }\r\n\r\n getItemHeader(item: AccordionItemData): AccordionHeaderComponent {\r\n return item instanceof AccordionItemComponent ? item.headerComponent : null;\r\n } \r\n\r\n getItemContent(item: AccordionItemData): ContentComponent {\r\n return item instanceof AccordionItemComponent ? item.contentComponent : null;\r\n }\r\n\r\n}\r\n","import { Component, ContentChildren, Input } from '@angular/core';\r\nimport { DesyContentChild } from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport { AccordionItemComponent } from '../../accordion/accordion-item/accordion-item.component';\r\nimport { AccordionItemHideButtonComponent } from '../accordion-item-hide-button/accordion-item-hide-button.component';\r\nimport { AccordionItemShowButtonComponent } from '../accordion-item-show-button/accordion-item-show-button.component';\r\n\r\n@Component({\r\n selector: 'desy-accordion-history-item',\r\n template: '',\r\n})\r\nexport class AccordionHistoryItemComponent extends AccordionItemComponent {\r\n\r\n @Input() status: 'current' | 'pending' | 'muted' | 'currentmuted' | any;\r\n @Input() disabled = false;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(AccordionItemShowButtonComponent) showButton: AccordionItemShowButtonComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(AccordionItemHideButtonComponent) hideButton: AccordionItemHideButtonComponent;\r\n}\r\n","import { Component, ContentChildren, QueryList } from '@angular/core';\r\nimport { AccordionComponent } from '../accordion/accordion.component';\r\nimport { AccordionHistoryItemComponent } from './accordion-history-item/accordion-history-item.component';\r\n\r\n@Component({\r\n selector: 'desy-accordion-history',\r\n templateUrl: './accordion-history.component.html'\r\n})\r\nexport class AccordionHistoryComponent extends AccordionComponent {\r\n\r\n // Sobreescribe el tipo del listado de items\r\n @ContentChildren(AccordionHistoryItemComponent) itemComponentList: QueryList<AccordionHistoryItemComponent>;\r\n}\r\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-spinner',\r\n templateUrl: './spinner.component.html'\r\n})\r\nexport class SpinnerComponent extends AccessibilityComponent implements OnChanges{\r\n\r\n @Input() text: string;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.aria-modal') ariaModalData: any\r\n\r\n @Input() id: string;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.classes ? this.classes += ' c-spinner' : 'c-spinner'\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-details',\r\n templateUrl: './details.component.html'\r\n})\r\nexport class DetailsComponent extends AccessibilityComponent {\r\n\r\n @Input() summaryText: string;\r\n @Input() summaryHtml: string;\r\n @Input() summaryClasses: string;\r\n @Input() containerClasses: string;\r\n @Input() id: string;\r\n @Input() open: boolean;\r\n @Input() classes: string;\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {TermDefinitionData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-term',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class TermComponent extends ContentBaseComponent implements TermDefinitionData {\r\n\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {TermDefinitionData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-definition',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class DefinitionComponent extends ContentBaseComponent implements TermDefinitionData {\r\n\r\n @Input() classes: string;\r\n @Input() id: string;\r\n}\r\n","import {Component, ContentChildren, Input} from '@angular/core';\r\nimport {DescriptionItemData} from '../../../interfaces';\r\nimport {TermComponent} from '../term/term.component';\r\nimport {DefinitionComponent} from '../definition/definition.component';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-description-item',\r\n template: ''\r\n})\r\nexport class DescriptionItemComponent implements DescriptionItemData {\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TermComponent) term: TermComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DefinitionComponent) definition: DefinitionComponent;\r\n\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n}\r\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { DescriptionItemData } from '../../interfaces';\r\nimport {DescriptionItemComponent} from './description-item/description-item.component';\r\n\r\n@Component({\r\n selector: 'desy-description-list',\r\n templateUrl: './description-list.component.html'\r\n})\r\nexport class DescriptionListComponent extends AccessibilityComponent {\r\n\r\n @Input() items: Array<DescriptionItemData>;\r\n @ContentChildren(DescriptionItemComponent) itemComponents: QueryList<DescriptionItemComponent>;\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n\r\n getItems(): DescriptionItemData[]|DescriptionItemComponent[] {\r\n const items = (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\r\n return items;\r\n }\r\n\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Component, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { AccessibilityAndContentRequiredComponent } from '../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-collapsible',\r\n templateUrl: './collapsible.component.html',\r\n animations: [\r\n trigger('displayCollapsible', [\r\n state('void', style({\r\n opacity: '0.0',\r\n transform: 'scaleY(0.95)'\r\n })),\r\n state('*', style({\r\n opacity: '1.0',\r\n transform: 'scaleY(1.0)'\r\n })),\r\n transition(':enter', [\r\n animate('100ms ease-out')\r\n ]),\r\n transition(':leave', [\r\n animate('75ms ease-in')\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class CollapsibleComponent extends AccessibilityAndContentRequiredComponent implements OnInit, OnChanges {\r\n\r\n @Input() headerText: string;\r\n @Input() headerHtml: string;\r\n @Input() id: string;\r\n @Input() open: boolean;\r\n @Input() classes: string;\r\n show: string;\r\n\r\n isOpen(): void {\r\n this.open = !this.open;\r\n this.toggleOpen();\r\n }\r\n\r\n toggleOpen(): void {\r\n if (this.open){\r\n this.show = 'Ocultar';\r\n } else {\r\n this.show = 'Mostrar';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.toggleOpen();\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.toggleOpen();\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-item-content-right',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ItemContentRightComponent extends ContentBaseComponent {\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {ContentData} from '../../../../desy-commons/interfaces';\r\n\r\n@Component({\r\n selector: 'desy-item-content-bottom',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ItemContentBottomComponent extends ContentBaseComponent implements ContentData {\r\n @Input() classes: string;\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-item-item',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class ItemItemComponent extends ContentBaseComponent {\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {ContentData, DescriptionData, IconData, TitleData} from '../../../desy-commons/interfaces';\r\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\r\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\r\nimport {ItemContentRightComponent} from './item-content-right/item-content-right.component';\r\nimport {ItemContentBottomComponent} from './item-content-bottom/item-content-bottom.component';\r\nimport {ItemItemComponent} from './item-item/item-item.component';\r\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-item',\r\n templateUrl: './item.component.html'\r\n})\r\nexport class ItemComponent extends AccessibilityComponent implements OnChanges, OnInit {\r\n\r\n @Input() title: TitleData;\r\n @Input() description: DescriptionData;\r\n @Input() headingLevel: number;\r\n @Input() items: string[];\r\n @Input() content: ContentData;\r\n @Input() icon: IconData;\r\n @Input() isDraggable: boolean;\r\n @Input() isLocked: boolean;\r\n @Input() caller: TemplateRef<any>;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n @Input() @HostBinding('attr.id') id: any;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(IconComponent) iconComponent: IconComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ItemContentBottomComponent) contentBottomComponent: ItemContentBottomComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ItemContentRightComponent) contentRightComponent: ItemContentRightComponent;\r\n\r\n @ContentChildren(ItemItemComponent) itemComponents: QueryList<ItemItemComponent>;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n ngOnInit(): void {\r\n const progressInterval = setInterval(() => {\r\n this.checkClasses();\r\n clearInterval(progressInterval); \r\n }, 500);\r\n }\r\n\r\n getItems(): string[]|ItemItemComponent[] {\r\n return this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items;\r\n }\r\n\r\n handleIconContentEmpty(isEmpty: boolean): void {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n getTitle(): TitleData {\r\n return this.titleComponent ? this.titleComponent : (this.title ? this.title : null);\r\n }\r\n\r\n getIcon(): IconData {\r\n return this.iconComponent ? this.iconComponent : (this.icon ? this.icon : null)\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.checkClasses();\r\n }\r\n\r\n checkClasses (): void {\r\n if(this.getTitle()){\r\n this.classes = this.classes ? this.classes += ' flex flex-wrap p-base bg-white border border-neutral-base rounded' : 'flex flex-wrap p-base bg-white border border-neutral-base rounded';\r\n this.id = this.id ? this.id : null;\r\n }\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-media-object-figure',\r\n templateUrl: './media-object-figure.component.html'\r\n})\r\nexport class MediaObjectFigureComponent extends ContentBaseComponent {\r\n\r\n}\r\n","import { AccessibilityComponent } from '../../../shared/components';\r\nimport { Component, Input, TemplateRef, ContentChildren, ElementRef, ViewChild, HostBinding, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { ContentComponent } from '../../../desy-commons/components/content/content.component';\r\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { MediaObjectFigureComponent } from './media-object-figure/media-object-figure.component';\r\n\r\n@Component({\r\n selector: 'desy-media-object',\r\n templateUrl: './media-object.component.html'\r\n})\r\nexport class MediaObjectComponent extends AccessibilityComponent implements OnChanges { \r\n\r\n @Input() figureHtml: string;\r\n @Input() center: boolean;\r\n @Input() reverse: boolean;\r\n @Input() figureClasses: string;\r\n @Input() contenClasses: string;\r\n \r\n @Input() caller: TemplateRef<any>;\r\n @Input() id: string;\r\n \r\n @Input() @HostBinding('class') classes: any;\r\n @HostBinding('class.items-center') cfgr: boolean;\r\n\r\n //Accessibility\r\n @HostBinding('attr.id') idData: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.tabindex') tabindexData: any;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(MediaObjectFigureComponent) mediaObjectFigureComponent: MediaObjectFigureComponent;\r\n\r\n @ViewChild('mediaFigureContent', { read: ElementRef, static: true }) mediaFigureContent: ElementRef;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = 'flex' + (this.classes ? ' ' + this.classes : '') + (this.center==true ? ' ' : '');\r\n this.cfgr = this.center;\r\n this.idData = this.id ? this.id : null;\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.tabindexData = this.tabindex ? this.tabindex : null;\r\n }\r\n\r\n}\r\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { StatusIconData } from '../../interfaces/status-icon-data';\r\n\r\n@Component({\r\n selector: 'desy-status',\r\n templateUrl: './status.component.html'\r\n})\r\nexport class StatusComponent extends AccessibilityComponent implements OnChanges{\r\n\r\n @Input() text: string;\r\n @Input() id: string;\r\n @Input() icon: StatusIconData;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n\r\n //Accessibility\r\n @HostBinding('attr.id') idData: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.tabindex') tabindexData: any;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.classes ? this.classes : null;\r\n this.idData = this.id ? this.id : null;\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.tabindexData = this.tabindex ? this.tabindex : null;\r\n }\r\n\r\n getType(): string {\r\n let type: string;\r\n if (this.icon && this.icon.type){\r\n type = this.icon.type.toLocaleLowerCase();\r\n } else {\r\n type = 'success';\r\n } \r\n return type;\r\n }\r\n}\r\n","import { Component, ContentChildren, HostBinding, Input, OnChanges, QueryList, SimpleChanges, TemplateRef } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { DescriptionItemData, StatusItemTitleData, StatusData } from '../../interfaces';\r\nimport { ErrorMessageData, HintData } from '../../../desy-forms/interfaces';\r\nimport { DescriptionItemComponent } from '../description-list/description-item/description-item.component';\r\nimport { TitleComponent } from '../../../desy-commons/components/title/title.component';\r\nimport { HintComponent } from '../../../desy-forms/components/hint/hint.component';\r\nimport { ErrorMessageComponent } from '../../../desy-forms/components/error-message/error-message.component';\r\nimport { StatusComponent } from '../status/status.component';\r\nimport { ContentComponent } from '../../../desy-commons/components/content/content.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-status-item',\r\n templateUrl: './status-item.component.html'\r\n})\r\nexport class StatusItemComponent extends AccessibilityComponent implements OnChanges{ \r\n\r\n @Input() id: string; \r\n\r\n @Input() errorId: string;\r\n @Input() describedBy: string;\r\n\r\n @Input() title: StatusItemTitleData;\r\n @Input() hint: HintData;\r\n @Input() errorMessage: ErrorMessageData;\r\n @Input() items: DescriptionItemData[];\r\n @Input() status: StatusData;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n\r\n //Accessibility\r\n @HostBinding('attr.id') idData: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.tabindex') tabindexData: any;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(HintComponent) hintComponent: HintComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ErrorMessageComponent) errorMessageComponent: ErrorMessageComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @ContentChildren(DescriptionItemComponent) itemComponents: QueryList<DescriptionItemComponent>;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(StatusComponent) statusComponent: StatusComponent;\r\n @Input() caller: TemplateRef<any>;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.classes ? this.classes : null;\r\n this.idData = this.id ? this.id : null;\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.tabindexData = this.tabindex ? this.tabindex : null;\r\n }\r\n\r\n getItems(): DescriptionItemData[]|DescriptionItemComponent[] {\r\n return (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\nimport {TabsPanelData} from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-panel',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class PanelComponent extends ContentBaseComponent implements TabsPanelData {\r\n\r\n @Input() classes: string;\r\n @Input() id: string;\r\n\r\n}","import {Component, ContentChildren, Input } from '@angular/core';\r\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\r\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\r\nimport { PanelComponent } from '../panel/panel.component';\r\nimport { TabsItemsData, TabsPanelData } from '../../../interfaces';\r\nimport { AccessibilityComponent } from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-tab-item',\r\n template: ''\r\n})\r\nexport class TabItemComponent extends AccessibilityComponent implements TabsItemsData {\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(PanelComponent) panelComponent: PanelComponent;\r\n\r\n @Input() classes: string;\r\n @Input() disabled: boolean;\r\n @Input() id: string;\r\n panel?: TabsPanelData;\r\n\r\n}\r\n","import {\r\n AfterViewInit, ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { StringUtils } from '../../../shared/utils/string-utils';\r\nimport {TabsItemsData} from '../../interfaces';\r\nimport { TabItemComponent } from './tab-item/tab-item.component';\r\n\r\n@Component({\r\n selector: 'desy-tabs',\r\n templateUrl: './tabs.component.html'\r\n})\r\nexport class TabsComponent extends AccessibilityComponent implements AfterViewInit, OnChanges {\r\n\r\n @ContentChildren(TabItemComponent) itemComponents: QueryList<TabItemComponent>;\r\n @ViewChildren('tabSelector') tabSelectors: QueryList<ElementRef>;\r\n @ViewChildren('tabSelectorContentWrapper') tabSelectorContentWrapper: QueryList<ElementRef>;\r\n @ViewChild('tabSrOnly') tabSrOnly: ElementRef;\r\n\r\n\r\n @Input() id: string;\r\n @Input() idPrefix: string;\r\n @Input() headingLevel: number;\r\n \r\n @Input() title: string;\r\n @Input() tablistAriaLabel: string;\r\n @Input() items: TabsItemsData[];\r\n \r\n @Input() @HostBinding('class') classes: any;\r\n\r\n //Accessibility\r\n @HostBinding('attr.id') idData: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.tabindex') tabindexData: any;\r\n\r\n currentTab = 0;\r\n currentPanel;\r\n\r\n constructor(private changeDetector: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.classes ? 'c-tabs ' + this.classes : 'c-tabs';\r\n this.idData = this.id ? this.id : null;\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.tabindexData = this.tabindex ? this.tabindex : null;\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n if(this.items){\r\n const item = this.getItems();\r\n this.selectTab(item.findIndex(value => !value.disabled));\r\n }\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n getItems(): TabsItemsData[]|TabItemComponent[] {\r\n const items = (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\r\n return items;\r\n }\r\n\r\n getItemPanel(tab: number): TabItemComponent {\r\n let panel;\r\n const items = this.getItems();\r\n const item = items[tab];\r\n if (item instanceof TabItemComponent){\r\n panel = item.panelComponent;\r\n }\r\n return panel;\r\n }\r\n\r\n\r\n getIdPrefix(): string {\r\n if (this.idPrefix) {\r\n return this.idPrefix;\r\n }\r\n }\r\n\r\n getItemId(index: number): string {\r\n let id;\r\n const item = this.getItems();\r\n if (item[index].id) {\r\n id = item[index].id;\r\n } else {\r\n id = this.getIdPrefix() + '-' + index;\r\n }\r\n return id;\r\n }\r\n\r\n isDisabled(item: TabsItemsData): boolean {\r\n return item.disabled ? true : null;\r\n }\r\n\r\n\r\n selectTab( i: number ): void {\r\n this.currentTab = i;\r\n const currentItem = this.getItems()[i];\r\n this.currentPanel = currentItem instanceof TabItemComponent ? currentItem.panelComponent : currentItem.panel;\r\n this.tabSrOnly.nativeElement.innerHTML = this.tabSelectorContentWrapper.toArray()[this.currentTab].nativeElement.innerHTML;\r\n }\r\n\r\n focusFirstTab(event?): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n const enabledTabs = this.tabSelectors.filter((item, index) => !item[index].disabled);\r\n enabledTabs[0].nativeElement.focus();\r\n }\r\n\r\n focusLastTab(event?): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n const enabledTabs = this.tabSelectors.filter((item, index) => !item[index].disabled);\r\n enabledTabs[enabledTabs.length - 1].nativeElement.focus();\r\n }\r\n\r\n focusNextTab(focusedTab: number): void {\r\n const item = this.getItems();\r\n let nextTab = (focusedTab + 1) % item.length;\r\n while (nextTab !== focusedTab) {\r\n if (!item[nextTab].disabled) {\r\n this.tabSelectors.find((i, index) => index === nextTab).nativeElement.focus();\r\n break;\r\n }\r\n nextTab = (nextTab + 1) % item.length;\r\n }\r\n }\r\n\r\n focusPreviousTab(focusedTab: number): void {\r\n const item = this.getItems();\r\n let previousTab = (focusedTab - 1 + item.length) % item.length;\r\n while (previousTab !== focusedTab) {\r\n if (!item[previousTab].disabled) {\r\n this.tabSelectors.find((i, index) => index === previousTab).nativeElement.focus();\r\n break;\r\n }\r\n previousTab = (previousTab - 1 + item.length) % item.length;\r\n }\r\n }\r\n\r\n getPanelContent(tab: number): string {\r\n const item = this.getItems();\r\n return item[tab].panel && item[tab].panel.text ? `<p>${ StringUtils.escapeHtml(item[tab].panel.text) }</p>` : null;\r\n }\r\n}\r\n","import {\r\n ComponentFactoryResolver, ComponentRef,\r\n Injectable,\r\n TemplateRef, Type\r\n} from '@angular/core';\r\nimport { AlertOptions } from '../interfaces/alert-options';\r\nimport { OpenAlertResult } from '../interfaces/open-alert-result';\r\nimport { AlertComponent } from '../components/alert/alert.component';\r\nimport { NotificationComponent } from '../../desy-nav/components/notification/notification.component';\r\nimport { NotificationOptions } from '../../desy-nav/interfaces/notification-options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AlertService {\r\n\r\n constructor(private factoryResolver: ComponentFactoryResolver) { }\r\n\r\n public openAlert(caller: TemplateRef<any>|NotificationOptions, alertOptions: AlertOptions): Promise<OpenAlertResult> {\r\n return new Promise<OpenAlertResult>((resolve, reject) => {\r\n\r\n if (!caller) {\r\n reject('caller is required');\r\n }\r\n\r\n if (!alertOptions) {\r\n reject('alertOptions is required');\r\n }\r\n\r\n const alert = this.createAlert(alertOptions);\r\n const result: OpenAlertResult = {\r\n alert\r\n };\r\n\r\n\r\n if (caller instanceof TemplateRef) {\r\n alert.instance.caller = caller;\r\n resolve(result);\r\n } else {\r\n alert.instance.callerType = NotificationComponent;\r\n alert.instance.onCallerCreationCallback = (d, c) => {\r\n this.initNotification(d, c, caller);\r\n result.component = c;\r\n resolve(result);\r\n };\r\n }\r\n });\r\n }\r\n\r\n public closeAlert(alert: ComponentRef<AlertComponent>|AlertComponent): void {\r\n if (alert) {\r\n if (alert instanceof ComponentRef) {\r\n alert.instance.dismiss();\r\n } else {\r\n alert.dismiss();\r\n }\r\n }\r\n }\r\n\r\n public onCloseAlert(alert: ComponentRef<AlertComponent>|AlertComponent): Promise<void> {\r\n return new Promise<void>((resolve => {\r\n let a;\r\n if (alert instanceof ComponentRef) {\r\n a = alert.instance;\r\n } else {\r\n a = alert;\r\n }\r\n\r\n const subscription = a.activeChange.subscribe(() => {\r\n resolve();\r\n subscription.unsubscribe();\r\n });\r\n }));\r\n }\r\n\r\n\r\n private createAlert(alertOptions: AlertOptions): ComponentRef<AlertComponent> {\r\n const factory = this.factoryResolver.resolveComponentFactory(AlertComponent);\r\n const alert = alertOptions.place.createComponent<AlertComponent>(factory);\r\n\r\n alert.instance.active = true;\r\n if (alertOptions) {\r\n Object.assign(alert.instance, alertOptions);\r\n }\r\n\r\n this.onCloseAlert(alert).then(() => alert.destroy());\r\n\r\n return alert;\r\n }\r\n\r\n private initNotification(alert: AlertComponent, notificationRef: ComponentRef<NotificationComponent>,\r\n options: NotificationOptions): void {\r\n Object.assign(notificationRef.instance, options);\r\n if (options.isDismissible) {\r\n const subscription = notificationRef.instance.isOpenChange.subscribe(() => {\r\n this.closeAlert(alert);\r\n subscription.unsubscribe();\r\n });\r\n }\r\n }\r\n}\r\n","import {Component} from '@angular/core';\r\nimport {ContentBaseComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-tooltip-content',\r\n templateUrl: './tooltip-content.component.html'\r\n})\r\nexport class TooltipContentComponent extends ContentBaseComponent {\r\n}\r\n","import { ContentBaseComponent } from './../../../shared/components/content-base/content-base.component';\r\nimport { Component, Input } from '@angular/core';\r\nimport { ListboxItemData } from '../../../desy-buttons/interfaces/listbox-item-data';\r\n\r\n\r\n@Component({\r\n selector: 'desy-pagination-item-perpage',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class PaginationItemPerPageComponent extends ContentBaseComponent implements ListboxItemData {\r\n @Input() classes?: string;\r\n @Input() value: number;\r\n active: boolean;\r\n}\r\n","import { ContentBaseComponent } from './../../../shared/components/content-base/content-base.component';\r\nimport { Component, Input } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'desy-pagination-listbox-label',\r\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\r\n})\r\nexport class PaginationListboxLabelComponent extends ContentBaseComponent {\r\n @Input() classes?: string;\r\n\r\n}\r\n","\r\nimport { Component, ContentChildren, EventEmitter, Input, OnChanges, Output, SimpleChanges, QueryList, AfterViewInit, HostBinding } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { PaginationItemData } from '../../interfaces';\r\nimport { PaginationItemPerPageComponent } from '../pagination-item-perpage/pagination-item-perpage.component';\r\nimport { PaginationListboxLabelComponent } from '../pagination-listbox-label/pagination-listbox-label.component';\r\n\r\n\r\n@Component({\r\n selector: 'desy-pagination',\r\n templateUrl: './pagination.component.html'\r\n})\r\nexport class PaginationComponent extends AccessibilityComponent implements OnChanges, AfterViewInit { \r\n \r\n @Input() hasSelect: boolean;\r\n @Input() idPrefix: string;\r\n @Input() totalItems: number;\r\n @Input() itemsPerPage: number;\r\n @Input() hasPrevious: boolean;\r\n @Input() hasNext: boolean;\r\n @Input() previousText: string;\r\n @Input() nextText: string;\r\n @Input() hasSelectItemsPerPage: string;\r\n @Input() classes: string;\r\n\r\n @Input() @HostBinding('class') classesContainer: any;\r\n @Input() @HostBinding('attr.id') id: any;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(PaginationListboxLabelComponent) listboxLabel: PaginationListboxLabelComponent;\r\n\r\n @ContentChildren(PaginationItemPerPageComponent) listboxItems: QueryList<PaginationItemPerPageComponent>;\r\n\r\n @Input() currentPage = 1; // == currentPageindex + 1\r\n @Output() currentPageChange = new EventEmitter<number>();\r\n\r\n nPages: number;\r\n items: PaginationItemData[];\r\n\r\n defaultText: boolean = false;\r\n\r\n readonly previousIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"self-center h-2.5 w-2.5 mr-2\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M54.87 71.77a2.5 2.5 0 010-3.54L106 17.07A10 10 0 1091.89 2.93L35.43 59.39a15 15 0 000 21.22l56.46 56.46A10 10 0 10106 122.93z\" fill=\"currentColor\" /></svg>';\r\n readonly nextIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"self-center h-2.5 w-2.5 ml-2\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M34 137.07a10 10 0 010-14.14l51.13-51.16a2.5 2.5 0 000-3.54L34 17.07A10 10 0 0148.11 2.93l56.46 56.46a15 15 0 010 21.22l-56.46 56.46a10 10 0 01-14.11 0z\" fill=\"currentColor\" /></svg>';\r\n readonly prefix = '<span class=\"sr-only\">Página&nbsp;</span>';\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.checkChanges();\r\n this.classesContainer = this.classesContainer ? this.classesContainer += ' lg:flex lg:flex-wrap lg:items-center lg:gap-base' : 'lg:flex lg:flex-wrap lg:items-center lg:gap-base'\r\n this.id = this.id ? this.id : null\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if(this.itemsPerPage && this.listboxItems && this.listboxItems.length > 0){\r\n let itemActive = false;\r\n this.listboxItems.forEach((item) => {\r\n if(this.itemsPerPage == item.value){\r\n item.active = true; \r\n itemActive = true\r\n }\r\n });\r\n if(!itemActive){\r\n this.listboxItems.first.active = true;\r\n }\r\n }\r\n }\r\n\r\n checkChanges(){\r\n this.nPages = Math.ceil(this.totalItems / this.itemsPerPage);\r\n\r\n if (!this.currentPage || this.currentPage < 1 || this.currentPage > this.nPages) {\r\n this.currentPage = 1;\r\n setTimeout( () => this.currentPageChange.emit(this.currentPage));\r\n }\r\n\r\n if (!this.previousText) {\r\n this.previousText = 'Anterior';\r\n }\r\n if (!this.nextText) {\r\n this.nextText = 'Siguiente';\r\n }\r\n this.buildPages();\r\n }\r\n\r\n getSuffix(page: number): string {\r\n return page >= 0 && page * this.itemsPerPage < this.totalItems ?\r\n `<span class=\"sr-only\">:&nbsp;Página ${page + 1} con los resultados del ${page * this.itemsPerPage + 1} al ${this.getLastItemNumber(page)}</span>`\r\n : '';\r\n }\r\n\r\n getLastItemNumber(pageIndex: number): number {\r\n return Math.min((pageIndex + 1) * this.itemsPerPage, this.totalItems);\r\n }\r\n\r\n buildPages(): void {\r\n this.items = [];\r\n for (let i = 0; i < this.nPages; i++) {\r\n const item: PaginationItemData = {\r\n text: i + 1,\r\n active: ( (i + 1) === this.currentPage),\r\n routerLink: []\r\n };\r\n this.items.push(item);\r\n }\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : 'pagination-item';\r\n }\r\n\r\n getButtonId( index: number): string {\r\n return this.getIdPrefix() + (index === 0) ? '' : '-' + index;\r\n }\r\n\r\n changePage(current: number): void{\r\n this.currentPage = current;\r\n this.currentPageChange.emit(this.currentPage);\r\n for (let i = 0; i < this.items.length; i++) {\r\n const item = this.items[i];\r\n item.active = ((i + 1) === this.currentPage);\r\n }\r\n }\r\n\r\n previous(): void {\r\n if (this.currentPage > 1) {\r\n this.changePage(this.currentPage - 1);\r\n }\r\n }\r\n\r\n next(): void {\r\n if (this.currentPage < this.nPages) {\r\n this.changePage(this.currentPage + 1);\r\n }\r\n }\r\n\r\n getActiveItemText(): any {\r\n const activeItems = this.items.filter(item => item.active);\r\n return activeItems && activeItems.length > 0 ? activeItems[0].text : '';\r\n }\r\n\r\n getListboxLabel(): PaginationListboxLabelComponent {\r\n return this.listboxLabel ? this.listboxLabel : null;\r\n }\r\n\r\n getItemsPerPage(): PaginationItemPerPageComponent[] {\r\n return this.listboxItems && this.listboxItems.length > 0 ? this.listboxItems.toArray() : null;\r\n }\r\n\r\n changeItemsPerPage(event: any) {\r\n if(event && event.value){\r\n let newValue = event.value;\r\n this.itemsPerPage = newValue;\r\n this.buildPages();\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'innerHtml'\r\n})\r\nexport class InnerHtmlPipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n transform(value: string): SafeHtml {\r\n return this.sanitizer.sanitize(SecurityContext.HTML, value);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'externalHref'\r\n})\r\nexport class ExternalHrefPipe implements PipeTransform {\r\n\r\n /**\r\n * Asegura que un enlace externo sea correcto\r\n * @param href enlace\r\n */\r\n transform(href: string): string {\r\n let externalHref: string;\r\n if (href) {\r\n if (href.match('http(s)?://')) {\r\n externalHref = href;\r\n } else {\r\n externalHref = 'http://' + href;\r\n }\r\n } else {\r\n externalHref = '#';\r\n }\r\n return externalHref;\r\n }\r\n\r\n}\r\n","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[desyAttributeChange]'\r\n})\r\nexport class AttributeChangeDirective implements OnDestroy {\r\n\r\n private changes: MutationObserver;\r\n\r\n @Input() attributesToCheck: string|string[];\r\n\r\n @Output()\r\n public desyAttributeChange = new EventEmitter();\r\n\r\n @Output()\r\n public desyAttributeChangeMutation = new EventEmitter();\r\n\r\n constructor(private elementRef: ElementRef) {\r\n const element = this.elementRef.nativeElement;\r\n\r\n this.changes = new MutationObserver((mutations: MutationRecord[]) => {\r\n mutations.forEach((mutation: MutationRecord) => {\r\n if (this.attributesToCheck) {\r\n const attrs = typeof (this.attributesToCheck) === 'string' ? [this.attributesToCheck] : this.attributesToCheck;\r\n if (attrs.findIndex(v => v === mutation.attributeName) >= 0) {\r\n this.desyAttributeChange.emit(this.elementRef.nativeElement.innerHTML);\r\n this.desyAttributeChangeMutation.emit(mutation);\r\n }\r\n }\r\n });\r\n }\r\n );\r\n\r\n this.changes.observe(element, {\r\n attributes: true,\r\n childList: false,\r\n characterData: false,\r\n subtree: false\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.changes.disconnect();\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, OnChanges, SimpleChanges} from '@angular/core';\r\n@Directive({\r\n selector: '[desyInnerContent]'\r\n})\r\nexport class InnerContentDirective implements OnChanges {\r\n\r\n @Input('desyInnerContent') content: string;\r\n @Input() isHtml: boolean;\r\n @Input() deleteContentIfEmpty = true;\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.content) {\r\n if (this.isHtml) {\r\n this.el.nativeElement.innerHTML = this.content;\r\n } else {\r\n this.el.nativeElement.innerText = this.content;\r\n }\r\n } else if (this.deleteContentIfEmpty) {\r\n this.el.nativeElement.innerText = null;\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[desyClickOutside]'\r\n})\r\nexport class ClickOutsideDirective {\r\n\r\n @Input('desyClickOutside') active = true;\r\n @Output() clickOutside = new EventEmitter<void>();\r\n @Input() desyClickOutsideElem: Element;\r\n\r\n constructor(private hostElementRef: ElementRef) { }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(target): void {\r\n let clickedInside;\r\n if (this.desyClickOutsideElem) {\r\n clickedInside = this.desyClickOutsideElem.contains(target);\r\n } else {\r\n clickedInside = (this.hostElementRef.nativeElement as Element).contains(target);\r\n }\r\n if (!clickedInside && this.active) {\r\n this.clickOutside.emit();\r\n }\r\n }\r\n\r\n}\r\n","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\r\n\r\n/**\r\n * Permite comprobar cuándo se produce un cambio en el contenido de un elemento.\r\n * La propia directiva emite el html interno del elemento en formato string, mientras que desyContentChangeMutation emite los cambios.\r\n */\r\n@Directive({\r\n selector: '[desyContentChange]'\r\n})\r\nexport class ContentChangeDirective implements OnDestroy {\r\n\r\n private changes: MutationObserver;\r\n\r\n @Input() observeProperties: { attributes: boolean, childList: boolean, characterData: boolean, subtree: boolean } = {\r\n attributes: false,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n };\r\n\r\n @Output()\r\n public desyContentChange = new EventEmitter<ElementRef>();\r\n\r\n @Output()\r\n public desyContentChangeMutation = new EventEmitter();\r\n\r\n constructor(private elementRef: ElementRef) {\r\n const element = this.elementRef.nativeElement;\r\n\r\n this.changes = new MutationObserver((mutations: MutationRecord[]) => {\r\n mutations.forEach((mutation: MutationRecord) => {\r\n this.desyContentChange.emit(this.elementRef);\r\n this.desyContentChangeMutation.emit(mutation);\r\n });\r\n }\r\n );\r\n\r\n this.changes.observe(element, this.observeProperties);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.changes.disconnect();\r\n }\r\n}\r\n","import {\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n Directive,\r\n Injector,\r\n Input, OnChanges,\r\n SimpleChanges, TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport {ContentBaseComponent} from '../components';\r\n\r\n/**\r\n * Permite introducir contenido de forma dinámica en una posición determinada desde:\r\n * - component: Componente existente de tipo ContentBase\r\n * - html: texto html en formato string\r\n * - text: texto plano en formato string\r\n */\r\n@Directive({\r\n selector: '[desyCustomInnerContent]'\r\n})\r\nexport class CustomInnerContentDirective implements OnChanges {\r\n\r\n @Input() desyCustomInnerContent: { component?: any|ContentBaseComponent, template?: TemplateRef<any>, html?: string, text?: string };\r\n\r\n private factory: ComponentFactory<ContentBaseComponent>;\r\n\r\n constructor(private viewContainerRef: ViewContainerRef, private resolver: ComponentFactoryResolver, private injector: Injector) {\r\n this.factory = this.resolver.resolveComponentFactory(ContentBaseComponent);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.viewContainerRef.clear();\r\n if (this.desyCustomInnerContent.component && this.desyCustomInnerContent.component instanceof ContentBaseComponent) {\r\n\r\n // Se crea la vista embebida basándose en el contenido del ContentBase indicado.\r\n this.viewContainerRef.createEmbeddedView(this.desyCustomInnerContent.component.getContent());\r\n } else if (this.desyCustomInnerContent.template) {\r\n\r\n // Se crea la vista embebida utilizando directamente el template.\r\n this.viewContainerRef.createEmbeddedView(this.desyCustomInnerContent.template);\r\n } else if (this.desyCustomInnerContent.html) {\r\n\r\n // Se carga el contenido en un div temporal.\r\n const tmpWrapper = document.createElement('div');\r\n tmpWrapper.innerHTML = this.desyCustomInnerContent.html;\r\n\r\n // Los nodos hijos del div se proyectan dentro de un componente ContentBase.\r\n const nodeList = [];\r\n tmpWrapper.childNodes.forEach(node => nodeList.push(node));\r\n const componentRef = this.factory.create(this.injector, [ nodeList ]);\r\n\r\n // Finalmente se crea la vista embebida basándose en el contenido del ContentBase creado.\r\n // Se podría hacer con un this.viewContainerRef.createComponent(), pero así se evita el tag envolvente del componente en el DOM\r\n this.viewContainerRef.createEmbeddedView(componentRef.instance.getContent());\r\n } else if (this.desyCustomInnerContent.text) {\r\n\r\n // Se carga el contenido en un nodo de texto\r\n const textNode = document.createTextNode(this.desyCustomInnerContent.text);\r\n\r\n // El nodo de texto se proyecta dentro de un componente ContentBase\r\n const componentRef = this.factory.create(this.injector, [[ textNode ]]);\r\n\r\n // Finalmente se crea la vista embebida basándose en el contenido del ContentBase creado.\r\n // Se podría hacer con un this.viewContainerRef.createComponent(), pero así se evita el tag envolvente del componente en el DOM\r\n this.viewContainerRef.createEmbeddedView(componentRef.instance.getContent());\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n// components\r\nimport {\r\n AccessibilityComponent,\r\n ContentBaseComponent,\r\n TextOrHtmlRequiredComponent,\r\n AccessibilityAndTextOrHtmlRequiredComponent,\r\n AccessibilityAndContentRequiredComponent\r\n} from './components';\r\n\r\n// pipes\r\nimport { InnerHtmlPipe } from './pipes/inner-html.pipe';\r\nimport { MakeHtmlListPipe } from './pipes/make-html-list.pipe';\r\nimport { ExternalHrefPipe } from './pipes/external-href.pipe';\r\n\r\n// directives\r\nimport { AttributeChangeDirective } from './directives/attribute-change.directive';\r\nimport { InnerContentDirective } from './directives/inner-content.directive';\r\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\r\nimport { ContentChangeDirective } from './directives/content-change.directive';\r\nimport { CustomInnerContentDirective } from './directives/custom-inner-content.directive';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n // components\r\n AccessibilityComponent,\r\n ContentBaseComponent,\r\n TextOrHtmlRequiredComponent,\r\n AccessibilityAndTextOrHtmlRequiredComponent,\r\n AccessibilityAndContentRequiredComponent,\r\n\r\n // pipes\r\n InnerHtmlPipe,\r\n MakeHtmlListPipe,\r\n ExternalHrefPipe,\r\n\r\n // directives\r\n AttributeChangeDirective,\r\n InnerContentDirective,\r\n ClickOutsideDirective,\r\n ContentChangeDirective,\r\n CustomInnerContentDirective,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [\r\n RouterModule,\r\n\r\n // components\r\n AccessibilityComponent,\r\n ContentBaseComponent,\r\n TextOrHtmlRequiredComponent,\r\n AccessibilityAndTextOrHtmlRequiredComponent,\r\n AccessibilityAndContentRequiredComponent,\r\n\r\n // pipes\r\n InnerHtmlPipe,\r\n MakeHtmlListPipe,\r\n ExternalHrefPipe,\r\n\r\n // directives\r\n AttributeChangeDirective,\r\n InnerContentDirective,\r\n ClickOutsideDirective,\r\n ContentChangeDirective,\r\n CustomInnerContentDirective,\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Component } from '@angular/core';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'desy-template-driven-wrapper',\r\n templateUrl: './template-driven-wrapper.component.html',\r\n providers: [ { provide: ControlContainer, useExisting: NgForm, } ]\r\n})\r\nexport class TemplateDrivenWrapperComponent {\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { ContentBaseComponent } from '../../../shared/components';\r\nimport { DividerData } from '../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-divider',\r\n templateUrl: './divider.component.html'\r\n})\r\nexport class DividerComponent extends ContentBaseComponent implements DividerData {\r\n @Input() text?: string;\r\n @Input() html?: string;\r\n\r\n}\r\n","// componentes\r\nimport { NgModule } from '@angular/core';\r\nimport { IconComponent } from './components/icon/icon.component';\r\nimport { ContentComponent } from './components/content/content.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { NgxTippyModule } from 'ngx-tippy-wrapper';\r\nimport { TitleComponent } from './components/title/title.component';\r\nimport { DescriptionComponent } from './components/description/description.component';\r\nimport { DividerComponent } from './components/divider/divider.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n IconComponent,\r\n ContentComponent,\r\n DescriptionComponent,\r\n TitleComponent,\r\n DividerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n NgxTippyModule\r\n ],\r\n exports: [\r\n IconComponent,\r\n ContentComponent,\r\n DescriptionComponent,\r\n TitleComponent,\r\n DividerComponent\r\n ]\r\n})\r\n\r\nexport class DesyCommonsModule { }\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\n// componentes\r\nimport { TemplateDrivenWrapperComponent } from './components/template-driven-wrapper/template-driven-wrapper.component';\r\nimport { FormFieldComponent } from './components/form-field/form-field.component';\r\nimport { HintComponent } from './components/hint/hint.component';\r\nimport { LabelComponent } from './components/label/label.component';\r\nimport { ErrorMessageComponent } from './components/error-message/error-message.component';\r\nimport { FieldsetComponent } from './components/fieldset/fieldset.component';\r\nimport { LegendComponent } from './components/fieldset/legend/legend.component';\r\nimport { TextareaComponent } from './components/textarea/textarea.component';\r\nimport { CharacterCountComponent } from './components/character-count/character-count.component';\r\nimport { InputComponent } from './components/input/input.component';\r\nimport { SelectComponent } from './components/select/select.component';\r\nimport { FileUploadComponent } from './components/file-upload/file-upload.component';\r\nimport { InputGroupComponent } from './components/input-group/input-group.component';\r\nimport { RadiosComponent } from './components/radios/radios.component';\r\nimport { RadioItemComponent } from './components/radios/radio-item/radio-item.component';\r\nimport { CheckboxesComponent } from './components/checkboxes/checkboxes.component';\r\nimport { CheckboxItemComponent } from './components/checkboxes/checkbox-item/checkbox-item.component';\r\nimport { DateInputComponent } from './components/date-input/date-input.component';\r\nimport { SearchBarComponent} from './components/search-bar/search-bar.component';\r\nimport { OptionComponent } from './components/select/option/option.component';\r\nimport { DateInputDayComponent } from './components/date-input/date-input-day/date-input-day.component';\r\nimport { DateInputMonthComponent } from './components/date-input/date-input-month/date-input-month.component';\r\nimport { DateInputYearComponent } from './components/date-input/date-input-year/date-input-year.component';\r\n\r\n// directivas\r\nimport { ConditionDirective } from './directives/condition.directive';\r\n\r\nimport { DesyCommonsModule } from '../desy-commons/desy-commons.module';\r\nimport { InputGroupItemComponent } from './components/input-group/input-group-item/input-group-item.component';\r\nimport { DateInputItemComponent } from './components/date-input/date-input-item/date-input-item.component';\r\nimport { InputGroupDividerComponent } from './components/input-group/input-group-divider/input-group-divider.component';\r\nimport { DateInputDividerComponent } from './components/date-input/date-input-divider/date-input-divider.component';\r\nimport { InputGroupInputComponent } from './components/input-group/input-group-input/input-group-input.component';\r\nimport { InputGroupSelectComponent } from './components/input-group/input-group-select/input-group-select.component';\r\nimport { OptionGroupComponent } from './components/select/option-group/option-group.component';\r\nimport { SelectItemComponent } from './components/select/select-item/select-item.component';\r\nimport { TreeComponent } from './components/tree/tree.component';\r\nimport { TreeCheckboxComponent } from './components/tree/tree-checkbox/tree-checkbox.component';\r\nimport { TreeSubComponent } from './components/tree/tree-sub/tree-sub.component';\r\nimport { TreeItemComponent } from './components/tree/tree-item/tree-item.component';\r\nimport { TreeItemsGeneratorComponent } from './components/tree/tree-items-generator/tree-items-generator.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TemplateDrivenWrapperComponent,\r\n FormFieldComponent,\r\n HintComponent,\r\n LabelComponent,\r\n ErrorMessageComponent,\r\n FieldsetComponent,\r\n LegendComponent,\r\n TextareaComponent,\r\n CharacterCountComponent,\r\n InputComponent,\r\n SelectComponent,\r\n FileUploadComponent,\r\n InputGroupComponent,\r\n InputGroupItemComponent,\r\n DateInputItemComponent,\r\n InputGroupDividerComponent,\r\n DateInputDividerComponent,\r\n InputGroupInputComponent,\r\n InputGroupSelectComponent,\r\n RadiosComponent,\r\n RadioItemComponent,\r\n CheckboxesComponent,\r\n CheckboxItemComponent,\r\n DateInputComponent,\r\n SearchBarComponent,\r\n OptionComponent,\r\n OptionGroupComponent,\r\n SelectItemComponent,\r\n DateInputDayComponent,\r\n DateInputMonthComponent,\r\n DateInputYearComponent,\r\n TreeComponent,\r\n TreeSubComponent,\r\n TreeItemComponent,\r\n TreeCheckboxComponent,\r\n TreeItemsGeneratorComponent,\r\n\r\n ConditionDirective,\r\n\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule,\r\n DesyCommonsModule,\r\n ],\r\n exports: [\r\n HintComponent,\r\n LabelComponent,\r\n ErrorMessageComponent,\r\n FieldsetComponent,\r\n LegendComponent,\r\n TextareaComponent,\r\n CharacterCountComponent,\r\n InputComponent,\r\n SelectComponent,\r\n FileUploadComponent,\r\n InputGroupComponent,\r\n InputGroupDividerComponent,\r\n DateInputDividerComponent,\r\n InputGroupInputComponent,\r\n InputGroupSelectComponent,\r\n RadiosComponent,\r\n RadioItemComponent,\r\n CheckboxesComponent,\r\n CheckboxItemComponent,\r\n DateInputComponent,\r\n SearchBarComponent,\r\n OptionComponent,\r\n OptionGroupComponent,\r\n DateInputDayComponent,\r\n DateInputMonthComponent,\r\n DateInputYearComponent,\r\n TreeComponent,\r\n TreeSubComponent,\r\n TreeItemComponent,\r\n TreeItemsGeneratorComponent,\r\n\r\n ConditionDirective\r\n ]\r\n})\r\nexport class DesyFormsModule { }\r\n","import {\r\n AfterContentInit, ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../shared/components';\r\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\r\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\r\nimport {IconData} from '../../../desy-commons/interfaces';\r\nimport {TooltipContentComponent} from './tooltip-content/tooltip-content.component';\r\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\r\n\r\n@Component({\r\n selector: 'desy-tooltip',\r\n templateUrl: './tooltip.component.html'\r\n})\r\nexport class TooltipComponent extends AccessibilityComponent implements AfterContentInit, OnChanges {\r\n\r\n static readonly KEY_CODE_ESC = 'Escape';\r\n\r\n @DesyContentChild()\r\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(IconComponent) iconComponent: IconComponent;\r\n\r\n @DesyContentChild()\r\n @ContentChildren(TooltipContentComponent) tooltipContentComponent: TooltipContentComponent;\r\n\r\n @ViewChild('tooltipContent', { read: ElementRef, static: true }) tooltipContent: ElementRef;\r\n\r\n @Input() id: string;\r\n @Input() text: string;\r\n @Input() html: string;\r\n @Input() complex: boolean;\r\n @Input() classesTooltip: string;\r\n @Input() icon: IconData;\r\n @Input() caller: TemplateRef<any>;\r\n @Input() @HostBinding('class') classes: any;\r\n // @HostBinding('data-module') dataModule = \"c-tabs\";\r\n\r\n //Accessibility\r\n @HostBinding('attr.id') idData: any;\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.tabindex') tabindexData: any;\r\n\r\n tippyProperties: any;\r\n hasContent = true;\r\n hasIconComponentContent = true;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.classes = this.classes ? this.classes : null;\r\n this.idData = this.id ? this.id : null;\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.tabindexData = this.tabindex ? this.tabindex : null;\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n const contentTooltip = this.tooltipContent.nativeElement as HTMLElement;\r\n this.tippyProperties = {\r\n placement: 'top',\r\n inlinePositioning: true,\r\n content: contentTooltip,\r\n allowHTML: true, // Make sure you are sanitizing any user data if rendering HTML to prevent XSS attacks.\r\n trigger: 'mouseenter focus',\r\n hideOnClick: false,\r\n theme: '',\r\n plugins: [{\r\n name: 'hideOnEsc',\r\n defaultValue: true,\r\n fn({hide}): any {\r\n\r\n function onKeyDown(event: KeyboardEvent): void {\r\n if (event.key === TooltipComponent.KEY_CODE_ESC) {\r\n hide();\r\n }\r\n }\r\n\r\n return {\r\n onShow(): void {\r\n document.addEventListener('keydown', onKeyDown);\r\n },\r\n onHide(): void {\r\n document.removeEventListener('keydown', onKeyDown);\r\n },\r\n };\r\n },\r\n }],\r\n role: 'tooltip',\r\n aria: {\r\n content: this.complex ? 'describedby' : 'labelledby',\r\n },\r\n };\r\n }\r\n\r\n getIdButton(): string {\r\n return this.id + '-button';\r\n }\r\n\r\n getIdTooltip(): string {\r\n return this.id + '-tooltip';\r\n }\r\n\r\n handleEmptyContent(isEmpty: boolean): void {\r\n this.hasContent = !isEmpty;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n handleEmptyIconContent(isEmpty: boolean): void {\r\n this.hasIconComponentContent = !isEmpty;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n\r\n getMainContent(): string {\r\n let content;\r\n if (this.html) {\r\n content = this.html;\r\n } else if (this.text) {\r\n content = `<p>${this.text}</p>`;\r\n }\r\n return content;\r\n }\r\n\r\n getIconContent(icon: IconData): string {\r\n let iconContent;\r\n if (icon.html) {\r\n iconContent = this.icon.html;\r\n } else if (icon.type === 'info') {\r\n iconContent = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-primary-base\" role=\"img\" aria-label=\"Información\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm7.5 105a7.5 7.5 0 01-15 0V70a7.5 7.5 0 0115 0zM70 50a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>';\r\n } else if (icon.type === 'alert') {\r\n iconContent = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-alert-base\" role=\"img\" aria-label=\"Alerta\"><path d=\"M138.42 118.29l-55-110a15 15 0 00-26.84 0l-55 110A15 15 0 0015 140h110a15 15 0 0013.42-21.71zM62.5 50a7.5 7.5 0 0115 0v30a7.5 7.5 0 01-15 0zm7.5 70a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>';\r\n } else {\r\n iconContent = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-primary-base\" role=\"img\" aria-label=\"Ayuda\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm0 117.51a10 10 0 1110-10 10 10 0 01-10 10zm9.17-39.08a2.5 2.5 0 00-1.67 2.36v1.71a7.5 7.5 0 01-15 0v-10A7.5 7.5 0 0170 65a12.5 12.5 0 10-12.5-12.5 7.5 7.5 0 01-15 0 27.5 27.5 0 1136.67 25.93z\" fill=\"currentColor\"/></svg>';\r\n }\r\n return iconContent;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '../shared/shared.module';\r\n\r\nimport { AlertComponent } from './components/alert/alert.component';\r\nimport { AccordionComponent } from './components/accordion/accordion.component';\r\nimport { AccordionHeaderComponent } from './components/accordion/accordion-header/accordion-header.component';\r\nimport { AccordionHistoryComponent } from './components/accordion-history/accordion-history.component';\r\nimport { AccordionHistoryItemComponent } from './components/accordion-history/accordion-history-item/accordion-history-item.component';\r\nimport { AccordionItemComponent } from './components/accordion/accordion-item/accordion-item.component';\r\nimport { SpinnerComponent } from './components/spinner/spinner.component';\r\nimport { DetailsComponent } from './components/details/details.component';\r\nimport { CollapsibleComponent } from './components/collapsible/collapsible.component';\r\nimport { DescriptionListComponent } from './components/description-list/description-list.component';\r\nimport { ItemComponent } from './components/item/item.component';\r\nimport { MediaObjectComponent } from './components/media-object/media-object.component';\r\nimport { StatusComponent } from './components/status/status.component';\r\nimport { StatusItemComponent } from './components/status-item/status-item.component';\r\nimport { DesyFormsModule } from '../desy-forms/desy-forms.module';\r\nimport { TabsComponent } from './components/tabs/tabs.component';\r\nimport { TooltipComponent } from './components/tooltip/tooltip.component';\r\nimport { DesyCommonsModule } from '../desy-commons/desy-commons.module';\r\nimport { NgxTippyModule } from 'ngx-tippy-wrapper';\r\nimport { TooltipContentComponent } from './components/tooltip/tooltip-content/tooltip-content.component';\r\nimport { DescriptionItemComponent } from './components/description-list/description-item/description-item.component';\r\nimport { TermComponent } from './components/description-list/term/term.component';\r\nimport { DefinitionComponent } from './components/description-list/definition/definition.component';\r\nimport { ItemContentBottomComponent } from './components/item/item-content-bottom/item-content-bottom.component';\r\nimport { ItemContentRightComponent } from './components/item/item-content-right/item-content-right.component';\r\nimport { ItemItemComponent } from './components/item/item-item/item-item.component';\r\nimport { PanelComponent } from './components/tabs/panel/panel.component';\r\nimport { TabItemComponent } from './components/tabs/tab-item/tab-item.component';\r\nimport { MediaObjectFigureComponent } from './components/media-object/media-object-figure/media-object-figure.component';\r\nimport { AccordionItemShowButtonComponent } from './components/accordion-history/accordion-item-show-button/accordion-item-show-button.component';\r\nimport { AccordionItemHideButtonComponent } from './components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AlertComponent,\r\n AccordionComponent,\r\n AccordionHeaderComponent,\r\n AccordionHistoryComponent,\r\n AccordionHistoryItemComponent,\r\n AccordionItemShowButtonComponent,\r\n AccordionItemHideButtonComponent,\r\n AccordionItemComponent,\r\n SpinnerComponent,\r\n DetailsComponent,\r\n CollapsibleComponent,\r\n DescriptionListComponent,\r\n DescriptionItemComponent,\r\n TermComponent,\r\n DefinitionComponent,\r\n ItemComponent,\r\n ItemContentBottomComponent,\r\n ItemContentRightComponent,\r\n ItemItemComponent,\r\n MediaObjectComponent,\r\n StatusComponent,\r\n StatusItemComponent,\r\n TabsComponent,\r\n TooltipComponent,\r\n TooltipContentComponent,\r\n PanelComponent,\r\n TabItemComponent,\r\n MediaObjectFigureComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n DesyFormsModule,\r\n DesyCommonsModule,\r\n NgxTippyModule\r\n ],\r\n exports: [\r\n AlertComponent,\r\n AccordionComponent,\r\n AccordionHeaderComponent,\r\n AccordionHistoryComponent,\r\n AccordionHistoryItemComponent,\r\n AccordionItemShowButtonComponent,\r\n AccordionItemHideButtonComponent,\r\n AccordionItemComponent,\r\n SpinnerComponent,\r\n DetailsComponent,\r\n CollapsibleComponent,\r\n DescriptionListComponent,\r\n DescriptionItemComponent,\r\n TermComponent,\r\n DefinitionComponent,\r\n ItemComponent,\r\n ItemContentBottomComponent,\r\n ItemContentRightComponent,\r\n ItemItemComponent,\r\n MediaObjectComponent,\r\n StatusComponent,\r\n StatusItemComponent,\r\n TabsComponent,\r\n TooltipComponent,\r\n TooltipContentComponent,\r\n PanelComponent,\r\n TabItemComponent,\r\n MediaObjectFigureComponent,\r\n ]\r\n})\r\nexport class DesyViewsModule { }\r\n","import { Component, Input, ViewChild } from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-toggle-off-state',\r\n templateUrl: './toggle-off-state.component.html'\r\n})\r\nexport class ToggleOffStateComponent extends AccessibilityComponent {\r\n \r\n @ViewChild('contentTemplateOffState', { static: true }) content;\r\n\r\n @Input() classes: string;\r\n\r\n}","import { Component, Input, ViewChild } from '@angular/core';\r\nimport {AccessibilityComponent} from '../../../../shared/components';\r\n\r\n@Component({\r\n selector: 'desy-toggle-on-state',\r\n templateUrl: './toggle-on-state.component.html'\r\n})\r\nexport class ToggleOnStateComponent extends AccessibilityComponent {\r\n\r\n @ViewChild('contentTemplateOnState', { static: true }) content;\r\n\r\n @Input() classes: string;\r\n\r\n}\r\n","import { Component, ContentChildren, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\r\nimport { ToggleOffStateComponent } from './toggle-off-state/toggle-off-state.component';\r\nimport { ToggleOnStateComponent } from './toggle-on-state/toggle-on-state.component';\r\n\r\n@Component({\r\n selector: 'desy-toggle',\r\n templateUrl: './toggle.component.html'\r\n})\r\nexport class ToggleComponent extends AccessibilityComponent {\r\n \r\n @Input() id: string;\r\n @Input() isSwitch: boolean;\r\n @Input() pressed: boolean;\r\n @Input() classes: string;\r\n @Input() isExpandible: boolean;\r\n\r\n @Input() @HostBinding('class.relative') cfg = true;\r\n \r\n @Output() clickEvent = new EventEmitter();\r\n @Output() pressedChange: EventEmitter<any> = new EventEmitter<any>();\r\n \r\n @DesyContentChild()\r\n @ContentChildren(ToggleOnStateComponent) contentTemplateOnState: ToggleOnStateComponent;\r\n \r\n @DesyContentChild()\r\n @ContentChildren(ToggleOffStateComponent) contentTemplateOffState: ToggleOffStateComponent;\r\n\r\n onClick(event: any): void {\r\n this.pressed = !this.pressed;\r\n this.pressedChange.emit(this.pressed);\r\n this.clickEvent.emit(event);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DesyViewsModule } from '../desy-views/desy-views.module';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { NgxTippyModule } from 'ngx-tippy-wrapper';\r\n\r\n// componentes\r\nimport { ButtonComponent } from './components/button/button.component';\r\nimport { ButtonLoaderComponent } from './components/button-loader/button-loader.component';\r\nimport { PillComponent } from './components/pill/pill.component';\r\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\r\nimport { ListboxComponent } from './components/listbox/listbox.component';\r\nimport { ListboxItemComponent } from './components/listbox/listbox-item/listbox-item.component';\r\nimport { ListboxLabelComponent } from './components/listbox/listbox-label/listbox-label.component';\r\nimport { ToggleComponent } from './components/toggle/toggle.component';\r\nimport { ToggleOnStateComponent } from './components/toggle/toggle-on-state/toggle-on-state.component';\r\nimport { ToggleOffStateComponent } from './components/toggle/toggle-off-state/toggle-off-state.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ButtonComponent,\r\n ButtonLoaderComponent,\r\n DropdownComponent,\r\n ListboxComponent,\r\n PillComponent,\r\n\r\n ListboxItemComponent,\r\n ListboxLabelComponent,\r\n ToggleComponent,\r\n ToggleOnStateComponent,\r\n ToggleOffStateComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n DesyViewsModule,\r\n NgxTippyModule\r\n ],\r\n exports: [\r\n ButtonComponent,\r\n ButtonLoaderComponent,\r\n DropdownComponent,\r\n ListboxComponent,\r\n PillComponent,\r\n\r\n ListboxItemComponent,\r\n ListboxLabelComponent,\r\n ToggleComponent,\r\n ToggleOnStateComponent,\r\n ToggleOffStateComponent\r\n ]\r\n})\r\nexport class DesyButtonsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DesyButtonsModule } from '../desy-buttons/desy-buttons.module';\r\n\r\n// components\r\nimport { ModalComponent } from './components/modal/modal.component';\r\nimport { ModalButtonPrimaryComponent } from './components/modal/modal-button-primary/modal-button-primary.component';\r\nimport { ModalButtonSecondaryComponent } from './components/modal/modal-button-secondary/modal-button-secondary.component';\r\nimport { DialogComponent } from './components/dialog/dialog.component';\r\nimport { ModalButtonLoaderPrimaryComponent } from './components/modal/modal-button-loader-primary/modal-button-loader-primary.component';\r\nimport { ModalButtonLoaderSecondaryComponent } from './components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ModalComponent,\r\n ModalButtonPrimaryComponent,\r\n ModalButtonSecondaryComponent,\r\n ModalButtonLoaderPrimaryComponent,\r\n ModalButtonLoaderSecondaryComponent,\r\n DialogComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n A11yModule,\r\n SharedModule,\r\n DesyButtonsModule\r\n ],\r\n exports: [\r\n ModalComponent,\r\n ModalButtonPrimaryComponent,\r\n ModalButtonSecondaryComponent,\r\n ModalButtonLoaderPrimaryComponent,\r\n ModalButtonLoaderSecondaryComponent,\r\n DialogComponent\r\n ],\r\n})\r\nexport class DesyModalsModule { }\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DividerData } from '../../../../../desy-commons/interfaces';\r\nimport { ContentBaseComponent } from '../../../../../shared/components';\r\nimport { MenuNavigationItemSubItem } from '../../../../interfaces';\r\n\r\n@Component({\r\n selector: 'desy-menu-navigation-subitem',\r\n templateUrl: './menu-navigation-subitem.component.html'\r\n})\r\nexport class MenuNavigationSubitemComponent extends ContentBaseComponent implements MenuNavigationItemSubItem {\r\n \r\n @Input() href?: string;\r\n @Input() target?: string;\r\n @Input() text: string;\r\n @Input() html: string;\r\n @Input() id?: string;\r\n @Input() expanded?: boolean;\r\n @Input() divider?: DividerData;\r\n @Input() disabled?: boolean;\r\n @Input() sub?: MenuNavigationItemSubItem[];\r\n @Input() classes?: string;\r\n @Input() active?: boolean;\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n @Output() checkedChange = new EventEmitter<boolean>();\r\n\r\n}\r\n","import { Component, ContentChildren, EventEmitter, Input, Output, QueryList } from '@angular/core';\r\nimport { HintData } from '../../../../../desy-forms/interfaces/hint-data';\r\nimport { DividerData } from '../../../../../desy-commons/interfaces';\r\nimport { ContentBaseComponent } from '../../../../../shared/components/content-base/content-base.component';\r\nimport { MenuNavigationItem, MenuNavigationItemSubItem } from '../../../../interfaces';\r\nimport { MenuNavigationSubitemComponent } from '../menu-navigation-subitem/menu-navigation-subitem.component';\r\n\r\n@Component({\r\n selector: 'desy-menu-navigation-item',\r\n templateUrl: './menu-navigation-item.component.html'\r\n})\r\nexport class MenuNavigationItemComponent extends ContentBaseComponent implements MenuNavigationItem {\r\n \r\n @Input() href?: string;\r\n @Input() target?: string;\r\n @Input() text: string;\r\n @Input() html: string;\r\n @Input() id?: string;\r\n @Input() expanded?: boolean;\r\n @Input() divider?: DividerData;\r\n @Input() disabled?: boolean;\r\n @Input() sub?: MenuNavigationItemSubItem;\r\n @Input() classes?: string;\r\n\r\n @Input() title?: string;\r\n @Input() active?: boolean;\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n\r\n @ContentChildren(MenuNavigationSubitemComponent) subItems: QueryList<MenuNavigationSubitemComponent>;\r\n\r\n public getSubItems(): MenuNavigationSubitemComponent[] {\r\n return this.subItems.toArray();\r\n }\r\n\r\n}\r\n","import { AfterViewInit, \r\n ChangeDetectorRef, \r\n Component, \r\n ContentChildren, \r\n ElementRef, \r\n EventEmitter, \r\n HostBinding, \r\n Input, \r\n OnChanges, \r\n Output, \r\n QueryList, \r\n SimpleChanges,\r\n ViewChild, \r\n ViewChildren } from '@angular/core';\r\nimport { AccessibilityComponent } from '../../../shared/components';\r\nimport { MenuNavigationItemSubItem, MenuNavigationItemSubItemSubItem } from '../../interfaces';\r\nimport { MenuNavigationItem } from '../../interfaces/menu-navigation';\r\nimport { MenubaritemDirective } from '../menubar/directives/menubaritem.directive';\r\nimport { MenuNavigationItemComponent } from './components/menu-navigation-item/menu-navigation-item.component';\r\nimport { MenuNavigationSubitemComponent } from './components/menu-navigation-subitem/menu-navigation-subitem.component';\r\n\r\n@Component({\r\n selector: 'desy-menu-navigation',\r\n templateUrl: './menu-navigation.component.html'\r\n})\r\nexport class MenuNavigationComponent extends AccessibilityComponent implements OnChanges, AfterViewInit{\r\n\r\n @Input() idPrefix: string;\r\n @Input() items: MenuNavigationItem[];\r\n @Output() itemsChange = new EventEmitter<MenuNavigationItem[]>();\r\n @Output() activeItemChange = new EventEmitter<MenuNavigationItem>();\r\n @Output() activeSubItemChange = new EventEmitter<MenuNavigationItemSubItem | MenuNavigationItemSubItemSubItem>();\r\n\r\n @ViewChild('menunavigation', { read: ElementRef }) menunavigation: ElementRef;\r\n @ViewChildren(MenubaritemDirective) menuItems: QueryList<MenubaritemDirective>;\r\n @ContentChildren(MenuNavigationItemComponent) itemComponentList: QueryList<MenuNavigationItemComponent>;\r\n\r\n @Input() @HostBinding('class') classes: any;\r\n @HostBinding('class.c-menu-navigation') cfg = true\r\n @Input() @HostBinding('attr.id') id: any;\r\n\r\n @HostBinding('attr.role') roleData: any;\r\n @HostBinding('attr.aria-label') ariaLabelData: any;\r\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\r\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\r\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\r\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\r\n @HostBinding('attr.aria-controls') ariaControlsData: any;\r\n @HostBinding('attr.aria-current') ariaCurrentData: any;\r\n @HostBinding('attr.aria-live') ariaLiveData: any;\r\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\r\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\r\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\r\n @HostBinding('attr.aria-modal') ariaModalData: any;\r\n\r\n menuData: any[];\r\n viewInit = false;\r\n isFocused: boolean;\r\n currentFocusItemIndex = 0;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes?: SimpleChanges): void {\r\n this.roleData = this.role ? this.role : null;\r\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\r\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\r\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\r\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\r\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\r\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\r\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\r\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\r\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\r\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\r\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\r\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\r\n if (this.viewInit) {\r\n this.checkChanges();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.viewInit = true;\r\n this.checkChanges();\r\n }\r\n\r\n checkChanges(): void {\r\n if (!this.menuItems) {\r\n return;\r\n }\r\n \r\n this.menuData = [];\r\n this.getItems().forEach((_, index) => {\r\n const itemData = {\r\n open: false,\r\n currentFocusSubItemIndex: 0,\r\n currentFocusSubSubItemIndex: 0,\r\n menuItem: this.menuItems.toArray()[index]\r\n };\r\n this.menuData.push(itemData);\r\n });\r\n\r\n if (this.viewInit) {\r\n this.checkRequired();\r\n }\r\n\r\n\r\n const lastCurrentFocusItemIndex = this.currentFocusItemIndex;\r\n const items = this.getItems();\r\n if (items) {\r\n while (!this.isItemFocusable(this.currentFocusItemIndex % items.length)) {\r\n this.currentFocusItemIndex = (this.currentFocusItemIndex + items.length + 1) % items.length;\r\n if (this.currentFocusItemIndex === lastCurrentFocusItemIndex) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Eventos\r\n */\r\n\r\n handleMenuFocusIn(): void {\r\n this.isFocused = true;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n handleMenuFocusOut(event): void {\r\n if (!this.menunavigation.nativeElement.contains(event.relatedTarget)) {\r\n this.closeMenu();\r\n }\r\n this.isFocused = false;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n handleMenuItemClick(event, itemIndex: number): void {\r\n if (this.hasPopupMenu(itemIndex)) {\r\n event.preventDefault();\r\n const isOpen = this.menuData[itemIndex].open;\r\n this.closeMenu();\r\n if (!isOpen) {\r\n this.openMenu(itemIndex);\r\n }\r\n } else {\r\n this.activateMenuItem(itemIndex);\r\n }\r\n }\r\n\r\n handleMenuItemKeydown(event: KeyboardEvent, itemIndex: number): void {\r\n switch (event.key) {\r\n case 'Enter':\r\n case ' ':\r\n case 'ArrowDown':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n setTimeout(() => this.focusFirstSubItem(itemIndex));\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n\r\n case 'Escape':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu(itemIndex);\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n this.focusNextAvailableItem(itemIndex, -1);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowRight':\r\n this.focusNextAvailableItem(itemIndex, +1);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowUp':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n setTimeout(() => this.focusLastSubItem(itemIndex));\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Home':\r\n case 'PageUp':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu();\r\n }\r\n this.focusFirstItem();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'End':\r\n case 'PageDown':\r\n if (this.hasPopupMenu(itemIndex)) {\r\n this.closeMenu();\r\n }\r\n this.focusLastItem();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n default:\r\n if (this.isPrintableChar(event.key)) {\r\n this.focusItemByFirstChar(event.key);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n handleMenuItemMouseOver(itemIndex: number): void {\r\n this.focusItem(itemIndex, true);\r\n }\r\n\r\n handlePopupMenuItemClick(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n this.focusItem(itemIndex);\r\n this.closeMenu(itemIndex);\r\n }\r\n\r\n handlePopupMenuItemKeydown(event: KeyboardEvent, itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n const currentSubIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\r\n const currentSubSubIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\r\n const items = this.getItems();\r\n switch (event.key) {\r\n case ' ':\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n if (this.mustCloseAfterSelectPopupItem(itemIndex, subItemIndex, subSubItemIndex)) {\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Enter':\r\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Escape':\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowUp':\r\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, -1);\r\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength - 1) % listLength);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowDown':\r\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, +1);\r\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength + 1) % listLength);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n this.closeMenu(itemIndex);\r\n this.focusItem((itemIndex + items.length - 1) % items.length);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'ArrowRight':\r\n this.closeMenu(itemIndex);\r\n this.focusItem((itemIndex + items.length + 1) % items.length);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Home':\r\n case 'PageUp':\r\n this.focusFirstSubItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'End':\r\n case 'PageDown':\r\n this.focusLastSubItem(itemIndex);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n break;\r\n\r\n case 'Tab':\r\n this.closeMenu(itemIndex);\r\n this.focusItem(itemIndex);\r\n break;\r\n\r\n default:\r\n if (this.isPrintableChar(event.key)) {\r\n this.focusSubItemByFirstChar(itemIndex, event.key);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n handlePopupMenuItemMouseOver(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n this.focusSubItem(itemIndex, subItemIndex, subSubItemIndex);\r\n }\r\n\r\n /*\r\n * Comunes\r\n */\r\n\r\n checkRequired(): void {\r\n const items = this.getItems();\r\n }\r\n\r\n\r\n activateMenuItem(itemIndex: number): void {\r\n const items = this.getItems();\r\n this.activeItemChange.emit(items[itemIndex] as MenuNavigationItem);\r\n if (items[itemIndex] instanceof MenuNavigationItemComponent) {\r\n (items[itemIndex] as MenuNavigationItemComponent).selected.emit();\r\n }\r\n }\r\n\r\n activatePopupMenuItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenuNavigationItemSubItem|MenuNavigationItemSubItemSubItem = subItems[subItemIndex]; \r\n\r\n this.itemsChange.emit(items);\r\n this.activeSubItemChange.emit(item as MenuNavigationItem);\r\n if (item instanceof MenuNavigationSubitemComponent) {\r\n item.selected.emit();\r\n }\r\n }\r\n\r\n mustCloseAfterSelectPopupItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenuNavigationItemSubItem|MenuNavigationItemSubItemSubItem = subItems[subItemIndex];\r\n\r\n return item.role !== 'menuitemcheckbox' && item.role !== 'menuitemradio';\r\n }\r\n\r\n openMenu(itemIndex: number): void {\r\n const wasOpened = this.menuData[itemIndex].open;\r\n this.menuData[itemIndex].open = true;\r\n if (wasOpened) {\r\n this.activateMenuItem(itemIndex);\r\n }\r\n }\r\n\r\n closeMenu(itemIndex?: number): void {\r\n if (itemIndex !== null && itemIndex !== undefined) {\r\n this.menuData[itemIndex].open = false;\r\n } else {\r\n this.menuData.forEach(item => item.open = false);\r\n }\r\n }\r\n\r\n hasPopupMenu(itemIndex: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n return items[itemIndex].sub && subItems && subItems.length > 0;\r\n }\r\n\r\n private isPrintableChar(str: string): boolean {\r\n return str.length === 1 && !!str.match(/\\S/);\r\n }\r\n\r\n \r\n\r\n /*\r\n * Comunes - focus\r\n */\r\n\r\n focusItem(itemIndex: number, hover?: boolean): void {\r\n const hasFocus = this.menunavigation.nativeElement.contains(document.activeElement);\r\n const isOpen = this.menuData[this.currentFocusItemIndex].open;\r\n\r\n if (!hover || hasFocus) {\r\n this.menuData[itemIndex].menuItem.link.nativeElement.focus();\r\n }\r\n\r\n this.closeMenu();\r\n if (isOpen && this.hasPopupMenu(itemIndex)) {\r\n this.openMenu(itemIndex);\r\n }\r\n\r\n this.currentFocusItemIndex = itemIndex;\r\n }\r\n\r\n focusNextAvailableItem(fromItemIndex: number, step: number): void {\r\n let nextItem = fromItemIndex;\r\n const items = this.getItems();\r\n do {\r\n nextItem = (nextItem + items.length + step) % items.length;\r\n } while (!this.isItemFocusable(nextItem) && nextItem !== fromItemIndex);\r\n\r\n if (nextItem !== fromItemIndex) {\r\n this.focusItem(nextItem);\r\n }\r\n }\r\n\r\n focusFirstItem(): void {\r\n if (this.isItemFocusable(0)) {\r\n this.focusItem(0);\r\n } else {\r\n this.focusNextAvailableItem(0, +1);\r\n }\r\n }\r\n\r\n focusLastItem(): void {\r\n const items = this.getItems();\r\n if (this.isItemFocusable(items.length - 1)) {\r\n this.focusItem(items.length - 1);\r\n } else {\r\n this.focusNextAvailableItem(items.length - 1, -1);\r\n }\r\n }\r\n\r\n isItemFocusable(itemIndex: number): boolean {\r\n return !this.getItems()[itemIndex].disabled;\r\n }\r\n\r\n focusItemByFirstChar(char: string): void {\r\n const itemContents: string[] = this.menuItems.map(menuItem => menuItem.itemContentWrapper.nativeElement.textContent);\r\n let index = this.currentFocusItemIndex;\r\n let foundIndex = -1;\r\n do {\r\n index = (index + itemContents.length + 1) % itemContents.length;\r\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\r\n && this.isItemFocusable(index)) {\r\n foundIndex = index;\r\n }\r\n } while (foundIndex === -1 && index !== this.currentFocusItemIndex);\r\n\r\n if (foundIndex >= 0) {\r\n this.focusItem(foundIndex);\r\n }\r\n }\r\n\r\n focusSubItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\r\n if (this.menuData[itemIndex].menuItem.popupMenuItems.length > 0) {\r\n const menuDataIndex = subItemIndex;\r\n this.menuData[itemIndex].currentFocusSubItemIndex = subItemIndex;\r\n this.menuData[itemIndex].currentFocusSubSubItemIndex = subSubItemIndex;\r\n const elem = this.menuData[itemIndex].menuItem.popupMenuItems.toArray()[menuDataIndex].nativeElement;\r\n if (elem) {\r\n elem.focus();\r\n } else {\r\n console.error('No subitem to focus');\r\n }\r\n } else {\r\n console.error('No subitems');\r\n }\r\n }\r\n\r\n focusNextAvailableSubItem(itemIndex: number, fromItemSubIndex: number, fromItemSubSubIndex: number, step: number): void {\r\n let nextSubIndex = fromItemSubIndex;\r\n let nextSubSubIndex = fromItemSubSubIndex;\r\n let allSubItemsChecked;\r\n const items = this.getItems();\r\n do {\r\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step);\r\n nextSubIndex = nextIndexes.subIndex;\r\n nextSubSubIndex = nextIndexes.subSubIndex;\r\n allSubItemsChecked = (fromItemSubIndex === nextSubIndex && fromItemSubSubIndex === nextSubSubIndex);\r\n } while (!this.isSubItemFocusable(itemIndex, nextSubIndex, nextSubSubIndex) && !allSubItemsChecked);\r\n\r\n if (!allSubItemsChecked) {\r\n this.focusSubItem(itemIndex, nextSubIndex, nextSubSubIndex);\r\n }\r\n }\r\n\r\n focusFirstSubItem(itemIndex: number): void {\r\n let firstSubSubItem = null;\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n if (subItems && subItems.length > 0) {\r\n firstSubSubItem = 0;\r\n }\r\n\r\n if (this.isSubItemFocusable(itemIndex, 0, firstSubSubItem)) {\r\n this.focusSubItem(itemIndex, 0, firstSubSubItem);\r\n } else {\r\n this.focusNextAvailableSubItem(itemIndex, 0, firstSubSubItem, +1);\r\n }\r\n }\r\n\r\n focusLastSubItem(itemIndex: number): void {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n const lastItemIndex = subItems.length - 1;\r\n const lastItem = subItems[lastItemIndex];\r\n let lastSubSubItem = null;\r\n\r\n if (this.isSubItemFocusable(itemIndex, lastItemIndex, lastSubSubItem)) {\r\n this.focusSubItem(itemIndex, lastItemIndex, lastSubSubItem);\r\n } else {\r\n this.focusNextAvailableSubItem(itemIndex, lastItemIndex, lastSubSubItem, -1);\r\n }\r\n }\r\n\r\n isSubItemFocusable(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\r\n const items = this.getItems();\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n let item: MenuNavigationItemSubItem|MenuNavigationItemSubItemSubItem = subItems[subItemIndex];\r\n\r\n let isFocusable = false;\r\n if (item.role !== 'separator' && item.role !== 'none') {\r\n isFocusable = true;\r\n }\r\n return isFocusable;\r\n }\r\n\r\n focusSubItemByFirstChar(itemIndex: number, char: string): void {\r\n const itemContents: string[] = this.menuItems.toArray()[itemIndex].popupMenuItems.map(menuItem => menuItem.nativeElement.textContent);\r\n let subItemIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\r\n let subSubItemIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\r\n let foundSubIndex = -1;\r\n let foundSubSubIndex = null;\r\n let allSubItemsChecked = false;\r\n const items = this.getItems();\r\n do {\r\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, subItemIndex, subSubItemIndex, +1);\r\n subItemIndex = nextIndexes.subIndex;\r\n subSubItemIndex = nextIndexes.subSubIndex;\r\n const index = subItemIndex;\r\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\r\n && this.isSubItemFocusable(itemIndex, subItemIndex, subSubItemIndex)) {\r\n foundSubIndex = subItemIndex;\r\n foundSubSubIndex = subSubItemIndex;\r\n }\r\n allSubItemsChecked = (this.menuData[itemIndex].currentFocusSubItemIndex === subItemIndex\r\n && this.menuData[itemIndex].currentFocusSubSubItemIndex === subSubItemIndex);\r\n } while (foundSubIndex === -1 && !allSubItemsChecked);\r\n\r\n if (foundSubIndex >= 0) {\r\n this.focusSubItem(itemIndex, foundSubIndex, foundSubSubIndex);\r\n }\r\n }\r\n\r\n /*\r\n * Metodos para facilitar contenido\r\n */\r\n\r\n getItems(): MenuNavigationItem[]|MenuNavigationItemComponent[] {\r\n let items;\r\n if (this.itemComponentList && this.itemComponentList.length > 0) {\r\n items = this.itemComponentList.toArray();\r\n } else {\r\n items = this.items;\r\n }\r\n return items;\r\n }\r\n\r\n getItemSubitems(item: MenuNavigationItem|MenuNavigationItemComponent): MenuNavigationItemSubItem[]|MenuNavigationSubitemComponent[] {\r\n let subItems = [];\r\n if (item instanceof MenuNavigationItemComponent){\r\n subItems = item.getSubItems();\r\n }\r\n\r\n if (!subItems || subItems.length === 0) {\r\n subItems = item.sub ? item.sub.items : [];\r\n }\r\n return subItems;\r\n }\r\n\r\n getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step): { subIndex: number, subSubIndex?: number} {\r\n const subItems = this.getItemSubitems(items[itemIndex]);\r\n\r\n let checkNextSubItem = true;\r\n if (checkNextSubItem) {\r\n nextSubIndex = (nextSubIndex + step + subItems.length) % subItems.length;\r\n } \r\n return {subIndex: nextSubIndex, subSubIndex: nextSubSubIndex};\r\n }\r\n\r\n getIdPrefix(): string {\r\n return this.idPrefix ? this.idPrefix : this.id + 'menunavigation-item';\r\n }\r\n\r\n getItemId(item, index: number): string {\r\n let id: string;\r\n if (item) {\r\n if (item.id) {\r\n id = item.id;\r\n } else {\r\n id = index === 0 ? this.getIdPrefix() : `${this.getIdPrefix()}-${index}`;\r\n }\r\n }\r\n return id;\r\n }\r\n\r\n getPopupStyle(itemIndex: number): object {\r\n let style = {};\r\n if (this.menuData && itemIndex < this.menuData.length) {\r\n const menuItem = this.menuData[itemIndex].menuItem;\r\n const rect = menuItem.link.nativeElement.getBoundingClientRect();\r\n if (this.menuData[itemIndex].open) {\r\n style = {\r\n position: 'absolute',\r\n top: '0px',\r\n left: '0px',\r\n zIndex: 100,\r\n display: 'block'\r\n };\r\n } else {\r\n style = {\r\n zIndex: 0,\r\n display: 'none'\r\n };\r\n }\r\n }\r\n\r\n return style;\r\n }\r\n\r\n getSubItemId(item, index: number, parentId: string): string {\r\n let id: string;\r\n if (item) {\r\n if (item.id) {\r\n id = item.id;\r\n } else {\r\n id = index === 0 ? `sub-${parentId}` : `sub-${parentId}-${index}`;\r\n }\r\n }\r\n return id;\r\n }\r\n \r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { DesyCommonsModule } from '../desy-commons/desy-commons.module';\r\n\r\nimport { BreadcrumbsComponent } from './components/breadcrumbs/breadcrumbs.component';\r\nimport { BreadcrumbsItemComponent } from './components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\nimport { ErrorSummaryComponent } from './components/error-summary/error-summary.component';\r\nimport { ErrorSummaryItemComponent } from './components/error-summary/error-summary-item/error-summary-item.component';\r\nimport { MenuHorizontalComponent } from './components/menu-horizontal/menu-horizontal.component';\r\nimport { MenuHorizontalItemComponent } from './components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component';\r\nimport { MenuVerticalComponent } from './components/menu-vertical/menu-vertical.component';\r\nimport { NavComponent } from './components/nav/nav.component';\r\nimport { SkipLinkComponent } from './components/skip-link/skip-link.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { HeaderSubnavComponent } from './components/header/header-subnav/header-subnav.component';\r\nimport { HeaderNavigationComponent } from './components/header/header-navigation/header-navigation.component';\r\nimport { HeaderDropdownComponent } from './components/header/header-dropdown/header-dropdown.component';\r\nimport { HeaderOffcanvasButtonComponent } from './components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component';\r\nimport { HeaderOffcanvasComponent } from './components/header/header-offcanvas/header-offcanvas.component';\r\nimport { NotificationComponent } from './components/notification/notification.component';\r\nimport { NotificationItemComponent } from './components/notification/notification-item/notification-item.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { MenubarComponent } from './components/menubar/menubar.component';\r\nimport { MenubaritemDirective } from './components/menubar/directives/menubaritem.directive';\r\nimport { MenubarItemComponent } from './components/menubar/components/menubar-item/menubar-item.component';\r\nimport { MenubarSubitemComponent } from './components/menubar/components/menubar-subitem/menubar-subitem.component';\r\nimport { MenubarSubsubitemComponent } from './components/menubar/components/menubar-subsubitem/menubar-subsubitem.component';\r\nimport { MenubarLabelComponent } from './components/menubar/components/menubar-label/menubar-label.component';\r\nimport { NavItemComponent } from './components/nav/nav-item/nav-item.component';\r\nimport { MenuVerticalItemComponent } from './components/menu-vertical/menu-vertical-item/menu-vertical-item.component';\r\nimport { MenuVerticalItemSubComponent } from './components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component';\r\nimport { MenuVerticalItemSubItemComponent } from './components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component';\r\nimport { HeaderOffcanvasCloseButtonComponent } from './components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component';\r\nimport { HeaderNavigationItemComponent } from './components/header/header-navigation/header-navigation-item/header-navigation-item.component';\r\nimport { FooterMetaComponent } from './components/footer/footer-meta/footer-meta.component';\r\nimport { FooterMetaItemComponent } from './components/footer/footer-meta/footer-meta-item/footer-meta-item.component';\r\nimport { FooterNavigationComponent } from './components/footer/footer-navigation/footer-navigation.component';\r\nimport { FooterNavigationItemComponent } from './components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component';\r\nimport { DesyButtonsModule } from '../desy-buttons/desy-buttons.module';\r\nimport { MenuNavigationComponent } from './components/menu-navigation/menu-navigation.component';\r\nimport { MenuNavigationItemComponent } from './components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component';\r\nimport { MenuNavigationSubitemComponent } from './components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component';\r\nimport { HeaderCustomNavigationComponent } from './components/header/header-custom-navigation/header-custom-navigation.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n BreadcrumbsComponent,\r\n BreadcrumbsItemComponent,\r\n ErrorSummaryComponent,\r\n ErrorSummaryItemComponent,\r\n FooterComponent,\r\n FooterMetaComponent,\r\n FooterMetaItemComponent,\r\n FooterNavigationComponent,\r\n FooterNavigationItemComponent,\r\n HeaderComponent,\r\n HeaderSubnavComponent,\r\n HeaderNavigationComponent,\r\n HeaderNavigationItemComponent,\r\n HeaderDropdownComponent,\r\n HeaderOffcanvasButtonComponent,\r\n HeaderOffcanvasComponent,\r\n HeaderOffcanvasCloseButtonComponent,\r\n MenuHorizontalComponent,\r\n MenuHorizontalItemComponent,\r\n MenuVerticalComponent,\r\n MenuVerticalItemComponent,\r\n MenuVerticalItemSubComponent,\r\n MenuVerticalItemSubItemComponent,\r\n MenubarComponent,\r\n MenubarLabelComponent,\r\n MenubarItemComponent,\r\n MenubarSubitemComponent,\r\n MenubarSubsubitemComponent,\r\n NavComponent,\r\n NotificationComponent,\r\n NotificationItemComponent,\r\n SkipLinkComponent,\r\n NavItemComponent,\r\n MenuNavigationComponent,\r\n\r\n MenubaritemDirective,\r\n\r\n MenuNavigationItemComponent,\r\n MenuNavigationSubitemComponent,\r\n HeaderCustomNavigationComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n DesyCommonsModule,\r\n DesyButtonsModule\r\n ],\r\n exports: [\r\n BreadcrumbsComponent,\r\n BreadcrumbsItemComponent,\r\n ErrorSummaryComponent,\r\n ErrorSummaryItemComponent,\r\n FooterComponent,\r\n FooterMetaComponent,\r\n FooterMetaItemComponent,\r\n FooterNavigationComponent,\r\n FooterNavigationItemComponent,\r\n HeaderComponent,\r\n HeaderSubnavComponent,\r\n HeaderNavigationComponent,\r\n HeaderNavigationItemComponent,\r\n HeaderDropdownComponent,\r\n HeaderOffcanvasComponent,\r\n HeaderOffcanvasButtonComponent,\r\n HeaderOffcanvasCloseButtonComponent,\r\n MenuHorizontalComponent,\r\n MenuHorizontalItemComponent,\r\n MenuVerticalComponent,\r\n MenuVerticalItemComponent,\r\n MenuVerticalItemSubComponent,\r\n MenuVerticalItemSubItemComponent,\r\n MenubarComponent,\r\n MenubarLabelComponent,\r\n MenubarItemComponent,\r\n MenubarSubitemComponent,\r\n MenubarSubsubitemComponent,\r\n NavComponent,\r\n NotificationComponent,\r\n NotificationItemComponent,\r\n NavItemComponent,\r\n SkipLinkComponent,\r\n MenuNavigationComponent,\r\n MenuNavigationSubitemComponent,\r\n MenuNavigationItemComponent,\r\n MenuNavigationSubitemComponent,\r\n HeaderCustomNavigationComponent\r\n ]\r\n})\r\nexport class DesyNavModule { }\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[desyFocusClickedCell]'\r\n})\r\nexport class FocusClickedCellDirective {\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n @HostListener('click')\r\n onClick(): void {\r\n const hostElem = this.el.nativeElement; // la tabla - offsetParent\r\n const elemntsFocus = hostElem.offsetParent.querySelectorAll('[tabindex]'); // buscamos todos que pueden tener tabindex\r\n for (const iterator of elemntsFocus) {\r\n iterator.setAttribute('tabindex', '-1'); // se les quita\r\n }\r\n this.activeTabindex();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n manageArrows(event): void {\r\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp' || event.code === 'ArrowRight' || event.code === 'ArrowLeft'){\r\n let next = null;\r\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp'){\r\n let tr = null;\r\n if (event.code === 'ArrowDown') {\r\n tr = this.el.nativeElement.parentNode.nextElementSibling;\r\n } else if (event.code === 'ArrowUp') {\r\n tr = this.el.nativeElement.parentNode.previousElementSibling;\r\n }\r\n\r\n next = tr ? tr.children[this.findIndex()] : null;\r\n event.preventDefault();\r\n }\r\n\r\n if (event.code === 'ArrowRight' || event.code === 'ArrowLeft') {\r\n next = this.el.nativeElement;\r\n do {\r\n if (event.code === 'ArrowRight') {\r\n next = next.nextElementSibling;\r\n } else if (event.code === 'ArrowLeft') {\r\n next = next.previousElementSibling;\r\n }\r\n } while (next && !next.getAttribute('tabindex'));\r\n }\r\n\r\n if (next && next.getAttribute('tabindex')){\r\n this.inactiveTabindex();\r\n next.setAttribute('tabindex', '0');\r\n next.focus();\r\n }\r\n }\r\n }\r\n\r\n private activeTabindex(): void {\r\n this.el.nativeElement.setAttribute('tabindex', '0');\r\n }\r\n\r\n private inactiveTabindex(): void {\r\n this.el.nativeElement.setAttribute('tabindex', '-1');\r\n }\r\n\r\n private findIndex(): number {\r\n const mynode = this.el.nativeElement;\r\n const parentNode = this.el.nativeElement.parentNode;\r\n let index = -1;\r\n for (let i = 0; i < parentNode.children.length; i++) {\r\n const otherNode = parentNode.children[i];\r\n if (mynode.isEqualNode(otherNode)){\r\n index = i;\r\n break;\r\n }\r\n }\r\n return index;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { DesyFormsModule } from '../desy-forms/desy-forms.module';\r\n\r\nimport { TableComponent } from './components/table/table.component';\r\nimport { TableAdvancedComponent } from './components/table-advanced/table-advanced.component';\r\nimport { FocusClickedCellDirective } from './directives/focus-clicked-cell.directive';\r\nimport { TableCellComponent } from './components/table/components/table-cell.component';\r\nimport { TableHeaderComponent } from './components/table/components/table-header.component';\r\nimport { TableRowComponent } from './components/table/components/table-row.component';\r\nimport { TableCaptionComponent } from './components/table/components/table-caption.component';\r\nimport { TableAdvancedHeaderComponent } from './components/table-advanced/components/table-advanced-header.component';\r\nimport { TableAdvancedHeaderCellComponent } from './components/table-advanced/components/table-advanced-header-cell.component';\r\nimport { TableAdvancedRowComponent } from './components/table-advanced/components/table-advanced-row.component';\r\nimport { CellDirective } from './directives/cell.directive';\r\nimport { RowDirective } from './directives/row.directive';\r\nimport {TableAdvancedRowCellComponent} from './components/table-advanced/components/table-advanced-row-cell.component';\r\nimport { TableAdvancedSelectComponent } from './components/table-advanced/components/table-advanced-select.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TableComponent,\r\n TableCaptionComponent,\r\n TableCellComponent,\r\n TableHeaderComponent,\r\n TableRowComponent,\r\n TableAdvancedComponent,\r\n TableAdvancedHeaderComponent,\r\n TableAdvancedHeaderCellComponent,\r\n TableAdvancedRowComponent,\r\n TableAdvancedRowCellComponent,\r\n TableAdvancedSelectComponent,\r\n\r\n FocusClickedCellDirective,\r\n CellDirective,\r\n RowDirective,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n A11yModule,\r\n SharedModule,\r\n DesyFormsModule\r\n ],\r\n exports: [\r\n TableComponent,\r\n TableCaptionComponent,\r\n TableCellComponent,\r\n TableHeaderComponent,\r\n TableRowComponent,\r\n TableAdvancedComponent,\r\n TableAdvancedHeaderComponent,\r\n TableAdvancedHeaderCellComponent,\r\n TableAdvancedRowComponent,\r\n TableAdvancedRowCellComponent,\r\n TableAdvancedSelectComponent\r\n ]\r\n})\r\nexport class DesyTablesModule { }\r\n","import { PaginationItemPerPageComponent } from './components/pagination-item-perpage/pagination-item-perpage.component';\r\nimport { PaginationListboxLabelComponent } from './components/pagination-listbox-label/pagination-listbox-label.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { DesyNavModule } from '../desy-nav/desy-nav.module';\r\nimport { DesyButtonsModule } from '../desy-buttons/desy-buttons.module';\r\n\r\nimport { PaginationComponent } from './components/pagination/pagination.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PaginationComponent, \r\n PaginationListboxLabelComponent,\r\n PaginationItemPerPageComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n DesyNavModule,\r\n DesyButtonsModule\r\n ],\r\n exports: [\r\n PaginationComponent, \r\n PaginationListboxLabelComponent,\r\n PaginationItemPerPageComponent\r\n ]\r\n})\r\nexport class DesyPaginationModule { }\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { DesyButtonsModule } from './desy-buttons/desy-buttons.module';\r\nimport { DesyFormsModule } from './desy-forms/desy-forms.module';\r\nimport { DesyModalsModule } from './desy-modals/desy-modals.module';\r\nimport { DesyNavModule } from './desy-nav/desy-nav.module';\r\nimport { DesyTablesModule } from './desy-tables/desy-tables.module';\r\nimport { DesyViewsModule } from './desy-views/desy-views.module';\r\nimport { DesyPaginationModule } from './desy-pagination/desy-pagination.module';\r\nimport { DesyCommonsModule } from './desy-commons/desy-commons.module';\r\n\r\n@NgModule({\r\n imports: [\r\n DesyButtonsModule,\r\n DesyCommonsModule,\r\n DesyFormsModule,\r\n DesyModalsModule,\r\n DesyNavModule,\r\n DesyTablesModule,\r\n DesyViewsModule,\r\n DesyPaginationModule,\r\n DesyCommonsModule,\r\n ],\r\n exports: [\r\n DesyButtonsModule,\r\n DesyCommonsModule,\r\n DesyFormsModule,\r\n DesyModalsModule,\r\n DesyNavModule,\r\n DesyTablesModule,\r\n DesyViewsModule,\r\n DesyPaginationModule,\r\n DesyCommonsModule,\r\n ]\r\n})\r\nexport class DesyAngularModule { }\r\n","\r\n/*\r\n * Public API Surface of desy-angular\r\n */\r\n\r\n// componentes desy-button\r\nexport * from './lib/desy-buttons/components/button/button.component';\r\nexport * from './lib/desy-buttons/components/button-loader/button-loader.component';\r\nexport * from './lib/desy-buttons/components/dropdown/dropdown.component';\r\nexport * from './lib/desy-buttons/components/listbox/listbox.component';\r\nexport * from './lib/desy-buttons/components/pill/pill.component';\r\n// interfaces desy-button\r\nexport * from './lib/desy-buttons/interfaces/listbox-label-data';\r\nexport * from './lib/desy-buttons/interfaces/listbox-item-data';\r\n// subcomponentes desy-button\r\nexport * from './lib/desy-buttons/components/listbox/listbox-label/listbox-label.component';\r\nexport * from './lib/desy-buttons/components/listbox/listbox-item/listbox-item.component';\r\n\r\n// componentes desy-commons\r\nexport * from './lib/desy-commons/components/content/content.component';\r\nexport * from './lib/desy-commons/components/description/description.component';\r\nexport * from './lib/desy-commons/components/icon/icon.component';\r\nexport * from './lib/desy-commons/components/title/title.component';\r\n// interfaces desy-commons\r\nexport * from './lib/desy-commons/interfaces';\r\n\r\n// componentes desy-forms\r\nexport * from './lib/desy-forms/components/hint/hint.component';\r\nexport * from './lib/desy-forms/components/label/label.component';\r\nexport * from './lib/desy-forms/components/error-message/error-message.component';\r\nexport * from './lib/desy-forms/components/fieldset/fieldset.component';\r\nexport * from './lib/desy-forms/components/fieldset/legend/legend.component';\r\nexport * from './lib/desy-forms/components/textarea/textarea.component';\r\nexport * from './lib/desy-forms/components/character-count/character-count.component';\r\nexport * from './lib/desy-forms/components/input/input.component';\r\nexport * from './lib/desy-forms/components/select/select.component';\r\nexport * from './lib/desy-forms/components/file-upload/file-upload.component';\r\nexport * from './lib/desy-forms/components/input-group/input-group.component';\r\nexport * from './lib/desy-forms/components/radios/radios.component';\r\nexport * from './lib/desy-forms/components/checkboxes/checkboxes.component';\r\nexport * from './lib/desy-forms/components/date-input/date-input.component';\r\nexport * from './lib/desy-forms/components/search-bar/search-bar.component';\r\nexport * from './lib/desy-forms/components/tree/tree.component';\r\n// directivas desy-froms\r\nexport * from './lib/desy-forms/directives/condition.directive';\r\n// interfaces desy-forms\r\nexport * from './lib/desy-forms/interfaces/legend-data';\r\nexport * from './lib/desy-forms/interfaces/error-message-data';\r\nexport * from './lib/desy-forms/interfaces/fieldset-data';\r\nexport * from './lib/desy-forms/interfaces/hint-data';\r\nexport * from './lib/desy-forms/interfaces/item-date-input-data';\r\nexport * from './lib/desy-forms/interfaces/item-input-group-data';\r\nexport * from './lib/desy-forms/interfaces/item-divider-input-group-data';\r\nexport * from './lib/desy-forms/interfaces/item-radio-data';\r\nexport * from './lib/desy-forms/interfaces/item-checkbox-data';\r\nexport * from './lib/desy-forms/interfaces/label-data';\r\nexport * from './lib/desy-forms/interfaces/select-item-data';\r\n// sub-componentes desy-forms\r\nexport * from './lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component';\r\nexport * from './lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component';\r\nexport * from './lib/desy-forms/components/input-group/input-group-input/input-group-input.component';\r\nexport * from './lib/desy-forms/components/input-group/input-group-select/input-group-select.component';\r\nexport * from './lib/desy-forms/components/radios/radio-item/radio-item.component';\r\nexport * from './lib/desy-forms/components/select/option/option.component';\r\nexport * from './lib/desy-forms/components/select/option-group/option-group.component';\r\nexport * from './lib/desy-forms/components/tree/tree-sub/tree-sub.component';\r\nexport * from './lib/desy-forms/components/tree/tree-item/tree-item.component';\r\nexport * from './lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component';\r\n\r\n// componentes desy-modals\r\nexport * from './lib/desy-modals/components/modal/modal.component';\r\nexport * from './lib/desy-modals/components/dialog/dialog.component';\r\n// interfaces desy-modals\r\nexport * from './lib/desy-modals/interfaces/modal-icon-data';\r\nexport * from './lib/desy-modals/interfaces/modal-button-data';\r\nexport * from './lib/desy-modals/interfaces/modal-data';\r\nexport * from './lib/desy-modals/interfaces/dialog-options';\r\nexport * from './lib/desy-modals/interfaces/modal-options';\r\nexport * from './lib/desy-modals/interfaces/open-dialog-result';\r\n// servicios desy-modals\r\nexport * from './lib/desy-modals/services/dialog.service';\r\n// sub-componentes desy-modals\r\nexport * from './lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component';\r\nexport * from './lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component';\r\n\r\n// componentes desy-nav\r\nexport * from './lib/desy-nav/components/breadcrumbs/breadcrumbs.component';\r\nexport * from './lib/desy-nav/components/header/header.component';\r\nexport * from './lib/desy-nav/components/footer/footer.component';\r\nexport * from './lib/desy-nav/components/error-summary/error-summary.component';\r\nexport * from './lib/desy-nav/components/menu-horizontal/menu-horizontal.component';\r\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical.component';\r\nexport * from './lib/desy-nav/components/menubar/menubar.component';\r\nexport * from './lib/desy-nav/components/nav/nav.component';\r\nexport * from './lib/desy-nav/components/notification/notification.component';\r\nexport * from './lib/desy-nav/components/skip-link/skip-link.component';\r\n// interfaces desy-nav\r\nexport * from './lib/desy-nav/interfaces/breadcrumbs.data';\r\nexport * from './lib/desy-nav/interfaces/error-summary-data';\r\nexport * from './lib/desy-nav/interfaces/footer-data';\r\nexport * from './lib/desy-nav/interfaces/header-dropdown-data';\r\nexport * from './lib/desy-nav/interfaces/header-navigation-data';\r\nexport * from './lib/desy-nav/interfaces/header-navigation-item-data';\r\nexport * from './lib/desy-nav/interfaces/header-offcanvas-data';\r\nexport * from './lib/desy-nav/interfaces/header-subnav-data';\r\nexport * from './lib/desy-nav/interfaces/menu-horizontal-item-data';\r\nexport * from './lib/desy-nav/interfaces/menu-horizontal-item-event-data';\r\nexport * from './lib/desy-nav/interfaces/menu-vertical-items-data';\r\nexport * from './lib/desy-nav/interfaces/menu-vertical-sub-data';\r\nexport * from './lib/desy-nav/interfaces/menu-vertical-sub-items-data';\r\nexport * from './lib/desy-nav/interfaces/menubar-item';\r\nexport * from './lib/desy-nav/interfaces/menubar-item-sub';\r\nexport * from './lib/desy-nav/interfaces/menubar-item-sub-item';\r\nexport * from './lib/desy-nav/interfaces/menubar-item-sub-item-sub-item';\r\nexport * from './lib/desy-nav/interfaces/nav-item.data';\r\nexport * from './lib/desy-nav/interfaces/nav-item-event.data';\r\nexport * from './lib/desy-nav/interfaces/notification-items-data';\r\nexport * from './lib/desy-nav/interfaces/notification-options';\r\n// subcomponentes desy-nav\r\nexport * from './lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\nexport * from './lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component';\r\nexport * from './lib/desy-nav/components/footer/footer-meta/footer-meta.component';\r\nexport * from './lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component';\r\nexport * from './lib/desy-nav/components/footer/footer-navigation/footer-navigation.component';\r\nexport * from './lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component';\r\nexport * from './lib/desy-nav/components/header/header-dropdown/header-dropdown.component';\r\nexport * from './lib/desy-nav/components/header/header-navigation/header-navigation.component';\r\nexport * from './lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component';\r\nexport * from './lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component';\r\nexport * from './lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component';\r\nexport * from './lib/desy-nav/components/header/header-subnav/header-subnav.component';\r\nexport * from './lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component';\r\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component';\r\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component';\r\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component';\r\nexport * from './lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component';\r\nexport * from './lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component';\r\nexport * from './lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component';\r\nexport * from './lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component';\r\nexport * from './lib/desy-nav/components/nav/nav-item/nav-item.component';\r\nexport * from './lib/desy-nav/components/notification/notification-item/notification-item.component';\r\n\r\n// componentes desy-tables\r\nexport * from './lib/desy-tables/components/table/table.component';\r\nexport * from './lib/desy-tables/components/table-advanced/table-advanced.component';\r\n// interfaces desy-tables\r\nexport * from './lib/desy-tables/interfaces/head-cell-data';\r\nexport * from './lib/desy-tables/interfaces/cell-data';\r\nexport * from './lib/desy-tables/interfaces/row-data';\r\nexport * from './lib/desy-tables/interfaces/recalculate-table-params';\r\nexport * from './lib/desy-tables/interfaces/wrapper-data';\r\n// subcomponentes desy-tables\r\nexport * from './lib/desy-tables/components/table/components/table-cell.component';\r\nexport * from './lib/desy-tables/components/table/components/table-caption.component';\r\nexport * from './lib/desy-tables/components/table/components/table-header.component';\r\nexport * from './lib/desy-tables/components/table/components/table-row.component';\r\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-header.component';\r\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component';\r\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-row.component';\r\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component';\r\n\r\n// componentes desy-views\r\nexport * from './lib/desy-views/components/alert/alert.component';\r\nexport * from './lib/desy-views/components/accordion/accordion.component';\r\nexport * from './lib/desy-views/components/accordion-history/accordion-history.component';\r\nexport * from './lib/desy-views/components/spinner/spinner.component';\r\nexport * from './lib/desy-views/components/details/details.component';\r\nexport * from './lib/desy-views/components/description-list/description-list.component';\r\nexport * from './lib/desy-views/components/collapsible/collapsible.component';\r\nexport * from './lib/desy-views/components/item/item.component';\r\nexport * from './lib/desy-views/components/media-object/media-object.component';\r\nexport * from './lib/desy-views/components/status/status.component';\r\nexport * from './lib/desy-views/components/status-item/status-item.component';\r\nexport * from './lib/desy-views/components/tabs/tabs.component';\r\n// interfaces desy-views\r\nexport * from './lib/desy-views/interfaces';\r\n// servicios desy-views\r\nexport * from './lib/desy-views/services/alert.service';\r\n// subcomponentes desy-views\r\nexport * from './lib/desy-views/components/accordion/accordion-header/accordion-header.component';\r\nexport * from './lib/desy-views/components/accordion/accordion-item/accordion-item.component';\r\nexport * from './lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component';\r\nexport * from './lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component';\r\nexport * from './lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component';\r\nexport * from './lib/desy-views/components/description-list/definition/definition.component';\r\nexport * from './lib/desy-views/components/description-list/description-item/description-item.component';\r\nexport * from './lib/desy-views/components/item/item-content-bottom/item-content-bottom.component';\r\nexport * from './lib/desy-views/components/item/item-content-right/item-content-right.component';\r\nexport * from './lib/desy-views/components/item/item-item/item-item.component';\r\nexport * from './lib/desy-views/components/description-list/term/term.component';\r\nexport * from './lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component';\r\n\r\n// components desy-pagination\r\nexport * from './lib/desy-pagination/components/pagination/pagination.component';\r\nexport * from './lib/desy-pagination/interfaces/pagination-item.data';\r\n\r\n// modules\r\nexport * from './lib/desy-buttons/desy-buttons.module';\r\nexport * from './lib/desy-commons/desy-commons.module';\r\nexport * from './lib/desy-forms/desy-forms.module';\r\nexport * from './lib/desy-modals/desy-modals.module';\r\nexport * from './lib/desy-nav/desy-nav.module';\r\nexport * from './lib/desy-tables/desy-tables.module';\r\nexport * from './lib/desy-views/desy-views.module';\r\nexport * from './lib/desy-pagination/desy-pagination.module';\r\nexport * from './lib/desy-angular.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ToggleOffStateComponent as ɵbd} from './lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component';\nexport {ToggleOnStateComponent as ɵbc} from './lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component';\nexport {ToggleComponent as ɵbb} from './lib/desy-buttons/components/toggle/toggle.component';\nexport {DividerComponent as ɵbu} from './lib/desy-commons/components/divider/divider.component';\nexport {DateInputDayComponent as ɵbr} from './lib/desy-forms/components/date-input/date-input-day/date-input-day.component';\nexport {DateInputDividerComponent as ɵbq} from './lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component';\nexport {DateInputItemComponent as ɵj} from './lib/desy-forms/components/date-input/date-input-item/date-input-item.component';\nexport {DateInputMonthComponent as ɵbs} from './lib/desy-forms/components/date-input/date-input-month/date-input-month.component';\nexport {DateInputYearComponent as ɵbt} from './lib/desy-forms/components/date-input/date-input-year/date-input-year.component';\nexport {FormFieldComponent as ɵf} from './lib/desy-forms/components/form-field/form-field.component';\nexport {InputGroupItemComponent as ɵi} from './lib/desy-forms/components/input-group/input-group-item/input-group-item.component';\nexport {SelectItemComponent as ɵg} from './lib/desy-forms/components/select/select-item/select-item.component';\nexport {TemplateDrivenWrapperComponent as ɵbp} from './lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component';\nexport {ITreeItem as ɵk} from './lib/desy-forms/components/tree/interfaces/itree-item';\nexport {TreeCheckboxComponent as ɵl} from './lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component';\nexport {ModalButtonLoaderPrimaryComponent as ɵm} from './lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component';\nexport {ModalButtonLoaderSecondaryComponent as ɵn} from './lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component';\nexport {HeaderCustomNavigationComponent as ɵo} from './lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component';\nexport {HeaderNavigationItemComponent as ɵp} from './lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component';\nexport {MenuNavigationItemComponent as ɵbw} from './lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component';\nexport {MenuNavigationSubitemComponent as ɵbx} from './lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component';\nexport {MenuNavigationComponent as ɵbv} from './lib/desy-nav/components/menu-navigation/menu-navigation.component';\nexport {MenubaritemDirective as ɵq} from './lib/desy-nav/components/menubar/directives/menubaritem.directive';\nexport {PaginationItemPerPageComponent as ɵba} from './lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component';\nexport {PaginationListboxLabelComponent as ɵx} from './lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component';\nexport {TableAdvancedSelectComponent as ɵr} from './lib/desy-tables/components/table-advanced/components/table-advanced-select.component';\nexport {CellDirective as ɵt} from './lib/desy-tables/directives/cell.directive';\nexport {FocusClickedCellDirective as ɵby} from './lib/desy-tables/directives/focus-clicked-cell.directive';\nexport {RowDirective as ɵs} from './lib/desy-tables/directives/row.directive';\nexport {MediaObjectFigureComponent as ɵu} from './lib/desy-views/components/media-object/media-object-figure/media-object-figure.component';\nexport {PanelComponent as ɵw} from './lib/desy-views/components/tabs/panel/panel.component';\nexport {TabItemComponent as ɵv} from './lib/desy-views/components/tabs/tab-item/tab-item.component';\nexport {TooltipComponent as ɵbo} from './lib/desy-views/components/tooltip/tooltip.component';\nexport {AccessibilityAndContentRequiredComponent as ɵb,AccessibilityAndTextOrHtmlRequiredComponent as ɵc,AccessibilityComponent as ɵe,ContentBaseComponent as ɵa,TextOrHtmlRequiredComponent as ɵbf} from './lib/shared/components';\nexport {AccessibilityComponent as ɵz} from './lib/shared/components/accessibility/accessibility.component';\nexport {ContentBaseComponent as ɵy} from './lib/shared/components/content-base/content-base.component';\nexport {DesyContentChild as ɵd} from './lib/shared/decorators/desy-content-child.decorator';\nexport {DesyOnInputChange as ɵh} from './lib/shared/decorators/desy-on-input-change.decorator';\nexport {AttributeChangeDirective as ɵbj} from './lib/shared/directives/attribute-change.directive';\nexport {ClickOutsideDirective as ɵbl} from './lib/shared/directives/click-outside.directive';\nexport {ContentChangeDirective as ɵbm} from './lib/shared/directives/content-change.directive';\nexport {CustomInnerContentDirective as ɵbn} from './lib/shared/directives/custom-inner-content.directive';\nexport {InnerContentDirective as ɵbk} from './lib/shared/directives/inner-content.directive';\nexport {ExternalHrefPipe as ɵbi} from './lib/shared/pipes/external-href.pipe';\nexport {InnerHtmlPipe as ɵbg} from './lib/shared/pipes/inner-html.pipe';\nexport {MakeHtmlListPipe as ɵbh} from './lib/shared/pipes/make-html-list.pipe';\nexport {SharedModule as ɵbe} from './lib/shared/shared.module';"],"names":["Component","Input","ViewChild","EventEmitter","HostBinding","Output","ElementRef","QueryList","ViewChildren","ContentChildren","ChangeDetectorRef","HostListener","NG_VALUE_ACCESSOR","forwardRef","Pipe","ControlContainer","Optional","trigger","state","style","transition","animate","query","animateChild","Host","Directive","TemplateRef","ChangeDetectionStrategy","ViewContainerRef","ConfigurableFocusTrapFactory","ComponentFactoryResolver","Type","ComponentRef","Injectable","Injector","ApplicationRef","Location","ContentChild","OrderBy","SecurityContext","DomSanitizer","NgModule","CommonModule","RouterModule","NgForm","NgxTippyModule","FormsModule","ReactiveFormsModule","A11yModule"],"mappings":"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,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAE7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;g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"}