Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo-mod-jslibs-dist.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'popperjs/package/lib/enums.js.flow')
-rw-r--r--popperjs/package/lib/enums.js.flow91
1 files changed, 91 insertions, 0 deletions
diff --git a/popperjs/package/lib/enums.js.flow b/popperjs/package/lib/enums.js.flow
new file mode 100644
index 0000000..256f26b
--- /dev/null
+++ b/popperjs/package/lib/enums.js.flow
@@ -0,0 +1,91 @@
+// @flow
+export const top: 'top' = 'top';
+export const bottom: 'bottom' = 'bottom';
+export const right: 'right' = 'right';
+export const left: 'left' = 'left';
+export const auto: 'auto' = 'auto';
+export type BasePlacement =
+ | typeof top
+ | typeof bottom
+ | typeof right
+ | typeof left;
+export const basePlacements: Array<BasePlacement> = [top, bottom, right, left];
+
+export const start: 'start' = 'start';
+export const end: 'end' = 'end';
+export type Variation = typeof start | typeof end;
+
+export const clippingParents: 'clippingParents' = 'clippingParents';
+export const viewport: 'viewport' = 'viewport';
+export type Boundary = Element | Array<Element> | typeof clippingParents;
+export type RootBoundary = typeof viewport | 'document';
+
+export const popper: 'popper' = 'popper';
+export const reference: 'reference' = 'reference';
+export type Context = typeof popper | typeof reference;
+
+export type VariationPlacement =
+ | 'top-start'
+ | 'top-end'
+ | 'bottom-start'
+ | 'bottom-end'
+ | 'right-start'
+ | 'right-end'
+ | 'left-start'
+ | 'left-end';
+export type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';
+export type ComputedPlacement = VariationPlacement | BasePlacement;
+export type Placement = AutoPlacement | BasePlacement | VariationPlacement;
+
+export const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(
+ (acc: Array<VariationPlacement>, placement: BasePlacement) =>
+ acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),
+ []
+);
+export const placements: Array<Placement> = [...basePlacements, auto].reduce(
+ (
+ acc: Array<Placement>,
+ placement: BasePlacement | typeof auto
+ ): Array<Placement> =>
+ acc.concat([
+ placement,
+ (`${placement}-${start}`: any),
+ (`${placement}-${end}`: any),
+ ]),
+ []
+);
+
+// modifiers that need to read the DOM
+export const beforeRead: 'beforeRead' = 'beforeRead';
+export const read: 'read' = 'read';
+export const afterRead: 'afterRead' = 'afterRead';
+// pure-logic modifiers
+export const beforeMain: 'beforeMain' = 'beforeMain';
+export const main: 'main' = 'main';
+export const afterMain: 'afterMain' = 'afterMain';
+// modifier with the purpose to write to the DOM (or write into a framework state)
+export const beforeWrite: 'beforeWrite' = 'beforeWrite';
+export const write: 'write' = 'write';
+export const afterWrite: 'afterWrite' = 'afterWrite';
+export const modifierPhases: Array<ModifierPhases> = [
+ beforeRead,
+ read,
+ afterRead,
+ beforeMain,
+ main,
+ afterMain,
+ beforeWrite,
+ write,
+ afterWrite,
+];
+
+export type ModifierPhases =
+ | typeof beforeRead
+ | typeof read
+ | typeof afterRead
+ | typeof beforeMain
+ | typeof main
+ | typeof afterMain
+ | typeof beforeWrite
+ | typeof write
+ | typeof afterWrite;