@taiga-ui/kit 2.37.0 → 2.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/abstract/input-slider.d.ts +9 -5
  2. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-kit-abstract.umd.js +8 -10
  4. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  5. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  6. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-accordion.umd.js +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-checkbox.umd.js +2 -2
  11. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +2 -2
  13. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-input-files.umd.js +8 -0
  15. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-input-files.umd.min.js +1 -1
  17. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-input-number.umd.js +21 -14
  19. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +2 -2
  21. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-input-range.umd.js +12 -2
  23. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +1 -1
  25. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-input-slider.umd.js +153 -117
  27. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +2 -2
  29. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-input-tag.umd.js +18 -9
  31. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  33. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-radio.umd.js +1 -1
  35. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  37. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-select.umd.js +1 -1
  39. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  41. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-slider.umd.js +23 -2
  43. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  45. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  47. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  49. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-toggle.umd.js +2 -2
  51. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  53. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  54. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js +25 -1
  55. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
  56. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.min.js +2 -2
  57. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.min.js.map +1 -1
  58. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  59. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  60. package/components/input-files/input-files.component.d.ts +1 -0
  61. package/components/input-files/taiga-ui-kit-components-input-files.metadata.json +1 -1
  62. package/components/input-number/input-number.component.d.ts +4 -2
  63. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  64. package/components/input-range/input-range.component.d.ts +2 -1
  65. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  66. package/components/input-slider/input-slider.component.d.ts +39 -22
  67. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  68. package/components/input-tag/input-tag.component.d.ts +9 -2
  69. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  70. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  71. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  72. package/components/slider/slider-key-steps.directive.d.ts +3 -1
  73. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  74. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  75. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  76. package/esm2015/abstract/input-slider.js +9 -7
  77. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +1 -1
  78. package/esm2015/components/checkbox/checkbox.component.js +3 -3
  79. package/esm2015/components/input-files/input-files.component.js +5 -1
  80. package/esm2015/components/input-number/input-number.component.js +21 -15
  81. package/esm2015/components/input-number/input-number.module.js +5 -1
  82. package/esm2015/components/input-range/input-range.component.js +10 -4
  83. package/esm2015/components/input-slider/input-slider.component.js +155 -108
  84. package/esm2015/components/input-slider/input-slider.module.js +5 -2
  85. package/esm2015/components/input-tag/input-tag.component.js +21 -12
  86. package/esm2015/components/radio/radio.component.js +2 -2
  87. package/esm2015/components/select/select.component.js +2 -2
  88. package/esm2015/components/slider/slider-key-steps.directive.js +14 -1
  89. package/esm2015/components/slider/slider.component.js +3 -3
  90. package/esm2015/components/text-area/text-area.component.js +3 -3
  91. package/esm2015/components/toggle/toggle.component.js +3 -3
  92. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +26 -2
  93. package/esm5/abstract/input-slider.js +9 -11
  94. package/esm5/components/accordion/accordion-item/accordion-item.component.js +1 -1
  95. package/esm5/components/checkbox/checkbox.component.js +3 -3
  96. package/esm5/components/input-files/input-files.component.js +9 -1
  97. package/esm5/components/input-number/input-number.component.js +18 -12
  98. package/esm5/components/input-number/input-number.module.js +5 -1
  99. package/esm5/components/input-range/input-range.component.js +14 -4
  100. package/esm5/components/input-slider/input-slider.component.js +153 -117
  101. package/esm5/components/input-slider/input-slider.module.js +5 -2
  102. package/esm5/components/input-tag/input-tag.component.js +21 -12
  103. package/esm5/components/radio/radio.component.js +2 -2
  104. package/esm5/components/select/select.component.js +2 -2
  105. package/esm5/components/slider/slider-key-steps.directive.js +22 -1
  106. package/esm5/components/slider/slider.component.js +3 -3
  107. package/esm5/components/text-area/text-area.component.js +3 -3
  108. package/esm5/components/toggle/toggle.component.js +3 -3
  109. package/esm5/internal/primitive-calendar-range/primitive-calendar-range.component.js +26 -2
  110. package/fesm2015/taiga-ui-kit-abstract.js +8 -6
  111. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  112. package/fesm2015/taiga-ui-kit-components-accordion.js +1 -1
  113. package/fesm2015/taiga-ui-kit-components-checkbox.js +2 -2
  114. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  115. package/fesm2015/taiga-ui-kit-components-input-files.js +4 -0
  116. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  117. package/fesm2015/taiga-ui-kit-components-input-number.js +24 -15
  118. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  119. package/fesm2015/taiga-ui-kit-components-input-range.js +8 -2
  120. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  121. package/fesm2015/taiga-ui-kit-components-input-slider.js +156 -107
  122. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  123. package/fesm2015/taiga-ui-kit-components-input-tag.js +21 -12
  124. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  125. package/fesm2015/taiga-ui-kit-components-radio.js +1 -1
  126. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  127. package/fesm2015/taiga-ui-kit-components-select.js +1 -1
  128. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  129. package/fesm2015/taiga-ui-kit-components-slider.js +15 -2
  130. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  131. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  132. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  133. package/fesm2015/taiga-ui-kit-components-toggle.js +2 -2
  134. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  135. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js +25 -1
  136. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  137. package/fesm5/taiga-ui-kit-abstract.js +8 -10
  138. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  139. package/fesm5/taiga-ui-kit-components-accordion.js +1 -1
  140. package/fesm5/taiga-ui-kit-components-checkbox.js +2 -2
  141. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  142. package/fesm5/taiga-ui-kit-components-input-files.js +8 -0
  143. package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -1
  144. package/fesm5/taiga-ui-kit-components-input-number.js +21 -12
  145. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  146. package/fesm5/taiga-ui-kit-components-input-range.js +12 -2
  147. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  148. package/fesm5/taiga-ui-kit-components-input-slider.js +154 -116
  149. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  150. package/fesm5/taiga-ui-kit-components-input-tag.js +21 -12
  151. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  152. package/fesm5/taiga-ui-kit-components-radio.js +1 -1
  153. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  154. package/fesm5/taiga-ui-kit-components-select.js +1 -1
  155. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  156. package/fesm5/taiga-ui-kit-components-slider.js +23 -2
  157. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  158. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  159. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  160. package/fesm5/taiga-ui-kit-components-toggle.js +2 -2
  161. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  162. package/fesm5/taiga-ui-kit-internal-primitive-calendar-range.js +25 -1
  163. package/fesm5/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  164. package/internal/primitive-calendar-range/primitive-calendar-range.component.d.ts +3 -0
  165. package/internal/primitive-calendar-range/taiga-ui-kit-internal-primitive-calendar-range.metadata.json +1 -1
  166. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-range.js","sources":["ng://@taiga-ui/kit/components/input-range/input-range.component.ts","ng://@taiga-ui/kit/components/input-range/input-range.module.ts","ng://@taiga-ui/kit/components/input-range/taiga-ui-kit-components-input-range.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n Inject,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n isNativeFocused,\n setNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_IS_MOBILE,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n formatNumber,\n maskedMoneyValueIsEmpty,\n maskedNumberStringToNumber,\n NumberFormatSettings,\n TUI_NUMBER_FORMAT,\n TUI_TEXTFIELD_APPEARANCE,\n TuiModeDirective,\n} from '@taiga-ui/core';\nimport {AbstractTuiInputSlider} from '@taiga-ui/kit/abstract';\n\n// @dynamic\n@Component({\n selector: 'tui-input-range',\n templateUrl: './input-range.template.html',\n styleUrls: ['./input-range.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputRangeComponent),\n },\n ],\n})\nexport class TuiInputRangeComponent\n extends AbstractTuiInputSlider<[number, number]>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('nativeLeft')\n private readonly nativeLeft?: ElementRef<HTMLInputElement>;\n\n @ViewChild('nativeRight')\n private readonly nativeRight?: ElementRef<HTMLInputElement>;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Optional()\n @Inject(TuiModeDirective)\n protected readonly modeDirective: TuiModeDirective | null,\n @Inject(TUI_IS_MOBILE)\n private readonly isMobile: boolean,\n @Inject(TUI_NUMBER_FORMAT)\n protected readonly numberFormat: NumberFormatSettings,\n @Inject(TUI_TEXTFIELD_APPEARANCE)\n readonly appearance: string,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return !this.nativeLeft || this.disabled ? null : this.nativeLeft.nativeElement;\n }\n\n get focused(): boolean {\n return this.focusedLeft || this.focusedRight;\n }\n\n get focusedLeft(): boolean {\n return !!this.nativeLeft && isNativeFocused(this.nativeLeft.nativeElement);\n }\n\n get focusedRight(): boolean {\n return !!this.nativeRight && isNativeFocused(this.nativeRight.nativeElement);\n }\n\n @HostBinding('class._min-label')\n get showMinLabel(): boolean {\n return !this.focusedLeft && !!this.minLabel && this.value[0] === this.min;\n }\n\n @HostBinding('class._max-label')\n get showMaxLabel(): boolean {\n return !this.focusedRight && !!this.maxLabel && this.value[1] === this.max;\n }\n\n get inputValueLeft(): string {\n return this.nativeLeft ? this.nativeLeft.nativeElement.value : '';\n }\n\n get inputValueRight(): string {\n return this.nativeRight ? this.nativeRight.nativeElement.value : '';\n }\n\n get computedValueLeft(): string {\n return this.computedPureValueLeft(this.value[0]);\n }\n\n get computedValueRight(): string {\n return this.computedPureValueRight(this.value[1]);\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n }\n\n onMouseDown() {\n if (this.nativeRight && !this.isMobile) {\n setNativeFocused(this.nativeRight.nativeElement);\n }\n }\n\n onKeyDownArrowUpLeft(event: KeyboardEvent) {\n if (this.readOnly) {\n return;\n }\n\n event.preventDefault();\n this.processStep(true, false);\n }\n\n onKeyDownArrowDownLeft(event: KeyboardEvent) {\n if (this.readOnly) {\n return;\n }\n\n event.preventDefault();\n this.processStep(false, false);\n }\n\n onKeyDownArrowUpRight(event: KeyboardEvent) {\n if (this.readOnly) {\n return;\n }\n\n event.preventDefault();\n this.processStep(true, true);\n }\n\n onKeyDownArrowDownRight(event: KeyboardEvent) {\n if (this.readOnly) {\n return;\n }\n\n event.preventDefault();\n this.processStep(false, true);\n }\n\n onInputLeft() {\n const value = this.inputValueLeft;\n const capped = this.capInputValue(value, this.value[1]);\n const postfix = value.slice(-1)[0] === ',' ? ',' : '';\n\n if (maskedMoneyValueIsEmpty(value) || capped === null) {\n return;\n }\n\n const newValue = this.formatNumber(capped) + postfix;\n\n if (this.nativeLeft && this.inputValueLeft !== newValue) {\n this.nativeLeft.nativeElement.value = newValue;\n }\n\n this.updateValue([capped, this.value[1]]);\n }\n\n onInputRight() {\n const value = this.inputValueRight;\n const capped = this.capInputValue(value);\n const postfix = value.slice(-1)[0] === ',' ? ',' : '';\n\n if (maskedMoneyValueIsEmpty(value) || capped === null) {\n return;\n }\n\n const newValue = this.formatNumber(capped) + postfix;\n\n if (this.nativeRight && this.inputValueRight !== newValue) {\n this.nativeRight.nativeElement.value = newValue;\n }\n\n if (capped >= this.value[0]) {\n this.updateValue([this.value[0], capped]);\n }\n }\n\n onRangeValue(value: [number, number]) {\n const guardedValue = value.map(item => this.valueGuard(item)) as [number, number];\n\n if (\n !this.nativeLeft ||\n !this.nativeRight ||\n (guardedValue[0] === this.value[0] && guardedValue[1] === this.value[1])\n ) {\n return;\n }\n\n if (!this.isMobile) {\n const element =\n guardedValue[0] !== this.value[0]\n ? this.nativeLeft.nativeElement\n : this.nativeRight.nativeElement;\n\n setNativeFocused(element);\n }\n\n this.updateValue(guardedValue);\n this.nativeLeft.nativeElement.value = this.formatNumber(guardedValue[0]);\n }\n\n onLeftFocused(focused: boolean) {\n if (focused || !this.nativeLeft) {\n return;\n }\n\n const inputValue = maskedNumberStringToNumber(\n this.computedValueLeft,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n const value = isNaN(inputValue) ? this.min : this.valueGuard(inputValue);\n\n this.nativeLeft.nativeElement.value = this.formatNumber(value);\n\n if (value !== this.value[0]) {\n this.updateValue([value, this.value[1]]);\n }\n }\n\n onRightFocused(focused: boolean) {\n if (focused || !this.nativeRight) {\n return;\n }\n\n const inputValue = maskedNumberStringToNumber(\n this.computedValueRight,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n\n const value = isNaN(inputValue)\n ? this.value[0]\n : this.valueGuard(Math.max(inputValue, this.value[0]));\n\n this.nativeRight.nativeElement.value = this.formatNumber(value);\n\n if (value !== this.value[1]) {\n this.updateValue([this.value[0], value]);\n }\n }\n\n protected getFallbackValue(): [number, number] {\n return [0, 0];\n }\n\n @tuiPure\n private computedPureValueLeft(value: number) {\n return this.formatNumber(value);\n }\n\n @tuiPure\n private computedPureValueRight(value: number) {\n return this.formatNumber(value);\n }\n\n private formatNumber(value: number): string {\n return formatNumber(\n value,\n null,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n }\n\n private processStep(increment: boolean, right: boolean) {\n const start = this.valueGuard(\n increment ? this.value[0] + this.step : this.value[0] - this.step,\n );\n const end = this.valueGuard(\n increment ? this.value[1] + this.step : this.value[1] - this.step,\n );\n const value: [number, number] = [\n right ? this.value[0] : Math.min(start, this.value[1]),\n right ? Math.max(end, this.value[0]) : this.value[1],\n ];\n\n if (value[0] !== this.value[0] || value[1] !== this.value[1]) {\n this.updateValue(value);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n TuiActiveZoneModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n TuiMapperPipeModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {TuiWrapperModule} from '@taiga-ui/core';\nimport {TuiRangeModule} from '@taiga-ui/kit/components/range';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputRangeComponent} from './input-range.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TextMaskModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiMapperPipeModule,\n TuiInputModeModule,\n TuiActiveZoneModule,\n TuiRangeModule,\n TuiWrapperModule,\n ],\n declarations: [TuiInputRangeComponent],\n exports: [TuiInputRangeComponent],\n})\nexport class TuiInputRangeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-input-range.js","sources":["ng://@taiga-ui/kit/components/input-range/input-range.component.ts","ng://@taiga-ui/kit/components/input-range/input-range.module.ts","ng://@taiga-ui/kit/components/input-range/taiga-ui-kit-components-input-range.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n Inject,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n isNativeFocused,\n setNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_IS_MOBILE,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n formatNumber,\n maskedMoneyValueIsEmpty,\n maskedNumberStringToNumber,\n NumberFormatSettings,\n TUI_NUMBER_FORMAT,\n TUI_TEXTFIELD_APPEARANCE,\n TuiBrightness,\n TuiModeDirective,\n} from '@taiga-ui/core';\nimport {AbstractTuiInputSlider} from '@taiga-ui/kit/abstract';\n\n// @dynamic\n@Component({\n selector: 'tui-input-range',\n templateUrl: './input-range.template.html',\n styleUrls: ['./input-range.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputRangeComponent),\n },\n ],\n})\nexport class TuiInputRangeComponent\n extends AbstractTuiInputSlider<[number, number]>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('nativeLeft')\n private readonly nativeLeft?: ElementRef<HTMLInputElement>;\n\n @ViewChild('nativeRight')\n private readonly nativeRight?: ElementRef<HTMLInputElement>;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Optional()\n @Inject(TuiModeDirective)\n protected readonly modeDirective: TuiModeDirective | null,\n @Inject(TUI_IS_MOBILE)\n private readonly isMobile: boolean,\n @Inject(TUI_NUMBER_FORMAT)\n protected readonly numberFormat: NumberFormatSettings,\n @Inject(TUI_TEXTFIELD_APPEARANCE)\n readonly appearance: string,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return !this.nativeLeft || this.disabled ? null : this.nativeLeft.nativeElement;\n }\n\n get focused(): boolean {\n return this.focusedLeft || this.focusedRight;\n }\n\n get focusedLeft(): boolean {\n return !!this.nativeLeft && isNativeFocused(this.nativeLeft.nativeElement);\n }\n\n get focusedRight(): boolean {\n return !!this.nativeRight && isNativeFocused(this.nativeRight.nativeElement);\n }\n\n @HostBinding('class._min-label')\n get showMinLabel(): boolean {\n return !this.focusedLeft && !!this.minLabel && this.value[0] === this.min;\n }\n\n @HostBinding('class._max-label')\n get showMaxLabel(): boolean {\n return !this.focusedRight && !!this.maxLabel && this.value[1] === this.max;\n }\n\n @HostBinding('attr.data-mode')\n get hostMode(): TuiBrightness | null {\n return this.modeDirective && this.modeDirective.mode;\n }\n\n get inputValueLeft(): string {\n return this.nativeLeft ? this.nativeLeft.nativeElement.value : '';\n }\n\n get inputValueRight(): string {\n return this.nativeRight ? this.nativeRight.nativeElement.value : '';\n }\n\n get computedValueLeft(): string {\n return this.computedPureValueLeft(this.value[0]);\n }\n\n get computedValueRight(): string {\n return this.computedPureValueRight(this.value[1]);\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n }\n\n onMouseDown() {\n if (this.nativeRight && !this.isMobile) {\n setNativeFocused(this.nativeRight.nativeElement);\n }\n }\n\n onKeyDownArrowUpLeft(event: KeyboardEvent) {\n if (this.readOnly) {\n return;\n }\n\n event.preventDefault();\n this.processStep(true, false);\n }\n\n onKeyDownArrowDownLeft(event: KeyboardEvent) {\n if (this.readOnly) {\n return;\n }\n\n event.preventDefault();\n this.processStep(false, false);\n }\n\n onKeyDownArrowUpRight(event: KeyboardEvent) {\n if (this.readOnly) {\n return;\n }\n\n event.preventDefault();\n this.processStep(true, true);\n }\n\n onKeyDownArrowDownRight(event: KeyboardEvent) {\n if (this.readOnly) {\n return;\n }\n\n event.preventDefault();\n this.processStep(false, true);\n }\n\n onInputLeft() {\n const value = this.inputValueLeft;\n const capped = this.capInputValue(value, this.value[1]);\n const postfix = value.slice(-1)[0] === ',' ? ',' : '';\n\n if (maskedMoneyValueIsEmpty(value) || capped === null) {\n return;\n }\n\n const newValue = this.formatNumber(capped) + postfix;\n\n if (this.nativeLeft && this.inputValueLeft !== newValue) {\n this.nativeLeft.nativeElement.value = newValue;\n }\n\n this.updateValue([capped, this.value[1]]);\n }\n\n onInputRight() {\n const value = this.inputValueRight;\n const capped = this.capInputValue(value);\n const postfix = value.slice(-1)[0] === ',' ? ',' : '';\n\n if (maskedMoneyValueIsEmpty(value) || capped === null) {\n return;\n }\n\n const newValue = this.formatNumber(capped) + postfix;\n\n if (this.nativeRight && this.inputValueRight !== newValue) {\n this.nativeRight.nativeElement.value = newValue;\n }\n\n if (capped >= this.value[0]) {\n this.updateValue([this.value[0], capped]);\n }\n }\n\n onRangeValue(value: [number, number]) {\n const guardedValue = value.map(item => this.valueGuard(item)) as [number, number];\n\n if (\n !this.nativeLeft ||\n !this.nativeRight ||\n (guardedValue[0] === this.value[0] && guardedValue[1] === this.value[1])\n ) {\n return;\n }\n\n if (!this.isMobile) {\n const element =\n guardedValue[0] !== this.value[0]\n ? this.nativeLeft.nativeElement\n : this.nativeRight.nativeElement;\n\n setNativeFocused(element);\n }\n\n this.updateValue(guardedValue);\n this.nativeLeft.nativeElement.value = this.formatNumber(guardedValue[0]);\n }\n\n onLeftFocused(focused: boolean) {\n if (focused || !this.nativeLeft) {\n return;\n }\n\n const inputValue = maskedNumberStringToNumber(\n this.computedValueLeft,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n const value = isNaN(inputValue) ? this.min : this.valueGuard(inputValue);\n\n this.nativeLeft.nativeElement.value = this.formatNumber(value);\n\n if (value !== this.value[0]) {\n this.updateValue([value, this.value[1]]);\n }\n }\n\n onRightFocused(focused: boolean) {\n if (focused || !this.nativeRight) {\n return;\n }\n\n const inputValue = maskedNumberStringToNumber(\n this.computedValueRight,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n\n const value = isNaN(inputValue)\n ? this.value[0]\n : this.valueGuard(Math.max(inputValue, this.value[0]));\n\n this.nativeRight.nativeElement.value = this.formatNumber(value);\n\n if (value !== this.value[1]) {\n this.updateValue([this.value[0], value]);\n }\n }\n\n protected getFallbackValue(): [number, number] {\n return [0, 0];\n }\n\n @tuiPure\n private computedPureValueLeft(value: number) {\n return this.formatNumber(value);\n }\n\n @tuiPure\n private computedPureValueRight(value: number) {\n return this.formatNumber(value);\n }\n\n private formatNumber(value: number): string {\n return formatNumber(\n value,\n null,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n }\n\n private processStep(increment: boolean, right: boolean) {\n const start = this.valueGuard(\n increment ? this.value[0] + this.step : this.value[0] - this.step,\n );\n const end = this.valueGuard(\n increment ? this.value[1] + this.step : this.value[1] - this.step,\n );\n const value: [number, number] = [\n right ? this.value[0] : Math.min(start, this.value[1]),\n right ? Math.max(end, this.value[0]) : this.value[1],\n ];\n\n if (value[0] !== this.value[0] || value[1] !== this.value[1]) {\n this.updateValue(value);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n TuiActiveZoneModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n TuiMapperPipeModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {TuiWrapperModule} from '@taiga-ui/core';\nimport {TuiRangeModule} from '@taiga-ui/kit/components/range';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputRangeComponent} from './input-range.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TextMaskModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiMapperPipeModule,\n TuiInputModeModule,\n TuiActiveZoneModule,\n TuiRangeModule,\n TuiWrapperModule,\n ],\n declarations: [TuiInputRangeComponent],\n exports: [TuiInputRangeComponent],\n})\nexport class TuiInputRangeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAkCA;;IAcY,0CAAwC;IAShD,gCAII,OAAyB,EACE,iBAAoC,EAG5C,aAAsC,EAExC,QAAiB,EAEf,YAAkC,EAE5C,UAAkB;QAd/B,YAgBI,kBAAM,OAAO,EAAE,iBAAiB,CAAC,SACpC;QATsB,mBAAa,GAAb,aAAa,CAAyB;QAExC,cAAQ,GAAR,QAAQ,CAAS;QAEf,kBAAY,GAAZ,YAAY,CAAsB;QAE5C,gBAAU,GAAV,UAAU,CAAQ;;KAG9B;+BA3BQ,sBAAsB;IA6B/B,sBAAI,0DAAsB;aAA1B;YACI,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;SACnF;;;OAAA;IAED,sBAAI,2CAAO;aAAX;YACI,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;SAChD;;;OAAA;IAED,sBAAI,+CAAW;aAAf;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SAC9E;;;OAAA;IAED,sBAAI,gDAAY;aAAhB;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;SAChF;;;OAAA;IAGD,sBAAI,gDAAY;aAAhB;YACI,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC;SAC7E;;;OAAA;IAGD,sBAAI,gDAAY;aAAhB;YACI,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC;SAC9E;;;OAAA;IAGD,sBAAI,4CAAQ;aAAZ;YACI,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SACxD;;;OAAA;IAED,sBAAI,kDAAc;aAAlB;YACI,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;SACrE;;;OAAA;IAED,sBAAI,mDAAe;aAAnB;YACI,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;SACvE;;;OAAA;IAED,sBAAI,qDAAiB;aAArB;YACI,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD;;;OAAA;IAED,sBAAI,sDAAkB;aAAtB;YACI,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD;;;OAAA;IAED,6CAAY,GAAZ,UAAa,MAAe;QACxB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KAC9B;IAED,4CAAW,GAAX;QACI,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACpC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;SACpD;KACJ;IAED,qDAAoB,GAApB,UAAqB,KAAoB;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACjC;IAED,uDAAsB,GAAtB,UAAuB,KAAoB;QACvC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KAClC;IAED,sDAAqB,GAArB,UAAsB,KAAoB;QACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAChC;IAED,wDAAuB,GAAvB,UAAwB,KAAoB;QACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACjC;IAED,4CAAW,GAAX;QACI,IAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;QAClC,IAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;QAEtD,IAAI,uBAAuB,CAAC,KAAK,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE;YACnD,OAAO;SACV;QAED,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QAErD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;YACrD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,QAAQ,CAAC;SAClD;QAED,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7C;IAED,6CAAY,GAAZ;QACI,IAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;QACnC,IAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,IAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;QAEtD,IAAI,uBAAuB,CAAC,KAAK,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE;YACnD,OAAO;SACV;QAED,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QAErD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE;YACvD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,QAAQ,CAAC;SACnD;QAED,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SAC7C;KACJ;IAED,6CAAY,GAAZ,UAAa,KAAuB;QAApC,iBAsBC;QArBG,IAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAA,CAAqB,CAAC;QAElF,IACI,CAAC,IAAI,CAAC,UAAU;YAChB,CAAC,IAAI,CAAC,WAAW;aAChB,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC1E;YACE,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAM,OAAO,GACT,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;kBAC3B,IAAI,CAAC,UAAU,CAAC,aAAa;kBAC7B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;YAEzC,gBAAgB,CAAC,OAAO,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5E;IAED,8CAAa,GAAb,UAAc,OAAgB;QAC1B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC7B,OAAO;SACV;QAED,IAAM,UAAU,GAAG,0BAA0B,CACzC,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAClC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CACtC,CAAC;QACF,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEzE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE/D,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5C;KACJ;IAED,+CAAc,GAAd,UAAe,OAAgB;QAC3B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC9B,OAAO;SACV;QAED,IAAM,UAAU,GAAG,0BAA0B,CACzC,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAClC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CACtC,CAAC;QAEF,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;cACzB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;cACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;SAC5C;KACJ;IAES,iDAAgB,GAA1B;QACI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACjB;IAGO,sDAAqB,GAA7B,UAA8B,KAAa;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KACnC;IAGO,uDAAsB,GAA9B,UAA+B,KAAa;QACxC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KACnC;IAEO,6CAAY,GAApB,UAAqB,KAAa;QAC9B,OAAO,YAAY,CACf,KAAK,EACL,IAAI,EACJ,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAClC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CACtC,CAAC;KACL;IAEO,4CAAW,GAAnB,UAAoB,SAAkB,EAAE,KAAc;QAClD,IAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CACzB,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CACpE,CAAC;QACF,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CACvB,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CACpE,CAAC;QACF,IAAM,KAAK,GAAqB;YAC5B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACvD,CAAC;QAEF,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC1D,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC3B;KACJ;;;gBAzPY,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;gBAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;gBAGS,gBAAgB,uBAFjD,QAAQ,YACR,MAAM,SAAC,gBAAgB;8CAEvB,MAAM,SAAC,aAAa;gDAEpB,MAAM,SAAC,iBAAiB;6CAExB,MAAM,SAAC,wBAAwB;;IAlBpC;QADC,SAAS,CAAC,YAAY,CAAC;8DACmC;IAG3D;QADC,SAAS,CAAC,aAAa,CAAC;+DACmC;IAsC5D;QADC,WAAW,CAAC,kBAAkB,CAAC;8DAG/B;IAGD;QADC,WAAW,CAAC,kBAAkB,CAAC;8DAG/B;IAGD;QADC,WAAW,CAAC,gBAAgB,CAAC;0DAG7B;IA4KD;QADC,OAAO;uEAGP;IAGD;QADC,OAAO;wEAGP;IA7OQ,sBAAsB;QAZlC,SAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;YAC3B,8hHAA0C;YAE1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,2BAA2B;oBACpC,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,wBAAsB,GAAA,CAAC;iBACxD;aACJ;;SACJ,CAAC;QAYO,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,IAAI,EAAE,CAAA;QACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;QAEjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACzB,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;QAExB,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;QAErB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAEzB,WAAA,MAAM,CAAC,wBAAwB,CAAC,CAAA;OAvB5B,sBAAsB,CAwQlC;IAAD,6BAAC;CAAA,CAvQW,sBAAsB;;;ICXlC;KAAmC;IAAtB,mBAAmB;QAnB/B,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,WAAW;gBACX,mBAAmB;gBACnB,cAAc;gBACd,kBAAkB;gBAClB,gBAAgB;gBAChB,gBAAgB;gBAChB,gBAAgB;gBAChB,mBAAmB;gBACnB,kBAAkB;gBAClB,mBAAmB;gBACnB,cAAc;gBACd,gBAAgB;aACnB;YACD,YAAY,EAAE,CAAC,sBAAsB,CAAC;YACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC;OACW,mBAAmB,CAAG;IAAD,0BAAC;CAAnC;;ACrCA;;;;;;"}
@@ -1,10 +1,12 @@
1
1
  import { __decorate, __extends, __param } from 'tslib';
2
- import { Directive, Optional, Self, Inject, ChangeDetectorRef, ViewChild, ElementRef, Input, HostBinding, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
2
+ import { Directive, Optional, Self, Inject, ChangeDetectorRef, ViewChild, ElementRef, Input, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
3
3
  import { NgControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { isNativeFocused, setNativeFocused, tuiDefaultProp, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiFocusableModule, TuiFocusedModule, TuiHoveredModule, TuiPressedModule, TuiMapperPipeModule, TuiInputModeModule, TuiRepeatTimesModule } from '@taiga-ui/cdk';
5
- import { maskedNumberStringToNumber, maskedMoneyValueIsEmpty, formatNumber, TuiModeDirective, TuiHintControllerDirective, TUI_HINT_WATCHED_CONTROLLER, TuiTextfieldController, TUI_TEXTFIELD_WATCHED_CONTROLLER, TUI_NUMBER_FORMAT, TUI_TEXTFIELD_APPEARANCE, HINT_CONTROLLER_PROVIDER, TEXTFIELD_CONTROLLER_PROVIDER, TuiTooltipModule, TuiWrapperModule, TuiFormatNumberPipeModule } from '@taiga-ui/core';
4
+ import { isNativeFocused, tuiAssert, setNativeFocused, round, clamp, tuiDefaultProp, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiFocusableModule, TuiFocusedModule, TuiHoveredModule, TuiPressedModule, TuiMapperPipeModule, TuiInputModeModule, TuiRepeatTimesModule } from '@taiga-ui/cdk';
5
+ import { getFractionPartPadded, TuiTextfieldController, TUI_TEXTFIELD_WATCHED_CONTROLLER, TUI_NUMBER_FORMAT, HINT_CONTROLLER_PROVIDER, TEXTFIELD_CONTROLLER_PROVIDER, TuiTooltipModule, TuiWrapperModule, TuiFormatNumberPipeModule, TuiTextfieldControllerModule } from '@taiga-ui/core';
6
6
  import { AbstractTuiInputSlider } from '@taiga-ui/kit/abstract';
7
+ import { TuiInputNumberComponent, TuiInputNumberModule } from '@taiga-ui/kit/components/input-number';
7
8
  import { TuiSliderComponent, tuiSliderOptionsProvider, TuiSliderModule } from '@taiga-ui/kit/components/slider';
9
+ import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
8
10
  import { TUI_FROM_TO_TEXTS } from '@taiga-ui/kit/tokens';
9
11
  import { Observable } from 'rxjs';
10
12
  import { CommonModule } from '@angular/common';
@@ -29,15 +31,26 @@ var TuiNewInputSliderDirective = /** @class */ (function () {
29
31
  // @dynamic
30
32
  var TuiInputSliderComponent = /** @class */ (function (_super) {
31
33
  __extends(TuiInputSliderComponent, _super);
32
- function TuiInputSliderComponent(control, changeDetectorRef, modeDirective, hintController, controller, numberFormat, appearance, fromToTexts$, isNew) {
34
+ function TuiInputSliderComponent(control, changeDetectorRef, controller, numberFormat, fromToTexts$, isNew) {
33
35
  var _this = _super.call(this, control, changeDetectorRef) || this;
34
- _this.modeDirective = modeDirective;
35
- _this.hintController = hintController;
36
36
  _this.controller = controller;
37
37
  _this.numberFormat = numberFormat;
38
- _this.appearance = appearance;
39
38
  _this.fromToTexts$ = fromToTexts$;
40
39
  _this.isNew = isNew;
40
+ _this.min = 0;
41
+ _this.max = Infinity;
42
+ _this.quantum = 1;
43
+ _this.steps = 0;
44
+ _this.segments = 0;
45
+ _this.keySteps = null;
46
+ _this.valueContent = '';
47
+ _this.prefix = '';
48
+ _this.postfix = '';
49
+ /**
50
+ * @deprecated use `tuiTextfieldSize` instead
51
+ * TODO delete in v3.0
52
+ */
53
+ _this.size = 'l';
41
54
  /**
42
55
  * @deprecated use `tuiTextfieldCustomContent` instead
43
56
  * TODO delete in v3.0
@@ -48,9 +61,10 @@ var TuiInputSliderComponent = /** @class */ (function (_super) {
48
61
  TuiInputSliderComponent_1 = TuiInputSliderComponent;
49
62
  Object.defineProperty(TuiInputSliderComponent.prototype, "nativeFocusableElement", {
50
63
  get: function () {
51
- return !this.focusableElement || this.computedDisabled
64
+ var _a;
65
+ return !((_a = this.inputNumberRef) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) || this.computedDisabled
52
66
  ? null
53
- : this.focusableElement.nativeElement;
67
+ : this.inputNumberRef.nativeFocusableElement;
54
68
  },
55
69
  enumerable: true,
56
70
  configurable: true
@@ -64,170 +78,170 @@ var TuiInputSliderComponent = /** @class */ (function (_super) {
64
78
  enumerable: true,
65
79
  configurable: true
66
80
  });
67
- Object.defineProperty(TuiInputSliderComponent.prototype, "hasTooltip", {
81
+ Object.defineProperty(TuiInputSliderComponent.prototype, "computedSteps", {
68
82
  get: function () {
69
- return !!this.hintController.content && !this.disabled;
83
+ return this.steps || (this.max - this.min) / this.quantum;
70
84
  },
71
85
  enumerable: true,
72
86
  configurable: true
73
87
  });
74
- Object.defineProperty(TuiInputSliderComponent.prototype, "showMinLabel", {
88
+ Object.defineProperty(TuiInputSliderComponent.prototype, "precision", {
75
89
  get: function () {
76
- return !this.focused && this.value === this.min && !!this.minLabel;
90
+ return getFractionPartPadded(this.quantum).length;
77
91
  },
78
92
  enumerable: true,
79
93
  configurable: true
80
94
  });
81
- Object.defineProperty(TuiInputSliderComponent.prototype, "showMaxLabel", {
95
+ Object.defineProperty(TuiInputSliderComponent.prototype, "decimal", {
82
96
  get: function () {
83
- return !this.focused && this.value === this.max && !!this.maxLabel;
97
+ return this.precision ? 'not-zero' : 'never';
84
98
  },
85
99
  enumerable: true,
86
100
  configurable: true
87
101
  });
88
- Object.defineProperty(TuiInputSliderComponent.prototype, "computedValue", {
102
+ Object.defineProperty(TuiInputSliderComponent.prototype, "computedSize", {
103
+ /**
104
+ * TODO remove old property `size` in v3.0
105
+ */
89
106
  get: function () {
90
- if (this.focused && this.isInputValueNotFinished) {
91
- return this.inputValue;
107
+ if (this.isNew) {
108
+ tuiAssert.assert(this.controller.size !== 's', "Size 's' is not supported by this input.");
109
+ return this.controller.size === 'l' ? 'l' : 'm';
92
110
  }
93
- return this.formattedValue;
94
- },
95
- enumerable: true,
96
- configurable: true
97
- });
98
- Object.defineProperty(TuiInputSliderComponent.prototype, "showValue", {
99
- get: function () {
100
- return !this.showMinLabel && !this.showMaxLabel;
111
+ return this.size;
101
112
  },
102
113
  enumerable: true,
103
114
  configurable: true
104
115
  });
105
- Object.defineProperty(TuiInputSliderComponent.prototype, "inputValue", {
116
+ Object.defineProperty(TuiInputSliderComponent.prototype, "computedValueContent", {
117
+ /**
118
+ * @deprecated for backward compatibility
119
+ * TODO replace by just `this.valueContent` in v3.0
120
+ */
106
121
  get: function () {
107
- return this.focusableElement ? this.focusableElement.nativeElement.value : '';
108
- },
109
- set: function (value) {
110
- if (this.focusableElement) {
111
- this.focusableElement.nativeElement.value = value;
112
- }
122
+ return this.minLabel || this.maxLabel
123
+ ? legacyMinMaxLabel(this)
124
+ : this.valueContent;
113
125
  },
114
126
  enumerable: true,
115
127
  configurable: true
116
128
  });
117
129
  TuiInputSliderComponent.prototype.focusTextInput = function () {
118
- if (this.focusableElement) {
119
- setNativeFocused(this.focusableElement.nativeElement);
130
+ var _a;
131
+ var focusableElement = (_a = this.inputNumberRef) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement;
132
+ if (focusableElement) {
133
+ setNativeFocused(focusableElement);
120
134
  }
121
135
  };
122
- TuiInputSliderComponent.prototype.onKeyDownArrowUp = function (event) {
123
- if (this.readOnly) {
124
- return;
125
- }
126
- event.preventDefault();
127
- this.processStep(true);
128
- this.inputValue = this.formattedValue;
136
+ TuiInputSliderComponent.prototype.safelyUpdateValue = function (value) {
137
+ this.updateValue(this.valueGuard(value !== null && value !== void 0 ? value : this.safeCurrentValue));
129
138
  };
130
- TuiInputSliderComponent.prototype.onKeyDownArrowDown = function (event) {
139
+ TuiInputSliderComponent.prototype.onVerticalArrowKeyDown = function (coefficient) {
131
140
  if (this.readOnly) {
132
141
  return;
133
142
  }
134
- event.preventDefault();
135
- this.processStep(false);
136
- this.inputValue = this.formattedValue;
137
- };
138
- TuiInputSliderComponent.prototype.onFocused = function (focused) {
139
- this.updateFocused(focused);
140
- if (focused) {
141
- return;
143
+ var value = this.value + coefficient * this.step;
144
+ if (value !== this.value) {
145
+ this.safelyUpdateValue(value);
142
146
  }
143
- var inputValue = maskedNumberStringToNumber(this.computedValue, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
144
- var value = isNaN(inputValue) ? this.min : this.valueGuard(inputValue);
145
- this.updateValue(value);
146
- this.inputValue = this.formattedValue;
147
+ this.updateTextInputValue(this.valueGuard(value));
147
148
  };
148
- TuiInputSliderComponent.prototype.onValue = function (value) {
149
- var capped = this.capInputValue(value);
150
- var postfix = value.slice(-1)[0] === ',' ? ',' : '';
151
- if (maskedMoneyValueIsEmpty(value) || capped === null) {
152
- return;
153
- }
154
- var newValue = this.formatNumber(capped) + postfix;
155
- if (value !== newValue) {
156
- this.inputValue = newValue;
149
+ TuiInputSliderComponent.prototype.onFocused = function (focused) {
150
+ if (!focused && !this.textInputValue) {
151
+ this.updateTextInputValue(this.safeCurrentValue);
157
152
  }
158
- this.updateValue(capped);
153
+ this.updateFocused(focused);
159
154
  };
160
- TuiInputSliderComponent.prototype.onSliderValue = function (value) {
161
- this.updateValue(this.valueGuard(value));
162
- this.inputValue = this.formattedValue;
155
+ TuiInputSliderComponent.prototype.onPressed = function (pressed) {
156
+ this.updatePressed(pressed);
163
157
  };
164
- TuiInputSliderComponent.prototype.getFallbackValue = function () {
165
- return 0;
158
+ TuiInputSliderComponent.prototype.onHovered = function (hovered) {
159
+ this.updateHovered(hovered);
166
160
  };
167
- Object.defineProperty(TuiInputSliderComponent.prototype, "formattedValue", {
161
+ Object.defineProperty(TuiInputSliderComponent.prototype, "textInputValue", {
168
162
  get: function () {
169
- return this.formatNumber(this.value);
170
- },
171
- enumerable: true,
172
- configurable: true
173
- });
174
- Object.defineProperty(TuiInputSliderComponent.prototype, "isInputValueNotFinished", {
175
- get: function () {
176
- if (this.inputValue === '') {
177
- return true;
178
- }
179
- var nativeNumberValue = maskedNumberStringToNumber(this.inputValue, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
180
- return nativeNumberValue < 0
181
- ? nativeNumberValue > this.max
182
- : nativeNumberValue < this.min;
163
+ var _a;
164
+ return ((_a = this.inputNumberRef) === null || _a === void 0 ? void 0 : _a.nativeValue) || '';
183
165
  },
184
166
  enumerable: true,
185
167
  configurable: true
186
168
  });
187
- TuiInputSliderComponent.prototype.processStep = function (increment) {
188
- var value = this.valueGuard(increment ? this.value + this.step : this.value - this.step);
189
- if (value !== this.value) {
190
- this.updateValue(value);
191
- }
169
+ TuiInputSliderComponent.prototype.getFallbackValue = function () {
170
+ return 0;
171
+ };
172
+ TuiInputSliderComponent.prototype.valueGuard = function (value) {
173
+ var roundedValue = round(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION);
174
+ return clamp(roundedValue, this.min, this.max);
192
175
  };
193
- TuiInputSliderComponent.prototype.formatNumber = function (value) {
194
- return formatNumber(value, null, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
176
+ TuiInputSliderComponent.prototype.updateTextInputValue = function (value) {
177
+ if (this.inputNumberRef) {
178
+ this.inputNumberRef.nativeValue =
179
+ this.inputNumberRef.getFormattedValue(value);
180
+ }
195
181
  };
196
182
  var TuiInputSliderComponent_1;
197
183
  TuiInputSliderComponent.ctorParameters = function () { return [
198
184
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
199
185
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
200
- { type: TuiModeDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiModeDirective,] }] },
201
- { type: TuiHintControllerDirective, decorators: [{ type: Inject, args: [TUI_HINT_WATCHED_CONTROLLER,] }] },
202
186
  { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] },
203
187
  { type: undefined, decorators: [{ type: Inject, args: [TUI_NUMBER_FORMAT,] }] },
204
- { type: String, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_APPEARANCE,] }] },
205
188
  { type: Observable, decorators: [{ type: Inject, args: [TUI_FROM_TO_TEXTS,] }] },
206
189
  { type: TuiNewInputSliderDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiNewInputSliderDirective,] }] }
207
190
  ]; };
208
191
  __decorate([
209
- ViewChild('focusableElement')
210
- ], TuiInputSliderComponent.prototype, "focusableElement", void 0);
192
+ ViewChild(TuiInputNumberComponent)
193
+ ], TuiInputSliderComponent.prototype, "inputNumberRef", void 0);
211
194
  __decorate([
212
195
  ViewChild(TuiSliderComponent, { read: ElementRef })
213
196
  ], TuiInputSliderComponent.prototype, "sliderRef", void 0);
214
197
  __decorate([
215
198
  Input(),
216
199
  tuiDefaultProp()
217
- ], TuiInputSliderComponent.prototype, "secondary", void 0);
200
+ ], TuiInputSliderComponent.prototype, "min", void 0);
201
+ __decorate([
202
+ Input(),
203
+ tuiDefaultProp()
204
+ ], TuiInputSliderComponent.prototype, "max", void 0);
205
+ __decorate([
206
+ Input(),
207
+ tuiDefaultProp(quantumAssertion, 'Quantum must be positive')
208
+ ], TuiInputSliderComponent.prototype, "quantum", void 0);
209
+ __decorate([
210
+ Input(),
211
+ tuiDefaultProp()
212
+ ], TuiInputSliderComponent.prototype, "steps", void 0);
213
+ __decorate([
214
+ Input(),
215
+ tuiDefaultProp()
216
+ ], TuiInputSliderComponent.prototype, "segments", void 0);
217
+ __decorate([
218
+ Input(),
219
+ tuiDefaultProp()
220
+ ], TuiInputSliderComponent.prototype, "keySteps", void 0);
221
+ __decorate([
222
+ Input(),
223
+ tuiDefaultProp()
224
+ ], TuiInputSliderComponent.prototype, "valueContent", void 0);
225
+ __decorate([
226
+ Input(),
227
+ tuiDefaultProp()
228
+ ], TuiInputSliderComponent.prototype, "prefix", void 0);
218
229
  __decorate([
219
- HostBinding('class._has-tooltip')
220
- ], TuiInputSliderComponent.prototype, "hasTooltip", null);
230
+ Input(),
231
+ tuiDefaultProp()
232
+ ], TuiInputSliderComponent.prototype, "postfix", void 0);
221
233
  __decorate([
222
- HostBinding('class._min-label')
223
- ], TuiInputSliderComponent.prototype, "showMinLabel", null);
234
+ Input(),
235
+ tuiDefaultProp()
236
+ ], TuiInputSliderComponent.prototype, "size", void 0);
224
237
  __decorate([
225
- HostBinding('class._max-label')
226
- ], TuiInputSliderComponent.prototype, "showMaxLabel", null);
238
+ Input(),
239
+ tuiDefaultProp()
240
+ ], TuiInputSliderComponent.prototype, "secondary", void 0);
227
241
  TuiInputSliderComponent = TuiInputSliderComponent_1 = __decorate([
228
242
  Component({
229
243
  selector: 'tui-input-slider',
230
- template: "<tui-wrapper\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [invalid]=\"computedInvalid\"\n>\n <span\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-input-slider__placeholder\"\n class=\"t-placeholder t-placeholder_raised\"\n >\n <ng-content></ng-content>\n </span>\n <input\n #focusableElement\n automation-id=\"tui-input-slider__native\"\n class=\"t-native\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [tuiInputMode]=\"inputMode\"\n [tuiFocusable]=\"focusable\"\n [textMask]=\"quantum | tuiMapper: mask:min\"\n [ngModel]=\"computedValue\"\n (ngModelChange)=\"onValue($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (keydown.arrowUp)=\"onKeyDownArrowUp($event)\"\n (keydown.arrowDown)=\"onKeyDownArrowDown($event)\"\n />\n <div class=\"t-content\">\n <span *ngIf=\"showValue\" class=\"t-label\">\n <span class=\"t-value\">{{ computedValue }}</span>\n <span\n *ngIf=\"pluralizeMap\"\n automation-id=\"tui-input-slider__pluralize\"\n >\n {{ value | i18nPlural: pluralizeMap }}\n </span>\n </span>\n <span\n *ngIf=\"showMinLabel\"\n automation-id=\"tui-input-slider__min-label\"\n class=\"t-label\"\n >\n {{ minLabel }}\n </span>\n <span\n *ngIf=\"showMaxLabel\"\n automation-id=\"tui-input-slider__max-label\"\n class=\"t-label\"\n >\n {{ maxLabel }}\n </span>\n <span automation-id=\"tui-input-slider__secondary\" class=\"t-secondary\">\n <span\n polymorpheus-outlet\n [content]=\"controller.customContent || secondary\"\n ></span>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-input-slider__tooltip\"\n describeId=\"placeholer_until_accesibility_is_added\"\n class=\"t-tooltip\"\n [content]=\"hintController.content\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n (mousedown.prevent)=\"focusTextInput()\"\n ></tui-tooltip>\n </span>\n </div>\n</tui-wrapper>\n\n<!--TODO: remove wrapper + ticks labels (leave only slider) in v3.0-->\n<div class=\"t-slider-wrapper\">\n <input\n tuiSlider\n type=\"range\"\n [tuiFocusable]=\"false\"\n [max]=\"computedSteps\"\n [segments]=\"segments\"\n [keySteps]=\"computedKeySteps\"\n [attr.disabled]=\"readOnly || disabled || null\"\n [ngModel]=\"value\"\n (keyStepsInput)=\"onSliderValue($event)\"\n (click)=\"focusTextInput()\"\n />\n\n <!--TODO delete ticks labels in v3.0-->\n <div *ngIf=\"segmented && !isNew\" class=\"t-ticks-labels\">\n <span\n *tuiRepeatTimes=\"let tickIndex of segments + 1\"\n automation-id=\"tui-slider__segment\"\n >\n <span *ngIf=\"fromToTexts$ | async as fromToText\">\n {{ getTickPrefix(tickIndex, segments, fromToText) }} {{\n tickIndex | tuiSliderTickLabel:segments:computedKeySteps |\n tuiFormatNumber}}\n <span *ngIf=\"segmentsPluralizeMap\">\n {{ tickIndex | tuiSliderTickLabel:segments:computedKeySteps\n | i18nPlural: segmentsPluralizeMap }}\n </span>\n </span>\n </span>\n </div>\n</div>\n",
244
+ template: "<tui-input-number\n [min]=\"min\"\n [max]=\"max\"\n [precision]=\"precision\"\n [decimal]=\"decimal\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix || (value | i18nPlural: pluralizeMap || pluralizeMapFallback)\"\n [tuiTextfieldCustomContent]=\"controller.customContent || deprecatedSecondary\"\n [tuiTextfieldSize]=\"computedSize\"\n [tuiTextfieldLabelOutside]=\"computedSize !== 'l'\"\n [readOnly]=\"readOnly\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoHovered]=\"computedHovered\"\n [pseudoPressed]=\"computedPressed\"\n [pseudoInvalid]=\"pseudoInvalid\"\n [ngModel]=\"value\"\n (ngModelChange)=\"safelyUpdateValue($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n (keydown.arrowUp.prevent)=\"onVerticalArrowKeyDown(1)\"\n (keydown.arrowDown.prevent)=\"onVerticalArrowKeyDown(-1)\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"computedValueContent && !focused\"\n polymorpheus-outlet\n automation-id=\"tui-input-slider__value-content\"\n [content]=\"computedValueContent\"\n [context]=\"{$implicit: value}\"\n ></div>\n</tui-input-number>\n\n<!--TODO: remove in v3.0-->\n<ng-template #deprecatedSecondary>{{secondary}}</ng-template>\n\n<!--TODO: remove wrapper + ticks labels (leave only slider) in v3.0-->\n<div class=\"t-slider-wrapper\">\n <input\n tuiSlider\n type=\"range\"\n [tuiFocusable]=\"false\"\n [max]=\"computedSteps\"\n [segments]=\"segments\"\n [keySteps]=\"computedKeySteps\"\n [attr.disabled]=\"readOnly || disabled || null\"\n [ngModel]=\"value\"\n (keyStepsInput)=\"safelyUpdateValue($event)\"\n (click)=\"focusTextInput()\"\n />\n\n <!--TODO delete ticks labels in v3.0-->\n <div *ngIf=\"segments && !isNew\" class=\"t-ticks-labels\">\n <span\n *tuiRepeatTimes=\"let tickIndex of segments + 1\"\n automation-id=\"tui-slider__segment\"\n >\n <span *ngIf=\"fromToTexts$ | async as fromToText\">\n {{ getTickPrefix(tickIndex, segments, fromToText) }} {{\n tickIndex | tuiSliderTickLabel:segments:computedKeySteps |\n tuiFormatNumber}}\n <span *ngIf=\"segmentsPluralizeMap\">\n {{ tickIndex | tuiSliderTickLabel:segments:computedKeySteps\n | i18nPlural: segmentsPluralizeMap }}\n </span>\n </span>\n </span>\n </div>\n</div>\n",
231
245
  host: {
232
246
  /**
233
247
  * TODO delete it in v3.0
@@ -245,24 +259,46 @@ var TuiInputSliderComponent = /** @class */ (function (_super) {
245
259
  HINT_CONTROLLER_PROVIDER,
246
260
  TEXTFIELD_CONTROLLER_PROVIDER,
247
261
  ],
248
- styles: [":host{position:relative;z-index:0;display:block;font:var(--tui-font-text-m);border-radius:var(--tui-radius-m);color:var(--tui-text-01)}:host._segmented._show-ticks-labels{border-bottom:26px solid transparent}.t-native{position:absolute;top:0;left:0;height:100%;padding:0 1rem;border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;width:100%;color:var(--tui-text-01);box-sizing:border-box;outline:0}.t-native:-webkit-autofill,.t-native:-webkit-autofill:focus,.t-native:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}:host._disabled .t-native{color:var(--tui-text-03);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host._max-label .t-native,:host._min-label .t-native{opacity:0}:host[data-size='l'] .t-native{padding:1.25rem 1rem 0}:host[data-mode=onDark] .t-native{color:var(--tui-text-01-night)}:host[data-mode=onDark]._disabled .t-native{color:var(--tui-text-03-night)}.t-content{display:flex;align-items:center;height:var(--tui-height-m);padding:0 1rem;justify-content:space-between}:host[data-size='l'] .t-content{height:var(--tui-height-l);padding:0 1rem}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);position:absolute;top:0;left:0;width:100%;height:100%;padding:0 var(--tui-padding-l);line-height:var(--tui-height-l);box-sizing:border-box;pointer-events:none}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size='m'] .t-placeholder_raised{font:var(--tui-font-text-xs);transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused)._hovered .t-placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .t-placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused)._hovered .t-placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .t-placeholder,:host[data-size='l']._focused._label-outside .t-placeholder,:host[data-size='m']._focused._label-outside .t-placeholder{color:var(--tui-text-03)}:host[data-size='l'] .t-placeholder{font-size:.9375rem}:host[data-size='l'] .t-placeholder_raised{font-size:.8156rem}:host[data-size='l']._focused:not(._label-outside) .t-placeholder,:host[data-size='m']._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .t-placeholder{color:var(--tui-text-02-night)}:host[data-size='l'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .t-placeholder,:host[data-size='l'][data-mode=onDark]._focused._label-outside .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused._label-outside .t-placeholder{color:var(--tui-text-02-night)}:host._has-tooltip .t-placeholder{max-width:calc(100% - 1.75rem)}.t-value{visibility:hidden}.t-label{overflow:hidden;text-overflow:ellipsis}:host[data-size='l'] .t-label{padding-top:1.25rem}.t-secondary{color:var(--tui-text-01)}:host._disabled .t-secondary{color:var(--tui-text-03)}:host[data-mode=onDark]._disabled .t-secondary{color:var(--tui-text-03-night)}.t-tooltip{margin-left:.75rem}.t-slider-wrapper{position:absolute;top:100%;left:calc(var(--tui-radius-m)/ 2);right:0;margin:-.5625rem 0 0}input[type=range]{border-top-left-radius:0;border-bottom-left-radius:calc(var(--tui-radius-m) * 5) calc(var(--tui-radius-m) * 1.5)}.t-ticks-labels{display:flex;margin:0 .5rem;font:var(--tui-font-text-s);color:var(--tui-text-02)}.t-ticks-labels>*{position:relative;flex:2;text-align:center}.t-ticks-labels>:first-child{left:-.5rem;flex:1;text-align:left}.t-ticks-labels>:last-child{right:-.5rem;flex:1;text-align:right}tui-input-slider+.t-ticks-labels{margin-left:calc(var(--tui-radius-m)/ 2 + .5rem)}"]
249
- }),
262
+ styles: [":host{position:relative;z-index:0;display:block}:host._segmented._show-ticks-labels{border-bottom:26px solid transparent}.t-slider-wrapper{position:absolute;top:100%;left:calc(var(--tui-radius-m)/ 2);right:0;margin:-.5625rem 0 0}input[type=range]{border-top-left-radius:0;border-bottom-left-radius:calc(var(--tui-radius-m) * 5) calc(var(--tui-radius-m) * 1.5)}.t-ticks-labels{display:flex;margin:0 .5rem;font:var(--tui-font-text-s);color:var(--tui-text-02)}.t-ticks-labels>*{position:relative;flex:2;text-align:center}.t-ticks-labels>:first-child{left:-.5rem;flex:1;text-align:left}.t-ticks-labels>:last-child{right:-.5rem;flex:1;text-align:right}tui-input-slider+.t-ticks-labels{margin-left:calc(var(--tui-radius-m)/ 2 + .5rem)}"]
263
+ })
264
+ /**
265
+ * TODO replace `extends AbstractTuiInputSlider<number>` by `extends AbstractTuiControl<number> implements TuiWithOptionalMinMax<number>`
266
+ * in v3.0
267
+ */
268
+ ,
250
269
  __param(0, Optional()),
251
270
  __param(0, Self()),
252
271
  __param(0, Inject(NgControl)),
253
272
  __param(1, Inject(ChangeDetectorRef)),
254
- __param(2, Optional()),
255
- __param(2, Inject(TuiModeDirective)),
256
- __param(3, Inject(TUI_HINT_WATCHED_CONTROLLER)),
257
- __param(4, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)),
258
- __param(5, Inject(TUI_NUMBER_FORMAT)),
259
- __param(6, Inject(TUI_TEXTFIELD_APPEARANCE)),
260
- __param(7, Inject(TUI_FROM_TO_TEXTS)),
261
- __param(8, Optional()),
262
- __param(8, Inject(TuiNewInputSliderDirective))
273
+ __param(2, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)),
274
+ __param(3, Inject(TUI_NUMBER_FORMAT)),
275
+ __param(4, Inject(TUI_FROM_TO_TEXTS)),
276
+ __param(5, Optional()),
277
+ __param(5, Inject(TuiNewInputSliderDirective))
263
278
  ], TuiInputSliderComponent);
264
279
  return TuiInputSliderComponent;
265
280
  }(AbstractTuiInputSlider));
281
+ function quantumAssertion(quantum) {
282
+ return quantum > 0;
283
+ }
284
+ /**
285
+ * @deprecated helper for backward compatibility.
286
+ * TODO remove in v3.0
287
+ */
288
+ function legacyMinMaxLabel(_a) {
289
+ var min = _a.min, max = _a.max, minLabel = _a.minLabel, maxLabel = _a.maxLabel;
290
+ return function (_a) {
291
+ var value = _a.$implicit;
292
+ switch (value) {
293
+ case min:
294
+ return minLabel || value;
295
+ case max:
296
+ return maxLabel || value;
297
+ default:
298
+ return value;
299
+ }
300
+ };
301
+ }
266
302
 
267
303
  var TuiInputSliderModule = /** @class */ (function () {
268
304
  function TuiInputSliderModule() {
@@ -286,6 +322,8 @@ var TuiInputSliderModule = /** @class */ (function () {
286
322
  TuiFormatNumberPipeModule,
287
323
  TuiRepeatTimesModule,
288
324
  PolymorpheusModule,
325
+ TuiInputNumberModule,
326
+ TuiTextfieldControllerModule,
289
327
  ],
290
328
  declarations: [TuiInputSliderComponent, TuiNewInputSliderDirective],
291
329
  exports: [TuiInputSliderComponent, TuiNewInputSliderDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-slider.js","sources":["ng://@taiga-ui/kit/components/input-slider/input-slider.component.ts","ng://@taiga-ui/kit/components/input-slider/input-slider.module.ts","ng://@taiga-ui/kit/components/input-slider/taiga-ui-kit-components-input-slider.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n isNativeFocused,\n setNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {\n formatNumber,\n HINT_CONTROLLER_PROVIDER,\n maskedMoneyValueIsEmpty,\n maskedNumberStringToNumber,\n NumberFormatSettings,\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_HINT_WATCHED_CONTROLLER,\n TUI_NUMBER_FORMAT,\n TUI_TEXTFIELD_APPEARANCE,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiHintControllerDirective,\n TuiModeDirective,\n TuiTextfieldController,\n} from '@taiga-ui/core';\nimport {AbstractTuiInputSlider} from '@taiga-ui/kit/abstract';\nimport {\n TuiSliderComponent,\n tuiSliderOptionsProvider,\n} from '@taiga-ui/kit/components/slider';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {Observable} from 'rxjs';\n\n/**\n * Turn on new `InputSlider`'s version.\n * The new version will behave almost the same as `InputSlider` from the next major release.\n * @deprecated TODO remove me in v3.0 and make `InputSlider` always \"new\".\n */\n@Directive({\n selector: 'tui-input-slider[new]',\n})\nexport class TuiNewInputSliderDirective {}\n\n// @dynamic\n@Component({\n selector: 'tui-input-slider',\n templateUrl: './input-slider.template.html',\n styleUrls: ['./input-slider.style.less'],\n host: {\n /**\n * TODO delete it in v3.0\n * Dont forget to clear html-tags\n */\n '[class._show-ticks-labels]': '!isNew',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputSliderComponent),\n },\n tuiSliderOptionsProvider({trackColor: 'transparent'}),\n HINT_CONTROLLER_PROVIDER,\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiInputSliderComponent\n extends AbstractTuiInputSlider<number>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @ViewChild(TuiSliderComponent, {read: ElementRef})\n private readonly sliderRef?: ElementRef<HTMLInputElement>;\n\n /**\n * @deprecated use `tuiTextfieldCustomContent` instead\n * TODO delete in v3.0\n */\n @Input()\n @tuiDefaultProp()\n secondary = '';\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Optional()\n @Inject(TuiModeDirective)\n protected readonly modeDirective: TuiModeDirective | null,\n @Inject(TUI_HINT_WATCHED_CONTROLLER)\n readonly hintController: TuiHintControllerDirective,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(TUI_NUMBER_FORMAT)\n protected readonly numberFormat: NumberFormatSettings,\n @Inject(TUI_TEXTFIELD_APPEARANCE)\n readonly appearance: string,\n @Inject(TUI_FROM_TO_TEXTS) readonly fromToTexts$: Observable<[string, string]>,\n @Optional()\n @Inject(TuiNewInputSliderDirective)\n readonly isNew: TuiNewInputSliderDirective | null,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return !this.focusableElement || this.computedDisabled\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n isNativeFocused(this.sliderRef?.nativeElement || null)\n );\n }\n\n @HostBinding('class._has-tooltip')\n get hasTooltip(): boolean {\n return !!this.hintController.content && !this.disabled;\n }\n\n @HostBinding('class._min-label')\n get showMinLabel(): boolean {\n return !this.focused && this.value === this.min && !!this.minLabel;\n }\n\n @HostBinding('class._max-label')\n get showMaxLabel(): boolean {\n return !this.focused && this.value === this.max && !!this.maxLabel;\n }\n\n get computedValue(): string {\n if (this.focused && this.isInputValueNotFinished) {\n return this.inputValue;\n }\n\n return this.formattedValue;\n }\n\n get showValue(): boolean {\n return !this.showMinLabel && !this.showMaxLabel;\n }\n\n get inputValue(): string {\n return this.focusableElement ? this.focusableElement.nativeElement.value : '';\n }\n\n set inputValue(value: string) {\n if (this.focusableElement) {\n this.focusableElement.nativeElement.value = value;\n }\n }\n\n focusTextInput() {\n if (this.focusableElement) {\n setNativeFocused(this.focusableElement.nativeElement);\n }\n }\n\n onKeyDownArrowUp(event: KeyboardEvent) {\n if (this.readOnly) {\n return;\n }\n\n event.preventDefault();\n this.processStep(true);\n this.inputValue = this.formattedValue;\n }\n\n onKeyDownArrowDown(event: KeyboardEvent) {\n if (this.readOnly) {\n return;\n }\n\n event.preventDefault();\n this.processStep(false);\n this.inputValue = this.formattedValue;\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n\n if (focused) {\n return;\n }\n\n const inputValue = maskedNumberStringToNumber(\n this.computedValue,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n const value = isNaN(inputValue) ? this.min : this.valueGuard(inputValue);\n\n this.updateValue(value);\n this.inputValue = this.formattedValue;\n }\n\n onValue(value: string) {\n const capped = this.capInputValue(value);\n const postfix = value.slice(-1)[0] === ',' ? ',' : '';\n\n if (maskedMoneyValueIsEmpty(value) || capped === null) {\n return;\n }\n\n const newValue = this.formatNumber(capped) + postfix;\n\n if (value !== newValue) {\n this.inputValue = newValue;\n }\n\n this.updateValue(capped);\n }\n\n onSliderValue(value: number) {\n this.updateValue(this.valueGuard(value));\n this.inputValue = this.formattedValue;\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n private get formattedValue(): string {\n return this.formatNumber(this.value);\n }\n\n private get isInputValueNotFinished(): boolean {\n if (this.inputValue === '') {\n return true;\n }\n\n const nativeNumberValue = maskedNumberStringToNumber(\n this.inputValue,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n\n return nativeNumberValue < 0\n ? nativeNumberValue > this.max\n : nativeNumberValue < this.min;\n }\n\n private processStep(increment: boolean) {\n const value = this.valueGuard(\n increment ? this.value + this.step : this.value - this.step,\n );\n\n if (value !== this.value) {\n this.updateValue(value);\n }\n }\n\n private formatNumber(value: number): string {\n return formatNumber(\n value,\n null,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n TuiMapperPipeModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiFormatNumberPipeModule,\n TuiTooltipModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {TuiSliderModule} from '@taiga-ui/kit/components/slider';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {\n TuiInputSliderComponent,\n TuiNewInputSliderDirective,\n} from './input-slider.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TextMaskModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiMapperPipeModule,\n TuiInputModeModule,\n TuiTooltipModule,\n TuiSliderModule,\n TuiWrapperModule,\n TuiFormatNumberPipeModule,\n TuiRepeatTimesModule,\n PolymorpheusModule,\n ],\n declarations: [TuiInputSliderComponent, TuiNewInputSliderDirective],\n exports: [TuiInputSliderComponent, TuiNewInputSliderDirective],\n})\nexport class TuiInputSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-input-slider.js","sources":["ng://@taiga-ui/kit/components/input-slider/input-slider.component.ts","ng://@taiga-ui/kit/components/input-slider/input-slider.module.ts","ng://@taiga-ui/kit/components/input-slider/taiga-ui-kit-components-input-slider.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n clamp,\n isNativeFocused,\n round,\n setNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiAssert,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {\n getFractionPartPadded,\n HINT_CONTROLLER_PROVIDER,\n NumberFormatSettings,\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_NUMBER_FORMAT,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiDecimalT,\n TuiSizeL,\n TuiTextfieldController,\n} from '@taiga-ui/core';\nimport {AbstractTuiInputSlider} from '@taiga-ui/kit/abstract';\nimport {TuiInputNumberComponent} from '@taiga-ui/kit/components/input-number';\nimport {\n TuiSliderComponent,\n tuiSliderOptionsProvider,\n} from '@taiga-ui/kit/components/slider';\nimport {TUI_FLOATING_PRECISION} from '@taiga-ui/kit/constants';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\n/**\n * Turn on new `InputSlider`'s version.\n * The new version will behave almost the same as `InputSlider` from the next major release.\n * @deprecated TODO remove me in v3.0 and make `InputSlider` always \"new\".\n */\n@Directive({\n selector: 'tui-input-slider[new]',\n})\nexport class TuiNewInputSliderDirective {}\n\n// @dynamic\n@Component({\n selector: 'tui-input-slider',\n templateUrl: './input-slider.template.html',\n styleUrls: ['./input-slider.style.less'],\n host: {\n /**\n * TODO delete it in v3.0\n * Dont forget to clear html-tags\n */\n '[class._show-ticks-labels]': '!isNew',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputSliderComponent),\n },\n tuiSliderOptionsProvider({trackColor: 'transparent'}),\n HINT_CONTROLLER_PROVIDER,\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n})\n/**\n * TODO replace `extends AbstractTuiInputSlider<number>` by `extends AbstractTuiControl<number> implements TuiWithOptionalMinMax<number>`\n * in v3.0\n */\nexport class TuiInputSliderComponent\n extends AbstractTuiInputSlider<number>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiInputNumberComponent)\n private readonly inputNumberRef?: TuiInputNumberComponent;\n\n @ViewChild(TuiSliderComponent, {read: ElementRef})\n private readonly sliderRef?: ElementRef<HTMLInputElement>;\n\n @Input()\n @tuiDefaultProp()\n min = 0;\n\n @Input()\n @tuiDefaultProp()\n max = Infinity;\n\n @Input()\n @tuiDefaultProp(quantumAssertion, 'Quantum must be positive')\n quantum = 1;\n\n @Input()\n @tuiDefaultProp()\n steps = 0;\n\n @Input()\n @tuiDefaultProp()\n segments = 0;\n\n @Input()\n @tuiDefaultProp()\n keySteps: TuiKeySteps | null = null;\n\n @Input()\n @tuiDefaultProp()\n valueContent: PolymorpheusContent<TuiContextWithImplicit<number>> = '';\n\n @Input()\n @tuiDefaultProp()\n prefix = '';\n\n @Input()\n @tuiDefaultProp()\n postfix = '';\n\n /**\n * @deprecated use `tuiTextfieldSize` instead\n * TODO delete in v3.0\n */\n @Input()\n @tuiDefaultProp()\n size: TuiSizeL = 'l';\n\n /**\n * @deprecated use `tuiTextfieldCustomContent` instead\n * TODO delete in v3.0\n */\n @Input()\n @tuiDefaultProp()\n secondary = '';\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(TUI_NUMBER_FORMAT)\n protected readonly numberFormat: NumberFormatSettings,\n @Inject(TUI_FROM_TO_TEXTS) readonly fromToTexts$: Observable<[string, string]>,\n @Optional()\n @Inject(TuiNewInputSliderDirective)\n readonly isNew: TuiNewInputSliderDirective | null,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return !this.inputNumberRef?.nativeFocusableElement || this.computedDisabled\n ? null\n : this.inputNumberRef.nativeFocusableElement;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n isNativeFocused(this.sliderRef?.nativeElement || null)\n );\n }\n\n get computedSteps(): number {\n return this.steps || (this.max - this.min) / this.quantum;\n }\n\n get precision(): number {\n return getFractionPartPadded(this.quantum).length;\n }\n\n get decimal(): TuiDecimalT {\n return this.precision ? 'not-zero' : 'never';\n }\n\n /**\n * TODO remove old property `size` in v3.0\n */\n get computedSize(): TuiSizeL {\n if (this.isNew) {\n tuiAssert.assert(\n this.controller.size !== 's',\n \"Size 's' is not supported by this input.\",\n );\n\n return this.controller.size === 'l' ? 'l' : 'm';\n }\n\n return this.size;\n }\n\n /**\n * @deprecated for backward compatibility\n * TODO replace by just `this.valueContent` in v3.0\n */\n get computedValueContent(): PolymorpheusContent<TuiContextWithImplicit<number>> {\n return this.minLabel || this.maxLabel\n ? legacyMinMaxLabel(this)\n : this.valueContent;\n }\n\n focusTextInput() {\n const focusableElement = this.inputNumberRef?.nativeFocusableElement;\n\n if (focusableElement) {\n setNativeFocused(focusableElement);\n }\n }\n\n safelyUpdateValue(value: number | null) {\n this.updateValue(this.valueGuard(value ?? this.safeCurrentValue));\n }\n\n onVerticalArrowKeyDown(coefficient: number) {\n if (this.readOnly) {\n return;\n }\n\n const value = this.value + coefficient * this.step;\n\n if (value !== this.value) {\n this.safelyUpdateValue(value);\n }\n\n this.updateTextInputValue(this.valueGuard(value));\n }\n\n onFocused(focused: boolean) {\n if (!focused && !this.textInputValue) {\n this.updateTextInputValue(this.safeCurrentValue);\n }\n\n this.updateFocused(focused);\n }\n\n onPressed(pressed: boolean) {\n this.updatePressed(pressed);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n private get textInputValue(): string {\n return this.inputNumberRef?.nativeValue || '';\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n protected valueGuard(value: number): number {\n const roundedValue = round(\n Math.round(value / this.quantum) * this.quantum,\n TUI_FLOATING_PRECISION,\n );\n\n return clamp(roundedValue, this.min, this.max);\n }\n\n private updateTextInputValue(value: number) {\n if (this.inputNumberRef) {\n this.inputNumberRef.nativeValue =\n this.inputNumberRef.getFormattedValue(value);\n }\n }\n}\n\nfunction quantumAssertion(quantum: number): boolean {\n return quantum > 0;\n}\n\n/**\n * @deprecated helper for backward compatibility.\n * TODO remove in v3.0\n */\nfunction legacyMinMaxLabel({min, max, minLabel, maxLabel}: TuiInputSliderComponent) {\n return ({$implicit: value}: TuiContextWithImplicit<number>) => {\n switch (value) {\n case min:\n return minLabel || value;\n case max:\n return maxLabel || value;\n default:\n return value;\n }\n };\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n TuiMapperPipeModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiFormatNumberPipeModule,\n TuiTextfieldControllerModule,\n TuiTooltipModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {TuiInputNumberModule} from '@taiga-ui/kit/components/input-number';\nimport {TuiSliderModule} from '@taiga-ui/kit/components/slider';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {\n TuiInputSliderComponent,\n TuiNewInputSliderDirective,\n} from './input-slider.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TextMaskModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiMapperPipeModule,\n TuiInputModeModule,\n TuiTooltipModule,\n TuiSliderModule,\n TuiWrapperModule,\n TuiFormatNumberPipeModule,\n TuiRepeatTimesModule,\n PolymorpheusModule,\n TuiInputNumberModule,\n TuiTextfieldControllerModule,\n ],\n declarations: [TuiInputSliderComponent, TuiNewInputSliderDirective],\n exports: [TuiInputSliderComponent, TuiNewInputSliderDirective],\n})\nexport class TuiInputSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}