nouislider.d.ts 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. interface CssClasses {
  2. target: string;
  3. base: string;
  4. origin: string;
  5. handle: string;
  6. handleLower: string;
  7. handleUpper: string;
  8. touchArea: string;
  9. horizontal: string;
  10. vertical: string;
  11. background: string;
  12. connect: string;
  13. connects: string;
  14. ltr: string;
  15. rtl: string;
  16. textDirectionLtr: string;
  17. textDirectionRtl: string;
  18. draggable: string;
  19. drag: string;
  20. tap: string;
  21. active: string;
  22. tooltip: string;
  23. pips: string;
  24. pipsHorizontal: string;
  25. pipsVertical: string;
  26. marker: string;
  27. markerHorizontal: string;
  28. markerVertical: string;
  29. markerNormal: string;
  30. markerLarge: string;
  31. markerSub: string;
  32. value: string;
  33. valueHorizontal: string;
  34. valueVertical: string;
  35. valueNormal: string;
  36. valueLarge: string;
  37. valueSub: string;
  38. }
  39. export interface PartialFormatter {
  40. to: (value: number) => string | number;
  41. from?: (value: string) => number | false;
  42. }
  43. export interface Formatter extends PartialFormatter {
  44. from: (value: string) => number | false;
  45. }
  46. export declare enum PipsMode {
  47. Range = "range",
  48. Steps = "steps",
  49. Positions = "positions",
  50. Count = "count",
  51. Values = "values"
  52. }
  53. export declare enum PipsType {
  54. None = -1,
  55. NoValue = 0,
  56. LargeValue = 1,
  57. SmallValue = 2
  58. }
  59. declare type WrappedSubRange = [number] | [number, number];
  60. declare type SubRange = number | WrappedSubRange;
  61. interface Range {
  62. min: SubRange;
  63. max: SubRange;
  64. [key: `${number}%`]: SubRange;
  65. }
  66. interface BasePips {
  67. mode: PipsMode;
  68. density?: number;
  69. filter?: PipsFilter;
  70. format?: PartialFormatter;
  71. }
  72. interface PositionsPips extends BasePips {
  73. mode: PipsMode.Positions;
  74. values: number[];
  75. stepped?: boolean;
  76. }
  77. interface ValuesPips extends BasePips {
  78. mode: PipsMode.Values;
  79. values: number[];
  80. stepped?: boolean;
  81. }
  82. interface CountPips extends BasePips {
  83. mode: PipsMode.Count;
  84. values: number;
  85. stepped?: boolean;
  86. }
  87. interface StepsPips extends BasePips {
  88. mode: PipsMode.Steps;
  89. }
  90. interface RangePips extends BasePips {
  91. mode: PipsMode.Range;
  92. }
  93. declare type Pips = PositionsPips | ValuesPips | CountPips | StepsPips | RangePips;
  94. declare type StartValues = string | number | (string | number)[];
  95. declare type HandleAttributes = {
  96. [key: string]: string;
  97. };
  98. interface UpdatableOptions {
  99. range?: Range;
  100. start?: StartValues;
  101. margin?: number;
  102. limit?: number;
  103. padding?: number | number[];
  104. snap?: boolean;
  105. step?: number;
  106. pips?: Pips;
  107. format?: Formatter;
  108. tooltips?: boolean | PartialFormatter | (boolean | PartialFormatter)[];
  109. animate?: boolean;
  110. }
  111. export interface Options extends UpdatableOptions {
  112. range: Range;
  113. connect?: "lower" | "upper" | boolean | boolean[];
  114. orientation?: "vertical" | "horizontal";
  115. direction?: "ltr" | "rtl";
  116. behaviour?: string;
  117. keyboardSupport?: boolean;
  118. keyboardPageMultiplier?: number;
  119. keyboardMultiplier?: number;
  120. keyboardDefaultStep?: number;
  121. documentElement?: HTMLElement;
  122. cssPrefix?: string;
  123. cssClasses?: CssClasses;
  124. ariaFormat?: PartialFormatter;
  125. animationDuration?: number;
  126. handleAttributes?: HandleAttributes[];
  127. }
  128. export interface API {
  129. destroy: () => void;
  130. steps: () => NextStepsForHandle[];
  131. on: (eventName: string, callback: EventCallback) => void;
  132. off: (eventName: string) => void;
  133. get: (unencoded?: boolean) => GetResult;
  134. set: (input: number | string | (number | string)[], fireSetEvent?: boolean, exactInput?: boolean) => void;
  135. setHandle: (handleNumber: number, value: number | string, fireSetEvent?: boolean, exactInput?: boolean) => void;
  136. reset: (fireSetEvent?: boolean) => void;
  137. disable: (handleNumber?: number) => void;
  138. enable: (handleNumber?: number) => void;
  139. options: Options;
  140. updateOptions: (optionsToUpdate: UpdatableOptions, fireSetEvent: boolean) => void;
  141. target: HTMLElement;
  142. removePips: () => void;
  143. removeTooltips: () => void;
  144. getTooltips: () => {
  145. [handleNumber: number]: HTMLElement | false;
  146. };
  147. getOrigins: () => {
  148. [handleNumber: number]: HTMLElement;
  149. };
  150. pips: (grid: Pips) => HTMLElement;
  151. }
  152. interface TargetElement extends HTMLElement {
  153. noUiSlider?: API;
  154. }
  155. interface NearByStep {
  156. startValue: number;
  157. step: number | false;
  158. highestStep: number;
  159. }
  160. interface NearBySteps {
  161. stepBefore: NearByStep;
  162. thisStep: NearByStep;
  163. stepAfter: NearByStep;
  164. }
  165. declare type GetResult = number | string | (string | number)[];
  166. declare type NextStepsForHandle = [number | false | null, number | false | null];
  167. declare type PipsFilter = (value: number, type: PipsType) => PipsType;
  168. declare type EventCallback = (this: API, values: (number | string)[], handleNumber: number, unencoded: number[], tap: boolean, locations: number[], slider: API) => void;
  169. declare class Spectrum {
  170. xPct: number[];
  171. xVal: number[];
  172. xSteps: (number | false)[];
  173. xNumSteps: (number | false)[];
  174. protected xHighestCompleteStep: number[];
  175. protected snap: boolean;
  176. constructor(entry: Range, snap: boolean, singleStep: number);
  177. getDistance(value: number): number[];
  178. getAbsoluteDistance(value: number, distances: number[] | null, direction: boolean): number;
  179. toStepping(value: number): number;
  180. fromStepping(value: number): number;
  181. getStep(value: number): number;
  182. getDefaultStep(value: number, isDown: boolean, size: number): number;
  183. getNearbySteps(value: number): NearBySteps;
  184. countStepDecimals(): number;
  185. hasNoSize(): boolean;
  186. convert(value: number): number;
  187. private handleEntryPoint;
  188. private handleStepPoint;
  189. }
  190. declare const cssClasses: CssClasses;
  191. declare function initialize(target: TargetElement, originalOptions: Options): API;
  192. export { TargetElement as target };
  193. export { initialize as create };
  194. export { cssClasses };
  195. declare const _default: {
  196. __spectrum: typeof Spectrum;
  197. cssClasses: CssClasses;
  198. create: typeof initialize;
  199. };
  200. export default _default;