Guest User

Untitled

a guest
Aug 16th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.28 KB | None | 0 0
  1. declare class Popper {
  2. static modifiers: (Popper.BaseModifier & { name: string })[];
  3. static placements: Popper.Placement[];
  4. static Defaults: Popper.PopperOptions;
  5.  
  6. options: Popper.PopperOptions;
  7.  
  8. constructor(reference: Element | Popper.ReferenceObject, popper: Element, options?: Popper.PopperOptions);
  9.  
  10. destroy(): void;
  11. update(): void;
  12. scheduleUpdate(): void;
  13. enableEventListeners(): void;
  14. disableEventListeners(): void;
  15. }
  16.  
  17. declare namespace Popper {
  18. export type Position = 'top' | 'right' | 'bottom' | 'left';
  19.  
  20. export type Placement = 'auto-start'
  21. | 'auto'
  22. | 'auto-end'
  23. | 'top-start'
  24. | 'top'
  25. | 'top-end'
  26. | 'right-start'
  27. | 'right'
  28. | 'right-end'
  29. | 'bottom-end'
  30. | 'bottom'
  31. | 'bottom-start'
  32. | 'left-end'
  33. | 'left'
  34. | 'left-start';
  35.  
  36. export type Boundary = 'scrollParent' | 'viewport' | 'window';
  37.  
  38. export type Behavior = 'flip' | 'clockwise' | 'counterclockwise';
  39.  
  40. export type ModifierFn = (data: Data, options: Object) => Data;
  41.  
  42. export interface BaseModifier {
  43. order?: number;
  44. enabled?: boolean;
  45. fn?: ModifierFn;
  46. }
  47.  
  48. export interface Modifiers {
  49. shift?: BaseModifier;
  50. offset?: BaseModifier & {
  51. offset?: number | string,
  52. };
  53. preventOverflow?: BaseModifier & {
  54. priority?: Position[],
  55. padding?: number,
  56. boundariesElement?: Boundary | Element,
  57. escapeWithReference?: boolean
  58. };
  59. keepTogether?: BaseModifier;
  60. arrow?: BaseModifier & {
  61. element?: string | Element,
  62. };
  63. flip?: BaseModifier & {
  64. behavior?: Behavior | Position[],
  65. padding?: number,
  66. boundariesElement?: Boundary | Element,
  67. };
  68. inner?: BaseModifier;
  69. hide?: BaseModifier;
  70. applyStyle?: BaseModifier & {
  71. onLoad?: Function,
  72. gpuAcceleration?: boolean,
  73. };
  74. computeStyle?: BaseModifier & {
  75. gpuAcceleration?: boolean;
  76. x?: 'bottom' | 'top',
  77. y?: 'left' | 'right'
  78. };
  79.  
  80. [name: string]: (BaseModifier & Record<string, any>) | undefined;
  81. }
  82.  
  83. export interface Offset {
  84. top: number;
  85. left: number;
  86. width: number;
  87. height: number;
  88. }
  89.  
  90. export interface Data {
  91. instance: Popper;
  92. placement: Placement;
  93. originalPlacement: Placement;
  94. flipped: boolean;
  95. hide: boolean;
  96. arrowElement: Element;
  97. styles: CSSStyleDeclaration;
  98. boundaries: Object;
  99. offsets: {
  100. popper: Offset,
  101. reference: Offset,
  102. arrow: {
  103. top: number,
  104. left: number,
  105. },
  106. };
  107. }
  108.  
  109. export interface PopperOptions {
  110. placement?: Placement;
  111. positionFixed?: boolean;
  112. eventsEnabled?: boolean;
  113. modifiers?: Modifiers;
  114. removeOnDestroy?: boolean;
  115.  
  116. onCreate?(data: Data): void;
  117.  
  118. onUpdate?(data: Data): void;
  119. }
  120.  
  121. export interface ReferenceObject {
  122. clientHeight: number;
  123. clientWidth: number;
  124.  
  125. getBoundingClientRect(): ClientRect;
  126. }
  127. }
  128.  
  129. declare module "popper.js" {
  130. export = Popper;
  131. }
Add Comment
Please, Sign In to add comment