{"version":3,"file":"primeng-scrollpanel.mjs","sources":["../../src/app/components/scrollpanel/scrollpanel.ts","../../src/app/components/scrollpanel/primeng-scrollpanel.ts"],"sourcesContent":["import { NgModule, Component, Input, AfterViewInit, OnDestroy, ElementRef, NgZone, ViewChild, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, AfterContentInit, ContentChildren, QueryList, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler } from 'primeng/dom';\nimport { PrimeTemplate } from 'primeng/api';\n\n@Component({\n    selector: 'p-scrollPanel',\n    template: `\n        <div #container [ngClass]=\"'p-scrollpanel p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\">\n            <div class=\"p-scrollpanel-wrapper\">\n                <div #content class=\"p-scrollpanel-content\">\n                    <ng-content></ng-content>\n                    <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n                </div>\n            </div>\n            <div #xBar class=\"p-scrollpanel-bar p-scrollpanel-bar-x\"></div>\n            <div #yBar class=\"p-scrollpanel-bar p-scrollpanel-bar-y\"></div>\n        </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    styleUrls: ['./scrollpanel.css'],\n    host: {\n        'class': 'p-element'\n    }\n})\nexport class ScrollPanel implements AfterViewInit, AfterContentInit, OnDestroy {\n\n    @Input() style: any;\n\n    @Input() styleClass: string;\n\n    constructor(public el: ElementRef, public zone: NgZone, public cd: ChangeDetectorRef) {}\n\n    @ViewChild('container') containerViewChild: ElementRef;\n\n    @ViewChild('content') contentViewChild: ElementRef;\n\n    @ViewChild('xBar') xBarViewChild: ElementRef;\n\n    @ViewChild('yBar') yBarViewChild: ElementRef;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n    scrollYRatio: number;\n\n    scrollXRatio: number;\n\n    timeoutFrame: any = (fn) => setTimeout(fn, 0);\n\n    initialized: boolean;\n\n    lastPageY: number;\n\n    lastPageX: number;\n\n    isXBarClicked: boolean;\n\n    isYBarClicked: boolean;\n\n    contentTemplate: TemplateRef<any>;\n\n    ngAfterViewInit() {\n        this.zone.runOutsideAngular(() => {\n            this.moveBar();\n            this.moveBar = this.moveBar.bind(this);\n            this.onXBarMouseDown = this.onXBarMouseDown.bind(this);\n            this.onYBarMouseDown = this.onYBarMouseDown.bind(this);\n            this.onDocumentMouseMove = this.onDocumentMouseMove.bind(this);\n            this.onDocumentMouseUp = this.onDocumentMouseUp.bind(this);\n\n            window.addEventListener('resize', this.moveBar);\n            this.contentViewChild.nativeElement.addEventListener('scroll', this.moveBar);\n            this.contentViewChild.nativeElement.addEventListener('mouseenter', this.moveBar);\n            this.xBarViewChild.nativeElement.addEventListener('mousedown', this.onXBarMouseDown);\n            this.yBarViewChild.nativeElement.addEventListener('mousedown', this.onYBarMouseDown);\n\n            this.calculateContainerHeight();\n\n            this.initialized = true;\n        });\n    }\n\n    ngAfterContentInit() {\n        this.templates.forEach((item) => {\n            switch(item.getType()) {\n                case 'content':\n                    this.contentTemplate = item.template;\n                break;\n\n                default:\n                    this.contentTemplate = item.template;\n                break;\n            }\n        });\n    }\n\n    calculateContainerHeight() {\n        let container = this.containerViewChild.nativeElement;\n        let content = this.contentViewChild.nativeElement;\n        let xBar = this.xBarViewChild.nativeElement;\n\n        let containerStyles = getComputedStyle(container),\n        xBarStyles = getComputedStyle(xBar),\n        pureContainerHeight = DomHandler.getHeight(container) - parseInt(xBarStyles['height'], 10);\n\n        if (containerStyles['max-height'] != \"none\" && pureContainerHeight == 0) {\n            if (content.offsetHeight + parseInt(xBarStyles['height'], 10) > parseInt(containerStyles['max-height'], 10)) {\n                container.style.height = containerStyles['max-height'];\n            }\n            else {\n                container.style.height = content.offsetHeight + parseFloat(containerStyles.paddingTop) + parseFloat(containerStyles.paddingBottom) + parseFloat(containerStyles.borderTopWidth) + parseFloat(containerStyles.borderBottomWidth) + \"px\";\n            }\n        }\n    }\n\n    moveBar() {\n        let container = this.containerViewChild.nativeElement;\n        let content = this.contentViewChild.nativeElement;\n\n        /* horizontal scroll */\n        let xBar = this.xBarViewChild.nativeElement;\n        let totalWidth = content.scrollWidth;\n        let ownWidth = content.clientWidth;\n        let bottom = (container.clientHeight - xBar.clientHeight) * -1;\n\n        this.scrollXRatio = ownWidth / totalWidth;\n\n        /* vertical scroll */\n        let yBar = this.yBarViewChild.nativeElement;\n        let totalHeight = content.scrollHeight;\n        let ownHeight = content.clientHeight;\n        let right = (container.clientWidth - yBar.clientWidth) * -1;\n\n        this.scrollYRatio = ownHeight / totalHeight;\n\n        this.requestAnimationFrame(() => {\n            if (this.scrollXRatio >= 1) {\n                DomHandler.addClass(xBar, 'p-scrollpanel-hidden');\n            }\n            else {\n                DomHandler.removeClass(xBar, 'p-scrollpanel-hidden');\n                const xBarWidth = Math.max(this.scrollXRatio * 100, 10);\n                const xBarLeft = content.scrollLeft * (100 - xBarWidth) / (totalWidth - ownWidth);\n                xBar.style.cssText = 'width:' + xBarWidth + '%; left:' + xBarLeft + '%;bottom:' + bottom + 'px;';\n            }\n\n            if (this.scrollYRatio >= 1) {\n                DomHandler.addClass(yBar, 'p-scrollpanel-hidden');\n            }\n            else {\n                DomHandler.removeClass(yBar, 'p-scrollpanel-hidden');\n                const yBarHeight = Math.max(this.scrollYRatio * 100, 10);\n                const yBarTop = content.scrollTop * (100 - yBarHeight) / (totalHeight - ownHeight);\n                yBar.style.cssText = 'height:' + yBarHeight + '%; top: calc(' + yBarTop + '% - ' + xBar.clientHeight + 'px);right:' + right + 'px;';\n            }\n        });\n        this.cd.markForCheck();\n    }\n\n    onYBarMouseDown(e: MouseEvent) {\n        this.isYBarClicked = true;\n        this.lastPageY = e.pageY;\n        DomHandler.addClass(this.yBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n\n        DomHandler.addClass(document.body, 'p-scrollpanel-grabbed');\n\n        document.addEventListener('mousemove', this.onDocumentMouseMove);\n        document.addEventListener('mouseup', this.onDocumentMouseUp);\n        e.preventDefault();\n    }\n\n    onXBarMouseDown(e: MouseEvent) {\n        this.isXBarClicked = true;\n        this.lastPageX = e.pageX;\n        DomHandler.addClass(this.xBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n\n        DomHandler.addClass(document.body, 'p-scrollpanel-grabbed');\n\n        document.addEventListener('mousemove', this.onDocumentMouseMove);\n        document.addEventListener('mouseup', this.onDocumentMouseUp);\n        e.preventDefault();\n    }\n\n    onDocumentMouseMove(e: MouseEvent) {\n        if (this.isXBarClicked) {\n            this.onMouseMoveForXBar(e);\n        }\n        else if (this.isYBarClicked) {\n            this.onMouseMoveForYBar(e);\n        }\n        else {\n            this.onMouseMoveForXBar(e);\n            this.onMouseMoveForYBar(e);\n        }\n\n    }\n\n    onMouseMoveForXBar(e: MouseEvent) {\n        let deltaX = e.pageX - this.lastPageX;\n        this.lastPageX = e.pageX;\n\n        this.requestAnimationFrame(() => {\n            this.contentViewChild.nativeElement.scrollLeft += deltaX / this.scrollXRatio;\n        });\n    }\n\n    onMouseMoveForYBar(e: MouseEvent) {\n        let deltaY = e.pageY - this.lastPageY;\n        this.lastPageY = e.pageY;\n\n        this.requestAnimationFrame(() => {\n            this.contentViewChild.nativeElement.scrollTop += deltaY / this.scrollYRatio;\n        });\n    }\n\n    scrollTop(scrollTop: number) {\n        let scrollableHeight = this.contentViewChild.nativeElement.scrollHeight - this.contentViewChild.nativeElement.clientHeight;\n        scrollTop = scrollTop > scrollableHeight ? scrollableHeight : scrollTop > 0 ? scrollTop : 0;\n        this.contentViewChild.nativeElement.scrollTop = scrollTop;\n    }\n\n    onDocumentMouseUp(e: Event) {\n        DomHandler.removeClass(this.yBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n        DomHandler.removeClass(this.xBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n        DomHandler.removeClass(document.body, 'p-scrollpanel-grabbed');\n\n        document.removeEventListener('mousemove', this.onDocumentMouseMove);\n        document.removeEventListener('mouseup', this.onDocumentMouseUp);\n        this.isXBarClicked = false;\n        this.isYBarClicked = false;\n    }\n\n    requestAnimationFrame(f: Function) {\n        let frame = window.requestAnimationFrame || this.timeoutFrame;\n        frame(f);\n    }\n\n    ngOnDestroy() {\n        if (this.initialized) {\n            window.removeEventListener('resize', this.moveBar);\n            this.contentViewChild.nativeElement.removeEventListener('scroll', this.moveBar);\n            this.contentViewChild.nativeElement.removeEventListener('mouseenter', this.moveBar);\n            this.xBarViewChild.nativeElement.removeEventListener('mousedown', this.onXBarMouseDown);\n            this.yBarViewChild.nativeElement.removeEventListener('mousedown', this.onYBarMouseDown);\n        }\n    }\n\n    refresh() {\n        this.moveBar();\n    }\n\n}\n\n@NgModule({\n    imports: [CommonModule],\n    exports: [ScrollPanel],\n    declarations: [ScrollPanel]\n})\nexport class ScrollPanelModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;MA0Ba,WAAW,CAAA;AAMpB,IAAA,WAAA,CAAmB,EAAc,EAAS,IAAY,EAAS,EAAqB,EAAA;AAAjE,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAAS,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;AAAS,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;AAgBpF,QAAA,IAAA,CAAA,YAAY,GAAQ,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;KAhB0C;IA8BxF,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE3D,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAErF,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAEhC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,SAAC,CAAC,CAAC;KACN;IAED,kBAAkB,GAAA;QACd,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC5B,YAAA,QAAO,IAAI,CAAC,OAAO,EAAE;AACjB,gBAAA,KAAK,SAAS;AACV,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACzC,MAAM;AAEN,gBAAA;AACI,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACzC,MAAM;AACT,aAAA;AACL,SAAC,CAAC,CAAC;KACN;IAED,wBAAwB,GAAA;AACpB,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC;AACtD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;AAClD,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;AAE5C,QAAA,IAAI,eAAe,GAAG,gBAAgB,CAAC,SAAS,CAAC,EACjD,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,EACnC,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3F,IAAI,eAAe,CAAC,YAAY,CAAC,IAAI,MAAM,IAAI,mBAAmB,IAAI,CAAC,EAAE;YACrE,IAAI,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE;gBACzG,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;AAC1D,aAAA;AACI,iBAAA;AACD,gBAAA,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;AAC1O,aAAA;AACJ,SAAA;KACJ;IAED,OAAO,GAAA;AACH,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC;AACtD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;;AAGlD,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;AAC5C,QAAA,IAAI,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;AACrC,QAAA,IAAI,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;AACnC,QAAA,IAAI,MAAM,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;AAE/D,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;;AAG1C,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;AAC5C,QAAA,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;AACvC,QAAA,IAAI,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;AACrC,QAAA,IAAI,KAAK,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;AAE5D,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAE5C,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAK;AAC5B,YAAA,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE;AACxB,gBAAA,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AACrD,aAAA;AACI,iBAAA;AACD,gBAAA,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AACrD,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;AACxD,gBAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,UAAU,GAAG,QAAQ,CAAC,CAAC;AAClF,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AACpG,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE;AACxB,gBAAA,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AACrD,aAAA;AACI,iBAAA;AACD,gBAAA,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AACrD,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;AACzD,gBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,WAAW,GAAG,SAAS,CAAC,CAAC;gBACnF,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC;AACvI,aAAA;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KAC1B;AAED,IAAA,eAAe,CAAC,CAAa,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;QACzB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QAE/E,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAE5D,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7D,CAAC,CAAC,cAAc,EAAE,CAAC;KACtB;AAED,IAAA,eAAe,CAAC,CAAa,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;QACzB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QAE/E,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAE5D,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7D,CAAC,CAAC,cAAc,EAAE,CAAC;KACtB;AAED,IAAA,mBAAmB,CAAC,CAAa,EAAA;QAC7B,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC9B,SAAA;aACI,IAAI,IAAI,CAAC,aAAa,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC9B,SAAA;AACI,aAAA;AACD,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC9B,SAAA;KAEJ;AAED,IAAA,kBAAkB,CAAC,CAAa,EAAA;QAC5B,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;AACtC,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;AAEzB,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAK;AAC5B,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,UAAU,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;AACjF,SAAC,CAAC,CAAC;KACN;AAED,IAAA,kBAAkB,CAAC,CAAa,EAAA;QAC5B,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;AACtC,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;AAEzB,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAK;AAC5B,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;AAChF,SAAC,CAAC,CAAC;KACN;AAED,IAAA,SAAS,CAAC,SAAiB,EAAA;AACvB,QAAA,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,YAAY,CAAC;QAC3H,SAAS,GAAG,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;QAC5F,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC;KAC7D;AAED,IAAA,iBAAiB,CAAC,CAAQ,EAAA;QACtB,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QAClF,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QAClF,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAE/D,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACpE,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC9B;AAED,IAAA,qBAAqB,CAAC,CAAW,EAAA;QAC7B,IAAI,KAAK,GAAG,MAAM,CAAC,qBAAqB,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9D,KAAK,CAAC,CAAC,CAAC,CAAC;KACZ;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACnD,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAChF,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACxF,YAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC3F,SAAA;KACJ;IAED,OAAO,GAAA;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;;wGAhOQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAX,WAAW,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAgBH,aAAa,EAnCpB,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2pBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAQQ,WAAW,EAAA,UAAA,EAAA,CAAA;kBArBvB,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EACf,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,IAAA,CAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAE/B,IAAA,EAAA;AACF,wBAAA,OAAO,EAAE,WAAW;AACvB,qBAAA,EAAA,MAAA,EAAA,CAAA,2pBAAA,CAAA,EAAA,CAAA;sJAIQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAIkB,kBAAkB,EAAA,CAAA;sBAAzC,SAAS;uBAAC,WAAW,CAAA;gBAEA,gBAAgB,EAAA,CAAA;sBAArC,SAAS;uBAAC,SAAS,CAAA;gBAED,aAAa,EAAA,CAAA;sBAA/B,SAAS;uBAAC,MAAM,CAAA;gBAEE,aAAa,EAAA,CAAA;sBAA/B,SAAS;uBAAC,MAAM,CAAA;gBAEe,SAAS,EAAA,CAAA;sBAAxC,eAAe;uBAAC,aAAa,CAAA;;MAyNrB,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAzOjB,YAAA,EAAA,CAAA,WAAW,CAqOV,EAAA,OAAA,EAAA,CAAA,YAAY,aArOb,WAAW,CAAA,EAAA,CAAA,CAAA;+GAyOX,iBAAiB,EAAA,OAAA,EAAA,CAJjB,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAId,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,WAAW,CAAC;oBACtB,YAAY,EAAE,CAAC,WAAW,CAAC;iBAC9B,CAAA;;;AClQD;;AAEG;;;;"}