{"version":3,"file":"ngx-angular-time-picker-library.mjs","sources":["../../../projects/ngx-angular-time-picker-library/src/lib/ngx-angular-time-picker-lib/ngx-angular-time-picker-lib.component.ts","../../../projects/ngx-angular-time-picker-library/src/lib/ngx-angular-time-picker-lib/ngx-angular-time-picker-lib.component.html","../../../projects/ngx-angular-time-picker-library/src/lib/ngx-angular-time-picker-library.module.ts","../../../projects/ngx-angular-time-picker-library/src/public-api.ts","../../../projects/ngx-angular-time-picker-library/src/ngx-angular-time-picker-library.ts"],"sourcesContent":["import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport moment from 'moment';\n\n@Component({\n  selector: 'ngx-angular-time-picker',\n  templateUrl: './ngx-angular-time-picker-lib.component.html',\n  styleUrls: ['./ngx-angular-time-picker-lib.component.scss'],\n})\nexport class NgxAngurlarTimePickerLibComponent implements OnInit {\n  public hours: any[];\n  public minutes: any[];\n  public seconds: any[];\n  public hide: boolean = true;\n  //@ts-ignore\n  @ViewChild('hourContainer') private hourContainer: ElementRef;\n  //@ts-ignore\n  @ViewChild('minuteContainer') private minuteContainer: ElementRef;\n  //@ts-ignore\n  @ViewChild('secondContainer') private secondContainer: ElementRef;\n  public inside = false;\n  public selectedHourIndex: any = 0;\n  public selectedMinuteIndex: any = 0;\n  public selectedSecondIndex: any = 0;\n  public selectedAmPm: string = 'AM';\n  public firstCells: any[] = [0, 1, 2, 3, 4];\n  public lastHourCells: any[] = [19, 20, 21, 22, 23];\n  public lastMinuteCells: any[] = [55, 56, 57, 58, 59];\n  public patch = false;\n\n  @Input('control')\n  public control: any;\n\n  @Input('top')\n  public top: string = '0px';\n\n  @Input('left')\n  public left: string = '0px';\n\n  @Input('enableSecond')\n  public enableSecond: boolean = false;\n\n  @Input('format')\n  public format: string = '24hr';\n\n  @Input('backgroundColorCell')\n  public backgroundColorCell: string = '#00b6ff';\n\n  @Input('backgroundColorCellHover')\n  public backgroundColorCellHover: string = '#b0e8ff';\n\n  public show: boolean = false;\n\n  public width: number = 100;\n\n  public aMpMHoverStatus = {\n    am: {\n      hover: false,\n    },\n    pm: {\n      hover: false,\n    },\n  };\n\n  @Output()\n  public onTimeChange = new EventEmitter<any>();\n\n  constructor() {\n    this.hours = this.generateCells(24);\n    this.minutes = this.generateCells(60);\n    this.seconds = this.generateCells(60);\n  }\n\n  ngOnInit(): void {\n    let format12hr = this.enableSecond ? 'hh:mm:ss A' : 'hh:mm A';\n    let format24hr = this.enableSecond ? 'HH:mm:ss' : 'HH:mm';\n    console.log(moment);\n\n    if (this.control.value.split(' ').length > 1) {\n      if (this.format !== '12hr') {\n        this.control.patchValue(\n          moment(this.control.value, [format12hr]).format(format24hr)\n        );\n      } else {\n        this.control.patchValue(\n          moment(this.control.value, [format12hr]).format(format12hr)\n        );\n      }\n    } else {\n      if (this.format === '12hr') {\n        this.control.patchValue(\n          moment(this.control.value, [format24hr]).format(format12hr)\n        );\n      } else {\n        this.control.patchValue(\n          moment(this.control.value, [format24hr]).format(format24hr)\n        );\n      }\n    }\n    if (this.format === '12hr') {\n      this.hours = [\n        ...this.generateCells(12).splice(1),\n        { active: false, time: '12', hover: false },\n      ];\n      this.lastHourCells = [7, 8, 9, 10, 11];\n      this.width += 50;\n    }\n    if (this.enableSecond) {\n      this.width += 50;\n    }\n\n    if (this.control.value && this.control.value.split(':').length > 0) {\n      this.selectedHourIndex =\n        this.format === '12hr'\n          ? this.control.value.split(':')[0] - 1\n          : this.control.value.split(':')[0];\n      this.selectedMinuteIndex = moment(this.control.value, [\n        this.format === '12hr' ? format12hr : format24hr,\n      ]).format('mm');\n      if (this.enableSecond && this.control.value.split(':').length > 2) {\n        this.selectedSecondIndex = moment(this.control.value, [\n          this.format === '12hr' ? format12hr : format24hr,\n        ]).format('ss');\n      }\n      if (this.format === '12hr') {\n        this.selectedAmPm = moment(this.control.value, [\n          this.format === '12hr' ? format12hr : format24hr,\n        ])\n          .format('A')\n          .toUpperCase();\n      }\n      this.patch = true;\n    }\n    this.selectHour(parseInt(this.selectedHourIndex), this.patch);\n    this.selectMinute(parseInt(this.selectedMinuteIndex), this.patch);\n    if (this.enableSecond && this.control.value.split(':').length > 2) {\n      this.selectSecond(parseInt(this.selectedSecondIndex), this.patch);\n    }\n    if (this.format === '12hr') {\n      this.selectAmPm(this.selectedAmPm, this.patch);\n    }\n    this.show = true;\n  }\n\n  @HostListener('click')\n  clicked() {\n    this.inside = true;\n  }\n\n  @HostListener('document:click')\n  clickedOut() {\n    if (!this.inside) {\n      this.hide = true;\n    }\n    this.inside = false;\n  }\n\n  onInputClick() {\n    let tempHide = this.hide;\n    this.hide = false;\n    setTimeout(() => {\n      if (tempHide != this.hide) {\n        this.hourContainer.nativeElement.scrollTop =\n          this.selectedHourIndex * 50 + 250;\n        this.minuteContainer.nativeElement.scrollTop =\n          this.selectedMinuteIndex * 50 + 250;\n\n        if (this.enableSecond) {\n          this.secondContainer.nativeElement.scrollTop =\n            this.selectedSecondIndex * 50 + 250;\n        }\n      }\n    }, 100);\n  }\n\n  generateCells(length: number): number[] {\n    //@ts-ignore\n    return Array.apply(null, { length })\n      .map(Number.call, Number)\n      .map((item, index) => {\n        let cell = { active: false };\n        //@ts-ignore\n        if (item < 10) return { ...cell, time: `0${item}` };\n        return { ...cell, time: `${item}`, hover: false };\n      });\n  }\n\n  selectHour(i: number, patch: boolean = true) {\n    let format12hr = this.enableSecond ? 'hh:mm:ss A' : 'hh:mm A';\n    let format24hr = this.enableSecond ? 'HH:mm:ss' : 'HH:mm';\n\n    if (patch) {\n      this.selectedHourIndex = i;\n      this.hours = this.hours.map((hour, index) => {\n        hour.active = index === i;\n        let minute = '00';\n        if (this.control.value && this.control.value.split(':').length > 0) {\n          minute = moment(this.control.value, [\n            this.format === '12hr' ? format12hr : format24hr,\n          ]).format('mm');\n        }\n        let time = `${hour.time}:${minute}`;\n        if (this.enableSecond) {\n          let second = '00';\n          if (this.control.value && this.control.value.split(':').length > 2) {\n            second = `${\n              this.format === '12hr'\n                ? this.control.value.split(':')[2].split(' ')[0]\n                : this.control.value.split(':')[2]\n            }`;\n          }\n          time += `:${second}`;\n        }\n        if (index === i) {\n          if (this.format === '12hr') {\n            time += ` ${this.selectedAmPm}`;\n          }\n          this.outputTime(`${time}`);\n        }\n        return hour;\n      });\n    }\n  }\n\n  selectMinute(i: number, patch: boolean = true) {\n    if (patch) {\n      this.selectedMinuteIndex = i;\n      this.minutes = this.minutes.map((minute, index) => {\n        minute.active = index === i;\n        let hour = '00';\n        if (this.control.value && this.control.value.split(':').length > 0) {\n          hour = `${this.control.value.split(':')[0]}`;\n        }\n        let time = `${hour}:${minute.time}`;\n        if (this.enableSecond) {\n          let second = '00';\n          if (this.control.value && this.control.value.split(':').length > 2) {\n            second = `${\n              this.format === '12hr'\n                ? this.control.value.split(':')[2].split(' ')[0]\n                : this.control.value.split(':')[2]\n            }`;\n          }\n          time += `:${second}`;\n        }\n        if (index === i) {\n          if (this.format === '12hr') {\n            time += ` ${this.selectedAmPm}`;\n          }\n          this.outputTime(`${time}`);\n        }\n        return minute;\n      });\n    }\n  }\n\n  selectSecond(i: number, patch: boolean = true) {\n    if (patch) {\n      this.selectedSecondIndex = i;\n      this.seconds = this.seconds.map((second, index) => {\n        second.active = index === i;\n        let hour = '00';\n        if (this.control.value && this.control.value.split(':').length > 0) {\n          hour = `${this.control.value.split(':')[0]}`;\n        }\n        let minute = '00';\n        if (this.control.value && this.control.value.split(':').length > 0) {\n          minute = `${this.control.value.split(':')[1]}`;\n        }\n        let time = `${hour}:${minute}`;\n        if (index === i) {\n          time += `:${second.time}`;\n          if (this.format === '12hr') {\n            time += ` ${this.selectedAmPm}`;\n          }\n          this.outputTime(`${time}`);\n        }\n        return second;\n      });\n    }\n  }\n\n  selectAmPm(aMpM: string, patch: boolean = true) {\n    let format12hr = this.enableSecond ? 'hh:mm:ss A' : 'hh:mm A';\n    let format24hr = this.enableSecond ? 'HH:mm:ss' : 'HH:mm';\n\n    if (patch) {\n      this.selectedAmPm = aMpM;\n      let hour = '00';\n      if (this.control.value && this.control.value.split(':').length > 0) {\n        hour = moment(this.control.value, [\n          this.format === '12hr' ? format12hr : format24hr,\n        ]).format(this.format === '12hr' ? 'hh' : 'HH');\n      }\n      let minute = '00';\n      if (this.control.value && this.control.value.split(':').length > 0) {\n        minute = moment(this.control.value, [\n          this.format === '12hr' ? format12hr : format24hr,\n        ]).format('mm');\n      }\n      let time = `${hour}:${minute}`;\n      if (this.enableSecond) {\n        let second = '00';\n        if (this.control.value && this.control.value.split(':').length > 2) {\n          second = `${\n            this.format === '12hr'\n              ? this.control.value.split(':')[2].split(' ')[0]\n              : this.control.value.split(':')[2]\n          }`;\n        }\n        time += `:${second}`;\n      }\n      this.outputTime(`${time} ${this.selectedAmPm}`);\n    }\n  }\n\n  activeAmPm(aMpM: string) {\n    return this.selectedAmPm == aMpM;\n  }\n\n  //@ts-ignore\n  onScrollLoopCheck(e, section) {\n    if (e.target.offsetHeight + e.target.scrollTop >= e.target.scrollHeight) {\n      if (section == 'hour') this.hourContainer.nativeElement.scrollTop = 251;\n      if (section == 'minute')\n        this.minuteContainer.nativeElement.scrollTop = 251;\n      if (section == 'second')\n        this.secondContainer.nativeElement.scrollTop = 251;\n    }\n    if (e.target.scrollTop == 0) {\n      if (section == 'hour')\n        this.hourContainer.nativeElement.scrollTop =\n          e.target.scrollHeight - 501;\n      if (section == 'minute')\n        this.minuteContainer.nativeElement.scrollTop =\n          e.target.scrollHeight - 501;\n      if (section == 'second')\n        this.secondContainer.nativeElement.scrollTop =\n          e.target.scrollHeight - 501;\n    }\n  }\n\n  arrowTicker(delta: number, section: String) {\n    if (section === 'hour') {\n      this.hourContainer.nativeElement.scrollTop =\n        this.hourContainer.nativeElement.scrollTop + delta;\n    } else if (section === 'minute') {\n      this.minuteContainer.nativeElement.scrollTop =\n        this.minuteContainer.nativeElement.scrollTop + delta;\n    } else if (section === 'second') {\n      this.secondContainer.nativeElement.scrollTop =\n        this.secondContainer.nativeElement.scrollTop + delta;\n    }\n  }\n\n  outputTime(time: string) {\n    this.control.patchValue(time);\n    let output: any = {};\n    let format12hr = this.enableSecond ? 'hh:mm:ss A' : 'hh:mm A';\n    let format24hr = this.enableSecond ? 'HH:mm:ss' : 'HH:mm';\n    if (this.format === '12hr') {\n      output = {\n        ...output,\n        '12hr': time,\n        '24hr': moment(time, [format12hr]).format(format24hr),\n      };\n    } else {\n      output = {\n        ...output,\n        '12hr': moment(time, [format24hr]).format(format12hr),\n        '24hr': time,\n      };\n    }\n    this.onTimeChange.emit(output);\n  }\n}\n","<div (click)=\"onInputClick()\" class=\"time-picker-wrapper\">\n  <ng-content></ng-content>\n  <div\n    class=\"time-selector-box\"\n    [class.time-selector-box-open]=\"!hide\"\n    [style.top]=\"top\"\n    [style.left]=\"left\"\n    [style.width]=\"width + 'px'\"\n    *ngIf=\"show\"\n  >\n    <div class=\"up-arrow\" (click)=\"arrowTicker(-50, 'hour')\">\n      <mat-icon aria-hidden=\"false\" aria-label=\"keyboard_arrow_up icon\"\n        >keyboard_arrow_up</mat-icon\n      >\n    </div>\n    <div\n      class=\"selector-column\"\n      (scroll)=\"onScrollLoopCheck($event, 'hour')\"\n      #hourContainer\n    >\n      <div\n        class=\"selector-cell\"\n        *ngFor=\"let lastHourCell of lastHourCells\"\n        [class.active]=\"hours[lastHourCell].active\"\n        (click)=\"selectHour(lastHourCell)\"\n        (mouseover)=\"hours[lastHourCell].hover = true\"\n        (mouseleave)=\"hours[lastHourCell].hover = false\"\n        [ngStyle]=\"{\n          'background-color': hours[lastHourCell].active\n            ? backgroundColorCell\n            : hours[lastHourCell].hover\n            ? backgroundColorCellHover\n            : ''\n        }\"\n      >\n        <ng-container *ngIf=\"format === '12hr'\">\n          {{ lastHourCell + 1 }}\n        </ng-container>\n        <ng-container *ngIf=\"format != '12hr'\">\n          {{ lastHourCell }}\n        </ng-container>\n      </div>\n      <div\n        *ngFor=\"let item of hours; let i = index\"\n        class=\"selector-cell\"\n        [class.active]=\"item.active\"\n        (click)=\"selectHour(i)\"\n        (mouseover)=\"item.hover = true\"\n        (mouseleave)=\"item.hover = false\"\n        [ngStyle]=\"{\n          'background-color': item.active\n            ? backgroundColorCell\n            : item.hover\n            ? backgroundColorCellHover\n            : ''\n        }\"\n      >\n        {{ item.time }}\n      </div>\n      <div\n        class=\"selector-cell\"\n        *ngFor=\"let firstCell of firstCells\"\n        [class.active]=\"hours[firstCell].active\"\n        (click)=\"selectHour(firstCell)\"\n        (mouseover)=\"hours[firstCell].hover = true\"\n        (mouseleave)=\"hours[firstCell].hover = false\"\n        [ngStyle]=\"{\n          'background-color': hours[firstCell].active\n            ? backgroundColorCell\n            : hours[firstCell].hover\n            ? backgroundColorCellHover\n            : ''\n        }\"\n      >\n        <ng-container *ngIf=\"format === '12hr'\">\n          0{{ firstCell + 1 }}\n        </ng-container>\n        <ng-container *ngIf=\"format != '12hr'\"> 0{{ firstCell }} </ng-container>\n      </div>\n    </div>\n    <div class=\"down-arrow\" (click)=\"arrowTicker(50, 'hour')\">\n      <mat-icon aria-hidden=\"false\" aria-label=\"keyboard_arrow_down icon\"\n        >keyboard_arrow_down</mat-icon\n      >\n    </div>\n    <div class=\"up-arrow up-arrow-minute\" (click)=\"arrowTicker(-50, 'minute')\">\n      <mat-icon aria-hidden=\"false\" aria-label=\"keyboard_arrow_up icon\"\n        >keyboard_arrow_up</mat-icon\n      >\n    </div>\n    <div\n      class=\"selector-column\"\n      (scroll)=\"onScrollLoopCheck($event, 'minute')\"\n      #minuteContainer\n    >\n      <div\n        class=\"selector-cell\"\n        *ngFor=\"let lastMinuteCell of lastMinuteCells\"\n        [class.active]=\"minutes[lastMinuteCell].active\"\n        (click)=\"selectMinute(lastMinuteCell)\"\n        (mouseover)=\"minutes[lastMinuteCell].hover = true\"\n        (mouseleave)=\"minutes[lastMinuteCell].hover = false\"\n        [ngStyle]=\"{\n          'background-color': minutes[lastMinuteCell].active\n            ? backgroundColorCell\n            : minutes[lastMinuteCell].hover\n            ? backgroundColorCellHover\n            : ''\n        }\"\n      >\n        {{ lastMinuteCell }}\n      </div>\n      <div\n        *ngFor=\"let item of minutes; let i = index\"\n        class=\"selector-cell\"\n        [class.active]=\"item.active\"\n        (click)=\"selectMinute(i)\"\n        (mouseover)=\"item.hover = true\"\n        (mouseleave)=\"item.hover = false\"\n        [ngStyle]=\"{\n          'background-color': item.active\n            ? backgroundColorCell\n            : item.hover\n            ? backgroundColorCellHover\n            : ''\n        }\"\n      >\n        {{ item.time }}\n      </div>\n      <div\n        class=\"selector-cell\"\n        *ngFor=\"let firstCell of firstCells\"\n        [class.active]=\"minutes[firstCell].active\"\n        (click)=\"selectMinute(firstCell)\"\n        (mouseover)=\"minutes[firstCell].hover = true\"\n        (mouseleave)=\"minutes[firstCell].hover = false\"\n        [ngStyle]=\"{\n          'background-color': minutes[firstCell].active\n            ? backgroundColorCell\n            : minutes[firstCell].hover\n            ? backgroundColorCellHover\n            : ''\n        }\"\n      >\n        0{{ firstCell }}\n      </div>\n    </div>\n    <div\n      class=\"down-arrow down-arrow-minute\"\n      (click)=\"arrowTicker(50, 'minute')\"\n    >\n      <mat-icon aria-hidden=\"false\" aria-label=\"keyboard_arrow_down icon\"\n        >keyboard_arrow_down</mat-icon\n      >\n    </div>\n    <div\n      class=\"up-arrow up-arrow-second\"\n      (click)=\"arrowTicker(-50, 'second')\"\n      *ngIf=\"enableSecond\"\n    >\n      <mat-icon aria-hidden=\"false\" aria-label=\"keyboard_arrow_up icon\"\n        >keyboard_arrow_up</mat-icon\n      >\n    </div>\n    <div\n      class=\"selector-column\"\n      (scroll)=\"onScrollLoopCheck($event, 'second')\"\n      #secondContainer\n      *ngIf=\"enableSecond\"\n    >\n      <div\n        class=\"selector-cell\"\n        *ngFor=\"let lastMinuteCell of lastMinuteCells\"\n        [class.active]=\"seconds[lastMinuteCell].active\"\n        (click)=\"selectSecond(lastMinuteCell)\"\n        (mouseover)=\"seconds[lastMinuteCell].hover = true\"\n        (mouseleave)=\"seconds[lastMinuteCell].hover = false\"\n        [ngStyle]=\"{\n          'background-color': seconds[lastMinuteCell].active\n            ? backgroundColorCell\n            : seconds[lastMinuteCell].hover\n            ? backgroundColorCellHover\n            : ''\n        }\"\n      >\n        {{ lastMinuteCell }}\n      </div>\n      <div\n        *ngFor=\"let item of seconds; let i = index\"\n        class=\"selector-cell\"\n        [class.active]=\"item.active\"\n        (click)=\"selectSecond(i)\"\n        (mouseover)=\"item.hover = true\"\n        (mouseleave)=\"item.hover = false\"\n        [ngStyle]=\"{\n          'background-color': item.active\n            ? backgroundColorCell\n            : item.hover\n            ? backgroundColorCellHover\n            : ''\n        }\"\n      >\n        {{ item.time }}\n      </div>\n      <div\n        class=\"selector-cell\"\n        *ngFor=\"let firstCell of firstCells\"\n        [class.active]=\"seconds[firstCell].active\"\n        (click)=\"selectSecond(firstCell)\"\n        (mouseover)=\"seconds[firstCell].hover = true\"\n        (mouseleave)=\"seconds[firstCell].hover = false\"\n        [ngStyle]=\"{\n          'background-color': seconds[firstCell].active\n            ? backgroundColorCell\n            : seconds[firstCell].hover\n            ? backgroundColorCellHover\n            : ''\n        }\"\n      >\n        0{{ firstCell }}\n      </div>\n    </div>\n    <div\n      class=\"down-arrow down-arrow-second\"\n      (click)=\"arrowTicker(50, 'second')\"\n      *ngIf=\"enableSecond\"\n    >\n      <mat-icon aria-hidden=\"false\" aria-label=\"keyboard_arrow_down icon\"\n        >keyboard_arrow_down</mat-icon\n      >\n    </div>\n    <div class=\"selector-column\" *ngIf=\"format === '12hr'\">\n      <div\n        class=\"selector-cell\"\n        [class.active]=\"activeAmPm('AM')\"\n        (click)=\"selectAmPm('AM')\"\n        (mouseover)=\"aMpMHoverStatus.am.hover = true\"\n        (mouseleave)=\"aMpMHoverStatus.am.hover = false\"\n        [ngStyle]=\"{\n          'background-color':\n            selectedAmPm == 'AM'\n              ? backgroundColorCell\n              : aMpMHoverStatus.am.hover\n              ? backgroundColorCellHover\n              : ''\n        }\"\n      >\n        AM\n      </div>\n      <div\n        class=\"selector-cell\"\n        [class.active]=\"activeAmPm('PM')\"\n        (click)=\"selectAmPm('PM')\"\n        (mouseover)=\"aMpMHoverStatus.pm.hover = true\"\n        (mouseleave)=\"aMpMHoverStatus.pm.hover = false\"\n        [ngStyle]=\"{\n          'background-color':\n            selectedAmPm == 'PM'\n              ? backgroundColorCell\n              : aMpMHoverStatus.pm.hover\n              ? backgroundColorCellHover\n              : ''\n        }\"\n      >\n        PM\n      </div>\n    </div>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgxAngurlarTimePickerLibComponent } from './ngx-angular-time-picker-lib/ngx-angular-time-picker-lib.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n  declarations: [NgxAngurlarTimePickerLibComponent],\n  imports: [CommonModule, MatIconModule],\n  exports: [NgxAngurlarTimePickerLibComponent],\n})\nexport class NgxAngularTimePickerLibraryModule {}\n","/*\n * Public API Surface of ngx-angular-time-picker-library\n */\n\nexport * from './lib/ngx-angular-time-picker-lib/ngx-angular-time-picker-lib.component';\nexport * from './lib/ngx-angular-time-picker-library.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}