{"version":3,"file":"ajf-ionic-page-slider.mjs","sources":["../../../projects/ionic/page-slider/src/page-slider.ts","../../../projects/ionic/page-slider/src/page-slider.html","../../../projects/ionic/page-slider/src/page-slider-module.ts","../../../projects/ionic/page-slider/src/public_api.ts","../../../projects/ionic/page-slider/src/ajf-ionic-page-slider.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfPageSlider as CorePageSlider} from '@ajf/core/page-slider';\nimport {AnimationBuilder} from '@angular/animations';\nimport {BooleanInput} from '@angular/cdk/coercion';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  OnDestroy,\n  Renderer2,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {merge, Subscription} from 'rxjs';\nimport {filter, map, startWith, switchMap} from 'rxjs/operators';\n\n@Component({\n  selector: 'ajf-page-slider',\n  templateUrl: 'page-slider.html',\n  styleUrls: ['page-slider.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AjfPageSlider extends CorePageSlider implements AfterContentInit, OnDestroy {\n  private _scrollSub = Subscription.EMPTY;\n\n  constructor(\n    animationBuilder: AnimationBuilder,\n    cdr: ChangeDetectorRef,\n    renderer: Renderer2,\n    private _el: ElementRef,\n  ) {\n    super(animationBuilder, cdr, renderer);\n  }\n\n  override ngAfterContentInit(): void {\n    super.ngAfterContentInit();\n    this._scrollSub = this.pages.changes\n      .pipe(\n        map(() => this.pages.toArray()),\n        startWith(this.pages.toArray()),\n        filter(pages => pages.length > 0),\n        switchMap(pages => merge(...pages.map(page => page.scroll))),\n      )\n      .subscribe(() => {\n        this._fixRippleFromRadioButton();\n        this._fixToggleButtons();\n      });\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    this._scrollSub.unsubscribe();\n  }\n\n  private _fixRippleFromRadioButton(): void {\n    try {\n      const el = this._el.nativeElement as HTMLElement;\n      const radioGroups = el.getElementsByTagName('ion-radio-group');\n      const radioGroup = radioGroups[0];\n      const items = radioGroup.getElementsByTagName('ion-item');\n      const item = items[0];\n      const ripples = item.shadowRoot!.firstElementChild!.getElementsByTagName('ion-ripple-effect');\n      const ripple = ripples.item(0) as HTMLIonRippleEffectElement;\n      const orig = ripple.style.opacity;\n      ripple.style.opacity = '0';\n      ripple.addRipple(0, 0).then(remove => {\n        remove();\n        ripple.style.opacity = orig;\n      });\n    } catch (e) {}\n  }\n\n  private _fixToggleButtons(): void {\n    try {\n      const el = this._el.nativeElement as HTMLElement;\n      const toggleButtons = el.getElementsByTagName('ion-toggle');\n      const toggleButtonsNum = toggleButtons.length;\n      for (let i = 0; i < toggleButtonsNum; i++) {\n        const toggleButton = toggleButtons.item(i) as HTMLIonToggleElement;\n        const inners =\n          toggleButton.shadowRoot!.firstElementChild!.getElementsByClassName('toggle-inner');\n        const inner = inners[0] as HTMLDivElement;\n        inner.setAttribute('style', 'will-change: auto');\n        setTimeout(() => {\n          try {\n            inner.removeAttribute('style');\n          } catch (e) {}\n        }, 0);\n      }\n    } catch (e) {}\n  }\n\n  static ngAcceptInputType_fixedOrientation: BooleanInput;\n  static ngAcceptInputType_hideNavigationButtons: BooleanInput;\n}\n","<div #content class=\"ajf-page-slider-content\">\n  <div #body [ngClass]=\"'ajf-page-slider-' + orientation\"\n      (touchstart)=\"onTouchStart($event)\"\n      (touchmove)=\"onTouchMove($event)\"\n      (touchend)=\"onTouchEnd()\"\n      (mousewheel)=\"onMouseWheel($event)\" class=\"ajf-page-slider-body\">\n    <ng-content></ng-content>\n  </div>\n</div>\n<ion-toolbar *ngIf=\"!hideNavigationButtons\" class=\"ajf-toolbar\">\n  <ng-content select=\"[ajfPageSliderBar]\"></ng-content>\n  <ion-buttons slot=\"end\">\n    <ion-button *ngIf=\"!fixedOrientation\" (click)=\"switchOrientation()\">\n      <ion-icon [class.ajf-icon-rotated]=\"orientation === 'horizontal'\"\n          name=\"swap-horizontal\"></ion-icon>\n    </ion-button>\n    <ion-button (click)=\"slide({dir: 'up'})\" fill=\"solid\" color=\"secondary\">\n      <ion-icon *ngIf=\"orientation === 'horizontal'\" name=\"arrow-back\"></ion-icon>\n      <ion-icon *ngIf=\"orientation === 'vertical'\" name=\"arrow-up\"></ion-icon>\n    </ion-button>\n    <ion-button (click)=\"slide({dir: 'down'})\" fill=\"solid\" color=\"secondary\">\n      <ion-icon *ngIf=\"orientation === 'horizontal'\" name=\"arrow-forward\"></ion-icon>\n      <ion-icon *ngIf=\"orientation === 'vertical'\" name=\"arrow-down\"></ion-icon>\n    </ion-button>\n  </ion-buttons>\n</ion-toolbar>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfPageSliderModule as CorePageSliderModule} from '@ajf/core/page-slider';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {IonicModule} from '@ionic/angular';\n\nimport {AjfPageSlider} from './page-slider';\n\n@NgModule({\n  imports: [CommonModule, CorePageSliderModule, IonicModule],\n  declarations: [AjfPageSlider],\n  exports: [AjfPageSlider, CorePageSliderModule],\n})\nexport class AjfPageSliderModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './page-slider';\nexport * from './page-slider-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["CorePageSlider","CorePageSliderModule"],"mappings":"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"}