@kaspernj/api-maker 1.0.2090 → 1.0.2091
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/build/link.js +108 -5
- package/build/use-model.d.ts.map +1 -1
- package/build/use-model.js +39 -4
- package/package.json +1 -1
package/build/link.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
/* eslint-disable sort-imports */
|
|
3
|
-
import { Platform, Pressable } from "react-native";
|
|
3
|
+
import { Platform, Pressable, StyleSheet } from "react-native";
|
|
4
4
|
import { shapeComponent } from "set-state-compare/build/shape-component.js";
|
|
5
5
|
import { useApiMaker } from "@kaspernj/api-maker/build/with-api-maker.js";
|
|
6
6
|
import BaseComponent from "./base-component";
|
|
@@ -10,17 +10,120 @@ import dataSetToAttributes from "./data-set-to-attributes.js";
|
|
|
10
10
|
import memo from "set-state-compare/build/memo.js";
|
|
11
11
|
export default memo(shapeComponent(class ApiMakerLink extends BaseComponent {
|
|
12
12
|
static propTypes = {
|
|
13
|
+
paddingHorizontal: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
14
|
+
paddingVertical: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
13
15
|
usePressable: PropTypes.bool
|
|
14
16
|
};
|
|
15
17
|
setup() {
|
|
16
18
|
this.apiMaker = useApiMaker();
|
|
17
19
|
}
|
|
18
20
|
render() {
|
|
19
|
-
const { dataSet, to, onClick, onPress, testID, usePressable, ...restProps } = this.props;
|
|
21
|
+
const { dataSet, to, onClick, onPress, paddingHorizontal, paddingVertical, style, testID, usePressable, ...restProps } = this.props;
|
|
22
|
+
const linkStyle = this.linkStyle({ paddingHorizontal, paddingVertical, style, usePressable });
|
|
20
23
|
if (Platform.OS == "web" && !usePressable) {
|
|
21
|
-
return (_jsx("a", { ...dataSetToAttributes(Object.assign({ testid: testID }, dataSet)), href: to || "#", onClick: this.tt.onLinkClicked, ...restProps }));
|
|
24
|
+
return (_jsx("a", { ...dataSetToAttributes(Object.assign({ testid: testID }, dataSet)), href: to || "#", onClick: this.tt.onLinkClicked, style: linkStyle, ...restProps }));
|
|
22
25
|
}
|
|
23
|
-
return (_jsx(Pressable, { dataSet: dataSet, onPress: this.tt.onPress, testID: testID, ...restProps }));
|
|
26
|
+
return (_jsx(Pressable, { dataSet: dataSet, onPress: this.tt.onPress, style: linkStyle, testID: testID, ...restProps }));
|
|
27
|
+
}
|
|
28
|
+
/** Returns a cached style with padding props applied. */
|
|
29
|
+
linkStyle({ paddingHorizontal, paddingVertical, style, usePressable }) {
|
|
30
|
+
if (Platform.OS == "web" && !usePressable) {
|
|
31
|
+
return this.linkStyleForAnchor({ paddingHorizontal, paddingVertical, style });
|
|
32
|
+
}
|
|
33
|
+
return this.linkStyleForPressable({ paddingHorizontal, paddingVertical, style });
|
|
34
|
+
}
|
|
35
|
+
/** Returns the anchor style with padding props applied. */
|
|
36
|
+
linkStyleForAnchor({ paddingHorizontal, paddingVertical, style }) {
|
|
37
|
+
return this.cache("linkStyleForAnchor", () => {
|
|
38
|
+
const resolvedStyle = this.resolveStyleForAnchor(style);
|
|
39
|
+
const overrides = this.paddingOverridesFromStyle({ paddingHorizontal, paddingVertical, style: resolvedStyle });
|
|
40
|
+
if (!overrides)
|
|
41
|
+
return resolvedStyle;
|
|
42
|
+
const nextStyle = { ...resolvedStyle };
|
|
43
|
+
delete nextStyle.paddingHorizontal;
|
|
44
|
+
delete nextStyle.paddingVertical;
|
|
45
|
+
return { ...nextStyle, ...overrides };
|
|
46
|
+
}, [paddingHorizontal, paddingVertical, style]);
|
|
47
|
+
}
|
|
48
|
+
/** Returns a Pressable-compatible style with padding props applied. */
|
|
49
|
+
linkStyleForPressable({ paddingHorizontal, paddingVertical, style }) {
|
|
50
|
+
return this.cache("linkStyleForPressable", () => {
|
|
51
|
+
if (typeof style == "function") {
|
|
52
|
+
return (state) => {
|
|
53
|
+
const resolvedStyle = style(state);
|
|
54
|
+
const overrides = this.paddingOverridesFromStyle({ paddingHorizontal, paddingVertical, style: resolvedStyle });
|
|
55
|
+
if (!overrides)
|
|
56
|
+
return resolvedStyle;
|
|
57
|
+
if (Array.isArray(resolvedStyle))
|
|
58
|
+
return [...resolvedStyle, overrides];
|
|
59
|
+
if (resolvedStyle && typeof resolvedStyle == "object") {
|
|
60
|
+
return { ...this.stripPaddingShorthand(resolvedStyle), ...overrides };
|
|
61
|
+
}
|
|
62
|
+
return [resolvedStyle, overrides];
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
const overrides = this.paddingOverridesFromStyle({ paddingHorizontal, paddingVertical, style });
|
|
66
|
+
if (!overrides)
|
|
67
|
+
return style;
|
|
68
|
+
if (!style)
|
|
69
|
+
return overrides;
|
|
70
|
+
if (Array.isArray(style))
|
|
71
|
+
return [...style, overrides];
|
|
72
|
+
if (typeof style == "object") {
|
|
73
|
+
return { ...this.stripPaddingShorthand(style), ...overrides };
|
|
74
|
+
}
|
|
75
|
+
return [style, overrides];
|
|
76
|
+
}, [paddingHorizontal, paddingVertical, style]);
|
|
77
|
+
}
|
|
78
|
+
/** Resolves a style object for anchor rendering. */
|
|
79
|
+
resolveStyleForAnchor(style) {
|
|
80
|
+
if (typeof style == "function") {
|
|
81
|
+
return StyleSheet.flatten(style({ pressed: false, focused: false, hovered: false })) || {};
|
|
82
|
+
}
|
|
83
|
+
if (Array.isArray(style))
|
|
84
|
+
return StyleSheet.flatten(style) || {};
|
|
85
|
+
return style || {};
|
|
86
|
+
}
|
|
87
|
+
/** Returns padding overrides based on the resolved style. */
|
|
88
|
+
paddingOverridesFromStyle({ paddingHorizontal, paddingVertical, style }) {
|
|
89
|
+
const styleObject = StyleSheet.flatten(style) || {};
|
|
90
|
+
const stylePaddingHorizontal = styleObject.paddingHorizontal;
|
|
91
|
+
const stylePaddingVertical = styleObject.paddingVertical;
|
|
92
|
+
const paddingHorizontalDefined = this.isDefined(paddingHorizontal);
|
|
93
|
+
const paddingVerticalDefined = this.isDefined(paddingVertical);
|
|
94
|
+
const stylePaddingHorizontalDefined = this.isDefined(stylePaddingHorizontal);
|
|
95
|
+
const stylePaddingVerticalDefined = this.isDefined(stylePaddingVertical);
|
|
96
|
+
const hasPaddingHorizontal = paddingHorizontalDefined || stylePaddingHorizontalDefined;
|
|
97
|
+
const hasPaddingVertical = paddingVerticalDefined || stylePaddingVerticalDefined;
|
|
98
|
+
if (!hasPaddingHorizontal && !hasPaddingVertical)
|
|
99
|
+
return null;
|
|
100
|
+
const resolvedPaddingHorizontal = paddingHorizontalDefined ? paddingHorizontal : stylePaddingHorizontal;
|
|
101
|
+
const resolvedPaddingVertical = paddingVerticalDefined ? paddingVertical : stylePaddingVertical;
|
|
102
|
+
const overrides = {};
|
|
103
|
+
if (this.isDefined(resolvedPaddingHorizontal)) {
|
|
104
|
+
if (!this.isDefined(styleObject.paddingLeft))
|
|
105
|
+
overrides.paddingLeft = resolvedPaddingHorizontal;
|
|
106
|
+
if (!this.isDefined(styleObject.paddingRight))
|
|
107
|
+
overrides.paddingRight = resolvedPaddingHorizontal;
|
|
108
|
+
}
|
|
109
|
+
if (this.isDefined(resolvedPaddingVertical)) {
|
|
110
|
+
if (!this.isDefined(styleObject.paddingTop))
|
|
111
|
+
overrides.paddingTop = resolvedPaddingVertical;
|
|
112
|
+
if (!this.isDefined(styleObject.paddingBottom))
|
|
113
|
+
overrides.paddingBottom = resolvedPaddingVertical;
|
|
114
|
+
}
|
|
115
|
+
return overrides;
|
|
116
|
+
}
|
|
117
|
+
/** Removes padding shorthand values from a style object. */
|
|
118
|
+
stripPaddingShorthand(style) {
|
|
119
|
+
const nextStyle = { ...style };
|
|
120
|
+
delete nextStyle.paddingHorizontal;
|
|
121
|
+
delete nextStyle.paddingVertical;
|
|
122
|
+
return nextStyle;
|
|
123
|
+
}
|
|
124
|
+
/** Returns true when a value is neither null nor undefined. */
|
|
125
|
+
isDefined(value) {
|
|
126
|
+
return value !== null && value !== undefined;
|
|
24
127
|
}
|
|
25
128
|
onLinkClicked = (e, ...restArgs) => {
|
|
26
129
|
const { onClick, onPress } = this.props;
|
|
@@ -58,4 +161,4 @@ export default memo(shapeComponent(class ApiMakerLink extends BaseComponent {
|
|
|
58
161
|
history.push(this.props.to);
|
|
59
162
|
}
|
|
60
163
|
}));
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsibGluay5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlDQUFpQztBQUNqQyxPQUFPLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUNoRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNENBQTRDLENBQUE7QUFDekUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZDQUE2QyxDQUFBO0FBQ3ZFLE9BQU8sYUFBYSxNQUFNLGtCQUFrQixDQUFBO0FBQzVDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxtQkFBbUIsTUFBTSw2QkFBNkIsQ0FBQTtBQUM3RCxPQUFPLElBQUksTUFBTSxpQ0FBaUMsQ0FBQTtBQUVsRCxlQUFlLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxZQUFhLFNBQVEsYUFBYTtJQUN6RSxNQUFNLENBQUMsU0FBUyxHQUFHO1FBQ2pCLFlBQVksRUFBRSxTQUFTLENBQUMsSUFBSTtLQUM3QixDQUFBO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUE7SUFDL0IsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLEVBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxTQUFTLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1FBRXRGLElBQUksUUFBUSxDQUFDLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQyxPQUFPLENBQ0wsZUFDTSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQ2pFLElBQUksRUFBRSxFQUFFLElBQUksR0FBRyxFQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsS0FDMUIsU0FBUyxHQUNiLENBQ0gsQ0FBQTtRQUNILENBQUM7UUFFRCxPQUFPLENBQ0wsS0FBQyxTQUFTLElBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBTSxTQUFTLEdBQUksQ0FDekYsQ0FBQTtJQUNILENBQUM7SUFFRCxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsRUFBRTtRQUNqQyxNQUFNLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFFckMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQTtRQUN6QixDQUFDO1FBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQTtRQUN6QixDQUFDO1FBRUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3JGLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtZQUVsQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDakIsQ0FBQztJQUNILENBQUMsQ0FBQTtJQUVELE9BQU8sR0FBRyxHQUFHLEVBQUU7UUFDYixNQUFNLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFFckMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQSxDQUFDLCtCQUErQjtRQUN6RCxDQUFDO1FBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQSxDQUFDLCtCQUErQjtRQUN6RCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2pCLENBQUMsQ0FBQTtJQUVELFFBQVEsR0FBRyxHQUFHLEVBQUU7UUFDZCw2R0FBNkc7UUFDN0csVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNyQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDUCxDQUFDLENBQUE7SUFFRCxZQUFZO1FBQ1YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUE7UUFFakQsSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUE7UUFFdkYsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzdCLENBQUM7Q0FDRixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHNvcnQtaW1wb3J0cyAqL1xuaW1wb3J0IHtQbGF0Zm9ybSwgUHJlc3NhYmxlfSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9zaGFwZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IHt1c2VBcGlNYWtlcn0gZnJvbSBcIkBrYXNwZXJuai9hcGktbWFrZXIvYnVpbGQvd2l0aC1hcGktbWFrZXIuanNcIlxuaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBkYXRhU2V0VG9BdHRyaWJ1dGVzIGZyb20gXCIuL2RhdGEtc2V0LXRvLWF0dHJpYnV0ZXMuanNcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL21lbW8uanNcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyTGluayBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHVzZVByZXNzYWJsZTogUHJvcFR5cGVzLmJvb2xcbiAgfVxuXG4gIHNldHVwKCkge1xuICAgIHRoaXMuYXBpTWFrZXIgPSB1c2VBcGlNYWtlcigpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2RhdGFTZXQsIHRvLCBvbkNsaWNrLCBvblByZXNzLCB0ZXN0SUQsIHVzZVByZXNzYWJsZSwgLi4ucmVzdFByb3BzfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChQbGF0Zm9ybS5PUyA9PSBcIndlYlwiICYmICF1c2VQcmVzc2FibGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxhXG4gICAgICAgICAgey4uLmRhdGFTZXRUb0F0dHJpYnV0ZXMoT2JqZWN0LmFzc2lnbih7dGVzdGlkOiB0ZXN0SUR9LCBkYXRhU2V0KSl9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcHJlZmVyLW9iamVjdC1zcHJlYWRcbiAgICAgICAgICBocmVmPXt0byB8fCBcIiNcIn1cbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLnR0Lm9uTGlua0NsaWNrZWR9XG4gICAgICAgICAgey4uLnJlc3RQcm9wc31cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFByZXNzYWJsZSBkYXRhU2V0PXtkYXRhU2V0fSBvblByZXNzPXt0aGlzLnR0Lm9uUHJlc3N9IHRlc3RJRD17dGVzdElEfSB7Li4ucmVzdFByb3BzfSAvPlxuICAgIClcbiAgfVxuXG4gIG9uTGlua0NsaWNrZWQgPSAoZSwgLi4ucmVzdEFyZ3MpID0+IHtcbiAgICBjb25zdCB7b25DbGljaywgb25QcmVzc30gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAob25DbGljaykge1xuICAgICAgb25DbGljayhlLCAuLi5yZXN0QXJncylcbiAgICB9XG5cbiAgICBpZiAob25QcmVzcykge1xuICAgICAgb25QcmVzcyhlLCAuLi5yZXN0QXJncylcbiAgICB9XG5cbiAgICBpZiAoIWUuZGVmYXVsdFByZXZlbnRlZCAmJiAhZS5jdHJsS2V5ICYmICFlLm1ldGFLZXkgJiYgdGhpcy5wcm9wcy50YXJnZXQgIT0gXCJfYmxhbmtcIikge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICAgIHRoaXMucmVkaXJlY3QoKVxuICAgIH1cbiAgfVxuXG4gIG9uUHJlc3MgPSAoKSA9PiB7XG4gICAgY29uc3Qge29uQ2xpY2ssIG9uUHJlc3N9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgIG9uQ2xpY2soZSwgLi4ucmVzdEFyZ3MpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiAgICB9XG5cbiAgICBpZiAob25QcmVzcykge1xuICAgICAgb25QcmVzcyhlLCAuLi5yZXN0QXJncykgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuICAgIH1cblxuICAgIHRoaXMucmVkaXJlY3QoKVxuICB9XG5cbiAgcmVkaXJlY3QgPSAoKSA9PiB7XG4gICAgLy8gSWYgbm8gdGltZW91dCBpcyB1c2VkLCB0aGlzIGNhbiBjYXVzZSBhbiBcImNvbXBvbmVudCBzdXNwZW5kZWQgd2hpbGUgcmVzcG9uZGluZyB0byBzeW5jaHJvbm91cyBpbnB1dFwiLWVycm9yXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9oaXN0b3J5UHVzaCgpXG4gICAgfSwgMClcbiAgfVxuXG4gIF9oaXN0b3J5UHVzaCgpIHtcbiAgICBjb25zdCBoaXN0b3J5ID0gdGhpcy5hcGlNYWtlci5jb25maWcuZ2V0SGlzdG9yeSgpXG5cbiAgICBpZiAoIWhpc3RvcnkpIHRocm93IG5ldyBFcnJvcihcIkhpc3RvcnkgaGFzbid0IGJlZW4gc2V0IGluIHRoZSBBUEkgbWFrZXIgY29uZmlndXJhdGlvblwiKVxuXG4gICAgaGlzdG9yeS5wdXNoKHRoaXMucHJvcHMudG8pXG4gIH1cbn0pKVxuIl19
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsibGluay5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlDQUFpQztBQUNqQyxPQUFPLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDNUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQTtBQUN2RSxPQUFPLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQTtBQUM1QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQ3pCLE9BQU8sbUJBQW1CLE1BQU0sNkJBQTZCLENBQUE7QUFDN0QsT0FBTyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFFbEQsZUFBZSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sWUFBYSxTQUFRLGFBQWE7SUFDekUsTUFBTSxDQUFDLFNBQVMsR0FBRztRQUNqQixpQkFBaUIsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRSxZQUFZLEVBQUUsU0FBUyxDQUFDLElBQUk7S0FDN0IsQ0FBQTtJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBQy9CLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxFQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxTQUFT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QyxDQUFBO0lBRUQsUUFBUSxHQUFHLEdBQUcsRUFBRTtRQUNkLDZHQUE2RztRQUM3RyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ3JCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNQLENBQUMsQ0FBQTtJQUVELFlBQVk7UUFDVixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUVqRCxJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQTtRQUV2RixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDN0IsQ0FBQztDQUNGLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQge1BsYXRmb3JtLCBQcmVzc2FibGUsIFN0eWxlU2hlZXR9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3NoYXBlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQge3VzZUFwaU1ha2VyfSBmcm9tIFwiQGthc3Blcm5qL2FwaS1tYWtlci9idWlsZC93aXRoLWFwaS1tYWtlci5qc1wiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGRhdGFTZXRUb0F0dHJpYnV0ZXMgZnJvbSBcIi4vZGF0YS1zZXQtdG8tYXR0cmlidXRlcy5qc1wiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJMaW5rIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgcGFkZGluZ0hvcml6b250YWw6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgICBwYWRkaW5nVmVydGljYWw6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgICB1c2VQcmVzc2FibGU6IFByb3BUeXBlcy5ib29sXG4gIH1cblxuICBzZXR1cCgpIHtcbiAgICB0aGlzLmFwaU1ha2VyID0gdXNlQXBpTWFrZXIoKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtkYXRhU2V0LCB0bywgb25DbGljaywgb25QcmVzcywgcGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGUsIHRlc3RJRCwgdXNlUHJlc3NhYmxlLCAuLi5yZXN0UHJvcHN9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IGxpbmtTdHlsZSA9IHRoaXMubGlua1N0eWxlKHtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZSwgdXNlUHJlc3NhYmxlfSlcblxuICAgIGlmIChQbGF0Zm9ybS5PUyA9PSBcIndlYlwiICYmICF1c2VQcmVzc2FibGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxhXG4gICAgICAgICAgey4uLmRhdGFTZXRUb0F0dHJpYnV0ZXMoT2JqZWN0LmFzc2lnbih7dGVzdGlkOiB0ZXN0SUR9LCBkYXRhU2V0KSl9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcHJlZmVyLW9iamVjdC1zcHJlYWRcbiAgICAgICAgICBocmVmPXt0byB8fCBcIiNcIn1cbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLnR0Lm9uTGlua0NsaWNrZWR9XG4gICAgICAgICAgc3R5bGU9e2xpbmtTdHlsZX1cbiAgICAgICAgICB7Li4ucmVzdFByb3BzfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8UHJlc3NhYmxlIGRhdGFTZXQ9e2RhdGFTZXR9IG9uUHJlc3M9e3RoaXMudHQub25QcmVzc30gc3R5bGU9e2xpbmtTdHlsZX0gdGVzdElEPXt0ZXN0SUR9IHsuLi5yZXN0UHJvcHN9IC8+XG4gICAgKVxuICB9XG5cbiAgLyoqIFJldHVybnMgYSBjYWNoZWQgc3R5bGUgd2l0aCBwYWRkaW5nIHByb3BzIGFwcGxpZWQuICovXG4gIGxpbmtTdHlsZSh7cGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGUsIHVzZVByZXNzYWJsZX0pIHtcbiAgICBpZiAoUGxhdGZvcm0uT1MgPT0gXCJ3ZWJcIiAmJiAhdXNlUHJlc3NhYmxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5saW5rU3R5bGVGb3JBbmNob3Ioe3BhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5saW5rU3R5bGVGb3JQcmVzc2FibGUoe3BhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlfSlcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBhbmNob3Igc3R5bGUgd2l0aCBwYWRkaW5nIHByb3BzIGFwcGxpZWQuICovXG4gIGxpbmtTdHlsZUZvckFuY2hvcih7cGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGV9KSB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUoXCJsaW5rU3R5bGVGb3JBbmNob3JcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb2x2ZWRTdHlsZSA9IHRoaXMucmVzb2x2ZVN0eWxlRm9yQW5jaG9yKHN0eWxlKVxuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gdGhpcy5wYWRkaW5nT3ZlcnJpZGVzRnJvbVN0eWxlKHtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZTogcmVzb2x2ZWRTdHlsZX0pXG5cbiAgICAgIGlmICghb3ZlcnJpZGVzKSByZXR1cm4gcmVzb2x2ZWRTdHlsZVxuXG4gICAgICBjb25zdCBuZXh0U3R5bGUgPSB7Li4ucmVzb2x2ZWRTdHlsZX1cblxuICAgICAgZGVsZXRlIG5leHRTdHlsZS5wYWRkaW5nSG9yaXpvbnRhbFxuICAgICAgZGVsZXRlIG5leHRTdHlsZS5wYWRkaW5nVmVydGljYWxcblxuICAgICAgcmV0dXJuIHsuLi5uZXh0U3R5bGUsIC4uLm92ZXJyaWRlc31cbiAgICB9LCBbcGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGVdKVxuICB9XG5cbiAgLyoqIFJldHVybnMgYSBQcmVzc2FibGUtY29tcGF0aWJsZSBzdHlsZSB3aXRoIHBhZGRpbmcgcHJvcHMgYXBwbGllZC4gKi9cbiAgbGlua1N0eWxlRm9yUHJlc3NhYmxlKHtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZX0pIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZShcImxpbmtTdHlsZUZvclByZXNzYWJsZVwiLCAoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHN0eWxlID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gKHN0YXRlKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWRTdHlsZSA9IHN0eWxlKHN0YXRlKVxuICAgICAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IHRoaXMucGFkZGluZ092ZXJyaWRlc0Zyb21TdHlsZSh7cGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGU6IHJlc29sdmVkU3R5bGV9KVxuXG4gICAgICAgICAgaWYgKCFvdmVycmlkZXMpIHJldHVybiByZXNvbHZlZFN0eWxlXG5cbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXNvbHZlZFN0eWxlKSkgcmV0dXJuIFsuLi5yZXNvbHZlZFN0eWxlLCBvdmVycmlkZXNdXG5cbiAgICAgICAgICBpZiAocmVzb2x2ZWRTdHlsZSAmJiB0eXBlb2YgcmVzb2x2ZWRTdHlsZSA9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gey4uLnRoaXMuc3RyaXBQYWRkaW5nU2hvcnRoYW5kKHJlc29sdmVkU3R5bGUpLCAuLi5vdmVycmlkZXN9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFtyZXNvbHZlZFN0eWxlLCBvdmVycmlkZXNdXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gdGhpcy5wYWRkaW5nT3ZlcnJpZGVzRnJvbVN0eWxlKHtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZX0pXG5cbiAgICAgIGlmICghb3ZlcnJpZGVzKSByZXR1cm4gc3R5bGVcblxuICAgICAgaWYgKCFzdHlsZSkgcmV0dXJuIG92ZXJyaWRlc1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShzdHlsZSkpIHJldHVybiBbLi4uc3R5bGUsIG92ZXJyaWRlc11cblxuICAgICAgaWYgKHR5cGVvZiBzdHlsZSA9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiB7Li4udGhpcy5zdHJpcFBhZGRpbmdTaG9ydGhhbmQoc3R5bGUpLCAuLi5vdmVycmlkZXN9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbc3R5bGUsIG92ZXJyaWRlc11cbiAgICB9LCBbcGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGVdKVxuICB9XG5cbiAgLyoqIFJlc29sdmVzIGEgc3R5bGUgb2JqZWN0IGZvciBhbmNob3IgcmVuZGVyaW5nLiAqL1xuICByZXNvbHZlU3R5bGVGb3JBbmNob3Ioc3R5bGUpIHtcbiAgICBpZiAodHlwZW9mIHN0eWxlID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgcmV0dXJuIFN0eWxlU2hlZXQuZmxhdHRlbihzdHlsZSh7cHJlc3NlZDogZmFsc2UsIGZvY3VzZWQ6IGZhbHNlLCBob3ZlcmVkOiBmYWxzZX0pKSB8fCB7fVxuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHN0eWxlKSkgcmV0dXJuIFN0eWxlU2hlZXQuZmxhdHRlbihzdHlsZSkgfHwge31cblxuICAgIHJldHVybiBzdHlsZSB8fCB7fVxuICB9XG5cbiAgLyoqIFJldHVybnMgcGFkZGluZyBvdmVycmlkZXMgYmFzZWQgb24gdGhlIHJlc29sdmVkIHN0eWxlLiAqL1xuICBwYWRkaW5nT3ZlcnJpZGVzRnJvbVN0eWxlKHtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZX0pIHtcbiAgICBjb25zdCBzdHlsZU9iamVjdCA9IFN0eWxlU2hlZXQuZmxhdHRlbihzdHlsZSkgfHwge31cbiAgICBjb25zdCBzdHlsZVBhZGRpbmdIb3Jpem9udGFsID0gc3R5bGVPYmplY3QucGFkZGluZ0hvcml6b250YWxcbiAgICBjb25zdCBzdHlsZVBhZGRpbmdWZXJ0aWNhbCA9IHN0eWxlT2JqZWN0LnBhZGRpbmdWZXJ0aWNhbFxuICAgIGNvbnN0IHBhZGRpbmdIb3Jpem9udGFsRGVmaW5lZCA9IHRoaXMuaXNEZWZpbmVkKHBhZGRpbmdIb3Jpem9udGFsKVxuICAgIGNvbnN0IHBhZGRpbmdWZXJ0aWNhbERlZmluZWQgPSB0aGlzLmlzRGVmaW5lZChwYWRkaW5nVmVydGljYWwpXG4gICAgY29uc3Qgc3R5bGVQYWRkaW5nSG9yaXpvbnRhbERlZmluZWQgPSB0aGlzLmlzRGVmaW5lZChzdHlsZVBhZGRpbmdIb3Jpem9udGFsKVxuICAgIGNvbnN0IHN0eWxlUGFkZGluZ1ZlcnRpY2FsRGVmaW5lZCA9IHRoaXMuaXNEZWZpbmVkKHN0eWxlUGFkZGluZ1ZlcnRpY2FsKVxuICAgIGNvbnN0IGhhc1BhZGRpbmdIb3Jpem9udGFsID0gcGFkZGluZ0hvcml6b250YWxEZWZpbmVkIHx8IHN0eWxlUGFkZGluZ0hvcml6b250YWxEZWZpbmVkXG4gICAgY29uc3QgaGFzUGFkZGluZ1ZlcnRpY2FsID0gcGFkZGluZ1ZlcnRpY2FsRGVmaW5lZCB8fCBzdHlsZVBhZGRpbmdWZXJ0aWNhbERlZmluZWRcblxuICAgIGlmICghaGFzUGFkZGluZ0hvcml6b250YWwgJiYgIWhhc1BhZGRpbmdWZXJ0aWNhbCkgcmV0dXJuIG51bGxcblxuICAgIGNvbnN0IHJlc29sdmVkUGFkZGluZ0hvcml6b250YWwgPSBwYWRkaW5nSG9yaXpvbnRhbERlZmluZWQgPyBwYWRkaW5nSG9yaXpvbnRhbCA6IHN0eWxlUGFkZGluZ0hvcml6b250YWxcbiAgICBjb25zdCByZXNvbHZlZFBhZGRpbmdWZXJ0aWNhbCA9IHBhZGRpbmdWZXJ0aWNhbERlZmluZWQgPyBwYWRkaW5nVmVydGljYWwgOiBzdHlsZVBhZGRpbmdWZXJ0aWNhbFxuICAgIGNvbnN0IG92ZXJyaWRlcyA9IHt9XG5cbiAgICBpZiAodGhpcy5pc0RlZmluZWQocmVzb2x2ZWRQYWRkaW5nSG9yaXpvbnRhbCkpIHtcbiAgICAgIGlmICghdGhpcy5pc0RlZmluZWQoc3R5bGVPYmplY3QucGFkZGluZ0xlZnQpKSBvdmVycmlkZXMucGFkZGluZ0xlZnQgPSByZXNvbHZlZFBhZGRpbmdIb3Jpem9udGFsXG4gICAgICBpZiAoIXRoaXMuaXNEZWZpbmVkKHN0eWxlT2JqZWN0LnBhZGRpbmdSaWdodCkpIG92ZXJyaWRlcy5wYWRkaW5nUmlnaHQgPSByZXNvbHZlZFBhZGRpbmdIb3Jpem9udGFsXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNEZWZpbmVkKHJlc29sdmVkUGFkZGluZ1ZlcnRpY2FsKSkge1xuICAgICAgaWYgKCF0aGlzLmlzRGVmaW5lZChzdHlsZU9iamVjdC5wYWRkaW5nVG9wKSkgb3ZlcnJpZGVzLnBhZGRpbmdUb3AgPSByZXNvbHZlZFBhZGRpbmdWZXJ0aWNhbFxuICAgICAgaWYgKCF0aGlzLmlzRGVmaW5lZChzdHlsZU9iamVjdC5wYWRkaW5nQm90dG9tKSkgb3ZlcnJpZGVzLnBhZGRpbmdCb3R0b20gPSByZXNvbHZlZFBhZGRpbmdWZXJ0aWNhbFxuICAgIH1cblxuICAgIHJldHVybiBvdmVycmlkZXNcbiAgfVxuXG4gIC8qKiBSZW1vdmVzIHBhZGRpbmcgc2hvcnRoYW5kIHZhbHVlcyBmcm9tIGEgc3R5bGUgb2JqZWN0LiAqL1xuICBzdHJpcFBhZGRpbmdTaG9ydGhhbmQoc3R5bGUpIHtcbiAgICBjb25zdCBuZXh0U3R5bGUgPSB7Li4uc3R5bGV9XG5cbiAgICBkZWxldGUgbmV4dFN0eWxlLnBhZGRpbmdIb3Jpem9udGFsXG4gICAgZGVsZXRlIG5leHRTdHlsZS5wYWRkaW5nVmVydGljYWxcblxuICAgIHJldHVybiBuZXh0U3R5bGVcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRydWUgd2hlbiBhIHZhbHVlIGlzIG5laXRoZXIgbnVsbCBub3IgdW5kZWZpbmVkLiAqL1xuICBpc0RlZmluZWQodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZFxuICB9XG5cbiAgb25MaW5rQ2xpY2tlZCA9IChlLCAuLi5yZXN0QXJncykgPT4ge1xuICAgIGNvbnN0IHtvbkNsaWNrLCBvblByZXNzfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICBvbkNsaWNrKGUsIC4uLnJlc3RBcmdzKVxuICAgIH1cblxuICAgIGlmIChvblByZXNzKSB7XG4gICAgICBvblByZXNzKGUsIC4uLnJlc3RBcmdzKVxuICAgIH1cblxuICAgIGlmICghZS5kZWZhdWx0UHJldmVudGVkICYmICFlLmN0cmxLZXkgJiYgIWUubWV0YUtleSAmJiB0aGlzLnByb3BzLnRhcmdldCAhPSBcIl9ibGFua1wiKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgICAgdGhpcy5yZWRpcmVjdCgpXG4gICAgfVxuICB9XG5cbiAgb25QcmVzcyA9ICgpID0+IHtcbiAgICBjb25zdCB7b25DbGljaywgb25QcmVzc30gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAob25DbGljaykge1xuICAgICAgb25DbGljayhlLCAuLi5yZXN0QXJncykgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuICAgIH1cblxuICAgIGlmIChvblByZXNzKSB7XG4gICAgICBvblByZXNzKGUsIC4uLnJlc3RBcmdzKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4gICAgfVxuXG4gICAgdGhpcy5yZWRpcmVjdCgpXG4gIH1cblxuICByZWRpcmVjdCA9ICgpID0+IHtcbiAgICAvLyBJZiBubyB0aW1lb3V0IGlzIHVzZWQsIHRoaXMgY2FuIGNhdXNlIGFuIFwiY29tcG9uZW50IHN1c3BlbmRlZCB3aGlsZSByZXNwb25kaW5nIHRvIHN5bmNocm9ub3VzIGlucHV0XCItZXJyb3JcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2hpc3RvcnlQdXNoKClcbiAgICB9LCAwKVxuICB9XG5cbiAgX2hpc3RvcnlQdXNoKCkge1xuICAgIGNvbnN0IGhpc3RvcnkgPSB0aGlzLmFwaU1ha2VyLmNvbmZpZy5nZXRIaXN0b3J5KClcblxuICAgIGlmICghaGlzdG9yeSkgdGhyb3cgbmV3IEVycm9yKFwiSGlzdG9yeSBoYXNuJ3QgYmVlbiBzZXQgaW4gdGhlIEFQSSBtYWtlciBjb25maWd1cmF0aW9uXCIpXG5cbiAgICBoaXN0b3J5LnB1c2godGhpcy5wcm9wcy50bylcbiAgfVxufSkpXG4iXX0=
|
package/build/use-model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-model.d.ts","sourceRoot":"/src/","sources":["use-model.js"],"names":[],"mappings":";;eAUc,CAAC,GAAG,EAAE,MAAM,aAAa;WACzB,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM;uBACvB,MAAM,MAAM,GAAC,MAAM;gBACnB,GAAG,EAAE;YACL;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;kBAChB,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI;;;AAPzE;;;;;;;;;GASG;AAEH;;;GAGG;
|
|
1
|
+
{"version":3,"file":"use-model.d.ts","sourceRoot":"/src/","sources":["use-model.js"],"names":[],"mappings":";;eAUc,CAAC,GAAG,EAAE,MAAM,aAAa;WACzB,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM;uBACvB,MAAM,MAAM,GAAC,MAAM;gBACnB,GAAG,EAAE;YACL;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;kBAChB,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI;;;AAPzE;;;;;;;;;GASG;AAEH;;;GAGG;AAEH,yCAJW,WAAS,MAAM,YACf,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE;IAAC,UAAU,EAAE,cAAc,iBAAiB,EAAE,OAAO,CAAA;CAAC,KAAK,YAAY,CAAC;;;;EA2NnG"}
|
package/build/use-model.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable sort-imports */
|
|
2
|
-
import { useCallback, useLayoutEffect
|
|
2
|
+
import { useCallback, useLayoutEffect } from "react";
|
|
3
3
|
import Devise from "./devise.js";
|
|
4
4
|
import * as inflection from "inflection";
|
|
5
5
|
import ModelEvents from "./model-events.js";
|
|
@@ -19,6 +19,7 @@ import useShape from "set-state-compare/build/use-shape.js";
|
|
|
19
19
|
* @param {Function|object} modelClassArg
|
|
20
20
|
* @param {object | ((args: {modelClass: typeof import("./base-model.js").default}) => useModelArgs)} [argsArg]
|
|
21
21
|
*/
|
|
22
|
+
// eslint-disable-next-line complexity
|
|
22
23
|
const useModel = (modelClassArg, argsArg = {}) => {
|
|
23
24
|
const queryParams = useQueryParams();
|
|
24
25
|
let args, modelClass;
|
|
@@ -83,7 +84,12 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
83
84
|
const modelDataFromParams = s.m.queryParams[paramKey] || {};
|
|
84
85
|
let defaults = {};
|
|
85
86
|
if (s.props.newIfNoId?.defaults) {
|
|
86
|
-
|
|
87
|
+
let defaultsResult = s.m.newIfNoIdDefaultsResult;
|
|
88
|
+
if (defaultsResult === null) {
|
|
89
|
+
defaultsResult = s.props.newIfNoId.defaults();
|
|
90
|
+
}
|
|
91
|
+
s.meta.newIfNoIdDefaultsResult = null;
|
|
92
|
+
defaults = await defaultsResult;
|
|
87
93
|
}
|
|
88
94
|
const modelData = Object.assign(defaults, s.props.newAttributes, modelDataFromParams);
|
|
89
95
|
const model = new ModelClass({
|
|
@@ -118,7 +124,36 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
118
124
|
cacheArgs.push(...args.cacheArgs);
|
|
119
125
|
}
|
|
120
126
|
s.updateMeta({ args, modelId, modelVariableName, queryParams });
|
|
121
|
-
|
|
127
|
+
if (s.meta.syncNewModel == undefined)
|
|
128
|
+
s.meta.syncNewModel = false;
|
|
129
|
+
if (s.meta.newIfNoIdDefaultsResult == undefined)
|
|
130
|
+
s.meta.newIfNoIdDefaultsResult = null;
|
|
131
|
+
if (s.m.active && s.props.newIfNoId && !s.m.modelId && !s.s.model && !s.m.syncNewModel) {
|
|
132
|
+
if (s.props.newIfNoId?.defaults && s.m.newIfNoIdDefaultsResult === null) {
|
|
133
|
+
const defaultsResult = s.props.newIfNoId.defaults();
|
|
134
|
+
if (defaultsResult && typeof defaultsResult.then == "function") {
|
|
135
|
+
s.meta.newIfNoIdDefaultsResult = defaultsResult.catch((error) => {
|
|
136
|
+
throw error;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
s.meta.newIfNoIdDefaultsResult = defaultsResult;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (!(s.m.newIfNoIdDefaultsResult && typeof s.m.newIfNoIdDefaultsResult.then == "function")) {
|
|
144
|
+
const ModelClass = modelClass;
|
|
145
|
+
const paramKey = ModelClass.modelName().paramKey();
|
|
146
|
+
const modelDataFromParams = s.m.queryParams[paramKey] || {};
|
|
147
|
+
const modelData = Object.assign(s.m.newIfNoIdDefaultsResult || {}, s.props.newAttributes, modelDataFromParams);
|
|
148
|
+
const model = new ModelClass({
|
|
149
|
+
isNewRecord: true,
|
|
150
|
+
data: { a: modelData }
|
|
151
|
+
});
|
|
152
|
+
s.meta.syncNewModel = model;
|
|
153
|
+
s.set({ model });
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
useLayoutEffect(() => { loadModel(); }, cacheArgs);
|
|
122
157
|
useLayoutEffect(() => {
|
|
123
158
|
let reloadModelCallback;
|
|
124
159
|
if (args.events) {
|
|
@@ -167,4 +202,4 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
167
202
|
return result;
|
|
168
203
|
};
|
|
169
204
|
export default useModel;
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUMzRCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxjQUFjLE1BQU0sK0NBQStDLENBQUE7QUFDMUUsT0FBTyxRQUFRLE1BQU0sc0NBQXNDLENBQUE7QUFFM0Q7Ozs7Ozs7OztHQVNHO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxRQUFRLEdBQUcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQy9DLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFBO0lBQ3BDLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQTtJQUVwQixJQUFJLE9BQU8sT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLElBQUksR0FBRyxPQUFPLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxDQUFBO0lBQzlCLENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxHQUFHLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXhCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDVixLQUFLLEVBQUUsU0FBUztRQUNoQixRQUFRLEVBQUUsU0FBUztLQUNwQixDQUFDLENBQUE7SUFFRixJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFL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QUFRLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlLmpzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IE1vZGVsRXZlbnRzIGZyb20gXCIuL21vZGVsLWV2ZW50cy5qc1wiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtcy5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3VzZS1zaGFwZS5qc1wiXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gdXNlTW9kZWxBcmdzXG4gKiBAcHJvcGVydHkgeyhhcmc6IG9iamVjdCkgPT4gRnVuY3Rpb259IFtjYWxsYmFja11cbiAqIEBwcm9wZXJ0eSB7KGFyZzogb2JqZWN0KSA9PiBvYmplY3R9IFthcmdzXVxuICogQHByb3BlcnR5IHsoKSA9PiBudW1iZXJ8c3RyaW5nfSBbbG9hZEJ5UXVlcnlQYXJhbV1cbiAqIEBwcm9wZXJ0eSB7YW55W119IFtjYWNoZUFyZ3NdXG4gKiBAcHJvcGVydHkge3twYXJhbXM6IG9iamVjdH19IFttYXRjaF1cbiAqIEBwcm9wZXJ0eSB7KGN0eDogeyBtb2RlbDogaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHQgfSkgPT4gdm9pZH0gW29uRGVzdHJveWVkXVxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL2NvbGxlY3Rpb24uanNcIikuZGVmYXVsdH0gW3F1ZXJ5XVxuICovXG5cbi8qKlxuICogQHBhcmFtIHtGdW5jdGlvbnxvYmplY3R9IG1vZGVsQ2xhc3NBcmdcbiAqIEBwYXJhbSB7b2JqZWN0IHwgKChhcmdzOiB7bW9kZWxDbGFzczogdHlwZW9mIGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0fSkgPT4gdXNlTW9kZWxBcmdzKX0gW2FyZ3NBcmddXG4gKi9cbmNvbnN0IHVzZU1vZGVsID0gKG1vZGVsQ2xhc3NBcmcsIGFyZ3NBcmcgPSB7fSkgPT4ge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcbiAgbGV0IGFyZ3MsIG1vZGVsQ2xhc3NcblxuICBpZiAodHlwZW9mIGFyZ3NBcmcgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgYXJncyA9IGFyZ3NBcmcoe21vZGVsQ2xhc3N9KVxuICB9IGVsc2Uge1xuICAgIGFyZ3MgPSBhcmdzQXJnXG4gIH1cblxuICBjb25zdCBzID0gdXNlU2hhcGUoYXJncylcblxuICBzLnVzZVN0YXRlcyh7XG4gICAgbW9kZWw6IHVuZGVmaW5lZCxcbiAgICBub3RGb3VuZDogdW5kZWZpbmVkXG4gIH0pXG5cbiAgaWYgKFwiYWN0aXZlXCIgaW4gcy5wcm9wcyAmJiAhcy5wcm9wcy5hY3RpdmUpIHtcbiAgICBzLm1ldGEuYWN0aXZlID0gZmFsc2VcbiAgfSBlbHNlIHtcbiAgICBzLm1ldGEuYWN0aXZlID0gdHJ1ZVxuICB9XG5cbiAgaWYgKHR5cGVvZiBtb2RlbENsYXNzQXJnID09IFwib2JqZWN0XCIpIHtcbiAgICBtb2RlbENsYXNzID0gbW9kZWxDbGFzc0FyZy5jYWxsYmFjayh7cXVlcnlQYXJhbXN9KVxuICB9IGVsc2Uge1xuICAgIG1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzQXJnXG4gIH1cblxuICBjb25zdCBwYXJhbXNWYXJpYWJsZU5hbWUgPSBgJHttb2RlbENsYXNzLm1vZGVsTmFtZSgpLnBhcmFtS2V5KCl9X2lkYFxuICBsZXQgbW9kZWxJZFxuXG4gIGlmIChhcmdzLmxvYWRCeVF1ZXJ5UGFyYW0pIHtcbiAgICBtb2RlbElkID0gYXJncy5sb2FkQnlRdWVyeVBhcmFtKHtxdWVyeVBhcmFtc30pXG4gIH0gZWxzZSBpZiAoIWFyZ3MucXVlcnkpIHtcbiAgICBpZiAoIWFyZ3MubWF0Y2gpIHRocm93IG5ldyBFcnJvcihcIkJvdGggJ2xvYWRCeVF1ZXJ5UGFyYW0nIGFuZCAnbWF0Y2gnIHdhc24ndCBnaXZlblwiKVxuXG4gICAgbW9kZWxJZCA9IGFyZ3MubWF0Y2gucGFyYW1zW3BhcmFtc1ZhcmlhYmxlTmFtZV0gfHwgYXJncy5tYXRjaC5wYXJhbXMuaWRcbiAgfVxuXG4gIGNvbnN0IG1vZGVsVmFyaWFibGVOYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSwgdHJ1ZSlcbiAgY29uc3QgY2FjaGVBcmdzID0gW21vZGVsSWRdXG5cbiAgY29uc3QgbG9hZEV4aXN0aW5nTW9kZWwgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgbGV0IHF1ZXJ5XG5cbiAgICBpZiAocy5tLm1vZGVsSWQpIHtcbiAgICAgIHF1ZXJ5ID0gbW9kZWxDbGFzcy5yYW5zYWNrKHtpZF9lcTogcy5tLm1vZGVsSWR9KVxuICAgIH0gZWxzZSBpZiAocy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0gcy5tLmFyZ3MucXVlcnkuY2xvbmUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vZGVsIElEIHdhcyBnaXZlbjogJHtzLm0ubW9kZWxJZH0gYnkgJyR7cGFyYW1zVmFyaWFibGVOYW1lfScgaW4gcXVlcnkgcGFyYW1zOiAke09iamVjdC5rZXlzKHMucHJvcHMubWF0Y2gucGFyYW1zKS5qb2luKFwiLCBcIil9YClcbiAgICB9XG5cbiAgICBpZiAocy5wcm9wcy5hYmlsaXRpZXMpIHF1ZXJ5LmFiaWxpdGllcyhzLnAuYWJpbGl0aWVzKVxuICAgIGlmIChzLnByb3BzLnByZWxvYWQpIHF1ZXJ5LnByZWxvYWQocy5wLnByZWxvYWQpXG4gICAgaWYgKHMucHJvcHMuc2VsZWN0KSBxdWVyeS5zZWxlY3Qocy5wLnNlbGVjdClcblxuICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgcXVlcnkuZmlyc3QoKVxuXG4gICAgcy5zZXQoe21vZGVsLCBub3RGb3VuZDogIW1vZGVsfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZE5ld01vZGVsID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IE1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzXG4gICAgY29uc3QgcGFyYW1LZXkgPSBNb2RlbENsYXNzLm1vZGVsTmFtZSgpLnBhcmFtS2V5KClcbiAgICBjb25zdCBtb2RlbERhdGFGcm9tUGFyYW1zID0gcy5tLnF1ZXJ5UGFyYW1zW3BhcmFtS2V5XSB8fCB7fVxuXG4gICAgbGV0IGRlZmF1bHRzID0ge31cblxuICAgIGlmIChzLnByb3BzLm5ld0lmTm9JZD8uZGVmYXVsdHMpIHtcbiAgICAgIGRlZmF1bHRzID0gYXdhaXQgcy5wcm9wcy5uZXdJZk5vSWQuZGVmYXVsdHMoKVxuICAgIH1cblxuICAgIGNvbnN0IG1vZGVsRGF0YSA9IE9iamVjdC5hc3NpZ24oZGVmYXVsdHMsIHMucHJvcHMubmV3QXR0cmlidXRlcywgbW9kZWxEYXRhRnJvbVBhcmFtcylcbiAgICBjb25zdCBtb2RlbCA9IG5ldyBNb2RlbENsYXNzKHtcbiAgICAgIGlzTmV3UmVjb3JkOiB0cnVlLFxuICAgICAgZGF0YToge2E6IG1vZGVsRGF0YX1cbiAgICB9KVxuXG4gICAgcy5zZXQoe21vZGVsfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZE1vZGVsID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmICghcy5tLmFjdGl2ZSkge1xuICAgICAgLy8gTm90IGFjdGl2ZSAtIGRvbid0IGRvIGFueXRoaW5nXG4gICAgfSBlbHNlIGlmIChzLnByb3BzLm5ld0lmTm9JZCAmJiAhcy5tLm1vZGVsSWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCBsb2FkTmV3TW9kZWwoKVxuICAgIH0gZWxzZSBpZiAoIXMucHJvcHMub3B0aW9uYWwgfHwgcy5tLm1vZGVsSWQgfHwgcy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHJldHVybiBhd2FpdCBsb2FkRXhpc3RpbmdNb2RlbCgpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBvbkRlc3Ryb3llZCA9IHVzZUNhbGxiYWNrKCh7bW9kZWx9KSA9PiB7XG4gICAgY29uc3QgZm9yd2FyZEFyZ3MgPSB7bW9kZWx9XG5cbiAgICBmb3J3YXJkQXJnc1tzLm0ubW9kZWxWYXJpYWJsZU5hbWVdID0gbW9kZWxcblxuICAgIHMucC5vbkRlc3Ryb3llZChmb3J3YXJkQXJncylcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25TaWduZWRJbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBsb2FkTW9kZWwoKVxuICB9LCBbXSlcblxuICBjb25zdCBvblNpZ25lZE91dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBsb2FkTW9kZWwoKVxuICB9LCBbXSlcblxuICBpZiAoYXJncy5jYWNoZUFyZ3MpIHtcbiAgICBjYWNoZUFyZ3MucHVzaCguLi5hcmdzLmNhY2hlQXJncylcbiAgfVxuXG4gIHMudXBkYXRlTWV0YSh7YXJncywgbW9kZWxJZCwgbW9kZWxWYXJpYWJsZU5hbWUsIHF1ZXJ5UGFyYW1zfSlcblxuICB1c2VNZW1vKFxuICAgICgpID0+IHsgbG9hZE1vZGVsKCkgfSxcbiAgICBjYWNoZUFyZ3NcbiAgKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlbG9hZE1vZGVsQ2FsbGJhY2tcblxuICAgIGlmIChhcmdzLmV2ZW50cykge1xuICAgICAgcmVsb2FkTW9kZWxDYWxsYmFjayA9IGFyZ3MuZXZlbnRzLmFkZExpc3RlbmVyKFwicmVsb2FkTW9kZWxcIiwgbG9hZE1vZGVsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmVsb2FkTW9kZWxDYWxsYmFjaykge1xuICAgICAgICBhcmdzLmV2ZW50cy5yZW1vdmVMaXN0ZW5lcihcInJlbG9hZE1vZGVsXCIsIGxvYWRNb2RlbClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFthcmdzLmV2ZW50c10pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY29ubmVjdFVwZGF0ZWRcblxuICAgIGlmIChzLnMubW9kZWwgJiYgYXJncy5ldmVudFVwZGF0ZWQpIHtcbiAgICAgIGNvbm5lY3RVcGRhdGVkID0gTW9kZWxFdmVudHMuY29ubmVjdFVwZGF0ZWQocy5zLm1vZGVsLCBsb2FkTW9kZWwpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbm5lY3RVcGRhdGVkPy51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9LCBbYXJncy5ldmVudFVwZGF0ZWQsIHMucy5tb2RlbD8uaWQoKV0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBEZXZpc2UuZXZlbnRzKCkuYWRkTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25JblwiLCBvblNpZ25lZEluKVxuICAgIERldmlzZS5ldmVudHMoKS5hZGRMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbk91dFwiLCBvblNpZ25lZE91dClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBEZXZpc2UuZXZlbnRzKCkucmVtb3ZlTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25JblwiLCBvblNpZ25lZEluKVxuICAgICAgRGV2aXNlLmV2ZW50cygpLnJlbW92ZUxpc3RlbmVyKFwib25EZXZpc2VTaWduT3V0XCIsIG9uU2lnbmVkT3V0KVxuICAgIH1cbiAgfSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBjb25uZWN0RGVzdHJveWVkXG5cbiAgICBpZiAocy5zLm1vZGVsICYmIGFyZ3Mub25EZXN0cm95ZWQpIHtcbiAgICAgIGNvbm5lY3REZXN0cm95ZWQgPSBNb2RlbEV2ZW50cy5jb25uZWN0RGVzdHJveWVkKHMucy5tb2RlbCwgb25EZXN0cm95ZWQpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbm5lY3REZXN0cm95ZWQ/LnVuc3Vic2NyaWJlKClcbiAgICB9XG4gIH0sIFthcmdzLm9uRGVzdHJveWVkLCBzLnMubW9kZWw/LmlkKCldKVxuXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBtb2RlbDogcy5zLm1vZGVsLFxuICAgIG1vZGVsSWQsXG4gICAgbm90Rm91bmQ6IHMucy5ub3RGb3VuZFxuICB9XG5cbiAgcmVzdWx0W21vZGVsVmFyaWFibGVOYW1lXSA9IHMucy5tb2RlbFxuICByZXN1bHRbYCR7bW9kZWxWYXJpYWJsZU5hbWV9SWRgXSA9IG1vZGVsSWRcbiAgcmVzdWx0W2Ake21vZGVsVmFyaWFibGVOYW1lfU5vdEZvdW5kYF0gPSBzLnMubm90Rm91bmRcblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZU1vZGVsXG4iXX0=
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBQyxXQUFXLEVBQUUsZUFBZSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQ2xELE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLFdBQVcsTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLGNBQWMsTUFBTSwrQ0FBK0MsQ0FBQTtBQUMxRSxPQUFPLFFBQVEsTUFBTSxzQ0FBc0MsQ0FBQTtBQUUzRDs7Ozs7Ozs7O0dBU0c7QUFFSDs7O0dBR0c7QUFDSCxzQ0FBc0M7QUFDdEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQy9DLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFBO0lBQ3BDLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQTtJQUVwQixJQUFJLE9BQU8sT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLElBQUksR0FBRyxPQUFPLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxDQUFBO0lBQzlCLENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxHQUFHLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXhCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDVixLQUFLLEVBQUUsU0FBUztRQUNoQixRQUFRLEVBQUUsU0FBUztLQUNwQixDQUFDLENBQUE7SUFFRixJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxL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O0lBRUYsZUFBZSxDQUFDLEdBQUcsRUFBRTtRQUNuQixJQUFJLGdCQUFnQixDQUFBO1FBRXBCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUN6RSxDQUFDO1FBRUQsT0FBTyxHQUFHLEVBQUU7WUFDVixnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsQ0FBQTtRQUNqQyxDQUFDLENBQUE7SUFDSCxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUV2QyxNQUFNLE1BQU0sR0FBRztRQUNiLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7UUFDaEIsT0FBTztRQUNQLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7S0FDdkIsQ0FBQTtJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQ3JDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixJQUFJLENBQUMsR0FBRyxPQUFPLENBQUE7SUFDMUMsTUFBTSxDQUFDLEdBQUcsaUJBQWlCLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFBO0lBRXJELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBRUQsZUFBZSxRQUFRLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlLmpzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IE1vZGVsRXZlbnRzIGZyb20gXCIuL21vZGVsLWV2ZW50cy5qc1wiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtcy5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3VzZS1zaGFwZS5qc1wiXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gdXNlTW9kZWxBcmdzXG4gKiBAcHJvcGVydHkgeyhhcmc6IG9iamVjdCkgPT4gRnVuY3Rpb259IFtjYWxsYmFja11cbiAqIEBwcm9wZXJ0eSB7KGFyZzogb2JqZWN0KSA9PiBvYmplY3R9IFthcmdzXVxuICogQHByb3BlcnR5IHsoKSA9PiBudW1iZXJ8c3RyaW5nfSBbbG9hZEJ5UXVlcnlQYXJhbV1cbiAqIEBwcm9wZXJ0eSB7YW55W119IFtjYWNoZUFyZ3NdXG4gKiBAcHJvcGVydHkge3twYXJhbXM6IG9iamVjdH19IFttYXRjaF1cbiAqIEBwcm9wZXJ0eSB7KGN0eDogeyBtb2RlbDogaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHQgfSkgPT4gdm9pZH0gW29uRGVzdHJveWVkXVxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL2NvbGxlY3Rpb24uanNcIikuZGVmYXVsdH0gW3F1ZXJ5XVxuICovXG5cbi8qKlxuICogQHBhcmFtIHtGdW5jdGlvbnxvYmplY3R9IG1vZGVsQ2xhc3NBcmdcbiAqIEBwYXJhbSB7b2JqZWN0IHwgKChhcmdzOiB7bW9kZWxDbGFzczogdHlwZW9mIGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0fSkgPT4gdXNlTW9kZWxBcmdzKX0gW2FyZ3NBcmddXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG5jb25zdCB1c2VNb2RlbCA9IChtb2RlbENsYXNzQXJnLCBhcmdzQXJnID0ge30pID0+IHtcbiAgY29uc3QgcXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG4gIGxldCBhcmdzLCBtb2RlbENsYXNzXG5cbiAgaWYgKHR5cGVvZiBhcmdzQXJnID09IFwiZnVuY3Rpb25cIikge1xuICAgIGFyZ3MgPSBhcmdzQXJnKHttb2RlbENsYXNzfSlcbiAgfSBlbHNlIHtcbiAgICBhcmdzID0gYXJnc0FyZ1xuICB9XG5cbiAgY29uc3QgcyA9IHVzZVNoYXBlKGFyZ3MpXG5cbiAgcy51c2VTdGF0ZXMoe1xuICAgIG1vZGVsOiB1bmRlZmluZWQsXG4gICAgbm90Rm91bmQ6IHVuZGVmaW5lZFxuICB9KVxuXG4gIGlmIChcImFjdGl2ZVwiIGluIHMucHJvcHMgJiYgIXMucHJvcHMuYWN0aXZlKSB7XG4gICAgcy5tZXRhLmFjdGl2ZSA9IGZhbHNlXG4gIH0gZWxzZSB7XG4gICAgcy5tZXRhLmFjdGl2ZSA9IHRydWVcbiAgfVxuXG4gIGlmICh0eXBlb2YgbW9kZWxDbGFzc0FyZyA9PSBcIm9iamVjdFwiKSB7XG4gICAgbW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NBcmcuY2FsbGJhY2soe3F1ZXJ5UGFyYW1zfSlcbiAgfSBlbHNlIHtcbiAgICBtb2RlbENsYXNzID0gbW9kZWxDbGFzc0FyZ1xuICB9XG5cbiAgY29uc3QgcGFyYW1zVmFyaWFibGVOYW1lID0gYCR7bW9kZWxDbGFzcy5tb2RlbE5hbWUoKS5wYXJhbUtleSgpfV9pZGBcbiAgbGV0IG1vZGVsSWRcblxuICBpZiAoYXJncy5sb2FkQnlRdWVyeVBhcmFtKSB7XG4gICAgbW9kZWxJZCA9IGFyZ3MubG9hZEJ5UXVlcnlQYXJhbSh7cXVlcnlQYXJhbXN9KVxuICB9IGVsc2UgaWYgKCFhcmdzLnF1ZXJ5KSB7XG4gICAgaWYgKCFhcmdzLm1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoXCJCb3RoICdsb2FkQnlRdWVyeVBhcmFtJyBhbmQgJ21hdGNoJyB3YXNuJ3QgZ2l2ZW5cIilcblxuICAgIG1vZGVsSWQgPSBhcmdzLm1hdGNoLnBhcmFtc1twYXJhbXNWYXJpYWJsZU5hbWVdIHx8IGFyZ3MubWF0Y2gucGFyYW1zLmlkXG4gIH1cblxuICBjb25zdCBtb2RlbFZhcmlhYmxlTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUsIHRydWUpXG4gIGNvbnN0IGNhY2hlQXJncyA9IFttb2RlbElkXVxuXG4gIGNvbnN0IGxvYWRFeGlzdGluZ01vZGVsID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGxldCBxdWVyeVxuXG4gICAgaWYgKHMubS5tb2RlbElkKSB7XG4gICAgICBxdWVyeSA9IG1vZGVsQ2xhc3MucmFuc2Fjayh7aWRfZXE6IHMubS5tb2RlbElkfSlcbiAgICB9IGVsc2UgaWYgKHMubS5hcmdzLnF1ZXJ5KSB7XG4gICAgICBxdWVyeSA9IHMubS5hcmdzLnF1ZXJ5LmNsb25lKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtb2RlbCBJRCB3YXMgZ2l2ZW46ICR7cy5tLm1vZGVsSWR9IGJ5ICcke3BhcmFtc1ZhcmlhYmxlTmFtZX0nIGluIHF1ZXJ5IHBhcmFtczogJHtPYmplY3Qua2V5cyhzLnByb3BzLm1hdGNoLnBhcmFtcykuam9pbihcIiwgXCIpfWApXG4gICAgfVxuXG4gICAgaWYgKHMucHJvcHMuYWJpbGl0aWVzKSBxdWVyeS5hYmlsaXRpZXMocy5wLmFiaWxpdGllcylcbiAgICBpZiAocy5wcm9wcy5wcmVsb2FkKSBxdWVyeS5wcmVsb2FkKHMucC5wcmVsb2FkKVxuICAgIGlmIChzLnByb3BzLnNlbGVjdCkgcXVlcnkuc2VsZWN0KHMucC5zZWxlY3QpXG5cbiAgICBjb25zdCBtb2RlbCA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcblxuICAgIHMuc2V0KHttb2RlbCwgbm90Rm91bmQ6ICFtb2RlbH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWROZXdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBNb2RlbENsYXNzID0gbW9kZWxDbGFzc1xuICAgIGNvbnN0IHBhcmFtS2V5ID0gTW9kZWxDbGFzcy5tb2RlbE5hbWUoKS5wYXJhbUtleSgpXG4gICAgY29uc3QgbW9kZWxEYXRhRnJvbVBhcmFtcyA9IHMubS5xdWVyeVBhcmFtc1twYXJhbUtleV0gfHwge31cblxuICAgIGxldCBkZWZhdWx0cyA9IHt9XG5cbiAgICBpZiAocy5wcm9wcy5uZXdJZk5vSWQ/LmRlZmF1bHRzKSB7XG4gICAgICBsZXQgZGVmYXVsdHNSZXN1bHQgPSBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHRcblxuICAgICAgaWYgKGRlZmF1bHRzUmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgIGRlZmF1bHRzUmVzdWx0ID0gcy5wcm9wcy5uZXdJZk5vSWQuZGVmYXVsdHMoKVxuICAgICAgfVxuXG4gICAgICBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBudWxsXG4gICAgICBkZWZhdWx0cyA9IGF3YWl0IGRlZmF1bHRzUmVzdWx0XG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxEYXRhID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0cywgcy5wcm9wcy5uZXdBdHRyaWJ1dGVzLCBtb2RlbERhdGFGcm9tUGFyYW1zKVxuICAgIGNvbnN0IG1vZGVsID0gbmV3IE1vZGVsQ2xhc3Moe1xuICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICBkYXRhOiB7YTogbW9kZWxEYXRhfVxuICAgIH0pXG5cbiAgICBzLnNldCh7bW9kZWx9KVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTW9kZWwgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFzLm0uYWN0aXZlKSB7XG4gICAgICAvLyBOb3QgYWN0aXZlIC0gZG9uJ3QgZG8gYW55dGhpbmdcbiAgICB9IGVsc2UgaWYgKHMucHJvcHMubmV3SWZOb0lkICYmICFzLm0ubW9kZWxJZCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGxvYWROZXdNb2RlbCgpXG4gICAgfSBlbHNlIGlmICghcy5wcm9wcy5vcHRpb25hbCB8fCBzLm0ubW9kZWxJZCB8fCBzLm0uYXJncy5xdWVyeSkge1xuICAgICAgcmV0dXJuIGF3YWl0IGxvYWRFeGlzdGluZ01vZGVsKClcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uRGVzdHJveWVkID0gdXNlQ2FsbGJhY2soKHttb2RlbH0pID0+IHtcbiAgICBjb25zdCBmb3J3YXJkQXJncyA9IHttb2RlbH1cblxuICAgIGZvcndhcmRBcmdzW3MubS5tb2RlbFZhcmlhYmxlTmFtZV0gPSBtb2RlbFxuXG4gICAgcy5wLm9uRGVzdHJveWVkKGZvcndhcmRBcmdzKVxuICB9LCBbXSlcblxuICBjb25zdCBvblNpZ25lZEluID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGxvYWRNb2RlbCgpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uU2lnbmVkT3V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGxvYWRNb2RlbCgpXG4gIH0sIFtdKVxuXG4gIGlmIChhcmdzLmNhY2hlQXJncykge1xuICAgIGNhY2hlQXJncy5wdXNoKC4uLmFyZ3MuY2FjaGVBcmdzKVxuICB9XG5cbiAgcy51cGRhdGVNZXRhKHthcmdzLCBtb2RlbElkLCBtb2RlbFZhcmlhYmxlTmFtZSwgcXVlcnlQYXJhbXN9KVxuICBpZiAocy5tZXRhLnN5bmNOZXdNb2RlbCA9PSB1bmRlZmluZWQpIHMubWV0YS5zeW5jTmV3TW9kZWwgPSBmYWxzZVxuICBpZiAocy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID09IHVuZGVmaW5lZCkgcy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID0gbnVsbFxuXG4gIGlmIChzLm0uYWN0aXZlICYmIHMucHJvcHMubmV3SWZOb0lkICYmICFzLm0ubW9kZWxJZCAmJiAhcy5zLm1vZGVsICYmICFzLm0uc3luY05ld01vZGVsKSB7XG4gICAgaWYgKHMucHJvcHMubmV3SWZOb0lkPy5kZWZhdWx0cyAmJiBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzUmVzdWx0ID0gcy5wcm9wcy5uZXdJZk5vSWQuZGVmYXVsdHMoKVxuXG4gICAgICBpZiAoZGVmYXVsdHNSZXN1bHQgJiYgdHlwZW9mIGRlZmF1bHRzUmVzdWx0LnRoZW4gPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHMubWV0YS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9IGRlZmF1bHRzUmVzdWx0LmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBkZWZhdWx0c1Jlc3VsdFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghKHMubS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCAmJiB0eXBlb2Ygcy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0LnRoZW4gPT0gXCJmdW5jdGlvblwiKSkge1xuICAgICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcbiAgICAgIGNvbnN0IHBhcmFtS2V5ID0gTW9kZWxDbGFzcy5tb2RlbE5hbWUoKS5wYXJhbUtleSgpXG4gICAgICBjb25zdCBtb2RlbERhdGFGcm9tUGFyYW1zID0gcy5tLnF1ZXJ5UGFyYW1zW3BhcmFtS2V5XSB8fCB7fVxuICAgICAgY29uc3QgbW9kZWxEYXRhID0gT2JqZWN0LmFzc2lnbihzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgfHwge30sIHMucHJvcHMubmV3QXR0cmlidXRlcywgbW9kZWxEYXRhRnJvbVBhcmFtcylcbiAgICAgIGNvbnN0IG1vZGVsID0gbmV3IE1vZGVsQ2xhc3Moe1xuICAgICAgICBpc05ld1JlY29yZDogdHJ1ZSxcbiAgICAgICAgZGF0YToge2E6IG1vZGVsRGF0YX1cbiAgICAgIH0pXG5cbiAgICAgIHMubWV0YS5zeW5jTmV3TW9kZWwgPSBtb2RlbFxuICAgICAgcy5zZXQoe21vZGVsfSlcbiAgICB9XG4gIH1cblxuICB1c2VMYXlvdXRFZmZlY3QoXG4gICAgKCkgPT4geyBsb2FkTW9kZWwoKSB9LFxuICAgIGNhY2hlQXJnc1xuICApXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVsb2FkTW9kZWxDYWxsYmFja1xuXG4gICAgaWYgKGFyZ3MuZXZlbnRzKSB7XG4gICAgICByZWxvYWRNb2RlbENhbGxiYWNrID0gYXJncy5ldmVudHMuYWRkTGlzdGVuZXIoXCJyZWxvYWRNb2RlbFwiLCBsb2FkTW9kZWwpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZWxvYWRNb2RlbENhbGxiYWNrKSB7XG4gICAgICAgIGFyZ3MuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKFwicmVsb2FkTW9kZWxcIiwgbG9hZE1vZGVsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2FyZ3MuZXZlbnRzXSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBjb25uZWN0VXBkYXRlZFxuXG4gICAgaWYgKHMucy5tb2RlbCAmJiBhcmdzLmV2ZW50VXBkYXRlZCkge1xuICAgICAgY29ubmVjdFVwZGF0ZWQgPSBNb2RlbEV2ZW50cy5jb25uZWN0VXBkYXRlZChzLnMubW9kZWwsIGxvYWRNb2RlbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29ubmVjdFVwZGF0ZWQ/LnVuc3Vic2NyaWJlKClcbiAgICB9XG4gIH0sIFthcmdzLmV2ZW50VXBkYXRlZCwgcy5zLm1vZGVsPy5pZCgpXSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIERldmlzZS5ldmVudHMoKS5hZGRMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbkluXCIsIG9uU2lnbmVkSW4pXG4gICAgRGV2aXNlLmV2ZW50cygpLmFkZExpc3RlbmVyKFwib25EZXZpc2VTaWduT3V0XCIsIG9uU2lnbmVkT3V0KVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIERldmlzZS5ldmVudHMoKS5yZW1vdmVMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbkluXCIsIG9uU2lnbmVkSW4pXG4gICAgICBEZXZpc2UuZXZlbnRzKCkucmVtb3ZlTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25PdXRcIiwgb25TaWduZWRPdXQpXG4gICAgfVxuICB9KVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNvbm5lY3REZXN0cm95ZWRcblxuICAgIGlmIChzLnMubW9kZWwgJiYgYXJncy5vbkRlc3Ryb3llZCkge1xuICAgICAgY29ubmVjdERlc3Ryb3llZCA9IE1vZGVsRXZlbnRzLmNvbm5lY3REZXN0cm95ZWQocy5zLm1vZGVsLCBvbkRlc3Ryb3llZClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29ubmVjdERlc3Ryb3llZD8udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfSwgW2FyZ3Mub25EZXN0cm95ZWQsIHMucy5tb2RlbD8uaWQoKV0pXG5cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIG1vZGVsOiBzLnMubW9kZWwsXG4gICAgbW9kZWxJZCxcbiAgICBub3RGb3VuZDogcy5zLm5vdEZvdW5kXG4gIH1cblxuICByZXN1bHRbbW9kZWxWYXJpYWJsZU5hbWVdID0gcy5zLm1vZGVsXG4gIHJlc3VsdFtgJHttb2RlbFZhcmlhYmxlTmFtZX1JZGBdID0gbW9kZWxJZFxuICByZXN1bHRbYCR7bW9kZWxWYXJpYWJsZU5hbWV9Tm90Rm91bmRgXSA9IHMucy5ub3RGb3VuZFxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlTW9kZWxcbiJdfQ==
|