carbon-components-angular
Version:
Next generation components
4,207 lines • 183 kB
HTML
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>carbon-components-angular documentation</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
<link rel="stylesheet" href="../styles/dark.css">
<style>
footer.carbon {
position: absolute;
bottom: 0;
width: 100%;
z-index: 9999;
}
#root > div {
/*
* Subtracting the height of the footer to prevent
* overlaying the footer ontop of content
*/
height: calc(100vh - 48px);
}
</style>
</head>
<body>
<script>
// Blocking script to avoid flickering dark mode
// Dark mode toggle button
var useDark = window.matchMedia('(prefers-color-scheme: dark)');
var darkModeState = useDark.matches;
var $darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input');
var $darkModeToggles = document.querySelectorAll('.dark-mode-switch');
var darkModeStateLocal = localStorage.getItem('compodoc_darkmode-state');
function checkToggle(check) {
for (var i = 0; i < $darkModeToggleSwitchers.length; i++) {
$darkModeToggleSwitchers[i].checked = check;
}
}
function toggleDarkMode(state) {
if (window.localStorage) {
localStorage.setItem('compodoc_darkmode-state', state);
}
checkToggle(state);
const hasClass = document.body.classList.contains('dark');
if (state) {
for (var i = 0; i < $darkModeToggles.length; i++) {
$darkModeToggles[i].classList.add('dark');
}
if (!hasClass) {
document.body.classList.add('dark');
}
} else {
for (var i = 0; i < $darkModeToggles.length; i++) {
$darkModeToggles[i].classList.remove('dark');
}
if (hasClass) {
document.body.classList.remove('dark');
}
}
}
useDark.addEventListener('change', function (evt) {
toggleDarkMode(evt.matches);
});
if (darkModeStateLocal) {
darkModeState = darkModeStateLocal === 'true';
}
toggleDarkMode(darkModeState);
</script>
<div class="navbar navbar-default navbar-fixed-top d-md-none p-0">
<div class="d-flex">
<a href="../" class="navbar-brand">carbon-components-angular documentation</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="d-none d-md-block menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li class="breadcrumb-item">Components</li>
<li class="breadcrumb-item"
>
Slider</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a href="#info" class="nav-link active"
role="tab" id="info-tab" data-bs-toggle="tab" data-link="info">Info</a>
</li>
<li class="nav-item">
<a href="#source" class="nav-link"
role="tab" id="source-tab" data-bs-toggle="tab" data-link="source">Source</a>
</li>
<li class="nav-item">
<a href="#tree" class="nav-link"
role="tab" id="tree-tab" data-bs-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/slider/slider.component.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Used to select from ranges of values. <a href="https://www.carbondesignsystem.com/components/slider/usage">See here</a> for usage information.</p>
<p>Get started with importing the module:</p>
<b>Example :</b><div><pre class="line-numbers"><code class="language-typescript">import { SliderModule } from 'carbon-components-angular';</code></pre></div><p>The simplest possible slider usage looks something like:</p>
<b>Example :</b><div><pre class="line-numbers"><code class="language-html"> <cds-slider></cds-slider></code></pre></div><p>That will render a slider without labels or alternative value input. Labels can be provided by
elements with <code>[minLabel]</code> and <code>[maxLabel]</code> attributes, and an <code>input</code> (may use the <code>ibmInput</code> directive) can be supplied
for use as an alternative value field.</p>
<p>ex:</p>
<b>Example :</b><div><pre class="line-numbers"><code class="language-html"><!-- Full example -->
<cds-slider>
<span minLabel>0GB</span>
<span maxLabel>100GB</span>
<input/>
</cds-slider>
<!-- with just an input -->
<cds-slider>
<input/>
</cds-slider>
<!-- with just one label -->
<cds-slider>
<span maxLabel>Maximum</span>
</cds-slider></code></pre></div><p>Slider supports <code>NgModel</code> by default, as well as two way binding to the <code>value</code> input.</p>
<p><a href="../../?path=/story/components-slider--advanced">See demo</a></p>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code>AfterViewInit</code>
<code>ControlValueAccessor</code>
</p>
<section data-compodoc="block-metadata">
<h3>Metadata</h3>
<table class="table table-sm table-hover metadata">
<tbody>
<tr>
<td class="col-md-3">providers</td>
<td class="col-md-9">
<code><a href="../components/Slider.html" target="_self" >{
provide: NG_VALUE_ACCESSOR, useExisting: Slider, multi: true
}</a></code>
</td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>cds-slider, ibm-slider</code></td>
</tr>
<tr>
<td class="col-md-3">template</td>
<td class="col-md-9"><pre class="line-numbers"><code class="language-html"><ng-container *ngIf="!skeleton; else skeletonTemplate">
<label
*ngIf="label"
[for]="id"
[id]="labelId"
class="cds--label"
[ngClass]="{'cds--label--disabled': disabled}">
<ng-container *ngIf="!isTemplate(label)">{{label}}</ng-container>
<ng-template *ngIf="isTemplate(label)" [ngTemplateOutlet]="label"></ng-template>
</label>
<div
class="cds--slider-container"
[ngClass]="{ 'cds--slider-container--readonly': readonly }">
<label [id]="bottomRangeId" class="cds--slider__range-label">
<ng-content select="[minLabel]"></ng-content>
</label>
<div
class="cds--slider"
(click)="onClick($event)"
[ngClass]="{
'cds--slider--disabled': disabled,
'cds--slider--readonly': readonly
}">
<ng-container *ngIf="!isRange()">
<div class="cds--slider__thumb-wrapper"
[ngStyle]="{insetInlineStart: getFractionComplete(value) * 100 + '%'}">
<div
#thumbs
role="slider"
[id]="id"
[attr.aria-labelledby]="labelId"
class="cds--slider__thumb"
tabindex="0"
(mousedown)="onMouseDown($event)"
(keydown)="onKeyDown($event)">
</div>
</div>
</ng-container>
<ng-container *ngIf="isRange()">
<div class="cds--slider__thumb-wrapper"
[ngStyle]="{insetInlineStart: getFractionComplete(thumb) * 100 + '%'}"
*ngFor="let thumb of value; let i = index; trackBy: trackThumbsBy">
<div
#thumbs
role="slider"
[id]="id + (i > 0 ? '-' + i : '')"
[attr.aria-labelledby]="labelId"
class="cds--slider__thumb"
tabindex="0"
(mousedown)="onMouseDown($event, i)"
(keydown)="onKeyDown($event, i)">
</div>
</div>
</ng-container>
<div
#track
class="cds--slider__track">
</div>
<div
#filledTrack
class="cds--slider__filled-track">
</div>
<input
#range
aria-label="slider"
class="cds--slider__input"
type="range"
[step]="step"
[min]="min"
[max]="max"
[value]="value.toString()">
</div>
<label [id]="topRangeId" class="cds--slider__range-label">
<ng-content select="[maxLabel]"></ng-content>
</label>
<ng-content select="input"></ng-content>
</div>
</ng-container>
<ng-template #skeletonTemplate>
<label *ngIf="label" class="cds--label cds--skeleton"></label>
<div class="cds--slider-container cds--skeleton">
<span class="cds--slider__range-label"></span>
<div class="cds--slider">
<div class="cds--slider__thumb"></div>
<div class="cds--slider__track"></div>
<div class="cds--slider__filled-track"></div>
</div>
<span class="cds--slider__range-label"></span>
</div>
</ng-template>
</code></pre></td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-index">
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Protected</span>
<a href="#_disabled" >_disabled</a>
</li>
<li>
<span class="modifier">Protected</span>
<a href="#_focusedThumbIndex" >_focusedThumbIndex</a>
</li>
<li>
<span class="modifier">Protected</span>
<a href="#_max" >_max</a>
</li>
<li>
<span class="modifier">Protected</span>
<a href="#_min" >_min</a>
</li>
<li>
<span class="modifier">Protected</span>
<a href="#_previousValue" >_previousValue</a>
</li>
<li>
<span class="modifier">Protected</span>
<a href="#_readonly" >_readonly</a>
</li>
<li>
<span class="modifier">Protected</span>
<a href="#_value" >_value</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#bottomRangeId" >bottomRangeId</a>
</li>
<li>
<span class="modifier">Private</span>
<span class="modifier">Static</span>
<a href="#count" >count</a>
</li>
<li>
<span class="modifier"></span>
<a href="#filledTrack" >filledTrack</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#fractionComplete" >fractionComplete</a>
</li>
<li>
<span class="modifier"></span>
<a href="#hostClass" >hostClass</a>
</li>
<li>
<span class="modifier">Protected</span>
<a href="#inputs" >inputs</a>
</li>
<li>
<span class="modifier">Protected</span>
<a href="#isMouseDown" >isMouseDown</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#labelId" >labelId</a>
</li>
<li>
<a href="#onTouched" >onTouched</a>
</li>
<li>
<a href="#propagateChange" >propagateChange</a>
</li>
<li>
<span class="modifier"></span>
<a href="#range" >range</a>
</li>
<li>
<span class="modifier"></span>
<a href="#thumbs" >thumbs</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#topRangeId" >topRangeId</a>
</li>
<li>
<span class="modifier"></span>
<a href="#track" >track</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#convertToPx" >convertToPx</a>
</li>
<li>
<a href="#convertToValue" >convertToValue</a>
</li>
<li>
<a href="#decrementValue" >decrementValue</a>
</li>
<li>
<a href="#getFractionComplete" >getFractionComplete</a>
</li>
<li>
<span class="modifier">Protected</span>
<a href="#getInputs" >getInputs</a>
</li>
<li>
<a href="#incrementValue" >incrementValue</a>
</li>
<li>
<a href="#isRange" >isRange</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#isTemplate" >isTemplate</a>
</li>
<li>
<a href="#ngAfterViewInit" >ngAfterViewInit</a>
</li>
<li>
<a href="#onChange" >onChange</a>
</li>
<li>
<a href="#onClick" >onClick</a>
</li>
<li>
<a href="#onFocus" >onFocus</a>
</li>
<li>
<a href="#onKeyDown" >onKeyDown</a>
</li>
<li>
<a href="#onMouseDown" >onMouseDown</a>
</li>
<li>
<a href="#onMouseMove" >onMouseMove</a>
</li>
<li>
<a href="#onMouseUp" >onMouseUp</a>
</li>
<li>
<a href="#registerOnChange" >registerOnChange</a>
</li>
<li>
<a href="#registerOnTouched" >registerOnTouched</a>
</li>
<li>
<a href="#scaleX" >scaleX</a>
</li>
<li>
<a href="#trackThumbsBy" >trackThumbsBy</a>
</li>
<li>
<a href="#updateTrackRangeWidth" >updateTrackRangeWidth</a>
</li>
<li>
<a href="#writeValue" >writeValue</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Inputs</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#disableArrowKeys" >disableArrowKeys</a>
</li>
<li>
<a href="#disabled" >disabled</a>
</li>
<li>
<a href="#id" >id</a>
</li>
<li>
<a href="#label" >label</a>
</li>
<li>
<a href="#max" >max</a>
</li>
<li>
<a href="#min" >min</a>
</li>
<li>
<a href="#readonly" >readonly</a>
</li>
<li>
<a href="#shiftMultiplier" >shiftMultiplier</a>
</li>
<li>
<a href="#skeleton" >skeleton</a>
</li>
<li>
<a href="#step" >step</a>
</li>
<li>
<a href="#value" >value</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Outputs</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#valueChange" >valueChange</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>HostBindings</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#class.cds--form-item" >class.cds--form-item</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Accessors</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#min" >min</a>
</li>
<li>
<a href="#max" >max</a>
</li>
<li>
<a href="#value" >value</a>
</li>
<li>
<a href="#disabled" >disabled</a>
</li>
<li>
<a href="#readonly" >readonly</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-constructor">
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(elementRef: ElementRef, eventService: <a href="../injectables/EventService.html" target="_self">EventService</a>, changeDetection: ChangeDetectorRef)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="318" class="link-to-prism">src/slider/slider.component.ts:318</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>elementRef</td>
<td>
<code>ElementRef</code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>eventService</td>
<td>
<code><a href="../injectables/EventService.html" target="_self" >EventService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>changeDetection</td>
<td>
<code>ChangeDetectorRef</code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-inputs">
<h3 id="inputs">Inputs</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="disableArrowKeys"></a>
<b>disableArrowKeys</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="270" class="link-to-prism">src/slider/slider.component.ts:270</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Set to <code>true</code> for a slider without arrow key interactions.</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="disabled"></a>
<b>disabled</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="272" class="link-to-prism">src/slider/slider.component.ts:272</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Disables the range visually and functionally</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="id"></a>
<b>id</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>`slider-${Slider.count++}`</code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="262" class="link-to-prism">src/slider/slider.component.ts:262</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Base ID for the slider. The min and max labels get IDs <code>${this.id}-bottom-range</code> and <code>${this.id}-top-range</code> respectively</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="label"></a>
<b>label</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>string | TemplateRef<any></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="268" class="link-to-prism">src/slider/slider.component.ts:268</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Sets the text inside the <code>label</code> tag</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="max"></a>
<b>max</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="180" class="link-to-prism">src/slider/slider.component.ts:180</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The upper bound of our range</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="min"></a>
<b>min</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="170" class="link-to-prism">src/slider/slider.component.ts:170</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The lower bound of our range</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="readonly"></a>
<b>readonly</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="285" class="link-to-prism">src/slider/slider.component.ts:285</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Set to <code>true</code> for a readonly state.</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="shiftMultiplier"></a>
<b>shiftMultiplier</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>4</code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="264" class="link-to-prism">src/slider/slider.component.ts:264</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Value used to "multiply" the <code>step</code> when using arrow keys to select values</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="skeleton"></a>
<b>skeleton</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="266" class="link-to-prism">src/slider/slider.component.ts:266</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Set to <code>true</code> for a loading slider</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="step"></a>
<b>step</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>1</code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="191" class="link-to-prism">src/slider/slider.component.ts:191</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The interval for our range</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="value"></a>
<b>value</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="193" class="link-to-prism">src/slider/slider.component.ts:193</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Set the initial value. Available for two way binding</p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-outputs">
<h3 id="outputs">Outputs</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="valueChange"></a>
<b>valueChange</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>EventEmitter<number | []></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="297" class="link-to-prism">src/slider/slider.component.ts:297</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Emits every time a new value is selected</p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-properties">
<h3>HostBindings</h3> <table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="class.cds--form-item"></a>
<span class="name">
<span ><b>class.cds--form-item</b></span>
<a href="#class.cds--form-item"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>true</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="298" class="link-to-prism">src/slider/slider.component.ts:298</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-methods">
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="convertToPx"></a>
<span class="name">
<span ><b>convertToPx</b></span>
<a href="#convertToPx"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>convertToPx(value)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="410"
class="link-to-prism">src/slider/slider.component.ts:410</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Converts a given "real" value to a px value we can update the view with</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>value</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="convertToValue"></a>
<span class="name">
<span ><b>convertToValue</b></span>
<a href="#convertToValue"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>convertToValue(pxAmount)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="399"
class="link-to-prism">src/slider/slider.component.ts:399</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Converts a given px value to a "real" value in our range</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>pxAmount</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="decrementValue"></a>
<span class="name">
<span ><b>decrementValue</b></span>
<a href="#decrementValue"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>decrementValue(multiplier: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, index: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="443"
class="link-to-prism">src/slider/slider.component.ts:443</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Decrements the value by the step value, or the step value multiplied by the <code>multiplier</code> argument.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Default value</td>
</tr>
</thead>
<tbody>
<tr>
<td>index</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
<td>
<code>0</code>
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getFractionComplete"></a>
<span class="name">
<span ><b>getFractionComplete</b></span>
<a href="#getFractionComplete"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>getFractionComplete(value: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="384"
class="link-to-prism">src/slider/slider.component.ts:384</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns the amount of "completeness" of a value as a fraction of the total track width</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>value</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getInputs"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>getInputs</b></span>
<a href="#getInputs"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>getInputs()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="571"
class="link-to-prism">src/slider/slider.component.ts:571</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Get optional input fields</p>
</div>
<div class="io-description">
<b>Returns : </b> <code>HTMLInputElement[]</code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="incrementValue"></a>
<span class="name">
<span ><b>incrementValue</b></span>
<a href="#incrementValue"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>incrementValue(multiplier: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, index: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="433"
class="link-to-prism">src/slider/slider.component.ts:433</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Increments the value by the step value, or the step value multiplied by the <code>multiplier</code> argument.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Default value</td>
</tr>
</thead>
<tbody>
<tr>
<td>index</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
<td>
<code>0</code>
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="isRange"></a>
<span class="name">
<span ><b>isRange</b></span>
<a href="#isRange"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>isRange()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="451"
class="link-to-prism">src/slider/slider.component.ts:451</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Determines if the slider is in range mode.</p>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="isTemplate"></a>
<span class="name">
<span class="modifier">Public</span>
<span ><b>isTemplate</b></span>
<a href="#isTemplate"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>isTemplate(value)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="566"
class="link-to-prism">src/slider/slider.component.ts:566</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>value</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngAfterViewInit"></a>
<span class="name">
<span ><b>ngAfterViewInit</b></span>
<a href="#ngAfterViewInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngAfterViewInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="326"
class="link-to-prism">src/slider/slider.component.ts:326</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onChange"></a>
<span class="name">
<span ><b>onChange</b></span>
<a href="#onChange"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>onChange(event, index)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="466"
class="link-to-prism">src/slider/slider.component.ts:466</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Change handler for the optional input</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>event</td>
<td>
No
</td>
</tr>
<tr>
<td>index</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onClick"></a>
<span class="name">
<span ><b>onClick</b></span>
<a href="#onClick"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>onClick(event)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="475"
class="link-to-prism">src/slider/slider.component.ts:475</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Handles clicks on the slider, and setting the value to it's "real" equivalent.
Will assign the value to the closest thumb if in range mode.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>event</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onFocus"></a>
<span class="name">
<span ><b>onFocus</b></span>
<a href="#onFocus"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>onFocus(undefined)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="493"
class="link-to-prism">src/slider/slider.component.ts:493</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Focus handler for the optional input</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onKeyDown"></a>
<span class="name">
<span ><b>onKeyDown</b></span>
<a href="#onKeyDown"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>onKeyDown(event: KeyboardEvent, index: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="550"
class="link-to-prism">src/slider/slider.component.ts:550</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Calls <code>incrementValue</code> for ArrowRight and ArrowUp, <code>decrementValue</code> for ArrowLeft and ArrowDown.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Default value</td>
</tr>
</thead>
<tbody>
<tr>
<td>event</td>
<td>
<code>KeyboardEvent</code>
</td>
<td>
No
</td>
<td>
</td>
</tr>
<tr>
<td>index</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
<td>
<code>0</code>
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onMouseDown"></a>
<span class="name">
<span ><b>onMouseDown</b></span>
<a href="#onMouseDown"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>onMouseDown(event, index: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="532"
class="link-to-prism">src/slider/slider.component.ts:532</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Enables the <code>onMouseMove</code> handler</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Default value</td>
</tr>
</thead>
<tbody>
<tr>
<td>event</td>
<td>
</td>
<td>
No
</td>
<td>
</td>
</tr>
<tr>
<td>index</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
<td>
<code>0</code>
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onMouseMove"></a>
<span class="name">
<span ><b>onMouseMove</b></span>
<a href="#onMouseMove"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>onMouseMove(event)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="498"
class="link-to-prism">src/slider/slider.component.ts:498</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Mouse move handler. Responsible for updating the value and visual selection based on mouse movement</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>event</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onMouseUp"></a>
<span class="name">
<span ><b>onMouseUp</b></span>
<a href="#onMouseUp"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>onMouseUp()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="541"
class="link-to-prism">src/slider/slider.component.ts:541</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Disables the <code>onMouseMove</code> handler</p>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="registerOnChange"></a>
<span class="name">
<span ><b>registerOnChange</b></span>
<a href="#registerOnChange"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>registerOnChange(fn: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="364"
class="link-to-prism">src/slider/slider.component.ts:364</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Register a change propagation function for <code>ControlValueAccessor</code></p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>fn</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="registerOnTouched"></a>
<span class="name">
<span ><b>registerOnTouched</b></span>
<a href="#registerOnTouched"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>registerOnTouched(fn: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="372"
class="link-to-prism">src/slider/slider.component.ts:372</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Register a callback to notify when our input has been touched</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>fn</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="scaleX"></a>
<span class="name">
<span ><b>scaleX</b></span>
<a href="#scaleX"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>scaleX(complete)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="394"
class="link-to-prism">src/slider/slider.component.ts:394</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Helper function to return the CSS transform <code>scaleX</code> function</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>complete</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="trackThumbsBy"></a>
<span class="name">
<span ><b>trackThumbsBy</b></span>
<a href="#trackThumbsBy"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>trackThumbsBy(index: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, item: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="356"
class="link-to-prism">src/slider/slider.component.ts:356</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>index</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>item</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="updateTrackRangeWidth"></a>
<span class="name">
<span ><b>updateTrackRangeWidth</b></span>
<a href="#updateTrackRangeWidth"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>updateTrackRangeWidth()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="459"
class="link-to-prism">src/slider/slider.component.ts:459</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Range mode only.
Updates the track width to span from the low thumb to the high thumb</p>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="writeValue"></a>
<span class="name">
<span ><b>writeValue</b></span>
<a href="#writeValue"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>writeValue(v: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="377"
class="link-to-prism">src/slider/slider.component.ts:377</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Receives a value from the model</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>v</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-properties">
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="_disabled"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>_disabled</b></span>
<a href="#_disabled"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="316" class="link-to-prism">src/slider/slider.component.ts:316</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="_focusedThumbIndex"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>_focusedThumbIndex</b></span>
<a href="#_focusedThumbIndex"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>0</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="318" class="link-to-prism">src/slider/slider.component.ts:318</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="_max"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>_max</b></span>
<a href="#_max"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>100</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="313" class="link-to-prism">src/slider/slider.component.ts:313</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="_min"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>_min</b></span>
<a href="#_min"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>0</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="312" class="link-to-prism">src/slider/slider.component.ts:312</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="_previousValue"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>_previousValue</b></span>
<a href="#_previousValue"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>[]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[this.min]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="315" class="link-to-prism">src/slider/slider.component.ts:315</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="_readonly"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>_readonly</b></span>
<a href="#_readonly"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="317" class="link-to-prism">src/slider/slider.component.ts:317</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="_value"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>_value</b></span>
<a href="#_value"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>[]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[this.min]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="314" class="link-to-prism">src/slider/slider.component.ts:314</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="bottomRangeId"></a>
<span class="name">
<span class="modifier">Public</span>
<span ><b>bottomRangeId</b></span>
<a href="#bottomRangeId"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>`${this.id}-bottom-range`</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="306" class="link-to-prism">src/slider/slider.component.ts:306</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="count"></a>
<span class="name">
<span class="modifier">Private</span>
<span class="modifier">Static</span>
<span ><b>count</b></span>
<a href="#count"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>0</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="167" class="link-to-prism">src/slider/slider.component.ts:167</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Used to generate unique IDs</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="filledTrack"></a>
<span class="name">
<span class="modifier"></span>
<span ><b>filledTrack</b></span>
<a href="#filledTrack"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>ElementRef</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild('filledTrack')<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="302" class="link-to-prism">src/slider/slider.component.ts:302</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="fractionComplete"></a>
<span class="name">
<span class="modifier">Public</span>
<span ><b>fractionComplete</b></span>
<a href="#fractionComplete"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>0</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="308" class="link-to-prism">src/slider/slider.component.ts:308</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="hostClass"></a>
<span class="name">
<span class="modifier"></span>
<span ><b>hostClass</b></span>
<a href="#hostClass"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>true</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@HostBinding('class.cds--form-item')<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="298" class="link-to-prism">src/slider/slider.component.ts:298</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="inputs"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>inputs</b></span>
<a href="#inputs"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>HTMLInputElement[]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="311" class="link-to-prism">src/slider/slider.component.ts:311</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="isMouseDown"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>isMouseDown</b></span>
<a href="#isMouseDown"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="310" class="link-to-prism">src/slider/slider.component.ts:310</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="labelId"></a>
<span class="name">
<span class="modifier">Public</span>
<span ><b>labelId</b></span>
<a href="#labelId"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>`${this.id}-label`</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="305" class="link-to-prism">src/slider/slider.component.ts:305</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onTouched"></a>
<span class="name">
<span ><b>onTouched</b></span>
<a href="#onTouched"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/function" target="_blank" >function</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>() => {...}</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="369" class="link-to-prism">src/slider/slider.component.ts:369</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Callback to notify the model when our input has been touched</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="propagateChange"></a>
<span class="name">
<span ><b>propagateChange</b></span>
<a href="#propagateChange"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>() => {...}</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="361" class="link-to-prism">src/slider/slider.component.ts:361</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Send changes back to the model</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="range"></a>
<span class="name">
<span class="modifier"></span>
<span ><b>range</b></span>
<a href="#range"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>ElementRef</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild('range')<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="303" class="link-to-prism">src/slider/slider.component.ts:303</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="thumbs"></a>
<span class="name">
<span class="modifier"></span>
<span ><b>thumbs</b></span>
<a href="#thumbs"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../directives/List.html" target="_self" >QueryList<ElementRef></a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChildren('thumbs')<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="299" class="link-to-prism">src/slider/slider.component.ts:299</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="topRangeId"></a>
<span class="name">
<span class="modifier">Public</span>
<span ><b>topRangeId</b></span>
<a href="#topRangeId"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>`${this.id}-top-range`</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="307" class="link-to-prism">src/slider/slider.component.ts:307</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="track"></a>
<span class="name">
<span class="modifier"></span>
<span ><b>track</b></span>
<a href="#track"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>ElementRef</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild('track')<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="301" class="link-to-prism">src/slider/slider.component.ts:301</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-accessors">
<h3 id="accessors">
Accessors
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="min"></a>
<span class="name"><b>min</b><a href="#min"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>get</b><code>min()</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="176" class="link-to-prism">src/slider/slider.component.ts:176</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>set</b><code>min(v)</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="170" class="link-to-prism">src/slider/slider.component.ts:170</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The lower bound of our range</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>v</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="max"></a>
<span class="name"><b>max</b><a href="#max"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>get</b><code>max()</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="187" class="link-to-prism">src/slider/slider.component.ts:187</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>set</b><code>max(v)</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="180" class="link-to-prism">src/slider/slider.component.ts:180</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The upper bound of our range</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>v</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="value"></a>
<span class="name"><b>value</b><a href="#value"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>get</b><code>value()</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="254" class="link-to-prism">src/slider/slider.component.ts:254</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>set</b><code>value(v)</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="193" class="link-to-prism">src/slider/slider.component.ts:193</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Set the initial value. Available for two way binding</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>v</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="disabled"></a>
<span class="name"><b>disabled</b><a href="#disabled"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>get</b><code>disabled()</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="281" class="link-to-prism">src/slider/slider.component.ts:281</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>set</b><code>disabled(v)</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="272" class="link-to-prism">src/slider/slider.component.ts:272</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Disables the range visually and functionally</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>v</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="readonly"></a>
<span class="name"><b>readonly</b><a href="#readonly"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>get</b><code>readonly()</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="293" class="link-to-prism">src/slider/slider.component.ts:293</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>set</b><code>readonly(v: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank">boolean</a>)</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="285" class="link-to-prism">src/slider/slider.component.ts:285</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Set to <code>true</code> for a readonly state.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>v</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {
Component,
HostBinding,
Input,
Output,
EventEmitter,
AfterViewInit,
ViewChild,
ElementRef,
TemplateRef,
ViewChildren,
QueryList,
ChangeDetectorRef
} from "@angular/core";
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from "@angular/forms";
import { EventService } from "carbon-components-angular/utils";
/**
* Used to select from ranges of values. [See here](https://www.carbondesignsystem.com/components/slider/usage) for usage information.
*
* Get started with importing the module:
*
* ```typescript
* import { SliderModule } from 'carbon-components-angular';
* ```
*
* The simplest possible slider usage looks something like:
*
* ```html
* <cds-slider></cds-slider>
* ```
*
* That will render a slider without labels or alternative value input. Labels can be provided by
* elements with `[minLabel]` and `[maxLabel]` attributes, and an `input` (may use the `ibmInput` directive) can be supplied
* for use as an alternative value field.
*
* ex:
*
* ```html
* <!-- Full example -->
* <cds-slider>
* <span minLabel>0GB</span>
* <span maxLabel>100GB</span>
* <input/>
* </cds-slider>
*
* <!-- with just an input -->
* <cds-slider>
* <input/>
* </cds-slider>
*
* <!-- with just one label -->
* <cds-slider>
* <span maxLabel>Maximum</span>
* </cds-slider>
* ```
*
* Slider supports `NgModel` by default, as well as two way binding to the `value` input.
*
* [See demo](../../?path=/story/components-slider--advanced)
*/
@Component({
selector: "cds-slider, ibm-slider",
template: `
<ng-container *ngIf="!skeleton; else skeletonTemplate">
<label
*ngIf="label"
[for]="id"
[id]="labelId"
class="cds--label"
[ngClass]="{'cds--label--disabled': disabled}">
<ng-container *ngIf="!isTemplate(label)">{{label}}</ng-container>
<ng-template *ngIf="isTemplate(label)" [ngTemplateOutlet]="label"></ng-template>
</label>
<div
class="cds--slider-container"
[ngClass]="{ 'cds--slider-container--readonly': readonly }">
<label [id]="bottomRangeId" class="cds--slider__range-label">
<ng-content select="[minLabel]"></ng-content>
</label>
<div
class="cds--slider"
(click)="onClick($event)"
[ngClass]="{
'cds--slider--disabled': disabled,
'cds--slider--readonly': readonly
}">
<ng-container *ngIf="!isRange()">
<div class="cds--slider__thumb-wrapper"
[ngStyle]="{insetInlineStart: getFractionComplete(value) * 100 + '%'}">
<div
#thumbs
role="slider"
[id]="id"
[attr.aria-labelledby]="labelId"
class="cds--slider__thumb"
tabindex="0"
(mousedown)="onMouseDown($event)"
(keydown)="onKeyDown($event)">
</div>
</div>
</ng-container>
<ng-container *ngIf="isRange()">
<div class="cds--slider__thumb-wrapper"
[ngStyle]="{insetInlineStart: getFractionComplete(thumb) * 100 + '%'}"
*ngFor="let thumb of value; let i = index; trackBy: trackThumbsBy">
<div
#thumbs
role="slider"
[id]="id + (i > 0 ? '-' + i : '')"
[attr.aria-labelledby]="labelId"
class="cds--slider__thumb"
tabindex="0"
(mousedown)="onMouseDown($event, i)"
(keydown)="onKeyDown($event, i)">
</div>
</div>
</ng-container>
<div
#track
class="cds--slider__track">
</div>
<div
#filledTrack
class="cds--slider__filled-track">
</div>
<input
#range
aria-label="slider"
class="cds--slider__input"
type="range"
[step]="step"
[min]="min"
[max]="max"
[value]="value.toString()">
</div>
<label [id]="topRangeId" class="cds--slider__range-label">
<ng-content select="[maxLabel]"></ng-content>
</label>
<ng-content select="input"></ng-content>
</div>
</ng-container>
<ng-template #skeletonTemplate>
<label *ngIf="label" class="cds--label cds--skeleton"></label>
<div class="cds--slider-container cds--skeleton">
<span class="cds--slider__range-label"></span>
<div class="cds--slider">
<div class="cds--slider__thumb"></div>
<div class="cds--slider__track"></div>
<div class="cds--slider__filled-track"></div>
</div>
<span class="cds--slider__range-label"></span>
</div>
</ng-template>
`,
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: Slider,
multi: true
}
]
})
export class Slider implements AfterViewInit, ControlValueAccessor {
/** Used to generate unique IDs */
private static count = 0;
/** The lower bound of our range */
@Input() set min(v) {
if (!v) { return; }
this._min = v;
// force the component to update
this.value = this.value;
}
get min() {
return this._min;
}
/** The upper bound of our range */
@Input() set max(v) {
if (!v) { return; }
this._max = v;
// force the component to update
this.value = this.value;
}
get max() {
return this._max;
}
/** The interval for our range */
@Input() step = 1;
/** Set the initial value. Available for two way binding */
@Input() set value(v) {
if (!v) {
v = [this.min];
}
if (typeof v === "number" || typeof v === "string") {
v = [Number(v)];
}
if (v[0] < this.min) {
v[0] = this.min;
}
if (v[0] > this.max) {
v[0] = this.max;
}
if (this.isRange()) {
if (this._previousValue[0] !== v[0]) { // left moved
if (v[0] > v[1] - this.step) {
// stop the left handle if surpassing the right one
v[0] = v[1] - this.step;
} else if (v[0] > this.max) {
v[0] = this.max;
} else if (v[0] < this.min) {
v[0] = this.min;
}
}
if (this._previousValue[1] !== v[1]) { // right moved
if (v[1] > this.max) {
v[1] = this.max;
} else if (v[1] < this._value[0] + this.step) {
// stop the right handle if surpassing the left one
v[1] = this._value[0] + this.step;
} else if (v[1] < this.min) {
v[1] = this.min;
}
}
}
this._previousValue = [...this._value]; // store a copy, enable detection which handle moved
this._value = [...v]; // triggers change detection when ngModel value is an array (for range)
if (this.isRange() && this.filledTrack) {
this.updateTrackRangeWidth();
} else if (this.filledTrack) {
this.filledTrack.nativeElement.style.transform = `translate(0%, -50%) ${this.scaleX(this.getFractionComplete(v[0]))}`;
}
if (this.inputs && this.inputs.length) {
this.inputs.forEach((input, index) => {
input.value = this._value[index].toString();
});
}
const valueToEmit = this.isRange() ? v : v[0];
this.propagateChange(valueToEmit);
this.valueChange.emit(valueToEmit);
}
get value() {
if (this.isRange()) {
return this._value;
}
return this._value[0];
}
/** Base ID for the slider. The min and max labels get IDs `${this.id}-bottom-range` and `${this.id}-top-range` respectively */
@Input() id = `slider-${Slider.count++}`;
/** Value used to "multiply" the `step` when using arrow keys to select values */
@Input() shiftMultiplier = 4;
/** Set to `true` for a loading slider */
@Input() skeleton = false;
/** Sets the text inside the `label` tag */
@Input() label: string | TemplateRef<any>;
/** Set to `true` for a slider without arrow key interactions. */
@Input() disableArrowKeys = false;
/** Disables the range visually and functionally */
@Input() set disabled(v) {
this._disabled = v;
// for some reason `this.input` never exists here, so we have to query for it here too
const inputs = this.getInputs();
if (inputs && inputs.length > 0) {
inputs.forEach(input => input.disabled = v);
}
}
get disabled() {
return this._disabled;
}
/** Set to `true` for a readonly state. */
@Input() set readonly(v: boolean) {
this._readonly = v;
// for some reason `this.input` never exists here, so we have to query for it here too
const inputs = this.getInputs();
if (inputs && inputs.length > 0) {
inputs.forEach(input => input.readOnly = v);
}
}
get readonly() {
return this._readonly;
}
/** Emits every time a new value is selected */
@Output() valueChange: EventEmitter<number | number[]> = new EventEmitter();
@HostBinding("class.cds--form-item") hostClass = true;
@ViewChildren("thumbs") thumbs: QueryList<ElementRef>;
@ViewChild("track") track: ElementRef;
@ViewChild("filledTrack") filledTrack: ElementRef;
@ViewChild("range") range: ElementRef;
public labelId = `${this.id}-label`;
public bottomRangeId = `${this.id}-bottom-range`;
public topRangeId = `${this.id}-top-range`;
public fractionComplete = 0;
protected isMouseDown = false;
protected inputs: HTMLInputElement[];
protected _min = 0;
protected _max = 100;
protected _value = [this.min];
protected _previousValue = [this.min];
protected _disabled = false;
protected _readonly = false;
protected _focusedThumbIndex = 0;
constructor(
protected elementRef: ElementRef,
protected eventService: EventService,
private changeDetection: ChangeDetectorRef
) {}
ngAfterViewInit() {
// bind mousemove and mouseup to the document so we don't have issues tracking the mouse
this.eventService.onDocument("mousemove", this.onMouseMove.bind(this));
this.eventService.onDocument("mouseup", this.onMouseUp.bind(this));
// apply any values we got from before the view initialized
this.changeDetection.detectChanges();
// TODO: ontouchstart/ontouchmove/ontouchend
// set up the optional input
this.inputs = this.getInputs();
if (this.inputs && this.inputs.length > 0) {
this.inputs.forEach((input, index) => {
input.type = "number";
input.classList.add("cds--slider-text-input");
input.classList.add("cds--text-input");
input.setAttribute("aria-labelledby", `${this.bottomRangeId} ${this.topRangeId}`);
input.value = index < this._value.length ? this._value[index].toString() : this.max.toString();
// bind events on our optional input
this.eventService.on(input, "change", event => this.onChange(event, index));
if (index === 0) {
this.eventService.on(input, "focus", this.onFocus.bind(this));
}
});
}
}
trackThumbsBy(index: number, item: any) {
return index;
}
/** Send changes back to the model */
propagateChange = (_: any) => { };
/** Register a change propagation function for `ControlValueAccessor` */
registerOnChange(fn: any) {
this.propagateChange = fn;
}
/** Callback to notify the model when our input has been touched */
onTouched: () => any = () => { };
/** Register a callback to notify when our input has been touched */
registerOnTouched(fn: any) {
this.onTouched = fn;
}
/** Receives a value from the model */
writeValue(v: any) {
this.value = v;
}
/**
* Returns the amount of "completeness" of a value as a fraction of the total track width
*/
getFractionComplete(value: number) {
if (!this.track) {
return 0;
}
const trackWidth = this.track.nativeElement.getBoundingClientRect().width;
return this.convertToPx(value) / trackWidth;
}
/** Helper function to return the CSS transform `scaleX` function */
scaleX(complete) {
return `scaleX(${complete})`;
}
/** Converts a given px value to a "real" value in our range */
convertToValue(pxAmount) {
// basic concept borrowed from carbon-components
// https://github.com/carbon-design-system/carbon/blob/43bf3abdc2f8bdaa38aa84e0f733adde1e1e8894/src/components/slider/slider.js#L147-L151
const range = this.max - this.min;
const trackWidth = this.track.nativeElement.getBoundingClientRect().width;
const unrounded = pxAmount / trackWidth;
const rounded = Math.round((range * unrounded) / this.step) * this.step;
return rounded + this.min;
}
/** Converts a given "real" value to a px value we can update the view with */
convertToPx(value) {
if (!this.track) {
return 0;
}
const trackWidth = this.track.nativeElement.getBoundingClientRect().width;
if (value >= this.max) {
return trackWidth;
}
if (value <= this.min) {
return 0;
}
// account for value shifting by subtracting min from value and max
return Math.round(trackWidth * ((value - this.min) / (this.max - this.min)));
}
/**
* Increments the value by the step value, or the step value multiplied by the `multiplier` argument.
*
* @argument multiplier Defaults to `1`, multiplied with the step value.
*/
incrementValue(multiplier = 1, index = 0) {
this._value[index] = this._value[index] + (this.step * multiplier);
this.value = this.value; // run the setter
}
/**
* Decrements the value by the step value, or the step value multiplied by the `multiplier` argument.
*
* @argument multiplier Defaults to `1`, multiplied with the step value.
*/
decrementValue(multiplier = 1, index = 0) {
this._value[index] = this._value[index] - (this.step * multiplier);
this.value = this.value; // run the setter
}
/**
* Determines if the slider is in range mode.
*/
isRange(): boolean {
return this._value.length > 1;
}
/**
* Range mode only.
* Updates the track width to span from the low thumb to the high thumb
*/
updateTrackRangeWidth() {
const fraction = this.getFractionComplete(this._value[0]);
const fraction2 = this.getFractionComplete(this._value[1]);
this.filledTrack.nativeElement.style.transform = `translate(${fraction * 100}%, -50%) ${this.scaleX(fraction2 - fraction)}`;
}
/** Change handler for the optional input */
onChange(event, index) {
this._value[index] = Number(event.target.value);
this.value = this.value;
}
/**
* Handles clicks on the slider, and setting the value to it's "real" equivalent.
* Will assign the value to the closest thumb if in range mode.
* */
onClick(event) {
if (this.disabled || this.readonly) { return; }
const trackLeft = this.track.nativeElement.getBoundingClientRect().left;
const trackValue = this.convertToValue(event.clientX - trackLeft);
if (this.isRange()) {
if (Math.abs(this._value[0] - trackValue) < Math.abs(this._value[1] - trackValue)) {
this._value[0] = trackValue;
} else {
this._value[1] = trackValue;
}
} else {
this._value[0] = trackValue;
}
this.value = this.value;
}
/** Focus handler for the optional input */
onFocus({target}) {
target.select();
}
/** Mouse move handler. Responsible for updating the value and visual selection based on mouse movement */
onMouseMove(event) {
if (this.disabled || this.readonly || !this.isMouseDown) { return; }
const track = this.track.nativeElement.getBoundingClientRect();
let value;
if (
event.clientX - track.left <= track.width
&& event.clientX - track.left >= 0
) {
value = this.convertToValue(event.clientX - track.left);
}
// if the mouse is beyond the max, set the value to `max`
if (event.clientX - track.left > track.width) {
value = this.max;
}
// if the mouse is below the min, set the value to `min`
if (event.clientX - track.left < 0) {
value = this.min;
}
if (value !== undefined) {
this._value[this._focusedThumbIndex] = value;
this.value = this.value;
}
}
/**
* Enables the `onMouseMove` handler
*
* @param {boolean} thumb If true then `thumb` is clicked down, otherwise `thumb2` is clicked down.
*/
onMouseDown(event, index = 0) {
event.preventDefault();
if (this.disabled || this.readonly) { return; }
this._focusedThumbIndex = index;
this.thumbs.toArray()[index].nativeElement.focus();
this.isMouseDown = true;
}
/** Disables the `onMouseMove` handler */
onMouseUp() {
this.isMouseDown = false;
}
/**
* Calls `incrementValue` for ArrowRight and ArrowUp, `decrementValue` for ArrowLeft and ArrowDown.
*
* @param {boolean} thumb If true then `thumb` is pressed down, otherwise `thumb2` is pressed down.
*/
onKeyDown(event: KeyboardEvent, index = 0) {
if (this.disableArrowKeys || this.readonly) {
return;
}
const multiplier = event.shiftKey ? this.shiftMultiplier : 1;
if (event.key === "ArrowLeft" || event.key === "ArrowDown") {
this.decrementValue(multiplier, index);
this.thumbs.toArray()[index].nativeElement.focus();
event.preventDefault();
} else if (event.key === "ArrowRight" || event.key === "ArrowUp") {
this.incrementValue(multiplier, index);
this.thumbs.toArray()[index].nativeElement.focus();
event.preventDefault();
}
}
public isTemplate(value) {
return value instanceof TemplateRef;
}
/** Get optional input fields */
protected getInputs(): HTMLInputElement[] {
return this.elementRef.nativeElement.querySelectorAll("input:not([type=range])");
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><ng-container *ngIf="!skeleton; else skeletonTemplate"> <label *ngIf="label" [for]="id" [id]="labelId" class="cds--label" [ngClass]="{\'cds--label--disabled\': disabled}"> <ng-container *ngIf="!isTemplate(label)">{{label}}</ng-container> <ng-template *ngIf="isTemplate(label)" [ngTemplateOutlet]="label"></ng-template> </label> <div class="cds--slider-container" [ngClass]="{ \'cds--slider-container--readonly\': readonly }"> <label [id]="bottomRangeId" class="cds--slider__range-label"> <ng-content select="[minLabel]"></ng-content> </label> <div class="cds--slider" (click)="onClick($event)" [ngClass]="{ \'cds--slider--disabled\': disabled, \'cds--slider--readonly\': readonly }"> <ng-container *ngIf="!isRange()"> <div class="cds--slider__thumb-wrapper" [ngStyle]="{insetInlineStart: getFractionComplete(value) * 100 + \'%\'}"> <div #thumbs role="slider" [id]="id" [attr.aria-labelledby]="labelId" class="cds--slider__thumb" tabindex="0" (mousedown)="onMouseDown($event)" (keydown)="onKeyDown($event)"> </div> </div> </ng-container> <ng-container *ngIf="isRange()"> <div class="cds--slider__thumb-wrapper" [ngStyle]="{insetInlineStart: getFractionComplete(thumb) * 100 + \'%\'}" *ngFor="let thumb of value; let i = index; trackBy: trackThumbsBy"> <div #thumbs role="slider" [id]="id + (i > 0 ? \'-\' + i : \'\')" [attr.aria-labelledby]="labelId" class="cds--slider__thumb" tabindex="0" (mousedown)="onMouseDown($event, i)" (keydown)="onKeyDown($event, i)"> </div> </div> </ng-container> <div #track class="cds--slider__track"> </div> <div #filledTrack class="cds--slider__filled-track"> </div> <input #range aria-label="slider" class="cds--slider__input" type="range" [step]="step" [min]="min" [max]="max" [value]="value.toString()"> </div> <label [id]="topRangeId" class="cds--slider__range-label"> <ng-content select="[maxLabel]"></ng-content> </label> <ng-content select="input"></ng-content> </div></ng-container><ng-template #skeletonTemplate> <label *ngIf="label" class="cds--label cds--skeleton"></label> <div class="cds--slider-container cds--skeleton"> <span class="cds--slider__range-label"></span> <div class="cds--slider"> <div class="cds--slider__thumb"></div> <div class="cds--slider__track"></div> <div class="cds--slider__filled-track"></div> </div> <span class="cds--slider__range-label"></span> </div></ng-template> </div>'
var COMPONENTS = [{'name': 'Accordion', 'selector': 'cds-accordion, ibm-accordion'},{'name': 'AccordionItem', 'selector': 'cds-accordion-item, ibm-accordion-item'},{'name': 'ActionableNotification', 'selector': 'cds-actionable-notification, ibm-actionable-notification'},{'name': 'AlertModal', 'selector': 'cds-alert-modal, ibm-alert-modal'},{'name': 'BaseIconButton', 'selector': ''},{'name': 'BaseNotification', 'selector': ''},{'name': 'BaseTabHeader', 'selector': ''},{'name': 'Breadcrumb', 'selector': 'cds-breadcrumb, ibm-breadcrumb'},{'name': 'BreadcrumbItemComponent', 'selector': 'cds-breadcrumb-item, ibm-breadcrumb-item'},{'name': 'ButtonSet', 'selector': 'cds-button-set, ibm-button-set'},{'name': 'Checkbox', 'selector': 'cds-checkbox, ibm-checkbox'},{'name': 'ClickableTile', 'selector': 'cds-clickable-tile, ibm-clickable-tile'},{'name': 'CodeSnippet', 'selector': 'cds-code-snippet, ibm-code-snippet'},{'name': 'ComboBox', 'selector': 'cds-combo-box, ibm-combo-box'},{'name': 'ComboButtonComponent', 'selector': 'cds-combo-button'},{'name': 'ContainedList', 'selector': 'cds-contained-list, ibm-contained-list'},{'name': 'ContainedListItem', 'selector': 'cds-contained-list-item, ibm-contained-list-item'},{'name': 'ContentSwitcher', 'selector': 'cds-content-switcher, ibm-content-switcher'},{'name': 'ContextMenuComponent', 'selector': 'cds-menu, cds-context-menu, ibm-context-menu'},{'name': 'ContextMenuDividerComponent', 'selector': 'cds-menu-divider, cds-context-menu-divider, ibm-context-menu-divider'},{'name': 'ContextMenuGroupComponent', 'selector': 'cds-menu-group, cds-context-menu-group, ibm-context-menu-group'},{'name': 'ContextMenuItemComponent', 'selector': 'cds-menu-item, cds-context-menu-item, ibm-context-menu-item'},{'name': 'DatePicker', 'selector': 'cds-date-picker, ibm-date-picker'},{'name': 'DatePickerInput', 'selector': 'cds-date-picker-input, ibm-date-picker-input'},{'name': 'Dialog', 'selector': 'cds-dialog, ibm-dialog'},{'name': 'Documentation', 'selector': 'cds-documentation'},{'name': 'Dropdown', 'selector': 'cds-dropdown, ibm-dropdown'},{'name': 'DropdownList', 'selector': 'cds-dropdown-list, ibm-dropdown-list'},{'name': 'ExpandableTile', 'selector': 'cds-expandable-tile, ibm-expandable-tile'},{'name': 'FileComponent', 'selector': 'cds-file, ibm-file'},{'name': 'FileUploader', 'selector': 'cds-file-uploader, ibm-file-uploader'},{'name': 'Hamburger', 'selector': 'cds-hamburger, ibm-hamburger'},{'name': 'Header', 'selector': 'cds-header, ibm-header'},{'name': 'HeaderAction', 'selector': 'cds-header-action, ibm-header-action'},{'name': 'HeaderGlobal', 'selector': 'cds-header-global, ibm-header-global'},{'name': 'HeaderItem', 'selector': 'cds-header-item, ibm-header-item'},{'name': 'HeaderMenu', 'selector': 'cds-header-menu, ibm-header-menu'},{'name': 'HeaderNavigation', 'selector': 'cds-header-navigation, ibm-header-navigation'},{'name': 'IconButton', 'selector': 'cds-icon-button, ibm-icon-button'},{'name': 'InlineLoading', 'selector': 'cds-inline-loading, ibm-inline-loading'},{'name': 'Label', 'selector': 'cds-label, ibm-label'},{'name': 'ListColumn', 'selector': 'cds-list-column, ibm-list-column'},{'name': 'ListHeader', 'selector': 'cds-list-header, ibm-list-header'},{'name': 'ListRow', 'selector': 'cds-list-row, ibm-list-row'},{'name': 'Loading', 'selector': 'cds-loading, ibm-loading'},{'name': 'MenuButtonComponent', 'selector': 'cds-menu-button'},{'name': 'Modal', 'selector': 'cds-modal, ibm-modal'},{'name': 'ModalFooter', 'selector': 'cds-modal-footer, ibm-modal-footer'},{'name': 'ModalHeader', 'selector': 'cds-modal-header, ibm-modal-header'},{'name': 'Notification', 'selector': 'cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification'},{'name': 'NumberComponent', 'selector': 'cds-number, ibm-number'},{'name': 'OverflowMenu', 'selector': 'cds-overflow-menu, ibm-overflow-menu'},{'name': 'OverflowMenuCustomPane', 'selector': 'cds-overflow-custom-menu-pane, ibm-overflow-custom-menu-pane'},{'name': 'OverflowMenuOption', 'selector': 'cds-overflow-menu-option, ibm-overflow-menu-option'},{'name': 'OverflowMenuPane', 'selector': 'cds-overflow-menu-pane, ibm-overflow-menu-pane'},{'name': 'Overlay', 'selector': 'cds-overlay, ibm-overlay'},{'name': 'Pagination', 'selector': 'cds-pagination, ibm-pagination'},{'name': 'PaginationNav', 'selector': 'cds-pagination-nav, ibm-pagination-navm'},{'name': 'PaginationNavItem', 'selector': 'cds-pagination-nav-item, ibm-pagination-nav-item'},{'name': 'PaginationOverflow', 'selector': 'cds-pagination-overflow, ibm-pagination-overflow'},{'name': 'Panel', 'selector': 'cds-panel, ibm-panel'},{'name': 'PasswordInputLabelComponent', 'selector': 'cds-password-label, ibm-password-label'},{'name': 'Placeholder', 'selector': 'cds-placeholder, ibm-placeholder'},{'name': 'PopoverContent', 'selector': 'cds-popover-content, ibm-popover-content'},{'name': 'ProgressBar', 'selector': 'cds-progress-bar, ibm-progress-bar'},{'name': 'ProgressIndicator', 'selector': 'cds-progress-indicator, ibm-progress-indicator'},{'name': 'Radio', 'selector': 'cds-radio, ibm-radio'},{'name': 'RadioGroup', 'selector': 'cds-radio-group, ibm-radio-group'},{'name': 'Search', 'selector': 'cds-search, ibm-search'},{'name': 'Select', 'selector': 'cds-select, ibm-select'},{'name': 'SelectionTile', 'selector': 'cds-selection-tile, ibm-selection-tile'},{'name': 'SideNav', 'selector': 'cds-sidenav, ibm-sidenav'},{'name': 'SideNavItem', 'selector': 'cds-sidenav-item, ibm-sidenav-item'},{'name': 'SideNavMenu', 'selector': 'cds-sidenav-menu, ibm-sidenav-menu'},{'name': 'SkeletonPlaceholder', 'selector': 'cds-skeleton-placeholder, ibm-skeleton-placeholder'},{'name': 'SkeletonText', 'selector': 'cds-skeleton-text, ibm-skeleton-text'},{'name': 'Slider', 'selector': 'cds-slider, ibm-slider'},{'name': 'StructuredList', 'selector': 'cds-structured-list, ibm-structured-list'},{'name': 'SwitcherList', 'selector': 'cds-switcher-list, ibm-switcher-list'},{'name': 'SwitcherListItem', 'selector': 'cds-switcher-list-item, ibm-switcher-list-item'},{'name': 'Tab', 'selector': 'cds-tab, ibm-tab'},{'name': 'TabHeaderGroup', 'selector': 'cds-tab-header-group, ibm-tab-header-group'},{'name': 'TabHeaders', 'selector': 'cds-tab-headers, ibm-tab-headers'},{'name': 'Table', 'selector': 'cds-table, ibm-table'},{'name': 'TableBody', 'selector': '[cdsTableBody], [ibmTableBody]'},{'name': 'TableCheckbox', 'selector': '[cdsTableCheckbox], [ibmTableCheckbox]'},{'name': 'TableContainer', 'selector': 'cds-table-container, ibm-table-container'},{'name': 'TableData', 'selector': '[cdsTableData], [ibmTableData]'},{'name': 'TableExpandButton', 'selector': '[cdsTableExpandButton], [ibmTableExpandButton]'},{'name': 'TableExpandedRow', 'selector': '[cdsTableExpandedRow], [ibmTableExpandedRow]'},{'name': 'TableHead', 'selector': '[cdsTableHead], [ibmTableHead]'},{'name': 'TableHeadCell', 'selector': '[cdsTableHeadCell], [ibmTableHeadCell]'},{'name': 'TableHeadCheckbox', 'selector': '[cdsTableHeadCheckbox], [ibmTableHeadCheckbox]'},{'name': 'TableHeader', 'selector': 'cds-table-header, ibm-table-header'},{'name': 'TableHeadExpand', 'selector': '[cdsTableHeadExpand], [ibmTableHeadExpand]'},{'name': 'TableRadio', 'selector': '[cdsTableRadio], [ibmTableRadio]'},{'name': 'TableRowComponent', 'selector': '[cdsTableRow], [ibmTableRow]'},{'name': 'TableToolbar', 'selector': 'cds-table-toolbar, ibm-table-toolbar'},{'name': 'TableToolbarActions', 'selector': 'cds-table-toolbar-actions, ibm-table-toolbar-actions'},{'name': 'TableToolbarContent', 'selector': 'cds-table-toolbar-content, ibm-table-toolbar-content'},{'name': 'TableToolbarSearch', 'selector': 'cds-table-toolbar-search, ibm-table-toolbar-search'},{'name': 'Tabs', 'selector': 'cds-tabs, ibm-tabs'},{'name': 'TabSkeleton', 'selector': 'cds-tabs-skeleton, ibm-tabs-skeleton'},{'name': 'Tag', 'selector': 'cds-tag, ibm-tag'},{'name': 'TagFilter', 'selector': 'cds-tag-filter, ibm-tag-filter'},{'name': 'TagOperationalComponent', 'selector': 'cds-tag-operational, ibm-tag-operational'},{'name': 'TagSelectableComponent', 'selector': 'cds-tag-selectable, ibm-tag-selectable'},{'name': 'TextareaLabelComponent', 'selector': 'cds-textarea-label, ibm-textarea-label'},{'name': 'TextInputLabelComponent', 'selector': 'cds-text-label, ibm-text-label'},{'name': 'Tile', 'selector': 'cds-tile, ibm-tile'},{'name': 'TileGroup', 'selector': 'cds-tile-group, ibm-tile-group'},{'name': 'TimePicker', 'selector': 'cds-timepicker, ibm-timepicker'},{'name': 'TimePickerSelect', 'selector': 'cds-timepicker-select, ibm-timepicker-select'},{'name': 'Toast', 'selector': 'cds-toast, ibm-toast'},{'name': 'Toggle', 'selector': 'cds-toggle, ibm-toggle'},{'name': 'Toggletip', 'selector': 'cds-toggletip, ibm-toggletip'},{'name': 'Tooltip', 'selector': 'cds-tooltip, ibm-tooltip'},{'name': 'TooltipDefinition', 'selector': 'cds-tooltip-definition, ibm-tooltip-definition'},{'name': 'TreeNodeComponent', 'selector': 'cds-tree-node'},{'name': 'TreeViewComponent', 'selector': 'cds-tree-view'}];
var DIRECTIVES = [{'name': 'AbstractDropdownView', 'selector': '[cdsAbstractDropdownView], [ibmAbstractDropdownView]'},{'name': 'ActionableButton', 'selector': '[cdsActionableButton], [ibmActionableButton]'},{'name': 'ActionableSubtitle', 'selector': '[cdsActionableSubtitle], [ibmActionableSubtitle]'},{'name': 'ActionableTitle', 'selector': '[cdsActionableTitle], [ibmActionableTitle]'},{'name': 'BaseModal', 'selector': '[cdsBaseModal], [ibmBaseModal]'},{'name': 'Button', 'selector': '[cdsButton], [ibmButton]'},{'name': 'ClickableTileIconDirective', 'selector': '[cdsClickableTileIcon], [ibmClickableTileIcon]'},{'name': 'ColumnDirective', 'selector': '[cdsCol], [ibmCol]'},{'name': 'ContentSwitcherOption', 'selector': '[cdsContentOption], [ibmContentOption]'},{'name': 'DialogDirective', 'selector': '[cdsDialog], [ibmDialog]'},{'name': 'ExpandableTileAboveFoldDirective', 'selector': '[cdsAboveFold], [ibmAboveFold]'},{'name': 'ExpandableTileBelowFoldDirective', 'selector': '[cdsBelowFold], [ibmBelowFold]'},{'name': 'ExpandedRowHover', 'selector': '[cdsExpandedRowHover], [ibmExpandedRowHover]'},{'name': 'GridDirective', 'selector': '[cdsGrid], [ibmGrid]'},{'name': 'IconDirective', 'selector': '[cdsIcon], [ibmIcon]'},{'name': 'LayerDirective', 'selector': '[cdsLayer], [ibmLayer]'},{'name': 'Link', 'selector': '[cdsLink], [ibmLink]'},{'name': 'LinkIconDirective', 'selector': '[ibmLinkIcon], [cdsLinkIcon]'},{'name': 'List', 'selector': '[cdsList], [ibmList]'},{'name': 'ListItemDirective', 'selector': '[cdsListItem], [ibmListItem]'},{'name': 'ModalContent', 'selector': '[cdsModalContent], [ibmModalContent]'},{'name': 'ModalContentText', 'selector': '[cdsModalContentText], [ibmModalContentText]'},{'name': 'ModalHeaderHeading', 'selector': '[cdsModalHeaderHeading], [ibmModalHeaderHeading]'},{'name': 'ModalHeaderLabel', 'selector': '[cdsModalHeaderLabel], [ibmModalHeaderLabel]'},{'name': 'NotificationSubtitle', 'selector': '[cdsNotificationSubtitle], [ibmNotificationSubtitle]'},{'name': 'NotificationTitle', 'selector': '[cdsNotificationTitle], [ibmNotificationTitle]'},{'name': 'OptGroup', 'selector': 'optgroup'},{'name': 'Option', 'selector': 'option'},{'name': 'OverflowMenuDirective', 'selector': '[cdsOverflowMenu], [ibmOverflowMenu]'},{'name': 'PasswordInput', 'selector': '[cdsPassword], [ibmPassword]'},{'name': 'PopoverContainer', 'selector': '[cdsPopover], [ibmPopover]'},{'name': 'RouterLinkExtendedDirective', 'selector': '[routerLink]'},{'name': 'RowDirective', 'selector': '[cdsRow], [ibmRow]'},{'name': 'ScrollableList', 'selector': '[cdsScrollableList], [ibmScrollableList]'},{'name': 'StackDirective', 'selector': '[cdsStack], [ibmStack]'},{'name': 'TabHeader', 'selector': '[cdsTabHeader], [ibmTabHeader]'},{'name': 'TableDirective', 'selector': '[cdsTable], [ibmTable]'},{'name': 'TableHeadCellLabel', 'selector': '[cdsTableHeadCellLabel], [ibmTableHeadCellLabel]'},{'name': 'TableHeaderDescription', 'selector': '[cdsTableHeaderDescription], [ibmTableHeaderDescription]'},{'name': 'TableHeaderTitle', 'selector': '[cdsTableHeaderTitle], [ibmTableHeaderTitle]'},{'name': 'TagIconDirective', 'selector': '[cdsTagIcon], [ibmTagIcon]'},{'name': 'TextArea', 'selector': '[cdsTextArea], [ibmTextArea]'},{'name': 'TextInput', 'selector': '[cdsText], [ibmText]'},{'name': 'ThemeDirective', 'selector': '[cdsTheme], [ibmTheme]'},{'name': 'ToastCaption', 'selector': '[cdsToastCaption], [ibmToastCaption]'},{'name': 'ToastSubtitle', 'selector': '[cdsToastSubtitle], [ibmToastSubtitle]'},{'name': 'ToastTitle', 'selector': '[cdsToastTitle], [ibmToastTitle]'},{'name': 'ToggletipAction', 'selector': '[cdsToggletipAction], [ibmToggletipAction]'},{'name': 'ToggletipButton', 'selector': '[cdsToggletipButton], [ibmToggletipButton]'},{'name': 'ToggletipContent', 'selector': '[cdsToggletipContent], [ibmToggletipContent]'},{'name': 'ToggletipLabel', 'selector': '[cdsToggletipLabel], [ibmToggletipLabel]'}];
var ACTUAL_COMPONENT = {'name': 'Slider'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<label class="dark-mode-switch">
<input type="checkbox">
<span class="slider">
<svg class="slider-icon" viewBox="0 0 24 24" fill="none" height="20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg">
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
</svg>
</span>
</label>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'Slider.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script>
$darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input');
checkToggle(darkModeState);
if ($darkModeToggleSwitchers.length > 0) {
for (var i = 0; i < $darkModeToggleSwitchers.length; i++) {
$darkModeToggleSwitchers[i].addEventListener('change', function (event) {
darkModeState = !darkModeState;
toggleDarkMode(darkModeState);
});
}
}
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<script src="../js/menu-wc.js" defer></script>
<script nomodule src="../js/menu-wc_es5.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
<footer class="carbon">
<dds-footer-container key="footer" disable-locale-button="true" size="micro" />
</footer>
<script
key="8"
type="module"
src="https://1.www.s81c.com/common/carbon-for-ibm-dotcom/tag/v1/latest/footer.min.js">
</script>
<!-- Storybook override -->
<script>
document.title = "Carbon Components Angular";
</script>
<script
src="//1.www.s81c.com/common/stats/ibm-common.js"
type="text/javascript"
async="async">
</script>
</body>
</html>