@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,132 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
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) t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
6
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
7
+ }
8
+ return t;
9
+ };
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ import { Children, memo, useCallback, useMemo, useState } from 'react';
12
+ import { joinCls } from '../../../utils/classnames';
13
+ import { Button } from '../../Button';
14
+ import ProForm from '../ProForm';
15
+ import { CSS_PREFIX, DEFAULT_COLS_NUMBER, DEFAULT_TEXT } from '../constants';
16
+ import styles from '../style/ProForm.module.scss';
17
+ /**
18
+ * Horizontal search/filter form with collapsible fields and a
19
+ * search/reset/expand button bar.
20
+ *
21
+ * Fields beyond {@link QueryFilterProps.defaultColsNumber} are hidden
22
+ * when the filter is collapsed.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * <QueryFilter onFinish={handleSearch} defaultColsNumber={2}>
27
+ * <ProFormText name="keyword" label="Keyword" />
28
+ * <ProFormSelect name="status" label="Status" fieldProps={{ options }} />
29
+ * <ProFormText name="author" label="Author" />
30
+ * </QueryFilter>
31
+ * ```
32
+ */
33
+ var QueryFilterBase = function QueryFilterBase(props) {
34
+ var _a, _b, _c;
35
+ var _props$defaultCollaps = props.defaultCollapsed,
36
+ defaultCollapsed = _props$defaultCollaps === void 0 ? true : _props$defaultCollaps,
37
+ collapsed = props.collapsed,
38
+ onCollapse = props.onCollapse,
39
+ _props$defaultColsNum = props.defaultColsNumber,
40
+ defaultColsNumber = _props$defaultColsNum === void 0 ? DEFAULT_COLS_NUMBER : _props$defaultColsNum,
41
+ labelWidth = props.labelWidth,
42
+ split = props.split,
43
+ submitter = props.submitter,
44
+ _onReset = props.onReset,
45
+ children = props.children,
46
+ formProps = __rest(props, ["defaultCollapsed", "collapsed", "onCollapse", "defaultColsNumber", "labelWidth", "split", "submitter", "onReset", "children"]);
47
+ var _useState = useState(defaultCollapsed),
48
+ _useState2 = _slicedToArray(_useState, 2),
49
+ innerCollapsed = _useState2[0],
50
+ setInnerCollapsed = _useState2[1];
51
+ var mergedCollapsed = submitter === false ? false : collapsed !== null && collapsed !== void 0 ? collapsed : innerCollapsed;
52
+ var childrenArray = useMemo(function () {
53
+ return Children.toArray(children);
54
+ }, [children]);
55
+ var visibleChildren = useMemo(function () {
56
+ if (!mergedCollapsed) return childrenArray;
57
+ return childrenArray.slice(0, defaultColsNumber);
58
+ }, [childrenArray, defaultColsNumber, mergedCollapsed]);
59
+ var toggleCollapsed = useCallback(function () {
60
+ var next = !mergedCollapsed;
61
+ if (collapsed === undefined) {
62
+ setInnerCollapsed(next);
63
+ }
64
+ onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(next);
65
+ }, [collapsed, mergedCollapsed, onCollapse]);
66
+ var filterStyle = useMemo(function () {
67
+ if (labelWidth === undefined) return undefined;
68
+ if (labelWidth === 'auto') {
69
+ return {
70
+ '--om-form-label-width': 'auto',
71
+ '--om-form-wrapper-width': '100%'
72
+ };
73
+ }
74
+ return {
75
+ '--om-form-label-width': "".concat(labelWidth, "px"),
76
+ '--om-form-wrapper-width': "calc(100% - ".concat(labelWidth, "px)")
77
+ };
78
+ }, [labelWidth]);
79
+ var submitterOptions = submitter === false ? undefined : submitter;
80
+ var searchConfig = submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.searchConfig;
81
+ var collapseText = (_a = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.collapseText) !== null && _a !== void 0 ? _a : DEFAULT_TEXT.collapse;
82
+ var expandText = (_b = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.expandText) !== null && _b !== void 0 ? _b : DEFAULT_TEXT.expand;
83
+ var submitterRender = useCallback(function (renderProps) {
84
+ var _a, _b;
85
+ var customDom = [_jsx(Button, {
86
+ type: 'button',
87
+ onClick: function onClick() {
88
+ return renderProps.submit();
89
+ },
90
+ children: (_a = submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.submitText) !== null && _a !== void 0 ? _a : DEFAULT_TEXT.search
91
+ }, 'search'), _jsx(Button, {
92
+ type: 'button',
93
+ severity: 'secondary',
94
+ onClick: function onClick() {
95
+ return renderProps.reset();
96
+ },
97
+ children: (_b = submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.resetText) !== null && _b !== void 0 ? _b : DEFAULT_TEXT.reset
98
+ }, 'reset'), _jsx(Button, {
99
+ type: 'button',
100
+ severity: 'secondary',
101
+ onClick: toggleCollapsed,
102
+ children: mergedCollapsed ? expandText : collapseText
103
+ }, 'collapse')];
104
+ if (submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.render) {
105
+ return submitterOptions.render(renderProps, customDom);
106
+ }
107
+ return customDom;
108
+ }, [mergedCollapsed, expandText, collapseText, submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.submitText, submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.resetText, submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.render, toggleCollapsed]);
109
+ var submitterConfig = submitterOptions === undefined ? false : Object.assign(Object.assign({}, submitterOptions), {
110
+ onReset: function onReset() {
111
+ var _a;
112
+ (_a = submitterOptions.onReset) === null || _a === void 0 ? void 0 : _a.call(submitterOptions);
113
+ _onReset === null || _onReset === void 0 ? void 0 : _onReset();
114
+ },
115
+ render: submitterRender
116
+ });
117
+ var queryFormProps = formProps;
118
+ return _jsx("div", {
119
+ className: joinCls(styles['proform__query-filter'], "".concat(CSS_PREFIX, "-query-filter"), split && styles['proform__query-filter-split'], split && "".concat(CSS_PREFIX, "-query-filter-split")),
120
+ style: filterStyle,
121
+ children: _jsx(ProForm, Object.assign({}, queryFormProps, {
122
+ layout: (_c = formProps.layout) !== null && _c !== void 0 ? _c : 'inline',
123
+ submitter: submitterConfig,
124
+ children: visibleChildren
125
+ }))
126
+ });
127
+ };
128
+ var MemoizedQueryFilter = /*#__PURE__*/memo(QueryFilterBase);
129
+ MemoizedQueryFilter.displayName = 'QueryFilter';
130
+ export var QueryFilter = MemoizedQueryFilter;
131
+ export default QueryFilter;
132
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwiQ2hpbGRyZW4iLCJtZW1vIiwidXNlQ2FsbGJhY2siLCJ1c2VNZW1vIiwidXNlU3RhdGUiLCJqb2luQ2xzIiwiQnV0dG9uIiwiUHJvRm9ybSIsIkNTU19QUkVGSVgiLCJERUZBVUxUX0NPTFNfTlVNQkVSIiwiREVGQVVMVF9URVhUIiwic3R5bGVzIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX2MiLCJfcHJvcHMkZGVmYXVsdENvbGxhcHMiLCJkZWZhdWx0Q29sbGFwc2VkIiwiY29sbGFwc2VkIiwib25Db2xsYXBzZSIsIl9wcm9wcyRkZWZhdWx0Q29sc051bSIsImRlZmF1bHRDb2xzTnVtYmVyIiwibGFiZWxXaWR0aCIsInNwbGl0Iiwic3VibWl0dGVyIiwib25SZXNldCIsImNoaWxkcmVuIiwiZm9ybVByb3BzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaW5uZXJDb2xsYXBzZWQiLCJzZXRJbm5lckNvbGxhcHNlZCIsIm1lcmdlZENvbGxhcHNlZCIsImNoaWxkcmVuQXJyYXkiLCJ0b0FycmF5IiwidmlzaWJsZUNoaWxkcmVuIiwic2xpY2UiLCJ0b2dnbGVDb2xsYXBzZWQiLCJuZXh0IiwidW5kZWZpbmVkIiwiZmlsdGVyU3R5bGUiLCJjb25jYXQiLCJzdWJtaXR0ZXJPcHRpb25zIiwic2VhcmNoQ29uZmlnIiwiY29sbGFwc2VUZXh0IiwiY29sbGFwc2UiLCJleHBhbmRUZXh0IiwiZXhwYW5kIiwic3VibWl0dGVyUmVuZGVyIiwicmVuZGVyUHJvcHMiLCJjdXN0b21Eb20iLCJ0eXBlIiwib25DbGljayIsInN1Ym1pdCIsInN1Ym1pdFRleHQiLCJzZWFyY2giLCJzZXZlcml0eSIsInJlc2V0IiwicmVzZXRUZXh0IiwicmVuZGVyIiwic3VibWl0dGVyQ29uZmlnIiwiYXNzaWduIiwicXVlcnlGb3JtUHJvcHMiLCJjbGFzc05hbWUiLCJzdHlsZSIsImxheW91dCIsIk1lbW9pemVkUXVlcnlGaWx0ZXIiLCJkaXNwbGF5TmFtZSIsIlF1ZXJ5RmlsdGVyIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVQsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENB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QSxFQUV6QlU7SUFBZSxDQUFBLENBQUE7RUFDUixDQUFBLENBQ047QUFFVixDQUFDO0FBRUQsSUFBTStCLG1CQUFtQixnQkFBR25FLElBQUksQ0FBQ1csZUFBZSxDQUFDO0FBQ2pEd0QsbUJBQW1CLENBQUNDLFdBQVcsR0FBRyxhQUFhO0FBRS9DLE9BQU8sSUFBTUMsV0FBVyxHQUFHRixtQkFBNkM7QUFFeEUsZUFBZUUsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBDaGlsZHJlbiwgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vLi4vQnV0dG9uJztcbmltcG9ydCBQcm9Gb3JtIGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9DT0xTX05VTUJFUiwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vc3R5bGUvUHJvRm9ybS5tb2R1bGUuc2Nzcyc7XG4vKipcbiAqIEhvcml6b250YWwgc2VhcmNoL2ZpbHRlciBmb3JtIHdpdGggY29sbGFwc2libGUgZmllbGRzIGFuZCBhXG4gKiBzZWFyY2gvcmVzZXQvZXhwYW5kIGJ1dHRvbiBiYXIuXG4gKlxuICogRmllbGRzIGJleW9uZCB7QGxpbmsgUXVlcnlGaWx0ZXJQcm9wcy5kZWZhdWx0Q29sc051bWJlcn0gYXJlIGhpZGRlblxuICogd2hlbiB0aGUgZmlsdGVyIGlzIGNvbGxhcHNlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiA8UXVlcnlGaWx0ZXIgb25GaW5pc2g9e2hhbmRsZVNlYXJjaH0gZGVmYXVsdENvbHNOdW1iZXI9ezJ9PlxuICogICA8UHJvRm9ybVRleHQgbmFtZT1cImtleXdvcmRcIiBsYWJlbD1cIktleXdvcmRcIiAvPlxuICogICA8UHJvRm9ybVNlbGVjdCBuYW1lPVwic3RhdHVzXCIgbGFiZWw9XCJTdGF0dXNcIiBmaWVsZFByb3BzPXt7IG9wdGlvbnMgfX0gLz5cbiAqICAgPFByb0Zvcm1UZXh0IG5hbWU9XCJhdXRob3JcIiBsYWJlbD1cIkF1dGhvclwiIC8+XG4gKiA8L1F1ZXJ5RmlsdGVyPlxuICogYGBgXG4gKi9cbmNvbnN0IFF1ZXJ5RmlsdGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIGNvbnN0IHsgZGVmYXVsdENvbGxhcHNlZCA9IHRydWUsIGNvbGxhcHNlZCwgb25Db2xsYXBzZSwgZGVmYXVsdENvbHNOdW1iZXIgPSBERUZBVUxUX0NPTFNfTlVNQkVSLCBsYWJlbFdpZHRoLCBzcGxpdCwgc3VibWl0dGVyLCBvblJlc2V0LCBjaGlsZHJlbiB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiZGVmYXVsdENvbGxhcHNlZFwiLCBcImNvbGxhcHNlZFwiLCBcIm9uQ29sbGFwc2VcIiwgXCJkZWZhdWx0Q29sc051bWJlclwiLCBcImxhYmVsV2lkdGhcIiwgXCJzcGxpdFwiLCBcInN1Ym1pdHRlclwiLCBcIm9uUmVzZXRcIiwgXCJjaGlsZHJlblwiXSk7XG4gICAgY29uc3QgW2lubmVyQ29sbGFwc2VkLCBzZXRJbm5lckNvbGxhcHNlZF0gPSB1c2VTdGF0ZShkZWZhdWx0Q29sbGFwc2VkKTtcbiAgICBjb25zdCBtZXJnZWRDb2xsYXBzZWQgPSBzdWJtaXR0ZXIgPT09IGZhbHNlID8gZmFsc2UgOiAoY29sbGFwc2VkICE9PSBudWxsICYmIGNvbGxhcHNlZCAhPT0gdm9pZCAwID8gY29sbGFwc2VkIDogaW5uZXJDb2xsYXBzZWQpO1xuICAgIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSB1c2VNZW1vKCgpID0+IENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLCBbY2hpbGRyZW5dKTtcbiAgICBjb25zdCB2aXNpYmxlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFtZXJnZWRDb2xsYXBzZWQpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGRyZW5BcnJheTtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuQXJyYXkuc2xpY2UoMCwgZGVmYXVsdENvbHNOdW1iZXIpO1xuICAgIH0sIFtjaGlsZHJlbkFycmF5LCBkZWZhdWx0Q29sc051bWJlciwgbWVyZ2VkQ29sbGFwc2VkXSk7XG4gICAgY29uc3QgdG9nZ2xlQ29sbGFwc2VkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0ID0gIW1lcmdlZENvbGxhcHNlZDtcbiAgICAgICAgaWYgKGNvbGxhcHNlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRJbm5lckNvbGxhcHNlZChuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBvbkNvbGxhcHNlID09PSBudWxsIHx8IG9uQ29sbGFwc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29sbGFwc2UobmV4dCk7XG4gICAgfSwgW2NvbGxhcHNlZCwgbWVyZ2VkQ29sbGFwc2VkLCBvbkNvbGxhcHNlXSk7XG4gICAgY29uc3QgZmlsdGVyU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKGxhYmVsV2lkdGggPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChsYWJlbFdpZHRoID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgJy0tb20tZm9ybS1sYWJlbC13aWR0aCc6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAnLS1vbS1mb3JtLXdyYXBwZXItd2lkdGgnOiAnMTAwJScsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnLS1vbS1mb3JtLWxhYmVsLXdpZHRoJzogYCR7bGFiZWxXaWR0aH1weGAsXG4gICAgICAgICAgICAnLS1vbS1mb3JtLXdyYXBwZXItd2lkdGgnOiBgY2FsYygxMDAlIC0gJHtsYWJlbFdpZHRofXB4KWAsXG4gICAgICAgIH07XG4gICAgfSwgW2xhYmVsV2lkdGhdKTtcbiAgICBjb25zdCBzdWJtaXR0ZXJPcHRpb25zID0gc3VibWl0dGVyID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHN1Ym1pdHRlcjtcbiAgICBjb25zdCBzZWFyY2hDb25maWcgPSBzdWJtaXR0ZXJPcHRpb25zID09PSBudWxsIHx8IHN1Ym1pdHRlck9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1Ym1pdHRlck9wdGlvbnMuc2VhcmNoQ29uZmlnO1xuICAgIGNvbnN0IGNvbGxhcHNlVGV4dCA9IChfYSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5jb2xsYXBzZVRleHQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERFRkFVTFRfVEVYVC5jb2xsYXBzZTtcbiAgICBjb25zdCBleHBhbmRUZXh0ID0gKF9iID0gc2VhcmNoQ29uZmlnID09PSBudWxsIHx8IHNlYXJjaENvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ29uZmlnLmV4cGFuZFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5leHBhbmQ7XG4gICAgY29uc3Qgc3VibWl0dGVyUmVuZGVyID0gdXNlQ2FsbGJhY2soKHJlbmRlclByb3BzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IGN1c3RvbURvbSA9IFtcbiAgICAgICAgICAgIF9qc3goQnV0dG9uLCB7IHR5cGU6ICdidXR0b24nLCBvbkNsaWNrOiAoKSA9PiByZW5kZXJQcm9wcy5zdWJtaXQoKSwgY2hpbGRyZW46IChfYSA9IHN1Ym1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgc3VibWl0dGVyT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0dGVyT3B0aW9ucy5zdWJtaXRUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoIH0sICdzZWFyY2gnKSxcbiAgICAgICAgICAgIF9qc3goQnV0dG9uLCB7IHR5cGU6ICdidXR0b24nLCBzZXZlcml0eTogJ3NlY29uZGFyeScsIG9uQ2xpY2s6ICgpID0+IHJlbmRlclByb3BzLnJlc2V0KCksIGNoaWxkcmVuOiAoX2IgPSBzdWJtaXR0ZXJPcHRpb25zID09PSBudWxsIHx8IHN1Ym1pdHRlck9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1Ym1pdHRlck9wdGlvbnMucmVzZXRUZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQucmVzZXQgfSwgJ3Jlc2V0JyksXG4gICAgICAgICAgICBfanN4KEJ1dHRvbiwgeyB0eXBlOiAnYnV0dG9uJywgc2V2ZXJpdHk6ICdzZWNvbmRhcnknLCBvbkNsaWNrOiB0b2dnbGVDb2xsYXBzZWQsIGNoaWxkcmVuOiBtZXJnZWRDb2xsYXBzZWQgPyBleHBhbmRUZXh0IDogY29sbGFwc2VUZXh0IH0sICdjb2xsYXBzZScpLFxuICAgICAgICBdO1xuICAgICAgICBpZiAoc3VibWl0dGVyT3B0aW9ucyA9PT0gbnVsbCB8fCBzdWJtaXR0ZXJPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdWJtaXR0ZXJPcHRpb25zLnJlbmRlcikge1xuICAgICAgICAgICAgcmV0dXJuIHN1Ym1pdHRlck9wdGlvbnMucmVuZGVyKHJlbmRlclByb3BzLCBjdXN0b21Eb20pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXN0b21Eb207XG4gICAgfSwgW1xuICAgICAgICBtZXJnZWRDb2xsYXBzZWQsXG4gICAgICAgIGV4cGFuZFRleHQsXG4gICAgICAgIGNvbGxhcHNlVGV4dCxcbiAgICAgICAgc3VibWl0dGVyT3B0aW9ucyA9PT0gbnVsbCB8fCBzdWJtaXR0ZXJPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdWJtaXR0ZXJPcHRpb25zLnN1Ym1pdFRleHQsXG4gICAgICAgIHN1Ym1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgc3VibWl0dGVyT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0dGVyT3B0aW9ucy5yZXNldFRleHQsXG4gICAgICAgIHN1Ym1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgc3VibWl0dGVyT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0dGVyT3B0aW9ucy5yZW5kZXIsXG4gICAgICAgIHRvZ2dsZUNvbGxhcHNlZCxcbiAgICBdKTtcbiAgICBjb25zdCBzdWJtaXR0ZXJDb25maWcgPSBzdWJtaXR0ZXJPcHRpb25zID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc3VibWl0dGVyT3B0aW9ucyksIHsgb25SZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXJPcHRpb25zLm9uUmVzZXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlck9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgICAgICAgICAgfSwgcmVuZGVyOiBzdWJtaXR0ZXJSZW5kZXIgfSk7XG4gICAgY29uc3QgcXVlcnlGb3JtUHJvcHMgPSBmb3JtUHJvcHM7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKHN0eWxlc1sncHJvZm9ybV9fcXVlcnktZmlsdGVyJ10sIGAke0NTU19QUkVGSVh9LXF1ZXJ5LWZpbHRlcmAsIHNwbGl0ICYmIHN0eWxlc1sncHJvZm9ybV9fcXVlcnktZmlsdGVyLXNwbGl0J10sIHNwbGl0ICYmIGAke0NTU19QUkVGSVh9LXF1ZXJ5LWZpbHRlci1zcGxpdGApLCBzdHlsZTogZmlsdGVyU3R5bGUsIGNoaWxkcmVuOiBfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIHF1ZXJ5Rm9ybVByb3BzLCB7IGxheW91dDogKF9jID0gZm9ybVByb3BzLmxheW91dCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJ2lubGluZScsIHN1Ym1pdHRlcjogc3VibWl0dGVyQ29uZmlnLCBjaGlsZHJlbjogdmlzaWJsZUNoaWxkcmVuIH0pKSB9KSk7XG59O1xuY29uc3QgTWVtb2l6ZWRRdWVyeUZpbHRlciA9IG1lbW8oUXVlcnlGaWx0ZXJCYXNlKTtcbk1lbW9pemVkUXVlcnlGaWx0ZXIuZGlzcGxheU5hbWUgPSAnUXVlcnlGaWx0ZXInO1xuZXhwb3J0IGNvbnN0IFF1ZXJ5RmlsdGVyID0gTWVtb2l6ZWRRdWVyeUZpbHRlcjtcbmV4cG9ydCBkZWZhdWx0IFF1ZXJ5RmlsdGVyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1,13 @@
1
+ import type { FC } from 'react';
2
+ import type { FieldValues } from 'react-hook-form';
3
+ import type { StepFormProps, StepsFormProps } from '../interface';
4
+ /**
5
+ * Wrapper component representing an individual step inside {@link StepsForm}.
6
+ * Does not render its own form — its children are rendered by the parent `StepsForm`.
7
+ */
8
+ export declare const StepForm: FC<StepFormProps<FieldValues>>;
9
+ type StepsFormComponent = FC<StepsFormProps<FieldValues>> & {
10
+ StepForm: FC<StepFormProps<FieldValues>>;
11
+ };
12
+ export declare const StepsForm: StepsFormComponent;
13
+ export default StepsForm;
@@ -0,0 +1,295 @@
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
+ var __rest = this && this.__rest || function (s, e) {
31
+ var t = {};
32
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
33
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
34
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
35
+ }
36
+ return t;
37
+ };
38
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
39
+ import { Children, isValidElement, memo, useCallback, useMemo, useRef, useState } from 'react';
40
+ import { joinCls } from '../../../utils/classnames';
41
+ import { Button } from '../../Button';
42
+ import useLatest from '../../useLatest';
43
+ import ProForm from '../ProForm';
44
+ import { CSS_PREFIX, DEFAULT_TEXT } from '../constants';
45
+ import styles from '../style/ProForm.module.scss';
46
+ /**
47
+ * Wrapper component representing an individual step inside {@link StepsForm}.
48
+ * Does not render its own form — its children are rendered by the parent `StepsForm`.
49
+ */
50
+ export var StepForm = function StepForm(props) {
51
+ return _jsx(_Fragment, {
52
+ children: props.children
53
+ });
54
+ };
55
+ /**
56
+ * Picks only safe HTML div attributes (`className`, `style`, `id`, `data-*`, `aria-*`)
57
+ * from a props object, filtering out component-specific props.
58
+ */
59
+ var pickHtmlDivProps = function pickHtmlDivProps(props) {
60
+ var result = {};
61
+ for (var _i = 0, _Object$keys = Object.keys(props); _i < _Object$keys.length; _i++) {
62
+ var key = _Object$keys[_i];
63
+ if (key === 'className' || key === 'style' || key === 'id' || key.startsWith('data-') || key.startsWith('aria-')) {
64
+ result[key] = props[key];
65
+ }
66
+ }
67
+ return result;
68
+ };
69
+ /**
70
+ * Multi-step wizard form that renders one step at a time, merging values
71
+ * from all steps and calling `onFinish` with the combined result on the final step.
72
+ *
73
+ * @example
74
+ * ```tsx
75
+ * <StepsForm onFinish={handleSubmit}>
76
+ * <StepsForm.StepForm title="Basic Info">
77
+ * <ProFormText name="name" label="Name" />
78
+ * </StepsForm.StepForm>
79
+ * <StepsForm.StepForm title="Details">
80
+ * <ProFormTextArea name="bio" label="Bio" />
81
+ * </StepsForm.StepForm>
82
+ * </StepsForm>
83
+ * ```
84
+ */
85
+ var StepsFormInner = function StepsFormInner(props) {
86
+ var _a;
87
+ var current = props.current,
88
+ onCurrentChange = props.onCurrentChange,
89
+ onFinish = props.onFinish,
90
+ stepsProps = props.stepsProps,
91
+ formProps = props.formProps,
92
+ submitter = props.submitter,
93
+ children = props.children;
94
+ var _useState = useState(0),
95
+ _useState2 = _slicedToArray(_useState, 2),
96
+ innerCurrent = _useState2[0],
97
+ setInnerCurrent = _useState2[1];
98
+ var _useState3 = useState({}),
99
+ _useState4 = _slicedToArray(_useState3, 2),
100
+ allValues = _useState4[0],
101
+ setAllValues = _useState4[1];
102
+ var allValuesRef = useRef({});
103
+ /** Tracks which step index each key was last submitted from. */
104
+ var keyStepMapRef = useRef(new Map());
105
+ var stepPanelRef = useRef(null);
106
+ var steps = useMemo(function () {
107
+ return Children.toArray(children).filter(isValidElement);
108
+ }, [children]);
109
+ var mergedCurrent = typeof current === 'number' ? current : innerCurrent;
110
+ var mergedCurrentRef = useLatest(mergedCurrent);
111
+ var activeStep = steps[mergedCurrent];
112
+ var setCurrent = useCallback(function (nextCurrent) {
113
+ // When navigating backward, clear accumulated values from steps after
114
+ // the target so stale data doesn't persist when the user changes answers.
115
+ if (nextCurrent < mergedCurrentRef.current) {
116
+ setAllValues(function (prev) {
117
+ var cleaned = Object.assign({}, prev);
118
+ keyStepMapRef.current.forEach(function (stepIndex, key) {
119
+ if (stepIndex > nextCurrent) {
120
+ delete cleaned[key];
121
+ }
122
+ });
123
+ allValuesRef.current = cleaned;
124
+ return cleaned;
125
+ });
126
+ }
127
+ if (current === undefined) {
128
+ setInnerCurrent(nextCurrent);
129
+ }
130
+ onCurrentChange === null || onCurrentChange === void 0 ? void 0 : onCurrentChange(nextCurrent);
131
+ }, [current, onCurrentChange]);
132
+ var handleStepFinish = useCallback(function (values) {
133
+ return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
134
+ var _a, _b, currentStep, stepResult, _i2, _Object$keys2, key, mergedValues, isLast;
135
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
136
+ while (1) switch (_context.prev = _context.next) {
137
+ case 0:
138
+ currentStep = steps[mergedCurrent];
139
+ _context.next = 3;
140
+ return (_b = (_a = currentStep === null || currentStep === void 0 ? void 0 : currentStep.props) === null || _a === void 0 ? void 0 : _a.onFinish) === null || _b === void 0 ? void 0 : _b.call(_a, values);
141
+ case 3:
142
+ stepResult = _context.sent;
143
+ if (!(stepResult === false)) {
144
+ _context.next = 6;
145
+ break;
146
+ }
147
+ return _context.abrupt("return");
148
+ case 6:
149
+ // Track which step each key was submitted from so backward navigation
150
+ // can selectively clear downstream step data.
151
+ for (_i2 = 0, _Object$keys2 = Object.keys(values); _i2 < _Object$keys2.length; _i2++) {
152
+ key = _Object$keys2[_i2];
153
+ keyStepMapRef.current.set(key, mergedCurrent);
154
+ }
155
+ mergedValues = Object.assign(Object.assign({}, allValuesRef.current), values);
156
+ allValuesRef.current = mergedValues;
157
+ setAllValues(mergedValues);
158
+ isLast = mergedCurrent >= steps.length - 1;
159
+ if (!isLast) {
160
+ _context.next = 15;
161
+ break;
162
+ }
163
+ _context.next = 14;
164
+ return onFinish === null || onFinish === void 0 ? void 0 : onFinish(mergedValues);
165
+ case 14:
166
+ return _context.abrupt("return");
167
+ case 15:
168
+ setCurrent(mergedCurrent + 1);
169
+ case 16:
170
+ case "end":
171
+ return _context.stop();
172
+ }
173
+ }, _callee);
174
+ }));
175
+ }, [mergedCurrent, onFinish, setCurrent, steps]);
176
+ var parentFormProps = formProps;
177
+ var _b = (_a = activeStep === null || activeStep === void 0 ? void 0 : activeStep.props) !== null && _a !== void 0 ? _a : {},
178
+ _b2 = _b,
179
+ title = _b2.title,
180
+ description = _b2.description,
181
+ stepProps = _b2.stepProps,
182
+ stepChildren = _b2.children,
183
+ stepFormProps = __rest(_b, ["title", "description", "stepProps", "children"]);
184
+ var activeStepFormProps = activeStep ? stepFormProps : undefined;
185
+ var stepsHtmlProps = pickHtmlDivProps(stepsProps || {});
186
+ var stepHtmlProps = pickHtmlDivProps(stepProps || {});
187
+ var mergedDefaultValues = useMemo(function () {
188
+ return Object.assign(Object.assign(Object.assign({}, parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.defaultValues), activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.defaultValues), allValues);
189
+ }, [activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.defaultValues, allValues, parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.defaultValues]);
190
+ var submitterConfig = submitter === false ? false : submitter || {};
191
+ var handlePrev = useCallback(function () {
192
+ var _a;
193
+ if (submitterConfig !== false) {
194
+ (_a = submitterConfig.onReset) === null || _a === void 0 ? void 0 : _a.call(submitterConfig);
195
+ }
196
+ if (mergedCurrent > 0) {
197
+ setCurrent(mergedCurrent - 1);
198
+ }
199
+ }, [mergedCurrent, setCurrent, submitterConfig]);
200
+ var handleSubmitClick = useCallback(function () {
201
+ var _a;
202
+ if (submitterConfig !== false) {
203
+ (_a = submitterConfig.onSubmit) === null || _a === void 0 ? void 0 : _a.call(submitterConfig);
204
+ }
205
+ }, [submitterConfig]);
206
+ var triggerStepSubmit = useCallback(function () {
207
+ var _a, _b;
208
+ if (submitterConfig !== false) {
209
+ (_a = submitterConfig.onSubmit) === null || _a === void 0 ? void 0 : _a.call(submitterConfig);
210
+ }
211
+ var formNode = (_b = stepPanelRef.current) === null || _b === void 0 ? void 0 : _b.querySelector('form');
212
+ if (!formNode) return;
213
+ if (typeof formNode.requestSubmit === 'function') {
214
+ formNode.requestSubmit();
215
+ return;
216
+ }
217
+ formNode.dispatchEvent(new Event('submit', {
218
+ bubbles: true,
219
+ cancelable: true
220
+ }));
221
+ }, [submitterConfig]);
222
+ var prevText = submitterConfig !== false && submitterConfig.prevText ? submitterConfig.prevText : DEFAULT_TEXT.previous;
223
+ var nextText = submitterConfig !== false && submitterConfig.nextText ? submitterConfig.nextText : DEFAULT_TEXT.next;
224
+ var submitText = submitterConfig !== false && submitterConfig.submitText ? submitterConfig.submitText : DEFAULT_TEXT.submit;
225
+ var isLastStep = mergedCurrent >= steps.length - 1;
226
+ var stepsClassNameRaw = stepsHtmlProps.className,
227
+ stepsRestHtml = __rest(stepsHtmlProps, ["className"]);
228
+ var stepClassNameRaw = stepHtmlProps.className,
229
+ stepRestHtml = __rest(stepHtmlProps, ["className"]);
230
+ var stepsClassName = typeof stepsClassNameRaw === 'string' ? stepsClassNameRaw : undefined;
231
+ var stepClassName = typeof stepClassNameRaw === 'string' ? stepClassNameRaw : undefined;
232
+ var renderedActions = useMemo(function () {
233
+ var _a, _b, _c, _d;
234
+ if (submitterConfig === false) return null;
235
+ var resetButtonProps = submitterConfig.resetButtonProps;
236
+ var submitButtonProps = submitterConfig.submitButtonProps;
237
+ var prevButton = mergedCurrent > 0 ? _jsx(Button, Object.assign({}, resetButtonProps, {
238
+ type: (_a = resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.type) !== null && _a !== void 0 ? _a : 'button',
239
+ severity: (_b = resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.severity) !== null && _b !== void 0 ? _b : 'secondary',
240
+ onClick: function onClick(event) {
241
+ var _a;
242
+ (_a = resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(resetButtonProps, event);
243
+ handlePrev();
244
+ },
245
+ children: prevText
246
+ }), 'prev') : null;
247
+ var nextButton = _jsx(Button, Object.assign({}, submitButtonProps, {
248
+ type: (_c = submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.type) !== null && _c !== void 0 ? _c : 'submit',
249
+ onClick: function onClick(event) {
250
+ var _a;
251
+ (_a = submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(submitButtonProps, event);
252
+ handleSubmitClick();
253
+ },
254
+ children: isLastStep ? submitText : nextText
255
+ }), 'submit');
256
+ var defaultDom = [prevButton, nextButton].filter(Boolean);
257
+ if (!submitterConfig.render) return defaultDom;
258
+ return submitterConfig.render({
259
+ form: (_d = activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.form) !== null && _d !== void 0 ? _d : parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.form,
260
+ submit: triggerStepSubmit,
261
+ reset: handlePrev
262
+ }, defaultDom);
263
+ }, [activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.form, handlePrev, handleSubmitClick, isLastStep, mergedCurrent, nextText, parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.form, prevText, submitText, submitterConfig, triggerStepSubmit]);
264
+ if (!activeStep) return null;
265
+ return _jsx("div", Object.assign({}, stepsRestHtml, {
266
+ className: joinCls("".concat(CSS_PREFIX, "-steps-form"), stepsClassName),
267
+ children: _jsxs("div", Object.assign({}, stepRestHtml, {
268
+ ref: stepPanelRef,
269
+ className: joinCls("".concat(CSS_PREFIX, "-steps-form-step"), stepClassName),
270
+ children: [title && _jsx("div", {
271
+ className: joinCls(styles['proform__steps-form-title'], "".concat(CSS_PREFIX, "-steps-form-title")),
272
+ children: title
273
+ }), description && _jsx("div", {
274
+ className: joinCls(styles['proform__steps-form-description'], "".concat(CSS_PREFIX, "-steps-form-description")),
275
+ children: description
276
+ }), _jsxs(ProForm, Object.assign({}, parentFormProps, activeStepFormProps, {
277
+ defaultValues: mergedDefaultValues,
278
+ submitter: false,
279
+ onFinish: handleStepFinish,
280
+ children: [stepChildren, renderedActions && _jsx("div", {
281
+ className: joinCls(styles['proform__steps-form-actions'], "".concat(CSS_PREFIX, "-steps-form-actions")),
282
+ children: renderedActions
283
+ })]
284
+ }), "step-".concat(mergedCurrent))]
285
+ }))
286
+ }));
287
+ };
288
+ StepsFormInner.displayName = 'StepsForm';
289
+ var StepsFormBase = /*#__PURE__*/memo(StepsFormInner);
290
+ // Type assertion required because memo() loses the static StepForm property type.
291
+ // We attach StepForm as a static property below, making this a compound component pattern.
292
+ export var StepsForm = StepsFormBase;
293
+ StepsForm.StepForm = StepForm;
294
+ export default StepsForm;
295
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1N0ZXBzRm9ybS5qcyIsImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvU3RlcHNGb3JtLnRzeCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJfX3Jlc3QiLCJzIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hpbGRyZW4iLCJpc1ZhbGlkRWxlbWVudCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImpvaW5DbHMiLCJCdXR0b24iLCJ1c2VMYXRlc3QiLCJQcm9Gb3JtIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsInN0eWxlcyIsIlN0ZXBGb3JtIiwicHJvcHMiLCJjaGlsZHJlbiIsInBpY2tIdG1sRGl2UHJvcHMiLCJfaSIsIl9PYmplY3Qka2V5cyIsImtleXMiLCJrZXkiLCJzdGFydHNXaXRoIiwiU3RlcHNGb3JtSW5uZXIiLCJfYSIsImN1cnJlbnQiLCJvbkN1cnJlbnRDaGFuZ2UiLCJvbkZpbmlzaCIsInN0ZXBzUHJvcHMiLCJmb3JtUHJvcHMiLCJzdWJtaXR0ZXIiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpbm5lckN1cnJlbnQiLCJzZXRJbm5lckN1cnJlbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImFsbFZhbHVlcyIsInNldEFsbFZhbHVlcyIsImFsbFZhbHVlc1JlZiIsImtleVN0ZXBNYXBSZWYiLCJNYXAiLCJzdGVwUGFuZWxSZWYiLCJzdGVwcyIsInRvQXJyYXkiLCJmaWx0ZXIiLCJtZXJnZWRDdXJyZW50IiwibWVyZ2VkQ3VycmVudFJlZiIsImFjdGl2ZVN0ZXAiLCJzZXRDdXJyZW50IiwibmV4dEN1cnJlbnQiLCJwcmV2IiwiY2xlYW5lZCIsImFzc2lnbiIsImZvckVhY2giLCJzdGVwSW5kZXgiLCJ1bmRlZmluZWQiLCJoYW5kbGVTdGVwRmluaXNoIiwidmFsdWVzIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX2IiLCJjdXJyZW50U3RlcCIsInN0ZXBSZXN1bHQiLCJfaTIiLCJfT2JqZWN0JGtleXMyIiwibWVyZ2VkVmFsdWVzIiwiaXNMYXN0Iiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJzZW50IiwiYWJydXB0Iiwic2V0Iiwic3RvcCIsInBhcmVudEZvcm1Qcm9wcyIsIl9iMiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJzdGVwUHJvcHMiLCJzdGVwQ2hpbGRyZW4iLCJzdGVwRm9ybVByb3BzIiwiYWN0aXZlU3RlcEZvcm1Qcm9wcyIsInN0ZXBzSHRtbFByb3BzIiwic3RlcEh0bWxQcm9wcyIsIm1lcmdlZERlZmF1bHRWYWx1ZXMiLCJkZWZhdWx0VmFsdWVzIiwic3VibWl0dGVyQ29uZmlnIiwiaGFuZGxlUHJldiIsIm9uUmVzZXQiLCJoYW5kbGVTdWJtaXRDbGljayIsIm9uU3VibWl0IiwidHJpZ2dlclN0ZXBTdWJtaXQiLCJmb3JtTm9kZSIsInF1ZXJ5U2VsZWN0b3IiLCJyZXF1ZXN0U3VibWl0IiwiZGlzcGF0Y2hFdmVudCIsIkV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJwcmV2VGV4dCIsInByZXZpb3VzIiwibmV4dFRleHQiLCJzdWJtaXRUZXh0Iiwic3VibWl0IiwiaXNMYXN0U3RlcCIsInN0ZXBzQ2xhc3NOYW1lUmF3IiwiY2xhc3NOYW1lIiwic3RlcHNSZXN0SHRtbCIsInN0ZXBDbGFzc05hbWVSYXciLCJzdGVwUmVzdEh0bWwiLCJzdGVwc0NsYXNzTmFtZSIsInN0ZXBDbGFzc05hbWUiLCJyZW5kZXJlZEFjdGlvbnMiLCJfYyIsIl9kIiwicmVzZXRCdXR0b25Qcm9wcyIsInN1Ym1pdEJ1dHRvblByb3BzIiwicHJldkJ1dHRvbiIsInR5cGUiLCJzZXZlcml0eSIsIm9uQ2xpY2siLCJldmVudCIsIm5leHRCdXR0b24iLCJkZWZhdWx0RG9tIiwiQm9vbGVhbiIsInJlbmRlciIsImZvcm0iLCJyZXNldCIsImNvbmNhdCIsInJlZiIsImRpc3BsYXlOYW1lIiwiU3RlcHNGb3JtQmFzZSIsIlN0ZXBzRm9ybSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDMUYsU0FBU0MsUUFBUUEsQ0FBQ1IsS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQ0UsS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUM3RixTQUFTRixJQUFJQSxDQUFDSSxNQUFNLEVBQUU7TUFBRUEsTUFBTSxDQUFDQyxJQUFJLEdBQUdULE9BQU8sQ0FBQ1EsTUFBTSxDQUFDVCxLQUFLLENBQUMsR0FBR0QsS0FBSyxDQUFDVSxNQUFNLENBQUNULEtBQUssQ0FBQyxDQUFDVyxJQUFJLENBQUNQLFNBQVMsRUFBRUksUUFBUSxDQUFDO0lBQUU7SUFDN0dILElBQUksQ0FBQyxDQUFDUCxTQUFTLEdBQUdBLFNBQVMsQ0FBQ2MsS0FBSyxDQUFDakIsT0FBTyxFQUFFQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUVVLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDekUsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUNELElBQUlPLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFUCxDQUFDLEVBQUU7RUFDbEQsSUFBSVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJRixDQUFDLEVBQUUsSUFBSUcsTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDTixDQUFDLEVBQUVFLENBQUMsQ0FBQyxJQUFJVCxDQUFDLENBQUNjLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0YsQ0FBQyxDQUFDRSxDQUFDLENBQUM7RUFDZixJQUFJRixDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9HLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1IsQ0FBQyxDQUFDLEVBQUVTLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUloQixDQUFDLENBQUNjLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNOLENBQUMsRUFBRUUsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdULENBQUMsQ0FBQ0UsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FBU1csUUFBUSxJQUFJQyxTQUFTLEVBQUVDLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNwQnJGLFNBQ0VDLFFBQVEsRUFDUkMsY0FBYyxFQUNkQyxJQUFJLEVBQ0pDLFdBQVcsRUFDWEMsT0FBTyxFQUNQQyxNQUFNLEVBQ05DLFFBQVEsUUFDSCxPQUFPO0FBQ2QsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxNQUFNLFFBQVEsY0FBYztBQUNyQyxPQUFPQyxTQUFTLE1BQU0saUJBQWlCO0FBQ3ZDLE9BQU9DLE9BQU8sTUFBTSxZQUFZO0FBQ2hDLFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxRQUFRLGNBQWM7QUFDdkQsT0FBT0MsTUFBTSxNQUFNLDhCQUE4QjtBQUtqRDtBRFVBO0FBQ0E7QUFDQTtBQ1JBLE9BQU8sSUFBTUMsUUFBUSxHQUFtQyxTQUEzQ0EsUUFBUUEsQ0FBb0NDLEtBQUssRUFBSTtFQUNoRSxPQUFPbEIsSUFBQSxDQUFBRixTQUFBLEVBQUE7SUFBQXFCLFFBQUEsRUFBR0QsS0FBSyxDQUFDQztFQUFRLENBQUEsQ0FBSTtBQUM5QixDQUFDO0FBTUQ7QURLQTtBQUNBO0FBQ0E7QUNIQSxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJRixLQUE4QixFQUE2QjtFQUNuRixJQUFNdEMsTUFBTSxHQUE0QixDQUFBLENBQUU7RUFDMUMsU0FBQXlDLEVBQUEsTUFBQUMsWUFBQSxHQUFrQmxDLE1BQU0sQ0FBQ21DLElBQUksQ0FBQ0wsS0FBSyxDQUFDLEVBQUFHLEVBQUEsR0FBQUMsWUFBQSxDQUFBM0IsTUFBQSxFQUFBMEIsRUFBQSxJQUFFO0lBQWpDLElBQU1HLEdBQUcsR0FBQUYsWUFBQSxDQUFBRCxFQUFBO0lBQ1osSUFBSUcsR0FBRyxLQUFLLFdBQVcsSUFBSUEsR0FBRyxLQUFLLE9BQU8sSUFBSUEsR0FBRyxLQUFLLElBQUksSUFBSUEsR0FBRyxDQUFDQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUlELEdBQUcsQ0FBQ0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO01BQ2hIN0MsTUFBTSxDQUFDNEMsR0FBRyxDQUFDLEdBQUdOLEtBQUssQ0FBQ00sR0FBRyxDQUFDO0lBQzFCO0VBQ0Y7RUFDQSxPQUFPNUMsTUFBTTtBQUNmLENBQUM7QUFFRDtBRElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ0ZBLElBQU04QyxjQUFjLEdBQW9DLFNBQWxEQSxjQUFjQSxDQUFxQ1IsS0FBSyxFQUFJO0VESTlELElBQUlTLEVBQUU7RUNIUixJQUNFQyxPQUFPLEdBT0xWLEtBQUssQ0FQUFUsT0FBTztJQUNQQyxlQUFlLEdBTWJYLEtBQUssQ0FOUFcsZUFBZTtJQUNmQyxRQUFRLEdBS05aLEtBQUssQ0FMUFksUUFBUTtJQUNSQyxVQUFVLEdBSVJiLEtBQUssQ0FKUGEsVUFBVTtJQUNWQyxTQUFTLEdBR1BkLEtBQUssQ0FIUGMsU0FBUztJQUNUQyxTQUFTLEdBRVBmLEtBQUssQ0FGUGUsU0FBUztJQUNUZCxRQUFRLEdBQ05ELEtBQUssQ0FEUEMsUUFBUTtFQUdWLElBQUFlLFNBQUEsR0FBd0N6QixRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQUEwQixVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUE1Q0csWUFBWSxHQUFBRixVQUFBO0lBQUVHLGVBQWUsR0FBQUgsVUFBQTtFQUNwQyxJQUFBSSxVQUFBLEdBQWtDOUIsUUFBUSxDQUEwQixDQUFBLENBQUUsQ0FBQztJQUFBK0IsVUFBQSxHQUFBSixjQUFBLENBQUFHLFVBQUE7SUFBaEVFLFNBQVMsR0FBQUQsVUFBQTtJQUFFRSxZQUFZLEdBQUFGLFVBQUE7RUFDOUIsSUFBTUcsWUFBWSxHQUFHbkMsTUFBTSxDQUEwQixDQUFBLENBQUUsQ0FBQztFQUN4RDtFQUNBLElBQU1vQyxhQUFhLEdBQUdwQyxNQUFNLENBQXNCLElBQUlxQyxHQUFHLENBQUEsQ0FBRSxDQUFDO0VBQzVELElBQU1DLFlBQVksR0FBR3RDLE1BQU0sQ0FBaUIsSUFBSSxDQUFDO0VBRWpELElBQU11QyxLQUFLLEdBQUd4QyxPQUFPLENBQUMsWUFBSztJQUN6QixPQUFPSixRQUFRLENBQUM2QyxPQUFPLENBQUM3QixRQUFRLENBQUMsQ0FBQzhCLE1BQU0sQ0FBQzdDLGNBQWMsQ0FBK0M7RUFDeEcsQ0FBQyxFQUFFLENBQUNlLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTStCLGFBQWEsR0FBRyxPQUFPdEIsT0FBTyxLQUFLLFFBQVEsR0FBR0EsT0FBTyxHQUFHUyxZQUFZO0VBQzFFLElBQU1jLGdCQUFnQixHQUFHdkMsU0FBUyxDQUFDc0MsYUFBYSxDQUFDO0VBQ2pELElBQU1FLFVBQVUsR0FBR0wsS0FBSyxDQUFDRyxhQUFhLENBQUM7RUFFdkMsSUFBTUcsVUFBVSxHQUFHL0MsV0FBVyxDQUFDLFVBQUNnRCxXQUFtQixFQUFJO0lBQ3JEO0lBQ0E7SUFDQSxJQUFJQSxXQUFXLEdBQUdILGdCQUFnQixDQUFDdkIsT0FBTyxFQUFFO01BQzFDYyxZQUFZLENBQUMsVUFBQWEsSUFBSSxFQUFHO1FBQ2xCLElBQU1DLE9BQU8sR0FBQXBFLE1BQUEsQ0FBQXFFLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBUUYsSUFBSSxDQUFFO1FBQzNCWCxhQUFhLENBQUNoQixPQUFPLENBQUM4QixPQUFPLENBQUMsVUFBQ0MsU0FBUyxFQUFFbkMsR0FBRyxFQUFJO1VBQy9DLElBQUltQyxTQUFTLEdBQUdMLFdBQVcsRUFBRTtZQUMzQixPQUFPRSxPQUFPLENBQUNoQyxHQUFHLENBQUM7VUFDckI7UUFDRixDQUFDLENBQUM7UUFDRm1CLFlBQVksQ0FBQ2YsT0FBTyxHQUFHNEIsT0FBTztRQUM5QixPQUFPQSxPQUFPO01BQ2hCLENBQUMsQ0FBQztJQUNKO0lBQ0EsSUFBSTVCLE9BQU8sS0FBS2dDLFNBQVMsRUFBRTtNQUN6QnRCLGVBQWUsQ0FBQ2dCLFdBQVcsQ0FBQztJQUM5QjtJQUNBekIsZUFBZSxLQUFBLElBQUEsSUFBZkEsZUFBZSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFmQSxlQUFlLENBQUd5QixXQUFXLENBQUM7RUFDaEMsQ0FBQyxFQUFFLENBQUMxQixPQUFPLEVBQUVDLGVBQWUsQ0FBQyxDQUFDO0VBRTlCLElBQU1nQyxnQkFBZ0IsR0FBR3ZELFdBQVcsQ0FBQyxVQUFPd0QsTUFBK0I7SUFBQSxPQUFJakcsU0FBQSxDQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxlQUFBa0csbUJBQUEsQ0FBQUMsSUFBQSxDQUFBLFNBQUFDLFFBQUE7TUFBQSxJQUFBdEMsRUFBQSxFQUFBdUMsRUFBQSxFQUFBQyxXQUFBLEVBQUFDLFVBQUEsRUFBQUMsR0FBQSxFQUFBQyxhQUFBLEVBQUE5QyxHQUFBLEVBQUErQyxZQUFBLEVBQUFDLE1BQUE7TUFBQSxPQUFBVCxtQkFBQSxDQUFBVSxJQUFBLFVBQUFDLFNBQUFDLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBcEIsSUFBQSxHQUFBb0IsUUFBQSxDQUFBbEcsSUFBQTtVQUFBO1lBQ3ZFMEYsV0FBVyxHQUFHcEIsS0FBSyxDQUFDRyxhQUFhLENBQUM7WUFBQXlCLFFBQUEsQ0FBQWxHLElBQUE7WUFDckIsT0FBTSxDQUFBeUYsRUFBQSxHQUFBLENBQUF2QyxFQUFBLEdBQUF3QyxXQUFXLEtBQUEsSUFBQSxJQUFYQSxXQUFXLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVhBLFdBQVcsQ0FBRWpELEtBQUssTUFBQSxJQUFBLElBQUFTLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFRyxRQUFRLE1BQUEsSUFBQSxJQUFBb0MsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUEzRSxJQUFBLENBQUFvQyxFQUFBLEVBQUdtQyxNQUFxQixDQUFDO1VBQUE7WUFBeEVNLFVBQVUsR0FBQU8sUUFBQSxDQUFBQyxJQUFBO1lBQUEsTUFDWlIsVUFBVSxLQUFLLEtBQUs7Y0FBQU8sUUFBQSxDQUFBbEcsSUFBQTtjQUFBO1lBQUE7WUFBQSxPQUFBa0csUUFBQSxDQUFBRSxNQUFBO1VBQUE7WUFFeEI7WUFDQTtZQUNBLEtBQUFSLEdBQUEsTUFBQUMsYUFBQSxHQUFrQmxGLE1BQU0sQ0FBQ21DLElBQUksQ0FBQ3VDLE1BQU0sQ0FBQyxFQUFBTyxHQUFBLEdBQUFDLGFBQUEsQ0FBQTNFLE1BQUEsRUFBQTBFLEdBQUEsSUFBRTtjQUE1QjdDLEdBQUcsR0FBQThDLGFBQUEsQ0FBQUQsR0FBQTtjQUNaekIsYUFBYSxDQUFDaEIsT0FBTyxDQUFDa0QsR0FBRyxDQUFDdEQsR0FBRyxFQUFFMEIsYUFBYSxDQUFDO1lBQy9DO1lBRU1xQixZQUFZLEdBQUFuRixNQUFBLENBQUFxRSxNQUFBLENBQUFyRSxNQUFBLENBQUFxRSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQVFkLFlBQVksQ0FBQ2YsT0FBTyxDQUFBLEVBQUtrQyxNQUFNLENBQUU7WUFDM0RuQixZQUFZLENBQUNmLE9BQU8sR0FBRzJDLFlBQVk7WUFDbkM3QixZQUFZLENBQUM2QixZQUFZLENBQUM7WUFFcEJDLE1BQU0sR0FBR3RCLGFBQWEsSUFBSUgsS0FBSyxDQUFDcEQsTUFBTSxHQUFHLENBQUM7WUFBQSxLQUM1QzZFLE1BQU07Y0FBQUcsUUFBQSxDQUFBbEcsSUFBQTtjQUFBO1lBQUE7WUFBQWtHLFFBQUEsQ0FBQWxHLElBQUE7WUFDUixPQUFNcUQsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLENBQUd5QyxZQUEyQixDQUFDO1VBQUE7WUFBQSxPQUFBSSxRQUFBLENBQUFFLE1BQUE7VUFBQTtZQUkvQ3hCLFVBQVUsQ0FBQ0gsYUFBYSxHQUFHLENBQUMsQ0FBQztVQUFDO1VBQUE7WUFBQSxPQUFBeUIsUUFBQSxDQUFBSSxJQUFBO1FBQUE7TUFBQSxHQUFBZCxPQUFBO0lBQUEsQ0FDL0IsRUFBQTtFQUFBLEdBQUUsQ0FBQ2YsYUFBYSxFQUFFcEIsUUFBUSxFQUFFdUIsVUFBVSxFQUFFTixLQUFLLENBQUMsQ0FBQztFQUVoRCxJQUFNaUMsZUFBZSxHQUFHaEQsU0FBMkQ7RUFDN0UsSUFBQWtDLEVBQUEsR0FNRCxDQUFBdkMsRUFBQSxHQUFBeUIsVUFBVSxLQUFBLElBQUEsSUFBVkEsVUFBVSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFWQSxVQUFVLENBQUVsQyxLQUFLLE1BQUEsSUFBQSxJQUFBUyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxDQUFBLENBQUU7SUFBQXNELEdBQUEsR0FGSmYsRUFFbUM7SUFMekRnQixLQUFLLEdBQUFELEdBQUEsQ0FBTEMsS0FBSztJQUNMQyxXQUFXLEdBQUFGLEdBQUEsQ0FBWEUsV0FBVztJQUNYQyxTQUFTLEdBQUFILEdBQUEsQ0FBVEcsU0FBUztJQUNDQyxZQUFZLEdBQUFKLEdBQUEsQ0FBdEI5RCxRQUFRO0lBQ0xtRSxhQUFhLEdBQUF0RyxNQUFBLENBQUFrRixFQUFBLEVBTFosQ0FBQSxPQUFBLEVBQUEsYUFBQSxFQUFBLFdBQUEsRUFBQSxVQUFBLENBTUwsQ0FBMEQ7RUFDM0QsSUFBTXFCLG1CQUFtQixHQUFHbkMsVUFBVSxHQUNqQ2tDLGFBQW9ELEdBQ3JEMUIsU0FBUztFQUViLElBQU00QixjQUFjLEdBQUdwRSxnQkFBZ0IsQ0FBRVcsVUFBVSxJQUFJLENBQUEsQ0FBOEIsQ0FBQztFQUN0RixJQUFNMEQsYUFBYSxHQUFHckUsZ0JBQWdCLENBQUVnRSxTQUFTLElBQUksQ0FBQSxDQUE4QixDQUFDO0VBRXBGLElBQU1NLG1CQUFtQixHQUFHbkYsT0FBTyxDQUFDO0lBQUEsT0FBTW5CLE1BQUEsQ0FBQXFFLE1BQUEsQ0FBQXJFLE1BQUEsQ0FBQXFFLE1BQUEsQ0FBQXJFLE1BQUEsQ0FBQXFFLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDckN1QixlQUFlLEtBQUEsSUFBQSxJQUFmQSxlQUFlLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWZBLGVBQWUsQ0FBRVcsYUFBYSxDQUFBLEVBQzlCSixtQkFBbUIsS0FBQSxJQUFBLElBQW5CQSxtQkFBbUIsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBbkJBLG1CQUFtQixDQUFFSSxhQUFhLENBQUEsRUFDbENsRCxTQUFTLENBQUE7RUFBQSxDQUNaLEVBQUUsQ0FBQzhDLG1CQUFtQixLQUFBLElBQUEsSUFBbkJBLG1CQUFtQixLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFuQkEsbUJBQW1CLENBQUVJLGFBQWEsRUFBRWxELFNBQVMsRUFBRXVDLGVBQWUsS0FBQSxJQUFBLElBQWZBLGVBQWUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBZkEsZUFBZSxDQUFFVyxhQUFhLENBQUMsQ0FBQztFQUNwRixJQUFNQyxlQUFlLEdBQUczRCxTQUFTLEtBQUssS0FBSyxHQUFHLEtBQUssR0FBSUEsU0FBUyxJQUFJLENBQUEsQ0FBRztFQUV2RSxJQUFNNEQsVUFBVSxHQUFHdkYsV0FBVyxDQUFDLFlBQUs7SUR4QjlCLElBQUlxQixFQUFFO0lDeUJWLElBQUlpRSxlQUFlLEtBQUssS0FBSyxFQUFFO01BQzdCLENBQUFqRSxFQUFBLEdBQUFpRSxlQUFlLENBQUNFLE9BQU8sTUFBQSxJQUFBLElBQUFuRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQXBDLElBQUEsQ0FBQXFHLGVBQUEsQ0FBSTtJQUM3QjtJQUNBLElBQUkxQyxhQUFhLEdBQUcsQ0FBQyxFQUFFO01BQ3JCRyxVQUFVLENBQUNILGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDL0I7RUFDRixDQUFDLEVBQUUsQ0FBQ0EsYUFBYSxFQUFFRyxVQUFVLEVBQUV1QyxlQUFlLENBQUMsQ0FBQztFQUVoRCxJQUFNRyxpQkFBaUIsR0FBR3pGLFdBQVcsQ0FBQyxZQUFLO0lEeEJyQyxJQUFJcUIsRUFBRTtJQ3lCVixJQUFJaUUsZUFBZSxLQUFLLEtBQUssRUFBRTtNQUM3QixDQUFBakUsRUFBQSxHQUFBaUUsZUFBZSxDQUFDSSxRQUFRLE1BQUEsSUFBQSxJQUFBckUsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUFwQyxJQUFBLENBQUFxRyxlQUFBLENBQUk7SUFDOUI7RUFDRixDQUFDLEVBQUUsQ0FBQ0EsZUFBZSxDQUFDLENBQUM7RUFFckIsSUFBTUssaUJBQWlCLEdBQUczRixXQUFXLENBQUMsWUFBSztJRHhCckMsSUFBSXFCLEVBQUUsRUFBRXVDLEVBQUU7SUN5QmQsSUFBSTBCLGVBQWUsS0FBSyxLQUFLLEVBQUU7TUFDN0IsQ0FBQWpFLEVBQUEsR0FBQWlFLGVBQWUsQ0FBQ0ksUUFBUSxNQUFBLElBQUEsSUFBQXJFLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBcEMsSUFBQSxDQUFBcUcsZUFBQSxDQUFJO0lBQzlCO0lBQ0EsSUFBTU0sUUFBUSxHQUFHLENBQUFoQyxFQUFBLEdBQUFwQixZQUFZLENBQUNsQixPQUFPLE1BQUEsSUFBQSxJQUFBc0MsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVpQyxhQUFhLENBQUMsTUFBTSxDQUFDO0lBQzVELElBQUksQ0FBQ0QsUUFBUSxFQUFFO0lBRWYsSUFBSSxPQUFPQSxRQUFRLENBQUNFLGFBQWEsS0FBSyxVQUFVLEVBQUU7TUFDaERGLFFBQVEsQ0FBQ0UsYUFBYSxDQUFBLENBQUU7TUFDeEI7SUFDRjtJQUVBRixRQUFRLENBQUNHLGFBQWEsQ0FBQyxJQUFJQyxLQUFLLENBQUMsUUFBUSxFQUFFO01BQUVDLE9BQU8sRUFBRSxJQUFJO01BQUVDLFVBQVUsRUFBRTtJQUFJLENBQUUsQ0FBQyxDQUFDO0VBQ2xGLENBQUMsRUFBRSxDQUFDWixlQUFlLENBQUMsQ0FBQztFQUVyQixJQUFNYSxRQUFRLEdBQUdiLGVBQWUsS0FBSyxLQUFLLElBQUlBLGVBQWUsQ0FBQ2EsUUFBUSxHQUNsRWIsZUFBZSxDQUFDYSxRQUFRLEdBQ3hCMUYsWUFBWSxDQUFDMkYsUUFBUTtFQUN6QixJQUFNQyxRQUFRLEdBQUdmLGVBQWUsS0FBSyxLQUFLLElBQUlBLGVBQWUsQ0FBQ2UsUUFBUSxHQUNsRWYsZUFBZSxDQUFDZSxRQUFRLEdBQ3hCNUYsWUFBWSxDQUFDdEMsSUFBSTtFQUNyQixJQUFNbUksVUFBVSxHQUFHaEIsZUFBZSxLQUFLLEtBQUssSUFBSUEsZUFBZSxDQUFDZ0IsVUFBVSxHQUN0RWhCLGVBQWUsQ0FBQ2dCLFVBQVUsR0FDMUI3RixZQUFZLENBQUM4RixNQUFNO0VBQ3ZCLElBQU1DLFVBQVUsR0FBRzVELGFBQWEsSUFBSUgsS0FBSyxDQUFDcEQsTUFBTSxHQUFHLENBQUM7RUFFOUMsSUFBYW9ILGlCQUFpQixHQUF1QnZCLGNBQWMsQ0FBakV3QixTQUFTO0lBQXdCQyxhQUFhLEdBQUFqSSxNQUFBLENBQUt3RyxjQUFjLEVBQW5FLENBQUEsV0FBQSxDQUFrRCxDQUFpQjtFQUNuRSxJQUFhMEIsZ0JBQWdCLEdBQXNCekIsYUFBYSxDQUE5RHVCLFNBQVM7SUFBdUJHLFlBQVksR0FBQW5JLE1BQUEsQ0FBS3lHLGFBQWEsRUFBaEUsQ0FBQSxXQUFBLENBQWdELENBQWdCO0VBQ3RFLElBQU0yQixjQUFjLEdBQUcsT0FBT0wsaUJBQWlCLEtBQUssUUFBUSxHQUFHQSxpQkFBaUIsR0FBR25ELFNBQVM7RUFDNUYsSUFBTXlELGFBQWEsR0FBRyxPQUFPSCxnQkFBZ0IsS0FBSyxRQUFRLEdBQUdBLGdCQUFnQixHQUFHdEQsU0FBUztFQUV6RixJQUFNMEQsZUFBZSxHQUFHL0csT0FBTyxDQUFZLFlBQUs7SUQzQjFDLElBQUlvQixFQUFFLEVBQUV1QyxFQUFFLEVBQUVxRCxFQUFFLEVBQUVDLEVBQUU7SUM0QnRCLElBQUk1QixlQUFlLEtBQUssS0FBSyxFQUFFLE9BQU8sSUFBSTtJQUUxQyxJQUFNNkIsZ0JBQWdCLEdBQUc3QixlQUFlLENBQUM2QixnQkFBZ0I7SUFDekQsSUFBTUMsaUJBQWlCLEdBQUc5QixlQUFlLENBQUM4QixpQkFBaUI7SUFFM0QsSUFBTUMsVUFBVSxHQUFHekUsYUFBYSxHQUFHLENBQUMsR0FFaENsRCxJQUFBLENBQUNXLE1BQU0sRUFBQXZCLE1BQUEsQ0FBQXFFLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFFRGdFLGdCQUFnQixFQUFBO01BQ3BCRyxJQUFJLEVBQUUsQ0FBQWpHLEVBQUEsR0FBQThGLGdCQUFnQixLQUFBLElBQUEsSUFBaEJBLGdCQUFnQixLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFoQkEsZ0JBQWdCLENBQUVHLElBQUksTUFBQSxJQUFBLElBQUFqRyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxRQUFRO01BQ3hDa0csUUFBUSxFQUFFLENBQUEzRCxFQUFBLEdBQUF1RCxnQkFBZ0IsS0FBQSxJQUFBLElBQWhCQSxnQkFBZ0IsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBaEJBLGdCQUFnQixDQUFFSSxRQUFRLE1BQUEsSUFBQSxJQUFBM0QsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksV0FBVztNQUNuRDRELE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFHQyxLQUFLLEVBQUk7UURqQ1QsSUFBSXBHLEVBQUU7UUNrQ2QsQ0FBQUEsRUFBQSxHQUFBOEYsZ0JBQWdCLEtBQUEsSUFBQSxJQUFoQkEsZ0JBQWdCLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWhCQSxnQkFBZ0IsQ0FBRUssT0FBTyxNQUFBLElBQUEsSUFBQW5HLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBcEMsSUFBQSxDQUFBa0ksZ0JBQUEsRUFBR00sS0FBSyxDQUFDO1FBQ2xDbEMsVUFBVSxDQUFBLENBQUU7TUFDZCxDQUFDO01BQUExRSxRQUFBLEVBRUFzRjtJQUFRLENBQUEsQ0FBQSxFQVRMLE1BQU0sQ0FVSCxHQUVULElBQUk7SUFFUixJQUFNdUIsVUFBVSxHQUNkaEksSUFBQSxDQUFDVyxNQUFNLEVBQUF2QixNQUFBLENBQUFxRSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBRURpRSxpQkFBaUIsRUFBQTtNQUNyQkUsSUFBSSxFQUFFLENBQUFMLEVBQUEsR0FBQUcsaUJBQWlCLEtBQUEsSUFBQSxJQUFqQkEsaUJBQWlCLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWpCQSxpQkFBaUIsQ0FBRUUsSUFBSSxNQUFBLElBQUEsSUFBQUwsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksUUFBUTtNQUN6Q08sT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUdDLEtBQUssRUFBSTtRRDFDWCxJQUFJcEcsRUFBRTtRQzJDWixDQUFBQSxFQUFBLEdBQUErRixpQkFBaUIsS0FBQSxJQUFBLElBQWpCQSxpQkFBaUIsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBakJBLGlCQUFpQixDQUFFSSxPQUFPLE1BQUEsSUFBQSxJQUFBbkcsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUFwQyxJQUFBLENBQUFtSSxpQkFBQSxFQUFHSyxLQUFLLENBQUM7UUFDbkNoQyxpQkFBaUIsQ0FBQSxDQUFFO01BQ3JCLENBQUM7TUFBQTVFLFFBQUEsRUFFQTJGLFVBQVUsR0FBR0YsVUFBVSxHQUFHRDtJQUFRLENBQUEsQ0FBQSxFQVIvQixRQUFRLENBVWY7SUFFRCxJQUFNc0IsVUFBVSxHQUFHLENBQUNOLFVBQVUsRUFBRUssVUFBVSxDQUFDLENBQUMvRSxNQUFNLENBQUNpRixPQUFPLENBQW1CO0lBQzdFLElBQUksQ0FBQ3RDLGVBQWUsQ0FBQ3VDLE1BQU0sRUFBRSxPQUFPRixVQUFVO0lBRTlDLE9BQU9yQyxlQUFlLENBQUN1QyxNQUFNLENBQUM7TUFDNUJDLElBQUksRUFBRSxDQUFBWixFQUFBLEdBQUFqQyxtQkFBbUIsS0FBQSxJQUFBLElBQW5CQSxtQkFBbUIsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBbkJBLG1CQUFtQixDQUFFNkMsSUFBSSxNQUFBLElBQUEsSUFBQVosRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUl4QyxlQUFlLEtBQUEsSUFBQSxJQUFmQSxlQUFlLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWZBLGVBQWUsQ0FBRW9ELElBQUk7TUFDeER2QixNQUFNLEVBQUVaLGlCQUFpQjtNQUN6Qm9DLEtBQUssRUFBRXhDO0lEOUNMLENDK0NILEVBQUVvQyxVQUFVLENBQUM7RUFDaEIsQ0FBQyxFQUFFLENBQ0QxQyxtQkFBbUIsS0FBQSxJQUFBLElBQW5CQSxtQkFBbUIsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBbkJBLG1CQUFtQixDQUFFNkMsSUFBSSxFQUN6QnZDLFVBQVUsRUFDVkUsaUJBQWlCLEVBQ2pCZSxVQUFVLEVBQ1Y1RCxhQUFhLEVBQ2J5RCxRQUFRLEVBQ1IzQixlQUFlLEtBQUEsSUFBQSxJQUFmQSxlQUFlLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWZBLGVBQWUsQ0FBRW9ELElBQUksRUFDckIzQixRQUFRLEVBQ1JHLFVBQVUsRUFDVmhCLGVBQWUsRUFDZkssaUJBQWlCLENBQ2xCLENBQUM7RUFFRixJQUFJLENBQUM3QyxVQUFVLEVBQUUsT0FBTyxJQUFJO0VBRTVCLE9BQ0VwRCxJQUFBLENBQUEsS0FBQSxFQUFBWixNQUFBLENBQUFxRSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ013RCxhQUFhLEVBQUE7SUFDakJELFNBQVMsRUFBRXRHLE9BQU8sSUFBQTRILE1BQUEsQ0FBSXhILFVBQVUsa0JBQWVzRyxjQUFjLENBQUM7SUFBQWpHLFFBQUEsRUFFOURqQixLQUFBLENBQUEsS0FBQSxFQUFBZCxNQUFBLENBQUFxRSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ00wRCxZQUFZLEVBQUE7TUFDaEJvQixHQUFHLEVBQUV6RixZQUFZO01BQ2pCa0UsU0FBUyxFQUFFdEcsT0FBTyxJQUFBNEgsTUFBQSxDQUFJeEgsVUFBVSx1QkFBb0J1RyxhQUFhLENBQUM7TUFBQWxHLFFBQUEsRUFBQSxDQUVqRStELEtBQUssSUFDSmxGLElBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS2dILFNBQVMsRUFBRXRHLE9BQU8sQ0FBQ00sTUFBTSxDQUFDLDJCQUEyQixDQUFDLEtBQUFzSCxNQUFBLENBQUt4SCxVQUFVLHNCQUFtQixDQUFDO1FBQUFLLFFBQUEsRUFDM0YrRDtNQUFLLENBQUEsQ0FFVCxFQUNBQyxXQUFXLElBQ1ZuRixJQUFBLENBQUEsS0FBQSxFQUFBO1FBQUtnSCxTQUFTLEVBQUV0RyxPQUFPLENBQUNNLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFBc0gsTUFBQSxDQUFLeEgsVUFBVSw0QkFBeUIsQ0FBQztRQUFBSyxRQUFBLEVBQ3ZHZ0U7TUFBVyxDQUFBLENBRWYsRUFDRGpGLEtBQUEsQ0FBQ1csT0FBTyxFQUFBekIsTUFBQSxDQUFBcUUsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUVGdUIsZUFBZSxFQUNmTyxtQkFBbUIsRUFBQTtRQUN2QkksYUFBYSxFQUFFRCxtQkFBbUI7UUFDbEN6RCxTQUFTLEVBQUUsS0FBSztRQUNoQkgsUUFBUSxFQUFFK0IsZ0JBQWdCO1FBQUExQyxRQUFBLEVBQUEsQ0FFekJrRSxZQUFZLEVBQ1ppQyxlQUFlLElBQ2R0SCxJQUFBLENBQUEsS0FBQSxFQUFBO1VBQUtnSCxTQUFTLEVBQUV0RyxPQUFPLENBQUNNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxLQUFBc0gsTUFBQSxDQUFLeEgsVUFBVSx3QkFBcUIsQ0FBQztVQUFBSyxRQUFBLEVBQy9GbUc7UUFBZSxDQUFBLENBRW5CO01BQUEsQ0FBQSxDQUFBLFVBQUFnQixNQUFBLENBWllwRixhQUFhLENBQUUsQ0FhcEI7SUFBQSxDQUFBLENBQUE7RUFDTixDQUFBLENBQUEsQ0FDRjtBQUVWLENBQUM7QUFFRHhCLGNBQWMsQ0FBQzhHLFdBQVcsR0FBRyxXQUFXO0FBRXhDLElBQU1DLGFBQWEsZ0JBQUdwSSxJQUFJLENBQUNxQixjQUFjLENBQUM7QUFFMUM7QUFDQTtBQUNBLE9BQU8sSUFBTWdILFNBQVMsR0FBR0QsYUFBOEM7QUFDdkVDLFNBQVMsQ0FBQ3pILFFBQVEsR0FBR0EsUUFBUTtBQUU3QixlQUFleUgsU0FBUyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9TdGVwc0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IENoaWxkcmVuLCBpc1ZhbGlkRWxlbWVudCwgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vLi4vQnV0dG9uJztcbmltcG9ydCB1c2VMYXRlc3QgZnJvbSAnLi4vLi4vdXNlTGF0ZXN0JztcbmltcG9ydCBQcm9Gb3JtIGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vc3R5bGUvUHJvRm9ybS5tb2R1bGUuc2Nzcyc7XG4vKipcbiAqIFdyYXBwZXIgY29tcG9uZW50IHJlcHJlc2VudGluZyBhbiBpbmRpdmlkdWFsIHN0ZXAgaW5zaWRlIHtAbGluayBTdGVwc0Zvcm19LlxuICogRG9lcyBub3QgcmVuZGVyIGl0cyBvd24gZm9ybSDigJQgaXRzIGNoaWxkcmVuIGFyZSByZW5kZXJlZCBieSB0aGUgcGFyZW50IGBTdGVwc0Zvcm1gLlxuICovXG5leHBvcnQgY29uc3QgU3RlcEZvcm0gPSAocHJvcHMpID0+IHtcbiAgICByZXR1cm4gX2pzeChfRnJhZ21lbnQsIHsgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pO1xufTtcbi8qKlxuICogUGlja3Mgb25seSBzYWZlIEhUTUwgZGl2IGF0dHJpYnV0ZXMgKGBjbGFzc05hbWVgLCBgc3R5bGVgLCBgaWRgLCBgZGF0YS0qYCwgYGFyaWEtKmApXG4gKiBmcm9tIGEgcHJvcHMgb2JqZWN0LCBmaWx0ZXJpbmcgb3V0IGNvbXBvbmVudC1zcGVjaWZpYyBwcm9wcy5cbiAqL1xuY29uc3QgcGlja0h0bWxEaXZQcm9wcyA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuICAgICAgICBpZiAoa2V5ID09PSAnY2xhc3NOYW1lJyB8fCBrZXkgPT09ICdzdHlsZScgfHwga2V5ID09PSAnaWQnIHx8IGtleS5zdGFydHNXaXRoKCdkYXRhLScpIHx8IGtleS5zdGFydHNXaXRoKCdhcmlhLScpKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHByb3BzW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG4vKipcbiAqIE11bHRpLXN0ZXAgd2l6YXJkIGZvcm0gdGhhdCByZW5kZXJzIG9uZSBzdGVwIGF0IGEgdGltZSwgbWVyZ2luZyB2YWx1ZXNcbiAqIGZyb20gYWxsIHN0ZXBzIGFuZCBjYWxsaW5nIGBvbkZpbmlzaGAgd2l0aCB0aGUgY29tYmluZWQgcmVzdWx0IG9uIHRoZSBmaW5hbCBzdGVwLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIDxTdGVwc0Zvcm0gb25GaW5pc2g9e2hhbmRsZVN1Ym1pdH0+XG4gKiAgIDxTdGVwc0Zvcm0uU3RlcEZvcm0gdGl0bGU9XCJCYXNpYyBJbmZvXCI+XG4gKiAgICAgPFByb0Zvcm1UZXh0IG5hbWU9XCJuYW1lXCIgbGFiZWw9XCJOYW1lXCIgLz5cbiAqICAgPC9TdGVwc0Zvcm0uU3RlcEZvcm0+XG4gKiAgIDxTdGVwc0Zvcm0uU3RlcEZvcm0gdGl0bGU9XCJEZXRhaWxzXCI+XG4gKiAgICAgPFByb0Zvcm1UZXh0QXJlYSBuYW1lPVwiYmlvXCIgbGFiZWw9XCJCaW9cIiAvPlxuICogICA8L1N0ZXBzRm9ybS5TdGVwRm9ybT5cbiAqIDwvU3RlcHNGb3JtPlxuICogYGBgXG4gKi9cbmNvbnN0IFN0ZXBzRm9ybUlubmVyID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgY3VycmVudCwgb25DdXJyZW50Q2hhbmdlLCBvbkZpbmlzaCwgc3RlcHNQcm9wcywgZm9ybVByb3BzLCBzdWJtaXR0ZXIsIGNoaWxkcmVuLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgW2lubmVyQ3VycmVudCwgc2V0SW5uZXJDdXJyZW50XSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFthbGxWYWx1ZXMsIHNldEFsbFZhbHVlc10gPSB1c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgYWxsVmFsdWVzUmVmID0gdXNlUmVmKHt9KTtcbiAgICAvKiogVHJhY2tzIHdoaWNoIHN0ZXAgaW5kZXggZWFjaCBrZXkgd2FzIGxhc3Qgc3VibWl0dGVkIGZyb20uICovXG4gICAgY29uc3Qga2V5U3RlcE1hcFJlZiA9IHVzZVJlZihuZXcgTWFwKCkpO1xuICAgIGNvbnN0IHN0ZXBQYW5lbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzdGVwcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikuZmlsdGVyKGlzVmFsaWRFbGVtZW50KTtcbiAgICB9LCBbY2hpbGRyZW5dKTtcbiAgICBjb25zdCBtZXJnZWRDdXJyZW50ID0gdHlwZW9mIGN1cnJlbnQgPT09ICdudW1iZXInID8gY3VycmVudCA6IGlubmVyQ3VycmVudDtcbiAgICBjb25zdCBtZXJnZWRDdXJyZW50UmVmID0gdXNlTGF0ZXN0KG1lcmdlZEN1cnJlbnQpO1xuICAgIGNvbnN0IGFjdGl2ZVN0ZXAgPSBzdGVwc1ttZXJnZWRDdXJyZW50XTtcbiAgICBjb25zdCBzZXRDdXJyZW50ID0gdXNlQ2FsbGJhY2soKG5leHRDdXJyZW50KSA9PiB7XG4gICAgICAgIC8vIFdoZW4gbmF2aWdhdGluZyBiYWNrd2FyZCwgY2xlYXIgYWNjdW11bGF0ZWQgdmFsdWVzIGZyb20gc3RlcHMgYWZ0ZXJcbiAgICAgICAgLy8gdGhlIHRhcmdldCBzbyBzdGFsZSBkYXRhIGRvZXNuJ3QgcGVyc2lzdCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgYW5zd2Vycy5cbiAgICAgICAgaWYgKG5leHRDdXJyZW50IDwgbWVyZ2VkQ3VycmVudFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBzZXRBbGxWYWx1ZXMocHJldiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xlYW5lZCA9IE9iamVjdC5hc3NpZ24oe30sIHByZXYpO1xuICAgICAgICAgICAgICAgIGtleVN0ZXBNYXBSZWYuY3VycmVudC5mb3JFYWNoKChzdGVwSW5kZXgsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RlcEluZGV4ID4gbmV4dEN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBjbGVhbmVkW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBhbGxWYWx1ZXNSZWYuY3VycmVudCA9IGNsZWFuZWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNsZWFuZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3VycmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRJbm5lckN1cnJlbnQobmV4dEN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIG9uQ3VycmVudENoYW5nZSA9PT0gbnVsbCB8fCBvbkN1cnJlbnRDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ3VycmVudENoYW5nZShuZXh0Q3VycmVudCk7XG4gICAgfSwgW2N1cnJlbnQsIG9uQ3VycmVudENoYW5nZV0pO1xuICAgIGNvbnN0IGhhbmRsZVN0ZXBGaW5pc2ggPSB1c2VDYWxsYmFjaygodmFsdWVzKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXAgPSBzdGVwc1ttZXJnZWRDdXJyZW50XTtcbiAgICAgICAgY29uc3Qgc3RlcFJlc3VsdCA9IHlpZWxkICgoX2IgPSAoX2EgPSBjdXJyZW50U3RlcCA9PT0gbnVsbCB8fCBjdXJyZW50U3RlcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VycmVudFN0ZXAucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkZpbmlzaCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIHZhbHVlcykpO1xuICAgICAgICBpZiAoc3RlcFJlc3VsdCA9PT0gZmFsc2UpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vIFRyYWNrIHdoaWNoIHN0ZXAgZWFjaCBrZXkgd2FzIHN1Ym1pdHRlZCBmcm9tIHNvIGJhY2t3YXJkIG5hdmlnYXRpb25cbiAgICAgICAgLy8gY2FuIHNlbGVjdGl2ZWx5IGNsZWFyIGRvd25zdHJlYW0gc3RlcCBkYXRhLlxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZXMpKSB7XG4gICAgICAgICAgICBrZXlTdGVwTWFwUmVmLmN1cnJlbnQuc2V0KGtleSwgbWVyZ2VkQ3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWVyZ2VkVmFsdWVzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhbGxWYWx1ZXNSZWYuY3VycmVudCksIHZhbHVlcyk7XG4gICAgICAgIGFsbFZhbHVlc1JlZi5jdXJyZW50ID0gbWVyZ2VkVmFsdWVzO1xuICAgICAgICBzZXRBbGxWYWx1ZXMobWVyZ2VkVmFsdWVzKTtcbiAgICAgICAgY29uc3QgaXNMYXN0ID0gbWVyZ2VkQ3VycmVudCA+PSBzdGVwcy5sZW5ndGggLSAxO1xuICAgICAgICBpZiAoaXNMYXN0KSB7XG4gICAgICAgICAgICB5aWVsZCAob25GaW5pc2ggPT09IG51bGwgfHwgb25GaW5pc2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoKG1lcmdlZFZhbHVlcykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEN1cnJlbnQobWVyZ2VkQ3VycmVudCArIDEpO1xuICAgIH0pLCBbbWVyZ2VkQ3VycmVudCwgb25GaW5pc2gsIHNldEN1cnJlbnQsIHN0ZXBzXSk7XG4gICAgY29uc3QgcGFyZW50Rm9ybVByb3BzID0gZm9ybVByb3BzO1xuICAgIGNvbnN0IF9iID0gKChfYSA9IGFjdGl2ZVN0ZXAgPT09IG51bGwgfHwgYWN0aXZlU3RlcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aXZlU3RlcC5wcm9wcykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDoge30pLCB7IHRpdGxlLCBkZXNjcmlwdGlvbiwgc3RlcFByb3BzLCBjaGlsZHJlbjogc3RlcENoaWxkcmVuIH0gPSBfYiwgc3RlcEZvcm1Qcm9wcyA9IF9fcmVzdChfYiwgW1widGl0bGVcIiwgXCJkZXNjcmlwdGlvblwiLCBcInN0ZXBQcm9wc1wiLCBcImNoaWxkcmVuXCJdKTtcbiAgICBjb25zdCBhY3RpdmVTdGVwRm9ybVByb3BzID0gYWN0aXZlU3RlcFxuICAgICAgICA/IHN0ZXBGb3JtUHJvcHNcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc3RlcHNIdG1sUHJvcHMgPSBwaWNrSHRtbERpdlByb3BzKChzdGVwc1Byb3BzIHx8IHt9KSk7XG4gICAgY29uc3Qgc3RlcEh0bWxQcm9wcyA9IHBpY2tIdG1sRGl2UHJvcHMoKHN0ZXBQcm9wcyB8fCB7fSkpO1xuICAgIGNvbnN0IG1lcmdlZERlZmF1bHRWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcGFyZW50Rm9ybVByb3BzID09PSBudWxsIHx8IHBhcmVudEZvcm1Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyZW50Rm9ybVByb3BzLmRlZmF1bHRWYWx1ZXMpLCBhY3RpdmVTdGVwRm9ybVByb3BzID09PSBudWxsIHx8IGFjdGl2ZVN0ZXBGb3JtUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFjdGl2ZVN0ZXBGb3JtUHJvcHMuZGVmYXVsdFZhbHVlcyksIGFsbFZhbHVlcykpLCBbYWN0aXZlU3RlcEZvcm1Qcm9wcyA9PT0gbnVsbCB8fCBhY3RpdmVTdGVwRm9ybVByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3RpdmVTdGVwRm9ybVByb3BzLmRlZmF1bHRWYWx1ZXMsIGFsbFZhbHVlcywgcGFyZW50Rm9ybVByb3BzID09PSBudWxsIHx8IHBhcmVudEZvcm1Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyZW50Rm9ybVByb3BzLmRlZmF1bHRWYWx1ZXNdKTtcbiAgICBjb25zdCBzdWJtaXR0ZXJDb25maWcgPSBzdWJtaXR0ZXIgPT09IGZhbHNlID8gZmFsc2UgOiAoc3VibWl0dGVyIHx8IHt9KTtcbiAgICBjb25zdCBoYW5kbGVQcmV2ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChzdWJtaXR0ZXJDb25maWcgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXJDb25maWcub25SZXNldCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0dGVyQ29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVyZ2VkQ3VycmVudCA+IDApIHtcbiAgICAgICAgICAgIHNldEN1cnJlbnQobWVyZ2VkQ3VycmVudCAtIDEpO1xuICAgICAgICB9XG4gICAgfSwgW21lcmdlZEN1cnJlbnQsIHNldEN1cnJlbnQsIHN1Ym1pdHRlckNvbmZpZ10pO1xuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdENsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChzdWJtaXR0ZXJDb25maWcgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXJDb25maWcub25TdWJtaXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlckNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9LCBbc3VibWl0dGVyQ29uZmlnXSk7XG4gICAgY29uc3QgdHJpZ2dlclN0ZXBTdWJtaXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChzdWJtaXR0ZXJDb25maWcgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXJDb25maWcub25TdWJtaXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlckNvbmZpZyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9ybU5vZGUgPSAoX2IgPSBzdGVwUGFuZWxSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnF1ZXJ5U2VsZWN0b3IoJ2Zvcm0nKTtcbiAgICAgICAgaWYgKCFmb3JtTm9kZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtTm9kZS5yZXF1ZXN0U3VibWl0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBmb3JtTm9kZS5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9ybU5vZGUuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3N1Ym1pdCcsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gICAgfSwgW3N1Ym1pdHRlckNvbmZpZ10pO1xuICAgIGNvbnN0IHByZXZUZXh0ID0gc3VibWl0dGVyQ29uZmlnICE9PSBmYWxzZSAmJiBzdWJtaXR0ZXJDb25maWcucHJldlRleHRcbiAgICAgICAgPyBzdWJtaXR0ZXJDb25maWcucHJldlRleHRcbiAgICAgICAgOiBERUZBVUxUX1RFWFQucHJldmlvdXM7XG4gICAgY29uc3QgbmV4dFRleHQgPSBzdWJtaXR0ZXJDb25maWcgIT09IGZhbHNlICYmIHN1Ym1pdHRlckNvbmZpZy5uZXh0VGV4dFxuICAgICAgICA/IHN1Ym1pdHRlckNvbmZpZy5uZXh0VGV4dFxuICAgICAgICA6IERFRkFVTFRfVEVYVC5uZXh0O1xuICAgIGNvbnN0IHN1Ym1pdFRleHQgPSBzdWJtaXR0ZXJDb25maWcgIT09IGZhbHNlICYmIHN1Ym1pdHRlckNvbmZpZy5zdWJtaXRUZXh0XG4gICAgICAgID8gc3VibWl0dGVyQ29uZmlnLnN1Ym1pdFRleHRcbiAgICAgICAgOiBERUZBVUxUX1RFWFQuc3VibWl0O1xuICAgIGNvbnN0IGlzTGFzdFN0ZXAgPSBtZXJnZWRDdXJyZW50ID49IHN0ZXBzLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgeyBjbGFzc05hbWU6IHN0ZXBzQ2xhc3NOYW1lUmF3IH0gPSBzdGVwc0h0bWxQcm9wcywgc3RlcHNSZXN0SHRtbCA9IF9fcmVzdChzdGVwc0h0bWxQcm9wcywgW1wiY2xhc3NOYW1lXCJdKTtcbiAgICBjb25zdCB7IGNsYXNzTmFtZTogc3RlcENsYXNzTmFtZVJhdyB9ID0gc3RlcEh0bWxQcm9wcywgc3RlcFJlc3RIdG1sID0gX19yZXN0KHN0ZXBIdG1sUHJvcHMsIFtcImNsYXNzTmFtZVwiXSk7XG4gICAgY29uc3Qgc3RlcHNDbGFzc05hbWUgPSB0eXBlb2Ygc3RlcHNDbGFzc05hbWVSYXcgPT09ICdzdHJpbmcnID8gc3RlcHNDbGFzc05hbWVSYXcgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc3RlcENsYXNzTmFtZSA9IHR5cGVvZiBzdGVwQ2xhc3NOYW1lUmF3ID09PSAnc3RyaW5nJyA/IHN0ZXBDbGFzc05hbWVSYXcgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcmVuZGVyZWRBY3Rpb25zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKHN1Ym1pdHRlckNvbmZpZyA9PT0gZmFsc2UpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY29uc3QgcmVzZXRCdXR0b25Qcm9wcyA9IHN1Ym1pdHRlckNvbmZpZy5yZXNldEJ1dHRvblByb3BzO1xuICAgICAgICBjb25zdCBzdWJtaXRCdXR0b25Qcm9wcyA9IHN1Ym1pdHRlckNvbmZpZy5zdWJtaXRCdXR0b25Qcm9wcztcbiAgICAgICAgY29uc3QgcHJldkJ1dHRvbiA9IG1lcmdlZEN1cnJlbnQgPiAwXG4gICAgICAgICAgICA/IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzZXRCdXR0b25Qcm9wcywgeyB0eXBlOiAoX2EgPSByZXNldEJ1dHRvblByb3BzID09PSBudWxsIHx8IHJlc2V0QnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc2V0QnV0dG9uUHJvcHMudHlwZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ2J1dHRvbicsIHNldmVyaXR5OiAoX2IgPSByZXNldEJ1dHRvblByb3BzID09PSBudWxsIHx8IHJlc2V0QnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc2V0QnV0dG9uUHJvcHMuc2V2ZXJpdHkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICdzZWNvbmRhcnknLCBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSByZXNldEJ1dHRvblByb3BzID09PSBudWxsIHx8IHJlc2V0QnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc2V0QnV0dG9uUHJvcHMub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwocmVzZXRCdXR0b25Qcm9wcywgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVQcmV2KCk7XG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IHByZXZUZXh0IH0pLCAncHJldicpKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICBjb25zdCBuZXh0QnV0dG9uID0gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHt9LCBzdWJtaXRCdXR0b25Qcm9wcywgeyB0eXBlOiAoX2MgPSBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0QnV0dG9uUHJvcHMudHlwZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJ3N1Ym1pdCcsIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0QnV0dG9uUHJvcHMub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0QnV0dG9uUHJvcHMsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTdWJtaXRDbGljaygpO1xuICAgICAgICAgICAgfSwgY2hpbGRyZW46IGlzTGFzdFN0ZXAgPyBzdWJtaXRUZXh0IDogbmV4dFRleHQgfSksICdzdWJtaXQnKSk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHREb20gPSBbcHJldkJ1dHRvbiwgbmV4dEJ1dHRvbl0uZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICBpZiAoIXN1Ym1pdHRlckNvbmZpZy5yZW5kZXIpXG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdERvbTtcbiAgICAgICAgcmV0dXJuIHN1Ym1pdHRlckNvbmZpZy5yZW5kZXIoe1xuICAgICAgICAgICAgZm9ybTogKF9kID0gYWN0aXZlU3RlcEZvcm1Qcm9wcyA9PT0gbnVsbCB8fCBhY3RpdmVTdGVwRm9ybVByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3RpdmVTdGVwRm9ybVByb3BzLmZvcm0pICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IHBhcmVudEZvcm1Qcm9wcyA9PT0gbnVsbCB8fCBwYXJlbnRGb3JtUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmVudEZvcm1Qcm9wcy5mb3JtLFxuICAgICAgICAgICAgc3VibWl0OiB0cmlnZ2VyU3RlcFN1Ym1pdCxcbiAgICAgICAgICAgIHJlc2V0OiBoYW5kbGVQcmV2LFxuICAgICAgICB9LCBkZWZhdWx0RG9tKTtcbiAgICB9LCBbXG4gICAgICAgIGFjdGl2ZVN0ZXBGb3JtUHJvcHMgPT09IG51bGwgfHwgYWN0aXZlU3RlcEZvcm1Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aXZlU3RlcEZvcm1Qcm9wcy5mb3JtLFxuICAgICAgICBoYW5kbGVQcmV2LFxuICAgICAgICBoYW5kbGVTdWJtaXRDbGljayxcbiAgICAgICAgaXNMYXN0U3RlcCxcbiAgICAgICAgbWVyZ2VkQ3VycmVudCxcbiAgICAgICAgbmV4dFRleHQsXG4gICAgICAgIHBhcmVudEZvcm1Qcm9wcyA9PT0gbnVsbCB8fCBwYXJlbnRGb3JtUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmVudEZvcm1Qcm9wcy5mb3JtLFxuICAgICAgICBwcmV2VGV4dCxcbiAgICAgICAgc3VibWl0VGV4dCxcbiAgICAgICAgc3VibWl0dGVyQ29uZmlnLFxuICAgICAgICB0cmlnZ2VyU3RlcFN1Ym1pdCxcbiAgICBdKTtcbiAgICBpZiAoIWFjdGl2ZVN0ZXApXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBzdGVwc1Jlc3RIdG1sLCB7IGNsYXNzTmFtZTogam9pbkNscyhgJHtDU1NfUFJFRklYfS1zdGVwcy1mb3JtYCwgc3RlcHNDbGFzc05hbWUpLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgc3RlcFJlc3RIdG1sLCB7IHJlZjogc3RlcFBhbmVsUmVmLCBjbGFzc05hbWU6IGpvaW5DbHMoYCR7Q1NTX1BSRUZJWH0tc3RlcHMtZm9ybS1zdGVwYCwgc3RlcENsYXNzTmFtZSksIGNoaWxkcmVuOiBbdGl0bGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGpvaW5DbHMoc3R5bGVzWydwcm9mb3JtX19zdGVwcy1mb3JtLXRpdGxlJ10sIGAke0NTU19QUkVGSVh9LXN0ZXBzLWZvcm0tdGl0bGVgKSwgY2hpbGRyZW46IHRpdGxlIH0pKSwgZGVzY3JpcHRpb24gJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGpvaW5DbHMoc3R5bGVzWydwcm9mb3JtX19zdGVwcy1mb3JtLWRlc2NyaXB0aW9uJ10sIGAke0NTU19QUkVGSVh9LXN0ZXBzLWZvcm0tZGVzY3JpcHRpb25gKSwgY2hpbGRyZW46IGRlc2NyaXB0aW9uIH0pKSwgX2pzeHMoUHJvRm9ybSwgT2JqZWN0LmFzc2lnbih7fSwgcGFyZW50Rm9ybVByb3BzLCBhY3RpdmVTdGVwRm9ybVByb3BzLCB7IGRlZmF1bHRWYWx1ZXM6IG1lcmdlZERlZmF1bHRWYWx1ZXMsIHN1Ym1pdHRlcjogZmFsc2UsIG9uRmluaXNoOiBoYW5kbGVTdGVwRmluaXNoLCBjaGlsZHJlbjogW3N0ZXBDaGlsZHJlbiwgcmVuZGVyZWRBY3Rpb25zICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKHN0eWxlc1sncHJvZm9ybV9fc3RlcHMtZm9ybS1hY3Rpb25zJ10sIGAke0NTU19QUkVGSVh9LXN0ZXBzLWZvcm0tYWN0aW9uc2ApLCBjaGlsZHJlbjogcmVuZGVyZWRBY3Rpb25zIH0pKV0gfSksIGBzdGVwLSR7bWVyZ2VkQ3VycmVudH1gKV0gfSkpIH0pKSk7XG59O1xuU3RlcHNGb3JtSW5uZXIuZGlzcGxheU5hbWUgPSAnU3RlcHNGb3JtJztcbmNvbnN0IFN0ZXBzRm9ybUJhc2UgPSBtZW1vKFN0ZXBzRm9ybUlubmVyKTtcbi8vIFR5cGUgYXNzZXJ0aW9uIHJlcXVpcmVkIGJlY2F1c2UgbWVtbygpIGxvc2VzIHRoZSBzdGF0aWMgU3RlcEZvcm0gcHJvcGVydHkgdHlwZS5cbi8vIFdlIGF0dGFjaCBTdGVwRm9ybSBhcyBhIHN0YXRpYyBwcm9wZXJ0eSBiZWxvdywgbWFraW5nIHRoaXMgYSBjb21wb3VuZCBjb21wb25lbnQgcGF0dGVybi5cbmV4cG9ydCBjb25zdCBTdGVwc0Zvcm0gPSBTdGVwc0Zvcm1CYXNlO1xuU3RlcHNGb3JtLlN0ZXBGb3JtID0gU3RlcEZvcm07XG5leHBvcnQgZGVmYXVsdCBTdGVwc0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,4 @@
1
+ export { ModalForm } from './ModalForm';
2
+ export { DrawerForm } from './DrawerForm';
3
+ export { StepsForm, StepForm } from './StepsForm';
4
+ export { QueryFilter } from './QueryFilter';
@@ -0,0 +1,5 @@
1
+ export { ModalForm } from './ModalForm';
2
+ export { DrawerForm } from './DrawerForm';
3
+ export { StepsForm, StepForm } from './StepsForm';
4
+ export { QueryFilter } from './QueryFilter';
5
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvaW5kZXgudHMiXSwibmFtZXMiOlsiTW9kYWxGb3JtIiwiRHJhd2VyRm9ybSIsIlN0ZXBzRm9ybSIsIlN0ZXBGb3JtIiwiUXVlcnlGaWx0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsUUFBUSxhQUFhO0FBQ3ZDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLGFBQWE7QUFDakQsU0FBU0MsV0FBVyxRQUFRLGVBQWUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1,53 @@
1
+ import type { CSSProperties, ReactElement, ReactNode } from 'react';
2
+ /** Configuration options for the {@link useOverlayForm} hook. */
3
+ interface UseOverlayFormOptions<TValues> {
4
+ /** Controlled open state. */
5
+ open?: boolean;
6
+ /** Callback when the open state changes. */
7
+ onOpenChange?: (open: boolean) => void;
8
+ /** Element that opens the overlay when clicked. */
9
+ trigger?: ReactElement;
10
+ /** Delay (ms) before auto-closing after submit. */
11
+ submitTimeout?: number;
12
+ /** Whether to auto-close after a successful submit. @default true */
13
+ autoClose?: boolean;
14
+ /** Whether to unmount overlay content when closed. @default true */
15
+ destroyOnClose?: boolean;
16
+ /** Overlay width. */
17
+ width?: string | number;
18
+ /** Form finish handler. Return `false` to prevent auto-close. */
19
+ onFinish?: (values: TValues) => void | boolean | Promise<void | boolean>;
20
+ /** Inline styles from the overlay component. */
21
+ overlayStyle?: CSSProperties;
22
+ /** The overlay's own `onHide` callback. */
23
+ onOverlayHide?: (...args: unknown[]) => void;
24
+ }
25
+ /** Return shape of {@link useOverlayForm}. */
26
+ export interface UseOverlayFormResult<TValues> {
27
+ /** Effective open state (controlled or uncontrolled). */
28
+ mergedOpen: boolean;
29
+ /** Whether overlay container should stay mounted. */
30
+ shouldRenderPanel: boolean;
31
+ /** Optional trigger element that opens the overlay. */
32
+ triggerNode: ReactNode;
33
+ /** Wrapped finish handler with optional auto-close behavior. */
34
+ handleFinish: (values: TValues) => Promise<void | boolean | undefined>;
35
+ /** Wrapped overlay hide handler. */
36
+ handleHide: (...args: unknown[]) => void;
37
+ /** Merged overlay style (base style + width override). */
38
+ mergedStyle: CSSProperties;
39
+ /** Imperative open-state setter honoring controlled mode. */
40
+ changeOpen: (nextOpen: boolean) => void;
41
+ }
42
+ /**
43
+ * Shared hook that powers both {@link ModalForm} and {@link DrawerForm}.
44
+ *
45
+ * Manages open/close state, trigger element cloning, auto-close with optional
46
+ * timeout after submit, and overlay visibility lifecycle.
47
+ *
48
+ * @typeParam TValues - The form values type.
49
+ * @param options - Configuration options.
50
+ * @returns An object with `mergedOpen`, `triggerNode`, `handleFinish`, `handleHide`, and more.
51
+ */
52
+ export declare function useOverlayForm<TValues>({ open, onOpenChange, trigger, submitTimeout, autoClose, destroyOnClose, width, onFinish, overlayStyle, onOverlayHide, }: UseOverlayFormOptions<TValues>): UseOverlayFormResult<TValues>;
53
+ export {};