{"version":3,"file":"ajf-core-page-slider.mjs","sources":["../../../projects/core/page-slider/src/page-slider-item.ts","../../../projects/core/page-slider/src/page-slider-item.html","../../../projects/core/page-slider/src/page-slider-item-scroll-direction.ts","../../../projects/core/page-slider/src/page-slider-slide-options.ts","../../../projects/core/page-slider/src/page-slider.ts","../../../projects/core/page-slider/src/page-slider-module.ts","../../../projects/core/page-slider/src/public_api.ts","../../../projects/core/page-slider/src/ajf-core-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\n/// <reference types=\"resize-observer-browser\" />\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  Renderer2,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {Observable, Subscription} from 'rxjs';\nimport {debounceTime} from 'rxjs/operators';\n\nimport {AjfPageSliderItemScrollDirection} from './page-slider-item-scroll-direction';\n\n@Component({\n  selector: 'ajf-page-slider-item',\n  templateUrl: 'page-slider-item.html',\n  styleUrls: ['page-slider-item.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfPageSliderItem implements OnDestroy {\n  @ViewChild('wrapper', {static: true}) wrapper!: ElementRef;\n  @ViewChild('content', {static: true}) content!: ElementRef;\n\n  private _scrollEvt = new EventEmitter<{x: number; y: number}>();\n  @Output()\n  readonly scroll: Observable<{x: number; y: number}> = this._scrollEvt as Observable<{\n    x: number;\n    y: number;\n  }>;\n\n  /**\n   * True if the Slider Item belongs to a repeting slide.\n   */\n  private _isRepeating: boolean = false;\n  get isRepeating(): boolean {\n    return this._isRepeating;\n  }\n  @Input()\n  set isRepeating(rep: boolean) {\n    this._isRepeating = rep;\n  }\n\n  /**\n   * True if the Slider Item is the last item of a repeating slide.\n   */\n  private _isRepeatingLast: boolean = false;\n  get isRepeatingLast(): boolean {\n    return this._isRepeatingLast;\n  }\n  @Input()\n  set isRepeatingLast(rep: boolean) {\n    this._isRepeatingLast = rep;\n  }\n\n  private _scrollX = 0;\n  private _scrollY = 0;\n  private _resizeObserver: ResizeObserver | null = null;\n  private _resizeEvent: EventEmitter<void> = new EventEmitter<void>();\n  private _resizeSub: Subscription = Subscription.EMPTY;\n\n  constructor(private _el: ElementRef, private _renderer: Renderer2) {\n    if (typeof ResizeObserver !== 'undefined') {\n      this._resizeObserver = new ResizeObserver(() => this._onResize());\n      this._resizeObserver.observe(this._el.nativeElement);\n    }\n\n    this._resizeSub = this._resizeEvent\n      .pipe(debounceTime(300))\n      .subscribe(() => this._fixScrollOnResize());\n  }\n\n  ngOnDestroy(): void {\n    if (this._resizeObserver) {\n      this._resizeObserver.unobserve(this._el.nativeElement);\n    }\n    this._resizeEvent.complete();\n    this._resizeSub.unsubscribe();\n  }\n\n  setScroll(dir: AjfPageSliderItemScrollDirection, amount: number, _duration: number): boolean {\n    if (this._el == null || this.wrapper == null || amount === 0) {\n      return false;\n    }\n    const el = this._el.nativeElement;\n    const wrapper = this.wrapper.nativeElement;\n    let containerSize, wrapperSize, currentScroll;\n    if (dir === 'x') {\n      containerSize = el.clientWidth;\n      wrapperSize = wrapper.clientWidth;\n      currentScroll = this._scrollX;\n    } else {\n      containerSize = el.clientHeight;\n      wrapperSize = wrapper.clientHeight;\n      currentScroll = this._scrollY;\n    }\n    const maxScroll = containerSize - wrapperSize;\n    if (\n      wrapperSize <= containerSize ||\n      (currentScroll === maxScroll && amount < 0) ||\n      (currentScroll === 0 && amount > 0)\n    ) {\n      return false;\n    }\n    if (amount < 0) {\n      if (dir === 'x') {\n        this._scrollX = Math.max(maxScroll, this._scrollX + amount);\n      } else {\n        this._scrollY = Math.max(maxScroll, this._scrollY + amount);\n      }\n    } else {\n      if (dir === 'x') {\n        this._scrollX = Math.min(0, this._scrollX + amount);\n      } else {\n        this._scrollY = Math.min(0, this._scrollY + amount);\n      }\n    }\n    this._renderer.setStyle(\n      wrapper,\n      'transform',\n      `translate(${this._scrollX}px, ${this._scrollY}px)`,\n    );\n    this._scrollEvt.emit({x: this._scrollX, y: this._scrollY});\n    return true;\n  }\n\n  private _onResize(): void {\n    this._resizeEvent.emit();\n  }\n\n  private _fixScrollOnResize(): void {\n    if (this.content == null || this.wrapper == null) {\n      return;\n    }\n    const content = this.content.nativeElement;\n    const wrapper = this.wrapper.nativeElement;\n    const maxScrollX = Math.min(0, content.clientWidth - wrapper.clientWidth);\n    const maxScrollY = Math.min(0, content.clientHeight - wrapper.clientHeight);\n    if (\n      maxScrollX !== 0 ||\n      maxScrollY !== 0 ||\n      (maxScrollX === 0 && this._scrollX !== 0) ||\n      (maxScrollY === 0 && this._scrollY !== 0)\n    ) {\n      this._scrollX = Math.max(\n        maxScrollX,\n        this._scrollX - (content.scrollLeft != null ? content.scrollLeft : 0),\n      );\n      this._scrollY = Math.max(\n        maxScrollY,\n        this._scrollY - (content.scrollTop != null ? content.scrollTop : 0),\n      );\n      content.scrollTop = content.scrollLeft = 0;\n      this._renderer.setStyle(\n        wrapper,\n        'transform',\n        `translate(${this._scrollX}px, ${this._scrollY}px)`,\n      );\n      this._scrollEvt.emit({x: this._scrollX, y: this._scrollY});\n    }\n  }\n}\n","<div #content class=\"ajf-page-slider-item-content\">\n  <div #wrapper class=\"ajf-page-slider-item-content-wrapper\">\n    <ng-content></ng-content>\n  </div>\n</div>\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 type AjfPageSliderItemScrollDirection = 'x' | 'y';\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 type AjfHorizontalPageSliderSlideDirection = 'left' | 'right';\nexport type AjfVerticalPageSliderSlideDirection = 'up' | 'down';\nexport type AjfPageSliderSlideDirection =\n  | 'back'\n  | 'forward'\n  | AjfHorizontalPageSliderSlideDirection\n  | AjfVerticalPageSliderSlideDirection;\n\nexport interface AjfPageSliderSlideOptions {\n  dir?: AjfPageSliderSlideDirection;\n  to?: number;\n}\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 {animate, AnimationBuilder, style} from '@angular/animations';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n  AfterContentInit,\n  ChangeDetectorRef,\n  ContentChildren,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  Renderer2,\n  ViewChild,\n} from '@angular/core';\nimport {Observable, Subscription} from 'rxjs';\nimport {filter, map, scan, throttleTime} from 'rxjs/operators';\n\nimport {AjfPageSliderItem} from './page-slider-item';\nimport {AjfPageSliderSlideOptions} from './page-slider-slide-options';\n\nexport type AjfPageSliderOrientation = 'horizontal' | 'vertical';\n\ninterface Point {\n  x: number;\n  y: number;\n  time: number;\n}\n\ninterface Movement {\n  velocityX: number;\n  velocityY: number;\n  deltaX: number;\n  deltaY: number;\n  deltaTime: number;\n}\n\ninterface MousheWheelMove {\n  dir: 'x' | 'y';\n  amount: number;\n}\n\n@Directive()\nexport class AjfPageSlider implements AfterContentInit, OnDestroy {\n  @ViewChild('body', {static: true}) body!: ElementRef;\n  @ContentChildren(AjfPageSliderItem, {descendants: true})\n  pages!: QueryList<AjfPageSliderItem>;\n\n  private _pageScrollFinish: EventEmitter<void> = new EventEmitter<void>();\n  @Output()\n  readonly pageScrollFinish: Observable<void> = this._pageScrollFinish as Observable<void>;\n\n  private _orientationChange: EventEmitter<AjfPageSliderOrientation> =\n    new EventEmitter<AjfPageSliderOrientation>();\n  @Output()\n  readonly orientationChange: Observable<AjfPageSliderOrientation> = this\n    ._orientationChange as Observable<AjfPageSliderOrientation>;\n\n  @Input() duration = 300;\n\n  private _orientation: AjfPageSliderOrientation = 'horizontal';\n  get orientation(): AjfPageSliderOrientation {\n    return this._orientation;\n  }\n  @Input()\n  set orientation(orientation: AjfPageSliderOrientation) {\n    if (this._orientation !== orientation) {\n      this._orientation = orientation;\n      this._cdr.markForCheck();\n      this._updateSize();\n      this._restoreCurrentPage();\n      this._orientationChange.emit(this._orientation);\n    }\n  }\n\n  private _fixedOrientation = true;\n  get fixedOrientation(): boolean {\n    return this._fixedOrientation;\n  }\n  @Input()\n  set fixedOrientation(_: boolean) {\n    // Keep true to disable the change orientation button\n    // this._fixedOrientation = coerceBooleanProperty(fixedOrientation);\n    // this._cdr.markForCheck();\n  }\n\n  private _currentPage = -1;\n  get currentPage(): number {\n    return this._currentPage;\n  }\n  @Input()\n  set currentPage(currentPage: number) {\n    if (this.pages == null || currentPage < 0 || currentPage >= this.pages.length) {\n      return;\n    }\n    this._currentPage = currentPage;\n    this._doSlide();\n  }\n\n  private _hideNavigationButtons: boolean = false;\n  get hideNavigationButtons(): boolean {\n    return this._hideNavigationButtons;\n  }\n  @Input()\n  set hideNavigationButtons(hnb: boolean) {\n    this._hideNavigationButtons = coerceBooleanProperty(hnb);\n    this._cdr.markForCheck();\n  }\n\n  /**\n   * If true, disable scroll movement calculation in the form.\n   * If false, when touching the form fields, scroll to the next field.\n   */\n  private _disableTouchMovement = true;\n\n  private _animating = false;\n  private _pagesSub: Subscription = Subscription.EMPTY;\n\n  private _currentOrigin: Point | null = null;\n  private _mouseWheelEvt: EventEmitter<MousheWheelMove> = new EventEmitter<MousheWheelMove>();\n  private _mouseWheelSub: Subscription = Subscription.EMPTY;\n\n  constructor(\n    private _animationBuilder: AnimationBuilder,\n    private _cdr: ChangeDetectorRef,\n    private _renderer: Renderer2,\n  ) {\n    this._mouseWheelSub = this._mouseWheelEvt\n      .pipe(\n        map(evt => {\n          const page = this._getCurrentPage();\n          if (page == null) {\n            return null;\n          }\n          return {evt, res: page.setScroll(evt.dir, evt.amount, 0)};\n        }),\n        filter(\n          r =>\n            r != null &&\n            r.res === false &&\n            ((r.evt.dir === 'x' && this.orientation === 'horizontal') ||\n              (r.evt.dir === 'y' && this.orientation === 'vertical')),\n        ),\n        map(r => r!.evt.amount),\n        scan((acc, val) => {\n          if (acc === 0) {\n            return val;\n          }\n          if (acc / Math.abs(acc) !== val / Math.abs(val)) {\n            return 0;\n          }\n          return acc + val;\n        }, 0),\n        filter(val => !this._animating && Math.abs(val) > 150),\n        throttleTime(1500),\n      )\n      .subscribe(val => {\n        this._mouseWheelEvt.emit({dir: 'x', amount: val > 0 ? -1 : +1});\n        this.slide({dir: val > 0 ? 'back' : 'forward'});\n      });\n  }\n\n  ngAfterContentInit(): void {\n    this._pagesSub = this.pages.changes.subscribe(() => {\n      this._onSlidesChange();\n      this._cdr.detectChanges();\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._pagesSub.unsubscribe();\n    this._mouseWheelEvt.complete();\n    this._mouseWheelSub.unsubscribe();\n    this._orientationChange.complete();\n  }\n\n  switchOrientation(): void {\n    if (this._orientation === 'horizontal') {\n      this.orientation = 'vertical';\n    } else {\n      this.orientation = 'horizontal';\n    }\n  }\n\n  slide(opts: AjfPageSliderSlideOptions): void {\n    if (this.pages == null) {\n      return;\n    }\n    if (opts.dir) {\n      if (opts.dir === 'back' || opts.dir === 'up' || opts.dir === 'left') {\n        this._slideBack();\n      } else if (opts.dir === 'forward' || opts.dir === 'down' || opts.dir === 'right') {\n        this._slideForward();\n      }\n    } else if (opts.to != null) {\n      this._slideTo(opts.to);\n    }\n  }\n\n  onMouseWheel(event: Event): void {\n    const evt = event as WheelEvent;\n    if (evt.deltaX == null || evt.deltaY == null || this._disableTouchMovement) {\n      return;\n    }\n    const absDeltaX = Math.abs(evt.deltaX);\n    const absDeltaY = Math.abs(evt.deltaY);\n    if (absDeltaX === 0 && absDeltaY === 0) {\n      return;\n    }\n    if (absDeltaX > absDeltaY) {\n      this._mouseWheelEvt.emit({dir: 'x', amount: -evt.deltaX});\n    } else {\n      this._mouseWheelEvt.emit({dir: 'y', amount: -evt.deltaY});\n    }\n  }\n\n  onTouchStart(evt: TouchEvent): void {\n    if (\n      evt.touches == null ||\n      evt.touches.length === 0 ||\n      this._animating ||\n      this._disableTouchMovement\n    ) {\n      return;\n    }\n    this._currentOrigin = {\n      x: evt.touches[0].clientX,\n      y: evt.touches[0].clientY,\n      time: +new Date(),\n    };\n  }\n\n  onTouchMove(evt: TouchEvent): void {\n    if (\n      evt.touches == null ||\n      evt.touches.length === 0 ||\n      this._currentOrigin == null ||\n      this._animating ||\n      this._disableTouchMovement\n    ) {\n      return;\n    }\n    const point: Point = {\n      x: evt.touches[0].clientX,\n      y: evt.touches[0].clientY,\n      time: +new Date(),\n    };\n    const movement = this._calculateMovement(point);\n    this._currentOrigin = point;\n\n    if (movement.velocityX === 0 && movement.velocityY === 0) {\n      return;\n    }\n    const absVelocityX = Math.abs(movement.velocityX);\n    const absVelocityY = Math.abs(movement.velocityY);\n    if (absVelocityX > absVelocityY) {\n      if (\n        this.orientation === 'horizontal' &&\n        absVelocityX > 1.5 &&\n        Math.abs(movement.deltaX) > 50\n      ) {\n        this._resetCurrentOrigin();\n        this.slide({dir: movement.velocityX < 0 ? 'forward' : 'back'});\n      } else {\n        const page = this._getCurrentPage();\n        if (page != null) {\n          page.setScroll('x', movement.deltaX, movement.deltaTime);\n        }\n      }\n    } else {\n      if (this.orientation === 'vertical' && absVelocityY > 1.5 && Math.abs(movement.deltaY) > 50) {\n        this._resetCurrentOrigin();\n        this.slide({dir: movement.velocityY < 0 ? 'forward' : 'back'});\n      } else {\n        const page = this._getCurrentPage();\n        if (page != null) {\n          page.setScroll('y', movement.deltaY, movement.deltaTime);\n        }\n      }\n    }\n  }\n\n  onTouchEnd(): void {\n    if (this._disableTouchMovement) {\n      return;\n    }\n    this._resetCurrentOrigin();\n  }\n\n  isCurrentPageLong(): boolean {\n    const curPage = this._getCurrentPage();\n    if (curPage == null) {\n      return false;\n    }\n    return curPage.wrapper.nativeElement.clientHeight > curPage.content.nativeElement.clientHeight;\n  }\n\n  private _resetCurrentOrigin(): void {\n    this._currentOrigin = null;\n  }\n\n  private _getCurrentPage(): AjfPageSliderItem | null {\n    if (this.pages == null || this.currentPage < 0 || this.currentPage >= this.pages.length) {\n      return null;\n    }\n    return this.pages.toArray()[this.currentPage];\n  }\n\n  private _calculateMovement(point: Point): Movement {\n    const deltaX = point.x - this._currentOrigin!.x;\n    const deltaY = point.y - this._currentOrigin!.y;\n    const deltaTime = point.time - this._currentOrigin!.time;\n    return {\n      velocityX: deltaX / deltaTime,\n      deltaX,\n      velocityY: deltaY / deltaTime,\n      deltaY,\n      deltaTime,\n    };\n  }\n\n  private _slideBack(): void {\n    if (this._currentPage <= 0) {\n      return;\n    }\n    this.currentPage = this._currentPage - 1;\n  }\n\n  private _slideForward(): void {\n    if (this._currentPage >= this.pages.length) {\n      return;\n    }\n    this.currentPage = this._currentPage + 1;\n  }\n\n  private _slideTo(page: number): void {\n    if (page >= 0 && page < this.pages.length) {\n      this.currentPage = page;\n    }\n  }\n\n  private _doSlide(immediate = false): void {\n    if (this.body == null || this.pages == null || this._animating) {\n      return;\n    }\n    this._animating = true;\n    const animation = this._animationBuilder.build(\n      animate(immediate ? 0 : this.duration, style({transform: this._getCurrentTranslation()})),\n    );\n\n    const player = animation.create(this.body.nativeElement);\n    player.onDone(() => {\n      this._animating = false;\n      this._pageScrollFinish.emit();\n    });\n    player.play();\n  }\n\n  private _getCurrentTranslation(): string {\n    const slideSize = 100 / this.pages.length;\n    const position = this._currentPage === -1 ? 0 : this._currentPage * slideSize;\n    const translation = this._orientation === 'vertical' ? 'Y' : 'X';\n    return `translate${translation}(-${position}%)`;\n  }\n\n  private _getProps(): {prop: string; removeProp: string} {\n    if (this._orientation === 'vertical') {\n      return {prop: 'height', removeProp: 'width'};\n    }\n    return {prop: 'width', removeProp: 'height'};\n  }\n\n  private _onSlidesChange(): void {\n    this._updateSize();\n  }\n\n  private _updateSize(): void {\n    if (this.body == null || this.pages == null) {\n      return;\n    }\n    const {prop, removeProp} = this._getProps();\n    this._renderer.setStyle(this.body.nativeElement, prop, `${this.pages.length * 100}%`);\n    this._renderer.setStyle(this.body.nativeElement, removeProp, null);\n    let curPage: number = this._currentPage;\n    if (this.pages.length === 0) {\n      curPage = -1;\n    } else if (this._currentPage === -1) {\n      if (this.pages.first.isRepeating) {\n        for (let idx = 0; idx < this.pages.length; idx++) {\n          if (this.pages.get(idx)?.isRepeatingLast) {\n            curPage = idx;\n            break;\n          }\n        }\n      } else {\n        curPage = 0;\n      }\n    } else if (this._currentPage >= this.pages.length) {\n      curPage = this.pages.length - 1;\n    } else {\n      curPage = this._currentPage;\n    }\n    this._currentPage = curPage;\n    this._restoreCurrentPage();\n  }\n\n  private _restoreCurrentPage(): void {\n    this._doSlide(true);\n  }\n}\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 {NgModule} from '@angular/core';\n\nimport {AjfPageSliderItem} from './page-slider-item';\n\n@NgModule({\n  declarations: [AjfPageSliderItem],\n  exports: [AjfPageSliderItem],\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-item';\nexport * from './page-slider-item-scroll-direction';\nexport * from './page-slider-slide-options';\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":[],"mappings":"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"}