{"version":3,"file":"mdb-angular-ui-kit-range.mjs","sources":["../../../projects/mdb-angular-ui-kit/range/range.component.ts","../../../projects/mdb-angular-ui-kit/range/range.component.html","../../../projects/mdb-angular-ui-kit/range/range.module.ts","../../../projects/mdb-angular-ui-kit/range/mdb-angular-ui-kit-range.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  HostListener,\n  Input,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const RANGE_VALUE_ACCESOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => MdbRangeComponent),\n  multi: true,\n};\n@Component({\n  selector: 'mdb-range',\n  templateUrl: 'range.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [RANGE_VALUE_ACCESOR],\n  standalone: false,\n})\nexport class MdbRangeComponent implements ControlValueAccessor, AfterViewInit {\n  @ViewChild('input') input: ElementRef;\n  @ViewChild('thumb') thumb: ElementRef;\n  @ViewChild('thumbValue') thumbValue: ElementRef;\n\n  @Input() id: string;\n  @Input() required: boolean;\n  @Input() name: string;\n  @Input() value: string;\n\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n  private _disabled: boolean;\n\n  @Input() label: string;\n  @Input() min = 0;\n  @Input() max = 100;\n  @Input() step: number;\n\n  @Input()\n  get default(): boolean {\n    return this._default;\n  }\n  set default(value: boolean) {\n    this._default = value;\n  }\n  private _default: boolean;\n\n  @Input() defaultRangeCounterClass: string;\n\n  @Output() rangeValueChange = new EventEmitter<any>();\n\n  public visibility = false;\n  public thumbStyle: any;\n\n  @HostListener('change', ['$event']) onchange(event: any): void {\n    this.onChange(event.target.value);\n  }\n\n  @HostListener('input') onInput(): void {\n    this.rangeValueChange.emit({ value: this.value });\n    this.focusRangeInput();\n  }\n\n  constructor(private _cdRef: ChangeDetectorRef) {}\n\n  ngAfterViewInit(): void {\n    this.thumbPositionUpdate();\n    this._cdRef.detectChanges();\n  }\n\n  focusRangeInput(): void {\n    this.input.nativeElement.focus();\n    this.visibility = true;\n  }\n\n  blurRangeInput(): void {\n    this.input.nativeElement.blur();\n    this.visibility = false;\n  }\n\n  thumbPositionUpdate(): void {\n    const rangeInput = this.input.nativeElement;\n    const inputValue = rangeInput.value;\n    const minValue = rangeInput.min ? rangeInput.min : 0;\n    const maxValue = rangeInput.max ? rangeInput.max : 100;\n    const newValue = Number(((inputValue - minValue) * 100) / (maxValue - minValue));\n\n    this.value = inputValue;\n    this.thumbStyle = { left: `calc(${newValue}% + (${8 - newValue * 0.15}px))` };\n  }\n\n  // Control Value Accessor Methods\n  onChange = (_: any) => {};\n  onTouched = () => {};\n\n  writeValue(value: any): void {\n    this.value = value;\n\n    this._cdRef.markForCheck();\n\n    setTimeout(() => {\n      this.thumbPositionUpdate();\n      this._cdRef.markForCheck();\n    }, 0);\n  }\n\n  registerOnChange(fn: (_: any) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  static ngAcceptInputType_default: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n}\n","<label for=\"id\" class=\"form-label\">{{ label }}</label>\n<div class=\"range\">\n  <input\n    #input\n    [name]=\"name\"\n    type=\"range\"\n    [disabled]=\"disabled\"\n    [id]=\"id\"\n    [min]=\"min\"\n    [max]=\"max\"\n    [step]=\"step\"\n    [value]=\"value\"\n    class=\"form-range\"\n    min=\"0\"\n    max=\"5\"\n    [id]=\"id\"\n    (input)=\"thumbPositionUpdate()\"\n    (blur)=\"blurRangeInput()\"\n    (mousedown)=\"focusRangeInput()\"\n    (mouseup)=\"blurRangeInput()\"\n    (touchstart)=\"focusRangeInput()\"\n    (touchend)=\"blurRangeInput()\"\n  />\n  <span #thumb class=\"thumb\" [ngStyle]=\"thumbStyle\" [ngClass]=\"{ 'thumb-active': this.visibility }\">\n    <span #thumbValue class=\"thumb-value\">{{ value }}</span>\n  </span>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MdbRangeComponent } from './range.component';\n\n@NgModule({\n  imports: [CommonModule, FormsModule],\n  declarations: [MdbRangeComponent],\n  exports: [MdbRangeComponent],\n})\nexport class MdbRangeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAgBO,MAAM,mBAAmB,GAAQ;AACtC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,IAAA,KAAK,EAAE,IAAI;CACZ;MAQY,iBAAiB,CAAA;AAiDR,IAAA,MAAA;AAhDA,IAAA,KAAK;AACL,IAAA,KAAK;AACA,IAAA,UAAU;AAE1B,IAAA,EAAE;AACF,IAAA,QAAQ;AACR,IAAA,IAAI;AACJ,IAAA,KAAK;AAEd,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;IACvB;IACA,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC;IAC/C;AACQ,IAAA,SAAS;AAER,IAAA,KAAK;IACL,GAAG,GAAG,CAAC;IACP,GAAG,GAAG,GAAG;AACT,IAAA,IAAI;AAEb,IAAA,IACI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;IACA,IAAI,OAAO,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACvB;AACQ,IAAA,QAAQ;AAEP,IAAA,wBAAwB;AAEvB,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO;IAE7C,UAAU,GAAG,KAAK;AAClB,IAAA,UAAU;AAEmB,IAAA,QAAQ,CAAC,KAAU,EAAA;QACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IACnC;IAEuB,OAAO,GAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACjD,IAAI,CAAC,eAAe,EAAE;IACxB;AAEA,IAAA,WAAA,CAAoB,MAAyB,EAAA;QAAzB,IAAA,CAAA,MAAM,GAAN,MAAM;IAAsB;IAEhD,eAAe,GAAA;QACb,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;IAC7B;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IACzB;IAEA,mBAAmB,GAAA;AACjB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;AAC3C,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK;AACnC,QAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC;AACpD,QAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,GAAG;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,IAAI,GAAG,KAAK,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAEhF,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,IAAI,EAAE,CAAA,KAAA,EAAQ,QAAQ,CAAA,KAAA,EAAQ,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAA,IAAA,CAAM,EAAE;IAC/E;;AAGA,IAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,EAAE,CAAC;AACzB,IAAA,SAAS,GAAG,MAAK,EAAE,CAAC;AAEpB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAElB,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;QAE1B,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,mBAAmB,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;QAC5B,CAAC,EAAE,CAAC,CAAC;IACP;AAEA,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;IAC5B;IAEA,OAAO,yBAAyB;IAChC,OAAO,0BAA0B;uGAzGtB,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAHjB,CAAC,mBAAmB,CAAC,sSCzBlC,kwBA2BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDCa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;+BACE,WAAW,EAAA,eAAA,EAEJ,uBAAuB,CAAC,MAAM,aACpC,CAAC,mBAAmB,CAAC,EAAA,UAAA,EACpB,KAAK,EAAA,QAAA,EAAA,kwBAAA,EAAA;;sBAGhB,SAAS;uBAAC,OAAO;;sBACjB,SAAS;uBAAC,OAAO;;sBACjB,SAAS;uBAAC,YAAY;;sBAEtB;;sBACA;;sBACA;;sBACA;;sBAEA;;sBASA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBASA;;sBAEA;;sBAKA,YAAY;uBAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;;sBAIjC,YAAY;uBAAC,OAAO;;;ME7DV,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBAHV,iBAAiB,CAAA,EAAA,OAAA,EAAA,CADtB,YAAY,EAAE,WAAW,aAEzB,iBAAiB,CAAA,EAAA,CAAA;wGAEhB,cAAc,EAAA,OAAA,EAAA,CAJf,YAAY,EAAE,WAAW,CAAA,EAAA,CAAA;;2FAIxB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;oBACpC,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA;;;ACVD;;AAEG;;;;"}