Viewing File: /home/ubuntu/voice-assistant-frontend/node_modules/toolcool-range-slider/index.d.ts

declare module 'toolcool-range-slider' {

  // ------- plugins -------------------
  export interface IBindingLabelsPlugin extends RangeSlider {
    valueLabel: string;
    [name: `value${number}Label`]: string;
  }
  export interface IGeneratedLabelsPlugin extends RangeSlider {
    generateLabels: boolean;

    /** @deprecated */
    textColor: string;

    generateLabelsTextColor: string;

    /** @deprecated */
    units: string;

    generateLabelsUnits: string;

    generateLabelsFormat: (value: string | number | undefined) => string;
  }
  export interface IMovingTooltipPlugin extends RangeSlider{
    movingTooltip: boolean;
    distanceToPointer: number;
    tooltipWidth: number;
    tooltipHeight: number;
    tooltipBg: string;
    tooltipTextColor: string;
    tooltipUnits: string;
    tooltipUnitType: string;
  }
  export interface IOriginCenterPlugin extends RangeSlider{
    originCenterEnabled: boolean;
  }
  export interface IMarksPlugin extends RangeSlider{
    marksEnabled: boolean;
    marksCount: number;
    marksValuesCount: number;
    marksColor: string;
    markValuesColor: string;
  }

  // ------- range slider UI -----------
  export interface IStyles {
    setStyle: (key: string, value: string | null | undefined, index: number) => void;
    getStyle: (key: string, index: number) => string | undefined;
    theme: string | null;
    readonly pointerShapes: (string | null)[];
    setPointerShape: (index: number, value: string | null) => void;
  }
  export interface ISlider {
    readonly pointers: IPointer[];
    readonly styles: IStyles | null;
    readonly pluginsManager: IPluginsManager | null;
    pointersOverlap: boolean;
    pointersMinDistance: number;
    pointersMaxDistance: number;
    rangeDragging: boolean;
    readonly min: number | string;
    readonly max: number | string;
    readonly step: TStep;
    readonly data: TData;
    type: string;
    rightToLeft: boolean;
    bottomToTop: boolean;
    disabled: boolean;
    keyboardDisabled: boolean;
    mousewheelDisabled: boolean;
    round: number;
    animateOnClick: string | undefined | boolean;
    getAriaLabel: (index: number) => (string | undefined);
    setAriaLabel: (index: number, ariaLabel: string | undefined) => void;
    setMin: (value: number | string | undefined | null) => void;
    setMax: (value: number | string | undefined | null) => void;
    setValue: (value: number | string | undefined | null, index: number) => void;
    setStep: (value: TStep | string) => void;
    setData: (value: TData | string | null | number) => void;
    getTextValue: (_percent: number | undefined) => undefined | string | number;
    addPointer: (value: number | string | undefined | null) => number;
    removePointer: () => number;
    destroy: () => void;
  }
  export interface IPointer {
    readonly percent: number;
    readonly $pointer: HTMLElement;
    updatePosition: (percent: number, leftWall: number | undefined, rightWall: number | undefined, type: string, rightToLeft: boolean, bottomToTop: boolean) => void;
    disabled: boolean;
    isClicked: ($target: HTMLElement) => boolean;
    setCallbacks: (arrowLeft: (pointerIndex: number) => void, arrowRight: (pointerIndex: number) => void, arrowUp: (pointerIndex: number) => void, arrowDown: (pointerIndex: number) => void) => void;
    setAttr: (key: string, value: string | null | undefined) => void;
    getAttr: (key: string) => string | null;
    destroy: () => void;
  }
  export interface IPanelFill {
    updatePosition: (type: string, percents: (number | undefined)[], rightToLeft: boolean, bottomToTop: boolean) => void;
  }

  // -------- plugin system ------------
  export interface IPluginUpdateData {
    percents: number[];
    values: (string | number | undefined)[];
    $pointers: HTMLElement[],
    min: number;
    max: number;
    round: number;
    step: TStep;
    data: TData;
    type: string;
    textMin: number | string | undefined;
    textMax: number | string | undefined;
    rightToLeft: boolean;
    bottomToTop: boolean;
    pointersOverlap: boolean;
    pointersMinDistance: number;
    pointersMaxDistance: number;
    rangeDragging: boolean;
    disabled: boolean;
    keyboardDisabled: boolean;
  }
  export interface IPluginSetters {
    setValues: (values: (string | number | undefined)[]) => void;
    setMin: (min: number | string | undefined | null) => void;
    setMax: (max: number | string | undefined | null) => void;
    setStep: (step: TStep) => void;
    setRound: (val: number) => void;
    setType: (val: string) => void;
    setData: (val: TData) => void;
    setPointersOverlap: (val: boolean) => void;
    setPointersMinDistance: (val: number) => void;
    setPointersMaxDistance: (val: number) => void;
    setRangeDragging: (val: boolean) => void;
    setDisabled: (val: boolean) => void;
    setKeyboardDisabled: (val: boolean) => void;
    setRightToLeft: (val: boolean) => void;
    setBottomToTop: (val: boolean) => void;
  }
  export interface IPluginGetters {
    getPercents: () => number[];
    getValues: () => (string | number | undefined)[];
    getPointerElements: () => HTMLElement[];
    getMin: () => number;
    getMax: () => number;
    getTextMin: () => string | number;
    getTextMax: () => string | number;
    getStep: () => TStep;
    getData: () => TData;
    getType: () => string;
    getRound: () => number;
    isRightToLeft: () => boolean;
    isBottomToTop: () => boolean;
    isDisabled: () => boolean;
    isKeyboardDisabled: () => boolean;
    isPointersOverlap: () => boolean;
    isRangeDraggingEnabled: () => boolean;
    getPointersMinDistance: () => number;
    getPointersMaxDistance: () => number;
  }
  export interface IPlugin {
    readonly name: string;
    init?: ($component: HTMLElement, requestUpdate: () => void, setters: IPluginSetters, getters: IPluginGetters) => void;
    update?: (data: IPluginUpdateData) => void;
    onAttrChange?: (attrName: string, newValue: string) => void;
    gettersAndSetters?: ({
      name: PropertyKey;
      attributes: PropertyDescriptor & ThisType<any>;
    })[];
    css?: string;
    destroy?: () => void;
  }
  export interface IPluginsManager {
    init: () => void;
    update: (data: IPluginUpdateData) => void;
    onAttrChange: (attrName: string, newValue: string) => void;
    destroy: () => void;
  }

  // --------- initialization -----------
  export type TStep = ((value: number | string, percent: number) => number) | number | undefined | null;
  export type TData = (string | number)[] | undefined;
  export type DynamicFields = {
    value: string | number | undefined;
    [name: `value${number}`]: string | number | undefined;
    ariaLabel: string | number | undefined;
    [name: `ariaLabel${number}`]: string | null | undefined;
    pointerShape: string | number | undefined;
    [name: `pointerShape${number}`]: string | null;
    pointerDisabled: string | number | undefined;
    [name: `pointer${number}Disabled`]: boolean;
    sliderWidth: string | number | null | undefined;
    sliderHeight: string | number | null | undefined;
    sliderRadius: string | number | null | undefined;
    sliderBg: string | null | undefined;
    sliderBgHover: string | null | undefined;
    sliderBgFill: string | null | undefined;
    pointerWidth: string | number | null | undefined;
    [name: `pointer${number}Width`]: string | number | undefined | null;
    pointerHeight: string | number | null | undefined;
    [name: `pointer${number}Height`]: string | number | undefined | null;
    pointerRadius: string | number | null | undefined;
    [name: `pointer${number}Radius`]: string | number | undefined | null;
    pointerBg: string | null | undefined;
    [name: `pointer${number}Bg`]: string | undefined | null;
    pointerBgHover: string | null | undefined;
    [name: `pointer${number}BgHover`]: string | undefined | null;
    pointerBgFocus: string | null | undefined;
    [name: `pointer${number}BgFocus`]: string | undefined | null;
    pointerShadow: string | null | undefined;
    [name: `pointer${number}Shadow`]: string | undefined | null;
    pointerShadowHover: string | null | undefined;
    [name: `pointer${number}ShadowHover`]: string | undefined | null;
    pointerShadowFocus: string | null | undefined;
    [name: `pointer${number}ShadowFocus`]: string | undefined | null;
    pointerBorder: string | number | null | undefined;
    [name: `pointer${number}Border`]: string | number | undefined | null;
    pointerBorderHover: string | number | null | undefined;
    [name: `pointer${number}BorderHover`]: string | number | undefined | null;
    pointerBorderFocus: string | number | null | undefined;
    [name: `pointer${number}BorderFocus`]: string | number | undefined | null;
  };

  class TCRangeSlider extends HTMLElement {
    slider: ISlider | undefined;
    private _externalCSSList;
    private _observer;
    set step(_step: TStep);
    get step(): TStep;
    set disabled(_disabled: boolean);
    get disabled(): boolean;
    set data(_data: TData);
    get data(): TData;
    set min(_min: number | string | undefined | null);
    get min(): number | string | undefined | null;
    set max(_max: number | string | undefined | null);
    get max(): number | string | undefined | null;
    set round(_round: number);
    get round(): number;
    set type(_type: string | undefined);
    get type(): string | undefined;
    set pointersOverlap(_pointersOverlap: boolean);
    get pointersOverlap(): boolean;
    set pointersMinDistance(_pointersMinDistance: number);
    get pointersMinDistance(): number;
    set pointersMaxDistance(_pointersMaxDistance: number);
    get pointersMaxDistance(): number;
    set theme(_theme: string | null);
    get theme(): string | null;
    set rtl(_rtl: boolean);
    get rtl(): boolean;
    set btt(_btt: boolean);
    get btt(): boolean;
    set keyboardDisabled(_keyboardDisabled: boolean);
    get keyboardDisabled(): boolean;
    set animateOnClick(_animateOnClick: string | boolean | undefined);
    get animateOnClick(): string | boolean | undefined;
    get rangeDragging(): boolean | string | undefined | null;
    set rangeDragging(_rangeDragging: boolean | string | undefined | null);
    get externalCSSList(): string[] | null;
    addPointer(value: number | string | undefined): void;
    removePointer(): void;
    addCSS(css: string): void;
    constructor();
    /**
     * when the custom element connected to DOM
     */
    connectedCallback(): void;
    /**
     * when the custom element disconnected from DOM
     */
    disconnectedCallback(): void;
  }

  type RangeSlider = TCRangeSlider & HTMLElement & DynamicFields;

  global {
    interface Window {
      tcRangeSliderPlugins: (() => IPlugin)[];
      tcRangeSliderObservedAttr: string[];
      tcRangeSlider: typeof TCRangeSlider;
    }

    namespace JSX {
      interface IntrinsicElements {
        // https://github.com/Microsoft/TypeScript/issues/15449#issuecomment-385959396
        // https://stackoverflow.com/questions/55424417/typescript-error-property-does-not-exist-on-type-jsx-intrinsicelements-when
        'tc-range-slider': React.DetailedHTMLProps<React.HTMLAttributes<RangeSlider>, RangeSlider>;
      }
    }
  }
}
Back to Directory File Manager