@1money/component-ui 0.0.70 → 0.0.73

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 (247) hide show
  1. package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +3 -2
  2. package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +2 -2
  3. package/es/business/Select/Network/NetworkSelect.js +2 -2
  4. package/es/components/Accordion/Accordion.js +3 -2
  5. package/es/components/Calendar/Calendar.js +3 -2
  6. package/es/components/Carousel/Carousel.js +3 -2
  7. package/es/components/Checkbox/BaseCheckbox.js +3 -2
  8. package/es/components/Checkbox/Checkbox.js +2 -2
  9. package/es/components/Checkbox/CheckboxGroup.js +3 -2
  10. package/es/components/CoachMark/CoachMark.js +3 -2
  11. package/es/components/Copy/Copy.js +2 -2
  12. package/es/components/Dialog/Dialog.js +2 -2
  13. package/es/components/Drawer/Drawer.js +2 -2
  14. package/es/components/Input/Amount/Amount.js +2 -2
  15. package/es/components/Input/Input/Input.js +3 -2
  16. package/es/components/Input/Mask/Mask.js +3 -2
  17. package/es/components/Input/OTP/OTP.js +3 -2
  18. package/es/components/Input/Password/Password.js +3 -2
  19. package/es/components/Input/Search/Search.js +3 -2
  20. package/es/components/Input/TextArea/TextArea.js +3 -2
  21. package/es/components/Input/Trade/Trade.js +2 -2
  22. package/es/components/Input/useAmountInput.js +4 -2
  23. package/es/components/Input/useSyncRef.js +2 -2
  24. package/es/components/Navigation/Nav.js +2 -2
  25. package/es/components/Navigation/Navigation.js +5 -2
  26. package/es/components/Pagination/Pagination.js +2 -2
  27. package/es/components/Pagination/usePagination.js +3 -2
  28. package/es/components/Popconfirm/Popconfirm.js +2 -2
  29. package/es/components/Portal/Portal.js +2 -2
  30. package/es/components/ProForm/ProForm.d.ts +10 -2
  31. package/es/components/ProForm/ProForm.js +60 -24
  32. package/es/components/ProForm/ProFormDependency.js +4 -1
  33. package/es/components/ProForm/ProFormGroup.js +2 -2
  34. package/es/components/ProForm/ProFormItem.js +73 -36
  35. package/es/components/ProForm/ProFormList.js +3 -2
  36. package/es/components/ProForm/SchemaForm.d.ts +7 -0
  37. package/es/components/ProForm/SchemaForm.js +103 -0
  38. package/es/components/ProForm/Submitter.js +13 -3
  39. package/es/components/ProForm/context.d.ts +22 -3
  40. package/es/components/ProForm/context.js +49 -10
  41. package/es/components/ProForm/core/constants.d.ts +8 -1
  42. package/es/components/ProForm/core/constants.js +9 -6
  43. package/es/components/ProForm/core/hooks/useForm.js +174 -320
  44. package/es/components/ProForm/core/hooks/useFormCore.js +84 -178
  45. package/es/components/ProForm/core/interface.d.ts +33 -12
  46. package/es/components/ProForm/core/pathUtils.d.ts +6 -0
  47. package/es/components/ProForm/core/pathUtils.js +59 -0
  48. package/es/components/ProForm/core/runRules.d.ts +23 -0
  49. package/es/components/ProForm/core/runRules.js +233 -0
  50. package/es/components/ProForm/core/useFormItem.d.ts +10 -1
  51. package/es/components/ProForm/core/useFormItem.js +105 -61
  52. package/es/components/ProForm/fields/ProFormDatePicker.js +4 -1
  53. package/es/components/ProForm/fields/createProFormField.js +64 -59
  54. package/es/components/ProForm/hooks/useFieldRequest.js +7 -5
  55. package/es/components/ProForm/index.d.ts +11 -4
  56. package/es/components/ProForm/index.js +7 -2
  57. package/es/components/ProForm/interface.d.ts +89 -14
  58. package/es/components/ProForm/layouts/DialogForm.d.ts +5 -1
  59. package/es/components/ProForm/layouts/DialogForm.js +2 -1
  60. package/es/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  61. package/es/components/ProForm/layouts/DrawerForm.js +2 -1
  62. package/es/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  63. package/es/components/ProForm/layouts/QueryFilter.js +79 -13
  64. package/es/components/ProForm/layouts/useOverlayForm.js +23 -21
  65. package/es/components/ProForm/style/ProForm.css +6 -0
  66. package/es/components/ProForm/utils.d.ts +14 -3
  67. package/es/components/ProForm/utils.js +73 -70
  68. package/es/components/ProTable/ProTable.js +3 -2
  69. package/es/components/ProTable/core/useAwaitableReload.js +3 -2
  70. package/es/components/ProTable/useFetchData.js +4 -2
  71. package/es/components/Radio/Radio.js +3 -2
  72. package/es/components/Radio/RadioGroup.js +3 -2
  73. package/es/components/ResizeObserver/useResizeObserver.js +2 -2
  74. package/es/components/Segment/Segment.js +4 -2
  75. package/es/components/Select/Select.js +3 -2
  76. package/es/components/Select/SelectCustom.js +2 -2
  77. package/es/components/Select/useSelectShell.js +3 -2
  78. package/es/components/Slider/Slider.js +3 -2
  79. package/es/components/Switch/Switch.js +3 -2
  80. package/es/components/Table/Table.js +14 -28
  81. package/es/components/Table/VirtualTable.js +18 -28
  82. package/es/components/Table/core/columnUtil.d.ts +9 -0
  83. package/es/components/Table/core/columnUtil.js +34 -0
  84. package/es/components/Table/core/useTableColumns.d.ts +4 -13
  85. package/es/components/Table/core/useTableColumns.js +55 -24
  86. package/es/components/Table/core/useTableDataPipeline.d.ts +11 -16
  87. package/es/components/Table/core/useTableDataPipeline.js +66 -73
  88. package/es/components/Table/core/useTableExpand.js +3 -2
  89. package/es/components/Table/core/useTableSelection.js +7 -4
  90. package/es/components/Table/core/useTableSetup.js +4 -2
  91. package/es/components/Table/features/ExpandTrigger.d.ts +9 -3
  92. package/es/components/Table/features/ExpandTrigger.js +14 -8
  93. package/es/components/Table/features/FilterTrigger.js +21 -17
  94. package/es/components/Table/features/SelectionColumn.d.ts +11 -6
  95. package/es/components/Table/features/SelectionColumn.js +12 -5
  96. package/es/components/Table/features/SortTrigger.d.ts +4 -2
  97. package/es/components/Table/features/SortTrigger.js +8 -3
  98. package/es/components/Table/internal/kernel/Body/MeasureCell.js +2 -2
  99. package/es/components/Table/internal/kernel/Cell/index.js +2 -2
  100. package/es/components/Table/internal/kernel/Table.js +3 -3
  101. package/es/components/Table/internal/kernel/VirtualTable/index.js +2 -2
  102. package/es/components/Table/internal/kernel/hooks/useRowInfo.js +2 -2
  103. package/es/components/Table/internal/kernel/selector-context/context.js +3 -3
  104. package/es/components/Table/renderers/HeaderCell.js +3 -2
  105. package/es/components/Table/renderers/TableShell.d.ts +13 -0
  106. package/es/components/Table/renderers/TableShell.js +25 -0
  107. package/es/components/Table/style/Table.css +3 -0
  108. package/es/components/Tabs/Tabs.js +4 -2
  109. package/es/components/Tooltip/Tooltip.js +3 -2
  110. package/es/components/Tooltip/style/Tooltip.css +1 -0
  111. package/es/components/Tour/Tour.js +3 -2
  112. package/es/components/Trigger/Trigger.js +3 -2
  113. package/es/components/Typography/Typography.js +2 -2
  114. package/es/components/Typography/useTypographyEnhancements.js +3 -2
  115. package/es/components/Upload/Upload.js +2 -2
  116. package/es/components/Upload/UploadFileBar.js +2 -2
  117. package/es/components/VirtualList/VirtualList.js +3 -2
  118. package/es/components/VirtualList/hooks/useMobileTouchMove.js +2 -2
  119. package/es/components/VirtualList/hooks/useScrollTo.js +2 -2
  120. package/es/index.css +1 -1
  121. package/es/index.d.ts +2 -2
  122. package/es/index.js +2 -2
  123. package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +9 -8
  124. package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +3 -3
  125. package/lib/business/Select/Network/NetworkSelect.js +3 -3
  126. package/lib/components/Accordion/Accordion.js +5 -4
  127. package/lib/components/Calendar/Calendar.js +6 -5
  128. package/lib/components/Carousel/Carousel.js +5 -4
  129. package/lib/components/Checkbox/BaseCheckbox.js +5 -4
  130. package/lib/components/Checkbox/Checkbox.js +3 -3
  131. package/lib/components/Checkbox/CheckboxGroup.js +7 -6
  132. package/lib/components/CoachMark/CoachMark.js +7 -6
  133. package/lib/components/Copy/Copy.js +3 -3
  134. package/lib/components/Dialog/Dialog.js +6 -6
  135. package/lib/components/Drawer/Drawer.js +10 -10
  136. package/lib/components/Input/Amount/Amount.js +6 -5
  137. package/lib/components/Input/Input/Input.js +7 -6
  138. package/lib/components/Input/Mask/Mask.js +9 -8
  139. package/lib/components/Input/OTP/OTP.js +9 -8
  140. package/lib/components/Input/Password/Password.js +6 -5
  141. package/lib/components/Input/Search/Search.js +8 -7
  142. package/lib/components/Input/TextArea/TextArea.js +5 -4
  143. package/lib/components/Input/Trade/Trade.js +5 -4
  144. package/lib/components/Input/useAmountInput.js +13 -11
  145. package/lib/components/Input/useSyncRef.js +4 -3
  146. package/lib/components/Navigation/Nav.js +3 -3
  147. package/lib/components/Navigation/Navigation.js +10 -7
  148. package/lib/components/Pagination/Pagination.js +4 -3
  149. package/lib/components/Pagination/usePagination.js +7 -6
  150. package/lib/components/Popconfirm/Popconfirm.js +3 -3
  151. package/lib/components/Portal/Portal.js +4 -4
  152. package/lib/components/ProForm/ProForm.d.ts +10 -2
  153. package/lib/components/ProForm/ProForm.js +66 -30
  154. package/lib/components/ProForm/ProFormDependency.js +4 -1
  155. package/lib/components/ProForm/ProFormGroup.js +3 -3
  156. package/lib/components/ProForm/ProFormItem.js +72 -34
  157. package/lib/components/ProForm/ProFormList.js +10 -9
  158. package/lib/components/ProForm/SchemaForm.d.ts +7 -0
  159. package/lib/components/ProForm/SchemaForm.js +110 -0
  160. package/lib/components/ProForm/Submitter.js +15 -5
  161. package/lib/components/ProForm/context.d.ts +22 -3
  162. package/lib/components/ProForm/context.js +49 -10
  163. package/lib/components/ProForm/core/constants.d.ts +8 -1
  164. package/lib/components/ProForm/core/constants.js +10 -7
  165. package/lib/components/ProForm/core/hooks/useForm.js +181 -327
  166. package/lib/components/ProForm/core/hooks/useFormCore.js +96 -190
  167. package/lib/components/ProForm/core/interface.d.ts +33 -12
  168. package/lib/components/ProForm/core/pathUtils.d.ts +6 -0
  169. package/lib/components/ProForm/core/pathUtils.js +68 -0
  170. package/lib/components/ProForm/core/runRules.d.ts +23 -0
  171. package/lib/components/ProForm/core/runRules.js +242 -0
  172. package/lib/components/ProForm/core/useFormItem.d.ts +10 -1
  173. package/lib/components/ProForm/core/useFormItem.js +106 -62
  174. package/lib/components/ProForm/fields/ProFormDatePicker.js +4 -1
  175. package/lib/components/ProForm/fields/createProFormField.js +63 -58
  176. package/lib/components/ProForm/hooks/useFieldRequest.js +9 -7
  177. package/lib/components/ProForm/index.d.ts +11 -4
  178. package/lib/components/ProForm/index.js +16 -1
  179. package/lib/components/ProForm/interface.d.ts +89 -14
  180. package/lib/components/ProForm/layouts/DialogForm.d.ts +5 -1
  181. package/lib/components/ProForm/layouts/DialogForm.js +2 -1
  182. package/lib/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  183. package/lib/components/ProForm/layouts/DrawerForm.js +2 -1
  184. package/lib/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  185. package/lib/components/ProForm/layouts/QueryFilter.js +84 -18
  186. package/lib/components/ProForm/layouts/useOverlayForm.js +27 -27
  187. package/lib/components/ProForm/style/ProForm.css +6 -0
  188. package/lib/components/ProForm/utils.d.ts +14 -3
  189. package/lib/components/ProForm/utils.js +91 -74
  190. package/lib/components/ProTable/ProTable.js +10 -9
  191. package/lib/components/ProTable/core/useAwaitableReload.js +6 -5
  192. package/lib/components/ProTable/useFetchData.js +15 -13
  193. package/lib/components/Radio/Radio.js +6 -5
  194. package/lib/components/Radio/RadioGroup.js +5 -4
  195. package/lib/components/ResizeObserver/useResizeObserver.js +4 -3
  196. package/lib/components/Segment/Segment.js +7 -5
  197. package/lib/components/Select/Select.js +23 -22
  198. package/lib/components/Select/SelectCustom.js +8 -8
  199. package/lib/components/Select/useSelectShell.js +5 -4
  200. package/lib/components/Slider/Slider.js +6 -5
  201. package/lib/components/Switch/Switch.js +5 -4
  202. package/lib/components/Table/Table.js +13 -27
  203. package/lib/components/Table/VirtualTable.js +17 -27
  204. package/lib/components/Table/core/columnUtil.d.ts +9 -0
  205. package/lib/components/Table/core/columnUtil.js +42 -0
  206. package/lib/components/Table/core/useTableColumns.d.ts +4 -13
  207. package/lib/components/Table/core/useTableColumns.js +57 -26
  208. package/lib/components/Table/core/useTableDataPipeline.d.ts +11 -16
  209. package/lib/components/Table/core/useTableDataPipeline.js +73 -80
  210. package/lib/components/Table/core/useTableExpand.js +6 -5
  211. package/lib/components/Table/core/useTableSelection.js +13 -10
  212. package/lib/components/Table/core/useTableSetup.js +8 -5
  213. package/lib/components/Table/features/ExpandTrigger.d.ts +9 -3
  214. package/lib/components/Table/features/ExpandTrigger.js +14 -8
  215. package/lib/components/Table/features/FilterTrigger.js +21 -17
  216. package/lib/components/Table/features/SelectionColumn.d.ts +11 -6
  217. package/lib/components/Table/features/SelectionColumn.js +12 -5
  218. package/lib/components/Table/features/SortTrigger.d.ts +4 -2
  219. package/lib/components/Table/features/SortTrigger.js +8 -3
  220. package/lib/components/Table/internal/kernel/Body/MeasureCell.js +3 -3
  221. package/lib/components/Table/internal/kernel/Cell/index.js +4 -4
  222. package/lib/components/Table/internal/kernel/Table.js +7 -6
  223. package/lib/components/Table/internal/kernel/VirtualTable/index.js +4 -4
  224. package/lib/components/Table/internal/kernel/hooks/useRowInfo.js +3 -3
  225. package/lib/components/Table/internal/kernel/selector-context/context.js +6 -5
  226. package/lib/components/Table/renderers/HeaderCell.js +3 -2
  227. package/lib/components/Table/renderers/TableShell.d.ts +13 -0
  228. package/lib/components/Table/renderers/TableShell.js +31 -0
  229. package/lib/components/Table/style/Table.css +3 -0
  230. package/lib/components/Tabs/Tabs.js +7 -5
  231. package/lib/components/Tooltip/Tooltip.js +5 -4
  232. package/lib/components/Tooltip/style/Tooltip.css +1 -0
  233. package/lib/components/Tour/Tour.js +7 -6
  234. package/lib/components/Trigger/Trigger.js +5 -4
  235. package/lib/components/Typography/Typography.js +5 -4
  236. package/lib/components/Typography/useTypographyEnhancements.js +8 -7
  237. package/lib/components/Upload/Upload.js +5 -4
  238. package/lib/components/Upload/UploadFileBar.js +4 -3
  239. package/lib/components/VirtualList/VirtualList.js +8 -7
  240. package/lib/components/VirtualList/hooks/useMobileTouchMove.js +4 -3
  241. package/lib/components/VirtualList/hooks/useScrollTo.js +3 -3
  242. package/lib/index.css +1 -1
  243. package/lib/index.d.ts +2 -2
  244. package/lib/index.js +13 -1
  245. package/package.json +2 -2
  246. package/scripts/mcp-server/examples.generated.json +54 -0
  247. package/scripts/mcp-server/index.generated.json +1212 -80
@@ -6,6 +6,7 @@ import type { GridRowProps, GridColSize } from "../Grid";
6
6
  import type { DialogProps } from "../Dialog";
7
7
  import type { ProFormMode } from './constants';
8
8
  export type ProFormFieldTransformFn = (value: unknown, name: string, allValues: Record<string, unknown>) => unknown;
9
+ export type ProFormDateFormatter = 'string' | 'number' | (string & {}) | ((value: Date, name: string) => unknown) | false;
9
10
  export type ProFormFieldConvertValueFn = (value: unknown, name: string) => unknown;
10
11
  export type ProFormValueEnumObj = Record<string | number, string | {
11
12
  text: string;
@@ -22,23 +23,27 @@ export interface ProFormRequestOption {
22
23
  value: unknown;
23
24
  disabled?: boolean;
24
25
  }
25
- export interface ProFormFormInstance extends FormInstance {
26
- getFieldsFormatValue: () => Record<string, unknown>;
26
+ export interface ProFormFormInstance<Values = Record<string, unknown>> extends FormInstance<Values> {
27
+ getFieldsFormatValue: () => Values;
27
28
  validateFieldsReturnFormatValue: () => Promise<{
28
29
  success: boolean;
29
- values?: Record<string, unknown>;
30
+ values?: Values;
30
31
  errors?: Record<string, string>;
31
32
  }>;
32
33
  submitForm: () => Promise<void>;
33
34
  }
34
- export interface ProFormContextValue {
35
+ export interface ProFormStateContextValue {
35
36
  values: Record<string, unknown>;
36
37
  errors: Record<string, string>;
38
+ warnings: Record<string, string>;
37
39
  touched: Record<string, boolean>;
38
40
  validating: Record<string, boolean>;
41
+ }
42
+ export interface ProFormStableContextValue {
39
43
  formInstance: ProFormFormInstance;
40
44
  setFieldValue: (name: string, value: unknown) => void;
41
45
  setFieldError: (name: string, error: string | null) => void;
46
+ setFieldWarning: (name: string, warning: string | null) => void;
42
47
  validateField: (name: string, rules: Rule[], providedValue?: unknown) => boolean;
43
48
  validateFieldAsync: (name: string, value: unknown, rules: Rule[]) => Promise<{
44
49
  isValid: boolean;
@@ -59,6 +64,15 @@ export interface ProFormContextValue {
59
64
  colProps: ProFormColProps;
60
65
  registerTransform: (name: string, fn: ProFormFieldTransformFn) => void;
61
66
  unregisterTransform: (name: string) => void;
67
+ /** Register a field's valueType for valueType-aware submit formatting (dateFormatter) */
68
+ registerValueType: (name: string, valueType: ProFormValueType) => void;
69
+ unregisterValueType: (name: string) => void;
70
+ /** Form-level defaults injected into every ProFormXxx field's component props (field-level wins) */
71
+ fieldProps?: Record<string, unknown>;
72
+ /** Form-level defaults merged into every ProForm.Item (item-level wins) */
73
+ formItemProps?: ProFormItemSharedProps;
74
+ }
75
+ export interface ProFormContextValue extends ProFormStableContextValue, ProFormStateContextValue {
62
76
  }
63
77
  export interface ProFormFieldProps<FieldProps = Record<string, unknown>> {
64
78
  name?: string;
@@ -93,6 +107,14 @@ export interface ProFormFieldProps<FieldProps = Record<string, unknown>> {
93
107
  params?: Record<string, unknown>;
94
108
  valueEnum?: ProFormValueEnumObj;
95
109
  debounceTime?: number;
110
+ /** Debounce (ms) applied to onChange-triggered validation */
111
+ validateDebounce?: number;
112
+ /**
113
+ * Registered into the form's valueType registry (drives valueType-aware
114
+ * dateFormatter, e.g. `"dateTime"` → `YYYY-MM-DD HH:mm:ss`) and read-mode
115
+ * rendering. Overrides the factory's default valueType.
116
+ */
117
+ valueType?: ProFormValueType;
96
118
  }
97
119
  export type ProFormValueType = 'text' | 'password' | 'digit' | 'date' | 'dateTime' | 'select' | 'radio' | 'switch' | 'tag';
98
120
  export interface ProFormItemProps {
@@ -125,7 +147,13 @@ export interface ProFormItemProps {
125
147
  emptyText?: ReactNode;
126
148
  /** Value enum for select/radio/tag value types */
127
149
  valueEnum?: ProFormValueEnumObj;
150
+ /** Prop name the controlled value is injected under (default `value`; e.g. `checked` for Switch/Checkbox) */
151
+ valuePropName?: string;
152
+ /** Debounce (ms) applied to onChange-triggered validation */
153
+ validateDebounce?: number;
128
154
  }
155
+ /** Item props that can be shared form-wide via ProForm's `formItemProps` */
156
+ export type ProFormItemSharedProps = Partial<Omit<ProFormItemProps, 'children' | 'name' | 'label' | 'rules'>>;
129
157
  export interface SubmitterProps {
130
158
  submitText?: ReactNode;
131
159
  resetText?: ReactNode;
@@ -139,17 +167,17 @@ export interface SubmitterProps {
139
167
  submitButtonProps?: Partial<ButtonProps>;
140
168
  resetButtonProps?: Partial<ButtonProps>;
141
169
  }
142
- export interface ProFormProps extends Omit<FormHTMLAttributes<HTMLFormElement>, 'onSubmit' | 'onReset'> {
170
+ export interface ProFormProps<Values = Record<string, unknown>> extends Omit<FormHTMLAttributes<HTMLFormElement>, 'onSubmit' | 'onReset'> {
143
171
  children?: ReactNode;
144
172
  className?: string;
145
173
  prefixCls?: string;
146
- initialValues?: Record<string, unknown>;
147
- onFinish?: (values: Record<string, unknown>) => void;
174
+ initialValues?: Partial<Values>;
175
+ onFinish?: (values: Values) => void | Promise<void>;
148
176
  onFinishFailed?: (errorInfo: {
149
- values: Record<string, unknown>;
177
+ values: Values;
150
178
  errors: Record<string, string>;
151
179
  }) => void;
152
- onValuesChange?: (changedValues: Record<string, unknown>, allValues: Record<string, unknown>) => void;
180
+ onValuesChange?: (changedValues: Partial<Values>, allValues: Values) => void;
153
181
  onReset?: () => void;
154
182
  size?: FormSize;
155
183
  labelAlign?: LabelAlign;
@@ -165,10 +193,21 @@ export interface ProFormProps extends Omit<FormHTMLAttributes<HTMLFormElement>,
165
193
  colProps?: ProFormColProps;
166
194
  rowProps?: Partial<GridRowProps>;
167
195
  loading?: boolean;
168
- request?: (params?: unknown) => Promise<Record<string, unknown>>;
196
+ request?: (params?: unknown) => Promise<Partial<Values>>;
169
197
  params?: unknown;
170
- formRef?: MutableRefObject<ProFormFormInstance | undefined>;
198
+ formRef?: MutableRefObject<ProFormFormInstance<Values> | undefined>;
171
199
  omitNil?: boolean;
200
+ /**
201
+ * How Date values are serialized in the submit pipeline (default `'string'`):
202
+ * `'string'` → `YYYY-MM-DD` (`YYYY-MM-DD HH:mm:ss` for `valueType="dateTime"` fields),
203
+ * `'number'` → timestamp, a custom pattern (e.g. `'YYYY/MM/DD'`), a function, or
204
+ * `false` to pass Date objects through untouched.
205
+ */
206
+ dateFormatter?: ProFormDateFormatter;
207
+ /** Defaults injected into every ProFormXxx field's component props (field-level wins) */
208
+ fieldProps?: Record<string, unknown>;
209
+ /** Defaults merged into every ProForm.Item (item-level wins) */
210
+ formItemProps?: ProFormItemSharedProps;
172
211
  }
173
212
  export interface ProFormListAction {
174
213
  add: (defaultValue?: Record<string, unknown>, index?: number) => void;
@@ -238,7 +277,7 @@ export interface ProFormGroupProps {
238
277
  style?: CSSProperties;
239
278
  children?: ReactNode;
240
279
  }
241
- export interface DialogFormProps extends Omit<ProFormProps, 'title'> {
280
+ export interface DialogFormProps<Values = Record<string, unknown>> extends Omit<ProFormProps<Values>, 'title'> {
242
281
  open?: boolean;
243
282
  onOpenChange?: (open: boolean) => void;
244
283
  trigger?: ReactElement;
@@ -249,7 +288,7 @@ export interface DialogFormProps extends Omit<ProFormProps, 'title'> {
249
288
  destroyOnClose?: boolean;
250
289
  dialogProps?: Partial<DialogProps>;
251
290
  }
252
- export interface DrawerFormProps extends Omit<ProFormProps, 'title'> {
291
+ export interface DrawerFormProps<Values = Record<string, unknown>> extends Omit<ProFormProps<Values>, 'title'> {
253
292
  open?: boolean;
254
293
  onOpenChange?: (open: boolean) => void;
255
294
  trigger?: ReactElement;
@@ -261,7 +300,7 @@ export interface DrawerFormProps extends Omit<ProFormProps, 'title'> {
261
300
  destroyOnClose?: boolean;
262
301
  drawerProps?: Partial<DrawerProps>;
263
302
  }
264
- export interface QueryFilterProps extends ProFormProps {
303
+ export interface QueryFilterProps<Values = Record<string, unknown>> extends ProFormProps<Values> {
265
304
  defaultCollapsed?: boolean;
266
305
  collapsed?: boolean;
267
306
  onCollapse?: (collapsed: boolean) => void;
@@ -276,11 +315,47 @@ export interface QueryFilterProps extends ProFormProps {
276
315
  };
277
316
  syncToUrl?: boolean | ((values: Record<string, unknown>, type: 'get' | 'set') => Record<string, unknown>);
278
317
  }
318
+ export type ProFormSchemaValueType = 'text' | 'password' | 'textarea' | 'digit' | 'select' | 'checkbox' | 'checkboxGroup' | 'radioGroup' | 'switch' | 'slider' | 'date' | 'dateTime' | 'upload';
319
+ export interface ProFormSchemaColumn {
320
+ /** Field label */
321
+ title?: ReactNode;
322
+ /** Field name; dot-paths supported (e.g. `"address.city"`) */
323
+ dataIndex: string;
324
+ /** Which ProForm field renders the column (default `'text'`) */
325
+ valueType?: ProFormSchemaValueType;
326
+ valueEnum?: ProFormValueEnumObj;
327
+ /** Seeded into the form's initialValues (form-level initialValues win) */
328
+ initialValue?: unknown;
329
+ rules?: Rule[];
330
+ required?: boolean;
331
+ description?: ReactNode;
332
+ placeholder?: string;
333
+ disabled?: boolean;
334
+ hidden?: boolean;
335
+ mode?: ProFormMode;
336
+ width?: 'sm' | 'md' | 'lg' | 'xl' | number;
337
+ colProps?: ProFormColProps;
338
+ fieldProps?: Record<string, unknown>;
339
+ transform?: ProFormFieldTransformFn;
340
+ convertValue?: ProFormFieldConvertValueFn;
341
+ dependencies?: string[];
342
+ request?: (params?: Record<string, unknown>) => Promise<ProFormRequestOption[]>;
343
+ params?: Record<string, unknown>;
344
+ debounceTime?: number;
345
+ validateDebounce?: number;
346
+ /** Fully custom renderer for this column; overrides valueType mapping */
347
+ renderFormItem?: (column: ProFormSchemaColumn) => ReactNode;
348
+ }
349
+ export interface SchemaFormProps<Values = Record<string, unknown>> extends Omit<ProFormProps<Values>, 'children'> {
350
+ columns: ProFormSchemaColumn[];
351
+ }
279
352
  export interface CreateProFormFieldConfig<FieldProps> {
280
353
  component: FC<FieldProps> | (FC<FieldProps> & {
281
354
  displayName?: string;
282
355
  });
283
356
  valuePropName?: string;
357
+ /** Default valueType registered for fields from this factory (per-field `valueType` prop overrides) */
358
+ valueType?: ProFormValueType;
284
359
  mapProps?: (props: Record<string, unknown>) => Record<string, unknown>;
285
360
  renderReadonly?: (value: unknown, props?: Partial<FieldProps>) => ReactNode;
286
361
  }
@@ -1,3 +1,7 @@
1
+ import type { ReactElement } from 'react';
1
2
  import type { DialogFormProps } from '../interface';
2
- export declare const DialogForm: import("react").NamedExoticComponent<DialogFormProps>;
3
+ /** Generic-aware export keeps `<DialogForm<MyValues> …>` fully typed. */
4
+ export declare const DialogForm: (<Values = Record<string, unknown>>(props: DialogFormProps<Values>) => ReactElement | null) & {
5
+ displayName?: string;
6
+ };
3
7
  export default DialogForm;
@@ -69,6 +69,7 @@ var DialogFormBase = function DialogFormBase(props) {
69
69
  });
70
70
  };
71
71
  DialogFormBase.displayName = 'DialogForm';
72
+ /** Generic-aware export — keeps `<DialogForm<MyValues> …>` fully typed. */
72
73
  export var DialogForm = /*#__PURE__*/memo(DialogFormBase);
73
74
  export default DialogForm;
74
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RpYWxvZ0Zvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RpYWxvZ0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiRGlhbG9nIiwiUHJvRm9ybSIsIkNTU19QUkVGSVgiLCJ1c2VPdmVybGF5Rm9ybSIsImNsYXNzZXMiLCJjb25jYXQiLCJEaWFsb2dGb3JtQmFzZSIsInByb3BzIiwiX2EiLCJvcGVuIiwib25PcGVuQ2hhbmdlIiwidHJpZ2dlciIsInRpdGxlIiwid2lkdGgiLCJzdWJtaXRUaW1lb3V0IiwiX3Byb3BzJGF1dG9DbG9zZSIsImF1dG9DbG9zZSIsImRpYWxvZ1Byb3BzIiwib25GaW5pc2giLCJzdWJtaXR0ZXIiLCJjaGlsZHJlbiIsIl9kZXN0cm95T25DbG9zZSIsImRlc3Ryb3lPbkNsb3NlIiwiZm9ybVByb3BzIiwiX3VzZU92ZXJsYXlGb3JtIiwibWVyZ2VkT3BlbiIsInRyaWdnZXJOb2RlIiwiaGFuZGxlRmluaXNoIiwiaGFuZGxlSGlkZSIsImFzc2lnbiIsIm9uQ2FuY2VsIiwiZm9vdGVyIiwidW5kZWZpbmVkIiwicm9vdFN0eWxlIiwiY2xhc3NOYW1lIiwicmVzZXRCdXR0b25Qcm9wcyIsIm9uQ2xpY2siLCJyZXNldFRleHQiLCJjYW5jZWxUZXh0IiwiZGlzcGxheU5hbWUiLCJEaWFsb2dGb3JtIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FBU1csR0FBRyxJQUFJQyxJQUFJLEVBQUVDLFFBQVEsSUFBSUMsU0FBUyxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNYckYsU0FBU0MsSUFBSSxRQUFRLE9BQU87QUFFNUIsU0FBU0MsT0FBTyxJQUFJQyxVQUFVLFFBQVEsMkJBQTJCO0FBQ2pFLFNBQVNDLE1BQU0sUUFBUSxjQUFjO0FBQ3JDLFNBQVNDLE9BQU8sUUFBUSxZQUFZO0FBQ3BDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLGNBQWMsUUFBUSxrQkFBa0I7QUFHakQsSUFBTUMsT0FBTyxHQUFHTCxVQUFVLElBQUFNLE1BQUEsQ0FBSUgsVUFBVSxpQkFBYyxDQUFDO0FBRXZELElBQU1JLGNBQWMsR0FBd0IsU0FBdENBLGNBQWNBLENBQXlCQyxLQUFLLEVBQUk7RURTbEQsSUFBSUMsRUFBRTtFQ1JSLElBQ0VDLElBQUksR0FnQkZGLEtBQUssQ0FoQlBFLElBQUk7SUFDSkMsWUFBWSxHQWVWSCxLQUFLLENBZlBHLFlBQVk7SUFDWkMsT0FBTyxHQWNMSixLQUFLLENBZFBJLE9BQU87SUFDUEMsS0FBSyxHQWFITCxLQUFLLENBYlBLLEtBQUs7SUFDTEMsS0FBSyxHQVlITixLQUFLLENBWlBNLEtBQUs7SUFDTEMsYUFBYSxHQVdYUCxLQUFLLENBWFBPLGFBQWE7SUFBQUMsZ0JBQUEsR0FXWFIsS0FBSyxDQVZQUyxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsZ0JBQUEsY0FBRyxJQUFJLEdBQUFBLGdCQUFBO0lBQ2hCRSxXQUFXLEdBU1RWLEtBQUssQ0FUUFUsV0FBVztJQUNYQyxRQUFRLEdBUU5YLEtBQUssQ0FSUFcsUUFBUTtJQUNSQyxTQUFTLEdBT1BaLEtBQUssQ0FQUFksU0FBUztJQUNUQyxRQUFRLEdBTU5iLEtBQUssQ0FOUGEsUUFBUTtJQUlRQyxlQUFlLEdBRTdCZCxLQUFLLENBRlBlLGNBQWM7SUFDWEMsU0FBUyxHQUFBOUMsTUFBQSxDQUNWOEIsS0FBSyxFQWpCSCxDQUFBLE1BQUEsRUFBQSxjQUFBLEVBQUEsU0FBQSxFQUFBLE9BQUEsRUFBQSxPQUFBLEVBQUEsZUFBQSxFQUFBLFdBQUEsRUFBQSxhQUFBLEVBQUEsVUFBQSxFQUFBLFdBQUEsRUFBQSxVQUFBLEVBQUEsZ0JBQUEsQ0FpQkwsQ0FBUTtFQUVULElBQUFpQixlQUFBLEdBS0lyQixjQUFjLENBQ2hCO01BQUVNLElBQUksRUFBSkEsSUFBSTtNQUFFQyxZQUFZLEVBQVpBLFlBQVk7TUFBRUMsT0FBTyxFQUFQQSxPQUFPO01BQUVLLFNBQVMsRUFBVEEsU0FBUztNQUFFRixhQUFhLEVBQWJBO0lBQWEsQ0FBRSxFQUN6REksUUFBUSxDQUNUO0lBUENPLFVBQVUsR0FBQUQsZUFBQSxDQUFWQyxVQUFVO0lBQ1ZDLFdBQVcsR0FBQUYsZUFBQSxDQUFYRSxXQUFXO0lBQ1hDLFlBQVksR0FBQUgsZUFBQSxDQUFaRyxZQUFZO0lBQ1pDLFVBQVUsR0FBQUosZUFBQSxDQUFWSSxVQUFVO0VBTVosT0FDRWhDLEtBQUEsQ0FBQUYsU0FBQSxFQUFBO0lBQUEwQixRQUFBLEVBQUEsQ0FDR00sV0FBVyxFQUNabEMsSUFBQSxDQUFDUSxNQUFNLEVBQUFsQixNQUFBLENBQUErQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ0RaLFdBQVcsRUFBQTtNQUNmUixJQUFJLEVBQUVnQixVQUFVO01BQ2hCYixLQUFLLEVBQUVBLEtBQUs7TUFDWmtCLFFBQVEsRUFBRUYsVUFBVTtNQUNwQkcsTUFBTSxFQUFFO0lBQUksQ0FBQSxFQUNQbEIsS0FBSyxLQUFLbUIsU0FBUyxHQUFHO01BQUVDLFNBQVMsRUFBQW5ELE1BQUEsQ0FBQStDLE1BQUEsQ0FBQS9DLE1BQUEsQ0FBQStDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBT1osV0FBVyxLQUFBLElBQUEsSUFBWEEsV0FBVyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFYQSxXQUFXLENBQUVnQixTQUFTLENBQUEsRUFBQTtRQUFFcEIsS0FBSyxFQUFMQTtNQUFLLENBQUE7SUFBRSxDQUFFLEdBQUcsQ0FBQSxDQUFFLEVBQUM7TUFBQU8sUUFBQSxFQUVwRjVCLElBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBSzBDLFNBQVMsRUFBRTlCLE9BQU8sQ0FBQSxDQUFFO1FBQUFnQixRQUFBLEVBQ3ZCNUIsSUFBQSxDQUFDUyxPQUFPLEVBQUFuQixNQUFBLENBQUErQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ0ZOLFNBQVMsRUFBQTtVQUNiTCxRQUFRLEVBQUVTLFlBQVk7VUFDdEJSLFNBQVMsRUFBRUEsU0FBUyxLQUFLYSxTQUFTLEdBQUdiLFNBQVMsR0FBRztZQUMvQ2dCLGdCQUFnQixFQUFFO2NBQUVDLE9BQU8sRUFBRVI7WUFBVSxDQUFFO1lBQ3pDUyxTQUFTLEVBQUUsQ0FBQTdCLEVBQUEsR0FBQVMsV0FBVyxLQUFBLElBQUEsSUFBWEEsV0FBVyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFYQSxXQUFXLENBQUVxQixVQUFVLE1BQUEsSUFBQSxJQUFBOUIsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUk7VUQ1QjVCLENDNkJYO1VBQUFZLFFBQUEsRUFFQUE7UUFBUSxDQUFBLENBQUE7TUFDRCxDQUFBO0lBQ04sQ0FBQSxDQUFBLENBQ0M7RUFBQSxDQUFBLENBQ1I7QUFFUCxDQUFDO0FBRURkLGNBQWMsQ0FBQ2lDLFdBQVcsR0FBRyxZQUFZO0FBRXpDLE9BQU8sSUFBTUMsVUFBVSxnQkFBRzNDLElBQUksQ0FBQ1MsY0FBYyxDQUFDO0FBRTlDLGVBQWVrQyxVQUFVIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RpYWxvZ0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICcuLi8uLi9EaWFsb2cnO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VPdmVybGF5Rm9ybSB9IGZyb20gJy4vdXNlT3ZlcmxheUZvcm0nO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tZGlhbG9nLWZvcm1gKTtcbmNvbnN0IERpYWxvZ0Zvcm1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgb3Blbiwgb25PcGVuQ2hhbmdlLCB0cmlnZ2VyLCB0aXRsZSwgd2lkdGgsIHN1Ym1pdFRpbWVvdXQsIGF1dG9DbG9zZSA9IHRydWUsIGRpYWxvZ1Byb3BzLCBvbkZpbmlzaCwgc3VibWl0dGVyLCBjaGlsZHJlbiwgXG4gICAgLy8gZGVzdHJveU9uQ2xvc2UgaXMgYWNjZXB0ZWQgZm9yIEFQSSBjb21wYXQgYnV0IG5vdCB1c2VkIOKAlFxuICAgIC8vIERpYWxvZydzIG93biB1c2VQcmVzZW5jZSBhbHJlYWR5IHVubW91bnRzIHRoZSBlbnRpcmUgRE9NIHRyZWVcbiAgICAvLyAoaW5jbHVkaW5nIGZvcm0gY29udGVudCkgYWZ0ZXIgdGhlIGNsb3NlIGFuaW1hdGlvbiBmaW5pc2hlcy5cbiAgICBkZXN0cm95T25DbG9zZTogX2Rlc3Ryb3lPbkNsb3NlIH0gPSBwcm9wcywgZm9ybVByb3BzID0gX19yZXN0KHByb3BzLCBbXCJvcGVuXCIsIFwib25PcGVuQ2hhbmdlXCIsIFwidHJpZ2dlclwiLCBcInRpdGxlXCIsIFwid2lkdGhcIiwgXCJzdWJtaXRUaW1lb3V0XCIsIFwiYXV0b0Nsb3NlXCIsIFwiZGlhbG9nUHJvcHNcIiwgXCJvbkZpbmlzaFwiLCBcInN1Ym1pdHRlclwiLCBcImNoaWxkcmVuXCIsIFwiZGVzdHJveU9uQ2xvc2VcIl0pO1xuICAgIGNvbnN0IHsgbWVyZ2VkT3BlbiwgdHJpZ2dlck5vZGUsIGhhbmRsZUZpbmlzaCwgaGFuZGxlSGlkZSwgfSA9IHVzZU92ZXJsYXlGb3JtKHsgb3Blbiwgb25PcGVuQ2hhbmdlLCB0cmlnZ2VyLCBhdXRvQ2xvc2UsIHN1Ym1pdFRpbWVvdXQgfSwgb25GaW5pc2gpO1xuICAgIHJldHVybiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbdHJpZ2dlck5vZGUsIF9qc3goRGlhbG9nLCBPYmplY3QuYXNzaWduKHt9LCBkaWFsb2dQcm9wcywgeyBvcGVuOiBtZXJnZWRPcGVuLCB0aXRsZTogdGl0bGUsIG9uQ2FuY2VsOiBoYW5kbGVIaWRlLCBmb290ZXI6IG51bGwgfSwgKHdpZHRoICE9PSB1bmRlZmluZWQgPyB7IHJvb3RTdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBkaWFsb2dQcm9wcyA9PT0gbnVsbCB8fCBkaWFsb2dQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGlhbG9nUHJvcHMucm9vdFN0eWxlKSwgeyB3aWR0aCB9KSB9IDoge30pLCB7IGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBvbkZpbmlzaDogaGFuZGxlRmluaXNoLCBzdWJtaXR0ZXI6IHN1Ym1pdHRlciAhPT0gdW5kZWZpbmVkID8gc3VibWl0dGVyIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0QnV0dG9uUHJvcHM6IHsgb25DbGljazogaGFuZGxlSGlkZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VGV4dDogKF9hID0gZGlhbG9nUHJvcHMgPT09IG51bGwgfHwgZGlhbG9nUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRpYWxvZ1Byb3BzLmNhbmNlbFRleHQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdDYW5jZWwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSB9KSB9KSldIH0pKTtcbn07XG5EaWFsb2dGb3JtQmFzZS5kaXNwbGF5TmFtZSA9ICdEaWFsb2dGb3JtJztcbmV4cG9ydCBjb25zdCBEaWFsb2dGb3JtID0gbWVtbyhEaWFsb2dGb3JtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBEaWFsb2dGb3JtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
75
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RpYWxvZ0Zvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RpYWxvZ0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiRGlhbG9nIiwiUHJvRm9ybSIsIkNTU19QUkVGSVgiLCJ1c2VPdmVybGF5Rm9ybSIsImNsYXNzZXMiLCJjb25jYXQiLCJEaWFsb2dGb3JtQmFzZSIsInByb3BzIiwiX2EiLCJvcGVuIiwib25PcGVuQ2hhbmdlIiwidHJpZ2dlciIsInRpdGxlIiwid2lkdGgiLCJzdWJtaXRUaW1lb3V0IiwiX3Byb3BzJGF1dG9DbG9zZSIsImF1dG9DbG9zZSIsImRpYWxvZ1Byb3BzIiwib25GaW5pc2giLCJzdWJtaXR0ZXIiLCJjaGlsZHJlbiIsIl9kZXN0cm95T25DbG9zZSIsImRlc3Ryb3lPbkNsb3NlIiwiZm9ybVByb3BzIiwiX3VzZU92ZXJsYXlGb3JtIiwibWVyZ2VkT3BlbiIsInRyaWdnZXJOb2RlIiwiaGFuZGxlRmluaXNoIiwiaGFuZGxlSGlkZSIsImFzc2lnbiIsIm9uQ2FuY2VsIiwiZm9vdGVyIiwidW5kZWZpbmVkIiwicm9vdFN0eWxlIiwiY2xhc3NOYW1lIiwicmVzZXRCdXR0b25Qcm9wcyIsIm9uQ2xpY2siLCJyZXNldFRleHQiLCJjYW5jZWxUZXh0IiwiZGlzcGxheU5hbWUiLCJEaWFsb2dGb3JtIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFJQSxNQUFN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LEVBQUFuQixNQUFBLENBQUErQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ0ZOLFNBQVMsRUFBQTtVQUNiTCxRQUFRLEVBQUVTLFlBQVk7VUFDdEJSLFNBQVMsRUFBRUEsU0FBUyxLQUFLYSxTQUFTLEdBQUdiLFNBQVMsR0FBRztZQUMvQ2dCLGdCQUFnQixFQUFFO2NBQUVDLE9BQU8sRUFBRVI7WUFBVSxDQUFFO1lBQ3pDUyxTQUFTLEVBQUUsQ0FBQTdCLEVBQUEsR0FBQVMsV0FBVyxLQUFBLElBQUEsSUFBWEEsV0FBVyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFYQSxXQUFXLENBQUVxQixVQUFVLE1BQUEsSUFBQSxJQUFBOUIsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUk7VUQ1QjVCLENDNkJYO1VBQUFZLFFBQUEsRUFFQUE7UUFBUSxDQUFBLENBQUE7TUFDRCxDQUFBO0lBQ04sQ0FBQSxDQUFBLENBQ0M7RUFBQSxDQUFBLENBQ1I7QUFFUCxDQUFDO0FBRURkLGNBQWMsQ0FBQ2lDLFdBQVcsR0FBRyxZQUFZO0FBRXpDO0FBQ0EsT0FBTyxJQUFNQyxVQUFVLGdCQUFHM0MsSUFBSSxDQUFDUyxjQUFjLENBRU87QUFFcEQsZUFBZWtDLFVBQVUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvRGlhbG9nRm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uLy4uL0RpYWxvZyc7XG5pbXBvcnQgeyBQcm9Gb3JtIH0gZnJvbSAnLi4vUHJvRm9ybSc7XG5pbXBvcnQgeyBDU1NfUFJFRklYIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZU92ZXJsYXlGb3JtIH0gZnJvbSAnLi91c2VPdmVybGF5Rm9ybSc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1kaWFsb2ctZm9ybWApO1xuY29uc3QgRGlhbG9nRm9ybUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgeyBvcGVuLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIHRpdGxlLCB3aWR0aCwgc3VibWl0VGltZW91dCwgYXV0b0Nsb3NlID0gdHJ1ZSwgZGlhbG9nUHJvcHMsIG9uRmluaXNoLCBzdWJtaXR0ZXIsIGNoaWxkcmVuLCBcbiAgICAvLyBkZXN0cm95T25DbG9zZSBpcyBhY2NlcHRlZCBmb3IgQVBJIGNvbXBhdCBidXQgbm90IHVzZWQg4oCUXG4gICAgLy8gRGlhbG9nJ3Mgb3duIHVzZVByZXNlbmNlIGFscmVhZHkgdW5tb3VudHMgdGhlIGVudGlyZSBET00gdHJlZVxuICAgIC8vIChpbmNsdWRpbmcgZm9ybSBjb250ZW50KSBhZnRlciB0aGUgY2xvc2UgYW5pbWF0aW9uIGZpbmlzaGVzLlxuICAgIGRlc3Ryb3lPbkNsb3NlOiBfZGVzdHJveU9uQ2xvc2UgfSA9IHByb3BzLCBmb3JtUHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcIm9wZW5cIiwgXCJvbk9wZW5DaGFuZ2VcIiwgXCJ0cmlnZ2VyXCIsIFwidGl0bGVcIiwgXCJ3aWR0aFwiLCBcInN1Ym1pdFRpbWVvdXRcIiwgXCJhdXRvQ2xvc2VcIiwgXCJkaWFsb2dQcm9wc1wiLCBcIm9uRmluaXNoXCIsIFwic3VibWl0dGVyXCIsIFwiY2hpbGRyZW5cIiwgXCJkZXN0cm95T25DbG9zZVwiXSk7XG4gICAgY29uc3QgeyBtZXJnZWRPcGVuLCB0cmlnZ2VyTm9kZSwgaGFuZGxlRmluaXNoLCBoYW5kbGVIaWRlLCB9ID0gdXNlT3ZlcmxheUZvcm0oeyBvcGVuLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIGF1dG9DbG9zZSwgc3VibWl0VGltZW91dCB9LCBvbkZpbmlzaCk7XG4gICAgcmV0dXJuIChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFt0cmlnZ2VyTm9kZSwgX2pzeChEaWFsb2csIE9iamVjdC5hc3NpZ24oe30sIGRpYWxvZ1Byb3BzLCB7IG9wZW46IG1lcmdlZE9wZW4sIHRpdGxlOiB0aXRsZSwgb25DYW5jZWw6IGhhbmRsZUhpZGUsIGZvb3RlcjogbnVsbCB9LCAod2lkdGggIT09IHVuZGVmaW5lZCA/IHsgcm9vdFN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGRpYWxvZ1Byb3BzID09PSBudWxsIHx8IGRpYWxvZ1Byb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkaWFsb2dQcm9wcy5yb290U3R5bGUpLCB7IHdpZHRoIH0pIH0gOiB7fSksIHsgY2hpbGRyZW46IF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoKSwgY2hpbGRyZW46IF9qc3goUHJvRm9ybSwgT2JqZWN0LmFzc2lnbih7fSwgZm9ybVByb3BzLCB7IG9uRmluaXNoOiBoYW5kbGVGaW5pc2gsIHN1Ym1pdHRlcjogc3VibWl0dGVyICE9PSB1bmRlZmluZWQgPyBzdWJtaXR0ZXIgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRCdXR0b25Qcm9wczogeyBvbkNsaWNrOiBoYW5kbGVIaWRlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRUZXh0OiAoX2EgPSBkaWFsb2dQcm9wcyA9PT0gbnVsbCB8fCBkaWFsb2dQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGlhbG9nUHJvcHMuY2FuY2VsVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ0NhbmNlbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpIH0pIH0pKV0gfSkpO1xufTtcbkRpYWxvZ0Zvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ0RpYWxvZ0Zvcm0nO1xuLyoqIEdlbmVyaWMtYXdhcmUgZXhwb3J0IOKAlCBrZWVwcyBgPERpYWxvZ0Zvcm08TXlWYWx1ZXM+IOKApj5gIGZ1bGx5IHR5cGVkLiAqL1xuZXhwb3J0IGNvbnN0IERpYWxvZ0Zvcm0gPSBtZW1vKERpYWxvZ0Zvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IERpYWxvZ0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,3 +1,7 @@
1
+ import type { ReactElement } from 'react';
1
2
  import type { DrawerFormProps } from '../interface';
2
- export declare const DrawerForm: import("react").NamedExoticComponent<DrawerFormProps>;
3
+ /** Generic-aware export keeps `<DrawerForm<MyValues> …>` fully typed. */
4
+ export declare const DrawerForm: (<Values = Record<string, unknown>>(props: DrawerFormProps<Values>) => ReactElement | null) & {
5
+ displayName?: string;
6
+ };
3
7
  export default DrawerForm;
@@ -68,6 +68,7 @@ var DrawerFormBase = function DrawerFormBase(props) {
68
68
  });
69
69
  };
70
70
  DrawerFormBase.displayName = 'DrawerForm';
71
+ /** Generic-aware export — keeps `<DrawerForm<MyValues> …>` fully typed. */
71
72
  export var DrawerForm = /*#__PURE__*/memo(DrawerFormBase);
72
73
  export default DrawerForm;
73
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiRHJhd2VyIiwiUHJvRm9ybSIsIkNTU19QUkVGSVgiLCJ1c2VPdmVybGF5Rm9ybSIsImNsYXNzZXMiLCJjb25jYXQiLCJEcmF3ZXJGb3JtQmFzZSIsInByb3BzIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsInRyaWdnZXIiLCJ0aXRsZSIsIl9wcm9wcyR3aWR0aCIsIndpZHRoIiwiX3Byb3BzJHBsYWNlbWVudCIsInBsYWNlbWVudCIsInN1Ym1pdFRpbWVvdXQiLCJfcHJvcHMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwiZHJhd2VyUHJvcHMiLCJvbkZpbmlzaCIsInN1Ym1pdHRlciIsImNoaWxkcmVuIiwiX2Rlc3Ryb3lPbkNsb3NlIiwiZGVzdHJveU9uQ2xvc2UiLCJmb3JtUHJvcHMiLCJfdXNlT3ZlcmxheUZvcm0iLCJtZXJnZWRPcGVuIiwidHJpZ2dlck5vZGUiLCJoYW5kbGVGaW5pc2giLCJoYW5kbGVIaWRlIiwiYXNzaWduIiwib25DbG9zZSIsImZvb3RlciIsImNsYXNzTmFtZSIsInVuZGVmaW5lZCIsInJlc2V0QnV0dG9uUHJvcHMiLCJvbkNsaWNrIiwicmVzZXRUZXh0IiwiZGlzcGxheU5hbWUiLCJEcmF3ZXJGb3JtIl0sIm1hcHBpbmdzIjoi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Q3RCUixTQUFTLEVBQUVBLFNBQVMsS0FBS2MsU0FBUyxHQUFHZCxTQUFTLEdBQUc7WUFDL0NlLGdCQUFnQixFQUFFO2NBQUVDLE9BQU8sRUFBRVA7WUFBVSxDQUFFO1lBQ3pDUSxTQUFTLEVBQUU7VUQvQkQsQ0NnQ1g7VUFBQWhCLFFBQUEsRUFFQUE7UUFBUSxDQUFBLENBQUE7TUFDRCxDQUFBO0lBQ04sQ0FBQSxDQUFBLENBQ0M7RUFBQSxDQUFBLENBQ1I7QUFFUCxDQUFDO0FBRURoQixjQUFjLENBQUNpQyxXQUFXLEdBQUcsWUFBWTtBQUV6QyxPQUFPLElBQU1DLFVBQVUsZ0JBQUczQyxJQUFJLENBQUNTLGNBQWMsQ0FBQztBQUU5QyxlQUFla0MsVUFBVSIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9EcmF3ZXJGb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgRHJhd2VyIH0gZnJvbSAnLi4vLi4vRHJhd2VyJztcbmltcG9ydCB7IFByb0Zvcm0gfSBmcm9tICcuLi9Qcm9Gb3JtJztcbmltcG9ydCB7IENTU19QUkVGSVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlT3ZlcmxheUZvcm0gfSBmcm9tICcuL3VzZU92ZXJsYXlGb3JtJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LWRyYXdlci1mb3JtYCk7XG5jb25zdCBEcmF3ZXJGb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgb3Blbiwgb25PcGVuQ2hhbmdlLCB0cmlnZ2VyLCB0aXRsZSwgd2lkdGggPSA0ODAsIHBsYWNlbWVudCA9ICdyaWdodCcsIHN1Ym1pdFRpbWVvdXQsIGF1dG9DbG9zZSA9IHRydWUsIGRyYXdlclByb3BzLCBvbkZpbmlzaCwgc3VibWl0dGVyLCBjaGlsZHJlbiwgXG4gICAgLy8gZGVzdHJveU9uQ2xvc2UgaXMgYWNjZXB0ZWQgZm9yIEFQSSBjb21wYXQgYnV0IG5vdCB1c2VkIOKAlFxuICAgIC8vIERyYXdlcidzIG93biB1c2VEcmF3ZXJUcmFuc2l0aW9uIGFscmVhZHkgdW5tb3VudHMgdGhlIGVudGlyZVxuICAgIC8vIERPTSB0cmVlIChpbmNsdWRpbmcgZm9ybSBjb250ZW50KSBhZnRlciB0aGUgY2xvc2UgYW5pbWF0aW9uLlxuICAgIGRlc3Ryb3lPbkNsb3NlOiBfZGVzdHJveU9uQ2xvc2UgfSA9IHByb3BzLCBmb3JtUHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcIm9wZW5cIiwgXCJvbk9wZW5DaGFuZ2VcIiwgXCJ0cmlnZ2VyXCIsIFwidGl0bGVcIiwgXCJ3aWR0aFwiLCBcInBsYWNlbWVudFwiLCBcInN1Ym1pdFRpbWVvdXRcIiwgXCJhdXRvQ2xvc2VcIiwgXCJkcmF3ZXJQcm9wc1wiLCBcIm9uRmluaXNoXCIsIFwic3VibWl0dGVyXCIsIFwiY2hpbGRyZW5cIiwgXCJkZXN0cm95T25DbG9zZVwiXSk7XG4gICAgY29uc3QgeyBtZXJnZWRPcGVuLCB0cmlnZ2VyTm9kZSwgaGFuZGxlRmluaXNoLCBoYW5kbGVIaWRlLCB9ID0gdXNlT3ZlcmxheUZvcm0oeyBvcGVuLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIGF1dG9DbG9zZSwgc3VibWl0VGltZW91dCB9LCBvbkZpbmlzaCk7XG4gICAgcmV0dXJuIChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFt0cmlnZ2VyTm9kZSwgX2pzeChEcmF3ZXIsIE9iamVjdC5hc3NpZ24oe30sIGRyYXdlclByb3BzLCB7IG9wZW46IG1lcmdlZE9wZW4sIHRpdGxlOiB0aXRsZSwgcGxhY2VtZW50OiBwbGFjZW1lbnQsIHdpZHRoOiB3aWR0aCwgb25DbG9zZTogaGFuZGxlSGlkZSwgZm9vdGVyOiBudWxsLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogX2pzeChQcm9Gb3JtLCBPYmplY3QuYXNzaWduKHt9LCBmb3JtUHJvcHMsIHsgb25GaW5pc2g6IGhhbmRsZUZpbmlzaCwgc3VibWl0dGVyOiBzdWJtaXR0ZXIgIT09IHVuZGVmaW5lZCA/IHN1Ym1pdHRlciA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldEJ1dHRvblByb3BzOiB7IG9uQ2xpY2s6IGhhbmRsZUhpZGUgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFRleHQ6ICdDYW5jZWwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSB9KSB9KSldIH0pKTtcbn07XG5EcmF3ZXJGb3JtQmFzZS5kaXNwbGF5TmFtZSA9ICdEcmF3ZXJGb3JtJztcbmV4cG9ydCBjb25zdCBEcmF3ZXJGb3JtID0gbWVtbyhEcmF3ZXJGb3JtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBEcmF3ZXJGb3JtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
74
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiRHJhd2VyIiwiUHJvRm9ybSIsIkNTU19QUkVGSVgiLCJ1c2VPdmVybGF5Rm9ybSIsImNsYXNzZXMiLCJjb25jYXQiLCJEcmF3ZXJGb3JtQmFzZSIsInByb3BzIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsInRyaWdnZXIiLCJ0aXRsZSIsIl9wcm9wcyR3aWR0aCIsIndpZHRoIiwiX3Byb3BzJHBsYWNlbWVudCIsInBsYWNlbWVudCIsInN1Ym1pdFRpbWVvdXQiLCJfcHJvcHMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwiZHJhd2VyUHJvcHMiLCJvbkZpbmlzaCIsInN1Ym1pdHRlciIsImNoaWxkcmVuIiwiX2Rlc3Ryb3lPbkNsb3NlIiwiZGVzdHJveU9uQ2xvc2UiLCJmb3JtUHJvcHMiLCJfdXNlT3ZlcmxheUZvcm0iLCJtZXJnZWRPcGVuIiwidHJpZ2dlck5vZGUiLCJoYW5kbGVGaW5pc2giLCJoYW5kbGVIaWRlIiwiYXNzaWduIiwib25DbG9zZSIsImZvb3RlciIsImNsYXNzTmFtZSIsInVuZGVmaW5lZCIsInJlc2V0QnV0dG9uUHJvcHMiLCJvbkNsaWNrIiwicmVzZXRUZXh0IiwiZGlzcGxheU5hbWUiLCJEcmF3ZXJGb3JtIl0sIm1hcHBpbmdzIjoi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Q3RCUixTQUFTLEVBQUVBLFNBQVMsS0FBS2MsU0FBUyxHQUFHZCxTQUFTLEdBQUc7WUFDL0NlLGdCQUFnQixFQUFFO2NBQUVDLE9BQU8sRUFBRVA7WUFBVSxDQUFFO1lBQ3pDUSxTQUFTLEVBQUU7VUQvQkQsQ0NnQ1g7VUFBQWhCLFFBQUEsRUFFQUE7UUFBUSxDQUFBLENBQUE7TUFDRCxDQUFBO0lBQ04sQ0FBQSxDQUFBLENBQ0M7RUFBQSxDQUFBLENBQ1I7QUFFUCxDQUFDO0FBRURoQixjQUFjLENBQUNpQyxXQUFXLEdBQUcsWUFBWTtBQUV6QztBQUNBLE9BQU8sSUFBTUMsVUFBVSxnQkFBRzNDLElBQUksQ0FBQ1MsY0FBYyxDQUVPO0FBRXBELGVBQWVrQyxVQUFVIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBEcmF3ZXIgfSBmcm9tICcuLi8uLi9EcmF3ZXInO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VPdmVybGF5Rm9ybSB9IGZyb20gJy4vdXNlT3ZlcmxheUZvcm0nO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tZHJhd2VyLWZvcm1gKTtcbmNvbnN0IERyYXdlckZvcm1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBvcGVuLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIHRpdGxlLCB3aWR0aCA9IDQ4MCwgcGxhY2VtZW50ID0gJ3JpZ2h0Jywgc3VibWl0VGltZW91dCwgYXV0b0Nsb3NlID0gdHJ1ZSwgZHJhd2VyUHJvcHMsIG9uRmluaXNoLCBzdWJtaXR0ZXIsIGNoaWxkcmVuLCBcbiAgICAvLyBkZXN0cm95T25DbG9zZSBpcyBhY2NlcHRlZCBmb3IgQVBJIGNvbXBhdCBidXQgbm90IHVzZWQg4oCUXG4gICAgLy8gRHJhd2VyJ3Mgb3duIHVzZURyYXdlclRyYW5zaXRpb24gYWxyZWFkeSB1bm1vdW50cyB0aGUgZW50aXJlXG4gICAgLy8gRE9NIHRyZWUgKGluY2x1ZGluZyBmb3JtIGNvbnRlbnQpIGFmdGVyIHRoZSBjbG9zZSBhbmltYXRpb24uXG4gICAgZGVzdHJveU9uQ2xvc2U6IF9kZXN0cm95T25DbG9zZSB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wib3BlblwiLCBcIm9uT3BlbkNoYW5nZVwiLCBcInRyaWdnZXJcIiwgXCJ0aXRsZVwiLCBcIndpZHRoXCIsIFwicGxhY2VtZW50XCIsIFwic3VibWl0VGltZW91dFwiLCBcImF1dG9DbG9zZVwiLCBcImRyYXdlclByb3BzXCIsIFwib25GaW5pc2hcIiwgXCJzdWJtaXR0ZXJcIiwgXCJjaGlsZHJlblwiLCBcImRlc3Ryb3lPbkNsb3NlXCJdKTtcbiAgICBjb25zdCB7IG1lcmdlZE9wZW4sIHRyaWdnZXJOb2RlLCBoYW5kbGVGaW5pc2gsIGhhbmRsZUhpZGUsIH0gPSB1c2VPdmVybGF5Rm9ybSh7IG9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlLCBzdWJtaXRUaW1lb3V0IH0sIG9uRmluaXNoKTtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW3RyaWdnZXJOb2RlLCBfanN4KERyYXdlciwgT2JqZWN0LmFzc2lnbih7fSwgZHJhd2VyUHJvcHMsIHsgb3BlbjogbWVyZ2VkT3BlbiwgdGl0bGU6IHRpdGxlLCBwbGFjZW1lbnQ6IHBsYWNlbWVudCwgd2lkdGg6IHdpZHRoLCBvbkNsb3NlOiBoYW5kbGVIaWRlLCBmb290ZXI6IG51bGwsIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBvbkZpbmlzaDogaGFuZGxlRmluaXNoLCBzdWJtaXR0ZXI6IHN1Ym1pdHRlciAhPT0gdW5kZWZpbmVkID8gc3VibWl0dGVyIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0QnV0dG9uUHJvcHM6IHsgb25DbGljazogaGFuZGxlSGlkZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VGV4dDogJ0NhbmNlbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpIH0pIH0pKV0gfSkpO1xufTtcbkRyYXdlckZvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ0RyYXdlckZvcm0nO1xuLyoqIEdlbmVyaWMtYXdhcmUgZXhwb3J0IOKAlCBrZWVwcyBgPERyYXdlckZvcm08TXlWYWx1ZXM+IOKApj5gIGZ1bGx5IHR5cGVkLiAqL1xuZXhwb3J0IGNvbnN0IERyYXdlckZvcm0gPSBtZW1vKERyYXdlckZvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IERyYXdlckZvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,4 +1,7 @@
1
+ import type { ReactElement } from 'react';
1
2
  import type { QueryFilterProps } from '../interface';
2
- import React from 'react';
3
- export declare const QueryFilter: React.NamedExoticComponent<QueryFilterProps>;
3
+ /** Generic-aware export — keeps `<QueryFilter<MyValues> …>` fully typed. */
4
+ export declare const QueryFilter: (<Values = Record<string, unknown>>(props: QueryFilterProps<Values>) => ReactElement | null) & {
5
+ displayName?: string;
6
+ };
4
7
  export default QueryFilter;
@@ -9,7 +9,8 @@ var __rest = this && this.__rest || function (s, e) {
9
9
  };
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  import { memo, useMemo, useRef } from 'react';
12
- import { useControlledState, useMemoizedFn } from '@1money/hooks';
12
+ import useControlledState from '@1money/hooks/useControlledState';
13
+ import useMemoizedFn from '@1money/hooks/useMemoizedFn';
13
14
  import { default as classnames } from '../../../utils/classnames';
14
15
  import { Button } from '../../Button';
15
16
  import { ProForm } from '../ProForm';
@@ -27,20 +28,32 @@ function getUrlParams() {
27
28
  });
28
29
  return params;
29
30
  }
30
- function setUrlParams(params) {
31
- if (typeof window === 'undefined') return;
32
- var sp = new URLSearchParams();
31
+ /**
32
+ * Write the filter values into the URL while PRESERVING unrelated query params
33
+ * (e.g. `?tab=...`). Only keys previously written by this filter (tracked in
34
+ * `managedKeys`) are cleared before writing, so reset removes exactly what the
35
+ * filter added. Returns the new set of managed keys.
36
+ */
37
+ function setUrlParams(params, managedKeys) {
38
+ if (typeof window === 'undefined') return new Set(managedKeys);
39
+ var sp = new URLSearchParams(window.location.search);
40
+ managedKeys.forEach(function (k) {
41
+ return sp["delete"](k);
42
+ });
43
+ var written = new Set();
33
44
  for (var _i = 0, _Object$entries = Object.entries(params); _i < _Object$entries.length; _i++) {
34
45
  var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
35
46
  k = _Object$entries$_i[0],
36
47
  v = _Object$entries$_i[1];
37
48
  if (v !== null && v !== undefined && v !== '') {
38
49
  sp.set(k, String(v));
50
+ written.add(k);
39
51
  }
40
52
  }
41
53
  var search = sp.toString();
42
54
  var url = search ? "".concat(window.location.pathname, "?").concat(search) : window.location.pathname;
43
55
  window.history.replaceState(null, '', url);
56
+ return written;
44
57
  }
45
58
  // ---------------------------------------------------------------------------
46
59
  // QueryFilter
@@ -70,27 +83,79 @@ var QueryFilterBase = function QueryFilterBase(props) {
70
83
  collapsed = _useControlledState2[0],
71
84
  setCollapsed = _useControlledState2[1];
72
85
  // ── syncToUrl: merge URL params into initial values on mount ──
73
- var syncInitRef = useRef(false);
86
+ // One-time snapshot of the URL params at mount. Lazy ref init is IDEMPOTENT,
87
+ // so it is safe under StrictMode's double render (an impure "first run" flag
88
+ // inside useMemo would return the unmerged value on the replay invocation).
89
+ var urlParamsAtMountRef = useRef(null);
90
+ if (urlParamsAtMountRef.current === null) {
91
+ urlParamsAtMountRef.current = syncToUrl ? getUrlParams() : {};
92
+ }
93
+ // Keys this filter has WRITTEN to the URL — the only keys submit/reset is
94
+ // allowed to clear. The function form of syncToUrl also seeds this from its
95
+ // filtered 'get' result (those keys are the filter's own by definition).
96
+ var managedKeysRef = useRef(new Set());
97
+ // Boolean-mode only: URL params merged into initialValues but NOT yet
98
+ // claimed. The boolean form cannot tell its own params from foreign ones
99
+ // (?tab=…), so a seeded key is claimed only once its value changes (or it
100
+ // disappears from the submitted values, i.e. the user cleared the field).
101
+ var urlSeededRef = useRef({});
74
102
  var initialValues = useMemo(function () {
75
- if (!syncToUrl || syncInitRef.current) return initialValuesProp;
76
- syncInitRef.current = true;
77
- var urlParams = getUrlParams();
103
+ var _a;
104
+ if (!syncToUrl) return initialValuesProp;
105
+ var urlParams = (_a = urlParamsAtMountRef.current) !== null && _a !== void 0 ? _a : {};
78
106
  if (typeof syncToUrl === 'function') {
79
- return Object.assign(Object.assign({}, initialValuesProp), syncToUrl(urlParams, 'get'));
107
+ var fromUrl = syncToUrl(urlParams, 'get');
108
+ // Idempotent ref writes — same input on every invocation.
109
+ managedKeysRef.current = new Set(Object.keys(fromUrl));
110
+ return Object.assign(Object.assign({}, initialValuesProp), fromUrl);
80
111
  }
112
+ urlSeededRef.current = Object.assign({}, urlParams);
81
113
  return Object.assign(Object.assign({}, initialValuesProp), urlParams);
82
114
  }, []);
83
115
  var handleSyncSet = useMemoizedFn(function (values) {
84
116
  if (!syncToUrl) return;
85
- var toWrite = typeof syncToUrl === 'function' ? syncToUrl(values, 'set') : values;
86
- setUrlParams(toWrite);
117
+ var toWrite;
118
+ var toClear = new Set(managedKeysRef.current);
119
+ if (typeof syncToUrl === 'function') {
120
+ toWrite = syncToUrl(values, 'set');
121
+ } else {
122
+ // Skip URL-seeded keys we never wrote whose value is unchanged — they
123
+ // may belong to someone else (?tab=…); leave them in the URL untouched.
124
+ // A seeded key whose value DID change is claimed from now on.
125
+ toWrite = {};
126
+ for (var _i2 = 0, _Object$entries2 = Object.entries(values); _i2 < _Object$entries2.length; _i2++) {
127
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
128
+ key = _Object$entries2$_i[0],
129
+ value = _Object$entries2$_i[1];
130
+ var seeded = urlSeededRef.current[key];
131
+ if (seeded !== undefined && !managedKeysRef.current.has(key) && String(value) === seeded) {
132
+ continue;
133
+ }
134
+ delete urlSeededRef.current[key];
135
+ toClear.add(key);
136
+ toWrite[key] = value;
137
+ }
138
+ // Seeded keys missing from the submitted values were cleared by the
139
+ // user (omitNil strips empty values) — claim them and remove their
140
+ // stale params from the URL.
141
+ for (var _i3 = 0, _Object$keys = Object.keys(urlSeededRef.current); _i3 < _Object$keys.length; _i3++) {
142
+ var _key = _Object$keys[_i3];
143
+ if (!(_key in values)) {
144
+ delete urlSeededRef.current[_key];
145
+ toClear.add(_key);
146
+ }
147
+ }
148
+ }
149
+ managedKeysRef.current = setUrlParams(toWrite, toClear);
87
150
  });
88
151
  var handleFinish = useMemoizedFn(function (values) {
89
152
  handleSyncSet(values);
90
153
  onFinish === null || onFinish === void 0 ? void 0 : onFinish(values);
91
154
  });
92
155
  var handleReset = useMemoizedFn(function () {
93
- if (syncToUrl) setUrlParams({});
156
+ if (syncToUrl) {
157
+ managedKeysRef.current = setUrlParams({}, managedKeysRef.current);
158
+ }
94
159
  onReset === null || onReset === void 0 ? void 0 : onReset();
95
160
  });
96
161
  var handleCollapse = useMemoizedFn(function () {
@@ -157,6 +222,7 @@ var QueryFilterBase = function QueryFilterBase(props) {
157
222
  }));
158
223
  };
159
224
  QueryFilterBase.displayName = 'QueryFilter';
225
+ /** Generic-aware export — keeps `<QueryFilter<MyValues> …>` fully typed. */
160
226
  export var QueryFilter = /*#__PURE__*/memo(QueryFilterBase);
161
227
  export default QueryFilter;
162
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJQcm9Gb3JtIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlJlYWN0IiwiY2xhc3NlcyIsImNvbmNhdCIsImdldFVybFBhcmFtcyIsIndpbmRvdyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZm9yRWFjaCIsInYiLCJrIiwic2V0VXJsUGFyYW1zIiwic3AiLCJfaSIsIl9PYmplY3QkZW50cmllcyIsImVudHJpZXMiLCJfT2JqZWN0JGVudHJpZXMkX2kiLCJfc2xpY2VkVG9BcnJheSIsInVuZGVmaW5lZCIsInNldCIsIlN0cmluZyIsInRvU3RyaW5nIiwidXJsIiwicGF0aG5hbWUiLCJoaXN0b3J5IiwicmVwbGFjZVN0YXRlIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX3Byb3BzJGRlZmF1bHRDb2xsYXBzIiwiZGVmYXVsdENvbGxhcHNlZCIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJvbkNvbGxhcHNlIiwiX3Byb3BzJGRlZmF1bHRDb2xzTnVtIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwiX3Byb3BzJHNwbGl0Iiwic3BsaXQiLCJzZWFyY2hDb25maWciLCJzeW5jVG9VcmwiLCJvbkZpbmlzaCIsIm9uUmVzZXQiLCJjaGlsZHJlbiIsIl9wcm9wcyRzdWJtaXR0ZXIiLCJzdWJtaXR0ZXIiLCJpbml0aWFsVmFsdWVzUHJvcCIsImluaXRpYWxWYWx1ZXMiLCJmb3JtUHJvcHMiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJzZXRDb2xsYXBzZWQiLCJzeW5jSW5pdFJlZiIsImN1cnJlbnQiLCJ1cmxQYXJhbXMiLCJhc3NpZ24iLCJoYW5kbGVTeW5jU2V0IiwidmFsdWVzIiwidG9Xcml0ZSIsImhhbmRsZUZpbmlzaCIsImhhbmRsZVJlc2V0IiwiaGFuZGxlQ29sbGFwc2UiLCJuZXh0IiwiY2hpbGRBcnJheSIsImFyciIsIkNoaWxkcmVuIiwiY2hpbGQiLCJpc1ZhbGlkRWxlbWVudCIsInB1c2giLCJ2aXNpYmxlQ2hpbGRyZW4iLCJzbGljZSIsImhhc01vcmUiLCJzZWFyY2hUZXh0IiwicmVzZXRUZXh0IiwicmVzZXQiLCJidXR0b25TaXplIiwic2l6ZSIsImxhYmVsU3R5bGUiLCJ3aWR0aCIsImNsYXNzTmFtZSIsIm1hcCIsImluZGV4IiwiRnJhZ21lbnQiLCJzdHlsZSIsInR5cGUiLCJjb2xvciIsIm9uQ2xpY2siLCJ2YXJpYW50IiwiZXhwYW5kIiwiY29sbGFwc2UiLCJkaXNwbGF5TmFtZSIsIlF1ZXJ5RmlsdGVyIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVQsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUlOLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDTyxvQkFBb0IsQ0FBQ0wsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsRUFDMUVSLENBQUMsQ0FBQ0MsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHVixDQUFDLENBQUNHLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUM7RUFDekI7RUFDSixPQUFPUixDQUFDO0FBQ1osQ0FBQztBQUNELFNBQVNXLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNYOUQsU0FBU0MsSUFBSSxFQUFZQyxPQUFPLEVBQWFDLE1BQU0sUUFBUSxPQUFPO0FBRWxFLFNBQVNDLGtCQUFrQixFQUFFQyxhQUFhLFFBQVEsZUFBZTtBQUNqRSxTQUFTQyxPQUFPLElBQUlDLFVBQVUsUUFBaUIsMkJBQTJCO0FBQzFFLFNBQVNDLE1BQU0sUUFBUSxjQUFjO0FBQ3JDLFNBQVNDLE9BQU8sUUFBUSxZQUFZO0FBQ3BDLFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxRQUFRLGNBQWM7QUFFdkQsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFFekIsSUFBTUMsT0FBTyxHQUFHTixVQUFVLElBQUFPLE1BQUEsQ0FBSUosVUFBVSxrQkFBZSxDQUFDO0FBRXhEO0FBQ0E7QUFDQTtBQUNBLFNBQVNLLFlBQVlBLENBQUEsRUFBQTtFQUNuQixJQUFJLE9BQU9DLE1BQU0sS0FBSyxXQUFXLEVBQUUsT0FBTyxDQUFBLENBQUU7RUFDNUMsSUFBTUMsTUFBTSxHQUEyQixDQUFBLENBQUU7RUFDekMsSUFBSUMsZUFBZSxDQUFDRixNQUFNLENBQUNHLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDLENBQUNDLE9BQU8sQ0FBQyxVQUFDQyxDQUFDLEVBQUVDLENBQUMsRUFBSTtJQUMzRE4sTUFBTSxDQUFDTSxDQUFDLENBQUMsR0FBR0QsQ0FBQztFQUNmLENBQUMsQ0FBQztFQUNGLE9BQU9MLE1BQU07QUFDZjtBQUVBLFNBQVNPLFlBQVlBLENBQUNQLE1BQStCLEVBQUE7RUFDbkQsSUFBSSxPQUFPRCxNQUFNLEtBQUssV0FBVyxFQUFFO0VBQ25DLElBQU1TLEVBQUUsR0FBRyxJQUFJUCxlQUFlLENBQUEsQ0FBRTtFQUNoQyxTQUFBUSxFQUFBLE1BQUFDLGVBQUEsR0FBcUJ2QyxNQUFNLENBQUN3QyxPQUFPLENBQUNYLE1BQU0sQ0FBQyxFQUFBUyxFQUFBLEdBQUFDLGVBQUEsQ0FBQWhDLE1BQUEsRUFBQStCLEVBQUEsSUFBRTtJQUF4QyxJQUFBRyxrQkFBQSxHQUFBQyxjQUFBLENBQUFILGVBQUEsQ0FBQUQsRUFBQTtNQUFPSCxDQUFDLEdBQUFNLGtCQUFBO01BQUVQLENBQUMsR0FBQU8sa0JBQUE7SUFDZCxJQUFJUCxDQUFDLEtBQUssSUFBSSxJQUFJQSxDQUFDLEtBQUtTLFNBQVMsSUFBSVQsQ0FBQyxLQUFLLEVBQUUsRUFBRTtNQUM3Q0csRUFBRSxDQUFDTyxHQUFHLENBQUNULENBQUMsRUFBRVUsTUFBTSxDQUFDWCxDQUFDLENBQUMsQ0FBQztJQUN0QjtFQUNGO0VBQ0EsSUFBTUYsTUFBTSxHQUFHSyxFQUFFLENBQUNTLFFBQVEsQ0FBQSxDQUFFO0VBQzVCLElBQU1DLEdBQUcsR0FBR2YsTUFBTSxNQUFBTixNQUFBLENBQU1FLE1BQU0sQ0FBQ0csUUFBUSxDQUFDaUIsUUFBUSxPQUFBdEIsTUFBQSxDQUFJTSxNQUFNLElBQUtKLE1BQU0sQ0FBQ0csUUFBUSxDQUFDaUIsUUFBUTtFQUN2RnBCLE1BQU0sQ0FBQ3FCLE9BQU8sQ0FBQ0MsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUVILEdBQUcsQ0FBQztBQUM1QztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQU1JLGVBQWUsR0FBeUIsU0FBeENBLGVBQWVBLENBQTBCQyxLQUFLLEVBQUk7RURTcEQsSUFBSUMsRUFBRSxFQUFFQyxFQUFFO0VDUlosSUFBQUMscUJBQUEsR0FlSUgsS0FBSyxDQWRQSSxnQkFBZ0I7SUFBaEJBLGdCQUFnQixHQUFBRCxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7SUFDWkUsbUJBQW1CLEdBYTVCTCxLQUFLLENBYlBNLFNBQVM7SUFDVEMsVUFBVSxHQVlSUCxLQUFLLENBWlBPLFVBQVU7SUFBQUMscUJBQUEsR0FZUlIsS0FBSyxDQVhQUyxpQkFBaUI7SUFBakJBLGlCQUFpQixHQUFBRCxxQkFBQSxjQUFHLENBQUMsR0FBQUEscUJBQUE7SUFDckJFLFVBQVUsR0FVUlYsS0FBSyxDQVZQVSxVQUFVO0lBQUFDLFlBQUEsR0FVUlgsS0FBSyxDQVRQWSxLQUFLO0lBQUxBLEtBQUssR0FBQUQsWUFBQSxjQUFHLEtBQUssR0FBQUEsWUFBQTtJQUNiRSxZQUFZLEdBUVZiLEtBQUssQ0FSUGEsWUFBWTtJQUNaQyxTQUFTLEdBT1BkLEtBQUssQ0FQUGMsU0FBUztJQUNUQyxRQUFRLEdBTU5mLEtBQUssQ0FOUGUsUUFBUTtJQUNSQyxPQUFPLEdBS0xoQixLQUFLLENBTFBnQixPQUFPO0lBQ1BDLFFBQVEsR0FJTmpCLEtBQUssQ0FKUGlCLFFBQVE7SUFBQUMsZ0JBQUEsR0FJTmxCLEtBQUssQ0FIUG1CLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHLEtBQUssR0FBQUEsZ0JBQUE7SUFDRkUsaUJBQWlCLEdBRTlCcEIsS0FBSyxDQUZQcUIsYUFBYTtJQUNWQyxTQUFTLEdBQUEvRSxNQUFBLENBQ1Z5RCxLQUFLLEVBZkgsQ0FBQSxrQkFBQSxFQUFBLFdBQUEsRUFBQSxZQUFBLEVBQUEsbUJBQUEsRUFBQSxZQUFBLEVBQUEsT0FBQSxFQUFBLGNBQUEsRUFBQSxXQUFBLEVBQUEsVUFBQSxFQUFBLFNBQUEsRUFBQSxVQUFBLEVBQUEsV0FBQSxFQUFBLGVBQUEsQ0FlTCxDQUFRO0VBRVQsSUFBQXVCLG1CQUFBLEdBQWtDM0Qsa0JBQWtCLENBQ2xEd0MsZ0JBQWdCLEVBQ2hCQyxtQkFBbUIsQ0FDcEI7SUFBQW1CLG9CQUFBLEdBQUFsQyxjQUFBLENBQUFpQyxtQkFBQTtJQUhNakIsU0FBUyxHQUFBa0Isb0JBQUE7SUFBRUMsWUFBWSxHQUFBRCxvQkFBQTtFQUs5QjtFQUNBLElBQU1FLFdBQVcsR0FBRy9ELE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFDakMsSUFBTTBELGFBQWEsR0FBRzNELE9BQU8sQ0FBQyxZQUFLO0lBQ2pDLElBQUksQ0FBQ29ELFNBQVMsSUFBSVksV0FBVyxDQUFDQyxPQUFPLEVBQUUsT0FBT1AsaUJBQWlCO0lBQy9ETSxXQUFXLENBQUNDLE9BQU8sR0FBRyxJQUFJO0lBQzFCLElBQU1DLFNBQVMsR0FBR3JELFlBQVksQ0FBQSxDQUFFO0lBQ2hDLElBQUksT0FBT3VDLFNBQVMsS0FBSyxVQUFVLEVBQUU7TUFDbkMsT0FBQWxFLE1BQUEsQ0FBQWlGLE1BQUEsQ0FBQWpGLE1BQUEsQ0FBQWlGLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBWVQsaUJBQWlCLENBQUEsRUFBS04sU0FBUyxDQUFDYyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDL0Q7SUFDQSxPQUFBaEYsTUFBQSxDQUFBaUYsTUFBQSxDQUFBakYsTUFBQSxDQUFBaUYsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFZVCxpQkFBaUIsQ0FBQSxFQUFLUSxTQUFTLENBQUE7RUFDN0MsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU1FLGFBQWEsR0FBR2pFLGFBQWEsQ0FBQyxVQUFDa0UsTUFBK0IsRUFBSTtJQUN0RSxJQUFJLENBQUNqQixTQUFTLEVBQUU7SUFDaEIsSUFBTWtCLE9BQU8sR0FBRyxPQUFPbEIsU0FBUyxLQUFLLFVBQVUsR0FDM0NBLFNBQVMsQ0FBQ2lCLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FDeEJBLE1BQU07SUFDVi9DLFlBQVksQ0FBQ2dELE9BQU8sQ0FBQztFQUN2QixDQUFDLENBQUM7RUFFRixJQUFNQyxZQUFZLEdBQUdwRSxhQUFhLENBQUMsVUFBQ2tFLE1BQStCLEVBQUk7SUFDckVELGFBQWEsQ0FBQ0MsTUFBTSxDQUFDO0lBQ3JCaEIsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLENBQUdnQixNQUFNLENBQUM7RUFDcEIsQ0FBQyxDQUFDO0VBRUYsSUFBTUcsV0FBVyxHQUFHckUsYUFBYSxDQUFDLFlBQUs7SUFDckMsSUFBSWlELFNBQVMsRUFBRTlCLFlBQVksQ0FBQyxDQUFBLENBQUUsQ0FBQztJQUMvQmdDLE9BQU8sS0FBQSxJQUFBLElBQVBBLE9BQU8sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUEEsT0FBTyxDQUFBLENBQUk7RUFDYixDQUFDLENBQUM7RUFFRixJQUFNbUIsY0FBYyxHQUFHdEUsYUFBYSxDQUFDLFlBQUs7SUFDeEMsSUFBTXVFLElBQUksR0FBRyxDQUFDOUIsU0FBUztJQUN2Qm1CLFlBQVksQ0FBQ1csSUFBSSxDQUFDO0lBQ2xCN0IsVUFBVSxLQUFBLElBQUEsSUFBVkEsVUFBVSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFWQSxVQUFVLENBQUc2QixJQUFJLENBQUM7RUFDcEIsQ0FBQyxDQUFDO0VBRUY7RUFDQSxJQUFNQyxVQUFVLEdBQUczRSxPQUFPLENBQUMsWUFBSztJQUM5QixJQUFNNEUsR0FBRyxHQUFnQixFQUFFO0lBQzNCbEUsS0FBSyxDQUFDbUUsUUFBUSxDQUFDMUQsT0FBTyxDQUFDb0MsUUFBUSxFQUFFLFVBQUN1QixLQUFLLEVBQUk7TUFDekMsaUJBQUlwRSxLQUFLLENBQUNxRSxjQUFjLENBQUNELEtBQUssQ0FBQyxFQUFFO1FBQy9CRixHQUFHLENBQUNJLElBQUksQ0FBQ0YsS0FBSyxDQUFDO01BQ2pCO0lBQ0YsQ0FBQyxDQUFDO0lBQ0YsT0FBT0YsR0FBRztFQUNaLENBQUMsRUFBRSxDQUFDckIsUUFBUSxDQUFDLENBQUM7RUFFZCxJQUFNMEIsZUFBZSxHQUFHckMsU0FBUyxHQUM3QitCLFVBQVUsQ0FBQ08sS0FBSyxDQUFDLENBQUMsRUFBRW5DLGlCQUFpQixDQUFDLEdBQ3RDNEIsVUFBVTtFQUVkLElBQU1RLE9BQU8sR0FBR1IsVUFBVSxDQUFDbEYsTUFBTSxHQUFHc0QsaUJBQWlCO0VBRXJELElBQU1xQyxVQUFVLEdBQUcsQ0FBQTdDLEVBQUEsR0FBQVksWUFBWSxLQUFBLElBQUEsSUFBWkEsWUFBWSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFaQSxZQUFZLENBQUVpQyxVQUFVLE1BQUEsSUFBQSxJQUFBN0MsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUk5QixZQUFZLENBQUNTLE1BQU07RUFDbEUsSUFBTW1FLFNBQVMsR0FBRyxDQUFBN0MsRUFBQSxHQUFBVyxZQUFZLEtBQUEsSUFBQSxJQUFaQSxZQUFZLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVpBLFlBQVksQ0FBRWtDLFNBQVMsTUFBQSxJQUFBLElBQUE3QyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSS9CLFlBQVksQ0FBQzZFLEtBQUs7RUFDL0QsSUFBTUMsVUFBVSxHQUFHcEMsWUFBWSxLQUFBLElBQUEsSUFBWkEsWUFBWSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFaQSxZQUFZLENBQUVxQyxJQUFJO0VBRXJDLElBQU1DLFVBQVUsR0FBR3pDLFVBQVUsS0FBS25CLFNBQVMsSUFBSW1CLFVBQVUsS0FBSyxNQUFNLEdBQ2hFO0lBQUUwQyxLQUFLLEVBQUUxQztFQUFVLENBQXlCLEdBQzVDbkIsU0FBUztFQUViLE9BQ0VqQyxJQUFBLENBQUNXLE9BQU8sRUFBQXJCLE1BQUEsQ0FBQWlGLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDRlAsU0FBUyxFQUFBO0lBQ2JELGFBQWEsRUFBRUEsYUFBYTtJQUM1Qk4sUUFBUSxFQUFFa0IsWUFBWTtJQUN0QmpCLE9BQU8sRUFBRWtCLFdBQVc7SUFDcEJmLFNBQVMsRUFBRSxLQUFLO0lBQUFGLFFBQUEsRUFFaEJ6RCxLQUFBLENBQUEsS0FBQSxFQUFBO01BQUs2RixTQUFTLEVBQUVoRixPQUFPLENBQUEsQ0FBRTtNQUFBNEMsUUFBQSxFQUFBLENBQ3RCMEIsZUFBZSxDQUFDVyxHQUFHLENBQUMsVUFBQ2QsS0FBSyxFQUFFZSxLQUFLO1FBQUEsT0FDaEMvRixLQUFBLENBQUNZLEtBQUssQ0FBQ29GLFFBQVEsRUFBQTtVQUFBdkMsUUFBQSxFQUFBLENBQ1pMLEtBQUssSUFBSTJDLEtBQUssR0FBRyxDQUFDLElBQUlqRyxJQUFBLENBQUEsS0FBQSxFQUFBO1lBQUsrRixTQUFTLEVBQUVoRixPQUFPLENBQUMsT0FBTztVQUFDLENBQUEsQ0FBSSxFQUMxRDhFLFVBQVUsR0FDVDdGLElBQUEsQ0FBQSxLQUFBLEVBQUE7WUFBS21HLEtBQUssRUFBRU4sVUFBVTtZQUFBbEMsUUFBQSxFQUFHdUI7VUFBSyxDQUFBLENBQU8sR0FFckNBLEtBQ0Q7UUFBQSxDQUFBLEVBTmtCZSxLQUFLLENBT1Q7TUFBQSxDQUNsQixDQUFDLEVBRUYvRixLQUFBLENBQUEsS0FBQSxFQUFBO1FBQUs2RixTQUFTLEVBQUVoRixPQUFPLENBQUMsU0FBUyxDQUFDO1FBQUE0QyxRQUFBLEVBQUEsQ0FDaEMzRCxJQUFBLENBQUNVLE1BQU0sRUFBQTtVQUFDMEYsSUFBSSxFQUFDLFFBQVE7VUFBQ0MsS0FBSyxFQUFDLFNBQVM7VUFBQ1QsSUFBSSxFQUFFRCxVQUFVO1VBQUFoQyxRQUFBLEVBQ25ENkI7UUFBVSxDQUFBLENBQ0osRUFDVHhGLElBQUEsQ0FBQ1UsTUFBTSxFQUFBO1VBQUMwRixJQUFJLEVBQUMsUUFBUTtVQUFDQyxLQUFLLEVBQUMsV0FBVztVQUFDVCxJQUFJLEVBQUVELFVBQVU7VUFBRVcsT0FBTyxFQUFFMUIsV0FBVztVQUFBakIsUUFBQSxFQUMzRThCO1FBQVMsQ0FBQSxDQUNILEVBQ1JGLE9BQU8sSUFDTnZGLElBQUEsQ0FBQ1UsTUFBTSxFQUFBO1VBQUMwRixJQUFJLEVBQUMsUUFBUTtVQUFDRyxPQUFPLEVBQUMsTUFBTTtVQUFDWCxJQUFJLEVBQUVELFVBQVU7VUFBRVcsT0FBTyxFQUFFekIsY0FBYztVQUFBbEIsUUFBQSxFQUMzRVgsU0FBUyxHQUFHbkMsWUFBWSxDQUFDMkYsTUFBTSxHQUFHM0YsWUFBWSxDQUFDNEY7UUFBUSxDQUFBLENBRTNEO01BQUEsQ0FBQSxDQUNHO0lBQUEsQ0FBQTtFQUNGLENBQUEsQ0FBQSxDQUNFO0FBRWQsQ0FBQztBQUVEaEUsZUFBZSxDQUFDaUUsV0FBVyxHQUFHLGFBQWE7QUFFM0MsT0FBTyxJQUFNQyxXQUFXLGdCQUFHeEcsSUFBSSxDQUFDc0MsZUFBZSxDQUFDO0FBRWhELGVBQWVrRSxXQUFXIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlTWVtb2l6ZWRGbiB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1xdWVyeS1maWx0ZXJgKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVVJMIHN5bmMgaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBnZXRVcmxQYXJhbXMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgIHBhcmFtc1trXSA9IHY7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIHNldFVybFBhcmFtcyhwYXJhbXMpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBzcCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwYXJhbXMpKSB7XG4gICAgICAgIGlmICh2ICE9PSBudWxsICYmIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSAnJykge1xuICAgICAgICAgICAgc3Auc2V0KGssIFN0cmluZyh2KSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc2VhcmNoID0gc3AudG9TdHJpbmcoKTtcbiAgICBjb25zdCB1cmwgPSBzZWFyY2ggPyBgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9PyR7c2VhcmNofWAgOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsICcnLCB1cmwpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBRdWVyeUZpbHRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBRdWVyeUZpbHRlckJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgZGVmYXVsdENvbGxhcHNlZCA9IHRydWUsIGNvbGxhcHNlZDogY29udHJvbGxlZENvbGxhcHNlZCwgb25Db2xsYXBzZSwgZGVmYXVsdENvbHNOdW1iZXIgPSAzLCBsYWJlbFdpZHRoLCBzcGxpdCA9IGZhbHNlLCBzZWFyY2hDb25maWcsIHN5bmNUb1VybCwgb25GaW5pc2gsIG9uUmVzZXQsIGNoaWxkcmVuLCBzdWJtaXR0ZXIgPSBmYWxzZSwgaW5pdGlhbFZhbHVlczogaW5pdGlhbFZhbHVlc1Byb3AgfSA9IHByb3BzLCBmb3JtUHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcImRlZmF1bHRDb2xsYXBzZWRcIiwgXCJjb2xsYXBzZWRcIiwgXCJvbkNvbGxhcHNlXCIsIFwiZGVmYXVsdENvbHNOdW1iZXJcIiwgXCJsYWJlbFdpZHRoXCIsIFwic3BsaXRcIiwgXCJzZWFyY2hDb25maWdcIiwgXCJzeW5jVG9VcmxcIiwgXCJvbkZpbmlzaFwiLCBcIm9uUmVzZXRcIiwgXCJjaGlsZHJlblwiLCBcInN1Ym1pdHRlclwiLCBcImluaXRpYWxWYWx1ZXNcIl0pO1xuICAgIGNvbnN0IFtjb2xsYXBzZWQsIHNldENvbGxhcHNlZF0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdENvbGxhcHNlZCwgY29udHJvbGxlZENvbGxhcHNlZCk7XG4gICAgLy8g4pSA4pSAIHN5bmNUb1VybDogbWVyZ2UgVVJMIHBhcmFtcyBpbnRvIGluaXRpYWwgdmFsdWVzIG9uIG1vdW50IOKUgOKUgFxuICAgIGNvbnN0IHN5bmNJbml0UmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpbml0aWFsVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICghc3luY1RvVXJsIHx8IHN5bmNJbml0UmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gaW5pdGlhbFZhbHVlc1Byb3A7XG4gICAgICAgIHN5bmNJbml0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBjb25zdCB1cmxQYXJhbXMgPSBnZXRVcmxQYXJhbXMoKTtcbiAgICAgICAgaWYgKHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXNQcm9wKSwgc3luY1RvVXJsKHVybFBhcmFtcywgJ2dldCcpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpbml0aWFsVmFsdWVzUHJvcCksIHVybFBhcmFtcyk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZVN5bmNTZXQgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaWYgKCFzeW5jVG9VcmwpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHRvV3JpdGUgPSB0eXBlb2Ygc3luY1RvVXJsID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IHN5bmNUb1VybCh2YWx1ZXMsICdzZXQnKVxuICAgICAgICAgICAgOiB2YWx1ZXM7XG4gICAgICAgIHNldFVybFBhcmFtcyh0b1dyaXRlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVGaW5pc2ggPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaGFuZGxlU3luY1NldCh2YWx1ZXMpO1xuICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZXNldCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBpZiAoc3luY1RvVXJsKVxuICAgICAgICAgICAgc2V0VXJsUGFyYW1zKHt9KTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ29sbGFwc2UgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dCA9ICFjb2xsYXBzZWQ7XG4gICAgICAgIHNldENvbGxhcHNlZChuZXh0KTtcbiAgICAgICAgb25Db2xsYXBzZSA9PT0gbnVsbCB8fCBvbkNvbGxhcHNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbGxhcHNlKG5leHQpO1xuICAgIH0pO1xuICAgIC8vIENvdW50IGNoaWxkcmVuIGFuZCBzcGxpdCB2aXNpYmxlL2hpZGRlblxuICAgIGNvbnN0IGNoaWxkQXJyYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgYXJyID0gW107XG4gICAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGFyci5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfSwgW2NoaWxkcmVuXSk7XG4gICAgY29uc3QgdmlzaWJsZUNoaWxkcmVuID0gY29sbGFwc2VkXG4gICAgICAgID8gY2hpbGRBcnJheS5zbGljZSgwLCBkZWZhdWx0Q29sc051bWJlcilcbiAgICAgICAgOiBjaGlsZEFycmF5O1xuICAgIGNvbnN0IGhhc01vcmUgPSBjaGlsZEFycmF5Lmxlbmd0aCA+IGRlZmF1bHRDb2xzTnVtYmVyO1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSAoX2EgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcuc2VhcmNoVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogREVGQVVMVF9URVhULnNlYXJjaDtcbiAgICBjb25zdCByZXNldFRleHQgPSAoX2IgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcucmVzZXRUZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQucmVzZXQ7XG4gICAgY29uc3QgYnV0dG9uU2l6ZSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zaXplO1xuICAgIGNvbnN0IGxhYmVsU3R5bGUgPSBsYWJlbFdpZHRoICE9PSB1bmRlZmluZWQgJiYgbGFiZWxXaWR0aCAhPT0gJ2F1dG8nXG4gICAgICAgID8geyB3aWR0aDogbGFiZWxXaWR0aCB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeChQcm9Gb3JtLCBPYmplY3QuYXNzaWduKHt9LCBmb3JtUHJvcHMsIHsgaW5pdGlhbFZhbHVlczogaW5pdGlhbFZhbHVlcywgb25GaW5pc2g6IGhhbmRsZUZpbmlzaCwgb25SZXNldDogaGFuZGxlUmVzZXQsIHN1Ym1pdHRlcjogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW3Zpc2libGVDaGlsZHJlbi5tYXAoKGNoaWxkLCBpbmRleCkgPT4gKF9qc3hzKFJlYWN0LkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbc3BsaXQgJiYgaW5kZXggPiAwICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NwbGl0JykgfSksIGxhYmVsU3R5bGUgPyAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBsYWJlbFN0eWxlLCBjaGlsZHJlbjogY2hpbGQgfSkpIDogKGNoaWxkKV0gfSwgaW5kZXgpKSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBzaXplOiBidXR0b25TaXplLCBjaGlsZHJlbjogc2VhcmNoVGV4dCB9KSwgX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IGJ1dHRvblNpemUsIG9uQ2xpY2s6IGhhbmRsZVJlc2V0LCBjaGlsZHJlbjogcmVzZXRUZXh0IH0pLCBoYXNNb3JlICYmIChfanN4KEJ1dHRvbiwgeyB0eXBlOiBcImJ1dHRvblwiLCB2YXJpYW50OiBcInRleHRcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgb25DbGljazogaGFuZGxlQ29sbGFwc2UsIGNoaWxkcmVuOiBjb2xsYXBzZWQgPyBERUZBVUxUX1RFWFQuZXhwYW5kIDogREVGQVVMVF9URVhULmNvbGxhcHNlIH0pKV0gfSldIH0pIH0pKSk7XG59O1xuUXVlcnlGaWx0ZXJCYXNlLmRpc3BsYXlOYW1lID0gJ1F1ZXJ5RmlsdGVyJztcbmV4cG9ydCBjb25zdCBRdWVyeUZpbHRlciA9IG1lbW8oUXVlcnlGaWx0ZXJCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFF1ZXJ5RmlsdGVyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
228
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJQcm9Gb3JtIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlJlYWN0IiwiY2xhc3NlcyIsImNvbmNhdCIsImdldFVybFBhcmFtcyIsIndpbmRvdyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZm9yRWFjaCIsInYiLCJrIiwic2V0VXJsUGFyYW1zIiwibWFuYWdlZEtleXMiLCJTZXQiLCJzcCIsIndyaXR0ZW4iLCJfaSIsIl9PYmplY3QkZW50cmllcyIsImVudHJpZXMiLCJfT2JqZWN0JGVudHJpZXMkX2kiLCJfc2xpY2VkVG9BcnJheSIsInVuZGVmaW5lZCIsInNldCIsIlN0cmluZyIsImFkZCIsInRvU3RyaW5nIiwidXJsIiwicGF0aG5hbWUiLCJoaXN0b3J5IiwicmVwbGFjZVN0YXRlIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX3Byb3BzJGRlZmF1bHRDb2xsYXBzIiwiZGVmYXVsdENvbGxhcHNlZCIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJvbkNvbGxhcHNlIiwiX3Byb3BzJGRlZmF1bHRDb2xzTnVtIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwiX3Byb3BzJHNwbGl0Iiwic3BsaXQiLCJzZWFyY2hDb25maWciLCJzeW5jVG9VcmwiLCJvbkZpbmlzaCIsIm9uUmVzZXQiLCJjaGlsZHJlbiIsIl9wcm9wcyRzdWJtaXR0ZXIiLCJzdWJtaXR0ZXIiLCJpbml0aWFsVmFsdWVzUHJvcCIsImluaXRpYWxWYWx1ZXMiLCJmb3JtUHJvcHMiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJzZXRDb2xsYXBzZWQiLCJ1cmxQYXJhbXNBdE1vdW50UmVmIiwiY3VycmVudCIsIm1hbmFnZWRLZXlzUmVmIiwidXJsU2VlZGVkUmVmIiwidXJsUGFyYW1zIiwiZnJvbVVybCIsImtleXMiLCJhc3NpZ24iLCJoYW5kbGVTeW5jU2V0IiwidmFsdWVzIiwidG9Xcml0ZSIsInRvQ2xlYXIiLCJfaTIiLCJfT2JqZWN0JGVudHJpZXMyIiwiX09iamVjdCRlbnRyaWVzMiRfaSIsImtleSIsInZhbHVlIiwic2VlZGVkIiwiaGFzIiwiX2kzIiwiX09iamVjdCRrZXlzIiwiaGFuZGxlRmluaXNoIiwiaGFuZGxlUmVzZXQiLCJoYW5kbGVDb2xsYXBzZSIsIm5leHQiLCJjaGlsZEFycmF5IiwiYXJyIiwiQ2hpbGRyZW4iLCJjaGlsZCIsImlzVmFsaWRFbGVtZW50IiwicHVzaCIsInZpc2libGVDaGlsZHJlbiIsInNsaWNlIiwiaGFzTW9yZSIsInNlYXJjaFRleHQiLCJyZXNldFRleHQiLCJyZXNldCIsImJ1dHRvblNpemUiLCJzaXplIiwibGFiZWxTdHlsZSIsIndpZHRoIiwiY2xhc3NOYW1lIiwibWFwIiwiaW5kZXgiLCJGcmFnbWVudCIsInN0eWxlIiwidHlwZSIsImNvbG9yIiwib25DbGljayIsInZhcmlhbnQiLCJleHBhbmQiLCJjb2xsYXBzZSIsImRpc3BsYXlOYW1lIiwiUXVlcnlGaWx0ZXIiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFN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eW91dHMvUXVlcnlGaWx0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1xdWVyeS1maWx0ZXJgKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVVJMIHN5bmMgaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBnZXRVcmxQYXJhbXMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgIHBhcmFtc1trXSA9IHY7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cbi8qKlxuICogV3JpdGUgdGhlIGZpbHRlciB2YWx1ZXMgaW50byB0aGUgVVJMIHdoaWxlIFBSRVNFUlZJTkcgdW5yZWxhdGVkIHF1ZXJ5IHBhcmFtc1xuICogKGUuZy4gYD90YWI9Li4uYCkuIE9ubHkga2V5cyBwcmV2aW91c2x5IHdyaXR0ZW4gYnkgdGhpcyBmaWx0ZXIgKHRyYWNrZWQgaW5cbiAqIGBtYW5hZ2VkS2V5c2ApIGFyZSBjbGVhcmVkIGJlZm9yZSB3cml0aW5nLCBzbyByZXNldCByZW1vdmVzIGV4YWN0bHkgd2hhdCB0aGVcbiAqIGZpbHRlciBhZGRlZC4gUmV0dXJucyB0aGUgbmV3IHNldCBvZiBtYW5hZ2VkIGtleXMuXG4gKi9cbmZ1bmN0aW9uIHNldFVybFBhcmFtcyhwYXJhbXMsIG1hbmFnZWRLZXlzKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4gbmV3IFNldChtYW5hZ2VkS2V5cyk7XG4gICAgY29uc3Qgc3AgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIG1hbmFnZWRLZXlzLmZvckVhY2goKGspID0+IHNwLmRlbGV0ZShrKSk7XG4gICAgY29uc3Qgd3JpdHRlbiA9IG5ldyBTZXQoKTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwYXJhbXMpKSB7XG4gICAgICAgIGlmICh2ICE9PSBudWxsICYmIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSAnJykge1xuICAgICAgICAgICAgc3Auc2V0KGssIFN0cmluZyh2KSk7XG4gICAgICAgICAgICB3cml0dGVuLmFkZChrKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWFyY2ggPSBzcC50b1N0cmluZygpO1xuICAgIGNvbnN0IHVybCA9IHNlYXJjaCA/IGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0/JHtzZWFyY2h9YCA6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgJycsIHVybCk7XG4gICAgcmV0dXJuIHdyaXR0ZW47XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFF1ZXJ5RmlsdGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFF1ZXJ5RmlsdGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgeyBkZWZhdWx0Q29sbGFwc2VkID0gdHJ1ZSwgY29sbGFwc2VkOiBjb250cm9sbGVkQ29sbGFwc2VkLCBvbkNvbGxhcHNlLCBkZWZhdWx0Q29sc051bWJlciA9IDMsIGxhYmVsV2lkdGgsIHNwbGl0ID0gZmFsc2UsIHNlYXJjaENvbmZpZywgc3luY1RvVXJsLCBvbkZpbmlzaCwgb25SZXNldCwgY2hpbGRyZW4sIHN1Ym1pdHRlciA9IGZhbHNlLCBpbml0aWFsVmFsdWVzOiBpbml0aWFsVmFsdWVzUHJvcCB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiZGVmYXVsdENvbGxhcHNlZFwiLCBcImNvbGxhcHNlZFwiLCBcIm9uQ29sbGFwc2VcIiwgXCJkZWZhdWx0Q29sc051bWJlclwiLCBcImxhYmVsV2lkdGhcIiwgXCJzcGxpdFwiLCBcInNlYXJjaENvbmZpZ1wiLCBcInN5bmNUb1VybFwiLCBcIm9uRmluaXNoXCIsIFwib25SZXNldFwiLCBcImNoaWxkcmVuXCIsIFwic3VibWl0dGVyXCIsIFwiaW5pdGlhbFZhbHVlc1wiXSk7XG4gICAgY29uc3QgW2NvbGxhcHNlZCwgc2V0Q29sbGFwc2VkXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0Q29sbGFwc2VkLCBjb250cm9sbGVkQ29sbGFwc2VkKTtcbiAgICAvLyDilIDilIAgc3luY1RvVXJsOiBtZXJnZSBVUkwgcGFyYW1zIGludG8gaW5pdGlhbCB2YWx1ZXMgb24gbW91bnQg4pSA4pSAXG4gICAgLy8gT25lLXRpbWUgc25hcHNob3Qgb2YgdGhlIFVSTCBwYXJhbXMgYXQgbW91bnQuIExhenkgcmVmIGluaXQgaXMgSURFTVBPVEVOVCxcbiAgICAvLyBzbyBpdCBpcyBzYWZlIHVuZGVyIFN0cmljdE1vZGUncyBkb3VibGUgcmVuZGVyIChhbiBpbXB1cmUgXCJmaXJzdCBydW5cIiBmbGFnXG4gICAgLy8gaW5zaWRlIHVzZU1lbW8gd291bGQgcmV0dXJuIHRoZSB1bm1lcmdlZCB2YWx1ZSBvbiB0aGUgcmVwbGF5IGludm9jYXRpb24pLlxuICAgIGNvbnN0IHVybFBhcmFtc0F0TW91bnRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKHVybFBhcmFtc0F0TW91bnRSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICB1cmxQYXJhbXNBdE1vdW50UmVmLmN1cnJlbnQgPSBzeW5jVG9VcmwgPyBnZXRVcmxQYXJhbXMoKSA6IHt9O1xuICAgIH1cbiAgICAvLyBLZXlzIHRoaXMgZmlsdGVyIGhhcyBXUklUVEVOIHRvIHRoZSBVUkwg4oCUIHRoZSBvbmx5IGtleXMgc3VibWl0L3Jlc2V0IGlzXG4gICAgLy8gYWxsb3dlZCB0byBjbGVhci4gVGhlIGZ1bmN0aW9uIGZvcm0gb2Ygc3luY1RvVXJsIGFsc28gc2VlZHMgdGhpcyBmcm9tIGl0c1xuICAgIC8vIGZpbHRlcmVkICdnZXQnIHJlc3VsdCAodGhvc2Uga2V5cyBhcmUgdGhlIGZpbHRlcidzIG93biBieSBkZWZpbml0aW9uKS5cbiAgICBjb25zdCBtYW5hZ2VkS2V5c1JlZiA9IHVzZVJlZihuZXcgU2V0KCkpO1xuICAgIC8vIEJvb2xlYW4tbW9kZSBvbmx5OiBVUkwgcGFyYW1zIG1lcmdlZCBpbnRvIGluaXRpYWxWYWx1ZXMgYnV0IE5PVCB5ZXRcbiAgICAvLyBjbGFpbWVkLiBUaGUgYm9vbGVhbiBmb3JtIGNhbm5vdCB0ZWxsIGl0cyBvd24gcGFyYW1zIGZyb20gZm9yZWlnbiBvbmVzXG4gICAgLy8gKD90YWI94oCmKSwgc28gYSBzZWVkZWQga2V5IGlzIGNsYWltZWQgb25seSBvbmNlIGl0cyB2YWx1ZSBjaGFuZ2VzIChvciBpdFxuICAgIC8vIGRpc2FwcGVhcnMgZnJvbSB0aGUgc3VibWl0dGVkIHZhbHVlcywgaS5lLiB0aGUgdXNlciBjbGVhcmVkIHRoZSBmaWVsZCkuXG4gICAgY29uc3QgdXJsU2VlZGVkUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCBpbml0aWFsVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFzeW5jVG9VcmwpXG4gICAgICAgICAgICByZXR1cm4gaW5pdGlhbFZhbHVlc1Byb3A7XG4gICAgICAgIGNvbnN0IHVybFBhcmFtcyA9IChfYSA9IHVybFBhcmFtc0F0TW91bnRSZWYuY3VycmVudCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDoge307XG4gICAgICAgIGlmICh0eXBlb2Ygc3luY1RvVXJsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zdCBmcm9tVXJsID0gc3luY1RvVXJsKHVybFBhcmFtcywgJ2dldCcpO1xuICAgICAgICAgICAgLy8gSWRlbXBvdGVudCByZWYgd3JpdGVzIOKAlCBzYW1lIGlucHV0IG9uIGV2ZXJ5IGludm9jYXRpb24uXG4gICAgICAgICAgICBtYW5hZ2VkS2V5c1JlZi5jdXJyZW50ID0gbmV3IFNldChPYmplY3Qua2V5cyhmcm9tVXJsKSk7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpbml0aWFsVmFsdWVzUHJvcCksIGZyb21VcmwpO1xuICAgICAgICB9XG4gICAgICAgIHVybFNlZWRlZFJlZi5jdXJyZW50ID0gT2JqZWN0LmFzc2lnbih7fSwgdXJsUGFyYW1zKTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaW5pdGlhbFZhbHVlc1Byb3ApLCB1cmxQYXJhbXMpO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBoYW5kbGVTeW5jU2V0ID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGlmICghc3luY1RvVXJsKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBsZXQgdG9Xcml0ZTtcbiAgICAgICAgY29uc3QgdG9DbGVhciA9IG5ldyBTZXQobWFuYWdlZEtleXNSZWYuY3VycmVudCk7XG4gICAgICAgIGlmICh0eXBlb2Ygc3luY1RvVXJsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0b1dyaXRlID0gc3luY1RvVXJsKHZhbHVlcywgJ3NldCcpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gU2tpcCBVUkwtc2VlZGVkIGtleXMgd2UgbmV2ZXIgd3JvdGUgd2hvc2UgdmFsdWUgaXMgdW5jaGFuZ2VkIOKAlCB0aGV5XG4gICAgICAgICAgICAvLyBtYXkgYmVsb25nIHRvIHNvbWVvbmUgZWxzZSAoP3RhYj3igKYpOyBsZWF2ZSB0aGVtIGluIHRoZSBVUkwgdW50b3VjaGVkLlxuICAgICAgICAgICAgLy8gQSBzZWVkZWQga2V5IHdob3NlIHZhbHVlIERJRCBjaGFuZ2UgaXMgY2xhaW1lZCBmcm9tIG5vdyBvbi5cbiAgICAgICAgICAgIHRvV3JpdGUgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWVkZWQgPSB1cmxTZWVkZWRSZWYuY3VycmVudFtrZXldO1xuICAgICAgICAgICAgICAgIGlmIChzZWVkZWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICAhbWFuYWdlZEtleXNSZWYuY3VycmVudC5oYXMoa2V5KSAmJlxuICAgICAgICAgICAgICAgICAgICBTdHJpbmcodmFsdWUpID09PSBzZWVkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlbGV0ZSB1cmxTZWVkZWRSZWYuY3VycmVudFtrZXldO1xuICAgICAgICAgICAgICAgIHRvQ2xlYXIuYWRkKGtleSk7XG4gICAgICAgICAgICAgICAgdG9Xcml0ZVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTZWVkZWQga2V5cyBtaXNzaW5nIGZyb20gdGhlIHN1Ym1pdHRlZCB2YWx1ZXMgd2VyZSBjbGVhcmVkIGJ5IHRoZVxuICAgICAgICAgICAgLy8gdXNlciAob21pdE5pbCBzdHJpcHMgZW1wdHkgdmFsdWVzKSDigJQgY2xhaW0gdGhlbSBhbmQgcmVtb3ZlIHRoZWlyXG4gICAgICAgICAgICAvLyBzdGFsZSBwYXJhbXMgZnJvbSB0aGUgVVJMLlxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXJsU2VlZGVkUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCEoa2V5IGluIHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHVybFNlZWRlZFJlZi5jdXJyZW50W2tleV07XG4gICAgICAgICAgICAgICAgICAgIHRvQ2xlYXIuYWRkKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG1hbmFnZWRLZXlzUmVmLmN1cnJlbnQgPSBzZXRVcmxQYXJhbXModG9Xcml0ZSwgdG9DbGVhcik7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlRmluaXNoID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGhhbmRsZVN5bmNTZXQodmFsdWVzKTtcbiAgICAgICAgb25GaW5pc2ggPT09IG51bGwgfHwgb25GaW5pc2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoKHZhbHVlcyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgaWYgKHN5bmNUb1VybCkge1xuICAgICAgICAgICAgbWFuYWdlZEtleXNSZWYuY3VycmVudCA9IHNldFVybFBhcmFtcyh7fSwgbWFuYWdlZEtleXNSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ29sbGFwc2UgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dCA9ICFjb2xsYXBzZWQ7XG4gICAgICAgIHNldENvbGxhcHNlZChuZXh0KTtcbiAgICAgICAgb25Db2xsYXBzZSA9PT0gbnVsbCB8fCBvbkNvbGxhcHNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbGxhcHNlKG5leHQpO1xuICAgIH0pO1xuICAgIC8vIENvdW50IGNoaWxkcmVuIGFuZCBzcGxpdCB2aXNpYmxlL2hpZGRlblxuICAgIGNvbnN0IGNoaWxkQXJyYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgYXJyID0gW107XG4gICAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGFyci5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfSwgW2NoaWxkcmVuXSk7XG4gICAgY29uc3QgdmlzaWJsZUNoaWxkcmVuID0gY29sbGFwc2VkXG4gICAgICAgID8gY2hpbGRBcnJheS5zbGljZSgwLCBkZWZhdWx0Q29sc051bWJlcilcbiAgICAgICAgOiBjaGlsZEFycmF5O1xuICAgIGNvbnN0IGhhc01vcmUgPSBjaGlsZEFycmF5Lmxlbmd0aCA+IGRlZmF1bHRDb2xzTnVtYmVyO1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSAoX2EgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcuc2VhcmNoVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogREVGQVVMVF9URVhULnNlYXJjaDtcbiAgICBjb25zdCByZXNldFRleHQgPSAoX2IgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcucmVzZXRUZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQucmVzZXQ7XG4gICAgY29uc3QgYnV0dG9uU2l6ZSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zaXplO1xuICAgIGNvbnN0IGxhYmVsU3R5bGUgPSBsYWJlbFdpZHRoICE9PSB1bmRlZmluZWQgJiYgbGFiZWxXaWR0aCAhPT0gJ2F1dG8nXG4gICAgICAgID8geyB3aWR0aDogbGFiZWxXaWR0aCB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeChQcm9Gb3JtLCBPYmplY3QuYXNzaWduKHt9LCBmb3JtUHJvcHMsIHsgaW5pdGlhbFZhbHVlczogaW5pdGlhbFZhbHVlcywgb25GaW5pc2g6IGhhbmRsZUZpbmlzaCwgb25SZXNldDogaGFuZGxlUmVzZXQsIHN1Ym1pdHRlcjogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW3Zpc2libGVDaGlsZHJlbi5tYXAoKGNoaWxkLCBpbmRleCkgPT4gKF9qc3hzKFJlYWN0LkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbc3BsaXQgJiYgaW5kZXggPiAwICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NwbGl0JykgfSksIGxhYmVsU3R5bGUgPyAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBsYWJlbFN0eWxlLCBjaGlsZHJlbjogY2hpbGQgfSkpIDogKGNoaWxkKV0gfSwgaW5kZXgpKSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBzaXplOiBidXR0b25TaXplLCBjaGlsZHJlbjogc2VhcmNoVGV4dCB9KSwgX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IGJ1dHRvblNpemUsIG9uQ2xpY2s6IGhhbmRsZVJlc2V0LCBjaGlsZHJlbjogcmVzZXRUZXh0IH0pLCBoYXNNb3JlICYmIChfanN4KEJ1dHRvbiwgeyB0eXBlOiBcImJ1dHRvblwiLCB2YXJpYW50OiBcInRleHRcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgb25DbGljazogaGFuZGxlQ29sbGFwc2UsIGNoaWxkcmVuOiBjb2xsYXBzZWQgPyBERUZBVUxUX1RFWFQuZXhwYW5kIDogREVGQVVMVF9URVhULmNvbGxhcHNlIH0pKV0gfSldIH0pIH0pKSk7XG59O1xuUXVlcnlGaWx0ZXJCYXNlLmRpc3BsYXlOYW1lID0gJ1F1ZXJ5RmlsdGVyJztcbi8qKiBHZW5lcmljLWF3YXJlIGV4cG9ydCDigJQga2VlcHMgYDxRdWVyeUZpbHRlcjxNeVZhbHVlcz4g4oCmPmAgZnVsbHkgdHlwZWQuICovXG5leHBvcnQgY29uc3QgUXVlcnlGaWx0ZXIgPSBtZW1vKFF1ZXJ5RmlsdGVyQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBRdWVyeUZpbHRlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=