<wxs src="./slider.wxs" module="t" /> 
 | 
<wxs src="../common/utils.wxs" module="_" /> 
 | 
  
 | 
<view 
 | 
  style="{{_._style([style, customStyle])}}" 
 | 
  class="{{_.cls(classPrefix, [['top', label || scaleTextArray.length], ['disabled', disabled], ['range', range]])}} class {{prefix}}-class {{vertical ? classPrefix + '--vertical' : ''}}" 
 | 
> 
 | 
  <block wx:if="{{!range}}"> 
 | 
    <text wx:if="{{showExtremeValue}}" class="{{classPrefix}}__value {{classPrefix}}__value--min"> 
 | 
      {{ label ? t.getValue(label, min) : min}} 
 | 
    </text> 
 | 
    <view 
 | 
      id="sliderLine" 
 | 
      class="{{_.cls(classPrefix + '__bar', [['disabled', disabled], theme, ['marks', isScale && theme == 'capsule']])}} {{prefix}}-class-bar" 
 | 
      bind:tap="onSingleLineTap" 
 | 
    > 
 | 
      <block wx:if="{{isScale}}"> 
 | 
        <view 
 | 
          class="{{_.cls(classPrefix + '__scale-item', [['active', _value >= item.val], ['disabled', disabled], theme, ['hidden', (index == 0 || index == scaleArray.length - 1) && theme == 'capsule' || value == item.val]])}}" 
 | 
          wx:for="{{scaleArray}}" 
 | 
          wx:key="index" 
 | 
          style="{{vertical ? 'top' :  'left'}}:{{item.left}}px; {{vertical ? 'transform: translate(-50%, -50%);' : 'transform: translateX(-50%);'}}" 
 | 
          aria-hidden="{{true}}" 
 | 
        > 
 | 
          <view wx:if="{{scaleTextArray.length}}" class="{{_.cls(classPrefix + '__scale-desc', [theme])}}"> 
 | 
            {{scaleTextArray[index]}} 
 | 
          </view> 
 | 
        </view> 
 | 
      </block> 
 | 
      <view 
 | 
        class="{{_.cls(classPrefix + '__line', [['disabled', disabled], theme, 'single'])}} {{prefix}}-class-bar-active" 
 | 
        style="{{vertical ? 'height' : 'width'}}: {{lineBarWidth}}" 
 | 
      > 
 | 
        <view 
 | 
          id="singleDot" 
 | 
          class="{{classPrefix}}__dot {{prefix}}-class-cursor" 
 | 
          catch:touchstart="onTouchStart" 
 | 
          catch:touchmove="onSingleLineTap" 
 | 
          catch:touchend="onTouchEnd" 
 | 
          catch:touchcancel="onTouchEnd" 
 | 
        > 
 | 
          <view 
 | 
            wx:if="{{label || isVisibleToScreenReader}}" 
 | 
            class="{{_.cls(classPrefix+'__dot-value', [['sr-only', !label]])}}" 
 | 
            aria-role="alert" 
 | 
            aria-live="assertive" 
 | 
            aria-hidden="{{!isVisibleToScreenReader}}" 
 | 
          > 
 | 
            {{t.getValue(label, _value) || _value}} 
 | 
          </view> 
 | 
          <view 
 | 
            class="{{classPrefix}}__dot-slider" 
 | 
            aria-role="slider" 
 | 
            aria-disabled="{{disabled}}" 
 | 
            aria-valuemax="{{max}}" 
 | 
            aria-valuemin="{{min}}" 
 | 
            aria-valuenow="{{_value}}" 
 | 
            aria-valuetext="{{t.getValue(label, _value) || _value}}" 
 | 
          ></view> 
 | 
        </view> 
 | 
      </view> 
 | 
    </view> 
 | 
    <!-- <view wx:if="{{label}}" class="{{classPrefix}}__value {{classPrefix}}__value--right"> 
 | 
      <text class="{{classPrefix}}__value--text"> {{t.getValue(label, _value)}}</text> 
 | 
    </view> --> 
 | 
    <text wx:if="{{showExtremeValue}}" class="{{classPrefix}}__value {{classPrefix}}__value--max"> 
 | 
      {{ label ? t.getValue(label, max) : max}} 
 | 
    </text> 
 | 
  </block> 
 | 
  <!-- range选择器自定义 --> 
 | 
  <block wx:if="{{range}}"> 
 | 
    <view wx:if="{{showExtremeValue}}" class="{{classPrefix}}__range-extreme {{classPrefix}}__range-extreme--min"> 
 | 
      {{min}} 
 | 
    </view> 
 | 
    <view 
 | 
      id="sliderLine" 
 | 
      bind:tap="onLineTap" 
 | 
      class="{{_.cls(classPrefix + '__bar', [['disabled', disabled], theme, ['marks', isScale && theme == 'capsule']])}} {{prefix}}-class-bar" 
 | 
    > 
 | 
      <block wx:if="{{isScale}}"> 
 | 
        <view 
 | 
          class="{{_.cls(classPrefix + '__scale-item', [['active', dotTopValue[1] >= item.val && item.val >= dotTopValue[0]], ['disabled', disabled], theme, ['hidden', (index == 0 || index == scaleArray.length - 1) && theme == 'capsule' || value == item.val]])}}" 
 | 
          wx:for="{{scaleArray}}" 
 | 
          wx:for-index="index" 
 | 
          wx:key="index" 
 | 
          style="{{vertical ? 'top' :  'left'}}:{{item.left}}px; {{vertical ? 'transform: translate(-50%, -50%);' : 'transform: translateX(-50%);'}}" 
 | 
          aria-hidden="{{true}}" 
 | 
        > 
 | 
          <view wx:if="{{scaleTextArray.length}}" class="{{_.cls(classPrefix + '__scale-desc', [theme])}}" 
 | 
            >{{scaleTextArray[index]}}</view 
 | 
          > 
 | 
        </view> 
 | 
      </block> 
 | 
      <view 
 | 
        class="{{_.cls(classPrefix + '__line', [['disabled', disabled], theme])}} {{prefix}}-class-bar-active" 
 | 
        style="{{vertical ? 'top' : 'left'}}: {{lineLeft}}px; {{vertical ? 'bottom' : 'right'}}: {{lineRight}}px" 
 | 
      > 
 | 
        <view 
 | 
          id="leftDot" 
 | 
          catch:touchstart="onTouchStart" 
 | 
          catch:touchmove="onTouchMoveLeft" 
 | 
          catch:touchend="onTouchEnd" 
 | 
          catch:touchcancel="onTouchEnd" 
 | 
          class="{{classPrefix}}__dot {{classPrefix}}__dot--left {{prefix}}-class-cursor" 
 | 
        > 
 | 
          <view 
 | 
            wx:if="{{label || isVisibleToScreenReader}}" 
 | 
            class="{{_.cls(classPrefix+'__dot-value', [['sr-only', !label]])}}" 
 | 
            aria-role="alert" 
 | 
            aria-live="assertive" 
 | 
            aria-hidden="{{!isVisibleToScreenReader}}" 
 | 
          > 
 | 
            {{t.getValue(label, dotTopValue[0]) || dotTopValue[0]}} 
 | 
          </view> 
 | 
          <view 
 | 
            class="{{classPrefix}}__dot-slider" 
 | 
            aria-role="slider" 
 | 
            aria-disabled="{{disabled}}" 
 | 
            aria-valuemax="{{max}}" 
 | 
            aria-valuemin="{{min}}" 
 | 
            aria-valuenow="{{dotTopValue[0]}}" 
 | 
            aria-valuetext="{{t.getValue(label, dotTopValue[0]) || dotTopValue[0]}}" 
 | 
          ></view> 
 | 
        </view> 
 | 
        <view 
 | 
          id="rightDot" 
 | 
          catch:touchstart="onTouchStart" 
 | 
          catch:touchmove="onTouchMoveRight" 
 | 
          catch:touchend="onTouchEnd" 
 | 
          catch:touchcancel="onTouchEnd" 
 | 
          class="{{classPrefix}}__dot {{classPrefix}}__dot--right {{prefix}}-class-cursor" 
 | 
        > 
 | 
          <view 
 | 
            wx:if="{{label || isVisibleToScreenReader}}" 
 | 
            class="{{_.cls(classPrefix+'__dot-value', [['sr-only', !label]])}}" 
 | 
            aria-role="alert" 
 | 
            aria-live="assertive" 
 | 
            aria-hidden="{{!isVisibleToScreenReader}}" 
 | 
          > 
 | 
            {{t.getValue(label, dotTopValue[1]) || dotTopValue[1]}} 
 | 
          </view> 
 | 
          <view 
 | 
            class="{{classPrefix}}__dot-slider" 
 | 
            aria-role="slider" 
 | 
            aria-disabled="{{disabled}}" 
 | 
            aria-valuemax="{{max}}" 
 | 
            aria-valuemin="{{min}}" 
 | 
            aria-valuenow="{{dotTopValue[1]}}" 
 | 
            aria-valuetext="{{t.getValue(label, dotTopValue[1]) || dotTopValue[1]}}" 
 | 
          > 
 | 
          </view> 
 | 
        </view> 
 | 
      </view> 
 | 
    </view> 
 | 
    <view wx:if="{{showExtremeValue}}" class="{{classPrefix}}__range-extreme {{classPrefix}}__range-extreme--max"> 
 | 
      {{max}} 
 | 
    </view> 
 | 
  </block> 
 | 
</view> 
 |