@edvisor/product-language 0.6.0 → 0.7.0

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.
@@ -0,0 +1,6 @@
1
+ import { Calendar } from 'react-multi-date-picker';
2
+ /**
3
+ * For a reasonable description of the class names etc,
4
+ * @see https://shahabyazdi.github.io/react-multi-date-picker/classes-&-styles/
5
+ */
6
+ export declare const CustomCalendar: import("styled-components").StyledComponent<typeof Calendar, any, {} & import("@foundations").IBodyProps, never>;
@@ -0,0 +1 @@
1
+ export * from './custom-calendar';
@@ -0,0 +1,4 @@
1
+ import { FC } from '@helpers';
2
+ import { IDatePickerProps as IBaseProps, IDatePickerSlots } from './helpers/date-picker-factory';
3
+ export declare type IDatePickerProps = IBaseProps<string>;
4
+ export declare const DatePicker: FC<IDatePickerProps, IDatePickerSlots>;
@@ -0,0 +1,34 @@
1
+ import { InputHTMLAttributes } from 'react';
2
+ import { FC, Slot, PropsWithChildren } from '@helpers';
3
+ export declare type DateFormatter<T> = (props: {
4
+ date: T | undefined;
5
+ defaultFormatter: (date: T, format?: string) => string;
6
+ }) => string;
7
+ declare type HTMLProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'onClick' | 'min' | 'max'>;
8
+ export declare type IDatePickerProps<T> = PropsWithChildren & HTMLProps & {
9
+ value?: T;
10
+ defaultValue?: T;
11
+ onChange?: (change: T) => void;
12
+ onClick?: () => void;
13
+ isAvailable?: (props: {
14
+ date: T;
15
+ isSameDate: (date: T, other: T) => boolean;
16
+ }) => boolean;
17
+ isOpen?: boolean;
18
+ defaultOpen?: boolean;
19
+ label?: string;
20
+ format?: string | DateFormatter<T>;
21
+ min?: T;
22
+ max?: T;
23
+ };
24
+ declare class ControlsSlot extends Slot {
25
+ }
26
+ export declare type IDatePickerSlots = {
27
+ Controls: typeof ControlsSlot;
28
+ };
29
+ export declare function datePickerFactory<T>({ fromDate, toDate, empty, }: {
30
+ fromDate: (date: Date | undefined) => T;
31
+ toDate: (obj: T) => Date;
32
+ empty: (obj: T) => boolean;
33
+ }): FC<IDatePickerProps<T>, IDatePickerSlots>;
34
+ export {};
@@ -0,0 +1 @@
1
+ export * from './date-picker';
@@ -16,5 +16,7 @@ export * from './flag';
16
16
  export * from './spinner';
17
17
  export * from './select';
18
18
  export * from './tree-view';
19
+ export * from './date-picker';
20
+ export * from './range-slider';
19
21
  export * from './molecules';
20
22
  export * from './organisms';
@@ -0,0 +1,8 @@
1
+ import { FC } from '@helpers';
2
+ interface IProps {
3
+ data: number[];
4
+ highlight: number[];
5
+ domain: number[];
6
+ }
7
+ export declare const BarChartComponent: FC<IProps>;
8
+ export {};
@@ -0,0 +1,12 @@
1
+ import { CSSProperties } from 'react';
2
+ import { FC } from '@helpers';
3
+ import { GetHandleProps, SliderItem } from 'react-compound-slider';
4
+ interface IHandleComponent {
5
+ domain: number[];
6
+ handle: SliderItem;
7
+ classes?: CSSProperties;
8
+ thumbHeight: number;
9
+ getHandleProps: GetHandleProps;
10
+ }
11
+ export declare const HandleComponent: FC<IHandleComponent>;
12
+ export {};
@@ -0,0 +1,9 @@
1
+ import { FC } from '@helpers';
2
+ import { GetRailProps } from 'react-compound-slider';
3
+ interface IRailComponent {
4
+ getRailProps: GetRailProps;
5
+ trackHeight: number;
6
+ thumbHeight: number;
7
+ }
8
+ export declare const RailComponent: FC<IRailComponent>;
9
+ export {};
@@ -0,0 +1,12 @@
1
+ import { FC } from '@helpers';
2
+ import { SliderType } from '../types';
3
+ interface IProps {
4
+ mode: 1 | 2 | 3;
5
+ domain: number[];
6
+ values: ReadonlyArray<number>;
7
+ type: SliderType;
8
+ onChange: (values: ReadonlyArray<number>) => void;
9
+ onUpdate?: (values: ReadonlyArray<number>) => void;
10
+ }
11
+ export declare const SliderComponent: FC<IProps>;
12
+ export {};
@@ -0,0 +1,14 @@
1
+ import { FC } from '@helpers';
2
+ import { SliderType } from '../types';
3
+ interface ISliderInputs {
4
+ onChange: (range: number[]) => void;
5
+ range: ReadonlyArray<number>;
6
+ minValue: number;
7
+ maxValue: number;
8
+ maxLabel?: string;
9
+ minLabel?: string;
10
+ type: SliderType;
11
+ prefix?: string;
12
+ }
13
+ export declare const SliderInputs: FC<ISliderInputs>;
14
+ export {};
@@ -0,0 +1,10 @@
1
+ import { FC } from '@helpers';
2
+ import { ReactNode } from 'react';
3
+ import { SliderItem } from 'react-compound-slider';
4
+ interface ITickComponent {
5
+ tick: SliderItem;
6
+ count: number;
7
+ format?: (value: number) => ReactNode;
8
+ }
9
+ export declare const TickComponent: FC<ITickComponent>;
10
+ export {};
@@ -0,0 +1,11 @@
1
+ import { FC } from '@helpers';
2
+ import { GetTrackProps, SliderItem } from 'react-compound-slider';
3
+ interface ITrackComponent {
4
+ source: SliderItem;
5
+ target: SliderItem;
6
+ trackHeight: number;
7
+ thumbHeight: number;
8
+ getTrackProps: GetTrackProps;
9
+ }
10
+ export declare const TrackComponent: FC<ITrackComponent>;
11
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './range-slider';
2
+ export * from './slider';
@@ -0,0 +1,15 @@
1
+ import { FC } from '@helpers';
2
+ interface IRangeSlider {
3
+ data?: number[];
4
+ editable?: boolean;
5
+ prefix?: string;
6
+ min?: number;
7
+ max?: number;
8
+ graphHeight?: number;
9
+ maxLabel?: string;
10
+ minLabel?: string;
11
+ values: number[];
12
+ onChange?: (value: number[]) => void;
13
+ }
14
+ export declare const RangeSlider: FC<IRangeSlider>;
15
+ export {};
@@ -0,0 +1,11 @@
1
+ import { FC } from '@helpers';
2
+ interface ISlider {
3
+ min?: number;
4
+ max: number;
5
+ value: number;
6
+ prefix?: string;
7
+ editable?: boolean;
8
+ onChange?: (value: number) => void;
9
+ }
10
+ export declare const Slider: FC<ISlider>;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ export declare enum SliderType {
2
+ SLIDER = 0,
3
+ RANGE_SLIDER = 1
4
+ }
5
+ export declare enum ValueType {
6
+ MIN = 0,
7
+ MAX = 1
8
+ }
9
+ export declare const FieldContainer: import("styled-components").StyledComponent<"div", any, {
10
+ margin: string;
11
+ }, never>;
@@ -5,3 +5,4 @@ export * from './numbers';
5
5
  export * from './nothing';
6
6
  export * from './strings';
7
7
  export * from './isReactElementOfType';
8
+ export * from './useInputElementState';
@@ -11,5 +11,7 @@ export declare function isEmpty<T extends {
11
11
  }>(obj: T): boolean;
12
12
  /** used for evaluating tri-state logic (true | false | undefined) */
13
13
  export declare function is(pred?: boolean): boolean;
14
+ export declare function toArray<T>(obj: T | T[] | undefined | null): T[];
14
15
  export declare function safeArray<T>(arr: T[] | undefined | null): T[];
15
16
  export declare function safeCallback<T>(f?: (e: T) => void, e?: T): void;
17
+ export { first, isString, isFunction, uniqueId, debounce, throttle, } from 'lodash';
@@ -0,0 +1,30 @@
1
+ declare type IInputElementState<T> = [
2
+ T | undefined,
3
+ (change: T) => void
4
+ ];
5
+ /**
6
+ *
7
+ * This hook is to help implement a common pattern:
8
+ *
9
+ * <input onChange={doSomething} /> // uncontrolled
10
+ * <input value={1} /> // should be marked read only
11
+ * <input value={state} onChange={setState} /> // controlled
12
+ *
13
+ * I've reimplemented this logic a few times, but now I have a nice helper :D
14
+ *
15
+ * const [state, setState] = useInputElementState({
16
+ * value: props.value,
17
+ * defaultValue: props.defaultValue, // the value to use if value is undefined
18
+ * onChange: props.onChange,
19
+ * })
20
+ *
21
+ * if you give it nothing, you get state, setState for internal state management (uncontrolled input)
22
+ * if you give it value only, you get a warning
23
+ * if you give it value and onChange, state management if deferred to the parent (controlled input)
24
+ */
25
+ export declare function useInputElementState<T>(props: {
26
+ value?: T;
27
+ defaultValue?: T;
28
+ onChange?: (change: T) => void;
29
+ }): IInputElementState<T>;
30
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edvisor/product-language",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "license": "MIT",
5
5
  "description": "Edvisor.io product-language components",
6
6
  "repository": "https://github.com/edvisor-io/front-end/",
@@ -14,6 +14,10 @@
14
14
  "release": "*",
15
15
  "styled-components": "5.3.5",
16
16
  "react": "18.2.0",
17
+ "react-multi-date-picker": "^3.3.4",
18
+ "lodash": "^4.17.21",
19
+ "recharts": "^2.1.16",
20
+ "react-compound-slider": "^3.4.0",
17
21
  "react-window": "^1.8.8",
18
22
  "@storybook/addon-docs": "^6.5.10"
19
23
  },