@1money/component-ui 0.0.73 → 0.0.75
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.
- package/es/components/Dialog/Dialog.js +7 -39
- package/es/components/Dialog/constants.d.ts +0 -3
- package/es/components/Dialog/constants.js +1 -4
- package/es/components/Dialog/style/Dialog.css +0 -21
- package/es/components/ProForm/ProForm.js +201 -48
- package/es/components/ProForm/ProFormDependency.d.ts +11 -2
- package/es/components/ProForm/ProFormDependency.js +29 -136
- package/es/components/ProForm/ProFormItem.js +81 -24
- package/es/components/ProForm/ProFormList.js +114 -62
- package/es/components/ProForm/Submitter.js +15 -4
- package/es/components/ProForm/context.d.ts +11 -3
- package/es/components/ProForm/context.js +32 -12
- package/es/components/ProForm/core/constants.d.ts +10 -2
- package/es/components/ProForm/core/constants.js +17 -3
- package/es/components/ProForm/core/formStore.d.ts +24 -0
- package/es/components/ProForm/core/formStore.js +101 -0
- package/es/components/ProForm/core/hooks/useForm.d.ts +4 -1
- package/es/components/ProForm/core/hooks/useForm.js +220 -120
- package/es/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/es/components/ProForm/core/hooks/useFormCore.js +114 -90
- package/es/components/ProForm/core/runRules.d.ts +5 -3
- package/es/components/ProForm/core/runRules.js +13 -5
- package/es/components/ProForm/core/useFormItem.d.ts +2 -2
- package/es/components/ProForm/core/useFormItem.js +46 -23
- package/es/components/ProForm/fields/ProFormFieldSet.js +20 -7
- package/es/components/ProForm/fields/createProFormField.js +14 -4
- package/es/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
- package/es/components/ProForm/hooks/useFieldRequest.js +54 -9
- package/es/components/ProForm/hooks/useUrlSync.d.ts +16 -0
- package/es/components/ProForm/hooks/useUrlSync.js +170 -0
- package/es/components/ProForm/index.d.ts +2 -2
- package/es/components/ProForm/index.js +1 -1
- package/es/components/ProForm/interface.d.ts +105 -23
- package/es/components/ProForm/layouts/DialogForm.js +17 -7
- package/es/components/ProForm/layouts/DrawerForm.js +16 -7
- package/es/components/ProForm/layouts/QueryFilter.js +46 -135
- package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/es/components/ProForm/layouts/useOverlayForm.js +27 -8
- package/es/components/ProForm/style/ProForm.css +0 -7
- package/es/components/ProForm/utils.js +32 -8
- package/es/components/ProTable/ProTable.js +3 -3
- package/es/index.css +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/lib/components/Dialog/Dialog.js +6 -38
- package/lib/components/Dialog/constants.d.ts +0 -3
- package/lib/components/Dialog/constants.js +1 -4
- package/lib/components/Dialog/style/Dialog.css +0 -21
- package/lib/components/ProForm/ProForm.js +201 -48
- package/lib/components/ProForm/ProFormDependency.d.ts +11 -2
- package/lib/components/ProForm/ProFormDependency.js +30 -138
- package/lib/components/ProForm/ProFormItem.js +78 -21
- package/lib/components/ProForm/ProFormList.js +112 -60
- package/lib/components/ProForm/Submitter.js +15 -4
- package/lib/components/ProForm/context.d.ts +11 -3
- package/lib/components/ProForm/context.js +33 -13
- package/lib/components/ProForm/core/constants.d.ts +10 -2
- package/lib/components/ProForm/core/constants.js +18 -4
- package/lib/components/ProForm/core/formStore.d.ts +24 -0
- package/lib/components/ProForm/core/formStore.js +110 -0
- package/lib/components/ProForm/core/hooks/useForm.d.ts +4 -1
- package/lib/components/ProForm/core/hooks/useForm.js +220 -120
- package/lib/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/lib/components/ProForm/core/hooks/useFormCore.js +113 -89
- package/lib/components/ProForm/core/runRules.d.ts +5 -3
- package/lib/components/ProForm/core/runRules.js +13 -5
- package/lib/components/ProForm/core/useFormItem.d.ts +2 -2
- package/lib/components/ProForm/core/useFormItem.js +44 -21
- package/lib/components/ProForm/fields/ProFormFieldSet.js +19 -6
- package/lib/components/ProForm/fields/createProFormField.js +14 -4
- package/lib/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
- package/lib/components/ProForm/hooks/useFieldRequest.js +53 -8
- package/lib/components/ProForm/hooks/useUrlSync.d.ts +16 -0
- package/lib/components/ProForm/hooks/useUrlSync.js +178 -0
- package/lib/components/ProForm/index.d.ts +2 -2
- package/lib/components/ProForm/index.js +1 -1
- package/lib/components/ProForm/interface.d.ts +105 -23
- package/lib/components/ProForm/layouts/DialogForm.js +17 -7
- package/lib/components/ProForm/layouts/DrawerForm.js +16 -7
- package/lib/components/ProForm/layouts/QueryFilter.js +45 -134
- package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/lib/components/ProForm/layouts/useOverlayForm.js +30 -8
- package/lib/components/ProForm/style/ProForm.css +0 -7
- package/lib/components/ProForm/utils.js +32 -8
- package/lib/components/ProTable/ProTable.js +3 -3
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +36 -0
- package/scripts/mcp-server/index.generated.json +538 -16
|
@@ -43,6 +43,11 @@ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P
|
|
|
43
43
|
/**
|
|
44
44
|
* Hook for async option fetching with param-based re-fetching.
|
|
45
45
|
* Returns [loading, options].
|
|
46
|
+
*
|
|
47
|
+
* Race-safe: each fetch takes a sequence number
|
|
48
|
+
* and aborts the previous in-flight request — a stale response that resolves
|
|
49
|
+
* after a newer request never overwrites the newest options, and only the
|
|
50
|
+
* newest request controls `loading`.
|
|
46
51
|
*/
|
|
47
52
|
function useFieldRequest(request, params) {
|
|
48
53
|
var _this = this;
|
|
@@ -56,10 +61,12 @@ function useFieldRequest(request, params) {
|
|
|
56
61
|
setOptions = _useSafeState4[1];
|
|
57
62
|
// Always read the newest `request` without re-subscribing the effect below.
|
|
58
63
|
var requestRef = (0, _useLatest["default"])(request);
|
|
64
|
+
var seqRef = (0, _react.useRef)(0);
|
|
65
|
+
var abortRef = (0, _react.useRef)(null);
|
|
59
66
|
var serializedParams = (0, _utils.stableSerialize)(params);
|
|
60
67
|
var fetchOptions = (0, _useMemoizedFn["default"])(function () {
|
|
61
68
|
return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
62
|
-
var fn, result;
|
|
69
|
+
var _a, fn, controller, seq, result, isAbort, _t;
|
|
63
70
|
return _regenerator["default"].wrap(function (_context) {
|
|
64
71
|
while (1) switch (_context.prev = _context.next) {
|
|
65
72
|
case 0:
|
|
@@ -70,31 +77,69 @@ function useFieldRequest(request, params) {
|
|
|
70
77
|
}
|
|
71
78
|
return _context.abrupt("return");
|
|
72
79
|
case 1:
|
|
80
|
+
(_a = abortRef.current) === null || _a === void 0 ? void 0 : _a.abort();
|
|
81
|
+
controller = new AbortController();
|
|
82
|
+
abortRef.current = controller;
|
|
83
|
+
seq = ++seqRef.current;
|
|
73
84
|
setLoading(true);
|
|
74
85
|
_context.prev = 2;
|
|
75
86
|
_context.next = 3;
|
|
76
|
-
return fn(params);
|
|
87
|
+
return fn(params, controller.signal);
|
|
77
88
|
case 3:
|
|
78
89
|
result = _context.sent;
|
|
90
|
+
if (!(seq !== seqRef.current)) {
|
|
91
|
+
_context.next = 4;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
return _context.abrupt("return");
|
|
95
|
+
case 4:
|
|
96
|
+
// superseded — discard
|
|
79
97
|
if (Array.isArray(result)) {
|
|
80
98
|
setOptions(result);
|
|
81
99
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
setLoading(false);
|
|
85
|
-
return _context.finish(4);
|
|
100
|
+
_context.next = 6;
|
|
101
|
+
break;
|
|
86
102
|
case 5:
|
|
103
|
+
_context.prev = 5;
|
|
104
|
+
_t = _context["catch"](2);
|
|
105
|
+
// Superseded requests (our own aborts always land here via the seq
|
|
106
|
+
// mismatch) are swallowed. For the LATEST request, an AbortError can
|
|
107
|
+
// only come from a CONSUMER-side abort (e.g. AbortSignal.timeout) —
|
|
108
|
+
// also swallowed, mirroring fetch-cancellation conventions; genuine
|
|
109
|
+
// failures propagate.
|
|
110
|
+
isAbort = _t instanceof Error && _t.name === 'AbortError';
|
|
111
|
+
if (!(seq === seqRef.current && !isAbort)) {
|
|
112
|
+
_context.next = 6;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
throw _t;
|
|
116
|
+
case 6:
|
|
117
|
+
_context.prev = 6;
|
|
118
|
+
if (seq === seqRef.current) {
|
|
119
|
+
setLoading(false);
|
|
120
|
+
}
|
|
121
|
+
return _context.finish(6);
|
|
122
|
+
case 7:
|
|
87
123
|
case "end":
|
|
88
124
|
return _context.stop();
|
|
89
125
|
}
|
|
90
|
-
}, _callee, null, [[2
|
|
126
|
+
}, _callee, null, [[2, 5, 6, 7]]);
|
|
91
127
|
}));
|
|
92
128
|
});
|
|
93
129
|
(0, _react.useEffect)(function () {
|
|
94
130
|
if (!requestRef.current) return;
|
|
95
131
|
fetchOptions();
|
|
96
132
|
}, [serializedParams]);
|
|
133
|
+
// Honor the cancellation contract on unmount: abort the in-flight request
|
|
134
|
+
// and bump the sequence so any late settle (result or error) is discarded.
|
|
135
|
+
(0, _react.useEffect)(function () {
|
|
136
|
+
return function () {
|
|
137
|
+
var _a;
|
|
138
|
+
seqRef.current += 1;
|
|
139
|
+
(_a = abortRef.current) === null || _a === void 0 ? void 0 : _a.abort();
|
|
140
|
+
};
|
|
141
|
+
}, []);
|
|
97
142
|
return [loading, options];
|
|
98
143
|
}
|
|
99
144
|
var _default = exports["default"] = useFieldRequest;
|
|
100
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2hvb2tzL3VzZUZpZWxkUmVxdWVzdC50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9ob29rcy91c2VGaWVsZFJlcXVlc3QuanMiXSwibmFtZXMiOlsiX3JlYWN0IiwicmVxdWlyZSIsIl91c2VTYWZlU3RhdGU1IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2VNZW1vaXplZEZuIiwiX3VzZUxhdGVzdCIsIl91dGlscyIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInVzZUZpZWxkUmVxdWVzdCIsInJlcXVlc3QiLCJwYXJhbXMiLCJfdGhpcyIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVNhZmVTdGF0ZTMiLCJfdXNlU2FmZVN0YXRlNCIsIm9wdGlvbnMiLCJzZXRPcHRpb25zIiwicmVxdWVzdFJlZiIsInVzZUxhdGVzdCIsInNlcmlhbGl6ZWRQYXJhbXMiLCJzdGFibGVTZXJpYWxpemUiLCJmZXRjaE9wdGlvbnMiLCJ1c2VNZW1vaXplZEZuIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJmbiIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJjdXJyZW50IiwiYWJydXB0Iiwic2VudCIsIkFycmF5IiwiaXNBcnJheSIsImZpbmlzaCIsInN0b3AiLCJ1c2VFZmZlY3QiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFD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QUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQWhDLElBQUE7VUFBQTtZQUN0QzhCLEVBQUUsR0FBR1QsVUFBVSxDQUFDYSxPQUFPO1lBQUEsSUFDeEJKLEVBQUU7Y0FBQUUsUUFBQSxDQUFBaEMsSUFBQTtjQUFBO1lBQUE7WUFBQSxPQUFBZ0MsUUFBQSxDQUFBRyxNQUFBO1VBQUE7WUFDUG5CLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFBQ2dCLFFBQUEsQ0FBQUMsSUFBQTtZQUFBRCxRQUFBLENBQUFoQyxJQUFBO1lBRUEsT0FBTThCLEVBQUUsQ0FBQ3JCLE1BQU0sQ0FBQztVQUFBO1lBQXpCTixNQUFNLEdBQUE2QixRQUFBLENBQUFJLElBQUE7WUFDWixJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ25DLE1BQU0sQ0FBQyxFQUFFO2NBQ3pCaUIsVUFBVSxDQUFDakIsTUFBTSxDQUFDO1lBQ3BCO1VBQUM7WUFBQTZCLFFBQUEsQ0FBQUMsSUFBQTtZQUVEakIsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUFDLE9BQUFnQixRQUFBLENBQUFPLE1BQUE7VUFBQTtVQUFBO1lBQUEsT0FBQVAsUUFBQSxDQUFBUSxJQUFBO1FBQUE7TUFBQSxHQUFBWCxPQUFBO0lBQUEsQ0FFckIsRUFBQTtFQUFBLEVBQUM7RUFFRixJQUFBWSxnQkFBUyxFQUFDLFlBQUs7SUFDYixJQUFJLENBQUNwQixVQUFVLENBQUNhLE9BQU8sRUFBRTtJQUN6QlQsWUFBWSxDQUFBLENBQUU7RUFDaEIsQ0FBQyxFQUFFLENBQUNGLGdCQUFnQixDQUFDLENBQUM7RUFFdEIsT0FBTyxDQUFDUixPQUFPLEVBQUVJLE9BQU8sQ0FBQztBQUMzQjtBQUFDLElBQUF1QixRQUFBLEdBQUFDLE9BQUEsY0FFY3BDLGVBQWUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2hvb2tzL3VzZUZpZWxkUmVxdWVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlTGF0ZXN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF0ZXN0JztcbmltcG9ydCB7IHN0YWJsZVNlcmlhbGl6ZSB9IGZyb20gJy4uL3V0aWxzJztcbi8qKlxuICogSG9vayBmb3IgYXN5bmMgb3B0aW9uIGZldGNoaW5nIHdpdGggcGFyYW0tYmFzZWQgcmUtZmV0Y2hpbmcuXG4gKiBSZXR1cm5zIFtsb2FkaW5nLCBvcHRpb25zXS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUZpZWxkUmVxdWVzdChyZXF1ZXN0LCBwYXJhbXMpIHtcbiAgICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTYWZlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVNhZmVTdGF0ZShbXSk7XG4gICAgLy8gQWx3YXlzIHJlYWQgdGhlIG5ld2VzdCBgcmVxdWVzdGAgd2l0aG91dCByZS1zdWJzY3JpYmluZyB0aGUgZWZmZWN0IGJlbG93LlxuICAgIGNvbnN0IHJlcXVlc3RSZWYgPSB1c2VMYXRlc3QocmVxdWVzdCk7XG4gICAgY29uc3Qgc2VyaWFsaXplZFBhcmFtcyA9IHN0YWJsZVNlcmlhbGl6ZShwYXJhbXMpO1xuICAgIGNvbnN0IGZldGNoT3B0aW9ucyA9IHVzZU1lbW9pemVkRm4oKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBmbiA9IHJlcXVlc3RSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFmbilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGZuKHBhcmFtcyk7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgc2V0T3B0aW9ucyhyZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFyZXF1ZXN0UmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGZldGNoT3B0aW9ucygpO1xuICAgIH0sIFtzZXJpYWxpemVkUGFyYW1zXSk7XG4gICAgcmV0dXJuIFtsb2FkaW5nLCBvcHRpb25zXTtcbn1cbmV4cG9ydCBkZWZhdWx0IHVzZUZpZWxkUmVxdWVzdDsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
145
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2hvb2tzL3VzZUZpZWxkUmVxdWVzdC50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9ob29rcy91c2VGaWVsZFJlcXVlc3QuanMiXSwibmFtZXMiOlsiX3JlYWN0IiwicmVxdWlyZSIsIl91c2VTYWZlU3RhdGU1IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2VNZW1vaXplZEZuIiwiX3VzZUxhdGVzdCIsIl91dGlscyIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInVzZUZpZWxkUmVxdWVzdCIsInJlcXVlc3QiLCJwYXJhbXMiLCJfdGhpcyIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVNhZmVTdGF0ZTMiLCJfdXNlU2FmZVN0YXRlNCIsIm9wdGlvbnMiLCJzZXRPcHRpb25zIiwicmVxdWVzdFJlZiIsInVzZUxhdGVzdCIsInNlcVJlZiIsInVzZVJlZiIsImFib3J0UmVmIiwic2VyaWFsaXplZFBhcmFtcyIsInN0YWJsZVNlcmlhbGl6ZSIsImZldGNoT3B0aW9ucyIsInVzZU1lbW9pemVkRm4iLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIl9hIiwiZm4iLCJjb250cm9sbGVyIiwic2VxIiwiaXNBYm9ydCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsImN1cnJlbnQiLCJhYnJ1cHQiLCJhYm9ydCIsIkFib3J0Q29udHJvbGxlciIsInNpZ25hbCIsInNlbnQiLCJBcnJheSIsImlzQXJyYXkiLCJFcnJvciIsIm5hbWUiLCJmaW5pc2giLCJzdG9wIiwidXNlRWZmZWN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsY0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FDSkEsSUFBSU0sU0FBUyxHQUFJLFVBQVEsU0FBS0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDMUYsU0FBU0MsUUFBUUEsQ0FBQ1IsS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQ0UsS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUM3RixTQUFTRixJQUFJQSxDQUFDSSxNQUFNLEVBQUU7TUFBRUEsTUFBTSxDQUFDQyxJQUFJLEdBQUdULE9BQU8sQ0FBQ1EsTUFBTSxDQUFDVCxLQUFLLENBQUMsR0FBR0QsS0FBSyxDQUFDVSxNQUFNLENBQUNULEtBQUssQ0FBQyxDQUFDVyxJQUFJLENBQUNQLFNBQVMsRUFBRUksUUFBUSxDQUFDO0lBQUU7SUFDN0dILElBQUksQ0FBQyxDQUFDUCxTQUFTLEdBQUdBLFNBQVMsQ0FBQ2MsS0FBSyxDQUFDakIsT0FBTyxFQUFFQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUVVLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDekUsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBREREO0FDUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRE5NLFNBQVVPLGVBQWVBLENBQzdCQyxPQUVhLEVBQ2JDLE1BQTJDLEVBQUE7RUFBQSxJQUFBQyxLQUFBO0VBRTNDLElBQUFDLGFBQUEsR0FBOEIsSUFBQUMseUJBQVksRUFBQyxLQUFLLENBQUM7SUFBQUMsY0FBQSxPQUFBQyxlQUFBLGFBQUFILGFBQUE7SUFBMUNJLE9BQU8sR0FBQUYsY0FBQTtJQUFFRyxVQUFVLEdBQUFILGNBQUE7RUFDMUIsSUFBQUksY0FBQSxHQUE4QixJQUFBTCx5QkFBWSxFQUF5QixFQUFFLENBQUM7SUFBQU0sY0FBQSxPQUFBSixlQUFBLGFBQUFHLGNBQUE7SUFBL0RFLE9BQU8sR0FBQUQsY0FBQTtJQUFFRSxVQUFVLEdBQUFGLGNBQUE7RUFDMUI7RUFDQSxJQUFNRyxVQUFVLEdBQUcsSUFBQUMscUJBQVMsRUFBQ2QsT0FBTyxDQUFDO0VBQ3JDLElBQU1lLE1BQU0sR0FBRyxJQUFBQyxhQUFNLEVBQUMsQ0FBQyxDQUFDO0VBQ3hCLElBQU1DLFFBQVEsR0FBRyxJQUFBRCxhQUFNLEVBQXlCLElBQUksQ0FBQztFQUVyRCxJQUFNRSxnQkFBZ0IsR0FBRyxJQUFBQyxzQkFBZSxFQUFDbEIsTUFBTSxDQUFDO0VBRWhELElBQU1tQixZQUFZLEdBQUcsSUFBQUMseUJBQWEsRUFBQztJQUFBLE9BQVd6QyxTQUFBLENBQUFzQixLQUFBLEVBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFBLGVBQUFvQixZQUFBLFlBQUFDLElBQUEsQ0FBQSxTQUFBQyxRQUFBO01BQUEsSUFBQUMsRUFBQSxFQUFBQyxFQUFBLEVBQUFDLFVBQUEsRUFBQUMsR0FBQSxFQUFBakMsTUFBQSxFQUFBa0MsT0FBQSxFQUFBQyxFQUFBO01BQUEsT0FBQVIsWUFBQSxZQUFBUyxJQUFBLFdBQUFDLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQXhDLElBQUE7VUFBQTtZQUN0Q2tDLEVBQUUsR0FBR2IsVUFBVSxDQUFDcUIsT0FBTztZQUFBLElBQ3hCUixFQUFFO2NBQUFNLFFBQUEsQ0FBQXhDLElBQUE7Y0FBQTtZQUFBO1lBQUEsT0FBQXdDLFFBQUEsQ0FBQUcsTUFBQTtVQUFBO1lBQ1AsQ0FBQVYsRUFBQSxHQUFBUixRQUFRLENBQUNpQixPQUFPLE1BQUEsSUFBQSxJQUFBVCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRVcsS0FBSyxDQUFBLENBQUU7WUFDbkJULFVBQVUsR0FBRyxJQUFJVSxlQUFlLENBQUEsQ0FBRTtZQUN4Q3BCLFFBQVEsQ0FBQ2lCLE9BQU8sR0FBR1AsVUFBVTtZQUN2QkMsR0FBRyxHQUFHLEVBQUViLE1BQU0sQ0FBQ21CLE9BQU87WUFDNUIxQixVQUFVLENBQUMsSUFBSSxDQUFDO1lBQUN3QixRQUFBLENBQUFDLElBQUE7WUFBQUQsUUFBQSxDQUFBeEMsSUFBQTtZQUVBLE9BQU1rQyxFQUFFLENBQUN6QixNQUFNLEVBQUUwQixVQUFVLENBQUNXLE1BQU0sQ0FBQztVQUFBO1lBQTVDM0MsTUFBTSxHQUFBcUMsUUFBQSxDQUFBTyxJQUFBO1lBQUEsTUFDUlgsR0FBRyxLQUFLYixNQUFNLENBQUNtQixPQUFPO2NBQUFGLFFBQUEsQ0FBQXhDLElBQUE7Y0FBQTtZQUFBO1lBQUEsT0FBQXdDLFFBQUEsQ0FBQUcsTUFBQTtVQUFBO1lBQVU7WUFDcEMsSUFBSUssS0FBSyxDQUFDQyxPQUFPLENBQUM5QyxNQUFNLENBQUMsRUFBRTtjQUN6QmlCLFVBQVUsQ0FBQ2pCLE1BQU0sQ0FBQztZQUNwQjtZQUFDcUMsUUFBQSxDQUFBeEMsSUFBQTtZQUFBO1VBQUE7WUFBQXdDLFFBQUEsQ0FBQUMsSUFBQTtZQUFBSCxFQUFBLEdBQUFFLFFBQUE7WUFFRDtZQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ01ILE9BQU8sR0FBR0MsRUFBQSxZQUFpQlksS0FBSyxJQUFJWixFQUFBLENBQU1hLElBQUksS0FBSyxZQUFZO1lBQUEsTUFDakVmLEdBQUcsS0FBS2IsTUFBTSxDQUFDbUIsT0FBTyxJQUFJLENBQUNMLE9BQU87Y0FBQUcsUUFBQSxDQUFBeEMsSUFBQTtjQUFBO1lBQUE7WUFBQSxNQUFBc0MsRUFBQTtVQUFBO1lBQUFFLFFBQUEsQ0FBQUMsSUFBQTtZQUl0QyxJQUFJTCxHQUFHLEtBQUtiLE1BQU0sQ0FBQ21CLE9BQU8sRUFBRTtjQUMxQjFCLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDbkI7WUFBQyxPQUFBd0IsUUFBQSxDQUFBWSxNQUFBO1VBQUE7VUFBQTtZQUFBLE9BQUFaLFFBQUEsQ0FBQWEsSUFBQTtRQUFBO01BQUEsR0FBQXJCLE9BQUE7SUFBQSxDQUVKLEVBQUE7RUFBQSxFQUFDO0VBRUYsSUFBQXNCLGdCQUFTLEVBQUMsWUFBSztJQUNiLElBQUksQ0FBQ2pDLFVBQVUsQ0FBQ3FCLE9BQU8sRUFBRTtJQUN6QmQsWUFBWSxDQUFBLENBQUU7RUFDaEIsQ0FBQyxFQUFFLENBQUNGLGdCQUFnQixDQUFDLENBQUM7RUFFdEI7RUFDQTtFQUNBLElBQUE0QixnQkFBUyxFQUFDLFlBQUs7SUFDYixPQUFPLFlBQUs7TUNLSixJQUFJckIsRUFBRTtNREpaVixNQUFNLENBQUNtQixPQUFPLElBQUksQ0FBQztNQUNuQixDQUFBVCxFQUFBLEdBQUFSLFFBQVEsQ0FBQ2lCLE9BQU8sTUFBQSxJQUFBLElBQUFULEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFVyxLQUFLLENBQUEsQ0FBRTtJQUMzQixDQUFDO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLE9BQU8sQ0FBQzdCLE9BQU8sRUFBRUksT0FBTyxDQUFDO0FBQzNCO0FBQUMsSUFBQW9DLFFBQUEsR0FBQUMsT0FBQSxjQUVjakQsZUFBZSIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vaG9va3MvdXNlRmllbGRSZXF1ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZVNhZmVTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZVNhZmVTdGF0ZSc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgeyBzdGFibGVTZXJpYWxpemUgfSBmcm9tICcuLi91dGlscyc7XG4vKipcbiAqIEhvb2sgZm9yIGFzeW5jIG9wdGlvbiBmZXRjaGluZyB3aXRoIHBhcmFtLWJhc2VkIHJlLWZldGNoaW5nLlxuICogUmV0dXJucyBbbG9hZGluZywgb3B0aW9uc10uXG4gKlxuICogUmFjZS1zYWZlOiBlYWNoIGZldGNoIHRha2VzIGEgc2VxdWVuY2UgbnVtYmVyXG4gKiBhbmQgYWJvcnRzIHRoZSBwcmV2aW91cyBpbi1mbGlnaHQgcmVxdWVzdCDigJQgYSBzdGFsZSByZXNwb25zZSB0aGF0IHJlc29sdmVzXG4gKiBhZnRlciBhIG5ld2VyIHJlcXVlc3QgbmV2ZXIgb3ZlcndyaXRlcyB0aGUgbmV3ZXN0IG9wdGlvbnMsIGFuZCBvbmx5IHRoZVxuICogbmV3ZXN0IHJlcXVlc3QgY29udHJvbHMgYGxvYWRpbmdgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRmllbGRSZXF1ZXN0KHJlcXVlc3QsIHBhcmFtcykge1xuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW29wdGlvbnMsIHNldE9wdGlvbnNdID0gdXNlU2FmZVN0YXRlKFtdKTtcbiAgICAvLyBBbHdheXMgcmVhZCB0aGUgbmV3ZXN0IGByZXF1ZXN0YCB3aXRob3V0IHJlLXN1YnNjcmliaW5nIHRoZSBlZmZlY3QgYmVsb3cuXG4gICAgY29uc3QgcmVxdWVzdFJlZiA9IHVzZUxhdGVzdChyZXF1ZXN0KTtcbiAgICBjb25zdCBzZXFSZWYgPSB1c2VSZWYoMCk7XG4gICAgY29uc3QgYWJvcnRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VyaWFsaXplZFBhcmFtcyA9IHN0YWJsZVNlcmlhbGl6ZShwYXJhbXMpO1xuICAgIGNvbnN0IGZldGNoT3B0aW9ucyA9IHVzZU1lbW9pemVkRm4oKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGZuID0gcmVxdWVzdFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAoIWZuKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2EgPSBhYm9ydFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWJvcnQoKTtcbiAgICAgICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgYWJvcnRSZWYuY3VycmVudCA9IGNvbnRyb2xsZXI7XG4gICAgICAgIGNvbnN0IHNlcSA9ICsrc2VxUmVmLmN1cnJlbnQ7XG4gICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCBmbihwYXJhbXMsIGNvbnRyb2xsZXIuc2lnbmFsKTtcbiAgICAgICAgICAgIGlmIChzZXEgIT09IHNlcVJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gc3VwZXJzZWRlZCDigJQgZGlzY2FyZFxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICAgICAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFN1cGVyc2VkZWQgcmVxdWVzdHMgKG91ciBvd24gYWJvcnRzIGFsd2F5cyBsYW5kIGhlcmUgdmlhIHRoZSBzZXFcbiAgICAgICAgICAgIC8vIG1pc21hdGNoKSBhcmUgc3dhbGxvd2VkLiBGb3IgdGhlIExBVEVTVCByZXF1ZXN0LCBhbiBBYm9ydEVycm9yIGNhblxuICAgICAgICAgICAgLy8gb25seSBjb21lIGZyb20gYSBDT05TVU1FUi1zaWRlIGFib3J0IChlLmcuIEFib3J0U2lnbmFsLnRpbWVvdXQpIOKAlFxuICAgICAgICAgICAgLy8gYWxzbyBzd2FsbG93ZWQsIG1pcnJvcmluZyBmZXRjaC1jYW5jZWxsYXRpb24gY29udmVudGlvbnM7IGdlbnVpbmVcbiAgICAgICAgICAgIC8vIGZhaWx1cmVzIHByb3BhZ2F0ZS5cbiAgICAgICAgICAgIGNvbnN0IGlzQWJvcnQgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJztcbiAgICAgICAgICAgIGlmIChzZXEgPT09IHNlcVJlZi5jdXJyZW50ICYmICFpc0Fib3J0KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBpZiAoc2VxID09PSBzZXFSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSkpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghcmVxdWVzdFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBmZXRjaE9wdGlvbnMoKTtcbiAgICB9LCBbc2VyaWFsaXplZFBhcmFtc10pO1xuICAgIC8vIEhvbm9yIHRoZSBjYW5jZWxsYXRpb24gY29udHJhY3Qgb24gdW5tb3VudDogYWJvcnQgdGhlIGluLWZsaWdodCByZXF1ZXN0XG4gICAgLy8gYW5kIGJ1bXAgdGhlIHNlcXVlbmNlIHNvIGFueSBsYXRlIHNldHRsZSAocmVzdWx0IG9yIGVycm9yKSBpcyBkaXNjYXJkZWQuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIHNlcVJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgICAgICAoX2EgPSBhYm9ydFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWJvcnQoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIFtsb2FkaW5nLCBvcHRpb25zXTtcbn1cbmV4cG9ydCBkZWZhdWx0IHVzZUZpZWxkUmVxdWVzdDsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type ProFormSyncToUrl = boolean | ((values: Record<string, unknown>, type: 'get' | 'set') => Record<string, unknown>);
|
|
2
|
+
export interface UseUrlSyncOptions {
|
|
3
|
+
syncToUrl?: ProFormSyncToUrl;
|
|
4
|
+
/** Extra params always written to the URL alongside the form values. */
|
|
5
|
+
extraUrlParams?: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
export interface UseUrlSyncResult {
|
|
8
|
+
/** URL params captured at mount (after the `'get'` mapping) — merge into initialValues. */
|
|
9
|
+
urlInitialValues: Record<string, unknown>;
|
|
10
|
+
/** Write submitted values (+ extraUrlParams) into the URL. */
|
|
11
|
+
onUrlSyncFinish: (finalValues: Record<string, unknown>) => void;
|
|
12
|
+
/** Clear this form's own params; foreign params and extraUrlParams survive. */
|
|
13
|
+
onUrlSyncReset: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function useUrlSync({ syncToUrl, extraUrlParams }: UseUrlSyncOptions): UseUrlSyncResult;
|
|
16
|
+
export default useUrlSync;
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
exports.useUrlSync = useUrlSync;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var _useMemoizedFn = _interopRequireDefault(require("@1money/hooks/useMemoizedFn"));
|
|
12
|
+
var _utils = require("../utils");
|
|
13
|
+
function getUrlParams() {
|
|
14
|
+
if (typeof window === 'undefined') return {};
|
|
15
|
+
var params = {};
|
|
16
|
+
new URLSearchParams(window.location.search).forEach(function (v, k) {
|
|
17
|
+
params[k] = v;
|
|
18
|
+
});
|
|
19
|
+
return params;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Write the given values into the URL while PRESERVING unrelated query params.
|
|
23
|
+
* Only keys in `managedKeys` are cleared before writing. Returns the new set
|
|
24
|
+
* of managed keys.
|
|
25
|
+
*/
|
|
26
|
+
function setUrlParams(params, managedKeys) {
|
|
27
|
+
if (typeof window === 'undefined') return new Set(managedKeys);
|
|
28
|
+
var sp = new URLSearchParams(window.location.search);
|
|
29
|
+
managedKeys.forEach(function (k) {
|
|
30
|
+
return sp["delete"](k);
|
|
31
|
+
});
|
|
32
|
+
var written = new Set();
|
|
33
|
+
for (var _i = 0, _Object$entries = Object.entries(params); _i < _Object$entries.length; _i++) {
|
|
34
|
+
var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
|
|
35
|
+
k = _Object$entries$_i[0],
|
|
36
|
+
v = _Object$entries$_i[1];
|
|
37
|
+
if (v !== null && v !== undefined && v !== '') {
|
|
38
|
+
sp.set(k, String(v));
|
|
39
|
+
written.add(k);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
var search = sp.toString();
|
|
43
|
+
// PRESERVE the hash — hash routers keep their whole route there; dropping
|
|
44
|
+
// it would navigate the SPA away on every write.
|
|
45
|
+
var url = (search ? "".concat(window.location.pathname, "?").concat(search) : window.location.pathname) + window.location.hash;
|
|
46
|
+
// Skip the history call when nothing changes — Safari throttles the
|
|
47
|
+
// history API, so identical rewrites are wasted budget.
|
|
48
|
+
var currentUrl = "".concat(window.location.pathname).concat(window.location.search).concat(window.location.hash);
|
|
49
|
+
if (url !== currentUrl) {
|
|
50
|
+
window.history.replaceState(null, '', url);
|
|
51
|
+
}
|
|
52
|
+
return written;
|
|
53
|
+
}
|
|
54
|
+
function useUrlSync(_ref) {
|
|
55
|
+
var syncToUrl = _ref.syncToUrl,
|
|
56
|
+
extraUrlParams = _ref.extraUrlParams;
|
|
57
|
+
// One-time mount snapshot. Lazy ref init is IDEMPOTENT, so it is safe under
|
|
58
|
+
// StrictMode's double render (an impure "first run" flag inside useMemo
|
|
59
|
+
// would return the unmerged value on the replay invocation).
|
|
60
|
+
var urlParamsAtMountRef = (0, _react.useRef)(null);
|
|
61
|
+
if (urlParamsAtMountRef.current === null) {
|
|
62
|
+
urlParamsAtMountRef.current = syncToUrl ? getUrlParams() : {};
|
|
63
|
+
}
|
|
64
|
+
// The route this form mounted on. All deferred URL writes are guarded by
|
|
65
|
+
// it: an onFinish that NAVIGATES must not get the old form's params
|
|
66
|
+
// stamped onto the new route's URL. The pathname check covers path
|
|
67
|
+
// routers; the activeRef covers any navigation that UNMOUNTS the form
|
|
68
|
+
// (including hash routers, where the pathname never changes).
|
|
69
|
+
var mountPathnameRef = (0, _react.useRef)(typeof window === 'undefined' ? '' : window.location.pathname);
|
|
70
|
+
var activeRef = (0, _react.useRef)(true);
|
|
71
|
+
(0, _react.useEffect)(function () {
|
|
72
|
+
activeRef.current = true;
|
|
73
|
+
return function () {
|
|
74
|
+
activeRef.current = false;
|
|
75
|
+
};
|
|
76
|
+
}, []);
|
|
77
|
+
var isWritable = function isWritable() {
|
|
78
|
+
return activeRef.current && typeof window !== 'undefined' && window.location.pathname === mountPathnameRef.current;
|
|
79
|
+
};
|
|
80
|
+
// Keys this form has WRITTEN to the URL — the only keys submit/reset may clear.
|
|
81
|
+
var managedKeysRef = (0, _react.useRef)(new Set());
|
|
82
|
+
// Boolean-mode only: URL params merged into initialValues but NOT yet
|
|
83
|
+
// claimed (they may belong to someone else, e.g. `?tab=…`).
|
|
84
|
+
var urlSeededRef = (0, _react.useRef)({});
|
|
85
|
+
var urlInitialValuesRef = (0, _react.useRef)(null);
|
|
86
|
+
if (urlInitialValuesRef.current === null) {
|
|
87
|
+
if (!syncToUrl) {
|
|
88
|
+
urlInitialValuesRef.current = {};
|
|
89
|
+
} else if (typeof syncToUrl === 'function') {
|
|
90
|
+
var fromUrl = syncToUrl(urlParamsAtMountRef.current, 'get');
|
|
91
|
+
// Idempotent ref writes — same input on every invocation.
|
|
92
|
+
managedKeysRef.current = new Set(Object.keys(fromUrl));
|
|
93
|
+
urlInitialValuesRef.current = fromUrl;
|
|
94
|
+
} else {
|
|
95
|
+
urlSeededRef.current = Object.assign({}, urlParamsAtMountRef.current);
|
|
96
|
+
urlInitialValuesRef.current = Object.assign({}, urlParamsAtMountRef.current);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
var writeValues = (0, _useMemoizedFn["default"])(function (values) {
|
|
100
|
+
if (!syncToUrl || !isWritable()) return;
|
|
101
|
+
var toWrite;
|
|
102
|
+
var toClear = new Set(managedKeysRef.current);
|
|
103
|
+
if (typeof syncToUrl === 'function') {
|
|
104
|
+
// extraUrlParams bypass the consumer's mapper ("always written"): they
|
|
105
|
+
// form the base and the mapper's output wins on key collisions.
|
|
106
|
+
toWrite = Object.assign(Object.assign({}, extraUrlParams), syncToUrl(values, 'set'));
|
|
107
|
+
} else {
|
|
108
|
+
// Skip URL-seeded keys we never wrote whose value is unchanged — they
|
|
109
|
+
// may belong to someone else; leave them in the URL untouched. A seeded
|
|
110
|
+
// key whose value DID change is claimed from now on.
|
|
111
|
+
toWrite = {};
|
|
112
|
+
for (var _i2 = 0, _Object$entries2 = Object.entries(values); _i2 < _Object$entries2.length; _i2++) {
|
|
113
|
+
var _Object$entries2$_i = (0, _slicedToArray2["default"])(_Object$entries2[_i2], 2),
|
|
114
|
+
key = _Object$entries2$_i[0],
|
|
115
|
+
value = _Object$entries2$_i[1];
|
|
116
|
+
var seeded = urlSeededRef.current[key];
|
|
117
|
+
if (seeded !== undefined && !managedKeysRef.current.has(key) && String(value) === seeded) {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
delete urlSeededRef.current[key];
|
|
121
|
+
toClear.add(key);
|
|
122
|
+
toWrite[key] = value;
|
|
123
|
+
}
|
|
124
|
+
// Seeded keys missing from the submitted values were cleared by the
|
|
125
|
+
// user (omitNil strips empty values) — claim them and remove their
|
|
126
|
+
// stale params from the URL.
|
|
127
|
+
for (var _i3 = 0, _Object$keys = Object.keys(urlSeededRef.current); _i3 < _Object$keys.length; _i3++) {
|
|
128
|
+
var _key = _Object$keys[_i3];
|
|
129
|
+
if (!(_key in values)) {
|
|
130
|
+
delete urlSeededRef.current[_key];
|
|
131
|
+
toClear.add(_key);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
managedKeysRef.current = setUrlParams(toWrite, toClear);
|
|
136
|
+
});
|
|
137
|
+
var onUrlSyncFinish = (0, _useMemoizedFn["default"])(function (finalValues) {
|
|
138
|
+
if (!syncToUrl) return;
|
|
139
|
+
// extraUrlParams are applied exactly once per branch: pre-merged here for
|
|
140
|
+
// the boolean form (values win on collision); the function form applies
|
|
141
|
+
// them AFTER the consumer's mapper inside writeValues, so the mapper
|
|
142
|
+
// never sees foreign keys in its input.
|
|
143
|
+
var shouldPreMerge = typeof syncToUrl !== 'function' && extraUrlParams;
|
|
144
|
+
writeValues(shouldPreMerge ? Object.assign(Object.assign({}, extraUrlParams), finalValues) : finalValues);
|
|
145
|
+
});
|
|
146
|
+
var onUrlSyncReset = (0, _useMemoizedFn["default"])(function () {
|
|
147
|
+
if (!syncToUrl || !isWritable()) return;
|
|
148
|
+
// Clear every managed key, then re-write extraUrlParams (they persist).
|
|
149
|
+
managedKeysRef.current = setUrlParams(Object.assign({}, extraUrlParams), managedKeysRef.current);
|
|
150
|
+
});
|
|
151
|
+
// Keep extraUrlParams in the URL as they change (value-compared). The
|
|
152
|
+
// previously-written extra keys are tracked so a key REMOVED from
|
|
153
|
+
// extraUrlParams is also removed from the URL — not just overwritten.
|
|
154
|
+
var extraKeysRef = (0, _react.useRef)(new Set());
|
|
155
|
+
var serializedExtra = syncToUrl ? (0, _utils.stableSerialize)(extraUrlParams) : '';
|
|
156
|
+
(0, _react.useEffect)(function () {
|
|
157
|
+
if (!syncToUrl || !isWritable()) return;
|
|
158
|
+
var next = extraUrlParams !== null && extraUrlParams !== void 0 ? extraUrlParams : {};
|
|
159
|
+
if (extraKeysRef.current.size === 0 && Object.keys(next).length === 0) return;
|
|
160
|
+
var written = setUrlParams(Object.assign({}, next), extraKeysRef.current);
|
|
161
|
+
var merged = new Set(managedKeysRef.current);
|
|
162
|
+
extraKeysRef.current.forEach(function (key) {
|
|
163
|
+
if (!written.has(key)) merged["delete"](key);
|
|
164
|
+
});
|
|
165
|
+
written.forEach(function (key) {
|
|
166
|
+
return merged.add(key);
|
|
167
|
+
});
|
|
168
|
+
managedKeysRef.current = merged;
|
|
169
|
+
extraKeysRef.current = written;
|
|
170
|
+
}, [serializedExtra]);
|
|
171
|
+
return {
|
|
172
|
+
urlInitialValues: urlInitialValuesRef.current,
|
|
173
|
+
onUrlSyncFinish: onUrlSyncFinish,
|
|
174
|
+
onUrlSyncReset: onUrlSyncReset
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
var _default = exports["default"] = useUrlSync;
|
|
178
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2hvb2tzL3VzZVVybFN5bmMudHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vaG9va3MvdXNlVXJsU3luYy5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3VzZU1lbW9pemVkRm4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3V0aWxzIiwiZ2V0VXJsUGFyYW1zIiwid2luZG93IiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwibG9jYXRpb24iLCJzZWFyY2giLCJmb3JFYWNoIiwidiIsImsiLCJzZXRVcmxQYXJhbXMiLCJtYW5hZ2VkS2V5cyIsIlNldCIsInNwIiwid3JpdHRlbiIsIl9pIiwiX09iamVjdCRlbnRyaWVzIiwiT2JqZWN0IiwiZW50cmllcyIsImxlbmd0aCIsIl9PYmplY3QkZW50cmllcyRfaSIsIl9zbGljZWRUb0FycmF5MiIsInVuZGVmaW5lZCIsInNldCIsIlN0cmluZyIsImFkZCIsInRvU3RyaW5nIiwidXJsIiwiY29uY2F0IiwicGF0aG5hbWUiLCJoYXNoIiwiY3VycmVudFVybCIsImhpc3RvcnkiLCJyZXBsYWNlU3RhdGUiLCJ1c2VVcmxTeW5jIiwiX3JlZiIsInN5bmNUb1VybCIsImV4dHJhVXJsUGFyYW1zIiwidXJsUGFyYW1zQXRNb3VudFJlZiIsInVzZVJlZiIsImN1cnJlbnQiLCJtb3VudFBhdGhuYW1lUmVmIiwiYWN0aXZlUmVmIiwidXNlRWZmZWN0IiwiaXNXcml0YWJsZSIsIm1hbmFnZWRLZXlzUmVmIiwidXJsU2VlZGVkUmVmIiwidXJsSW5pdGlhbFZhbHVlc1JlZiIsImZyb21VcmwiLCJrZXlzIiwiYXNzaWduIiwid3JpdGVWYWx1ZXMiLCJ1c2VNZW1vaXplZEZuIiwidmFsdWVzIiwidG9Xcml0ZSIsInRvQ2xlYXIiLCJfaTIiLCJfT2JqZWN0JGVudHJpZXMyIiwiX09iamVjdCRlbnRyaWVzMiRfaSIsImtleSIsInZhbHVlIiwic2VlZGVkIiwiaGFzIiwiX2kzIiwiX09iamVjdCRrZXlzIiwib25VcmxTeW5jRmluaXNoIiwiZmluYWxWYWx1ZXMiLCJzaG91bGRQcmVNZXJnZSIsIm9uVXJsU3luY1Jlc2V0IiwiZXh0cmFLZXlzUmVmIiwic2VyaWFsaXplZEV4dHJhIiwic3RhYmxlU2VyaWFsaXplIiwibmV4dCIsInNpemUiLCJtZXJnZWQiLCJ1cmxJbml0aWFsVmFsdWVzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxjQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFpQkEsU0FBU0ksWUFBWUEsQ0FBQSxFQUFBO0VBQ25CLElBQUksT0FBT0MsTUFBTSxLQUFLLFdBQVcsRUFBRSxPQUFPLENBQUEsQ0FBRTtFQUM1QyxJQUFNQyxNQUFNLEdBQTJCLENBQUEsQ0FBRTtFQUN6QyxJQUFJQyxlQUFlLENBQUNGLE1BQU0sQ0FBQ0csUUFBUSxDQUFDQyxNQUFNLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLFVBQUNDLENBQUMsRUFBRUMsQ0FBQyxFQUFJO0lBQzNETixNQUFNLENBQUNNLENBQUMsQ0FBQyxHQUFHRCxDQUFDO0VBQ2YsQ0FBQyxDQUFDO0VBQ0YsT0FBT0wsTUFBTTtBQUNmO0FBRUE7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBRGlCQSxTQUFTTyxZQUFZQSxDQUNuQlAsTUFBK0IsRUFDL0JRLFdBQWdDLEVBQUE7RUFFaEMsSUFBSSxPQUFPVCxNQUFNLEtBQUssV0FBVyxFQUFFLE9BQU8sSUFBSVUsR0FBRyxDQUFDRCxXQUFXLENBQUM7RUFDOUQsSUFBTUUsRUFBRSxHQUFHLElBQUlULGVBQWUsQ0FBQ0YsTUFBTSxDQUFDRyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN0REssV0FBVyxDQUFDSixPQUFPLENBQUMsVUFBQ0UsQ0FBQztJQUFBLE9BQUtJLEVBQUUsVUFBTyxDQUFDSixDQUFD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LE9BQU87RUFDaEMsQ0FBQyxFQUFFLENBQUN3RCxlQUFlLENBQUMsQ0FBQztFQUVyQixPQUFPO0lBQ0xLLGdCQUFnQixFQUFFNUIsbUJBQW1CLENBQUNQLE9BQU87SUFDN0N5QixlQUFlLEVBQWZBLGVBQWU7SUFDZkcsY0FBYyxFQUFkQTtFQ3ZDQSxDRHdDRDtBQUNIO0FBQUMsSUFBQVEsUUFBQSxHQUFBQyxPQUFBLGNBRWMzQyxVQUFVIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9ob29rcy91c2VVcmxTeW5jLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgeyBzdGFibGVTZXJpYWxpemUgfSBmcm9tICcuLi91dGlscyc7XG5mdW5jdGlvbiBnZXRVcmxQYXJhbXMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgIHBhcmFtc1trXSA9IHY7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cbi8qKlxuICogV3JpdGUgdGhlIGdpdmVuIHZhbHVlcyBpbnRvIHRoZSBVUkwgd2hpbGUgUFJFU0VSVklORyB1bnJlbGF0ZWQgcXVlcnkgcGFyYW1zLlxuICogT25seSBrZXlzIGluIGBtYW5hZ2VkS2V5c2AgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXRpbmcuIFJldHVybnMgdGhlIG5ldyBzZXRcbiAqIG9mIG1hbmFnZWQga2V5cy5cbiAqL1xuZnVuY3Rpb24gc2V0VXJsUGFyYW1zKHBhcmFtcywgbWFuYWdlZEtleXMpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybiBuZXcgU2V0KG1hbmFnZWRLZXlzKTtcbiAgICBjb25zdCBzcCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgbWFuYWdlZEtleXMuZm9yRWFjaCgoaykgPT4gc3AuZGVsZXRlKGspKTtcbiAgICBjb25zdCB3cml0dGVuID0gbmV3IFNldCgpO1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcbiAgICAgICAgaWYgKHYgIT09IG51bGwgJiYgdiAhPT0gdW5kZWZpbmVkICYmIHYgIT09ICcnKSB7XG4gICAgICAgICAgICBzcC5zZXQoaywgU3RyaW5nKHYpKTtcbiAgICAgICAgICAgIHdyaXR0ZW4uYWRkKGspO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHNlYXJjaCA9IHNwLnRvU3RyaW5nKCk7XG4gICAgLy8gUFJFU0VSVkUgdGhlIGhhc2gg4oCUIGhhc2ggcm91dGVycyBrZWVwIHRoZWlyIHdob2xlIHJvdXRlIHRoZXJlOyBkcm9wcGluZ1xuICAgIC8vIGl0IHdvdWxkIG5hdmlnYXRlIHRoZSBTUEEgYXdheSBvbiBldmVyeSB3cml0ZS5cbiAgICBjb25zdCB1cmwgPSAoc2VhcmNoID8gYCR7d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfT8ke3NlYXJjaH1gIDogd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSArXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuICAgIC8vIFNraXAgdGhlIGhpc3RvcnkgY2FsbCB3aGVuIG5vdGhpbmcgY2hhbmdlcyDigJQgU2FmYXJpIHRocm90dGxlcyB0aGVcbiAgICAvLyBoaXN0b3J5IEFQSSwgc28gaWRlbnRpY2FsIHJld3JpdGVzIGFyZSB3YXN0ZWQgYnVkZ2V0LlxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSBgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9JHt3aW5kb3cubG9jYXRpb24uc2VhcmNofSR7d2luZG93LmxvY2F0aW9uLmhhc2h9YDtcbiAgICBpZiAodXJsICE9PSBjdXJyZW50VXJsKSB7XG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCAnJywgdXJsKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXR0ZW47XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlVXJsU3luYyh7IHN5bmNUb1VybCwgZXh0cmFVcmxQYXJhbXMgfSkge1xuICAgIC8vIE9uZS10aW1lIG1vdW50IHNuYXBzaG90LiBMYXp5IHJlZiBpbml0IGlzIElERU1QT1RFTlQsIHNvIGl0IGlzIHNhZmUgdW5kZXJcbiAgICAvLyBTdHJpY3RNb2RlJ3MgZG91YmxlIHJlbmRlciAoYW4gaW1wdXJlIFwiZmlyc3QgcnVuXCIgZmxhZyBpbnNpZGUgdXNlTWVtb1xuICAgIC8vIHdvdWxkIHJldHVybiB0aGUgdW5tZXJnZWQgdmFsdWUgb24gdGhlIHJlcGxheSBpbnZvY2F0aW9uKS5cbiAgICBjb25zdCB1cmxQYXJhbXNBdE1vdW50UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGlmICh1cmxQYXJhbXNBdE1vdW50UmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgdXJsUGFyYW1zQXRNb3VudFJlZi5jdXJyZW50ID0gc3luY1RvVXJsID8gZ2V0VXJsUGFyYW1zKCkgOiB7fTtcbiAgICB9XG4gICAgLy8gVGhlIHJvdXRlIHRoaXMgZm9ybSBtb3VudGVkIG9uLiBBbGwgZGVmZXJyZWQgVVJMIHdyaXRlcyBhcmUgZ3VhcmRlZCBieVxuICAgIC8vIGl0OiBhbiBvbkZpbmlzaCB0aGF0IE5BVklHQVRFUyBtdXN0IG5vdCBnZXQgdGhlIG9sZCBmb3JtJ3MgcGFyYW1zXG4gICAgLy8gc3RhbXBlZCBvbnRvIHRoZSBuZXcgcm91dGUncyBVUkwuIFRoZSBwYXRobmFtZSBjaGVjayBjb3ZlcnMgcGF0aFxuICAgIC8vIHJvdXRlcnM7IHRoZSBhY3RpdmVSZWYgY292ZXJzIGFueSBuYXZpZ2F0aW9uIHRoYXQgVU5NT1VOVFMgdGhlIGZvcm1cbiAgICAvLyAoaW5jbHVkaW5nIGhhc2ggcm91dGVycywgd2hlcmUgdGhlIHBhdGhuYW1lIG5ldmVyIGNoYW5nZXMpLlxuICAgIGNvbnN0IG1vdW50UGF0aG5hbWVSZWYgPSB1c2VSZWYodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgPyAnJyA6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgY29uc3QgYWN0aXZlUmVmID0gdXNlUmVmKHRydWUpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGFjdGl2ZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGFjdGl2ZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGlzV3JpdGFibGUgPSAoKSA9PiBhY3RpdmVSZWYuY3VycmVudCAmJlxuICAgICAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgPT09IG1vdW50UGF0aG5hbWVSZWYuY3VycmVudDtcbiAgICAvLyBLZXlzIHRoaXMgZm9ybSBoYXMgV1JJVFRFTiB0byB0aGUgVVJMIOKAlCB0aGUgb25seSBrZXlzIHN1Ym1pdC9yZXNldCBtYXkgY2xlYXIuXG4gICAgY29uc3QgbWFuYWdlZEtleXNSZWYgPSB1c2VSZWYobmV3IFNldCgpKTtcbiAgICAvLyBCb29sZWFuLW1vZGUgb25seTogVVJMIHBhcmFtcyBtZXJnZWQgaW50byBpbml0aWFsVmFsdWVzIGJ1dCBOT1QgeWV0XG4gICAgLy8gY2xhaW1lZCAodGhleSBtYXkgYmVsb25nIHRvIHNvbWVvbmUgZWxzZSwgZS5nLiBgP3RhYj3igKZgKS5cbiAgICBjb25zdCB1cmxTZWVkZWRSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IHVybEluaXRpYWxWYWx1ZXNSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKHVybEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBpZiAoIXN5bmNUb1VybCkge1xuICAgICAgICAgICAgdXJsSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50ID0ge307XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHN5bmNUb1VybCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY29uc3QgZnJvbVVybCA9IHN5bmNUb1VybCh1cmxQYXJhbXNBdE1vdW50UmVmLmN1cnJlbnQsICdnZXQnKTtcbiAgICAgICAgICAgIC8vIElkZW1wb3RlbnQgcmVmIHdyaXRlcyDigJQgc2FtZSBpbnB1dCBvbiBldmVyeSBpbnZvY2F0aW9uLlxuICAgICAgICAgICAgbWFuYWdlZEtleXNSZWYuY3VycmVudCA9IG5ldyBTZXQoT2JqZWN0LmtleXMoZnJvbVVybCkpO1xuICAgICAgICAgICAgdXJsSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50ID0gZnJvbVVybDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHVybFNlZWRlZFJlZi5jdXJyZW50ID0gT2JqZWN0LmFzc2lnbih7fSwgdXJsUGFyYW1zQXRNb3VudFJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIHVybEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9IE9iamVjdC5hc3NpZ24oe30sIHVybFBhcmFtc0F0TW91bnRSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgd3JpdGVWYWx1ZXMgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaWYgKCFzeW5jVG9VcmwgfHwgIWlzV3JpdGFibGUoKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgbGV0IHRvV3JpdGU7XG4gICAgICAgIGNvbnN0IHRvQ2xlYXIgPSBuZXcgU2V0KG1hbmFnZWRLZXlzUmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAodHlwZW9mIHN5bmNUb1VybCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgLy8gZXh0cmFVcmxQYXJhbXMgYnlwYXNzIHRoZSBjb25zdW1lcidzIG1hcHBlciAoXCJhbHdheXMgd3JpdHRlblwiKTogdGhleVxuICAgICAgICAgICAgLy8gZm9ybSB0aGUgYmFzZSBhbmQgdGhlIG1hcHBlcidzIG91dHB1dCB3aW5zIG9uIGtleSBjb2xsaXNpb25zLlxuICAgICAgICAgICAgdG9Xcml0ZSA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZXh0cmFVcmxQYXJhbXMpLCBzeW5jVG9VcmwodmFsdWVzLCAnc2V0JykpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gU2tpcCBVUkwtc2VlZGVkIGtleXMgd2UgbmV2ZXIgd3JvdGUgd2hvc2UgdmFsdWUgaXMgdW5jaGFuZ2VkIOKAlCB0aGV5XG4gICAgICAgICAgICAvLyBtYXkgYmVsb25nIHRvIHNvbWVvbmUgZWxzZTsgbGVhdmUgdGhlbSBpbiB0aGUgVVJMIHVudG91Y2hlZC4gQSBzZWVkZWRcbiAgICAgICAgICAgIC8vIGtleSB3aG9zZSB2YWx1ZSBESUQgY2hhbmdlIGlzIGNsYWltZWQgZnJvbSBub3cgb24uXG4gICAgICAgICAgICB0b1dyaXRlID0ge307XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VlZGVkID0gdXJsU2VlZGVkUmVmLmN1cnJlbnRba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoc2VlZGVkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgIW1hbmFnZWRLZXlzUmVmLmN1cnJlbnQuaGFzKGtleSkgJiZcbiAgICAgICAgICAgICAgICAgICAgU3RyaW5nKHZhbHVlKSA9PT0gc2VlZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWxldGUgdXJsU2VlZGVkUmVmLmN1cnJlbnRba2V5XTtcbiAgICAgICAgICAgICAgICB0b0NsZWFyLmFkZChrZXkpO1xuICAgICAgICAgICAgICAgIHRvV3JpdGVba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2VlZGVkIGtleXMgbWlzc2luZyBmcm9tIHRoZSBzdWJtaXR0ZWQgdmFsdWVzIHdlcmUgY2xlYXJlZCBieSB0aGVcbiAgICAgICAgICAgIC8vIHVzZXIgKG9taXROaWwgc3RyaXBzIGVtcHR5IHZhbHVlcykg4oCUIGNsYWltIHRoZW0gYW5kIHJlbW92ZSB0aGVpclxuICAgICAgICAgICAgLy8gc3RhbGUgcGFyYW1zIGZyb20gdGhlIFVSTC5cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHVybFNlZWRlZFJlZi5jdXJyZW50KSkge1xuICAgICAgICAgICAgICAgIGlmICghKGtleSBpbiB2YWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB1cmxTZWVkZWRSZWYuY3VycmVudFtrZXldO1xuICAgICAgICAgICAgICAgICAgICB0b0NsZWFyLmFkZChrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBtYW5hZ2VkS2V5c1JlZi5jdXJyZW50ID0gc2V0VXJsUGFyYW1zKHRvV3JpdGUsIHRvQ2xlYXIpO1xuICAgIH0pO1xuICAgIGNvbnN0IG9uVXJsU3luY0ZpbmlzaCA9IHVzZU1lbW9pemVkRm4oKGZpbmFsVmFsdWVzKSA9PiB7XG4gICAgICAgIGlmICghc3luY1RvVXJsKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyBleHRyYVVybFBhcmFtcyBhcmUgYXBwbGllZCBleGFjdGx5IG9uY2UgcGVyIGJyYW5jaDogcHJlLW1lcmdlZCBoZXJlIGZvclxuICAgICAgICAvLyB0aGUgYm9vbGVhbiBmb3JtICh2YWx1ZXMgd2luIG9uIGNvbGxpc2lvbik7IHRoZSBmdW5jdGlvbiBmb3JtIGFwcGxpZXNcbiAgICAgICAgLy8gdGhlbSBBRlRFUiB0aGUgY29uc3VtZXIncyBtYXBwZXIgaW5zaWRlIHdyaXRlVmFsdWVzLCBzbyB0aGUgbWFwcGVyXG4gICAgICAgIC8vIG5ldmVyIHNlZXMgZm9yZWlnbiBrZXlzIGluIGl0cyBpbnB1dC5cbiAgICAgICAgY29uc3Qgc2hvdWxkUHJlTWVyZ2UgPSB0eXBlb2Ygc3luY1RvVXJsICE9PSAnZnVuY3Rpb24nICYmIGV4dHJhVXJsUGFyYW1zO1xuICAgICAgICB3cml0ZVZhbHVlcyhzaG91bGRQcmVNZXJnZSA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZXh0cmFVcmxQYXJhbXMpLCBmaW5hbFZhbHVlcykgOiBmaW5hbFZhbHVlcyk7XG4gICAgfSk7XG4gICAgY29uc3Qgb25VcmxTeW5jUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgaWYgKCFzeW5jVG9VcmwgfHwgIWlzV3JpdGFibGUoKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgLy8gQ2xlYXIgZXZlcnkgbWFuYWdlZCBrZXksIHRoZW4gcmUtd3JpdGUgZXh0cmFVcmxQYXJhbXMgKHRoZXkgcGVyc2lzdCkuXG4gICAgICAgIG1hbmFnZWRLZXlzUmVmLmN1cnJlbnQgPSBzZXRVcmxQYXJhbXMoT2JqZWN0LmFzc2lnbih7fSwgZXh0cmFVcmxQYXJhbXMpLCBtYW5hZ2VkS2V5c1JlZi5jdXJyZW50KTtcbiAgICB9KTtcbiAgICAvLyBLZWVwIGV4dHJhVXJsUGFyYW1zIGluIHRoZSBVUkwgYXMgdGhleSBjaGFuZ2UgKHZhbHVlLWNvbXBhcmVkKS4gVGhlXG4gICAgLy8gcHJldmlvdXNseS13cml0dGVuIGV4dHJhIGtleXMgYXJlIHRyYWNrZWQgc28gYSBrZXkgUkVNT1ZFRCBmcm9tXG4gICAgLy8gZXh0cmFVcmxQYXJhbXMgaXMgYWxzbyByZW1vdmVkIGZyb20gdGhlIFVSTCDigJQgbm90IGp1c3Qgb3ZlcndyaXR0ZW4uXG4gICAgY29uc3QgZXh0cmFLZXlzUmVmID0gdXNlUmVmKG5ldyBTZXQoKSk7XG4gICAgY29uc3Qgc2VyaWFsaXplZEV4dHJhID0gc3luY1RvVXJsID8gc3RhYmxlU2VyaWFsaXplKGV4dHJhVXJsUGFyYW1zKSA6ICcnO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghc3luY1RvVXJsIHx8ICFpc1dyaXRhYmxlKCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG5leHQgPSBleHRyYVVybFBhcmFtcyAhPT0gbnVsbCAmJiBleHRyYVVybFBhcmFtcyAhPT0gdm9pZCAwID8gZXh0cmFVcmxQYXJhbXMgOiB7fTtcbiAgICAgICAgaWYgKGV4dHJhS2V5c1JlZi5jdXJyZW50LnNpemUgPT09IDAgJiYgT2JqZWN0LmtleXMobmV4dCkubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB3cml0dGVuID0gc2V0VXJsUGFyYW1zKE9iamVjdC5hc3NpZ24oe30sIG5leHQpLCBleHRyYUtleXNSZWYuY3VycmVudCk7XG4gICAgICAgIGNvbnN0IG1lcmdlZCA9IG5ldyBTZXQobWFuYWdlZEtleXNSZWYuY3VycmVudCk7XG4gICAgICAgIGV4dHJhS2V5c1JlZi5jdXJyZW50LmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF3cml0dGVuLmhhcyhrZXkpKVxuICAgICAgICAgICAgICAgIG1lcmdlZC5kZWxldGUoa2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHdyaXR0ZW4uZm9yRWFjaCgoa2V5KSA9PiBtZXJnZWQuYWRkKGtleSkpO1xuICAgICAgICBtYW5hZ2VkS2V5c1JlZi5jdXJyZW50ID0gbWVyZ2VkO1xuICAgICAgICBleHRyYUtleXNSZWYuY3VycmVudCA9IHdyaXR0ZW47XG4gICAgfSwgW3NlcmlhbGl6ZWRFeHRyYV0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHVybEluaXRpYWxWYWx1ZXM6IHVybEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCxcbiAgICAgICAgb25VcmxTeW5jRmluaXNoLFxuICAgICAgICBvblVybFN5bmNSZXNldCxcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlVXJsU3luYzsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -7,7 +7,7 @@ declare const ProForm: import("./ProForm").ProFormComponent & {
|
|
|
7
7
|
useInstance: <Values = Record<string, unknown>>() => import("./interface").ProFormFormInstance<Values>;
|
|
8
8
|
useContext: () => import("./interface").ProFormContextValue;
|
|
9
9
|
useWatch: import("./context").UseFormWatch;
|
|
10
|
-
Dependency: import("
|
|
10
|
+
Dependency: import("./ProFormDependency").ProFormDependencyComponent;
|
|
11
11
|
List: import("react").NamedExoticComponent<import("./interface").ProFormListProps>;
|
|
12
12
|
Group: import("react").NamedExoticComponent<import("./interface").ProFormGroupProps>;
|
|
13
13
|
FieldSet: import("react").NamedExoticComponent<import("./interface").ProFormFieldSetProps>;
|
|
@@ -39,7 +39,7 @@ export { DialogForm } from './layouts/DialogForm';
|
|
|
39
39
|
export { QueryFilter } from './layouts/QueryFilter';
|
|
40
40
|
export { useFormWatch } from './context';
|
|
41
41
|
export type { UseFormWatch } from './context';
|
|
42
|
-
export type { ProFormProps, ProFormItemProps, ProFormItemSharedProps, ProFormFieldProps, ProFormContextValue, ProFormStableContextValue, ProFormStateContextValue, ProFormFormInstance, ProFormFieldTransformFn, ProFormFieldConvertValueFn, ProFormDateFormatter, ProFormValueEnumObj, ProFormRequestOption, ProFormValueType, FormListContextValue, ProFormColProps, ProFormFieldSetProps, ProFormGroupProps, SubmitterProps, ProFormDependencyProps, ProFormListProps, ProFormListAction, DrawerFormProps, DialogFormProps, QueryFilterProps, CreateProFormFieldConfig, ProFormSchemaColumn, ProFormSchemaValueType, SchemaFormProps, } from './interface';
|
|
42
|
+
export type { ProFormSyncToUrl, ProFormProps, ProFormItemProps, ProFormItemSharedProps, ProFormLayoutConfig, ProFormFieldProps, ProFormContextValue, ProFormStableContextValue, ProFormStateContextValue, ProFormFormInstance, ProFormValidateResult, ProFormFieldName, ProFormFieldTransformFn, ProFormFieldConvertValueFn, ProFormDateFormatter, ProFormValueEnumObj, ProFormRequestOption, ProFormValueType, FormListContextValue, ProFormColProps, ProFormFieldSetProps, ProFormGroupProps, SubmitterProps, ProFormDependencyProps, ProFormListProps, ProFormListAction, DrawerFormProps, DialogFormProps, QueryFilterProps, CreateProFormFieldConfig, ProFormSchemaColumn, ProFormSchemaValueType, SchemaFormProps, } from './interface';
|
|
43
43
|
export { CSS_PREFIX, WIDTH_SIZE_MAP, DEFAULT_COL_SPAN, DEFAULT_TEXT, PROFORM_MODES } from './constants';
|
|
44
44
|
export type { ProFormMode } from './constants';
|
|
45
45
|
export type { FormInstance, FormCoreInstance, Rule, ValidateTrigger, ValidateStatus, FormLayout, FormSize, LabelAlign, UseFormConfig, UseFormReturn, UseFormInternals, } from './core/interface';
|
|
@@ -218,4 +218,4 @@ var ProForm = exports.ProForm = Object.assign(_ProForm.ProForm, {
|
|
|
218
218
|
});
|
|
219
219
|
var _default = exports["default"] = ProForm; // Named exports for fields
|
|
220
220
|
// Composition + layouts
|
|
221
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
221
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9pbmRleC50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9pbmRleC5qcyJdLCJuYW1lcyI6WyJfUHJvRm9ybSIsInJlcXVpcmUiLCJfUHJvRm9ybUl0ZW0iLCJfUHJvRm9ybURlcGVuZGVuY3kiLCJfUHJvRm9ybUxpc3QiLCJfUHJvRm9ybUdyb3VwIiwiX1NjaGVtYUZvcm0iLCJfU3VibWl0dGVyIiwiX2ZpZWxkcyIsIl91c2VGb3JtIiwiX2NvbnRleHQiLCJfRHJhd2VyRm9ybSIsIl9EaWFsb2dGb3JtIiwiX1F1ZXJ5RmlsdGVyIiwiX2NvbnN0YW50cyIsInVzZUZvcm0iLCJjb25maWciLCJfdXNlRm9ybUludGVybmFsIiwidXNlRm9ybUludGVybmFsIiwiZm9ybUluc3RhbmNlIiwiUHJvRm9ybSIsImV4cG9ydHMiLCJPYmplY3QiLCJhc3NpZ24iLCJQcm9Gb3JtQmFzZSIsIkl0ZW0iLCJQcm9Gb3JtSXRlbSIsInVzZUluc3RhbmNlIiwidXNlRm9ybUluc3RhbmNlIiwidXNlQ29udGV4dCIsInVzZVByb0Zvcm1Db250ZXh0IiwidXNlV2F0Y2giLCJ1c2VGb3JtV2F0Y2giLCJEZXBlbmRlbmN5IiwiUHJvRm9ybURlcGVuZGVuY3kiLCJMaXN0IiwiUHJvRm9ybUxpc3QiLCJHcm91cCIsIlByb0Zvcm1Hcm91cCIsIkZpZWxkU2V0IiwiUHJvRm9ybUZpZWxkU2V0IiwiU2NoZW1hRm9ybSIsIlN1Ym1pdHRlciIsIlRleHQiLCJQcm9Gb3JtVGV4dCIsIlBhc3N3b3JkIiwiUHJvRm9ybVBhc3N3b3JkIiwiVGV4dEFyZWEiLCJQcm9Gb3JtVGV4dEFyZWEiLCJDaGVja2JveCIsIlByb0Zvcm1DaGVja2JveCIsIkNoZWNrYm94R3JvdXAiLCJQcm9Gb3JtQ2hlY2tib3hHcm91cCIsIlN3aXRjaCIsIlByb0Zvcm1Td2l0Y2giLCJTZWxlY3QiLCJQcm9Gb3JtU2VsZWN0IiwiUmFkaW9Hcm91cCIsIlByb0Zvcm1SYWRpb0dyb3VwIiwiU2xpZGVyIiwiUHJvRm9ybVNsaWRlciIsIkRhdGVQaWNrZXIiLCJQcm9Gb3JtRGF0ZVBpY2tlciIsIlVwbG9hZCIsIlByb0Zvcm1VcGxvYWQiLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFlBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGtCQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFQLE9BQUE7QUFjQSxJQUFBUSxRQUFBLEdBQUFSLE9BQUE7QUFFQSxJQUFBUyxRQUFBLEdBQUFULE9BQUE7QUFDQUEsT0FBQTtBQWdFQSxJQUFBVSxXQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxXQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxZQUFBLEdBQUFaLE9BQUE7QUF5Q0EsSUFBQWEsVUFBQSxHQUFBYixPQUFBO0FBekdBO0FBQ0EsSUFBTWMsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQ1hDLE1BQThCLEVBQ0o7RUFDMUIsSUFBQUMsZ0JBQUEsR0FBeUIsSUFBQUMsZ0JBQWUsRUFBQ0YsTUFBbUMsQ0FBQztJQUFyRUcsWUFBWSxHQUFBRixnQkFBQSxDQUFaRSxZQUFZO0VBQ3BCLE9BQU8sQ0FBQ0EsWUFBb0MsQ0FBQztBQUMvQyxDQUFDO0FBRUQ7QUFDQSxJQUFNQyxPQUFPLEdBQUFDLE9BQUEsQ0FBQUQsT0FBQSxHQUFHRSxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsZ0JBQVcsRUFBRTtFQUN6QztFQUNBQyxJQUFJLEVBQUVDLHdCQUFXO0VBQ2pCWCxPQUFPLEVBQVBBLE9BQU87RUFDUFksV0FBVyxFQUFFQyx3QkFBZTtFQUM1QkMsVUFBVSxFQUFFQywwQkFBaUI7RUFDN0JDLFFBQVEsRUFBRUMscUJBQVk7RUFDdEI7RUFDQUMsVUFBVSxFQUFFQyxvQ0FBaUI7RUFDN0JDLElBQUksRUFBRUMsd0JBQVc7RUFDakJDLEtBQUssRUFBRUMsMEJBQVk7RUFDbkJDLFFBQVEsRUFBRUMsdUJBQWU7RUFDekJDLFVBQVUsRUFBVkEsc0JBQVU7RUFDVkMsU0FBUyxFQUFUQSxvQkFBUztFQUNUO0VBQ0FDLElBQUksRUFBRUMsbUJBQVc7RUFDakJDLFFBQVEsRUFBRUMsdUJBQWU7RUFDekJDLFFBQVEsRUFBRUMsdUJBQWU7RUFDekJDLFFBQVEsRUFBRUMsdUJBQWU7RUFDekJDLGFBQWEsRUFBRUMsNEJBQW9CO0VBQ25DQyxNQUFNLEVBQUVDLHFCQUFhO0VBQ3JCQyxNQUFNLEVBQUVDLHFCQUFhO0VBQ3JCQyxVQUFVLEVBQUVDLHlCQUFpQjtFQUM3QkMsTUFBTSxFQUFFQyxxQkFBYTtFQUNyQkMsVUFBVSxFQUFFQyx5QkFBaUI7RUFDN0JDLE1BQU0sRUFBRUM7QUNqQlYsQ0RrQkMsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FBQTVDLE9BQUEsY0FHWUQsT0FBTyxFQUV0QjtBQWlCQSIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IFByb0Zvcm0gYXMgUHJvRm9ybUJhc2UgfSBmcm9tICcuL1Byb0Zvcm0nO1xuaW1wb3J0IHsgUHJvRm9ybUl0ZW0gfSBmcm9tICcuL1Byb0Zvcm1JdGVtJztcbmltcG9ydCB7IFByb0Zvcm1EZXBlbmRlbmN5IH0gZnJvbSAnLi9Qcm9Gb3JtRGVwZW5kZW5jeSc7XG5pbXBvcnQgeyBQcm9Gb3JtTGlzdCB9IGZyb20gJy4vUHJvRm9ybUxpc3QnO1xuaW1wb3J0IHsgUHJvRm9ybUdyb3VwIH0gZnJvbSAnLi9Qcm9Gb3JtR3JvdXAnO1xuaW1wb3J0IHsgU2NoZW1hRm9ybSB9IGZyb20gJy4vU2NoZW1hRm9ybSc7XG5pbXBvcnQgeyBTdWJtaXR0ZXIgfSBmcm9tICcuL1N1Ym1pdHRlcic7XG5pbXBvcnQgeyBQcm9Gb3JtVGV4dCwgUHJvRm9ybVBhc3N3b3JkLCBQcm9Gb3JtVGV4dEFyZWEsIFByb0Zvcm1DaGVja2JveCwgUHJvRm9ybUNoZWNrYm94R3JvdXAsIFByb0Zvcm1Td2l0Y2gsIFByb0Zvcm1TZWxlY3QsIFByb0Zvcm1SYWRpb0dyb3VwLCBQcm9Gb3JtU2xpZGVyLCBQcm9Gb3JtRGF0ZVBpY2tlciwgUHJvRm9ybVVwbG9hZCwgUHJvRm9ybUZpZWxkU2V0LCB9IGZyb20gJy4vZmllbGRzJztcbmltcG9ydCB7IHVzZUZvcm0gYXMgdXNlRm9ybUludGVybmFsIH0gZnJvbSAnLi9jb3JlL2hvb2tzL3VzZUZvcm0nO1xuaW1wb3J0IHsgdXNlUHJvRm9ybUNvbnRleHQsIHVzZUZvcm1JbnN0YW5jZSwgdXNlRm9ybVdhdGNoIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCAnLi9zdHlsZSc7XG4vKiogUHVibGljIGhvb2sg4oCUIHJldHVybnMgW0Zvcm1JbnN0YW5jZV0gZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgKi9cbmNvbnN0IHVzZUZvcm0gPSAoY29uZmlnKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtSW5zdGFuY2UgfSA9IHVzZUZvcm1JbnRlcm5hbChjb25maWcpO1xuICAgIHJldHVybiBbZm9ybUluc3RhbmNlXTtcbn07XG4vLyBDb21wb3NlIFByb0Zvcm0gd2l0aCBzdGF0aWMgc3ViLWNvbXBvbmVudHMgYW5kIGhvb2tzXG5jb25zdCBQcm9Gb3JtID0gT2JqZWN0LmFzc2lnbihQcm9Gb3JtQmFzZSwge1xuICAgIC8vIEl0ZW0gKyBjb3JlIGhvb2tzXG4gICAgSXRlbTogUHJvRm9ybUl0ZW0sXG4gICAgdXNlRm9ybSxcbiAgICB1c2VJbnN0YW5jZTogdXNlRm9ybUluc3RhbmNlLFxuICAgIHVzZUNvbnRleHQ6IHVzZVByb0Zvcm1Db250ZXh0LFxuICAgIHVzZVdhdGNoOiB1c2VGb3JtV2F0Y2gsXG4gICAgLy8gQ29tcG9zaXRpb25cbiAgICBEZXBlbmRlbmN5OiBQcm9Gb3JtRGVwZW5kZW5jeSxcbiAgICBMaXN0OiBQcm9Gb3JtTGlzdCxcbiAgICBHcm91cDogUHJvRm9ybUdyb3VwLFxuICAgIEZpZWxkU2V0OiBQcm9Gb3JtRmllbGRTZXQsXG4gICAgU2NoZW1hRm9ybSxcbiAgICBTdWJtaXR0ZXIsXG4gICAgLy8gRmllbGRzXG4gICAgVGV4dDogUHJvRm9ybVRleHQsXG4gICAgUGFzc3dvcmQ6IFByb0Zvcm1QYXNzd29yZCxcbiAgICBUZXh0QXJlYTogUHJvRm9ybVRleHRBcmVhLFxuICAgIENoZWNrYm94OiBQcm9Gb3JtQ2hlY2tib3gsXG4gICAgQ2hlY2tib3hHcm91cDogUHJvRm9ybUNoZWNrYm94R3JvdXAsXG4gICAgU3dpdGNoOiBQcm9Gb3JtU3dpdGNoLFxuICAgIFNlbGVjdDogUHJvRm9ybVNlbGVjdCxcbiAgICBSYWRpb0dyb3VwOiBQcm9Gb3JtUmFkaW9Hcm91cCxcbiAgICBTbGlkZXI6IFByb0Zvcm1TbGlkZXIsXG4gICAgRGF0ZVBpY2tlcjogUHJvRm9ybURhdGVQaWNrZXIsXG4gICAgVXBsb2FkOiBQcm9Gb3JtVXBsb2FkLFxufSk7XG5leHBvcnQgeyBQcm9Gb3JtLCBQcm9Gb3JtSXRlbSB9O1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybTtcbi8vIE5hbWVkIGV4cG9ydHMgZm9yIGZpZWxkc1xuZXhwb3J0IHsgY3JlYXRlUHJvRm9ybUZpZWxkLCBQcm9Gb3JtVGV4dCwgUHJvRm9ybVBhc3N3b3JkLCBQcm9Gb3JtVGV4dEFyZWEsIFByb0Zvcm1DaGVja2JveCwgUHJvRm9ybUNoZWNrYm94R3JvdXAsIFByb0Zvcm1Td2l0Y2gsIFByb0Zvcm1TZWxlY3QsIFByb0Zvcm1SYWRpb0dyb3VwLCBQcm9Gb3JtU2xpZGVyLCBQcm9Gb3JtRGF0ZVBpY2tlciwgUHJvRm9ybVVwbG9hZCwgUHJvRm9ybUZpZWxkU2V0LCB9IGZyb20gJy4vZmllbGRzJztcbi8vIENvbXBvc2l0aW9uICsgbGF5b3V0c1xuZXhwb3J0IHsgUHJvRm9ybURlcGVuZGVuY3kgfSBmcm9tICcuL1Byb0Zvcm1EZXBlbmRlbmN5JztcbmV4cG9ydCB7IFByb0Zvcm1MaXN0IH0gZnJvbSAnLi9Qcm9Gb3JtTGlzdCc7XG5leHBvcnQgeyBQcm9Gb3JtR3JvdXAgfSBmcm9tICcuL1Byb0Zvcm1Hcm91cCc7XG5leHBvcnQgeyBTY2hlbWFGb3JtIH0gZnJvbSAnLi9TY2hlbWFGb3JtJztcbmV4cG9ydCB7IERyYXdlckZvcm0gfSBmcm9tICcuL2xheW91dHMvRHJhd2VyRm9ybSc7XG5leHBvcnQgeyBEaWFsb2dGb3JtIH0gZnJvbSAnLi9sYXlvdXRzL0RpYWxvZ0Zvcm0nO1xuZXhwb3J0IHsgUXVlcnlGaWx0ZXIgfSBmcm9tICcuL2xheW91dHMvUXVlcnlGaWx0ZXInO1xuZXhwb3J0IHsgdXNlRm9ybVdhdGNoIH0gZnJvbSAnLi9jb250ZXh0JztcbmV4cG9ydCB7IENTU19QUkVGSVgsIFdJRFRIX1NJWkVfTUFQLCBERUZBVUxUX0NPTF9TUEFOLCBERUZBVUxUX1RFWFQsIFBST0ZPUk1fTU9ERVMgfSBmcm9tICcuL2NvbnN0YW50cyc7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|