diginet-core-ui 1.4.66 → 1.4.67

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.
@@ -0,0 +1,15 @@
1
+ <svg width="39" height="39" viewBox="0 0 39 39" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_2813_38)">
3
+ <path d="M9.70007 26.7C9.70007 27.3 10.1001 27.8 10.7001 28V25.4C10.1001 25.5 9.70007 26 9.70007 26.7Z" fill="#FF8C00"/>
4
+ <path d="M13.4001 31.5C13.3001 30.9 12.9001 30.4 12.4001 30.4V33C13.1001 32.7 13.5001 32.2 13.4001 31.5Z" fill="#FF8C00"/>
5
+ <path d="M18.7001 38.3V22.3C17.7001 21.1 16.6001 20 15.2001 19.1C15.1001 19 14.9001 19 14.8001 19C14.0001 19 13.2001 19.1 12.4001 19.1C12.1001 19.1 11.9001 19.1 11.6001 19.1C11.3001 19.1 11.1001 19.1 10.8001 19.1C10.0001 19.1 9.20007 19.1 8.40007 19C8.30007 19 8.10007 19 8.00007 19.1C6.50007 20 5.30007 21.2 4.30007 22.6C2.40007 25 1.00007 27.7 0.300074 30.7C7.42078e-05 32.2 -0.199926 33.6 0.200074 35.1C0.600074 36.5 1.40007 37.5 2.70007 38C3.80007 38.5 7.00007 39 7.00007 39C8.20007 39 9.30007 39 10.5001 39C10.9001 39 11.2001 39 11.6001 39C11.9001 39 12.3001 39 12.7001 39C13.9001 39 15.0001 39 16.2001 39C16.1001 39 18.7001 38.4 18.7001 38.3ZM12.9001 28.4C14.3001 28.9 15.2001 30 15.3001 31.5C15.4001 33 14.4001 34.2 13.0001 34.6C12.4001 34.8 12.4001 34.8 12.4001 35.4V36.1H10.8001C10.8001 35.7 10.8001 35.4 10.8001 35C10.8001 34.8 10.7001 34.7 10.5001 34.6C9.20007 34.2 8.30007 33.4 7.90007 32C7.80007 31.7 7.80007 31.4 7.80007 31.1H9.80007C9.80007 31.8 10.1001 32.2 10.8001 32.5V30C10.7001 30 10.5001 29.9 10.3001 29.9C8.80007 29.4 7.80007 28.2 7.90007 26.7C7.90007 25.2 8.90007 24 10.3001 23.6C10.8001 23.5 10.8001 23.5 10.8001 23V22.1H12.4001C12.4001 22.5 12.4001 22.9 12.4001 23.2C12.4001 23.4 12.5001 23.5 12.7001 23.6C14.0001 24 14.9001 24.8 15.3001 26.1C15.5001 27 15.5001 27 14.6001 27H13.4001C13.4001 26.3 13.1001 25.8 12.4001 25.5V28.2C12.5001 28.3 12.7001 28.3 12.9001 28.4Z" fill="#FF8C00"/>
6
+ <path d="M8.80007 17.7C8.60007 17.7 8.50007 17.6 8.40007 17.5C7.40007 16.1 6.40007 14.7 5.60007 13.2C5.30007 12.6 5.10007 12 4.90007 11.4C4.80007 11.2 4.90007 11 4.90007 10.8C4.90007 10.5 5.10007 10.3 5.50007 10.3C5.80007 10.3 6.10007 10.4 6.40007 10.5C6.90007 10.7 7.40007 10.9 7.90007 11.1C8.60007 11.4 9.30007 11.3 9.90007 10.8C10.1001 10.6 10.4001 10.4 10.7001 10.3C11.3001 9.9 11.9001 9.9 12.5001 10.3C12.8001 10.5 13.2001 10.7 13.5001 11C13.9001 11.3 14.4001 11.4 14.9001 11.3C15.5001 11.1 16.1001 10.9 16.7001 10.7C17.0001 10.6 17.3001 10.5 17.6001 10.5C18.0001 10.4 18.2001 10.6 18.2001 11C18.2001 11.4 18.1001 11.9 18.0001 12.3C17.6001 13.5 16.9001 14.5 16.2001 15.5C15.7001 16.2 15.2001 16.9 14.7001 17.6C14.6001 17.7 14.5001 17.8 14.4001 17.8C13.5001 17.7 9.70007 17.7 8.80007 17.7Z" fill="#FF8C00"/>
7
+ <path d="M31.1 7.8C31 8.1 30.7 8.2 30.4 8.3H27.6V14.5L23.6 18.5C23.1 19 23 19.7 23.2 20.3C23.5 20.9 24.1 21.3 24.7 21.3H26.6V38.3C26.6 38.6 26.7 38.8 26.8 39H20.3C19.9 39 19.6 38.7 19.5 38.3V8.3H16.7C16.4 8.3 16.1 8.1 16 7.8C16 7.5 16.1 7.2 16.3 7L23.1 0.2C23.2 0.1 23.4 0 23.6 0C23.8 0 24 0.1 24.1 0.2L30.9 7C31.1 7.2 31.2 7.5 31.1 7.8Z" fill="#1CA261"/>
8
+ <path d="M31.4598 12C31.6598 12 31.8598 12.1 31.9598 12.2L38.7598 19C38.9598 19.2 39.0598 19.5 38.9598 19.8C38.8598 20.1 38.5598 20.2 38.2598 20.3H35.4598V38.3C35.4598 38.7 35.1598 39 34.7598 39H28.2598C27.8598 39 27.5598 38.7 27.5598 38.3V20.3H24.7598C24.4598 20.3 24.1598 20.1 24.0598 19.8C23.9598 19.5 23.9598 19.2 24.2598 19L31.0598 12.2C31.0598 12.1 31.2598 12 31.4598 12Z" fill="#FF4444"/>
9
+ </g>
10
+ <defs>
11
+ <clipPath id="clip0_2813_38">
12
+ <rect width="39" height="39" fill="white"/>
13
+ </clipPath>
14
+ </defs>
15
+ </svg>
@@ -109,11 +109,8 @@ const ButtonIcon = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referenc
109
109
  currentRef.instance = _instance;
110
110
  return currentRef;
111
111
  });
112
- return useMemo(() => {
113
- return jsx(Tooltip, {
114
- title: title,
115
- disableInteractive: !title
116
- }, jsx("button", {
112
+ const renderBtn = () => {
113
+ let result = jsx("button", {
117
114
  css: [_ButtonRootCSS, _ButtonSizeCSS],
118
115
  ref: ref,
119
116
  id: id,
@@ -133,7 +130,15 @@ const ButtonIcon = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referenc
133
130
  ref: rippleRef,
134
131
  color: getRippleColor(colorProp, viewType, colors),
135
132
  circular: circular
136
- })));
133
+ }));
134
+ if (title) result = jsx(Tooltip, {
135
+ title: title,
136
+ disableInteractive: !title
137
+ }, result);
138
+ return result;
139
+ };
140
+ return useMemo(() => {
141
+ return renderBtn();
137
142
  }, [children, circular, className, colorHover, colorProp, disabled, height, id, loading, name, onClick, size, style, viewBox, viewType, width, theme, title]);
138
143
  }));
139
144
  const ButtonIconCSS = iconSize => css`
@@ -573,7 +573,7 @@ const Attachment = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referenc
573
573
  // Add event listener click out of item
574
574
  if (!existClickOutOfItem.current) {
575
575
  existClickOutOfItem.current = true;
576
- attachmentHandleIconRef.current.style.display = 'block';
576
+ attachmentHandleIconRef.current.style.display = 'flex';
577
577
  document.addEventListener('keydown', onKeyDown);
578
578
  document.addEventListener('click', clickOutOfItem);
579
579
  }
@@ -119,6 +119,7 @@ const DateRangePicker = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, ref
119
119
  const iconRef = useRef(null);
120
120
  const ipConRef = useRef(null);
121
121
  const ipRef = useRef(null);
122
+ const iconCloseRef = useRef(null);
122
123
  const pickerRef = useRef(null);
123
124
  const tableFrRef = useRef(null);
124
125
  const tableToRef = useRef(null);
@@ -593,22 +594,25 @@ const DateRangePicker = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, ref
593
594
  const t = iconRef.current.childNodes[+open];
594
595
  if (open) {
595
596
  Object.assign(t.style, {
596
- ...hiddenStyle
597
+ ...activeStyle
597
598
  });
598
599
  Object.assign(t.previousSibling.style, {
599
600
  ...activeStyle
600
601
  });
601
602
  setTimeout(() => {
603
+ t.style.pointerEvents = null;
602
604
  t.previousSibling.style.pointerEvents = null;
605
+ if (iconCloseRef.current) Object.assign(iconCloseRef.current.style, hiddenStyle);
603
606
  }, 200);
604
607
  } else {
605
608
  Object.assign(t.style, {
606
- ...hiddenStyle
609
+ ...activeStyle
607
610
  });
608
611
  Object.assign(t.nextSibling.style, {
609
612
  ...activeStyle
610
613
  });
611
614
  setTimeout(() => {
615
+ t.style.pointerEvents = null;
612
616
  t.nextSibling.style.pointerEvents = null;
613
617
  }, 200);
614
618
  }
@@ -995,17 +999,18 @@ const DateRangePicker = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, ref
995
999
  css: IconAreaCSS,
996
1000
  ref: iconRef
997
1001
  }, jsx(ButtonIcon, {
998
- viewType: 'ghost',
999
- onClick: triggerFocus,
1000
- className: `${unique.icon} ${unique.icon}-accept`,
1001
- viewBox: true,
1002
- name: 'Calendar'
1003
- }), jsx(ButtonIcon, {
1002
+ ref: iconCloseRef,
1004
1003
  viewType: 'ghost',
1005
1004
  onClick: onClear,
1006
1005
  className: `${unique.icon} ${unique.icon}-cancel`,
1007
1006
  viewBox: true,
1008
1007
  name: 'Close'
1008
+ }), jsx(ButtonIcon, {
1009
+ viewType: 'ghost',
1010
+ onClick: triggerFocus,
1011
+ className: `${unique.icon} ${unique.icon}-accept`,
1012
+ viewBox: true,
1013
+ name: 'Calendar'
1009
1014
  })) : null;
1010
1015
  const endIcon = actionIconAt === 'end' && iconComp;
1011
1016
  const startIcon = actionIconAt === 'start' && iconComp;
@@ -1321,6 +1326,7 @@ const buttonProps = ({
1321
1326
  }
1322
1327
  });
1323
1328
  const IconAreaCSS = css`
1329
+ display: flex;
1324
1330
  .${unique.icon} {
1325
1331
  ${displayNone};
1326
1332
  ${cursorPointer};
@@ -110,7 +110,7 @@ const Dropdown = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference)
110
110
  total,
111
111
  treeViewID,
112
112
  treeViewParentID,
113
- value: valueProp,
113
+ value: valueProp = '',
114
114
  valueExpr,
115
115
  valueObjectDefault,
116
116
  viewType,
@@ -1754,33 +1754,6 @@ const CheckBoxCSS = ({
1754
1754
  `;
1755
1755
  /* End styled */
1756
1756
 
1757
- // Dropdown.defaultProps = {
1758
- // allowSearch: true,
1759
- // className: '',
1760
- // clearAble: false,
1761
- // dataSource: [],
1762
- // disabled: false,
1763
- // displayExpr: 'name',
1764
- // error: '',
1765
- // iconExpr: 'none',
1766
- // inputProps: {},
1767
- // itemMode: 'normal',
1768
- // label: '',
1769
- // limit: 50,
1770
- // loading: false,
1771
- // multilineSelectedItem: false,
1772
- // multiple: false,
1773
- // noDataText: getGlobal('noDataText'),
1774
- // placeholder: getGlobal('dropdownPlaceholder'),
1775
- // readOnly: false,
1776
- // required: false,
1777
- // searchDelayTime: getGlobal('delayOnInput'),
1778
- // searchMode: 'contains',
1779
- // total: Number.MAX_SAFE_INTEGER,
1780
- // valueExpr: 'id',
1781
- // viewType: 'underlined',
1782
- // };
1783
-
1784
1757
  Dropdown.propTypes = {
1785
1758
  action: PropTypes.shape({
1786
1759
  loadData: PropTypes.func
@@ -60,7 +60,7 @@ const InputBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference
60
60
  ...other
61
61
  } = props;
62
62
  const autoWidth = !autoWidthProp && inputProps !== null && inputProps !== void 0 && inputProps.autoWidth ? inputProps.autoWidth : autoWidthProp;
63
- const delayOnChange = delayOnChangeProp || getGlobal('delayOnInput');
63
+ const delayOnChange = delayOnChangeProp !== null && delayOnChangeProp !== void 0 ? delayOnChangeProp : getGlobal('delayOnInput');
64
64
  const placeholder = placeholderProp || getGlobal('inputPlaceholder');
65
65
  const _onChange = e => {
66
66
  onChange && onChange(e);
@@ -38,13 +38,29 @@ const num2WordsVi = function () {
38
38
  return e > 0 && (o += n(e, r) + ' ngàn', r = !0), t > 0 && (o += n(t, r)), o;
39
39
  };
40
40
  return {
41
- convert: function (r) {
41
+ convert: function (input) {
42
+ if (!Number.isFinite(input)) return '';
43
+ let parts = String(input).split('.');
44
+ let intPart = Math.floor(Number(parts[0]));
45
+ let decimalPart = parts[1];
46
+ let temp = intPart;
47
+ let nStr = '';
48
+ let a = '';
42
49
  let ty;
43
- if (0 === r) return t[0];
44
- let n = '',
45
- a = '';
46
- do ty = r % 1e9, r = Math.floor(r / 1e9), n = r > 0 ? o(ty, !0) + a + n : o(ty, !1) + a + n, a = ' tỷ'; while (r > 0);
47
- return n.trim();
50
+ if (intPart === 0) return t[0];
51
+ do {
52
+ ty = temp % 1e9;
53
+ temp = Math.floor(temp / 1e9);
54
+ nStr = temp > 0 ? o(ty, true) + a + nStr : o(ty, false) + a + nStr;
55
+ a = ' tỷ';
56
+ } while (temp > 0);
57
+ let result = nStr.trim();
58
+
59
+ // xử lý thập phân
60
+ if (decimalPart) {
61
+ result += ' phẩy ' + decimalPart.split('').map(d => t[Number(d)]).join(' ');
62
+ }
63
+ return result;
48
64
  }
49
65
  };
50
66
  }();
@@ -56,22 +72,32 @@ const num2WordsEn = n => {
56
72
  const drop = n => xs => xs.slice(n);
57
73
  const reverse = xs => xs.slice(0).reverse();
58
74
  const comp = f => g => x => f(g(x));
59
- const not = x => !x;
60
75
  const chunk = n => xs => isEmpty(xs) ? [] : [take(n)(xs), ...chunk(n)(drop(n)(xs))];
61
76
  let a = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];
62
77
  let b = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];
63
78
  let g = ['', 'thousand', 'million', 'billion', 'trillion', 'quadrillion', 'quintillion', 'sextillion', 'septillion', 'octillion', 'nonillion'];
64
- // this part is really nasty still
65
- // it might edit this again later to show how Monoids could fix this up
66
79
  let makeGroup = ([ones, tens, huns]) => {
67
80
  return [num(huns) === 0 ? '' : a[huns] + ' hundred ', num(ones) === 0 ? b[tens] : b[tens] && b[tens] + '-' || '', a[tens + ones] || a[ones]].join('');
68
81
  };
69
- // "thousands" constructor; no real good names for this, I guess
70
82
  let thousand = (group, i) => group === '' ? group : `${group} ${g[i]}`;
71
- // execute !
72
- if (typeof n === 'number') return num2WordsEn(String(n));
73
- if (n === '0') return 'zero';
74
- return comp(chunk(3))(reverse)(arr(n)).map(makeGroup).map(thousand).filter(comp(not)(isEmpty)).reverse().join(' ');
83
+ // convert integer part
84
+ const convertInt = str => {
85
+ if (str === '0') return 'zero';
86
+ return comp(chunk(3))(reverse)(arr(str)).map(makeGroup).map(thousand).filter(x => x.trim().length > 0).reverse().join(' ').trim();
87
+ };
88
+ // normalize input
89
+ if (typeof n === 'number') n = String(n);
90
+ const parts = n.split('.');
91
+ const intPart = parts[0];
92
+ const decimalPart = parts[1];
93
+ let result = convertInt(intPart);
94
+
95
+ // decimal handling
96
+ if (decimalPart) {
97
+ const decimalWords = decimalPart.split('').map(d => a[Number(d)] || '').join(' ').trim();
98
+ result += ' point ' + decimalWords;
99
+ }
100
+ return result;
75
101
  };
76
102
  const num2WordsZh = (() => {
77
103
  const t = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
@@ -79,47 +105,63 @@ const num2WordsZh = (() => {
79
105
  const bigUnits = ['', '万', '亿', '兆'];
80
106
  const readSection = num => {
81
107
  let str = '';
82
- let zero = true;
83
- for (let i = 0; i < 4 && num > 0; i++) {
108
+ let zero = false;
109
+ for (let i = 0; i < 4; i++) {
84
110
  const digit = num % 10;
85
111
  if (digit === 0) {
86
- if (!zero) {
87
- zero = true;
112
+ if (!zero && str !== '') {
88
113
  str = t[0] + str;
89
114
  }
115
+ zero = true;
90
116
  } else {
91
- zero = false;
92
117
  str = t[digit] + units[i] + str;
118
+ zero = false;
93
119
  }
94
120
  num = Math.floor(num / 10);
121
+ if (num === 0) break;
95
122
  }
96
123
  return str;
97
124
  };
98
- return {
99
- convert: num => {
100
- if (num === 0) return t[0];
101
- let str = '';
102
- let unitPos = 0;
103
- let needZero = false;
104
- while (num > 0) {
105
- const section = num % 10000;
106
- if (section === 0) {
107
- if (needZero) {
108
- str = t[0] + str;
109
- needZero = false;
110
- }
111
- } else {
112
- const sectionStr = readSection(section) + bigUnits[unitPos];
113
- str = sectionStr + str;
114
- needZero = true;
125
+ const readInteger = num => {
126
+ if (num === 0) return t[0];
127
+ let sections = [];
128
+ while (num > 0) {
129
+ sections.unshift(num % 10000);
130
+ num = Math.floor(num / 10000);
131
+ }
132
+ let result = '';
133
+ for (let i = 0; i < sections.length; i++) {
134
+ const section = sections[i];
135
+ const unit = bigUnits[sections.length - 1 - i];
136
+ if (section === 0) {
137
+ if (result && !result.endsWith(t[0]) && sections.slice(i + 1).some(v => v > 0)) {
138
+ result += t[0];
115
139
  }
116
- num = Math.floor(num / 10000);
117
- unitPos++;
140
+ continue;
118
141
  }
119
142
 
120
- // Special cases
121
- str = str.replace(/^一十/, '十'); // "一十X" => "十X"
122
- return str;
143
+ // Nếu nhóm hiện tại <1000 và phía trước đã có nội dung
144
+ // => cần thêm ""
145
+ if (result && section < 1000 && !result.endsWith(t[0])) {
146
+ result += t[0];
147
+ }
148
+ result += readSection(section) + unit;
149
+ }
150
+ return result.replace(/零+/g, '零').replace(/零$/g, '').replace(/^一十/, '十');
151
+ };
152
+ return {
153
+ convert: num => {
154
+ if (typeof num === 'string') {
155
+ num = num.trim();
156
+ }
157
+ const strNum = String(num);
158
+ if (!strNum.includes('.')) {
159
+ return readInteger(Number(strNum));
160
+ }
161
+ const [intPart, decPart] = strNum.split('.');
162
+ const intWords = readInteger(Number(intPart));
163
+ const decWords = decPart.split('').map(ch => t[Number(ch)]).join('');
164
+ return `${intWords}点${decWords}`;
123
165
  }
124
166
  };
125
167
  })();
@@ -403,7 +445,7 @@ const MoneyInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referenc
403
445
  }
404
446
  }
405
447
  const v = getValueWithDecimal(number.toString().replace('.', decimalSymbol));
406
- if (convertToWords && !decimalDigit && (disabled || readOnly)) {
448
+ if (convertToWords && (disabled || readOnly)) {
407
449
  inputRef.current.value = convertNumToWords(value);
408
450
  } else {
409
451
  inputRef.current.value = parseValueWithFix(thousandSeparator ? getThousandSeparator(v) : v);
@@ -431,9 +473,9 @@ const MoneyInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referenc
431
473
  });
432
474
  const convertNumToWords = number => {
433
475
  let valueConverted = getGlobal('helperInvalid');
434
- if (Number.isInteger(number)) {
476
+ if (Number.isFinite(number)) {
435
477
  const currentLocale = locale.get();
436
- const converter = converters[currentLocale] || num2WordsVi; // fallback VN
478
+ const converter = converters[currentLocale] || num2WordsEn; // fallback VN
437
479
  valueConverted = Object.hasOwn(converter, 'convert') ? converter.convert(number) : converter(number);
438
480
  }
439
481
  return valueConverted;
package/icons/basic.js CHANGED
@@ -3800,6 +3800,34 @@ export const Lock = /*#__PURE__*/memo(({
3800
3800
  fill: fillColor(color)
3801
3801
  }));
3802
3802
  });
3803
+ export const LockReset = /*#__PURE__*/memo(({
3804
+ width,
3805
+ height,
3806
+ color = 'system/rest',
3807
+ viewBox = false
3808
+ }) => {
3809
+ return viewBox ? /*#__PURE__*/React.createElement("svg", {
3810
+ width: width || 24,
3811
+ height: height || 24,
3812
+ viewBox: "0 0 24 24",
3813
+ fill: "none"
3814
+ }, /*#__PURE__*/React.createElement("path", {
3815
+ fillRule: "evenodd",
3816
+ clipRule: "evenodd",
3817
+ d: "M12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12H4C4 13.1 4.20833 14.1375 4.625 15.1125C5.04167 16.0875 5.6125 16.9375 6.3375 17.6625C7.0625 18.3875 7.9125 18.9625 8.8875 19.3875C9.8625 19.8125 10.9 20.025 12 20.025C14.2333 20.025 16.125 19.25 17.675 17.7C19.225 16.15 20 14.2583 20 12.025C20 9.79167 19.225 7.9 17.675 6.35C16.125 4.8 14.2333 4.025 12 4.025C10.5167 4.025 9.17083 4.3875 7.9625 5.1125C6.75417 5.8375 5.8 6.8 5.1 8H8V10H2V4H4V6C4.91667 4.78333 6.06667 3.8125 7.45 3.0875C8.83333 2.3625 10.35 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM10 16C9.71667 16 9.47917 15.9042 9.2875 15.7125C9.09583 15.5208 9 15.2833 9 15V12C9 11.7167 9.09583 11.4792 9.2875 11.2875C9.47917 11.0958 9.71667 11 10 11V10C10 9.45 10.1958 8.97917 10.5875 8.5875C10.9792 8.19583 11.45 8 12 8C12.55 8 13.0208 8.19583 13.4125 8.5875C13.8042 8.97917 14 9.45 14 10V11C14.2833 11 14.5208 11.0958 14.7125 11.2875C14.9042 11.4792 15 11.7167 15 12V15C15 15.2833 14.9042 15.5208 14.7125 15.7125C14.5208 15.9042 14.2833 16 14 16H10ZM11 11H13V10C13 9.71667 12.9042 9.47917 12.7125 9.2875C12.5208 9.09583 12.2833 9 12 9C11.7167 9 11.4792 9.09583 11.2875 9.2875C11.0958 9.47917 11 9.71667 11 10V11Z",
3818
+ fill: fillColor(color)
3819
+ })) : /*#__PURE__*/React.createElement("svg", {
3820
+ width: width || 20,
3821
+ height: height || 20,
3822
+ viewBox: "0 0 20 20",
3823
+ fill: "none"
3824
+ }, /*#__PURE__*/React.createElement("path", {
3825
+ fillRule: "evenodd",
3826
+ clipRule: "evenodd",
3827
+ d: "M10 20C8.61667 20 7.31667 19.7375 6.1 19.2125C4.88333 18.6875 3.825 17.975 2.925 17.075C2.025 16.175 1.3125 15.1167 0.7875 13.9C0.2625 12.6833 0 11.3833 0 10H2C2 11.1 2.20833 12.1375 2.625 13.1125C3.04167 14.0875 3.6125 14.9375 4.3375 15.6625C5.0625 16.3875 5.9125 16.9625 6.8875 17.3875C7.8625 17.8125 8.9 18.025 10 18.025C12.2333 18.025 14.125 17.25 15.675 15.7C17.225 14.15 18 12.2583 18 10.025C18 7.79167 17.225 5.9 15.675 4.35C14.125 2.8 12.2333 2.025 10 2.025C8.51667 2.025 7.17083 2.3875 5.9625 3.1125C4.75417 3.8375 3.8 4.8 3.1 6H6V8H0V2H2V4C2.91667 2.78333 4.06667 1.8125 5.45 1.0875C6.83333 0.3625 8.35 0 10 0C11.3833 0 12.6833 0.2625 13.9 0.7875C15.1167 1.3125 16.175 2.025 17.075 2.925C17.975 3.825 18.6875 4.88333 19.2125 6.1C19.7375 7.31667 20 8.61667 20 10C20 11.3833 19.7375 12.6833 19.2125 13.9C18.6875 15.1167 17.975 16.175 17.075 17.075C16.175 17.975 15.1167 18.6875 13.9 19.2125C12.6833 19.7375 11.3833 20 10 20ZM8 14C7.71667 14 7.47917 13.9042 7.2875 13.7125C7.09583 13.5208 7 13.2833 7 13V10C7 9.71667 7.09583 9.47917 7.2875 9.2875C7.47917 9.09583 7.71667 9 8 9V8C8 7.45 8.19583 6.97917 8.5875 6.5875C8.97917 6.19583 9.45 6 10 6C10.55 6 11.0208 6.19583 11.4125 6.5875C11.8042 6.97917 12 7.45 12 8V9C12.2833 9 12.5208 9.09583 12.7125 9.2875C12.9042 9.47917 13 9.71667 13 10V13C13 13.2833 12.9042 13.5208 12.7125 13.7125C12.5208 13.9042 12.2833 14 12 14H8ZM9 9H11V8C11 7.71667 10.9042 7.47917 10.7125 7.2875C10.5208 7.09583 10.2833 7 10 7C9.71667 7 9.47917 7.09583 9.2875 7.2875C9.09583 7.47917 9 7.71667 9 8V9Z",
3828
+ fill: fillColor(color)
3829
+ }));
3830
+ });
3803
3831
  export const Login = /*#__PURE__*/memo(({
3804
3832
  width,
3805
3833
  height,
@@ -6859,6 +6887,36 @@ export const Treeview = /*#__PURE__*/memo(({
6859
6887
  fill: fillColor(color)
6860
6888
  }));
6861
6889
  });
6890
+ export const TruckApproval = /*#__PURE__*/memo(({
6891
+ width,
6892
+ height,
6893
+ color = 'system/rest',
6894
+ viewBox = false
6895
+ }) => {
6896
+ return viewBox ? /*#__PURE__*/React.createElement("svg", {
6897
+ width: width || 24,
6898
+ height: height || 24,
6899
+ viewBox: "0 0 24 24",
6900
+ fill: "none"
6901
+ }, /*#__PURE__*/React.createElement("path", {
6902
+ d: "M9 8.19983L4.42823 13L1 9.39967L2.14274 8.19983L4.42823 10.5995L7.85726 7L9 8.19983Z",
6903
+ fill: fillColor(color)
6904
+ }), /*#__PURE__*/React.createElement("path", {
6905
+ d: "M4.875 19.125C4.29167 18.5417 4 17.8333 4 17H1.5L1.95 15H4.775C5.05833 14.6833 5.39167 14.4375 5.775 14.2625C6.15833 14.0875 6.56667 14 7 14C7.43333 14 7.84167 14.0875 8.225 14.2625C8.60833 14.4375 8.94167 14.6833 9.225 15H13.4L15.5 6H6.55L6.975 4H18L17.075 8H20L23 12L22 17H20C20 17.8333 19.7083 18.5417 19.125 19.125C18.5417 19.7083 17.8333 20 17 20C16.1667 20 15.4583 19.7083 14.875 19.125C14.2917 18.5417 14 17.8333 14 17H10C10 17.8333 9.70833 18.5417 9.125 19.125C8.54167 19.7083 7.83333 20 7 20C6.16667 20 5.45833 19.7083 4.875 19.125ZM15.925 13H20.75L20.85 12.475L19 10H16.625L15.925 13ZM15.5 6L13.4 15L13.45 14.825L15.5 6ZM7 18C7.28333 18 7.52083 17.9042 7.7125 17.7125C7.90417 17.5208 8 17.2833 8 17C8 16.7167 7.90417 16.4792 7.7125 16.2875C7.52083 16.0958 7.28333 16 7 16C6.71667 16 6.47917 16.0958 6.2875 16.2875C6.09583 16.4792 6 16.7167 6 17C6 17.2833 6.09583 17.5208 6.2875 17.7125C6.47917 17.9042 6.71667 18 7 18ZM17 18C17.2833 18 17.5208 17.9042 17.7125 17.7125C17.9042 17.5208 18 17.2833 18 17C18 16.7167 17.9042 16.4792 17.7125 16.2875C17.5208 16.0958 17.2833 16 17 16C16.7167 16 16.4792 16.0958 16.2875 16.2875C16.0958 16.4792 16 16.7167 16 17C16 17.2833 16.0958 17.5208 16.2875 17.7125C16.4792 17.9042 16.7167 18 17 18Z",
6906
+ fill: fillColor(color)
6907
+ })) : /*#__PURE__*/React.createElement("svg", {
6908
+ width: width || 22,
6909
+ height: height || 16,
6910
+ viewBox: "0 0 22 16",
6911
+ fill: "none"
6912
+ }, /*#__PURE__*/React.createElement("path", {
6913
+ d: "M8 4.19983L3.42823 9L0 5.39967L1.14274 4.19983L3.42823 6.5995L6.85726 3L8 4.19983Z",
6914
+ fill: fillColor(color)
6915
+ }), /*#__PURE__*/React.createElement("path", {
6916
+ d: "M3.875 15.125C3.29167 14.5417 3 13.8333 3 13H0.5L0.95 11H3.775C4.05833 10.6833 4.39167 10.4375 4.775 10.2625C5.15833 10.0875 5.56667 10 6 10C6.43333 10 6.84167 10.0875 7.225 10.2625C7.60833 10.4375 7.94167 10.6833 8.225 11H12.4L14.5 2H5.55L5.975 0H17L16.075 4H19L22 8L21 13H19C19 13.8333 18.7083 14.5417 18.125 15.125C17.5417 15.7083 16.8333 16 16 16C15.1667 16 14.4583 15.7083 13.875 15.125C13.2917 14.5417 13 13.8333 13 13H9C9 13.8333 8.70833 14.5417 8.125 15.125C7.54167 15.7083 6.83333 16 6 16C5.16667 16 4.45833 15.7083 3.875 15.125ZM14.925 9H19.75L19.85 8.475L18 6H15.625L14.925 9ZM14.5 2L12.4 11L12.45 10.825L14.5 2ZM6 14C6.28333 14 6.52083 13.9042 6.7125 13.7125C6.90417 13.5208 7 13.2833 7 13C7 12.7167 6.90417 12.4792 6.7125 12.2875C6.52083 12.0958 6.28333 12 6 12C5.71667 12 5.47917 12.0958 5.2875 12.2875C5.09583 12.4792 5 12.7167 5 13C5 13.2833 5.09583 13.5208 5.2875 13.7125C5.47917 13.9042 5.71667 14 6 14ZM16 14C16.2833 14 16.5208 13.9042 16.7125 13.7125C16.9042 13.5208 17 13.2833 17 13C17 12.7167 16.9042 12.4792 16.7125 12.2875C16.5208 12.0958 16.2833 12 16 12C15.7167 12 15.4792 12.0958 15.2875 12.2875C15.0958 12.4792 15 12.7167 15 13C15 13.2833 15.0958 13.5208 15.2875 13.7125C15.4792 13.9042 15.7167 14 16 14Z",
6917
+ fill: fillColor(color)
6918
+ }));
6919
+ });
6862
6920
  export const TwoSquare = /*#__PURE__*/memo(({
6863
6921
  width,
6864
6922
  height,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "diginet-core-ui",
3
- "version": "1.4.66",
3
+ "version": "1.4.67",
4
4
  "description": "The DigiNet core ui",
5
5
  "homepage": "https://diginet.com.vn",
6
6
  "main": "index.js",
package/readme.md CHANGED
@@ -41,6 +41,15 @@ npm test
41
41
  ```
42
42
 
43
43
  ## Changelog
44
+ ## 1.4.67
45
+ - \[Added\]: ButtonIcon – Add the title prop to ButtonIcon to display the text as a tooltip on hover.
46
+ - \[Added\]: Icon – Add IconMenu MHRP75N0025
47
+ - \[Added\]: Icon – Add Icon LockReset
48
+ - \[Fixed\]: NumberInput - Fix the NumberInput issue where entering 0 does not trigger the delayOnChange prop.
49
+ - \[Fixed\]: DateRangePicker - Fix the issue where the calendar icon is missing and the clear icon is not displayed.
50
+ - \[Fixed\]: Dropdown - Fix the issue where the selected value is not displayed correctly in the Dropdown.
51
+ - \[Added\]: Icon – Add Icon TruckApproval
52
+ - \[Added\]: MoneyInput – Add support for converting decimal numbers to words in Vietnamese, English, and Chinese.
44
53
 
45
54
  ## 1.4.66
46
55
  - \[Added\]: Icon – Add Icon Import