// Generated by dts-bundle v0.7.3 // Dependencies for this module: // ../../@material/base/types // ../../@material/base/component // ../../@material/base/foundation declare module '@material/slider' { /** * @license * Copyright 2020 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ export * from '@material/slider/adapter'; export * from '@material/slider/component'; export * from '@material/slider/constants'; export * from '@material/slider/foundation'; export * from '@material/slider/types'; } declare module '@material/slider/adapter' { /** * @license * Copyright 2020 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ import { EventType, SpecificEventListener } from '@material/base/types'; import { Thumb, TickMark } from '@material/slider/types'; /** * Defines the shape of the adapter expected by the foundation. * Implement this adapter for your framework of choice to delegate updates to * the component in your framework of choice. See architecture documentation * for more details. * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md */ export interface MDCSliderAdapter { /** * @return Returns true if the slider root element has the given class. */ hasClass(className: string): boolean; /** * Adds the given class to the slider root element. */ addClass(className: string): void; /** * Removes the given class from the slider root element. */ removeClass(className: string): void; /** * @return Returns the given attribute value on the slider root element. */ getAttribute(attribute: string): string | null; /** * Adds the class to the given thumb element. */ addThumbClass(className: string, thumb: Thumb): void; /** * Removes the class from the given thumb element. */ removeThumbClass(className: string, thumb: Thumb): void; /** * - If thumb is `Thumb.START`, returns the value property on the start input * (for range slider variant). * - If thumb is `Thumb.END`, returns the value property on the end input (or * only input for single point slider). */ getInputValue(thumb: Thumb): string; /** * - If thumb is `Thumb.START`, sets the value property on the start input * (for range slider variant). * - If thumb is `Thumb.END`, sets the value property on the end input (or * only input for single point slider). */ setInputValue(value: string, thumb: Thumb): void; /** * - If thumb is `Thumb.START`, returns the attribute value on the start input * (for range slider variant). * - If thumb is `Thumb.END`, returns the attribute value on the end input (or * only input for single point slider). */ getInputAttribute(attribute: string, thumb: Thumb): string | null; /** * - If thumb is `Thumb.START`, sets the attribute on the start input * (for range slider variant). * - If thumb is `Thumb.END`, sets the attribute on the end input (or * only input for single point slider). */ setInputAttribute(attribute: string, value: string, thumb: Thumb): void; /** * - If thumb is `Thumb.START`, removes the attribute on the start input * (for range slider variant). * - If thumb is `Thumb.END`, removes the attribute on the end input (or * only input for single point slider). */ removeInputAttribute(attribute: string, thumb: Thumb): void; /** * - If thumb is `Thumb.START`, focuses start input (range slider variant). * - If thumb is `Thumb.END`, focuses end input (or only input for single * point slider). */ focusInput(thumb: Thumb): void; /** * @return Returns true if the given input is focused. */ isInputFocused(thumb: Thumb): boolean; /** * @return Returns the width of the given thumb knob. */ getThumbKnobWidth(thumb: Thumb): number; /** * @return Returns the bounding client rect of the given thumb. */ getThumbBoundingClientRect(thumb: Thumb): ClientRect; /** * @return Returns the bounding client rect for the slider root element. */ getBoundingClientRect(): ClientRect; /** * @return Returns true if the root element is RTL, otherwise false */ isRTL(): boolean; /** * Sets a style property of the thumb element to the passed value. * - If thumb is `Thumb.START`, sets style on the start thumb (for * range slider variant). * - If thumb is `Thumb.END`, sets style on the end thumb (or only thumb * for single point slider). */ setThumbStyleProperty(propertyName: string, value: string, thumb: Thumb): void; /** * Removes the given style property from the thumb element. * - If thumb is `Thumb.START`, removes style from the start thumb (for * range slider variant). * - If thumb is `Thumb.END`, removes style from the end thumb (or only thumb * for single point slider). */ removeThumbStyleProperty(propertyName: string, thumb: Thumb): void; /** * Sets a style property of the active track element to the passed value. */ setTrackActiveStyleProperty(propertyName: string, value: string): void; /** * Removes the given style property from the active track element. */ removeTrackActiveStyleProperty(propertyName: string): void; /** * Sets value indicator text based on the given value. * - If thumb is `Thumb.START`, updates value indicator on start thumb * (for range slider variant). * - If thumb is `Thumb.END`, updates value indicator on end thumb (or * only thumb for single point slider). */ setValueIndicatorText(value: number, thumb: Thumb): void; /** * Returns a function that maps the slider value to the value of the * `aria-valuetext` attribute on the thumb element. If null, the * `aria-valuetext` attribute is unchanged when the value changes. */ getValueToAriaValueTextFn(): ((value: number) => string) | null; /** * Updates tick marks container element with tick mark elements and their * active/inactive classes, based on the given mappings: * - TickMark.ACTIVE => `cssClasses.TICK_MARK_ACTIVE` * - TickMark.INACTIVE => `cssClasses.TICK_MARK_INACTIVE` */ updateTickMarks(tickMarks: TickMark[]): void; /** * Sets pointer capture on the slider root. * https://developer.mozilla.org/en-US/docs/Web/API/Element/setPointerCapture */ setPointerCapture(pointerId: number): void; /** * Emits a `change` event from the slider root, indicating that the value * has been changed and committed on the given thumb, from a user event. * Mirrors the native `change` event: * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event */ emitChangeEvent(value: number, thumb: Thumb): void; /** * Emits an `input` event from the slider root, indicating that the value * has been changed on the given thumb, from a user event. * Mirrors the native `input` event: * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event */ emitInputEvent(value: number, thumb: Thumb): void; /** * Emits an event on drag start, containing the current value on the * thumb being dragged. */ emitDragStartEvent(value: number, thumb: Thumb): void; /** * Emits an event on drag end, containing the final value on the * thumb that was dragged. */ emitDragEndEvent(value: number, thumb: Thumb): void; /** * Registers an event listener on the root element. */ registerEventHandler(evtType: K, handler: SpecificEventListener): void; /** * Deregisters an event listener on the root element. */ deregisterEventHandler(evtType: K, handler: SpecificEventListener): void; /** * Registers an event listener on the given thumb element. */ registerThumbEventHandler(thumb: Thumb, evtType: K, handler: SpecificEventListener): void; /** * Deregisters an event listener on the given thumb element. */ deregisterThumbEventHandler(thumb: Thumb, evtType: K, handler: SpecificEventListener): void; /** * Registers an event listener on the given input element. */ registerInputEventHandler(thumb: Thumb, evtType: K, handler: SpecificEventListener): void; /** * Deregisters an event listener on the given input element. */ deregisterInputEventHandler(thumb: Thumb, evtType: K, handler: SpecificEventListener): void; /** * Registers an event listener on the body element. */ registerBodyEventHandler(evtType: K, handler: SpecificEventListener): void; /** * Deregisters an event listener on the body element. */ deregisterBodyEventHandler(evtType: K, handler: SpecificEventListener): void; /** * Registers an event listener on the window. */ registerWindowEventHandler(evtType: K, handler: SpecificEventListener): void; /** * Deregisters an event listener on the window. */ deregisterWindowEventHandler(evtType: K, handler: SpecificEventListener): void; } } declare module '@material/slider/component' { /** * @license * Copyright 2020 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ import { MDCComponent } from '@material/base/component'; import { MDCSliderFoundation } from '@material/slider/foundation'; /** Vanilla JS implementation of slider component. */ export class MDCSlider extends MDCComponent { static attachTo(root: Element, options?: { skipInitialUIUpdate?: boolean; }): MDCSlider; root: HTMLElement; getDefaultFoundation(): MDCSliderFoundation; /** * Initializes component, with the following options: * - `skipInitialUIUpdate`: Whether to skip updating the UI when initially * syncing with the DOM. This should be enabled when the slider position * is set before component initialization. */ initialize({ skipInitialUIUpdate }?: { skipInitialUIUpdate?: boolean; }): void; initialSyncWithDOM(): void; /** Redraws UI based on DOM (e.g. element dimensions, RTL). */ layout(): void; getValueStart(): number; setValueStart(valueStart: number): void; getValue(): number; setValue(value: number): void; /** @return Slider disabled state. */ getDisabled(): boolean; /** Sets slider disabled state. */ setDisabled(disabled: boolean): void; /** * Sets a function that maps the slider value to the value of the * `aria-valuetext` attribute on the thumb element. */ setValueToAriaValueTextFn(mapFn: ((value: number) => string) | null): void; } } declare module '@material/slider/constants' { /** Slider element classes. */ export const cssClasses: { DISABLED: string; DISCRETE: string; INPUT: string; RANGE: string; THUMB: string; THUMB_FOCUSED: string; THUMB_KNOB: string; THUMB_TOP: string; THUMB_WITH_INDICATOR: string; TICK_MARKS: string; TICK_MARKS_CONTAINER: string; TICK_MARK_ACTIVE: string; TICK_MARK_INACTIVE: string; TRACK: string; TRACK_ACTIVE: string; VALUE_INDICATOR_TEXT: string; }; /** Slider numbers. */ export const numbers: { STEP_SIZE: number; THUMB_UPDATE_MIN_PX: number; }; /** Slider attributes. */ export const attributes: { ARIA_VALUETEXT: string; INPUT_DISABLED: string; INPUT_MIN: string; INPUT_MAX: string; INPUT_VALUE: string; INPUT_STEP: string; }; /** Slider events. */ export const events: { CHANGE: string; INPUT: string; }; } declare module '@material/slider/foundation' { /** * @license * Copyright 2020 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ import { MDCFoundation } from '@material/base/foundation'; import { MDCSliderAdapter } from '@material/slider/adapter'; import { Thumb } from '@material/slider/types'; /** * Foundation class for slider. Responsibilities include: * - Updating slider values (internal state and DOM updates) based on client * 'x' position. * - Updating DOM after slider property updates (e.g. min, max). */ export class MDCSliderFoundation extends MDCFoundation { static SUPPORTS_POINTER_EVENTS: boolean; constructor(adapter?: Partial); static get defaultAdapter(): MDCSliderAdapter; init(): void; destroy(): void; getMin(): number; getMax(): number; /** * - For single point sliders, returns the thumb value. * - For range (two-thumb) sliders, returns the end thumb's value. */ getValue(): number; /** * - For single point sliders, sets the thumb value. * - For range (two-thumb) sliders, sets the end thumb's value. */ setValue(value: number): void; /** * Only applicable for range sliders. * @return The start thumb's value. */ getValueStart(): number; /** * Only applicable for range sliders. Sets the start thumb's value. */ setValueStart(valueStart: number): void; getStep(): number; getDisabled(): boolean; /** * Sets disabled state, including updating styles and thumb tabindex. */ setDisabled(disabled: boolean): void; /** @return Whether the slider is a range slider. */ getIsRange(): boolean; /** * - Syncs slider boundingClientRect with the current DOM. * - Updates UI based on internal state. */ layout({ skipUpdateUI }?: { skipUpdateUI?: boolean; }): void; /** Handles resize events on the window. */ handleResize(): void; /** * Handles pointer down events on the slider root element. */ handleDown(event: PointerEvent | MouseEvent | TouchEvent): void; /** * Handles pointer move events on the slider root element. */ handleMove(event: PointerEvent | MouseEvent | TouchEvent): void; /** * Handles pointer up events on the slider root element. */ handleUp(): void; /** * For range, discrete slider, shows the value indicator on both thumbs. */ handleThumbMouseenter(): void; /** * For range, discrete slider, hides the value indicator on both thumbs. */ handleThumbMouseleave(): void; handleMousedownOrTouchstart(event: MouseEvent | TouchEvent): void; handlePointerdown(event: PointerEvent): void; /** * Handles input `change` event by setting internal slider value to match * input's new value. */ handleInputChange(thumb: Thumb): void; /** Shows activated state and value indicator on thumb(s). */ handleInputFocus(thumb: Thumb): void; /** Removes activated state and value indicator from thumb(s). */ handleInputBlur(thumb: Thumb): void; } } declare module '@material/slider/types' { /** Tick mark enum, for discrete sliders. */ export enum TickMark { ACTIVE = 0, INACTIVE = 1 } /** * Thumb types: range slider has two thumbs (START, END) whereas single point * slider only has one thumb (END). */ export enum Thumb { START = 1, END = 2 } /** Interface for `detail` of slider custom change and input events. */ export interface MDCSliderChangeEventDetail { value: number; thumb: Thumb; } }