accordion-registry.service.mjs 4.3 KB

123456789101112131415161718192021222324252627282930313233
  1. import { Injectable } from '@angular/core';
  2. import * as i0 from "@angular/core";
  3. export class AccordionRegistryService {
  4. constructor() {
  5. this.accordions = new Map();
  6. }
  7. register(id, element) {
  8. this.accordions.set(id, element);
  9. }
  10. get(id) {
  11. return this.accordions.get(id);
  12. }
  13. unregister(id) {
  14. this.accordions.delete(id);
  15. }
  16. getItem(accordion, itemId) {
  17. const accordionObject = this.accordions.get(accordion);
  18. return accordionObject.accordionItems.find(item => item.id === itemId);
  19. }
  20. openItem(accordion, itemId) {
  21. this.accordions
  22. .get(accordion)
  23. ?.accordionItems.find(item => item.id === itemId)
  24. ?.isOpen.next(true);
  25. }
  26. static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AccordionRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
  27. static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AccordionRegistryService, providedIn: 'any' }); }
  28. }
  29. i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AccordionRegistryService, decorators: [{
  30. type: Injectable,
  31. args: [{ providedIn: 'any' }]
  32. }] });
  33. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXJlZ2lzdHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaXJjbGV0b25lL3NyYy9saWIvc2VydmljZXMvYWNjb3JkaW9uLXJlZ2lzdHJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLHdCQUF3QjtJQURyQztRQUVVLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztLQXlCNUQ7SUF2QkMsUUFBUSxDQUFDLEVBQVUsRUFBRSxPQUEyQjtRQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELEdBQUcsQ0FBQyxFQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQVU7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxTQUFpQixFQUFFLE1BQWM7UUFDdkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUF1QixDQUFDO1FBQzdFLE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBMkIsQ0FBQztJQUNuRyxDQUFDO0lBRUQsUUFBUSxDQUFDLFNBQWlCLEVBQUUsTUFBYztRQUN4QyxJQUFJLENBQUMsVUFBVTthQUNaLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDZixFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQztZQUNqRCxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQzs4R0F6QlUsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FEWCxLQUFLOzsyRkFDbEIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEFjY29yZGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ2FueScgfSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25SZWdpc3RyeVNlcnZpY2Uge1xuICBwcml2YXRlIGFjY29yZGlvbnMgPSBuZXcgTWFwPHN0cmluZywgQWNjb3JkaW9uQ29tcG9uZW50PigpO1xuXG4gIHJlZ2lzdGVyKGlkOiBzdHJpbmcsIGVsZW1lbnQ6IEFjY29yZGlvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMuYWNjb3JkaW9ucy5zZXQoaWQsIGVsZW1lbnQpO1xuICB9XG5cbiAgZ2V0KGlkOiBzdHJpbmcpOiBBY2NvcmRpb25Db21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbnMuZ2V0KGlkKTtcbiAgfVxuXG4gIHVucmVnaXN0ZXIoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYWNjb3JkaW9ucy5kZWxldGUoaWQpO1xuICB9XG5cbiAgZ2V0SXRlbShhY2NvcmRpb246IHN0cmluZywgaXRlbUlkOiBzdHJpbmcpOiBBY2NvcmRpb25JdGVtQ29tcG9uZW50IHtcbiAgICBjb25zdCBhY2NvcmRpb25PYmplY3QgPSB0aGlzLmFjY29yZGlvbnMuZ2V0KGFjY29yZGlvbikgYXMgQWNjb3JkaW9uQ29tcG9uZW50O1xuICAgIHJldHVybiBhY2NvcmRpb25PYmplY3QuYWNjb3JkaW9uSXRlbXMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGl0ZW1JZCkgYXMgQWNjb3JkaW9uSXRlbUNvbXBvbmVudDtcbiAgfVxuXG4gIG9wZW5JdGVtKGFjY29yZGlvbjogc3RyaW5nLCBpdGVtSWQ6IHN0cmluZykge1xuICAgIHRoaXMuYWNjb3JkaW9uc1xuICAgICAgLmdldChhY2NvcmRpb24pXG4gICAgICA/LmFjY29yZGlvbkl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBpdGVtSWQpXG4gICAgICA/LmlzT3Blbi5uZXh0KHRydWUpO1xuICB9XG59XG4iXX0=