@1money/react-ui 1.16.0 → 1.17.0

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 (268) hide show
  1. package/AGENTS.md +393 -0
  2. package/es/components/CheckboxGroup/CheckboxGroup.d.ts +3 -3
  3. package/es/components/CheckboxGroup/CheckboxGroup.js +94 -91
  4. package/es/components/CheckboxGroup/interface.d.ts +21 -15
  5. package/es/components/CheckboxGroup/style/CheckboxGroup.scss +0 -7
  6. package/es/components/Form/Form.d.ts +29 -0
  7. package/es/components/Form/Form.js +188 -0
  8. package/es/components/Form/FormItem.d.ts +4 -0
  9. package/es/components/Form/FormItem.js +165 -0
  10. package/es/components/Form/FormItemContent.d.ts +18 -0
  11. package/es/components/Form/FormItemContent.js +146 -0
  12. package/es/components/Form/constants.d.ts +46 -0
  13. package/es/components/Form/constants.js +65 -0
  14. package/es/components/Form/helper.d.ts +120 -0
  15. package/es/components/Form/helper.js +284 -0
  16. package/es/components/Form/index.d.ts +20 -0
  17. package/es/components/Form/index.js +21 -0
  18. package/es/components/Form/interface.d.ts +238 -0
  19. package/es/components/Form/interface.js +2 -0
  20. package/es/components/Form/style/Form.css +1 -0
  21. package/es/components/Form/style/Form.scss +167 -0
  22. package/es/components/Form/style/css.js +2 -0
  23. package/es/components/Form/style/index.d.ts +1 -0
  24. package/es/components/Form/style/index.js +2 -0
  25. package/es/components/Form/useFormItemContext.d.ts +32 -0
  26. package/es/components/Form/useFormItemContext.js +55 -0
  27. package/es/components/Form/useFormItemWatch.d.ts +51 -0
  28. package/es/components/Form/useFormItemWatch.js +69 -0
  29. package/es/components/Form/useValidationTrigger.d.ts +40 -0
  30. package/es/components/Form/useValidationTrigger.js +74 -0
  31. package/es/components/Input/Input.js +72 -74
  32. package/es/components/Input/interface.d.ts +9 -9
  33. package/es/components/InputAmount/InputAmount.js +228 -276
  34. package/es/components/InputAmount/helper.d.ts +46 -0
  35. package/es/components/InputAmount/helper.js +115 -0
  36. package/es/components/ProForm/ProForm.d.ts +33 -0
  37. package/es/components/ProForm/ProForm.js +208 -0
  38. package/es/components/ProForm/ProFormDependency.d.ts +12 -0
  39. package/es/components/ProForm/ProFormDependency.js +61 -0
  40. package/es/components/ProForm/ProFormList.d.ts +19 -0
  41. package/es/components/ProForm/ProFormList.js +348 -0
  42. package/es/components/ProForm/Submitter.d.ts +21 -0
  43. package/es/components/ProForm/Submitter.js +76 -0
  44. package/es/components/ProForm/constants.d.ts +34 -0
  45. package/es/components/ProForm/constants.js +40 -0
  46. package/es/components/ProForm/fields/ProFormCheckbox.d.ts +6 -0
  47. package/es/components/ProForm/fields/ProFormCheckbox.js +11 -0
  48. package/es/components/ProForm/fields/ProFormCheckboxGroup.d.ts +6 -0
  49. package/es/components/ProForm/fields/ProFormCheckboxGroup.js +46 -0
  50. package/es/components/ProForm/fields/ProFormDigit.d.ts +6 -0
  51. package/es/components/ProForm/fields/ProFormDigit.js +15 -0
  52. package/es/components/ProForm/fields/ProFormMoney.d.ts +6 -0
  53. package/es/components/ProForm/fields/ProFormMoney.js +10 -0
  54. package/es/components/ProForm/fields/ProFormMultiSelect.d.ts +6 -0
  55. package/es/components/ProForm/fields/ProFormMultiSelect.js +27 -0
  56. package/es/components/ProForm/fields/ProFormPassword.d.ts +6 -0
  57. package/es/components/ProForm/fields/ProFormPassword.js +16 -0
  58. package/es/components/ProForm/fields/ProFormRadio.d.ts +6 -0
  59. package/es/components/ProForm/fields/ProFormRadio.js +13 -0
  60. package/es/components/ProForm/fields/ProFormSelect.d.ts +6 -0
  61. package/es/components/ProForm/fields/ProFormSelect.js +13 -0
  62. package/es/components/ProForm/fields/ProFormSwitch.d.ts +6 -0
  63. package/es/components/ProForm/fields/ProFormSwitch.js +11 -0
  64. package/es/components/ProForm/fields/ProFormText.d.ts +6 -0
  65. package/es/components/ProForm/fields/ProFormText.js +15 -0
  66. package/es/components/ProForm/fields/ProFormTextArea.d.ts +6 -0
  67. package/es/components/ProForm/fields/ProFormTextArea.js +16 -0
  68. package/es/components/ProForm/fields/createProFormField.d.ts +43 -0
  69. package/es/components/ProForm/fields/createProFormField.js +200 -0
  70. package/es/components/ProForm/fields/index.d.ts +12 -0
  71. package/es/components/ProForm/fields/index.js +13 -0
  72. package/es/components/ProForm/index.d.ts +7 -0
  73. package/es/components/ProForm/index.js +7 -0
  74. package/es/components/ProForm/interface.d.ts +306 -0
  75. package/es/components/ProForm/interface.js +2 -0
  76. package/es/components/ProForm/layouts/DrawerForm.d.ts +16 -0
  77. package/es/components/ProForm/layouts/DrawerForm.js +79 -0
  78. package/es/components/ProForm/layouts/ModalForm.d.ts +16 -0
  79. package/es/components/ProForm/layouts/ModalForm.js +89 -0
  80. package/es/components/ProForm/layouts/QueryFilter.d.ts +21 -0
  81. package/es/components/ProForm/layouts/QueryFilter.js +132 -0
  82. package/es/components/ProForm/layouts/StepsForm.d.ts +13 -0
  83. package/es/components/ProForm/layouts/StepsForm.js +295 -0
  84. package/es/components/ProForm/layouts/index.d.ts +4 -0
  85. package/es/components/ProForm/layouts/index.js +5 -0
  86. package/es/components/ProForm/layouts/useOverlayForm.d.ts +53 -0
  87. package/es/components/ProForm/layouts/useOverlayForm.js +143 -0
  88. package/es/components/ProForm/style/ProForm.module.css +1 -0
  89. package/es/components/ProForm/style/ProForm.module.scss +59 -0
  90. package/es/components/ProForm/style/css.js +3 -0
  91. package/es/components/ProForm/style/index.d.ts +1 -0
  92. package/es/components/ProForm/style/index.js +3 -0
  93. package/es/components/ProForm/utils.d.ts +72 -0
  94. package/es/components/ProForm/utils.js +206 -0
  95. package/es/components/RadioGroup/RadioGroup.js +46 -23
  96. package/es/components/RadioGroup/interface.d.ts +3 -1
  97. package/es/components/Select/Select.d.ts +1 -1
  98. package/es/components/Select/Select.js +113 -106
  99. package/es/components/Select/constants.d.ts +18 -0
  100. package/es/components/Select/constants.js +19 -0
  101. package/es/components/Sidebar/Sidebar.js +21 -23
  102. package/es/components/Sidebar/SidebarLogo.d.ts +7 -0
  103. package/es/components/Sidebar/SidebarLogo.js +33 -0
  104. package/es/components/Sidebar/SimplySidebar.d.ts +2 -2
  105. package/es/components/Sidebar/SimplySidebar.js +18 -22
  106. package/es/components/Sidebar/Stepper.js +14 -14
  107. package/es/components/Sidebar/constants.d.ts +16 -0
  108. package/es/components/Sidebar/constants.js +17 -0
  109. package/es/components/Sidebar/style/Stepper.css +1 -1
  110. package/es/components/Sidebar/style/Stepper.scss +11 -1
  111. package/es/components/Switch/Switch.js +28 -25
  112. package/es/components/Switch/interface.d.ts +9 -4
  113. package/es/components/useControlledState/index.d.ts +14 -0
  114. package/es/components/useControlledState/index.js +32 -0
  115. package/es/components/useEventCallback/index.d.ts +11 -0
  116. package/es/components/useEventCallback/index.js +17 -0
  117. package/es/components/useLayoutEffect/index.d.ts +11 -0
  118. package/es/components/useLayoutEffect/index.js +17 -0
  119. package/es/components/useLayoutState/index.d.ts +13 -0
  120. package/es/components/useLayoutState/index.js +71 -0
  121. package/es/components/useMemoizedFn/index.d.ts +12 -0
  122. package/es/components/useMemoizedFn/index.js +27 -0
  123. package/es/components/usePrevious/index.d.ts +11 -0
  124. package/es/components/usePrevious/index.js +19 -0
  125. package/es/components/useSafeState/index.d.ts +12 -0
  126. package/es/components/useSafeState/index.js +24 -0
  127. package/es/components/useSyncState/index.d.ts +14 -0
  128. package/es/components/useSyncState/index.js +37 -0
  129. package/es/components/useUpdateEffect/index.d.ts +9 -0
  130. package/es/components/useUpdateEffect/index.js +19 -0
  131. package/es/index.css +1 -1
  132. package/es/index.d.ts +21 -2
  133. package/es/index.js +19 -1
  134. package/jest.setup.d.ts +1 -0
  135. package/jest.setup.ts +1 -0
  136. package/lib/components/CheckboxGroup/CheckboxGroup.d.ts +3 -3
  137. package/lib/components/CheckboxGroup/CheckboxGroup.js +92 -89
  138. package/lib/components/CheckboxGroup/interface.d.ts +21 -15
  139. package/lib/components/CheckboxGroup/style/CheckboxGroup.scss +0 -7
  140. package/lib/components/Form/Form.d.ts +29 -0
  141. package/lib/components/Form/Form.js +199 -0
  142. package/lib/components/Form/FormItem.d.ts +4 -0
  143. package/lib/components/Form/FormItem.js +176 -0
  144. package/lib/components/Form/FormItemContent.d.ts +18 -0
  145. package/lib/components/Form/FormItemContent.js +156 -0
  146. package/lib/components/Form/constants.d.ts +46 -0
  147. package/lib/components/Form/constants.js +71 -0
  148. package/lib/components/Form/helper.d.ts +120 -0
  149. package/lib/components/Form/helper.js +290 -0
  150. package/lib/components/Form/index.d.ts +20 -0
  151. package/lib/components/Form/index.js +45 -0
  152. package/lib/components/Form/interface.d.ts +238 -0
  153. package/lib/components/Form/interface.js +6 -0
  154. package/lib/components/Form/style/Form.css +1 -0
  155. package/lib/components/Form/style/Form.scss +167 -0
  156. package/lib/components/Form/style/css.js +4 -0
  157. package/lib/components/Form/style/index.d.ts +1 -0
  158. package/lib/components/Form/style/index.js +4 -0
  159. package/lib/components/Form/useFormItemContext.d.ts +32 -0
  160. package/lib/components/Form/useFormItemContext.js +62 -0
  161. package/lib/components/Form/useFormItemWatch.d.ts +51 -0
  162. package/lib/components/Form/useFormItemWatch.js +76 -0
  163. package/lib/components/Form/useValidationTrigger.d.ts +40 -0
  164. package/lib/components/Form/useValidationTrigger.js +81 -0
  165. package/lib/components/Input/Input.js +71 -73
  166. package/lib/components/Input/interface.d.ts +9 -9
  167. package/lib/components/InputAmount/InputAmount.js +230 -278
  168. package/lib/components/InputAmount/helper.d.ts +46 -0
  169. package/lib/components/InputAmount/helper.js +122 -0
  170. package/lib/components/ProForm/ProForm.d.ts +33 -0
  171. package/lib/components/ProForm/ProForm.js +216 -0
  172. package/lib/components/ProForm/ProFormDependency.d.ts +12 -0
  173. package/lib/components/ProForm/ProFormDependency.js +67 -0
  174. package/lib/components/ProForm/ProFormList.d.ts +19 -0
  175. package/lib/components/ProForm/ProFormList.js +355 -0
  176. package/lib/components/ProForm/Submitter.d.ts +21 -0
  177. package/lib/components/ProForm/Submitter.js +83 -0
  178. package/lib/components/ProForm/constants.d.ts +34 -0
  179. package/lib/components/ProForm/constants.js +46 -0
  180. package/lib/components/ProForm/fields/ProFormCheckbox.d.ts +6 -0
  181. package/lib/components/ProForm/fields/ProFormCheckbox.js +18 -0
  182. package/lib/components/ProForm/fields/ProFormCheckboxGroup.d.ts +6 -0
  183. package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +53 -0
  184. package/lib/components/ProForm/fields/ProFormDigit.d.ts +6 -0
  185. package/lib/components/ProForm/fields/ProFormDigit.js +22 -0
  186. package/lib/components/ProForm/fields/ProFormMoney.d.ts +6 -0
  187. package/lib/components/ProForm/fields/ProFormMoney.js +17 -0
  188. package/lib/components/ProForm/fields/ProFormMultiSelect.d.ts +6 -0
  189. package/lib/components/ProForm/fields/ProFormMultiSelect.js +34 -0
  190. package/lib/components/ProForm/fields/ProFormPassword.d.ts +6 -0
  191. package/lib/components/ProForm/fields/ProFormPassword.js +23 -0
  192. package/lib/components/ProForm/fields/ProFormRadio.d.ts +6 -0
  193. package/lib/components/ProForm/fields/ProFormRadio.js +20 -0
  194. package/lib/components/ProForm/fields/ProFormSelect.d.ts +6 -0
  195. package/lib/components/ProForm/fields/ProFormSelect.js +20 -0
  196. package/lib/components/ProForm/fields/ProFormSwitch.d.ts +6 -0
  197. package/lib/components/ProForm/fields/ProFormSwitch.js +18 -0
  198. package/lib/components/ProForm/fields/ProFormText.d.ts +6 -0
  199. package/lib/components/ProForm/fields/ProFormText.js +22 -0
  200. package/lib/components/ProForm/fields/ProFormTextArea.d.ts +6 -0
  201. package/lib/components/ProForm/fields/ProFormTextArea.js +23 -0
  202. package/lib/components/ProForm/fields/createProFormField.d.ts +43 -0
  203. package/lib/components/ProForm/fields/createProFormField.js +208 -0
  204. package/lib/components/ProForm/fields/index.d.ts +12 -0
  205. package/lib/components/ProForm/fields/index.js +90 -0
  206. package/lib/components/ProForm/index.d.ts +7 -0
  207. package/lib/components/ProForm/index.js +73 -0
  208. package/lib/components/ProForm/interface.d.ts +306 -0
  209. package/lib/components/ProForm/interface.js +6 -0
  210. package/lib/components/ProForm/layouts/DrawerForm.d.ts +16 -0
  211. package/lib/components/ProForm/layouts/DrawerForm.js +86 -0
  212. package/lib/components/ProForm/layouts/ModalForm.d.ts +16 -0
  213. package/lib/components/ProForm/layouts/ModalForm.js +96 -0
  214. package/lib/components/ProForm/layouts/QueryFilter.d.ts +21 -0
  215. package/lib/components/ProForm/layouts/QueryFilter.js +139 -0
  216. package/lib/components/ProForm/layouts/StepsForm.d.ts +13 -0
  217. package/lib/components/ProForm/layouts/StepsForm.js +302 -0
  218. package/lib/components/ProForm/layouts/index.d.ts +4 -0
  219. package/lib/components/ProForm/layouts/index.js +40 -0
  220. package/lib/components/ProForm/layouts/useOverlayForm.d.ts +53 -0
  221. package/lib/components/ProForm/layouts/useOverlayForm.js +150 -0
  222. package/lib/components/ProForm/style/ProForm.module.css +1 -0
  223. package/lib/components/ProForm/style/ProForm.module.scss +59 -0
  224. package/lib/components/ProForm/style/css.js +4 -0
  225. package/lib/components/ProForm/style/index.d.ts +1 -0
  226. package/lib/components/ProForm/style/index.js +4 -0
  227. package/lib/components/ProForm/utils.d.ts +72 -0
  228. package/lib/components/ProForm/utils.js +213 -0
  229. package/lib/components/RadioGroup/RadioGroup.js +45 -22
  230. package/lib/components/RadioGroup/interface.d.ts +3 -1
  231. package/lib/components/Select/Select.d.ts +1 -1
  232. package/lib/components/Select/Select.js +114 -107
  233. package/lib/components/Select/constants.d.ts +18 -0
  234. package/lib/components/Select/constants.js +25 -0
  235. package/lib/components/Sidebar/Sidebar.js +21 -23
  236. package/lib/components/Sidebar/SidebarLogo.d.ts +7 -0
  237. package/lib/components/Sidebar/SidebarLogo.js +39 -0
  238. package/lib/components/Sidebar/SimplySidebar.d.ts +2 -2
  239. package/lib/components/Sidebar/SimplySidebar.js +17 -21
  240. package/lib/components/Sidebar/Stepper.js +14 -14
  241. package/lib/components/Sidebar/constants.d.ts +16 -0
  242. package/lib/components/Sidebar/constants.js +23 -0
  243. package/lib/components/Sidebar/style/Stepper.css +1 -1
  244. package/lib/components/Sidebar/style/Stepper.scss +11 -1
  245. package/lib/components/Switch/Switch.js +27 -24
  246. package/lib/components/Switch/interface.d.ts +9 -4
  247. package/lib/components/useControlledState/index.d.ts +14 -0
  248. package/lib/components/useControlledState/index.js +39 -0
  249. package/lib/components/useEventCallback/index.d.ts +11 -0
  250. package/lib/components/useEventCallback/index.js +24 -0
  251. package/lib/components/useLayoutEffect/index.d.ts +11 -0
  252. package/lib/components/useLayoutEffect/index.js +23 -0
  253. package/lib/components/useLayoutState/index.d.ts +13 -0
  254. package/lib/components/useLayoutState/index.js +79 -0
  255. package/lib/components/useMemoizedFn/index.d.ts +12 -0
  256. package/lib/components/useMemoizedFn/index.js +33 -0
  257. package/lib/components/usePrevious/index.d.ts +11 -0
  258. package/lib/components/usePrevious/index.js +25 -0
  259. package/lib/components/useSafeState/index.d.ts +12 -0
  260. package/lib/components/useSafeState/index.js +31 -0
  261. package/lib/components/useSyncState/index.d.ts +14 -0
  262. package/lib/components/useSyncState/index.js +44 -0
  263. package/lib/components/useUpdateEffect/index.d.ts +9 -0
  264. package/lib/components/useUpdateEffect/index.js +25 -0
  265. package/lib/index.css +1 -1
  266. package/lib/index.d.ts +21 -2
  267. package/lib/index.js +213 -1
  268. package/package.json +16 -1
@@ -0,0 +1,143 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) {
5
+ return value instanceof P ? value : new P(function (resolve) {
6
+ resolve(value);
7
+ });
8
+ }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) {
11
+ try {
12
+ step(generator.next(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ }
17
+ function rejected(value) {
18
+ try {
19
+ step(generator["throw"](value));
20
+ } catch (e) {
21
+ reject(e);
22
+ }
23
+ }
24
+ function step(result) {
25
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
26
+ }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ import { cloneElement, isValidElement, useCallback, useEffect, useMemo, useRef, useState } from 'react';
31
+ /**
32
+ * Shared hook that powers both {@link ModalForm} and {@link DrawerForm}.
33
+ *
34
+ * Manages open/close state, trigger element cloning, auto-close with optional
35
+ * timeout after submit, and overlay visibility lifecycle.
36
+ *
37
+ * @typeParam TValues - The form values type.
38
+ * @param options - Configuration options.
39
+ * @returns An object with `mergedOpen`, `triggerNode`, `handleFinish`, `handleHide`, and more.
40
+ */
41
+ export function useOverlayForm(_ref) {
42
+ var _this = this;
43
+ var open = _ref.open,
44
+ onOpenChange = _ref.onOpenChange,
45
+ trigger = _ref.trigger,
46
+ submitTimeout = _ref.submitTimeout,
47
+ _ref$autoClose = _ref.autoClose,
48
+ autoClose = _ref$autoClose === void 0 ? true : _ref$autoClose,
49
+ _ref$destroyOnClose = _ref.destroyOnClose,
50
+ destroyOnClose = _ref$destroyOnClose === void 0 ? true : _ref$destroyOnClose,
51
+ width = _ref.width,
52
+ onFinish = _ref.onFinish,
53
+ overlayStyle = _ref.overlayStyle,
54
+ onOverlayHide = _ref.onOverlayHide;
55
+ var _useState = useState(false),
56
+ _useState2 = _slicedToArray(_useState, 2),
57
+ innerOpen = _useState2[0],
58
+ setInnerOpen = _useState2[1];
59
+ var closeTimerRef = useRef(null);
60
+ var onFinishRef = useRef(onFinish);
61
+ var mergedOpen = open !== null && open !== void 0 ? open : innerOpen;
62
+ useEffect(function () {
63
+ onFinishRef.current = onFinish;
64
+ }, [onFinish]);
65
+ var changeOpen = useCallback(function (nextOpen) {
66
+ if (open === undefined) {
67
+ setInnerOpen(nextOpen);
68
+ }
69
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);
70
+ }, [open, onOpenChange]);
71
+ var clearCloseTimer = useCallback(function () {
72
+ if (!closeTimerRef.current) return;
73
+ clearTimeout(closeTimerRef.current);
74
+ closeTimerRef.current = null;
75
+ }, []);
76
+ var handleFinish = useCallback(function (values) {
77
+ return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
78
+ var _a, result;
79
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
80
+ while (1) switch (_context.prev = _context.next) {
81
+ case 0:
82
+ _context.next = 2;
83
+ return (_a = onFinishRef.current) === null || _a === void 0 ? void 0 : _a.call(onFinishRef, values);
84
+ case 2:
85
+ result = _context.sent;
86
+ if (autoClose && result !== false) {
87
+ clearCloseTimer();
88
+ if (typeof submitTimeout === 'number' && submitTimeout > 0) {
89
+ closeTimerRef.current = setTimeout(function () {
90
+ changeOpen(false);
91
+ closeTimerRef.current = null;
92
+ }, submitTimeout);
93
+ } else {
94
+ changeOpen(false);
95
+ }
96
+ }
97
+ return _context.abrupt("return", result);
98
+ case 5:
99
+ case "end":
100
+ return _context.stop();
101
+ }
102
+ }, _callee);
103
+ }));
104
+ }, [autoClose, changeOpen, clearCloseTimer, submitTimeout]);
105
+ var triggerNode = useMemo(function () {
106
+ if (!trigger || ! /*#__PURE__*/isValidElement(trigger)) return null;
107
+ return /*#__PURE__*/cloneElement(trigger, {
108
+ onClick: function onClick(event) {
109
+ var _a;
110
+ var triggerOnClick = (_a = trigger.props) === null || _a === void 0 ? void 0 : _a.onClick;
111
+ triggerOnClick === null || triggerOnClick === void 0 ? void 0 : triggerOnClick(event);
112
+ if (event.defaultPrevented) return;
113
+ changeOpen(true);
114
+ }
115
+ });
116
+ }, [changeOpen, trigger]);
117
+ var handleHide = useCallback(function () {
118
+ clearCloseTimer();
119
+ onOverlayHide === null || onOverlayHide === void 0 ? void 0 : onOverlayHide.apply(void 0, arguments);
120
+ changeOpen(false);
121
+ }, [changeOpen, clearCloseTimer, onOverlayHide]);
122
+ var shouldRenderPanel = mergedOpen || !destroyOnClose;
123
+ var mergedStyle = useMemo(function () {
124
+ return Object.assign(Object.assign({}, overlayStyle || {}), width !== undefined ? {
125
+ width: width
126
+ } : {});
127
+ }, [overlayStyle, width]);
128
+ useEffect(function () {
129
+ return function () {
130
+ clearCloseTimer();
131
+ };
132
+ }, [clearCloseTimer]);
133
+ return {
134
+ mergedOpen: mergedOpen,
135
+ shouldRenderPanel: shouldRenderPanel,
136
+ triggerNode: triggerNode,
137
+ handleFinish: handleFinish,
138
+ handleHide: handleHide,
139
+ mergedStyle: mergedStyle,
140
+ changeOpen: changeOpen
141
+ };
142
+ }
143
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL3VzZU92ZXJsYXlGb3JtLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJjbG9uZUVsZW1lbnQiLCJpc1ZhbGlkRWxlbWVudCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlT3ZlcmxheUZvcm0iLCJfcmVmIiwiX3RoaXMiLCJvcGVuIiwib25PcGVuQ2hhbmdlIiwidHJpZ2dlciIsInN1Ym1pdFRpbWVvdXQiLCJfcmVmJGF1dG9DbG9zZSIsImF1dG9DbG9zZSIsIl9yZWYkZGVzdHJveU9uQ2xvc2UiLCJkZXN0cm95T25DbG9zZSIsIndpZHRoIiwib25GaW5pc2giLCJvdmVybGF5U3R5bGUiLCJvbk92ZXJsYXlIaWRlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaW5uZXJPcGVuIiwic2V0SW5uZXJPcGVuIiwiY2xvc2VUaW1lclJlZiIsIm9uRmluaXNoUmVmIiwibWVyZ2VkT3BlbiIsImN1cnJlbnQiLCJjaGFuZ2VPcGVuIiwibmV4dE9wZW4iLCJ1bmRlZmluZWQiLCJjbGVhckNsb3NlVGltZXIiLCJjbGVhclRpbWVvdXQiLCJoYW5kbGVGaW5pc2giLCJ2YWx1ZXMiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfYSIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsImNhbGwiLCJzZW50Iiwic2V0VGltZW91dCIsImFicnVwdCIsInN0b3AiLCJ0cmlnZ2VyTm9kZSIsIm9uQ2xpY2siLCJldmVudCIsInRyaWdnZXJPbkNsaWNrIiwicHJvcHMiLCJkZWZhdWx0UHJldmVudGVkIiwiaGFuZGxlSGlkZSIsImFyZ3VtZW50cyIsInNob3VsZFJlbmRlclBhbmVsIiwibWVyZ2VkU3R5bGUiLCJPYmplY3QiLCJhc3NpZ24iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSUEsU0FBUyxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLFNBQVMsSUFBSyxVQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTLEVBQUU7RUFDckYsU0FBU0MsS0FBS0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQUUsT0FBT0EsS0FBSyxZQUFZSCxDQUFDLEdBQUdHLEtBQUssR0FBRyxJQUFJSCxDQUFDLENBQUMsVUFBVUksT0FBTyxFQUFFO01BQUVBLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQUU7RUFDM0csT0FBTyxLQUFLSCxDQUFDLEtBQUtBLENBQUMsR0FBR0ssT0FBTyxDQUFDLEVBQUUsVUFBVUQsT0FBTyxFQUFFRSxNQUFNLEVBQUU7SUFDdkQsU0FBU0MsU0FBU0EsQ0FBQ0osS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQ1EsSUFBSSxDQUFDTixLQUFLLENBQUMsQ0FBQztNQUFFLENBQUMsQ0FBQyxPQUFPTyxDQUFDLEVBQUU7UUFBRUosTUFBTSxDQUFDSSxDQUFDLENBQUM7TUFBRTtJQUFFO0lBQzFGLFNBQVNDLFFBQVFBLENBQUNSLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUNFLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDN0YsU0FBU0YsSUFB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QUNaLGNBQWM7RUFFdkQsSUFBTTJDLFdBQVcsR0FBR3hELE9BQU8sQ0FBZ0I7SUFBQSxPQUFNeUQsTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUMzQzFDLFlBQVksSUFBSSxDQUFBLENBQUcsQ0FBQSxFQUNuQkYsS0FBSyxLQUFLZSxTQUFTLEdBQUc7TUFBRWYsS0FBSyxFQUFMQTtJQUFLLENBQUUsR0FBRyxDQUFBLENBQUcsQ0FBQTtFQUFBLENBQ3pDLEVBQUUsQ0FBQ0UsWUFBWSxFQUFFRixLQUFLLENBQUMsQ0FBQztFQUUxQmYsU0FBUyxDQUFDLFlBQUs7SUFDYixPQUFPLFlBQUs7TUFDVitCLGVBQWUsQ0FBQSxDQUFFO0lBQ25CLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ0EsZUFBZSxDQUFDLENBQUM7RUFFckIsT0FBTztJQUNMTCxVQUFVLEVBQVZBLFVBQVU7SUFDVjhCLGlCQUFpQixFQUFqQkEsaUJBQWlCO0lBQ2pCUixXQUFXLEVBQVhBLFdBQVc7SUFDWGYsWUFBWSxFQUFaQSxZQUFZO0lBQ1pxQixVQUFVLEVBQVZBLFVBQVU7SUFDVkcsV0FBVyxFQUFYQSxXQUFXO0lBQ1g3QixVQUFVLEVBQVZBO0VEdERBLENDdUREO0FBQ0giLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IGNsb25lRWxlbWVudCwgaXNWYWxpZEVsZW1lbnQsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG4vKipcbiAqIFNoYXJlZCBob29rIHRoYXQgcG93ZXJzIGJvdGgge0BsaW5rIE1vZGFsRm9ybX0gYW5kIHtAbGluayBEcmF3ZXJGb3JtfS5cbiAqXG4gKiBNYW5hZ2VzIG9wZW4vY2xvc2Ugc3RhdGUsIHRyaWdnZXIgZWxlbWVudCBjbG9uaW5nLCBhdXRvLWNsb3NlIHdpdGggb3B0aW9uYWxcbiAqIHRpbWVvdXQgYWZ0ZXIgc3VibWl0LCBhbmQgb3ZlcmxheSB2aXNpYmlsaXR5IGxpZmVjeWNsZS5cbiAqXG4gKiBAdHlwZVBhcmFtIFRWYWx1ZXMgLSBUaGUgZm9ybSB2YWx1ZXMgdHlwZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zLlxuICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggYG1lcmdlZE9wZW5gLCBgdHJpZ2dlck5vZGVgLCBgaGFuZGxlRmluaXNoYCwgYGhhbmRsZUhpZGVgLCBhbmQgbW9yZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU92ZXJsYXlGb3JtKHsgb3Blbiwgb25PcGVuQ2hhbmdlLCB0cmlnZ2VyLCBzdWJtaXRUaW1lb3V0LCBhdXRvQ2xvc2UgPSB0cnVlLCBkZXN0cm95T25DbG9zZSA9IHRydWUsIHdpZHRoLCBvbkZpbmlzaCwgb3ZlcmxheVN0eWxlLCBvbk92ZXJsYXlIaWRlLCB9KSB7XG4gICAgY29uc3QgW2lubmVyT3Blbiwgc2V0SW5uZXJPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBjbG9zZVRpbWVyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IG9uRmluaXNoUmVmID0gdXNlUmVmKG9uRmluaXNoKTtcbiAgICBjb25zdCBtZXJnZWRPcGVuID0gb3BlbiAhPT0gbnVsbCAmJiBvcGVuICE9PSB2b2lkIDAgPyBvcGVuIDogaW5uZXJPcGVuO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIG9uRmluaXNoUmVmLmN1cnJlbnQgPSBvbkZpbmlzaDtcbiAgICB9LCBbb25GaW5pc2hdKTtcbiAgICBjb25zdCBjaGFuZ2VPcGVuID0gdXNlQ2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIGlmIChvcGVuID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHNldElubmVyT3BlbihuZXh0T3Blbik7XG4gICAgICAgIH1cbiAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKG5leHRPcGVuKTtcbiAgICB9LCBbb3Blbiwgb25PcGVuQ2hhbmdlXSk7XG4gICAgY29uc3QgY2xlYXJDbG9zZVRpbWVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBpZiAoIWNsb3NlVGltZXJSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2xlYXJUaW1lb3V0KGNsb3NlVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgIGNsb3NlVGltZXJSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZUZpbmlzaCA9IHVzZUNhbGxiYWNrKCh2YWx1ZXMpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCAoKF9hID0gb25GaW5pc2hSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25GaW5pc2hSZWYsIHZhbHVlcykpO1xuICAgICAgICBpZiAoYXV0b0Nsb3NlICYmIHJlc3VsdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNsZWFyQ2xvc2VUaW1lcigpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBzdWJtaXRUaW1lb3V0ID09PSAnbnVtYmVyJyAmJiBzdWJtaXRUaW1lb3V0ID4gMCkge1xuICAgICAgICAgICAgICAgIGNsb3NlVGltZXJSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VPcGVuKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9LCBzdWJtaXRUaW1lb3V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNoYW5nZU9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksIFthdXRvQ2xvc2UsIGNoYW5nZU9wZW4sIGNsZWFyQ2xvc2VUaW1lciwgc3VibWl0VGltZW91dF0pO1xuICAgIGNvbnN0IHRyaWdnZXJOb2RlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICghdHJpZ2dlciB8fCAhaXNWYWxpZEVsZW1lbnQodHJpZ2dlcikpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgcmV0dXJuIGNsb25lRWxlbWVudCh0cmlnZ2VyLCB7XG4gICAgICAgICAgICBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlck9uQ2xpY2sgPSAoX2EgPSB0cmlnZ2VyLnByb3BzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub25DbGljaztcbiAgICAgICAgICAgICAgICB0cmlnZ2VyT25DbGljayA9PT0gbnVsbCB8fCB0cmlnZ2VyT25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogdHJpZ2dlck9uQ2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY2hhbmdlT3Blbih0cnVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH0sIFtjaGFuZ2VPcGVuLCB0cmlnZ2VyXSk7XG4gICAgY29uc3QgaGFuZGxlSGlkZSA9IHVzZUNhbGxiYWNrKCguLi5hcmdzKSA9PiB7XG4gICAgICAgIGNsZWFyQ2xvc2VUaW1lcigpO1xuICAgICAgICBvbk92ZXJsYXlIaWRlID09PSBudWxsIHx8IG9uT3ZlcmxheUhpZGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3ZlcmxheUhpZGUoLi4uYXJncyk7XG4gICAgICAgIGNoYW5nZU9wZW4oZmFsc2UpO1xuICAgIH0sIFtjaGFuZ2VPcGVuLCBjbGVhckNsb3NlVGltZXIsIG9uT3ZlcmxheUhpZGVdKTtcbiAgICBjb25zdCBzaG91bGRSZW5kZXJQYW5lbCA9IG1lcmdlZE9wZW4gfHwgIWRlc3Ryb3lPbkNsb3NlO1xuICAgIGNvbnN0IG1lcmdlZFN0eWxlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCAob3ZlcmxheVN0eWxlIHx8IHt9KSksICh3aWR0aCAhPT0gdW5kZWZpbmVkID8geyB3aWR0aCB9IDoge30pKSksIFtvdmVybGF5U3R5bGUsIHdpZHRoXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGNsZWFyQ2xvc2VUaW1lcigpO1xuICAgICAgICB9O1xuICAgIH0sIFtjbGVhckNsb3NlVGltZXJdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBtZXJnZWRPcGVuLFxuICAgICAgICBzaG91bGRSZW5kZXJQYW5lbCxcbiAgICAgICAgdHJpZ2dlck5vZGUsXG4gICAgICAgIGhhbmRsZUZpbmlzaCxcbiAgICAgICAgaGFuZGxlSGlkZSxcbiAgICAgICAgbWVyZ2VkU3R5bGUsXG4gICAgICAgIGNoYW5nZU9wZW4sXG4gICAgfTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1 @@
1
+ .proform__submitter{display:flex;gap:12px;margin-top:16px}.proform__drawer-form,.proform__modal-form{padding:16px;background:#fff;border:1px solid #e3e4e4;border-radius:12px}.proform__drawer-form-title,.proform__modal-form-title,.proform__steps-form-title{margin-bottom:12px;font-weight:600;font-size:16px;line-height:24px}.proform__steps-form-description{margin-bottom:12px;color:#646465;font-size:14px}.proform__query-filter-actions,.proform__steps-form-actions{display:flex;gap:8px;margin-top:16px}.proform__query-filter-split{padding-top:16px;border-top:1px solid #e3e4e4}.proform__list{display:flex;flex-direction:column;gap:12px}.proform__list-label{font-weight:600;font-size:14px}.proform__list-row-actions{display:flex;gap:8px}
@@ -0,0 +1,59 @@
1
+ @use '../../../variable.scss' as *;
2
+ /* stylelint-disable selector-pseudo-class-no-unknown */
3
+
4
+ .proform__submitter {
5
+ display: flex;
6
+ gap: 12px;
7
+ margin-top: 16px;
8
+ }
9
+
10
+ .proform__modal-form,
11
+ .proform__drawer-form {
12
+ padding: 16px;
13
+ background: $color-white;
14
+ border: 1px solid $color-grey-deep;
15
+ border-radius: 12px;
16
+ }
17
+
18
+ .proform__modal-form-title,
19
+ .proform__drawer-form-title,
20
+ .proform__steps-form-title {
21
+ margin-bottom: 12px;
22
+ font-weight: 600;
23
+ font-size: 16px;
24
+ line-height: 24px;
25
+ }
26
+
27
+ .proform__steps-form-description {
28
+ margin-bottom: 12px;
29
+ color: $color-grey-midnight;
30
+ font-size: 14px;
31
+ }
32
+
33
+ .proform__steps-form-actions,
34
+ .proform__query-filter-actions {
35
+ display: flex;
36
+ gap: 8px;
37
+ margin-top: 16px;
38
+ }
39
+
40
+ .proform__query-filter-split {
41
+ padding-top: 16px;
42
+ border-top: 1px solid $color-grey-deep;
43
+ }
44
+
45
+ .proform__list {
46
+ display: flex;
47
+ flex-direction: column;
48
+ gap: 12px;
49
+ }
50
+
51
+ .proform__list-label {
52
+ font-weight: 600;
53
+ font-size: 14px;
54
+ }
55
+
56
+ .proform__list-row-actions {
57
+ display: flex;
58
+ gap: 8px;
59
+ }
@@ -0,0 +1,3 @@
1
+ // Intentionally a side-effect import: this file is the ProForm style entry for the build pipeline.
2
+ import './ProForm.module.css';
3
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL3N0eWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBTyx1QkFBdUIiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL3N0eWxlL2Nzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1 @@
1
+ import './ProForm.module.scss';
@@ -0,0 +1,3 @@
1
+ // Intentionally a side-effect import: this file is the ProForm style entry for the build pipeline.
2
+ import './ProForm.module.scss';
3
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL3N0eWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBTyx1QkFBdUIiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL3N0eWxlL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,72 @@
1
+ import type { MouseEvent, ReactNode } from 'react';
2
+ /** Shorthand for a generic key/value record. */
3
+ export type UnknownRecord = Record<string, unknown>;
4
+ /**
5
+ * Produces a deterministic, type-aware string key for deep comparison.
6
+ * Handles non-JSON-safe values (e.g. `undefined`, `symbol`, `function`) and circular references.
7
+ *
8
+ * @param value - The value to serialize.
9
+ * @returns A stable serialization key.
10
+ */
11
+ export declare const stableSerialize: (value: unknown) => string;
12
+ /**
13
+ * Renders a boolean value as localized "Yes" / "No" text for readonly mode.
14
+ *
15
+ * @param value - The field value.
16
+ * @returns The display string.
17
+ */
18
+ export declare const renderBooleanReadonly: (value: unknown) => string;
19
+ /**
20
+ * Renders a numeric value as its string representation, or a dash for empty values.
21
+ *
22
+ * @param value - The field value.
23
+ * @returns The display string.
24
+ */
25
+ export declare const renderNumericReadonly: (value: unknown) => string;
26
+ /**
27
+ * Renders a text value as-is, or a dash for empty values.
28
+ *
29
+ * @param value - The field value.
30
+ * @returns The display string.
31
+ */
32
+ export declare const renderTextReadonly: (value: unknown) => string;
33
+ /** Shape of an option item used by Select, Radio, and Checkbox fields. */
34
+ interface OptionItem {
35
+ key?: unknown;
36
+ value?: unknown;
37
+ label?: unknown;
38
+ }
39
+ /**
40
+ * Finds the display label for a given value within an options array.
41
+ *
42
+ * @param value - The current field value.
43
+ * @param options - The list of available options.
44
+ * @param valueKey - Which option property to match against: `'value'`, `'key'`, or `'both'`.
45
+ * @returns The matched option's label, or the raw value, or a dash placeholder.
46
+ */
47
+ export declare const findOptionLabel: (value: unknown, options: OptionItem[] | undefined, valueKey?: "value" | "key" | "both") => unknown;
48
+ /**
49
+ * Type guard that checks whether a submitter configuration is enabled
50
+ * (i.e. not `false`, `null`, or `undefined`).
51
+ *
52
+ * @param submitter - The submitter prop value.
53
+ * @returns `true` if the submitter config object is present.
54
+ */
55
+ export declare const isSubmitterEnabled: <T>(submitter: false | T | undefined) => submitter is T;
56
+ type IconProps = false | UnknownRecord | undefined;
57
+ /** Destructured button properties returned by {@link extractButtonProps}. */
58
+ interface ExtractedButtonProps {
59
+ onClick: ((event: MouseEvent<HTMLButtonElement>) => void) | undefined;
60
+ disabled: boolean;
61
+ children: ReactNode;
62
+ domProps: UnknownRecord;
63
+ }
64
+ /**
65
+ * Extracts well-known button properties (`onClick`, `disabled`, `children`)
66
+ * from an icon-props configuration object, returning the remainder as `domProps`.
67
+ *
68
+ * @param props - The icon/button props, or `false`/`undefined` to skip.
69
+ * @returns A normalized {@link ExtractedButtonProps} object.
70
+ */
71
+ export declare const extractButtonProps: (props: IconProps) => ExtractedButtonProps;
72
+ export {};
@@ -0,0 +1,206 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
3
+ var __rest = this && this.__rest || function (s, e) {
4
+ var t = {};
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
8
+ }
9
+ return t;
10
+ };
11
+ import { DEFAULT_TEXT } from './constants';
12
+ var getNextSeenId = function getNextSeenId(ctx) {
13
+ var current = ctx.nextId;
14
+ ctx.nextId += 1;
15
+ return current;
16
+ };
17
+ var sortObjectKeys = function sortObjectKeys(value) {
18
+ return Reflect.ownKeys(value).map(function (rawKey) {
19
+ var _a;
20
+ return {
21
+ rawKey: rawKey,
22
+ serializedKey: _typeof(rawKey) === 'symbol' ? "@@symbol:".concat(String((_a = rawKey.description) !== null && _a !== void 0 ? _a : rawKey)) : String(rawKey)
23
+ };
24
+ }).sort(function (a, b) {
25
+ return a.serializedKey.localeCompare(b.serializedKey);
26
+ });
27
+ };
28
+ var serializeNumber = function serializeNumber(value) {
29
+ if (Number.isNaN(value)) return 'number:NaN';
30
+ if (!Number.isFinite(value)) return "number:".concat(value > 0 ? 'Infinity' : '-Infinity');
31
+ return "number:".concat(String(value));
32
+ };
33
+ var serializeObject = function serializeObject(value, ctx) {
34
+ var _a, _b;
35
+ if (ctx.seen.has(value)) {
36
+ return "ref:".concat(ctx.seen.get(value));
37
+ }
38
+ var id = getNextSeenId(ctx);
39
+ ctx.seen.set(value, id);
40
+ if (Array.isArray(value)) {
41
+ return "array:[".concat(value.map(function (item) {
42
+ return serializeStableValue(item, ctx);
43
+ }).join(','), "]");
44
+ }
45
+ if (value instanceof Date) {
46
+ return "date:".concat(Number.isNaN(value.getTime()) ? 'Invalid Date' : value.toISOString());
47
+ }
48
+ if (value instanceof RegExp) {
49
+ return "regexp:".concat(value.toString());
50
+ }
51
+ if (value instanceof Set) {
52
+ var values = Array.from(value.values()).map(function (item) {
53
+ return serializeStableValue(item, ctx);
54
+ }).sort();
55
+ return "set:{".concat(values.join(','), "}");
56
+ }
57
+ if (value instanceof Map) {
58
+ var entries = Array.from(value.entries()).map(function (_ref) {
59
+ var _ref2 = _slicedToArray(_ref, 2),
60
+ key = _ref2[0],
61
+ item = _ref2[1];
62
+ return {
63
+ key: serializeStableValue(key, ctx),
64
+ value: serializeStableValue(item, ctx)
65
+ };
66
+ }).sort(function (a, b) {
67
+ if (a.key === b.key) return a.value.localeCompare(b.value);
68
+ return a.key.localeCompare(b.key);
69
+ });
70
+ return "map:{".concat(entries.map(function (entry) {
71
+ return "".concat(entry.key, "->").concat(entry.value);
72
+ }).join(','), "}");
73
+ }
74
+ var constructorName = (_b = (_a = value.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'Object';
75
+ var keys = sortObjectKeys(value);
76
+ var serializedPairs = keys.map(function (_ref3) {
77
+ var rawKey = _ref3.rawKey,
78
+ serializedKey = _ref3.serializedKey;
79
+ var nextValue = value[rawKey];
80
+ return "".concat(serializedKey, ":").concat(serializeStableValue(nextValue, ctx));
81
+ });
82
+ return "object:".concat(constructorName, ":{").concat(serializedPairs.join(','), "}");
83
+ };
84
+ var serializeStableValue = function serializeStableValue(value, ctx) {
85
+ var _a;
86
+ if (value === null) return 'null';
87
+ switch (_typeof(value)) {
88
+ case 'undefined':
89
+ return 'undefined';
90
+ case 'string':
91
+ return "string:".concat(JSON.stringify(value));
92
+ case 'number':
93
+ return serializeNumber(value);
94
+ case 'boolean':
95
+ return "boolean:".concat(value ? '1' : '0');
96
+ case 'bigint':
97
+ return "bigint:".concat(String(value));
98
+ case 'symbol':
99
+ return "symbol:".concat(String((_a = value.description) !== null && _a !== void 0 ? _a : value));
100
+ case 'function':
101
+ {
102
+ var fn = value;
103
+ return "function:".concat(fn.name || 'anonymous', ":").concat(fn.length, ":").concat(String(fn));
104
+ }
105
+ case 'object':
106
+ return serializeObject(value, ctx);
107
+ default:
108
+ return "unknown:".concat(String(value));
109
+ }
110
+ };
111
+ /**
112
+ * Produces a deterministic, type-aware string key for deep comparison.
113
+ * Handles non-JSON-safe values (e.g. `undefined`, `symbol`, `function`) and circular references.
114
+ *
115
+ * @param value - The value to serialize.
116
+ * @returns A stable serialization key.
117
+ */
118
+ export var stableSerialize = function stableSerialize(value) {
119
+ try {
120
+ return serializeStableValue(value, {
121
+ seen: new WeakMap(),
122
+ nextId: 0
123
+ });
124
+ } catch (error) {
125
+ var message = error instanceof Error ? error.message : String(error);
126
+ return "serialization-error:".concat(message);
127
+ }
128
+ };
129
+ /**
130
+ * Renders a boolean value as localized "Yes" / "No" text for readonly mode.
131
+ *
132
+ * @param value - The field value.
133
+ * @returns The display string.
134
+ */
135
+ export var renderBooleanReadonly = function renderBooleanReadonly(value) {
136
+ return value ? DEFAULT_TEXT.yes : DEFAULT_TEXT.no;
137
+ };
138
+ /**
139
+ * Renders a numeric value as its string representation, or a dash for empty values.
140
+ *
141
+ * @param value - The field value.
142
+ * @returns The display string.
143
+ */
144
+ export var renderNumericReadonly = function renderNumericReadonly(value) {
145
+ return value == null || value === '' ? DEFAULT_TEXT.empty : String(value);
146
+ };
147
+ /**
148
+ * Renders a text value as-is, or a dash for empty values.
149
+ *
150
+ * @param value - The field value.
151
+ * @returns The display string.
152
+ */
153
+ export var renderTextReadonly = function renderTextReadonly(value) {
154
+ return value != null && value !== '' ? String(value) : DEFAULT_TEXT.empty;
155
+ };
156
+ /**
157
+ * Finds the display label for a given value within an options array.
158
+ *
159
+ * @param value - The current field value.
160
+ * @param options - The list of available options.
161
+ * @param valueKey - Which option property to match against: `'value'`, `'key'`, or `'both'`.
162
+ * @returns The matched option's label, or the raw value, or a dash placeholder.
163
+ */
164
+ export var findOptionLabel = function findOptionLabel(value, options) {
165
+ var valueKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'value';
166
+ var _a, _b;
167
+ if (!Array.isArray(options)) return value !== null && value !== void 0 ? value : DEFAULT_TEXT.empty;
168
+ var matched = options.find(function (item) {
169
+ if (valueKey === 'both') {
170
+ return (item === null || item === void 0 ? void 0 : item.key) === value || (item === null || item === void 0 ? void 0 : item.value) === value;
171
+ }
172
+ return (item === null || item === void 0 ? void 0 : item[valueKey]) === value;
173
+ });
174
+ return (_b = (_a = matched === null || matched === void 0 ? void 0 : matched.label) !== null && _a !== void 0 ? _a : value) !== null && _b !== void 0 ? _b : DEFAULT_TEXT.empty;
175
+ };
176
+ /**
177
+ * Type guard that checks whether a submitter configuration is enabled
178
+ * (i.e. not `false`, `null`, or `undefined`).
179
+ *
180
+ * @param submitter - The submitter prop value.
181
+ * @returns `true` if the submitter config object is present.
182
+ */
183
+ export var isSubmitterEnabled = function isSubmitterEnabled(submitter) {
184
+ return submitter !== false && submitter != null;
185
+ };
186
+ /**
187
+ * Extracts well-known button properties (`onClick`, `disabled`, `children`)
188
+ * from an icon-props configuration object, returning the remainder as `domProps`.
189
+ *
190
+ * @param props - The icon/button props, or `false`/`undefined` to skip.
191
+ * @returns A normalized {@link ExtractedButtonProps} object.
192
+ */
193
+ export var extractButtonProps = function extractButtonProps(props) {
194
+ var btnProps = props && _typeof(props) === 'object' ? props : {};
195
+ var onClick = btnProps.onClick,
196
+ disabled = btnProps.disabled,
197
+ children = btnProps.children,
198
+ domProps = __rest(btnProps, ["onClick", "disabled", "children"]);
199
+ return {
200
+ onClick: onClick,
201
+ disabled: !!disabled,
202
+ children: children,
203
+ domProps: domProps
204
+ };
205
+ };
206
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIkRFRkFVTFRfVEVYVCIsImdldE5leHRTZWVuSWQiLCJjdHgiLCJjdXJyZW50IiwibmV4dElkIiwic29ydE9iamVjdEtleXMiLCJ2YWx1ZSIsIlJlZmxlY3QiLCJvd25LZXlzIiwibWFwIiwicmF3S2V5IiwiX2EiLCJzZXJpYWxpemVkS2V5IiwiX3R5cGVvZiIsImNvbmNhdCIsIlN0cmluZyIsImRlc2NyaXB0aW9uIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsInNlcmlhbGl6ZU51bWJlciIsIk51bWJlciIsImlzTmFOIiwiaXNGaW5pdGUiLCJzZXJpYWxpemVPYmplY3QiLCJfYiIsInNlZW4iLCJoYXMiLCJnZXQiLCJpZCIsInNldCIsIkFycmF5IiwiaXNBcnJheSIsIml0ZW0iLCJzZXJpYWxpemVTdGFibGVWYWx1ZSIsImpvaW4iLCJEYXRlIiwiZ2V0VGltZSIsInRvSVNPU3RyaW5nIiwiUmVnRXhwIiwidG9TdHJpbmciLCJTZXQiLCJ2YWx1ZXMiLCJmcm9tIiwiTWFwIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5Iiwia2V5IiwiZW50cnkiLCJjb25zdHJ1Y3Rvck5hbWUiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJrZXlzIiwic2VyaWFsaXplZFBhaXJzIiwiX3JlZjMiLCJuZXh0VmFsdWUiLCJKU09OIiwic3RyaW5naWZ5IiwiZm4iLCJzdGFibGVTZXJpYWxpemUiLCJXZWFrTWFwIiwiZXJyb3IiLCJtZXNzYWdlIiwiRXJyb3IiLCJyZW5kZXJCb29sZWFuUmVhZG9ubHkiLCJ5ZXMiLCJubyIsInJlbmRlck51bWVyaWNSZWFkb25seSIsImVtcHR5IiwicmVuZGVyVGV4dFJlYWRvbmx5IiwiZmluZE9wdGlvbkxhYmVsIiwib3B0aW9ucyIsInZhbHVlS2V5IiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwibWF0Y2hlZCIsImZpbmQiLCJsYWJlbCIsImlzU3VibWl0dGVyRW5hYmxlZCIsInN1Ym1pdHRlciIsImV4dHJhY3RCdXR0b25Qcm9wcyIsInByb3BzIiwiYnRuUHJvcHMiLCJvbkNsaWNrIiwiZGlzYWJsZWQiLCJjaGlsZHJlbiIsImRvbVByb3BzIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFD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QUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGdldE5leHRTZWVuSWQgPSAoY3R4KSA9PiB7XG4gICAgY29uc3QgY3VycmVudCA9IGN0eC5uZXh0SWQ7XG4gICAgY3R4Lm5leHRJZCArPSAxO1xuICAgIHJldHVybiBjdXJyZW50O1xufTtcbmNvbnN0IHNvcnRPYmplY3RLZXlzID0gKHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh2YWx1ZSlcbiAgICAgICAgLm1hcCgocmF3S2V5KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuICh7XG4gICAgICAgICAgICByYXdLZXksXG4gICAgICAgICAgICBzZXJpYWxpemVkS2V5OiB0eXBlb2YgcmF3S2V5ID09PSAnc3ltYm9sJ1xuICAgICAgICAgICAgICAgID8gYEBAc3ltYm9sOiR7U3RyaW5nKChfYSA9IHJhd0tleS5kZXNjcmlwdGlvbikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcmF3S2V5KX1gXG4gICAgICAgICAgICAgICAgOiBTdHJpbmcocmF3S2V5KSxcbiAgICAgICAgfSk7XG4gICAgfSlcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEuc2VyaWFsaXplZEtleS5sb2NhbGVDb21wYXJlKGIuc2VyaWFsaXplZEtleSkpO1xufTtcbmNvbnN0IHNlcmlhbGl6ZU51bWJlciA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpKVxuICAgICAgICByZXR1cm4gJ251bWJlcjpOYU4nO1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKHZhbHVlKSlcbiAgICAgICAgcmV0dXJuIGBudW1iZXI6JHt2YWx1ZSA+IDAgPyAnSW5maW5pdHknIDogJy1JbmZpbml0eSd9YDtcbiAgICByZXR1cm4gYG51bWJlcjoke1N0cmluZyh2YWx1ZSl9YDtcbn07XG5jb25zdCBzZXJpYWxpemVPYmplY3QgPSAodmFsdWUsIGN0eCkgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgaWYgKGN0eC5zZWVuLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGByZWY6JHtjdHguc2Vlbi5nZXQodmFsdWUpfWA7XG4gICAgfVxuICAgIGNvbnN0IGlkID0gZ2V0TmV4dFNlZW5JZChjdHgpO1xuICAgIGN0eC5zZWVuLnNldCh2YWx1ZSwgaWQpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gYGFycmF5Olske3ZhbHVlLm1hcChpdGVtID0+IHNlcmlhbGl6ZVN0YWJsZVZhbHVlKGl0ZW0sIGN0eCkpLmpvaW4oJywnKX1dYDtcbiAgICB9XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICByZXR1cm4gYGRhdGU6JHtOdW1iZXIuaXNOYU4odmFsdWUuZ2V0VGltZSgpKSA/ICdJbnZhbGlkIERhdGUnIDogdmFsdWUudG9JU09TdHJpbmcoKX1gO1xuICAgIH1cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgcmV0dXJuIGByZWdleHA6JHt2YWx1ZS50b1N0cmluZygpfWA7XG4gICAgfVxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5mcm9tKHZhbHVlLnZhbHVlcygpKVxuICAgICAgICAgICAgLm1hcChpdGVtID0+IHNlcmlhbGl6ZVN0YWJsZVZhbHVlKGl0ZW0sIGN0eCkpXG4gICAgICAgICAgICAuc29ydCgpO1xuICAgICAgICByZXR1cm4gYHNldDp7JHt2YWx1ZXMuam9pbignLCcpfX1gO1xuICAgIH1cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBNYXApIHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IEFycmF5LmZyb20odmFsdWUuZW50cmllcygpKVxuICAgICAgICAgICAgLm1hcCgoW2tleSwgaXRlbV0pID0+ICh7XG4gICAgICAgICAgICBrZXk6IHNlcmlhbGl6ZVN0YWJsZVZhbHVlKGtleSwgY3R4KSxcbiAgICAgICAgICAgIHZhbHVlOiBzZXJpYWxpemVTdGFibGVWYWx1ZShpdGVtLCBjdHgpLFxuICAgICAgICB9KSlcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICBpZiAoYS5rZXkgPT09IGIua2V5KVxuICAgICAgICAgICAgICAgIHJldHVybiBhLnZhbHVlLmxvY2FsZUNvbXBhcmUoYi52YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gYS5rZXkubG9jYWxlQ29tcGFyZShiLmtleSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYG1hcDp7JHtlbnRyaWVzLm1hcChlbnRyeSA9PiBgJHtlbnRyeS5rZXl9LT4ke2VudHJ5LnZhbHVlfWApLmpvaW4oJywnKX19YDtcbiAgICB9XG4gICAgY29uc3QgY29uc3RydWN0b3JOYW1lID0gKF9iID0gKF9hID0gdmFsdWUuY29uc3RydWN0b3IpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5uYW1lKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnT2JqZWN0JztcbiAgICBjb25zdCBrZXlzID0gc29ydE9iamVjdEtleXModmFsdWUpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRQYWlycyA9IGtleXMubWFwKCh7IHJhd0tleSwgc2VyaWFsaXplZEtleSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHZhbHVlW3Jhd0tleV07XG4gICAgICAgIHJldHVybiBgJHtzZXJpYWxpemVkS2V5fToke3NlcmlhbGl6ZVN0YWJsZVZhbHVlKG5leHRWYWx1ZSwgY3R4KX1gO1xuICAgIH0pO1xuICAgIHJldHVybiBgb2JqZWN0OiR7Y29uc3RydWN0b3JOYW1lfTp7JHtzZXJpYWxpemVkUGFpcnMuam9pbignLCcpfX1gO1xufTtcbmNvbnN0IHNlcmlhbGl6ZVN0YWJsZVZhbHVlID0gKHZhbHVlLCBjdHgpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKVxuICAgICAgICByZXR1cm4gJ251bGwnO1xuICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgICAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICByZXR1cm4gYHN0cmluZzoke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gO1xuICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZU51bWJlcih2YWx1ZSk7XG4gICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgcmV0dXJuIGBib29sZWFuOiR7dmFsdWUgPyAnMScgOiAnMCd9YDtcbiAgICAgICAgY2FzZSAnYmlnaW50JzpcbiAgICAgICAgICAgIHJldHVybiBgYmlnaW50OiR7U3RyaW5nKHZhbHVlKX1gO1xuICAgICAgICBjYXNlICdzeW1ib2wnOlxuICAgICAgICAgICAgcmV0dXJuIGBzeW1ib2w6JHtTdHJpbmcoKF9hID0gdmFsdWUuZGVzY3JpcHRpb24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHZhbHVlKX1gO1xuICAgICAgICBjYXNlICdmdW5jdGlvbic6IHtcbiAgICAgICAgICAgIGNvbnN0IGZuID0gdmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gYGZ1bmN0aW9uOiR7Zm4ubmFtZSB8fCAnYW5vbnltb3VzJ306JHtmbi5sZW5ndGh9OiR7U3RyaW5nKGZuKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplT2JqZWN0KHZhbHVlLCBjdHgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGB1bmtub3duOiR7U3RyaW5nKHZhbHVlKX1gO1xuICAgIH1cbn07XG4vKipcbiAqIFByb2R1Y2VzIGEgZGV0ZXJtaW5pc3RpYywgdHlwZS1hd2FyZSBzdHJpbmcga2V5IGZvciBkZWVwIGNvbXBhcmlzb24uXG4gKiBIYW5kbGVzIG5vbi1KU09OLXNhZmUgdmFsdWVzIChlLmcuIGB1bmRlZmluZWRgLCBgc3ltYm9sYCwgYGZ1bmN0aW9uYCkgYW5kIGNpcmN1bGFyIHJlZmVyZW5jZXMuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHNlcmlhbGl6ZS5cbiAqIEByZXR1cm5zIEEgc3RhYmxlIHNlcmlhbGl6YXRpb24ga2V5LlxuICovXG5leHBvcnQgY29uc3Qgc3RhYmxlU2VyaWFsaXplID0gKHZhbHVlKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVN0YWJsZVZhbHVlKHZhbHVlLCB7IHNlZW46IG5ldyBXZWFrTWFwKCksIG5leHRJZDogMCB9KTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICAgIHJldHVybiBgc2VyaWFsaXphdGlvbi1lcnJvcjoke21lc3NhZ2V9YDtcbiAgICB9XG59O1xuLyoqXG4gKiBSZW5kZXJzIGEgYm9vbGVhbiB2YWx1ZSBhcyBsb2NhbGl6ZWQgXCJZZXNcIiAvIFwiTm9cIiB0ZXh0IGZvciByZWFkb25seSBtb2RlLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBmaWVsZCB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSBkaXNwbGF5IHN0cmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlckJvb2xlYW5SZWFkb25seSA9ICh2YWx1ZSkgPT4gdmFsdWUgPyBERUZBVUxUX1RFWFQueWVzIDogREVGQVVMVF9URVhULm5vO1xuLyoqXG4gKiBSZW5kZXJzIGEgbnVtZXJpYyB2YWx1ZSBhcyBpdHMgc3RyaW5nIHJlcHJlc2VudGF0aW9uLCBvciBhIGRhc2ggZm9yIGVtcHR5IHZhbHVlcy5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgZmllbGQgdmFsdWUuXG4gKiBAcmV0dXJucyBUaGUgZGlzcGxheSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCByZW5kZXJOdW1lcmljUmVhZG9ubHkgPSAodmFsdWUpID0+IHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT09ICcnID8gREVGQVVMVF9URVhULmVtcHR5IDogU3RyaW5nKHZhbHVlKTtcbi8qKlxuICogUmVuZGVycyBhIHRleHQgdmFsdWUgYXMtaXMsIG9yIGEgZGFzaCBmb3IgZW1wdHkgdmFsdWVzLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBmaWVsZCB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSBkaXNwbGF5IHN0cmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlclRleHRSZWFkb25seSA9ICh2YWx1ZSkgPT4gdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycgPyBTdHJpbmcodmFsdWUpIDogREVGQVVMVF9URVhULmVtcHR5O1xuLyoqXG4gKiBGaW5kcyB0aGUgZGlzcGxheSBsYWJlbCBmb3IgYSBnaXZlbiB2YWx1ZSB3aXRoaW4gYW4gb3B0aW9ucyBhcnJheS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgY3VycmVudCBmaWVsZCB2YWx1ZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbnMuXG4gKiBAcGFyYW0gdmFsdWVLZXkgLSBXaGljaCBvcHRpb24gcHJvcGVydHkgdG8gbWF0Y2ggYWdhaW5zdDogYCd2YWx1ZSdgLCBgJ2tleSdgLCBvciBgJ2JvdGgnYC5cbiAqIEByZXR1cm5zIFRoZSBtYXRjaGVkIG9wdGlvbidzIGxhYmVsLCBvciB0aGUgcmF3IHZhbHVlLCBvciBhIGRhc2ggcGxhY2Vob2xkZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBmaW5kT3B0aW9uTGFiZWwgPSAodmFsdWUsIG9wdGlvbnMsIHZhbHVlS2V5ID0gJ3ZhbHVlJykgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG9wdGlvbnMpKVxuICAgICAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCA/IHZhbHVlIDogREVGQVVMVF9URVhULmVtcHR5O1xuICAgIGNvbnN0IG1hdGNoZWQgPSBvcHRpb25zLmZpbmQoKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKHZhbHVlS2V5ID09PSAnYm90aCcpIHtcbiAgICAgICAgICAgIHJldHVybiAoaXRlbSA9PT0gbnVsbCB8fCBpdGVtID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpdGVtLmtleSkgPT09IHZhbHVlIHx8IChpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGl0ZW0udmFsdWUpID09PSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKGl0ZW0gPT09IG51bGwgfHwgaXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogaXRlbVt2YWx1ZUtleV0pID09PSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gKF9iID0gKF9hID0gbWF0Y2hlZCA9PT0gbnVsbCB8fCBtYXRjaGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtYXRjaGVkLmxhYmVsKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB2YWx1ZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogREVGQVVMVF9URVhULmVtcHR5O1xufTtcbi8qKlxuICogVHlwZSBndWFyZCB0aGF0IGNoZWNrcyB3aGV0aGVyIGEgc3VibWl0dGVyIGNvbmZpZ3VyYXRpb24gaXMgZW5hYmxlZFxuICogKGkuZS4gbm90IGBmYWxzZWAsIGBudWxsYCwgb3IgYHVuZGVmaW5lZGApLlxuICpcbiAqIEBwYXJhbSBzdWJtaXR0ZXIgLSBUaGUgc3VibWl0dGVyIHByb3AgdmFsdWUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHN1Ym1pdHRlciBjb25maWcgb2JqZWN0IGlzIHByZXNlbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBpc1N1Ym1pdHRlckVuYWJsZWQgPSAoc3VibWl0dGVyKSA9PiBzdWJtaXR0ZXIgIT09IGZhbHNlICYmIHN1Ym1pdHRlciAhPSBudWxsO1xuLyoqXG4gKiBFeHRyYWN0cyB3ZWxsLWtub3duIGJ1dHRvbiBwcm9wZXJ0aWVzIChgb25DbGlja2AsIGBkaXNhYmxlZGAsIGBjaGlsZHJlbmApXG4gKiBmcm9tIGFuIGljb24tcHJvcHMgY29uZmlndXJhdGlvbiBvYmplY3QsIHJldHVybmluZyB0aGUgcmVtYWluZGVyIGFzIGBkb21Qcm9wc2AuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gVGhlIGljb24vYnV0dG9uIHByb3BzLCBvciBgZmFsc2VgL2B1bmRlZmluZWRgIHRvIHNraXAuXG4gKiBAcmV0dXJucyBBIG5vcm1hbGl6ZWQge0BsaW5rIEV4dHJhY3RlZEJ1dHRvblByb3BzfSBvYmplY3QuXG4gKi9cbmV4cG9ydCBjb25zdCBleHRyYWN0QnV0dG9uUHJvcHMgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBidG5Qcm9wcyA9IHByb3BzICYmIHR5cGVvZiBwcm9wcyA9PT0gJ29iamVjdCcgPyBwcm9wcyA6IHt9O1xuICAgIGNvbnN0IHsgb25DbGljaywgZGlzYWJsZWQsIGNoaWxkcmVuIH0gPSBidG5Qcm9wcywgZG9tUHJvcHMgPSBfX3Jlc3QoYnRuUHJvcHMsIFtcIm9uQ2xpY2tcIiwgXCJkaXNhYmxlZFwiLCBcImNoaWxkcmVuXCJdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBvbkNsaWNrOiBvbkNsaWNrLFxuICAgICAgICBkaXNhYmxlZDogISFkaXNhYmxlZCxcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxuICAgICAgICBkb21Qcm9wcyxcbiAgICB9O1xufTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=