indicator-ui 0.1.22 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,7 @@
3
3
  @mixin base-button() {
4
4
  cursor: pointer;
5
5
  transition: background-color ease-out 0.2s;
6
+ border-radius: 8px;
6
7
  @include modify-flex(row, center, center);
7
8
 
8
9
  .icon {
@@ -10,10 +10,10 @@ export * from './useDidUpdateEffect';
10
10
  export * from './useSmartPosition';
11
11
  export * from './useSmartScroll';
12
12
  export * from './useInteractiveZone';
13
- export * from './useSmartPlacementResolver';
14
13
  export * from './useScrollIndicators';
15
14
  export * from './ui-animations';
16
15
  export * from './modalWindows';
17
16
  export * from './controlsInput';
18
17
  export * from './elementObservers';
19
18
  export * from './simpleRefWork';
19
+ export * from './placement';
@@ -0,0 +1,46 @@
1
+ type NewPlacementPosType = {
2
+ top: number;
3
+ left: number;
4
+ };
5
+ type WeightTableType = [
6
+ [
7
+ number,
8
+ number,
9
+ number
10
+ ],
11
+ [
12
+ number,
13
+ number,
14
+ number
15
+ ],
16
+ [
17
+ number,
18
+ number,
19
+ number
20
+ ]
21
+ ];
22
+ type PropsType = {
23
+ objRect: {
24
+ width: number;
25
+ height: number;
26
+ };
27
+ parentRect: {
28
+ width: number;
29
+ height: number;
30
+ top: number;
31
+ left: number;
32
+ };
33
+ windowRect: {
34
+ width: number;
35
+ height: number;
36
+ top: number;
37
+ left: number;
38
+ };
39
+ position?: 'absolute' | 'fixed' | 'relative';
40
+ offset?: number;
41
+ weights?: WeightTableType;
42
+ alignX?: 'left' | 'center' | 'right';
43
+ alignY?: 'top' | 'center' | 'bottom';
44
+ };
45
+ export declare function calculateAvailablePosition(props: PropsType): NewPlacementPosType;
46
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './useSmartPlacementResolver';
2
+ export * from './calculateAvailablePosition';
@@ -1,35 +1,12 @@
1
- import { RefObject } from "react";
2
- type NewPlacementPosType = {
3
- top: number;
4
- left: number;
5
- };
6
- type WeightTableType = [
7
- [
8
- number,
9
- number,
10
- number
11
- ],
12
- [
13
- number,
14
- number,
15
- number
16
- ],
17
- [
18
- number,
19
- number,
20
- number
21
- ]
22
- ];
1
+ import { CSSProperties, RefObject } from "react";
2
+ import { calculateAvailablePosition } from "./calculateAvailablePosition";
3
+ type CalculateAvailablePositionPropsType = Parameters<typeof calculateAvailablePosition>['0'];
4
+ type NewPlacementPosType = ReturnType<typeof calculateAvailablePosition>;
23
5
  type PropsType = [
24
6
  ref: RefObject<HTMLElement | null>,
25
- options?: {
7
+ options?: Omit<CalculateAvailablePositionPropsType, 'objRect' | 'parentRect' | 'windowRect'> & {
26
8
  parentRef?: RefObject<HTMLElement | null>;
27
9
  windowRef?: RefObject<HTMLElement | null>;
28
- position?: 'absolute' | 'fixed' | 'relative';
29
- offset?: number;
30
- weights?: WeightTableType;
31
- alignX?: 'left' | 'center' | 'right';
32
- alignY?: 'top' | 'center' | 'bottom';
33
10
  }
34
11
  ];
35
12
  type FunReturnType = {
@@ -41,6 +18,10 @@ type FunReturnType = {
41
18
  * Просчитывает позицию для объекта
42
19
  * */
43
20
  calc: () => NewPlacementPosType;
21
+ /**
22
+ * Возвращает изначальный стиль объекта
23
+ * */
24
+ getInitStyle: () => CSSProperties;
44
25
  };
45
26
  /**
46
27
  * Хук для умного позиционирования элемента.
@@ -1,3 +1,4 @@
1
+ import { CSSProperties } from "react";
1
2
  type AnimationTypes = 'fade-in-scale-up' | 'slide-up-fade-in' | 'slide-down-fade-in' | 'fade-in';
2
3
  type PosType = [number, number];
3
4
  type AnimationItemOptionsType = {
@@ -21,6 +22,8 @@ type AnimationItemType = (props: PropsType, timeline: gsap.core.Timeline, option
21
22
  type AnimationValueType = {
22
23
  appear: AnimationItemType;
23
24
  disappear: AnimationItemType;
25
+ getInitStyle: () => CSSProperties;
26
+ getBackdropInitStyle: () => CSSProperties;
24
27
  };
25
28
  type AnimationsType = Record<AnimationTypes, AnimationValueType>;
26
29
  export declare const BACKDROP_MODAL_ANIMATIONS: () => AnimationsType;
@@ -1,3 +1,4 @@
1
+ import { CSSProperties } from "react";
1
2
  type AnimationTypes = 'popover' | 'dropdown' | 'context-menu' | 'action-sheet';
2
3
  type PosType = [number, number];
3
4
  type AnimationItemOptionsType = {
@@ -17,11 +18,13 @@ type PropsType = {
17
18
  targetSize: PosType;
18
19
  modalSize: PosType;
19
20
  predictPos: PosType;
21
+ position: 'absolute' | 'fixed' | 'relative';
20
22
  };
21
23
  type AnimationItemType = (props: PropsType, timeline: gsap.core.Timeline, options?: AnimationItemOptionsType) => gsap.core.Timeline;
22
24
  type AnimationValueType = {
23
25
  appear: AnimationItemType;
24
26
  disappear: AnimationItemType;
27
+ getInitStyle: (props: Pick<PropsType, 'position'>) => CSSProperties;
25
28
  };
26
29
  type AnimationsType = Record<AnimationTypes, AnimationValueType>;
27
30
  export declare const MODAL_ANIMATIONS: () => AnimationsType;
@@ -5,7 +5,6 @@ type MovingOptionsType = {
5
5
  left: number;
6
6
  top: number;
7
7
  };
8
- position?: 'absolute' | 'fixed' | 'relative';
9
8
  };
10
9
  type AnimationItemType = (element: HTMLElement, timeline: TimelineType, options: MovingOptionsType) => TimelineType;
11
10
  type AnimationsType = Record<AnimationTypes, AnimationItemType>;
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties, RefObject } from "react";
2
- import { useSmartPlacementResolver } from "../useSmartPlacementResolver";
2
+ import { useSmartPlacementResolver } from "../placement/useSmartPlacementResolver";
3
3
  import { MODAL_ANIMATIONS } from "./assets";
4
4
  type UseSmartPlacementResolverOptionsType = Exclude<Parameters<typeof useSmartPlacementResolver>['1'], undefined>;
5
5
  type OptionsType<T extends HTMLElement = HTMLElement> = Pick<UseSmartPlacementResolverOptionsType, 'position'> & {
@@ -1,4 +1,4 @@
1
- import { useSmartPlacementResolver } from "../hooks/useSmartPlacementResolver";
1
+ import { useSmartPlacementResolver } from "../hooks/placement/useSmartPlacementResolver";
2
2
  type NewPlacementPosType = {
3
3
  top: number;
4
4
  left: number;
@@ -28,4 +28,5 @@ export type DateTimePickerPropsType = {
28
28
  * Тип выбора даты.
29
29
  * */
30
30
  type?: DateTimePickerTypeTypes;
31
+ style?: React.CSSProperties;
31
32
  };
@@ -22,6 +22,7 @@ export type DropdownPropsBaseType<T> = {
22
22
  width?: number | 'fill' | 'hug';
23
23
  isActive?: (value: T) => boolean;
24
24
  styles?: CSSProperties;
25
+ style?: CSSProperties;
25
26
  className?: string;
26
27
  elementAfter?: React.ReactNode;
27
28
  elementBefore?: React.ReactNode;
@@ -1,6 +1,6 @@
1
1
  import { DateTimeFieldPropsType } from "../../../../ui";
2
- import { useSmartPosition } from "../../../../hooks";
3
- type PositionType = Exclude<Parameters<typeof useSmartPosition>[1], undefined>['position'];
2
+ import { useModal } from "../../../../hooks";
3
+ type PositionType = Exclude<Parameters<typeof useModal>[1], undefined>['position'];
4
4
  export type DateFieldPropsType = Omit<DateTimeFieldPropsType, 'iconTime' | 'textTime' | 'timePlaceholder' | 'timeFormat'> & {
5
5
  /** Определяет, как будет располагать пикер даты (fixed, absolute).
6
6
  * В нужной ситуации можно использовать разные подходы,
@@ -1,8 +1,8 @@
1
1
  import { FieldsBasePropsType } from "../../FieldsBase";
2
2
  import { FormatNameType } from "../../../../lib";
3
3
  import React from "react";
4
- import { useSmartPosition } from "../../../../hooks";
5
- type PositionType = Exclude<Parameters<typeof useSmartPosition>[1], undefined>['position'];
4
+ import { useModal } from "../../../../hooks";
5
+ type PositionType = Exclude<Parameters<typeof useModal>[1], undefined>['position'];
6
6
  export type DateTimeFieldValueType = string;
7
7
  export type DateTimeFieldPropsType = FieldsBasePropsType<DateTimeFieldValueType> & {
8
8
  /**
@@ -1,6 +1,6 @@
1
1
  import { DateTimeFieldPropsType } from "../../../../ui";
2
- import { useSmartPosition } from "../../../../hooks";
3
- type PositionType = Exclude<Parameters<typeof useSmartPosition>[1], undefined>['position'];
2
+ import { useModal } from "../../../../hooks";
3
+ type PositionType = Exclude<Parameters<typeof useModal>[1], undefined>['position'];
4
4
  export type TimeFieldPropsType = Omit<DateTimeFieldPropsType, 'iconDate' | 'textDate' | 'datePlaceholder' | 'dateFormat'> & {
5
5
  /** Определяет, как будет располагать пикер даты (fixed, absolute).
6
6
  * В нужной ситуации можно использовать разные подходы,
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { FieldsBasePropsType } from "../../../../ui";
3
- import { DateTimeRangeFieldValueType } from "./DateTimeRangeFieldTypes";
4
3
  import { useModal } from "../../../../hooks";
4
+ import { DateTimeRangeFieldValueType } from "./DateTimeRangeFieldTypes";
5
5
  type PositionType = Exclude<Parameters<typeof useModal>[1], undefined>['position'];
6
6
  export type DateRangeFieldPropsType = FieldsBasePropsType<DateTimeRangeFieldValueType> & {
7
7
  firstPlaceholder?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "indicator-ui",
3
- "version": "0.1.22",
3
+ "version": "0.1.24",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/types/src/index.d.ts",
6
6
  "style": "dist/index.css",