@cloud-ru/uikit-product-mobile-fields 0.11.24 → 0.11.26

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 (232) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/components/AdaptiveField/AdaptiveField.d.ts +13 -0
  3. package/dist/cjs/components/AdaptiveField/AdaptiveField.js +24 -0
  4. package/dist/cjs/components/AdaptiveField/index.d.ts +1 -0
  5. package/dist/cjs/components/AdaptiveField/index.js +17 -0
  6. package/dist/cjs/components/MobileFieldDate/MobileFieldDate.d.ts +33 -0
  7. package/dist/cjs/components/MobileFieldDate/MobileFieldDate.js +170 -0
  8. package/dist/cjs/components/MobileFieldDate/constants.d.ts +10 -0
  9. package/dist/cjs/components/MobileFieldDate/constants.js +31 -0
  10. package/dist/cjs/components/MobileFieldDate/index.d.ts +2 -0
  11. package/dist/cjs/components/MobileFieldDate/index.js +20 -0
  12. package/dist/cjs/components/MobileFieldDate/styles.module.css +57 -0
  13. package/dist/cjs/components/MobileFieldDate/types.d.ts +6 -0
  14. package/dist/cjs/components/MobileFieldDate/types.js +2 -0
  15. package/dist/cjs/components/MobileFieldDate/utils.d.ts +9 -0
  16. package/dist/cjs/components/MobileFieldDate/utils.js +49 -0
  17. package/dist/cjs/components/MobileFieldSelect/MobileFieldSelect.d.ts +2 -0
  18. package/dist/cjs/components/MobileFieldSelect/MobileFieldSelect.js +17 -0
  19. package/dist/cjs/components/MobileFieldSelect/MobileFieldSelectMultiple.d.ts +3 -0
  20. package/dist/cjs/components/MobileFieldSelect/MobileFieldSelectMultiple.js +154 -0
  21. package/dist/cjs/components/MobileFieldSelect/MobileFieldSelectSingle.d.ts +3 -0
  22. package/dist/cjs/components/MobileFieldSelect/MobileFieldSelectSingle.js +150 -0
  23. package/dist/cjs/components/MobileFieldSelect/hooks.d.ts +47 -0
  24. package/dist/cjs/components/MobileFieldSelect/hooks.js +102 -0
  25. package/dist/cjs/components/MobileFieldSelect/index.d.ts +2 -0
  26. package/dist/cjs/components/MobileFieldSelect/index.js +5 -0
  27. package/dist/cjs/components/MobileFieldSelect/legacy/components/Items/hooks.d.ts +12 -0
  28. package/dist/cjs/components/MobileFieldSelect/legacy/components/Items/hooks.js +36 -0
  29. package/dist/cjs/components/MobileFieldSelect/legacy/components/index.d.ts +1 -0
  30. package/dist/cjs/components/MobileFieldSelect/legacy/components/index.js +5 -0
  31. package/dist/cjs/components/MobileFieldSelect/legacy/hooks.d.ts +5 -0
  32. package/dist/cjs/components/MobileFieldSelect/legacy/hooks.js +31 -0
  33. package/dist/cjs/components/MobileFieldSelect/legacy/index.d.ts +3 -0
  34. package/dist/cjs/components/MobileFieldSelect/legacy/index.js +23 -0
  35. package/dist/cjs/components/MobileFieldSelect/legacy/utils.d.ts +30 -0
  36. package/dist/cjs/components/MobileFieldSelect/legacy/utils.js +114 -0
  37. package/dist/cjs/components/MobileFieldSelect/styles.module.css +213 -0
  38. package/dist/cjs/components/MobileFieldSelect/types.d.ts +88 -0
  39. package/dist/cjs/components/MobileFieldSelect/types.js +2 -0
  40. package/dist/cjs/components/MobileFieldSelect/utils/extractFieldDecoratorProps.d.ts +2 -0
  41. package/dist/cjs/components/MobileFieldSelect/utils/extractFieldDecoratorProps.js +21 -0
  42. package/dist/cjs/components/MobileFieldSelect/utils/extractListProps.d.ts +3 -0
  43. package/dist/cjs/components/MobileFieldSelect/utils/extractListProps.js +20 -0
  44. package/dist/cjs/components/MobileFieldSelect/utils/getArrowIcon.d.ts +13 -0
  45. package/dist/cjs/components/MobileFieldSelect/utils/getArrowIcon.js +11 -0
  46. package/dist/cjs/components/MobileFieldSelect/utils/index.d.ts +6 -0
  47. package/dist/cjs/components/MobileFieldSelect/utils/index.js +22 -0
  48. package/dist/cjs/components/MobileFieldSelect/utils/options.d.ts +8 -0
  49. package/dist/cjs/components/MobileFieldSelect/utils/options.js +61 -0
  50. package/dist/cjs/components/MobileFieldSelect/utils/typeGuards.d.ts +7 -0
  51. package/dist/cjs/components/MobileFieldSelect/utils/typeGuards.js +32 -0
  52. package/dist/cjs/components/MobileFieldSelect/utils/updateItems.d.ts +27 -0
  53. package/dist/cjs/components/MobileFieldSelect/utils/updateItems.js +81 -0
  54. package/dist/cjs/components/index.d.ts +3 -0
  55. package/dist/cjs/components/index.js +19 -0
  56. package/dist/cjs/constants/allFields.d.ts +10 -0
  57. package/dist/cjs/constants/allFields.js +13 -0
  58. package/dist/cjs/constants/dateFields.d.ts +24 -0
  59. package/dist/cjs/constants/dateFields.js +106 -0
  60. package/dist/cjs/constants/index.d.ts +2 -0
  61. package/dist/cjs/constants/index.js +18 -0
  62. package/dist/cjs/helperComponents/ButtonCopyValue/ButtonCopyValue.d.ts +14 -0
  63. package/dist/cjs/helperComponents/ButtonCopyValue/ButtonCopyValue.js +42 -0
  64. package/dist/cjs/helperComponents/ButtonCopyValue/helpers.d.ts +7 -0
  65. package/dist/cjs/helperComponents/ButtonCopyValue/helpers.js +17 -0
  66. package/dist/cjs/helperComponents/ButtonCopyValue/index.d.ts +1 -0
  67. package/dist/cjs/helperComponents/ButtonCopyValue/index.js +17 -0
  68. package/dist/cjs/helperComponents/ButtonCopyValue/styles.module.css +47 -0
  69. package/dist/cjs/helperComponents/FieldContainerPrivate/FieldContainerPrivate.d.ts +21 -0
  70. package/dist/cjs/helperComponents/FieldContainerPrivate/FieldContainerPrivate.js +32 -0
  71. package/dist/cjs/helperComponents/FieldContainerPrivate/index.d.ts +1 -0
  72. package/dist/cjs/helperComponents/FieldContainerPrivate/index.js +17 -0
  73. package/dist/cjs/helperComponents/FieldContainerPrivate/styles.module.css +219 -0
  74. package/dist/cjs/helperComponents/ItemContent/ItemContent.d.ts +9 -0
  75. package/dist/cjs/helperComponents/ItemContent/ItemContent.js +25 -0
  76. package/dist/cjs/helperComponents/ItemContent/index.d.ts +1 -0
  77. package/dist/cjs/helperComponents/ItemContent/index.js +17 -0
  78. package/dist/cjs/helperComponents/ItemContent/styles.module.css +122 -0
  79. package/dist/cjs/helperComponents/index.d.ts +3 -0
  80. package/dist/cjs/helperComponents/index.js +19 -0
  81. package/dist/cjs/hooks/dateHandlers/index.d.ts +3 -0
  82. package/dist/cjs/hooks/dateHandlers/index.js +19 -0
  83. package/dist/cjs/hooks/dateHandlers/useDateField.d.ts +28 -0
  84. package/dist/cjs/hooks/dateHandlers/useDateField.js +197 -0
  85. package/dist/cjs/hooks/dateHandlers/useDateFieldHelpersForMode.d.ts +18 -0
  86. package/dist/cjs/hooks/dateHandlers/useDateFieldHelpersForMode.js +98 -0
  87. package/dist/cjs/hooks/dateHandlers/useFocusHandlers.d.ts +15 -0
  88. package/dist/cjs/hooks/dateHandlers/useFocusHandlers.js +36 -0
  89. package/dist/cjs/hooks/dateHandlers/useHandlers.d.ts +6 -0
  90. package/dist/cjs/hooks/dateHandlers/useHandlers.js +12 -0
  91. package/dist/cjs/hooks/index.d.ts +5 -0
  92. package/dist/cjs/hooks/index.js +21 -0
  93. package/dist/cjs/hooks/styles.module.css +13 -0
  94. package/dist/cjs/hooks/useCopyButton.d.ts +15 -0
  95. package/dist/cjs/hooks/useCopyButton.js +16 -0
  96. package/dist/cjs/hooks/usePostfix.d.ts +6 -0
  97. package/dist/cjs/hooks/usePostfix.js +17 -0
  98. package/dist/cjs/hooks/usePrefix.d.ts +6 -0
  99. package/dist/cjs/hooks/usePrefix.js +17 -0
  100. package/dist/cjs/hooks/useValueControl.d.ts +7 -0
  101. package/dist/cjs/hooks/useValueControl.js +10 -0
  102. package/dist/cjs/index.d.ts +3 -0
  103. package/dist/cjs/index.js +21 -0
  104. package/dist/cjs/styles.module.css +0 -0
  105. package/dist/cjs/types/allFields.d.ts +8 -0
  106. package/dist/cjs/types/allFields.js +2 -0
  107. package/dist/cjs/types/dateFields.d.ts +11 -0
  108. package/dist/cjs/types/dateFields.js +2 -0
  109. package/dist/cjs/types/index.d.ts +2 -0
  110. package/dist/cjs/types/index.js +18 -0
  111. package/dist/cjs/utils/adaptiveField.d.ts +10 -0
  112. package/dist/cjs/utils/adaptiveField.js +17 -0
  113. package/dist/cjs/utils/dateFields.d.ts +10 -0
  114. package/dist/cjs/utils/dateFields.js +65 -0
  115. package/dist/cjs/utils/getValidationState.d.ts +5 -0
  116. package/dist/cjs/utils/getValidationState.js +7 -0
  117. package/dist/esm/components/AdaptiveField/AdaptiveField.d.ts +13 -0
  118. package/dist/esm/components/AdaptiveField/AdaptiveField.js +21 -0
  119. package/dist/esm/components/AdaptiveField/index.d.ts +1 -0
  120. package/dist/esm/components/AdaptiveField/index.js +1 -0
  121. package/dist/esm/components/MobileFieldDate/MobileFieldDate.d.ts +33 -0
  122. package/dist/esm/components/MobileFieldDate/MobileFieldDate.js +164 -0
  123. package/dist/esm/components/MobileFieldDate/constants.d.ts +10 -0
  124. package/dist/esm/components/MobileFieldDate/constants.js +28 -0
  125. package/dist/esm/components/MobileFieldDate/index.d.ts +2 -0
  126. package/dist/esm/components/MobileFieldDate/index.js +2 -0
  127. package/dist/esm/components/MobileFieldDate/styles.module.css +57 -0
  128. package/dist/esm/components/MobileFieldDate/types.d.ts +6 -0
  129. package/dist/esm/components/MobileFieldDate/types.js +1 -0
  130. package/dist/esm/components/MobileFieldDate/utils.d.ts +9 -0
  131. package/dist/esm/components/MobileFieldDate/utils.js +43 -0
  132. package/dist/esm/components/MobileFieldSelect/MobileFieldSelect.d.ts +2 -0
  133. package/dist/esm/components/MobileFieldSelect/MobileFieldSelect.js +14 -0
  134. package/dist/esm/components/MobileFieldSelect/MobileFieldSelectMultiple.d.ts +3 -0
  135. package/dist/esm/components/MobileFieldSelect/MobileFieldSelectMultiple.js +148 -0
  136. package/dist/esm/components/MobileFieldSelect/MobileFieldSelectSingle.d.ts +3 -0
  137. package/dist/esm/components/MobileFieldSelect/MobileFieldSelectSingle.js +144 -0
  138. package/dist/esm/components/MobileFieldSelect/hooks.d.ts +47 -0
  139. package/dist/esm/components/MobileFieldSelect/hooks.js +95 -0
  140. package/dist/esm/components/MobileFieldSelect/index.d.ts +2 -0
  141. package/dist/esm/components/MobileFieldSelect/index.js +1 -0
  142. package/dist/esm/components/MobileFieldSelect/legacy/components/Items/hooks.d.ts +12 -0
  143. package/dist/esm/components/MobileFieldSelect/legacy/components/Items/hooks.js +33 -0
  144. package/dist/esm/components/MobileFieldSelect/legacy/components/index.d.ts +1 -0
  145. package/dist/esm/components/MobileFieldSelect/legacy/components/index.js +1 -0
  146. package/dist/esm/components/MobileFieldSelect/legacy/hooks.d.ts +5 -0
  147. package/dist/esm/components/MobileFieldSelect/legacy/hooks.js +25 -0
  148. package/dist/esm/components/MobileFieldSelect/legacy/index.d.ts +3 -0
  149. package/dist/esm/components/MobileFieldSelect/legacy/index.js +3 -0
  150. package/dist/esm/components/MobileFieldSelect/legacy/utils.d.ts +30 -0
  151. package/dist/esm/components/MobileFieldSelect/legacy/utils.js +107 -0
  152. package/dist/esm/components/MobileFieldSelect/styles.module.css +213 -0
  153. package/dist/esm/components/MobileFieldSelect/types.d.ts +88 -0
  154. package/dist/esm/components/MobileFieldSelect/types.js +1 -0
  155. package/dist/esm/components/MobileFieldSelect/utils/extractFieldDecoratorProps.d.ts +2 -0
  156. package/dist/esm/components/MobileFieldSelect/utils/extractFieldDecoratorProps.js +18 -0
  157. package/dist/esm/components/MobileFieldSelect/utils/extractListProps.d.ts +3 -0
  158. package/dist/esm/components/MobileFieldSelect/utils/extractListProps.js +17 -0
  159. package/dist/esm/components/MobileFieldSelect/utils/getArrowIcon.d.ts +13 -0
  160. package/dist/esm/components/MobileFieldSelect/utils/getArrowIcon.js +8 -0
  161. package/dist/esm/components/MobileFieldSelect/utils/index.d.ts +6 -0
  162. package/dist/esm/components/MobileFieldSelect/utils/index.js +6 -0
  163. package/dist/esm/components/MobileFieldSelect/utils/options.d.ts +8 -0
  164. package/dist/esm/components/MobileFieldSelect/utils/options.js +56 -0
  165. package/dist/esm/components/MobileFieldSelect/utils/typeGuards.d.ts +7 -0
  166. package/dist/esm/components/MobileFieldSelect/utils/typeGuards.js +24 -0
  167. package/dist/esm/components/MobileFieldSelect/utils/updateItems.d.ts +27 -0
  168. package/dist/esm/components/MobileFieldSelect/utils/updateItems.js +76 -0
  169. package/dist/esm/components/index.d.ts +3 -0
  170. package/dist/esm/components/index.js +3 -0
  171. package/dist/esm/constants/allFields.d.ts +10 -0
  172. package/dist/esm/constants/allFields.js +10 -0
  173. package/dist/esm/constants/dateFields.d.ts +24 -0
  174. package/dist/esm/constants/dateFields.js +103 -0
  175. package/dist/esm/constants/index.d.ts +2 -0
  176. package/dist/esm/constants/index.js +2 -0
  177. package/dist/esm/helperComponents/ButtonCopyValue/ButtonCopyValue.d.ts +14 -0
  178. package/dist/esm/helperComponents/ButtonCopyValue/ButtonCopyValue.js +36 -0
  179. package/dist/esm/helperComponents/ButtonCopyValue/helpers.d.ts +7 -0
  180. package/dist/esm/helperComponents/ButtonCopyValue/helpers.js +14 -0
  181. package/dist/esm/helperComponents/ButtonCopyValue/index.d.ts +1 -0
  182. package/dist/esm/helperComponents/ButtonCopyValue/index.js +1 -0
  183. package/dist/esm/helperComponents/ButtonCopyValue/styles.module.css +47 -0
  184. package/dist/esm/helperComponents/FieldContainerPrivate/FieldContainerPrivate.d.ts +21 -0
  185. package/dist/esm/helperComponents/FieldContainerPrivate/FieldContainerPrivate.js +26 -0
  186. package/dist/esm/helperComponents/FieldContainerPrivate/index.d.ts +1 -0
  187. package/dist/esm/helperComponents/FieldContainerPrivate/index.js +1 -0
  188. package/dist/esm/helperComponents/FieldContainerPrivate/styles.module.css +219 -0
  189. package/dist/esm/helperComponents/ItemContent/ItemContent.d.ts +9 -0
  190. package/dist/esm/helperComponents/ItemContent/ItemContent.js +19 -0
  191. package/dist/esm/helperComponents/ItemContent/index.d.ts +1 -0
  192. package/dist/esm/helperComponents/ItemContent/index.js +1 -0
  193. package/dist/esm/helperComponents/ItemContent/styles.module.css +122 -0
  194. package/dist/esm/helperComponents/index.d.ts +3 -0
  195. package/dist/esm/helperComponents/index.js +3 -0
  196. package/dist/esm/hooks/dateHandlers/index.d.ts +3 -0
  197. package/dist/esm/hooks/dateHandlers/index.js +3 -0
  198. package/dist/esm/hooks/dateHandlers/useDateField.d.ts +28 -0
  199. package/dist/esm/hooks/dateHandlers/useDateField.js +194 -0
  200. package/dist/esm/hooks/dateHandlers/useDateFieldHelpersForMode.d.ts +18 -0
  201. package/dist/esm/hooks/dateHandlers/useDateFieldHelpersForMode.js +95 -0
  202. package/dist/esm/hooks/dateHandlers/useFocusHandlers.d.ts +15 -0
  203. package/dist/esm/hooks/dateHandlers/useFocusHandlers.js +33 -0
  204. package/dist/esm/hooks/dateHandlers/useHandlers.d.ts +6 -0
  205. package/dist/esm/hooks/dateHandlers/useHandlers.js +9 -0
  206. package/dist/esm/hooks/index.d.ts +5 -0
  207. package/dist/esm/hooks/index.js +5 -0
  208. package/dist/esm/hooks/styles.module.css +13 -0
  209. package/dist/esm/hooks/useCopyButton.d.ts +15 -0
  210. package/dist/esm/hooks/useCopyButton.js +13 -0
  211. package/dist/esm/hooks/usePostfix.d.ts +6 -0
  212. package/dist/esm/hooks/usePostfix.js +11 -0
  213. package/dist/esm/hooks/usePrefix.d.ts +6 -0
  214. package/dist/esm/hooks/usePrefix.js +11 -0
  215. package/dist/esm/hooks/useValueControl.d.ts +7 -0
  216. package/dist/esm/hooks/useValueControl.js +7 -0
  217. package/dist/esm/index.d.ts +3 -0
  218. package/dist/esm/index.js +3 -0
  219. package/dist/esm/styles.module.css +0 -0
  220. package/dist/esm/types/allFields.d.ts +8 -0
  221. package/dist/esm/types/allFields.js +1 -0
  222. package/dist/esm/types/dateFields.d.ts +11 -0
  223. package/dist/esm/types/dateFields.js +1 -0
  224. package/dist/esm/types/index.d.ts +2 -0
  225. package/dist/esm/types/index.js +2 -0
  226. package/dist/esm/utils/adaptiveField.d.ts +10 -0
  227. package/dist/esm/utils/adaptiveField.js +13 -0
  228. package/dist/esm/utils/dateFields.d.ts +10 -0
  229. package/dist/esm/utils/dateFields.js +59 -0
  230. package/dist/esm/utils/getValidationState.d.ts +5 -0
  231. package/dist/esm/utils/getValidationState.js +4 -0
  232. package/package.json +7 -6
@@ -0,0 +1,18 @@
1
+ import { RefObject } from 'react';
2
+ import { SlotKey } from '../../constants';
3
+ import { Mode, NoSecondsMode, TimeMode } from '../../types';
4
+ export declare function useDateFieldHelpersForMode({ inputRef, mode, }: {
5
+ inputRef: RefObject<HTMLInputElement>;
6
+ mode: Mode | TimeMode | NoSecondsMode;
7
+ }): {
8
+ isAllSelected: () => boolean;
9
+ isValidInput: () => boolean;
10
+ tryToCompleteInput: () => boolean;
11
+ getSlot: (slotKey: string) => string;
12
+ updateSlot: (slotKey: string, slotValue: number | string) => void;
13
+ setFocus: (slotKey: string) => void;
14
+ isLikeDate: () => boolean;
15
+ getNextSlotKey: (slotKey: SlotKey | undefined) => SlotKey;
16
+ getPrevSlotKey: (slotKey: SlotKey | undefined) => SlotKey;
17
+ getSlotKeyFromIndex: (index: number | null) => SlotKey | undefined;
18
+ };
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDateFieldHelpersForMode = useDateFieldHelpersForMode;
4
+ const react_1 = require("react");
5
+ const constants_1 = require("../../constants");
6
+ const dateFields_1 = require("../../utils/dateFields");
7
+ function useDateFieldHelpersForMode({ inputRef, mode, }) {
8
+ const setFocus = (0, react_1.useCallback)((slotKey) => {
9
+ if (inputRef.current) {
10
+ const { start, end } = constants_1.SLOTS[mode][slotKey];
11
+ inputRef.current.setSelectionRange(start, end);
12
+ }
13
+ }, [mode, inputRef]);
14
+ const isAllSelected = (0, react_1.useCallback)(() => { var _a, _b, _c; return ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.value.length) === ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.selectionEnd) && ((_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.selectionStart) === 0; }, [inputRef]);
15
+ const getSlot = (0, react_1.useCallback)((slotKey) => {
16
+ if (inputRef.current) {
17
+ return inputRef.current.value.slice(constants_1.SLOTS[mode][slotKey].start, constants_1.SLOTS[mode][slotKey].end);
18
+ }
19
+ return '';
20
+ }, [mode, inputRef]);
21
+ const isLikeDate = (0, react_1.useCallback)(() => {
22
+ if (inputRef.current) {
23
+ return Object.keys(constants_1.SLOTS[mode]).every(slotKey => getSlot(slotKey) && Number.isInteger(Number(getSlot(slotKey))));
24
+ }
25
+ return false;
26
+ }, [mode, getSlot, inputRef]);
27
+ const isValidInput = (0, react_1.useCallback)(() => {
28
+ const isTimeMode = Object.values(constants_1.TIME_MODES).includes(mode);
29
+ if (isTimeMode) {
30
+ return true;
31
+ }
32
+ const day = parseInt(getSlot(constants_1.SlotKey.Day), 10);
33
+ const month = parseInt(getSlot(constants_1.SlotKey.Month), 10);
34
+ const year = parseInt(getSlot(constants_1.SlotKey.Year), 10);
35
+ if (!month || !day) {
36
+ return true;
37
+ }
38
+ const date = new Date(year || /* високосный год = */ 2020, month - 1, day);
39
+ return date.getDate() === day;
40
+ }, [getSlot, mode]);
41
+ const tryToCompleteInput = (0, react_1.useCallback)(() => {
42
+ var _a;
43
+ let isCompleted;
44
+ const parsedSlotsData = Object.keys(constants_1.SLOTS[mode]).reduce((res, key) => {
45
+ const slotKey = key;
46
+ res[slotKey] = parseInt(getSlot(slotKey), 10);
47
+ return res;
48
+ }, {});
49
+ const { [constants_1.SlotKey.Day]: day, [constants_1.SlotKey.Month]: month, [constants_1.SlotKey.Year]: year, [constants_1.SlotKey.Hours]: hours, [constants_1.SlotKey.Minutes]: minutes, [constants_1.SlotKey.Seconds]: seconds, } = parsedSlotsData;
50
+ const yearSlotMeta = constants_1.SLOTS[mode][constants_1.SlotKey.Year];
51
+ const isDateCompleted = Boolean(day && month && year >= (yearSlotMeta === null || yearSlotMeta === void 0 ? void 0 : yearSlotMeta.min) && year <= (yearSlotMeta === null || yearSlotMeta === void 0 ? void 0 : yearSlotMeta.max));
52
+ const isTimeCompleted = [
53
+ hours,
54
+ minutes,
55
+ ...(mode === constants_1.MODES.DateTime || mode === constants_1.TIME_MODES.FullTime ? [seconds] : []),
56
+ ].every(value => value !== undefined);
57
+ if (mode === constants_1.MODES.DateTime || mode === constants_1.NO_SECONDS_MODE) {
58
+ isCompleted = isDateCompleted && isTimeCompleted;
59
+ }
60
+ else if (mode === constants_1.TIME_MODES.FullTime || mode === constants_1.TIME_MODES.NoSeconds) {
61
+ isCompleted = isTimeCompleted;
62
+ }
63
+ else {
64
+ isCompleted = isDateCompleted;
65
+ }
66
+ if (isCompleted && inputRef.current) {
67
+ const lastPosition = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.value.length;
68
+ inputRef.current.selectionStart = lastPosition;
69
+ inputRef.current.selectionEnd = lastPosition;
70
+ }
71
+ return isCompleted;
72
+ }, [getSlot, inputRef, mode]);
73
+ const updateSlot = (0, react_1.useCallback)((slotKey, slotValue) => {
74
+ if (inputRef.current) {
75
+ const { start, end, max } = constants_1.SLOTS[mode][slotKey];
76
+ inputRef.current.value =
77
+ inputRef.current.value.slice(0, start) +
78
+ slotValue.toString().padStart(max.toString().length, '0') +
79
+ inputRef.current.value.slice(end);
80
+ setFocus(slotKey);
81
+ }
82
+ }, [inputRef, setFocus, mode]);
83
+ const getNextSlotKey = (0, react_1.useMemo)(() => (0, dateFields_1.getNextSlotKeyHandler)(mode), [mode]);
84
+ const getPrevSlotKey = (0, react_1.useMemo)(() => (0, dateFields_1.getPrevSlotKeyHandler)(mode), [mode]);
85
+ const getSlotKeyFromIndex = (0, react_1.useMemo)(() => (0, dateFields_1.getSlotKeyFromIndexHandler)(mode), [mode]);
86
+ return {
87
+ isAllSelected,
88
+ isValidInput,
89
+ tryToCompleteInput,
90
+ getSlot,
91
+ updateSlot,
92
+ setFocus,
93
+ isLikeDate,
94
+ getNextSlotKey,
95
+ getPrevSlotKey,
96
+ getSlotKeyFromIndex,
97
+ };
98
+ }
@@ -0,0 +1,15 @@
1
+ import { FocusEvent } from 'react';
2
+ type Options = {
3
+ onFocusByKeyboard?: (e: FocusEvent<HTMLInputElement>) => void;
4
+ onFocusByClick?: (e: FocusEvent<HTMLInputElement>) => void;
5
+ };
6
+ /**
7
+ * Позволяет разделить обработку получения фокуса в результате клика или с клавиатуры.
8
+ * Основано на том факте что событию фокуса в результате клика предшествует событие onMouseDown.
9
+ */
10
+ export declare function useFocusHandlers({ onFocusByKeyboard, onFocusByClick }: Options): {
11
+ onFocus: (e: FocusEvent<HTMLInputElement>) => void;
12
+ onBlur: () => void;
13
+ onMouseDown: () => void;
14
+ };
15
+ export {};
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFocusHandlers = useFocusHandlers;
4
+ const react_1 = require("react");
5
+ /**
6
+ * Позволяет разделить обработку получения фокуса в результате клика или с клавиатуры.
7
+ * Основано на том факте что событию фокуса в результате клика предшествует событие onMouseDown.
8
+ */
9
+ function useFocusHandlers({ onFocusByKeyboard, onFocusByClick }) {
10
+ const isFocused = (0, react_1.useRef)(false);
11
+ const isMouseDown = (0, react_1.useRef)(false);
12
+ const onFocus = (0, react_1.useCallback)((e) => {
13
+ isFocused.current = true;
14
+ if (isMouseDown.current) {
15
+ onFocusByClick === null || onFocusByClick === void 0 ? void 0 : onFocusByClick(e);
16
+ isMouseDown.current = false;
17
+ }
18
+ else {
19
+ onFocusByKeyboard === null || onFocusByKeyboard === void 0 ? void 0 : onFocusByKeyboard(e);
20
+ }
21
+ }, [isMouseDown, onFocusByClick, onFocusByKeyboard]);
22
+ const onBlur = (0, react_1.useCallback)(() => {
23
+ isFocused.current = false;
24
+ isMouseDown.current = false;
25
+ }, []);
26
+ const onMouseDown = (0, react_1.useCallback)(() => {
27
+ if (!isFocused.current) {
28
+ isMouseDown.current = true;
29
+ }
30
+ }, [isFocused]);
31
+ return {
32
+ onFocus,
33
+ onBlur,
34
+ onMouseDown,
35
+ };
36
+ }
@@ -0,0 +1,6 @@
1
+ type Handler<T> = (e: T) => void;
2
+ /**
3
+ * Вызывает обработчики события по порядку
4
+ */
5
+ export declare function useHandlers<T>(handlers: (Handler<T> | undefined)[]): (e: T) => void;
6
+ export {};
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useHandlers = useHandlers;
4
+ const react_1 = require("react");
5
+ /**
6
+ * Вызывает обработчики события по порядку
7
+ */
8
+ function useHandlers(handlers) {
9
+ return (0, react_1.useCallback)((e) => {
10
+ handlers.forEach(handler => handler === null || handler === void 0 ? void 0 : handler(e));
11
+ }, [handlers]);
12
+ }
@@ -0,0 +1,5 @@
1
+ export * from './dateHandlers';
2
+ export * from './useCopyButton';
3
+ export * from './usePostfix';
4
+ export * from './usePrefix';
5
+ export * from './useValueControl';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./dateHandlers"), exports);
18
+ __exportStar(require("./useCopyButton"), exports);
19
+ __exportStar(require("./usePostfix"), exports);
20
+ __exportStar(require("./usePrefix"), exports);
21
+ __exportStar(require("./useValueControl"), exports);
@@ -0,0 +1,13 @@
1
+ .prefix{
2
+ color:var(--sys-neutral-text-support, #6d707f);
3
+ }
4
+ .prefix[data-disabled]{
5
+ opacity:var(--opacity-a056, 0.56);
6
+ }
7
+
8
+ .postfix{
9
+ color:var(--sys-neutral-text-support, #6d707f);
10
+ }
11
+ .postfix[data-disabled]{
12
+ opacity:var(--opacity-a056, 0.56);
13
+ }
@@ -0,0 +1,15 @@
1
+ import { RefObject } from 'react';
2
+ import { ButtonProps, Size } from '@snack-uikit/input-private';
3
+ import { AsyncValueRequest } from '../types';
4
+ type UseCopyButtonProps = {
5
+ copyButtonRef: RefObject<HTMLButtonElement>;
6
+ showCopyButton: boolean;
7
+ valueToCopy: string;
8
+ size: Size;
9
+ onValueRequest?(): AsyncValueRequest;
10
+ disabled?: boolean;
11
+ prefix?: string;
12
+ postfix?: string;
13
+ };
14
+ export declare function useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onValueRequest, disabled, prefix, postfix, }: UseCopyButtonProps): ButtonProps;
15
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useCopyButton = useCopyButton;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const input_private_1 = require("@snack-uikit/input-private");
7
+ const helperComponents_1 = require("../helperComponents");
8
+ function useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onValueRequest, disabled, prefix = '', postfix = '', }) {
9
+ return (0, react_1.useMemo)(() => ({
10
+ id: 'copy',
11
+ active: true,
12
+ ref: copyButtonRef,
13
+ show: showCopyButton,
14
+ render: props => ((0, jsx_runtime_1.jsx)(helperComponents_1.ButtonCopyValue, Object.assign({}, props, { size: input_private_1.BUTTON_SIZE_MAP[size], valueToCopy: (prefix !== null && prefix !== void 0 ? prefix : '') + valueToCopy + (postfix !== null && postfix !== void 0 ? postfix : ''), onValueRequest: onValueRequest, disabled: disabled }))),
15
+ }), [copyButtonRef, disabled, onValueRequest, showCopyButton, size, valueToCopy, prefix, postfix]);
16
+ }
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+ import { InactiveItem } from '@snack-uikit/input-private';
3
+ export declare function usePostfix({ postfix, disabled }: {
4
+ postfix?: ReactNode;
5
+ disabled?: boolean;
6
+ }): InactiveItem;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.usePostfix = usePostfix;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
10
+ function usePostfix({ postfix, disabled }) {
11
+ return (0, react_1.useMemo)(() => ({
12
+ id: 'postfix',
13
+ active: false,
14
+ show: Boolean(postfix),
15
+ render: props => ((0, jsx_runtime_1.jsx)("div", Object.assign({}, props, { className: styles_module_scss_1.default.postfix, "data-test-id": 'field-postfix', "data-disabled": disabled || undefined, children: postfix }))),
16
+ }), [disabled, postfix]);
17
+ }
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+ import { InactiveItem } from '@snack-uikit/input-private';
3
+ export declare function usePrefix({ prefix, disabled }: {
4
+ prefix?: ReactNode;
5
+ disabled?: boolean;
6
+ }): InactiveItem;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.usePrefix = usePrefix;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
10
+ function usePrefix({ prefix, disabled }) {
11
+ return (0, react_1.useMemo)(() => ({
12
+ id: 'prefix',
13
+ active: false,
14
+ show: Boolean(prefix),
15
+ render: props => ((0, jsx_runtime_1.jsx)("div", Object.assign({}, props, { "data-test-id": 'field-prefix', className: styles_module_scss_1.default.prefix, "data-disabled": disabled || undefined, children: prefix }))),
16
+ }), [disabled, prefix]);
17
+ }
@@ -0,0 +1,7 @@
1
+ type UseValueControl<TValue> = {
2
+ value?: TValue;
3
+ onChange?(value: TValue): void;
4
+ defaultValue?: TValue;
5
+ };
6
+ export declare function useValueControl<TValue>({ value, onChange, defaultValue }: UseValueControl<TValue>): readonly [TValue | undefined, (value: any, ...args: any[]) => any];
7
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useValueControl = useValueControl;
4
+ const uncontrollable_1 = require("uncontrollable");
5
+ function useValueControl({ value, onChange, defaultValue }) {
6
+ return (0, uncontrollable_1.useUncontrolledProp)(value, defaultValue, (newValue) => {
7
+ const newState = typeof newValue === 'function' ? newValue(value) : newValue;
8
+ onChange === null || onChange === void 0 ? void 0 : onChange(newState);
9
+ });
10
+ }
@@ -0,0 +1,3 @@
1
+ export * from './components';
2
+ export * from './utils/adaptiveField';
3
+ export { setNonce } from '@snack-uikit/fields';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.setNonce = void 0;
18
+ __exportStar(require("./components"), exports);
19
+ __exportStar(require("./utils/adaptiveField"), exports);
20
+ var fields_1 = require("@snack-uikit/fields");
21
+ Object.defineProperty(exports, "setNonce", { enumerable: true, get: function () { return fields_1.setNonce; } });
File without changes
@@ -0,0 +1,8 @@
1
+ import { ValueOf } from '@snack-uikit/utils';
2
+ import { CONTAINER_VARIANT, VALIDATION_STATE } from '../constants';
3
+ export type AsyncValueRequest = Promise<{
4
+ success: boolean;
5
+ value?: string;
6
+ }>;
7
+ export type ValidationState = ValueOf<typeof VALIDATION_STATE>;
8
+ export type ContainerVariant = ValueOf<typeof CONTAINER_VARIANT>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ import { ValueOf } from '@snack-uikit/utils';
2
+ import { MODES, NO_SECONDS_MODE, TIME_MODES } from '../constants';
3
+ export type Slot = {
4
+ start: number;
5
+ end: number;
6
+ max: number;
7
+ min: number;
8
+ };
9
+ export type Mode = ValueOf<typeof MODES>;
10
+ export type TimeMode = ValueOf<typeof TIME_MODES>;
11
+ export type NoSecondsMode = typeof NO_SECONDS_MODE;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export * from './allFields';
2
+ export * from './dateFields';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./allFields"), exports);
18
+ __exportStar(require("./dateFields"), exports);
@@ -0,0 +1,10 @@
1
+ import { ComponentType, RefAttributes } from 'react';
2
+ import { WithLayoutType } from '@sbercloud/uikit-product-utils';
3
+ export declare function getAdaptiveFieldProps<T extends WithLayoutType<{
4
+ autoFocus?: boolean;
5
+ }>>({ layoutType, autoFocus }: T): {
6
+ autoFocus: boolean | undefined;
7
+ };
8
+ export declare function withAdaptiveField<TProps extends {
9
+ autoFocus?: boolean;
10
+ }, TRef = undefined>(Component: ComponentType<TProps & RefAttributes<TRef>>): import("react").ForwardRefExoticComponent<import("react").PropsWithoutRef<WithLayoutType<TProps>> & RefAttributes<TRef>>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAdaptiveFieldProps = getAdaptiveFieldProps;
4
+ exports.withAdaptiveField = withAdaptiveField;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_1 = require("react");
7
+ function getAdaptiveFieldProps({ layoutType, autoFocus }) {
8
+ const isMobile = layoutType === 'mobile';
9
+ return {
10
+ autoFocus: isMobile ? false : autoFocus,
11
+ };
12
+ }
13
+ function withAdaptiveField(Component) {
14
+ return (0, react_1.forwardRef)(function WithAdaptiveField(props, ref) {
15
+ return (0, jsx_runtime_1.jsx)(Component, Object.assign({}, props, getAdaptiveFieldProps(props), { ref: ref }));
16
+ });
17
+ }
@@ -0,0 +1,10 @@
1
+ import { SlotKey } from '../constants';
2
+ import { Mode, NoSecondsMode, TimeMode } from '../types';
3
+ export declare function getSlotKeyFromIndexHandler(mode: Mode | TimeMode | NoSecondsMode): (index: number | null) => SlotKey | undefined;
4
+ export declare function getNextSlotKeyHandler(mode: Mode | TimeMode | NoSecondsMode): (slotKey: SlotKey | undefined) => SlotKey;
5
+ export declare function getPrevSlotKeyHandler(mode: Mode | TimeMode | NoSecondsMode): (slotKey: SlotKey | undefined) => SlotKey;
6
+ /**
7
+ * Преобразует строковое значение поля FieldDate в тип Date
8
+ * @function helper
9
+ */
10
+ export declare function parseDate(value: string): Date | undefined;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSlotKeyFromIndexHandler = getSlotKeyFromIndexHandler;
4
+ exports.getNextSlotKeyHandler = getNextSlotKeyHandler;
5
+ exports.getPrevSlotKeyHandler = getPrevSlotKeyHandler;
6
+ exports.parseDate = parseDate;
7
+ const constants_1 = require("../constants");
8
+ function getSlotKeyFromIndexHandler(mode) {
9
+ return (index) => {
10
+ if (index !== null) {
11
+ for (const key in constants_1.SLOTS[mode]) {
12
+ if (index >= constants_1.SLOTS[mode][key].start && index <= constants_1.SLOTS[mode][key].end) {
13
+ return key;
14
+ }
15
+ }
16
+ }
17
+ return undefined;
18
+ };
19
+ }
20
+ function getNextSlotKeyHandler(mode) {
21
+ const order = constants_1.SLOT_ORDER[mode];
22
+ return (slotKey) => {
23
+ const defaultIndex = order.length - 1;
24
+ const defaultSLot = order[defaultIndex];
25
+ const currentIndex = order.indexOf(slotKey);
26
+ return currentIndex === -1 || currentIndex === defaultIndex ? defaultSLot : order[currentIndex + 1];
27
+ };
28
+ }
29
+ function getPrevSlotKeyHandler(mode) {
30
+ const order = constants_1.SLOT_ORDER[mode];
31
+ return (slotKey) => {
32
+ const defaultIndex = 0;
33
+ const defaultSLot = order[defaultIndex];
34
+ const currentIndex = order.indexOf(slotKey);
35
+ return currentIndex === -1 || currentIndex === defaultIndex ? defaultSLot : order[currentIndex - 1];
36
+ };
37
+ }
38
+ const DATE_STUB = new Date();
39
+ /**
40
+ * Преобразует строковое значение поля FieldDate в тип Date
41
+ * @function helper
42
+ */
43
+ function parseDate(value) {
44
+ if (!value) {
45
+ return undefined;
46
+ }
47
+ const splittedValue = value.split(', ');
48
+ const date = splittedValue[0];
49
+ let time = splittedValue[1];
50
+ let [day, month, year] = date.split('.').map(Number);
51
+ month -= 1;
52
+ if (date.includes(':')) {
53
+ time = date;
54
+ }
55
+ if (time) {
56
+ if (isNaN(year) || isNaN(month) || isNaN(day)) {
57
+ year = DATE_STUB.getFullYear();
58
+ month = DATE_STUB.getMonth();
59
+ day = DATE_STUB.getDay();
60
+ }
61
+ const [hours = 0, minutes = 0, seconds = 0] = time.split(':').map(str => Number(str !== null && str !== void 0 ? str : 0));
62
+ return new Date(year, month, day, hours, minutes, seconds);
63
+ }
64
+ return new Date(year, month, day);
65
+ }
@@ -0,0 +1,5 @@
1
+ import { ValidationState } from '../types';
2
+ export declare function getValidationState({ validationState, error }: {
3
+ validationState?: ValidationState;
4
+ error?: string;
5
+ }): ValidationState;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getValidationState = getValidationState;
4
+ const constants_1 = require("../constants");
5
+ function getValidationState({ validationState, error }) {
6
+ return error ? constants_1.VALIDATION_STATE.Error : (validationState !== null && validationState !== void 0 ? validationState : constants_1.VALIDATION_STATE.Default);
7
+ }
@@ -0,0 +1,13 @@
1
+ import { WithLayoutType } from '@sbercloud/uikit-product-utils';
2
+ import { FieldColorProps, FieldDateProps, FieldSecureProps, FieldSelectMultipleProps, FieldSelectProps, FieldSelectSingleProps, FieldSliderProps, FieldStepperProps, FieldTextAreaProps, FieldTextProps, FieldTimeProps } from '@snack-uikit/fields';
3
+ import { withAdaptiveField } from '../../utils/adaptiveField';
4
+ export declare const AdaptiveFieldSelect: import("react").ForwardRefExoticComponent<WithLayoutType<FieldSelectProps> & import("react").RefAttributes<HTMLInputElement>>;
5
+ export declare const AdaptiveFieldDate: import("react").ForwardRefExoticComponent<WithLayoutType<FieldDateProps> & import("react").RefAttributes<HTMLInputElement>>;
6
+ export declare const AdaptiveFieldColor: ReturnType<typeof withAdaptiveField<FieldColorProps, HTMLInputElement>>;
7
+ export declare const AdaptiveFieldSecure: ReturnType<typeof withAdaptiveField<FieldSecureProps, HTMLInputElement>>;
8
+ export declare const AdaptiveFieldSlider: ReturnType<typeof withAdaptiveField<FieldSliderProps, HTMLInputElement>>;
9
+ export declare const AdaptiveFieldStepper: ReturnType<typeof withAdaptiveField<FieldStepperProps, HTMLInputElement>>;
10
+ export declare const AdaptiveFieldText: ReturnType<typeof withAdaptiveField<FieldTextProps, HTMLInputElement>>;
11
+ export declare const AdaptiveFieldTextArea: ReturnType<typeof withAdaptiveField<FieldTextAreaProps, HTMLTextAreaElement>>;
12
+ export declare const AdaptiveFieldTime: ReturnType<typeof withAdaptiveField<FieldTimeProps, HTMLInputElement>>;
13
+ export type { FieldColorProps, FieldDateProps, FieldSecureProps, FieldSelectMultipleProps, FieldSelectProps, FieldSelectSingleProps, FieldSliderProps, FieldStepperProps, FieldTextAreaProps, FieldTextProps, FieldTimeProps, };
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { FieldColor, FieldDate, FieldSecure, FieldSelect, FieldSlider, FieldStepper, FieldText, FieldTextArea, FieldTime, } from '@snack-uikit/fields';
4
+ import { getAdaptiveFieldProps, withAdaptiveField } from '../../utils/adaptiveField';
5
+ import { MobileFieldDate } from '../MobileFieldDate';
6
+ import { MobileFieldSelect } from '../MobileFieldSelect';
7
+ export const AdaptiveFieldSelect = forwardRef(function AdaptiveFieldSelect(props, ref) {
8
+ const isMobile = props.layoutType === 'mobile';
9
+ return isMobile ? (_jsx(MobileFieldSelect, Object.assign({}, props, getAdaptiveFieldProps(props), { ref: ref }))) : (_jsx(FieldSelect, Object.assign({}, props, getAdaptiveFieldProps(props), { ref: ref })));
10
+ });
11
+ export const AdaptiveFieldDate = forwardRef(function AdaptiveFieldDate(props, ref) {
12
+ const isMobile = props.layoutType === 'mobile';
13
+ return isMobile ? (_jsx(MobileFieldDate, Object.assign({}, props, getAdaptiveFieldProps(props), { ref: ref }))) : (_jsx(FieldDate, Object.assign({}, props, getAdaptiveFieldProps(props), { ref: ref })));
14
+ });
15
+ export const AdaptiveFieldColor = withAdaptiveField(FieldColor);
16
+ export const AdaptiveFieldSecure = withAdaptiveField(FieldSecure);
17
+ export const AdaptiveFieldSlider = withAdaptiveField(FieldSlider);
18
+ export const AdaptiveFieldStepper = withAdaptiveField(FieldStepper);
19
+ export const AdaptiveFieldText = withAdaptiveField(FieldText);
20
+ export const AdaptiveFieldTextArea = withAdaptiveField(FieldTextArea);
21
+ export const AdaptiveFieldTime = withAdaptiveField(FieldTime);
@@ -0,0 +1 @@
1
+ export * from './AdaptiveField';
@@ -0,0 +1 @@
1
+ export * from './AdaptiveField';
@@ -0,0 +1,33 @@
1
+ import { CalendarProps } from '@snack-uikit/calendar';
2
+ import { FieldDecoratorProps } from '@snack-uikit/fields';
3
+ import { InputPrivateProps } from '@snack-uikit/input-private';
4
+ import { WithSupportProps } from '@snack-uikit/utils';
5
+ import { MODES } from '../../constants';
6
+ type InputProps = Pick<InputPrivateProps, 'id' | 'name' | 'disabled' | 'readonly' | 'onFocus' | 'onBlur' | 'autoFocus'>;
7
+ type WrapperProps = Pick<FieldDecoratorProps, 'className' | 'label' | 'labelTooltip' | 'required' | 'caption' | 'hint' | 'showHintIcon' | 'size' | 'validationState' | 'labelTooltipPlacement' | 'error'>;
8
+ type FieldDateWithSeconds = {
9
+ mode: typeof MODES.DateTime;
10
+ showSeconds?: boolean;
11
+ };
12
+ type FieldDateOwnProps = {
13
+ /** Открыт date-picker */
14
+ open?: boolean;
15
+ /** Колбек открытия пикера */
16
+ onOpenChange?(value: boolean): void;
17
+ /** Значение поля */
18
+ value?: Date;
19
+ /** Колбек смены значения */
20
+ onChange?(value: Date | undefined): void;
21
+ /** Отображение кнопки копирования */
22
+ showCopyButton?: boolean;
23
+ /**
24
+ * Отображение кнопки Очистки поля
25
+ * @default true
26
+ */
27
+ showClearButton?: boolean;
28
+ } & Pick<CalendarProps, 'buildCellProps'> & ({
29
+ mode: typeof MODES.Date;
30
+ } | FieldDateWithSeconds);
31
+ export type MobileFieldDateProps = WithSupportProps<FieldDateOwnProps & InputProps & WrapperProps>;
32
+ export declare const MobileFieldDate: import("react").ForwardRefExoticComponent<MobileFieldDateProps & import("react").RefAttributes<HTMLInputElement>>;
33
+ export {};