intelicoreact 0.0.7 → 0.0.8

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.
Files changed (31) hide show
  1. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +20 -19
  2. package/dist/Atomic/FormElements/Input/Input.js +85 -46
  3. package/dist/Atomic/FormElements/Input/Input.stories.js +16 -22
  4. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +18 -43
  5. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.scss +42 -10
  6. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +3 -156
  7. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +11 -9
  8. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +3 -3
  9. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +254 -0
  10. package/dist/Atomic/FormElements/NumericInput/NumericInput.scss +135 -0
  11. package/dist/Atomic/FormElements/NumericInput/NumericInput.stories.js +121 -0
  12. package/dist/Atomic/UI/Arrow/Arrow.js +6 -6
  13. package/dist/Constants/index.constants.js +8 -0
  14. package/dist/Functions/inputExecutor.js +58 -0
  15. package/package.json +6 -5
  16. package/src/Atomic/FormElements/Dropdown/Dropdown.js +36 -39
  17. package/src/Atomic/FormElements/Input/Input.js +86 -36
  18. package/src/Atomic/FormElements/Input/Input.stories.js +40 -29
  19. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +187 -214
  20. package/src/Atomic/FormElements/InputDateRange/InputDateRange.scss +42 -10
  21. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +35 -123
  22. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +10 -7
  23. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +2 -2
  24. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +1 -1
  25. package/src/Atomic/FormElements/NumericInput/NumericInput.js +220 -0
  26. package/src/Atomic/FormElements/NumericInput/NumericInput.scss +135 -0
  27. package/src/Atomic/FormElements/NumericInput/NumericInput.stories.js +94 -0
  28. package/src/Atomic/UI/Arrow/Arrow.js +4 -4
  29. package/src/Constants/index.constants.js +41 -0
  30. package/src/Functions/inputExecutor.js +62 -0
  31. package/src/Functions/utils.js +4 -1
@@ -17,20 +17,20 @@ const Arrow = ({type, className, onClick, disabled}) => {
17
17
  }, [ref.current]);
18
18
 
19
19
  return (
20
- <div
20
+ <div
21
21
  ref={ref}
22
22
  className={cn('arrow', `arrow_${type}`, className, {
23
23
  'arrow_disabled': disabled
24
24
  })}
25
25
  onClick={onClick} >
26
- {type !== 'right'
26
+ {type !== 'right'
27
27
  ? (
28
28
  <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
29
- <path d="M15 18L9 12L15 6" stroke={color} stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
29
+ <path d="M15 18L9 12L15 6" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
30
30
  </svg>
31
31
  ) : (
32
32
  <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
33
- <path d="M9 18L15 12L9 6" stroke={color} stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
33
+ <path d="M9 18L15 12L9 6" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
34
34
  </svg>
35
35
  )
36
36
  }
@@ -0,0 +1,41 @@
1
+
2
+ export const KEYBOARD_SERVICE_KEYS = [
3
+ 'Escape',
4
+ 'F1',
5
+ 'F2',
6
+ 'F3',
7
+ 'F4',
8
+ 'F5',
9
+ 'F6',
10
+ 'F7',
11
+ 'F8',
12
+ 'F9',
13
+ 'F10',
14
+ 'F11',
15
+ 'F12',
16
+ 'Tab',
17
+ 'CapsLock',
18
+ 'Shift',
19
+ 'Control',
20
+ 'Meta',
21
+ 'Option',
22
+ 'Alt',
23
+ 'ContextMenu',
24
+ 'ArrowLeft',
25
+ 'ArrowRight',
26
+ 'ArrowUp',
27
+ 'ArrowDown',
28
+ 'NumLock',
29
+ 'Backspace',
30
+ 'Delete',
31
+ 'Enter',
32
+ 'Return',
33
+ 'Insert',
34
+ 'Home',
35
+ 'End',
36
+ 'PageUp',
37
+ 'PageDown',
38
+ 'PrintScreen',
39
+ 'ScrollLock',
40
+ 'Pause'
41
+ ];
@@ -0,0 +1,62 @@
1
+ export const formatInput = {
2
+ priceInput: {
3
+ addCommas: (value) => {
4
+ value = value.toString();
5
+ const isFraction = value.includes('.');
6
+
7
+ const valueBeforeDot = isFraction
8
+ ? value.slice(0, value.indexOf('.'))
9
+ : value;
10
+
11
+ const intPart = valueBeforeDot
12
+ .split('')
13
+ .reverse()
14
+ .reduce(
15
+ (acc, item, idx) =>
16
+ idx % 3 === 0 && idx !== 0 ? [...acc, ',', item] : [...acc, item],
17
+ []
18
+ )
19
+ .reverse()
20
+ .join('');
21
+
22
+ return isFraction ? intPart + value.slice(value.indexOf('.')) : intPart;
23
+ },
24
+ removeComma: (value) => {
25
+ return parseFloat(value.toString().replace(/\,/g, ''));
26
+ }
27
+ },
28
+ onlyNumbers: (value, isDot = false) => {
29
+ const val =
30
+ value.slice(0, 1) !== '0' && value.slice(0, 1) !== '.'
31
+ ? value
32
+ : value.slice(1);
33
+ if (isDot) return twoDigitAfterDot(val.replace(/[^0-9.]/g, ''));
34
+ else return +val.toString().replace(/\D/g, '');
35
+ },
36
+ onlyString: (value) => {
37
+ return value.toString().replace(/[^a-z]/gi, '');
38
+ }
39
+ };
40
+
41
+ //обрезает числа после точки до 2х
42
+ // 342.23423432 -> 342.23
43
+ const twoDigitAfterDot = (value) => {
44
+ if (value.includes('.')) {
45
+ const valueAfterDot = value.slice(0, value.indexOf('.') + 3);
46
+ let rest = value.slice(value.indexOf('.') + 1, value.indexOf('.') + 3);
47
+
48
+ return allButTheFirstDotCutter(valueAfterDot);
49
+ } else {
50
+ return value;
51
+ }
52
+ };
53
+
54
+ //обрезает все точки кроме первой.
55
+ //для фомата "2 цифры после точки"
56
+ // нельзя = 123...
57
+ // можно 123.99
58
+ function allButTheFirstDotCutter(str) {
59
+ return str.replace(/^([^.]*\.)(.*)$/, function (a, b, c) {
60
+ return b + c.replace(/\./g, '');
61
+ });
62
+ }
@@ -5,7 +5,10 @@ export const handleObjectChange =
5
5
  (data, prop = '', isNumber) => {
6
6
  let value;
7
7
  if (data?.target) {
8
- value = data.target.type === 'checkbox' ? data.target.checked : data.target.value;
8
+ value =
9
+ data.target.type === 'checkbox'
10
+ ? data.target.checked
11
+ : data.target.value;
9
12
  } else value = data;
10
13
 
11
14
  value = isNumber ? +value : value;