{"version":3,"file":"sq-ui-ng-sq-common.mjs","sources":["../../../projects/ng-sq-common/src/lib/enums/device-os.enum.ts","../../../projects/ng-sq-common/src/lib/entities/control-value-accessor-enabler.ts","../../../projects/ng-sq-common/src/lib/entities/input-core-component.ts","../../../projects/ng-sq-common/src/lib/directives/outside-click-listener.directive.ts","../../../projects/ng-sq-common/src/lib/components/paginator/paginator.component.ts","../../../projects/ng-sq-common/src/lib/components/paginator/paginator.component.html","../../../projects/ng-sq-common/src/lib/services/custom-event-broadcaster.service.ts","../../../projects/ng-sq-common/src/lib/services/os-detector.service.ts","../../../projects/ng-sq-common/src/lib/directives/scrolled-to-bottom-listener.directive.ts","../../../projects/ng-sq-common/src/lib/ng-sq-common.module.ts","../../../projects/ng-sq-common/src/index.ts","../../../projects/ng-sq-common/src/sq-ui-ng-sq-common.ts"],"sourcesContent":["export enum DeviceOS {\r\n  Android = 0,\r\n  iOS,\r\n  Desktop\r\n}\r\n","import { EventEmitter } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\n\r\n/**\r\n * This class should be extended by all SQ UI custom\r\n * form controls so that they get recognized by Angular forms.\r\n * Its only purpose is to implement the ControlValueAccessor interface.\r\n **/\r\nexport class ControlValueAccessorEnabler implements ControlValueAccessor {\r\n  protected _modelToViewChange: EventEmitter<any> = new EventEmitter();\r\n  protected _value: any;\r\n  protected _onChange: any = () => {};\r\n  protected _onTouched: any = () => {};\r\n\r\n  constructor() {}\r\n\r\n  get value(): any {\r\n    return this._value;\r\n  }\r\n\r\n  set value(newValue: any) {\r\n    if (newValue !== this._value) {\r\n      this._value = newValue;\r\n      this._onChange(newValue);\r\n    }\r\n  }\r\n\r\n  onBlur() {\r\n    this._onTouched();\r\n  }\r\n\r\n  writeValue(newValue: any): void {\r\n    if (newValue !== this._value) {\r\n      this._value = newValue;\r\n      this._modelToViewChange.emit(newValue);\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: (_: any) => void): void {\r\n    this._onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this._onTouched = fn;\r\n  }\r\n}\r\n","import { Input, Component } from '@angular/core';\r\nimport { ControlValueAccessorEnabler } from './control-value-accessor-enabler';\r\n\r\n/**\r\n * This class contains all the base properties\r\n * needed for every possible SQ UI form control\r\n **/\r\n@Component({\r\n  template: ''\r\n})\r\nexport class InputCoreComponent extends ControlValueAccessorEnabler {\r\n  private defaultInputIdentifier = 'sq-form-control' + new Date().getTime().toString();\r\n\r\n  @Input() name: string = this.defaultInputIdentifier;\r\n  @Input() controlId: string = this.defaultInputIdentifier;\r\n  @Input() controlLabel: string = '';\r\n  @Input() controlPlaceholder: string = '';\r\n  @Input() required: boolean = false;\r\n  @Input() pattern: any = '';\r\n  @Input() disabled: boolean = false;\r\n\r\n  constructor() {\r\n    super();\r\n  }\r\n}\r\n","import {\r\n  Directive, ElementRef, HostListener,\r\n  EventEmitter, Output, Input, Renderer2, OnDestroy\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[sqOutsideClickListener]'\r\n})\r\nexport class OutsideClickListenerDirective implements OnDestroy {\r\n  @Output() clickOutside = new EventEmitter();\r\n  @Input() listenForOutsideClick: boolean = false;\r\n\r\n  private listener;\r\n\r\n  constructor(private elementRef: ElementRef, private renderer: Renderer2) {\r\n    this.listener = this.renderer.listen('document', 'click', (event) => {\r\n      if (this.listenForOutsideClick) {\r\n        const clickedInside = this.elementRef.nativeElement.contains(event.target);\r\n\r\n        if (!clickedInside) {\r\n          this.clickOutside.emit();\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.listener();\r\n  }\r\n}\r\n","import {\r\n  Component, OnInit, Input, Output,\r\n  EventEmitter, OnChanges, ViewEncapsulation\r\n} from '@angular/core';\r\nimport { Page } from '../../interfaces/page';\r\n\r\n@Component({\r\n  selector: 'sq-paginator',\r\n  templateUrl: './paginator.component.html',\r\n  styleUrls: ['./paginator.component.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PaginatorComponent implements OnInit, OnChanges {\r\n  @Input() items: any[] = [];\r\n  @Input() itemsPerPage: number = 10;\r\n  @Input() currentPage: number = 1;\r\n  @Input() lastPage: number;\r\n  @Input() maxDisplayedPages: number = 3;\r\n  @Input() paginatedCollection = [];\r\n  @Output() paginatedCollectionChange = new EventEmitter();\r\n  @Output() pageChange: EventEmitter<{ page: number, firstItemIndex: number }> = new EventEmitter();\r\n\r\n  pages: Page[] = [];\r\n  _paginatedCollection = [];\r\n  disableNextBtns: boolean = false;\r\n  disablePrevBtns: boolean = true;\r\n\r\n  private currentPageNumber = 1;\r\n  private hasSelectedCurrentPageByAuthor = false;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n    this.itemsPerPage = this.itemsPerPage || 10;\r\n    this.maxDisplayedPages = this.maxDisplayedPages || 3;\r\n  }\r\n\r\n  ngOnChanges(changesObj) {\r\n    if (changesObj.items && changesObj.items.currentValue) {\r\n      this.generatePaginatedCollection(this.currentPageNumber);\r\n      this.updatePageCount(this.lastPage);\r\n\r\n      if (this.currentPage && !this.hasSelectedCurrentPageByAuthor) {\r\n        this.selectCurrentPageProgramatically();\r\n      }\r\n\r\n      this.toggleControlEnabling();\r\n    }\r\n\r\n    if (changesObj.itemsPerPage && changesObj.itemsPerPage.currentValue &&\r\n        changesObj.itemsPerPage.currentValue > 0) {\r\n      this.updatePageCount(this.lastPage);\r\n    }\r\n\r\n    if (changesObj.currentPage && changesObj.currentPage.currentValue &&\r\n        changesObj.currentPage.currentValue > 0) {\r\n      this.hasSelectedCurrentPageByAuthor = false;\r\n      this.selectCurrentPageProgramatically();\r\n    }\r\n\r\n    if (changesObj.lastPage && changesObj.lastPage.currentValue &&\r\n        changesObj.lastPage.currentValue > 0) {\r\n      this.updatePageCount(changesObj.lastPage.currentValue);\r\n    }\r\n\r\n    if (changesObj.maxDisplayedPages && changesObj.maxDisplayedPages.currentValue &&\r\n      changesObj.maxDisplayedPages.currentValue > 0) {\r\n      this.updatePageCount(this.lastPage);\r\n    }\r\n  }\r\n\r\n  onPageClick(page) {\r\n    this.selectPage(page);\r\n    this.pageChange.emit({\r\n      page: page.number,\r\n      firstItemIndex: this.items.indexOf(this._paginatedCollection[0])\r\n    });\r\n  }\r\n\r\n  navigateToPage(newPageDifference: number) {\r\n    const selectedItemIndex = this.pages.findIndex((pageItem) => {\r\n      return pageItem.isSelected === true;\r\n    });\r\n\r\n    const newPageItem = this.pages[selectedItemIndex + newPageDifference];\r\n    this.onPageClick(newPageItem);\r\n  }\r\n\r\n  private updatePageCount(lastPage?: number) {\r\n    const pageCount = lastPage || Math.ceil(this.items.length / this.itemsPerPage);\r\n    this.pages = [];\r\n\r\n    if (!pageCount || this.items.length === 0) {\r\n      return;\r\n    }\r\n\r\n    if (pageCount === 1) {\r\n      this.pages.push({\r\n        number: 1,\r\n        isSelected: false,\r\n        isHidden: false\r\n      });\r\n    } else {\r\n      for (let i = 1; i <= pageCount; i++) {\r\n        this.pages.push({\r\n          number: i,\r\n          isSelected: false,\r\n          isHidden: true\r\n        });\r\n      }\r\n    }\r\n\r\n    const selectedItem = this.pages.find((pageItem) => {\r\n      return pageItem.number === this.currentPageNumber;\r\n    });\r\n\r\n    selectedItem.isSelected = true;\r\n\r\n    this.hidePages();\r\n  }\r\n\r\n  private selectPage(page: Page) {\r\n    const previousPage = this.pages.find((pageItem) => {\r\n      return pageItem.isSelected === true;\r\n    });\r\n\r\n    previousPage.isSelected = false;\r\n    page.isSelected = true;\r\n\r\n    this.toggleControlEnabling(page);\r\n    this.generatePaginatedCollection(page.number);\r\n  }\r\n\r\n  private generatePaginatedCollection(newPage: number) {\r\n    let newUpperLimit = this.itemsPerPage * newPage;\r\n    let lowerLimit = newUpperLimit - this.itemsPerPage;\r\n\r\n    if (!this.items[lowerLimit]) {\r\n      newUpperLimit = this.items.length - 1;\r\n      lowerLimit = newUpperLimit - this.itemsPerPage;\r\n    }\r\n\r\n    this._paginatedCollection = this.items.slice(lowerLimit, newUpperLimit);\r\n    this.currentPageNumber = newPage;\r\n\r\n    setTimeout(() => {\r\n      this.paginatedCollectionChange.emit(this._paginatedCollection);\r\n    }, 100);\r\n  }\r\n\r\n  private toggleControlEnabling(page?: Page) {\r\n    if (!page) {\r\n      page = this.pages.find((pageItem) => {\r\n        return pageItem.number === this.currentPageNumber;\r\n      });\r\n    }\r\n\r\n    this.disablePrevBtns = (this.pages.indexOf(page) === 0);\r\n    this.disableNextBtns = (this.pages.indexOf(page) === this.pages.length - 1);\r\n  }\r\n\r\n  private hidePages() {\r\n    const selectedItemIndex = this.pages.findIndex((pageItem) => {\r\n      return pageItem.isSelected === true;\r\n    });\r\n\r\n    const lastVisiblePagesFromBeginning = selectedItemIndex + this.maxDisplayedPages - 1;\r\n    const lastVisiblePagesFromEnd = this.pages.length - 1 - this.maxDisplayedPages;\r\n\r\n    this.pages.forEach((pageItem, index) => {\r\n      if ((index >= selectedItemIndex && index <= lastVisiblePagesFromBeginning) ||\r\n        index === 0 || index > lastVisiblePagesFromEnd) {\r\n        pageItem.isHidden = false;\r\n      }\r\n    });\r\n  }\r\n\r\n  private selectCurrentPageProgramatically() {\r\n    const pageToSelect = this.pages.find((page: Page) => {\r\n      return page.number === this.currentPage;\r\n    });\r\n\r\n    if (pageToSelect) {\r\n      this.selectPage(pageToSelect);\r\n      this.hidePages();\r\n      this.hasSelectedCurrentPageByAuthor = true;\r\n    }\r\n  }\r\n\r\n}\r\n","<ol class=\"paginator display-flex wrap\" *ngIf=\"pages.length > 0\">\r\n  <li>\r\n    <button type=\"button\"\r\n            [disabled]=\"disablePrevBtns\"\r\n            data-btn-type=\"first\"\r\n            (click)=\"onPageClick(pages[0])\">\r\n      <i class=\"fas fa-angle-double-left\" aria-hidden=\"true\"></i>\r\n    </button>\r\n  </li>\r\n  <li>\r\n    <button type=\"button\"\r\n            [disabled]=\"disablePrevBtns\"\r\n            data-btn-type=\"prev\"\r\n            (click)=\"navigateToPage(-1)\">\r\n      <i class=\"fas fa-angle-left\" aria-hidden=\"true\"></i>\r\n    </button>\r\n  </li>\r\n  <li *ngFor=\"let page of pages\"\r\n      [hidden]=\"page.isHidden\"\r\n      data-btn-type=\"page-num\"\r\n      [ngClass]=\"{\r\n        'current': page.isSelected,\r\n        'truncated': page.isHidden\r\n      }\">\r\n    <button type=\"button\"\r\n            (click)=\"onPageClick(page)\">\r\n      {{page.number}}\r\n    </button>\r\n  </li>\r\n  <li>\r\n    <button type=\"button\"\r\n            [disabled]=\"disableNextBtns\"\r\n            data-btn-type=\"next\"\r\n            (click)=\"navigateToPage(1)\">\r\n      <i class=\"fas fa-angle-right\" aria-hidden=\"true\"></i>\r\n    </button>\r\n  </li>\r\n  <li>\r\n    <button type=\"button\"\r\n            [disabled]=\"disableNextBtns\"\r\n            data-btn-type=\"last\"\r\n            (click)=\"onPageClick(pages[pages.length - 1])\">\r\n      <i class=\"fas fa-angle-double-right\" aria-hidden=\"true\"></i>\r\n    </button>\r\n  </li>\r\n</ol>\r\n","import { Injectable } from '@angular/core';\r\nimport { CustomEventDetails } from '../interfaces/custom-event-details';\r\nimport { Subject, Subscription } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class CustomEventBroadcasterService {\r\n  private broadcasterSubject = new Subject();\r\n  private broadcasterSubjectAsObservable = this.broadcasterSubject.asObservable();\r\n\r\n  constructor() { }\r\n\r\n  subscribeFor(eventName: string,\r\n               callback: (eventDetails?: CustomEventDetails) => void): Subscription {\r\n    return this.broadcasterSubjectAsObservable\r\n      .subscribe((customEvent: {broadcastEvent: string, eventDetails?: CustomEventDetails}) => {\r\n        if (customEvent.broadcastEvent === eventName) {\r\n          callback(customEvent.eventDetails);\r\n        }\r\n      });\r\n  }\r\n\r\n  broadcastEvent(eventName: string, eventDetails?: CustomEventDetails) {\r\n    this.broadcasterSubject.next({broadcastEvent: eventName, eventDetails: eventDetails});\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DeviceOS } from '../enums/device-os.enum';\r\n\r\n@Injectable()\r\nexport class OSDetectorService {\r\n\r\n  constructor() { }\r\n\r\n  static getDeviceOS(): DeviceOS {\r\n    const userAgent = navigator.userAgent || navigator.vendor;\r\n    let agent: DeviceOS = DeviceOS.Desktop;\r\n\r\n    if (/android/i.test(userAgent)) {\r\n      agent = DeviceOS.Android;\r\n    }\r\n\r\n    if (/iPad|iPhone|iPod/.test(userAgent)) {\r\n      agent = DeviceOS.iOS;\r\n    }\r\n\r\n    return agent;\r\n  }\r\n}\r\n","import {\r\n  Directive, ElementRef, EventEmitter, Output, Renderer2, OnDestroy, NgZone, ChangeDetectorRef\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[sqScrolledToBottomListener]'\r\n})\r\nexport class ScrolledToBottomListenerDirective implements OnDestroy {\r\n  @Output() scrolledToBottom = new EventEmitter();\r\n\r\n  private listener;\r\n\r\n  constructor(private elementRef: ElementRef, private renderer: Renderer2, private ngZone: NgZone, private cd: ChangeDetectorRef) {\r\n    this.ngZone.runOutsideAngular(() => {\r\n      this.listener = this.renderer.listen(this.elementRef.nativeElement, 'scroll', () => {\r\n        this.checkIfHasScrolledToBottom(this.elementRef.nativeElement);\r\n      });\r\n    });\r\n  }\r\n\r\n  checkIfHasScrolledToBottom(element: HTMLElement) {\r\n    const hasScrolledToBottom = element.scrollTop > 0 ?\r\n      (Math.ceil(element.scrollHeight - element.scrollTop) <= Math.ceil(element.clientHeight + 3)) : false;\r\n\r\n    if (hasScrolledToBottom) {\r\n      this.scrolledToBottom.emit();\r\n      this.cd.detectChanges();\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.listener();\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomEventBroadcasterService } from './services/custom-event-broadcaster.service';\r\nimport { OutsideClickListenerDirective } from './directives/outside-click-listener.directive';\r\nimport { OSDetectorService } from './services/os-detector.service';\r\nimport { PaginatorComponent } from './components/paginator/paginator.component';\r\nimport { ScrolledToBottomListenerDirective } from './directives/scrolled-to-bottom-listener.directive';\r\nimport { InputCoreComponent } from './entities/input-core-component';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  providers: [\r\n    OSDetectorService,\r\n    CustomEventBroadcasterService\r\n  ],\r\n  declarations: [\r\n    OutsideClickListenerDirective,\r\n    PaginatorComponent,\r\n    ScrolledToBottomListenerDirective,\r\n    InputCoreComponent\r\n  ],\r\n  exports: [\r\n    OutsideClickListenerDirective,\r\n    PaginatorComponent,\r\n    ScrolledToBottomListenerDirective,\r\n    InputCoreComponent\r\n  ]\r\n})\r\nexport class NgSqCommonModule { }\r\n","/*\r\n * Public API Surface of ng-sq-common\r\n */\r\n\r\nexport { DeviceOS } from './lib/enums/device-os.enum';\r\nexport { InputCoreComponent } from './lib/entities/input-core-component';\r\nexport { OutsideClickListenerDirective } from './lib/directives/outside-click-listener.directive';\r\nexport { PaginatorComponent } from './lib/components/paginator/paginator.component';\r\nexport { Size, ProgressBarSize } from './lib/interfaces/sizes';\r\nexport { CustomEventDetails } from './lib/interfaces/custom-event-details';\r\nexport { LabelValuePair } from './lib/interfaces/label-value-pair';\r\nexport { CustomEventBroadcasterService } from './lib/services/custom-event-broadcaster.service';\r\nexport { OSDetectorService } from './lib/services/os-detector.service';\r\nexport { PaginatorConfig } from './lib/interfaces/paginator-config';\r\nexport { ControlValueAccessorEnabler } from './lib/entities/control-value-accessor-enabler';\r\nexport { ScrolledToBottomListenerDirective } from './lib/directives/scrolled-to-bottom-listener.directive';\r\n\r\nexport * from './lib/ng-sq-common.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}