{"version":3,"file":"ngx-mat-number-input-spinner.mjs","sources":["../../../projects/ngx-mat-number-input-spinner/src/lib/ngx-mat-number-spinner-input.directive.ts","../../../projects/ngx-mat-number-input-spinner/src/lib/ngx-mat-number-spinner-base.directive.ts","../../../projects/ngx-mat-number-input-spinner/src/lib/ngx-mat-number-spinner.component.ts","../../../projects/ngx-mat-number-input-spinner/src/lib/ngx-mat-number-spinner.component.html","../../../projects/ngx-mat-number-input-spinner/src/lib/ngx-mat-number-increment-spinner.directive.ts","../../../projects/ngx-mat-number-input-spinner/src/lib/ngx-mat-number-decrement-spinner.directive.ts","../../../projects/ngx-mat-number-input-spinner/src/lib/ngx-mat-number-spinner.module.ts","../../../projects/ngx-mat-number-input-spinner/src/public-api.ts","../../../projects/ngx-mat-number-input-spinner/src/ngx-mat-number-input-spinner.ts"],"sourcesContent":["import { Directive, ElementRef, Input, OnDestroy } from '@angular/core';\nimport { coerceBooleanProperty, coerceNumberProperty } from \"@angular/cdk/coercion\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, tap } from \"rxjs/operators\";\n\nimport { _NgxMatNumberSpinnerBase, NgxMatNumberSpinnerSign } from \"./ngx-mat-number-spinner-base.directive\";\n\n\n@Directive({\n  selector: 'input[ngxMatNumberSpinner]',\n  exportAs: 'ngxMatNumberSpinnerInput',\n  host: {\n    'class': 'ngx-mat-number-spinner-input '\n  }\n})\nexport class NgxMatNumberSpinnerInput implements OnDestroy {\n\n  @Input('ngxMatNumberSpinner')\n  set spinners(spinners: _NgxMatNumberSpinnerBase | _NgxMatNumberSpinnerBase[]) {\n    if (Array.isArray(spinners)) {\n      this._spinners = spinners;\n    }\n    else if (spinners) {\n      this._spinners = [spinners];\n    }\n    else {\n      this.spinners = [];\n    }\n    this._connectSpinners();\n  }\n  private _spinners: _NgxMatNumberSpinnerBase[] = [];\n\n  @Input()\n  set min(val: any) {\n    this._min = coerceNumberProperty(val, null);\n  }\n  get min(): number | null {\n    return this._min;\n  }\n  private _min: number | null = null;\n\n  @Input()\n  set max(val: any) {\n    this._max = coerceNumberProperty(val, null);\n  }\n  get max(): number | null {\n    return this._max;\n  }\n  private _max: number | null = null;\n\n  @Input()\n  set step(val: any) {\n    this._step = coerceNumberProperty(val, 1);\n    if (this._step <= 0) {\n      this._step = 1;\n    }\n    this._precision = this._calculatePrecision(this._step);\n  }\n  get step(): number {\n    return this._step;\n  }\n  private _step: number = 1;\n\n  @Input()\n  set disabled(val: any) {\n    this._disabled = coerceBooleanProperty(val);\n    this._spinners.forEach(spinner => {\n      spinner.disabled = this._disabled;\n    });\n  }\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  private _disabled: boolean = false;\n\n  @Input()\n  set readonly(val: any) {\n    this._readonly = coerceBooleanProperty(val);\n    this._spinners.forEach(spinner => {\n      spinner.readonly = this._readonly;\n    });\n  }\n  get readonly(): boolean {\n    return this._readonly;\n  }\n  private _readonly: boolean = false;\n\n  private _precision: number = 0;\n\n  private _destroyed: Subject<void> = new Subject();\n\n  constructor(\n    private _inputEl: ElementRef<HTMLInputElement>\n  ) {}\n\n  ngOnDestroy() {\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  private _connectSpinners() {\n    this._spinners.forEach(spinner => {\n      spinner.changed.pipe(\n        tap(sign => this._updateInputEl(sign)),\n        takeUntil(this._destroyed)\n      ).subscribe();\n    })\n  }\n\n  private _calculatePrecision(step: number): number {\n    let precision = 0;\n    const decimalIndex = ('' + step).indexOf('.');\n    if (decimalIndex > -1) {\n      precision = ('' + step).length - decimalIndex - 1;\n    }\n    return precision;\n  }\n\n  private _updateInputEl(sign: NgxMatNumberSpinnerSign) {\n    if (this._disabled || this._readonly) {\n      return;\n    }\n    let value = sign * this._step + coerceNumberProperty(this._inputEl.nativeElement.value, 0);\n    if (this._min != null && value < this._min) {\n      value = this._min;\n    }\n    if (this._max != null && value > this._max) {\n      value = this._max;\n    }\n    this._inputEl.nativeElement.value = '' + parseFloat(value.toFixed(this._precision));\n    this._inputEl.nativeElement.dispatchEvent(new Event('input'));\n    this._inputEl.nativeElement.dispatchEvent(new Event('change'));\n  }\n\n}\n","import { ChangeDetectorRef, Directive, EventEmitter, Input, OnDestroy, Output } from \"@angular/core\";\nimport { coerceBooleanProperty } from \"@angular/cdk/coercion\";\n\n\nexport type NgxMatNumberSpinnerSign = -1 | 1;\n\nexport const NGX_MAT_NUMBER_SPINNER_AUTO_DELAY = 500;\n\nexport const NGX_MAT_NUMBER_SPINNER_AUTO_REPEAT = 25;\n\n\n@Directive({})\nexport class _NgxMatNumberSpinnerBase implements OnDestroy {\n\n  @Output()\n  readonly changed: EventEmitter<NgxMatNumberSpinnerSign> = new EventEmitter<NgxMatNumberSpinnerSign>();\n\n  @Input()\n  set disabled(disabled: any) {\n    this._disabled = coerceBooleanProperty(disabled);\n    this.stopAutoUpdate();\n    this._cdr.markForCheck();\n  }\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  protected _disabled: boolean = false;\n\n  @Input()\n  set readonly(readonly: any) {\n    this._readonly = coerceBooleanProperty(readonly);\n    this.stopAutoUpdate();\n    this._cdr.markForCheck();\n  }\n  get readonly(): boolean {\n    return this._readonly;\n  }\n  protected _readonly: boolean = false;\n\n  protected _autoDelay: number = NGX_MAT_NUMBER_SPINNER_AUTO_DELAY;\n  protected _autoRepeat: number = NGX_MAT_NUMBER_SPINNER_AUTO_REPEAT;\n\n  private _autoTimeout: any;\n  private _autoInterval: any;\n\n  constructor(\n    private _cdr: ChangeDetectorRef\n  ) {}\n\n  ngOnDestroy(): void {\n    this.stopAutoUpdate();\n  }\n\n  startAutoUpdate(sign: NgxMatNumberSpinnerSign) {\n    if (this._disabled || this._readonly) {\n      return;\n    }\n    this.stopAutoUpdate();\n    this._autoTimeout = setTimeout( () => {\n      this._autoInterval = setInterval( () => {\n        this.changed.emit(sign)\n      }, this._autoRepeat);\n    }, this._autoDelay);\n  }\n\n  stopAutoUpdate() {\n    clearTimeout(this._autoTimeout);\n    clearInterval(this._autoInterval);\n  }\n\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\nimport { coerceNumberProperty } from \"@angular/cdk/coercion\";\n\nimport {\n  _NgxMatNumberSpinnerBase,\n  NGX_MAT_NUMBER_SPINNER_AUTO_DELAY,\n  NGX_MAT_NUMBER_SPINNER_AUTO_REPEAT,\n  NgxMatNumberSpinnerSign\n} from \"./ngx-mat-number-spinner-base.directive\";\n\n\n@Component({\n  selector: 'ngx-mat-number-spinner',\n  templateUrl: './ngx-mat-number-spinner.component.html',\n  styleUrls: ['./ngx-mat-number-spinner.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'ngxMatNumberSpinner',\n  host: {\n    'class': 'ngx-mat-number-spinner'\n  }\n})\nexport class NgxMatNumberSpinner extends _NgxMatNumberSpinnerBase {\n\n  @Input()\n  set autoDelay(val: number) {\n    this._autoDelay = coerceNumberProperty(val, NGX_MAT_NUMBER_SPINNER_AUTO_DELAY);\n  }\n\n  @Input()\n  set autoRepeat(val: number) {\n    this._autoRepeat = coerceNumberProperty(val, NGX_MAT_NUMBER_SPINNER_AUTO_REPEAT);\n  }\n\n  @HostBinding('class.ngx-mat-number-spinner-disabled')\n  private get _classDisabled(): boolean {\n    return this._disabled;\n  }\n\n  @HostBinding('class.ngx-mat-number-spinner-readonly')\n  private get _classReadonly(): boolean {\n    return this._readonly;\n  }\n\n  mouseDown(sign: NgxMatNumberSpinnerSign) {\n    if (this._disabled || this._readonly) {\n      return\n    }\n    this.changed.emit(sign);\n    this.startAutoUpdate(sign);\n  }\n\n  mouseUp() {\n    this.stopAutoUpdate();\n  }\n\n}\n\n","\n<div class=\"ngx-mat-number-spinner-buttons\">\n\n  <button\n    class=\"ngx-mat-number-spinner-button ngx-mat-number-spinner-button-inc\"\n    [class.ngx-mat-number-spinner-button-disabled]=\"disabled\"\n    [class.ngx-mat-number-spinner-button-readonly]=\"readonly\"\n    matRipple\n    [matRippleDisabled]=\"disabled\"\n    [disabled]=\"disabled\"\n    (mousedown)=\"mouseDown(1)\"\n    (mouseup)=\"mouseUp()\"></button>\n\n  <button\n    class=\"ngx-mat-number-spinner-button ngx-mat-number-spinner-button-dec\"\n    [class.ngx-mat-number-spinner-button-disabled]=\"disabled\"\n    [class.ngx-mat-number-spinner-button-readonly]=\"readonly\"\n    matRipple\n    [matRippleDisabled]=\"disabled\"\n    [disabled]=\"disabled\"\n    (mousedown)=\"mouseDown(-1)\"\n    (mouseup)=\"mouseUp()\"></button>\n\n</div>\n","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\nimport { coerceNumberProperty } from \"@angular/cdk/coercion\";\n\nimport {\n  _NgxMatNumberSpinnerBase,\n  NGX_MAT_NUMBER_SPINNER_AUTO_DELAY,\n  NGX_MAT_NUMBER_SPINNER_AUTO_REPEAT\n} from \"./ngx-mat-number-spinner-base.directive\";\n\n\n@Directive({\n  selector: '[ngxMatNumberIncrementSpinner]',\n  exportAs: 'ngxMatNumberIncrementSpinner',\n  host: {\n    'class': 'ngx-mat-number-increment-spinner'\n  }\n})\nexport class NgxMatNumberIncrementSpinner extends _NgxMatNumberSpinnerBase {\n\n  @Input('ngxMatNumberIncrementSpinnerAutoDelay')\n  set autoDelay(val: number) {\n    this._autoDelay = coerceNumberProperty(val, NGX_MAT_NUMBER_SPINNER_AUTO_DELAY);\n  }\n\n  @Input('ngxMatNumberIncrementSpinnerAutoRepeat')\n  set autoRepeat(val: number) {\n    this._autoRepeat = coerceNumberProperty(val, NGX_MAT_NUMBER_SPINNER_AUTO_REPEAT);\n  }\n\n  @HostBinding('attr.disabled')\n  private get _attrDisabled(): boolean | null {\n    return this._disabled ? true : null;\n  }\n\n  @HostBinding('class.ngx-mat-number-increment-spinner-disabled')\n  private get _classDisabled(): boolean {\n    return this._disabled;\n  }\n\n  @HostBinding('class.ngx-mat-number-increment-spinner-readonly')\n  private get _classReadonly(): boolean {\n    return this._readonly;\n  }\n\n  @HostListener('mousedown')\n  mouseDown() {\n    if (this._disabled || this._readonly) {\n      return\n    }\n    this.changed.emit(1);\n    this.startAutoUpdate(1);\n  }\n\n  @HostListener('mouseup')\n  mouseUp() {\n    this.stopAutoUpdate();\n  }\n\n}\n","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\nimport { coerceNumberProperty } from \"@angular/cdk/coercion\";\nimport {\n  _NgxMatNumberSpinnerBase,\n  NGX_MAT_NUMBER_SPINNER_AUTO_DELAY,\n  NGX_MAT_NUMBER_SPINNER_AUTO_REPEAT\n} from \"./ngx-mat-number-spinner-base.directive\";\n\n\n@Directive({\n  selector: '[ngxMatNumberDecrementSpinner]',\n  exportAs: 'ngxMatNumberDecrementSpinner',\n  host: {\n    'class': 'ngx-mat-number-decrement-spinner'\n  }\n})\nexport class NgxMatNumberDecrementSpinner extends _NgxMatNumberSpinnerBase {\n\n  @Input('ngxMatNumberDecrementSpinnerAutoDelay')\n  set autoDelay(val: number) {\n    this._autoDelay = coerceNumberProperty(val, NGX_MAT_NUMBER_SPINNER_AUTO_DELAY);\n  }\n\n  @Input('ngxMatNumberDecrementSpinnerAutoRepeat')\n  set autoRepeat(val: number) {\n    this._autoRepeat = coerceNumberProperty(val, NGX_MAT_NUMBER_SPINNER_AUTO_REPEAT);\n  }\n\n  @HostBinding('attr.disabled')\n  private get _attrDisabled(): boolean | null {\n    return this._disabled ? true : null;\n  }\n\n  @HostBinding('class.ngx-mat-number-decrement-spinner-disabled')\n  private get _classDisabled(): boolean {\n    return this._disabled;\n  }\n\n  @HostBinding('class.ngx-mat-number-decrement-spinner-readonly')\n  private get _classReadonly(): boolean {\n    return this._readonly;\n  }\n\n  @HostListener('mousedown')\n  mouseDown() {\n    if (this._disabled || this._readonly) {\n      return\n    }\n    this.changed.emit(-1);\n    this.startAutoUpdate(-1);\n  }\n\n  @HostListener('mouseup')\n  mouseUp() {\n    this.stopAutoUpdate();\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { MatRippleModule } from \"@angular/material/core\";\n\nimport { NgxMatNumberSpinner } from './ngx-mat-number-spinner.component';\nimport { NgxMatNumberIncrementSpinner } from \"./ngx-mat-number-increment-spinner.directive\";\nimport { NgxMatNumberDecrementSpinner } from \"./ngx-mat-number-decrement-spinner.directive\";\nimport { NgxMatNumberSpinnerInput } from './ngx-mat-number-spinner-input.directive';\n\n\n@NgModule({\n  declarations: [\n    NgxMatNumberSpinner,\n    NgxMatNumberIncrementSpinner,\n    NgxMatNumberDecrementSpinner,\n    NgxMatNumberSpinnerInput,\n  ],\n  imports: [\n    MatRippleModule\n  ],\n  exports: [\n    NgxMatNumberSpinner,\n    NgxMatNumberIncrementSpinner,\n    NgxMatNumberDecrementSpinner,\n    NgxMatNumberSpinnerInput,\n  ]\n})\nexport class NgxMatNumberInputSpinnerModule { }\n","/*\n * Public API Surface of ngx-mat-number-input-spinner\n */\n\nexport * from './lib/ngx-mat-number-spinner-input.directive';\nexport * from './lib/ngx-mat-number-spinner.component';\nexport * from './lib/ngx-mat-number-increment-spinner.directive';\nexport * from './lib/ngx-mat-number-decrement-spinner.directive';\nexport * from './lib/ngx-mat-number-spinner.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}