@1money/component-ui 0.0.75 β†’ 0.0.77

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 (153) hide show
  1. package/es/components/ProForm/ProForm.d.ts +1 -1
  2. package/es/components/ProForm/ProForm.js +46 -34
  3. package/es/components/ProForm/ProFormDependency.d.ts +2 -1
  4. package/es/components/ProForm/ProFormDependency.js +6 -16
  5. package/es/components/ProForm/ProFormItem.d.ts +7 -2
  6. package/es/components/ProForm/ProFormItem.js +5 -7
  7. package/es/components/ProForm/ProFormList.d.ts +6 -1
  8. package/es/components/ProForm/ProFormList.js +122 -42
  9. package/es/components/ProForm/SchemaForm.d.ts +1 -1
  10. package/es/components/ProForm/SchemaForm.js +8 -5
  11. package/es/components/ProForm/context.d.ts +8 -7
  12. package/es/components/ProForm/context.js +1 -1
  13. package/es/components/ProForm/core/constants.d.ts +3 -1
  14. package/es/components/ProForm/core/constants.js +8 -2
  15. package/es/components/ProForm/core/devWarning.d.ts +3 -0
  16. package/es/components/ProForm/core/devWarning.js +22 -0
  17. package/es/components/ProForm/core/formStore.d.ts +14 -6
  18. package/es/components/ProForm/core/formStore.js +21 -2
  19. package/es/components/ProForm/core/hooks/useForm.d.ts +1 -1
  20. package/es/components/ProForm/core/hooks/useForm.js +275 -107
  21. package/es/components/ProForm/core/hooks/useFormCore.d.ts +2 -2
  22. package/es/components/ProForm/core/hooks/useFormCore.js +121 -121
  23. package/es/components/ProForm/core/interface.d.ts +157 -103
  24. package/es/components/ProForm/core/namePathType.d.ts +25 -0
  25. package/es/components/ProForm/core/namePathType.js +2 -0
  26. package/es/components/ProForm/core/pathUtils.d.ts +5 -3
  27. package/es/components/ProForm/core/pathUtils.js +19 -1
  28. package/es/components/ProForm/core/runRules.d.ts +40 -17
  29. package/es/components/ProForm/core/runRules.js +480 -136
  30. package/es/components/ProForm/core/useFormItem.d.ts +7 -8
  31. package/es/components/ProForm/core/useFormItem.js +52 -82
  32. package/es/components/ProForm/core/validationError.d.ts +13 -0
  33. package/es/components/ProForm/core/validationError.js +29 -0
  34. package/es/components/ProForm/fields/ProFormCheckbox.d.ts +1 -1
  35. package/es/components/ProForm/fields/ProFormCheckboxGroup.d.ts +1 -1
  36. package/es/components/ProForm/fields/ProFormCheckboxGroup.js +19 -5
  37. package/es/components/ProForm/fields/ProFormDatePicker.d.ts +1 -1
  38. package/es/components/ProForm/fields/ProFormDatePicker.js +1 -1
  39. package/es/components/ProForm/fields/ProFormFieldSet.d.ts +7 -2
  40. package/es/components/ProForm/fields/ProFormFieldSet.js +49 -12
  41. package/es/components/ProForm/fields/ProFormPassword.d.ts +1 -1
  42. package/es/components/ProForm/fields/ProFormRadioGroup.d.ts +1 -1
  43. package/es/components/ProForm/fields/ProFormRadioGroup.js +8 -3
  44. package/es/components/ProForm/fields/ProFormSelect.d.ts +1 -1
  45. package/es/components/ProForm/fields/ProFormSelect.js +13 -7
  46. package/es/components/ProForm/fields/ProFormSlider.d.ts +1 -1
  47. package/es/components/ProForm/fields/ProFormSwitch.d.ts +1 -1
  48. package/es/components/ProForm/fields/ProFormText.d.ts +1 -1
  49. package/es/components/ProForm/fields/ProFormTextArea.d.ts +1 -1
  50. package/es/components/ProForm/fields/ProFormUpload.d.ts +1 -1
  51. package/es/components/ProForm/fields/ProFormUpload.js +1 -1
  52. package/es/components/ProForm/fields/createProFormField.d.ts +8 -2
  53. package/es/components/ProForm/fields/createProFormField.js +20 -27
  54. package/es/components/ProForm/hooks/useFieldRequest.d.ts +1 -1
  55. package/es/components/ProForm/hooks/useFieldRequest.js +10 -8
  56. package/es/components/ProForm/hooks/useUrlSync.d.ts +8 -7
  57. package/es/components/ProForm/hooks/useUrlSync.js +1 -1
  58. package/es/components/ProForm/index.d.ts +37 -27
  59. package/es/components/ProForm/index.js +4 -1
  60. package/es/components/ProForm/interface.d.ts +115 -119
  61. package/es/components/ProForm/layouts/DialogForm.d.ts +1 -1
  62. package/es/components/ProForm/layouts/DialogForm.js +1 -1
  63. package/es/components/ProForm/layouts/DrawerForm.d.ts +1 -1
  64. package/es/components/ProForm/layouts/DrawerForm.js +1 -1
  65. package/es/components/ProForm/layouts/QueryFilter.d.ts +1 -1
  66. package/es/components/ProForm/layouts/QueryFilter.js +24 -16
  67. package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
  68. package/es/components/ProForm/layouts/useOverlayForm.js +1 -1
  69. package/es/components/ProForm/utils.d.ts +15 -7
  70. package/es/components/ProForm/utils.js +51 -3
  71. package/es/components/Table/core/useTableSetup.js +2 -2
  72. package/es/components/Table/interface.d.ts +1 -1
  73. package/es/index.css +1 -1
  74. package/es/index.d.ts +1 -1
  75. package/es/index.js +1 -1
  76. package/lib/components/ProForm/ProForm.d.ts +1 -1
  77. package/lib/components/ProForm/ProForm.js +45 -33
  78. package/lib/components/ProForm/ProFormDependency.d.ts +2 -1
  79. package/lib/components/ProForm/ProFormDependency.js +5 -15
  80. package/lib/components/ProForm/ProFormItem.d.ts +7 -2
  81. package/lib/components/ProForm/ProFormItem.js +5 -7
  82. package/lib/components/ProForm/ProFormList.d.ts +6 -1
  83. package/lib/components/ProForm/ProFormList.js +120 -40
  84. package/lib/components/ProForm/SchemaForm.d.ts +1 -1
  85. package/lib/components/ProForm/SchemaForm.js +8 -5
  86. package/lib/components/ProForm/context.d.ts +8 -7
  87. package/lib/components/ProForm/context.js +1 -1
  88. package/lib/components/ProForm/core/constants.d.ts +3 -1
  89. package/lib/components/ProForm/core/constants.js +9 -3
  90. package/lib/components/ProForm/core/devWarning.d.ts +3 -0
  91. package/lib/components/ProForm/core/devWarning.js +29 -0
  92. package/lib/components/ProForm/core/formStore.d.ts +14 -6
  93. package/lib/components/ProForm/core/formStore.js +23 -2
  94. package/lib/components/ProForm/core/hooks/useForm.d.ts +1 -1
  95. package/lib/components/ProForm/core/hooks/useForm.js +271 -103
  96. package/lib/components/ProForm/core/hooks/useFormCore.d.ts +2 -2
  97. package/lib/components/ProForm/core/hooks/useFormCore.js +119 -119
  98. package/lib/components/ProForm/core/interface.d.ts +157 -103
  99. package/lib/components/ProForm/core/namePathType.d.ts +25 -0
  100. package/lib/components/ProForm/core/namePathType.js +6 -0
  101. package/lib/components/ProForm/core/pathUtils.d.ts +5 -3
  102. package/lib/components/ProForm/core/pathUtils.js +20 -1
  103. package/lib/components/ProForm/core/runRules.d.ts +40 -17
  104. package/lib/components/ProForm/core/runRules.js +483 -137
  105. package/lib/components/ProForm/core/useFormItem.d.ts +7 -8
  106. package/lib/components/ProForm/core/useFormItem.js +54 -84
  107. package/lib/components/ProForm/core/validationError.d.ts +13 -0
  108. package/lib/components/ProForm/core/validationError.js +36 -0
  109. package/lib/components/ProForm/fields/ProFormCheckbox.d.ts +1 -1
  110. package/lib/components/ProForm/fields/ProFormCheckboxGroup.d.ts +1 -1
  111. package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +18 -4
  112. package/lib/components/ProForm/fields/ProFormDatePicker.d.ts +1 -1
  113. package/lib/components/ProForm/fields/ProFormDatePicker.js +1 -1
  114. package/lib/components/ProForm/fields/ProFormFieldSet.d.ts +7 -2
  115. package/lib/components/ProForm/fields/ProFormFieldSet.js +49 -12
  116. package/lib/components/ProForm/fields/ProFormPassword.d.ts +1 -1
  117. package/lib/components/ProForm/fields/ProFormRadioGroup.d.ts +1 -1
  118. package/lib/components/ProForm/fields/ProFormRadioGroup.js +7 -2
  119. package/lib/components/ProForm/fields/ProFormSelect.d.ts +1 -1
  120. package/lib/components/ProForm/fields/ProFormSelect.js +13 -7
  121. package/lib/components/ProForm/fields/ProFormSlider.d.ts +1 -1
  122. package/lib/components/ProForm/fields/ProFormSwitch.d.ts +1 -1
  123. package/lib/components/ProForm/fields/ProFormText.d.ts +1 -1
  124. package/lib/components/ProForm/fields/ProFormTextArea.d.ts +1 -1
  125. package/lib/components/ProForm/fields/ProFormUpload.d.ts +1 -1
  126. package/lib/components/ProForm/fields/ProFormUpload.js +1 -1
  127. package/lib/components/ProForm/fields/createProFormField.d.ts +8 -2
  128. package/lib/components/ProForm/fields/createProFormField.js +20 -27
  129. package/lib/components/ProForm/hooks/useFieldRequest.d.ts +1 -1
  130. package/lib/components/ProForm/hooks/useFieldRequest.js +10 -8
  131. package/lib/components/ProForm/hooks/useUrlSync.d.ts +8 -7
  132. package/lib/components/ProForm/hooks/useUrlSync.js +1 -1
  133. package/lib/components/ProForm/index.d.ts +37 -27
  134. package/lib/components/ProForm/index.js +10 -1
  135. package/lib/components/ProForm/interface.d.ts +115 -119
  136. package/lib/components/ProForm/layouts/DialogForm.d.ts +1 -1
  137. package/lib/components/ProForm/layouts/DialogForm.js +1 -1
  138. package/lib/components/ProForm/layouts/DrawerForm.d.ts +1 -1
  139. package/lib/components/ProForm/layouts/DrawerForm.js +1 -1
  140. package/lib/components/ProForm/layouts/QueryFilter.d.ts +1 -1
  141. package/lib/components/ProForm/layouts/QueryFilter.js +24 -16
  142. package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
  143. package/lib/components/ProForm/layouts/useOverlayForm.js +1 -1
  144. package/lib/components/ProForm/utils.d.ts +15 -7
  145. package/lib/components/ProForm/utils.js +52 -3
  146. package/lib/components/Table/core/useTableSetup.js +2 -2
  147. package/lib/components/Table/interface.d.ts +1 -1
  148. package/lib/index.css +1 -1
  149. package/lib/index.d.ts +1 -1
  150. package/lib/index.js +1 -1
  151. package/package.json +1 -1
  152. package/scripts/mcp-server/examples.generated.json +95 -53
  153. package/scripts/mcp-server/index.generated.json +1715 -185
package/lib/index.d.ts CHANGED
@@ -91,4 +91,4 @@ export type { TourProps, TourStep } from './components/Tour';
91
91
  export type { TooltipProps, TooltipPlacement } from './components/Tooltip';
92
92
  export type { TriggerProps, TriggerAction, TriggerContent, TriggerContentContext, TriggerRole, } from './components/Trigger';
93
93
  export type { UploadProps, UploadFileBarProps, } from './components/Upload';
94
- export type { ProFormProps, ProFormItemProps, ProFormItemSharedProps, ProFormLayoutConfig, ProFormFieldProps, ProFormContextValue, ProFormFormInstance, ProFormValidateResult, ProFormFieldName, ProFormMode, ProFormColProps, ProFormValueType, ProFormFieldTransformFn, ProFormFieldConvertValueFn, ProFormDateFormatter, ProFormValueEnumObj, ProFormRequestOption, ProFormFieldSetProps, ProFormGroupProps, SubmitterProps, ProFormDependencyProps, ProFormListProps, ProFormListAction, DialogFormProps, DrawerFormProps, QueryFilterProps, CreateProFormFieldConfig, ProFormSchemaColumn, ProFormSchemaValueType, SchemaFormProps, UseFormWatch, } from './components/ProForm';
94
+ export type { ProFormSyncToUrl, ProFormProps, ProFormItemProps, ProFormItemSharedProps, ProFormLayoutConfig, ProFormFieldProps, ProFormContextValue, ProFormStableContextValue, ProFormStateContextValue, ProFormFormInstance, ProFormValidateResult, ProFormFieldName, ProFormPathValue, ProFormFieldValueMap, ProFormRecursivePartial, ProFormValuesPatch, ProFormMode, ProFormColProps, ProFormValueType, ProFormFieldTransformFn, ProFormFieldConvertValueFn, ProFormDateFormatter, ProFormValueEnumObj, ProFormFieldOptionValue, ProFormRequestOption, FormListContextValue, ProFormFieldSetProps, ProFormGroupProps, SubmitterProps, ProFormDependencyProps, ProFormListProps, ProFormListAction, DialogFormProps, DrawerFormProps, QueryFilterProps, CreateProFormFieldConfig, ProFormSchemaColumn, ProFormSchemaColumns, ProFormSchemaValueType, SchemaFormProps, UseFormWatch, } from './components/ProForm';
package/lib/index.js CHANGED
@@ -541,4 +541,4 @@ var _Typography = require("./components/Typography");
541
541
  var _Tooltip = require("./components/Tooltip");
542
542
  var _Trigger = require("./components/Trigger");
543
543
  var _Upload = require("./components/Upload");
544
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbIl9BY2NvcmRpb24iLCJyZXF1aXJlIiwiX0FsZXJ0IiwiX0J1dHRvbiIsIl9DYWxlbmRhciIsIl9DZWxsIiwiX0Nhcm91c2VsIiwiX0NoZWNrYm94IiwiX0NvYWNoTWFyayIsIl9Db3B5IiwiX0RpdmlkZXIiLCJfRW1wdHkiLCJfRmxleCIsIl9HcmlkIiwiX0ljb25zIiwiX0lucHV0IiwiX0RyYXdlciIsIl9Ecm9wZG93biIsIl9MaW5rIiwiX0RpYWxvZyIsIl9OYXZpZ2F0aW9uIiwiX05vdGlmaWNhdGlvbiIsIl9Qb3J0YWwiLCJfUHJvRm9ybSIsIl9QYWdpbmF0aW9uIiwiX1BvcGNvbmZpcm0iLCJfUHJvZ3Jlc3MiLCJfUmFkaW8iLCJfU2VsZWN0IiwiX1NlZ21lbnQiLCJfU2tlbGV0b24iLCJfU2xpZGVyIiwiX1NwYWNlIiwiX1NwaW5uZXIiLCJfU3RlcCIsIl9Td2l0Y2giLCJfVGFibGUiLCJfUHJvVGFibGUiLCJfVmlydHVhbExpc3QiLCJfUmVzaXplT2JzZXJ2ZXIiLCJfVGFicyIsIl9UYWciLCJfVG91ciIsIl9UeXBvZ3JhcGh5IiwiX1Rvb2x0aXAiLCJfVHJpZ2dlciIsIl9VcGxvYWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsS0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsUUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsS0FBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksS0FBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsTUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsTUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsT0FBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLFNBQUEsR0FBQWhCLE9BQUE7QUFDQSxJQUFBaUIsS0FBQSxHQUFBakIsT0FBQTtBQUNBLElBQUFrQixPQUFBLEdBQUFsQixPQUFBO0FBQ0EsSUFBQW1CLFdBQUEsR0FBQW5CLE9BQUE7QUFDQSxJQUFBb0IsYUFBQSxHQUFBcEIsT0FBQTtBQUNBLElBQUFxQixPQUFBLEdBQUFyQixPQUFBO0FBR0EsSUFBQXNCLFFBQUEsR0FBQXRCLE9BQUE7QUF5QkEsSUFBQXVCLFdBQUEsR0FBQXZCLE9BQUE7QUFDQSxJQUFBd0IsV0FBQSxHQUFBeEIsT0FBQTtBQUNBLElBQUF5QixTQUFBLEdBQUF6QixPQUFBO0FBQ0EsSUFBQTBCLE1BQUEsR0FBQTFCLE9BQUE7QUFDQSxJQUFBMkIsT0FBQSxHQUFBM0IsT0FBQTtBQUNBLElBQUE0QixRQUFBLEdBQUE1QixPQUFBO0FBQ0EsSUFBQTZCLFNBQUEsR0FBQTdCLE9BQUE7QUFDQSxJQUFBOEIsT0FBQSxHQUFBOUIsT0FBQTtBQUNBLElBQUErQixNQUFBLEdBQUEvQixPQUFBO0FBQ0EsSUFBQWdDLFFBQUEsR0FBQWhDLE9BQUE7QUFDQSxJQUFBaUMsS0FBQSxHQUFBakMsT0FBQTtBQUNBLElBQUFrQyxPQUFBLEdBQUFsQyxPQUFBO0FBQ0EsSUFBQW1DLE1BQUEsR0FBQW5DLE9BQUE7QUFDQSxJQUFBb0MsU0FBQSxHQUFBcEMsT0FBQTtBQUNBLElBQUFxQyxZQUFBLEdBQUFyQyxPQUFBO0FBQ0EsSUFBQXNDLGVBQUEsR0FBQXRDLE9BQUE7QUFDQSxJQUFBdUMsS0FBQSxHQUFBdkMsT0FBQTtBQUNBLElBQUF3QyxJQUFBLEdBQUF4QyxPQUFBO0FBQ0EsSUFBQXlDLEtBQUEsR0FBQXpDLE9BQUE7QUFDQSxJQUFBMEMsV0FBQSxHQUFBMUMsT0FBQTtBQUNBLElBQUEyQyxRQUFBLEdBQUEzQyxPQUFBO0FBQ0EsSUFBQTRDLFFBQUEsR0FBQTVDLE9BQUE7QUFDQSxJQUFBNkMsT0FBQSxHQUFBN0MsT0FBQSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFjY29yZGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9BY2NvcmRpb24nO1xuZXhwb3J0IHsgQWxlcnQgfSBmcm9tICcuL2NvbXBvbmVudHMvQWxlcnQnO1xuZXhwb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi9jb21wb25lbnRzL0J1dHRvbic7XG5leHBvcnQgeyBDYWxlbmRhciB9IGZyb20gJy4vY29tcG9uZW50cy9DYWxlbmRhcic7XG5leHBvcnQgeyBDZWxsIH0gZnJvbSAnLi9jb21wb25lbnRzL0NlbGwnO1xuZXhwb3J0IHsgQ2Fyb3VzZWwgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2Fyb3VzZWwnO1xuZXhwb3J0IHsgQ2hlY2tib3gsIENoZWNrYm94R3JvdXAgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2hlY2tib3gnO1xuZXhwb3J0IHsgQ29hY2hNYXJrIH0gZnJvbSAnLi9jb21wb25lbnRzL0NvYWNoTWFyayc7XG5leHBvcnQgeyBDb3B5LCBDbGlwYm9hcmQgfSBmcm9tICcuL2NvbXBvbmVudHMvQ29weSc7XG5leHBvcnQgeyBEaXZpZGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL0RpdmlkZXInO1xuZXhwb3J0IHsgRW1wdHkgfSBmcm9tICcuL2NvbXBvbmVudHMvRW1wdHknO1xuZXhwb3J0IHsgRmxleCB9IGZyb20gJy4vY29tcG9uZW50cy9GbGV4JztcbmV4cG9ydCB7IEdyaWQsIFJvdywgQ29sIH0gZnJvbSAnLi9jb21wb25lbnRzL0dyaWQnO1xuZXhwb3J0IHsgSWNvbnMsIEljb25XcmFwcGVyLCBJY29uSG92ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvSWNvbnMnO1xuZXhwb3J0IHsgSW5wdXQgfSBmcm9tICcuL2NvbXBvbmVudHMvSW5wdXQnO1xuZXhwb3J0IHsgRHJhd2VyIH0gZnJvbSAnLi9jb21wb25lbnRzL0RyYXdlcic7XG5leHBvcnQgeyBEcm9wZG93biB9IGZyb20gJy4vY29tcG9uZW50cy9Ecm9wZG93bic7XG5leHBvcnQgeyBMaW5rIH0gZnJvbSAnLi9jb21wb25lbnRzL0xpbmsnO1xuZXhwb3J0IHsgRGlhbG9nIH0gZnJvbSAnLi9jb21wb25lbnRzL0RpYWxvZyc7XG5leHBvcnQgeyBOYXZpZ2F0aW9uLCBOYXYsIE5hdmlnYXRpb25TdGVwcGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL05hdmlnYXRpb24nO1xuZXhwb3J0IHsgbm90aWZpY2F0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL05vdGlmaWNhdGlvbic7XG5leHBvcnQge1xuICBQb3J0YWwsXG59IGZyb20gJy4vY29tcG9uZW50cy9Qb3J0YWwnO1xuZXhwb3J0IHtcbiAgUHJvRm9ybSxcbiAgUHJvRm9ybUl0ZW0sXG4gIFByb0Zvcm1EZXBlbmRlbmN5LFxuICBQcm9Gb3JtTGlzdCxcbiAgUHJvRm9ybUdyb3VwLFxuICBjcmVhdGVQcm9Gb3JtRmllbGQsXG4gIFByb0Zvcm1UZXh0LFxuICBQcm9Gb3JtUGFzc3dvcmQsXG4gIFByb0Zvcm1UZXh0QXJlYSxcbiAgUHJvRm9ybUNoZWNrYm94LFxuICBQcm9Gb3JtQ2hlY2tib3hHcm91cCxcbiAgUHJvRm9ybVN3aXRjaCxcbiAgUHJvRm9ybVNlbGVjdCxcbiAgUHJvRm9ybVJhZGlvR3JvdXAsXG4gIFByb0Zvcm1TbGlkZXIsXG4gIFByb0Zvcm1EYXRlUGlja2VyLFxuICBQcm9Gb3JtVXBsb2FkLFxuICBQcm9Gb3JtRmllbGRTZXQsXG4gIFNjaGVtYUZvcm0sXG4gIERpYWxvZ0Zvcm0sXG4gIERyYXdlckZvcm0sXG4gIFF1ZXJ5RmlsdGVyLFxuICB1c2VGb3JtV2F0Y2gsXG59IGZyb20gJy4vY29tcG9uZW50cy9Qcm9Gb3JtJztcbmV4cG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvUGFnaW5hdGlvbic7XG5leHBvcnQgeyBQb3Bjb25maXJtIH0gZnJvbSAnLi9jb21wb25lbnRzL1BvcGNvbmZpcm0nO1xuZXhwb3J0IHsgUHJvZ3Jlc3MgfSBmcm9tICcuL2NvbXBvbmVudHMvUHJvZ3Jlc3MnO1xuZXhwb3J0IHsgUmFkaW8sIFJhZGlvR3JvdXAgfSBmcm9tICcuL2NvbXBvbmVudHMvUmFkaW8nO1xuZXhwb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi9jb21wb25lbnRzL1NlbGVjdCc7XG5leHBvcnQgeyBTZWdtZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL1NlZ21lbnQnO1xuZXhwb3J0IHsgU2tlbGV0b24gfSBmcm9tICcuL2NvbXBvbmVudHMvU2tlbGV0b24nO1xuZXhwb3J0IHsgU2xpZGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL1NsaWRlcic7XG5leHBvcnQgeyBTcGFjZSB9IGZyb20gJy4vY29tcG9uZW50cy9TcGFjZSc7XG5leHBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi9jb21wb25lbnRzL1NwaW5uZXInO1xuZXhwb3J0IHsgU3RlcCB9IGZyb20gJy4vY29tcG9uZW50cy9TdGVwJztcbmV4cG9ydCB7IFN3aXRjaCB9IGZyb20gJy4vY29tcG9uZW50cy9Td2l0Y2gnO1xuZXhwb3J0IHsgVGFibGUsIFZpcnR1YWxUYWJsZSwgU3VtbWFyeSB9IGZyb20gJy4vY29tcG9uZW50cy9UYWJsZSc7XG5leHBvcnQgeyBQcm9UYWJsZSB9IGZyb20gJy4vY29tcG9uZW50cy9Qcm9UYWJsZSc7XG5leHBvcnQgeyBWaXJ0dWFsTGlzdCB9IGZyb20gJy4vY29tcG9uZW50cy9WaXJ0dWFsTGlzdCc7XG5leHBvcnQgeyBSZXNpemVPYnNlcnZlciwgdXNlUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvUmVzaXplT2JzZXJ2ZXInO1xuZXhwb3J0IHsgVGFicyB9IGZyb20gJy4vY29tcG9uZW50cy9UYWJzJztcbmV4cG9ydCB7IFRhZyB9IGZyb20gJy4vY29tcG9uZW50cy9UYWcnO1xuZXhwb3J0IHsgVG91ciB9IGZyb20gJy4vY29tcG9uZW50cy9Ub3VyJztcbmV4cG9ydCB7IFR5cG9ncmFwaHkgfSBmcm9tICcuL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5leHBvcnQgeyBUb29sdGlwIH0gZnJvbSAnLi9jb21wb25lbnRzL1Rvb2x0aXAnO1xuZXhwb3J0IHsgVHJpZ2dlciB9IGZyb20gJy4vY29tcG9uZW50cy9UcmlnZ2VyJztcbmV4cG9ydCB7IFVwbG9hZCwgVXBsb2FkRmlsZUJhciB9IGZyb20gJy4vY29tcG9uZW50cy9VcGxvYWQnO1xuZXhwb3J0IHsgdXNlUGFnaW5hdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9QYWdpbmF0aW9uJztcblxuZXhwb3J0IHR5cGUgeyBBY2NvcmRpb25Qcm9wcywgQWNjb3JkaW9uSXRlbSB9IGZyb20gJy4vY29tcG9uZW50cy9BY2NvcmRpb24nO1xuZXhwb3J0IHR5cGUgeyBBbGVydFByb3BzLCBBbGVydFN0YXR1cywgQWxlcnRMaW5rQ29uZmlnIH0gZnJvbSAnLi9jb21wb25lbnRzL0FsZXJ0JztcbmV4cG9ydCB0eXBlIHsgQnV0dG9uUHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvQnV0dG9uJztcbmV4cG9ydCB0eXBlIHsgQ2FsZW5kYXJQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9DYWxlbmRhcic7XG5leHBvcnQgdHlwZSB7IENlbGxQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9DZWxsJztcbmV4cG9ydCB0eXBlIHsgQ2Fyb3VzZWxQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9DYXJvdXNlbCc7XG5leHBvcnQgdHlwZSB7XG4gIENoZWNrYm94Q2hhbmdlRXZlbnQsXG4gIENoZWNrYm94UHJvcHMsXG4gIENoZWNrYm94VmFsdWVUeXBlLFxuICBDaGVja2JveEdyb3VwUHJvcHMsXG4gIENoZWNrYm94R3JvdXBPcHRpb24sXG59IGZyb20gJy4vY29tcG9uZW50cy9DaGVja2JveCc7XG5leHBvcnQgdHlwZSB7IENvYWNoTWFya1Byb3BzLCBDb2FjaE1hcmtQbGFjZW1lbnQsIENvYWNoTWFya1N0ZXAsIENvYWNoTWFya0xhYmVscyB9IGZyb20gJy4vY29tcG9uZW50cy9Db2FjaE1hcmsnO1xuZXhwb3J0IHR5cGUgeyBDb3B5UHJvcHMsIENsaXBib2FyZFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0NvcHknO1xuZXhwb3J0IHR5cGUgeyBEaXZpZGVyUHJvcHMsIERpdmlkZXJUeXBlLCBEaXZpZGVyT3JpZW50YXRpb24sIERpdmlkZXJWYXJpYW50IH0gZnJvbSAnLi9jb21wb25lbnRzL0RpdmlkZXInO1xuZXhwb3J0IHR5cGUgeyBFbXB0eVByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0VtcHR5JztcbmV4cG9ydCB0eXBlIHsgRmxleFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0ZsZXgnO1xuLy8gRm9ybS1yZWxhdGVkIHR5cGVzIChmb3JtZXJseSBmcm9tIC4vY29tcG9uZW50cy9Gb3JtKSBhcmUgbm93IGV4cG9zZWQgdmlhIFByb0Zvcm1cbmV4cG9ydCB0eXBlIHtcbiAgRm9ybUluc3RhbmNlLFxuICBGb3JtQ29yZUluc3RhbmNlLFxuICBGb3JtTGF5b3V0LFxuICBGb3JtU2l6ZSxcbiAgTGFiZWxBbGlnbixcbiAgVmFsaWRhdGVTdGF0dXMsXG4gIFZhbGlkYXRlVHJpZ2dlcixcbiAgUnVsZSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1Byb0Zvcm0nO1xuZXhwb3J0IHR5cGUgeyBHcmlkUm93UHJvcHMsIEdyaWRDb2xQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9HcmlkJztcbmV4cG9ydCB0eXBlIHtcbiAgSWNvbk5hbWUsXG4gIEljb25Db2xvcixcbiAgSWNvbnNQcm9wcyxcbiAgSWNvbldyYXBwZXJQcm9wcyxcbiAgSWNvbkhvdmVyUHJvcHMsXG4gIFNvcnRJY29uU3RhdHVzLFxufSBmcm9tICcuL2NvbXBvbmVudHMvSWNvbnMnO1xuZXhwb3J0IHR5cGUge1xuICBJbnB1dFByb3BzLFxuICBJbnB1dFBhc3N3b3JkUHJvcHMsXG4gIElucHV0U2VhcmNoUHJvcHMsXG4gIElucHV0VGV4dEFyZWFQcm9wcyxcbiAgSW5wdXRPVFBQcm9wcyxcbiAgSW5wdXRUcmFkZVByb3BzLFxuICBJbnB1dEFtb3VudFByb3BzLFxuICBJbnB1dFNpemUsXG4gIElucHV0U3RhdHVzLFxufSBmcm9tICcuL2NvbXBvbmVudHMvSW5wdXQnO1xuZXhwb3J0IHR5cGUgeyBEcmF3ZXJQcm9wcywgRHJhd2VyUGxhY2VtZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL0RyYXdlcic7XG5leHBvcnQgdHlwZSB7XG4gIERyb3Bkb3duUHJvcHMsXG4gIERyb3Bkb3duQ29udGVudCxcbiAgRHJvcGRvd25Db250ZW50Q29udGV4dCxcbiAgRHJvcGRvd25UcmlnZ2VyLFxufSBmcm9tICcuL2NvbXBvbmVudHMvRHJvcGRvd24nO1xuZXhwb3J0IHR5cGUgeyBMaW5rUHJvcHMsIExpbmtDb2xvciwgTGlua1NpemUgfSBmcm9tICcuL2NvbXBvbmVudHMvTGluayc7XG5leHBvcnQgdHlwZSB7IERpYWxvZ1Byb3BzLCBEaWFsb2dTaXplLCBEaWFsb2dGb290ZXJSZW5kZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvRGlhbG9nJztcbmV4cG9ydCB0eXBlIHtcbiAgTmF2aWdhdGlvblByb3BzLFxuICBOYXZpZ2F0aW9uSXRlbSxcbiAgTmF2aWdhdGlvbkhhbmRsZXJzLFxuICBOYXZQcm9wcyxcbiAgTmF2SXRlbSxcbiAgTmF2aWdhdGlvblN0ZXBwZXJQcm9wcyxcbiAgTmF2aWdhdGlvblN0ZXBwZXJTdGVwLFxuICBOYXZpZ2F0aW9uU3RlcHBlclN0ZXBTdGF0dXMsXG59IGZyb20gJy4vY29tcG9uZW50cy9OYXZpZ2F0aW9uJztcbmV4cG9ydCB0eXBlIHtcbiAgTm90aWZpY2F0aW9uTGlua0NvbmZpZyxcbiAgTm90aWZpY2F0aW9uU3RhdHVzLFxuICBOb3RpZmljYXRpb25QbGFjZW1lbnQsXG4gIE5vdGlmaWNhdGlvbktleSxcbiAgTm90aWZpY2F0aW9uT3BlbkNvbmZpZyxcbiAgTm90aWZpY2F0aW9uU3RhdGljQ29uZmlnLFxuICBOb3RpZmljYXRpb25TdGF0aWNBcGksXG59IGZyb20gJy4vY29tcG9uZW50cy9Ob3RpZmljYXRpb24nO1xuZXhwb3J0IHR5cGUgeyBQb3J0YWxQcm9wcywgUG9ydGFsQ29udGFpbmVyIH0gZnJvbSAnLi9jb21wb25lbnRzL1BvcnRhbCc7XG5leHBvcnQgdHlwZSB7XG4gIFBhZ2luYXRpb25Qcm9wcyxcbiAgUGFnaW5hdGlvbkl0ZW0sXG4gIFBhZ2luYXRpb25QYWdlSXRlbSxcbiAgUGFnaW5hdGlvbkNvbnRyb2xJdGVtLFxuICBQYWdpbmF0aW9uRWxsaXBzaXNJdGVtLFxuICBVc2VQYWdpbmF0aW9uT3B0aW9ucyxcbiAgVXNlUGFnaW5hdGlvblJlc3VsdCxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1BhZ2luYXRpb24nO1xuZXhwb3J0IHR5cGUge1xuICBQcm9ncmVzc1Byb3BzLFxuICBQcm9ncmVzc1N0YXRlLFxuICBQcm9ncmVzc0NvbG9yLFxuICBQcm9ncmVzc1BsYWNlbWVudCxcbiAgUHJvZ3Jlc3NGb3JtYXRDb250ZXh0LFxufSBmcm9tICcuL2NvbXBvbmVudHMvUHJvZ3Jlc3MnO1xuZXhwb3J0IHR5cGUge1xuICBQb3Bjb25maXJtUHJvcHMsXG4gIFBvcGNvbmZpcm1QbGFjZW1lbnQsXG4gIFBvcGNvbmZpcm1UcmlnZ2VyLFxuICBQb3Bjb25maXJtQWN0aW9uQ29udGV4dCxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1BvcGNvbmZpcm0nO1xuZXhwb3J0IHR5cGUge1xuICBSYWRpb0FsaWdubWVudCxcbiAgUmFkaW9DaGFuZ2VFdmVudCxcbiAgUmFkaW9Hcm91cERpcmVjdGlvbixcbiAgUmFkaW9Hcm91cFByb3BzLFxuICBSYWRpb09wdGlvbkl0ZW0sXG4gIFJhZGlvUHJvcHMsXG4gIFJhZGlvVmFsdWVUeXBlLFxufSBmcm9tICcuL2NvbXBvbmVudHMvUmFkaW8nO1xuZXhwb3J0IHR5cGUge1xuICBTZWxlY3RDdXN0b21QYW5lbENvbnRleHQsXG4gIFNlbGVjdEN1c3RvbVByb3BzLFxuICBTZWxlY3RDdXN0b21UcmlnZ2VyQ29udGV4dCxcbiAgU2VsZWN0TXVsdGlwbGVWYWx1ZSxcbiAgU2VsZWN0T3B0aW9uLFxuICBTZWxlY3RPcHRpb25WYWx1ZSxcbiAgU2VsZWN0UHJvcHMsXG4gIFNlbGVjdFJlbmRlck9wdGlvbk1ldGEsXG4gIFNlbGVjdFJlbmRlclZhbHVlTWV0YSxcbiAgU2VsZWN0U2luZ2xlVmFsdWUsXG4gIFNlbGVjdFNpemUsXG4gIFNlbGVjdFN0YXR1cyxcbiAgU2VsZWN0VmFsdWUsXG59IGZyb20gJy4vY29tcG9uZW50cy9TZWxlY3QnO1xuZXhwb3J0IHR5cGUgeyBTZWdtZW50UHJvcHMsIFNlZ21lbnRJdGVtIH0gZnJvbSAnLi9jb21wb25lbnRzL1NlZ21lbnQnO1xuZXhwb3J0IHR5cGUgeyBTa2VsZXRvblByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL1NrZWxldG9uJztcbmV4cG9ydCB0eXBlIHsgU2xpZGVyUHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvU2xpZGVyJztcbmV4cG9ydCB0eXBlIHsgU3BhY2VQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9TcGFjZSc7XG5leHBvcnQgdHlwZSB7IFNwaW5uZXJQcm9wcywgU3Bpbm5lclR5cGUgfSBmcm9tICcuL2NvbXBvbmVudHMvU3Bpbm5lcic7XG5leHBvcnQgdHlwZSB7IFN0ZXBQcm9wcywgU3RlcEl0ZW0sIFN0ZXBTdGF0dXMsIFN0ZXBUYWdDb25maWcgfSBmcm9tICcuL2NvbXBvbmVudHMvU3RlcCc7XG5leHBvcnQgdHlwZSB7IFN3aXRjaFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL1N3aXRjaCc7XG5leHBvcnQgdHlwZSB7XG4gIFRhYmxlUHJvcHMsXG4gIFZpcnR1YWxUYWJsZVByb3BzLFxuICBUYWJsZUNvbHVtbixcbiAgVGFibGVDaGFuZ2VNZXRhLFxuICBUYWJsZVBhZ2luYXRpb25Db25maWcsXG4gIFRhYmxlUm93U2VsZWN0aW9uLFxuICBUYWJsZUV4cGFuZGFibGVDb25maWcsXG4gIFRhYmxlTG9hZGluZ0NvbmZpZyxcbiAgVGFibGVSZWYsXG59IGZyb20gJy4vY29tcG9uZW50cy9UYWJsZSc7XG5leHBvcnQgdHlwZSB7XG4gIFByb1RhYmxlUHJvcHMsXG4gIFByb0NvbHVtbnMsXG4gIFByb0NvbHVtblR5cGUsXG4gIFByb1RhYmxlUmVxdWVzdCxcbiAgUHJvVGFibGVSZXF1ZXN0T3B0aW9ucyxcbiAgUmVxdWVzdERhdGEsXG4gIFBhZ2VJbmZvLFxuICBQcm9UYWJsZUFjdGlvblJlZixcbiAgUHJvVGFibGVQYWdpbmF0aW9uQ29uZmlnLFxuICBQcm9UYWJsZVZhbHVlVHlwZSxcbiAgU2VhcmNoQ29uZmlnIGFzIFByb1RhYmxlU2VhcmNoQ29uZmlnLFxuICBQcm9UYWJsZVNvcnRQYXJhbSxcbiAgUHJvVGFibGVGaWx0ZXJQYXJhbSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1Byb1RhYmxlJztcbmV4cG9ydCB0eXBlIHsgVGFic1Byb3BzLCBUYWJJdGVtIH0gZnJvbSAnLi9jb21wb25lbnRzL1RhYnMnO1xuZXhwb3J0IHR5cGUgeyBUYWdQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9UYWcnO1xuZXhwb3J0IHR5cGUge1xuICBMaXN0UmVmIGFzIFZpcnR1YWxMaXN0UmVmLFxuICBMaXN0UHJvcHMgYXMgVmlydHVhbExpc3RQcm9wcyxcbiAgU2Nyb2xsSW5mbyBhcyBWaXJ0dWFsTGlzdFNjcm9sbEluZm8sXG59IGZyb20gJy4vY29tcG9uZW50cy9WaXJ0dWFsTGlzdCc7XG5leHBvcnQgdHlwZSB7XG4gIFJlc2l6ZU9ic2VydmVyUHJvcHMsXG4gIFNpemVJbmZvIGFzIFJlc2l6ZU9ic2VydmVyU2l6ZUluZm8sXG4gIE9uUmVzaXplIGFzIFJlc2l6ZU9ic2VydmVyT25SZXNpemUsXG59IGZyb20gJy4vY29tcG9uZW50cy9SZXNpemVPYnNlcnZlcic7XG5leHBvcnQgdHlwZSB7XG4gIFR5cG9ncmFwaHlCb2R5UHJvcHMsXG4gIFR5cG9ncmFwaHlDb3B5YWJsZUNvbmZpZyxcbiAgVHlwb2dyYXBoeUJvZHlTaXplLFxuICBUeXBvZ3JhcGh5RGlzcGxheVByb3BzLFxuICBUeXBvZ3JhcGh5RGlzcGxheVNpemUsXG4gIFR5cG9ncmFwaHlFbGxpcHNpc0NvbmZpZyxcbiAgVHlwb2dyYXBoeUhlYWRsaW5lUHJvcHMsXG4gIFR5cG9ncmFwaHlIZWFkbGluZVNpemUsXG4gIFR5cG9ncmFwaHlMYWJlbFByb3BzLFxuICBUeXBvZ3JhcGh5TGFiZWxTaXplLFxuICBUeXBvZ3JhcGh5TGlua1Byb3BzLFxuICBUeXBvZ3JhcGh5TGlua1NpemUsXG4gIFR5cG9ncmFwaHlUaXRsZVByb3BzLFxuICBUeXBvZ3JhcGh5VGl0bGVTaXplLFxufSBmcm9tICcuL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5leHBvcnQgdHlwZSB7IFRvdXJQcm9wcywgVG91clN0ZXAgfSBmcm9tICcuL2NvbXBvbmVudHMvVG91cic7XG5leHBvcnQgdHlwZSB7IFRvb2x0aXBQcm9wcywgVG9vbHRpcFBsYWNlbWVudCB9IGZyb20gJy4vY29tcG9uZW50cy9Ub29sdGlwJztcbmV4cG9ydCB0eXBlIHtcbiAgVHJpZ2dlclByb3BzLFxuICBUcmlnZ2VyQWN0aW9uLFxuICBUcmlnZ2VyQ29udGVudCxcbiAgVHJpZ2dlckNvbnRlbnRDb250ZXh0LFxuICBUcmlnZ2VyUm9sZSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1RyaWdnZXInO1xuZXhwb3J0IHR5cGUge1xuICBVcGxvYWRQcm9wcyxcbiAgVXBsb2FkRmlsZUJhclByb3BzLFxufSBmcm9tICcuL2NvbXBvbmVudHMvVXBsb2FkJztcbmV4cG9ydCB0eXBlIHtcbiAgUHJvRm9ybVByb3BzLFxuICBQcm9Gb3JtSXRlbVByb3BzLFxuICBQcm9Gb3JtSXRlbVNoYXJlZFByb3BzLFxuICBQcm9Gb3JtTGF5b3V0Q29uZmlnLFxuICBQcm9Gb3JtRmllbGRQcm9wcyxcbiAgUHJvRm9ybUNvbnRleHRWYWx1ZSxcbiAgUHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgUHJvRm9ybVZhbGlkYXRlUmVzdWx0LFxuICBQcm9Gb3JtRmllbGROYW1lLFxuICBQcm9Gb3JtTW9kZSxcbiAgUHJvRm9ybUNvbFByb3BzLFxuICBQcm9Gb3JtVmFsdWVUeXBlLFxuICBQcm9Gb3JtRmllbGRUcmFuc2Zvcm1GbixcbiAgUHJvRm9ybUZpZWxkQ29udmVydFZhbHVlRm4sXG4gIFByb0Zvcm1EYXRlRm9ybWF0dGVyLFxuICBQcm9Gb3JtVmFsdWVFbnVtT2JqLFxuICBQcm9Gb3JtUmVxdWVzdE9wdGlvbixcbiAgUHJvRm9ybUZpZWxkU2V0UHJvcHMsXG4gIFByb0Zvcm1Hcm91cFByb3BzLFxuICBTdWJtaXR0ZXJQcm9wcyxcbiAgUHJvRm9ybURlcGVuZGVuY3lQcm9wcyxcbiAgUHJvRm9ybUxpc3RQcm9wcyxcbiAgUHJvRm9ybUxpc3RBY3Rpb24sXG4gIERpYWxvZ0Zvcm1Qcm9wcyxcbiAgRHJhd2VyRm9ybVByb3BzLFxuICBRdWVyeUZpbHRlclByb3BzLFxuICBDcmVhdGVQcm9Gb3JtRmllbGRDb25maWcsXG4gIFByb0Zvcm1TY2hlbWFDb2x1bW4sXG4gIFByb0Zvcm1TY2hlbWFWYWx1ZVR5cGUsXG4gIFNjaGVtYUZvcm1Qcm9wcyxcbiAgVXNlRm9ybVdhdGNoLFxufSBmcm9tICcuL2NvbXBvbmVudHMvUHJvRm9ybSc7XG4iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
544
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbIl9BY2NvcmRpb24iLCJyZXF1aXJlIiwiX0FsZXJ0IiwiX0J1dHRvbiIsIl9DYWxlbmRhciIsIl9DZWxsIiwiX0Nhcm91c2VsIiwiX0NoZWNrYm94IiwiX0NvYWNoTWFyayIsIl9Db3B5IiwiX0RpdmlkZXIiLCJfRW1wdHkiLCJfRmxleCIsIl9HcmlkIiwiX0ljb25zIiwiX0lucHV0IiwiX0RyYXdlciIsIl9Ecm9wZG93biIsIl9MaW5rIiwiX0RpYWxvZyIsIl9OYXZpZ2F0aW9uIiwiX05vdGlmaWNhdGlvbiIsIl9Qb3J0YWwiLCJfUHJvRm9ybSIsIl9QYWdpbmF0aW9uIiwiX1BvcGNvbmZpcm0iLCJfUHJvZ3Jlc3MiLCJfUmFkaW8iLCJfU2VsZWN0IiwiX1NlZ21lbnQiLCJfU2tlbGV0b24iLCJfU2xpZGVyIiwiX1NwYWNlIiwiX1NwaW5uZXIiLCJfU3RlcCIsIl9Td2l0Y2giLCJfVGFibGUiLCJfUHJvVGFibGUiLCJfVmlydHVhbExpc3QiLCJfUmVzaXplT2JzZXJ2ZXIiLCJfVGFicyIsIl9UYWciLCJfVG91ciIsIl9UeXBvZ3JhcGh5IiwiX1Rvb2x0aXAiLCJfVHJpZ2dlciIsIl9VcGxvYWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsS0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsUUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsS0FBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksS0FBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsTUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsTUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsT0FBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLFNBQUEsR0FBQWhCLE9BQUE7QUFDQSxJQUFBaUIsS0FBQSxHQUFBakIsT0FBQTtBQUNBLElBQUFrQixPQUFBLEdBQUFsQixPQUFBO0FBQ0EsSUFBQW1CLFdBQUEsR0FBQW5CLE9BQUE7QUFDQSxJQUFBb0IsYUFBQSxHQUFBcEIsT0FBQTtBQUNBLElBQUFxQixPQUFBLEdBQUFyQixPQUFBO0FBR0EsSUFBQXNCLFFBQUEsR0FBQXRCLE9BQUE7QUF5QkEsSUFBQXVCLFdBQUEsR0FBQXZCLE9BQUE7QUFDQSxJQUFBd0IsV0FBQSxHQUFBeEIsT0FBQTtBQUNBLElBQUF5QixTQUFBLEdBQUF6QixPQUFBO0FBQ0EsSUFBQTBCLE1BQUEsR0FBQTFCLE9BQUE7QUFDQSxJQUFBMkIsT0FBQSxHQUFBM0IsT0FBQTtBQUNBLElBQUE0QixRQUFBLEdBQUE1QixPQUFBO0FBQ0EsSUFBQTZCLFNBQUEsR0FBQTdCLE9BQUE7QUFDQSxJQUFBOEIsT0FBQSxHQUFBOUIsT0FBQTtBQUNBLElBQUErQixNQUFBLEdBQUEvQixPQUFBO0FBQ0EsSUFBQWdDLFFBQUEsR0FBQWhDLE9BQUE7QUFDQSxJQUFBaUMsS0FBQSxHQUFBakMsT0FBQTtBQUNBLElBQUFrQyxPQUFBLEdBQUFsQyxPQUFBO0FBQ0EsSUFBQW1DLE1BQUEsR0FBQW5DLE9BQUE7QUFDQSxJQUFBb0MsU0FBQSxHQUFBcEMsT0FBQTtBQUNBLElBQUFxQyxZQUFBLEdBQUFyQyxPQUFBO0FBQ0EsSUFBQXNDLGVBQUEsR0FBQXRDLE9BQUE7QUFDQSxJQUFBdUMsS0FBQSxHQUFBdkMsT0FBQTtBQUNBLElBQUF3QyxJQUFBLEdBQUF4QyxPQUFBO0FBQ0EsSUFBQXlDLEtBQUEsR0FBQXpDLE9BQUE7QUFDQSxJQUFBMEMsV0FBQSxHQUFBMUMsT0FBQTtBQUNBLElBQUEyQyxRQUFBLEdBQUEzQyxPQUFBO0FBQ0EsSUFBQTRDLFFBQUEsR0FBQTVDLE9BQUE7QUFDQSxJQUFBNkMsT0FBQSxHQUFBN0MsT0FBQSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFjY29yZGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9BY2NvcmRpb24nO1xuZXhwb3J0IHsgQWxlcnQgfSBmcm9tICcuL2NvbXBvbmVudHMvQWxlcnQnO1xuZXhwb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi9jb21wb25lbnRzL0J1dHRvbic7XG5leHBvcnQgeyBDYWxlbmRhciB9IGZyb20gJy4vY29tcG9uZW50cy9DYWxlbmRhcic7XG5leHBvcnQgeyBDZWxsIH0gZnJvbSAnLi9jb21wb25lbnRzL0NlbGwnO1xuZXhwb3J0IHsgQ2Fyb3VzZWwgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2Fyb3VzZWwnO1xuZXhwb3J0IHsgQ2hlY2tib3gsIENoZWNrYm94R3JvdXAgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2hlY2tib3gnO1xuZXhwb3J0IHsgQ29hY2hNYXJrIH0gZnJvbSAnLi9jb21wb25lbnRzL0NvYWNoTWFyayc7XG5leHBvcnQgeyBDb3B5LCBDbGlwYm9hcmQgfSBmcm9tICcuL2NvbXBvbmVudHMvQ29weSc7XG5leHBvcnQgeyBEaXZpZGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL0RpdmlkZXInO1xuZXhwb3J0IHsgRW1wdHkgfSBmcm9tICcuL2NvbXBvbmVudHMvRW1wdHknO1xuZXhwb3J0IHsgRmxleCB9IGZyb20gJy4vY29tcG9uZW50cy9GbGV4JztcbmV4cG9ydCB7IEdyaWQsIFJvdywgQ29sIH0gZnJvbSAnLi9jb21wb25lbnRzL0dyaWQnO1xuZXhwb3J0IHsgSWNvbnMsIEljb25XcmFwcGVyLCBJY29uSG92ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvSWNvbnMnO1xuZXhwb3J0IHsgSW5wdXQgfSBmcm9tICcuL2NvbXBvbmVudHMvSW5wdXQnO1xuZXhwb3J0IHsgRHJhd2VyIH0gZnJvbSAnLi9jb21wb25lbnRzL0RyYXdlcic7XG5leHBvcnQgeyBEcm9wZG93biB9IGZyb20gJy4vY29tcG9uZW50cy9Ecm9wZG93bic7XG5leHBvcnQgeyBMaW5rIH0gZnJvbSAnLi9jb21wb25lbnRzL0xpbmsnO1xuZXhwb3J0IHsgRGlhbG9nIH0gZnJvbSAnLi9jb21wb25lbnRzL0RpYWxvZyc7XG5leHBvcnQgeyBOYXZpZ2F0aW9uLCBOYXYsIE5hdmlnYXRpb25TdGVwcGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL05hdmlnYXRpb24nO1xuZXhwb3J0IHsgbm90aWZpY2F0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL05vdGlmaWNhdGlvbic7XG5leHBvcnQge1xuICBQb3J0YWwsXG59IGZyb20gJy4vY29tcG9uZW50cy9Qb3J0YWwnO1xuZXhwb3J0IHtcbiAgUHJvRm9ybSxcbiAgUHJvRm9ybUl0ZW0sXG4gIFByb0Zvcm1EZXBlbmRlbmN5LFxuICBQcm9Gb3JtTGlzdCxcbiAgUHJvRm9ybUdyb3VwLFxuICBjcmVhdGVQcm9Gb3JtRmllbGQsXG4gIFByb0Zvcm1UZXh0LFxuICBQcm9Gb3JtUGFzc3dvcmQsXG4gIFByb0Zvcm1UZXh0QXJlYSxcbiAgUHJvRm9ybUNoZWNrYm94LFxuICBQcm9Gb3JtQ2hlY2tib3hHcm91cCxcbiAgUHJvRm9ybVN3aXRjaCxcbiAgUHJvRm9ybVNlbGVjdCxcbiAgUHJvRm9ybVJhZGlvR3JvdXAsXG4gIFByb0Zvcm1TbGlkZXIsXG4gIFByb0Zvcm1EYXRlUGlja2VyLFxuICBQcm9Gb3JtVXBsb2FkLFxuICBQcm9Gb3JtRmllbGRTZXQsXG4gIFNjaGVtYUZvcm0sXG4gIERpYWxvZ0Zvcm0sXG4gIERyYXdlckZvcm0sXG4gIFF1ZXJ5RmlsdGVyLFxuICB1c2VGb3JtV2F0Y2gsXG59IGZyb20gJy4vY29tcG9uZW50cy9Qcm9Gb3JtJztcbmV4cG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvUGFnaW5hdGlvbic7XG5leHBvcnQgeyBQb3Bjb25maXJtIH0gZnJvbSAnLi9jb21wb25lbnRzL1BvcGNvbmZpcm0nO1xuZXhwb3J0IHsgUHJvZ3Jlc3MgfSBmcm9tICcuL2NvbXBvbmVudHMvUHJvZ3Jlc3MnO1xuZXhwb3J0IHsgUmFkaW8sIFJhZGlvR3JvdXAgfSBmcm9tICcuL2NvbXBvbmVudHMvUmFkaW8nO1xuZXhwb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi9jb21wb25lbnRzL1NlbGVjdCc7XG5leHBvcnQgeyBTZWdtZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL1NlZ21lbnQnO1xuZXhwb3J0IHsgU2tlbGV0b24gfSBmcm9tICcuL2NvbXBvbmVudHMvU2tlbGV0b24nO1xuZXhwb3J0IHsgU2xpZGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL1NsaWRlcic7XG5leHBvcnQgeyBTcGFjZSB9IGZyb20gJy4vY29tcG9uZW50cy9TcGFjZSc7XG5leHBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi9jb21wb25lbnRzL1NwaW5uZXInO1xuZXhwb3J0IHsgU3RlcCB9IGZyb20gJy4vY29tcG9uZW50cy9TdGVwJztcbmV4cG9ydCB7IFN3aXRjaCB9IGZyb20gJy4vY29tcG9uZW50cy9Td2l0Y2gnO1xuZXhwb3J0IHsgVGFibGUsIFZpcnR1YWxUYWJsZSwgU3VtbWFyeSB9IGZyb20gJy4vY29tcG9uZW50cy9UYWJsZSc7XG5leHBvcnQgeyBQcm9UYWJsZSB9IGZyb20gJy4vY29tcG9uZW50cy9Qcm9UYWJsZSc7XG5leHBvcnQgeyBWaXJ0dWFsTGlzdCB9IGZyb20gJy4vY29tcG9uZW50cy9WaXJ0dWFsTGlzdCc7XG5leHBvcnQgeyBSZXNpemVPYnNlcnZlciwgdXNlUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvUmVzaXplT2JzZXJ2ZXInO1xuZXhwb3J0IHsgVGFicyB9IGZyb20gJy4vY29tcG9uZW50cy9UYWJzJztcbmV4cG9ydCB7IFRhZyB9IGZyb20gJy4vY29tcG9uZW50cy9UYWcnO1xuZXhwb3J0IHsgVG91ciB9IGZyb20gJy4vY29tcG9uZW50cy9Ub3VyJztcbmV4cG9ydCB7IFR5cG9ncmFwaHkgfSBmcm9tICcuL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5leHBvcnQgeyBUb29sdGlwIH0gZnJvbSAnLi9jb21wb25lbnRzL1Rvb2x0aXAnO1xuZXhwb3J0IHsgVHJpZ2dlciB9IGZyb20gJy4vY29tcG9uZW50cy9UcmlnZ2VyJztcbmV4cG9ydCB7IFVwbG9hZCwgVXBsb2FkRmlsZUJhciB9IGZyb20gJy4vY29tcG9uZW50cy9VcGxvYWQnO1xuZXhwb3J0IHsgdXNlUGFnaW5hdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9QYWdpbmF0aW9uJztcblxuZXhwb3J0IHR5cGUgeyBBY2NvcmRpb25Qcm9wcywgQWNjb3JkaW9uSXRlbSB9IGZyb20gJy4vY29tcG9uZW50cy9BY2NvcmRpb24nO1xuZXhwb3J0IHR5cGUgeyBBbGVydFByb3BzLCBBbGVydFN0YXR1cywgQWxlcnRMaW5rQ29uZmlnIH0gZnJvbSAnLi9jb21wb25lbnRzL0FsZXJ0JztcbmV4cG9ydCB0eXBlIHsgQnV0dG9uUHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvQnV0dG9uJztcbmV4cG9ydCB0eXBlIHsgQ2FsZW5kYXJQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9DYWxlbmRhcic7XG5leHBvcnQgdHlwZSB7IENlbGxQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9DZWxsJztcbmV4cG9ydCB0eXBlIHsgQ2Fyb3VzZWxQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9DYXJvdXNlbCc7XG5leHBvcnQgdHlwZSB7XG4gIENoZWNrYm94Q2hhbmdlRXZlbnQsXG4gIENoZWNrYm94UHJvcHMsXG4gIENoZWNrYm94VmFsdWVUeXBlLFxuICBDaGVja2JveEdyb3VwUHJvcHMsXG4gIENoZWNrYm94R3JvdXBPcHRpb24sXG59IGZyb20gJy4vY29tcG9uZW50cy9DaGVja2JveCc7XG5leHBvcnQgdHlwZSB7IENvYWNoTWFya1Byb3BzLCBDb2FjaE1hcmtQbGFjZW1lbnQsIENvYWNoTWFya1N0ZXAsIENvYWNoTWFya0xhYmVscyB9IGZyb20gJy4vY29tcG9uZW50cy9Db2FjaE1hcmsnO1xuZXhwb3J0IHR5cGUgeyBDb3B5UHJvcHMsIENsaXBib2FyZFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0NvcHknO1xuZXhwb3J0IHR5cGUgeyBEaXZpZGVyUHJvcHMsIERpdmlkZXJUeXBlLCBEaXZpZGVyT3JpZW50YXRpb24sIERpdmlkZXJWYXJpYW50IH0gZnJvbSAnLi9jb21wb25lbnRzL0RpdmlkZXInO1xuZXhwb3J0IHR5cGUgeyBFbXB0eVByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0VtcHR5JztcbmV4cG9ydCB0eXBlIHsgRmxleFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0ZsZXgnO1xuLy8gRm9ybS1yZWxhdGVkIHR5cGVzIChmb3JtZXJseSBmcm9tIC4vY29tcG9uZW50cy9Gb3JtKSBhcmUgbm93IGV4cG9zZWQgdmlhIFByb0Zvcm1cbmV4cG9ydCB0eXBlIHtcbiAgRm9ybUluc3RhbmNlLFxuICBGb3JtQ29yZUluc3RhbmNlLFxuICBGb3JtTGF5b3V0LFxuICBGb3JtU2l6ZSxcbiAgTGFiZWxBbGlnbixcbiAgVmFsaWRhdGVTdGF0dXMsXG4gIFZhbGlkYXRlVHJpZ2dlcixcbiAgUnVsZSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1Byb0Zvcm0nO1xuZXhwb3J0IHR5cGUgeyBHcmlkUm93UHJvcHMsIEdyaWRDb2xQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9HcmlkJztcbmV4cG9ydCB0eXBlIHtcbiAgSWNvbk5hbWUsXG4gIEljb25Db2xvcixcbiAgSWNvbnNQcm9wcyxcbiAgSWNvbldyYXBwZXJQcm9wcyxcbiAgSWNvbkhvdmVyUHJvcHMsXG4gIFNvcnRJY29uU3RhdHVzLFxufSBmcm9tICcuL2NvbXBvbmVudHMvSWNvbnMnO1xuZXhwb3J0IHR5cGUge1xuICBJbnB1dFByb3BzLFxuICBJbnB1dFBhc3N3b3JkUHJvcHMsXG4gIElucHV0U2VhcmNoUHJvcHMsXG4gIElucHV0VGV4dEFyZWFQcm9wcyxcbiAgSW5wdXRPVFBQcm9wcyxcbiAgSW5wdXRUcmFkZVByb3BzLFxuICBJbnB1dEFtb3VudFByb3BzLFxuICBJbnB1dFNpemUsXG4gIElucHV0U3RhdHVzLFxufSBmcm9tICcuL2NvbXBvbmVudHMvSW5wdXQnO1xuZXhwb3J0IHR5cGUgeyBEcmF3ZXJQcm9wcywgRHJhd2VyUGxhY2VtZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL0RyYXdlcic7XG5leHBvcnQgdHlwZSB7XG4gIERyb3Bkb3duUHJvcHMsXG4gIERyb3Bkb3duQ29udGVudCxcbiAgRHJvcGRvd25Db250ZW50Q29udGV4dCxcbiAgRHJvcGRvd25UcmlnZ2VyLFxufSBmcm9tICcuL2NvbXBvbmVudHMvRHJvcGRvd24nO1xuZXhwb3J0IHR5cGUgeyBMaW5rUHJvcHMsIExpbmtDb2xvciwgTGlua1NpemUgfSBmcm9tICcuL2NvbXBvbmVudHMvTGluayc7XG5leHBvcnQgdHlwZSB7IERpYWxvZ1Byb3BzLCBEaWFsb2dTaXplLCBEaWFsb2dGb290ZXJSZW5kZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvRGlhbG9nJztcbmV4cG9ydCB0eXBlIHtcbiAgTmF2aWdhdGlvblByb3BzLFxuICBOYXZpZ2F0aW9uSXRlbSxcbiAgTmF2aWdhdGlvbkhhbmRsZXJzLFxuICBOYXZQcm9wcyxcbiAgTmF2SXRlbSxcbiAgTmF2aWdhdGlvblN0ZXBwZXJQcm9wcyxcbiAgTmF2aWdhdGlvblN0ZXBwZXJTdGVwLFxuICBOYXZpZ2F0aW9uU3RlcHBlclN0ZXBTdGF0dXMsXG59IGZyb20gJy4vY29tcG9uZW50cy9OYXZpZ2F0aW9uJztcbmV4cG9ydCB0eXBlIHtcbiAgTm90aWZpY2F0aW9uTGlua0NvbmZpZyxcbiAgTm90aWZpY2F0aW9uU3RhdHVzLFxuICBOb3RpZmljYXRpb25QbGFjZW1lbnQsXG4gIE5vdGlmaWNhdGlvbktleSxcbiAgTm90aWZpY2F0aW9uT3BlbkNvbmZpZyxcbiAgTm90aWZpY2F0aW9uU3RhdGljQ29uZmlnLFxuICBOb3RpZmljYXRpb25TdGF0aWNBcGksXG59IGZyb20gJy4vY29tcG9uZW50cy9Ob3RpZmljYXRpb24nO1xuZXhwb3J0IHR5cGUgeyBQb3J0YWxQcm9wcywgUG9ydGFsQ29udGFpbmVyIH0gZnJvbSAnLi9jb21wb25lbnRzL1BvcnRhbCc7XG5leHBvcnQgdHlwZSB7XG4gIFBhZ2luYXRpb25Qcm9wcyxcbiAgUGFnaW5hdGlvbkl0ZW0sXG4gIFBhZ2luYXRpb25QYWdlSXRlbSxcbiAgUGFnaW5hdGlvbkNvbnRyb2xJdGVtLFxuICBQYWdpbmF0aW9uRWxsaXBzaXNJdGVtLFxuICBVc2VQYWdpbmF0aW9uT3B0aW9ucyxcbiAgVXNlUGFnaW5hdGlvblJlc3VsdCxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1BhZ2luYXRpb24nO1xuZXhwb3J0IHR5cGUge1xuICBQcm9ncmVzc1Byb3BzLFxuICBQcm9ncmVzc1N0YXRlLFxuICBQcm9ncmVzc0NvbG9yLFxuICBQcm9ncmVzc1BsYWNlbWVudCxcbiAgUHJvZ3Jlc3NGb3JtYXRDb250ZXh0LFxufSBmcm9tICcuL2NvbXBvbmVudHMvUHJvZ3Jlc3MnO1xuZXhwb3J0IHR5cGUge1xuICBQb3Bjb25maXJtUHJvcHMsXG4gIFBvcGNvbmZpcm1QbGFjZW1lbnQsXG4gIFBvcGNvbmZpcm1UcmlnZ2VyLFxuICBQb3Bjb25maXJtQWN0aW9uQ29udGV4dCxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1BvcGNvbmZpcm0nO1xuZXhwb3J0IHR5cGUge1xuICBSYWRpb0FsaWdubWVudCxcbiAgUmFkaW9DaGFuZ2VFdmVudCxcbiAgUmFkaW9Hcm91cERpcmVjdGlvbixcbiAgUmFkaW9Hcm91cFByb3BzLFxuICBSYWRpb09wdGlvbkl0ZW0sXG4gIFJhZGlvUHJvcHMsXG4gIFJhZGlvVmFsdWVUeXBlLFxufSBmcm9tICcuL2NvbXBvbmVudHMvUmFkaW8nO1xuZXhwb3J0IHR5cGUge1xuICBTZWxlY3RDdXN0b21QYW5lbENvbnRleHQsXG4gIFNlbGVjdEN1c3RvbVByb3BzLFxuICBTZWxlY3RDdXN0b21UcmlnZ2VyQ29udGV4dCxcbiAgU2VsZWN0TXVsdGlwbGVWYWx1ZSxcbiAgU2VsZWN0T3B0aW9uLFxuICBTZWxlY3RPcHRpb25WYWx1ZSxcbiAgU2VsZWN0UHJvcHMsXG4gIFNlbGVjdFJlbmRlck9wdGlvbk1ldGEsXG4gIFNlbGVjdFJlbmRlclZhbHVlTWV0YSxcbiAgU2VsZWN0U2luZ2xlVmFsdWUsXG4gIFNlbGVjdFNpemUsXG4gIFNlbGVjdFN0YXR1cyxcbiAgU2VsZWN0VmFsdWUsXG59IGZyb20gJy4vY29tcG9uZW50cy9TZWxlY3QnO1xuZXhwb3J0IHR5cGUgeyBTZWdtZW50UHJvcHMsIFNlZ21lbnRJdGVtIH0gZnJvbSAnLi9jb21wb25lbnRzL1NlZ21lbnQnO1xuZXhwb3J0IHR5cGUgeyBTa2VsZXRvblByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL1NrZWxldG9uJztcbmV4cG9ydCB0eXBlIHsgU2xpZGVyUHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvU2xpZGVyJztcbmV4cG9ydCB0eXBlIHsgU3BhY2VQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9TcGFjZSc7XG5leHBvcnQgdHlwZSB7IFNwaW5uZXJQcm9wcywgU3Bpbm5lclR5cGUgfSBmcm9tICcuL2NvbXBvbmVudHMvU3Bpbm5lcic7XG5leHBvcnQgdHlwZSB7IFN0ZXBQcm9wcywgU3RlcEl0ZW0sIFN0ZXBTdGF0dXMsIFN0ZXBUYWdDb25maWcgfSBmcm9tICcuL2NvbXBvbmVudHMvU3RlcCc7XG5leHBvcnQgdHlwZSB7IFN3aXRjaFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL1N3aXRjaCc7XG5leHBvcnQgdHlwZSB7XG4gIFRhYmxlUHJvcHMsXG4gIFZpcnR1YWxUYWJsZVByb3BzLFxuICBUYWJsZUNvbHVtbixcbiAgVGFibGVDaGFuZ2VNZXRhLFxuICBUYWJsZVBhZ2luYXRpb25Db25maWcsXG4gIFRhYmxlUm93U2VsZWN0aW9uLFxuICBUYWJsZUV4cGFuZGFibGVDb25maWcsXG4gIFRhYmxlTG9hZGluZ0NvbmZpZyxcbiAgVGFibGVSZWYsXG59IGZyb20gJy4vY29tcG9uZW50cy9UYWJsZSc7XG5leHBvcnQgdHlwZSB7XG4gIFByb1RhYmxlUHJvcHMsXG4gIFByb0NvbHVtbnMsXG4gIFByb0NvbHVtblR5cGUsXG4gIFByb1RhYmxlUmVxdWVzdCxcbiAgUHJvVGFibGVSZXF1ZXN0T3B0aW9ucyxcbiAgUmVxdWVzdERhdGEsXG4gIFBhZ2VJbmZvLFxuICBQcm9UYWJsZUFjdGlvblJlZixcbiAgUHJvVGFibGVQYWdpbmF0aW9uQ29uZmlnLFxuICBQcm9UYWJsZVZhbHVlVHlwZSxcbiAgU2VhcmNoQ29uZmlnIGFzIFByb1RhYmxlU2VhcmNoQ29uZmlnLFxuICBQcm9UYWJsZVNvcnRQYXJhbSxcbiAgUHJvVGFibGVGaWx0ZXJQYXJhbSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1Byb1RhYmxlJztcbmV4cG9ydCB0eXBlIHsgVGFic1Byb3BzLCBUYWJJdGVtIH0gZnJvbSAnLi9jb21wb25lbnRzL1RhYnMnO1xuZXhwb3J0IHR5cGUgeyBUYWdQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9UYWcnO1xuZXhwb3J0IHR5cGUge1xuICBMaXN0UmVmIGFzIFZpcnR1YWxMaXN0UmVmLFxuICBMaXN0UHJvcHMgYXMgVmlydHVhbExpc3RQcm9wcyxcbiAgU2Nyb2xsSW5mbyBhcyBWaXJ0dWFsTGlzdFNjcm9sbEluZm8sXG59IGZyb20gJy4vY29tcG9uZW50cy9WaXJ0dWFsTGlzdCc7XG5leHBvcnQgdHlwZSB7XG4gIFJlc2l6ZU9ic2VydmVyUHJvcHMsXG4gIFNpemVJbmZvIGFzIFJlc2l6ZU9ic2VydmVyU2l6ZUluZm8sXG4gIE9uUmVzaXplIGFzIFJlc2l6ZU9ic2VydmVyT25SZXNpemUsXG59IGZyb20gJy4vY29tcG9uZW50cy9SZXNpemVPYnNlcnZlcic7XG5leHBvcnQgdHlwZSB7XG4gIFR5cG9ncmFwaHlCb2R5UHJvcHMsXG4gIFR5cG9ncmFwaHlDb3B5YWJsZUNvbmZpZyxcbiAgVHlwb2dyYXBoeUJvZHlTaXplLFxuICBUeXBvZ3JhcGh5RGlzcGxheVByb3BzLFxuICBUeXBvZ3JhcGh5RGlzcGxheVNpemUsXG4gIFR5cG9ncmFwaHlFbGxpcHNpc0NvbmZpZyxcbiAgVHlwb2dyYXBoeUhlYWRsaW5lUHJvcHMsXG4gIFR5cG9ncmFwaHlIZWFkbGluZVNpemUsXG4gIFR5cG9ncmFwaHlMYWJlbFByb3BzLFxuICBUeXBvZ3JhcGh5TGFiZWxTaXplLFxuICBUeXBvZ3JhcGh5TGlua1Byb3BzLFxuICBUeXBvZ3JhcGh5TGlua1NpemUsXG4gIFR5cG9ncmFwaHlUaXRsZVByb3BzLFxuICBUeXBvZ3JhcGh5VGl0bGVTaXplLFxufSBmcm9tICcuL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5leHBvcnQgdHlwZSB7IFRvdXJQcm9wcywgVG91clN0ZXAgfSBmcm9tICcuL2NvbXBvbmVudHMvVG91cic7XG5leHBvcnQgdHlwZSB7IFRvb2x0aXBQcm9wcywgVG9vbHRpcFBsYWNlbWVudCB9IGZyb20gJy4vY29tcG9uZW50cy9Ub29sdGlwJztcbmV4cG9ydCB0eXBlIHtcbiAgVHJpZ2dlclByb3BzLFxuICBUcmlnZ2VyQWN0aW9uLFxuICBUcmlnZ2VyQ29udGVudCxcbiAgVHJpZ2dlckNvbnRlbnRDb250ZXh0LFxuICBUcmlnZ2VyUm9sZSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1RyaWdnZXInO1xuZXhwb3J0IHR5cGUge1xuICBVcGxvYWRQcm9wcyxcbiAgVXBsb2FkRmlsZUJhclByb3BzLFxufSBmcm9tICcuL2NvbXBvbmVudHMvVXBsb2FkJztcbmV4cG9ydCB0eXBlIHtcbiAgUHJvRm9ybVN5bmNUb1VybCxcbiAgUHJvRm9ybVByb3BzLFxuICBQcm9Gb3JtSXRlbVByb3BzLFxuICBQcm9Gb3JtSXRlbVNoYXJlZFByb3BzLFxuICBQcm9Gb3JtTGF5b3V0Q29uZmlnLFxuICBQcm9Gb3JtRmllbGRQcm9wcyxcbiAgUHJvRm9ybUNvbnRleHRWYWx1ZSxcbiAgUHJvRm9ybVN0YWJsZUNvbnRleHRWYWx1ZSxcbiAgUHJvRm9ybVN0YXRlQ29udGV4dFZhbHVlLFxuICBQcm9Gb3JtRm9ybUluc3RhbmNlLFxuICBQcm9Gb3JtVmFsaWRhdGVSZXN1bHQsXG4gIFByb0Zvcm1GaWVsZE5hbWUsXG4gIFByb0Zvcm1QYXRoVmFsdWUsXG4gIFByb0Zvcm1GaWVsZFZhbHVlTWFwLFxuICBQcm9Gb3JtUmVjdXJzaXZlUGFydGlhbCxcbiAgUHJvRm9ybVZhbHVlc1BhdGNoLFxuICBQcm9Gb3JtTW9kZSxcbiAgUHJvRm9ybUNvbFByb3BzLFxuICBQcm9Gb3JtVmFsdWVUeXBlLFxuICBQcm9Gb3JtRmllbGRUcmFuc2Zvcm1GbixcbiAgUHJvRm9ybUZpZWxkQ29udmVydFZhbHVlRm4sXG4gIFByb0Zvcm1EYXRlRm9ybWF0dGVyLFxuICBQcm9Gb3JtVmFsdWVFbnVtT2JqLFxuICBQcm9Gb3JtRmllbGRPcHRpb25WYWx1ZSxcbiAgUHJvRm9ybVJlcXVlc3RPcHRpb24sXG4gIEZvcm1MaXN0Q29udGV4dFZhbHVlLFxuICBQcm9Gb3JtRmllbGRTZXRQcm9wcyxcbiAgUHJvRm9ybUdyb3VwUHJvcHMsXG4gIFN1Ym1pdHRlclByb3BzLFxuICBQcm9Gb3JtRGVwZW5kZW5jeVByb3BzLFxuICBQcm9Gb3JtTGlzdFByb3BzLFxuICBQcm9Gb3JtTGlzdEFjdGlvbixcbiAgRGlhbG9nRm9ybVByb3BzLFxuICBEcmF3ZXJGb3JtUHJvcHMsXG4gIFF1ZXJ5RmlsdGVyUHJvcHMsXG4gIENyZWF0ZVByb0Zvcm1GaWVsZENvbmZpZyxcbiAgUHJvRm9ybVNjaGVtYUNvbHVtbixcbiAgUHJvRm9ybVNjaGVtYUNvbHVtbnMsXG4gIFByb0Zvcm1TY2hlbWFWYWx1ZVR5cGUsXG4gIFNjaGVtYUZvcm1Qcm9wcyxcbiAgVXNlRm9ybVdhdGNoLFxufSBmcm9tICcuL2NvbXBvbmVudHMvUHJvRm9ybSc7XG4iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1money/component-ui",
3
- "version": "0.0.75",
3
+ "version": "0.0.77",
4
4
  "description": "React Components based on primereact for 1money front-end projects",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -67,6 +67,12 @@
67
67
  "source": "stories",
68
68
  "compilable": true
69
69
  },
70
+ "059d4b90513df16e1152c3b3c26f16fd3f888eed8540bfcd39df492d290fb571": {
71
+ "title": "Rule",
72
+ "code": "<ProForm.Text\n name=\"username\"\n label=\"Username\"\n rules={[\n { required: true, message: 'Username is required' },\n {\n validator: async (_rule, value) => {\n if (!value) return;\n const available = await checkUsernameAvailable(String(value));\n if (!available) {\n throw new Error('Username is already taken');\n }\n },\n },\n ]}\n/>",
73
+ "source": "readme",
74
+ "compilable": true
75
+ },
70
76
  "059d700d7a0e1ac3f3128b3461d9f1e718e140448690ccb50db0915c49cd7461": {
71
77
  "title": "Canonical usage",
72
78
  "code": "import { Alert } from '@1money/component-ui';\n// or\nimport { Alert } from '@1money/component-ui/Alert';",
@@ -79,12 +85,6 @@
79
85
  "source": "stories",
80
86
  "compilable": true
81
87
  },
82
- "06ed80f270ad4a44a62966e3d03d55cb761b84d414aac8e3da266148f530c106": {
83
- "title": "Dependency In List",
84
- "code": "<ProForm\n {...args}\n initialValues={{ items: [{ type: 'fixed', amount: '100' }] }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormList name=\"items\" label=\"Discounts\" min={1} max={5}>\n {(fields) =>\n fields.map(({ name, key }) => (\n <div key={key} style={{ display: 'flex', gap: 8, alignItems: 'flex-end' }}>\n <ProFormSelect\n name={`${name}.type`}\n label=\"Type\"\n valueEnum={{ fixed: 'Fixed amount', percent: 'Percentage' }}\n />\n <ProFormDependency name={[`${name}.type`]} ignoreFormListField>\n {(values) =>\n values[`${name}.type`] === 'percent' ? (\n <ProFormText name={`${name}.rate`} label=\"Rate (%)\" placeholder=\"e.g. 10\" />\n ) : (\n <ProFormText name={`${name}.amount`} label=\"Amount ($)\" placeholder=\"e.g. 100\" />\n )\n }\n </ProFormDependency>\n </div>\n ))\n }\n </ProFormList>\n </ProForm>",
85
- "source": "stories",
86
- "compilable": false
87
- },
88
88
  "0716e5e5fffc542e7b028181c93a5655fb3738281657fc43abb5eb99a95b3e8b": {
89
89
  "title": "Custom Icon",
90
90
  "code": "<Alert\n {...args}\n status=\"info\"\n title=\"Manual review queued\"\n body=\"This alert uses a custom icon to reflect a workflow-specific state instead of the default status glyph.\"\n icon={<Icons name=\"notificationWarning\" size={32} />}\n link={{ label: 'Open queue', onClick: fn() }}\n />",
@@ -235,6 +235,12 @@
235
235
  "source": "stories",
236
236
  "compilable": false
237
237
  },
238
+ "13500f6400048c58ebdd67eb24eb90d67d08102e36cba22502bc9dc016cc7476": {
239
+ "title": "Warning Only Validation",
240
+ "code": "<ProForm\n {...args}\n initialValues={{ nickname: '', amount: '' }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormText\n name=\"nickname\"\n label=\"Nickname\"\n description=\"Submitting still works while the warning is shown\"\n rules={[\n { required: true },\n { min: 4, warningOnly: true, message: 'Short nicknames are hard to search' },\n ]}\n />\n <ProFormText\n name=\"amount\"\n label=\"Amount\"\n description=\"Validated on blur only (item-level validateTrigger)\"\n validateTrigger=\"onBlur\"\n rules={[{ pattern: /^\\d+$/, message: 'Digits only' }]}\n />\n </ProForm>",
241
+ "source": "stories",
242
+ "compilable": false
243
+ },
238
244
  "144e248f0e0e1f5a681bdd8625add8d71643d3cca3f40bd840d914b057970d9a": {
239
245
  "title": "All Variants",
240
246
  "code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <div>\n <p style={{ marginBottom: 8 }}>Default</p>\n <Copy {...args} contained/>\n </div>\n <div>\n <Copy {...args} contained={false} />\n </div>\n </div>",
@@ -559,12 +565,6 @@
559
565
  "source": "stories",
560
566
  "compilable": false
561
567
  },
562
- "31e687407721cc55ccd2d23531c5e503c2b504126b32c3d64a6ea3fd5841a76c": {
563
- "title": "Typed forms (generics)",
564
- "code": "interface CreateUserPayload { username: string; role: 'admin' | 'viewer' }\n\n<ProForm<CreateUserPayload>\n onFinish={(values) => createUser(values)} // values: CreateUserPayload\n formRef={formRef} // ProFormFormInstance<CreateUserPayload>\n/>",
565
- "source": "readme",
566
- "compilable": true
567
- },
568
568
  "321187232dc3b48e95ce3712c00ca272ee685f253daca21db994104a5eb509d2": {
569
569
  "title": "Searchable",
570
570
  "code": "{\n const [basic, setBasic] = useState<string | number | undefined>('usdt');\n const [searchOnly, setSearchOnly] = useState<string | number | undefined>(undefined);\n const [searchValue, setSearchValue] = useState('');\n const [smallValue, setSmallValue] = useState<string | number | undefined>('usdt');\n\n const trimmed = searchValue.trim().toLowerCase();\n const filteredOptions = trimmed\n ? ASSET_OPTIONS.filter((option) => {\n const label = String(option.label).toLowerCase();\n const description = String(option.description ?? '').toLowerCase();\n const optionValue = String(option.value).toLowerCase();\n return (\n label.includes(trimmed) ||\n description.includes(trimmed) ||\n optionValue.includes(trimmed)\n );\n })\n : [];\n\n return (\n <div style={rowStyle}>\n <div style={cellStyle(320)}>\n <p style={captionStyle}>Default (large)</p>\n <Select\n label=\"Asset\"\n searchable\n searchPlaceholder=\"Search\"\n options={ASSET_OPTIONS}\n value={basic}\n onChange={(next) => setBasic(next as string | number | undefined)}\n />\n </div>\n <div style={cellStyle(320)}>\n <p style={captionStyle}>Small + grouped</p>\n <Select\n label=\"Asset\"\n size=\"small\"\n searchable\n searchPlaceholder=\"Search\"\n filterInputAutoFocus={false}\n options={GROUPED_ASSET_OPTIONS}\n renderOption={renderAssetOption}\n value={smallValue}\n onChange={(next) => setSmallValue(next as string | number | undefined)}\n />\n </div>\n <div style={cellStyle(320)}>\n <p style={captionStyle}>Controlled filter (search-only)</p>\n <Select\n label=\"Asset\"\n searchable\n searchPlaceholder=\"Search\"\n options={filteredOptions}\n searchValue={searchValue}\n emptyContent={trimmed ? 'No matches' : 'Type to search assets'}\n value={searchOnly}\n onSearchChange={setSearchValue}\n onChange={(next) => setSearchOnly(next as string | number | undefined)}\n />\n </div>\n </div>\n );\n }",
@@ -691,12 +691,6 @@
691
691
  "source": "stories",
692
692
  "compilable": true
693
693
  },
694
- "3c3505571d048f21d338aa69eef9958e1c52c1291853b9b05ab914623319a464": {
695
- "title": "Async Request",
696
- "code": "{\n const [userId, setUserId] = useState(1);\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <div style={{ display: 'flex', gap: 8 }}>\n <Button color={userId === 1 ? 'primary' : 'grey'} onClick={() => setUserId(1)}>\n User 1\n </Button>\n <Button color={userId === 2 ? 'primary' : 'grey'} onClick={() => setUserId(2)}>\n User 2\n </Button>\n </div>\n <ProForm\n {...args}\n params={{ userId }}\n request={async (params) => {\n await new Promise((r) => setTimeout(r, 1000));\n const data: Record<number, Record<string, unknown>> = {\n 1: { name: 'Alice', email: 'alice@example.com' },\n 2: { name: 'Bob', email: 'bob@example.com' },\n };\n return data[(params as { userId: number })?.userId] || {};\n }}\n >\n <ProFormText name=\"name\" label=\"Name\" />\n <ProFormText name=\"email\" label=\"Email\" />\n </ProForm>\n </div>\n );\n }",
697
- "source": "stories",
698
- "compilable": false
699
- },
700
694
  "3c5bbd0e70d50121131f70e69229d2badab6a0c4ce56c9343804fac5db4cc85d": {
701
695
  "title": "Cell Centered",
702
696
  "code": "<div style={{ display: 'flex', gap: 12, alignItems: 'flex-start', flexWrap: 'wrap' }}>\n <Radio\n checked\n variant=\"cell\"\n size=\"large\"\n alignment=\"center\"\n icon=\"language\"\n tag=\"Tag\"\n label=\"Global account\"\n description=\"International transfers\"\n style={{ width: 200 }}\n />\n <Radio\n checked\n variant=\"cell\"\n size=\"medium\"\n alignment=\"center\"\n icon=\"usd\"\n label=\"USD1\"\n style={{ width: 200 }}\n />\n <Radio\n checked\n variant=\"cell\"\n size=\"small\"\n alignment=\"center\"\n icon=\"usd\"\n label=\"USD1\"\n style={{ width: 200 }}\n />\n </div>",
@@ -769,6 +763,12 @@
769
763
  "source": "stories",
770
764
  "compilable": false
771
765
  },
766
+ "4617e0aac2539a1d63cf4476b33848da29083ee5a92a4655275ac7eba9eb0246": {
767
+ "title": "Typed forms (generics)",
768
+ "code": "const cityColumn: ProFormSchemaColumn<CreateUserPayload, 'address.city'> = {\n dataIndex: 'address.city',\n initialValue: 'Shanghai',\n};",
769
+ "source": "readme",
770
+ "compilable": true
771
+ },
772
772
  "466a2cf763ac1374c62583da68c81d15d8aece066ae06417d6a4356855606954": {
773
773
  "title": "With Badges",
774
774
  "code": "<Tabs\n items={[\n { key: 'tab1', label: 'Overview', badge: 5 },\n { key: 'tab2', label: 'Transactions', badge: 12 },\n { key: 'tab3', label: 'Analytics' },\n { key: 'tab4', label: 'Settings', badge: 3 },\n ]}\n />",
@@ -835,6 +835,12 @@
835
835
  "source": "stories",
836
836
  "compilable": false
837
837
  },
838
+ "4a895c708129dba60a9452a82b550b2f431e587c0987b51738984c48f0e964e1": {
839
+ "title": "Typed forms (generics)",
840
+ "code": "const ctx = ProForm.useContext<CreateUserPayload>();\nctx.values.address.city; // string\nctx.setFieldValue('role', 'viewer'); // value checked against the field",
841
+ "source": "readme",
842
+ "compilable": true
843
+ },
838
844
  "4ad4837cde91f1ebd2cad90d6f82683fd94957192e4b88fa46882aac2330b854": {
839
845
  "title": "Group Collapsible",
840
846
  "code": "<ProForm\n {...args}\n initialValues={{ name: 'Alice', bio: '', theme: 'light' }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProForm.Group title=\"Basic Info\" collapsible>\n <ProFormText name=\"name\" label=\"Name\" rules={[{ required: true }]} />\n <ProFormText name=\"bio\" label=\"Bio\" />\n </ProForm.Group>\n <ProForm.Group title=\"Preferences\" collapsible defaultCollapsed>\n <ProFormText name=\"theme\" label=\"Theme\" />\n <ProFormSwitch name=\"notifications\" label=\"Notifications\" />\n </ProForm.Group>\n </ProForm>",
@@ -883,6 +889,12 @@
883
889
  "source": "readme",
884
890
  "compilable": true
885
891
  },
892
+ "562dddaaddd3e544936b5e89215d9e70e60d127971cf1ac6ae60d8b177af7fab": {
893
+ "title": "Typed forms (generics)",
894
+ "code": "interface CreateUserPayload {\n username: string;\n role: 'admin' | 'viewer';\n address: { city: string };\n}\n\n<ProForm<CreateUserPayload>\n onFinish={(values) => createUser(values)} // values: CreateUserPayload\n formRef={formRef} // ProFormFormInstance<CreateUserPayload>\n>\n <ProForm.Text<CreateUserPayload> name=\"username\" />\n <ProForm.Text<CreateUserPayload> name=\"address.city\" />\n</ProForm>\n\nconst [form] = ProForm.useForm<CreateUserPayload>();\nform.getFieldValue('address.city'); // string\nform.getFieldFormatValue('role'); // 'admin' | 'viewer'\nform.setFieldValue('role', 'admin'); // value checked against the field\nform.setFieldsValue({ address: { city: 'SG' } }); // nested patches deep-merge\nform.setFieldsValue({ 'address.city': 'SG' }); // dot-key patches are supported",
895
+ "source": "readme",
896
+ "compilable": true
897
+ },
886
898
  "56434ea344c01f25a04ecb3cdf55d35d04a2631937c4fdecac6e4bb577a69175": {
887
899
  "title": "Canonical usage",
888
900
  "code": "import { Switch } from '@1money/component-ui';\n// or\nimport { Switch } from '@1money/component-ui/Switch';",
@@ -925,6 +937,12 @@
925
937
  "source": "stories",
926
938
  "compilable": false
927
939
  },
940
+ "59856252632897157d32c74aa985ecb8fb411ce6574ee696171c79f957372825": {
941
+ "title": "Async Validator",
942
+ "code": "<ProForm\n {...args}\n initialValues={{ username: '' }}\n onFinish={(values) => alert('Success: ' + JSON.stringify(values))}\n >\n <ProFormText\n name=\"username\"\n label=\"Username\"\n placeholder=\"Try admin / root / 1money\"\n description=\"The availability check is declared with rule-level validateTrigger: 'onBlur' inside an item-level validateTrigger of ['onChange', 'onBlur'] (rule triggers must be a subset of the item triggers). It runs on blur with a simulated 800ms server delay β€” submit always runs every rule.\"\n validateTrigger={['onChange', 'onBlur']}\n rules={[\n { required: true, message: 'Username is required' },\n { validator: checkUsernameAvailable, validateTrigger: 'onBlur' },\n ]}\n />\n <CheckingHint name=\"username\" />\n </ProForm>",
943
+ "source": "stories",
944
+ "compilable": false
945
+ },
928
946
  "5a377a26c6ff1d855746de603b966dc47d7c9bcb12b73a0bcf2d990f55822934": {
929
947
  "title": "Figma Wallet Registry",
930
948
  "code": "<WalletRegistryStory\n dataSource={walletRegistryRows}\n defaultExpandedKeys={['wallet-customer-funds']}\n />",
@@ -1057,6 +1075,12 @@
1057
1075
  "source": "stories",
1058
1076
  "compilable": true
1059
1077
  },
1078
+ "62750a71bdc58bc9e0f99757dab54b58d289781855f75464a3dfde041584e5a9": {
1079
+ "title": "Typed forms (generics)",
1080
+ "code": "<ProForm<CreateUserPayload, { tenantId: string }>\n params={{ tenantId: 'tenant-1' }}\n request={async (params) => ({ username: params?.tenantId ?? '' })}\n/>",
1081
+ "source": "readme",
1082
+ "compilable": true
1083
+ },
1060
1084
  "62b5efe615c2669f474d5e6b4b89e9548d25b067decf9570da5994151f8c3d63": {
1061
1085
  "title": "Import",
1062
1086
  "code": "import { Radio, RadioGroup } from '@1money/component-ui';\n// or tree-shakeable\nimport { Radio, RadioGroup } from '@1money/component-ui/Radio';",
@@ -1099,11 +1123,11 @@
1099
1123
  "source": "stories",
1100
1124
  "compilable": true
1101
1125
  },
1102
- "699022fcfe2193a016f965ca015fe7b541b5f1215b76c3ce9b65711615c76f76": {
1103
- "title": "ProForm.useWatch",
1104
- "code": "const plan = ProForm.useWatch('plan'); // single field\nconst values = ProForm.useWatch(); // whole values object",
1105
- "source": "readme",
1106
- "compilable": true
1126
+ "692b786f52a95876c3ce1005391b4720c2fdb792e169c6832998d818a6be5fbc": {
1127
+ "title": "Async Validator Error",
1128
+ "code": "<ProForm\n {...args}\n initialValues={{ email: 'taken@example.com' }}\n onFinish={(values) => alert('Success: ' + JSON.stringify(values))}\n onFinishFailed={({ errors }) =>\n alert('Submit blocked by validation: ' + JSON.stringify(errors))\n }\n >\n <ProFormText\n name=\"email\"\n label=\"Email\"\n placeholder=\"Any value β€” the remote check always rejects\"\n description=\"The async validator always rejects after a simulated 800ms delay; the rejected Error's message becomes the field error. Blur the field to see the pending β†’ error transition. Submit is blocked and routed to onFinishFailed.\"\n validateTrigger={['onChange', 'onBlur']}\n rules={[\n { required: true, message: 'Email is required' },\n { validator: checkEmailAlwaysTaken, validateTrigger: 'onBlur' },\n ]}\n />\n <CheckingHint name=\"email\" />\n </ProForm>",
1129
+ "source": "stories",
1130
+ "compilable": false
1107
1131
  },
1108
1132
  "69b3c7f7f0c52a2b442c48facf31fa65600796fb8e47401b6b3c432389dbf92d": {
1109
1133
  "title": "Slider Story",
@@ -1135,6 +1159,12 @@
1135
1159
  "source": "readme",
1136
1160
  "compilable": true
1137
1161
  },
1162
+ "6f097a82d83df1982f3f442539825fbae168fd100c8516f97657fdc82d8373f1": {
1163
+ "title": "Dependency In List",
1164
+ "code": "<ProForm\n {...args}\n initialValues={{ items: [{ type: 'fixed', amount: '100' }] }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormList name=\"items\" label=\"Discounts\" min={1} max={5}>\n {(fields) =>\n fields.map(({ name, key }) => (\n <div key={key} style={{ display: 'flex', gap: 8, alignItems: 'flex-end' }}>\n <ProFormSelect\n name={`${name}.type`}\n label=\"Type\"\n valueEnum={{ fixed: 'Fixed amount', percent: 'Percentage' }}\n />\n <ProFormDependency name={[`${name}.type`]}>\n {(values) =>\n values[`${name}.type`] === 'percent' ? (\n <ProFormText name={`${name}.rate`} label=\"Rate (%)\" placeholder=\"e.g. 10\" />\n ) : (\n <ProFormText name={`${name}.amount`} label=\"Amount ($)\" placeholder=\"e.g. 100\" />\n )\n }\n </ProFormDependency>\n </div>\n ))\n }\n </ProFormList>\n </ProForm>",
1165
+ "source": "stories",
1166
+ "compilable": false
1167
+ },
1138
1168
  "6f2b7da00479a6033fdaca36f0646a924c61cbf09cd0e07da6948a884af98a61": {
1139
1169
  "title": "Dependency",
1140
1170
  "code": "<ProForm\n {...args}\n initialValues={{ hasAccount: false, accountType: '' }}\n >\n <ProFormSwitch name=\"hasAccount\" label=\"Has Account\" />\n <ProFormDependency name={['hasAccount']}>\n {({ hasAccount }) =>\n hasAccount ? (\n <>\n <ProFormText\n name=\"accountId\"\n label=\"Account ID\"\n rules={[{ required: true }]}\n />\n <ProFormText name=\"accountName\" label=\"Account Name\" />\n </>\n ) : null\n }\n </ProFormDependency>\n </ProForm>",
@@ -1159,6 +1189,12 @@
1159
1189
  "source": "stories",
1160
1190
  "compilable": false
1161
1191
  },
1192
+ "72791f662fcf89e80142f2bfa365124f069ad691fd8779bb8d42587b91073e0d": {
1193
+ "title": "ProForm.useWatch",
1194
+ "code": "const plan = ProForm.useWatch('plan'); // untyped/open usage\n\nconst city = ProForm.useWatch<CreateUserPayload, 'address.city'>('address.city'); // string\nconst values = ProForm.useWatch<CreateUserPayload>(); // CreateUserPayload",
1195
+ "source": "readme",
1196
+ "compilable": true
1197
+ },
1162
1198
  "7318e5e19b35c2334284717d2b44382c3f0aa456d1d61c6892e3211c2c77135d": {
1163
1199
  "title": "Canonical usage",
1164
1200
  "code": "import { Pagination, usePagination } from '@1money/component-ui';\n// or\nimport { Pagination, usePagination } from '@1money/component-ui/Pagination';",
@@ -1195,12 +1231,6 @@
1195
1231
  "source": "readme",
1196
1232
  "compilable": true
1197
1233
  },
1198
- "74f28ec19da10ee7a3cecb129f444ca1e9b9bfa6a44bda5422d89c70a079ddc3": {
1199
- "title": "Validation",
1200
- "code": "<ProForm\n {...args}\n initialValues={{}}\n onFinish={(values) => alert('Success: ' + JSON.stringify(values))}\n >\n <ProFormText\n name=\"username\"\n label=\"Username\"\n rules={[\n { required: true, message: 'Username is required' },\n { min: 3, message: 'At least 3 characters' },\n { max: 20, message: 'At most 20 characters' },\n ]}\n />\n <ProFormText\n name=\"email\"\n label=\"Email\"\n rules={[\n { required: true, message: 'Email is required' },\n { pattern: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/, message: 'Invalid email' },\n ]}\n />\n <ProFormPassword\n name=\"password\"\n label=\"Password\"\n rules={[\n { required: true },\n { min: 8, message: 'At least 8 characters' },\n ]}\n />\n <ProFormCheckbox\n name=\"terms\"\n label=\"I accept the terms\"\n rules={[\n {\n validator: (value) => {\n if (!value) return 'You must accept the terms';\n return true;\n },\n },\n ]}\n />\n </ProForm>",
1201
- "source": "stories",
1202
- "compilable": false
1203
- },
1204
1234
  "74f5da9a09e06d9d070a4672ca86016fd56695dd053d8b5bfb5f5f4388eadd32": {
1205
1235
  "title": "Usage",
1206
1236
  "code": "import { ProTable } from '@1money/component-ui';\nimport type { ProColumns } from '@1money/component-ui';\nimport '@1money/component-ui/index.css';\n\ninterface Account { id: string; name: string; status: string; amount: number }\n\nconst columns: ProColumns<Account>[] = [\n { key: 'name', dataIndex: 'name', title: 'Name', valueType: 'text' },\n {\n key: 'status', dataIndex: 'status', title: 'Status', valueType: 'select',\n valueEnum: { active: { text: 'Active' }, frozen: { text: 'Frozen' } },\n },\n { key: 'amount', dataIndex: 'amount', title: 'Amount', valueType: 'digit', search: false },\n];\n\n<ProTable<Account>\n rowKey=\"id\"\n columns={columns}\n request={async (params, sort, filter) => {\n const res = await api.list(params); // params includes current, pageSize + search values\n return { data: res.rows, total: res.total, success: true };\n }}\n pagination={{ pageSize: 10 }}\n/>;",
@@ -1483,18 +1513,18 @@
1483
1513
  "source": "stories",
1484
1514
  "compilable": true
1485
1515
  },
1516
+ "8a26ecdb4c7ab900bc0b4ddf1c51f7da668aa5ed67d2683ef63f07028cdb7e84": {
1517
+ "title": "Nested List",
1518
+ "code": "<ProForm\n {...args}\n initialValues={{\n groups: [\n { title: 'Group A', items: [{ name: 'Item 1' }] },\n ],\n }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormList name=\"groups\" label=\"Groups\">\n {(fields) =>\n fields.map(({ name, key }) => (\n <div key={key} style={{ border: '1px solid #eee', padding: 12, marginBottom: 8, borderRadius: 4 }}>\n <ProFormText name={`${name}.title`} label=\"Group Title\" />\n {/* Nested list names are absolute paths, built from the row's field.name */}\n <ProFormList name={`${name}.items`} label=\"Items\">\n {(subFields) =>\n subFields.map((sf) => (\n <ProFormText key={sf.key} name={`${sf.name}.name`} label=\"Item Name\" />\n ))\n }\n </ProFormList>\n </div>\n ))\n }\n </ProFormList>\n </ProForm>",
1519
+ "source": "stories",
1520
+ "compilable": false
1521
+ },
1486
1522
  "8a5806fc588c223301f3b8050939aef03b37dac957c426887998aa3f4423697e": {
1487
1523
  "title": "Vertical",
1488
1524
  "code": "<span>\n Text <Divider type=\"vertical\" /> Text\n</span>",
1489
1525
  "source": "readme",
1490
1526
  "compilable": true
1491
1527
  },
1492
- "8b751a499e8365e384d8c21bfd57f0c317933488ecf3d0d3cef92f63f7876153": {
1493
- "title": "Warning Only Validation",
1494
- "code": "<ProForm\n {...args}\n initialValues={{ nickname: '', amount: '' }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormText\n name=\"nickname\"\n label=\"Nickname\"\n description=\"Submitting still works while the warning is shown\"\n rules={[\n { required: true },\n { min: 4, warningOnly: true, message: 'Short nicknames are hard to search' },\n ]}\n />\n <ProFormText\n name=\"amount\"\n label=\"Amount\"\n description=\"Validated on blur only (rule-level validateTrigger)\"\n rules={[{ pattern: /^\\d+$/, message: 'Digits only', validateTrigger: 'onBlur' }]}\n />\n </ProForm>",
1495
- "source": "stories",
1496
- "compilable": false
1497
- },
1498
1528
  "8bbc2c00d6f26600eaf14a2347cb6396fa9aed93dd50bb9b95614282b0c307ea": {
1499
1529
  "title": "Colors",
1500
1530
  "code": "<div style={{ display: 'flex', gap: 24, alignItems: 'center' }}>\n {LINK_COLORS.map((color) => (\n <Link {...args} key={color} color={color}>\n {color}\n </Link>\n ))}\n </div>",
@@ -1783,6 +1813,12 @@
1783
1813
  "source": "stories",
1784
1814
  "compilable": true
1785
1815
  },
1816
+ "aba0160ff1433e8ec47e740639c3fcc345982a27d57e7200952dd2bc7e98f388": {
1817
+ "title": "Typed forms (generics)",
1818
+ "code": "<ProForm.Dependency<CreateUserPayload, 'username' | 'address.city'>\n name={['username', 'address.city']}\n>\n {(values) => values['address.city']?.toUpperCase()}\n</ProForm.Dependency>",
1819
+ "source": "readme",
1820
+ "compilable": true
1821
+ },
1786
1822
  "abaf53378348a997d22cd4e9abbef98299cae2f9597be56cb07ed01f22fc9873": {
1787
1823
  "title": "Basic",
1788
1824
  "code": "<ProTable<DemoRecord> rowKey=\"id\" columns={columns} request={mockRequest} pagination={{ pageSize: 10 }} />",
@@ -1969,6 +2005,12 @@
1969
2005
  "source": "stories",
1970
2006
  "compilable": true
1971
2007
  },
2008
+ "b978823a61980bc8652f12244d9754f6b25138846aa816e17df5f72394a679f6": {
2009
+ "title": "Function-form rules (cross-field validation)",
2010
+ "code": "<ProForm.Password\n name=\"confirm\"\n label=\"Confirm password\"\n rules={[\n { required: true, message: 'Please confirm your password' },\n ({ getFieldValue }) => ({\n validator: (_rule, value) => {\n if (!value || getFieldValue('password') === value) {\n return Promise.resolve();\n }\n return Promise.reject(new Error('The two passwords do not match'));\n },\n }),\n ]}\n/>",
2011
+ "source": "readme",
2012
+ "compilable": true
2013
+ },
1972
2014
  "b9cc21db46c34c1f749ec2f5cc996c0eb92608376b07b2eb61f2bc427f045927": {
1973
2015
  "title": "Virtual Scrolling",
1974
2016
  "code": "{\n const largeData: PortfolioRow[] = Array.from({ length: 5000 }, (_, index) => ({\n id: `virtual-${index + 1}`,\n wallet: `Wallet ${index + 1}`,\n owner: `Desk ${index % 12}`,\n network: ['Ethereum', 'Solana', 'Polygon', 'Arbitrum'][index % 4],\n status: (['active', 'hold', 'review'] as const)[index % 3],\n balance: 200000 + (index * 1375),\n actionLabel: 'Open',\n countryFlag: index % 2 === 0 ? 'πŸ‡ΊπŸ‡Έ' : 'πŸ‡ͺπŸ‡Ί',\n }));\n\n return (\n <div>\n <TypographyBody size=\"sm\" color=\"default-tertiary\" style={hintStyle}>\n 5,000 rows rendered with the virtualized table kernel.\n </TypographyBody>\n <VirtualTable<PortfolioRow>\n rowKey=\"id\"\n columns={virtualColumns}\n dataSource={largeData}\n scroll={{ x: 740, y: 360 }}\n pagination={false}\n />\n </div>\n );\n }",
@@ -2083,12 +2125,6 @@
2083
2125
  "source": "stories",
2084
2126
  "compilable": false
2085
2127
  },
2086
- "c3aaf0098db4c77ba5af727f8c2eb70a9969be6ea15dcba309d583137cfe6e21": {
2087
- "title": "Nested List",
2088
- "code": "<ProForm\n {...args}\n initialValues={{\n groups: [\n { title: 'Group A', items: [{ name: 'Item 1' }] },\n ],\n }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormList name=\"groups\" label=\"Groups\">\n {(fields) =>\n fields.map(({ name, key }) => (\n <div key={key} style={{ border: '1px solid #eee', padding: 12, marginBottom: 8, borderRadius: 4 }}>\n <ProFormText name={`${name}.title`} label=\"Group Title\" />\n <ProFormList name=\"items\" label=\"Items\">\n {(subFields) =>\n subFields.map((sf) => (\n <ProFormText key={sf.key} name={`${sf.name}.name`} label=\"Item Name\" />\n ))\n }\n </ProFormList>\n </div>\n ))\n }\n </ProFormList>\n </ProForm>",
2089
- "source": "stories",
2090
- "compilable": false
2091
- },
2092
2128
  "c44b0833c259afe028af9e6fd0d572e5cdf883c9fe8f8701cc2f2199f6fa82a0": {
2093
2129
  "title": "Canonical usage",
2094
2130
  "code": "import { Checkbox } from '@1money/component-ui';\n// or\nimport { Checkbox } from '@1money/component-ui/Checkbox';",
@@ -2119,6 +2155,12 @@
2119
2155
  "source": "stories",
2120
2156
  "compilable": false
2121
2157
  },
2158
+ "c71a7dffc772a7bab75e4c0e65062753a8527d613df86631bfff9aa0e99ea28b": {
2159
+ "title": "ProForm.List Props",
2160
+ "code": "interface Member { name: string; enabled: boolean }\n\n<ProForm.List<Member> name=\"members\">\n {(fields, action) => {\n action.add({ name: 'Ada', enabled: true });\n const first = action.get(0); // Member | undefined\n const list = action.getList(); // Member[]\n return fields.map((field) => (\n <ProForm.Text key={field.key} name={`${field.name}.name`} />\n ));\n }}\n</ProForm.List>",
2161
+ "source": "readme",
2162
+ "compilable": true
2163
+ },
2122
2164
  "c7adce2c978836debb618dc91c44c12df9f50836e6ff9994fe3822dd48caef5a": {
2123
2165
  "title": "Nav (flat / grouped navigation)",
2124
2166
  "code": "<Nav\n items={[\n {\n key: 'group-accounts',\n label: 'Accounts',\n icon: 'wallet',\n children: [\n { key: 'checking', label: 'Checking', active: true },\n { key: 'savings', label: 'Savings' },\n ],\n },\n { key: 'settings', label: 'Settings' },\n ]}\n/>",
@@ -2245,6 +2287,12 @@
2245
2287
  "source": "stories",
2246
2288
  "compilable": false
2247
2289
  },
2290
+ "d5369ef44077dbcf96179383100ab2803515743fec525cd9038c16b98537baa8": {
2291
+ "title": "Async Request",
2292
+ "code": "{\n const [userId, setUserId] = useState(1);\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <div style={{ display: 'flex', gap: 8 }}>\n <Button color={userId === 1 ? 'primary' : 'grey'} onClick={() => setUserId(1)}>\n User 1\n </Button>\n <Button color={userId === 2 ? 'primary' : 'grey'} onClick={() => setUserId(2)}>\n User 2\n </Button>\n </div>\n <ProForm\n {...args}\n params={{ userId }}\n request={async (params) => {\n await new Promise((r) => setTimeout(r, 1000));\n const data: Record<number, Record<string, any>> = {\n 1: { name: 'Alice', email: 'alice@example.com' },\n 2: { name: 'Bob', email: 'bob@example.com' },\n };\n return data[(params as { userId: number })?.userId] || {};\n }}\n >\n <ProFormText name=\"name\" label=\"Name\" />\n <ProFormText name=\"email\" label=\"Email\" />\n </ProForm>\n </div>\n );\n }",
2293
+ "source": "stories",
2294
+ "compilable": false
2295
+ },
2248
2296
  "d59cf6cbe1b9a6cd4f989c2114ed6f88b58903941b2e534a11b7c7ec938035f3": {
2249
2297
  "title": "Polling",
2250
2298
  "code": "<ProTable<DemoRecord> rowKey=\"id\" columns={columns} request={mockRequest} polling={5000} pagination={{ pageSize: 10 }} />",
@@ -2311,12 +2359,6 @@
2311
2359
  "source": "stories",
2312
2360
  "compilable": false
2313
2361
  },
2314
- "dbe17f0fba3f62604b6da16ec484cb907242b1a61d6976be96c8e08deea44e14": {
2315
- "title": "Rule",
2316
- "code": "<ProForm.Text\n name=\"username\"\n label=\"Username\"\n rules={[\n { required: true, message: 'Username is required' },\n {\n validator: async (value) => {\n if (!value) return true;\n const available = await checkUsernameAvailable(String(value));\n return available ? true : 'Username is already taken';\n },\n },\n ]}\n/>",
2317
- "source": "readme",
2318
- "compilable": true
2319
- },
2320
2362
  "dbe5994cff8f6c4f3635681f94133b647911651dcbd137756971ec6c7ff898f9": {
2321
2363
  "title": "Primary",
2322
2364
  "code": "<Grid {...args}>\n <Grid.Col span={SPAN_THIRD}><div style={DEMO_BOX_STYLE}>4</div></Grid.Col>\n <Grid.Col span={SPAN_THIRD}><div style={DEMO_BOX_STYLE}>4</div></Grid.Col>\n <Grid.Col span={SPAN_THIRD}><div style={DEMO_BOX_STYLE}>4</div></Grid.Col>\n </Grid>",
@@ -2449,6 +2491,12 @@
2449
2491
  "source": "readme",
2450
2492
  "compilable": true
2451
2493
  },
2494
+ "e9cd91e807fb73460d6629c81e7b6b5b580f6432b27f470e6cdaebb98ced775c": {
2495
+ "title": "Validation",
2496
+ "code": "<ProForm\n {...args}\n initialValues={{}}\n onFinish={(values) => alert('Success: ' + JSON.stringify(values))}\n >\n <ProFormText\n name=\"username\"\n label=\"Username\"\n rules={[\n { required: true, message: 'Username is required' },\n { min: 3, message: 'At least 3 characters' },\n { max: 20, message: 'At most 20 characters' },\n ]}\n />\n <ProFormText\n name=\"email\"\n label=\"Email\"\n rules={[\n { required: true, message: 'Email is required' },\n { pattern: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/, message: 'Invalid email' },\n ]}\n />\n <ProFormPassword\n name=\"password\"\n label=\"Password\"\n rules={[\n { required: true },\n { min: 8, message: 'At least 8 characters' },\n ]}\n />\n <ProFormCheckbox\n name=\"terms\"\n label=\"I accept the terms\"\n rules={[\n {\n validator: (_rule, value) => {\n if (!value) throw new Error('You must accept the terms');\n },\n },\n ]}\n />\n </ProForm>",
2497
+ "source": "stories",
2498
+ "compilable": false
2499
+ },
2452
2500
  "e9f60d4e278ffd41098f4db04f41855ffd8a9cb7a16f51dc8f8e99f4295effaa": {
2453
2501
  "title": "Disabled",
2454
2502
  "code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <Switch {...args} label=\"Unchecked disabled\" disabled />\n <Switch {...args} label=\"Checked disabled\" disabled defaultChecked />\n </div>",
@@ -2635,12 +2683,6 @@
2635
2683
  "source": "readme",
2636
2684
  "compilable": true
2637
2685
  },
2638
- "fbc5d5eb0d5bdb23c26d08078a915d310bae38ddba853b4c3c905712dc72b3bb": {
2639
- "title": "Async Validator",
2640
- "code": "<ProForm\n {...args}\n initialValues={{ username: '' }}\n onFinish={(values) => alert('Success: ' + JSON.stringify(values))}\n >\n <ProFormText\n name=\"username\"\n label=\"Username\"\n placeholder=\"Try admin / root / 1money\"\n description=\"The availability check returns a Promise, so it never runs while typing (the sync onChange pass defers async validators). It is declared with validateTrigger: 'onBlur' to run on blur β€” submit always runs every rule β€” with a simulated 800ms server delay.\"\n rules={[\n { required: true, message: 'Username is required' },\n { validator: checkUsernameAvailable, validateTrigger: 'onBlur' },\n ]}\n />\n <CheckingHint name=\"username\" />\n </ProForm>",
2641
- "source": "stories",
2642
- "compilable": false
2643
- },
2644
2686
  "fbd27b2c45cf77922ee28f98299af2815b390ade86f902db573d0f520dcc2eb6": {
2645
2687
  "title": "Import",
2646
2688
  "code": "import { Skeleton } from '@1money/component-ui';\n// or\nimport { Skeleton } from '@1money/component-ui/Skeleton';",