@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
package/CHANGELOG.md CHANGED
@@ -3,6 +3,29 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 0.11.26 (2025-11-13)
7
+
8
+ ### Only dependencies have been changed
9
+ * [@cloud-ru/uikit-product-icons@15.1.3](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/icons/CHANGELOG.md)
10
+ * [@cloud-ru/uikit-product-mobile-dropdown@0.9.23](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/mobile-dropdown/CHANGELOG.md)
11
+ * [@cloud-ru/uikit-product-mobile-modal@0.9.20](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/mobile-modal/CHANGELOG.md)
12
+ * [@cloud-ru/uikit-product-utils@7.0.2](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/utils/CHANGELOG.md)
13
+
14
+
15
+
16
+
17
+
18
+ ## 0.11.25 (2025-11-12)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **PD-3377:** contributors update to publish all packages ([719fd3e](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/719fd3e1249e247443b125c47ea408d92c8395c3))
24
+
25
+
26
+
27
+
28
+
6
29
  ## 0.11.24 (2025-11-12)
7
30
 
8
31
  ### Only dependencies have been changed
@@ -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,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdaptiveFieldTime = exports.AdaptiveFieldTextArea = exports.AdaptiveFieldText = exports.AdaptiveFieldStepper = exports.AdaptiveFieldSlider = exports.AdaptiveFieldSecure = exports.AdaptiveFieldColor = exports.AdaptiveFieldDate = exports.AdaptiveFieldSelect = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const fields_1 = require("@snack-uikit/fields");
7
+ const adaptiveField_1 = require("../../utils/adaptiveField");
8
+ const MobileFieldDate_1 = require("../MobileFieldDate");
9
+ const MobileFieldSelect_1 = require("../MobileFieldSelect");
10
+ exports.AdaptiveFieldSelect = (0, react_1.forwardRef)(function AdaptiveFieldSelect(props, ref) {
11
+ const isMobile = props.layoutType === 'mobile';
12
+ return isMobile ? ((0, jsx_runtime_1.jsx)(MobileFieldSelect_1.MobileFieldSelect, Object.assign({}, props, (0, adaptiveField_1.getAdaptiveFieldProps)(props), { ref: ref }))) : ((0, jsx_runtime_1.jsx)(fields_1.FieldSelect, Object.assign({}, props, (0, adaptiveField_1.getAdaptiveFieldProps)(props), { ref: ref })));
13
+ });
14
+ exports.AdaptiveFieldDate = (0, react_1.forwardRef)(function AdaptiveFieldDate(props, ref) {
15
+ const isMobile = props.layoutType === 'mobile';
16
+ return isMobile ? ((0, jsx_runtime_1.jsx)(MobileFieldDate_1.MobileFieldDate, Object.assign({}, props, (0, adaptiveField_1.getAdaptiveFieldProps)(props), { ref: ref }))) : ((0, jsx_runtime_1.jsx)(fields_1.FieldDate, Object.assign({}, props, (0, adaptiveField_1.getAdaptiveFieldProps)(props), { ref: ref })));
17
+ });
18
+ exports.AdaptiveFieldColor = (0, adaptiveField_1.withAdaptiveField)(fields_1.FieldColor);
19
+ exports.AdaptiveFieldSecure = (0, adaptiveField_1.withAdaptiveField)(fields_1.FieldSecure);
20
+ exports.AdaptiveFieldSlider = (0, adaptiveField_1.withAdaptiveField)(fields_1.FieldSlider);
21
+ exports.AdaptiveFieldStepper = (0, adaptiveField_1.withAdaptiveField)(fields_1.FieldStepper);
22
+ exports.AdaptiveFieldText = (0, adaptiveField_1.withAdaptiveField)(fields_1.FieldText);
23
+ exports.AdaptiveFieldTextArea = (0, adaptiveField_1.withAdaptiveField)(fields_1.FieldTextArea);
24
+ exports.AdaptiveFieldTime = (0, adaptiveField_1.withAdaptiveField)(fields_1.FieldTime);
@@ -0,0 +1 @@
1
+ export * from './AdaptiveField';
@@ -0,0 +1,17 @@
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("./AdaptiveField"), exports);
@@ -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 {};
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.MobileFieldDate = void 0;
18
+ const jsx_runtime_1 = require("react/jsx-runtime");
19
+ const classnames_1 = __importDefault(require("classnames"));
20
+ const merge_refs_1 = __importDefault(require("merge-refs"));
21
+ const react_1 = require("react");
22
+ const uncontrollable_1 = require("uncontrollable");
23
+ const uikit_product_icons_1 = require("@sbercloud/uikit-product-icons");
24
+ const uikit_product_mobile_dropdown_1 = require("@sbercloud/uikit-product-mobile-dropdown");
25
+ const calendar_1 = require("@snack-uikit/calendar");
26
+ const fields_1 = require("@snack-uikit/fields");
27
+ const input_private_1 = require("@snack-uikit/input-private");
28
+ const scroll_1 = require("@snack-uikit/scroll");
29
+ const utils_1 = require("@snack-uikit/utils");
30
+ const constants_1 = require("../../constants");
31
+ const helperComponents_1 = require("../../helperComponents");
32
+ const hooks_1 = require("../../hooks");
33
+ const getValidationState_1 = require("../../utils/getValidationState");
34
+ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
35
+ exports.MobileFieldDate = (0, react_1.forwardRef)((_a, ref) => {
36
+ var _b;
37
+ var { id, name, value: valueProp, disabled = false, readonly = false, showCopyButton: showCopyButtonProp = true, showClearButton: showClearButtonProp = true, open, onOpenChange, onChange, onFocus, onBlur: onBlurProp, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, showHintIcon, size = input_private_1.SIZE.S, validationState = constants_1.VALIDATION_STATE.Default, buildCellProps, error, mode, autoFocus } = _a, rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onOpenChange", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "size", "validationState", "buildCellProps", "error", "mode", "autoFocus"]);
38
+ const [isOpen, setIsOpen] = (0, uncontrollable_1.useUncontrolledProp)(open, false, onOpenChange);
39
+ const localRef = (0, react_1.useRef)(null);
40
+ const clearButtonRef = (0, react_1.useRef)(null);
41
+ const copyButtonRef = (0, react_1.useRef)(null);
42
+ const calendarIconSize = size === input_private_1.SIZE.S ? input_private_1.ICON_SIZE.Xs : input_private_1.ICON_SIZE.S;
43
+ const showDropList = isOpen && !readonly && !disabled;
44
+ const showAdditionalButton = Boolean(valueProp && !disabled);
45
+ const showClearButton = showClearButtonProp && showAdditionalButton && !readonly;
46
+ const showCopyButton = showCopyButtonProp && showAdditionalButton && readonly;
47
+ const showSeconds = mode === 'date-time' ? ((_b = rest.showSeconds) !== null && _b !== void 0 ? _b : true) : undefined;
48
+ const fieldValidationState = (0, getValidationState_1.getValidationState)({ validationState, error });
49
+ const navigationStartRef = (0, react_1.useRef)(null);
50
+ const checkForLeavingFocus = (0, react_1.useCallback)((event) => {
51
+ if (event.key === 'ArrowDown') {
52
+ setIsOpen(true);
53
+ setTimeout(() => { var _a; return (_a = navigationStartRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, 0);
54
+ }
55
+ }, [setIsOpen]);
56
+ const handleClear = (0, react_1.useCallback)(() => {
57
+ var _a, _b, _c;
58
+ onChange && onChange(undefined);
59
+ if ((_a = localRef.current) === null || _a === void 0 ? void 0 : _a.value) {
60
+ localRef.current.value = '';
61
+ }
62
+ if (required) {
63
+ (_b = localRef.current) === null || _b === void 0 ? void 0 : _b.focus();
64
+ setIsOpen(true);
65
+ }
66
+ else {
67
+ (_c = localRef.current) === null || _c === void 0 ? void 0 : _c.blur();
68
+ setIsOpen(false);
69
+ }
70
+ }, [onChange, required, setIsOpen]);
71
+ const getStringDateValue = (0, react_1.useCallback)((date) => {
72
+ if (!date)
73
+ return '';
74
+ if (mode === 'date') {
75
+ return date.toLocaleDateString(constants_1.DEFAULT_LOCALE);
76
+ }
77
+ return date.toLocaleString(constants_1.DEFAULT_LOCALE, {
78
+ year: 'numeric',
79
+ month: 'numeric',
80
+ day: 'numeric',
81
+ hour: '2-digit',
82
+ minute: '2-digit',
83
+ second: showSeconds ? '2-digit' : undefined,
84
+ });
85
+ }, [mode, showSeconds]);
86
+ const valueToCopy = getStringDateValue(valueProp);
87
+ const clearButtonSettings = (0, input_private_1.useClearButton)({ clearButtonRef, showClearButton, size, onClear: handleClear });
88
+ const copyButtonSettings = (0, hooks_1.useCopyButton)({ copyButtonRef, showCopyButton, size, valueToCopy });
89
+ const calendarIcon = (0, react_1.useMemo)(() => ({
90
+ active: false,
91
+ show: true,
92
+ id: 'calendarIcon',
93
+ render: props => ((0, jsx_runtime_1.jsx)(uikit_product_icons_1.CalendarSVG, Object.assign({}, props, { size: calendarIconSize, className: styles_module_scss_1.default.calendarIcon, "data-size": size }))),
94
+ }), [calendarIconSize, size]);
95
+ const memorizedButtons = (0, react_1.useMemo)(() => [clearButtonSettings, copyButtonSettings, calendarIcon], [clearButtonSettings, copyButtonSettings, calendarIcon]);
96
+ const { value, handleChange, handleClick: dateInputClickHandler, handleKeyDown: dateInputKeyDownHandler, handleBlur: dateInputBlurHandler, mask, setInputFocus, } = (0, hooks_1.useDateField)({
97
+ inputRef: localRef,
98
+ onChange,
99
+ readonly,
100
+ locale: constants_1.DEFAULT_LOCALE,
101
+ setIsOpen,
102
+ mode,
103
+ showSeconds,
104
+ });
105
+ const setInputFocusFromButtons = (0, react_1.useCallback)(() => setInputFocus(mode === 'date' ? constants_1.SlotKey.Year : constants_1.SlotKey.Seconds), [mode, setInputFocus]);
106
+ const { postfixButtons, inputTabIndex, onInputKeyDown: navigationInputKeyDownHandler, setInitialTabIndices, } = (0, input_private_1.useButtonNavigation)({
107
+ setInputFocus: setInputFocusFromButtons,
108
+ inputRef: localRef,
109
+ postfixButtons: memorizedButtons,
110
+ onButtonKeyDown: checkForLeavingFocus,
111
+ readonly,
112
+ submitKeys: ['Enter', 'Space', 'Tab'],
113
+ });
114
+ const handleSelectDate = (date) => {
115
+ var _a;
116
+ onChange && onChange(date);
117
+ (_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
118
+ setIsOpen(false);
119
+ if (localRef.current) {
120
+ localRef.current.value = getStringDateValue(date);
121
+ }
122
+ };
123
+ const handleCalendarFocusLeave = () => {
124
+ setInitialTabIndices();
125
+ // TODO: find out why it works not as expected (focus is moved to the next element instead of the focused one)
126
+ // maybe floating-ui causes the problem
127
+ (0, input_private_1.runAfterRerender)(() => {
128
+ setInputFocus(constants_1.SlotKey.Day);
129
+ setIsOpen(false);
130
+ });
131
+ };
132
+ const handleInputKeyDown = (0, hooks_1.useHandlers)([
133
+ checkForLeavingFocus,
134
+ dateInputKeyDownHandler,
135
+ navigationInputKeyDownHandler,
136
+ ]);
137
+ (0, react_1.useEffect)(() => {
138
+ var _a;
139
+ if (open) {
140
+ (_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
141
+ }
142
+ }, [open]);
143
+ (0, react_1.useEffect)(() => {
144
+ if (localRef.current && document.activeElement !== localRef.current) {
145
+ localRef.current.value = getStringDateValue(valueProp);
146
+ }
147
+ }, [getStringDateValue, valueProp]);
148
+ const onFocusByKeyboard = (0, react_1.useCallback)((e) => {
149
+ setInputFocus();
150
+ onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);
151
+ }, [onFocus, setInputFocus]);
152
+ const inputHandlers = (0, hooks_1.useFocusHandlers)({
153
+ onFocusByClick: onFocus,
154
+ onFocusByKeyboard,
155
+ });
156
+ const onBlur = (0, hooks_1.useHandlers)([dateInputBlurHandler, inputHandlers.onBlur, onBlurProp]);
157
+ const onClick = (0, react_1.useCallback)((e) => {
158
+ dateInputClickHandler();
159
+ if (isOpen) {
160
+ // stop the event because want picker to stay opened
161
+ e.stopPropagation();
162
+ }
163
+ }, [dateInputClickHandler, isOpen]);
164
+ return ((0, jsx_runtime_1.jsx)(fields_1.FieldDecorator, Object.assign({ className: className, label: label, labelTooltip: labelTooltip, labelTooltipPlacement: labelTooltipPlacement, labelFor: id, required: required, caption: caption, hint: hint, disabled: disabled, readonly: readonly, showHintIcon: showHintIcon, size: size, error: error, validationState: fieldValidationState }, (0, utils_1.extractSupportProps)(rest), { children: (0, jsx_runtime_1.jsx)(uikit_product_mobile_dropdown_1.MobileDropdown, Object.assign({}, (readonly || disabled
165
+ ? { open: false }
166
+ : {
167
+ open: showDropList,
168
+ onOpenChange: setIsOpen,
169
+ }), { content: (0, jsx_runtime_1.jsx)(scroll_1.Scroll, { className: (0, classnames_1.default)(styles_module_scss_1.default.calendarWrapper, mode === 'date-time' ? styles_module_scss_1.default.dateTimeWrapper : styles_module_scss_1.default.dateWrapper), "data-size": size, barHideStrategy: 'never', children: (0, jsx_runtime_1.jsx)(calendar_1.Calendar, { mode: mode, size: 'l', value: valueProp, showSeconds: showSeconds, onChangeValue: handleSelectDate, buildCellProps: buildCellProps, navigationStartRef: navigationStartRef, onFocusLeave: handleCalendarFocusLeave, locale: constants_1.DEFAULT_LOCALE, "data-test-id": 'field-date__calendar' }) }), children: (0, jsx_runtime_1.jsx)(helperComponents_1.FieldContainerPrivate, { className: styles_module_scss_1.default.container, size: size, validationState: fieldValidationState, disabled: disabled, readonly: readonly, variant: constants_1.CONTAINER_VARIANT.SingleLine, focused: showDropList, inputRef: localRef, postfix: postfixButtons, children: (0, jsx_runtime_1.jsx)(input_private_1.InputPrivate, { ref: (0, merge_refs_1.default)(ref, localRef), "data-size": size, value: value || '', placeholder: mask, onChange: handleChange, onFocus: inputHandlers.onFocus, onMouseDown: inputHandlers.onMouseDown, onBlur: onBlur, onKeyDown: handleInputKeyDown, onClick: onClick, disabled: disabled, readonly: readonly, tabIndex: inputTabIndex, type: 'text', inputMode: 'numeric', className: styles_module_scss_1.default.readonlyCursor, id: id, name: name, autoFocus: autoFocus, "data-test-id": 'field-date__input' }) }) })) })));
170
+ });
@@ -0,0 +1,10 @@
1
+ import { Slot } from './types';
2
+ export declare enum SlotKey {
3
+ Day = "D",
4
+ Month = "M",
5
+ Year = "Y"
6
+ }
7
+ export declare const MASK: Record<string, string>;
8
+ export declare const DEFAULT_LOCALE: Intl.Locale;
9
+ export declare const SLOTS: Record<SlotKey | string, Slot>;
10
+ export declare const SLOTS_PLACEHOLDER: Record<string, Record<string, string>>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SLOTS_PLACEHOLDER = exports.SLOTS = exports.DEFAULT_LOCALE = exports.MASK = exports.SlotKey = void 0;
4
+ var SlotKey;
5
+ (function (SlotKey) {
6
+ SlotKey["Day"] = "D";
7
+ SlotKey["Month"] = "M";
8
+ SlotKey["Year"] = "Y";
9
+ })(SlotKey || (exports.SlotKey = SlotKey = {}));
10
+ exports.MASK = {
11
+ 'ru-RU': 'ДД.ММ.ГГГГ',
12
+ 'en-US': 'DD.MM.YYYY',
13
+ };
14
+ exports.DEFAULT_LOCALE = new Intl.Locale('ru-RU');
15
+ exports.SLOTS = {
16
+ [SlotKey.Day]: { start: 0, end: 2, max: 31, min: 1 },
17
+ [SlotKey.Month]: { start: 3, end: 5, max: 12, min: 1 },
18
+ [SlotKey.Year]: { start: 6, end: 10, max: 2100, min: 1900 },
19
+ };
20
+ exports.SLOTS_PLACEHOLDER = {
21
+ 'ru-RU': {
22
+ [SlotKey.Day]: 'ДД',
23
+ [SlotKey.Month]: 'ММ',
24
+ [SlotKey.Year]: 'ГГГГ',
25
+ },
26
+ 'en-US': {
27
+ [SlotKey.Day]: 'DD',
28
+ [SlotKey.Month]: 'MM',
29
+ [SlotKey.Year]: 'YYYY',
30
+ },
31
+ };
@@ -0,0 +1,2 @@
1
+ export * from './MobileFieldDate';
2
+ export { parseDate } from './utils';
@@ -0,0 +1,20 @@
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.parseDate = void 0;
18
+ __exportStar(require("./MobileFieldDate"), exports);
19
+ var utils_1 = require("./utils");
20
+ Object.defineProperty(exports, "parseDate", { enumerable: true, get: function () { return utils_1.parseDate; } });
@@ -0,0 +1,57 @@
1
+ .triggerClassName{
2
+ --offset:var(--space-drop-list-drop-offset, 4px);
3
+ display:block;
4
+ width:100%;
5
+ }
6
+
7
+ .dateWrapper{
8
+ height:384px;
9
+ }
10
+
11
+ .dateTimeWrapper{
12
+ height:458px;
13
+ padding-bottom:8px;
14
+ }
15
+
16
+ input.readonlyCursor{
17
+ cursor:pointer;
18
+ caret-color:transparent;
19
+ }
20
+
21
+ .calendarWrapper{
22
+ width:100%;
23
+ }
24
+ .calendarWrapper[data-size=s]{
25
+ min-width:240px;
26
+ min-height:256px;
27
+ }
28
+ .calendarWrapper[data-size=m]{
29
+ min-width:280px;
30
+ min-height:308px;
31
+ }
32
+ .calendarWrapper[data-size=l]{
33
+ min-width:304px;
34
+ min-height:328px;
35
+ }
36
+
37
+ .container .calendarIcon{
38
+ color:var(--sys-neutral-text-light, #8b8e9b);
39
+ }
40
+ .container .calendarIcon[data-size=s]{
41
+ width:var(--size-icon-container-xs, 16px) !important;
42
+ height:var(--size-icon-container-xs, 16px) !important;
43
+ }
44
+ .container .calendarIcon[data-size=m]{
45
+ width:var(--size-icon-container-s, 24px) !important;
46
+ height:var(--size-icon-container-s, 24px) !important;
47
+ }
48
+ .container .calendarIcon[data-size=l]{
49
+ width:var(--size-icon-container-s, 24px) !important;
50
+ height:var(--size-icon-container-s, 24px) !important;
51
+ }
52
+ .container:hover .calendarIcon, .container:focus-within .calendarIcon, .container[data-focused] .calendarIcon{
53
+ color:var(--sys-neutral-text-support, #6d707f);
54
+ }
55
+ .container[data-disabled] .calendarIcon, .container[data-readonly] .calendarIcon{
56
+ color:var(--sys-neutral-text-disabled, #aaaebd);
57
+ }
@@ -0,0 +1,6 @@
1
+ export type Slot = {
2
+ start: number;
3
+ end: number;
4
+ max: number;
5
+ min: number;
6
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { SlotKey } from './constants';
2
+ export declare function getSlotKey(index: number | null): string | null;
3
+ export declare function getNextSlotKey(slotKey: string | null): SlotKey.Month | SlotKey.Year;
4
+ export declare function getPrevSlotKey(slotKey: string | null): SlotKey.Day | SlotKey.Month;
5
+ /**
6
+ * Преобразует строковое значение поля FieldDate в тип Date
7
+ * @function helper
8
+ */
9
+ export declare function parseDate(date: string): Date;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSlotKey = getSlotKey;
4
+ exports.getNextSlotKey = getNextSlotKey;
5
+ exports.getPrevSlotKey = getPrevSlotKey;
6
+ exports.parseDate = parseDate;
7
+ const constants_1 = require("./constants");
8
+ function getSlotKey(index) {
9
+ if (index !== null) {
10
+ for (const key in constants_1.SLOTS) {
11
+ if (index >= constants_1.SLOTS[key].start && index <= constants_1.SLOTS[key].end) {
12
+ return key;
13
+ }
14
+ }
15
+ }
16
+ return null;
17
+ }
18
+ function getNextSlotKey(slotKey) {
19
+ switch (slotKey) {
20
+ case constants_1.SlotKey.Day: {
21
+ return constants_1.SlotKey.Month;
22
+ }
23
+ case constants_1.SlotKey.Month:
24
+ case constants_1.SlotKey.Year:
25
+ default: {
26
+ return constants_1.SlotKey.Year;
27
+ }
28
+ }
29
+ }
30
+ function getPrevSlotKey(slotKey) {
31
+ switch (slotKey) {
32
+ case constants_1.SlotKey.Year: {
33
+ return constants_1.SlotKey.Month;
34
+ }
35
+ case constants_1.SlotKey.Month:
36
+ case constants_1.SlotKey.Day:
37
+ default: {
38
+ return constants_1.SlotKey.Day;
39
+ }
40
+ }
41
+ }
42
+ /**
43
+ * Преобразует строковое значение поля FieldDate в тип Date
44
+ * @function helper
45
+ */
46
+ function parseDate(date) {
47
+ const values = date.split('.');
48
+ return new Date(Number(values[2]), Number(values[1]) - 1, Number(values[0]));
49
+ }
@@ -0,0 +1,2 @@
1
+ import { MobileFieldSelectProps } from './types';
2
+ export declare const MobileFieldSelect: import("react").ForwardRefExoticComponent<MobileFieldSelectProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MobileFieldSelect = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const MobileFieldSelectMultiple_1 = require("./MobileFieldSelectMultiple");
7
+ const MobileFieldSelectSingle_1 = require("./MobileFieldSelectSingle");
8
+ const utils_1 = require("./utils");
9
+ exports.MobileFieldSelect = (0, react_1.forwardRef)((props, ref) => {
10
+ if ((0, utils_1.isFieldSelectMultipleProps)(props)) {
11
+ return (0, jsx_runtime_1.jsx)(MobileFieldSelectMultiple_1.MobileFieldSelectMultiple, Object.assign({}, props, { ref: ref }));
12
+ }
13
+ if ((0, utils_1.isFieldSelectSingleProps)(props)) {
14
+ return (0, jsx_runtime_1.jsx)(MobileFieldSelectSingle_1.MobileFieldSelectSingle, Object.assign({}, props, { ref: ref }));
15
+ }
16
+ return null;
17
+ });
@@ -0,0 +1,3 @@
1
+ import { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';
2
+ import { MobileFieldSelectMultipleProps } from './types';
3
+ export declare const MobileFieldSelectMultiple: ForwardRefExoticComponent<PropsWithoutRef<MobileFieldSelectMultipleProps> & RefAttributes<HTMLInputElement>>;