diginet-core-ui 1.4.35 → 1.4.36-beta.2

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.
@@ -114,7 +114,9 @@ const DatePicker = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referenc
114
114
  !controls ? onChangeValue(e) : focusedValue.current = e === null || e === void 0 ? void 0 : e.value;
115
115
  };
116
116
  const openPicker = () => {
117
- setOpenPickerState(true);
117
+ if (!readOnly) {
118
+ setOpenPickerState(true);
119
+ }
118
120
  };
119
121
  const closePicker = () => {
120
122
  var _pickerRef$current;
@@ -783,7 +783,7 @@ const DateRangePicker = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, ref
783
783
  ipRef.current.removeEventListener('focus', onInputFocus);
784
784
  }
785
785
  };
786
- }, [onChange]);
786
+ }, [readOnly, onChange]);
787
787
  useEffect(() => {
788
788
  if (min) {
789
789
  let arr = [];
@@ -1,13 +1,15 @@
1
1
  /** @jsxRuntime classic */
2
2
  /** @jsx jsx */
3
3
  import { css, jsx } from '@emotion/core';
4
- import { ButtonIcon, InputBase, Label, Popover, PopoverBody } from "../..";
4
+ import { ButtonIcon, InputBase, Label, Popover, PopoverBody, HelperText } from "../..";
5
5
  import PropTypes from 'prop-types';
6
- import { Fragment, forwardRef, memo, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';
6
+ import { Fragment, forwardRef, memo, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState, useMemo } from 'react';
7
7
  import { animation, borderColor, displayBlock, overflowHidden, parseHeight, parseMinWidth, positionRelative, scaleX } from "../../../styles/general";
8
8
  import { useTheme } from "../../../theme";
9
9
  import useThemeProps from "../../../theme/utils/useThemeProps";
10
10
  import { classNames, getProp } from "../../../utils";
11
+ const regexBetween = /[^{}]+(?=})/g;
12
+ const regexInclude = /{|}/g;
11
13
  const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
12
14
  if (!reference) reference = useRef(null);
13
15
  const theme = useTheme();
@@ -22,10 +24,14 @@ const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referen
22
24
  });
23
25
  const {
24
26
  action = {},
27
+ allowInput,
25
28
  bgColor: bgColorProp,
26
29
  children,
27
30
  className,
28
31
  delayOnInput,
32
+ disabled,
33
+ displayExpr: displayExprProp,
34
+ error,
29
35
  endIcon,
30
36
  inputProps,
31
37
  inputRef,
@@ -39,10 +45,19 @@ const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referen
39
45
  placeholder,
40
46
  startIcon,
41
47
  style,
42
- value,
43
- viewType
48
+ value: valueProps,
49
+ valueExpr,
50
+ viewType,
51
+ helperTextProps
44
52
  } = props;
53
+ let displayExpr = displayExprProp;
45
54
  const bgColor = typeof bgColorProp === 'string' ? getProp(colors, bgColorProp, bgColorProp) : bgColorProp;
55
+ const ErrorView = useMemo(() => {
56
+ return error ? jsx(HelperText, {
57
+ ...helperTextProps,
58
+ disabled: disabled
59
+ }, error) : null;
60
+ }, [disabled, error, helperTextProps]);
46
61
  const ref = useRef(null);
47
62
  const dropdownBoxRef = useRef(null);
48
63
  const timer = useRef(null);
@@ -85,6 +100,28 @@ const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referen
85
100
  onClosed === null || onClosed === void 0 ? void 0 : onClosed();
86
101
  }
87
102
  };
103
+
104
+ /**
105
+ * Chuyển đổi data thành giá trị cần hiện thị dựa vào displayExpr [string, string object {field} - {field}], renderSelectedItem, displayExpr, valueExpr
106
+ * @param data {object} rowData of dataSource
107
+ * @return {string}
108
+ */
109
+ const displayValue = data => {
110
+ let text = '';
111
+ if (data || data === 0) {
112
+ displayExpr = displayExpr || valueExpr;
113
+ let mask = data === null || data === void 0 ? void 0 : data[displayExpr];
114
+ // convert {id} - {name} to {<data[id]>} - {<data[name]>}
115
+ if (!mask && regexBetween.test(displayExpr)) {
116
+ var _displayExpr;
117
+ mask = (_displayExpr = displayExpr) === null || _displayExpr === void 0 ? void 0 : _displayExpr.replace(regexBetween, _ => (data === null || data === void 0 ? void 0 : data[_]) || '');
118
+ } else if (!mask) {
119
+ mask = typeof data !== 'object' ? data : '';
120
+ }
121
+ text = mask.toString().replace(regexInclude, '');
122
+ }
123
+ return text;
124
+ };
88
125
  useLayoutEffect(() => {
89
126
  if (ref.current) {
90
127
  const {
@@ -130,15 +167,17 @@ const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referen
130
167
  onClick: openOnClickAt === 'icon' ? onTriggerDropdown : null
131
168
  }) : null;
132
169
  };
170
+ const value = displayValue(valueProps);
133
171
  return jsx(Fragment, null, jsx("div", {
134
172
  ref: ref,
135
173
  css: _DropdownBoxRootCSS,
136
- className: classNames('DGN-UI-Dropdown-Box', className),
174
+ className: classNames('DGN-UI-Dropdown-Box', className, error && 'error'),
137
175
  style: style
138
176
  }, label ? jsx(Label, {
139
177
  ...labelProps
140
178
  }, label) : null, jsx(InputBase, {
141
179
  ...inputProps,
180
+ readOnly: !allowInput,
142
181
  style: inputStyle,
143
182
  viewType: viewType,
144
183
  inputRef: inputRef,
@@ -157,7 +196,7 @@ const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referen
157
196
  anchor: ref.current,
158
197
  width: popoverWidth,
159
198
  onClose: closeDropdownBox
160
- }, jsx(PopoverBody, null, children)));
199
+ }, jsx(PopoverBody, null, children)), ErrorView);
161
200
  }));
162
201
  const DropdownBoxRootCSS = (bgColorProp, {
163
202
  colors
@@ -166,6 +205,17 @@ const DropdownBoxRootCSS = (bgColorProp, {
166
205
  ${positionRelative};
167
206
  ${parseMinWidth(150)};
168
207
  ${parseHeight('max-content')};
208
+ &.error {
209
+ .DGN-UI-InputBase {
210
+ ${borderColor(getProp(colors, 'semantic/danger'))};
211
+ &::before {
212
+ ${borderColor(getProp(colors, 'semantic/danger'))};
213
+ }
214
+ &::after {
215
+ ${borderColor(getProp(colors, 'semantic/danger'))};
216
+ }
217
+ }
218
+ }
169
219
  .DGN-UI-InputBase {
170
220
  background: ${bgColorProp ? bgColorProp === true ? getProp(colors, 'fill/disabled') : bgColorProp : 'inherit'} !important;
171
221
  ${openState && css`
@@ -183,20 +233,6 @@ const DropdownBoxCSS = ({
183
233
  margin-top: ${spacing([1])};
184
234
  ${overflowHidden};
185
235
  `;
186
-
187
- // DropdownBox.defaultProps = {
188
- // className: '',
189
- // label: '',
190
- // placeholder: '',
191
- // startIcon: 'Search',
192
- // endIcon: 'ArrowDown',
193
- // openOnClickAt: 'icon',
194
- // viewType: 'underlined',
195
- // inputProps: {},
196
- // delayOnInput: 700,
197
- // zIndex: zIndexCORE(1),
198
- // };
199
-
200
236
  DropdownBox.propTypes = {
201
237
  /** class for dropdown */
202
238
  className: PropTypes.string,
@@ -233,6 +269,12 @@ DropdownBox.propTypes = {
233
269
  /** the function will run after open */
234
270
  onOpened: PropTypes.func,
235
271
  /** the function will run after close */
236
- onClosed: PropTypes.func
272
+ onClosed: PropTypes.func,
273
+ /** Error message displayed below the input. */
274
+ error: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
275
+ /** If `true`, the component is disabled. */
276
+ disabled: PropTypes.bool,
277
+ /** If `true`, the input is enable. */
278
+ allowInput: PropTypes.bool
237
279
  };
238
280
  export default DropdownBox;
@@ -404,8 +404,8 @@ const TimePicker = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referenc
404
404
  text: displayTimeValue.slice(0, 2).includes(':') ? displayTimeValue.slice(9, 11) : displayTimeValue.slice(10, 12)
405
405
  });
406
406
  } else {
407
- displayTimeValue = `${date(currentTime).format(displayFormat)} ${mode12h ? timeValue === null || timeValue === void 0 ? void 0 : timeValue.text : ''}`;
408
- returnTimeValue = `${date(currentTime).format(returnFormat)} ${mode12h ? timeValue === null || timeValue === void 0 ? void 0 : timeValue.text : ''}`;
407
+ displayTimeValue = `${date(currentTime).format(displayFormat)}${mode12h ? ` ${timeValue === null || timeValue === void 0 ? void 0 : timeValue.text}` : ''}`;
408
+ returnTimeValue = `${date(currentTime).format(returnFormat)}${mode12h ? ` ${timeValue === null || timeValue === void 0 ? void 0 : timeValue.text}` : ''}`;
409
409
  }
410
410
  if (!now) {
411
411
  setDisplayTime(displayTimeValue);
@@ -420,12 +420,22 @@ const TimePicker = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referenc
420
420
  // useEffect for prop value
421
421
  useEffect(() => {
422
422
  if (!value) {
423
- setTimeValue({
424
- hour: min ? min.slice(0, 2) : mode12h ? 1 : 0,
425
- minute: min ? min.slice(3, 5) : 0,
426
- second: min ? min.slice(6, 8) : 0,
427
- text: min ? min.slice(10, 12) || 'AM' : 'AM'
428
- });
423
+ if (!mode12h) {
424
+ const timeValue = {
425
+ hour: min ? min.slice(0, 2) : mode12h ? 1 : 0,
426
+ minute: min ? min.slice(3, 5) : 0,
427
+ second: min ? min.slice(6, 8) : 0
428
+ };
429
+ setTimeValue(timeValue);
430
+ } else {
431
+ const timeValue = {
432
+ hour: min ? min.slice(0, 2) : mode12h ? 1 : 0,
433
+ minute: min ? min.slice(3, 5) : 0,
434
+ second: min ? min.slice(6, 8) : 0,
435
+ text: min ? (returnFormat === 'HH:mm:ss' ? min.slice(10, 12) : min.slice(6, 8)) || 'AM' : 'AM'
436
+ };
437
+ setTimeValue(timeValue);
438
+ }
429
439
  setDisplayTime(null);
430
440
  } else {
431
441
  let displayTimeValue = '00:00:00';
@@ -433,13 +443,22 @@ const TimePicker = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referenc
433
443
  const valueMinute = Number(value.slice(3, 5)) || '00';
434
444
  const valueSecond = Number(value.slice(6, 8)) || '00';
435
445
  const valueTime = new Date(new Date().getFullYear(), 0, 1, valueHour, valueMinute, valueSecond);
436
- displayTimeValue = formatTime(valueTime, displayFormat);
437
- setTimeValue({
438
- hour: value.slice(0, 2),
439
- minute: value.slice(3, 5),
440
- second: value.slice(6, 8),
441
- text: value.slice(10, 12)
442
- });
446
+ displayTimeValue = mode12h ? formatTime(valueTime, displayFormat).slice(0, -3).concat(returnFormat === 'HH:mm:ss' ? ` ${value.slice(10, 12)}` : ` ${value.slice(6, 8)}`) : formatTime(valueTime, displayFormat).concat(returnFormat === 'HH:mm:ss' ? ` ${value.slice(10, 12)}` : ` ${value.slice(6, 8)}`);
447
+ if (!mode12h) {
448
+ setTimeValue({
449
+ hour: value.slice(0, 2),
450
+ minute: value.slice(3, 5),
451
+ second: value.slice(6, 8)
452
+ });
453
+ } else {
454
+ const timeValue = {
455
+ hour: value.slice(0, 2),
456
+ minute: value.slice(3, 5),
457
+ second: returnFormat === 'HH:mm:ss' ? value.slice(6, 8) : '00',
458
+ text: returnFormat === 'HH:mm:ss' ? value.slice(10, 12) : value.slice(6, 8)
459
+ };
460
+ setTimeValue(timeValue);
461
+ }
443
462
  setDisplayTime(displayTimeValue);
444
463
  }
445
464
  }, [value, displayFormat, returnFormat, mode12h, min, max]);
@@ -477,7 +496,23 @@ const TimePicker = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referenc
477
496
  disabled: disabled,
478
497
  required: required,
479
498
  ...labelProps
480
- }, label), jsx(Popover, {
499
+ }, label), readOnly ? jsx(InputBase, {
500
+ inputProps: {
501
+ placeholder: !readOnly && !disabled ? placeholder : '',
502
+ ...inputProps
503
+ },
504
+ disabled: disabled,
505
+ viewType: viewType,
506
+ inputStyle: {
507
+ ...inputStyle
508
+ },
509
+ value: displayTime,
510
+ endIcon: endIcon,
511
+ startIcon: startIcon,
512
+ onKeyDown: e => e.preventDefault(),
513
+ status: error ? 'danger' : 'default',
514
+ readOnly: true
515
+ }) : jsx(Popover, {
481
516
  css: _TimePickerCSS,
482
517
  anchor: jsx(InputBase, {
483
518
  inputProps: {
@@ -725,24 +760,6 @@ const TimePickerAMPMCSS = (currentText, {
725
760
  ${parseWidth(32)};
726
761
  }
727
762
  `;
728
-
729
- // TimePicker.defaultProps = {
730
- // actionIconAt: 'end',
731
- // className: '',
732
- // disabled: false,
733
- // displayFormat: 'HH:mm:ss',
734
- // mode12h: false,
735
- // readOnly: false,
736
- // required: false,
737
- // returnFormat: 'HH:mm:ss',
738
- // error: '',
739
- // minuteStep: 1,
740
- // min: '',
741
- // max: '',
742
- // label: '',
743
- // value: '',
744
- // };
745
-
746
763
  TimePicker.propTypes = {
747
764
  /** CSS class for the component. ({container: '', header: '', body: '', footer: ''}) */
748
765
  className: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
package/icons/basic.js CHANGED
@@ -4016,6 +4016,64 @@ export const MoneyHistory = /*#__PURE__*/memo(({
4016
4016
  fill: fillColor(color)
4017
4017
  }));
4018
4018
  });
4019
+ export const MoneyList = /*#__PURE__*/memo(({
4020
+ width,
4021
+ height,
4022
+ color = 'system/rest',
4023
+ viewBox = false
4024
+ }) => {
4025
+ return viewBox ? /*#__PURE__*/React.createElement("svg", {
4026
+ width: width || 24,
4027
+ height: height || 24,
4028
+ viewBox: "0 0 24 24",
4029
+ fill: "none"
4030
+ }, /*#__PURE__*/React.createElement("path", {
4031
+ fillRule: "evenodd",
4032
+ clipRule: "evenodd",
4033
+ d: "M14 7H21V9H14V7Z",
4034
+ fill: fillColor(color)
4035
+ }), /*#__PURE__*/React.createElement("path", {
4036
+ fillRule: "evenodd",
4037
+ clipRule: "evenodd",
4038
+ d: "M14 11H21V13H14V11Z",
4039
+ fill: fillColor(color)
4040
+ }), /*#__PURE__*/React.createElement("path", {
4041
+ fillRule: "evenodd",
4042
+ clipRule: "evenodd",
4043
+ d: "M14 15H21V17H14V15Z",
4044
+ fill: fillColor(color)
4045
+ }), /*#__PURE__*/React.createElement("path", {
4046
+ fillRule: "evenodd",
4047
+ clipRule: "evenodd",
4048
+ d: "M7.90099 10.8966C5.94059 10.3448 5.58416 9.88506 5.58416 9.24138C5.58416 8.41379 6.38614 7.86207 7.63366 7.86207C8.88119 7.86207 9.50495 8.41379 9.50495 9.42529V9.6092H11.8218V9.33333C11.7327 7.67816 10.7525 6.29885 9.14851 5.83908V4H6.11881V5.93103C4.24752 6.3908 3.17822 7.67816 3.17822 9.24138C3.17822 11.7241 5.49505 12.6437 7.27723 13.0115C9.32673 13.5632 9.59406 14.2069 9.59406 14.8506C9.59406 15.1264 9.41584 16.1379 7.54455 16.1379C6.11881 16.1379 5.31683 15.5862 5.22772 14.4828V14.2989H3V14.5747C3.08911 16.3218 4.24752 17.6092 6.11881 18.069V20H9.05941V18.069C10.9307 17.6092 12 16.4138 12 14.7586C12 12.3678 9.95049 11.4483 7.90099 10.8966Z",
4049
+ fill: fillColor(color)
4050
+ })) : /*#__PURE__*/React.createElement("svg", {
4051
+ width: width || 18,
4052
+ height: height || 16,
4053
+ viewBox: "0 0 18 16",
4054
+ fill: "none"
4055
+ }, /*#__PURE__*/React.createElement("path", {
4056
+ fillRule: "evenodd",
4057
+ clipRule: "evenodd",
4058
+ d: "M11 3H18V5H11V3Z",
4059
+ fill: fillColor(color)
4060
+ }), /*#__PURE__*/React.createElement("path", {
4061
+ fillRule: "evenodd",
4062
+ clipRule: "evenodd",
4063
+ d: "M11 7H18V9H11V7Z",
4064
+ fill: fillColor(color)
4065
+ }), /*#__PURE__*/React.createElement("path", {
4066
+ fillRule: "evenodd",
4067
+ clipRule: "evenodd",
4068
+ d: "M11 11H18V13H11V11Z",
4069
+ fill: fillColor(color)
4070
+ }), /*#__PURE__*/React.createElement("path", {
4071
+ fillRule: "evenodd",
4072
+ clipRule: "evenodd",
4073
+ d: "M4.90099 6.89655C2.94059 6.34483 2.58416 5.88506 2.58416 5.24138C2.58416 4.41379 3.38614 3.86207 4.63366 3.86207C5.88119 3.86207 6.50495 4.41379 6.50495 5.42529V5.6092H8.82178V5.33333C8.73267 3.67816 7.75247 2.29885 6.14851 1.83908V0H3.11881V1.93103C1.24752 2.3908 0.178218 3.67816 0.178218 5.24138C0.178218 7.72414 2.49505 8.64368 4.27723 9.01149C6.32673 9.56322 6.59406 10.2069 6.59406 10.8506C6.59406 11.1264 6.41584 12.1379 4.54455 12.1379C3.11881 12.1379 2.31683 11.5862 2.22772 10.4828V10.2989H0V10.5747C0.0891089 12.3218 1.24752 13.6092 3.11881 14.069V16H6.05941V14.069C7.93069 13.6092 9 12.4138 9 10.7586C9 8.36782 6.95049 7.44828 4.90099 6.89655Z",
4074
+ fill: fillColor(color)
4075
+ }));
4076
+ });
4019
4077
  export const More = /*#__PURE__*/memo(({
4020
4078
  width,
4021
4079
  height,
package/package.json CHANGED
@@ -1,44 +1,78 @@
1
- {
2
- "name": "diginet-core-ui",
3
- "version": "1.4.35",
4
- "description": "The DigiNet core ui",
5
- "homepage": "https://diginet.com.vn",
6
- "main": "index.js",
7
- "scripts": {
8
- "start-js": "react-scripts start --max_old_space_size=4096",
9
- "start": "npx npm-run-all -p start-js",
10
- "build": "GENERATE_SOURCEMAP=false && react-scripts build --env=production --max_old_space_size=8192",
11
- "eject": "react-scripts eject",
12
- "test": "echo \"Error: no test specified\" && exit 1"
13
- },
14
- "dependencies": {
15
- "@emotion/core": "^10.0.35",
16
- "prop-types": "^15.7.2",
17
- "@emotion/css": "^11.11.0",
18
- "@emotion/react": "^11.10.6"
19
- },
20
- "repository": {
21
- "type": "git",
22
- "url": "git+https://diginetvn@bitbucket.org/diginetvn/diginet-core-ui.git"
23
- },
24
- "keywords": [
25
- "core ui",
26
- "diginet"
27
- ],
28
- "author": "rocachien",
29
- "contributors": [
30
- {
31
- "name": "Chien Do",
32
- "email": "rocachien@gmail.com"
33
- },
34
- {
35
- "name": "Nhat Tran",
36
- "email": "tranminhnhat1005@gmail.com"
37
- },
38
- {
39
- "name": "Thuan Nguyen",
40
- "email": "nt.thuan.hutech@gmail.com"
41
- }
42
- ],
43
- "license": "MIT"
44
- }
1
+ {
2
+ "name": "diginet-core-ui",
3
+ "version": "1.4.36-beta.2",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "license": "UNLICENSED",
7
+ "scripts": {
8
+ "start": "npm-run-all --parallel start-sb eslint-test",
9
+ "start-sb": "start-storybook -p 9050",
10
+ "build-storybook": "build-storybook -c .storybook -s src",
11
+ "build": "run-script-os",
12
+ "build:windows": "rimraf dist && mkdirp dist/components && npm run compile && sass --style=compressed src/scss:dist/css && xcopy src\\\\assets dist\\\\assets\\ /e /y",
13
+ "build:darwin:linux:default": "rm -rf dist && npm run compile && sass --style=compressed src/scss:dist/css && cp -rf src/assets dist/assets",
14
+ "compile": "babel src --out-dir dist --ignore **/*.stories.js",
15
+ "pack": "npm run build && cp *.md dist/ && npm run version:bump --silent && npm run version:add --silent && cd dist && npm pack",
16
+ "production-keep-version": "npm run build && cp *.md dist/ && cp package.json dist/ && cd dist && npm publish",
17
+ "beta": "npm run build && cp *.md dist/ && cp package.json dist/ && cd dist && npm publish --tag beta",
18
+ "production": "npm run build && cp *.md dist/ && npm run version:bump --silent && npm run version:add --silent && cd dist && npm publish",
19
+ "version:add": "run-script-os",
20
+ "version:add:windows": "cat package.json.tmp | sed \"s/0.0.0/%npm_package_version%/g\" > dist/package.json",
21
+ "version:add:darwin:linux:default": "VERSION=$(npm run version:extract --silent) && cat package.json.tmp | sed \"s/0.0.0/${VERSION}/g\" > dist/package.json",
22
+ "version:bump": "npm version patch --no-git-tag-version --silent",
23
+ "version:extract": "cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]'",
24
+ "test": "echo \"Error: no test specified\" && exit 1",
25
+ "lint": "eslint --fix --config .eslintrc.js \"**/*.js\"",
26
+ "eslint-test": "onchange \"src/**/*.{js,jsx,json}\" -- eslint . --fix",
27
+ "freshtall": "npm cache clean --force && rm -rf node_modules && rm -f package-lock.json && npm install",
28
+ "test-storybook": "test-storybook --url http://localhost:9050",
29
+ "preinstall": "echo {} > package-lock.json"
30
+ },
31
+ "dependencies": {
32
+ "@emotion/core": "^10.0.35",
33
+ "@emotion/css": "^11.11.0",
34
+ "@emotion/react": "^11.10.6",
35
+ "babel-plugin-module-resolver": "^4.1.0",
36
+ "date-fns": "^2.30.0",
37
+ "prop-types": "^15.7.2"
38
+ },
39
+ "lint-staged": {
40
+ "*/**/*.{js,jsx,json}": [
41
+ "prettier --write",
42
+ "git add"
43
+ ]
44
+ },
45
+ "devDependencies": {
46
+ "@babel/cli": "^7.14.3",
47
+ "@babel/plugin-proposal-class-properties": "^7.13.0",
48
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0",
49
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0",
50
+ "@babel/plugin-proposal-optional-chaining": "^7.14.2",
51
+ "@babel/plugin-proposal-private-methods": "^7.18.6",
52
+ "@babel/plugin-proposal-private-property-in-object": "^7.18.6",
53
+ "@babel/preset-react": "^7.13.13",
54
+ "@storybook/addon-actions": "6.2.9",
55
+ "@storybook/addon-essentials": "6.2.9",
56
+ "@storybook/addon-links": "6.2.9",
57
+ "@storybook/addon-postcss": "^2.0.0",
58
+ "@storybook/react": "6.2.9",
59
+ "@storybook/test-runner": "^0.7.1",
60
+ "autoprefixer": "^10.3.1",
61
+ "babel-loader": "^8.2.2",
62
+ "eslint": "^8.4.1",
63
+ "eslint-plugin-react": "^7.27.1",
64
+ "eslint-plugin-regex": "^1.10.0",
65
+ "husky": "^7.0.4",
66
+ "jest": "^27.5.1",
67
+ "lint-staged": "^12.1.2",
68
+ "mkdirp": "^1.0.4",
69
+ "npm-run-all": "^4.1.5",
70
+ "onchange": "^7.1.0",
71
+ "postcss-flexbugs-fixes": "^5.0.2",
72
+ "react": "^17.0.1",
73
+ "react-dom": "^17.0.1",
74
+ "rimraf": "^3.0.2",
75
+ "run-script-os": "^1.1.6",
76
+ "sass": "1.58.3"
77
+ }
78
+ }
package/readme.md CHANGED
@@ -42,6 +42,17 @@ npm test
42
42
 
43
43
  ## Changelog
44
44
 
45
+ ## 1.4.36
46
+
47
+ - \[Fixed\]: TimePicker – Fix show popover when readOnly is true, fix return value contain space
48
+ - \[Changed\]: index.stories.js – Add props to components in index.stories.js
49
+ - \[Fixed\]: DatePicker – Fix still open popup when readOnly
50
+ - \[Fixed\]: DateRangePicker – Fix still open popup when readOnly
51
+
52
+ ## 1.4.35
53
+
54
+ * [Changed\]: DropdownBox - Added props allowInput, disabled, displayExpr, error, valueExpr, helperTextProps
55
+
45
56
  ## 1.4.34
46
57
 
47
58
  - \[Fixed]: DatePicker – Fix disabled navigator on first render
@@ -1367,3 +1378,5 @@ npm test
1367
1378
  - \[Added\]: Icon component for DHR/ERP
1368
1379
  - \[Changed\]: Progress/Linear component
1369
1380
  - \[Changed\]: Form/Dropdown component
1381
+
1382
+ [Added]: Adde