nsc-react-component 1.0.25 → 1.1.1

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 (120) hide show
  1. package/lib/Interface.d.ts +4 -4
  2. package/lib/button/index.d.ts +27 -27
  3. package/lib/button/index.js +5 -5
  4. package/lib/button/index.less +371 -371
  5. package/lib/cascader/index.d.ts +27 -27
  6. package/lib/cascader/index.js +8 -8
  7. package/lib/chart/index.d.ts +21 -0
  8. package/lib/chart/index.js +169 -0
  9. package/lib/checkbox/CheckboxGroup.d.ts +22 -22
  10. package/lib/checkbox/CheckboxGroup.js +8 -8
  11. package/lib/checkbox/index.d.ts +8 -8
  12. package/lib/checkbox/index.js +8 -8
  13. package/lib/common/BodyRow/index.d.ts +26 -26
  14. package/lib/common/Icon.d.ts +14 -14
  15. package/lib/common/IconFont.d.ts +4 -4
  16. package/lib/common/NoAuthority.d.ts +4 -4
  17. package/lib/common/NoAuthority.js +1 -1
  18. package/lib/common/NoData.d.ts +4 -4
  19. package/lib/common/NoData.js +1 -1
  20. package/lib/common/NoData.less +13 -13
  21. package/lib/common/NoMessage.d.ts +4 -4
  22. package/lib/common/NoMessage.js +1 -1
  23. package/lib/common/NoNetWork.d.ts +4 -4
  24. package/lib/common/NoNetWork.js +1 -1
  25. package/lib/common/Page404.d.ts +4 -4
  26. package/lib/common/Page404.js +1 -1
  27. package/lib/common/PageRequest.d.ts +45 -45
  28. package/lib/common/TreePanel.d.ts +74 -74
  29. package/lib/common/withZhLocale.d.ts +3 -3
  30. package/lib/config.d.ts +20 -20
  31. package/lib/datepick/Rangepicker.d.ts +4 -4
  32. package/lib/datepick/Rangepicker.js +11 -11
  33. package/lib/datepick/index.d.ts +3 -3
  34. package/lib/datepick/index.js +8 -8
  35. package/lib/datepick/index.less +27 -27
  36. package/lib/form/Form.d.ts +47 -47
  37. package/lib/form/Form.js +8 -8
  38. package/lib/form/filed/Cascader.d.ts +6 -6
  39. package/lib/form/filed/Cascader.js +8 -8
  40. package/lib/form/filed/Checkbox.d.ts +6 -6
  41. package/lib/form/filed/Checkbox.js +8 -8
  42. package/lib/form/filed/DatePicker.d.ts +6 -6
  43. package/lib/form/filed/DatePicker.js +8 -8
  44. package/lib/form/filed/FormItem.d.ts +11 -11
  45. package/lib/form/filed/FormItem.js +8 -8
  46. package/lib/form/filed/Input.d.ts +7 -6
  47. package/lib/form/filed/Input.js +10 -10
  48. package/lib/form/filed/InputEamil.d.ts +6 -6
  49. package/lib/form/filed/InputEamil.js +8 -8
  50. package/lib/form/filed/InputNumber.d.ts +6 -6
  51. package/lib/form/filed/InputNumber.js +8 -8
  52. package/lib/form/filed/InputPassword.d.ts +6 -6
  53. package/lib/form/filed/InputPassword.js +8 -8
  54. package/lib/form/filed/Item.d.ts +17 -21
  55. package/lib/form/filed/Item.js +22 -18
  56. package/lib/form/filed/Radio.d.ts +6 -6
  57. package/lib/form/filed/Radio.js +8 -8
  58. package/lib/form/filed/RangerPicker.d.ts +6 -6
  59. package/lib/form/filed/RangerPicker.js +8 -8
  60. package/lib/form/filed/Rate.d.ts +6 -6
  61. package/lib/form/filed/Rate.js +8 -8
  62. package/lib/form/filed/Select.d.ts +6 -6
  63. package/lib/form/filed/Select.js +8 -8
  64. package/lib/form/filed/Slider.d.ts +6 -6
  65. package/lib/form/filed/Slider.js +8 -8
  66. package/lib/form/filed/Switch.d.ts +6 -6
  67. package/lib/form/filed/Switch.js +8 -8
  68. package/lib/form/filed/TagSelect.d.ts +6 -6
  69. package/lib/form/filed/TagSelect.js +1 -1
  70. package/lib/form/filed/TextArea.d.ts +6 -6
  71. package/lib/form/filed/TextArea.js +8 -8
  72. package/lib/form/filed/Upload.d.ts +6 -6
  73. package/lib/form/filed/Upload.js +8 -8
  74. package/lib/form/index.d.ts +41 -41
  75. package/lib/form/index.js +1 -1
  76. package/lib/index.d.ts +29 -26
  77. package/lib/index.js +11 -8
  78. package/lib/input/Email.d.ts +16 -16
  79. package/lib/input/Email.js +8 -8
  80. package/lib/input/Number.d.ts +13 -13
  81. package/lib/input/Number.js +8 -8
  82. package/lib/input/Password.d.ts +16 -16
  83. package/lib/input/Password.js +8 -8
  84. package/lib/input/Search.d.ts +16 -16
  85. package/lib/input/Search.js +1 -1
  86. package/lib/input/TextArea.d.ts +16 -16
  87. package/lib/input/TextArea.js +8 -8
  88. package/lib/input/index.d.ts +33 -33
  89. package/lib/input/index.js +14 -20
  90. package/lib/input/index.less +18 -18
  91. package/lib/menu/index.d.ts +27 -28
  92. package/lib/menu/index.js +13 -14
  93. package/lib/modal/index.d.ts +31 -0
  94. package/lib/modal/index.js +186 -0
  95. package/lib/pagecomponent/index.d.ts +3 -0
  96. package/lib/pagecomponent/index.js +36 -0
  97. package/lib/radio/RadioGroup.d.ts +25 -25
  98. package/lib/radio/RadioGroup.js +8 -8
  99. package/lib/radio/index.d.ts +11 -11
  100. package/lib/radio/index.js +8 -8
  101. package/lib/select/index.d.ts +29 -29
  102. package/lib/select/index.js +1 -1
  103. package/lib/select/index.less +21 -21
  104. package/lib/table/index.d.ts +87 -87
  105. package/lib/table/index.js +17 -17
  106. package/lib/tabs/Tabpane.d.ts +13 -13
  107. package/lib/tabs/Tabpane.js +8 -8
  108. package/lib/tabs/index.d.ts +18 -18
  109. package/lib/tabs/index.js +8 -8
  110. package/lib/tagSelect/TagSelect.d.ts +51 -51
  111. package/lib/tagSelect/TagSelect.js +8 -8
  112. package/lib/tagSelect/index.d.ts +23 -23
  113. package/lib/tagSelect/index.js +1 -1
  114. package/lib/tagSelect/index.less +33 -33
  115. package/lib/tree/TreeSearch.d.ts +42 -42
  116. package/lib/tree/index.d.ts +62 -62
  117. package/lib/treeUtils.d.ts +70 -70
  118. package/lib/utils.d.ts +17 -14
  119. package/lib/utils.js +28 -9
  120. package/package.json +73 -72
@@ -1,29 +1,29 @@
1
- import { PureComponent } from "react";
2
- import { SelectProps } from "antd";
3
- import { StoreProps } from "@bj-nsc/msn";
4
- interface ISelectProps extends SelectProps<any> {
5
- store?: StoreProps;
6
- data?: Array<Object>;
7
- labelField?: string;
8
- valueField?: string;
9
- defaultStyle?: boolean;
10
- }
11
- export default class NSCSelect extends PureComponent<ISelectProps> {
12
- static Option: import("rc-select/lib/Option").OptionFC;
13
- static OptGroup: import("rc-select/lib/OptGroup").OptionGroupFC;
14
- state: {
15
- dataSource: any[];
16
- };
17
- store: any;
18
- static getDerivedStateFromProps(nextProps: any, prevState: any): {
19
- dataSource: any;
20
- };
21
- constructor(props: any);
22
- getData(): any[];
23
- componentDidMount(): void;
24
- renderOption(optionData: any): any;
25
- renderChildren(): JSX.Element;
26
- onChange(value: any, options: any): void;
27
- render(): JSX.Element;
28
- }
29
- export {};
1
+ import { PureComponent } from "react";
2
+ import { SelectProps } from "antd";
3
+ import { StoreProps } from "@bj-nsc/msn";
4
+ interface ISelectProps extends SelectProps<any> {
5
+ store?: StoreProps;
6
+ data?: Array<Object>;
7
+ labelField?: string;
8
+ valueField?: string;
9
+ defaultStyle?: boolean;
10
+ }
11
+ export default class NSCSelect extends PureComponent<ISelectProps> {
12
+ static Option: import("rc-select/lib/Option").OptionFC;
13
+ static OptGroup: import("rc-select/lib/OptGroup").OptionGroupFC;
14
+ state: {
15
+ dataSource: any[];
16
+ };
17
+ store: any;
18
+ static getDerivedStateFromProps(nextProps: any, prevState: any): {
19
+ dataSource: any;
20
+ };
21
+ constructor(props: any);
22
+ getData(): any[];
23
+ componentDidMount(): void;
24
+ renderOption(optionData: any): any;
25
+ renderChildren(): JSX.Element;
26
+ onChange(value: any, options: any): void;
27
+ render(): JSX.Element;
28
+ }
29
+ export {};
@@ -285,4 +285,4 @@ _defineProperty(NSCSelect, "Option", Option);
285
285
  _defineProperty(NSCSelect, "OptGroup", OptGroup);
286
286
 
287
287
  export { NSCSelect as default };
288
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3NlbGVjdC9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiU3RvcmUiLCJ1dGlscyIsImNvbmZpZyIsInN0eWxlcyIsIk9wdGlvbiIsIk9wdEdyb3VwIiwiTlNDU2VsZWN0IiwicHJvcHMiLCJkYXRhU291cmNlIiwiZGF0YSIsInN0b3JlIiwiY2hpbGRyZW4iLCJvcHRpb25zIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsInZpZXduYW1lIiwiY2FjaGVkIiwiY2FjaGVLZXkiLCJzdG9yZXMiLCJ2aWV3VXJsIiwiRXJyb3IiLCJfdGhpcyIsInN0b3JlUHJvcHMiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsInN0YXRlIiwib3B0aW9uRGF0YSIsImxhYmVsRmllbGQiLCJ2YWx1ZUZpZWxkIiwibWFwIiwiaXRlbSIsImtleSIsImlkIiwiZGlzYWJsZWQiLCJvcHRHcm91cERhdGEiLCJmb3JFYWNoIiwibGFiZWwiLCJncm91cE5hbWUiLCJwdXNoIiwib3B0aW9uIiwicmVuZGVyT3B0aW9uIiwib3B0R3JvdXAiLCJPYmplY3QiLCJrZXlzIiwidmFsdWUiLCJvbkNoYW5nZSIsInNlbGVjdFZhbHVlIiwiZGVmYXVsdFN0eWxlIiwicGFyYW1zIiwic2hvd1NlYXJjaCIsIm9wdGlvbkZpbHRlclByb3AiLCJwbGFjZWhvbGRlciIsImFsbG93Q2xlYXIiLCJiaW5kIiwicmVuZGVyQ2hpbGRyZW4iLCJuZXh0UHJvcHMiLCJwcmV2U3RhdGUiLCJuZXdEYXRhIiwiSlNPTiIsInN0cmluZ2lmeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIsUUFBcUMsT0FBckM7QUFFQSxPQUFPQyxLQUFQLE1BQWtDLGFBQWxDO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLFdBQW5CO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUdBLElBQVFDLE1BQVIsV0FBUUEsTUFBUjtBQUFBLElBQWdCQyxRQUFoQixXQUFnQkEsUUFBaEI7O0lBU3FCQyxTOzs7OztBQW9CbkIscUJBQVlDLEtBQVosRUFBbUI7QUFBQTs7QUFBQTs7QUFDakIsK0JBQU1BLEtBQU47O0FBRGlCLDZEQWpCWDtBQUNOQyxNQUFBQSxVQUFVLEVBQUU7QUFETixLQWlCVzs7QUFBQSw2REFkWCxFQWNXOztBQUVqQixRQUFRQyxJQUFSLEdBQWdERixLQUFoRCxDQUFRRSxJQUFSO0FBQUEsdUJBQWdERixLQUFoRCxDQUFjRyxLQUFkO0FBQUEsUUFBY0EsS0FBZCw2QkFBc0IsRUFBdEI7QUFBQSxRQUEwQkMsUUFBMUIsR0FBZ0RKLEtBQWhELENBQTBCSSxRQUExQjtBQUFBLFFBQW9DQyxPQUFwQyxHQUFnREwsS0FBaEQsQ0FBb0NLLE9BQXBDOztBQUNBLFFBQ0VDLEdBREYsR0FPSUgsS0FQSixDQUNFRyxHQURGO0FBQUEsMkJBT0lILEtBUEosQ0FFRUksU0FGRjtBQUFBLFFBRWFDLGFBRmIsaUNBRTZCLEVBRjdCO0FBQUEsUUFHRUMsUUFIRixHQU9JTixLQVBKLENBR0VNLFFBSEY7QUFBQSxRQUlFQyxNQUpGLEdBT0lQLEtBUEosQ0FJRU8sTUFKRjtBQUFBLFFBS0VDLFFBTEYsR0FPSVIsS0FQSixDQUtFUSxRQUxGO0FBQUEsUUFNS0MsTUFOTCw0QkFPSVQsS0FQSjs7QUFRQSxrQkFBa0JSLE1BQU0sRUFBeEI7QUFBQSxRQUFNa0IsT0FBTixXQUFNQSxPQUFOOztBQUNBLFFBQUksQ0FBQ1QsUUFBTCxFQUFlO0FBQ2IsVUFBSSxFQUFFRixJQUFJLElBQUlPLFFBQVIsSUFBb0JILEdBQXBCLElBQTJCRCxPQUE3QixDQUFKLEVBQTJDO0FBQ3pDLGNBQU0sSUFBSVMsS0FBSixDQUFVLGlDQUFWLENBQU47QUFDRDs7QUFDRCxVQUFJQyxLQUFLLGlDQUFUOztBQUNBLFVBQUlDLFVBQVU7QUFDWkMsUUFBQUEsS0FBSyxFQUFFLE9BREs7QUFFWkMsUUFBQUEsU0FBUyxnQ0FGRztBQUdaWCxRQUFBQSxTQUFTLEVBQUU7QUFDVFksVUFBQUEsWUFBWSxFQUFFLHNCQUFVaEIsS0FBVixFQUFpQkUsT0FBakIsRUFBMEI7QUFDdENYLFlBQUFBLEtBQUssQ0FBQzBCLFFBQU4sQ0FBZVosYUFBYSxDQUFDVyxZQUE3QixFQUEyQ0osS0FBM0MsRUFBa0QsQ0FBQ1osS0FBRCxFQUFRRSxPQUFSLENBQWxEO0FBQ0QsV0FIUTtBQUlUZ0IsVUFBQUEsSUFBSSxFQUFFLGNBQVVuQixJQUFWLEVBQWdCb0IsU0FBaEIsRUFBMkJuQixLQUEzQixFQUFrQztBQUN0Q1ksWUFBQUEsS0FBSyxDQUFDUSxRQUFOLENBQWU7QUFBRXRCLGNBQUFBLFVBQVUsRUFBRXFCO0FBQWQsYUFBZjs7QUFDQTVCLFlBQUFBLEtBQUssQ0FBQzBCLFFBQU4sQ0FBZVosYUFBYSxDQUFDYSxJQUE3QixFQUFtQ04sS0FBbkMsRUFBMEMsQ0FBQ2IsSUFBRCxFQUFPb0IsU0FBUCxFQUFrQm5CLEtBQWxCLENBQTFDO0FBQ0QsV0FQUTtBQVFUcUIsVUFBQUEsV0FBVyxFQUFFLHFCQUFVdEIsSUFBVixFQUFnQm9CLFNBQWhCLEVBQTJCbkIsS0FBM0IsRUFBa0M7QUFDN0NZLFlBQUFBLEtBQUssQ0FBQ1EsUUFBTixDQUFlO0FBQUV0QixjQUFBQSxVQUFVLEVBQUVxQjtBQUFkLGFBQWY7O0FBQ0E1QixZQUFBQSxLQUFLLENBQUMwQixRQUFOLENBQWVaLGFBQWEsQ0FBQ2dCLFdBQTdCLEVBQTBDVCxLQUExQyxFQUFpRCxDQUMvQ2IsSUFEK0MsRUFFL0NvQixTQUYrQyxFQUcvQ25CLEtBSCtDLENBQWpEO0FBS0Q7QUFmUTtBQUhDLFNBb0JUUyxNQXBCUyxDQUFkOztBQXNCQSxVQUFJLENBQUNILFFBQVEsSUFBSUgsR0FBYixLQUFxQkosSUFBSSxJQUFJLElBQTdCLElBQXFDRyxPQUFPLElBQUksSUFBcEQsRUFBMEQ7QUFDeEQsWUFBSW9CLFFBQVEsR0FBR2YsTUFBZjtBQUNBLFlBQUlnQixVQUFVLEdBQUdmLFFBQWpCOztBQUNBLFlBQUlGLFFBQUosRUFBYztBQUNaLGNBQUksT0FBT0MsTUFBUCxLQUFrQixTQUF0QixFQUFpQztBQUMvQmUsWUFBQUEsUUFBUSxHQUFHLElBQVg7QUFDQUMsWUFBQUEsVUFBVSxHQUFHQSxVQUFVLEdBQUdBLFVBQUgsR0FBZ0JqQixRQUF2QztBQUNEO0FBQ0Y7O0FBQ0RPLFFBQUFBLFVBQVUsbUNBQ0w7QUFDRFcsVUFBQUEsUUFBUSxFQUFFLElBRFQ7QUFFRHJCLFVBQUFBLEdBQUcsRUFBRUEsR0FBRyxJQUFJTyxPQUFPLEdBQUdKLFFBRnJCO0FBRStCO0FBQ2hDQyxVQUFBQSxNQUFNLEVBQUVlLFFBSFA7QUFJRGQsVUFBQUEsUUFBUSxFQUFFZTtBQUpULFNBREssR0FPTFYsVUFQSyxDQUFWO0FBU0Q7O0FBQ0QsYUFBS2IsS0FBTCxHQUFhLElBQUlWLEtBQUosQ0FBVXVCLFVBQVYsQ0FBYjtBQUNEOztBQTNEZ0I7QUE0RGxCOzs7O1dBRUQsbUJBQVU7QUFDUixhQUFPLEtBQUtZLEtBQUwsQ0FBVzNCLFVBQWxCO0FBQ0Q7OztXQUVELDZCQUFvQjtBQUNsQix3QkFBb0MsS0FBS0QsS0FBekM7QUFBQSxVQUFRRSxJQUFSLGVBQVFBLElBQVI7QUFBQSxVQUFjRyxPQUFkLGVBQWNBLE9BQWQ7QUFBQSxVQUF1QkQsUUFBdkIsZUFBdUJBLFFBQXZCOztBQUNBLFVBQUksQ0FBQ0EsUUFBRCxLQUFjRixJQUFJLElBQUlHLE9BQXRCLENBQUosRUFBb0M7QUFDbEMsYUFBS2tCLFFBQUwsQ0FBYztBQUNadEIsVUFBQUEsVUFBVSxFQUFFQyxJQUFJLEdBQUdBLElBQUgsR0FBVUc7QUFEZCxTQUFkO0FBR0Q7QUFDRjs7O1dBRUQsc0JBQWF3QixVQUFiLEVBQXlCO0FBQ3ZCLHlCQUFpRSxLQUFLN0IsS0FBdEU7QUFBQSwrQ0FBTThCLFVBQU47QUFBQSxVQUFNQSxVQUFOLHNDQUFtQixPQUFuQjtBQUFBLCtDQUE0QkMsVUFBNUI7QUFBQSxVQUE0QkEsVUFBNUIsc0NBQXlDLE9BQXpDO0FBQUEsNENBQWtENUIsS0FBbEQ7QUFBQSxVQUFrREEsS0FBbEQsbUNBQTBELEVBQTFEO0FBQ0EsYUFBTzBCLFVBQVUsQ0FBQ0csR0FBWCxDQUFlLFVBQUNDLElBQUQsRUFBVTtBQUM5QixZQUFJQyxHQUFHLEdBQUdELElBQUksQ0FBQ0UsRUFBTCxHQUNORixJQUFJLENBQUNFLEVBQUwsS0FBWSxXQUFaLEdBQ0VGLElBQUksQ0FBQ0UsRUFEUCxHQUVFRixJQUFJLENBQUNGLFVBQUQsQ0FIQSxHQUlORSxJQUFJLENBQUNGLFVBQUQsQ0FKUjtBQUtBLDRCQUNFLG9CQUFDLE1BQUQ7QUFDRSxVQUFBLEdBQUcsRUFBRUcsR0FEUDtBQUVFLFVBQUEsS0FBSyxFQUFFRCxJQUFJLENBQUNGLFVBQUQsQ0FGYjtBQUdFLFVBQUEsS0FBSyxFQUFFRSxJQUFJLENBQUNILFVBQUQsQ0FIYjtBQUlFLFVBQUEsUUFBUSxFQUFFRyxJQUFJLENBQUNHLFFBQUwsR0FBZ0IsSUFBaEIsR0FBdUI7QUFKbkMsV0FNR0gsSUFBSSxDQUFDSCxVQUFELENBTlAsQ0FERjtBQVVELE9BaEJNLENBQVA7QUFpQkQ7OztXQUNELDBCQUFpQjtBQUFBOztBQUNmLFVBQVExQixRQUFSLEdBQXFCLEtBQUtKLEtBQTFCLENBQVFJLFFBQVI7QUFDQSxVQUFRSCxVQUFSLEdBQXVCLEtBQUsyQixLQUE1QixDQUFRM0IsVUFBUjs7QUFDQSxVQUFJRyxRQUFKLEVBQWM7QUFDWiw0QkFBTywwQ0FBR0EsUUFBSCxDQUFQO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsWUFBSWlDLFlBQVksR0FBRyxFQUFuQjtBQUFBLFlBQ0VSLFVBQVUsR0FBRyxFQURmO0FBRUE1QixRQUFBQSxVQUFVLENBQUNxQyxPQUFYLENBQW1CLFVBQUNMLElBQUQsRUFBVTtBQUMzQixjQUFJTSxLQUFLLEdBQUdOLElBQUksQ0FBQ08sU0FBakI7O0FBQ0EsY0FBSUQsS0FBSixFQUFXO0FBQ1QsZ0JBQUksQ0FBQ0YsWUFBWSxDQUFDRSxLQUFELENBQWpCLEVBQTBCRixZQUFZLENBQUNFLEtBQUQsQ0FBWixHQUFzQixFQUF0QjtBQUMxQkYsWUFBQUEsWUFBWSxDQUFDRSxLQUFELENBQVosQ0FBb0JFLElBQXBCLENBQXlCUixJQUF6QjtBQUNELFdBSEQsTUFHTztBQUNMSixZQUFBQSxVQUFVLENBQUNZLElBQVgsQ0FBZ0JSLElBQWhCO0FBQ0Q7QUFDRixTQVJEO0FBU0EsWUFBSVMsTUFBTSxHQUFHLEtBQUtDLFlBQUwsQ0FBa0JkLFVBQWxCLENBQWI7QUFDQSxZQUFJZSxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZVCxZQUFaLEVBQTBCTCxHQUExQixDQUE4QixVQUFDRSxHQUFELEVBQVM7QUFDcEQsOEJBQ0Usb0JBQUMsUUFBRDtBQUFVLFlBQUEsR0FBRyxFQUFFQSxHQUFmO0FBQW9CLFlBQUEsS0FBSyxFQUFFQTtBQUEzQixhQUNHLE1BQUksQ0FBQ1MsWUFBTCxDQUFrQk4sWUFBWSxDQUFDSCxHQUFELENBQTlCLENBREgsQ0FERjtBQUtELFNBTmMsQ0FBZjtBQU9BLDRCQUNFLDBDQUNHUSxNQURILEVBRUdFLFFBRkgsQ0FERjtBQU1EO0FBQ0Y7OztXQUNELGtCQUFTRyxLQUFULEVBQWdCMUMsT0FBaEIsRUFBeUI7QUFDdkIsVUFBUTJDLFFBQVIsR0FBcUIsS0FBS2hELEtBQTFCLENBQVFnRCxRQUFSO0FBQ0EsV0FBS3pCLFFBQUwsQ0FBYztBQUNaMEIsUUFBQUEsV0FBVyxFQUFFRjtBQURELE9BQWQ7O0FBR0EsVUFBSUMsUUFBSixFQUFjO0FBQ1pBLFFBQUFBLFFBQVEsQ0FBQ0QsS0FBRCxFQUFRMUMsT0FBUixDQUFSO0FBQ0Q7QUFDRjs7O1dBQ0Qsa0JBQVM7QUFDUCx5QkFVSSxLQUFLTCxLQVZUO0FBQUEsVUFDRUksUUFERixnQkFDRUEsUUFERjtBQUFBLFVBRUVELEtBRkYsZ0JBRUVBLEtBRkY7QUFBQSxVQUdFRCxJQUhGLGdCQUdFQSxJQUhGO0FBQUEsVUFJRThDLFFBSkYsZ0JBSUVBLFFBSkY7QUFBQSxVQUtFM0MsT0FMRixnQkFLRUEsT0FMRjtBQUFBLFVBTUV5QixVQU5GLGdCQU1FQSxVQU5GO0FBQUEsVUFPRUMsVUFQRixnQkFPRUEsVUFQRjtBQUFBLCtDQVFFbUIsWUFSRjtBQUFBLFVBUUVBLFlBUkYsc0NBUWlCLElBUmpCO0FBQUEsVUFTS0MsTUFUTDs7QUFXQSxVQUFNbkQsS0FBSyxHQUFHO0FBQ1pvRCxRQUFBQSxVQUFVLEVBQUUsSUFEQTtBQUVaQyxRQUFBQSxnQkFBZ0IsRUFBRSxPQUZOO0FBR1pDLFFBQUFBLFdBQVcsRUFBRSxLQUhEO0FBSVpDLFFBQUFBLFVBQVUsRUFBRTtBQUpBLE9BQWQ7O0FBTUEsVUFBSUwsWUFBSixFQUFrQjtBQUNoQiw0QkFDRTtBQUFLLFVBQUEsU0FBUyxFQUFFdEQsTUFBTSxDQUFDLFlBQUQ7QUFBdEIsd0JBQ0UsMENBQVlJLEtBQVosRUFBdUJtRCxNQUF2QjtBQUErQixVQUFBLFFBQVEsRUFBRSxLQUFLSCxRQUFMLENBQWNRLElBQWQsQ0FBbUIsSUFBbkI7QUFBekMsWUFDRyxLQUFLQyxjQUFMLEVBREgsQ0FERixDQURGO0FBT0QsT0FSRCxNQVFPO0FBQ0wsNEJBQ0UsMENBQVl6RCxLQUFaLEVBQXVCbUQsTUFBdkI7QUFBK0IsVUFBQSxRQUFRLEVBQUUsS0FBS0gsUUFBTCxDQUFjUSxJQUFkLENBQW1CLElBQW5CO0FBQXpDLFlBQ0csS0FBS0MsY0FBTCxFQURILENBREY7QUFLRDtBQUNGOzs7V0F2TEQsa0NBQWdDQyxTQUFoQyxFQUEyQ0MsU0FBM0MsRUFBMkQ7QUFDekQsVUFBUTFELFVBQVIsR0FBdUIwRCxTQUF2QixDQUFRMUQsVUFBUjtBQUNBLFVBQVFDLElBQVIsR0FBaUN3RCxTQUFqQyxDQUFReEQsSUFBUjtBQUFBLFVBQWNHLE9BQWQsR0FBaUNxRCxTQUFqQyxDQUFjckQsT0FBZDtBQUFBLFVBQXVCRixLQUF2QixHQUFpQ3VELFNBQWpDLENBQXVCdkQsS0FBdkI7O0FBQ0EsVUFBSUQsSUFBSSxJQUFJRyxPQUFaLEVBQXFCO0FBQ25CLFlBQU11RCxPQUFPLEdBQUcxRCxJQUFJLEdBQUdBLElBQUgsR0FBVUcsT0FBOUI7O0FBQ0EsWUFBSXdELElBQUksQ0FBQ0MsU0FBTCxDQUFlN0QsVUFBZixNQUErQjRELElBQUksQ0FBQ0MsU0FBTCxDQUFlRixPQUFmLENBQW5DLEVBQTREO0FBQzFELGlCQUFPO0FBQ0wzRCxZQUFBQSxVQUFVLEVBQUUyRDtBQURQLFdBQVA7QUFHRDtBQUNGOztBQUNELGFBQU8sSUFBUDtBQUNEOzs7O0VBbkJvQ3BFLGE7O2dCQUFsQk8sUyxZQUNIRixNOztnQkFER0UsUyxjQUVERCxROztTQUZDQyxTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFNlbGVjdCwgU2VsZWN0UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vY29uZmlnXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcblxuY29uc3QgeyBPcHRpb24sIE9wdEdyb3VwIH0gPSBTZWxlY3Q7XG5cbmludGVyZmFjZSBJU2VsZWN0UHJvcHMgZXh0ZW5kcyBTZWxlY3RQcm9wczxhbnk+IHtcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xuICBkYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/pu5jorqTmlbDmja5cbiAgbGFiZWxGaWVsZD86IHN0cmluZztcbiAgdmFsdWVGaWVsZD86IHN0cmluZztcbiAgZGVmYXVsdFN0eWxlPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5TQ1NlbGVjdCBleHRlbmRzIFB1cmVDb21wb25lbnQ8SVNlbGVjdFByb3BzPiB7XG4gIHN0YXRpYyBPcHRpb24gPSBPcHRpb247XG4gIHN0YXRpYyBPcHRHcm91cCA9IE9wdEdyb3VwO1xuICBzdGF0ZSA9IHtcbiAgICBkYXRhU291cmNlOiBbXSxcbiAgfTtcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlOiBhbnkpIHtcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UgfSA9IHByZXZTdGF0ZTtcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIHN0b3JlIH0gPSBuZXh0UHJvcHM7XG4gICAgaWYgKGRhdGEgfHwgb3B0aW9ucykge1xuICAgICAgY29uc3QgbmV3RGF0YSA9IGRhdGEgPyBkYXRhIDogb3B0aW9ucztcbiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhU291cmNlKSAhPT0gSlNPTi5zdHJpbmdpZnkobmV3RGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICBjb25zdCB7IGRhdGEsIHN0b3JlID0ge30sIGNoaWxkcmVuLCBvcHRpb25zIH0gPSBwcm9wcztcbiAgICBjb25zdCB7XG4gICAgICB1cmwsXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcbiAgICAgIHZpZXduYW1lLFxuICAgICAgY2FjaGVkLFxuICAgICAgY2FjaGVLZXksXG4gICAgICAuLi5zdG9yZXNcbiAgICB9ID0gc3RvcmU7XG4gICAgbGV0IHsgdmlld1VybCB9ID0gY29uZmlnKCk7XG4gICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgaWYgKCEoZGF0YSB8fCB2aWV3bmFtZSB8fCB1cmwgfHwgb3B0aW9ucykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs44CBdmlld25hbWXjgIFkYXRh44CBb3B0aW9uc+S4jeiDvemDveS4uuepuu+8gVwiKTtcbiAgICAgIH1cbiAgICAgIGxldCBfdGhpcyA9IHRoaXM7XG4gICAgICBsZXQgc3RvcmVQcm9wcyA9IHtcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBsaXN0ZW5lcnM6IHtcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5vbkJlZm9yZUxvYWQsIF90aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG1vZGVsRGF0YSB9KTtcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhIH0pO1xuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5kYXRhQ2hhbmdlZCwgX3RoaXMsIFtcbiAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxuICAgICAgICAgICAgICBzdG9yZSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnN0b3JlcyxcbiAgICAgIH07XG4gICAgICBpZiAoKHZpZXduYW1lIHx8IHVybCkgJiYgZGF0YSA9PSBudWxsICYmIG9wdGlvbnMgPT0gbnVsbCkge1xuICAgICAgICBsZXQgaXNDYWNoZWQgPSBjYWNoZWQ7XG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XG4gICAgICAgIGlmICh2aWV3bmFtZSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgY2FjaGVkICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgaXNDYWNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgaXNDYWNoZUtleSA9IGlzQ2FjaGVLZXkgPyBpc0NhY2hlS2V5IDogdmlld25hbWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XG4gICAgICAgICAgLi4ue1xuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXG4gICAgICAgICAgICB1cmw6IHVybCB8fCB2aWV3VXJsICsgdmlld25hbWUsIC8v6K+75a2X5YW477yMdXJs5Zu65a6a77yMdmlld25hbWVcbiAgICAgICAgICAgIGNhY2hlZDogaXNDYWNoZWQsXG4gICAgICAgICAgICBjYWNoZUtleTogaXNDYWNoZUtleSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xuICAgIH1cbiAgfVxuXG4gIGdldERhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZGF0YVNvdXJjZTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGRhdGFTb3VyY2U6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlck9wdGlvbihvcHRpb25EYXRhKSB7XG4gICAgbGV0IHsgbGFiZWxGaWVsZCA9IFwibGFiZWxcIiwgdmFsdWVGaWVsZCA9IFwidmFsdWVcIiwgc3RvcmUgPSB7fSB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gb3B0aW9uRGF0YS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGxldCBrZXkgPSBpdGVtLmlkXG4gICAgICAgID8gaXRlbS5pZCAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICAgID8gaXRlbS5pZFxuICAgICAgICAgIDogaXRlbVt2YWx1ZUZpZWxkXVxuICAgICAgICA6IGl0ZW1bdmFsdWVGaWVsZF07XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8T3B0aW9uXG4gICAgICAgICAga2V5PXtrZXl9XG4gICAgICAgICAgdmFsdWU9e2l0ZW1bdmFsdWVGaWVsZF19XG4gICAgICAgICAgbGFiZWw9e2l0ZW1bbGFiZWxGaWVsZF19XG4gICAgICAgICAgZGlzYWJsZWQ9e2l0ZW0uZGlzYWJsZWQgPyB0cnVlIDogZmFsc2V9XG4gICAgICAgID5cbiAgICAgICAgICB7aXRlbVtsYWJlbEZpZWxkXX1cbiAgICAgICAgPC9PcHRpb24+XG4gICAgICApO1xuICAgIH0pO1xuICB9XG4gIHJlbmRlckNoaWxkcmVuKCkge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBkYXRhU291cmNlIH0gPSB0aGlzLnN0YXRlO1xuICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IG9wdEdyb3VwRGF0YSA9IHt9LFxuICAgICAgICBvcHRpb25EYXRhID0gW107XG4gICAgICBkYXRhU291cmNlLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgbGV0IGxhYmVsID0gaXRlbS5ncm91cE5hbWU7XG4gICAgICAgIGlmIChsYWJlbCkge1xuICAgICAgICAgIGlmICghb3B0R3JvdXBEYXRhW2xhYmVsXSkgb3B0R3JvdXBEYXRhW2xhYmVsXSA9IFtdO1xuICAgICAgICAgIG9wdEdyb3VwRGF0YVtsYWJlbF0ucHVzaChpdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvcHRpb25EYXRhLnB1c2goaXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbGV0IG9wdGlvbiA9IHRoaXMucmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpO1xuICAgICAgbGV0IG9wdEdyb3VwID0gT2JqZWN0LmtleXMob3B0R3JvdXBEYXRhKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxPcHRHcm91cCBrZXk9e2tleX0gbGFiZWw9e2tleX0+XG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJPcHRpb24ob3B0R3JvdXBEYXRhW2tleV0pfVxuICAgICAgICAgIDwvT3B0R3JvdXA+XG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge29wdGlvbn1cbiAgICAgICAgICB7b3B0R3JvdXB9XG4gICAgICAgIDwvPlxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxuICAgIH0pO1xuICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY2hpbGRyZW4sXG4gICAgICBzdG9yZSxcbiAgICAgIGRhdGEsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBsYWJlbEZpZWxkLFxuICAgICAgdmFsdWVGaWVsZCxcbiAgICAgIGRlZmF1bHRTdHlsZSA9IHRydWUsXG4gICAgICAuLi5wYXJhbXNcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgIHNob3dTZWFyY2g6IHRydWUsXG4gICAgICBvcHRpb25GaWx0ZXJQcm9wOiBcImxhYmVsXCIsXG4gICAgICBwbGFjZWhvbGRlcjogXCLor7fpgInmi6lcIixcbiAgICAgIGFsbG93Q2xlYXI6IHRydWUsXG4gICAgfTtcbiAgICBpZiAoZGVmYXVsdFN0eWxlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibnNjX3NlbGVjdFwiXX0+XG4gICAgICAgICAgPFNlbGVjdCB7Li4ucHJvcHN9IHsuLi5wYXJhbXN9IG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyl9PlxuICAgICAgICAgICAge3RoaXMucmVuZGVyQ2hpbGRyZW4oKX1cbiAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U2VsZWN0IHsuLi5wcm9wc30gey4uLnBhcmFtc30gb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX0+XG4gICAgICAgICAge3RoaXMucmVuZGVyQ2hpbGRyZW4oKX1cbiAgICAgICAgPC9TZWxlY3Q+XG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
288
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3NlbGVjdC9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiU3RvcmUiLCJ1dGlscyIsImNvbmZpZyIsInN0eWxlcyIsIk9wdGlvbiIsIk9wdEdyb3VwIiwiTlNDU2VsZWN0IiwicHJvcHMiLCJkYXRhU291cmNlIiwiZGF0YSIsInN0b3JlIiwiY2hpbGRyZW4iLCJvcHRpb25zIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsInZpZXduYW1lIiwiY2FjaGVkIiwiY2FjaGVLZXkiLCJzdG9yZXMiLCJ2aWV3VXJsIiwiRXJyb3IiLCJfdGhpcyIsInN0b3JlUHJvcHMiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsInN0YXRlIiwib3B0aW9uRGF0YSIsImxhYmVsRmllbGQiLCJ2YWx1ZUZpZWxkIiwibWFwIiwiaXRlbSIsImtleSIsImlkIiwiZGlzYWJsZWQiLCJvcHRHcm91cERhdGEiLCJmb3JFYWNoIiwibGFiZWwiLCJncm91cE5hbWUiLCJwdXNoIiwib3B0aW9uIiwicmVuZGVyT3B0aW9uIiwib3B0R3JvdXAiLCJPYmplY3QiLCJrZXlzIiwidmFsdWUiLCJvbkNoYW5nZSIsInNlbGVjdFZhbHVlIiwiZGVmYXVsdFN0eWxlIiwicGFyYW1zIiwic2hvd1NlYXJjaCIsIm9wdGlvbkZpbHRlclByb3AiLCJwbGFjZWhvbGRlciIsImFsbG93Q2xlYXIiLCJiaW5kIiwicmVuZGVyQ2hpbGRyZW4iLCJuZXh0UHJvcHMiLCJwcmV2U3RhdGUiLCJuZXdEYXRhIiwiSlNPTiIsInN0cmluZ2lmeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0Es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Q3VELFNBQWpDLENBQXVCdkQsS0FBdkI7O0FBQ0EsVUFBSUQsSUFBSSxJQUFJRyxPQUFaLEVBQXFCO0FBQ25CLFlBQU11RCxPQUFPLEdBQUcxRCxJQUFJLEdBQUdBLElBQUgsR0FBVUcsT0FBOUI7O0FBQ0EsWUFBSXdELElBQUksQ0FBQ0MsU0FBTCxDQUFlN0QsVUFBZixNQUErQjRELElBQUksQ0FBQ0MsU0FBTCxDQUFlRixPQUFmLENBQW5DLEVBQTREO0FBQzFELGlCQUFPO0FBQ0wzRCxZQUFBQSxVQUFVLEVBQUUyRDtBQURQLFdBQVA7QUFHRDtBQUNGOztBQUNELGFBQU8sSUFBUDtBQUNEOzs7O0VBbkJvQ3BFLGE7O2dCQUFsQk8sUyxZQUNIRixNOztnQkFER0UsUyxjQUVERCxROztTQUZDQyxTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgU2VsZWN0LCBTZWxlY3RQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi9jb25maWdcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuXHJcbmNvbnN0IHsgT3B0aW9uLCBPcHRHcm91cCB9ID0gU2VsZWN0O1xyXG5cclxuaW50ZXJmYWNlIElTZWxlY3RQcm9wcyBleHRlbmRzIFNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdFN0eWxlPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOU0NTZWxlY3QgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PElTZWxlY3RQcm9wcz4ge1xyXG4gIHN0YXRpYyBPcHRpb24gPSBPcHRpb247XHJcbiAgc3RhdGljIE9wdEdyb3VwID0gT3B0R3JvdXA7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSB9ID0gcHJldlN0YXRlO1xyXG4gICAgY29uc3QgeyBkYXRhLCBvcHRpb25zLCBzdG9yZSB9ID0gbmV4dFByb3BzO1xyXG4gICAgaWYgKGRhdGEgfHwgb3B0aW9ucykge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gZGF0YSA/IGRhdGEgOiBvcHRpb25zO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoZGF0YVNvdXJjZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGRhdGFTb3VyY2U6IG5ld0RhdGEsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBjb25zdCB7IGRhdGEsIHN0b3JlID0ge30sIGNoaWxkcmVuLCBvcHRpb25zIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgdXJsLFxyXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgdmlld25hbWUsXHJcbiAgICAgIGNhY2hlZCxcclxuICAgICAgY2FjaGVLZXksXHJcbiAgICAgIC4uLnN0b3Jlc1xyXG4gICAgfSA9IHN0b3JlO1xyXG4gICAgbGV0IHsgdmlld1VybCB9ID0gY29uZmlnKCk7XHJcbiAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgIGlmICghKGRhdGEgfHwgdmlld25hbWUgfHwgdXJsIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs44CBdmlld25hbWXjgIFkYXRh44CBb3B0aW9uc+S4jeiDvemDveS4uuepuu+8gVwiKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgICBsZXQgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICgodmlld25hbWUgfHwgdXJsKSAmJiBkYXRhID09IG51bGwgJiYgb3B0aW9ucyA9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVkID0gY2FjaGVkO1xyXG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XHJcbiAgICAgICAgaWYgKHZpZXduYW1lKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZCAhPT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgaXNDYWNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpc0NhY2hlS2V5ID0gaXNDYWNoZUtleSA/IGlzQ2FjaGVLZXkgOiB2aWV3bmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsIHx8IHZpZXdVcmwgKyB2aWV3bmFtZSwgLy/or7vlrZflhbjvvIx1cmzlm7rlrprvvIx2aWV3bmFtZVxyXG4gICAgICAgICAgICBjYWNoZWQ6IGlzQ2FjaGVkLFxyXG4gICAgICAgICAgICBjYWNoZUtleTogaXNDYWNoZUtleSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi5zdG9yZVByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBTdG9yZShzdG9yZVByb3BzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5kYXRhU291cmNlO1xyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBkYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpIHtcclxuICAgIGxldCB7IGxhYmVsRmllbGQgPSBcImxhYmVsXCIsIHZhbHVlRmllbGQgPSBcInZhbHVlXCIsIHN0b3JlID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICByZXR1cm4gb3B0aW9uRGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgbGV0IGtleSA9IGl0ZW0uaWRcclxuICAgICAgICA/IGl0ZW0uaWQgIT09IFwidW5kZWZpbmVkXCJcclxuICAgICAgICAgID8gaXRlbS5pZFxyXG4gICAgICAgICAgOiBpdGVtW3ZhbHVlRmllbGRdXHJcbiAgICAgICAgOiBpdGVtW3ZhbHVlRmllbGRdO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxPcHRpb25cclxuICAgICAgICAgIGtleT17a2V5fVxyXG4gICAgICAgICAgdmFsdWU9e2l0ZW1bdmFsdWVGaWVsZF19XHJcbiAgICAgICAgICBsYWJlbD17aXRlbVtsYWJlbEZpZWxkXX1cclxuICAgICAgICAgIGRpc2FibGVkPXtpdGVtLmRpc2FibGVkID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtpdGVtW2xhYmVsRmllbGRdfVxyXG4gICAgICAgIDwvT3B0aW9uPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlckNoaWxkcmVuKCkge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChjaGlsZHJlbikge1xyXG4gICAgICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IG9wdEdyb3VwRGF0YSA9IHt9LFxyXG4gICAgICAgIG9wdGlvbkRhdGEgPSBbXTtcclxuICAgICAgZGF0YVNvdXJjZS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgbGV0IGxhYmVsID0gaXRlbS5ncm91cE5hbWU7XHJcbiAgICAgICAgaWYgKGxhYmVsKSB7XHJcbiAgICAgICAgICBpZiAoIW9wdEdyb3VwRGF0YVtsYWJlbF0pIG9wdEdyb3VwRGF0YVtsYWJlbF0gPSBbXTtcclxuICAgICAgICAgIG9wdEdyb3VwRGF0YVtsYWJlbF0ucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0aW9uRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBvcHRpb24gPSB0aGlzLnJlbmRlck9wdGlvbihvcHRpb25EYXRhKTtcclxuICAgICAgbGV0IG9wdEdyb3VwID0gT2JqZWN0LmtleXMob3B0R3JvdXBEYXRhKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8T3B0R3JvdXAga2V5PXtrZXl9IGxhYmVsPXtrZXl9PlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJPcHRpb24ob3B0R3JvdXBEYXRhW2tleV0pfVxyXG4gICAgICAgICAgPC9PcHRHcm91cD5cclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAge29wdGlvbn1cclxuICAgICAgICAgIHtvcHRHcm91cH1cclxuICAgICAgICA8Lz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgICBpZiAob25DaGFuZ2UpIHtcclxuICAgICAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBzdG9yZSxcclxuICAgICAgZGF0YSxcclxuICAgICAgb25DaGFuZ2UsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICAgIGRlZmF1bHRTdHlsZSA9IHRydWUsXHJcbiAgICAgIC4uLnBhcmFtc1xyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBwcm9wcyA9IHtcclxuICAgICAgc2hvd1NlYXJjaDogdHJ1ZSxcclxuICAgICAgb3B0aW9uRmlsdGVyUHJvcDogXCJsYWJlbFwiLFxyXG4gICAgICBwbGFjZWhvbGRlcjogXCLor7fpgInmi6lcIixcclxuICAgICAgYWxsb3dDbGVhcjogdHJ1ZSxcclxuICAgIH07XHJcbiAgICBpZiAoZGVmYXVsdFN0eWxlKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcIm5zY19zZWxlY3RcIl19PlxyXG4gICAgICAgICAgPFNlbGVjdCB7Li4ucHJvcHN9IHsuLi5wYXJhbXN9IG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyl9PlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJDaGlsZHJlbigpfVxyXG4gICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxTZWxlY3Qgey4uLnByb3BzfSB7Li4ucGFyYW1zfSBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfT5cclxuICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,21 +1,21 @@
1
- .nsc_select {
2
- :global {
3
- .ant-select {
4
- width: 100% !important;
5
- }
6
- .ant-select-selection-item {
7
- line-height: 40px !important;
8
- }
9
- .ant-select:not(.ant-select-customize-input) .ant-select-selector {
10
- line-height: 40px !important;
11
- border-radius: 6px;
12
- }
13
- .ant-select-selection-placeholder {
14
- line-height: 40px !important;
15
- }
16
- .ant-select-selector {
17
- height: 40px !important;
18
- width: 100% !important;
19
- }
20
- }
21
- }
1
+ .nsc_select {
2
+ :global {
3
+ .ant-select {
4
+ width: 100% !important;
5
+ }
6
+ .ant-select-selection-item {
7
+ line-height: 40px !important;
8
+ }
9
+ .ant-select:not(.ant-select-customize-input) .ant-select-selector {
10
+ line-height: 40px !important;
11
+ border-radius: 6px;
12
+ }
13
+ .ant-select-selection-placeholder {
14
+ line-height: 40px !important;
15
+ }
16
+ .ant-select-selector {
17
+ height: 40px !important;
18
+ width: 100% !important;
19
+ }
20
+ }
21
+ }
@@ -1,87 +1,87 @@
1
- import { StoreProps } from "@bj-nsc/msn";
2
- import { TableProps } from "antd";
3
- import { TablePaginationConfig } from "antd/lib/table";
4
- import * as React from "react";
5
- import { DndContextType, IBodyRowProps } from "../common/BodyRow";
6
- interface IDragParams {
7
- id: string | number;
8
- ids: Array<string | number>;
9
- parentId: string | number;
10
- }
11
- export declare type StoreType = "PageStore" | "TreeStore" | "BaseStore";
12
- interface NSCTablePagination extends TablePaginationConfig {
13
- totalKey?: string;
14
- pageSizeKey?: string;
15
- currentKey?: string;
16
- }
17
- interface NSCTableProps extends TableProps<any> {
18
- store?: StoreProps;
19
- showTotal?: boolean;
20
- disableColumns?: string[];
21
- dragable?: boolean;
22
- filterColumn?: boolean;
23
- moveRow?: (params: IDragParams) => void;
24
- dragUrl?: string;
25
- pagination?: false | NSCTablePagination;
26
- autoPagination?: boolean;
27
- autoSort?: boolean;
28
- autoOnChange?: boolean;
29
- }
30
- export declare type INSCTableProps = typeof NSCTable.defaultProps & NSCTableProps;
31
- export { DndContextType, IBodyRowProps };
32
- declare class NSCTable extends React.Component<INSCTableProps> {
33
- static defaultProps: {
34
- disableColumns: any[];
35
- dragable: boolean;
36
- showTotal: boolean;
37
- filterColumn: boolean;
38
- dragUrl: string;
39
- autoPagination: boolean;
40
- autoSort: boolean;
41
- autoOnChange: boolean;
42
- };
43
- store: any;
44
- thIconRef: React.RefObject<HTMLDivElement>;
45
- state: {
46
- dataSource: any[];
47
- columns: any[];
48
- loading: boolean;
49
- pagination: {};
50
- activeIndex: number;
51
- searchText: any;
52
- fieldOption: any;
53
- searchColor: any;
54
- };
55
- listeners: {
56
- onBeforeLoad: any;
57
- load: any;
58
- };
59
- constructor(props: any);
60
- componentDidMount(): void;
61
- componentDidUpdate(prevProps: any): void;
62
- /**
63
- * 清除选中颜色
64
- */
65
- clearSelectColor(): this;
66
- getPaginationByStore(): any;
67
- onChange(pagination: any, filters: any, sorter: any, extra: any): void;
68
- getStore(): any;
69
- /**
70
- * 获取数据模型对象
71
- */
72
- getModel(): any;
73
- /**
74
- * 菜单搜索过滤显示
75
- * @param {String} val
76
- */
77
- handleSearch(val: any, fieldOption: any, searchColor: any): void;
78
- /**
79
- * 模块列表移动排序
80
- */
81
- moveRow: (dragIndex: any, hoverIndex: any, drag: any, target: any) => void;
82
- filterColumn(checkedValue: any): void;
83
- getColumns(): any[];
84
- render(): JSX.Element;
85
- }
86
- declare const _default: React.ForwardRefExoticComponent<Pick<any, string | number | symbol> & React.RefAttributes<any>>;
87
- export default _default;
1
+ import { StoreProps } from "@bj-nsc/msn";
2
+ import { TableProps } from "antd";
3
+ import { TablePaginationConfig } from "antd/lib/table";
4
+ import * as React from "react";
5
+ import { DndContextType, IBodyRowProps } from "../common/BodyRow";
6
+ interface IDragParams {
7
+ id: string | number;
8
+ ids: Array<string | number>;
9
+ parentId: string | number;
10
+ }
11
+ export declare type StoreType = "PageStore" | "TreeStore" | "BaseStore";
12
+ interface NSCTablePagination extends TablePaginationConfig {
13
+ totalKey?: string;
14
+ pageSizeKey?: string;
15
+ currentKey?: string;
16
+ }
17
+ interface NSCTableProps extends TableProps<any> {
18
+ store?: StoreProps;
19
+ showTotal?: boolean;
20
+ disableColumns?: string[];
21
+ dragable?: boolean;
22
+ filterColumn?: boolean;
23
+ moveRow?: (params: IDragParams) => void;
24
+ dragUrl?: string;
25
+ pagination?: false | NSCTablePagination;
26
+ autoPagination?: boolean;
27
+ autoSort?: boolean;
28
+ autoOnChange?: boolean;
29
+ }
30
+ export declare type INSCTableProps = typeof NSCTable.defaultProps & NSCTableProps;
31
+ export { DndContextType, IBodyRowProps };
32
+ declare class NSCTable extends React.Component<INSCTableProps> {
33
+ static defaultProps: {
34
+ disableColumns: any[];
35
+ dragable: boolean;
36
+ showTotal: boolean;
37
+ filterColumn: boolean;
38
+ dragUrl: string;
39
+ autoPagination: boolean;
40
+ autoSort: boolean;
41
+ autoOnChange: boolean;
42
+ };
43
+ store: any;
44
+ thIconRef: React.RefObject<HTMLDivElement>;
45
+ state: {
46
+ dataSource: any[];
47
+ columns: any[];
48
+ loading: boolean;
49
+ pagination: {};
50
+ activeIndex: number;
51
+ searchText: any;
52
+ fieldOption: any;
53
+ searchColor: any;
54
+ };
55
+ listeners: {
56
+ onBeforeLoad: any;
57
+ load: any;
58
+ };
59
+ constructor(props: any);
60
+ componentDidMount(): void;
61
+ componentDidUpdate(prevProps: any): void;
62
+ /**
63
+ * 清除选中颜色
64
+ */
65
+ clearSelectColor(): this;
66
+ getPaginationByStore(): any;
67
+ onChange(pagination: any, filters: any, sorter: any, extra: any): void;
68
+ getStore(): any;
69
+ /**
70
+ * 获取数据模型对象
71
+ */
72
+ getModel(): any;
73
+ /**
74
+ * 菜单搜索过滤显示
75
+ * @param {String} val
76
+ */
77
+ handleSearch(val: any, fieldOption: any, searchColor: any): void;
78
+ /**
79
+ * 模块列表移动排序
80
+ */
81
+ moveRow: (dragIndex: any, hoverIndex: any, drag: any, target: any) => void;
82
+ filterColumn(checkedValue: any): void;
83
+ getColumns(): any[];
84
+ render(): JSX.Element;
85
+ }
86
+ declare const _default: React.ForwardRefExoticComponent<Pick<any, string | number | symbol> & React.RefAttributes<any>>;
87
+ export default _default;
@@ -62,13 +62,13 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
62
62
 
63
63
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
64
64
 
65
- /*
66
- * @Descripttion:
67
- * @version:
68
- * @Author: rxzhu
69
- * @Date: 2021-03-23 08:46:20
70
- * @LastEditors: rxzhu
71
- * @LastEditTime: 2021-03-23 10:30:42
65
+ /*
66
+ * @Descripttion:
67
+ * @version:
68
+ * @Author: rxzhu
69
+ * @Date: 2021-03-23 08:46:20
70
+ * @LastEditors: rxzhu
71
+ * @LastEditTime: 2021-03-23 10:30:42
72
72
  */
73
73
  import { AppstoreOutlined } from "@ant-design/icons";
74
74
  import { isEmptyObj } from "@bj-nsc/functions";
@@ -228,8 +228,8 @@ var NSCTable = /*#__PURE__*/function (_React$Component) {
228
228
  });
229
229
  }
230
230
  }
231
- /**
232
- * 清除选中颜色
231
+ /**
232
+ * 清除选中颜色
233
233
  */
234
234
 
235
235
  }, {
@@ -304,8 +304,8 @@ var NSCTable = /*#__PURE__*/function (_React$Component) {
304
304
  value: function getStore() {
305
305
  return this.store;
306
306
  }
307
- /**
308
- * 获取数据模型对象
307
+ /**
308
+ * 获取数据模型对象
309
309
  */
310
310
 
311
311
  }, {
@@ -313,9 +313,9 @@ var NSCTable = /*#__PURE__*/function (_React$Component) {
313
313
  value: function getModel() {
314
314
  return this.store.getModel();
315
315
  }
316
- /**
317
- * 菜单搜索过滤显示
318
- * @param {String} val
316
+ /**
317
+ * 菜单搜索过滤显示
318
+ * @param {String} val
319
319
  */
320
320
 
321
321
  }, {
@@ -327,8 +327,8 @@ var NSCTable = /*#__PURE__*/function (_React$Component) {
327
327
  searchColor: searchColor
328
328
  });
329
329
  }
330
- /**
331
- * 模块列表移动排序
330
+ /**
331
+ * 模块列表移动排序
332
332
  */
333
333
 
334
334
  }, {
@@ -544,4 +544,4 @@ _defineProperty(NSCTable, "defaultProps", {
544
544
  });
545
545
 
546
546
  export default withZhLocale(NSCTable);
547
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3RhYmxlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJBcHBzdG9yZU91dGxpbmVkIiwiaXNFbXB0eU9iaiIsIlN0b3JlIiwiUGFnZVN0b3JlIiwidXRpbHMiLCJSZWFjdCIsIkRuZFByb3ZpZGVyIiwiQm9keVJvdyIsIkRuZENvbnRleHRUeXBlIiwiSUJvZHlSb3dQcm9wcyIsInRyZWVVdGlscyIsInN0eWxlcyIsIkJvZHlSb3dDb21wb25lbnQiLCJIVE1MNUJhY2tlbmQiLCJ3aXRoWmhMb2NhbGUiLCJOb0RhdGEiLCJOU0NUYWJsZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiZGF0YVNvdXJjZSIsImNvbHVtbnMiLCJsb2FkaW5nIiwicGFnaW5hdGlvbiIsImFjdGl2ZUluZGV4Iiwic2VhcmNoVGV4dCIsImZpZWxkT3B0aW9uIiwic2VhcmNoQ29sb3IiLCJvbkJlZm9yZUxvYWQiLCJsb2FkIiwiZHJhZ0luZGV4IiwiaG92ZXJJbmRleCIsImRyYWciLCJ0YXJnZXQiLCJfdGhpcyIsImRyYWdOb2RlIiwicmVjb3JkIiwidGFyZ2V0Tm9kZSIsIm1vdmVBcnJheSIsImlkcyIsInBhcmVudE5vZGUiLCJnZXRDaGlsZE5vZGVJZHMiLCJwYXJhbXMiLCJpZCIsInBhcmVudElkIiwiYXR0cmlidXRlIiwibW92ZVJvdyIsInN0b3JlIiwicmVsb2FkIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUHJvcHMiLCJyZXN0U3RvcmUiLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvcHRpb25zIiwic2V0U3RhdGUiLCJjYWxsYmFjayIsImRhdGFDaGFuZ2VkIiwiZGF0YSIsIm1vZGVsRGF0YSIsInBhZ2luZyIsImdldFBhZ2luYXRpb24iLCJvbkVycm9yTG9hZCIsImVyciIsInJlc3BvbnNlIiwiYXV0b0xvYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJzZXREYXRhIiwicHJldlByb3BzIiwiZmlsdGVycyIsInNvcnRlciIsImV4dHJhIiwiYXV0b09uQ2hhbmdlIiwiYXV0b1NvcnQiLCJhdXRvUGFnaW5hdGlvbiIsIm9uQ2hhbmdlIiwiaGFuZGxlUGFnaW5hdGlvbiIsImdldFBhZ2luYXRpb25CeVN0b3JlIiwicCIsImN1cnJlbnRLZXkiLCJjdXJyZW50IiwicGFnZVNpemVLZXkiLCJwYWdlU2l6ZSIsIm9yZGVyIiwiYXNjcyIsImNvbHVtbiIsInNvcnRGaWVsZCIsImZpZWxkIiwiZGVzY3MiLCJvbkNoYW5nZUZuIiwiZ2V0TW9kZWwiLCJ2YWwiLCJjaGVja2VkVmFsdWUiLCJmaWx0ZXJDb2x1bW5zIiwibWFwIiwiY29sIiwibmV3Q29sIiwiaW5jbHVkZXMiLCJkYXRhSW5kZXgiLCJpbml0U2hvdyIsInN0YXRlIiwiZGlzYWJsZUNvbHVtbnMiLCJjb2xMaXN0cyIsImRlZmF1bHRTaG93Q29scyIsImZpbHRlciIsImNvbHMiLCJkZWZhdWx0SGlkZUNvbHMiLCJjb250ZW50IiwiZmlsdGVyQ29sdW1uIiwiYmluZCIsImxhYmVsIiwidGl0bGUiLCJ2YWx1ZSIsImVsbGlwc2lzIiwicmVuZGVyIiwic2hvd1RpdGxlIiwidGV4dCIsIkljb25BY3Rpb24iLCJ0aEljb25SZWYiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwia2V5Iiwid2lkdGgiLCJhbGlnbiIsInB1c2giLCJvbWl0Iiwicm93S2V5IiwiY2xpY2tDaGFuZ2VDb2xvciIsInBvc2l0aW9uIiwic2hvd1NpemVDaGFuZ2VyIiwic2hvd1F1aWNrSnVtcGVyIiwic2hvd1RvdGFsIiwidG90YWwiLCJmcm9tIiwidG8iLCJvblJvd0ZuIiwib25Sb3ciLCJpbmRleCIsImN1c3RvbSIsIm9uQ2xpY2tGbiIsIm9uQ2xpY2siLCJldmVudCIsInJvd0NsYXNzTmFtZSIsImNsaWNrUm93U3R5bGUiLCJuZXdEYXRhU291cmNlIiwiZ2V0U2VhcmNoTWVudURhdGFzIiwidHJlZURhdGFzIiwiZXhwYW5kZWRSb3dLZXlzIiwib3BlbktleXMiLCJkcmFnYWJsZSIsImRyYWdhYmxlUHJvcHMiLCJjb21wb25lbnRzIiwiRGVmYXVsdFRhYmxlIiwiZ2V0Q29sdW1ucyIsImVtcHR5VGV4dCIsIkNvbXBvbmVudCIsImRyYWdVcmwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsZ0JBQVQsUUFBaUMsbUJBQWpDO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixtQkFBM0I7QUFDQSxPQUFPQyxLQUFQLElBQWdCQyxTQUFoQixRQUE2QyxhQUE3QztBQUNBLFNBQVNDLEtBQVQsUUFBc0IsdUJBQXRCO0FBVUEsT0FBTyxLQUFLQyxLQUFaLE1BQXVCLE9BQXZCO0FBQ0EsU0FBU0MsV0FBVCxRQUE0QixXQUE1QjtBQUNBLE9BQU9DLE9BQVAsSUFBa0JDLGNBQWxCLEVBQWtDQyxhQUFsQyxRQUF1RCxtQkFBdkQ7QUFDQSxPQUFPQyxTQUFQLE1BQXNCLGNBQXRCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLElBQVFDLGdCQUFSLEdBQTJDTCxPQUEzQyxDQUFRSyxnQkFBUjtBQUFBLElBQTBCQyxZQUExQixHQUEyQ04sT0FBM0MsQ0FBMEJNLFlBQTFCO0FBQ0EsT0FBT0MsWUFBUCxNQUF5Qix3QkFBekI7QUFDQSxTQUFTQyxNQUFULFFBQXVCLElBQXZCO0FBZ0NBLFNBQVNQLGNBQVQsRUFBeUJDLGFBQXpCOztJQUNNTyxROzs7OztBQWdDSixvQkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBOztBQUNqQiwrQkFBTUEsS0FBTjs7QUFEaUIsNkRBcEJYLEVBb0JXOztBQUFBLDhFQW5CUFosS0FBSyxDQUFDYSxTQUFOLEVBbUJPOztBQUFBLDZEQWpCWDtBQUNOQyxNQUFBQSxVQUFVLEVBQUUsRUFETjtBQUVOQyxNQUFBQSxPQUFPLEVBQUUsRUFGSDtBQUdOQyxNQUFBQSxPQUFPLEVBQUUsS0FISDtBQUlOQyxNQUFBQSxVQUFVLEVBQUUsRUFKTjtB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ekJ2RyxZQUFBQSxNQUFNLEVBQU5BLE1BRnlCO0FBR3pCVSxZQUFBQSxPQUFPLEVBQUUsTUFBSSxDQUFDQTtBQUhXLFdBQXBCO0FBQUE7QUFGVCxPQURKLEdBU0ksRUFWTjtBQVdBLFVBQU00RyxZQUFZLGdCQUNoQjtBQUNFLFFBQUEsa0JBQWtCLEVBQUMsWUFEckI7QUFFRSxRQUFBLFVBQVUsRUFBRVIsYUFGZDtBQUdFLFFBQUEsT0FBTyxFQUFFLEtBQUtTLFVBQUwsRUFIWDtBQUlFLFFBQUEsT0FBTyxFQUFFckksT0FKWDtBQUtFLFFBQUEsU0FBUyxFQUFFVixNQUFNLENBQUMsV0FBRCxDQUxuQjtBQU1FLFFBQUEsTUFBTSxFQUFFO0FBQUVnSixVQUFBQSxTQUFTLGVBQUUsb0JBQUMsTUFBRDtBQUFiO0FBTlYsU0FPTTFJLEtBUE4sRUFRTXNJLGFBUk4sRUFERjtBQWFBLGFBQU9ELFFBQVEsS0FBSyxJQUFiLGdCQUNMLG9CQUFDLFdBQUQ7QUFBYSxRQUFBLE9BQU8sRUFBRXpJO0FBQXRCLFNBQXFDNEksWUFBckMsQ0FESyxHQUdMQSxZQUhGO0FBS0Q7Ozs7RUE1WW9CcEosS0FBSyxDQUFDdUosUzs7Z0JBQXZCNUksUSxrQkFDa0I7QUFDcEJzRixFQUFBQSxjQUFjLEVBQUUsRUFESTtBQUVwQmdELEVBQUFBLFFBQVEsRUFBRSxLQUZVO0FBR3BCbEIsRUFBQUEsU0FBUyxFQUFFLElBSFM7QUFJcEJ2QixFQUFBQSxZQUFZLEVBQUUsSUFKTTtBQUtwQmdELEVBQUFBLE9BQU8sRUFBRSxFQUxXO0FBTXBCbEYsRUFBQUEsY0FBYyxFQUFFLElBTkk7QUFPcEJELEVBQUFBLFFBQVEsRUFBRSxJQVBVO0FBUXBCRCxFQUFBQSxZQUFZLEVBQUU7QUFSTSxDOztBQThZeEIsZUFBZTNELFlBQVksQ0FBQ0UsUUFBRCxDQUEzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBARGVzY3JpcHR0aW9uOlxuICogQHZlcnNpb246XG4gKiBAQXV0aG9yOiByeHpodVxuICogQERhdGU6IDIwMjEtMDMtMjMgMDg6NDY6MjBcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcbiAqIEBMYXN0RWRpdFRpbWU6IDIwMjEtMDMtMjMgMTA6MzA6NDJcbiAqL1xuaW1wb3J0IHsgQXBwc3RvcmVPdXRsaW5lZCB9IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xuaW1wb3J0IHsgaXNFbXB0eU9iaiB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xuaW1wb3J0IFN0b3JlLCB7IFBhZ2VTdG9yZSwgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XG5pbXBvcnQge1xuICBDaGVja2JveCxcbiAgQ2hlY2tib3hPcHRpb25UeXBlLFxuICBQb3BvdmVyLFxuICBUYWJsZSxcbiAgVGFibGVQcm9wcyxcbiAgVG9vbHRpcCxcbn0gZnJvbSBcImFudGRcIjtcbmltcG9ydCB7IENvbHVtblR5cGUsIFRhYmxlUGFnaW5hdGlvbkNvbmZpZyB9IGZyb20gXCJhbnRkL2xpYi90YWJsZVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBEbmRQcm92aWRlciB9IGZyb20gXCJyZWFjdC1kbmRcIjtcbmltcG9ydCBCb2R5Um93LCB7IERuZENvbnRleHRUeXBlLCBJQm9keVJvd1Byb3BzIH0gZnJvbSBcIi4uL2NvbW1vbi9Cb2R5Um93XCI7XG5pbXBvcnQgdHJlZVV0aWxzIGZyb20gXCIuLi90cmVlVXRpbHNcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xuY29uc3QgeyBCb2R5Um93Q29tcG9uZW50LCBIVE1MNUJhY2tlbmQgfSA9IEJvZHlSb3c7XG5pbXBvcnQgd2l0aFpoTG9jYWxlIGZyb20gXCIuLi9jb21tb24vd2l0aFpoTG9jYWxlXCI7XG5pbXBvcnQgeyBOb0RhdGEgfSBmcm9tIFwiLi5cIjtcblxuaW50ZXJmYWNlIElEcmFnUGFyYW1zIHtcbiAgaWQ6IHN0cmluZyB8IG51bWJlcjtcbiAgaWRzOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xuICBwYXJlbnRJZDogc3RyaW5nIHwgbnVtYmVyO1xufVxuLy8gaW50ZXJmYWNlIFN0b3JlUHJvcHMge31cblxuZXhwb3J0IHR5cGUgU3RvcmVUeXBlID0gXCJQYWdlU3RvcmVcIiB8IFwiVHJlZVN0b3JlXCIgfCBcIkJhc2VTdG9yZVwiO1xuXG5pbnRlcmZhY2UgTlNDVGFibGVQYWdpbmF0aW9uIGV4dGVuZHMgVGFibGVQYWdpbmF0aW9uQ29uZmlnIHtcbiAgdG90YWxLZXk/OiBzdHJpbmc7XG4gIHBhZ2VTaXplS2V5Pzogc3RyaW5nO1xuICBjdXJyZW50S2V5Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTlNDVGFibGVQcm9wcyBleHRlbmRzIFRhYmxlUHJvcHM8YW55PiB7XG4gIHN0b3JlPzogU3RvcmVQcm9wcztcbiAgc2hvd1RvdGFsPzogYm9vbGVhbjsgLy8g5piv5ZCm5pi+56S65oC75p2h5pWw5L+h5oGv77yM6buY6K6kdHJ1ZVxuICBkaXNhYmxlQ29sdW1ucz86IHN0cmluZ1tdOyAvLyDkuI3lj6/pmpDol4/lv4XpobvmmL7npLrnmoTliJdcbiAgZHJhZ2FibGU/OiBib29sZWFuOyAvLyDmmK/lkKblj6/mi5bliqgsIOm7mOiupGZhbHNlXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8vIOaYr+WQpuaUr+aMgei/h+a7pOaYvuekuuihqOagvOWIlywg6buY6K6kdHJ1ZVxuICBtb3ZlUm93PzogKHBhcmFtczogSURyYWdQYXJhbXMpID0+IHZvaWQ7IC8vIOaLluaLveWujOaIkOWQjueahOWbnuiwg1xuICBkcmFnVXJsPzogc3RyaW5nOyAvLyDkv53lrZjmi5bmi73mjpLluo/nmoTmjqXlj6NcbiAgcGFnaW5hdGlvbj86IGZhbHNlIHwgTlNDVGFibGVQYWdpbmF0aW9uO1xuICBhdXRvUGFnaW5hdGlvbj86IGJvb2xlYW47IC8vIOe7hOS7tuaYr+WQpuiHquWKqOWkhOeQhuWIhumhtVxuICBhdXRvU29ydD86IGJvb2xlYW47IC8v57uE5Lu25piv5ZCm6Ieq5Yqo5aSE55CG5o6S5bqPXG4gIGF1dG9PbkNoYW5nZT86IGJvb2xlYW47IC8vIOe7hOS7tuaYr+WQpuiHquWKqG9uQ2hhbmdlLCBmYWxzZeWImeS4jeWBmuS7u+S9leWkhOeQhuWFqOmDqOS6pOe7meiwg+eUqOaWuVxufVxuXG5leHBvcnQgdHlwZSBJTlNDVGFibGVQcm9wcyA9IHR5cGVvZiBOU0NUYWJsZS5kZWZhdWx0UHJvcHMgJiBOU0NUYWJsZVByb3BzO1xuZXhwb3J0IHsgRG5kQ29udGV4dFR5cGUsIElCb2R5Um93UHJvcHMgfTtcbmNsYXNzIE5TQ1RhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElOU0NUYWJsZVByb3BzPiB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZGlzYWJsZUNvbHVtbnM6IFtdLFxuICAgIGRyYWdhYmxlOiBmYWxzZSxcbiAgICBzaG93VG90YWw6IHRydWUsXG4gICAgZmlsdGVyQ29sdW1uOiB0cnVlLFxuICAgIGRyYWdVcmw6IFwiXCIsXG4gICAgYXV0b1BhZ2luYXRpb246IHRydWUsXG4gICAgYXV0b1NvcnQ6IHRydWUsXG4gICAgYXV0b09uQ2hhbmdlOiB0cnVlLFxuICB9O1xuXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcbiAgdGhJY29uUmVmID0gUmVhY3QuY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuXG4gIHN0YXRlID0ge1xuICAgIGRhdGFTb3VyY2U6IFtdLFxuICAgIGNvbHVtbnM6IFtdLFxuICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgIHBhZ2luYXRpb246IHt9LFxuICAgIGFjdGl2ZUluZGV4OiAtMSxcbiAgICAvL+aQnOe0ouaWh+acrFxuICAgIHNlYXJjaFRleHQ6IG51bGwsXG4gICAgZmllbGRPcHRpb246IG51bGwsXG4gICAgc2VhcmNoQ29sb3I6IG51bGwsXG4gIH07XG5cbiAgbGlzdGVuZXJzID0ge1xuICAgIG9uQmVmb3JlTG9hZDogbnVsbCxcbiAgICBsb2FkOiBudWxsLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIGlmIChwcm9wcy5zdG9yZSBpbnN0YW5jZW9mIFN0b3JlKSB7XG4gICAgICB0aGlzLnN0b3JlID0gcHJvcHMuc3RvcmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHsgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQcm9wcyA9IHt9LCAuLi5yZXN0U3RvcmUgfSA9XG4gICAgICAgIHByb3BzLnN0b3JlIHx8IHt9O1xuICAgICAgY29uc3Qgc3RvcmVQcm9wcyA9IHtcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBsaXN0ZW5lcnM6IHtcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IChzdG9yZSwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5vbkJlZm9yZUxvYWQsIHRoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSA9PiB7XG4gICAgICAgICAgICBsZXQgcGFnaW5nID0gISh0aGlzLnByb3BzLnBhZ2luYXRpb24gPT09IGZhbHNlKTtcblxuICAgICAgICAgICAgaWYgKHBhZ2luZyAmJiAhdGhpcy5wcm9wcy5kYXRhU291cmNlKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2U6IG1vZGVsRGF0YSxcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uOiBzdG9yZS5nZXRQYWdpbmF0aW9uKCksXG4gICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWN0aXZlSW5kZXg6IC0xLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEsIGxvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5kYXRhQ2hhbmdlZCwgdGhpcywgW1xuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICBtb2RlbERhdGEsXG4gICAgICAgICAgICAgIHN0b3JlLFxuICAgICAgICAgICAgICBwYWdpbmcsXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvYWQ6IChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSA9PiB7XG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5sb2FkLCB0aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgb25FcnJvckxvYWQ6IChlcnIsIHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5vbkVycm9yTG9hZCwgdGhpcywgW2VyciwgcmVzcG9uc2VdKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiByZXN0U3RvcmUuZGF0YVxuICAgICAgICAgID8gcmVzdFN0b3JlLmRhdGFcbiAgICAgICAgICA6IHByb3BzLmRhdGFTb3VyY2VcbiAgICAgICAgICA/IHByb3BzLmRhdGFTb3VyY2VcbiAgICAgICAgICA6IG51bGwsXG4gICAgICAgIC4uLnJlc3RTdG9yZSxcbiAgICAgICAgYXV0b0xvYWQ6IHJlc3RTdG9yZS5hdXRvTG9hZCA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWUsXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFBhZ2VTdG9yZShcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVQcm9wcywge1xuICAgICAgICAgIHBhZ2luYXRpb246IHRoaXMucHJvcHMucGFnaW5hdGlvbixcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHVtbnM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5wcm9wcy5zdG9yZTtcbiAgICBpZiAoc3RvcmUgJiYgc3RvcmUuZGF0YSkge1xuICAgICAgdGhpcy5zdG9yZS5zZXREYXRhKHN0b3JlLmRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5jb2x1bW5zICE9PSBwcmV2UHJvcHMuY29sdW1ucykge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHVtbnM6IHRoaXMucHJvcHMuY29sdW1ucyB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog5riF6Zmk6YCJ5Lit6aKc6ImyXG4gICAqL1xuICBjbGVhclNlbGVjdENvbG9yKCkge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBhY3RpdmVJbmRleDogLTEgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRQYWdpbmF0aW9uQnlTdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRQYWdpbmF0aW9uKCk7XG4gIH1cblxuICBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XG4gICAgY29uc3QgeyBhdXRvT25DaGFuZ2UsIGF1dG9Tb3J0LCBhdXRvUGFnaW5hdGlvbiwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKGF1dG9PbkNoYW5nZSA9PT0gZmFsc2UpIHtcbiAgICAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZVBhZ2luYXRpb24gPSAoKSA9PiB7XG4gICAgICBsZXQgcGFyYW1zID0ge30gYXMge1xuICAgICAgICBzaXplPzogc3RyaW5nO1xuICAgICAgICBwYWdlU2l6ZT86IHN0cmluZztcbiAgICAgICAgYXNjcz86IHN0cmluZztcbiAgICAgICAgZGVzY3M/OiBzdHJpbmc7XG4gICAgICAgIFtwcm9wTmFtZTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcGFnaW5nID0gdGhpcy5nZXRQYWdpbmF0aW9uQnlTdG9yZSgpIHx8IHt9O1xuXG4gICAgICBpZiAoIWlzRW1wdHlPYmoocGFnaW5hdGlvbikpIHtcbiAgICAgICAgY29uc3QgcCA9IHtcbiAgICAgICAgICBbcGFnaW5nLmN1cnJlbnRLZXkgfHwgXCJjdXJyZW50XCJdOiBwYWdpbmF0aW9uLmN1cnJlbnQsXG4gICAgICAgICAgW3BhZ2luZy5wYWdlU2l6ZUtleSB8fCBcInNpemVcIl06IHBhZ2luYXRpb24ucGFnZVNpemUsXG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCBwKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGF1dG9Tb3J0ID09PSB0cnVlICYmICFpc0VtcHR5T2JqKHNvcnRlcikpIHtcbiAgICAgICAgaWYgKHNvcnRlci5vcmRlciA9PSBcImFzY2VuZFwiKSB7XG4gICAgICAgICAgcGFyYW1zLmFzY3MgPVxuICAgICAgICAgICAgc29ydGVyLmNvbHVtbi5zb3J0RmllbGQgfHwgc29ydGVyLmNvbHVtbi5maWVsZCB8fCBzb3J0ZXIuZmllbGQ7XG4gICAgICAgICAgcGFyYW1zLmRlc2NzID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc29ydGVyLm9yZGVyID09IFwiZGVzY2VuZFwiKSB7XG4gICAgICAgICAgcGFyYW1zLmRlc2NzID1cbiAgICAgICAgICAgIHNvcnRlci5jb2x1bW4uc29ydEZpZWxkIHx8IHNvcnRlci5jb2x1bW4uZmllbGQgfHwgc29ydGVyLmZpZWxkO1xuICAgICAgICAgIHBhcmFtcy5hc2NzID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG9uQ2hhbmdlRm4gPSB0aGlzLnByb3BzLm9uQ2hhbmdlO1xuICAgIC8vIOeUqOaIt+S8oOS6hm9uQ2hhbmdl5L+d55WZ55So5oi36Ieq5Li75aSE55CG6KGo5qC85Y+Y5YyW55qE5p2D5YqbXG4gICAgaWYgKG9uQ2hhbmdlRm4pIHtcbiAgICAgIHV0aWxzLmNhbGxiYWNrKG9uQ2hhbmdlRm4sIHRoaXMsIFtwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhXSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLmF1dG9QYWdpbmF0aW9uKSB7XG4gICAgICBoYW5kbGVQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmU7XG4gIH1cblxuICAvKipcbiAgICog6I635Y+W5pWw5o2u5qih5Z6L5a+56LGhXG4gICAqL1xuICBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRNb2RlbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOiPnOWNleaQnOe0oui/h+a7pOaYvuekulxuICAgKiBAcGFyYW0ge1N0cmluZ30gdmFsXG4gICAqL1xuICBoYW5kbGVTZWFyY2godmFsLCBmaWVsZE9wdGlvbiwgc2VhcmNoQ29sb3IpIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNlYXJjaFRleHQ6IHZhbCxcbiAgICAgIGZpZWxkT3B0aW9uOiBmaWVsZE9wdGlvbixcbiAgICAgIHNlYXJjaENvbG9yOiBzZWFyY2hDb2xvcixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmqKHlnZfliJfooajnp7vliqjmjpLluo9cbiAgICovXG4gIG1vdmVSb3cgPSAoZHJhZ0luZGV4LCBob3ZlckluZGV4LCBkcmFnLCB0YXJnZXQpID0+IHtcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XG4gICAgbGV0IGRyYWdOb2RlID0gZHJhZy5yZWNvcmQ7XG4gICAgbGV0IHRhcmdldE5vZGUgPSB0YXJnZXQucmVjb3JkO1xuICAgIGRyYWdOb2RlLm1vdmVBcnJheShkcmFnTm9kZSwgdGFyZ2V0Tm9kZSk7XG4gICAgbGV0IGlkcyA9IGRyYWdOb2RlLnBhcmVudE5vZGUuZ2V0Q2hpbGROb2RlSWRzKCk7XG4gICAgbGV0IHBhcmFtcyA9IHtcbiAgICAgIGlkOiBkcmFnTm9kZS5pZCxcbiAgICAgIHBhcmVudElkOiBkcmFnTm9kZS5hdHRyaWJ1dGUucGFyZW50SWQsXG4gICAgICBpZHM6IGlkcyxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMucHJvcHMubW92ZVJvdykge1xuICAgICAgdGhpcy5wcm9wcy5tb3ZlUm93KHBhcmFtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUucmVsb2FkKCk7XG4gICAgfVxuICAgIC8vIHJlcXVlc3QoXCJodHRwOi8vZGVtby5qYXZhc3ZuLmNvbS9hcGkvYWRtaW4vbWVudXMvZHJhZ1wiLCB7XG4gICAgLy8gICBtZXRob2Q6IFwiUEFUQ0hcIixcbiAgICAvLyAgIGRhdGE6IHBhcmFtcyxcbiAgICAvLyAgIGNhbGxiYWNrOiBmdW5jdGlvbiAoZGF0YSkge1xuICAgIC8vICAgICB0aGlzLnN0b3JlLnJlbG9hZCgpO1xuICAgIC8vICAgfSxcbiAgICAvLyB9KTtcbiAgfTtcblxuICBmaWx0ZXJDb2x1bW4oY2hlY2tlZFZhbHVlKSB7XG4gICAgY29uc3QgZmlsdGVyQ29sdW1ucyA9IHRoaXMucHJvcHMuY29sdW1ucy5tYXAoKGNvbDogQ29sdW1uVHlwZTx7fT4pID0+IHtcbiAgICAgIGNvbnN0IG5ld0NvbCA9IHsgLi4uY29sIH0gYXMgQ29sdW1uVHlwZTx7fT4gJiB7IGluaXRTaG93OiBib29sZWFuIH07XG4gICAgICBpZiAoY2hlY2tlZFZhbHVlLmluY2x1ZGVzKGNvbC5kYXRhSW5kZXgpKSB7XG4gICAgICAgIG5ld0NvbC5pbml0U2hvdyA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdDb2wuaW5pdFNob3cgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdDb2w7XG4gICAgfSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHVtbnM6IGZpbHRlckNvbHVtbnMgfSk7XG4gIH1cblxuICBnZXRDb2x1bW5zKCkge1xuICAgIGNvbnN0IHsgY29sdW1ucyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7IGRpc2FibGVDb2x1bW5zLCBjb2x1bW5zOiBjb2xMaXN0cyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBkZWZhdWx0U2hvd0NvbHMgPSBjb2x1bW5zLmZpbHRlcigoY29scykgPT4gY29scy5pbml0U2hvdyAhPT0gZmFsc2UpO1xuICAgIGNvbnN0IGRlZmF1bHRIaWRlQ29scyA9IGNvbHVtbnMuZmlsdGVyKChjb2xzKSA9PiBjb2xzLmluaXRTaG93ID09PSBmYWxzZSk7XG5cbiAgICBjb25zdCBjb250ZW50ID0gKFxuICAgICAgPENoZWNrYm94Lkdyb3VwXG4gICAgICAgIG9uQ2hhbmdlPXt0aGlzLmZpbHRlckNvbHVtbi5iaW5kKHRoaXMpfVxuICAgICAgICBvcHRpb25zPXtjb2xMaXN0cy5tYXAoXG4gICAgICAgICAgKGNvbDogQ29sdW1uVHlwZTx7fT4pID0+XG4gICAgICAgICAgICAoe1xuICAgICAgICAgICAgICBsYWJlbDogY29sLnRpdGxlLFxuICAgICAgICAgICAgICB2YWx1ZTogY29sLmRhdGFJbmRleCxcbiAgICAgICAgICAgIH0gYXMgQ2hlY2tib3hPcHRpb25UeXBlKVxuICAgICAgICApfVxuICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRTaG93Q29scy5tYXAoKGNvbCkgPT4gY29sLmRhdGFJbmRleCl9XG4gICAgICA+PC9DaGVja2JveC5Hcm91cD5cbiAgICApO1xuXG4gICAgY29uc3QgY29scyA9IGRlZmF1bHRTaG93Q29scy5tYXAoKGNvbCkgPT4ge1xuICAgICAgaWYgKGNvbC5lbGxpcHNpcyAmJiAhY29sLnJlbmRlcikge1xuICAgICAgICBjb2wuZWxsaXBzaXMgPSB7XG4gICAgICAgICAgc2hvd1RpdGxlOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29sLnJlbmRlciA9ICh0ZXh0KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxUb29sdGlwIHBsYWNlbWVudD1cInRvcExlZnRcIiB0aXRsZT17dGV4dH0+XG4gICAgICAgICAgICAgIHt0ZXh0fVxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gY29sO1xuICAgIH0pO1xuXG4gICAgY29uc3QgSWNvbkFjdGlvbjogQ29sdW1uVHlwZTx7fT4gPSB7XG4gICAgICB0aXRsZTogKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widGgtaWNvblwiXX0gcmVmPXt0aGlzLnRoSWNvblJlZn0+XG4gICAgICAgICAgPFBvcG92ZXJcbiAgICAgICAgICAgIHRpdGxlPVwi6YCJ5oup5pi+56S655qE5YiXXCJcbiAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21SaWdodFwiXG4gICAgICAgICAgICB0cmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICAgICAgb3ZlcmxheVN0eWxlPXt7IG1pbldpZHRoOiA0MTAsIG1heFdpZHRoOiA0NTAgfX1cbiAgICAgICAgICAgIGdldFBvcHVwQ29udGFpbmVyPXsoKSA9PiB0aGlzLnRoSWNvblJlZi5jdXJyZW50fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBcHBzdG9yZU91dGxpbmVkIHNpemU9ezI0fSBjbGFzc05hbWU9e3N0eWxlc1tcImFwcC1zdG9yZS1pY29uXCJdfSAvPlxuICAgICAgICAgIDwvUG9wb3Zlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApLFxuICAgICAgZGF0YUluZGV4OiBcImljb24tbWVudVwiLFxuICAgICAga2V5OiBcImljb24tbWVudVwiLFxuICAgICAgd2lkdGg6IDUwLFxuICAgICAgYWxpZ246IFwiY2VudGVyXCIsXG4gICAgfTtcbiAgICBpZiAodGhpcy5wcm9wcy5maWx0ZXJDb2x1bW4pIHtcbiAgICAgIGNvbHMucHVzaChJY29uQWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29scztcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgX3RoaXMgPSB0aGlzLFxuICAgICAge1xuICAgICAgICBsb2FkaW5nLFxuICAgICAgICBkYXRhU291cmNlLFxuICAgICAgICBwYWdpbmF0aW9uID0ge30sXG4gICAgICAgIHNlYXJjaFRleHQsXG4gICAgICAgIGZpZWxkT3B0aW9uLFxuICAgICAgICBzZWFyY2hDb2xvcixcbiAgICAgIH0gPSB0aGlzLnN0YXRlLFxuICAgICAgcHJvcHMgPSB1dGlscy5vbWl0KHRoaXMucHJvcHMsIFtcInN0b3JlXCIsIFwib25DaGFuZ2VcIiwgXCJjb2x1bW5zXCJdLCB7XG4gICAgICAgIHJvd0tleTogXCJpZFwiLFxuICAgICAgICBjbGlja0NoYW5nZUNvbG9yOiBmYWxzZSxcbiAgICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnBhZ2luYXRpb24gIT09IGZhbHNlKSB7XG4gICAgICBwcm9wcy5wYWdpbmF0aW9uID0ge1xuICAgICAgICBwb3NpdGlvbjogW1wiYm90dG9tUmlnaHRcIl0sXG4gICAgICAgIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSxcbiAgICAgICAgc2hvd1F1aWNrSnVtcGVyOiB0cnVlLFxuICAgICAgICAuLi5wcm9wcy5wYWdpbmF0aW9uLFxuICAgICAgICAuLi5wYWdpbmF0aW9uLFxuICAgICAgfTtcbiAgICAgIGlmIChwcm9wcy5zaG93VG90YWwgPT0gdHJ1ZSkge1xuICAgICAgICBwcm9wcy5wYWdpbmF0aW9uLnNob3dUb3RhbCA9IGZ1bmN0aW9uICh0b3RhbCwgW2Zyb20sIHRvXSkge1xuICAgICAgICAgIC8vIHJldHVybiBcIuaYvuekuiBcIiArIGZyb20gKyBcIiAtIFwiICsgdG8gKyBcIuadoe+8jOWFsSBcIiArIHRvdGFsICsgXCIg5p2hXCI7XG4gICAgICAgICAgcmV0dXJuIFwi5YWxIFwiICsgdG90YWwgKyBcIiDmnaFcIjtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9wcy5vbkNoYW5nZSA9IGZ1bmN0aW9uIChwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XG4gICAgICBfdGhpcy5vbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKTtcbiAgICB9O1xuICAgIGlmIChwcm9wcy5jbGlja0NoYW5nZUNvbG9yKSB7XG4gICAgICBjb25zdCBvblJvd0ZuID0gcHJvcHMub25Sb3c7XG4gICAgICBwcm9wcy5vblJvdyA9IGZ1bmN0aW9uIChyZWNvcmQsIGluZGV4KSB7XG4gICAgICAgIHZhciBjdXN0b20gPSBvblJvd0ZuID8gb25Sb3dGbihyZWNvcmQsIGluZGV4KSA6IHt9O1xuICAgICAgICBjb25zdCBvbkNsaWNrRm4gPSBjdXN0b20ub25DbGljaztcbiAgICAgICAgY3VzdG9tLm9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBhY3RpdmVJbmRleDogaW5kZXgsIC8v6I635Y+W54K55Ye76KGM55qE57Si5byVXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdXRpbHMuY2FsbGJhY2sob25DbGlja0ZuLCBfdGhpcywgW2V2ZW50XSk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBjdXN0b207XG4gICAgICB9O1xuICAgICAgcHJvcHMucm93Q2xhc3NOYW1lID0gZnVuY3Rpb24gKHJlY29yZCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4ID09PSBfdGhpcy5zdGF0ZS5hY3RpdmVJbmRleFxuICAgICAgICAgID8gYCR7c3R5bGVzLmNsaWNrUm93U3R5bGV9YFxuICAgICAgICAgIDogXCJcIjtcbiAgICAgIH07XG4gICAgfVxuICAgIGxldCBuZXdEYXRhU291cmNlID0gW107XG4gICAgaWYgKHNlYXJjaFRleHQpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0cmVlVXRpbHMuZ2V0U2VhcmNoTWVudURhdGFzKFxuICAgICAgICB0aGlzLFxuICAgICAgICBzZWFyY2hUZXh0LFxuICAgICAgICBmaWVsZE9wdGlvbixcbiAgICAgICAgc2VhcmNoQ29sb3JcbiAgICAgICk7XG4gICAgICBuZXdEYXRhU291cmNlID0gZGF0YS50cmVlRGF0YXM7XG4gICAgICBwcm9wcy5leHBhbmRlZFJvd0tleXMgPSBkYXRhLm9wZW5LZXlzO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdEYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB9XG4gICAgcHJvcHMuc3RvcmUgPSBwcm9wcy5zdG9yZSB8fCB7fTtcbiAgICBwcm9wcy5zdG9yZS5hdXRvTG9hZCA9IHByb3BzLnN0b3JlLmF1dG9Mb2FkID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZTtcbiAgICBjb25zdCB7IGRyYWdhYmxlIH0gPSBfdGhpcy5wcm9wcztcbiAgICBjb25zdCBkcmFnYWJsZVByb3BzID1cbiAgICAgIGRyYWdhYmxlID09PSB0cnVlXG4gICAgICAgID8ge1xuICAgICAgICAgICAgY29tcG9uZW50czogQm9keVJvd0NvbXBvbmVudCxcbiAgICAgICAgICAgIG9uUm93OiAocmVjb3JkLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgIHJlY29yZCxcbiAgICAgICAgICAgICAgbW92ZVJvdzogdGhpcy5tb3ZlUm93LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9O1xuICAgIGNvbnN0IERlZmF1bHRUYWJsZSA9IChcbiAgICAgIDxUYWJsZVxuICAgICAgICBjaGlsZHJlbkNvbHVtbk5hbWU9XCJjaGlsZE5vZGVzXCJcbiAgICAgICAgZGF0YVNvdXJjZT17bmV3RGF0YVNvdXJjZX1cbiAgICAgICAgY29sdW1ucz17dGhpcy5nZXRDb2x1bW5zKCl9XG4gICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wibnNjLXRhYmxlXCJdfVxuICAgICAgICBsb2NhbGU9e3sgZW1wdHlUZXh0OiA8Tm9EYXRhIC8+IH19XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgey4uLmRyYWdhYmxlUHJvcHN9XG4gICAgICAvPlxuICAgICk7XG5cbiAgICByZXR1cm4gZHJhZ2FibGUgPT09IHRydWUgPyAoXG4gICAgICA8RG5kUHJvdmlkZXIgYmFja2VuZD17SFRNTDVCYWNrZW5kfT57RGVmYXVsdFRhYmxlfTwvRG5kUHJvdmlkZXI+XG4gICAgKSA6IChcbiAgICAgIERlZmF1bHRUYWJsZVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFpoTG9jYWxlKE5TQ1RhYmxlKTtcbiJdfQ==
547
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3RhYmxlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJBcHBzdG9yZU91dGxpbmVkIiwiaXNFbXB0eU9iaiIsIlN0b3JlIiwiUGFnZVN0b3JlIiwidXRpbHMiLCJSZWFjdCIsIkRuZFByb3ZpZGVyIiwiQm9keVJvdyIsIkRuZENvbnRleHRUeXBlIiwiSUJvZHlSb3dQcm9wcyIsInRyZWVVdGlscyIsInN0eWxlcyIsIkJvZHlSb3dDb21wb25lbnQiLCJIVE1MNUJhY2tlbmQiLCJ3aXRoWmhMb2NhbGUiLCJOb0RhdGEiLCJOU0NUYWJsZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiZGF0YVNvdXJjZSIsImNvbHVtbnMiLCJsb2FkaW5nIiwicGFnaW5hdGlvbiIsImFjdGl2ZUluZGV4Iiwic2VhcmNoVGV4dCIsImZpZWxkT3B0aW9uIiwic2VhcmNoQ29sb3IiLCJvbkJlZm9yZUxvYWQiLCJsb2FkIiwiZHJhZ0luZGV4IiwiaG92ZXJJbmRleCIsImRyYWciLCJ0YXJnZXQiLCJfdGhpcyIsImRyYWdOb2RlIiwicmVjb3JkIiwidGFyZ2V0Tm9kZSIsIm1vdmVBcnJheSIsImlkcyIsInBhcmVudE5vZGUiLCJnZXRDaGlsZE5vZGVJZHMiLCJwYXJhbXMiLCJpZCIsInBhcmVudElkIiwiYXR0cmlidXRlIiwibW92ZVJvdyIsInN0b3JlIiwicmVsb2FkIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUHJvcHMiLCJyZXN0U3RvcmUiLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvcHRpb25zIiwic2V0U3RhdGUiLCJjYWxsYmFjayIsImRhdGFDaGFuZ2VkIiwiZGF0YSIsIm1vZGVsRGF0YSIsInBhZ2luZyIsImdldFBhZ2luYXRpb24iLCJvbkVycm9yTG9hZCIsImVyciIsInJlc3BvbnNlIiwiYXV0b0xvYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJzZXREYXRhIiwicHJldlByb3BzIiwiZmlsdGVycyIsInNvcnRlciIsImV4dHJhIiwiYXV0b09uQ2hhbmdlIiwiYXV0b1NvcnQiLCJhdXRvUGFnaW5hdGlvbiIsIm9uQ2hhbmdlIiwiaGFuZGxlUGFnaW5hdGlvbiIsImdldFBhZ2luYXRpb25CeVN0b3JlIiwicCIsImN1cnJlbnRLZXkiLCJjdXJyZW50IiwicGFnZVNpemVLZXkiLCJwYWdlU2l6ZSIsIm9yZGVyIiwiYXNjcyIsImNvbHVtbiIsInNvcnRGaWVsZCIsImZpZWxkIiwiZGVzY3MiLCJvbkNoYW5nZUZuIiwiZ2V0TW9kZWwiLCJ2YWwiLCJjaGVja2VkVmFsdWUiLCJmaWx0ZXJDb2x1bW5zIiwibWFwIiwiY29sIiwibmV3Q29sIiwiaW5jbHVkZXMiLCJkYXRhSW5kZXgiLCJpbml0U2hvdyIsInN0YXRlIiwiZGlzYWJsZUNvbHVtbnMiLCJjb2xMaXN0cyIsImRlZmF1bHRTaG93Q29scyIsImZpbHRlciIsImNvbHMiLCJkZWZhdWx0SGlkZUNvbHMiLCJjb250ZW50IiwiZmlsdGVyQ29sdW1uIiwiYmluZCIsImxhYmVsIiwidGl0bGUiLCJ2YWx1ZSIsImVsbGlwc2lzIiwicmVuZGVyIiwic2hvd1RpdGxlIiwidGV4dCIsIkljb25BY3Rpb24iLCJ0aEljb25SZWYiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwia2V5Iiwid2lkdGgiLCJhbGlnbiIsInB1c2giLCJvbWl0Iiwicm93S2V5IiwiY2xpY2tDaGFuZ2VDb2xvciIsInBvc2l0aW9uIiwic2hvd1NpemVDaGFuZ2VyIiwic2hvd1F1aWNrSnVtcGVyIiwic2hvd1RvdGFsIiwidG90YWwiLCJmcm9tIiwidG8iLCJvblJvd0ZuIiwib25Sb3ciLCJpbmRleCIsImN1c3RvbSIsIm9uQ2xpY2tGbiIsIm9uQ2xpY2siLCJldmVudCIsInJvd0NsYXNzTmFtZSIsImNsaWNrUm93U3R5bGUiLCJuZXdEYXRhU291cmNlIiwiZ2V0U2VhcmNoTWVudURhdGFzIiwidHJlZURhdGFzIiwiZXhwYW5kZWRSb3dLZXlzIiwib3BlbktleXMiLCJkcmFnYWJsZSIsImRyYWdhYmxlUHJvcHMiLCJjb21wb25lbnRzIiwiRGVmYXVsdFRhYmxlIiwiZ2V0Q29sdW1ucyIsImVtcHR5VGV4dCIsIkNvbXBvbmVudCIsImRyYWdVcmwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsZ0JBQVQsUUFBaUMsbUJBQWpDO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixtQkFBM0I7QUFDQSxPQUFPQyxLQUFQLElBQWdCQyxTQUFoQixRQUE2QyxhQUE3QztBQUNBLFNBQVNDLEtBQVQsUUFBc0IsdUJBQXRCO0FBVUEsT0FBTyxLQUFLQyxLQUFaLE1BQXVCLE9BQXZCO0FBQ0EsU0FBU0MsV0FBVCxRQUE0QixXQUE1QjtBQUNBLE9BQU9DLE9BQVAsSUFBa0JDLGNBQWxCLEVBQWtDQyxhQUFsQyxRQUF1RCxtQkFBdkQ7QUFDQSxPQUFPQyxTQUFQLE1BQXNCLGNBQXRCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLElBQVFDLGdCQUFSLEdBQTJDTCxPQUEzQyxDQUFRSyxnQkFBUjtBQUFBLElBQTBCQyxZQUExQixHQUEyQ04sT0FBM0MsQ0FBMEJNLFlBQTFCO0FBQ0EsT0FBT0MsWUFBUCxNQUF5Qix3QkFBekI7QUFDQSxTQUFTQyxNQUFULFFBQXVCLElBQXZCO0FBZ0NBLFNBQVNQLGNBQVQsRUFBeUJDLGFBQXpCOztJQUNNTyxROzs7OztBQWdDSixvQkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBOztBQUNqQiwrQkFBTUEsS0FBTjs7QUFEaUIsNkRBcEJYLEVBb0JXOztBQUFBLDhFQW5CUFosS0FBSyxDQUFDYSxTQUFOLEVBbUJPOztBQUFBLDZEQWpCWDtBQUNOQyxNQUFBQSxVQUFVLEVBQUUsRUFETjtBQUVOQyxNQUFBQSxPQUFPLEVBQUUsRUFGSDtBQUdOQyxNQUFBQSxPQUFPLEVBQUUsS0FISDtBQUlOQyxNQUFBQSxVQUFVLEVBQUUsRUFKTjtB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ekJ2RyxZQUFBQSxNQUFNLEVBQU5BLE1BRnlCO0FBR3pCVSxZQUFBQSxPQUFPLEVBQUUsTUFBSSxDQUFDQTtBQUhXLFdBQXBCO0FBQUE7QUFGVCxPQURKLEdBU0ksRUFWTjtBQVdBLFVBQU00RyxZQUFZLGdCQUNoQjtBQUNFLFFBQUEsa0JBQWtCLEVBQUMsWUFEckI7QUFFRSxRQUFBLFVBQVUsRUFBRVIsYUFGZDtBQUdFLFFBQUEsT0FBTyxFQUFFLEtBQUtTLFVBQUwsRUFIWDtBQUlFLFFBQUEsT0FBTyxFQUFFckksT0FKWDtBQUtFLFFBQUEsU0FBUyxFQUFFVixNQUFNLENBQUMsV0FBRCxDQUxuQjtBQU1FLFFBQUEsTUFBTSxFQUFFO0FBQUVnSixVQUFBQSxTQUFTLGVBQUUsb0JBQUMsTUFBRDtBQUFiO0FBTlYsU0FPTTFJLEtBUE4sRUFRTXNJLGFBUk4sRUFERjtBQWFBLGFBQU9ELFFBQVEsS0FBSyxJQUFiLGdCQUNMLG9CQUFDLFdBQUQ7QUFBYSxRQUFBLE9BQU8sRUFBRXpJO0FBQXRCLFNBQXFDNEksWUFBckMsQ0FESyxHQUdMQSxZQUhGO0FBS0Q7Ozs7RUE1WW9CcEosS0FBSyxDQUFDdUosUzs7Z0JBQXZCNUksUSxrQkFDa0I7QUFDcEJzRixFQUFBQSxjQUFjLEVBQUUsRUFESTtBQUVwQmdELEVBQUFBLFFBQVEsRUFBRSxLQUZVO0FBR3BCbEIsRUFBQUEsU0FBUyxFQUFFLElBSFM7QUFJcEJ2QixFQUFBQSxZQUFZLEVBQUUsSUFKTTtBQUtwQmdELEVBQUFBLE9BQU8sRUFBRSxFQUxXO0FBTXBCbEYsRUFBQUEsY0FBYyxFQUFFLElBTkk7QUFPcEJELEVBQUFBLFFBQVEsRUFBRSxJQVBVO0FBUXBCRCxFQUFBQSxZQUFZLEVBQUU7QUFSTSxDOztBQThZeEIsZUFBZTNELFlBQVksQ0FBQ0UsUUFBRCxDQUEzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBEZXNjcmlwdHRpb246XHJcbiAqIEB2ZXJzaW9uOlxyXG4gKiBAQXV0aG9yOiByeHpodVxyXG4gKiBARGF0ZTogMjAyMS0wMy0yMyAwODo0NjoyMFxyXG4gKiBATGFzdEVkaXRvcnM6IHJ4emh1XHJcbiAqIEBMYXN0RWRpdFRpbWU6IDIwMjEtMDMtMjMgMTA6MzA6NDJcclxuICovXHJcbmltcG9ydCB7IEFwcHN0b3JlT3V0bGluZWQgfSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgUGFnZVN0b3JlLCBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIENoZWNrYm94LFxyXG4gIENoZWNrYm94T3B0aW9uVHlwZSxcclxuICBQb3BvdmVyLFxyXG4gIFRhYmxlLFxyXG4gIFRhYmxlUHJvcHMsXHJcbiAgVG9vbHRpcCxcclxufSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyBDb2x1bW5UeXBlLCBUYWJsZVBhZ2luYXRpb25Db25maWcgfSBmcm9tIFwiYW50ZC9saWIvdGFibGVcIjtcclxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IERuZFByb3ZpZGVyIH0gZnJvbSBcInJlYWN0LWRuZFwiO1xyXG5pbXBvcnQgQm9keVJvdywgeyBEbmRDb250ZXh0VHlwZSwgSUJvZHlSb3dQcm9wcyB9IGZyb20gXCIuLi9jb21tb24vQm9keVJvd1wiO1xyXG5pbXBvcnQgdHJlZVV0aWxzIGZyb20gXCIuLi90cmVlVXRpbHNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmNvbnN0IHsgQm9keVJvd0NvbXBvbmVudCwgSFRNTDVCYWNrZW5kIH0gPSBCb2R5Um93O1xyXG5pbXBvcnQgd2l0aFpoTG9jYWxlIGZyb20gXCIuLi9jb21tb24vd2l0aFpoTG9jYWxlXCI7XHJcbmltcG9ydCB7IE5vRGF0YSB9IGZyb20gXCIuLlwiO1xyXG5cclxuaW50ZXJmYWNlIElEcmFnUGFyYW1zIHtcclxuICBpZDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIGlkczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBwYXJlbnRJZDogc3RyaW5nIHwgbnVtYmVyO1xyXG59XHJcbi8vIGludGVyZmFjZSBTdG9yZVByb3BzIHt9XHJcblxyXG5leHBvcnQgdHlwZSBTdG9yZVR5cGUgPSBcIlBhZ2VTdG9yZVwiIHwgXCJUcmVlU3RvcmVcIiB8IFwiQmFzZVN0b3JlXCI7XHJcblxyXG5pbnRlcmZhY2UgTlNDVGFibGVQYWdpbmF0aW9uIGV4dGVuZHMgVGFibGVQYWdpbmF0aW9uQ29uZmlnIHtcclxuICB0b3RhbEtleT86IHN0cmluZztcclxuICBwYWdlU2l6ZUtleT86IHN0cmluZztcclxuICBjdXJyZW50S2V5Pzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTlNDVGFibGVQcm9wcyBleHRlbmRzIFRhYmxlUHJvcHM8YW55PiB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIHNob3dUb3RhbD86IGJvb2xlYW47IC8vIOaYr+WQpuaYvuekuuaAu+adoeaVsOS/oeaBr++8jOm7mOiupHRydWVcclxuICBkaXNhYmxlQ29sdW1ucz86IHN0cmluZ1tdOyAvLyDkuI3lj6/pmpDol4/lv4XpobvmmL7npLrnmoTliJdcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8vIOaYr+WQpuWPr+aLluWKqCwg6buY6K6kZmFsc2VcclxuICBmaWx0ZXJDb2x1bW4/OiBib29sZWFuOyAvLyDmmK/lkKbmlK/mjIHov4fmu6TmmL7npLrooajmoLzliJcsIOm7mOiupHRydWVcclxuICBtb3ZlUm93PzogKHBhcmFtczogSURyYWdQYXJhbXMpID0+IHZvaWQ7IC8vIOaLluaLveWujOaIkOWQjueahOWbnuiwg1xyXG4gIGRyYWdVcmw/OiBzdHJpbmc7IC8vIOS/neWtmOaLluaLveaOkuW6j+eahOaOpeWPo1xyXG4gIHBhZ2luYXRpb24/OiBmYWxzZSB8IE5TQ1RhYmxlUGFnaW5hdGlvbjtcclxuICBhdXRvUGFnaW5hdGlvbj86IGJvb2xlYW47IC8vIOe7hOS7tuaYr+WQpuiHquWKqOWkhOeQhuWIhumhtVxyXG4gIGF1dG9Tb3J0PzogYm9vbGVhbjsgLy/nu4Tku7bmmK/lkKboh6rliqjlpITnkIbmjpLluo9cclxuICBhdXRvT25DaGFuZ2U/OiBib29sZWFuOyAvLyDnu4Tku7bmmK/lkKboh6rliqhvbkNoYW5nZSwgZmFsc2XliJnkuI3lgZrku7vkvZXlpITnkIblhajpg6jkuqTnu5nosIPnlKjmlrlcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSU5TQ1RhYmxlUHJvcHMgPSB0eXBlb2YgTlNDVGFibGUuZGVmYXVsdFByb3BzICYgTlNDVGFibGVQcm9wcztcclxuZXhwb3J0IHsgRG5kQ29udGV4dFR5cGUsIElCb2R5Um93UHJvcHMgfTtcclxuY2xhc3MgTlNDVGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SU5TQ1RhYmxlUHJvcHM+IHtcclxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgZGlzYWJsZUNvbHVtbnM6IFtdLFxyXG4gICAgZHJhZ2FibGU6IGZhbHNlLFxyXG4gICAgc2hvd1RvdGFsOiB0cnVlLFxyXG4gICAgZmlsdGVyQ29sdW1uOiB0cnVlLFxyXG4gICAgZHJhZ1VybDogXCJcIixcclxuICAgIGF1dG9QYWdpbmF0aW9uOiB0cnVlLFxyXG4gICAgYXV0b1NvcnQ6IHRydWUsXHJcbiAgICBhdXRvT25DaGFuZ2U6IHRydWUsXHJcbiAgfTtcclxuXHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIHRoSWNvblJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuXHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICAgIGNvbHVtbnM6IFtdLFxyXG4gICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICBwYWdpbmF0aW9uOiB7fSxcclxuICAgIGFjdGl2ZUluZGV4OiAtMSxcclxuICAgIC8v5pCc57Si5paH5pysXHJcbiAgICBzZWFyY2hUZXh0OiBudWxsLFxyXG4gICAgZmllbGRPcHRpb246IG51bGwsXHJcbiAgICBzZWFyY2hDb2xvcjogbnVsbCxcclxuICB9O1xyXG5cclxuICBsaXN0ZW5lcnMgPSB7XHJcbiAgICBvbkJlZm9yZUxvYWQ6IG51bGwsXHJcbiAgICBsb2FkOiBudWxsLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBpZiAocHJvcHMuc3RvcmUgaW5zdGFuY2VvZiBTdG9yZSkge1xyXG4gICAgICB0aGlzLnN0b3JlID0gcHJvcHMuc3RvcmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB7IGxpc3RlbmVyczogbGlzdGVuZXJzUHJvcHMgPSB7fSwgLi4ucmVzdFN0b3JlIH0gPVxyXG4gICAgICAgIHByb3BzLnN0b3JlIHx8IHt9O1xyXG4gICAgICBjb25zdCBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgIG1vZGVsOiBcIm1vZGVsXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiAoc3RvcmUsIG9wdGlvbnMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLm9uQmVmb3JlTG9hZCwgdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBwYWdpbmcgPSAhKHRoaXMucHJvcHMucGFnaW5hdGlvbiA9PT0gZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHBhZ2luZyAmJiAhdGhpcy5wcm9wcy5kYXRhU291cmNlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlOiBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uOiBzdG9yZS5nZXRQYWdpbmF0aW9uKCksXHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGFjdGl2ZUluZGV4OiAtMSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhLCBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMuZGF0YUNoYW5nZWQsIHRoaXMsIFtcclxuICAgICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICAgIG1vZGVsRGF0YSxcclxuICAgICAgICAgICAgICBzdG9yZSxcclxuICAgICAgICAgICAgICBwYWdpbmcsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSA9PiB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLmxvYWQsIHRoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25FcnJvckxvYWQ6IChlcnIsIHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMub25FcnJvckxvYWQsIHRoaXMsIFtlcnIsIHJlc3BvbnNlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGF0YTogcmVzdFN0b3JlLmRhdGFcclxuICAgICAgICAgID8gcmVzdFN0b3JlLmRhdGFcclxuICAgICAgICAgIDogcHJvcHMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgPyBwcm9wcy5kYXRhU291cmNlXHJcbiAgICAgICAgICA6IG51bGwsXHJcbiAgICAgICAgLi4ucmVzdFN0b3JlLFxyXG4gICAgICAgIGF1dG9Mb2FkOiByZXN0U3RvcmUuYXV0b0xvYWQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBQYWdlU3RvcmUoXHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVQcm9wcywge1xyXG4gICAgICAgICAgcGFnaW5hdGlvbjogdGhpcy5wcm9wcy5wYWdpbmF0aW9uLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiBbLi4udGhpcy5wcm9wcy5jb2x1bW5zXSB9KTtcclxuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5wcm9wcy5zdG9yZTtcclxuICAgIGlmIChzdG9yZSAmJiBzdG9yZS5kYXRhKSB7XHJcbiAgICAgIHRoaXMuc3RvcmUuc2V0RGF0YShzdG9yZS5kYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmNvbHVtbnMgIT09IHByZXZQcm9wcy5jb2x1bW5zKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiB0aGlzLnByb3BzLmNvbHVtbnMgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmuIXpmaTpgInkuK3popzoibJcclxuICAgKi9cclxuICBjbGVhclNlbGVjdENvbG9yKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGFjdGl2ZUluZGV4OiAtMSB9KTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFnaW5hdGlvbkJ5U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRQYWdpbmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XHJcbiAgICBjb25zdCB7IGF1dG9PbkNoYW5nZSwgYXV0b1NvcnQsIGF1dG9QYWdpbmF0aW9uLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChhdXRvT25DaGFuZ2UgPT09IGZhbHNlKSB7XHJcbiAgICAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaGFuZGxlUGFnaW5hdGlvbiA9ICgpID0+IHtcclxuICAgICAgbGV0IHBhcmFtcyA9IHt9IGFzIHtcclxuICAgICAgICBzaXplPzogc3RyaW5nO1xyXG4gICAgICAgIHBhZ2VTaXplPzogc3RyaW5nO1xyXG4gICAgICAgIGFzY3M/OiBzdHJpbmc7XHJcbiAgICAgICAgZGVzY3M/OiBzdHJpbmc7XHJcbiAgICAgICAgW3Byb3BOYW1lOiBzdHJpbmddOiBzdHJpbmc7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zdCBwYWdpbmcgPSB0aGlzLmdldFBhZ2luYXRpb25CeVN0b3JlKCkgfHwge307XHJcblxyXG4gICAgICBpZiAoIWlzRW1wdHlPYmoocGFnaW5hdGlvbikpIHtcclxuICAgICAgICBjb25zdCBwID0ge1xyXG4gICAgICAgICAgW3BhZ2luZy5jdXJyZW50S2V5IHx8IFwiY3VycmVudFwiXTogcGFnaW5hdGlvbi5jdXJyZW50LFxyXG4gICAgICAgICAgW3BhZ2luZy5wYWdlU2l6ZUtleSB8fCBcInNpemVcIl06IHBhZ2luYXRpb24ucGFnZVNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHBhcmFtcywgcCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChhdXRvU29ydCA9PT0gdHJ1ZSAmJiAhaXNFbXB0eU9iaihzb3J0ZXIpKSB7XHJcbiAgICAgICAgaWYgKHNvcnRlci5vcmRlciA9PSBcImFzY2VuZFwiKSB7XHJcbiAgICAgICAgICBwYXJhbXMuYXNjcyA9XHJcbiAgICAgICAgICAgIHNvcnRlci5jb2x1bW4uc29ydEZpZWxkIHx8IHNvcnRlci5jb2x1bW4uZmllbGQgfHwgc29ydGVyLmZpZWxkO1xyXG4gICAgICAgICAgcGFyYW1zLmRlc2NzID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNvcnRlci5vcmRlciA9PSBcImRlc2NlbmRcIikge1xyXG4gICAgICAgICAgcGFyYW1zLmRlc2NzID1cclxuICAgICAgICAgICAgc29ydGVyLmNvbHVtbi5zb3J0RmllbGQgfHwgc29ydGVyLmNvbHVtbi5maWVsZCB8fCBzb3J0ZXIuZmllbGQ7XHJcbiAgICAgICAgICBwYXJhbXMuYXNjcyA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUucmVsb2FkKHsgcGFyYW1zIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBvbkNoYW5nZUZuID0gdGhpcy5wcm9wcy5vbkNoYW5nZTtcclxuICAgIC8vIOeUqOaIt+S8oOS6hm9uQ2hhbmdl5L+d55WZ55So5oi36Ieq5Li75aSE55CG6KGo5qC85Y+Y5YyW55qE5p2D5YqbXHJcbiAgICBpZiAob25DaGFuZ2VGbikge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNoYW5nZUZuLCB0aGlzLCBbcGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYV0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJvcHMuYXV0b1BhZ2luYXRpb24pIHtcclxuICAgICAgaGFuZGxlUGFnaW5hdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluaVsOaNruaooeWei+WvueixoVxyXG4gICAqL1xyXG4gIGdldE1vZGVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0TW9kZWwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiPnOWNleaQnOe0oui/h+a7pOaYvuekulxyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcclxuICAgKi9cclxuICBoYW5kbGVTZWFyY2godmFsLCBmaWVsZE9wdGlvbiwgc2VhcmNoQ29sb3IpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWFyY2hUZXh0OiB2YWwsXHJcbiAgICAgIGZpZWxkT3B0aW9uOiBmaWVsZE9wdGlvbixcclxuICAgICAgc2VhcmNoQ29sb3I6IHNlYXJjaENvbG9yLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmqKHlnZfliJfooajnp7vliqjmjpLluo9cclxuICAgKi9cclxuICBtb3ZlUm93ID0gKGRyYWdJbmRleCwgaG92ZXJJbmRleCwgZHJhZywgdGFyZ2V0KSA9PiB7XHJcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICBsZXQgZHJhZ05vZGUgPSBkcmFnLnJlY29yZDtcclxuICAgIGxldCB0YXJnZXROb2RlID0gdGFyZ2V0LnJlY29yZDtcclxuICAgIGRyYWdOb2RlLm1vdmVBcnJheShkcmFnTm9kZSwgdGFyZ2V0Tm9kZSk7XHJcbiAgICBsZXQgaWRzID0gZHJhZ05vZGUucGFyZW50Tm9kZS5nZXRDaGlsZE5vZGVJZHMoKTtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGlkOiBkcmFnTm9kZS5pZCxcclxuICAgICAgcGFyZW50SWQ6IGRyYWdOb2RlLmF0dHJpYnV0ZS5wYXJlbnRJZCxcclxuICAgICAgaWRzOiBpZHMsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLm1vdmVSb3cpIHtcclxuICAgICAgdGhpcy5wcm9wcy5tb3ZlUm93KHBhcmFtcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3JlLnJlbG9hZCgpO1xyXG4gICAgfVxyXG4gICAgLy8gcmVxdWVzdChcImh0dHA6Ly9kZW1vLmphdmFzdm4uY29tL2FwaS9hZG1pbi9tZW51cy9kcmFnXCIsIHtcclxuICAgIC8vICAgbWV0aG9kOiBcIlBBVENIXCIsXHJcbiAgICAvLyAgIGRhdGE6IHBhcmFtcyxcclxuICAgIC8vICAgY2FsbGJhY2s6IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAvLyAgICAgdGhpcy5zdG9yZS5yZWxvYWQoKTtcclxuICAgIC8vICAgfSxcclxuICAgIC8vIH0pO1xyXG4gIH07XHJcblxyXG4gIGZpbHRlckNvbHVtbihjaGVja2VkVmFsdWUpIHtcclxuICAgIGNvbnN0IGZpbHRlckNvbHVtbnMgPSB0aGlzLnByb3BzLmNvbHVtbnMubWFwKChjb2w6IENvbHVtblR5cGU8e30+KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0NvbCA9IHsgLi4uY29sIH0gYXMgQ29sdW1uVHlwZTx7fT4gJiB7IGluaXRTaG93OiBib29sZWFuIH07XHJcbiAgICAgIGlmIChjaGVja2VkVmFsdWUuaW5jbHVkZXMoY29sLmRhdGFJbmRleCkpIHtcclxuICAgICAgICBuZXdDb2wuaW5pdFNob3cgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld0NvbC5pbml0U2hvdyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBuZXdDb2w7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiBmaWx0ZXJDb2x1bW5zIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sdW1ucygpIHtcclxuICAgIGNvbnN0IHsgY29sdW1ucyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgZGlzYWJsZUNvbHVtbnMsIGNvbHVtbnM6IGNvbExpc3RzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZGVmYXVsdFNob3dDb2xzID0gY29sdW1ucy5maWx0ZXIoKGNvbHMpID0+IGNvbHMuaW5pdFNob3cgIT09IGZhbHNlKTtcclxuICAgIGNvbnN0IGRlZmF1bHRIaWRlQ29scyA9IGNvbHVtbnMuZmlsdGVyKChjb2xzKSA9PiBjb2xzLmluaXRTaG93ID09PSBmYWxzZSk7XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IChcclxuICAgICAgPENoZWNrYm94Lkdyb3VwXHJcbiAgICAgICAgb25DaGFuZ2U9e3RoaXMuZmlsdGVyQ29sdW1uLmJpbmQodGhpcyl9XHJcbiAgICAgICAgb3B0aW9ucz17Y29sTGlzdHMubWFwKFxyXG4gICAgICAgICAgKGNvbDogQ29sdW1uVHlwZTx7fT4pID0+XHJcbiAgICAgICAgICAgICh7XHJcbiAgICAgICAgICAgICAgbGFiZWw6IGNvbC50aXRsZSxcclxuICAgICAgICAgICAgICB2YWx1ZTogY29sLmRhdGFJbmRleCxcclxuICAgICAgICAgICAgfSBhcyBDaGVja2JveE9wdGlvblR5cGUpXHJcbiAgICAgICAgKX1cclxuICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRTaG93Q29scy5tYXAoKGNvbCkgPT4gY29sLmRhdGFJbmRleCl9XHJcbiAgICAgID48L0NoZWNrYm94Lkdyb3VwPlxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBjb2xzID0gZGVmYXVsdFNob3dDb2xzLm1hcCgoY29sKSA9PiB7XHJcbiAgICAgIGlmIChjb2wuZWxsaXBzaXMgJiYgIWNvbC5yZW5kZXIpIHtcclxuICAgICAgICBjb2wuZWxsaXBzaXMgPSB7XHJcbiAgICAgICAgICBzaG93VGl0bGU6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29sLnJlbmRlciA9ICh0ZXh0KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8VG9vbHRpcCBwbGFjZW1lbnQ9XCJ0b3BMZWZ0XCIgdGl0bGU9e3RleHR9PlxyXG4gICAgICAgICAgICAgIHt0ZXh0fVxyXG4gICAgICAgICAgICA8L1Rvb2x0aXA+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNvbDtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IEljb25BY3Rpb246IENvbHVtblR5cGU8e30+ID0ge1xyXG4gICAgICB0aXRsZTogKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ0aC1pY29uXCJdfSByZWY9e3RoaXMudGhJY29uUmVmfT5cclxuICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgIHRpdGxlPVwi6YCJ5oup5pi+56S655qE5YiXXCJcclxuICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tUmlnaHRcIlxyXG4gICAgICAgICAgICB0cmlnZ2VyPVwiY2xpY2tcIlxyXG4gICAgICAgICAgICBvdmVybGF5U3R5bGU9e3sgbWluV2lkdGg6IDQxMCwgbWF4V2lkdGg6IDQ1MCB9fVxyXG4gICAgICAgICAgICBnZXRQb3B1cENvbnRhaW5lcj17KCkgPT4gdGhpcy50aEljb25SZWYuY3VycmVudH1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPEFwcHN0b3JlT3V0bGluZWQgc2l6ZT17MjR9IGNsYXNzTmFtZT17c3R5bGVzW1wiYXBwLXN0b3JlLWljb25cIl19IC8+XHJcbiAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICksXHJcbiAgICAgIGRhdGFJbmRleDogXCJpY29uLW1lbnVcIixcclxuICAgICAga2V5OiBcImljb24tbWVudVwiLFxyXG4gICAgICB3aWR0aDogNTAsXHJcbiAgICAgIGFsaWduOiBcImNlbnRlclwiLFxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbHRlckNvbHVtbikge1xyXG4gICAgICBjb2xzLnB1c2goSWNvbkFjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvbHM7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzLFxyXG4gICAgICB7XHJcbiAgICAgICAgbG9hZGluZyxcclxuICAgICAgICBkYXRhU291cmNlLFxyXG4gICAgICAgIHBhZ2luYXRpb24gPSB7fSxcclxuICAgICAgICBzZWFyY2hUZXh0LFxyXG4gICAgICAgIGZpZWxkT3B0aW9uLFxyXG4gICAgICAgIHNlYXJjaENvbG9yLFxyXG4gICAgICB9ID0gdGhpcy5zdGF0ZSxcclxuICAgICAgcHJvcHMgPSB1dGlscy5vbWl0KHRoaXMucHJvcHMsIFtcInN0b3JlXCIsIFwib25DaGFuZ2VcIiwgXCJjb2x1bW5zXCJdLCB7XHJcbiAgICAgICAgcm93S2V5OiBcImlkXCIsXHJcbiAgICAgICAgY2xpY2tDaGFuZ2VDb2xvcjogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGlmIChwcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBwcm9wcy5wYWdpbmF0aW9uID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBbXCJib3R0b21SaWdodFwiXSxcclxuICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXHJcbiAgICAgICAgc2hvd1F1aWNrSnVtcGVyOiB0cnVlLFxyXG4gICAgICAgIC4uLnByb3BzLnBhZ2luYXRpb24sXHJcbiAgICAgICAgLi4ucGFnaW5hdGlvbixcclxuICAgICAgfTtcclxuICAgICAgaWYgKHByb3BzLnNob3dUb3RhbCA9PSB0cnVlKSB7XHJcbiAgICAgICAgcHJvcHMucGFnaW5hdGlvbi5zaG93VG90YWwgPSBmdW5jdGlvbiAodG90YWwsIFtmcm9tLCB0b10pIHtcclxuICAgICAgICAgIC8vIHJldHVybiBcIuaYvuekuiBcIiArIGZyb20gKyBcIiAtIFwiICsgdG8gKyBcIuadoe+8jOWFsSBcIiArIHRvdGFsICsgXCIg5p2hXCI7XHJcbiAgICAgICAgICByZXR1cm4gXCLlhbEgXCIgKyB0b3RhbCArIFwiIOadoVwiO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm9wcy5vbkNoYW5nZSA9IGZ1bmN0aW9uIChwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XHJcbiAgICAgIF90aGlzLm9uQ2hhbmdlKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpO1xyXG4gICAgfTtcclxuICAgIGlmIChwcm9wcy5jbGlja0NoYW5nZUNvbG9yKSB7XHJcbiAgICAgIGNvbnN0IG9uUm93Rm4gPSBwcm9wcy5vblJvdztcclxuICAgICAgcHJvcHMub25Sb3cgPSBmdW5jdGlvbiAocmVjb3JkLCBpbmRleCkge1xyXG4gICAgICAgIHZhciBjdXN0b20gPSBvblJvd0ZuID8gb25Sb3dGbihyZWNvcmQsIGluZGV4KSA6IHt9O1xyXG4gICAgICAgIGNvbnN0IG9uQ2xpY2tGbiA9IGN1c3RvbS5vbkNsaWNrO1xyXG4gICAgICAgIGN1c3RvbS5vbkNsaWNrID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGFjdGl2ZUluZGV4OiBpbmRleCwgLy/ojrflj5bngrnlh7vooYznmoTntKLlvJVcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdXRpbHMuY2FsbGJhY2sob25DbGlja0ZuLCBfdGhpcywgW2V2ZW50XSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY3VzdG9tO1xyXG4gICAgICB9O1xyXG4gICAgICBwcm9wcy5yb3dDbGFzc05hbWUgPSBmdW5jdGlvbiAocmVjb3JkLCBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiBpbmRleCA9PT0gX3RoaXMuc3RhdGUuYWN0aXZlSW5kZXhcclxuICAgICAgICAgID8gYCR7c3R5bGVzLmNsaWNrUm93U3R5bGV9YFxyXG4gICAgICAgICAgOiBcIlwiO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgbGV0IG5ld0RhdGFTb3VyY2UgPSBbXTtcclxuICAgIGlmIChzZWFyY2hUZXh0KSB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0cmVlVXRpbHMuZ2V0U2VhcmNoTWVudURhdGFzKFxyXG4gICAgICAgIHRoaXMsXHJcbiAgICAgICAgc2VhcmNoVGV4dCxcclxuICAgICAgICBmaWVsZE9wdGlvbixcclxuICAgICAgICBzZWFyY2hDb2xvclxyXG4gICAgICApO1xyXG4gICAgICBuZXdEYXRhU291cmNlID0gZGF0YS50cmVlRGF0YXM7XHJcbiAgICAgIHByb3BzLmV4cGFuZGVkUm93S2V5cyA9IGRhdGEub3BlbktleXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdEYXRhU291cmNlID0gZGF0YVNvdXJjZTtcclxuICAgIH1cclxuICAgIHByb3BzLnN0b3JlID0gcHJvcHMuc3RvcmUgfHwge307XHJcbiAgICBwcm9wcy5zdG9yZS5hdXRvTG9hZCA9IHByb3BzLnN0b3JlLmF1dG9Mb2FkID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZTtcclxuICAgIGNvbnN0IHsgZHJhZ2FibGUgfSA9IF90aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZHJhZ2FibGVQcm9wcyA9XHJcbiAgICAgIGRyYWdhYmxlID09PSB0cnVlXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudHM6IEJvZHlSb3dDb21wb25lbnQsXHJcbiAgICAgICAgICAgIG9uUm93OiAocmVjb3JkLCBpbmRleCkgPT4gKHtcclxuICAgICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgICAgICByZWNvcmQsXHJcbiAgICAgICAgICAgICAgbW92ZVJvdzogdGhpcy5tb3ZlUm93LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIH1cclxuICAgICAgICA6IHt9O1xyXG4gICAgY29uc3QgRGVmYXVsdFRhYmxlID0gKFxyXG4gICAgICA8VGFibGVcclxuICAgICAgICBjaGlsZHJlbkNvbHVtbk5hbWU9XCJjaGlsZE5vZGVzXCJcclxuICAgICAgICBkYXRhU291cmNlPXtuZXdEYXRhU291cmNlfVxyXG4gICAgICAgIGNvbHVtbnM9e3RoaXMuZ2V0Q29sdW1ucygpfVxyXG4gICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XHJcbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJuc2MtdGFibGVcIl19XHJcbiAgICAgICAgbG9jYWxlPXt7IGVtcHR5VGV4dDogPE5vRGF0YSAvPiB9fVxyXG4gICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICB7Li4uZHJhZ2FibGVQcm9wc31cclxuICAgICAgLz5cclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIGRyYWdhYmxlID09PSB0cnVlID8gKFxyXG4gICAgICA8RG5kUHJvdmlkZXIgYmFja2VuZD17SFRNTDVCYWNrZW5kfT57RGVmYXVsdFRhYmxlfTwvRG5kUHJvdmlkZXI+XHJcbiAgICApIDogKFxyXG4gICAgICBEZWZhdWx0VGFibGVcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB3aXRoWmhMb2NhbGUoTlNDVGFibGUpO1xyXG4iXX0=
@@ -1,13 +1,13 @@
1
- import * as React from "react";
2
- import { TabPaneProps } from "antd";
3
- /**
4
- * @param {*} value 原TabPane key 属性, 封装后key无法接收,改为value传递
5
- * @param {boolean} showMenu 是否显示右键点击菜单 默认ture
6
- */
7
- interface ITabPaneProps extends TabPaneProps {
8
- showMenu?: boolean;
9
- }
10
- export default class NscTabPane extends React.PureComponent<ITabPaneProps> {
11
- render(): JSX.Element;
12
- }
13
- export {};
1
+ import * as React from "react";
2
+ import { TabPaneProps } from "antd";
3
+ /**
4
+ * @param {*} value 原TabPane key 属性, 封装后key无法接收,改为value传递
5
+ * @param {boolean} showMenu 是否显示右键点击菜单 默认ture
6
+ */
7
+ interface ITabPaneProps extends TabPaneProps {
8
+ showMenu?: boolean;
9
+ }
10
+ export default class NscTabPane extends React.PureComponent<ITabPaneProps> {
11
+ render(): JSX.Element;
12
+ }
13
+ export {};