@quillsql/react 1.7.2 → 1.7.3
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/lib/AddToDashboardModal.js +249 -369
- package/lib/AddToDashboardModal.js.map +1 -1
- package/lib/BarList.js +92 -109
- package/lib/BarList.js.map +1 -1
- package/lib/Chart.d.ts +0 -1
- package/lib/Chart.js +359 -419
- package/lib/Chart.js.map +1 -1
- package/lib/Context.d.ts +1 -2
- package/lib/Context.js +91 -85
- package/lib/Context.js.map +1 -1
- package/lib/Dashboard.js +181 -209
- package/lib/Dashboard.js.map +1 -1
- package/lib/DateRangePicker/Calendar.js +87 -91
- package/lib/DateRangePicker/Calendar.js.map +1 -1
- package/lib/DateRangePicker/DateRangePicker.js +70 -68
- package/lib/DateRangePicker/DateRangePicker.js.map +1 -1
- package/lib/DateRangePicker/DateRangePickerButton.js +46 -57
- package/lib/DateRangePicker/DateRangePickerButton.js.map +1 -1
- package/lib/DateRangePicker/dateRangePickerUtils.js +105 -99
- package/lib/DateRangePicker/dateRangePickerUtils.js.map +1 -1
- package/lib/DateRangePicker/index.js +8 -1
- package/lib/DateRangePicker/index.js.map +1 -1
- package/lib/PieChart.js +221 -225
- package/lib/PieChart.js.map +1 -1
- package/lib/QuillProvider.d.ts +1 -2
- package/lib/QuillProvider.js +8 -18
- package/lib/QuillProvider.js.map +1 -1
- package/lib/ReportBuilder.js +430 -526
- package/lib/ReportBuilder.js.map +1 -1
- package/lib/SQLEditor.js +182 -268
- package/lib/SQLEditor.js.map +1 -1
- package/lib/Table.js +208 -261
- package/lib/Table.js.map +1 -1
- package/lib/TableChart.js +76 -75
- package/lib/TableChart.js.map +1 -1
- package/lib/assets/ArrowDownHeadIcon.js +5 -28
- package/lib/assets/ArrowDownHeadIcon.js.map +1 -1
- package/lib/assets/ArrowDownIcon.js +5 -28
- package/lib/assets/ArrowDownIcon.js.map +1 -1
- package/lib/assets/ArrowDownRightIcon.js +5 -28
- package/lib/assets/ArrowDownRightIcon.js.map +1 -1
- package/lib/assets/ArrowLeftHeadIcon.js +5 -28
- package/lib/assets/ArrowLeftHeadIcon.js.map +1 -1
- package/lib/assets/ArrowRightHeadIcon.js +5 -28
- package/lib/assets/ArrowRightHeadIcon.js.map +1 -1
- package/lib/assets/ArrowRightIcon.js +5 -28
- package/lib/assets/ArrowRightIcon.js.map +1 -1
- package/lib/assets/ArrowUpHeadIcon.js +5 -28
- package/lib/assets/ArrowUpHeadIcon.js.map +1 -1
- package/lib/assets/ArrowUpIcon.js +5 -28
- package/lib/assets/ArrowUpIcon.js.map +1 -1
- package/lib/assets/ArrowUpRightIcon.js +5 -28
- package/lib/assets/ArrowUpRightIcon.js.map +1 -1
- package/lib/assets/CalendarIcon.js +5 -28
- package/lib/assets/CalendarIcon.js.map +1 -1
- package/lib/assets/DoubleArrowLeftHeadIcon.js +5 -28
- package/lib/assets/DoubleArrowLeftHeadIcon.js.map +1 -1
- package/lib/assets/DoubleArrowRightHeadIcon.js +5 -28
- package/lib/assets/DoubleArrowRightHeadIcon.js.map +1 -1
- package/lib/assets/ExclamationFilledIcon.js +5 -28
- package/lib/assets/ExclamationFilledIcon.js.map +1 -1
- package/lib/assets/LoadingSpinner.js +5 -28
- package/lib/assets/LoadingSpinner.js.map +1 -1
- package/lib/assets/SearchIcon.js +5 -28
- package/lib/assets/SearchIcon.js.map +1 -1
- package/lib/assets/XCircleIcon.js +5 -28
- package/lib/assets/XCircleIcon.js.map +1 -1
- package/lib/assets/index.js +38 -16
- package/lib/assets/index.js.map +1 -1
- package/lib/components/BigModal/BigModal.js +45 -43
- package/lib/components/BigModal/BigModal.js.map +1 -1
- package/lib/components/Dropdown/Dropdown.js +57 -53
- package/lib/components/Dropdown/Dropdown.js.map +1 -1
- package/lib/components/Dropdown/DropdownItem.js +43 -40
- package/lib/components/Dropdown/DropdownItem.js.map +1 -1
- package/lib/components/Dropdown/index.js +10 -2
- package/lib/components/Dropdown/index.js.map +1 -1
- package/lib/components/Modal/Modal.js +45 -43
- package/lib/components/Modal/Modal.js.map +1 -1
- package/lib/components/Modal/index.js +8 -1
- package/lib/components/Modal/index.js.map +1 -1
- package/lib/components/selectUtils.js +20 -15
- package/lib/components/selectUtils.js.map +1 -1
- package/lib/contexts/BaseColorContext.js +5 -3
- package/lib/contexts/BaseColorContext.js.map +1 -1
- package/lib/contexts/HoveredValueContext.js +5 -3
- package/lib/contexts/HoveredValueContext.js.map +1 -1
- package/lib/contexts/RootStylesContext.js +5 -3
- package/lib/contexts/RootStylesContext.js.map +1 -1
- package/lib/contexts/SelectedValueContext.js +5 -3
- package/lib/contexts/SelectedValueContext.js.map +1 -1
- package/lib/contexts/index.js +14 -4
- package/lib/contexts/index.js.map +1 -1
- package/lib/hooks/index.js +14 -4
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useInternalState.js +9 -7
- package/lib/hooks/useInternalState.js.map +1 -1
- package/lib/hooks/useOnClickOutside.js +8 -6
- package/lib/hooks/useOnClickOutside.js.map +1 -1
- package/lib/hooks/useOnWindowResize.js +9 -7
- package/lib/hooks/useOnWindowResize.js.map +1 -1
- package/lib/hooks/useQuill.js +60 -111
- package/lib/hooks/useQuill.js.map +1 -1
- package/lib/hooks/useSelectOnKeyDown.js +17 -15
- package/lib/hooks/useSelectOnKeyDown.js.map +1 -1
- package/lib/index.js +22 -8
- package/lib/index.js.map +1 -1
- package/lib/lib/font.d.ts +13 -0
- package/lib/lib/font.js +17 -0
- package/lib/lib/font.js.map +1 -0
- package/lib/lib/index.d.ts +3 -0
- package/lib/lib/index.js +20 -0
- package/lib/lib/index.js.map +1 -0
- package/lib/lib/inputTypes.d.ts +20 -0
- package/lib/lib/inputTypes.js +57 -0
- package/lib/lib/inputTypes.js.map +1 -0
- package/lib/lib/utils.d.ts +9 -0
- package/lib/lib/utils.js +46 -0
- package/lib/lib/utils.js.map +1 -0
- package/package.json +6 -13
- package/src/AddToDashboardModal.tsx +2 -9
- package/src/Chart.tsx +49 -20
- package/src/Context.tsx +0 -3
- package/src/Dashboard.tsx +2 -3
- package/src/PieChart.tsx +2 -2
- package/src/QuillProvider.tsx +0 -3
- package/src/ReportBuilder.tsx +3 -9
- package/src/SQLEditor.tsx +99 -12
- package/src/Table.tsx +51 -8
- package/src/hooks/useQuill.ts +1 -2
- package/src/lib/font.ts +14 -0
- package/src/lib/index.ts +3 -0
- package/src/lib/inputTypes.ts +81 -0
- package/src/lib/utils.tsx +46 -0
- package/tsconfig.json +3 -3
- package/rollup.config.ts +0 -21
package/src/SQLEditor.tsx
CHANGED
|
@@ -13,7 +13,6 @@ import {
|
|
|
13
13
|
} from '@heroicons/react/20/solid';
|
|
14
14
|
import { QuillTheme } from './QuillProvider';
|
|
15
15
|
import { SpecialTable } from './Table';
|
|
16
|
-
import { TailSpin } from 'react-loader-spinner';
|
|
17
16
|
|
|
18
17
|
export function convertPostgresColumn(column) {
|
|
19
18
|
let format;
|
|
@@ -256,14 +255,8 @@ export default function QueryEditor({
|
|
|
256
255
|
};
|
|
257
256
|
|
|
258
257
|
const handleRunQuery = async () => {
|
|
259
|
-
const {
|
|
260
|
-
|
|
261
|
-
customerId,
|
|
262
|
-
environment,
|
|
263
|
-
queryEndpoint,
|
|
264
|
-
queryHeaders,
|
|
265
|
-
withCredentials,
|
|
266
|
-
} = client;
|
|
258
|
+
const { publicKey, customerId, environment, queryEndpoint, queryHeaders } =
|
|
259
|
+
client;
|
|
267
260
|
try {
|
|
268
261
|
let response;
|
|
269
262
|
setSqlQueryLoading(true);
|
|
@@ -271,7 +264,7 @@ export default function QueryEditor({
|
|
|
271
264
|
response = await axios.post(
|
|
272
265
|
queryEndpoint,
|
|
273
266
|
{ metadata: { query, task: 'query' } },
|
|
274
|
-
{ headers: queryHeaders
|
|
267
|
+
{ headers: queryHeaders }
|
|
275
268
|
);
|
|
276
269
|
} else {
|
|
277
270
|
response = await axios.post(
|
|
@@ -679,7 +672,54 @@ const SQLEditorComponent = ({
|
|
|
679
672
|
>
|
|
680
673
|
{LoadingComponent && <LoadingComponent />}
|
|
681
674
|
{!LoadingComponent && (
|
|
682
|
-
<
|
|
675
|
+
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg">
|
|
676
|
+
<defs>
|
|
677
|
+
<linearGradient
|
|
678
|
+
id="circleGradient"
|
|
679
|
+
gradientUnits="objectBoundingBox"
|
|
680
|
+
>
|
|
681
|
+
<stop offset="0%" stop-color="#F9F9FA" />
|
|
682
|
+
<stop offset="5%" stop-color="#F9F9FA" />
|
|
683
|
+
<stop offset="100%" stop-color="#D1D1D1" />
|
|
684
|
+
</linearGradient>
|
|
685
|
+
<mask id="mask">
|
|
686
|
+
<circle cx="12" cy="12" r="12" fill="white" />
|
|
687
|
+
<path
|
|
688
|
+
id="sector"
|
|
689
|
+
fill="black"
|
|
690
|
+
d="M15,15 L15,1.8 A13.2,13.2 0 0,1 15,1.8 Z"
|
|
691
|
+
>
|
|
692
|
+
<animate
|
|
693
|
+
attributeName="d"
|
|
694
|
+
from="M15,15 L15,1.8 A13.2,13.2 0 0,0 15,1.8 Z"
|
|
695
|
+
to="M15,15 L15,1.8 A13.2,13.2 0 1,1 15,1.8 Z"
|
|
696
|
+
dur="2s"
|
|
697
|
+
repeatCount="indefinite"
|
|
698
|
+
/>
|
|
699
|
+
</path>
|
|
700
|
+
</mask>
|
|
701
|
+
</defs>
|
|
702
|
+
<g transform="rotate(0 15 15)">
|
|
703
|
+
<animateTransform
|
|
704
|
+
attributeName="transform"
|
|
705
|
+
attributeType="XML"
|
|
706
|
+
type="rotate"
|
|
707
|
+
from="0 12 12"
|
|
708
|
+
to="360 12 12"
|
|
709
|
+
dur="2s"
|
|
710
|
+
repeatCount="indefinite"
|
|
711
|
+
/>
|
|
712
|
+
<circle
|
|
713
|
+
cx="12"
|
|
714
|
+
cy="12"
|
|
715
|
+
r="12"
|
|
716
|
+
fill="none"
|
|
717
|
+
stroke="url(#circleGradient)"
|
|
718
|
+
stroke-width="8"
|
|
719
|
+
mask="url(#mask)"
|
|
720
|
+
/>
|
|
721
|
+
</g>
|
|
722
|
+
</svg>
|
|
683
723
|
)}
|
|
684
724
|
</div>
|
|
685
725
|
) : (
|
|
@@ -824,7 +864,54 @@ const SchemaListComponent = ({ schema, theme, loading, LoadingComponent }) => {
|
|
|
824
864
|
<div style={{ height: 100 }} />
|
|
825
865
|
{LoadingComponent && <LoadingComponent />}
|
|
826
866
|
{!LoadingComponent && (
|
|
827
|
-
<
|
|
867
|
+
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg">
|
|
868
|
+
<defs>
|
|
869
|
+
<linearGradient
|
|
870
|
+
id="circleGradient"
|
|
871
|
+
gradientUnits="objectBoundingBox"
|
|
872
|
+
>
|
|
873
|
+
<stop offset="0%" stop-color="#F9F9FA" />
|
|
874
|
+
<stop offset="5%" stop-color="#F9F9FA" />
|
|
875
|
+
<stop offset="100%" stop-color="#D1D1D1" />
|
|
876
|
+
</linearGradient>
|
|
877
|
+
<mask id="mask">
|
|
878
|
+
<circle cx="12" cy="12" r="12" fill="white" />
|
|
879
|
+
<path
|
|
880
|
+
id="sector"
|
|
881
|
+
fill="black"
|
|
882
|
+
d="M15,15 L15,1.8 A13.2,13.2 0 0,1 15,1.8 Z"
|
|
883
|
+
>
|
|
884
|
+
<animate
|
|
885
|
+
attributeName="d"
|
|
886
|
+
from="M15,15 L15,1.8 A13.2,13.2 0 0,0 15,1.8 Z"
|
|
887
|
+
to="M15,15 L15,1.8 A13.2,13.2 0 1,1 15,1.8 Z"
|
|
888
|
+
dur="2s"
|
|
889
|
+
repeatCount="indefinite"
|
|
890
|
+
/>
|
|
891
|
+
</path>
|
|
892
|
+
</mask>
|
|
893
|
+
</defs>
|
|
894
|
+
<g transform="rotate(0 15 15)">
|
|
895
|
+
<animateTransform
|
|
896
|
+
attributeName="transform"
|
|
897
|
+
attributeType="XML"
|
|
898
|
+
type="rotate"
|
|
899
|
+
from="0 12 12"
|
|
900
|
+
to="360 12 12"
|
|
901
|
+
dur="2s"
|
|
902
|
+
repeatCount="indefinite"
|
|
903
|
+
/>
|
|
904
|
+
<circle
|
|
905
|
+
cx="12"
|
|
906
|
+
cy="12"
|
|
907
|
+
r="12"
|
|
908
|
+
fill="none"
|
|
909
|
+
stroke="url(#circleGradient)"
|
|
910
|
+
stroke-width="8"
|
|
911
|
+
mask="url(#mask)"
|
|
912
|
+
/>
|
|
913
|
+
</g>
|
|
914
|
+
</svg>
|
|
828
915
|
)}
|
|
829
916
|
</div>
|
|
830
917
|
);
|
package/src/Table.tsx
CHANGED
|
@@ -2,12 +2,8 @@
|
|
|
2
2
|
// @ts-nocheck
|
|
3
3
|
import React, { useContext, useEffect, useMemo, useState } from 'react';
|
|
4
4
|
import axios from 'axios';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
DashboardContext,
|
|
8
|
-
ThemeContext,
|
|
9
|
-
} from './Context';
|
|
10
|
-
import Skeleton from 'react-loading-skeleton';
|
|
5
|
+
import { ClientContext, DashboardContext, ThemeContext } from './Context';
|
|
6
|
+
// import Skeleton from 'react-loading-skeleton';
|
|
11
7
|
import { valueFormatter } from './Chart';
|
|
12
8
|
// import { SpecialTable } from './SQLEditor';
|
|
13
9
|
import { QuillTheme } from './QuillProvider';
|
|
@@ -834,7 +830,54 @@ const ChartUpdater = ({
|
|
|
834
830
|
boxSizing: 'content-box',
|
|
835
831
|
}}
|
|
836
832
|
>
|
|
837
|
-
<
|
|
833
|
+
<svg
|
|
834
|
+
width="100%"
|
|
835
|
+
height="100%"
|
|
836
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
837
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
838
|
+
>
|
|
839
|
+
<rect width="100%" height="100%" fill="#F9F9FA" />
|
|
840
|
+
|
|
841
|
+
<defs fill="#F9F9FA">
|
|
842
|
+
<linearGradient
|
|
843
|
+
id="skeletonGradient"
|
|
844
|
+
x1="0%"
|
|
845
|
+
y1="0%"
|
|
846
|
+
x2="10%"
|
|
847
|
+
y2="0%"
|
|
848
|
+
gradientUnits="userSpaceOnUse"
|
|
849
|
+
>
|
|
850
|
+
<stop offset="0%" stop-color="rgba(255,255,255,0)" />
|
|
851
|
+
<stop offset="50%" stop-color="#FEFEFE" />
|
|
852
|
+
<stop offset="100%" stop-color="rgba(255,255,255,0)" />
|
|
853
|
+
<animate
|
|
854
|
+
attributeName="x1"
|
|
855
|
+
from="-100%"
|
|
856
|
+
to="100%"
|
|
857
|
+
dur="2s"
|
|
858
|
+
repeatCount="indefinite"
|
|
859
|
+
/>
|
|
860
|
+
<animate
|
|
861
|
+
attributeName="x2"
|
|
862
|
+
from="-50%"
|
|
863
|
+
to="150%"
|
|
864
|
+
dur="2s"
|
|
865
|
+
repeatCount="indefinite"
|
|
866
|
+
/>
|
|
867
|
+
</linearGradient>
|
|
868
|
+
</defs>
|
|
869
|
+
|
|
870
|
+
<rect width="50%" height="100%" fill="url(#skeletonGradient)">
|
|
871
|
+
<animate
|
|
872
|
+
attributeName="x"
|
|
873
|
+
from="-100%"
|
|
874
|
+
to="100%"
|
|
875
|
+
dur="2s"
|
|
876
|
+
repeatCount="indefinite"
|
|
877
|
+
/>
|
|
878
|
+
</rect>
|
|
879
|
+
</svg>
|
|
880
|
+
{/* <Skeleton
|
|
838
881
|
count={1}
|
|
839
882
|
// height={containerStyle?.height}
|
|
840
883
|
height={
|
|
@@ -850,7 +893,7 @@ const ChartUpdater = ({
|
|
|
850
893
|
// baseColor="#F3F4F6"
|
|
851
894
|
baseColor="#F9F9FA"
|
|
852
895
|
width="100%"
|
|
853
|
-
/>
|
|
896
|
+
/> */}
|
|
854
897
|
</div>
|
|
855
898
|
</div>
|
|
856
899
|
);
|
package/src/hooks/useQuill.ts
CHANGED
|
@@ -74,14 +74,13 @@ export const useQuill = (
|
|
|
74
74
|
environment,
|
|
75
75
|
queryEndpoint,
|
|
76
76
|
queryHeaders,
|
|
77
|
-
withCredentials,
|
|
78
77
|
} = client;
|
|
79
78
|
try {
|
|
80
79
|
if (queryEndpoint) {
|
|
81
80
|
const resp = await axios.post(
|
|
82
81
|
queryEndpoint,
|
|
83
82
|
{ metadata: { id: chartId, task: 'item' } },
|
|
84
|
-
{ headers: queryHeaders
|
|
83
|
+
{ headers: queryHeaders }
|
|
85
84
|
);
|
|
86
85
|
setLoading(false);
|
|
87
86
|
setData({
|
package/src/lib/font.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const fontSize = {
|
|
2
|
+
xs: 'qq-text-xs',
|
|
3
|
+
sm: 'qq-text-sm',
|
|
4
|
+
md: 'qq-text-base',
|
|
5
|
+
lg: 'qq-text-lg',
|
|
6
|
+
xl: 'qq-text-xl',
|
|
7
|
+
threeXl: 'qq-text-3xl',
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const fontWeight = {
|
|
11
|
+
sm: 'qq-font-normal',
|
|
12
|
+
md: 'qq-font-medium',
|
|
13
|
+
lg: 'qq-font-semibold',
|
|
14
|
+
};
|
package/src/lib/index.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export type ValueFormatter = {
|
|
2
|
+
(value: number): string;
|
|
3
|
+
};
|
|
4
|
+
|
|
5
|
+
const iconVariantValues = [
|
|
6
|
+
'simple',
|
|
7
|
+
'light',
|
|
8
|
+
'shadow',
|
|
9
|
+
'solid',
|
|
10
|
+
'outlined',
|
|
11
|
+
] as const;
|
|
12
|
+
|
|
13
|
+
export type IconVariant = (typeof iconVariantValues)[number];
|
|
14
|
+
|
|
15
|
+
export type HorizontalPosition = 'left' | 'right';
|
|
16
|
+
|
|
17
|
+
export type VerticalPosition = 'top' | 'bottom';
|
|
18
|
+
|
|
19
|
+
export type ButtonVariant = 'primary' | 'secondary' | 'light';
|
|
20
|
+
|
|
21
|
+
const deltaTypeValues = [
|
|
22
|
+
'increase',
|
|
23
|
+
'moderateIncrease',
|
|
24
|
+
'decrease',
|
|
25
|
+
'moderateDecrease',
|
|
26
|
+
'unchanged',
|
|
27
|
+
] as const;
|
|
28
|
+
|
|
29
|
+
export type DeltaType = (typeof deltaTypeValues)[number];
|
|
30
|
+
|
|
31
|
+
const sizeValues = ['xs', 'sm', 'md', 'lg', 'xl'] as const;
|
|
32
|
+
|
|
33
|
+
export type Size = (typeof sizeValues)[number];
|
|
34
|
+
|
|
35
|
+
const colorValues = [
|
|
36
|
+
'slate',
|
|
37
|
+
'gray',
|
|
38
|
+
'zinc',
|
|
39
|
+
'neutral',
|
|
40
|
+
'stone',
|
|
41
|
+
'red',
|
|
42
|
+
'orange',
|
|
43
|
+
'amber',
|
|
44
|
+
'yellow',
|
|
45
|
+
'lime',
|
|
46
|
+
'green',
|
|
47
|
+
'emerald',
|
|
48
|
+
'teal',
|
|
49
|
+
'cyan',
|
|
50
|
+
'sky',
|
|
51
|
+
'blue',
|
|
52
|
+
'indigo',
|
|
53
|
+
'violet',
|
|
54
|
+
'purple',
|
|
55
|
+
'fuchsia',
|
|
56
|
+
'pink',
|
|
57
|
+
'rose',
|
|
58
|
+
] as const;
|
|
59
|
+
|
|
60
|
+
export type Color = (typeof colorValues)[number];
|
|
61
|
+
|
|
62
|
+
const justifyContentValues = [
|
|
63
|
+
'start',
|
|
64
|
+
'end',
|
|
65
|
+
'center',
|
|
66
|
+
'between',
|
|
67
|
+
'around',
|
|
68
|
+
'evenly',
|
|
69
|
+
] as const;
|
|
70
|
+
export type JustifyContent = (typeof justifyContentValues)[number];
|
|
71
|
+
|
|
72
|
+
const alignItemsValues = [
|
|
73
|
+
'start',
|
|
74
|
+
'end',
|
|
75
|
+
'center',
|
|
76
|
+
'baseline',
|
|
77
|
+
'stretch',
|
|
78
|
+
] as const;
|
|
79
|
+
export type AlignItems = (typeof alignItemsValues)[number];
|
|
80
|
+
|
|
81
|
+
export type FlexDirection = 'row' | 'col' | 'row-reverse' | 'col-reverse';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ValueFormatter } from './inputTypes';
|
|
2
|
+
|
|
3
|
+
export const defaultValueFormatter: ValueFormatter = (value: number) =>
|
|
4
|
+
value.toString();
|
|
5
|
+
|
|
6
|
+
export const sumNumericArray = (arr: number[]) =>
|
|
7
|
+
arr.reduce((prefixSum, num) => prefixSum + num, 0);
|
|
8
|
+
|
|
9
|
+
export const removeValueFromArray = (value: any, array: any[]): any[] => {
|
|
10
|
+
const index = array.indexOf(value);
|
|
11
|
+
if (index > -1) {
|
|
12
|
+
array.splice(index, 1);
|
|
13
|
+
}
|
|
14
|
+
return array;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const isValueInArray = (value: any, array: any[]): boolean => {
|
|
18
|
+
for (let i = 0; i < array.length; i++) {
|
|
19
|
+
if (array[i] === value) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return false;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export const stringIsNumeric = (str: string | undefined): boolean => {
|
|
27
|
+
return !isNaN(Number(str)) && str !== undefined;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const stringEndsWithNumber = (str: string): boolean => {
|
|
31
|
+
return stringIsNumeric(str.split('-').pop());
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export function mergeRefs<T = any>(
|
|
35
|
+
refs: Array<React.MutableRefObject<T> | React.LegacyRef<T>>
|
|
36
|
+
): React.RefCallback<T> {
|
|
37
|
+
return value => {
|
|
38
|
+
refs.forEach(ref => {
|
|
39
|
+
if (typeof ref === 'function') {
|
|
40
|
+
ref(value);
|
|
41
|
+
} else if (ref != null) {
|
|
42
|
+
(ref as React.MutableRefObject<T | null>).current = value;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
-
"target": "
|
|
4
|
-
"lib": ["dom", "dom.iterable", "
|
|
3
|
+
"target": "es2022",
|
|
4
|
+
"lib": ["dom", "dom.iterable", "es2022"],
|
|
5
5
|
"allowJs": true,
|
|
6
6
|
"skipLibCheck": true,
|
|
7
7
|
"esModuleInterop": true,
|
|
8
8
|
"allowSyntheticDefaultImports": true,
|
|
9
9
|
"strict": true,
|
|
10
10
|
"forceConsistentCasingInFileNames": true,
|
|
11
|
-
"module": "
|
|
11
|
+
"module": "commonjs",
|
|
12
12
|
"moduleResolution": "node",
|
|
13
13
|
"resolveJsonModule": true,
|
|
14
14
|
"isolatedModules": true,
|
package/rollup.config.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import typescript from '@rollup/plugin-typescript';
|
|
2
|
-
import resolve from '@rollup/plugin-node-resolve';
|
|
3
|
-
|
|
4
|
-
export default [
|
|
5
|
-
// {
|
|
6
|
-
// input: 'src/index.ts',
|
|
7
|
-
// output: {
|
|
8
|
-
// file: 'lib/cjs/index.js',
|
|
9
|
-
// format: 'cjs',
|
|
10
|
-
// },
|
|
11
|
-
// plugins: [typescript() , resolve()],
|
|
12
|
-
// },
|
|
13
|
-
{
|
|
14
|
-
input: 'src/index.ts',
|
|
15
|
-
output: {
|
|
16
|
-
file: 'lib/esm/index.js',
|
|
17
|
-
format: 'esm',
|
|
18
|
-
},
|
|
19
|
-
plugins: [typescript(), resolve()],
|
|
20
|
-
},
|
|
21
|
-
];
|