{"version":3,"file":"almothafar-ionic-hidenav.mjs","sources":["../../../src/lib/hidenav-service.service.ts","../../../src/lib/hidenav-tabscontent.directive.ts","../../../src/lib/hidenav-content.directive.ts","../../../src/lib/hidenav-header.directive.ts","../../../src/lib/hidenav-sh-service.service.ts","../../../src/lib/hidenav-stretchheader.component.ts","../../../src/lib/hidenav-sh-content.directive.ts","../../../src/lib/hidenav-sh-tabscontent.directive.ts","../../../src/lib/hidenav.module.ts","../../../src/almothafar-ionic-hidenav.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class HidenavService {\n\n\tdata = [];\n\tnames = [];\n\ttabnames = [];\n\n\tconstructor() {\n\t}\n\n\trequestName() {\n\t\tconst name = 'page' + this.names.length;\n\t\tthis.names.push(name);\n\t\treturn name;\n\t}\n\n\trequestTabName(name) {\n\t\tif (!this.tabnames[name]) {\n\t\t\tthis.tabnames[name] = [];\n\t\t}\n\t\tconst tabname = name + 'tab' + this.tabnames[name].length;\n\t\tthis.tabnames[name].push(tabname);\n\t\treturn tabname;\n\t}\n\n\tinitiate(name) {\n\t\tconst names = [];\n\t\tfor (const key in this.data) {\n\t\t\tif (this.data[key].parent === name) {\n\t\t\t\tnames.push(key);\n\t\t\t}\n\t\t}\n\t\tfor (const n of names) {\n\t\t\tthis.initiate2(n);\n\t\t}\n\t\tif (names.length === 0) {\n\t\t\tthis.initiate2(name);\n\t\t}\n\t}\n\n\tinitiate2(name) {\n\t\tif (!(this.data[name]\n\t\t\t&& (this.data[name].parent && this.data[this.data[name].parent].tabscontent && this.data[name].content && this.data[this.data[name].parent].header)\n\t\t\t|| (!this.data[name].parent && this.data[name].content && this.data[name].header)\n\t\t)) {\n\t\t\treturn false;\n\t\t}\n\t\tconst parent = this.data[name].parent;\n\t\tconst content = this.data[name].content;\n\t\tconst contentElem = this.data[name].contentElem;\n\t\tif (this.data[name].scrollTop === null) {\n\t\t\tthis.data[name].scrollTop = 0;\n\t\t}\n\t\tif (this.data[name].lastscroll === null) {\n\t\t\tthis.data[name].lastscroll = 0;\n\t\t}\n\t\tif (this.data[name].direction === null) {\n\t\t\tthis.data[name].direction = '';\n\t\t}\n\t\tif (this.data[name].tapping === null) {\n\t\t\tthis.data[name].tapping = false;\n\t\t}\n\t\tcontent.scrollEvents = true;\n\t\tif (!parent) {\n\t\t\tconst header = this.data[name].header;\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.data[name].navheight = this.data[name].header.nativeElement.offsetHeight;\n\t\t\t\tconst scrollContent: any = contentElem.nativeElement.shadowRoot.querySelector('.inner-scroll');\n\t\t\t\tthis.data[name].paddingTop = parseInt(window.getComputedStyle(scrollContent)['padding-top'], 10);\n\t\t\t\tcontent.ionScroll.subscribe((e) => {\n\t\t\t\t\tif (e.detail.scrollTop === 0) {\n\t\t\t\t\t\tscrollContent.style.top = null;\n\t\t\t\t\t\tscrollContent.style.paddingTop = this.data[name].paddingTop + 'px';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tscrollContent.style.top = '-' + this.data[name].navheight + 'px';\n\t\t\t\t\t\tscrollContent.style.paddingTop = this.data[name].paddingTop + this.data[name].navheight + 'px';\n\t\t\t\t\t}\n\t\t\t\t\tif (scrollContent.scrollHeight > (scrollContent.clientHeight + 100)) {\n\t\t\t\t\t\tthis.data[name].scrolling = true;\n\t\t\t\t\t\tconst x = this.data[name].lastscroll - e.detail.scrollTop;\n\t\t\t\t\t\tthis.data[name].direction = x > 0 ? 'up' : 'down';\n\t\t\t\t\t\tthis.data[name].lastscroll = e.detail.scrollTop;\n\t\t\t\t\t\tthis.data[name].scrollTop = this.data[name].scrollTop - x;\n\t\t\t\t\t\tif (this.data[name].scrollTop > this.data[name].navheight) {\n\t\t\t\t\t\t\tthis.data[name].scrollTop = this.data[name].navheight;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.data[name].scrollTop < 0) {\n\t\t\t\t\t\t\tthis.data[name].scrollTop = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\theader.nativeElement.style.transform = 'translate3d(0, ' + -this.data[name].scrollTop + 'px, 0)';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcontent.ionScrollEnd.subscribe(() => {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t// catch the last tick\n\t\t\t\t\t\tif (scrollContent.scrollTop === 0) {\n\t\t\t\t\t\t\tscrollContent.style.top = null;\n\t\t\t\t\t\t\tscrollContent.style.paddingTop = this.data[name].paddingTop + 'px';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.data[name].scrolling = false;\n\t\t\t\t\t\tthis.c(name);\n\t\t\t\t\t}, 10);\n\t\t\t\t});\n\t\t\t}, 100);\n\t\t\tcontentElem.nativeElement.addEventListener('touchend', () => {\n\t\t\t\tthis.data[name].tapping = false;\n\t\t\t\tthis.c(name);\n\t\t\t});\n\t\t\tcontentElem.nativeElement.addEventListener('touchstart', () => this.data[name].tapping = true);\n\t\t} else if (parent) {\n\t\t\tconst header = this.data[parent].header;\n\t\t\tconst tabscontentElem = this.data[parent].tabscontentElem;\n\t\t\tconst supertabsToolbar: any = tabscontentElem.nativeElement.querySelector('super-tabs-toolbar');\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.data[parent].tabscontentHeight = tabscontentElem.nativeElement.scrollHeight;\n\t\t\t\tconst scrollContent: any = contentElem.nativeElement.shadowRoot.querySelector('.inner-scroll');\n\t\t\t\tconst tabsscrollContent: any = this.data[parent].tabscontentElem.nativeElement.shadowRoot.querySelector('.inner-scroll');\n\t\t\t\tif (scrollContent.scrollHeight > (scrollContent.clientHeight + 100)) {\n\t\t\t\t\tthis.data[name].navheight = this.data[parent].header.nativeElement.offsetHeight;\n\t\t\t\t\tthis.data[name].paddingTop = parseInt(window.getComputedStyle(scrollContent)['padding-top'], 10);\n\t\t\t\t}\n\t\t\t\tcontent.ionScroll.subscribe((e) => {\n\t\t\t\t\tif (this.data[name].tapping && scrollContent.scrollHeight > (scrollContent.clientHeight + 100)) {\n\t\t\t\t\t\tif (e.detail.scrollTop === 0) {\n\t\t\t\t\t\t\tsupertabsToolbar.style.position = 'static';\n\t\t\t\t\t\t\tscrollContent.style.paddingTop = this.data[name].paddingTop + 'px';\n\t\t\t\t\t\t\ttabscontentElem.nativeElement.style.top = null;\n\t\t\t\t\t\t\ttabsscrollContent.style.height = this.data[parent].tabscontentHeight + 'px';\n\t\t\t\t\t\t\ttabscontentElem.nativeElement.style.top = null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst s = e.detail.scrollTop;\n\t\t\t\t\t\t\tsupertabsToolbar.style.position = 'absolute';\n\t\t\t\t\t\t\tsupertabsToolbar.style.top = this.data[name].navheight + 'px';\n\t\t\t\t\t\t\ttabsscrollContent.style.height = (this.data[parent].tabscontentHeight + this.data[name].navheight) + 'px';\n\t\t\t\t\t\t\ttabscontentElem.nativeElement.style.top = '-' + this.data[name].navheight + 'px';\n\t\t\t\t\t\t\tscrollContent.style.paddingTop = this.data[name].paddingTop + supertabsToolbar.clientHeight + this.data[name].navheight + 'px';\n\t\t\t\t\t\t\tscrollContent.scrollTop = s;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.data[name].scrolling = true;\n\t\t\t\t\tconst x = this.data[name].lastscroll - e.detail.scrollTop;\n\t\t\t\t\tthis.data[name].direction = x > 0 ? 'up' : 'down';\n\t\t\t\t\tthis.data[name].lastscroll = e.detail.scrollTop;\n\t\t\t\t\tthis.data[name].scrollTop = this.data[name].scrollTop - x;\n\t\t\t\t\tif (this.data[name].scrollTop > this.data[name].navheight) {\n\t\t\t\t\t\tthis.data[name].scrollTop = this.data[name].navheight;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.data[name].scrollTop < 0) {\n\t\t\t\t\t\tthis.data[name].scrollTop = 0;\n\t\t\t\t\t}\n\t\t\t\t\theader.nativeElement.style.transform = 'translate3d(0, ' + -this.data[name].scrollTop + 'px, 0)';\n\t\t\t\t\tsupertabsToolbar.style.transform = 'translate3d(0, ' + -this.data[name].scrollTop + 'px, 0)';\n\t\t\t\t});\n\t\t\t\tcontent.ionScrollEnd.subscribe(() => {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t// catch the last tick\n\t\t\t\t\t\tif (scrollContent.scrollTop === 0) {\n\t\t\t\t\t\t\tsupertabsToolbar.style.position = 'static';\n\t\t\t\t\t\t\tscrollContent.style.paddingTop = this.data[name].paddingTop + 'px';\n\t\t\t\t\t\t\ttabscontentElem.nativeElement.style.top = null;\n\t\t\t\t\t\t\ttabsscrollContent.style.height = this.data[parent].tabscontentHeight + 'px';\n\t\t\t\t\t\t\ttabscontentElem.nativeElement.style.top = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.data[name].scrolling = false;\n\t\t\t\t\t\tthis.c(name);\n\t\t\t\t\t}, 10);\n\t\t\t\t});\n\t\t\t}, 100);\n\t\t\tcontentElem.nativeElement.addEventListener('touchend', () => {\n\t\t\t\tthis.data[name].tapping = false;\n\t\t\t\tthis.c(name);\n\t\t\t});\n\t\t\tcontentElem.nativeElement.addEventListener('touchstart', () => this.data[name].tapping = true);\n\t\t}\n\t}\n\n\tresetTabs(parent, name) {\n\t\tconst header = this.data[parent].header;\n\t\tconst tabscontentElem = this.data[parent].tabscontentElem;\n\t\tconst supertabsToolbar: any = tabscontentElem.nativeElement.querySelector('super-tabs-toolbar');\n\t\tconst tabsscrollContent: any = this.data[parent].tabscontentElem.nativeElement.shadowRoot.querySelector('.inner-scroll');\n\t\tconst scrollContent: any = this.data[name].contentElem.nativeElement.shadowRoot.querySelector('.inner-scroll');\n\t\tscrollContent.scrollTop = scrollContent.scrollTop - this.data[name].scrollTop;\n\t\tsetTimeout(() => {\n\t\t\tif (scrollContent.scrollTop === 0) {\n\t\t\t\tsupertabsToolbar.style.position = 'static';\n\t\t\t\tscrollContent.style.paddingTop = this.data[name].paddingTop + 'px';\n\t\t\t\ttabscontentElem.nativeElement.style.top = null;\n\t\t\t\ttabsscrollContent.style.height = this.data[parent].tabscontentHeight + 'px';\n\t\t\t\ttabscontentElem.nativeElement.style.top = null;\n\t\t\t} else {\n\t\t\t\tconst s = scrollContent.scrollTop;\n\t\t\t\tsupertabsToolbar.style.position = 'absolute';\n\t\t\t\tsupertabsToolbar.style.top = this.data[name].navheight + 'px';\n\t\t\t\ttabsscrollContent.style.height = (this.data[parent].tabscontentHeight + this.data[name].navheight) + 'px';\n\t\t\t\ttabscontentElem.nativeElement.style.top = '-' + this.data[name].navheight + 'px';\n\t\t\t\tscrollContent.style.paddingTop = this.data[name].paddingTop + supertabsToolbar.clientHeight + this.data[name].navheight + 'px';\n\t\t\t\tscrollContent.scrollTop = s;\n\t\t\t}\n\t\t\theader.nativeElement.style.transform = null;\n\t\t\tsupertabsToolbar.style.transform = null;\n\t\t}, 20);\n\n\t}\n\n\tprivate c(name) {\n\t\tif (this.data[name].tapping || this.data[name].scrolling) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.data[name].scrollTop === 0 || this.data[name].scrollTop === this.data[name].navheight) {\n\t\t\treturn false;\n\t\t}\n\t\tconst content = this.data[name].content;\n\t\tconst scrollTopTemp = this.data[name].scrollTop;\n\t\tif (this.data[name].direction === 'down') {\n\t\t\tif (this.data[name].scrollTop < this.data[name].navheight) {\n\t\t\t\tcontent.scrollByPoint(0, (this.data[name].navheight - scrollTopTemp), (this.data[name].navheight - scrollTopTemp) * 6);\n\t\t\t}\n\t\t} else if (this.data[name].direction === 'up') {\n\t\t\tif (this.data[name].scrollTop < this.data[name].navheight) {\n\t\t\t\tcontent.scrollByPoint(0, -scrollTopTemp, scrollTopTemp * 6);\n\t\t\t}\n\t\t}\n\t}\n}\n","import { AfterViewInit, ContentChild, Directive, ElementRef, forwardRef, Host, OnDestroy, Optional, Self } from '@angular/core';\nimport { IonContent } from '@ionic/angular';\nimport { HidenavService } from './hidenav-service.service';\nimport { SuperTabs } from '@ionic-super-tabs/angular';\nimport $ from 'jquery';\n\n@Directive({\n\tselector: '[hidenav-tabscontent]'\n})\nexport class HidenavTabscontentDirective implements AfterViewInit, OnDestroy {\n\n\t@ContentChild(forwardRef(() => SuperTabs)) supertabs: SuperTabs;\n\n\tname: any;\n\n\tconstructor(@Host() @Self() @Optional() public el: IonContent, public contentElem: ElementRef, private globals: HidenavService) {\n\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.name = this.globals.requestName();\n\t\tthis.contentElem.nativeElement.setAttribute('hidenav-tabscontent', this.name);\n\t\t$('[hidenav-header]', $(this.contentElem.nativeElement).parents().get().find(itm => $(itm).find('[hidenav-header]').length)).attr('hidenav-header', this.name);\n\t\tif (this.name) {\n\t\t\tif (!this.globals.data[this.name]) {\n\t\t\t\tthis.globals.data[this.name] = [];\n\t\t\t}\n\t\t\tthis.globals.data[this.name].tabscontent = this.el;\n\t\t\tthis.globals.data[this.name].tabscontentElem = this.contentElem;\n\t\t\tthis.globals.initiate(this.name);\n\n\t\t\tif (this.supertabs) {\n\t\t\t\tthis.supertabs.tabChange.subscribe(e => {\n\t\t\t\t\tif (e.detail.changed) {\n\t\t\t\t\t\tconst i = e.detail.index;\n\t\t\t\t\t\tconst tabs = this.contentElem.nativeElement.querySelectorAll('super-tab');\n\t\t\t\t\t\tconst results = [];\n\t\t\t\t\t\tfor (const tab of tabs) {\n\t\t\t\t\t\t\tconst cont = tab.querySelector('ion-content');\n\t\t\t\t\t\t\tif (cont.attributes['hidenav-content']) {\n\t\t\t\t\t\t\t\tresults.push(cont.attributes['hidenav-content'].nodeValue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresults.push(null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (results[i] != null) {\n\t\t\t\t\t\t\tthis.globals.resetTabs(this.name, results[i]);\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tif (this.name) {\n\t\t\tdelete this.globals.data[this.name].tabscontent;\n\t\t}\n\t}\n\n}\n","import { AfterViewInit, Directive, ElementRef, Host, Input, OnDestroy, Optional, Self } from '@angular/core';\nimport { IonContent } from '@ionic/angular';\nimport { HidenavService } from './hidenav-service.service';\nimport $ from 'jquery';\n\n@Directive({\n\tselector: '[hidenav-content]'\n})\nexport class HidenavContentDirective implements AfterViewInit, OnDestroy {\n\n\tname: any;\n\tparent: any;\n\n\t@Input('hidenav-tabspage') hntb: any;\n\n\tconstructor(@Host() @Self() @Optional() public el: IonContent, public contentElem: ElementRef, private globals: HidenavService) {\n\n\t}\n\n\tngAfterViewInit() {\n\t\tif (!this.contentElem.nativeElement.hasAttribute('hidenav-tabspage')) {\n\t\t\tthis.name = this.globals.requestName();\n\t\t\t$(this.contentElem.nativeElement).attr('hidenav-content', this.name);\n\t\t\t$('[hidenav-header]', $(this.contentElem.nativeElement).parents().get().find(itm => $(itm).find('[hidenav-header]').length)).attr('hidenav-header', this.name);\n\t\t\tthis.start();\n\t\t} else {\n\t\t\tlet counter = 0;\n\t\t\tconst int = setInterval(() => {\n\t\t\t\tconst x = $(this.contentElem.nativeElement).closest('[hidenav-tabscontent]').attr('hidenav-tabscontent');\n\t\t\t\tcounter++;\n\t\t\t\tif (x && x.length > 0) {\n\t\t\t\t\tthis.parent = $(this.contentElem.nativeElement).closest('[hidenav-tabscontent]').attr('hidenav-tabscontent');\n\t\t\t\t\tthis.name = this.globals.requestTabName(this.parent);\n\t\t\t\t\t$(this.contentElem.nativeElement).attr('hidenav-content', this.name);\n\t\t\t\t\t$(this.contentElem.nativeElement).attr('hidenav-tabspage', this.parent);\n\t\t\t\t\tthis.start();\n\t\t\t\t\tclearInterval(int);\n\t\t\t\t} else if (counter > 50) {\n\t\t\t\t\tclearInterval(int);\n\t\t\t\t}\n\t\t\t}, 50);\n\t\t}\n\t}\n\n\tstart() {\n\t\tif (this.name) {\n\t\t\tif (!this.globals.data[this.name]) {\n\t\t\t\tthis.globals.data[this.name] = [];\n\t\t\t}\n\t\t\tthis.globals.data[this.name].content = this.el;\n\t\t\tthis.globals.data[this.name].contentElem = this.contentElem;\n\t\t\tif (this.parent) {\n\t\t\t\tthis.globals.data[this.name].parent = this.parent;\n\t\t\t}\n\t\t\tthis.globals.initiate(this.name);\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tif (this.name) {\n\t\t\tdelete this.globals.data[this.name].content;\n\t\t}\n\t}\n\n}\n","import { AfterViewInit, Directive, ElementRef, OnDestroy } from '@angular/core';\nimport { HidenavService } from './hidenav-service.service';\n\n@Directive({\n\tselector: '[hidenav-header]'\n})\nexport class HidenavHeaderDirective implements AfterViewInit, OnDestroy {\n\n\tname: any;\n\n\tconstructor(public el: ElementRef, private globals: HidenavService) {\n\n\t}\n\n\tngAfterViewInit() {\n\t\tconst observer = new MutationObserver((mutations) => {\n\t\t\tmutations.forEach(() => {\n\t\t\t\tif (this.el.nativeElement.getAttribute('hidenav-header').length > 0) {\n\t\t\t\t\tthis.name = this.el.nativeElement.getAttribute('hidenav-header');\n\t\t\t\t\tthis.start();\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tobserver.observe(this.el.nativeElement, {\n\t\t\tattributes: true,\n\t\t});\n\t}\n\n\tstart() {\n\t\tif (this.name) {\n\t\t\tif (!this.globals.data[this.name]) {\n\t\t\t\tthis.globals.data[this.name] = [];\n\t\t\t}\n\t\t\tif (this.globals.data[this.name].header != null) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.globals.data[this.name].header = this.el;\n\t\t\tthis.globals.initiate(this.name);\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tif (this.name) {\n\t\t\tdelete this.globals.data[this.name].header;\n\t\t}\n\t}\n\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class HidenavShService {\n\n\tdata = [];\n\tmode: any = 'ios';\n\tnames = [];\n\ttabnames = [];\n\tscroll: any;\n\n\tconstructor() {\n\t\tthis.scroll = new Subject();\n\t}\n\n\trequestName() {\n\t\tconst name = 'page' + this.names.length;\n\t\tthis.names.push(name);\n\t\treturn name;\n\t}\n\n\trequestTabName(name) {\n\t\tif (!this.tabnames[name]) {\n\t\t\tthis.tabnames[name] = [];\n\t\t}\n\t\tconst tabname = name + 'tab' + this.tabnames[name].length;\n\t\tthis.tabnames[name].push(tabname);\n\t\treturn tabname;\n\t}\n\n\tinitiate(name) {\n\t\tconst names = [];\n\t\tfor (const key in this.data) {\n\t\t\tif (this.data[key].parent === name) {\n\t\t\t\tnames.push(key);\n\t\t\t}\n\t\t}\n\t\tfor (const n of names) {\n\t\t\tthis.initiate2(n);\n\t\t}\n\t\tif (names.length === 0) {\n\t\t\tthis.initiate2(name);\n\t\t}\n\t}\n\n\tinitiate2(name) {\n\t\tif (!(this.data[name]\n\t\t\t&& (this.data[name].parent\n\t\t\t\t&& this.data[this.data[name].parent]\n\t\t\t\t&& this.data[this.data[name].parent].tabscontent\n\t\t\t\t&& this.data[name].content\n\t\t\t\t&& this.data[this.data[name].parent].header)\n\t\t\t|| (!this.data[name].parent && this.data[name].content && this.data[name].header))\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tconst parent = this.data[name].parent;\n\t\tconst content = this.data[name].content;\n\t\tif (!this.data[name].lastscroll) {\n\t\t\tthis.data[name].lastscroll = 0;\n\t\t}\n\t\tif (!this.data[name].guardEvents) {\n\t\t\tthis.data[name].guardEvents = true;\n\t\t}\n\t\tcontent.scrollEvents = true;\n\t\tif (!parent) {\n\t\t\tconst header = this.data[name].header;\n\t\t\tif (this.data[name].static) {\n\t\t\t\tthis.data[name].static.forEach(el => {\n\t\t\t\t\tel.nativeElement.style.position = 'absolute';\n\t\t\t\t\tel.nativeElement.style.zIndex = 102;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (header) {\n\t\t\t\tconst parentElem = header.nativeElement.parentNode;\n\t\t\t\tconst elem = header.nativeElement;\n\t\t\t\tif (parentElem.getAttribute('init-expanded') === 'true') {\n\t\t\t\t\tthis.data[name].initExpanded = true;\n\t\t\t\t}\n\t\t\t\tconst notchHeight = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--ion-safe-area-top'), 10);\n\t\t\t\tthis.data[name].shrinkexpandheaderHeight = parseInt(parentElem.getAttribute('header-height'), 10) + notchHeight;\n\t\t\t\tthis.data[name].opacityFactor = parseInt(parentElem.getAttribute('opacity-factor'), 10);\n\t\t\t\tthis.data[name].opacityColor = parentElem.getAttribute('opacity-color');\n\t\t\t\tthis.data[name].blurFactor = parseInt(parentElem.getAttribute('blur-factor'), 10);\n\t\t\t\tparentElem.style.height = this.data[name].shrinkexpandheaderHeight + 'px';\n\t\t\t\tparentElem.style.overflow = 'hidden';\n\t\t\t\tparentElem.style.position = 'absolute';\n\t\t\t\telem.style.position = 'absolute';\n\t\t\t\tparentElem.style.width = '100%';\n\t\t\t\telem.style.width = '100%';\n\t\t\t\tthis.waitforelem(name, 'this.data[name].header.nativeElement.scrollHeight', 'proceedShrinkExpand');\n\t\t\t}\n\t\t} else if (parent) {\n\t\t\tconst header = this.data[parent].header;\n\t\t\tconst tabscontentElem = this.data[parent].tabscontentElem;\n\t\t\tif (this.data[parent].static) {\n\t\t\t\tthis.data[parent].static.forEach(el => {\n\t\t\t\t\tel.nativeElement.style.position = 'absolute';\n\t\t\t\t\tel.nativeElement.style.zIndex = 102;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (header) {\n\t\t\t\tconst supertabsToolbar: any = tabscontentElem.nativeElement.querySelector('super-tabs-toolbar');\n\t\t\t\tconst parentElem = header.nativeElement.parentNode;\n\t\t\t\tconst elem = header.nativeElement;\n\t\t\t\tif (parentElem.getAttribute('init-expanded') === 'true') {\n\t\t\t\t\tthis.data[name].initExpanded = true;\n\t\t\t\t}\n\t\t\t\tif (parentElem.getAttribute('preserve-header') === 'true') {\n\t\t\t\t\tthis.data[name].preserveHeader = true;\n\t\t\t\t\tthis.data[parent].preserveHeader = true;\n\t\t\t\t}\n\t\t\t\tconst notchHeight = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--ion-safe-area-top'), 10);\n\t\t\t\tthis.data[name].shrinkexpandheaderHeight = parseInt(parentElem.getAttribute('header-height'), 10) + notchHeight;\n\t\t\t\tthis.data[name].opacityFactor = parseInt(parentElem.getAttribute('opacity-factor'), 10);\n\t\t\t\tthis.data[name].opacityColor = elem.getAttribute('opacity-color');\n\t\t\t\tthis.data[name].blurFactor = parseInt(parentElem.getAttribute('blur-factor'), 10);\n\t\t\t\tparentElem.style.height = this.data[name].shrinkexpandheaderHeight + 'px';\n\t\t\t\tparentElem.style.overflow = 'hidden';\n\t\t\t\tparentElem.style.position = 'absolute';\n\t\t\t\telem.style.position = 'absolute';\n\t\t\t\tparentElem.style.width = '100%';\n\t\t\t\telem.style.width = '100%';\n\t\t\t\tsupertabsToolbar.style.position = 'absolute';\n\t\t\t\tsupertabsToolbar.style.transform = 'translate3d(0, ' + this.data[name].shrinkexpandheaderHeight + 'px, 0)';\n\t\t\t\tparentElem.style.zIndex = 101;\n\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\tthis.waitforelemTabs(name, 'this.data[this.data[name].parent].header.nativeElement.scrollHeight', 'this.data[this.data[name].parent].tabscontentElem.nativeElement.querySelector(\\'super-tabs-toolbar\\').clientHeight', 'proceedShrinkExpandTabs');\n\t\t\t}\n\t\t}\n\t}\n\n\twaitforelem(name, evaluate, func) {\n\t\t// eslint-disable-next-line no-eval\n\t\tconst x = eval(evaluate);\n\t\tif (!{x} || x < this.data[name].shrinkexpandheaderHeight) {\n\t\t\twindow.requestAnimationFrame(this.waitforelem.bind(this, name, evaluate, func));\n\t\t} else {\n\t\t\tthis[func](name);\n\t\t}\n\t}\n\n\twaitforelemTabs(name, evaluate, evaluate2, func) {\n\t\t// eslint-disable-next-line no-eval\n\t\tconst x = eval(evaluate);\n\t\t// eslint-disable-next-line no-eval\n\t\tconst y = eval(evaluate2);\n\t\tif (!{x} || x < this.data[name].shrinkexpandheaderHeight || !{y} || y === 0) {\n\t\t\twindow.requestAnimationFrame(this.waitforelemTabs.bind(this, name, evaluate, evaluate2, func));\n\t\t} else {\n\t\t\tthis[func](name);\n\t\t}\n\t}\n\n\tproceedShrinkExpand(name) {\n\t\tconst parentElem = this.data[name].header.nativeElement.parentNode;\n\t\tconst elem = this.data[name].header.nativeElement;\n\t\tconst overlay = this.data[name].header.nativeElement.parentNode.querySelector('.overlay');\n\t\tif (this.data[name].opacityColor) {\n\t\t\toverlay.style.setProperty('--color', this.data[name].opacityColor);\n\t\t}\n\t\tif (this.data[name].opacityFactor > 0) {\n\t\t\t// angular decides that opacity is bad and changes it to alpha which doesn't work lol\n\t\t\toverlay.style.setProperty('filter', 'opacity(var(--opacity))');\n\t\t\toverlay.style.setProperty('--opacity', this.data[name].opacityFactor / 10);\n\t\t}\n\t\tif (this.data[name].blurFactor > 0) {\n\t\t\telem.style.setProperty('filter', 'blur(var(--blur))');\n\t\t\telem.style.setProperty('--blur', this.data[name].blurFactor / 10);\n\t\t}\n\t\tthis.data[name].shrinkexpandHeight = this.data[name].shrinkexpandheaderHeight;\n\t\tthis.data[name].shrinkexpandHeight = this.data[name].header.nativeElement.scrollHeight;\n\t\telem.style.transform = 'translate3d(0, ' + -((this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight) / 2) + 'px, 0)';\n\t\tthis.data[name].content.getScrollElement().then(res => {\n\t\t\tthis.data[name].contentElem = res;\n\t\t\tthis.data[name].paddingTop = parseInt(window.getComputedStyle(this.data[name].contentElem)['padding-top'], 10);\n\t\t\tthis.data[name].contentElem.style.paddingTop = (this.data[name].shrinkexpandHeight + this.data[name].paddingTop) + 'px';\n\t\t\t// this.data[name].contentElem.style.marginTop = this.data[name].shrinkexpandheaderHeight + 'px';\n\t\t\tconst elemPad = document.createElement('div');\n\t\t\telemPad.style.cssText = 'background:rgba(0,0,0,0)';\n\t\t\tconst x = this.data[name].contentElem.scrollHeight + (this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight);\n\t\t\t// experimental height\n\t\t\telemPad.style.height = x + 'px';\n\t\t\tsetTimeout(() => {\n\t\t\t\t// check if height is still ok and adjust if not\n\t\t\t\tthis.data[name].elemPadHeight = Math.max(0,\n\t\t\t\t\t(x - (this.data[name].contentElem.scrollHeight - this.data[name].contentElem.offsetHeight)\n\t\t\t\t\t\t+ (this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight)\n\t\t\t\t\t));\n\t\t\t\telemPad.style.height = this.data[name].elemPadHeight + 'px';\n\t\t\t}, 100);\n\t\t\tthis.data[name].contentElem.appendChild(elemPad);\n\t\t\tconst scrollDist = this.data[name].initExpanded ? 2 : (this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight);\n\t\t\tthis.data[name].content.scrollByPoint(0, scrollDist, 0).then(() => {\n\t\t\t\tthis.data[name].contentHeight = this.data[name].contentEl.nativeElement.clientHeight;\n\t\t\t\tthis.data[name].content.scrollEvents = true;\n\t\t\t\tthis.data[name].content.ionScroll.subscribe(e => {\n\t\t\t\t\tif (e.detail.scrollTop === 0) {\n\t\t\t\t\t\tthis.data[name].contentElem.style.paddingTop = 0;\n\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.height = (this.data[name].contentHeight - this.data[name].shrinkexpandHeight) + 'px';\n\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.top = (this.data[name].shrinkexpandHeight + this.data[name].paddingTop) + 'px';\n\t\t\t\t\t\telemPad.style.height = (this.data[name].elemPadHeight + this.data[name].shrinkexpandHeight + this.data[name].paddingTop) + 'px';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst s = e.detail.scrollTop;\n\t\t\t\t\t\tthis.data[name].contentElem.style.paddingTop = (this.data[name].shrinkexpandHeight + this.data[name].paddingTop) + 'px';\n\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.height = (this.data[name].contentHeight + this.data[name].shrinkexpandHeight) + 'px';\n\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.top = null;\n\t\t\t\t\t\tthis.data[name].contentElem.scrollTop = s;\n\t\t\t\t\t\telemPad.style.height = this.data[name].elemPadHeight + 'px';\n\t\t\t\t\t}\n\t\t\t\t\tif (this.data[name].initExpanded) {\n\t\t\t\t\t\tthis.data[name].content.scrollToPoint(0, 0, 0).then(() => {\n\t\t\t\t\t\t\tthis.data[name].initExpanded = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.data[name].initExpanded) {\n\t\t\t\t\t\tthis.data[name].content.scrollToPoint(0, 0, 0).then(() => {\n\t\t\t\t\t\t\tthis.data[name].initExpanded = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\tconst height = Math.max(Math.min(this.data[name].shrinkexpandHeight, this.data[name].shrinkexpandHeight - e.detail.scrollTop), this.data[name].shrinkexpandheaderHeight);\n\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\telem.style.transform = 'translate3d(0, ' + -(Math.min((this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight) / 2, e.detail.scrollTop / 2)) + 'px, 0)';\n\t\t\t\t\tparentElem.style.height = height + 'px';\n\t\t\t\t\tconst scrollFactor = Math.min(e.detail.scrollTop / (this.data[name].shrinkexpandHeight / 2), 1);\n\t\t\t\t\tif (scrollFactor >= 0) {\n\t\t\t\t\t\tconst currentValOpacity = overlay.style.getPropertyValue('--opacity');\n\t\t\t\t\t\tconst newValOpacity = this.data[name].opacityFactor / 10 * scrollFactor;\n\t\t\t\t\t\tif (currentValOpacity !== newValOpacity) {\n\t\t\t\t\t\t\toverlay.style.setProperty('--opacity', newValOpacity);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst currentValBlur = elem.style.getPropertyValue('--blur');\n\t\t\t\t\t\tconst newValBlur = (this.data[name].blurFactor * scrollFactor) + 'px';\n\t\t\t\t\t\tif (currentValBlur !== newValBlur) {\n\t\t\t\t\t\t\telem.style.setProperty('--blur', newValBlur);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// event emitter\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.data[name].guardEvents = false;\n\t\t\t\t\t}, 10);\n\t\t\t\t\tif (this.data[name].lastscroll !== height && !this.data[name].guardEvents) {\n\t\t\t\t\t\tthis.scroll.next({name: this.data[name].parent ? this.data[name].parent : name, height});\n\t\t\t\t\t}\n\t\t\t\t\tthis.data[name].lastscroll = height;\n\t\t\t\t\t//\n\t\t\t\t});\n\t\t\t\t// catch the last tick\n\t\t\t\tthis.data[name].content.ionScrollEnd.subscribe(() => {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (this.data[name].contentElem.scrollTop === 0) {\n\t\t\t\t\t\t\tthis.data[name].contentElem.style.paddingTop = 0;\n\t\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.height = (this.data[name].contentHeight - this.data[name].shrinkexpandHeight) + 'px';\n\t\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.top = (this.data[name].shrinkexpandHeight + this.data[name].paddingTop) + 'px';\n\t\t\t\t\t\t\telemPad.style.height = (this.data[name].elemPadHeight + this.data[name].shrinkexpandHeight + this.data[name].paddingTop) + 'px';\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 10);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tproceedShrinkExpandTabs(name) {\n\t\tconst parent = this.data[name].parent;\n\t\tconst parentElem = this.data[parent].header.nativeElement.parentNode;\n\t\tconst elem = this.data[parent].header.nativeElement;\n\t\tconst tabscontentElem = this.data[parent].tabscontentElem;\n\t\tconst supertabsToolbar: any = tabscontentElem.nativeElement.querySelector('super-tabs-toolbar');\n\t\tconst overlay = this.data[parent].header.nativeElement.parentNode.querySelector('.overlay');\n\t\tif (this.data[name].opacityColor) {\n\t\t\toverlay.style.setProperty('--color', this.data[name].opacityColor);\n\t\t}\n\t\tif (this.data[name].opacityFactor > 0) {\n\t\t\t// angular decides that opacity is bad and changes it to alpha which doesn't work lol\n\t\t\toverlay.style.setProperty('filter', 'opacity(var(--opacity))');\n\t\t\toverlay.style.setProperty('--opacity', this.data[name].opacityFactor / 10);\n\t\t}\n\t\tif (this.data[name].blurFactor > 0) {\n\t\t\telem.style.setProperty('filter', 'blur(var(--blur))');\n\t\t\telem.style.setProperty('--blur', this.data[name].blurFactor / 10);\n\t\t}\n\t\tthis.data[name].shrinkexpandHeight = this.data[name].shrinkexpandheaderHeight;\n\t\tthis.data[name].shrinkexpandHeight = elem.scrollHeight;\n\t\telem.style.transform = 'translate3d(0, ' + -((this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight) / 2) + 'px, 0)';\n\t\tthis.data[name].content.getScrollElement().then(res => {\n\t\t\tthis.data[name].contentElem = res;\n\t\t\tthis.data[name].paddingTop = parseInt(window.getComputedStyle(this.data[name].contentElem)['padding-top'], 10);\n\t\t\tthis.data[name].contentElem.style.paddingTop = (this.data[name].shrinkexpandHeight + supertabsToolbar.clientHeight + this.data[name].paddingTop) + 'px';\n\t\t\tthis.data[name].contentElem.style.height = (this.data[parent].tabscontentElem.nativeElement.clientHeight) + 'px';\n\t\t\t// this.data[name].contentElem.style.marginTop = this.data[name].shrinkexpandheaderHeight + 'px';\n\t\t\tconst elemPad = document.createElement('div');\n\t\t\telemPad.style.cssText = 'background:rgba(0,0,0,0)';\n\t\t\tconst x = this.data[name].contentElem.scrollHeight + (this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight);\n\t\t\t// experimental height\n\t\t\telemPad.style.height = x + 'px';\n\t\t\tsetTimeout(() => {\n\t\t\t\t// check if height is still ok and adjust if not\n\t\t\t\tthis.data[name].elemPadHeight = Math.max(\n\t\t\t\t\t0, (x - (this.data[name].contentElem.scrollHeight - this.data[name].contentElem.offsetHeight)\n\t\t\t\t\t\t+ (this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\telemPad.style.height = this.data[name].elemPadHeight + 'px';\n\t\t\t}, 100);\n\t\t\tthis.data[name].contentElem.appendChild(elemPad);\n\t\t\tconst scrollDist = this.data[name].initExpanded ? 2 : (this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight);\n\t\t\tthis.data[name].content.scrollByPoint(0, scrollDist, 0).then(() => {\n\t\t\t\tthis.data[name].contentHeight = this.data[name].contentEl.nativeElement.clientHeight;\n\t\t\t\tthis.data[name].content.scrollEvents = true;\n\t\t\t\tthis.data[name].content.ionScroll.subscribe(e => {\n\t\t\t\t\tif (e.detail.scrollTop === 0) {\n\t\t\t\t\t\tthis.data[name].contentElem.style.paddingTop = 0;\n\t\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.height = (this.data[name].contentHeight - (this.data[name].shrinkexpandHeight + supertabsToolbar.clientHeight)) + 'px';\n\t\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.top = (this.data[name].shrinkexpandHeight + supertabsToolbar.clientHeight + this.data[name].paddingTop) + 'px';\n\t\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\t\telemPad.style.height = (this.data[name].elemPadHeight + this.data[name].shrinkexpandHeight + this.data[name].paddingTop + supertabsToolbar.clientHeight) + 'px';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst s = e.detail.scrollTop;\n\t\t\t\t\t\tthis.data[name].contentElem.style.paddingTop = (this.data[name].shrinkexpandHeight + supertabsToolbar.clientHeight + this.data[name].paddingTop) + 'px';\n\t\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.height = (this.data[name].contentHeight + this.data[name].shrinkexpandHeight + supertabsToolbar.clientHeight) + 'px';\n\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.top = null;\n\t\t\t\t\t\tthis.data[name].contentElem.scrollTop = s;\n\t\t\t\t\t\telemPad.style.height = this.data[name].elemPadHeight + 'px';\n\t\t\t\t\t}\n\t\t\t\t\tif (this.data[name].initExpanded) {\n\t\t\t\t\t\tthis.data[name].content.scrollToPoint(0, 0, 0).then(() => {\n\t\t\t\t\t\t\tthis.data[name].initExpanded = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\tconst height = Math.max(Math.min(this.data[name].shrinkexpandHeight, this.data[name].shrinkexpandHeight - e.detail.scrollTop), this.data[name].shrinkexpandheaderHeight);\n\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\telem.style.transform = 'translate3d(0, ' + -(Math.min((this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight) / 2, e.detail.scrollTop / 2)) + 'px, 0)';\n\t\t\t\t\tparentElem.style.height = height + 'px';\n\t\t\t\t\tconst scrollFactor = Math.min(e.detail.scrollTop / (this.data[name].shrinkexpandHeight / 2), 1);\n\t\t\t\t\tif (scrollFactor >= 0) {\n\t\t\t\t\t\tconst currentValOpacity = overlay.style.getPropertyValue('--opacity');\n\t\t\t\t\t\tconst newValOpacity = this.data[name].opacityFactor / 10 * scrollFactor;\n\t\t\t\t\t\tif (currentValOpacity !== newValOpacity) {\n\t\t\t\t\t\t\toverlay.style.setProperty('--opacity', newValOpacity);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst currentValBlur = elem.style.getPropertyValue('--blur');\n\t\t\t\t\t\tconst newValBlur = (this.data[name].blurFactor * scrollFactor) + 'px';\n\t\t\t\t\t\tif (currentValBlur !== newValBlur) {\n\t\t\t\t\t\t\telem.style.setProperty('--blur', newValBlur);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsupertabsToolbar.style.transform = 'translate3d(0, ' + height + 'px, 0)';\n\t\t\t\t\t// event emitter\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.data[name].guardEvents = false;\n\t\t\t\t\t}, 10);\n\t\t\t\t\tif (this.data[name].lastscroll !== height && !this.data[name].guardEvents) {\n\t\t\t\t\t\tthis.scroll.next({name: this.data[name].parent ? this.data[name].parent : name, height});\n\t\t\t\t\t}\n\t\t\t\t\tthis.data[name].lastscroll = height;\n\t\t\t\t\t//\n\t\t\t\t});\n\t\t\t\t// catch the last tick\n\t\t\t\tthis.data[name].content.ionScrollEnd.subscribe(() => {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (this.data[name].contentElem.scrollTop === 0) {\n\t\t\t\t\t\t\tthis.data[name].contentElem.style.paddingTop = 0;\n\t\t\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.height = (this.data[name].contentHeight - (this.data[name].shrinkexpandHeight + supertabsToolbar.clientHeight)) + 'px';\n\t\t\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\t\t\tthis.data[name].contentEl.nativeElement.style.top = (this.data[name].shrinkexpandHeight + supertabsToolbar.clientHeight + this.data[name].paddingTop) + 'px';\n\t\t\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\t\t\telemPad.style.height = (this.data[name].elemPadHeight + this.data[name].shrinkexpandHeight + this.data[name].paddingTop + supertabsToolbar.clientHeight) + 'px';\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 10);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tresetContent(name) {\n\t\tif (!this.data[name].preserveHeader) {\n\t\t\tconst parent = this.data[name].parent;\n\t\t\tconst height = parseInt(this.data[parent].header.nativeElement.parentNode.style.height, 10);\n\t\t\tif (height <= this.data[name].shrinkexpandHeight && height > this.data[name].shrinkexpandheaderHeight\n\t\t\t\t|| height === this.data[name].shrinkexpandheaderHeight\n\t\t\t\t&& this.data[name].contentElem.scrollTop < (this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight)) {\n\t\t\t\tthis.data[name].contentElem.scrollTop = this.data[name].shrinkexpandHeight - height;\n\t\t\t}\n\t\t} else {\n\t\t\tconst parent = this.data[name].parent;\n\t\t\tconst parentElem = this.data[parent].header.nativeElement.parentNode;\n\t\t\tconst elem = this.data[parent].header.nativeElement;\n\t\t\tconst tabscontentElem = this.data[parent].tabscontentElem;\n\t\t\tconst supertabsToolbar: any = tabscontentElem.nativeElement.querySelector('super-tabs-toolbar');\n\t\t\tconst overlay = this.data[parent].header.nativeElement.parentNode.querySelector('.overlay');\n\t\t\tconst height = Math.max(\n\t\t\t\tMath.min(this.data[name].shrinkexpandHeight, this.data[name].shrinkexpandHeight - this.data[name].contentElem.scrollTop), this.data[name].shrinkexpandheaderHeight\n\t\t\t);\n\t\t\telem.style.transform = 'translate3d(0, ' + -(Math.min(\n\t\t\t\t(this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight) / 2, this.data[name].contentElem.scrollTop / 2)\n\t\t\t) + 'px, 0)';\n\t\t\tparentElem.style.height = height + 'px';\n\t\t\t// eslint-disable-next-line max-len\n\t\t\toverlay.style.setProperty('--opacity', this.data[name].opacityFactor / 10 * Math.min(this.data[name].contentElem.scrollTop / (this.data[name].shrinkexpandHeight / 2), 1));\n\t\t\telem.style.setProperty('--blur', (this.data[name].blurFactor * Math.min(this.data[name].contentElem.scrollTop / (this.data[name].shrinkexpandHeight / 2), 1)) + 'px');\n\t\t\tsupertabsToolbar.style.transform = 'translate3d(0, ' + height + 'px, 0)';\n\t\t\tthis.scroll.next({name: this.data[name].parent, height});\n\t\t}\n\t}\n\n\tfindCurrentTab(parent) {\n\t\tconst i = this.data[parent].supertabs.activeTabIndex;\n\t\tconst tabs = this.data[parent].tabscontentElem.nativeElement.querySelectorAll('super-tab');\n\t\tconst results = [];\n\t\tfor (const tab of tabs) {\n\t\t\tconst cont = tab.querySelector('ion-content');\n\t\t\tif (cont.attributes['hidenav-sh-content']) {\n\t\t\t\tresults.push(cont.attributes['hidenav-sh-content'].nodeValue);\n\t\t\t} else {\n\t\t\t\tresults.push(null);\n\t\t\t}\n\t\t}\n\t\tif (results[i] != null) {\n\t\t\treturn results[i];\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic expand(parent, duration = 200) {\n\t\tif (this.data[parent].content) {\n\t\t\tthis.data[parent].content.scrollToPoint(0, 0, duration);\n\t\t} else {\n\t\t\tif (!this.data[parent].preserveHeader) {\n\t\t\t\tconst names = [];\n\t\t\t\tfor (const key in this.data) {\n\t\t\t\t\tif (this.data[key].parent === parent) {\n\t\t\t\t\t\tnames.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (const name of names) {\n\t\t\t\t\tthis.data[name].content.scrollToPoint(0, 0, duration);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst currentTab = this.findCurrentTab(parent);\n\t\t\t\tthis.data[currentTab].content.scrollToPoint(0, 0, duration);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic shrink(parent, duration = 200) {\n\t\tconst height = parseInt(this.data[parent].header.nativeElement.parentNode.style.height, 10);\n\t\tif (height > this.data[parent].shrinkexpandheaderHeight) {\n\t\t\tif (this.data[parent].content) {\n\t\t\t\tthis.data[parent].content.scrollToPoint(0, (this.data[parent].shrinkexpandHeight - this.data[parent].shrinkexpandheaderHeight), duration);\n\t\t\t} else {\n\t\t\t\tif (!this.data[parent].preserveHeader) {\n\t\t\t\t\tconst names = [];\n\t\t\t\t\tfor (const key in this.data) {\n\t\t\t\t\t\tif (this.data[key].parent === parent) {\n\t\t\t\t\t\t\tnames.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor (const name of names) {\n\t\t\t\t\t\tthis.data[name].content.scrollToPoint(0, (this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight), duration);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst currentTab = this.findCurrentTab(parent);\n\t\t\t\t\tthis.data[currentTab].content.scrollToPoint(0, (this.data[currentTab].shrinkexpandHeight - this.data[currentTab].shrinkexpandheaderHeight), duration);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic toggle(parent, duration = 200) {\n\t\tif (this.data[parent].content) {\n\t\t\tconst height = parseInt(this.data[parent].header.nativeElement.parentNode.style.height, 10);\n\t\t\tif (height < this.data[parent].shrinkexpandHeight) {\n\t\t\t\tthis.data[parent].content.scrollToPoint(0, 0, duration);\n\t\t\t} else {\n\t\t\t\tthis.data[parent].content.scrollToPoint(0, (this.data[parent].shrinkexpandHeight - this.data[parent].shrinkexpandheaderHeight), duration);\n\t\t\t}\n\n\t\t} else {\n\t\t\tif (!this.data[parent].preserveHeader) {\n\t\t\t\tconst names = [];\n\t\t\t\tfor (const key in this.data) {\n\t\t\t\t\tif (this.data[key].parent === parent) {\n\t\t\t\t\t\tnames.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst height = parseInt(this.data[parent].header.nativeElement.parentNode.style.height, 10);\n\t\t\t\tfor (const name of names) {\n\t\t\t\t\tif (height < this.data[name].shrinkexpandHeight) {\n\t\t\t\t\t\tthis.data[name].content.scrollToPoint(0, 0, duration);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.data[name].content.scrollToPoint(0, (this.data[name].shrinkexpandHeight - this.data[name].shrinkexpandheaderHeight), duration);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst currentTab = this.findCurrentTab(parent);\n\t\t\t\tconst height = parseInt(this.data[parent].header.nativeElement.parentNode.style.height, 10);\n\n\t\t\t\tif (height < this.data[currentTab].shrinkexpandHeight) {\n\t\t\t\t\tthis.data[currentTab].content.scrollToPoint(0, 0, duration);\n\t\t\t\t} else {\n\t\t\t\t\tthis.data[currentTab].content.scrollToPoint(0, (this.data[currentTab].shrinkexpandHeight - this.data[currentTab].shrinkexpandheaderHeight), duration);\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t}\n}\n","import { AfterViewInit, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, Output } from '@angular/core';\nimport { HidenavShService } from './hidenav-sh-service.service';\n\n@Component({\n    selector: 'hidenav-stretchheader',\n    template: `\n        <style>\n            .overlay {\n                position: absolute;\n                height: inherit;\n                width: inherit;\n                z-index: 101;\n                pointer-events: none;\n                /*opacity: var(--opacity);*/\n                background: var(--color);\n                filter: opacity(0);\n                --opacity: 0;\n                --color: black;\n            }\n\n            :host {\n                --blur: 0;\n                z-index: 1;\n            }\n\n            :host.md {\n                -webkit-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.53);\n                -moz-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.53);\n                box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.53);\n            }\n\n            :host.ios {\n                border-bottom: 1px solid #5a5e63;\n            }\n        </style>\n        <div class=\"overlay\"></div>\n        <ng-content></ng-content>\n    `\n})\nexport class HidenavStretchheaderComponent implements OnDestroy, AfterViewInit {\n    @ContentChild('shrinkexpand', {read: ElementRef}) header: ElementRef;\n    @ContentChildren('static', {read: ElementRef}) static: any;\n    @HostBinding('class') class: any;\n    name: any;\n    @Input('no-border') noBorder: string;\n    @Input('header-height') headerHeight: any;\n    @Input('init-expanded') initExpanded: any;\n    @Input('opacity-color') opacityColor: any;\n    @Input('opacity-factor') opacityFactor: any;\n    @Input('blur-factor') blurFactor: any;\n    @Input('preserve-header') preserveHeader: any;\n\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    @Output() scroll: EventEmitter<number> = new EventEmitter<number>();\n\n    constructor(public el: ElementRef, public globals: HidenavShService) {\n    }\n\n    ngAfterViewInit() {\n        const observer = new MutationObserver((mutations) => {\n            mutations.forEach(() => {\n                if (this.el.nativeElement.getAttribute('hidenav-sh-header').length > 0) {\n                    this.name = this.el.nativeElement.getAttribute('hidenav-sh-header');\n                    this.start();\n                    observer.disconnect();\n                }\n            });\n        });\n        observer.observe(this.el.nativeElement, {\n            attributes: true,\n        });\n    }\n\n    start() {\n        if (this.name) {\n            if (!this.globals.data[this.name]) {\n                this.globals.data[this.name] = [];\n            }\n            this.globals.data[this.name].header = this.header;\n            this.globals.data[this.name].static = this.static;\n            this.globals.initiate(this.name);\n            this.globals.scroll.subscribe(res => {\n                if (res.name === this.name) {\n                    this.scroll.emit(res.height);\n                }\n            });\n            if (this.noBorder !== 'true') {\n                const mode = document.querySelector('html').getAttribute('mode');\n                setTimeout(() => {\n                    if (!this.class) {\n                        this.class = mode;\n                    } else {\n                        this.class += ' ' + mode;\n                    }\n                }, 0);\n            }\n        }\n    }\n\n    expand(duration = 200) {\n        this.globals.expand(this.name, duration);\n    }\n\n    shrink(duration = 200) {\n        this.globals.shrink(this.name, duration);\n    }\n\n    toggle(duration = 200) {\n        this.globals.toggle(this.name, duration);\n    }\n\n    ngOnDestroy() {\n        if (this.name) {\n            delete this.globals.data[this.name].header;\n        }\n    }\n\n}\n","import { AfterViewInit, Directive, ElementRef, Host, Input, OnDestroy, Optional, Self } from '@angular/core';\nimport { IonContent } from '@ionic/angular';\nimport { HidenavShService } from './hidenav-sh-service.service';\nimport $ from 'jquery';\n\n@Directive({\n\tselector: '[hidenav-sh-content]'\n})\nexport class HidenavShContentDirective implements AfterViewInit, OnDestroy {\n\n\tparent: any;\n\tname: any;\n\n\t@Input('hidenav-tabspage') hntb: any;\n\n\tconstructor(@Host() @Self() @Optional() public el: IonContent, public contentElem: ElementRef, private globals: HidenavShService) {\n\n\t}\n\n\tngAfterViewInit() {\n\t\tif (!this.contentElem.nativeElement.hasAttribute('hidenav-tabspage')) {\n\t\t\tthis.name = this.globals.requestName();\n\t\t\t$(this.contentElem.nativeElement).attr('hidenav-sh-content', this.name);\n\t\t\t$('hidenav-stretchheader', $(this.contentElem.nativeElement).parents()\n\t\t\t\t.get().find(itm => $(itm).find('[hidenav-header]').length)).attr('hidenav-sh-header', this.name);\n\t\t\tthis.start();\n\t\t} else {\n\t\t\tlet counter = 0;\n\t\t\tconst int = setInterval(() => {\n\t\t\t\tconst x = $(this.contentElem.nativeElement).closest('[hidenav-sh-tabscontent]').attr('hidenav-sh-tabscontent');\n\t\t\t\tcounter++;\n\t\t\t\tif (x && x.length > 0) {\n\t\t\t\t\tthis.parent = $(this.contentElem.nativeElement).closest('[hidenav-sh-tabscontent]').attr('hidenav-sh-tabscontent');\n\t\t\t\t\tthis.name = this.globals.requestTabName(this.parent);\n\t\t\t\t\t$(this.contentElem.nativeElement).attr('hidenav-sh-content', this.name);\n\t\t\t\t\t$(this.contentElem.nativeElement).attr('hidenav-tabspage', this.parent);\n\t\t\t\t\tthis.start();\n\t\t\t\t\tclearInterval(int);\n\t\t\t\t} else if (counter > 50) {\n\t\t\t\t\tclearInterval(int);\n\t\t\t\t}\n\t\t\t}, 50);\n\t\t}\n\t}\n\n\tstart() {\n\t\tif (this.name) {\n\t\t\tif (!this.globals.data[this.name]) {\n\t\t\t\tthis.globals.data[this.name] = [];\n\t\t\t}\n\t\t\tthis.globals.data[this.name].content = this.el;\n\t\t\tthis.globals.data[this.name].contentEl = this.contentElem;\n\t\t\tif (this.parent) {\n\t\t\t\tthis.globals.data[this.name].parent = this.parent;\n\t\t\t}\n\t\t\tthis.globals.initiate(this.name);\n\t\t}\n\t}\n\n\n\tngOnDestroy() {\n\t\tif (this.name) {\n\t\t\tdelete this.globals.data[this.name].content;\n\t\t}\n\t}\n\n}\n","import { AfterViewInit, ContentChild, Directive, ElementRef, Host, OnDestroy, Optional, Self } from '@angular/core';\nimport { IonContent } from '@ionic/angular';\nimport { SuperTabs } from '@ionic-super-tabs/angular';\nimport { HidenavShService } from './hidenav-sh-service.service';\nimport $ from 'jquery';\n\n@Directive({\n\tselector: '[hidenav-sh-tabscontent]'\n})\nexport class HidenavShTabscontentDirective implements AfterViewInit, OnDestroy {\n\n\tname: any;\n\t@ContentChild(SuperTabs) supertabs: SuperTabs;\n\n\tconstructor(public contentElem: ElementRef, @Host() @Self() @Optional() public el: IonContent, private globals: HidenavShService) {\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.name = this.globals.requestName();\n\t\tthis.contentElem.nativeElement.setAttribute('hidenav-sh-tabscontent', this.name);\n\t\t// eslint-disable-next-line max-len\n\t\t$('hidenav-stretchheader', $(this.contentElem.nativeElement).parents().get().find(itm => $(itm).find('[hidenav-stretchheader]').length)).attr('hidenav-sh-header', this.name);\n\t\tif (this.name) {\n\t\t\tif (!this.globals.data[this.name]) {\n\t\t\t\tthis.globals.data[this.name] = [];\n\t\t\t}\n\t\t\tthis.globals.data[this.name].tabscontent = this.el;\n\t\t\tthis.globals.data[this.name].tabscontentElem = this.contentElem;\n\t\t\tthis.globals.data[this.name].supertabs = this.supertabs;\n\t\t\tthis.globals.initiate(this.name);\n\n\t\t\tthis.supertabs.tabChange.subscribe(e => {\n\t\t\t\tconst i = e.detail.index;\n\t\t\t\tconst tabs = this.contentElem.nativeElement.querySelectorAll('super-tab');\n\t\t\t\tconst results = [];\n\t\t\t\tfor (const tab of tabs) {\n\t\t\t\t\tconst cont = tab.querySelector('ion-content');\n\t\t\t\t\tif (cont != null && !!cont.attributes['hidenav-sh-content'] && cont.attributes['hidenav-sh-content'].nodeValue !== '') {\n\t\t\t\t\t\tresults.push(cont.attributes['hidenav-sh-content'].nodeValue);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresults.push(null);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (results[i] != null) {\n\t\t\t\t\tthis.globals.resetContent(results[i]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tdelete this.globals.data[this.name].tabscontent;\n\t}\n\n}\n","import { NgModule, Provider, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HidenavTabscontentDirective } from './hidenav-tabscontent.directive';\nimport { HidenavContentDirective } from './hidenav-content.directive';\nimport { HidenavHeaderDirective } from './hidenav-header.directive';\nimport { HidenavStretchheaderComponent } from './hidenav-stretchheader.component';\nimport { HidenavShContentDirective } from './hidenav-sh-content.directive';\nimport { HidenavShTabscontentDirective } from './hidenav-sh-tabscontent.directive';\n\ndeclare module '@angular/core' {\n\tinterface ModuleWithProviders<T = any> {\n\t\tngModule: Type<T>;\n\t\tproviders?: Provider[];\n\t}\n}\n\n@NgModule({\n\timports: [\n\t\tCommonModule\n\t],\n\tdeclarations: [\n\t\tHidenavTabscontentDirective,\n\t\tHidenavContentDirective,\n\t\tHidenavHeaderDirective,\n\t\tHidenavStretchheaderComponent,\n\t\tHidenavShContentDirective,\n\t\tHidenavShTabscontentDirective\n\t],\n\texports: [\n\t\tHidenavTabscontentDirective,\n\t\tHidenavContentDirective,\n\t\tHidenavHeaderDirective,\n\t\tHidenavStretchheaderComponent,\n\t\tHidenavShContentDirective,\n\t\tHidenavShTabscontentDirective\n\t]\n})\nexport class HidenavModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}