dinocollab-core 1.0.19 → 1.0.21
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.
- package/README.md +1 -1
- package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
- package/dist/filter-bar/base.js +1 -1
- package/dist/filter-bar/base.js.map +1 -1
- package/dist/filter-bar/create.filter-bar.js +1 -1
- package/dist/filter-bar/create.filter-bar.js.map +1 -1
- package/dist/filter-bar/create.filter-menu.js +1 -1
- package/dist/filter-bar/create.filter-menu.js.map +1 -1
- package/dist/filter-bar/create.filter-panel.js +1 -1
- package/dist/filter-bar/create.filter-panel.js.map +1 -1
- package/dist/filter-bar/create.filtered.js +1 -1
- package/dist/filter-bar/create.filtered.js.map +1 -1
- package/dist/filter-bar/types.js.map +1 -1
- package/dist/filter-bar/ui.units.js +1 -1
- package/dist/filter-bar/ui.units.js.map +1 -1
- package/dist/form/create.autocomplete.chips.js.map +1 -1
- package/dist/form/create.form-base.js +1 -1
- package/dist/form/create.form-base.js.map +1 -1
- package/dist/form/create.form-grid-layout.js +1 -1
- package/dist/form/create.form-grid-layout.js.map +1 -1
- package/dist/form/create.input-file.csv-local-parser.js.map +1 -1
- package/dist/form/create.input.js +1 -1
- package/dist/form/create.input.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/table/create.table.js +1 -1
- package/dist/table/create.table.js.map +1 -1
- package/dist/table-grid/create.table-grid.js +1 -1
- package/dist/table-grid/create.table-grid.js.map +1 -1
- package/dist/types/filter-bar/base.d.ts +10 -16
- package/dist/types/filter-bar/create.filter-bar.d.ts +3 -91
- package/dist/types/filter-bar/create.filter-menu.d.ts +6 -59
- package/dist/types/filter-bar/create.filter-panel.d.ts +7 -111
- package/dist/types/filter-bar/create.filtered.d.ts +11 -8
- package/dist/types/filter-bar/create.sort-menu.d.ts +1 -7
- package/dist/types/filter-bar/index.d.ts +0 -1
- package/dist/types/filter-bar/types.d.ts +42 -23
- package/dist/types/filter-bar/ui.units.d.ts +4 -3
- package/dist/types/form/create.autocomplete.chips.d.ts +3 -3
- package/dist/types/form/create.form-base.d.ts +15 -21
- package/dist/types/form/create.form-grid-layout.units.d.ts +6 -2
- package/dist/types/form/create.input-file.csv-local-parser.d.ts +1 -2
- package/dist/types/form/create.input.d.ts +1 -2
- package/dist/types/form/dino-form.d.ts +4 -2
- package/dist/types/form/types.d.ts +18 -7
- package/dist/types/table-grid/types.d.ts +2 -2
- package/dist/types/utils/helpers.d.ts +1 -0
- package/dist/utils/helpers.js +1 -1
- package/dist/utils/helpers.js.map +1 -1
- package/package.json +5 -2
- package/dist/filter-bar/create.sort-menu.js +0 -2
- package/dist/filter-bar/create.sort-menu.js.map +0 -1
- package/dist/types/filter-bar/demo.d.ts +0 -3
- package/dist/types/lab/create.autocomplete.simple.d.ts +0 -19
- package/dist/types/lab/create.dino-store.d.ts +0 -1
- package/dist/types/lab/grafana-dashboard/configs.d.ts +0 -4
- package/dist/types/lab/grafana-dashboard/date-time-range/absolute-time-rage.d.ts +0 -14
- package/dist/types/lab/grafana-dashboard/date-time-range/helpers.d.ts +0 -36
- package/dist/types/lab/grafana-dashboard/date-time-range/index.d.ts +0 -24
- package/dist/types/lab/grafana-dashboard/date-time-range/menu-wrap.d.ts +0 -19
- package/dist/types/lab/grafana-dashboard/date-time-range/quick-ranges.d.ts +0 -20
- package/dist/types/lab/grafana-dashboard/date-time-range/types.d.ts +0 -8
- package/dist/types/lab/grafana-dashboard/date-time-range/units.d.ts +0 -2
- package/dist/types/lab/grafana-dashboard/helper.d.ts +0 -7
- package/dist/types/lab/grafana-dashboard/hooks.d.ts +0 -10
- package/dist/types/lab/grafana-dashboard/icons.d.ts +0 -5
- package/dist/types/lab/grafana-dashboard/index.d.ts +0 -12
- package/dist/types/lab/grafana-dashboard/top-bar.d.ts +0 -19
- package/dist/types/lab/grafana-dashboard/top-bar.types.d.ts +0 -4
- package/dist/types/lab/grafana-dashboard/types.d.ts +0 -8
- package/dist/types/lab/media-player.core1.d.ts +0 -14
- package/dist/types/lab/media-player.muted.d.ts +0 -10
- package/dist/types/lab/media-player.units.d.ts +0 -36
- package/dist/types/lab/select-mul-with-api/create.select-mul-with-api.d.ts +0 -26
- package/dist/types/lab/select-mul-with-api/index.d.ts +0 -2
- package/dist/types/lab/select-mul-with-api/table-custom.d.ts +0 -43
- package/dist/types/lab/select-mul-with-api/types.d.ts +0 -21
- package/dist/types/lab/select-mul-with-api/ui.units.d.ts +0 -29
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
1
|
+
import { IFilterPanelState } from './create.filter-panel';
|
|
2
|
+
import { IFilterNotesProps } from './ui.units';
|
|
3
|
+
export type IFilterReason = 'searchInput' | 'filterButton';
|
|
5
4
|
type SingleOrArray<T> = T | T[];
|
|
6
5
|
export declare enum ESearchMatch {
|
|
7
6
|
AlwaysVisible = "AlwaysVisible",
|
|
@@ -37,24 +36,24 @@ interface IFieldValidateQuickly extends IFieldValidateBase {
|
|
|
37
36
|
rule: EFieldValidate.Link | EFieldValidate.LinkYoutube;
|
|
38
37
|
}
|
|
39
38
|
type IFieldValidate = IFieldValidateQuickly | IFieldValidateCustom;
|
|
40
|
-
interface
|
|
39
|
+
export interface IQuickSearchDef<T> {
|
|
40
|
+
fields: SingleOrArray<keyof T>;
|
|
41
|
+
label?: string;
|
|
42
|
+
notes?: IFilterNotesProps;
|
|
43
|
+
}
|
|
44
|
+
interface IFilterFieldDef {
|
|
41
45
|
label?: string;
|
|
42
46
|
/** @default string */
|
|
43
47
|
type?: 'string' | 'select';
|
|
44
48
|
searchMatches?: SingleOrArray<IFieldSearchMatch>;
|
|
45
|
-
|
|
46
|
-
title?: string;
|
|
47
|
-
items: string[];
|
|
48
|
-
};
|
|
49
|
-
/** @default true */
|
|
50
|
-
sortable?: boolean;
|
|
49
|
+
notes?: IFilterNotesProps;
|
|
51
50
|
/** @default Required */
|
|
52
51
|
validate?: SingleOrArray<IFieldValidate>;
|
|
53
52
|
}
|
|
54
|
-
export interface IFilterFieldString extends
|
|
53
|
+
export interface IFilterFieldString extends IFilterFieldDef {
|
|
55
54
|
type?: 'string';
|
|
56
55
|
}
|
|
57
|
-
export interface IFilterFieldSelect extends
|
|
56
|
+
export interface IFilterFieldSelect extends IFilterFieldDef {
|
|
58
57
|
type: 'select';
|
|
59
58
|
options: {
|
|
60
59
|
value: string;
|
|
@@ -62,24 +61,44 @@ export interface IFilterFieldSelect extends IFilterFieldBase {
|
|
|
62
61
|
}[];
|
|
63
62
|
}
|
|
64
63
|
export type IFilterField = IFilterFieldString | IFilterFieldSelect;
|
|
65
|
-
export type IFilterFields<T> =
|
|
66
|
-
|
|
67
|
-
}
|
|
64
|
+
export type IFilterFields<T> = {
|
|
65
|
+
[key in keyof T]?: IFilterField;
|
|
66
|
+
};
|
|
68
67
|
export interface IFilterItemModel {
|
|
69
68
|
value?: string | number | boolean;
|
|
70
69
|
label?: string;
|
|
71
|
-
/** @default true */
|
|
72
|
-
sortable?: boolean;
|
|
73
70
|
}
|
|
74
|
-
export
|
|
75
|
-
|
|
76
|
-
}
|
|
71
|
+
export interface IFilterItemChangeModel<T> extends IFilterItemModel {
|
|
72
|
+
field: keyof T;
|
|
73
|
+
}
|
|
74
|
+
export type IFilterModel<T> = {
|
|
75
|
+
[key in keyof T]?: IFilterItemModel[];
|
|
76
|
+
};
|
|
77
|
+
export interface IQuickSearchModel<T> {
|
|
78
|
+
fields: SingleOrArray<keyof T>;
|
|
79
|
+
values?: SingleOrArray<string>;
|
|
80
|
+
}
|
|
77
81
|
export interface IFilterState<T> {
|
|
78
82
|
filter?: IFilterModel<T>;
|
|
83
|
+
quickSearch?: IQuickSearchModel<T>;
|
|
79
84
|
details?: 'add' | 'remove';
|
|
80
85
|
}
|
|
81
|
-
export interface
|
|
86
|
+
export interface IFilterBarParams<T> {
|
|
82
87
|
fields: IFilterFields<T>;
|
|
88
|
+
quickSearch?: IQuickSearchDef<T>;
|
|
89
|
+
id?: string;
|
|
90
|
+
placeholder?: string;
|
|
91
|
+
notes?: IFilterNotesProps;
|
|
92
|
+
}
|
|
93
|
+
export interface IFilterBarProps<T> {
|
|
94
|
+
id?: string;
|
|
95
|
+
placeholder?: string;
|
|
96
|
+
value?: IFilterState<T>;
|
|
97
|
+
onChange?: (value: IFilterState<T>) => void;
|
|
98
|
+
}
|
|
99
|
+
export interface IFilterBarState {
|
|
100
|
+
panelState: IFilterPanelState;
|
|
101
|
+
keyword: string;
|
|
83
102
|
}
|
|
84
|
-
export type
|
|
103
|
+
export type IFilterSubmitFunc<T> = (mode: 'field' | 'quickSearch', data?: IFilterItemChangeModel<T>) => void;
|
|
85
104
|
export {};
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
2
|
import { IconButtonProps } from '@mui/material';
|
|
3
3
|
export interface IButtonClearProps {
|
|
4
4
|
visibled?: boolean;
|
|
5
5
|
onClick: IconButtonProps['onClick'];
|
|
6
6
|
}
|
|
7
7
|
export declare const ButtonClear: FC<IButtonClearProps>;
|
|
8
|
-
export interface
|
|
8
|
+
export interface IFilterNotesProps {
|
|
9
9
|
title?: string;
|
|
10
10
|
items?: string[];
|
|
11
11
|
disabledSize?: boolean;
|
|
12
|
+
renderContent?: () => ReactNode;
|
|
12
13
|
}
|
|
13
|
-
export declare const
|
|
14
|
+
export declare const FilterNotes: FC<IFilterNotesProps>;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { ComponentType } from 'react';
|
|
2
2
|
import { IFormInputBase } from './types';
|
|
3
|
-
export interface
|
|
3
|
+
export interface IAutocompleteChipSlots {
|
|
4
4
|
optionItems?: string[];
|
|
5
5
|
limitTags?: number;
|
|
6
6
|
separator?: string;
|
|
7
7
|
saveLocalStorageByKey?: string;
|
|
8
8
|
}
|
|
9
|
-
export interface IAutocompleteChipProps<T> extends IFormInputBase<T,
|
|
9
|
+
export interface IAutocompleteChipProps<T> extends IFormInputBase<T, IAutocompleteChipSlots> {
|
|
10
10
|
}
|
|
11
11
|
export interface IAutocompleteChipState {
|
|
12
12
|
value: string[];
|
|
13
13
|
options: string[];
|
|
14
14
|
}
|
|
15
|
-
declare function CreateAutocompleteChip<T>(params?:
|
|
15
|
+
declare function CreateAutocompleteChip<T>(params?: IAutocompleteChipSlots): ComponentType<IAutocompleteChipProps<T>>;
|
|
16
16
|
export default CreateAutocompleteChip;
|
|
@@ -1,30 +1,24 @@
|
|
|
1
1
|
import React, { ComponentType, PropsWithChildren } from 'react';
|
|
2
2
|
import { SxProps, Theme } from '@mui/material';
|
|
3
|
-
import {
|
|
3
|
+
import { IFormBaseContext } from './types';
|
|
4
4
|
import FormValidator, { IPartialError } from './validator';
|
|
5
|
-
export interface
|
|
6
|
-
validate?: FormValidator<Partial<
|
|
5
|
+
export interface IFormBaseParams<T> {
|
|
6
|
+
validate?: FormValidator<Partial<T>>;
|
|
7
7
|
}
|
|
8
|
-
export interface
|
|
8
|
+
export interface IFormBaseProps<T> extends PropsWithChildren {
|
|
9
9
|
sx?: SxProps<Theme>;
|
|
10
|
-
validate?: FormValidator<Partial<
|
|
11
|
-
onSubmit: (data: Partial<
|
|
10
|
+
validate?: FormValidator<Partial<T>>;
|
|
11
|
+
onSubmit: (data: Partial<T>, e: React.FormEvent<HTMLFormElement>) => Promise<void>;
|
|
12
12
|
}
|
|
13
|
-
export interface
|
|
14
|
-
modelState?: Partial<
|
|
13
|
+
export interface IFormBaseState<T> {
|
|
14
|
+
modelState?: Partial<T>;
|
|
15
|
+
messageErrors: IPartialError<T>;
|
|
15
16
|
}
|
|
16
|
-
export interface
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
clearErrorAll: (keyName: keyof TModel) => void;
|
|
17
|
+
export interface IFormBaseResult<T> {
|
|
18
|
+
Form: ComponentType<IFormBaseProps<T>>;
|
|
19
|
+
Validator?: FormValidator<Partial<T>>;
|
|
20
|
+
Context: React.Context<IFormBaseContext<T>>;
|
|
21
|
+
mapContext: (params: (context: IFormBaseContext<T>) => JSX.Element) => JSX.Element;
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
Form: ComponentType<FormBaseProps<TModel>>;
|
|
25
|
-
Validator?: FormValidator<Partial<TModel>>;
|
|
26
|
-
Context: React.Context<IFormContextBase<TModel>>;
|
|
27
|
-
contextMapping: (params: (context: IFormContextBase<TModel>) => JSX.Element) => JSX.Element;
|
|
28
|
-
}
|
|
29
|
-
declare const CreateFormBase: <TModel>(param?: FormBaseParam<TModel> | undefined) => FormBaseResult<TModel>;
|
|
23
|
+
declare const CreateFormBase: <T>(params?: IFormBaseParams<T> | undefined) => IFormBaseResult<T>;
|
|
30
24
|
export default CreateFormBase;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
2
|
import { IFormBase } from './types';
|
|
3
|
-
export declare const ContentWrap: StyledComponent<
|
|
3
|
+
export declare const ContentWrap: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
4
|
+
ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
5
|
+
}, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
4
6
|
export interface IFormBottomBarProps<T> extends IFormBase<T> {
|
|
5
7
|
before?: ReactNode;
|
|
6
8
|
}
|
|
7
9
|
export declare function CreateFormBottomBar<T>(): React.FC<IFormBottomBarProps<T>>;
|
|
8
|
-
export declare const FormBottomBarWrap: StyledComponent<
|
|
10
|
+
export declare const FormBottomBarWrap: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
11
|
+
ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
12
|
+
}, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
@@ -32,9 +32,8 @@ export interface IInputFileCsvLocalParserSlots {
|
|
|
32
32
|
}
|
|
33
33
|
export interface IInputFileCsvLocalParserParams extends IInputFileCsvLocalParserSlots {
|
|
34
34
|
}
|
|
35
|
-
export interface IInputFileCsvLocalParserProps<T, C> extends IFormInputBase<T> {
|
|
35
|
+
export interface IInputFileCsvLocalParserProps<T, C> extends IFormInputBase<T, IInputFileCsvLocalParserSlots> {
|
|
36
36
|
onChange?: (value: C[]) => void;
|
|
37
|
-
slots?: IInputFileCsvLocalParserSlots;
|
|
38
37
|
}
|
|
39
38
|
export interface IInputFileCsvLocalParserState<C> {
|
|
40
39
|
parsedData: C[];
|
|
@@ -17,8 +17,7 @@ export interface IInputSlots<T> {
|
|
|
17
17
|
imageLeft?: InputBaseImage<T>;
|
|
18
18
|
imageRight?: InputBaseImage<T>;
|
|
19
19
|
}
|
|
20
|
-
export interface IInputProps<T> extends IFormInputBase<T
|
|
21
|
-
slots?: IInputSlots<T>;
|
|
20
|
+
export interface IInputProps<T> extends IFormInputBase<T, IInputSlots<T>> {
|
|
22
21
|
}
|
|
23
22
|
export interface IInputState {
|
|
24
23
|
value?: string;
|
|
@@ -8,10 +8,12 @@ import CreateAutocompleteChip from './create.autocomplete.chips';
|
|
|
8
8
|
import { createInputFileCsvLocalParser } from './create.input-file.csv-local-parser';
|
|
9
9
|
declare class DinoFormBase {
|
|
10
10
|
ModalWrap: import("react").FC<import("./modal-wrapper").IFormModalWrapperProps>;
|
|
11
|
-
BottomBarWrap: StyledComponent<
|
|
11
|
+
BottomBarWrap: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
12
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
13
|
+
}, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
12
14
|
FormValidator: typeof FormValidator;
|
|
13
15
|
validator: <T>(configs: import("./validator").IFormValidatorConfig<T>) => FormValidator<T>;
|
|
14
|
-
createFormBase: <
|
|
16
|
+
createFormBase: <T>(params?: import("./create.form-base").IFormBaseParams<T> | undefined) => import("./create.form-base").IFormBaseResult<T>;
|
|
15
17
|
createFormComfirm: <T = any>(param?: import("./create.form-comfirm").IFormComfirmParam<T> | undefined) => import("react").ComponentType<import("react").PropsWithChildren<import("./create.form-comfirm").IFormComfirmProps<T>>>;
|
|
16
18
|
createFormGridLayout: <T>(params: import("./create.form-grid-layout").IFormGridLayoutParams<T>) => import("react").ComponentType<import("./create.form-grid-layout").IFormGridLayoutProps<T>>;
|
|
17
19
|
createDateExpired: typeof CreateDateExpired;
|
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { IPartialError } from './validator';
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
export type ISetModelStateFunc<T> = (state: Pick<T, keyof T>) => void;
|
|
4
|
+
export interface IFormBaseContext<T> {
|
|
5
|
+
modelState?: Partial<T>;
|
|
6
|
+
setModelState: ISetModelStateFunc<T>;
|
|
7
|
+
messageErrors: IPartialError<T>;
|
|
8
|
+
onBlur: (keyName: keyof T) => void;
|
|
9
|
+
setError: (keyName: keyof T, message: string) => void;
|
|
10
|
+
clearErrorAll: (keyName: keyof T) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface IFormBase<T> {
|
|
13
|
+
data?: Partial<T>;
|
|
14
|
+
messageErrors: IPartialError<T>;
|
|
15
|
+
onBlur: (keyName: keyof T) => void;
|
|
7
16
|
disabled?: boolean;
|
|
8
17
|
}
|
|
9
|
-
export interface IFormInputBase<
|
|
10
|
-
|
|
18
|
+
export interface IFormInputBase<T, S = any> extends Partial<IFormBase<T>> {
|
|
19
|
+
formData?: Partial<T>;
|
|
20
|
+
name?: keyof T;
|
|
11
21
|
label?: React.ReactNode;
|
|
12
22
|
placeholder?: string;
|
|
13
23
|
defaultValue?: any;
|
|
14
|
-
|
|
24
|
+
onObservedChange?: (name: keyof T, value?: any) => void;
|
|
25
|
+
slots?: S;
|
|
15
26
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComponentType, ReactNode } from 'react';
|
|
2
2
|
import { GridProps, RegularBreakpoints } from '@mui/material';
|
|
3
3
|
import { IToolbarPannelProps } from './toolbar-pannel';
|
|
4
|
-
import {
|
|
4
|
+
import { IFilterBarParams, IFilterState } from '../filter-bar';
|
|
5
5
|
import { TableGridItemActionsConfig, ITableGridItemActionsBaseProps } from './item-actions';
|
|
6
6
|
export interface ITableGridItemProps<T = any> {
|
|
7
7
|
value: T;
|
|
@@ -34,7 +34,7 @@ export interface ITableGridInnerSlots<T> extends ITableGridSlots<T> {
|
|
|
34
34
|
export interface ITableGridParams<T> extends ITableGridFlexibleSlots<T> {
|
|
35
35
|
getSelecterId: IGetSelecterIdFunc<T>;
|
|
36
36
|
title?: ReactNode;
|
|
37
|
-
filterBarConfig?:
|
|
37
|
+
filterBarConfig?: IFilterBarParams<T>;
|
|
38
38
|
size?: RegularBreakpoints;
|
|
39
39
|
slots?: ITableGridSlots<T>;
|
|
40
40
|
}
|
|
@@ -6,6 +6,7 @@ type DeepPartial<T> = {
|
|
|
6
6
|
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
|
7
7
|
} | undefined;
|
|
8
8
|
export declare const mergeObjects: <T>(...objects: DeepPartial<T>[]) => T;
|
|
9
|
+
export declare const cleanObject: <T extends object>(obj: T) => Partial<T>;
|
|
9
10
|
export declare const encodeBase64: (input: string) => string;
|
|
10
11
|
export declare const decodeBase64: (encoded: string) => string | undefined;
|
|
11
12
|
export declare const tryParseObject: <T>(value: any, defaultValue: T) => T;
|
package/dist/utils/helpers.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{slicedToArray as r,asyncToGenerator as t,typeof as n,regeneratorRuntime as e,objectSpread2 as o,toArray as a}from"../_virtual/_rollupPluginBabelHelpers.js";import c from"dayjs";var i=function(r){return new Promise((function(t){return setTimeout(t,r)}))},u=function(){var n=t(e().mark((function t(n,o){var a,c,u;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Promise.all([n(),i(o)]);case 2:return a=t.sent,c=r(a,1),u=c[0],t.abrupt("return",u);case 6:case"end":return t.stop()}}),t)})));return function(r,t){return n.apply(this,arguments)}}(),f=function(r,t){setTimeout((function(){window.scrollTo(o({top:0,left:0,behavior:"smooth"},r))}),t||50)},s=function(){for(var r=arguments.length,t=new Array(r),n=0;n<r;n++)t[n]=arguments[n];return t.join(" ")},l=function(r){return r&&"object"===n(r)&&!Array.isArray(r)},d=function(){for(var r=arguments.length,t=new Array(r),n=0;n<r;n++)t[n]=arguments[n];return t.reduce((function(r,t){return t?(Object.keys(t).forEach((function(n){l(r[n])&&l(t[n])?r[n]=d(r[n],t[n]):r[n]=t[n]})),r):r}),{})},v=function(t){try{return t?Object.entries(t).reduce((function(t,n){var e=r(n,2),o=e[0],a=e[1];return void 0!==a&&(t[o]=a),t}),{}):{}}catch(r){return{}}},h=function(r){try{var t=(new TextEncoder).encode(r),n="";return t.forEach((function(r){n+=String.fromCharCode(r)})),btoa(n)}catch(r){return console.error("Error encoding to base64",r),""}},p=function(r){try{for(var t=atob(r),n=new Uint8Array(t.length),e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return(new TextDecoder).decode(n)}catch(r){return void console.error("Error decoding base64",r)}},y=function(r,t){try{if(!r)throw new Error("Value is required!");return JSON.parse(r)}catch(r){return t}},m=function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];try{if(!r)return[];var n=JSON.parse(r);return Array.isArray(n)?n:[]}catch(r){return t}},g=function(r,t){try{return r?parseInt(r):t}catch(r){return t}},w=function(r){return new Promise((function(t,n){var e=new FileReader;e.onload=function(){try{var r=e.result.split(/\r?\n/).filter(Boolean);if(r.length<1)return t([]);var n=r[0].split(",").map((function(r){return r.trim()})),o=r.slice(1).map((function(r){var t=r.split(",").map((function(r){return r.trim()})),e={};return n.forEach((function(r,n){var o;e[r]=null!==(o=t[n])&&void 0!==o?o:""})),e}));t(o)}catch(r){t([])}},e.onerror=function(){n(new Error("Error reading file"))},e.readAsText(r)}))},b=function(r){return r<1024?r.toFixed(2)+" Kb":r<1048576?(r/1024).toFixed(2)+" Mb":r<1073741824?(r/1048576).toFixed(2)+" Gb":(r/1073741824).toFixed(2)+" Tb"},A=function(t){var n,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"$ ",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";try{n=parseFloat(t),isNaN(n)&&(n=0)}catch(r){n=0}var a=n.toFixed(2).split("."),c=r(a,2),i=c[0],u=c[1],f=i.replace(/\B(?=(\d{3})+(?!\d))/g," "),s=f;return"00"!==u&&(s="".concat(f,".").concat(u)),"".concat(e).concat(s).concat(o)},Y=function(r){return r.toLocaleString("en-US")},x=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(!r)return r;var t=Array.from(r),n=a(t),e=n[0],o=n.slice(1);return"".concat(e.toUpperCase()).concat(o.join(""))},E={style1:"DD/MM/YYYY HH:mm",style2:"MMMM D, YYYY",style3:"MM-DD-YYYY"},j=function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"style1";try{if(!r)throw new Error;return c(r).format(E[t])}catch(r){return"unknown"}};export{v as cleanObject,p as decodeBase64,h as encodeBase64,u as fetchDelay,x as formatCapitalizeFirstText,A as formatCurrency,j as formatDatetime,b as formatFileSize,Y as formatNumberWithCommas,s as mergeClasses,d as mergeObjects,i as sleep,m as tryParseArray,w as tryParseCsvFileToArray,g as tryParseIntRequired,y as tryParseObject,f as windowScrollToTop};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../src/utils/helpers.ts"],"sourcesContent":["import dayjs from 'dayjs'\r\n\r\nexport const sleep = (sec: number) => new Promise((res) => setTimeout(res, sec))\r\n\r\nexport const fetchDelay = async function <TModel>(action: () => Promise<TModel>, sec: number) {\r\n const [res] = await Promise.all([action(), sleep(sec)])\r\n return res\r\n}\r\n\r\nexport const windowScrollToTop = (options?: ScrollToOptions, delay?: number) => {\r\n setTimeout(() => {\r\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth', ...options })\r\n }, delay || 50)\r\n}\r\n\r\nexport const mergeClasses = (...classes: string[]) => {\r\n return classes.join(' ')\r\n}\r\n\r\n/**\r\n * Simple object check.\r\n * @param item\r\n * @returns {boolean}\r\n */\r\nconst isObject = (obj: any) => {\r\n return obj && typeof obj === 'object' && !Array.isArray(obj)\r\n}\r\n\r\ntype DeepPartial<T> = { [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P] } | undefined\r\n\r\nexport const mergeObjects = <T>(...objects: DeepPartial<T>[]): T => {\r\n return objects.reduce((prev, obj) => {\r\n if (!obj) return prev\r\n Object.keys(obj).forEach((key) => {\r\n if (isObject((prev as any)[key]) && isObject((obj as any)[key])) {\r\n ;(prev as any)[key] = mergeObjects((prev as any)[key], (obj as any)[key])\r\n } else {\r\n ;(prev as any)[key] = (obj as any)[key]\r\n }\r\n })\r\n return prev\r\n }, {} as T) as any\r\n}\r\n\r\nexport const encodeBase64 = (input: string): string => {\r\n try {\r\n const utf8Bytes = new TextEncoder().encode(input)\r\n let binaryString = ''\r\n utf8Bytes.forEach((byte) => {\r\n binaryString += String.fromCharCode(byte)\r\n })\r\n return btoa(binaryString)\r\n } catch (error) {\r\n console.error('Error encoding to base64', error)\r\n return ''\r\n }\r\n}\r\n\r\nexport const decodeBase64 = (encoded: string): string | undefined => {\r\n try {\r\n const binaryString = atob(encoded)\r\n const utf8Bytes = new Uint8Array(binaryString.length)\r\n for (let i = 0; i < binaryString.length; i++) {\r\n utf8Bytes[i] = binaryString.charCodeAt(i)\r\n }\r\n return new TextDecoder().decode(utf8Bytes)\r\n } catch (error) {\r\n console.error('Error decoding base64', error)\r\n return\r\n }\r\n}\r\n\r\n//#region Try Parse\r\nexport const tryParseObject = function <T>(value: any, defaultValue: T): T {\r\n try {\r\n if (!value) {\r\n throw new Error('Value is required!')\r\n }\r\n return JSON.parse(value)\r\n } catch {\r\n // console.log(error)\r\n return defaultValue\r\n }\r\n}\r\n\r\nexport const tryParseArray = function <T>(value: any, defaultValue: T[] = []): T[] {\r\n try {\r\n if (!value) return []\r\n const parseValue = JSON.parse(value)\r\n return Array.isArray(parseValue) ? parseValue : []\r\n } catch {\r\n return defaultValue\r\n }\r\n}\r\n\r\nexport const tryParseIntRequired = function (value: any, defaultValue: number): number {\r\n try {\r\n if (!value) return defaultValue\r\n return parseInt(value)\r\n } catch {\r\n return defaultValue\r\n }\r\n}\r\n\r\nexport const tryParseCsvFileToArray = (file: File): Promise<Record<string, string>[]> => {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n\r\n reader.onload = () => {\r\n try {\r\n const text = reader.result as string\r\n const rows = text.split(/\\r?\\n/).filter(Boolean)\r\n\r\n if (rows.length < 1) return resolve([])\r\n\r\n const headers = rows[0].split(',').map((h) => h.trim())\r\n\r\n const data = rows.slice(1).map((row) => {\r\n const values = row.split(',').map((v) => v.trim())\r\n const item: Record<string, string> = {}\r\n\r\n headers.forEach((header, index) => {\r\n item[header] = values[index] ?? ''\r\n })\r\n\r\n return item\r\n })\r\n\r\n resolve(data)\r\n } catch (error) {\r\n resolve([])\r\n }\r\n }\r\n\r\n reader.onerror = () => {\r\n reject(new Error('Error reading file'))\r\n }\r\n\r\n reader.readAsText(file)\r\n })\r\n}\r\n//#endregion\r\n\r\n//#region Format\r\nexport const formatFileSize = (sizeInKb: number) => {\r\n if (sizeInKb < 1024) {\r\n return sizeInKb.toFixed(2) + ' Kb'\r\n } else if (sizeInKb < 1024 * 1024) {\r\n return (sizeInKb / 1024).toFixed(2) + ' Mb'\r\n } else if (sizeInKb < 1024 * 1024 * 1024) {\r\n return (sizeInKb / (1024 * 1024)).toFixed(2) + ' Gb'\r\n } else {\r\n return (sizeInKb / (1024 * 1024 * 1024)).toFixed(2) + ' Tb'\r\n }\r\n}\r\n\r\nexport const formatCurrency = (value?: any, prefix = '$ ', suffix = ''): string => {\r\n let parsedValue\r\n try {\r\n parsedValue = parseFloat(value)\r\n if (isNaN(parsedValue)) parsedValue = 0\r\n } catch (e) {\r\n parsedValue = 0\r\n }\r\n const roundedValue = parsedValue.toFixed(2)\r\n const [integerPart, decimalPart] = roundedValue.split('.')\r\n const formattedIntegerPart = integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ')\r\n\r\n let formattedValue = formattedIntegerPart\r\n if (decimalPart !== '00') {\r\n formattedValue = `${formattedIntegerPart}.${decimalPart}`\r\n }\r\n return `${prefix}${formattedValue}${suffix}`\r\n}\r\n\r\nexport const formatNumberWithCommas = (number: number): string => {\r\n return number.toLocaleString('en-US')\r\n}\r\n\r\nexport const formatCapitalizeFirstText = (value: string = '') => {\r\n if (!value) return value\r\n const [first, ...data] = Array.from(value)\r\n return `${first.toUpperCase()}${data.join('')}`\r\n}\r\n\r\nconst formatDatetimeStyle = {\r\n style1: 'DD/MM/YYYY HH:mm',\r\n style2: 'MMMM D, YYYY',\r\n style3: 'MM-DD-YYYY'\r\n}\r\n\r\n/**\r\n * Formats a datetime string using one of the predefined styles.\r\n *\r\n * Available format styles:\r\n * - style1: DD/MM/YYYY HH:mm → e.g., '25/04/2025 14:30'\r\n * - style2: 'MMMM D, YYYY' → e.g., 'April 25, 2025'\r\n * - style2: 'MM-DD-YYYY' → e.g., '04-25-2025'\r\n * @param value - A datetime string (ISO format or any format parsable by dayjs).\r\n * @param format - Format style key: 'style1' or 'style2'. Defaults to 'style1'.\r\n * @returns A formatted datetime string, or 'unknown' if the input is invalid or unparsable.\r\n */\r\nexport const formatDatetime = (value: string, format: keyof typeof formatDatetimeStyle = 'style1'): string => {\r\n try {\r\n if (!value) throw new Error()\r\n return dayjs(value).format(formatDatetimeStyle[format])\r\n } catch (error) {\r\n return 'unknown'\r\n }\r\n}\r\n//#endregion\r\n"],"names":["sleep","sec","Promise","res","setTimeout","fetchDelay","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","action","_yield$Promise$all","_yield$Promise$all2","wrap","_context","prev","next","all","sent","_slicedToArray","abrupt","stop","_x","_x2","apply","this","arguments","windowScrollToTop","options","delay","window","scrollTo","_objectSpread","top","left","behavior","mergeClasses","_len","length","classes","Array","_key","join","isObject","obj","_typeof","isArray","mergeObjects","_len2","objects","_key2","reduce","Object","keys","forEach","key","encodeBase64","input","utf8Bytes","TextEncoder","encode","binaryString","byte","String","fromCharCode","btoa","error","console","decodeBase64","encoded","atob","Uint8Array","i","charCodeAt","TextDecoder","decode","tryParseObject","value","defaultValue","Error","JSON","parse","_unused","tryParseArray","parseValue","_unused2","tryParseIntRequired","parseInt","_unused3","tryParseCsvFileToArray","file","resolve","reject","reader","FileReader","onload","rows","result","split","filter","Boolean","headers","map","h","trim","data","slice","row","values","v","item","header","index","_values$index","onerror","readAsText","formatFileSize","sizeInKb","toFixed","formatCurrency","parsedValue","prefix","undefined","suffix","parseFloat","isNaN","e","_roundedValue$split","_roundedValue$split2","integerPart","decimalPart","formattedIntegerPart","replace","formattedValue","concat","formatNumberWithCommas","number","toLocaleString","formatCapitalizeFirstText","_Array$from","from","_Array$from2","_toArray","first","toUpperCase","formatDatetimeStyle","style1","style2","style3","formatDatetime","format","dayjs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../src/utils/helpers.ts"],"sourcesContent":["import dayjs from 'dayjs'\r\n\r\nexport const sleep = (sec: number) => new Promise((res) => setTimeout(res, sec))\r\n\r\nexport const fetchDelay = async function <TModel>(action: () => Promise<TModel>, sec: number) {\r\n const [res] = await Promise.all([action(), sleep(sec)])\r\n return res\r\n}\r\n\r\nexport const windowScrollToTop = (options?: ScrollToOptions, delay?: number) => {\r\n setTimeout(() => {\r\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth', ...options })\r\n }, delay || 50)\r\n}\r\n\r\nexport const mergeClasses = (...classes: string[]) => {\r\n return classes.join(' ')\r\n}\r\n\r\n/**\r\n * Simple object check.\r\n * @param item\r\n * @returns {boolean}\r\n */\r\nconst isObject = (obj: any) => {\r\n return obj && typeof obj === 'object' && !Array.isArray(obj)\r\n}\r\n\r\ntype DeepPartial<T> = { [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P] } | undefined\r\n\r\nexport const mergeObjects = <T>(...objects: DeepPartial<T>[]): T => {\r\n return objects.reduce((prev, obj) => {\r\n if (!obj) return prev\r\n Object.keys(obj).forEach((key) => {\r\n if (isObject((prev as any)[key]) && isObject((obj as any)[key])) {\r\n ;(prev as any)[key] = mergeObjects((prev as any)[key], (obj as any)[key])\r\n } else {\r\n ;(prev as any)[key] = (obj as any)[key]\r\n }\r\n })\r\n return prev\r\n }, {} as T) as any\r\n}\r\n\r\nexport const cleanObject = <T extends object>(obj: T): Partial<T> => {\r\n try {\r\n if (!obj) return {}\r\n return Object.entries(obj).reduce((acc, [key, value]) => {\r\n if (value !== undefined) {\r\n ;(acc as any)[key] = value\r\n }\r\n return acc\r\n }, {} as Partial<T>)\r\n } catch (error) {\r\n return {}\r\n }\r\n}\r\n\r\nexport const encodeBase64 = (input: string): string => {\r\n try {\r\n const utf8Bytes = new TextEncoder().encode(input)\r\n let binaryString = ''\r\n utf8Bytes.forEach((byte) => {\r\n binaryString += String.fromCharCode(byte)\r\n })\r\n return btoa(binaryString)\r\n } catch (error) {\r\n console.error('Error encoding to base64', error)\r\n return ''\r\n }\r\n}\r\n\r\nexport const decodeBase64 = (encoded: string): string | undefined => {\r\n try {\r\n const binaryString = atob(encoded)\r\n const utf8Bytes = new Uint8Array(binaryString.length)\r\n for (let i = 0; i < binaryString.length; i++) {\r\n utf8Bytes[i] = binaryString.charCodeAt(i)\r\n }\r\n return new TextDecoder().decode(utf8Bytes)\r\n } catch (error) {\r\n console.error('Error decoding base64', error)\r\n return\r\n }\r\n}\r\n\r\n//#region Try Parse\r\nexport const tryParseObject = function <T>(value: any, defaultValue: T): T {\r\n try {\r\n if (!value) {\r\n throw new Error('Value is required!')\r\n }\r\n return JSON.parse(value)\r\n } catch {\r\n // console.log(error)\r\n return defaultValue\r\n }\r\n}\r\n\r\nexport const tryParseArray = function <T>(value: any, defaultValue: T[] = []): T[] {\r\n try {\r\n if (!value) return []\r\n const parseValue = JSON.parse(value)\r\n return Array.isArray(parseValue) ? parseValue : []\r\n } catch {\r\n return defaultValue\r\n }\r\n}\r\n\r\nexport const tryParseIntRequired = function (value: any, defaultValue: number): number {\r\n try {\r\n if (!value) return defaultValue\r\n return parseInt(value)\r\n } catch {\r\n return defaultValue\r\n }\r\n}\r\n\r\nexport const tryParseCsvFileToArray = (file: File): Promise<Record<string, string>[]> => {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n\r\n reader.onload = () => {\r\n try {\r\n const text = reader.result as string\r\n const rows = text.split(/\\r?\\n/).filter(Boolean)\r\n\r\n if (rows.length < 1) return resolve([])\r\n\r\n const headers = rows[0].split(',').map((h) => h.trim())\r\n\r\n const data = rows.slice(1).map((row) => {\r\n const values = row.split(',').map((v) => v.trim())\r\n const item: Record<string, string> = {}\r\n\r\n headers.forEach((header, index) => {\r\n item[header] = values[index] ?? ''\r\n })\r\n\r\n return item\r\n })\r\n\r\n resolve(data)\r\n } catch (error) {\r\n resolve([])\r\n }\r\n }\r\n\r\n reader.onerror = () => {\r\n reject(new Error('Error reading file'))\r\n }\r\n\r\n reader.readAsText(file)\r\n })\r\n}\r\n//#endregion\r\n\r\n//#region Format\r\nexport const formatFileSize = (sizeInKb: number) => {\r\n if (sizeInKb < 1024) {\r\n return sizeInKb.toFixed(2) + ' Kb'\r\n } else if (sizeInKb < 1024 * 1024) {\r\n return (sizeInKb / 1024).toFixed(2) + ' Mb'\r\n } else if (sizeInKb < 1024 * 1024 * 1024) {\r\n return (sizeInKb / (1024 * 1024)).toFixed(2) + ' Gb'\r\n } else {\r\n return (sizeInKb / (1024 * 1024 * 1024)).toFixed(2) + ' Tb'\r\n }\r\n}\r\n\r\nexport const formatCurrency = (value?: any, prefix = '$ ', suffix = ''): string => {\r\n let parsedValue\r\n try {\r\n parsedValue = parseFloat(value)\r\n if (isNaN(parsedValue)) parsedValue = 0\r\n } catch (e) {\r\n parsedValue = 0\r\n }\r\n const roundedValue = parsedValue.toFixed(2)\r\n const [integerPart, decimalPart] = roundedValue.split('.')\r\n const formattedIntegerPart = integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ')\r\n\r\n let formattedValue = formattedIntegerPart\r\n if (decimalPart !== '00') {\r\n formattedValue = `${formattedIntegerPart}.${decimalPart}`\r\n }\r\n return `${prefix}${formattedValue}${suffix}`\r\n}\r\n\r\nexport const formatNumberWithCommas = (number: number): string => {\r\n return number.toLocaleString('en-US')\r\n}\r\n\r\nexport const formatCapitalizeFirstText = (value: string = '') => {\r\n if (!value) return value\r\n const [first, ...data] = Array.from(value)\r\n return `${first.toUpperCase()}${data.join('')}`\r\n}\r\n\r\nconst formatDatetimeStyle = {\r\n style1: 'DD/MM/YYYY HH:mm',\r\n style2: 'MMMM D, YYYY',\r\n style3: 'MM-DD-YYYY'\r\n}\r\n\r\n/**\r\n * Formats a datetime string using one of the predefined styles.\r\n *\r\n * Available format styles:\r\n * - style1: DD/MM/YYYY HH:mm → e.g., '25/04/2025 14:30'\r\n * - style2: 'MMMM D, YYYY' → e.g., 'April 25, 2025'\r\n * - style2: 'MM-DD-YYYY' → e.g., '04-25-2025'\r\n * @param value - A datetime string (ISO format or any format parsable by dayjs).\r\n * @param format - Format style key: 'style1' or 'style2'. Defaults to 'style1'.\r\n * @returns A formatted datetime string, or 'unknown' if the input is invalid or unparsable.\r\n */\r\nexport const formatDatetime = (value: string, format: keyof typeof formatDatetimeStyle = 'style1'): string => {\r\n try {\r\n if (!value) throw new Error()\r\n return dayjs(value).format(formatDatetimeStyle[format])\r\n } catch (error) {\r\n return 'unknown'\r\n }\r\n}\r\n//#endregion\r\n"],"names":["sleep","sec","Promise","res","setTimeout","fetchDelay","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","action","_yield$Promise$all","_yield$Promise$all2","wrap","_context","prev","next","all","sent","_slicedToArray","abrupt","stop","_x","_x2","apply","this","arguments","windowScrollToTop","options","delay","window","scrollTo","_objectSpread","top","left","behavior","mergeClasses","_len","length","classes","Array","_key","join","isObject","obj","_typeof","isArray","mergeObjects","_len2","objects","_key2","reduce","Object","keys","forEach","key","cleanObject","entries","acc","_ref2","_ref3","value","undefined","error","encodeBase64","input","utf8Bytes","TextEncoder","encode","binaryString","byte","String","fromCharCode","btoa","console","decodeBase64","encoded","atob","Uint8Array","i","charCodeAt","TextDecoder","decode","tryParseObject","defaultValue","Error","JSON","parse","_unused","tryParseArray","parseValue","_unused2","tryParseIntRequired","parseInt","_unused3","tryParseCsvFileToArray","file","resolve","reject","reader","FileReader","onload","rows","result","split","filter","Boolean","headers","map","h","trim","data","slice","row","values","v","item","header","index","_values$index","onerror","readAsText","formatFileSize","sizeInKb","toFixed","formatCurrency","parsedValue","prefix","suffix","parseFloat","isNaN","e","_roundedValue$split","_roundedValue$split2","integerPart","decimalPart","formattedIntegerPart","replace","formattedValue","concat","formatNumberWithCommas","number","toLocaleString","formatCapitalizeFirstText","_Array$from","from","_Array$from2","_toArray","first","toUpperCase","formatDatetimeStyle","style1","style2","style3","formatDatetime","format","dayjs"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dinocollab-core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.21",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -15,12 +15,15 @@
|
|
|
15
15
|
"dist"
|
|
16
16
|
],
|
|
17
17
|
"scripts": {
|
|
18
|
-
"build": "npx rimraf dist && rollup -c"
|
|
18
|
+
"build": "npx rimraf dist && rollup -c",
|
|
19
|
+
"build:watch": "rollup -c -w"
|
|
19
20
|
},
|
|
20
21
|
"keywords": [],
|
|
21
22
|
"author": "",
|
|
22
23
|
"license": "ISC",
|
|
23
24
|
"peerDependencies": {
|
|
25
|
+
"@emotion/react": "11.14.0",
|
|
26
|
+
"@emotion/styled": "11.14.0",
|
|
24
27
|
"@mui/icons-material": "5.17.1",
|
|
25
28
|
"@mui/material": "5.17.1",
|
|
26
29
|
"@mui/x-data-grid": "6.20.4",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{inherits as r,createClass as e,classCallCheck as i,callSuper as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as l,jsx as t}from"react/jsx-runtime";import{List as a,ListItem as c,ListItemButton as s,ListItemText as d}from"@mui/material";import h from"./base.js";function m(m){var u=function(){function m(){return i(this,m),n(this,m,arguments)}return r(m,h),e(m,[{key:"render",value:function(){return l(a,{disablePadding:!0,children:[t(c,{children:t(s,{children:t(d,{children:"Item 1"})})}),t(c,{children:t(s,{children:"Item 2"})}),t(c,{children:t(s,{children:"Item 3"})}),t(c,{children:t(s,{children:"Item 4"})}),t(c,{children:t(s,{children:"Item 5"})})]})}}])}();return u}export{m as default};
|
|
2
|
-
//# sourceMappingURL=create.sort-menu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.sort-menu.js","sources":["../../src/filter-bar/create.sort-menu.tsx"],"sourcesContent":["import { List, ListItem, ListItemButton, ListItemText } from '@mui/material'\r\nimport FilterBarBase from './base'\r\nimport { IFilterPanelParams, IFilterPannelSubmitFunc } from './types'\r\n\r\ninterface IProps<T> {\r\n onSubmit?: IFilterPannelSubmitFunc<T>\r\n}\r\n\r\ninterface IState<T> {}\r\n\r\nfunction CreateFilterSort<T>(params: IFilterPanelParams<T>): React.ComponentType<IProps<T>> {\r\n class FilterSort extends FilterBarBase<IProps<T>, IState<T>, T> {\r\n render() {\r\n // const sortFields = this.getSortFields(params.fields)\r\n // const keys = Object.keys(sortFields) as (keyof FilterFields<T>)[]\r\n return (\r\n <List disablePadding>\r\n <ListItem>\r\n <ListItemButton>\r\n <ListItemText>Item 1</ListItemText>\r\n </ListItemButton>\r\n </ListItem>\r\n <ListItem>\r\n <ListItemButton>Item 2</ListItemButton>\r\n </ListItem>\r\n <ListItem>\r\n <ListItemButton>Item 3</ListItemButton>\r\n </ListItem>\r\n <ListItem>\r\n <ListItemButton>Item 4</ListItemButton>\r\n </ListItem>\r\n <ListItem>\r\n <ListItemButton>Item 5</ListItemButton>\r\n </ListItem>\r\n </List>\r\n )\r\n }\r\n }\r\n\r\n return FilterSort\r\n}\r\n\r\nexport default CreateFilterSort\r\n"],"names":["CreateFilterSort","params","FilterSort","_classCallCheck","_callSuper","this","arguments","_inherits","FilterBarBase","_createClass","key","value","_jsxs","List","disablePadding","children","_jsx","ListItem","ListItemButton","ListItemText"],"mappings":"4RAUA,SAASA,EAAoBC,GAA6B,IAClDC,aAAW,SAAAA,IAAA,OAAAC,OAAAD,GAAAE,EAAAC,KAAAH,EAAAI,UAAA,CAAA,OAAAC,EAAAL,EAAQM,GAARC,EAAAP,EAAA,CAAA,CAAAQ,IAAA,SAAAC,MACf,WAGE,OACEC,EAACC,EAAI,CAACC,gBACJ,EAAAC,SAAA,CAAAC,EAACC,EAAQ,CAAAF,SACPC,EAACE,YACCF,EAACG,EAAkC,CAAAJ,SAAA,eAGvCC,EAACC,EAAQ,CAAAF,SACPC,EAACE,EAAsC,CAAAH,SAAA,aAEzCC,EAACC,EACC,CAAAF,SAAAC,EAACE,EAAc,CAAAH,SAAA,aAEjBC,EAACC,EAAQ,CAAAF,SACPC,EAACE,yBAEHF,EAACC,EACC,CAAAF,SAAAC,EAACE,EAAsC,CAAAH,SAAA,eAI/C,IAAC,IAGH,OAAOb,CACT"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ComponentType } from 'react';
|
|
2
|
-
import { AutocompleteProps } from '@mui/material';
|
|
3
|
-
import { IFormInputBase } from '../form';
|
|
4
|
-
export interface IAutocompleteSimpleModel<O = any> {
|
|
5
|
-
value: string;
|
|
6
|
-
label?: string;
|
|
7
|
-
other?: O;
|
|
8
|
-
}
|
|
9
|
-
export type IOptionsGetter<T, O = any> = (value: any, model: T) => IAutocompleteSimpleModel<O>;
|
|
10
|
-
export interface IAutocompleteSimpleSlots<O> {
|
|
11
|
-
options?: IAutocompleteSimpleModel<O>[];
|
|
12
|
-
autocompleteProps?: AutocompleteProps<any, any, any, any>;
|
|
13
|
-
}
|
|
14
|
-
export interface IAutocompleteSimpleProps<T, O> extends IFormInputBase<T>, IAutocompleteSimpleSlots<O> {
|
|
15
|
-
}
|
|
16
|
-
export interface IAutocompleteSimpleState {
|
|
17
|
-
}
|
|
18
|
-
declare function CreateAutocompleteSimple<T, O = any>(params: IAutocompleteSimpleSlots<O>): ComponentType<IAutocompleteSimpleProps<T, O>>;
|
|
19
|
-
export default CreateAutocompleteSimple;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React, { Component } from 'react';
|
|
2
|
-
import { IQuickRangeConfig } from './types';
|
|
3
|
-
interface IProps {
|
|
4
|
-
data?: IQuickRangeConfig;
|
|
5
|
-
onChangeRange?: (value: IQuickRangeConfig) => void;
|
|
6
|
-
}
|
|
7
|
-
export default class AbsoluteTimeRage extends Component<IProps> {
|
|
8
|
-
render(): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
date1Ref: React.RefObject<HTMLInputElement>;
|
|
10
|
-
date2Ref: React.RefObject<HTMLInputElement>;
|
|
11
|
-
dateTimeRangePickerRanges(): JSX.Element;
|
|
12
|
-
handleApply: (value: Partial<IQuickRangeConfig>) => Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export {};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import dayjs from 'dayjs';
|
|
2
|
-
import { IQuickRangeConfig, IRange } from './types';
|
|
3
|
-
type TDateTimeKetType = /** 'minute' | 'hour' | */ 'day' | 'month' | 'year';
|
|
4
|
-
export declare const MapDateTimeKey: (count: number, type?: TDateTimeKetType) => string | undefined;
|
|
5
|
-
declare class DTRHelperBase {
|
|
6
|
-
formatString: string;
|
|
7
|
-
/**
|
|
8
|
-
* getTitle generates a formatted date range string based on the input dates.
|
|
9
|
-
* @param from - Start date as a string in milliseconds.
|
|
10
|
-
* @param to - End date as a string in milliseconds.
|
|
11
|
-
* @param quickRanges - quickRanges as a ```QuickRangeConfig[]```.
|
|
12
|
-
* @returns Formatted date range or quick range title or fallback string for invalid/undefined values.
|
|
13
|
-
*/
|
|
14
|
-
getTitle: (from?: string, to?: string, quickRanges?: IQuickRangeConfig[]) => string;
|
|
15
|
-
/**
|
|
16
|
-
* getTime converts a formatted date string into a timestamp in milliseconds.
|
|
17
|
-
* Returns the timestamp as a string or NaN if the date is invalid.
|
|
18
|
-
* @param value - Date string in the format 'MM/DD/YYYY'.
|
|
19
|
-
* @returns Timestamp in milliseconds as a string.
|
|
20
|
-
*/
|
|
21
|
-
getTime: (value: string, options?: ((d: dayjs.Dayjs) => dayjs.Dayjs) | undefined) => string;
|
|
22
|
-
/**
|
|
23
|
-
* parseDayJS parses a date in milliseconds into a dayjs object.
|
|
24
|
-
* Returns undefined if the date is invalid or if parsing fails.
|
|
25
|
-
* @param value - String representing a date in milliseconds or other formats.
|
|
26
|
-
* @returns A valid dayjs object or undefined if invalid.
|
|
27
|
-
*/
|
|
28
|
-
parseDayJS: (value?: string) => dayjs.Dayjs | undefined;
|
|
29
|
-
dayRange: (range?: number) => Required<IRange>;
|
|
30
|
-
monthRange: (range?: number) => Required<IRange>;
|
|
31
|
-
monthString: (range?: number) => string;
|
|
32
|
-
yearRange: (range?: number) => Required<IRange>;
|
|
33
|
-
yearString: (range?: number) => string;
|
|
34
|
-
}
|
|
35
|
-
export declare const DTRHelper: DTRHelperBase;
|
|
36
|
-
export {};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Component } from 'react';
|
|
2
|
-
import { IQuickRangeConfig } from './types';
|
|
3
|
-
import { IMenuWrap } from './menu-wrap';
|
|
4
|
-
interface IProps {
|
|
5
|
-
data: IQuickRangeConfig[];
|
|
6
|
-
defaultSelected?: IQuickRangeConfig;
|
|
7
|
-
onChange?: (value: IQuickRangeConfig) => void;
|
|
8
|
-
}
|
|
9
|
-
interface IState {
|
|
10
|
-
selected?: IQuickRangeConfig;
|
|
11
|
-
}
|
|
12
|
-
export default class DateTimeRange extends Component<IProps, IState> {
|
|
13
|
-
configs: IQuickRangeConfig[];
|
|
14
|
-
constructor(props: IProps);
|
|
15
|
-
refMenuWrap: IMenuWrap | null;
|
|
16
|
-
render(): import("react/jsx-runtime").JSX.Element;
|
|
17
|
-
handleSelectItem: (item: IQuickRangeConfig) => void;
|
|
18
|
-
getTitle: () => {
|
|
19
|
-
text: string;
|
|
20
|
-
sub: string;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
export * from './types';
|
|
24
|
-
export * from './helpers';
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import React, { Component, PropsWithChildren } from 'react';
|
|
2
|
-
interface IProps {
|
|
3
|
-
title?: string;
|
|
4
|
-
subTitle?: string;
|
|
5
|
-
}
|
|
6
|
-
interface IState {
|
|
7
|
-
anchorEl: null | HTMLElement;
|
|
8
|
-
}
|
|
9
|
-
export interface IMenuWrap {
|
|
10
|
-
close: () => void;
|
|
11
|
-
}
|
|
12
|
-
export default class MenuWrap extends Component<PropsWithChildren<IProps>, IState> implements IMenuWrap {
|
|
13
|
-
constructor(props: IProps);
|
|
14
|
-
render(): import("react/jsx-runtime").JSX.Element;
|
|
15
|
-
renderTooltip: (child: JSX.Element) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
onOpen: (event: React.MouseEvent<HTMLElement>) => void;
|
|
17
|
-
close: () => void;
|
|
18
|
-
}
|
|
19
|
-
export {};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React, { Component } from 'react';
|
|
2
|
-
import { IQuickRangeConfig } from './types';
|
|
3
|
-
interface IProps {
|
|
4
|
-
selectedValue?: IQuickRangeConfig;
|
|
5
|
-
data: IQuickRangeConfig[];
|
|
6
|
-
onSelect: (item: IQuickRangeConfig) => void;
|
|
7
|
-
}
|
|
8
|
-
interface IState {
|
|
9
|
-
searchKey: string;
|
|
10
|
-
}
|
|
11
|
-
export default class QuickRanges extends Component<IProps, IState> {
|
|
12
|
-
constructor(props: IProps);
|
|
13
|
-
render: () => import("react/jsx-runtime").JSX.Element;
|
|
14
|
-
renderQuickRanges: (items: IQuickRangeConfig[]) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
-
renderQuickRangeCustom: (items: IQuickRangeConfig[], selected?: IQuickRangeConfig) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
handleChangeSearch: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement>;
|
|
17
|
-
getClassNameItem: (item: IQuickRangeConfig) => "" | "activated";
|
|
18
|
-
getData: () => IQuickRangeConfig[];
|
|
19
|
-
}
|
|
20
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { ITopBarInfo } from './top-bar.types';
|
|
2
|
-
import { IGrafanaDashBoardOptions } from './types';
|
|
3
|
-
interface IOptions extends ITopBarInfo, Omit<IGrafanaDashBoardOptions, 'from' | 'to'> {
|
|
4
|
-
}
|
|
5
|
-
export declare const TopBarInfoToQueryParam: (urlBase: string, options?: IOptions) => string;
|
|
6
|
-
export declare const GetTopBarInfoQueryParam: () => IGrafanaDashBoardOptions;
|
|
7
|
-
export {};
|