forstok-ui-lib 7.5.3 → 7.6.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.
- package/dist/index.d.ts +38 -15
- package/dist/index.js +433 -433
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +471 -471
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -4
- package/rollup.config.js +0 -1
- package/src/components/index.ts +1 -1
- package/src/components/date/range.tsx +0 -118
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "forstok-ui-lib",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.6.0",
|
|
4
4
|
"description": "Forstok UI Components Library",
|
|
5
5
|
"path": "dist",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
"moment": "^2.30.1",
|
|
47
47
|
"moment-range": "^4.0.2",
|
|
48
48
|
"npm-force-resolutions": "^0.0.10",
|
|
49
|
-
"rc-picker": "^4.11.3",
|
|
50
49
|
"react": "^19.0.0",
|
|
51
50
|
"react-content-loader": "^7.0.2",
|
|
52
51
|
"react-datepicker": "^8.1.0",
|
|
@@ -67,10 +66,9 @@
|
|
|
67
66
|
"peerDependencies": {
|
|
68
67
|
"react": "^19.0.0",
|
|
69
68
|
"react-dom": "^19.0.0",
|
|
70
|
-
"styled-components": "^6.1.15",
|
|
71
69
|
"react-select": "^5.10.0",
|
|
72
70
|
"react-select-async-paginate": "^0.7.9",
|
|
73
|
-
"
|
|
71
|
+
"styled-components": "^6.1.15"
|
|
74
72
|
},
|
|
75
73
|
"overrides": {}
|
|
76
74
|
}
|
package/rollup.config.js
CHANGED
package/src/components/index.ts
CHANGED
|
@@ -23,7 +23,6 @@ export { default as UploadDragDropComponent } from './upload/drag.drop';
|
|
|
23
23
|
export { default as TextAreaComponent } from './textarea';
|
|
24
24
|
export { default as TextAreaRefComponent } from './textarea/ref';
|
|
25
25
|
export { default as DateComponent } from './date';
|
|
26
|
-
export { default as DateRangeComponent } from './date/range';
|
|
27
26
|
export { default as DateRefComponent } from './date/ref';
|
|
28
27
|
export { default as DateTimeComponent } from './datetime';
|
|
29
28
|
export { default as RadioComponent } from './radio';
|
|
@@ -42,6 +41,7 @@ export * from './dropdown/typed';
|
|
|
42
41
|
export * from './date/typed';
|
|
43
42
|
|
|
44
43
|
export * from './form/styles';
|
|
44
|
+
export * from './date/styles';
|
|
45
45
|
export * from './dropdown/styles';
|
|
46
46
|
export * from './select/styles';
|
|
47
47
|
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { useState, useRef, useEffect } from 'react';
|
|
2
|
-
import moment, { Moment } from 'moment';
|
|
3
|
-
import { RangePicker } from 'rc-picker';
|
|
4
|
-
import { RangePickerRef } from 'rc-picker/lib/interface';
|
|
5
|
-
|
|
6
|
-
import generateMoment from 'rc-picker/lib/generate/moment.js';
|
|
7
|
-
import enUS from 'rc-picker/lib/locale/en_US.js';
|
|
8
|
-
|
|
9
|
-
import IconComponent from '../icon';
|
|
10
|
-
|
|
11
|
-
import 'rc-picker/assets/index.css';
|
|
12
|
-
import { RangeContainer } from './styles';
|
|
13
|
-
|
|
14
|
-
import { TMoment, TState } from '../../typeds/base.typed';
|
|
15
|
-
import { TModerateDateAntFunction } from './typed';
|
|
16
|
-
|
|
17
|
-
import { configDateRangeAnt } from '../../maps/common';
|
|
18
|
-
|
|
19
|
-
type TDateRange = {
|
|
20
|
-
$mode?: 'white';
|
|
21
|
-
startDate?: TMoment;
|
|
22
|
-
endDate?: TMoment;
|
|
23
|
-
minDate?: TMoment;
|
|
24
|
-
maxDate?: TMoment;
|
|
25
|
-
evModDate: TModerateDateAntFunction;
|
|
26
|
-
isForceUpdate?: boolean;
|
|
27
|
-
setForceUpdate?: TState<boolean | undefined>;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const DateRangeComponent = (props: TDateRange) => {
|
|
31
|
-
const {
|
|
32
|
-
$mode,
|
|
33
|
-
startDate,
|
|
34
|
-
endDate,
|
|
35
|
-
minDate,
|
|
36
|
-
maxDate,
|
|
37
|
-
evModDate,
|
|
38
|
-
isForceUpdate,
|
|
39
|
-
setForceUpdate,
|
|
40
|
-
} = props;
|
|
41
|
-
|
|
42
|
-
// Ensure ALWAYS Moment objects
|
|
43
|
-
const _minDate: Moment = moment(minDate ?? configDateRangeAnt.minDate);
|
|
44
|
-
let _startDate: Moment = moment(startDate ?? configDateRangeAnt.startDate);
|
|
45
|
-
let _endDate: Moment = moment(endDate ?? configDateRangeAnt.endDate);
|
|
46
|
-
|
|
47
|
-
if (_startDate < _minDate) _startDate = _minDate;
|
|
48
|
-
if (maxDate && moment(maxDate).isBefore(_endDate)) {
|
|
49
|
-
_endDate = moment(maxDate);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const [value, setValue] = useState<[Moment, Moment]>([_startDate, _endDate]);
|
|
53
|
-
|
|
54
|
-
useEffect(() => {
|
|
55
|
-
if (isForceUpdate) {
|
|
56
|
-
setValue([_startDate, _endDate]);
|
|
57
|
-
setForceUpdate && setForceUpdate(false);
|
|
58
|
-
}
|
|
59
|
-
}, [isForceUpdate]);
|
|
60
|
-
|
|
61
|
-
const onChange = (
|
|
62
|
-
dates: [Moment | null, Moment | null] | null,
|
|
63
|
-
dateStrings: [string, string],
|
|
64
|
-
) => {
|
|
65
|
-
if (!dates) return;
|
|
66
|
-
|
|
67
|
-
const [start, end] = dates;
|
|
68
|
-
|
|
69
|
-
if (!start || !end) return;
|
|
70
|
-
|
|
71
|
-
setValue([start, end]);
|
|
72
|
-
evModDate(start, end);
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
const rangePickerRef = useRef<RangePickerRef>(null);
|
|
76
|
-
|
|
77
|
-
return (
|
|
78
|
-
<RangeContainer className="_refRangeContainer" $mode={$mode}>
|
|
79
|
-
<RangePicker
|
|
80
|
-
ref={rangePickerRef}
|
|
81
|
-
generateConfig={generateMoment}
|
|
82
|
-
locale={enUS}
|
|
83
|
-
value={value} // controlled
|
|
84
|
-
onChange={onChange}
|
|
85
|
-
allowEmpty
|
|
86
|
-
allowClear={false}
|
|
87
|
-
separator="-"
|
|
88
|
-
format="MMM D, YYYY"
|
|
89
|
-
placeholder={['Start Date', 'End Date']}
|
|
90
|
-
minDate={_minDate}
|
|
91
|
-
maxDate={maxDate ? moment(maxDate) : moment()}
|
|
92
|
-
suffixIcon={<IconComponent $width="14px" $name="calendar" />}
|
|
93
|
-
prevIcon={<IconComponent $width="12px" $name="arrow-left" />}
|
|
94
|
-
nextIcon={<IconComponent $width="12px" $name="arrow-right" />}
|
|
95
|
-
superPrevIcon={<IconComponent $width="12px" $name="arrow-left-double" />}
|
|
96
|
-
superNextIcon={<IconComponent $width="12px" $name="arrow-right-double" />}
|
|
97
|
-
presets={[
|
|
98
|
-
{ label: 'Today', value: [moment(), moment()] },
|
|
99
|
-
{ label: 'Last 7 days', value: [moment().subtract(6, 'days'), moment()] },
|
|
100
|
-
{ label: 'Last 14 days', value: [moment().subtract(13, 'days'), moment()] },
|
|
101
|
-
{ label: 'Last 30 days', value: [moment().subtract(29, 'days'), moment()] },
|
|
102
|
-
{ label: 'Last 90 days', value: [moment().subtract(89, 'days'), moment()] },
|
|
103
|
-
]}
|
|
104
|
-
onOpenChange={(open) => {
|
|
105
|
-
const parentEl = rangePickerRef.current?.nativeElement?.closest(
|
|
106
|
-
'._refRangeContainer'
|
|
107
|
-
);
|
|
108
|
-
if (!parentEl) return;
|
|
109
|
-
open
|
|
110
|
-
? parentEl.classList.add('is-actived')
|
|
111
|
-
: parentEl.classList.remove('is-actived');
|
|
112
|
-
}}
|
|
113
|
-
/>
|
|
114
|
-
</RangeContainer>
|
|
115
|
-
);
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
export default DateRangeComponent;
|