{"version":3,"file":"ngx-dummy-accordion-simple.mjs","sources":["../../../../projects/@ngx-dummy/accordion-simple/src/lib/accordion-open.service.ts","../../../../projects/@ngx-dummy/accordion-simple/src/lib/animations.ts","../../../../projects/@ngx-dummy/accordion-simple/src/lib/settings/IToggler.ts","../../../../projects/@ngx-dummy/accordion-simple/src/lib/settings/helpers.ts","../../../../projects/@ngx-dummy/accordion-simple/src/lib/settings/index.ts","../../../../projects/@ngx-dummy/accordion-simple/src/lib/theming/icons-base.ts","../../../../projects/@ngx-dummy/accordion-simple/src/lib/accordion-item-img.directive.ts","../../../../projects/@ngx-dummy/accordion-simple/src/lib/accordion-item.component.ts","../../../../projects/@ngx-dummy/accordion-simple/src/lib/accordion-item.component.html","../../../../projects/@ngx-dummy/accordion-simple/src/lib/accordion-item.directive.ts","../../../../projects/@ngx-dummy/accordion-simple/src/lib/accordion.component.ts","../../../../projects/@ngx-dummy/accordion-simple/src/lib/accordion.component.html","../../../../projects/@ngx-dummy/accordion-simple/src/lib/accordion.module.ts","../../../../projects/@ngx-dummy/accordion-simple/src/public-api.ts","../../../../projects/@ngx-dummy/accordion-simple/src/ngx-dummy-accordion-simple.ts"],"sourcesContent":["/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\nimport { Injectable, Inject, InjectionToken } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { IToggler } from './settings/';\n\nexport function iniTogglerFn() {\n\treturn [] as IToggler[];\n}\n\nexport const INI_STATE = new InjectionToken<IToggler[]>('Accordion Initial Items Open state provider token', { factory: iniTogglerFn });\n\n@Injectable()\nexport class AccordionOpenService extends BehaviorSubject<IToggler[]> {\n\tconstructor(@Inject(INI_STATE) iniState: IToggler[] = []) {\n\t\tsuper(iniState);\n\t}\n\n\tget itemsOpen$() {\n\t\treturn this.asObservable();\n\t}\n\tget itemsOpenSnapshot() {\n\t\treturn this.value;\n\t}\n\n\tsetItemsOpen = (itemsStats: IToggler[]) => this.next(itemsStats);\n\n\tclose = () => {\n\t\tthis.complete();\n\t\tsuper.unsubscribe();\n\t};\n}\n","/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\nimport { trigger, query, stagger, transition, animate, style, keyframes, state, AnimationTriggerMetadata } from '@angular/animations';\nexport { AnimationEvent as NgAnimationEvent } from '@angular/animations';\n\nexport const accordionAnimations: {\n\treadonly accordItemsIn: AnimationTriggerMetadata;\n\treadonly spinnerIn: AnimationTriggerMetadata;\n} = {\n\taccordItemsIn: trigger('accordItemsIn', [\n\t\ttransition('* => *', [\n\t\t\tquery(\n\t\t\t\t':leave',\n\t\t\t\t[\n\t\t\t\t\tstagger(-25, [\n\t\t\t\t\t\tanimate(\n\t\t\t\t\t\t\t'.3s',\n\t\t\t\t\t\t\tstyle({\n\t\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\t\ttransform: 'scale(0.7, 0.7) translateY(-3rem)',\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t],\n\t\t\t\t{ optional: true }\n\t\t\t),\n\t\t\tquery(\n\t\t\t\t':enter',\n\t\t\t\t[\n\t\t\t\t\tstyle({ opacity: 0, transform: 'scale(0.7, 0.7) translateY(-3rem)' }),\n\t\t\t\t\tstagger(25, [\n\t\t\t\t\t\tanimate(\n\t\t\t\t\t\t\t'.3s ease-out',\n\t\t\t\t\t\t\tkeyframes([\n\t\t\t\t\t\t\t\tstyle({ offset: 0, opacity: 0 }),\n\t\t\t\t\t\t\t\tstyle({\n\t\t\t\t\t\t\t\t\toffset: 0.2,\n\t\t\t\t\t\t\t\t\topacity: 0.1,\n\t\t\t\t\t\t\t\t\ttransform: 'scale(0.85, 0.85) translateY(-4rem)',\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tstyle({\n\t\t\t\t\t\t\t\t\toffset: 0.5,\n\t\t\t\t\t\t\t\t\topacity: 0.8,\n\t\t\t\t\t\t\t\t\ttransform: 'scale(0.9, 0.9) translateY(3rem)',\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tstyle({ offset: 1, opacity: 1, transform: 'none' }),\n\t\t\t\t\t\t\t])\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t],\n\t\t\t\t{ optional: true }\n\t\t\t),\n\t\t]),\n\t]),\n\n\tspinnerIn: trigger('spinnerIn', [\n\t\ttransition('void => *', [\n\t\t\tquery(\n\t\t\t\t'.loader',\n\t\t\t\tanimate(\n\t\t\t\t\t'.5s ease-out',\n\t\t\t\t\tkeyframes([\n\t\t\t\t\t\tstyle({\n\t\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\ttransformOrigin: 'bottom right',\n\t\t\t\t\t\t\theight: 0,\n\t\t\t\t\t\t\ttransform: 'translateY(-100px) scale(0, 0)',\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tstyle({\n\t\t\t\t\t\t\toffset: 0.8,\n\t\t\t\t\t\t\topacity: 0.6,\n\t\t\t\t\t\t\theight: 0,\n\t\t\t\t\t\t\ttransform: 'translateY(40px) scale(0.5, 0.5)',\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tstyle({\n\t\t\t\t\t\t\toffset: 1,\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\theight: '*',\n\t\t\t\t\t\t\ttransform: 'translateY(0) scale(1, 1)',\n\t\t\t\t\t\t}),\n\t\t\t\t\t])\n\t\t\t\t),\n\t\t\t\t{ optional: true }\n\t\t\t),\n\t\t]),\n\t]),\n};\n\nexport const accordionItemAnimations: {\n\treadonly accordionItemBodyHeightCollapse: AnimationTriggerMetadata;\n} = {\n\taccordionItemBodyHeightCollapse: trigger('openClose', [\n\t\tstate(\n\t\t\t'closed',\n\t\t\tstyle({\n\t\t\t\theight: '0',\n\t\t\t\topacity: '0',\n\t\t\t\tvisibility: 'collapse',\n\t\t\t})\n\t\t),\n\t\tstate(\n\t\t\t'opened',\n\t\t\tstyle({\n\t\t\t\theight: '*',\n\t\t\t\topacity: '1',\n\t\t\t\tvisibility: 'visible',\n\t\t\t})\n\t\t),\n\t\ttransition('opened <=> closed', animate('.3s ease-out')),\n\t]),\n};\n","/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\nimport { AccordionItemInternal } from './IAccordion';\n\nexport interface IToggler {\n\titemId: number;\n\tisOpen: boolean;\n}\n\nexport const pluckIToggler = ({ itemId, isOpen, ...rest }: AccordionItemInternal) => <IToggler>{ itemId, isOpen };\n\nexport const pluckOpenTogglesIdsToStr = (toggles: IToggler[]): string =>\n\ttoggles\n\t\t.filter((t) => t.isOpen === true)\n\t\t.map((t) => t.itemId)\n\t\t.join(',');\n","/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\nimport { TemplateRef, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { ItemTemplateContext } from './IAccordion';\n\nexport const imgBase64ToBlob = (Base64Image: any, imageType = 'image/png') => {\n\tconst parts = Base64Image.split(';base64,');\n\tconst decodedData = window.atob(parts[1]);\n\tconst uInt8Array = new Uint8Array(decodedData.length);\n\tfor (let i = 0; i < decodedData.length; ++i) {\n\t\tuInt8Array[i] = decodedData.charCodeAt(i);\n\t}\n\treturn new Blob([uInt8Array], { type: imageType });\n};\n\nexport const svgToBase64src = (rawSvg: string) => 'data:image/svg+xml;base64,' + btoa(rawSvg);\nexport const prepRes = (item: string, sanitizer: DomSanitizer) => sanitizer.bypassSecurityTrustResourceUrl(item);\nexport const sanitizeHTML = (item: string | object | undefined, sanitizer: DomSanitizer) => !!item && sanitizer.sanitize(SecurityContext.HTML, item);\nexport const getSvgSafeRes = (file: string, sanitizer: DomSanitizer) => prepRes(svgToBase64src(file), sanitizer);\nexport const getPngSafeRes = (file: string, sanitizer: DomSanitizer) => prepRes(URL.createObjectURL(imgBase64ToBlob(file)), sanitizer);\nexport const blobToSafeRes = (blob: Blob, sanitizer: DomSanitizer) => prepRes(URL.createObjectURL(blob), sanitizer);\n\nexport const bodyWithTmpl = (item: string | ItemTemplateContext): item is ItemTemplateContext => !!item && typeof item !== 'string' && !!item.itemTemplate;\nexport const getItemBodyTemplate = (item: string | ItemTemplateContext, defaultTmpl: TemplateRef<Element>) => (!!bodyWithTmpl(item) ? item.itemTemplate : defaultTmpl);\nexport const getItemBodyCtx = (item: string | ItemTemplateContext) => (bodyWithTmpl(item) && typeof item.itemBody === 'string' ? item.itemBody : item);\n","/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\nexport * from './IToggler';\nexport * from './helpers';\n\nexport { IAccordionItemBodyStyling, IAccordionItemHeadStyling, IAccordionItemSpacingStyling, IAccordionItemStyling, IAccordionStyling } from './IAccordionStylings';\n\nexport { Accordion, AccordionItem, AccordionItems, AccordionItemInternal, AccordionInternal, ItemTemplateContext } from './IAccordion';\n","/* eslint-disable max-len */\n/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\nexport const logo_svg =\n\t'<svg width=\"50\" height=\"50\" viewBox=\"0 0 50 50\" fill=\"white\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 0C2.23858 0 0 2.23858 0 5V45C0 47.7614 2.23858 50 5 50H45C47.7614 50 50 47.7614 50 45V5C50 2.23858 47.7614 0 45 0H5ZM11 10C10.4477 10 10 10.4477 10 11V15C10 15.5523 10.4477 16 11 16H39C39.5523 16 40 15.5523 40 15V11C40 10.4477 39.5523 10 39 10H11ZM10 23C10 22.4477 10.4477 22 11 22H39C39.5523 22 40 22.4477 40 23V27C40 27.5523 39.5523 28 39 28H11C10.4477 28 10 27.5523 10 27V23ZM11 34C10.4477 34 10 34.4477 10 35V39C10 39.5523 10.4477 40 11 40H32C32.5523 40 33 39.5523 33 39V35C33 34.4477 32.5523 34 32 34H11Z\"/></svg>';\n\nexport const arrow_down =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"white\" width=\"48px\" height=\"48px\"><path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"/><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/></svg>';\n","/* eslint-disable @angular-eslint/no-host-metadata-property */\n/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\nimport { AfterContentChecked, AfterViewInit, Directive, ElementRef, HostBinding, Renderer2, NgZone } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { getSvgSafeRes } from './settings/';\nimport { arrow_down, logo_svg } from './theming/icons-base';\n\nenum ImgClasses {\n\tLOGO = 'accord-item__header--start-img',\n\tENDING = 'accord-item__header--end-img',\n}\nenum ImgLoadClass {\n\tSUCCESS = 'img-loaded__success',\n\tALTER = 'img-load__alter',\n}\n\n@Directive({\n\tselector: '.accord-item__header-img',\n\thost: {\n\t\t'(load)': 'onLoad($event)',\n\t\t'(error)': 'onError($event)',\n\t\t'[attr.loading]': '\"lazy\"',\n\t},\n})\nexport class AccordionItemImgDirective implements AfterViewInit, AfterContentChecked {\n\t@HostBinding('attr.src') get src() {\n\t\treturn this._src;\n\t}\n\n\tprivate _nativeImgEl: HTMLImageElement;\n\tprivate _src: string | SafeResourceUrl | undefined;\n\tprivate _openSign: string | SafeResourceUrl | undefined;\n\tprivate _closeSign: string | SafeResourceUrl | undefined;\n\tprivate _baseLogoImg = getSvgSafeRes(logo_svg, this.sanitizer);\n\tprivate _baseChevronImg = getSvgSafeRes(arrow_down, this.sanitizer);\n\tprivate _isSet = false;\n\tprivate _needToRecheck = false;\n\n\tconstructor(private el: ElementRef<HTMLImageElement>, private renderer: Renderer2, private zone: NgZone, private sanitizer: DomSanitizer) {}\n\n\tngAfterViewInit() {\n\t\tthis._nativeImgEl = this.el.nativeElement;\n\t}\n\n\tngAfterContentChecked() {\n\t\tif (this._isSet && !this._needToRecheck) return;\n\t\tif (this._isSet && this._needToRecheck) return this._doOpenCloseSrcRecheck();\n\n\t\tif (this._isLogoImg()) {\n\t\t\t// this._src = this.readElDataSet('src') || this._baseLogoImg;\n\t\t\t// return this.setNoRecheck();\n\t\t\treturn this._setItemHeaderImgSafeSrc(this._readElDataSet('src') || this._baseLogoImg);\n\t\t} else if (this._isCloserImg()) {\n\t\t\tthis._openSign = this._readElDataSet('opensrc') ?? undefined;\n\t\t\tthis._closeSign = this._readElDataSet('closesrc') ?? undefined;\n\t\t\tif (!this._isImgOpenClose()) {\n\t\t\t\t// this._src = this._baseChevronImg;\n\t\t\t\t// return this.setNoRecheck();\n\t\t\t\treturn this._setItemHeaderImgSafeSrc(this._baseChevronImg);\n\t\t\t} else {\n\t\t\t\tif (this._openSign !== this._closeSign) {\n\t\t\t\t\tthis._needToRecheck = true;\n\t\t\t\t}\n\t\t\t\tthis._isSet = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\tonLoad = ({ target, ...rest }: { target: HTMLImageElement; rest: any[] }) => this._setLoadSuccess(target);\n\tonError = ({ target, ...rest }: { target: HTMLImageElement; rest: any[] }) => {\n\t\tthis._setLoadAlter(target);\n\t\tif (target.classList.contains(ImgClasses.LOGO)) {\n\t\t\t// this.setItemHeaderImgSrc(target, this._baseLogoImg);\n\t\t\tthis._setItemHeaderImgSafeSrc(this._baseLogoImg);\n\t\t} else if (target.classList.contains(ImgClasses.ENDING)) {\n\t\t\t// this.setItemHeaderImgSrc(target, this._baseChevronImg);\n\t\t\tthis._setItemHeaderImgSafeSrc(this._baseChevronImg);\n\t\t} else {\n\t\t\treturn console.log('Not an Accordion Item header image');\n\t\t}\n\t};\n\n\tprivate _doOpenCloseSrcRecheck = () => this.zone.runOutsideAngular(() => (this._src = this._nativeImgEl?.classList.contains('open') ? this._closeSign : this._openSign));\n\tprivate _setItemHeaderImgSrc = (imgRef: HTMLImageElement, src: string | SafeResourceUrl) => this.renderer.setAttribute(imgRef, 'src', src as string);\n\tprivate _setItemHeaderImgSafeSrc = (src: string | SafeResourceUrl) => {\n\t\tthis._src = src;\n\t\treturn this._setNoRecheck();\n\t};\n\tprivate _readElDataSet = (attr: string) => this._nativeImgEl?.dataset[attr];\n\tprivate _setLoadSuccess = (target: HTMLImageElement) => {\n\t\ttarget.classList.add(ImgLoadClass.SUCCESS);\n\t\tthis._isSet = true;\n\t};\n\tprivate _setLoadAlter = (target: HTMLImageElement) => {\n\t\ttarget.classList.add(ImgLoadClass.ALTER);\n\t\tthis._setNoRecheck();\n\t};\n\tprivate _isImgOpenClose = () => !!this._closeSign && !!(this._closeSign as string).length && !!this._openSign && !!(this._openSign as string).length;\n\tprivate _isLogoImg = () => this._nativeImgEl?.classList.contains(ImgClasses.LOGO);\n\tprivate _isCloserImg = () => this._nativeImgEl?.classList.contains(ImgClasses.ENDING);\n\tprivate _setNoRecheck = () => {\n\t\tthis._isSet = true;\n\t\tthis._needToRecheck = false;\n\t};\n}\n","/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\nimport { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { of } from 'rxjs';\nimport { accordionItemAnimations, NgAnimationEvent } from './animations';\nimport { AccordionItemInternal, getItemBodyCtx, getItemBodyTemplate } from './settings/';\n\n@Component({\n\tselector: 'ngxd-accordion-item',\n\ttemplateUrl: './accordion-item.component.html',\n\tstyleUrls: ['./accordion-item.component.scss'],\n\tanimations: [accordionItemAnimations.accordionItemBodyHeightCollapse],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccordionItemComponent {\n\tgetItemBodyCtx = getItemBodyCtx!;\n\tgetItemBodyTemplate = getItemBodyTemplate!;\n\tisOpen$ = of(false);\n\titem: Partial<AccordionItemInternal>;\n\n\tstartAnim(e: NgAnimationEvent) {\n\t\t(<HTMLElement>e.element).style.willChange = 'height, opacity, visibility';\n\t\tconst classes = <DOMTokenList>e.element.classList;\n\t\tif (e.fromState === 'void') classes?.add('closed');\n\n\t\tif (e.fromState === 'closed' && e.toState === 'opened') classes.replace('closed', 'opened');\n\t}\n\n\tdoneAnim(e: NgAnimationEvent) {\n\t\t(<HTMLElement>e.element).style.willChange = 'auto';\n\t\tconst classes = <DOMTokenList>e.element.classList;\n\t\tif (e.fromState == 'opened' && e.toState == 'closed') classes.replace('opened', 'closed');\n\t}\n}\n","<!--\n/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\n-->\n<ng-container *ngTemplateOutlet=\"itemTpl; context: { $implicit: isOpen$ | async }\"></ng-container>\n\n<ng-template #itemTpl let-isOpen>\n\t<article class=\"accord-item\">\n\t\t<header class=\"accord-item__header\" [class.opened]=\"isOpen\">\n\t\t\t<ng-container *ngTemplateOutlet=\"headerDefaultTmpl; context: { $implicit: isOpen }\"></ng-container>\n\t\t</header>\n\t\t<section class=\"accord-item__body\" [@openClose]=\"isOpen ? 'opened' : 'closed'\" (@openClose.start)=\"startAnim($event)\" (@openClose.done)=\"doneAnim($event)\">\n\t\t\t<ng-container *ngTemplateOutlet=\"getItemBodyTemplate($any(item.body), bodyDefaultTmpl); context: { $implicit: getItemBodyCtx($any(item.body)) }\"></ng-container>\n\t\t</section>\n\t</article>\n</ng-template>\n\n<ng-template #headerDefaultTmpl let-isOpen>\n\t<div class=\"header--control accord-item__logo\">\n\t\t<span class=\"accord-item__header--start\">\n\t\t\t<img class=\"accord-item__header-img accord-item__header--start-img\" />\n\t\t\t<span *ngIf=\"item.itemNum\">{{ item.itemNum }}.</span>\n\t\t</span>\n\t</div>\n\t<div class=\"header--control accord-item__title\">\n\t\t{{ item.title }}\n\t</div>\n\t<div class=\"header--control accord-item__collapse\">\n\t\t<span class=\"accord-item__header--end\" [class.active]=\"isOpen\">\n\t\t\t<!-- NOTE: img 'src' attr is bound in the `accordion-item-img.directive` -->\n\t\t\t<img class=\"accord-item__header-img accord-item__header--end-img\" [ngClass]=\"{ open: isOpen, close: !isOpen }\" />\n\t\t</span>\n\t</div>\n</ng-template>\n\n<ng-template #bodyDefaultTmpl let-defctx>\n\t{{ defctx }}\n\t<ng-content select=\".accord-item__footer\"></ng-content>\n</ng-template>\n","/* eslint-disable @angular-eslint/no-host-metadata-property */\n/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\nimport { Directive, ElementRef, Output, EventEmitter, AfterViewInit, Input, Renderer2, Inject, OnInit, Host, ChangeDetectorRef, OnDestroy } from '@angular/core';\n\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Subject } from 'rxjs';\nimport { filter, tap, pluck, map, takeUntil } from 'rxjs/operators';\n\nimport { AccordionItemComponent } from './accordion-item.component';\nimport { AccordionOpenService } from './accordion-open.service';\nimport { NgAnimationEvent } from './animations';\nimport { IToggler, IAccordionItemStyling, AccordionItem, AccordionItemInternal, ItemTemplateContext, sanitizeHTML } from './settings/';\n\n@Directive({\n\tselector: '[ngxdAccordionItem]',\n\thost: {\n\t\t'[class.opened]': 'isOpen',\n\t\t'(dblclick)': 'onDClick([$event.target, $event.currentTarget])',\n\t\t'(click)': 'onClick([$event.target, $event.currentTarget])',\n\t},\n})\nexport class AccordionItemDirective implements OnInit, AfterViewInit, OnDestroy {\n\t@Input('ngxdAccordionItem') item!: AccordionItemInternal;\n\t@Input('styling') itemStyles: IAccordionItemStyling = {\n\t\theadHeight: '50px',\n\t\theadBgColor: '#ccc',\n\t\theadColor: '#fff',\n\t\tbodyBgColor: '#fff',\n\t\tbodyColor: '#000',\n\t\tfontSize: '10px',\n\t\tbodyPadding: '0',\n\t};\n\t@Input() logo: string;\n\t@Input() openSign: string;\n\t@Input() closeSign: string;\n\t@Input() bodyDblclkClose = false;\n\t@Input() isNumbered = false;\n\t@Output() toggled: EventEmitter<IToggler> = new EventEmitter();\n\tisOpen = false;\n\tprivate hostDestroy$$: Subject<void> = new Subject();\n\n\tconstructor(\n\t\t@Inject(AccordionItemComponent) private hostCmp: AccordionItemComponent,\n\t\t@Inject(ElementRef) private hostElRef: ElementRef<HTMLElement>,\n\t\t@Host() private itemStatusSvc: AccordionOpenService,\n\t\tprivate render: Renderer2,\n\t\tprivate sanitizer: DomSanitizer,\n\t\tprivate cd: ChangeDetectorRef\n\t) {}\n\n\tngOnInit() {\n\t\tthis.hostCmp.item = {\n\t\t\t...this.item,\n\t\t\titemNum: this.isNumbered ? +this.item.itemId + 1 : null,\n\t\t\tbody:\n\t\t\t\ttypeof this.item.body === 'string'\n\t\t\t\t\t? sanitizeHTML(this.item.body, this.sanitizer)\n\t\t\t\t\t: ({\n\t\t\t\t\t\t\titemTemplate: this.item.body?.itemTemplate,\n\t\t\t\t\t\t\titemBody: sanitizeHTML(this.item.body?.itemBody, this.sanitizer),\n\t\t\t\t\t  } as ItemTemplateContext),\n\t\t} as Partial<AccordionItem>;\n\n\t\tthis.hostCmp.isOpen$ = this.itemStatusSvc.itemsOpen$.pipe(\n\t\t\ttakeUntil(this.hostDestroy$$),\n\t\t\tfilter((val) => !!val && !!val.length),\n\t\t\tmap((toggles: IToggler[]) => toggles.find(({ itemId }) => itemId === +this.item.itemId)!),\n\t\t\tpluck<IToggler, 'isOpen'>('isOpen'),\n\t\t\ttap((isOpen = false) => (this.isOpen = isOpen))\n\t\t);\n\t}\n\n\tngAfterViewInit() {\n\t\tconst nativeEl = this.hostElRef.nativeElement;\n\t\tconst itemEl = nativeEl.getElementsByClassName('accord-item').item(0) as HTMLElement;\n\t\tconst headEl = nativeEl.getElementsByClassName('accord-item__header').item(0) as HTMLElement;\n\t\tconst bodyEl = nativeEl.getElementsByClassName('accord-item__body').item(0) as HTMLElement;\n\n\t\t{\n\t\t\t/** set up the accordion item header images\\' sources */\n\t\t\tconst headElLogoImgEl = headEl.getElementsByClassName('accord-item__header--start-img').item(0) as HTMLImageElement;\n\t\t\tconst headElCloserImgEl = headEl.getElementsByClassName('accord-item__header--end-img').item(0) as HTMLImageElement;\n\t\t\tthis.logo && this.render.setAttribute(headElLogoImgEl, 'data-src', this.logo);\n\t\t\tthis.openSign && this.render.setAttribute(headElCloserImgEl, 'data-opensrc', this.openSign);\n\t\t\tthis.closeSign && this.render.setAttribute(headElCloserImgEl, 'data-closesrc', this.closeSign);\n\t\t\tthis.cd.detectChanges();\n\t\t}\n\n\t\tthis.render.setStyle(itemEl, 'margin', this.itemStyles.margin ?? '0');\n\t\tthis.render.setStyle(itemEl, 'padding', this.itemStyles.padding ?? '0');\n\t\tthis.itemStyles.font && this.render.setStyle(itemEl, 'font', this.itemStyles.font);\n\t\tthis.itemStyles.fontSize && this.render.setStyle(itemEl, 'font-size', this.itemStyles.fontSize);\n\t\tthis.itemStyles.fontStyle && this.render.setStyle(itemEl, 'font-style', this.itemStyles.fontStyle);\n\t\tthis.itemStyles.fontFamily && this.render.setStyle(itemEl, 'font-family', this.itemStyles.fontFamily);\n\t\tthis.render.setStyle(itemEl, 'margin-bottom', this.itemStyles.marginBottom);\n\t\tthis.render.setStyle(itemEl, 'margin-top', this.itemStyles.marginTop);\n\t\tthis.itemStyles.headBgColor && nativeEl.style.setProperty('--ngxd-head-item-color', this.itemStyles.headBgColor);\n\n\t\tthis.itemStyles.headHeight && this.render.setStyle(headEl, 'height', this.itemStyles.headHeight);\n\t\tthis.itemStyles.headFont && this.render.setStyle(headEl, 'font', this.itemStyles.headFont);\n\t\tthis.render.setStyle(headEl, 'font-size', this.itemStyles.headFontSize ?? '1.1rem');\n\t\tthis.render.setStyle(headEl, 'color', this.itemStyles.headColor ?? '#ccc');\n\n\t\tthis.render.setStyle(bodyEl, 'background-color', this.itemStyles.bodyBgColor ?? 'rgba(200, 200, 200, 0.2)');\n\t\tthis.render.setStyle(bodyEl, 'color', this.itemStyles.bodyColor ?? '#000');\n\t\tthis.render.setStyle(bodyEl, 'padding', this.itemStyles.bodyPadding ?? '.1rem');\n\t\tthis.render.setStyle(bodyEl, 'margin', this.itemStyles.bodyMargin ?? '0');\n\t\tthis.itemStyles.bodyFont && this.render.setStyle(bodyEl, 'font', this.itemStyles.bodyFont);\n\t\tthis.render.setStyle(bodyEl, 'font-size', this.itemStyles.bodyFontSize ?? '1rem');\n\t\tthis.itemStyles.bodyTextAlign && this.render.setStyle(bodyEl, 'text-align', this.itemStyles.bodyTextAlign);\n\n\t\tthis.render.setStyle(bodyEl, 'cursor', this.bodyDblclkClose ? 'grab' : 'default');\n\t}\n\n\tngOnDestroy() {\n\t\tthis.hostDestroy$$.next();\n\t\tthis.hostDestroy$$.complete();\n\t}\n\n\tonClick = ([{ outerHTML }, { dataset }]: [{ outerHTML: string }, { dataset: any }]) => (outerHTML?.includes('header') ? this._handleClick({ ...dataset }) : void 0);\n\tonDClick = ([{ outerHTML }, { dataset }]: [{ outerHTML: string }, { dataset: any }]) => (outerHTML?.includes('accord-item__body') ? this._handleClick({ ...dataset }) : void 0);\n\n\tprivate _handleClick = ({ idx, ...rest } = { idx: -1 }) => this._toggle(+idx);\n\tprivate _toggle = (itemId: number) => this.toggled.emit({ itemId, isOpen: !this.isOpen });\n}\n","/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\nimport {\n\tComponent,\n\tInput,\n\tHostBinding,\n\tChangeDetectionStrategy,\n\tOnInit,\n\tSelf,\n\tSimpleChanges,\n\tOnChanges,\n\tOnDestroy,\n\tTemplateRef,\n\tViewChild,\n\tElementRef,\n\tRenderer2,\n} from '@angular/core';\nimport { map, filter } from 'rxjs/operators';\n\nimport { AccordionOpenService } from './accordion-open.service';\nimport { accordionAnimations } from './animations';\nimport { Accordion, IAccordionStyling, IAccordionItemStyling, IToggler, AccordionItemInternal, AccordionInternal, pluckIToggler, pluckOpenTogglesIdsToStr } from './settings/';\n\n@Component({\n\tselector: 'ngxd-accordion',\n\texportAs: 'ngxdAccordion',\n\ttemplateUrl: './accordion.component.html',\n\tstyleUrls: ['./accordion.component.scss'],\n\tanimations: [accordionAnimations.accordItemsIn, accordionAnimations.spinnerIn],\n\tviewProviders: [AccordionOpenService],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccordionComponent implements OnInit, OnChanges, OnDestroy {\n\tstatic idx = 0;\n\t@ViewChild('defloadingTpl', { read: TemplateRef, static: true }) private defloadingTpl!: TemplateRef<Element>;\n\t@HostBinding('attr.data-items-opened') _openedItems: string;\n\t@HostBinding('attr.id') get id() {\n\t\treturn `${this.attributes.id}`;\n\t}\n\t@HostBinding('attr.name') get name() {\n\t\treturn this.attributes.name;\n\t}\n\t@Input() set accordionList(acc: Accordion) {\n\t\tlet [name, id] = [(!!acc && !!acc['name']?.length && acc.name) || 'Sample-Accordion', (!!acc && !!acc['id'] && acc.id) || `accordion_${++AccordionComponent.idx}`];\n\t\tthis._accord = Object.assign(\n\t\t\t{ id, name },\n\t\t\t{\n\t\t\t\titems: acc?.items.map(\n\t\t\t\t\t(item, i) =>\n\t\t\t\t\t\t<AccordionItemInternal>{\n\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\tid: !!item.id && typeof item.id === 'string' ? item.id : `${id}__accord-item_${i}`,\n\t\t\t\t\t\t\titemId: i,\n\t\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t}\n\t\t) as AccordionInternal;\n\t}\n\tget accordionItems(): AccordionItemInternal[] {\n\t\treturn this._accord?.items;\n\t}\n\t@Input() openSign: string;\n\t@Input() closeSign: string;\n\t@Input() listLogo: string;\n\t@Input() accordionStyling: IAccordionStyling = {\n\t\tnumberedItems: false,\n\t\tisMultiShow: false,\n\t\tbodyDblclkCloseItems: false,\n\t\tmaxWidth: '100%',\n\t\titemsGuts: '1rem',\n\t\tmargin: '0',\n\t\titemStyling: {\n\t\t\theadBgColor: '#4197b2',\n\t\t\theadColor: '#fff',\n\t\t\tbodyBgColor: '#fff',\n\t\t\tbodyColor: '#000',\n\t\t\tmargin: '0',\n\t\t\tpadding: '0',\n\t\t},\n\t};\n\t@Input() set loadingTpl(val: TemplateRef<Element>) {\n\t\tthis._loadingTpl = val || this.defloadingTpl;\n\t}\n\tget loadingTpl(): TemplateRef<Element> {\n\t\treturn this._loadingTpl ?? this.defloadingTpl;\n\t}\n\t_bodyDblclkClose = false;\n\t_itemStyle: IAccordionItemStyling;\n\t_isNumbered = false;\n\n\tprivate _loadingTpl: TemplateRef<Element>;\n\tprivate _accord: AccordionInternal;\n\tprivate multiSelect = false;\n\n\tconstructor(@Self() private itemsOpenSvc: AccordionOpenService, private hostEl: ElementRef<Element>, private renderer: Renderer2) {}\n\n\tngOnInit() {\n\t\tthis._bodyDblclkClose = !!this.accordionStyling.bodyDblclkCloseItems ?? false;\n\t\tthis.multiSelect = !!this.accordionStyling.isMultiShow ?? false;\n\t\tthis.itemsOpenSvc.itemsOpen$\n\t\t\t.pipe(\n\t\t\t\tfilter((val) => !!val?.length),\n\t\t\t\tmap(pluckOpenTogglesIdsToStr)\n\t\t\t)\n\t\t\t.subscribe((ids) => (this._openedItems = ids));\n\n\t\tthis._isNumbered = this.accordionStyling.numberedItems ?? false;\n\t\tthis._bodyDblclkClose = this.accordionStyling.bodyDblclkCloseItems ?? false;\n\n\t\tlet itemStyles: IAccordionItemStyling = Array.isArray(this.accordionStyling.itemStyling)\n\t\t\t? this.accordionStyling.itemStyling.reduce((accu = {}, curr) => ({ ...accu, ...curr }))\n\t\t\t: { ...this.accordionStyling.itemStyling };\n\n\t\tconst itemsGuts = this.accordionStyling.itemsGuts ?? 0;\n\t\titemStyles = {\n\t\t\tpadding: '0',\n\t\t\tmarginBottom: itemsGuts,\n\t\t\tmarginTop: itemsGuts,\n\t\t\t...itemStyles,\n\t\t};\n\t\tthis._itemStyle = Object.entries(itemStyles)\n\t\t\t.map(([key, val]) => ({\n\t\t\t\t[key]: typeof val === 'number' ? `${val}px` : val,\n\t\t\t}))\n\t\t\t.reduce((accu, val) => ({ ...accu, ...val }));\n\n\t\tconst accordEl = this.hostEl.nativeElement;\n\t\tthis.renderer.setStyle(accordEl, 'max-width', this.accordionStyling.maxWidth ?? '100%');\n\t\tthis.renderer.setStyle(accordEl, 'margin', this.accordionStyling.margin ?? '0');\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tObject.keys(changes).forEach((prop) => {\n\t\t\tif (prop === 'accordionList' && changes[prop].previousValue !== changes[prop].currentValue) this.itemsOpenSvc.setItemsOpen(this.accordionItems?.map(pluckIToggler));\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis.itemsOpenSvc.close();\n\t}\n\n\tonItemToggled = ({ itemId, isOpen }: IToggler = { itemId: 0, isOpen: false }) =>\n\t\tthis.itemsOpenSvc.setItemsOpen(\n\t\t\tthis.itemsOpenSvc.itemsOpenSnapshot.map(\n\t\t\t\t({ itemId: eId, isOpen: opened }) =>\n\t\t\t\t\t(eId === +itemId\n\t\t\t\t\t\t? { itemId, isOpen }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\titemId: eId,\n\t\t\t\t\t\t\t\tisOpen: this.multiSelect ? opened : false,\n\t\t\t\t\t\t  }) as IToggler\n\t\t\t)\n\t\t);\n\n\tpublic closeAll = () => this.accordionItems?.forEach(({ itemId, ...rest }) => this.onItemToggled({ itemId, isOpen: false }));\n\n\tpublic trackByFn = (_ind: number, { itemId, ...rest }: any) => +itemId;\n\n\tprivate get attributes(): Partial<Accordion> {\n\t\tconst { id, name } = this._accord;\n\t\treturn { id, name };\n\t}\n}\n","<!--\n/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */ \n-->\n<div class=\"accordion\">\n\t<ng-container *ngIf=\"!!accordionItems; then itemsTmpl; else $any(loadingTpl)\"> </ng-container>\n</div>\n\n<ng-template #itemsTmpl>\n\t<ng-container *ngFor=\"let item of accordionItems; trackBy: trackByFn\" [ngTemplateOutlet]=\"accordItemTmpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n</ng-template>\n\n<ng-template #accordItemTmpl let-item>\n\t<ngxd-accordion-item\n\t\t[ngxdAccordionItem]=\"item\"\n\t\t[isNumbered]=\"_isNumbered\"\n\t\t[bodyDblclkClose]=\"_bodyDblclkClose\"\n\t\t[openSign]=\"openSign\"\n\t\t[closeSign]=\"closeSign\"\n\t\t[logo]=\"listLogo\"\n\t\t[styling]=\"_itemStyle\"\n\t\t[attr.data-idx]=\"item.itemId\"\n\t\t[id]=\"item.id\"\n\t\t(toggled)=\"onItemToggled($event)\"\n\t\t@accordItemsIn\n\t></ngxd-accordion-item>\n</ng-template>\n\n<ng-template #defloadingTpl>\n\t<style>\n\t\t.accordion-default-loader--tmpl {\n\t\t\tdisplay: block;\n\t\t\tborder-radius: 50%;\n\t\t\tbackground-color: transparent;\n\t\t\tmin-height: 50px;\n\t\t\tmin-width: 50px;\n\t\t}\n\t\t.accordion-default-loader--tmpl > svg {\n\t\t\tfill: var(--dark-bg);\n\t\t\ttransform: rotate(90deg);\n\t\t}\n\t\t.accordion-default-loader--tmpl > svg rect:first-of-type {\n\t\t\tfill: var(--darker-color);\n\t\t}\n\t\t.accordion-default-loader--tmpl > svg rect:nth-of-type(2) {\n\t\t\tfill: var(--accent-color);\n\t\t}\n\t\t.accordion-default-loader--tmpl > svg rect:nth-of-type(3) {\n\t\t\tfill: var(--dark-blue-color);\n\t\t}\n\t</style>\n\t<div class=\"accordion-default-loader--tmpl\" @spinnerIn>\n\t\t<svg width=\"51px\" height=\"50px\" viewBox=\"0 0 51 50\">\n\t\t\t<rect y=\"0\" width=\"13\" height=\"50\">\n\t\t\t\t<animate attributeName=\"height\" values=\"50;10;50\" begin=\"0s\" dur=\"1s\" repeatCount=\"indefinite\" />\n\t\t\t\t<animate attributeName=\"y\" values=\"0;20;0\" begin=\"0s\" dur=\"1s\" repeatCount=\"indefinite\" />\n\t\t\t</rect>\n\t\t\t<rect x=\"19\" y=\"0\" width=\"13\" height=\"50\">\n\t\t\t\t<animate attributeName=\"height\" values=\"50;10;50\" begin=\"0.2s\" dur=\"1s\" repeatCount=\"indefinite\" />\n\t\t\t\t<animate attributeName=\"y\" values=\"0;20;0\" begin=\"0.2s\" dur=\"1s\" repeatCount=\"indefinite\" />\n\t\t\t</rect>\n\t\t\t<rect x=\"38\" y=\"0\" width=\"13\" height=\"50\">\n\t\t\t\t<animate attributeName=\"height\" values=\"50;10;50\" begin=\"0.4s\" dur=\"1s\" repeatCount=\"indefinite\" />\n\t\t\t\t<animate attributeName=\"y\" values=\"0;20;0\" begin=\"0.4s\" dur=\"1s\" repeatCount=\"indefinite\" />\n\t\t\t</rect>\n\t\t</svg>\n\t</div>\n</ng-template>\n","/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionItemComponent } from './accordion-item.component';\nimport { AccordionItemDirective } from './accordion-item.directive';\nimport { AccordionItemImgDirective } from './accordion-item-img.directive';\n\n@NgModule({\n\timports: [CommonModule, HttpClientModule],\n\tdeclarations: [AccordionComponent, AccordionItemComponent, AccordionItemDirective, AccordionItemImgDirective],\n\texports: [AccordionComponent],\n})\nexport class AccordionModule {}\n","/*!\n * @ngx-dummy/Accordion-Simple library\n * Simple accordion created for angular / ionic projects.\n * https://github.com/ngx-dummy/accordion-simple\n *\n * Copyright  Vladimir Ovsyukov <ovsyukov@yandex.com>\n * Published under GNU LGPLv3 License\n */\n\n/*\n * Public API Surface of @ngx-dummy/accordion-simple lib\n */\n\nexport {\n\tAccordion,\n\tIAccordionItemBodyStyling,\n\tIAccordionItemHeadStyling,\n\tIAccordionItemSpacingStyling,\n\tIAccordionItemStyling,\n\tIAccordionStyling,\n\tAccordionItem,\n\tAccordionItems,\n\tItemTemplateContext,\n} from './lib/settings/';\nexport { AccordionModule } from './lib/accordion.module';\nexport { AccordionComponent } from './lib/accordion.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.AccordionItemImgDirective","i1.AccordionOpenService","i2","i3.AccordionItemComponent","i4.AccordionItemDirective"],"mappings":"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"}