{"version":3,"file":"obliczeniowo-elementary-jumper.mjs","sources":["../../../../projects/components/jumper/components/jumper/jumper.component.ts","../../../../projects/components/jumper/components/jumper/jumper.component.html","../../../../projects/components/jumper/jumper.module.ts","../../../../projects/components/jumper/obliczeniowo-elementary-jumper.ts"],"sourcesContent":["import { SliderComponent } from '@obliczeniowo/elementary/slider';\r\nimport { DecimalPipe } from '@angular/common';\r\nimport { Component, Output, ViewChild, EventEmitter, Input, ChangeDetectorRef } from '@angular/core';\r\n\r\n/**\r\n * Jumper component is made to emit jump value avery 100 ms when user press and\r\n * hold left mouse button on jumper area.\r\n *\r\n * Emitted value need to be used to increase/decrease some variable like page of\r\n * table or other parameters without care about step or target value\r\n * minimum/maximum. Size of emitted value pending on place when user click and\r\n * is bigger if your press left mouse button on edge of jumper area and less\r\n * when you click closer to center of it.\r\n */\r\n@Component({\r\n    selector: 'obl-jumper',\r\n    templateUrl: './jumper.component.html',\r\n    styleUrls: ['./jumper.component.scss'],\r\n    standalone: false\r\n})\r\nexport class JumperComponent {\r\n  @ViewChild(SliderComponent) slider!: SliderComponent;\r\n\r\n  /**\r\n   * emits jump value multiply by amount, where jump value is number from range -1 to 1\r\n   * with step set by default on 0.1\r\n   */\r\n  @Output() jump: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n  /** maximum of jumping step */\r\n  @Input() amount: number = 1;\r\n\r\n  /** */\r\n  @Input() interval: number = 100;\r\n\r\n  formatter: (value: number, max: number, decimalPipe: DecimalPipe) => string =\r\n    (value: number, max: number, decimalPipe: DecimalPipe): string => {\r\n      return '';\r\n    }\r\n\r\n  protected timer: any;\r\n\r\n  constructor(protected change: ChangeDetectorRef) { }\r\n\r\n  changed(value: number): void {\r\n    this.slider.value = 0;\r\n    this.stop();\r\n  }\r\n\r\n  emit(value: number): void {\r\n    this.slider.setValue(false);\r\n    this.start();\r\n  }\r\n\r\n  out() {\r\n    this.stop();\r\n    this.slider.value = 0;\r\n    this.slider.overValue = 0;\r\n    this.slider.setValue(false);\r\n    this.change.detectChanges();\r\n  }\r\n\r\n  protected stop() {\r\n    if (this.timer) {\r\n      clearInterval(this.timer);\r\n      this.timer = undefined;\r\n    }\r\n  }\r\n\r\n  protected start() {\r\n    if (!this.timer && this.slider) {\r\n      this.timer = setInterval(() => {\r\n        this.slider.setValue(false);\r\n        if (this.slider.value) {\r\n          this.jump.emit(this.slider.value * this.amount);\r\n        }\r\n      }, this.interval);\r\n    }\r\n  }\r\n}\r\n","<div>\r\n  <obl-slider\r\n    [min]=\"-1\"\r\n    [max]=\"1\"\r\n    [value]=\"0\"\r\n    [step]=\"0.1\"\r\n    [formatter]=\"formatter\"\r\n    (valueChanged)=\"changed($event)\"\r\n    (mouseDownValue)=\"emit($event)\"\r\n    (out)=\"out()\"\r\n    #slider\r\n  ></obl-slider>\r\n</div>\r\n","import { SliderModule } from '@obliczeniowo/elementary/slider';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { JumperComponent } from './components/jumper/jumper.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    JumperComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    SliderModule\r\n  ],\r\n  exports: [\r\n    JumperComponent\r\n  ]\r\n})\r\nexport class JumperModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}