accordion-registry.service.mjs 4.4 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(accordionId, itemId) {
  17. const accordionObject = this.accordions.get(accordionId);
  18. return accordionObject.accordionItems.find(item => item.id === itemId);
  19. }
  20. openItem(accordionId, itemId) {
  21. this.getItem(accordionId, itemId)?.isOpen.next(true);
  22. }
  23. closeItem(accordionId, itemId) {
  24. this.getItem(accordionId, itemId)?.isOpen.next(false);
  25. }
  26. static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: AccordionRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
  27. static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: AccordionRegistryService, providedIn: 'any' }); }
  28. }
  29. i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: AccordionRegistryService, decorators: [{
  30. type: Injectable,
  31. args: [{ providedIn: 'any' }]
  32. }] });
  33. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXJlZ2lzdHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaXJjbGV0b25lL3NyYy9saWIvc2VydmljZXMvYWNjb3JkaW9uLXJlZ2lzdHJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLHdCQUF3QjtJQURyQztRQUVVLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztLQTBCNUQ7SUF4QkMsUUFBUSxDQUFDLEVBQVUsRUFBRSxPQUEyQjtRQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELEdBQUcsQ0FBQyxFQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQVU7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxXQUFtQixFQUFFLE1BQWM7UUFDekMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUF1QixDQUFDO1FBQy9FLE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBMkIsQ0FBQztJQUNuRyxDQUFDO0lBRUQsUUFBUSxDQUFDLFdBQW1CLEVBQUUsTUFBYztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxTQUFTLENBQUMsV0FBbUIsRUFBRSxNQUFjO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0ExQlUsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FEWCxLQUFLOzsyRkFDbEIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEFjY29yZGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ2FueScgfSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25SZWdpc3RyeVNlcnZpY2Uge1xuICBwcml2YXRlIGFjY29yZGlvbnMgPSBuZXcgTWFwPHN0cmluZywgQWNjb3JkaW9uQ29tcG9uZW50PigpO1xuXG4gIHJlZ2lzdGVyKGlkOiBzdHJpbmcsIGVsZW1lbnQ6IEFjY29yZGlvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMuYWNjb3JkaW9ucy5zZXQoaWQsIGVsZW1lbnQpO1xuICB9XG5cbiAgZ2V0KGlkOiBzdHJpbmcpOiBBY2NvcmRpb25Db21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbnMuZ2V0KGlkKTtcbiAgfVxuXG4gIHVucmVnaXN0ZXIoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYWNjb3JkaW9ucy5kZWxldGUoaWQpO1xuICB9XG5cbiAgZ2V0SXRlbShhY2NvcmRpb25JZDogc3RyaW5nLCBpdGVtSWQ6IHN0cmluZyk6IEFjY29yZGlvbkl0ZW1Db21wb25lbnQge1xuICAgIGNvbnN0IGFjY29yZGlvbk9iamVjdCA9IHRoaXMuYWNjb3JkaW9ucy5nZXQoYWNjb3JkaW9uSWQpIGFzIEFjY29yZGlvbkNvbXBvbmVudDtcbiAgICByZXR1cm4gYWNjb3JkaW9uT2JqZWN0LmFjY29yZGlvbkl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBpdGVtSWQpIGFzIEFjY29yZGlvbkl0ZW1Db21wb25lbnQ7XG4gIH1cblxuICBvcGVuSXRlbShhY2NvcmRpb25JZDogc3RyaW5nLCBpdGVtSWQ6IHN0cmluZykge1xuICAgIHRoaXMuZ2V0SXRlbShhY2NvcmRpb25JZCwgaXRlbUlkKT8uaXNPcGVuLm5leHQodHJ1ZSk7XG4gIH1cblxuICBjbG9zZUl0ZW0oYWNjb3JkaW9uSWQ6IHN0cmluZywgaXRlbUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmdldEl0ZW0oYWNjb3JkaW9uSWQsIGl0ZW1JZCk/LmlzT3Blbi5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIl19