@1money/component-ui 0.0.68 → 0.0.69

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 (57) hide show
  1. package/es/components/ProForm/interface.d.ts +3 -1
  2. package/es/components/ProForm/layouts/QueryFilter.js +5 -1
  3. package/es/components/ProTable/ProTable.d.ts +5 -0
  4. package/es/components/ProTable/ProTable.js +309 -0
  5. package/es/components/ProTable/constants.d.ts +12 -0
  6. package/es/components/ProTable/constants.js +12 -0
  7. package/es/components/ProTable/core/genColumns.d.ts +10 -0
  8. package/es/components/ProTable/core/genColumns.js +81 -0
  9. package/es/components/ProTable/core/genSearchFields.d.ts +19 -0
  10. package/es/components/ProTable/core/genSearchFields.js +103 -0
  11. package/es/components/ProTable/core/useAwaitableReload.d.ts +17 -0
  12. package/es/components/ProTable/core/useAwaitableReload.js +39 -0
  13. package/es/components/ProTable/core/utils.d.ts +12 -0
  14. package/es/components/ProTable/core/utils.js +21 -0
  15. package/es/components/ProTable/index.d.ts +4 -0
  16. package/es/components/ProTable/index.js +5 -0
  17. package/es/components/ProTable/interface.d.ts +132 -0
  18. package/es/components/ProTable/interface.js +2 -0
  19. package/es/components/ProTable/style/ProTable.css +47 -0
  20. package/es/components/ProTable/style/css.js +6 -0
  21. package/es/components/ProTable/style/index.d.ts +5 -0
  22. package/es/components/ProTable/style/index.js +6 -0
  23. package/es/components/ProTable/useFetchData.d.ts +48 -0
  24. package/es/components/ProTable/useFetchData.js +270 -0
  25. package/es/index.css +1 -1
  26. package/es/index.d.ts +2 -0
  27. package/es/index.js +2 -1
  28. package/lib/components/ProForm/interface.d.ts +3 -1
  29. package/lib/components/ProForm/layouts/QueryFilter.js +5 -1
  30. package/lib/components/ProTable/ProTable.d.ts +5 -0
  31. package/lib/components/ProTable/ProTable.js +316 -0
  32. package/lib/components/ProTable/constants.d.ts +12 -0
  33. package/lib/components/ProTable/constants.js +18 -0
  34. package/lib/components/ProTable/core/genColumns.d.ts +10 -0
  35. package/lib/components/ProTable/core/genColumns.js +87 -0
  36. package/lib/components/ProTable/core/genSearchFields.d.ts +19 -0
  37. package/lib/components/ProTable/core/genSearchFields.js +111 -0
  38. package/lib/components/ProTable/core/useAwaitableReload.d.ts +17 -0
  39. package/lib/components/ProTable/core/useAwaitableReload.js +46 -0
  40. package/lib/components/ProTable/core/utils.d.ts +12 -0
  41. package/lib/components/ProTable/core/utils.js +28 -0
  42. package/lib/components/ProTable/index.d.ts +4 -0
  43. package/lib/components/ProTable/index.js +33 -0
  44. package/lib/components/ProTable/interface.d.ts +132 -0
  45. package/lib/components/ProTable/interface.js +6 -0
  46. package/lib/components/ProTable/style/ProTable.css +47 -0
  47. package/lib/components/ProTable/style/css.js +8 -0
  48. package/lib/components/ProTable/style/index.d.ts +5 -0
  49. package/lib/components/ProTable/style/index.js +8 -0
  50. package/lib/components/ProTable/useFetchData.d.ts +48 -0
  51. package/lib/components/ProTable/useFetchData.js +277 -0
  52. package/lib/index.css +1 -1
  53. package/lib/index.d.ts +2 -0
  54. package/lib/index.js +8 -1
  55. package/package.json +6 -1
  56. package/scripts/mcp-server/examples.generated.json +156 -0
  57. package/scripts/mcp-server/index.generated.json +733 -1
package/es/index.d.ts CHANGED
@@ -34,6 +34,7 @@ export { Spinner } from './components/Spinner';
34
34
  export { Step } from './components/Step';
35
35
  export { Switch } from './components/Switch';
36
36
  export { Table, VirtualTable, Summary } from './components/Table';
37
+ export { ProTable } from './components/ProTable';
37
38
  export { VirtualList } from './components/VirtualList';
38
39
  export { ResizeObserver, useResizeObserver } from './components/ResizeObserver';
39
40
  export { Tabs } from './components/Tabs';
@@ -80,6 +81,7 @@ export type { SpinnerProps, SpinnerType } from './components/Spinner';
80
81
  export type { StepProps, StepItem, StepStatus, StepTagConfig } from './components/Step';
81
82
  export type { SwitchProps } from './components/Switch';
82
83
  export type { TableProps, VirtualTableProps, TableColumn, TableChangeMeta, TablePaginationConfig, TableRowSelection, TableExpandableConfig, TableLoadingConfig, TableRef, } from './components/Table';
84
+ export type { ProTableProps, ProColumns, ProColumnType, ProTableRequest, ProTableRequestOptions, RequestData, PageInfo, ProTableActionRef, ProTablePaginationConfig, ProTableValueType, SearchConfig as ProTableSearchConfig, ProTableSortParam, ProTableFilterParam, } from './components/ProTable';
83
85
  export type { TabsProps, TabItem } from './components/Tabs';
84
86
  export type { TagProps } from './components/Tag';
85
87
  export type { ListRef as VirtualListRef, ListProps as VirtualListProps, ScrollInfo as VirtualListScrollInfo, } from './components/VirtualList';
package/es/index.js CHANGED
@@ -34,6 +34,7 @@ export { Spinner } from './components/Spinner';
34
34
  export { Step } from './components/Step';
35
35
  export { Switch } from './components/Switch';
36
36
  export { Table, VirtualTable, Summary } from './components/Table';
37
+ export { ProTable } from './components/ProTable';
37
38
  export { VirtualList } from './components/VirtualList';
38
39
  export { ResizeObserver, useResizeObserver } from './components/ResizeObserver';
39
40
  export { Tabs } from './components/Tabs';
@@ -44,4 +45,4 @@ export { Tooltip } from './components/Tooltip';
44
45
  export { Trigger } from './components/Trigger';
45
46
  export { Upload, UploadFileBar } from './components/Upload';
46
47
  export { usePagination } from './components/Pagination';
47
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbIkFjY29yZGlvbiIsIkFsZXJ0IiwiQnV0dG9uIiwiQ2FsZW5kYXIiLCJDZWxsIiwiQ2Fyb3VzZWwiLCJDaGVja2JveCIsIkNoZWNrYm94R3JvdXAiLCJDb2FjaE1hcmsiLCJDb3B5IiwiQ2xpcGJvYXJkIiwiRGl2aWRlciIsIkVtcHR5IiwiRmxleCIsIkdyaWQiLCJSb3ciLCJDb2wiLCJJY29ucyIsIkljb25XcmFwcGVyIiwiSWNvbkhvdmVyIiwiSW5wdXQiLCJEcmF3ZXIiLCJEcm9wZG93biIsIkxpbmsiLCJEaWFsb2ciLCJOYXZpZ2F0aW9uIiwiTmF2IiwiTmF2aWdhdGlvblN0ZXBwZXIiLCJub3RpZmljYXRpb24iLCJQb3J0YWwiLCJQcm9Gb3JtIiwiUHJvRm9ybUl0ZW0iLCJQcm9Gb3JtRGVwZW5kZW5jeSIsIlByb0Zvcm1MaXN0IiwiUHJvRm9ybUdyb3VwIiwiY3JlYXRlUHJvRm9ybUZpZWxkIiwiUHJvRm9ybVRleHQiLCJQcm9Gb3JtUGFzc3dvcmQiLCJQcm9Gb3JtVGV4dEFyZWEiLCJQcm9Gb3JtQ2hlY2tib3giLCJQcm9Gb3JtQ2hlY2tib3hHcm91cCIsIlByb0Zvcm1Td2l0Y2giLCJQcm9Gb3JtU2VsZWN0IiwiUHJvRm9ybVJhZGlvR3JvdXAiLCJQcm9Gb3JtU2xpZGVyIiwiUHJvRm9ybURhdGVQaWNrZXIiLCJQcm9Gb3JtVXBsb2FkIiwiUHJvRm9ybUZpZWxkU2V0IiwiRGlhbG9nRm9ybSIsIkRyYXdlckZvcm0iLCJRdWVyeUZpbHRlciIsIlBhZ2luYXRpb24iLCJQb3Bjb25maXJtIiwiUHJvZ3Jlc3MiLCJSYWRpbyIsIlJhZGlvR3JvdXAiLCJTZWxlY3QiLCJTZWdtZW50IiwiU2tlbGV0b24iLCJTbGlkZXIiLCJTcGFjZSIsIlNwaW5uZXIiLCJTdGVwIiwiU3dpdGNoIiwiVGFibGUiLCJWaXJ0dWFsVGFibGUiLCJTdW1tYXJ5IiwiVmlydHVhbExpc3QiLCJSZXNpemVPYnNlcnZlciIsInVzZVJlc2l6ZU9ic2VydmVyIiwiVGFicyIsIlRhZyIsIlRvdXIiLCJUeXBvZ3JhcGh5IiwiVG9vbHRpcCIsIlRyaWdnZXIiLCJVcGxvYWQiLCJVcGxvYWRGaWxlQmFyIiwidXNlUGFnaW5hdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsU0FBUyxRQUFRLHdCQUF3QjtBQUNsRCxTQUFTQyxLQUFLLFFBQVEsb0JBQW9CO0FBQzFDLFNBQVNDLE1BQU0sUUFBUSxxQkFBcUI7QUFDNUMsU0FBU0MsUUFBUSxRQUFRLHVCQUF1QjtBQUNoRCxTQUFTQyxJQUFJLFFBQVEsbUJBQW1CO0FBQ3hDLFNBQVNDLFFBQVEsUUFBUSx1QkFBdUI7QUFDaEQsU0FBU0MsUUFBUSxFQUFFQyxhQUFhLFFBQVEsdUJBQXVCO0FBQy9ELFNBQVNDLFNBQVMsUUFBUSx3QkFBd0I7QUFDbEQsU0FBU0MsSUFBSSxFQUFFQyxTQUFTLFFBQVEsbUJBQW1CO0FBQ25ELFNBQVNDLE9BQU8sUUFBUSxzQkFBc0I7QUFDOUMsU0FBU0MsS0FBSyxRQUFRLG9CQUFvQjtBQUMxQyxTQUFTQyxJQUFJLFFBQVEsbUJBQW1CO0FBQ3hDLFNBQVNDLElBQUksRUFBRUMsR0FBRyxFQUFFQyxHQUFHLFFBQVEsbUJBQW1CO0FBQ2xELFNBQVNDLEtBQUssRUFBRUMsV0FBVyxFQUFFQyxTQUFTLFFBQVEsb0JBQW9CO0FBQ2xFLFNBQVNDLEtBQUssUUFBUSxvQkFBb0I7QUFDMUMsU0FBU0MsTUFBTSxRQUFRLHFCQUFxQjtBQUM1QyxTQUFTQyxRQUFRLFFBQVEsdUJBQXVCO0FBQ2hELFNBQVNDLElBQUksUUFBUSxtQkFBbUI7QUFDeEMsU0FBU0MsTUFBTSxRQUFRLHFCQUFxQjtBQUM1QyxTQUFTQyxVQUFVLEVBQUVDLEdBQUcsRUFBRUMsaUJBQWlCLFFBQVEseUJBQXlCO0FBQzVFLFNBQVNDLFlBQVksUUFBUSwyQkFBMkI7QUFDeEQsU0FDRUMsTUFBTSxRQUNELHFCQUFxQjtBQUM1QixTQUNFQyxPQUFPLEVBQ1BDLFdBQVcsRUFDWEMsaUJBQWlCLEVBQ2pCQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsa0JBQWtCLEVBQ2xCQyxXQUFXLEVBQ1hDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxlQUFlLEVBQ2ZDLG9CQUFvQixFQUNwQkMsYUFBYSxFQUNiQyxhQUFhLEVBQ2JDLGlCQUFpQixFQUNqQkMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLGFBQWEsRUFDYkMsZUFBZSxFQUNmQyxVQUFVLEVBQ1ZDLFVBQVUsRUFDVkMsV0FBVyxRQUNOLHNCQUFzQjtBQUM3QixTQUFTQyxVQUFVLFFBQVEseUJBQXlCO0FBQ3BELFNBQVNDLFVBQVUsUUFBUSx5QkFBeUI7QUFDcEQsU0FBU0MsUUFBUSxRQUFRLHVCQUF1QjtBQUNoRCxTQUFTQyxLQUFLLEVBQUVDLFVBQVUsUUFBUSxvQkFBb0I7QUFDdEQsU0FBU0MsTUFBTSxRQUFRLHFCQUFxQjtBQUM1QyxTQUFTQyxPQUFPLFFBQVEsc0JBQXNCO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSx1QkFBdUI7QUFDaEQsU0FBU0MsTUFBTSxRQUFRLHFCQUFxQjtBQUM1QyxTQUFTQyxLQUFLLFFBQVEsb0JBQW9CO0FBQzFDLFNBQVNDLE9BQU8sUUFBUSxzQkFBc0I7QUFDOUMsU0FBU0MsSUFBSSxRQUFRLG1CQUFtQjtBQUN4QyxTQUFTQyxNQUFNLFFBQVEscUJBQXFCO0FBQzVDLFNBQVNDLEtBQUssRUFBRUMsWUFBWSxFQUFFQyxPQUFPLFFBQVEsb0JBQW9CO0FBQ2pFLFNBQVNDLFdBQVcsUUFBUSwwQkFBMEI7QUFDdEQsU0FBU0MsY0FBYyxFQUFFQyxpQkFBaUIsUUFBUSw2QkFBNkI7QUFDL0UsU0FBU0MsSUFBSSxRQUFRLG1CQUFtQjtBQUN4QyxTQUFTQyxHQUFHLFFBQVEsa0JBQWtCO0FBQ3RDLFNBQVNDLElBQUksUUFBUSxtQkFBbUI7QUFDeEMsU0FBU0MsVUFBVSxRQUFRLHlCQUF5QjtBQUNwRCxTQUFTQyxPQUFPLFFBQVEsc0JBQXNCO0FBQzlDLFNBQVNDLE9BQU8sUUFBUSxzQkFBc0I7QUFDOUMsU0FBU0MsTUFBTSxFQUFFQyxhQUFhLFFBQVEscUJBQXFCO0FBQzNELFNBQVNDLGFBQWEsUUFBUSx5QkFBeUIiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBY2NvcmRpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvQWNjb3JkaW9uJztcbmV4cG9ydCB7IEFsZXJ0IH0gZnJvbSAnLi9jb21wb25lbnRzL0FsZXJ0JztcbmV4cG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4vY29tcG9uZW50cy9CdXR0b24nO1xuZXhwb3J0IHsgQ2FsZW5kYXIgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2FsZW5kYXInO1xuZXhwb3J0IHsgQ2VsbCB9IGZyb20gJy4vY29tcG9uZW50cy9DZWxsJztcbmV4cG9ydCB7IENhcm91c2VsIH0gZnJvbSAnLi9jb21wb25lbnRzL0Nhcm91c2VsJztcbmV4cG9ydCB7IENoZWNrYm94LCBDaGVja2JveEdyb3VwIH0gZnJvbSAnLi9jb21wb25lbnRzL0NoZWNrYm94JztcbmV4cG9ydCB7IENvYWNoTWFyayB9IGZyb20gJy4vY29tcG9uZW50cy9Db2FjaE1hcmsnO1xuZXhwb3J0IHsgQ29weSwgQ2xpcGJvYXJkIH0gZnJvbSAnLi9jb21wb25lbnRzL0NvcHknO1xuZXhwb3J0IHsgRGl2aWRlciB9IGZyb20gJy4vY29tcG9uZW50cy9EaXZpZGVyJztcbmV4cG9ydCB7IEVtcHR5IH0gZnJvbSAnLi9jb21wb25lbnRzL0VtcHR5JztcbmV4cG9ydCB7IEZsZXggfSBmcm9tICcuL2NvbXBvbmVudHMvRmxleCc7XG5leHBvcnQgeyBHcmlkLCBSb3csIENvbCB9IGZyb20gJy4vY29tcG9uZW50cy9HcmlkJztcbmV4cG9ydCB7IEljb25zLCBJY29uV3JhcHBlciwgSWNvbkhvdmVyIH0gZnJvbSAnLi9jb21wb25lbnRzL0ljb25zJztcbmV4cG9ydCB7IElucHV0IH0gZnJvbSAnLi9jb21wb25lbnRzL0lucHV0JztcbmV4cG9ydCB7IERyYXdlciB9IGZyb20gJy4vY29tcG9uZW50cy9EcmF3ZXInO1xuZXhwb3J0IHsgRHJvcGRvd24gfSBmcm9tICcuL2NvbXBvbmVudHMvRHJvcGRvd24nO1xuZXhwb3J0IHsgTGluayB9IGZyb20gJy4vY29tcG9uZW50cy9MaW5rJztcbmV4cG9ydCB7IERpYWxvZyB9IGZyb20gJy4vY29tcG9uZW50cy9EaWFsb2cnO1xuZXhwb3J0IHsgTmF2aWdhdGlvbiwgTmF2LCBOYXZpZ2F0aW9uU3RlcHBlciB9IGZyb20gJy4vY29tcG9uZW50cy9OYXZpZ2F0aW9uJztcbmV4cG9ydCB7IG5vdGlmaWNhdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9Ob3RpZmljYXRpb24nO1xuZXhwb3J0IHtcbiAgUG9ydGFsLFxufSBmcm9tICcuL2NvbXBvbmVudHMvUG9ydGFsJztcbmV4cG9ydCB7XG4gIFByb0Zvcm0sXG4gIFByb0Zvcm1JdGVtLFxuICBQcm9Gb3JtRGVwZW5kZW5jeSxcbiAgUHJvRm9ybUxpc3QsXG4gIFByb0Zvcm1Hcm91cCxcbiAgY3JlYXRlUHJvRm9ybUZpZWxkLFxuICBQcm9Gb3JtVGV4dCxcbiAgUHJvRm9ybVBhc3N3b3JkLFxuICBQcm9Gb3JtVGV4dEFyZWEsXG4gIFByb0Zvcm1DaGVja2JveCxcbiAgUHJvRm9ybUNoZWNrYm94R3JvdXAsXG4gIFByb0Zvcm1Td2l0Y2gsXG4gIFByb0Zvcm1TZWxlY3QsXG4gIFByb0Zvcm1SYWRpb0dyb3VwLFxuICBQcm9Gb3JtU2xpZGVyLFxuICBQcm9Gb3JtRGF0ZVBpY2tlcixcbiAgUHJvRm9ybVVwbG9hZCxcbiAgUHJvRm9ybUZpZWxkU2V0LFxuICBEaWFsb2dGb3JtLFxuICBEcmF3ZXJGb3JtLFxuICBRdWVyeUZpbHRlcixcbn0gZnJvbSAnLi9jb21wb25lbnRzL1Byb0Zvcm0nO1xuZXhwb3J0IHsgUGFnaW5hdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9QYWdpbmF0aW9uJztcbmV4cG9ydCB7IFBvcGNvbmZpcm0gfSBmcm9tICcuL2NvbXBvbmVudHMvUG9wY29uZmlybSc7XG5leHBvcnQgeyBQcm9ncmVzcyB9IGZyb20gJy4vY29tcG9uZW50cy9Qcm9ncmVzcyc7XG5leHBvcnQgeyBSYWRpbywgUmFkaW9Hcm91cCB9IGZyb20gJy4vY29tcG9uZW50cy9SYWRpbyc7XG5leHBvcnQgeyBTZWxlY3QgfSBmcm9tICcuL2NvbXBvbmVudHMvU2VsZWN0JztcbmV4cG9ydCB7IFNlZ21lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvU2VnbWVudCc7XG5leHBvcnQgeyBTa2VsZXRvbiB9IGZyb20gJy4vY29tcG9uZW50cy9Ta2VsZXRvbic7XG5leHBvcnQgeyBTbGlkZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvU2xpZGVyJztcbmV4cG9ydCB7IFNwYWNlIH0gZnJvbSAnLi9jb21wb25lbnRzL1NwYWNlJztcbmV4cG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvU3Bpbm5lcic7XG5leHBvcnQgeyBTdGVwIH0gZnJvbSAnLi9jb21wb25lbnRzL1N0ZXAnO1xuZXhwb3J0IHsgU3dpdGNoIH0gZnJvbSAnLi9jb21wb25lbnRzL1N3aXRjaCc7XG5leHBvcnQgeyBUYWJsZSwgVmlydHVhbFRhYmxlLCBTdW1tYXJ5IH0gZnJvbSAnLi9jb21wb25lbnRzL1RhYmxlJztcbmV4cG9ydCB7IFZpcnR1YWxMaXN0IH0gZnJvbSAnLi9jb21wb25lbnRzL1ZpcnR1YWxMaXN0JztcbmV4cG9ydCB7IFJlc2l6ZU9ic2VydmVyLCB1c2VSZXNpemVPYnNlcnZlciB9IGZyb20gJy4vY29tcG9uZW50cy9SZXNpemVPYnNlcnZlcic7XG5leHBvcnQgeyBUYWJzIH0gZnJvbSAnLi9jb21wb25lbnRzL1RhYnMnO1xuZXhwb3J0IHsgVGFnIH0gZnJvbSAnLi9jb21wb25lbnRzL1RhZyc7XG5leHBvcnQgeyBUb3VyIH0gZnJvbSAnLi9jb21wb25lbnRzL1RvdXInO1xuZXhwb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmV4cG9ydCB7IFRvb2x0aXAgfSBmcm9tICcuL2NvbXBvbmVudHMvVG9vbHRpcCc7XG5leHBvcnQgeyBUcmlnZ2VyIH0gZnJvbSAnLi9jb21wb25lbnRzL1RyaWdnZXInO1xuZXhwb3J0IHsgVXBsb2FkLCBVcGxvYWRGaWxlQmFyIH0gZnJvbSAnLi9jb21wb25lbnRzL1VwbG9hZCc7XG5leHBvcnQgeyB1c2VQYWdpbmF0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL1BhZ2luYXRpb24nO1xuXG5leHBvcnQgdHlwZSB7IEFjY29yZGlvblByb3BzLCBBY2NvcmRpb25JdGVtIH0gZnJvbSAnLi9jb21wb25lbnRzL0FjY29yZGlvbic7XG5leHBvcnQgdHlwZSB7IEFsZXJ0UHJvcHMsIEFsZXJ0U3RhdHVzLCBBbGVydExpbmtDb25maWcgfSBmcm9tICcuL2NvbXBvbmVudHMvQWxlcnQnO1xuZXhwb3J0IHR5cGUgeyBCdXR0b25Qcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9CdXR0b24nO1xuZXhwb3J0IHR5cGUgeyBDYWxlbmRhclByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0NhbGVuZGFyJztcbmV4cG9ydCB0eXBlIHsgQ2VsbFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0NlbGwnO1xuZXhwb3J0IHR5cGUgeyBDYXJvdXNlbFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0Nhcm91c2VsJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2hlY2tib3hDaGFuZ2VFdmVudCxcbiAgQ2hlY2tib3hQcm9wcyxcbiAgQ2hlY2tib3hWYWx1ZVR5cGUsXG4gIENoZWNrYm94R3JvdXBQcm9wcyxcbiAgQ2hlY2tib3hHcm91cE9wdGlvbixcbn0gZnJvbSAnLi9jb21wb25lbnRzL0NoZWNrYm94JztcbmV4cG9ydCB0eXBlIHsgQ29hY2hNYXJrUHJvcHMsIENvYWNoTWFya1BsYWNlbWVudCwgQ29hY2hNYXJrU3RlcCwgQ29hY2hNYXJrTGFiZWxzIH0gZnJvbSAnLi9jb21wb25lbnRzL0NvYWNoTWFyayc7XG5leHBvcnQgdHlwZSB7IENvcHlQcm9wcywgQ2xpcGJvYXJkUHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvQ29weSc7XG5leHBvcnQgdHlwZSB7IERpdmlkZXJQcm9wcywgRGl2aWRlclR5cGUsIERpdmlkZXJPcmllbnRhdGlvbiwgRGl2aWRlclZhcmlhbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvRGl2aWRlcic7XG5leHBvcnQgdHlwZSB7IEVtcHR5UHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvRW1wdHknO1xuZXhwb3J0IHR5cGUgeyBGbGV4UHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvRmxleCc7XG4vLyBGb3JtLXJlbGF0ZWQgdHlwZXMgKGZvcm1lcmx5IGZyb20gLi9jb21wb25lbnRzL0Zvcm0pIGFyZSBub3cgZXhwb3NlZCB2aWEgUHJvRm9ybVxuZXhwb3J0IHR5cGUge1xuICBGb3JtSW5zdGFuY2UsXG4gIEZvcm1Db3JlSW5zdGFuY2UsXG4gIEZvcm1MYXlvdXQsXG4gIEZvcm1TaXplLFxuICBMYWJlbEFsaWduLFxuICBWYWxpZGF0ZVN0YXR1cyxcbiAgVmFsaWRhdGVUcmlnZ2VyLFxuICBSdWxlLFxufSBmcm9tICcuL2NvbXBvbmVudHMvUHJvRm9ybSc7XG5leHBvcnQgdHlwZSB7IEdyaWRSb3dQcm9wcywgR3JpZENvbFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0dyaWQnO1xuZXhwb3J0IHR5cGUge1xuICBJY29uTmFtZSxcbiAgSWNvbnNQcm9wcyxcbiAgSWNvbldyYXBwZXJQcm9wcyxcbiAgSWNvbkhvdmVyUHJvcHMsXG4gIFNvcnRJY29uU3RhdHVzLFxufSBmcm9tICcuL2NvbXBvbmVudHMvSWNvbnMnO1xuZXhwb3J0IHR5cGUge1xuICBJbnB1dFByb3BzLFxuICBJbnB1dFBhc3N3b3JkUHJvcHMsXG4gIElucHV0U2VhcmNoUHJvcHMsXG4gIElucHV0VGV4dEFyZWFQcm9wcyxcbiAgSW5wdXRPVFBQcm9wcyxcbiAgSW5wdXRUcmFkZVByb3BzLFxuICBJbnB1dEFtb3VudFByb3BzLFxuICBJbnB1dFNpemUsXG4gIElucHV0U3RhdHVzLFxufSBmcm9tICcuL2NvbXBvbmVudHMvSW5wdXQnO1xuZXhwb3J0IHR5cGUgeyBEcmF3ZXJQcm9wcywgRHJhd2VyUGxhY2VtZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL0RyYXdlcic7XG5leHBvcnQgdHlwZSB7XG4gIERyb3Bkb3duUHJvcHMsXG4gIERyb3Bkb3duQ29udGVudCxcbiAgRHJvcGRvd25Db250ZW50Q29udGV4dCxcbiAgRHJvcGRvd25UcmlnZ2VyLFxufSBmcm9tICcuL2NvbXBvbmVudHMvRHJvcGRvd24nO1xuZXhwb3J0IHR5cGUgeyBMaW5rUHJvcHMsIExpbmtDb2xvciwgTGlua1NpemUgfSBmcm9tICcuL2NvbXBvbmVudHMvTGluayc7XG5leHBvcnQgdHlwZSB7IERpYWxvZ1Byb3BzLCBEaWFsb2dTaXplLCBEaWFsb2dGb290ZXJSZW5kZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvRGlhbG9nJztcbmV4cG9ydCB0eXBlIHtcbiAgTmF2aWdhdGlvblByb3BzLFxuICBOYXZpZ2F0aW9uSXRlbSxcbiAgTmF2aWdhdGlvbkhhbmRsZXJzLFxuICBOYXZQcm9wcyxcbiAgTmF2SXRlbSxcbiAgTmF2aWdhdGlvblN0ZXBwZXJQcm9wcyxcbiAgTmF2aWdhdGlvblN0ZXBwZXJTdGVwLFxuICBOYXZpZ2F0aW9uU3RlcHBlclN0ZXBTdGF0dXMsXG59IGZyb20gJy4vY29tcG9uZW50cy9OYXZpZ2F0aW9uJztcbmV4cG9ydCB0eXBlIHtcbiAgTm90aWZpY2F0aW9uTGlua0NvbmZpZyxcbiAgTm90aWZpY2F0aW9uU3RhdHVzLFxuICBOb3RpZmljYXRpb25QbGFjZW1lbnQsXG4gIE5vdGlmaWNhdGlvbktleSxcbiAgTm90aWZpY2F0aW9uT3BlbkNvbmZpZyxcbiAgTm90aWZpY2F0aW9uU3RhdGljQ29uZmlnLFxuICBOb3RpZmljYXRpb25TdGF0aWNBcGksXG59IGZyb20gJy4vY29tcG9uZW50cy9Ob3RpZmljYXRpb24nO1xuZXhwb3J0IHR5cGUgeyBQb3J0YWxQcm9wcywgUG9ydGFsQ29udGFpbmVyIH0gZnJvbSAnLi9jb21wb25lbnRzL1BvcnRhbCc7XG5leHBvcnQgdHlwZSB7XG4gIFBhZ2luYXRpb25Qcm9wcyxcbiAgUGFnaW5hdGlvbkl0ZW0sXG4gIFBhZ2luYXRpb25QYWdlSXRlbSxcbiAgUGFnaW5hdGlvbkNvbnRyb2xJdGVtLFxuICBQYWdpbmF0aW9uRWxsaXBzaXNJdGVtLFxuICBVc2VQYWdpbmF0aW9uT3B0aW9ucyxcbiAgVXNlUGFnaW5hdGlvblJlc3VsdCxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1BhZ2luYXRpb24nO1xuZXhwb3J0IHR5cGUge1xuICBQcm9ncmVzc1Byb3BzLFxuICBQcm9ncmVzc1N0YXRlLFxuICBQcm9ncmVzc0NvbG9yLFxuICBQcm9ncmVzc1BsYWNlbWVudCxcbiAgUHJvZ3Jlc3NGb3JtYXRDb250ZXh0LFxufSBmcm9tICcuL2NvbXBvbmVudHMvUHJvZ3Jlc3MnO1xuZXhwb3J0IHR5cGUge1xuICBQb3Bjb25maXJtUHJvcHMsXG4gIFBvcGNvbmZpcm1QbGFjZW1lbnQsXG4gIFBvcGNvbmZpcm1UcmlnZ2VyLFxuICBQb3Bjb25maXJtQWN0aW9uQ29udGV4dCxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1BvcGNvbmZpcm0nO1xuZXhwb3J0IHR5cGUge1xuICBSYWRpb0FsaWdubWVudCxcbiAgUmFkaW9DaGFuZ2VFdmVudCxcbiAgUmFkaW9Hcm91cERpcmVjdGlvbixcbiAgUmFkaW9Hcm91cFByb3BzLFxuICBSYWRpb09wdGlvbkl0ZW0sXG4gIFJhZGlvUHJvcHMsXG4gIFJhZGlvVmFsdWVUeXBlLFxufSBmcm9tICcuL2NvbXBvbmVudHMvUmFkaW8nO1xuZXhwb3J0IHR5cGUge1xuICBTZWxlY3RDdXN0b21QYW5lbENvbnRleHQsXG4gIFNlbGVjdEN1c3RvbVByb3BzLFxuICBTZWxlY3RDdXN0b21UcmlnZ2VyQ29udGV4dCxcbiAgU2VsZWN0TXVsdGlwbGVWYWx1ZSxcbiAgU2VsZWN0T3B0aW9uLFxuICBTZWxlY3RPcHRpb25WYWx1ZSxcbiAgU2VsZWN0UHJvcHMsXG4gIFNlbGVjdFJlbmRlck9wdGlvbk1ldGEsXG4gIFNlbGVjdFJlbmRlclZhbHVlTWV0YSxcbiAgU2VsZWN0U2luZ2xlVmFsdWUsXG4gIFNlbGVjdFNpemUsXG4gIFNlbGVjdFN0YXR1cyxcbiAgU2VsZWN0VmFsdWUsXG59IGZyb20gJy4vY29tcG9uZW50cy9TZWxlY3QnO1xuZXhwb3J0IHR5cGUgeyBTZWdtZW50UHJvcHMsIFNlZ21lbnRJdGVtIH0gZnJvbSAnLi9jb21wb25lbnRzL1NlZ21lbnQnO1xuZXhwb3J0IHR5cGUgeyBTa2VsZXRvblByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL1NrZWxldG9uJztcbmV4cG9ydCB0eXBlIHsgU2xpZGVyUHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvU2xpZGVyJztcbmV4cG9ydCB0eXBlIHsgU3BhY2VQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9TcGFjZSc7XG5leHBvcnQgdHlwZSB7IFNwaW5uZXJQcm9wcywgU3Bpbm5lclR5cGUgfSBmcm9tICcuL2NvbXBvbmVudHMvU3Bpbm5lcic7XG5leHBvcnQgdHlwZSB7IFN0ZXBQcm9wcywgU3RlcEl0ZW0sIFN0ZXBTdGF0dXMsIFN0ZXBUYWdDb25maWcgfSBmcm9tICcuL2NvbXBvbmVudHMvU3RlcCc7XG5leHBvcnQgdHlwZSB7IFN3aXRjaFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL1N3aXRjaCc7XG5leHBvcnQgdHlwZSB7XG4gIFRhYmxlUHJvcHMsXG4gIFZpcnR1YWxUYWJsZVByb3BzLFxuICBUYWJsZUNvbHVtbixcbiAgVGFibGVDaGFuZ2VNZXRhLFxuICBUYWJsZVBhZ2luYXRpb25Db25maWcsXG4gIFRhYmxlUm93U2VsZWN0aW9uLFxuICBUYWJsZUV4cGFuZGFibGVDb25maWcsXG4gIFRhYmxlTG9hZGluZ0NvbmZpZyxcbiAgVGFibGVSZWYsXG59IGZyb20gJy4vY29tcG9uZW50cy9UYWJsZSc7XG5leHBvcnQgdHlwZSB7IFRhYnNQcm9wcywgVGFiSXRlbSB9IGZyb20gJy4vY29tcG9uZW50cy9UYWJzJztcbmV4cG9ydCB0eXBlIHsgVGFnUHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvVGFnJztcbmV4cG9ydCB0eXBlIHtcbiAgTGlzdFJlZiBhcyBWaXJ0dWFsTGlzdFJlZixcbiAgTGlzdFByb3BzIGFzIFZpcnR1YWxMaXN0UHJvcHMsXG4gIFNjcm9sbEluZm8gYXMgVmlydHVhbExpc3RTY3JvbGxJbmZvLFxufSBmcm9tICcuL2NvbXBvbmVudHMvVmlydHVhbExpc3QnO1xuZXhwb3J0IHR5cGUge1xuICBSZXNpemVPYnNlcnZlclByb3BzLFxuICBTaXplSW5mbyBhcyBSZXNpemVPYnNlcnZlclNpemVJbmZvLFxuICBPblJlc2l6ZSBhcyBSZXNpemVPYnNlcnZlck9uUmVzaXplLFxufSBmcm9tICcuL2NvbXBvbmVudHMvUmVzaXplT2JzZXJ2ZXInO1xuZXhwb3J0IHR5cGUge1xuICBUeXBvZ3JhcGh5Qm9keVByb3BzLFxuICBUeXBvZ3JhcGh5Q29weWFibGVDb25maWcsXG4gIFR5cG9ncmFwaHlCb2R5U2l6ZSxcbiAgVHlwb2dyYXBoeURpc3BsYXlQcm9wcyxcbiAgVHlwb2dyYXBoeURpc3BsYXlTaXplLFxuICBUeXBvZ3JhcGh5RWxsaXBzaXNDb25maWcsXG4gIFR5cG9ncmFwaHlIZWFkbGluZVByb3BzLFxuICBUeXBvZ3JhcGh5SGVhZGxpbmVTaXplLFxuICBUeXBvZ3JhcGh5TGFiZWxQcm9wcyxcbiAgVHlwb2dyYXBoeUxhYmVsU2l6ZSxcbiAgVHlwb2dyYXBoeUxpbmtQcm9wcyxcbiAgVHlwb2dyYXBoeUxpbmtTaXplLFxuICBUeXBvZ3JhcGh5VGl0bGVQcm9wcyxcbiAgVHlwb2dyYXBoeVRpdGxlU2l6ZSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1R5cG9ncmFwaHknO1xuZXhwb3J0IHR5cGUgeyBUb3VyUHJvcHMsIFRvdXJTdGVwIH0gZnJvbSAnLi9jb21wb25lbnRzL1RvdXInO1xuZXhwb3J0IHR5cGUgeyBUb29sdGlwUHJvcHMsIFRvb2x0aXBQbGFjZW1lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvVG9vbHRpcCc7XG5leHBvcnQgdHlwZSB7XG4gIFRyaWdnZXJQcm9wcyxcbiAgVHJpZ2dlckFjdGlvbixcbiAgVHJpZ2dlckNvbnRlbnQsXG4gIFRyaWdnZXJDb250ZW50Q29udGV4dCxcbiAgVHJpZ2dlclJvbGUsXG59IGZyb20gJy4vY29tcG9uZW50cy9UcmlnZ2VyJztcbmV4cG9ydCB0eXBlIHtcbiAgVXBsb2FkUHJvcHMsXG4gIFVwbG9hZEZpbGVCYXJQcm9wcyxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1VwbG9hZCc7XG5leHBvcnQgdHlwZSB7XG4gIFByb0Zvcm1Qcm9wcyxcbiAgUHJvRm9ybUl0ZW1Qcm9wcyxcbiAgUHJvRm9ybUZpZWxkUHJvcHMsXG4gIFByb0Zvcm1Db250ZXh0VmFsdWUsXG4gIFByb0Zvcm1Gb3JtSW5zdGFuY2UsXG4gIFByb0Zvcm1Nb2RlLFxuICBQcm9Gb3JtQ29sUHJvcHMsXG4gIFByb0Zvcm1WYWx1ZVR5cGUsXG4gIFByb0Zvcm1GaWVsZFRyYW5zZm9ybUZuLFxuICBQcm9Gb3JtRmllbGRDb252ZXJ0VmFsdWVGbixcbiAgUHJvRm9ybVZhbHVlRW51bU9iaixcbiAgUHJvRm9ybVJlcXVlc3RPcHRpb24sXG4gIFByb0Zvcm1GaWVsZFNldFByb3BzLFxuICBQcm9Gb3JtR3JvdXBQcm9wcyxcbiAgU3VibWl0dGVyUHJvcHMsXG4gIFByb0Zvcm1EZXBlbmRlbmN5UHJvcHMsXG4gIFByb0Zvcm1MaXN0UHJvcHMsXG4gIFByb0Zvcm1MaXN0QWN0aW9uLFxuICBEaWFsb2dGb3JtUHJvcHMsXG4gIERyYXdlckZvcm1Qcm9wcyxcbiAgUXVlcnlGaWx0ZXJQcm9wcyxcbiAgQ3JlYXRlUHJvRm9ybUZpZWxkQ29uZmlnLFxufSBmcm9tICcuL2NvbXBvbmVudHMvUHJvRm9ybSc7XG4iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
48
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbIkFjY29yZGlvbiIsIkFsZXJ0IiwiQnV0dG9uIiwiQ2FsZW5kYXIiLCJDZWxsIiwiQ2Fyb3VzZWwiLCJDaGVja2JveCIsIkNoZWNrYm94R3JvdXAiLCJDb2FjaE1hcmsiLCJDb3B5IiwiQ2xpcGJvYXJkIiwiRGl2aWRlciIsIkVtcHR5IiwiRmxleCIsIkdyaWQiLCJSb3ciLCJDb2wiLCJJY29ucyIsIkljb25XcmFwcGVyIiwiSWNvbkhvdmVyIiwiSW5wdXQiLCJEcmF3ZXIiLCJEcm9wZG93biIsIkxpbmsiLCJEaWFsb2ciLCJOYXZpZ2F0aW9uIiwiTmF2IiwiTmF2aWdhdGlvblN0ZXBwZXIiLCJub3RpZmljYXRpb24iLCJQb3J0YWwiLCJQcm9Gb3JtIiwiUHJvRm9ybUl0ZW0iLCJQcm9Gb3JtRGVwZW5kZW5jeSIsIlByb0Zvcm1MaXN0IiwiUHJvRm9ybUdyb3VwIiwiY3JlYXRlUHJvRm9ybUZpZWxkIiwiUHJvRm9ybVRleHQiLCJQcm9Gb3JtUGFzc3dvcmQiLCJQcm9Gb3JtVGV4dEFyZWEiLCJQcm9Gb3JtQ2hlY2tib3giLCJQcm9Gb3JtQ2hlY2tib3hHcm91cCIsIlByb0Zvcm1Td2l0Y2giLCJQcm9Gb3JtU2VsZWN0IiwiUHJvRm9ybVJhZGlvR3JvdXAiLCJQcm9Gb3JtU2xpZGVyIiwiUHJvRm9ybURhdGVQaWNrZXIiLCJQcm9Gb3JtVXBsb2FkIiwiUHJvRm9ybUZpZWxkU2V0IiwiRGlhbG9nRm9ybSIsIkRyYXdlckZvcm0iLCJRdWVyeUZpbHRlciIsIlBhZ2luYXRpb24iLCJQb3Bjb25maXJtIiwiUHJvZ3Jlc3MiLCJSYWRpbyIsIlJhZGlvR3JvdXAiLCJTZWxlY3QiLCJTZWdtZW50IiwiU2tlbGV0b24iLCJTbGlkZXIiLCJTcGFjZSIsIlNwaW5uZXIiLCJTdGVwIiwiU3dpdGNoIiwiVGFibGUiLCJWaXJ0dWFsVGFibGUiLCJTdW1tYXJ5IiwiUHJvVGFibGUiLCJWaXJ0dWFsTGlzdCIsIlJlc2l6ZU9ic2VydmVyIiwidXNlUmVzaXplT2JzZXJ2ZXIiLCJUYWJzIiwiVGFnIiwiVG91ciIsIlR5cG9ncmFwaHkiLCJUb29sdGlwIiwiVHJpZ2dlciIsIlVwbG9hZCIsIlVwbG9hZEZpbGVCYXIiLCJ1c2VQYWdpbmF0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLFFBQVEsd0JBQXdCO0FBQ2xELFNBQVNDLEtBQUssUUFBUSxvQkFBb0I7QUFDMUMsU0FBU0MsTUFBTSxRQUFRLHFCQUFxQjtBQUM1QyxTQUFTQyxRQUFRLFFBQVEsdUJBQXVCO0FBQ2hELFNBQVNDLElBQUksUUFBUSxtQkFBbUI7QUFDeEMsU0FBU0MsUUFBUSxRQUFRLHVCQUF1QjtBQUNoRCxTQUFTQyxRQUFRLEVBQUVDLGFBQWEsUUFBUSx1QkFBdUI7QUFDL0QsU0FBU0MsU0FBUyxRQUFRLHdCQUF3QjtBQUNsRCxTQUFTQyxJQUFJLEVBQUVDLFNBQVMsUUFBUSxtQkFBbUI7QUFDbkQsU0FBU0MsT0FBTyxRQUFRLHNCQUFzQjtBQUM5QyxTQUFTQyxLQUFLLFFBQVEsb0JBQW9CO0FBQzFDLFNBQVNDLElBQUksUUFBUSxtQkFBbUI7QUFDeEMsU0FBU0MsSUFBSSxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsUUFBUSxtQkFBbUI7QUFDbEQsU0FBU0MsS0FBSyxFQUFFQyxXQUFXLEVBQUVDLFNBQVMsUUFBUSxvQkFBb0I7QUFDbEUsU0FBU0MsS0FBSyxRQUFRLG9CQUFvQjtBQUMxQyxTQUFTQyxNQUFNLFFBQVEscUJBQXFCO0FBQzVDLFNBQVNDLFFBQVEsUUFBUSx1QkFBdUI7QUFDaEQsU0FBU0MsSUFBSSxRQUFRLG1CQUFtQjtBQUN4QyxTQUFTQyxNQUFNLFFBQVEscUJBQXFCO0FBQzVDLFNBQVNDLFVBQVUsRUFBRUMsR0FBRyxFQUFFQyxpQkFBaUIsUUFBUSx5QkFBeUI7QUFDNUUsU0FBU0MsWUFBWSxRQUFRLDJCQUEyQjtBQUN4RCxTQUNFQyxNQUFNLFFBQ0QscUJBQXFCO0FBQzVCLFNBQ0VDLE9BQU8sRUFDUEMsV0FBVyxFQUNYQyxpQkFBaUIsRUFDakJDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxrQkFBa0IsRUFDbEJDLFdBQVcsRUFDWEMsZUFBZSxFQUNmQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsb0JBQW9CLEVBQ3BCQyxhQUFhLEVBQ2JDLGFBQWEsRUFDYkMsaUJBQWlCLEVBQ2pCQyxhQUFhLEVBQ2JDLGlCQUFpQixFQUNqQkMsYUFBYSxFQUNiQyxlQUFlLEVBQ2ZDLFVBQVUsRUFDVkMsVUFBVSxFQUNWQyxXQUFXLFFBQ04sc0JBQXNCO0FBQzdCLFNBQVNDLFVBQVUsUUFBUSx5QkFBeUI7QUFDcEQsU0FBU0MsVUFBVSxRQUFRLHlCQUF5QjtBQUNwRCxTQUFTQyxRQUFRLFFBQVEsdUJBQXVCO0FBQ2hELFNBQVNDLEtBQUssRUFBRUMsVUFBVSxRQUFRLG9CQUFvQjtBQUN0RCxTQUFTQyxNQUFNLFFBQVEscUJBQXFCO0FBQzVDLFNBQVNDLE9BQU8sUUFBUSxzQkFBc0I7QUFDOUMsU0FBU0MsUUFBUSxRQUFRLHVCQUF1QjtBQUNoRCxTQUFTQyxNQUFNLFFBQVEscUJBQXFCO0FBQzVDLFNBQVNDLEtBQUssUUFBUSxvQkFBb0I7QUFDMUMsU0FBU0MsT0FBTyxRQUFRLHNCQUFzQjtBQUM5QyxTQUFTQyxJQUFJLFFBQVEsbUJBQW1CO0FBQ3hDLFNBQVNDLE1BQU0sUUFBUSxxQkFBcUI7QUFDNUMsU0FBU0MsS0FBSyxFQUFFQyxZQUFZLEVBQUVDLE9BQU8sUUFBUSxvQkFBb0I7QUFDakUsU0FBU0MsUUFBUSxRQUFRLHVCQUF1QjtBQUNoRCxTQUFTQyxXQUFXLFFBQVEsMEJBQTBCO0FBQ3RELFNBQVNDLGNBQWMsRUFBRUMsaUJBQWlCLFFBQVEsNkJBQTZCO0FBQy9FLFNBQVNDLElBQUksUUFBUSxtQkFBbUI7QUFDeEMsU0FBU0MsR0FBRyxRQUFRLGtCQUFrQjtBQUN0QyxTQUFTQyxJQUFJLFFBQVEsbUJBQW1CO0FBQ3hDLFNBQVNDLFVBQVUsUUFBUSx5QkFBeUI7QUFDcEQsU0FBU0MsT0FBTyxRQUFRLHNCQUFzQjtBQUM5QyxTQUFTQyxPQUFPLFFBQVEsc0JBQXNCO0FBQzlDLFNBQVNDLE1BQU0sRUFBRUMsYUFBYSxRQUFRLHFCQUFxQjtBQUMzRCxTQUFTQyxhQUFhLFFBQVEseUJBQXlCIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQWNjb3JkaW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL0FjY29yZGlvbic7XG5leHBvcnQgeyBBbGVydCB9IGZyb20gJy4vY29tcG9uZW50cy9BbGVydCc7XG5leHBvcnQgeyBCdXR0b24gfSBmcm9tICcuL2NvbXBvbmVudHMvQnV0dG9uJztcbmV4cG9ydCB7IENhbGVuZGFyIH0gZnJvbSAnLi9jb21wb25lbnRzL0NhbGVuZGFyJztcbmV4cG9ydCB7IENlbGwgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2VsbCc7XG5leHBvcnQgeyBDYXJvdXNlbCB9IGZyb20gJy4vY29tcG9uZW50cy9DYXJvdXNlbCc7XG5leHBvcnQgeyBDaGVja2JveCwgQ2hlY2tib3hHcm91cCB9IGZyb20gJy4vY29tcG9uZW50cy9DaGVja2JveCc7XG5leHBvcnQgeyBDb2FjaE1hcmsgfSBmcm9tICcuL2NvbXBvbmVudHMvQ29hY2hNYXJrJztcbmV4cG9ydCB7IENvcHksIENsaXBib2FyZCB9IGZyb20gJy4vY29tcG9uZW50cy9Db3B5JztcbmV4cG9ydCB7IERpdmlkZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvRGl2aWRlcic7XG5leHBvcnQgeyBFbXB0eSB9IGZyb20gJy4vY29tcG9uZW50cy9FbXB0eSc7XG5leHBvcnQgeyBGbGV4IH0gZnJvbSAnLi9jb21wb25lbnRzL0ZsZXgnO1xuZXhwb3J0IHsgR3JpZCwgUm93LCBDb2wgfSBmcm9tICcuL2NvbXBvbmVudHMvR3JpZCc7XG5leHBvcnQgeyBJY29ucywgSWNvbldyYXBwZXIsIEljb25Ib3ZlciB9IGZyb20gJy4vY29tcG9uZW50cy9JY29ucyc7XG5leHBvcnQgeyBJbnB1dCB9IGZyb20gJy4vY29tcG9uZW50cy9JbnB1dCc7XG5leHBvcnQgeyBEcmF3ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvRHJhd2VyJztcbmV4cG9ydCB7IERyb3Bkb3duIH0gZnJvbSAnLi9jb21wb25lbnRzL0Ryb3Bkb3duJztcbmV4cG9ydCB7IExpbmsgfSBmcm9tICcuL2NvbXBvbmVudHMvTGluayc7XG5leHBvcnQgeyBEaWFsb2cgfSBmcm9tICcuL2NvbXBvbmVudHMvRGlhbG9nJztcbmV4cG9ydCB7IE5hdmlnYXRpb24sIE5hdiwgTmF2aWdhdGlvblN0ZXBwZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvTmF2aWdhdGlvbic7XG5leHBvcnQgeyBub3RpZmljYXRpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uJztcbmV4cG9ydCB7XG4gIFBvcnRhbCxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1BvcnRhbCc7XG5leHBvcnQge1xuICBQcm9Gb3JtLFxuICBQcm9Gb3JtSXRlbSxcbiAgUHJvRm9ybURlcGVuZGVuY3ksXG4gIFByb0Zvcm1MaXN0LFxuICBQcm9Gb3JtR3JvdXAsXG4gIGNyZWF0ZVByb0Zvcm1GaWVsZCxcbiAgUHJvRm9ybVRleHQsXG4gIFByb0Zvcm1QYXNzd29yZCxcbiAgUHJvRm9ybVRleHRBcmVhLFxuICBQcm9Gb3JtQ2hlY2tib3gsXG4gIFByb0Zvcm1DaGVja2JveEdyb3VwLFxuICBQcm9Gb3JtU3dpdGNoLFxuICBQcm9Gb3JtU2VsZWN0LFxuICBQcm9Gb3JtUmFkaW9Hcm91cCxcbiAgUHJvRm9ybVNsaWRlcixcbiAgUHJvRm9ybURhdGVQaWNrZXIsXG4gIFByb0Zvcm1VcGxvYWQsXG4gIFByb0Zvcm1GaWVsZFNldCxcbiAgRGlhbG9nRm9ybSxcbiAgRHJhd2VyRm9ybSxcbiAgUXVlcnlGaWx0ZXIsXG59IGZyb20gJy4vY29tcG9uZW50cy9Qcm9Gb3JtJztcbmV4cG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvUGFnaW5hdGlvbic7XG5leHBvcnQgeyBQb3Bjb25maXJtIH0gZnJvbSAnLi9jb21wb25lbnRzL1BvcGNvbmZpcm0nO1xuZXhwb3J0IHsgUHJvZ3Jlc3MgfSBmcm9tICcuL2NvbXBvbmVudHMvUHJvZ3Jlc3MnO1xuZXhwb3J0IHsgUmFkaW8sIFJhZGlvR3JvdXAgfSBmcm9tICcuL2NvbXBvbmVudHMvUmFkaW8nO1xuZXhwb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi9jb21wb25lbnRzL1NlbGVjdCc7XG5leHBvcnQgeyBTZWdtZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL1NlZ21lbnQnO1xuZXhwb3J0IHsgU2tlbGV0b24gfSBmcm9tICcuL2NvbXBvbmVudHMvU2tlbGV0b24nO1xuZXhwb3J0IHsgU2xpZGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL1NsaWRlcic7XG5leHBvcnQgeyBTcGFjZSB9IGZyb20gJy4vY29tcG9uZW50cy9TcGFjZSc7XG5leHBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi9jb21wb25lbnRzL1NwaW5uZXInO1xuZXhwb3J0IHsgU3RlcCB9IGZyb20gJy4vY29tcG9uZW50cy9TdGVwJztcbmV4cG9ydCB7IFN3aXRjaCB9IGZyb20gJy4vY29tcG9uZW50cy9Td2l0Y2gnO1xuZXhwb3J0IHsgVGFibGUsIFZpcnR1YWxUYWJsZSwgU3VtbWFyeSB9IGZyb20gJy4vY29tcG9uZW50cy9UYWJsZSc7XG5leHBvcnQgeyBQcm9UYWJsZSB9IGZyb20gJy4vY29tcG9uZW50cy9Qcm9UYWJsZSc7XG5leHBvcnQgeyBWaXJ0dWFsTGlzdCB9IGZyb20gJy4vY29tcG9uZW50cy9WaXJ0dWFsTGlzdCc7XG5leHBvcnQgeyBSZXNpemVPYnNlcnZlciwgdXNlUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvUmVzaXplT2JzZXJ2ZXInO1xuZXhwb3J0IHsgVGFicyB9IGZyb20gJy4vY29tcG9uZW50cy9UYWJzJztcbmV4cG9ydCB7IFRhZyB9IGZyb20gJy4vY29tcG9uZW50cy9UYWcnO1xuZXhwb3J0IHsgVG91ciB9IGZyb20gJy4vY29tcG9uZW50cy9Ub3VyJztcbmV4cG9ydCB7IFR5cG9ncmFwaHkgfSBmcm9tICcuL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5leHBvcnQgeyBUb29sdGlwIH0gZnJvbSAnLi9jb21wb25lbnRzL1Rvb2x0aXAnO1xuZXhwb3J0IHsgVHJpZ2dlciB9IGZyb20gJy4vY29tcG9uZW50cy9UcmlnZ2VyJztcbmV4cG9ydCB7IFVwbG9hZCwgVXBsb2FkRmlsZUJhciB9IGZyb20gJy4vY29tcG9uZW50cy9VcGxvYWQnO1xuZXhwb3J0IHsgdXNlUGFnaW5hdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9QYWdpbmF0aW9uJztcblxuZXhwb3J0IHR5cGUgeyBBY2NvcmRpb25Qcm9wcywgQWNjb3JkaW9uSXRlbSB9IGZyb20gJy4vY29tcG9uZW50cy9BY2NvcmRpb24nO1xuZXhwb3J0IHR5cGUgeyBBbGVydFByb3BzLCBBbGVydFN0YXR1cywgQWxlcnRMaW5rQ29uZmlnIH0gZnJvbSAnLi9jb21wb25lbnRzL0FsZXJ0JztcbmV4cG9ydCB0eXBlIHsgQnV0dG9uUHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvQnV0dG9uJztcbmV4cG9ydCB0eXBlIHsgQ2FsZW5kYXJQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9DYWxlbmRhcic7XG5leHBvcnQgdHlwZSB7IENlbGxQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9DZWxsJztcbmV4cG9ydCB0eXBlIHsgQ2Fyb3VzZWxQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9DYXJvdXNlbCc7XG5leHBvcnQgdHlwZSB7XG4gIENoZWNrYm94Q2hhbmdlRXZlbnQsXG4gIENoZWNrYm94UHJvcHMsXG4gIENoZWNrYm94VmFsdWVUeXBlLFxuICBDaGVja2JveEdyb3VwUHJvcHMsXG4gIENoZWNrYm94R3JvdXBPcHRpb24sXG59IGZyb20gJy4vY29tcG9uZW50cy9DaGVja2JveCc7XG5leHBvcnQgdHlwZSB7IENvYWNoTWFya1Byb3BzLCBDb2FjaE1hcmtQbGFjZW1lbnQsIENvYWNoTWFya1N0ZXAsIENvYWNoTWFya0xhYmVscyB9IGZyb20gJy4vY29tcG9uZW50cy9Db2FjaE1hcmsnO1xuZXhwb3J0IHR5cGUgeyBDb3B5UHJvcHMsIENsaXBib2FyZFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0NvcHknO1xuZXhwb3J0IHR5cGUgeyBEaXZpZGVyUHJvcHMsIERpdmlkZXJUeXBlLCBEaXZpZGVyT3JpZW50YXRpb24sIERpdmlkZXJWYXJpYW50IH0gZnJvbSAnLi9jb21wb25lbnRzL0RpdmlkZXInO1xuZXhwb3J0IHR5cGUgeyBFbXB0eVByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0VtcHR5JztcbmV4cG9ydCB0eXBlIHsgRmxleFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0ZsZXgnO1xuLy8gRm9ybS1yZWxhdGVkIHR5cGVzIChmb3JtZXJseSBmcm9tIC4vY29tcG9uZW50cy9Gb3JtKSBhcmUgbm93IGV4cG9zZWQgdmlhIFByb0Zvcm1cbmV4cG9ydCB0eXBlIHtcbiAgRm9ybUluc3RhbmNlLFxuICBGb3JtQ29yZUluc3RhbmNlLFxuICBGb3JtTGF5b3V0LFxuICBGb3JtU2l6ZSxcbiAgTGFiZWxBbGlnbixcbiAgVmFsaWRhdGVTdGF0dXMsXG4gIFZhbGlkYXRlVHJpZ2dlcixcbiAgUnVsZSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1Byb0Zvcm0nO1xuZXhwb3J0IHR5cGUgeyBHcmlkUm93UHJvcHMsIEdyaWRDb2xQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9HcmlkJztcbmV4cG9ydCB0eXBlIHtcbiAgSWNvbk5hbWUsXG4gIEljb25zUHJvcHMsXG4gIEljb25XcmFwcGVyUHJvcHMsXG4gIEljb25Ib3ZlclByb3BzLFxuICBTb3J0SWNvblN0YXR1cyxcbn0gZnJvbSAnLi9jb21wb25lbnRzL0ljb25zJztcbmV4cG9ydCB0eXBlIHtcbiAgSW5wdXRQcm9wcyxcbiAgSW5wdXRQYXNzd29yZFByb3BzLFxuICBJbnB1dFNlYXJjaFByb3BzLFxuICBJbnB1dFRleHRBcmVhUHJvcHMsXG4gIElucHV0T1RQUHJvcHMsXG4gIElucHV0VHJhZGVQcm9wcyxcbiAgSW5wdXRBbW91bnRQcm9wcyxcbiAgSW5wdXRTaXplLFxuICBJbnB1dFN0YXR1cyxcbn0gZnJvbSAnLi9jb21wb25lbnRzL0lucHV0JztcbmV4cG9ydCB0eXBlIHsgRHJhd2VyUHJvcHMsIERyYXdlclBsYWNlbWVudCB9IGZyb20gJy4vY29tcG9uZW50cy9EcmF3ZXInO1xuZXhwb3J0IHR5cGUge1xuICBEcm9wZG93blByb3BzLFxuICBEcm9wZG93bkNvbnRlbnQsXG4gIERyb3Bkb3duQ29udGVudENvbnRleHQsXG4gIERyb3Bkb3duVHJpZ2dlcixcbn0gZnJvbSAnLi9jb21wb25lbnRzL0Ryb3Bkb3duJztcbmV4cG9ydCB0eXBlIHsgTGlua1Byb3BzLCBMaW5rQ29sb3IsIExpbmtTaXplIH0gZnJvbSAnLi9jb21wb25lbnRzL0xpbmsnO1xuZXhwb3J0IHR5cGUgeyBEaWFsb2dQcm9wcywgRGlhbG9nU2l6ZSwgRGlhbG9nRm9vdGVyUmVuZGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL0RpYWxvZyc7XG5leHBvcnQgdHlwZSB7XG4gIE5hdmlnYXRpb25Qcm9wcyxcbiAgTmF2aWdhdGlvbkl0ZW0sXG4gIE5hdmlnYXRpb25IYW5kbGVycyxcbiAgTmF2UHJvcHMsXG4gIE5hdkl0ZW0sXG4gIE5hdmlnYXRpb25TdGVwcGVyUHJvcHMsXG4gIE5hdmlnYXRpb25TdGVwcGVyU3RlcCxcbiAgTmF2aWdhdGlvblN0ZXBwZXJTdGVwU3RhdHVzLFxufSBmcm9tICcuL2NvbXBvbmVudHMvTmF2aWdhdGlvbic7XG5leHBvcnQgdHlwZSB7XG4gIE5vdGlmaWNhdGlvbkxpbmtDb25maWcsXG4gIE5vdGlmaWNhdGlvblN0YXR1cyxcbiAgTm90aWZpY2F0aW9uUGxhY2VtZW50LFxuICBOb3RpZmljYXRpb25LZXksXG4gIE5vdGlmaWNhdGlvbk9wZW5Db25maWcsXG4gIE5vdGlmaWNhdGlvblN0YXRpY0NvbmZpZyxcbiAgTm90aWZpY2F0aW9uU3RhdGljQXBpLFxufSBmcm9tICcuL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uJztcbmV4cG9ydCB0eXBlIHsgUG9ydGFsUHJvcHMsIFBvcnRhbENvbnRhaW5lciB9IGZyb20gJy4vY29tcG9uZW50cy9Qb3J0YWwnO1xuZXhwb3J0IHR5cGUge1xuICBQYWdpbmF0aW9uUHJvcHMsXG4gIFBhZ2luYXRpb25JdGVtLFxuICBQYWdpbmF0aW9uUGFnZUl0ZW0sXG4gIFBhZ2luYXRpb25Db250cm9sSXRlbSxcbiAgUGFnaW5hdGlvbkVsbGlwc2lzSXRlbSxcbiAgVXNlUGFnaW5hdGlvbk9wdGlvbnMsXG4gIFVzZVBhZ2luYXRpb25SZXN1bHQsXG59IGZyb20gJy4vY29tcG9uZW50cy9QYWdpbmF0aW9uJztcbmV4cG9ydCB0eXBlIHtcbiAgUHJvZ3Jlc3NQcm9wcyxcbiAgUHJvZ3Jlc3NTdGF0ZSxcbiAgUHJvZ3Jlc3NDb2xvcixcbiAgUHJvZ3Jlc3NQbGFjZW1lbnQsXG4gIFByb2dyZXNzRm9ybWF0Q29udGV4dCxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1Byb2dyZXNzJztcbmV4cG9ydCB0eXBlIHtcbiAgUG9wY29uZmlybVByb3BzLFxuICBQb3Bjb25maXJtUGxhY2VtZW50LFxuICBQb3Bjb25maXJtVHJpZ2dlcixcbiAgUG9wY29uZmlybUFjdGlvbkNvbnRleHQsXG59IGZyb20gJy4vY29tcG9uZW50cy9Qb3Bjb25maXJtJztcbmV4cG9ydCB0eXBlIHtcbiAgUmFkaW9BbGlnbm1lbnQsXG4gIFJhZGlvQ2hhbmdlRXZlbnQsXG4gIFJhZGlvR3JvdXBEaXJlY3Rpb24sXG4gIFJhZGlvR3JvdXBQcm9wcyxcbiAgUmFkaW9PcHRpb25JdGVtLFxuICBSYWRpb1Byb3BzLFxuICBSYWRpb1ZhbHVlVHlwZSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1JhZGlvJztcbmV4cG9ydCB0eXBlIHtcbiAgU2VsZWN0Q3VzdG9tUGFuZWxDb250ZXh0LFxuICBTZWxlY3RDdXN0b21Qcm9wcyxcbiAgU2VsZWN0Q3VzdG9tVHJpZ2dlckNvbnRleHQsXG4gIFNlbGVjdE11bHRpcGxlVmFsdWUsXG4gIFNlbGVjdE9wdGlvbixcbiAgU2VsZWN0T3B0aW9uVmFsdWUsXG4gIFNlbGVjdFByb3BzLFxuICBTZWxlY3RSZW5kZXJPcHRpb25NZXRhLFxuICBTZWxlY3RSZW5kZXJWYWx1ZU1ldGEsXG4gIFNlbGVjdFNpbmdsZVZhbHVlLFxuICBTZWxlY3RTaXplLFxuICBTZWxlY3RTdGF0dXMsXG4gIFNlbGVjdFZhbHVlLFxufSBmcm9tICcuL2NvbXBvbmVudHMvU2VsZWN0JztcbmV4cG9ydCB0eXBlIHsgU2VnbWVudFByb3BzLCBTZWdtZW50SXRlbSB9IGZyb20gJy4vY29tcG9uZW50cy9TZWdtZW50JztcbmV4cG9ydCB0eXBlIHsgU2tlbGV0b25Qcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9Ta2VsZXRvbic7XG5leHBvcnQgdHlwZSB7IFNsaWRlclByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL1NsaWRlcic7XG5leHBvcnQgdHlwZSB7IFNwYWNlUHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvU3BhY2UnO1xuZXhwb3J0IHR5cGUgeyBTcGlubmVyUHJvcHMsIFNwaW5uZXJUeXBlIH0gZnJvbSAnLi9jb21wb25lbnRzL1NwaW5uZXInO1xuZXhwb3J0IHR5cGUgeyBTdGVwUHJvcHMsIFN0ZXBJdGVtLCBTdGVwU3RhdHVzLCBTdGVwVGFnQ29uZmlnIH0gZnJvbSAnLi9jb21wb25lbnRzL1N0ZXAnO1xuZXhwb3J0IHR5cGUgeyBTd2l0Y2hQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9Td2l0Y2gnO1xuZXhwb3J0IHR5cGUge1xuICBUYWJsZVByb3BzLFxuICBWaXJ0dWFsVGFibGVQcm9wcyxcbiAgVGFibGVDb2x1bW4sXG4gIFRhYmxlQ2hhbmdlTWV0YSxcbiAgVGFibGVQYWdpbmF0aW9uQ29uZmlnLFxuICBUYWJsZVJvd1NlbGVjdGlvbixcbiAgVGFibGVFeHBhbmRhYmxlQ29uZmlnLFxuICBUYWJsZUxvYWRpbmdDb25maWcsXG4gIFRhYmxlUmVmLFxufSBmcm9tICcuL2NvbXBvbmVudHMvVGFibGUnO1xuZXhwb3J0IHR5cGUge1xuICBQcm9UYWJsZVByb3BzLFxuICBQcm9Db2x1bW5zLFxuICBQcm9Db2x1bW5UeXBlLFxuICBQcm9UYWJsZVJlcXVlc3QsXG4gIFByb1RhYmxlUmVxdWVzdE9wdGlvbnMsXG4gIFJlcXVlc3REYXRhLFxuICBQYWdlSW5mbyxcbiAgUHJvVGFibGVBY3Rpb25SZWYsXG4gIFByb1RhYmxlUGFnaW5hdGlvbkNvbmZpZyxcbiAgUHJvVGFibGVWYWx1ZVR5cGUsXG4gIFNlYXJjaENvbmZpZyBhcyBQcm9UYWJsZVNlYXJjaENvbmZpZyxcbiAgUHJvVGFibGVTb3J0UGFyYW0sXG4gIFByb1RhYmxlRmlsdGVyUGFyYW0sXG59IGZyb20gJy4vY29tcG9uZW50cy9Qcm9UYWJsZSc7XG5leHBvcnQgdHlwZSB7IFRhYnNQcm9wcywgVGFiSXRlbSB9IGZyb20gJy4vY29tcG9uZW50cy9UYWJzJztcbmV4cG9ydCB0eXBlIHsgVGFnUHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvVGFnJztcbmV4cG9ydCB0eXBlIHtcbiAgTGlzdFJlZiBhcyBWaXJ0dWFsTGlzdFJlZixcbiAgTGlzdFByb3BzIGFzIFZpcnR1YWxMaXN0UHJvcHMsXG4gIFNjcm9sbEluZm8gYXMgVmlydHVhbExpc3RTY3JvbGxJbmZvLFxufSBmcm9tICcuL2NvbXBvbmVudHMvVmlydHVhbExpc3QnO1xuZXhwb3J0IHR5cGUge1xuICBSZXNpemVPYnNlcnZlclByb3BzLFxuICBTaXplSW5mbyBhcyBSZXNpemVPYnNlcnZlclNpemVJbmZvLFxuICBPblJlc2l6ZSBhcyBSZXNpemVPYnNlcnZlck9uUmVzaXplLFxufSBmcm9tICcuL2NvbXBvbmVudHMvUmVzaXplT2JzZXJ2ZXInO1xuZXhwb3J0IHR5cGUge1xuICBUeXBvZ3JhcGh5Qm9keVByb3BzLFxuICBUeXBvZ3JhcGh5Q29weWFibGVDb25maWcsXG4gIFR5cG9ncmFwaHlCb2R5U2l6ZSxcbiAgVHlwb2dyYXBoeURpc3BsYXlQcm9wcyxcbiAgVHlwb2dyYXBoeURpc3BsYXlTaXplLFxuICBUeXBvZ3JhcGh5RWxsaXBzaXNDb25maWcsXG4gIFR5cG9ncmFwaHlIZWFkbGluZVByb3BzLFxuICBUeXBvZ3JhcGh5SGVhZGxpbmVTaXplLFxuICBUeXBvZ3JhcGh5TGFiZWxQcm9wcyxcbiAgVHlwb2dyYXBoeUxhYmVsU2l6ZSxcbiAgVHlwb2dyYXBoeUxpbmtQcm9wcyxcbiAgVHlwb2dyYXBoeUxpbmtTaXplLFxuICBUeXBvZ3JhcGh5VGl0bGVQcm9wcyxcbiAgVHlwb2dyYXBoeVRpdGxlU2l6ZSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1R5cG9ncmFwaHknO1xuZXhwb3J0IHR5cGUgeyBUb3VyUHJvcHMsIFRvdXJTdGVwIH0gZnJvbSAnLi9jb21wb25lbnRzL1RvdXInO1xuZXhwb3J0IHR5cGUgeyBUb29sdGlwUHJvcHMsIFRvb2x0aXBQbGFjZW1lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvVG9vbHRpcCc7XG5leHBvcnQgdHlwZSB7XG4gIFRyaWdnZXJQcm9wcyxcbiAgVHJpZ2dlckFjdGlvbixcbiAgVHJpZ2dlckNvbnRlbnQsXG4gIFRyaWdnZXJDb250ZW50Q29udGV4dCxcbiAgVHJpZ2dlclJvbGUsXG59IGZyb20gJy4vY29tcG9uZW50cy9UcmlnZ2VyJztcbmV4cG9ydCB0eXBlIHtcbiAgVXBsb2FkUHJvcHMsXG4gIFVwbG9hZEZpbGVCYXJQcm9wcyxcbn0gZnJvbSAnLi9jb21wb25lbnRzL1VwbG9hZCc7XG5leHBvcnQgdHlwZSB7XG4gIFByb0Zvcm1Qcm9wcyxcbiAgUHJvRm9ybUl0ZW1Qcm9wcyxcbiAgUHJvRm9ybUZpZWxkUHJvcHMsXG4gIFByb0Zvcm1Db250ZXh0VmFsdWUsXG4gIFByb0Zvcm1Gb3JtSW5zdGFuY2UsXG4gIFByb0Zvcm1Nb2RlLFxuICBQcm9Gb3JtQ29sUHJvcHMsXG4gIFByb0Zvcm1WYWx1ZVR5cGUsXG4gIFByb0Zvcm1GaWVsZFRyYW5zZm9ybUZuLFxuICBQcm9Gb3JtRmllbGRDb252ZXJ0VmFsdWVGbixcbiAgUHJvRm9ybVZhbHVlRW51bU9iaixcbiAgUHJvRm9ybVJlcXVlc3RPcHRpb24sXG4gIFByb0Zvcm1GaWVsZFNldFByb3BzLFxuICBQcm9Gb3JtR3JvdXBQcm9wcyxcbiAgU3VibWl0dGVyUHJvcHMsXG4gIFByb0Zvcm1EZXBlbmRlbmN5UHJvcHMsXG4gIFByb0Zvcm1MaXN0UHJvcHMsXG4gIFByb0Zvcm1MaXN0QWN0aW9uLFxuICBEaWFsb2dGb3JtUHJvcHMsXG4gIERyYXdlckZvcm1Qcm9wcyxcbiAgUXVlcnlGaWx0ZXJQcm9wcyxcbiAgQ3JlYXRlUHJvRm9ybUZpZWxkQ29uZmlnLFxufSBmcm9tICcuL2NvbXBvbmVudHMvUHJvRm9ybSc7XG4iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode, FC, ReactElement, MutableRefObject, CSSProperties, FormHTMLAttributes } from 'react';
2
2
  import type { FormInstance, FormSize, LabelAlign, ValidateStatus, ValidateTrigger, Rule } from './core/interface';
3
- import type { ButtonProps } from "../Button";
3
+ import type { ButtonProps, ButtonSize } from "../Button";
4
4
  import type { DrawerProps, DrawerPlacement } from "../Drawer";
5
5
  import type { GridRowProps, GridColSize } from "../Grid";
6
6
  import type { DialogProps } from "../Dialog";
@@ -271,6 +271,8 @@ export interface QueryFilterProps extends ProFormProps {
271
271
  searchConfig?: {
272
272
  searchText?: ReactNode;
273
273
  resetText?: ReactNode;
274
+ /** Size of the search / reset / collapse buttons. Defaults to the Button default. */
275
+ size?: ButtonSize;
274
276
  };
275
277
  syncToUrl?: boolean | ((values: Record<string, unknown>, type: 'get' | 'set') => Record<string, unknown>);
276
278
  }
@@ -121,6 +121,7 @@ var QueryFilterBase = function QueryFilterBase(props) {
121
121
  var hasMore = childArray.length > defaultColsNumber;
122
122
  var searchText = (_a = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.searchText) !== null && _a !== void 0 ? _a : _constants.DEFAULT_TEXT.search;
123
123
  var resetText = (_b = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.resetText) !== null && _b !== void 0 ? _b : _constants.DEFAULT_TEXT.reset;
124
+ var buttonSize = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.size;
124
125
  var labelStyle = labelWidth !== undefined && labelWidth !== 'auto' ? {
125
126
  width: labelWidth
126
127
  } : undefined;
@@ -145,15 +146,18 @@ var QueryFilterBase = function QueryFilterBase(props) {
145
146
  children: [(0, _jsxRuntime.jsx)(_Button.Button, {
146
147
  type: "submit",
147
148
  color: "primary",
149
+ size: buttonSize,
148
150
  children: searchText
149
151
  }), (0, _jsxRuntime.jsx)(_Button.Button, {
150
152
  type: "button",
151
153
  color: "secondary",
154
+ size: buttonSize,
152
155
  onClick: handleReset,
153
156
  children: resetText
154
157
  }), hasMore && (0, _jsxRuntime.jsx)(_Button.Button, {
155
158
  type: "button",
156
159
  variant: "text",
160
+ size: buttonSize,
157
161
  onClick: handleCollapse,
158
162
  children: collapsed ? _constants.DEFAULT_TEXT.expand : _constants.DEFAULT_TEXT.collapse
159
163
  })]
@@ -164,4 +168,4 @@ var QueryFilterBase = function QueryFilterBase(props) {
164
168
  QueryFilterBase.displayName = 'QueryFilter';
165
169
  var QueryFilter = exports.QueryFilter = /*#__PURE__*/(0, _react.memo)(QueryFilterBase);
166
170
  var _default = exports["default"] = QueryFilter;
167
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfaG9va3MiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQnV0dG9uIiwiX1Byb0Zvcm0iLCJfY29uc3RhbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX19yZXN0IiwicyIsInAiLCJwcm90b3R5cGUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsImNvbmNhdCIsIkNTU19QUkVGSVgiLCJnZXRVcmxQYXJhbXMiLCJ3aW5kb3ciLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJsb2NhdGlvbiIsInNlYXJjaCIsImZvckVhY2giLCJ2IiwiayIsInNldFVybFBhcmFtcyIsInNwIiwiX2kiLCJfT2JqZWN0JGVudHJpZXMiLCJlbnRyaWVzIiwiX09iamVjdCRlbnRyaWVzJF9pIiwiX3NsaWNlZFRvQXJyYXkyIiwidW5kZWZpbmVkIiwiU3RyaW5nIiwidG9TdHJpbmciLCJ1cmwiLCJwYXRobmFtZSIsImhpc3RvcnkiLCJyZXBsYWNlU3RhdGUiLCJRdWVyeUZpbHRlckJhc2UiLCJwcm9wcyIsIl9hIiwiX2IiLCJfcHJvcHMkZGVmYXVsdENvbGxhcHMiLCJkZWZhdWx0Q29sbGFwc2VkIiwiY29udHJvbGxlZENvbGxhcHNlZCIsImNvbGxhcHNlZCIsIm9uQ29sbGFwc2UiLCJfcHJvcHMkZGVmYXVsdENvbHNOdW0iLCJkZWZhdWx0Q29sc051bWJlciIsImxhYmVsV2lkdGgiLCJfcHJvcHMkc3BsaXQiLCJzcGxpdCIsInNlYXJjaENvbmZpZyIsInN5bmNUb1VybCIsIm9uRmluaXNoIiwib25SZXNldCIsImNoaWxkcmVuIiwiX3Byb3BzJHN1Ym1pdHRlciIsInN1Ym1pdHRlciIsImluaXRpYWxWYWx1ZXNQcm9wIiwiaW5pdGlhbFZhbHVlcyIsImZvcm1Qcm9wcyIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsInNldENvbGxhcHNlZCIsInN5bmNJbml0UmVmIiwidXNlUmVmIiwidXNlTWVtbyIsImN1cnJlbnQiLCJ1cmxQYXJhbXMiLCJhc3NpZ24iLCJoYW5kbGVTeW5jU2V0IiwidXNlTWVtb2l6ZWRGbiIsInZhbHVlcyIsInRvV3JpdGUiLCJoYW5kbGVGaW5pc2giLCJoYW5kbGVSZXNldCIsImhhbmRsZUNvbGxhcHNlIiwibmV4dCIsImNoaWxkQXJyYXkiLCJhcnIiLCJSZWFjdCIsIkNoaWxkcmVuIiwiY2hpbGQiLCJpc1ZhbGlkRWxlbWVudCIsInB1c2giLCJ2aXNpYmxlQ2hpbGRyZW4iLCJzbGljZSIsImhhc01vcmUiLCJzZWFyY2hUZXh0IiwiREVGQVVMVF9URVhUIiwicmVzZXRUZXh0IiwicmVzZXQiLCJsYWJlbFN0eWxlIiwid2lkdGgiLCJfanN4IiwiUHJvRm9ybSIsIl9qc3hzIiwiY2xhc3NOYW1lIiwibWFwIiwiaW5kZXgiLCJGcmFnbWVudCIsInN0eWxlIiwiQnV0dG9uIiwidHlwZSIsImNvbG9yIiwib25DbGljayIsInZhcmlhbnQiLCJleHBhbmQiLCJjb2xsYXBzZSIsImRpc3BsYXlOYW1lIiwiUXVlcnlG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LENBQ2hDLElBQUF3QyxlQUFBLEVBQUNRLGNBQU0sRUFBQTtVQUFDQyxJQUFJLEVBQUMsUUFBUTtVQUFDQyxLQUFLLEVBQUMsU0FBUztVQUFBbEQsUUFBQSxFQUNsQ2tDO1FBQVUsQ0FBQSxDQUNKLEVBQ1QsSUFBQU0sZUFBQSxFQUFDUSxjQUFNLEVBQUE7VUFBQ0MsSUFBSSxFQUFDLFFBQVE7VUFBQ0MsS0FBSyxFQUFDLFdBQVc7VUFBQ0MsT0FBTyxFQUFFOUIsV0FBVztVQUFBckIsUUFBQSxFQUN6RG9DO1FBQVMsQ0FBQSxDQUNILEVBQ1JILE9BQU8sSUFDTixJQUFBTyxlQUFBLEVBQUNRLGNBQU0sRUFBQTtVQUFDQyxJQUFJLEVBQUMsUUFBUTtVQUFDRyxPQUFPLEVBQUMsTUFBTTtVQUFDRCxPQUFPLEVBQUU3QixjQUFjO1VBQUF0QixRQUFBLEVBQ3pEWCxTQUFTLEdBQUc4Qyx1QkFBWSxDQUFDa0IsTUFBTSxHQUFHbEIsdUJBQVksQ0FBQ21CO1FBQVEsQ0FBQSxDQUUzRDtNQUFBLENBQUEsQ0FDRztJQUFBLENBQUE7RUFDRixDQUFBLENBQUEsQ0FDRTtBQUVkLENBQUM7QUFFRHhFLGVBQWUsQ0FBQ3lFLFdBQVcsR0FBRyxhQUFhO0FBRXBDLElBQU1DLFdBQVcsR0FBQUMsT0FBQSxDQUFBRCxXQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQzVFLGVBQWUsQ0FBQztBQUFDLElBQUE2RSxRQUFBLEdBQUFGLE9BQUEsY0FFbENELFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvUXVlcnlGaWx0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VNZW1vaXplZEZuIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uLy4uL0J1dHRvbic7XG5pbXBvcnQgeyBQcm9Gb3JtIH0gZnJvbSAnLi4vUHJvRm9ybSc7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX1RFWFQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LXF1ZXJ5LWZpbHRlcmApO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBVUkwgc3luYyBoZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGdldFVybFBhcmFtcygpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybiB7fTtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgcGFyYW1zW2tdID0gdjtcbiAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1zO1xufVxuZnVuY3Rpb24gc2V0VXJsUGFyYW1zKHBhcmFtcykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IHNwID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcbiAgICAgICAgaWYgKHYgIT09IG51bGwgJiYgdiAhPT0gdW5kZWZpbmVkICYmIHYgIT09ICcnKSB7XG4gICAgICAgICAgICBzcC5zZXQoaywgU3RyaW5nKHYpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWFyY2ggPSBzcC50b1N0cmluZygpO1xuICAgIGNvbnN0IHVybCA9IHNlYXJjaCA/IGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0/JHtzZWFyY2h9YCA6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgJycsIHVybCk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFF1ZXJ5RmlsdGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFF1ZXJ5RmlsdGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgeyBkZWZhdWx0Q29sbGFwc2VkID0gdHJ1ZSwgY29sbGFwc2VkOiBjb250cm9sbGVkQ29sbGFwc2VkLCBvbkNvbGxhcHNlLCBkZWZhdWx0Q29sc051bWJlciA9IDMsIGxhYmVsV2lkdGgsIHNwbGl0ID0gZmFsc2UsIHNlYXJjaENvbmZpZywgc3luY1RvVXJsLCBvbkZpbmlzaCwgb25SZXNldCwgY2hpbGRyZW4sIHN1Ym1pdHRlciA9IGZhbHNlLCBpbml0aWFsVmFsdWVzOiBpbml0aWFsVmFsdWVzUHJvcCB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiZGVmYXVsdENvbGxhcHNlZFwiLCBcImNvbGxhcHNlZFwiLCBcIm9uQ29sbGFwc2VcIiwgXCJkZWZhdWx0Q29sc051bWJlclwiLCBcImxhYmVsV2lkdGhcIiwgXCJzcGxpdFwiLCBcInNlYXJjaENvbmZpZ1wiLCBcInN5bmNUb1VybFwiLCBcIm9uRmluaXNoXCIsIFwib25SZXNldFwiLCBcImNoaWxkcmVuXCIsIFwic3VibWl0dGVyXCIsIFwiaW5pdGlhbFZhbHVlc1wiXSk7XG4gICAgY29uc3QgW2NvbGxhcHNlZCwgc2V0Q29sbGFwc2VkXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0Q29sbGFwc2VkLCBjb250cm9sbGVkQ29sbGFwc2VkKTtcbiAgICAvLyDilIDilIAgc3luY1RvVXJsOiBtZXJnZSBVUkwgcGFyYW1zIGludG8gaW5pdGlhbCB2YWx1ZXMgb24gbW91bnQg4pSA4pSAXG4gICAgY29uc3Qgc3luY0luaXRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGluaXRpYWxWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFzeW5jVG9VcmwgfHwgc3luY0luaXRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybiBpbml0aWFsVmFsdWVzUHJvcDtcbiAgICAgICAgc3luY0luaXRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHVybFBhcmFtcyA9IGdldFVybFBhcmFtcygpO1xuICAgICAgICBpZiAodHlwZW9mIHN5bmNUb1VybCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaW5pdGlhbFZhbHVlc1Byb3ApLCBzeW5jVG9VcmwodXJsUGFyYW1zLCAnZ2V0JykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXNQcm9wKSwgdXJsUGFyYW1zKTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlU3luY1NldCA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBpZiAoIXN5bmNUb1VybClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdG9Xcml0ZSA9IHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gc3luY1RvVXJsKHZhbHVlcywgJ3NldCcpXG4gICAgICAgICAgICA6IHZhbHVlcztcbiAgICAgICAgc2V0VXJsUGFyYW1zKHRvV3JpdGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUZpbmlzaCA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBoYW5kbGVTeW5jU2V0KHZhbHVlcyk7XG4gICAgICAgIG9uRmluaXNoID09PSBudWxsIHx8IG9uRmluaXNoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaCh2YWx1ZXMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGlmIChzeW5jVG9VcmwpXG4gICAgICAgICAgICBzZXRVcmxQYXJhbXMoe30pO1xuICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVDb2xsYXBzZSA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0ID0gIWNvbGxhcHNlZDtcbiAgICAgICAgc2V0Q29sbGFwc2VkKG5leHQpO1xuICAgICAgICBvbkNvbGxhcHNlID09PSBudWxsIHx8IG9uQ29sbGFwc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29sbGFwc2UobmV4dCk7XG4gICAgfSk7XG4gICAgLy8gQ291bnQgY2hpbGRyZW4gYW5kIHNwbGl0IHZpc2libGUvaGlkZGVuXG4gICAgY29uc3QgY2hpbGRBcnJheSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBhcnIgPSBbXTtcbiAgICAgICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgYXJyLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFycjtcbiAgICB9LCBbY2hpbGRyZW5dKTtcbiAgICBjb25zdCB2aXNpYmxlQ2hpbGRyZW4gPSBjb2xsYXBzZWRcbiAgICAgICAgPyBjaGlsZEFycmF5LnNsaWNlKDAsIGRlZmF1bHRDb2xzTnVtYmVyKVxuICAgICAgICA6IGNoaWxkQXJyYXk7XG4gICAgY29uc3QgaGFzTW9yZSA9IGNoaWxkQXJyYXkubGVuZ3RoID4gZGVmYXVsdENvbHNOdW1iZXI7XG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IChfYSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoO1xuICAgIGNvbnN0IHJlc2V0VGV4dCA9IChfYiA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5yZXNldFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5yZXNldDtcbiAgICBjb25zdCBsYWJlbFN0eWxlID0gbGFiZWxXaWR0aCAhPT0gdW5kZWZpbmVkICYmIGxhYmVsV2lkdGggIT09ICdhdXRvJ1xuICAgICAgICA/IHsgd2lkdGg6IGxhYmVsV2lkdGggfVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3goUHJvRm9ybSwgT2JqZWN0LmFzc2lnbih7fSwgZm9ybVByb3BzLCB7IGluaXRpYWxWYWx1ZXM6IGluaXRpYWxWYWx1ZXMsIG9uRmluaXNoOiBoYW5kbGVGaW5pc2gsIG9uUmVzZXQ6IGhhbmRsZVJlc2V0LCBzdWJtaXR0ZXI6IGZhbHNlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoKSwgY2hpbGRyZW46IFt2aXNpYmxlQ2hpbGRyZW4ubWFwKChjaGlsZCwgaW5kZXgpID0+IChfanN4cyhSZWFjdC5GcmFnbWVudCwgeyBjaGlsZHJlbjogW3NwbGl0ICYmIGluZGV4ID4gMCAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzcGxpdCcpIH0pLCBsYWJlbFN0eWxlID8gKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogbGFiZWxTdHlsZSwgY2hpbGRyZW46IGNoaWxkIH0pKSA6IChjaGlsZCldIH0sIGluZGV4KSkpLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnYWN0aW9ucycpLCBjaGlsZHJlbjogW19qc3goQnV0dG9uLCB7IHR5cGU6IFwic3VibWl0XCIsIGNvbG9yOiBcInByaW1hcnlcIiwgY2hpbGRyZW46IHNlYXJjaFRleHQgfSksIF9qc3goQnV0dG9uLCB7IHR5cGU6IFwiYnV0dG9uXCIsIGNvbG9yOiBcInNlY29uZGFyeVwiLCBvbkNsaWNrOiBoYW5kbGVSZXNldCwgY2hpbGRyZW46IHJlc2V0VGV4dCB9KSwgaGFzTW9yZSAmJiAoX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgdmFyaWFudDogXCJ0ZXh0XCIsIG9uQ2xpY2s6IGhhbmRsZUNvbGxhcHNlLCBjaGlsZHJlbjogY29sbGFwc2VkID8gREVGQVVMVF9URVhULmV4cGFuZCA6IERFRkFVTFRfVEVYVC5jb2xsYXBzZSB9KSldIH0pXSB9KSB9KSkpO1xufTtcblF1ZXJ5RmlsdGVyQmFzZS5kaXNwbGF5TmFtZSA9ICdRdWVyeUZpbHRlcic7XG5leHBvcnQgY29uc3QgUXVlcnlGaWx0ZXIgPSBtZW1vKFF1ZXJ5RmlsdGVyQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBRdWVyeUZpbHRlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
171
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfaG9va3MiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQnV0dG9uIiwiX1Byb0Zvcm0iLCJfY29uc3RhbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX19yZXN0IiwicyIsInAiLCJwcm90b3R5cGUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsImNvbmNhdCIsIkNTU19QUkVGSVgiLCJnZXRVcmxQYXJhbXMiLCJ3aW5kb3ciLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJsb2NhdGlvbiIsInNlYXJjaCIsImZvckVhY2giLCJ2IiwiayIsInNldFVybFBhcmFtcyIsInNwIiwiX2kiLCJfT2JqZWN0JGVudHJpZXMiLCJlbnRyaWVzIiwiX09iamVjdCRlbnRyaWVzJF9pIiwiX3NsaWNlZFRvQXJyYXkyIiwidW5kZWZpbmVkIiwiU3RyaW5nIiwidG9TdHJpbmciLCJ1cmwiLCJwYXRobmFtZSIsImhpc3RvcnkiLCJyZXBsYWNlU3RhdGUiLCJRdWVyeUZpbHRlckJhc2UiLCJwcm9wcyIsIl9hIiwiX2IiLCJfcHJvcHMkZGVmYXVsdENvbGxhcHMiLCJkZWZhdWx0Q29sbGFwc2VkIiwiY29udHJvbGxlZENvbGxhcHNlZCIsImNvbGxhcHNlZCIsIm9uQ29sbGFwc2UiLCJfcHJvcHMkZGVmYXVsdENvbHNOdW0iLCJkZWZhdWx0Q29sc051bWJlciIsImxhYmVsV2lkdGgiLCJfcHJvcHMkc3BsaXQiLCJzcGxpdCIsInNlYXJjaENvbmZpZyIsInN5bmNUb1VybCIsIm9uRmluaXNoIiwib25SZXNldCIsImNoaWxkcmVuIiwiX3Byb3BzJHN1Ym1pdHRlciIsInN1Ym1pdHRlciIsImluaXRpYWxWYWx1ZXNQcm9wIiwiaW5pdGlhbFZhbHVlcyIsImZvcm1Qcm9wcyIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsInNldENvbGxhcHNlZCIsInN5bmNJbml0UmVmIiwidXNlUmVmIiwidXNlTWVtbyIsImN1cnJlbnQiLCJ1cmxQYXJhbXMiLCJhc3NpZ24iLCJoYW5kbGVTeW5jU2V0IiwidXNlTWVtb2l6ZWRGbiIsInZhbHVlcyIsInRvV3JpdGUiLCJoYW5kbGVGaW5pc2giLCJoYW5kbGVSZXNldCIsImhhbmRsZUNvbGxhcHNlIiwibmV4dCIsImNoaWxkQXJyYXkiLCJhcnIiLCJSZWFjdCIsIkNoaWxkcmVuIiwiY2hpbGQiLCJpc1ZhbGlkRWxlbWVudCIsInB1c2giLCJ2aXNpYmxlQ2hpbGRyZW4iLCJzbGljZSIsImhhc01vcmUiLCJzZWFyY2hUZXh0IiwiREVGQVVMVF9URVhUIiwicmVzZXRUZXh0IiwicmVzZXQiLCJidXR0b25TaXplIiwic2l6ZSIsImxhYmVsU3R5bGUiLCJ3aWR0aCIsIl9qc3giLCJQcm9Gb3JtIiwiX2pzeHMiLCJjbGFzc05hbWUiLCJtYXAiLCJpbmRleCIsIkZyYWdtZW50Iiwic3R5bGUiLCJCdXR0b24iLCJ0eXBlIiwiY29sb3IiLCJvbkNsaWNrIiwidmFyaWFudCIsImV4cGFuZCIsImNvbGxhcHNlIiwi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QUEsRUFOa0JtQixLQUFLLENBT1Q7TUFBQSxDQUNsQixDQUFDLEVBRUYsSUFBQUgsZ0JBQUEsRUFBQSxLQUFBLEVBQUE7UUFBS0MsU0FBUyxFQUFFMUYsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUFBNkMsUUFBQSxFQUFBLENBQ2hDLElBQUEwQyxlQUFBLEVBQUNRLGNBQU0sRUFBQTtVQUFDQyxJQUFJLEVBQUMsUUFBUTtVQUFDQyxLQUFLLEVBQUMsU0FBUztVQUFDYixJQUFJLEVBQUVELFVBQVU7VUFBQXRDLFFBQUEsRUFDbkRrQztRQUFVLENBQUEsQ0FDSixFQUNULElBQUFRLGVBQUEsRUFBQ1EsY0FBTSxFQUFBO1VBQUNDLElBQUksRUFBQyxRQUFRO1VBQUNDLEtBQUssRUFBQyxXQUFXO1VBQUNiLElBQUksRUFBRUQsVUFBVTtVQUFFZSxPQUFPLEVBQUVoQyxXQUFXO1VBQUFyQixRQUFBLEVBQzNFb0M7UUFBUyxDQUFBLENBQ0gsRUFDUkgsT0FBTyxJQUNOLElBQUFTLGVBQUEsRUFBQ1EsY0FBTSxFQUFBO1VBQUNDLElBQUksRUFBQyxRQUFRO1VBQUNHLE9BQU8sRUFBQyxNQUFNO1VBQUNmLElBQUksRUFBRUQsVUFBVTtVQUFFZSxPQUFPLEVBQUUvQixjQUFjO1VBQUF0QixRQUFBLEVBQzNFWCxTQUFTLEdBQUc4Qyx1QkFBWSxDQUFDb0IsTUFBTSxHQUFHcEIsdUJBQVksQ0FBQ3FCO1FBQVEsQ0FBQSxDQUUzRDtNQUFBLENBQUEsQ0FDRztJQUFBLENBQUE7RUFDRixDQUFBLENBQUEsQ0FDRTtBQUVkLENBQUM7QUFFRDFFLGVBQWUsQ0FBQzJFLFdBQVcsR0FBRyxhQUFhO0FBRXBDLElBQU1DLFdBQVcsR0FBQUMsT0FBQSxDQUFBRCxXQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQzlFLGVBQWUsQ0FBQztBQUFDLElBQUErRSxRQUFBLEdBQUFGLE9BQUEsY0FFbENELFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvUXVlcnlGaWx0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VNZW1vaXplZEZuIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uLy4uL0J1dHRvbic7XG5pbXBvcnQgeyBQcm9Gb3JtIH0gZnJvbSAnLi4vUHJvRm9ybSc7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX1RFWFQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LXF1ZXJ5LWZpbHRlcmApO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBVUkwgc3luYyBoZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGdldFVybFBhcmFtcygpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybiB7fTtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgcGFyYW1zW2tdID0gdjtcbiAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1zO1xufVxuZnVuY3Rpb24gc2V0VXJsUGFyYW1zKHBhcmFtcykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IHNwID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcbiAgICAgICAgaWYgKHYgIT09IG51bGwgJiYgdiAhPT0gdW5kZWZpbmVkICYmIHYgIT09ICcnKSB7XG4gICAgICAgICAgICBzcC5zZXQoaywgU3RyaW5nKHYpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWFyY2ggPSBzcC50b1N0cmluZygpO1xuICAgIGNvbnN0IHVybCA9IHNlYXJjaCA/IGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0/JHtzZWFyY2h9YCA6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgJycsIHVybCk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFF1ZXJ5RmlsdGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFF1ZXJ5RmlsdGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgeyBkZWZhdWx0Q29sbGFwc2VkID0gdHJ1ZSwgY29sbGFwc2VkOiBjb250cm9sbGVkQ29sbGFwc2VkLCBvbkNvbGxhcHNlLCBkZWZhdWx0Q29sc051bWJlciA9IDMsIGxhYmVsV2lkdGgsIHNwbGl0ID0gZmFsc2UsIHNlYXJjaENvbmZpZywgc3luY1RvVXJsLCBvbkZpbmlzaCwgb25SZXNldCwgY2hpbGRyZW4sIHN1Ym1pdHRlciA9IGZhbHNlLCBpbml0aWFsVmFsdWVzOiBpbml0aWFsVmFsdWVzUHJvcCB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiZGVmYXVsdENvbGxhcHNlZFwiLCBcImNvbGxhcHNlZFwiLCBcIm9uQ29sbGFwc2VcIiwgXCJkZWZhdWx0Q29sc051bWJlclwiLCBcImxhYmVsV2lkdGhcIiwgXCJzcGxpdFwiLCBcInNlYXJjaENvbmZpZ1wiLCBcInN5bmNUb1VybFwiLCBcIm9uRmluaXNoXCIsIFwib25SZXNldFwiLCBcImNoaWxkcmVuXCIsIFwic3VibWl0dGVyXCIsIFwiaW5pdGlhbFZhbHVlc1wiXSk7XG4gICAgY29uc3QgW2NvbGxhcHNlZCwgc2V0Q29sbGFwc2VkXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0Q29sbGFwc2VkLCBjb250cm9sbGVkQ29sbGFwc2VkKTtcbiAgICAvLyDilIDilIAgc3luY1RvVXJsOiBtZXJnZSBVUkwgcGFyYW1zIGludG8gaW5pdGlhbCB2YWx1ZXMgb24gbW91bnQg4pSA4pSAXG4gICAgY29uc3Qgc3luY0luaXRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGluaXRpYWxWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFzeW5jVG9VcmwgfHwgc3luY0luaXRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybiBpbml0aWFsVmFsdWVzUHJvcDtcbiAgICAgICAgc3luY0luaXRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHVybFBhcmFtcyA9IGdldFVybFBhcmFtcygpO1xuICAgICAgICBpZiAodHlwZW9mIHN5bmNUb1VybCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaW5pdGlhbFZhbHVlc1Byb3ApLCBzeW5jVG9VcmwodXJsUGFyYW1zLCAnZ2V0JykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXNQcm9wKSwgdXJsUGFyYW1zKTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlU3luY1NldCA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBpZiAoIXN5bmNUb1VybClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdG9Xcml0ZSA9IHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gc3luY1RvVXJsKHZhbHVlcywgJ3NldCcpXG4gICAgICAgICAgICA6IHZhbHVlcztcbiAgICAgICAgc2V0VXJsUGFyYW1zKHRvV3JpdGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUZpbmlzaCA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBoYW5kbGVTeW5jU2V0KHZhbHVlcyk7XG4gICAgICAgIG9uRmluaXNoID09PSBudWxsIHx8IG9uRmluaXNoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaCh2YWx1ZXMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGlmIChzeW5jVG9VcmwpXG4gICAgICAgICAgICBzZXRVcmxQYXJhbXMoe30pO1xuICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVDb2xsYXBzZSA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0ID0gIWNvbGxhcHNlZDtcbiAgICAgICAgc2V0Q29sbGFwc2VkKG5leHQpO1xuICAgICAgICBvbkNvbGxhcHNlID09PSBudWxsIHx8IG9uQ29sbGFwc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29sbGFwc2UobmV4dCk7XG4gICAgfSk7XG4gICAgLy8gQ291bnQgY2hpbGRyZW4gYW5kIHNwbGl0IHZpc2libGUvaGlkZGVuXG4gICAgY29uc3QgY2hpbGRBcnJheSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBhcnIgPSBbXTtcbiAgICAgICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgYXJyLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFycjtcbiAgICB9LCBbY2hpbGRyZW5dKTtcbiAgICBjb25zdCB2aXNpYmxlQ2hpbGRyZW4gPSBjb2xsYXBzZWRcbiAgICAgICAgPyBjaGlsZEFycmF5LnNsaWNlKDAsIGRlZmF1bHRDb2xzTnVtYmVyKVxuICAgICAgICA6IGNoaWxkQXJyYXk7XG4gICAgY29uc3QgaGFzTW9yZSA9IGNoaWxkQXJyYXkubGVuZ3RoID4gZGVmYXVsdENvbHNOdW1iZXI7XG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IChfYSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoO1xuICAgIGNvbnN0IHJlc2V0VGV4dCA9IChfYiA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5yZXNldFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5yZXNldDtcbiAgICBjb25zdCBidXR0b25TaXplID0gc2VhcmNoQ29uZmlnID09PSBudWxsIHx8IHNlYXJjaENvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ29uZmlnLnNpemU7XG4gICAgY29uc3QgbGFiZWxTdHlsZSA9IGxhYmVsV2lkdGggIT09IHVuZGVmaW5lZCAmJiBsYWJlbFdpZHRoICE9PSAnYXV0bydcbiAgICAgICAgPyB7IHdpZHRoOiBsYWJlbFdpZHRoIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBpbml0aWFsVmFsdWVzOiBpbml0aWFsVmFsdWVzLCBvbkZpbmlzaDogaGFuZGxlRmluaXNoLCBvblJlc2V0OiBoYW5kbGVSZXNldCwgc3VibWl0dGVyOiBmYWxzZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBbdmlzaWJsZUNoaWxkcmVuLm1hcCgoY2hpbGQsIGluZGV4KSA9PiAoX2pzeHMoUmVhY3QuRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtzcGxpdCAmJiBpbmRleCA+IDAgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3BsaXQnKSB9KSwgbGFiZWxTdHlsZSA/IChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGxhYmVsU3R5bGUsIGNoaWxkcmVuOiBjaGlsZCB9KSkgOiAoY2hpbGQpXSB9LCBpbmRleCkpKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2FjdGlvbnMnKSwgY2hpbGRyZW46IFtfanN4KEJ1dHRvbiwgeyB0eXBlOiBcInN1Ym1pdFwiLCBjb2xvcjogXCJwcmltYXJ5XCIsIHNpemU6IGJ1dHRvblNpemUsIGNoaWxkcmVuOiBzZWFyY2hUZXh0IH0pLCBfanN4KEJ1dHRvbiwgeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgb25DbGljazogaGFuZGxlUmVzZXQsIGNoaWxkcmVuOiByZXNldFRleHQgfSksIGhhc01vcmUgJiYgKF9qc3goQnV0dG9uLCB7IHR5cGU6IFwiYnV0dG9uXCIsIHZhcmlhbnQ6IFwidGV4dFwiLCBzaXplOiBidXR0b25TaXplLCBvbkNsaWNrOiBoYW5kbGVDb2xsYXBzZSwgY2hpbGRyZW46IGNvbGxhcHNlZCA/IERFRkFVTFRfVEVYVC5leHBhbmQgOiBERUZBVUxUX1RFWFQuY29sbGFwc2UgfSkpXSB9KV0gfSkgfSkpKTtcbn07XG5RdWVyeUZpbHRlckJhc2UuZGlzcGxheU5hbWUgPSAnUXVlcnlGaWx0ZXInO1xuZXhwb3J0IGNvbnN0IFF1ZXJ5RmlsdGVyID0gbWVtbyhRdWVyeUZpbHRlckJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUXVlcnlGaWx0ZXI7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,5 @@
1
+ import type { TableRecord } from "../Table";
2
+ import type { ProTableProps } from './interface';
3
+ declare function ProTableInner<T extends TableRecord = TableRecord, Params extends Record<string, unknown> = Record<string, unknown>>(props: ProTableProps<T, Params>): import("react/jsx-runtime").JSX.Element;
4
+ export declare const ProTable: typeof ProTableInner;
5
+ export default ProTable;
@@ -0,0 +1,316 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.ProTable = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ var _react = require("react");
13
+ var _hooks = require("@1money/hooks");
14
+ var _Pagination = require("../Pagination");
15
+ var _Table = require("../Table");
16
+ var _ProForm = require("../ProForm");
17
+ var _classnames = _interopRequireDefault(require("../../utils/classnames"));
18
+ var _constants = require("./constants");
19
+ var _useFetchData2 = require("./useFetchData");
20
+ var _genColumns = require("./core/genColumns");
21
+ var _genSearchFields = require("./core/genSearchFields");
22
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
23
+ function adopt(value) {
24
+ return value instanceof P ? value : new P(function (resolve) {
25
+ resolve(value);
26
+ });
27
+ }
28
+ return new (P || (P = Promise))(function (resolve, reject) {
29
+ function fulfilled(value) {
30
+ try {
31
+ step(generator.next(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ }
36
+ function rejected(value) {
37
+ try {
38
+ step(generator["throw"](value));
39
+ } catch (e) {
40
+ reject(e);
41
+ }
42
+ }
43
+ function step(result) {
44
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
45
+ }
46
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
47
+ });
48
+ };
49
+ /** Read the current URL query string into search values, applying the `'get'` transform. */
50
+ function readUrlValues(syncToUrl) {
51
+ if (typeof window === 'undefined') return {};
52
+ var params = {};
53
+ new URLSearchParams(window.location.search).forEach(function (value, key) {
54
+ params[key] = value;
55
+ });
56
+ return typeof syncToUrl === 'function' ? syncToUrl(params, 'get') : params;
57
+ }
58
+ function ProTableInner(props) {
59
+ var _this = this;
60
+ var _a, _b;
61
+ var _props$prefixCls = props.prefixCls,
62
+ prefixCls = _props$prefixCls === void 0 ? _constants.CSS_PREFIX : _props$prefixCls,
63
+ className = props.className,
64
+ columns = props.columns,
65
+ request = props.request,
66
+ params = props.params,
67
+ controlledData = props.dataSource,
68
+ controlledLoading = props.loading,
69
+ defaultData = props.defaultData,
70
+ manualRequest = props.manualRequest,
71
+ debounceTime = props.debounceTime,
72
+ postData = props.postData,
73
+ polling = props.polling,
74
+ beforeSearchSubmit = props.beforeSearchSubmit,
75
+ columnEmptyText = props.columnEmptyText,
76
+ searchFormRender = props.searchFormRender,
77
+ _props$pagination = props.pagination,
78
+ pagination = _props$pagination === void 0 ? {} : _props$pagination,
79
+ _props$search = props.search,
80
+ search = _props$search === void 0 ? {} : _props$search,
81
+ rowSelection = props.rowSelection,
82
+ _props$size = props.size,
83
+ size = _props$size === void 0 ? 'small' : _props$size,
84
+ actionRef = props.actionRef,
85
+ onLoad = props.onLoad,
86
+ onLoadingChange = props.onLoadingChange,
87
+ onRequestError = props.onRequestError,
88
+ onChange = props.onChange,
89
+ rowKey = props.rowKey,
90
+ _props$variant = props.variant,
91
+ variant = _props$variant === void 0 ? 'stroke' : _props$variant,
92
+ bordered = props.bordered,
93
+ scroll = props.scroll,
94
+ sticky = props.sticky,
95
+ expandable = props.expandable,
96
+ empty = props.empty,
97
+ tableLayout = props.tableLayout,
98
+ rowClassName = props.rowClassName,
99
+ onRow = props.onRow,
100
+ summary = props.summary,
101
+ footer = props.footer;
102
+ var classes = (0, _classnames["default"])(prefixCls);
103
+ var tableColumns = (0, _react.useMemo)(function () {
104
+ return (0, _genColumns.genColumns)(columns, columnEmptyText);
105
+ }, [columns, columnEmptyText]);
106
+ // ── search form (auto-generated from columns) ──
107
+ var searchCfg = search === false ? undefined : search;
108
+ var _useMemo = (0, _react.useMemo)(function () {
109
+ return (0, _genSearchFields.genSearchFields)(columns);
110
+ }, [columns]),
111
+ searchFields = _useMemo.fields,
112
+ searchInitialValues = _useMemo.initialValues,
113
+ searchFieldNames = _useMemo.names;
114
+ var hasSearch = search !== false && searchFields.length > 0;
115
+ var syncToUrl = searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.syncToUrl;
116
+ // Seed initial values (and the first request) from the URL when syncToUrl is on.
117
+ var mergedInitialValues = (0, _react.useMemo)(function () {
118
+ return syncToUrl ? Object.assign(Object.assign({}, searchInitialValues), readUrlValues(syncToUrl)) : searchInitialValues;
119
+ },
120
+ // mount-only snapshot of the URL
121
+ [searchInitialValues]);
122
+ var _useSafeState = (0, _hooks.useSafeState)(function () {
123
+ return mergedInitialValues;
124
+ }),
125
+ _useSafeState2 = (0, _slicedToArray2["default"])(_useSafeState, 2),
126
+ searchParams = _useSafeState2[0],
127
+ setSearchParams = _useSafeState2[1];
128
+ var formRef = (0, _react.useRef)(undefined);
129
+ // ── server sort / filter ──
130
+ var _useSafeState3 = (0, _hooks.useSafeState)({}),
131
+ _useSafeState4 = (0, _slicedToArray2["default"])(_useSafeState3, 2),
132
+ sort = _useSafeState4[0],
133
+ setSort = _useSafeState4[1];
134
+ var _useSafeState5 = (0, _hooks.useSafeState)({}),
135
+ _useSafeState6 = (0, _slicedToArray2["default"])(_useSafeState5, 2),
136
+ filter = _useSafeState6[0],
137
+ setFilter = _useSafeState6[1];
138
+ // ── pagination config ──
139
+ var paginated = pagination !== false;
140
+ var defaultPageSize = pagination && pagination.defaultPageSize || pagination && pagination.pageSize || _constants.DEFAULT_PAGE_SIZE;
141
+ var defaultCurrent = pagination && pagination.defaultCurrent || pagination && pagination.current || _constants.DEFAULT_CURRENT;
142
+ var manual = controlledData !== undefined || !request;
143
+ var _useFetchData = (0, _useFetchData2.useFetchData)({
144
+ request: request,
145
+ manual: manual,
146
+ manualRequest: manualRequest,
147
+ debounceTime: debounceTime,
148
+ postData: postData,
149
+ polling: polling,
150
+ params: params,
151
+ defaultData: defaultData,
152
+ paginated: paginated,
153
+ defaultCurrent: defaultCurrent,
154
+ defaultPageSize: defaultPageSize,
155
+ searchParams: searchParams,
156
+ sort: sort,
157
+ filter: filter,
158
+ onLoad: onLoad,
159
+ onLoadingChange: onLoadingChange,
160
+ onRequestError: onRequestError
161
+ }),
162
+ fetchedData = _useFetchData.dataSource,
163
+ fetchLoading = _useFetchData.loading,
164
+ pageInfo = _useFetchData.pageInfo,
165
+ setPageInfo = _useFetchData.setPageInfo,
166
+ _reload = _useFetchData.reload,
167
+ _reset = _useFetchData.reset;
168
+ var dataSource = controlledData !== null && controlledData !== void 0 ? controlledData : fetchedData;
169
+ var loading = controlledLoading !== null && controlledLoading !== void 0 ? controlledLoading : manual ? false : fetchLoading;
170
+ // ── handlers ──
171
+ var handleSearchFinish = (0, _hooks.useMemoizedFn)(function (values) {
172
+ var perColumn = (0, _genSearchFields.applySearchTransforms)(values, columns);
173
+ var finalParams = beforeSearchSubmit ? beforeSearchSubmit(perColumn) : perColumn;
174
+ setSearchParams(finalParams);
175
+ setPageInfo({
176
+ current: defaultCurrent
177
+ });
178
+ void _reload();
179
+ });
180
+ var handleSearchReset = (0, _hooks.useMemoizedFn)(function () {
181
+ var _a;
182
+ // Use the array form (`resetFields(names)`) — the no-arg form re-invokes the
183
+ // form's own `onReset`, which loops back here and recurses infinitely.
184
+ (_a = formRef.current) === null || _a === void 0 ? void 0 : _a.resetFields(searchFieldNames);
185
+ setSearchParams({});
186
+ setPageInfo({
187
+ current: defaultCurrent
188
+ });
189
+ void _reload();
190
+ });
191
+ var handleTableChange = (0, _hooks.useMemoizedFn)(function (meta) {
192
+ if (meta.sorter) {
193
+ var _meta$sorter = meta.sorter,
194
+ columnKey = _meta$sorter.columnKey,
195
+ order = _meta$sorter.order;
196
+ setSort(columnKey && order ? (0, _defineProperty2["default"])({}, String(columnKey), order) : {});
197
+ }
198
+ if (meta.filters) setFilter(meta.filters);
199
+ if (meta.sorter || meta.filters) setPageInfo({
200
+ current: defaultCurrent
201
+ });
202
+ onChange === null || onChange === void 0 ? void 0 : onChange(meta);
203
+ });
204
+ var handlePageChange = (0, _hooks.useMemoizedFn)(function (page, pageSize) {
205
+ setPageInfo({
206
+ current: page,
207
+ pageSize: pageSize
208
+ });
209
+ onChange === null || onChange === void 0 ? void 0 : onChange({
210
+ currentDataSource: dataSource,
211
+ action: 'paginate',
212
+ pagination: {
213
+ current: page,
214
+ pageSize: pageSize
215
+ }
216
+ });
217
+ });
218
+ // ── imperative handle ──
219
+ (0, _react.useImperativeHandle)(actionRef, function () {
220
+ return {
221
+ reload: function reload() {
222
+ return _reload();
223
+ },
224
+ reloadAndRest: function reloadAndRest() {
225
+ return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
226
+ return _regenerator["default"].wrap(function (_context) {
227
+ while (1) switch (_context.prev = _context.next) {
228
+ case 0:
229
+ setPageInfo({
230
+ current: defaultCurrent
231
+ });
232
+ _context.next = 1;
233
+ return _reload();
234
+ case 1:
235
+ case "end":
236
+ return _context.stop();
237
+ }
238
+ }, _callee);
239
+ }));
240
+ },
241
+ reset: function reset() {
242
+ var _a;
243
+ (_a = formRef.current) === null || _a === void 0 ? void 0 : _a.resetFields(searchFieldNames);
244
+ setSearchParams(searchInitialValues);
245
+ setSort({});
246
+ setFilter({});
247
+ _reset();
248
+ void _reload();
249
+ },
250
+ setPageInfo: setPageInfo
251
+ };
252
+ });
253
+ // ── search form node (only built when there are searchable columns) ──
254
+ var searchNode = null;
255
+ if (hasSearch) {
256
+ var searchForm = (0, _jsxRuntime.jsx)(_ProForm.QueryFilter, {
257
+ formRef: formRef,
258
+ size: "small",
259
+ initialValues: mergedInitialValues,
260
+ defaultCollapsed: searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.defaultCollapsed,
261
+ defaultColsNumber: searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.defaultColsNumber,
262
+ labelWidth: searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.labelWidth,
263
+ syncToUrl: syncToUrl,
264
+ searchConfig: {
265
+ searchText: (_a = searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.searchText) !== null && _a !== void 0 ? _a : _constants.DEFAULT_TEXT.search,
266
+ resetText: (_b = searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.resetText) !== null && _b !== void 0 ? _b : _constants.DEFAULT_TEXT.reset,
267
+ size: 'medium'
268
+ },
269
+ onFinish: handleSearchFinish,
270
+ onReset: handleSearchReset,
271
+ children: searchFields
272
+ });
273
+ searchNode = (0, _jsxRuntime.jsx)("div", {
274
+ className: classes('search'),
275
+ children: searchFormRender ? searchFormRender(searchForm) : searchForm
276
+ });
277
+ }
278
+ return (0, _jsxRuntime.jsxs)("div", {
279
+ className: classes(undefined, className),
280
+ children: [searchNode, (0, _jsxRuntime.jsxs)("div", {
281
+ className: classes('container'),
282
+ children: [(0, _jsxRuntime.jsx)(_Table.Table, {
283
+ rowKey: rowKey,
284
+ columns: tableColumns,
285
+ dataSource: dataSource,
286
+ loading: loading,
287
+ size: size,
288
+ pagination: false,
289
+ rowSelection: rowSelection,
290
+ onChange: handleTableChange,
291
+ variant: variant,
292
+ bordered: bordered,
293
+ scroll: scroll,
294
+ sticky: sticky,
295
+ expandable: expandable,
296
+ empty: empty,
297
+ tableLayout: tableLayout,
298
+ rowClassName: rowClassName,
299
+ onRow: onRow,
300
+ summary: summary,
301
+ footer: footer
302
+ }), paginated && (0, _jsxRuntime.jsx)("div", {
303
+ className: classes('pagination'),
304
+ children: (0, _jsxRuntime.jsx)(_Pagination.Pagination, {
305
+ total: pageInfo.total,
306
+ current: pageInfo.current,
307
+ pageSize: pageInfo.pageSize,
308
+ onChange: handlePageChange
309
+ })
310
+ })]
311
+ })]
312
+ });
313
+ }
314
+ var ProTable = exports.ProTable = /*#__PURE__*/(0, _react.memo)(ProTableInner);
315
+ var _default = exports["default"] = ProTable;
316
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvUHJvVGFibGUuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaG9va3MiLCJfUGFnaW5hdGlvbiIsIl9UYWJsZSIsIl9Qcm9Gb3JtIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NvbnN0YW50cyIsIl91c2VGZXRjaERhdGEyIiwiX2dlbkNvbHVtbnMiLCJfZ2VuU2VhcmNoRmllbGRzIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwicmVhZFVybFZhbHVlcyIsInN5bmNUb1VybCIsIndpbmRvdyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZm9yRWFjaCIsImtleSIsIlByb1RhYmxlSW5uZXIiLCJwcm9wcyIsIl90aGlzIiwiX2EiLCJfYiIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJDU1NfUFJFRklYIiwiY2xhc3NOYW1lIiwiY29sdW1ucyIsInJlcXVlc3QiLCJjb250cm9sbGVkRGF0YSIsImRhdGFTb3VyY2UiLCJjb250cm9sbGVkTG9hZGluZyIsImxvYWRpbmciLCJkZWZhdWx0RGF0YSIsIm1hbnVhbFJlcXVlc3QiLCJkZWJvdW5jZVRpbWUiLCJwb3N0RGF0YSIsInBvbGxpbmciLCJiZWZvcmVTZWFyY2hTdWJtaXQiLCJjb2x1bW5FbXB0eVRleHQiLCJzZWFyY2hGb3JtUmVuZGVyIiwiX3Byb3BzJHBhZ2luYXRpb24iLCJwYWdpbmF0aW9uIiwiX3Byb3BzJHNlYXJjaCIsInJvd1NlbGVjdGlvbiIsIl9wcm9wcyRzaXplIiwic2l6ZSIsImFjdGlvblJlZiIsIm9uTG9hZCIsIm9uTG9hZGluZ0NoYW5nZSIsIm9uUmVxdWVzdEVycm9yIiwib25DaGFuZ2UiLCJyb3dLZXkiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJib3JkZXJlZCIsInNjcm9sbCIsInN0aWNreSIsImV4cGFuZGFibGUiLCJlbXB0eSIsInRhYmxlTGF5b3V0Iiwicm93Q2xhc3NOYW1lIiwib25Sb3ciLCJzdW1tYXJ5IiwiZm9vdGVyIiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJ0YWJsZUNvbHVtbnMiLCJ1c2VNZW1vIiwiZ2VuQ29sdW1ucyIsInNlYXJjaENmZyIsInVuZGVmaW5lZCIsIl91c2VNZW1vIiwiZ2VuU2VhcmNoRmllbGRzIiwic2VhcmNoRmllbGRzIiwiZmllbGRzIiwic2VhcmNoSW5pdGlhbFZhbHVlcyIsImluaXRpYWxWYWx1ZXMiLCJzZWFyY2hGaWVsZE5hbWVzIiwibmFtZXMiLCJoYXNTZWFyY2giLCJsZW5ndGgiLCJtZXJnZWRJbml0aWFsVmFsdWVzIiwiT2JqZWN0IiwiYXNzaWduIiwiX3VzZVNhZmVTdGF0ZSIsInVzZVNhZmVTdGF0ZSIsIl91c2VTYWZlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2VhcmNoUGFyYW1zIiwic2V0U2VhcmNoUGFyYW1zIiwiZm9ybVJlZiIsInVzZVJlZiIsIl91c2VTYWZlU3RhdGUzIiwiX3VzZVNhZmVTdGF0ZTQiLCJzb3J0Iiwic2V0U29ydCIsIl91c2VTYWZlU3RhdGU1IiwiX3VzZVNhZmVTdGF0ZTYiLCJmaWx0ZXIiLCJzZXRGaWx0ZXIiLCJwYWdpbmF0ZWQiLCJkZWZhdWx0UGFnZVNpemUiLCJwYWdlU2l6ZSIsIkRFRkFVTFRfUEFHRV9TSVpFIiwiZGVmYXVsdEN1cnJlbnQiLCJjdXJyZW50IiwiREVGQVVMVF9DVVJSRU5UIiwibWFudWFsIiwiX3VzZUZldGNoRGF0YSIsInVzZUZldGNoRGF0YSIsImZldGNoZWREYXRhIiwiZmV0Y2hMb2FkaW5nIiwicGFnZUluZm8iLCJzZXRQYWdlSW5mbyIsInJlbG9hZCIsInJlc2V0IiwiaGFuZGxlU2VhcmNoRmluaXNoIiwidXNlTWVtb2l6ZWRGbiIsInZhbHVlcyIsInBlckNvbHVtbiIsImFwcGx5U2VhcmNoVHJhbnNmb3JtcyIsImZpbmFsUGFyYW1zIiwiaGFuZGxlU2VhcmNoUmVzZXQiLCJyZXNldEZpZWxkcyIsImhhbmRsZVRhYmxlQ2hhbmdlIiwibWV0YSIsInNvcnRlciIsIl9tZXRhJHNvcnRlciIsImNvbHVtbktleSIsIm9yZGVyIiwiX2RlZmluZVByb3BlcnR5MiIsIlN0cmluZyIsImZpbHRlcnMiLCJoYW5kbGVQYWdlQ2hhbmdlIiwicGFnZSIsImN1cnJlbnREYXRhU291cmNlIiwiYWN0aW9uIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsInJlbG9hZEFuZFJlc3QiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzdG9wIiwic2VhcmNoTm9kZSIsInNlYXJjaEZvcm0iLCJfanN4IiwiUXVlcnlGaWx0ZXIiLCJkZWZhdWx0Q29sbGFwc2VkIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwic2VhcmNoQ29uZmlnIiwic2VhcmNoVGV4dCIsIkRFRkFVTFRfVEVYVCIsInJlc2V0VGV4dCIsIm9uRmluaXNoIiwib25SZXNldCIsImNoaWxkcmVuIiwiX2pzeHMiLCJUYWJsZSIsIlBhZ2luYXRpb24iLCJ0b3RhbCIsIlByb1RhYmxlIiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVNBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1RBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFFBQUEsR0FB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QUFXLEVBQUVBLFdBQVc7UUFDeEJDLFlBQVksRUFBRUEsWUFBWTtRQUMxQkMsS0FBSyxFQUFFQSxLQUFLO1FBQ1pDLE9BQU8sRUFBRUEsT0FBTztRQUNoQkMsTUFBTSxFQUFFQTtNQUFNLENBQUEsQ0FDZCxFQUVEcUMsU0FBUyxJQUNSLElBQUFnRCxlQUFBLEVBQUEsS0FBQSxFQUFBO1FBQUszSCxTQUFTLEVBQUV1QyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQUErRixRQUFBLEVBQ25DLElBQUFYLGVBQUEsRUFBQ2Msc0JBQVUsRUFBQTtVQUNUQyxLQUFLLEVBQUVuRCxRQUFRLENBQUNtRCxLQUFLO1VBQ3JCMUQsT0FBTyxFQUFFTyxRQUFRLENBQUNQLE9BQU87VUFDekJILFFBQVEsRUFBRVUsUUFBUSxDQUFDVixRQUFRO1VBQzNCcEQsUUFBUSxFQUFFbUY7UUFBZ0IsQ0FBQTtNQUMxQixDQUFBLENBRUw7SUFBQSxDQUFBLENBQ0c7RUFBQSxDQUFBLENBQ0Y7QUFFVjtBQUVPLElBQU0rQixRQUFRLEdBQUFDLE9BQUEsQ0FBQUQsUUFBQSxnQkFBRyxJQUFBRSxXQUFJLEVBQUNySixhQUFhLENBQXlCO0FBQUMsSUFBQXNKLFFBQUEsR0FBQUYsT0FBQSxjQUVyREQsUUFBUSIsImZpbGUiOiJjb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTWVtb2l6ZWRGbiwgdXNlU2FmZVN0YXRlIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi4vUGFnaW5hdGlvbic7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJy4uL1RhYmxlJztcbmltcG9ydCB7IFF1ZXJ5RmlsdGVyIH0gZnJvbSAnLi4vUHJvRm9ybSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfQ1VSUkVOVCwgREVGQVVMVF9QQUdFX1NJWkUsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZUZldGNoRGF0YSB9IGZyb20gJy4vdXNlRmV0Y2hEYXRhJztcbmltcG9ydCB7IGdlbkNvbHVtbnMgfSBmcm9tICcuL2NvcmUvZ2VuQ29sdW1ucyc7XG5pbXBvcnQgeyBhcHBseVNlYXJjaFRyYW5zZm9ybXMsIGdlblNlYXJjaEZpZWxkcyB9IGZyb20gJy4vY29yZS9nZW5TZWFyY2hGaWVsZHMnO1xuLyoqIFJlYWQgdGhlIGN1cnJlbnQgVVJMIHF1ZXJ5IHN0cmluZyBpbnRvIHNlYXJjaCB2YWx1ZXMsIGFwcGx5aW5nIHRoZSBgJ2dldCdgIHRyYW5zZm9ybS4gKi9cbmZ1bmN0aW9uIHJlYWRVcmxWYWx1ZXMoc3luY1RvVXJsKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIHBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbicgPyBzeW5jVG9VcmwocGFyYW1zLCAnZ2V0JykgOiBwYXJhbXM7XG59XG5mdW5jdGlvbiBQcm9UYWJsZUlubmVyKHByb3BzKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IHByZWZpeENscyA9IENTU19QUkVGSVgsIGNsYXNzTmFtZSwgY29sdW1ucywgcmVxdWVzdCwgcGFyYW1zLCBkYXRhU291cmNlOiBjb250cm9sbGVkRGF0YSwgbG9hZGluZzogY29udHJvbGxlZExvYWRpbmcsIGRlZmF1bHREYXRhLCBtYW51YWxSZXF1ZXN0LCBkZWJvdW5jZVRpbWUsIHBvc3REYXRhLCBwb2xsaW5nLCBiZWZvcmVTZWFyY2hTdWJtaXQsIGNvbHVtbkVtcHR5VGV4dCwgc2VhcmNoRm9ybVJlbmRlciwgcGFnaW5hdGlvbiA9IHt9LCBzZWFyY2ggPSB7fSwgcm93U2VsZWN0aW9uLCBzaXplID0gJ3NtYWxsJywgYWN0aW9uUmVmLCBvbkxvYWQsIG9uTG9hZGluZ0NoYW5nZSwgb25SZXF1ZXN0RXJyb3IsIG9uQ2hhbmdlLCByb3dLZXksIHZhcmlhbnQgPSAnc3Ryb2tlJywgYm9yZGVyZWQsIHNjcm9sbCwgc3RpY2t5LCBleHBhbmRhYmxlLCBlbXB0eSwgdGFibGVMYXlvdXQsIHJvd0NsYXNzTmFtZSwgb25Sb3csIHN1bW1hcnksIGZvb3RlciwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgdGFibGVDb2x1bW5zID0gdXNlTWVtbygoKSA9PiBnZW5Db2x1bW5zKGNvbHVtbnMsIGNvbHVtbkVtcHR5VGV4dCksIFtjb2x1bW5zLCBjb2x1bW5FbXB0eVRleHRdKTtcbiAgICAvLyDilIDilIAgc2VhcmNoIGZvcm0gKGF1dG8tZ2VuZXJhdGVkIGZyb20gY29sdW1ucykg4pSA4pSAXG4gICAgY29uc3Qgc2VhcmNoQ2ZnID0gc2VhcmNoID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHNlYXJjaDtcbiAgICBjb25zdCB7IGZpZWxkczogc2VhcmNoRmllbGRzLCBpbml0aWFsVmFsdWVzOiBzZWFyY2hJbml0aWFsVmFsdWVzLCBuYW1lczogc2VhcmNoRmllbGROYW1lcyB9ID0gdXNlTWVtbygoKSA9PiBnZW5TZWFyY2hGaWVsZHMoY29sdW1ucyksIFtjb2x1bW5zXSk7XG4gICAgY29uc3QgaGFzU2VhcmNoID0gc2VhcmNoICE9PSBmYWxzZSAmJiBzZWFyY2hGaWVsZHMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBzeW5jVG9VcmwgPSBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcuc3luY1RvVXJsO1xuICAgIC8vIFNlZWQgaW5pdGlhbCB2YWx1ZXMgKGFuZCB0aGUgZmlyc3QgcmVxdWVzdCkgZnJvbSB0aGUgVVJMIHdoZW4gc3luY1RvVXJsIGlzIG9uLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IChzeW5jVG9VcmwgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNlYXJjaEluaXRpYWxWYWx1ZXMpLCByZWFkVXJsVmFsdWVzKHN5bmNUb1VybCkpIDogc2VhcmNoSW5pdGlhbFZhbHVlcyksIFxuICAgIC8vIG1vdW50LW9ubHkgc25hcHNob3Qgb2YgdGhlIFVSTFxuICAgIFtzZWFyY2hJbml0aWFsVmFsdWVzXSk7XG4gICAgY29uc3QgW3NlYXJjaFBhcmFtcywgc2V0U2VhcmNoUGFyYW1zXSA9IHVzZVNhZmVTdGF0ZSgoKSA9PiBtZXJnZWRJbml0aWFsVmFsdWVzKTtcbiAgICBjb25zdCBmb3JtUmVmID0gdXNlUmVmKHVuZGVmaW5lZCk7XG4gICAgLy8g4pSA4pSAIHNlcnZlciBzb3J0IC8gZmlsdGVyIOKUgOKUgFxuICAgIGNvbnN0IFtzb3J0LCBzZXRTb3J0XSA9IHVzZVNhZmVTdGF0ZSh7fSk7XG4gICAgY29uc3QgW2ZpbHRlciwgc2V0RmlsdGVyXSA9IHVzZVNhZmVTdGF0ZSh7fSk7XG4gICAgLy8g4pSA4pSAIHBhZ2luYXRpb24gY29uZmlnIOKUgOKUgFxuICAgIGNvbnN0IHBhZ2luYXRlZCA9IHBhZ2luYXRpb24gIT09IGZhbHNlO1xuICAgIGNvbnN0IGRlZmF1bHRQYWdlU2l6ZSA9IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uZGVmYXVsdFBhZ2VTaXplKSB8fCAocGFnaW5hdGlvbiAmJiBwYWdpbmF0aW9uLnBhZ2VTaXplKSB8fCBERUZBVUxUX1BBR0VfU0laRTtcbiAgICBjb25zdCBkZWZhdWx0Q3VycmVudCA9IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uZGVmYXVsdEN1cnJlbnQpIHx8IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uY3VycmVudCkgfHwgREVGQVVMVF9DVVJSRU5UO1xuICAgIGNvbnN0IG1hbnVhbCA9IGNvbnRyb2xsZWREYXRhICE9PSB1bmRlZmluZWQgfHwgIXJlcXVlc3Q7XG4gICAgY29uc3QgeyBkYXRhU291cmNlOiBmZXRjaGVkRGF0YSwgbG9hZGluZzogZmV0Y2hMb2FkaW5nLCBwYWdlSW5mbywgc2V0UGFnZUluZm8sIHJlbG9hZCwgcmVzZXQgfSA9IHVzZUZldGNoRGF0YSh7XG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIG1hbnVhbCxcbiAgICAgICAgbWFudWFsUmVxdWVzdCxcbiAgICAgICAgZGVib3VuY2VUaW1lLFxuICAgICAgICBwb3N0RGF0YSxcbiAgICAgICAgcG9sbGluZyxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBkZWZhdWx0RGF0YSxcbiAgICAgICAgcGFnaW5hdGVkLFxuICAgICAgICBkZWZhdWx0Q3VycmVudCxcbiAgICAgICAgZGVmYXVsdFBhZ2VTaXplLFxuICAgICAgICBzZWFyY2hQYXJhbXMsXG4gICAgICAgIHNvcnQsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICAgb25Mb2FkLFxuICAgICAgICBvbkxvYWRpbmdDaGFuZ2UsXG4gICAgICAgIG9uUmVxdWVzdEVycm9yLFxuICAgIH0pO1xuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSBjb250cm9sbGVkRGF0YSAhPT0gbnVsbCAmJiBjb250cm9sbGVkRGF0YSAhPT0gdm9pZCAwID8gY29udHJvbGxlZERhdGEgOiBmZXRjaGVkRGF0YTtcbiAgICBjb25zdCBsb2FkaW5nID0gY29udHJvbGxlZExvYWRpbmcgIT09IG51bGwgJiYgY29udHJvbGxlZExvYWRpbmcgIT09IHZvaWQgMCA/IGNvbnRyb2xsZWRMb2FkaW5nIDogKG1hbnVhbCA/IGZhbHNlIDogZmV0Y2hMb2FkaW5nKTtcbiAgICAvLyDilIDilIAgaGFuZGxlcnMg4pSA4pSAXG4gICAgY29uc3QgaGFuZGxlU2VhcmNoRmluaXNoID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHBlckNvbHVtbiA9IGFwcGx5U2VhcmNoVHJhbnNmb3Jtcyh2YWx1ZXMsIGNvbHVtbnMpO1xuICAgICAgICBjb25zdCBmaW5hbFBhcmFtcyA9IGJlZm9yZVNlYXJjaFN1Ym1pdCA/IGJlZm9yZVNlYXJjaFN1Ym1pdChwZXJDb2x1bW4pIDogcGVyQ29sdW1uO1xuICAgICAgICBzZXRTZWFyY2hQYXJhbXMoZmluYWxQYXJhbXMpO1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IGRlZmF1bHRDdXJyZW50IH0pO1xuICAgICAgICB2b2lkIHJlbG9hZCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaFJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgLy8gVXNlIHRoZSBhcnJheSBmb3JtIChgcmVzZXRGaWVsZHMobmFtZXMpYCkg4oCUIHRoZSBuby1hcmcgZm9ybSByZS1pbnZva2VzIHRoZVxuICAgICAgICAvLyBmb3JtJ3Mgb3duIGBvblJlc2V0YCwgd2hpY2ggbG9vcHMgYmFjayBoZXJlIGFuZCByZWN1cnNlcyBpbmZpbml0ZWx5LlxuICAgICAgICAoX2EgPSBmb3JtUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNldEZpZWxkcyhzZWFyY2hGaWVsZE5hbWVzKTtcbiAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHt9KTtcbiAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgdm9pZCByZWxvYWQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWJsZUNoYW5nZSA9IHVzZU1lbW9pemVkRm4oKG1ldGEpID0+IHtcbiAgICAgICAgaWYgKG1ldGEuc29ydGVyKSB7XG4gICAgICAgICAgICBjb25zdCB7IGNvbHVtbktleSwgb3JkZXIgfSA9IG1ldGEuc29ydGVyO1xuICAgICAgICAgICAgc2V0U29ydChjb2x1bW5LZXkgJiYgb3JkZXIgPyB7IFtTdHJpbmcoY29sdW1uS2V5KV06IG9yZGVyIH0gOiB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1ldGEuZmlsdGVycylcbiAgICAgICAgICAgIHNldEZpbHRlcihtZXRhLmZpbHRlcnMpO1xuICAgICAgICBpZiAobWV0YS5zb3J0ZXIgfHwgbWV0YS5maWx0ZXJzKVxuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG1ldGEpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVBhZ2VDaGFuZ2UgPSB1c2VNZW1vaXplZEZuKChwYWdlLCBwYWdlU2l6ZSkgPT4ge1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0pO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2Uoe1xuICAgICAgICAgICAgY3VycmVudERhdGFTb3VyY2U6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICBhY3Rpb246ICdwYWdpbmF0ZScsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBpbXBlcmF0aXZlIGhhbmRsZSDilIDilIBcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGFjdGlvblJlZiwgKCkgPT4gKHtcbiAgICAgICAgcmVsb2FkOiAoKSA9PiByZWxvYWQoKSxcbiAgICAgICAgcmVsb2FkQW5kUmVzdDogKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgICAgIHlpZWxkIHJlbG9hZCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIChfYSA9IGZvcm1SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlc2V0RmllbGRzKHNlYXJjaEZpZWxkTmFtZXMpO1xuICAgICAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHNlYXJjaEluaXRpYWxWYWx1ZXMpO1xuICAgICAgICAgICAgc2V0U29ydCh7fSk7XG4gICAgICAgICAgICBzZXRGaWx0ZXIoe30pO1xuICAgICAgICAgICAgcmVzZXQoKTtcbiAgICAgICAgICAgIHZvaWQgcmVsb2FkKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNldFBhZ2VJbmZvLFxuICAgIH0pKTtcbiAgICAvLyDilIDilIAgc2VhcmNoIGZvcm0gbm9kZSAob25seSBidWlsdCB3aGVuIHRoZXJlIGFyZSBzZWFyY2hhYmxlIGNvbHVtbnMpIOKUgOKUgFxuICAgIGxldCBzZWFyY2hOb2RlID0gbnVsbDtcbiAgICBpZiAoaGFzU2VhcmNoKSB7XG4gICAgICAgIGNvbnN0IHNlYXJjaEZvcm0gPSAoX2pzeChRdWVyeUZpbHRlciwgeyBmb3JtUmVmOiBmb3JtUmVmLCBzaXplOiBcInNtYWxsXCIsIGluaXRpYWxWYWx1ZXM6IG1lcmdlZEluaXRpYWxWYWx1ZXMsIGRlZmF1bHRDb2xsYXBzZWQ6IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5kZWZhdWx0Q29sbGFwc2VkLCBkZWZhdWx0Q29sc051bWJlcjogc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLmRlZmF1bHRDb2xzTnVtYmVyLCBsYWJlbFdpZHRoOiBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcubGFiZWxXaWR0aCwgc3luY1RvVXJsOiBzeW5jVG9VcmwsIHNlYXJjaENvbmZpZzoge1xuICAgICAgICAgICAgICAgIHNlYXJjaFRleHQ6IChfYSA9IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoLFxuICAgICAgICAgICAgICAgIHJlc2V0VGV4dDogKF9iID0gc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLnJlc2V0VGV4dCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogREVGQVVMVF9URVhULnJlc2V0LFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgfSwgb25GaW5pc2g6IGhhbmRsZVNlYXJjaEZpbmlzaCwgb25SZXNldDogaGFuZGxlU2VhcmNoUmVzZXQsIGNoaWxkcmVuOiBzZWFyY2hGaWVsZHMgfSkpO1xuICAgICAgICBzZWFyY2hOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NlYXJjaCcpLCBjaGlsZHJlbjogc2VhcmNoRm9ybVJlbmRlciA/IHNlYXJjaEZvcm1SZW5kZXIoc2VhcmNoRm9ybSkgOiBzZWFyY2hGb3JtIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh1bmRlZmluZWQsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbc2VhcmNoTm9kZSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRhaW5lcicpLCBjaGlsZHJlbjogW19qc3goVGFibGUsIHsgcm93S2V5OiByb3dLZXksIGNvbHVtbnM6IHRhYmxlQ29sdW1ucywgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSwgbG9hZGluZzogbG9hZGluZywgc2l6ZTogc2l6ZSwgcGFnaW5hdGlvbjogZmFsc2UsIHJvd1NlbGVjdGlvbjogcm93U2VsZWN0aW9uLCBvbkNoYW5nZTogaGFuZGxlVGFibGVDaGFuZ2UsIHZhcmlhbnQ6IHZhcmlhbnQsIGJvcmRlcmVkOiBib3JkZXJlZCwgc2Nyb2xsOiBzY3JvbGwsIHN0aWNreTogc3RpY2t5LCBleHBhbmRhYmxlOiBleHBhbmRhYmxlLCBlbXB0eTogZW1wdHksIHRhYmxlTGF5b3V0OiB0YWJsZUxheW91dCwgcm93Q2xhc3NOYW1lOiByb3dDbGFzc05hbWUsIG9uUm93OiBvblJvdywgc3VtbWFyeTogc3VtbWFyeSwgZm9vdGVyOiBmb290ZXIgfSksIHBhZ2luYXRlZCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFnaW5hdGlvbicpLCBjaGlsZHJlbjogX2pzeChQYWdpbmF0aW9uLCB7IHRvdGFsOiBwYWdlSW5mby50b3RhbCwgY3VycmVudDogcGFnZUluZm8uY3VycmVudCwgcGFnZVNpemU6IHBhZ2VJbmZvLnBhZ2VTaXplLCBvbkNoYW5nZTogaGFuZGxlUGFnZUNoYW5nZSB9KSB9KSldIH0pXSB9KSk7XG59XG5leHBvcnQgY29uc3QgUHJvVGFibGUgPSBtZW1vKFByb1RhYmxlSW5uZXIpO1xuZXhwb3J0IGRlZmF1bHQgUHJvVGFibGU7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9