forstok-ui-lib 7.5.4 → 7.6.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forstok-ui-lib",
3
- "version": "7.5.4",
3
+ "version": "7.6.1",
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
- "rc-picker": "^4.11.3"
71
+ "styled-components": "^6.1.15"
74
72
  },
75
73
  "overrides": {}
76
74
  }
package/rollup.config.js CHANGED
@@ -60,7 +60,6 @@ export default [
60
60
  'styled-components',
61
61
  'react-select',
62
62
  'react-select-async-paginate',
63
- 'rc-picker',
64
63
  '@wojtekmaj/react-daterange-picker',
65
64
  'approvejs',
66
65
  'html-to-text',
@@ -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,4 +1,4 @@
1
- import { type ChangeEvent, type FocusEvent, type TextareaHTMLAttributes, useEffect, useState } from 'react';
1
+ import { type ChangeEvent, type FocusEvent, type TextareaHTMLAttributes, useEffect, useRef, useState } from 'react';
2
2
 
3
3
  import EmojiComponent from '../emoji';
4
4
 
@@ -20,6 +20,8 @@ type TTextArea = TextareaHTMLAttributes<HTMLTextAreaElement> & {
20
20
  }
21
21
 
22
22
  const TextAreaComponent = ({ $isError, reset, setReset, isForceUpdate, setForceUpdate, evChange, evBlur, isField, evChangeCustom, $isEmoji,...props }: TTextArea) => {
23
+ const innerRef = useRef<HTMLTextAreaElement>(null);
24
+
23
25
  const { name, defaultValue } = props
24
26
 
25
27
  const [valueInput, setValueInput] = useState<string>(defaultValue?.toString() ?? '')
@@ -53,6 +55,15 @@ const TextAreaComponent = ({ $isError, reset, setReset, isForceUpdate, setForceU
53
55
  if (name) {
54
56
  document.getElementsByName(name)[0]?.focus();
55
57
  }
58
+ if (innerRef.current) {
59
+ const event = {
60
+ target: innerRef.current,
61
+ currentTarget: innerRef.current
62
+ } as unknown as ChangeEvent<HTMLTextAreaElement>;
63
+
64
+ innerRef.current.value = uValue;
65
+ evChange && evChange(event);
66
+ }
56
67
  }
57
68
 
58
69
  let parseProps = {...props}
@@ -61,6 +72,7 @@ const TextAreaComponent = ({ $isError, reset, setReset, isForceUpdate, setForceU
61
72
  return (
62
73
  <div style={{ position: 'relative' }}>
63
74
  <TextAreaContainer
75
+ ref={innerRef}
64
76
  $isError={$isError}
65
77
  value={valueInput}
66
78
  onChange={(e: ChangeEvent<HTMLTextAreaElement>) => {
@@ -1,17 +0,0 @@
1
- import generateMoment from 'rc-picker/lib/generate/moment';
2
- import type { GenerateConfig } from 'rc-picker/lib/generate';
3
- import moment, { Moment } from 'moment';
4
-
5
- // Extend the existing config
6
- const momentGenerateConfig: GenerateConfig<Moment> & {
7
- isValidate: (date: Moment | null) => boolean;
8
- } = {
9
- ...generateMoment,
10
-
11
- // FIX: Add missing function with proper typing
12
- isValidate: (date: Moment | null) => {
13
- return date != null && moment(date).isValid();
14
- },
15
- };
16
-
17
- export default momentGenerateConfig;
@@ -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 momentGenerateConfig from './momentGenerateConfig';
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={momentGenerateConfig}
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;