@gnwebsoft/ui 4.0.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-246MYJX6.js +479 -0
- package/dist/chunk-CE4CSA36.cjs +2262 -0
- package/dist/chunk-DJSMLHFO.js +140 -0
- package/dist/chunk-GHW77WIM.cjs +72 -0
- package/dist/chunk-L3QQX3BK.js +1596 -0
- package/dist/chunk-MULSVYFT.js +72 -0
- package/dist/chunk-MVPLBJRK.cjs +1 -1
- package/dist/chunk-NC3JINIM.cjs +1596 -0
- package/dist/chunk-R45OPW5A.js +2262 -0
- package/dist/chunk-UEBN47RB.cjs +140 -0
- package/dist/chunk-YUVXLOSA.cjs +479 -0
- package/dist/core/index.cjs +121 -0
- package/dist/core/index.js +121 -0
- package/dist/hooks/index.cjs +3 -3
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +81 -7
- package/dist/index.js +126 -52
- package/dist/types/index.cjs +3 -3
- package/dist/types/index.js +1 -1
- package/dist/utils/index.cjs +3 -25
- package/dist/utils/index.js +3 -25
- package/dist/wrappers/index.cjs +4 -4
- package/dist/wrappers/index.js +16 -16
- package/package.json +22 -17
- package/dist/AsyncSelectPayload-B9-6l33R.d.cts +0 -10
- package/dist/AsyncSelectPayload-B9-6l33R.d.ts +0 -10
- package/dist/chunk-3OPVOWQK.js +0 -140
- package/dist/chunk-AEOF2TUF.cjs +0 -2273
- package/dist/chunk-ALHC7RLK.js +0 -575
- package/dist/chunk-BRRLB22L.js +0 -72
- package/dist/chunk-CHZU4PZB.js +0 -2273
- package/dist/chunk-EBRUE2WR.cjs +0 -493
- package/dist/chunk-HEHPKM4B.cjs +0 -140
- package/dist/chunk-K2EJ4YKO.cjs +0 -72
- package/dist/chunk-U6SDYCWF.js +0 -493
- package/dist/chunk-XY4U6A77.cjs +0 -575
- package/dist/components/index.cjs +0 -25
- package/dist/components/index.d.cts +0 -752
- package/dist/components/index.d.ts +0 -752
- package/dist/components/index.js +0 -25
- package/dist/enhanced-CDTkKUlj.d.ts +0 -134
- package/dist/enhanced-ZQoS03Cd.d.cts +0 -134
- package/dist/events-BcHVCLBz.d.cts +0 -77
- package/dist/events-BcHVCLBz.d.ts +0 -77
- package/dist/hooks/index.d.cts +0 -96
- package/dist/hooks/index.d.ts +0 -96
- package/dist/index.d.cts +0 -16
- package/dist/index.d.ts +0 -16
- package/dist/types/index.d.cts +0 -820
- package/dist/types/index.d.ts +0 -820
- package/dist/utils/index.d.cts +0 -683
- package/dist/utils/index.d.ts +0 -683
- package/dist/wrappers/index.d.cts +0 -1753
- package/dist/wrappers/index.d.ts +0 -1753
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
// src/hooks/useTransform/index.ts
|
|
2
|
+
function useTransform(options) {
|
|
3
|
+
const value = typeof options.transform?.input === "function" ? options.transform.input(options.value) : options.value;
|
|
4
|
+
const onChange = (eventOrValue, value2) => {
|
|
5
|
+
if (typeof options.transform?.output === "function") {
|
|
6
|
+
options.onChange(options.transform.output(eventOrValue, value2));
|
|
7
|
+
} else {
|
|
8
|
+
options.onChange(eventOrValue);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
return {
|
|
12
|
+
value,
|
|
13
|
+
onChange
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// src/hooks/useTransform/enhanced.ts
|
|
18
|
+
import { useCallback, useMemo } from "react";
|
|
19
|
+
var transformFactories = {
|
|
20
|
+
number: () => ({
|
|
21
|
+
input: (value) => {
|
|
22
|
+
if (value == null) return "";
|
|
23
|
+
return String(value);
|
|
24
|
+
},
|
|
25
|
+
output: (eventOrValue, _value) => {
|
|
26
|
+
let rawValue;
|
|
27
|
+
if (typeof eventOrValue === "object" && eventOrValue !== null && "target" in eventOrValue && typeof eventOrValue.target === "object" && eventOrValue.target !== null && "value" in eventOrValue.target) {
|
|
28
|
+
rawValue = String(eventOrValue.target.value);
|
|
29
|
+
} else {
|
|
30
|
+
rawValue = String(eventOrValue);
|
|
31
|
+
}
|
|
32
|
+
if (rawValue === "") return null;
|
|
33
|
+
const numValue = Number(rawValue);
|
|
34
|
+
return isNaN(numValue) ? null : numValue;
|
|
35
|
+
}
|
|
36
|
+
}),
|
|
37
|
+
text: () => ({
|
|
38
|
+
input: (value) => {
|
|
39
|
+
return value ?? "";
|
|
40
|
+
},
|
|
41
|
+
output: (eventOrValue, _value) => {
|
|
42
|
+
if (typeof eventOrValue === "object" && eventOrValue !== null && "target" in eventOrValue && typeof eventOrValue.target === "object" && eventOrValue.target !== null && "value" in eventOrValue.target) {
|
|
43
|
+
return eventOrValue.target.value;
|
|
44
|
+
}
|
|
45
|
+
return eventOrValue;
|
|
46
|
+
}
|
|
47
|
+
}),
|
|
48
|
+
select: () => ({
|
|
49
|
+
input: (value) => {
|
|
50
|
+
return value ?? "";
|
|
51
|
+
},
|
|
52
|
+
output: (eventOrValue, value) => {
|
|
53
|
+
if (value !== void 0) {
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
if (typeof eventOrValue === "object" && eventOrValue !== null && "target" in eventOrValue && typeof eventOrValue.target === "object" && eventOrValue.target !== null && "value" in eventOrValue.target) {
|
|
57
|
+
return eventOrValue.target.value;
|
|
58
|
+
}
|
|
59
|
+
return eventOrValue;
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
};
|
|
63
|
+
function getBuiltInTransform(fieldType) {
|
|
64
|
+
switch (fieldType) {
|
|
65
|
+
case "number":
|
|
66
|
+
return transformFactories.number();
|
|
67
|
+
case "text":
|
|
68
|
+
return transformFactories.text();
|
|
69
|
+
case "select":
|
|
70
|
+
case "radio":
|
|
71
|
+
return transformFactories.select();
|
|
72
|
+
default:
|
|
73
|
+
return void 0;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function useEnhancedTransform(options) {
|
|
77
|
+
const {
|
|
78
|
+
value: fieldValue,
|
|
79
|
+
onChange: fieldOnChange,
|
|
80
|
+
transform,
|
|
81
|
+
fieldType,
|
|
82
|
+
defaultValue,
|
|
83
|
+
enableWarnings
|
|
84
|
+
} = options;
|
|
85
|
+
const builtInTransform = useMemo(
|
|
86
|
+
() => fieldType ? getBuiltInTransform(fieldType) : void 0,
|
|
87
|
+
[fieldType]
|
|
88
|
+
);
|
|
89
|
+
if (enableWarnings && process.env.NODE_ENV === "development") {
|
|
90
|
+
if (transform && fieldType) {
|
|
91
|
+
console.warn(
|
|
92
|
+
"useEnhancedTransform: Both custom transform and fieldType provided. Custom transform will take precedence."
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const transformedValue = useMemo(() => {
|
|
97
|
+
const inputTransform = transform?.input || builtInTransform?.input;
|
|
98
|
+
if (typeof inputTransform === "function") {
|
|
99
|
+
return inputTransform(fieldValue);
|
|
100
|
+
}
|
|
101
|
+
if (fieldValue == null && defaultValue !== void 0) {
|
|
102
|
+
return defaultValue;
|
|
103
|
+
}
|
|
104
|
+
return fieldValue;
|
|
105
|
+
}, [fieldValue, transform?.input, builtInTransform?.input, defaultValue]);
|
|
106
|
+
const enhancedOnChange = useCallback(
|
|
107
|
+
(eventOrValue, value) => {
|
|
108
|
+
const outputTransform = transform?.output || builtInTransform?.output;
|
|
109
|
+
if (typeof outputTransform === "function") {
|
|
110
|
+
try {
|
|
111
|
+
const transformedValue2 = outputTransform(eventOrValue, value);
|
|
112
|
+
fieldOnChange(transformedValue2);
|
|
113
|
+
} catch (error) {
|
|
114
|
+
if (enableWarnings && process.env.NODE_ENV === "development") {
|
|
115
|
+
console.error("useEnhancedTransform: Error in output transformation:", error);
|
|
116
|
+
}
|
|
117
|
+
fieldOnChange(
|
|
118
|
+
value !== void 0 ? value : eventOrValue
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
} else {
|
|
122
|
+
fieldOnChange(
|
|
123
|
+
value !== void 0 ? value : eventOrValue
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
[fieldOnChange, transform?.output, builtInTransform?.output, enableWarnings]
|
|
128
|
+
);
|
|
129
|
+
return {
|
|
130
|
+
value: transformedValue,
|
|
131
|
+
onChange: enhancedOnChange
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export {
|
|
136
|
+
useTransform,
|
|
137
|
+
transformFactories,
|
|
138
|
+
useEnhancedTransform
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2hvb2tzL3VzZVRyYW5zZm9ybS9pbmRleC50cyIsICIuLi9zcmMvaG9va3MvdXNlVHJhbnNmb3JtL2VuaGFuY2VkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7XG4gIEZpZWxkUGF0aCxcbiAgRmllbGRWYWx1ZXMsXG4gIFBhdGhWYWx1ZSxcbiAgVXNlQ29udHJvbGxlclJldHVybixcbn0gZnJvbSBcInJlYWN0LWhvb2stZm9ybVwiO1xuXG5pbXBvcnQgdHlwZSB7IEV2ZW50T3JWYWx1ZSB9IGZyb20gXCIuLi8uLi90eXBlcy9ldmVudHNcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgdXNlVHJhbnNmb3JtIGhvb2suXG4gKlxuICogQHRlbXBsYXRlIFRGaWVsZFZhbHVlcyAtIFRoZSBmb3JtIHZhbHVlcyB0eXBlXG4gKiBAdGVtcGxhdGUgVE5hbWUgLSBUaGUgZmllbGQgbmFtZSB0eXBlXG4gKiBAdGVtcGxhdGUgVFZhbHVlIC0gVGhlIHRyYW5zZm9ybWVkIHZhbHVlIHR5cGVcbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlVHJhbnNmb3JtT3B0aW9uczxcbiAgVEZpZWxkVmFsdWVzIGV4dGVuZHMgRmllbGRWYWx1ZXMgPSBGaWVsZFZhbHVlcyxcbiAgVE5hbWUgZXh0ZW5kcyBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPiA9IEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+LFxuICBUVmFsdWUgPSB1bmtub3duLFxuPiB7XG4gIC8qKiBUaGUgY3VycmVudCBmaWVsZCB2YWx1ZSBmcm9tIHJlYWN0LWhvb2stZm9ybSAqL1xuICB2YWx1ZTogVXNlQ29udHJvbGxlclJldHVybjxURmllbGRWYWx1ZXMsIFROYW1lPltcImZpZWxkXCJdW1widmFsdWVcIl07XG4gIC8qKiBUaGUgb25DaGFuZ2UgaGFuZGxlciBmcm9tIHJlYWN0LWhvb2stZm9ybSAqL1xuICBvbkNoYW5nZTogVXNlQ29udHJvbGxlclJldHVybjxURmllbGRWYWx1ZXMsIFROYW1lPltcImZpZWxkXCJdW1wib25DaGFuZ2VcIl07XG4gIC8qKiBPcHRpb25hbCB0cmFuc2Zvcm1hdGlvbiBmdW5jdGlvbnMgKi9cbiAgdHJhbnNmb3JtPzoge1xuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybSB0aGUgZmllbGQgdmFsdWUgZm9yIGRpc3BsYXkgaW4gdGhlIGlucHV0XG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGN1cnJlbnQgZmllbGQgdmFsdWVcbiAgICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgdG8gZGlzcGxheVxuICAgICAqL1xuICAgIGlucHV0PzogKHZhbHVlOiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4pID0+IFRWYWx1ZTtcbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm0gdGhlIGlucHV0IGV2ZW50IGJhY2sgdG8gdGhlIGZpZWxkIHZhbHVlXG4gICAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGlucHV0IGV2ZW50IHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgdG8gc3RvcmUgaW4gdGhlIGZvcm1cbiAgICAgKi9cbiAgICBvdXRwdXQ/OiAoXG4gICAgICBldmVudE9yVmFsdWU6IEV2ZW50T3JWYWx1ZTxQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4+LFxuICAgICAgdmFsdWU/OiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT5cbiAgICApID0+IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPjtcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdHlwZSBmb3IgdGhlIHVzZVRyYW5zZm9ybSBob29rLlxuICpcbiAqIEB0ZW1wbGF0ZSBURmllbGRWYWx1ZXMgLSBUaGUgZm9ybSB2YWx1ZXMgdHlwZVxuICogQHRlbXBsYXRlIFROYW1lIC0gVGhlIGZpZWxkIG5hbWUgdHlwZVxuICogQHRlbXBsYXRlIFRWYWx1ZSAtIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSB0eXBlXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZVRyYW5zZm9ybVJldHVybjxcbiAgVEZpZWxkVmFsdWVzIGV4dGVuZHMgRmllbGRWYWx1ZXMgPSBGaWVsZFZhbHVlcyxcbiAgVE5hbWUgZXh0ZW5kcyBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPiA9IEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+LFxuICBUVmFsdWUgPSB1bmtub3duLFxuPiB7XG4gIC8qKiBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgdG8gZGlzcGxheSBpbiB0aGUgaW5wdXQgKi9cbiAgdmFsdWU6IFRWYWx1ZTtcbiAgLyoqIFRoZSBlbmhhbmNlZCBvbkNoYW5nZSBoYW5kbGVyIHdpdGggdHJhbnNmb3JtYXRpb24gYXBwbGllZCAqL1xuICBvbkNoYW5nZTogVXNlQ29udHJvbGxlclJldHVybjxURmllbGRWYWx1ZXMsIFROYW1lPltcImZpZWxkXCJdW1wib25DaGFuZ2VcIl07XG59XG5cbi8qKlxuICogQSBob29rIGZvciB0cmFuc2Zvcm1pbmcgZm9ybSBmaWVsZCB2YWx1ZXMgYmV0d2VlbiBkaXNwbGF5IGFuZCBzdG9yYWdlIGZvcm1hdHMuXG4gKlxuICogVGhpcyBob29rIHByb3ZpZGVzIGEgd2F5IHRvIHRyYW5zZm9ybSB2YWx1ZXMgYXMgdGhleSBmbG93IGJldHdlZW4gdGhlIGZvcm0gZmllbGRcbiAqIGFuZCB0aGUgZGlzcGxheSBjb21wb25lbnQuIEl0J3MgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgZm9ybWF0dGluZyBkYXRhIGZvciBkaXNwbGF5XG4gKiAobGlrZSBkYXRlcywgbnVtYmVycywgb3IgY29tcGxleCBvYmplY3RzKSB3aGlsZSBtYWludGFpbmluZyBhIGRpZmZlcmVudCBpbnRlcm5hbFxuICogcmVwcmVzZW50YXRpb24gaW4gdGhlIGZvcm0gc3RhdGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIFRyYW5zZm9ybSBhIGRhdGUgZm9yIGRpc3BsYXk6XG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgdmFsdWUsIG9uQ2hhbmdlIH0gPSB1c2VUcmFuc2Zvcm0oe1xuICogICB2YWx1ZTogZmllbGQudmFsdWUsXG4gKiAgIG9uQ2hhbmdlOiBmaWVsZC5vbkNoYW5nZSxcbiAqICAgdHJhbnNmb3JtOiB7XG4gKiAgICAgaW5wdXQ6IChkYXRlKSA9PiBkYXRlID8gZm9ybWF0KGRhdGUsICd5eXl5LU1NLWRkJykgOiAnJyxcbiAqICAgICBvdXRwdXQ6IChldmVudCkgPT4gbmV3IERhdGUoZXZlbnQudGFyZ2V0LnZhbHVlKVxuICogICB9XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlXG4gKiBUcmFuc2Zvcm0gbnVtYmVycyB3aXRoIGZvcm1hdHRpbmc6XG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgdmFsdWUsIG9uQ2hhbmdlIH0gPSB1c2VUcmFuc2Zvcm0oe1xuICogICB2YWx1ZTogZmllbGQudmFsdWUsXG4gKiAgIG9uQ2hhbmdlOiBmaWVsZC5vbkNoYW5nZSxcbiAqICAgdHJhbnNmb3JtOiB7XG4gKiAgICAgaW5wdXQ6IChudW0pID0+IG51bSA/IG51bS50b0xvY2FsZVN0cmluZygpIDogJycsXG4gKiAgICAgb3V0cHV0OiAoZXZlbnQpID0+IHBhcnNlRmxvYXQoZXZlbnQudGFyZ2V0LnZhbHVlLnJlcGxhY2UoLywvZywgJycpKVxuICogICB9XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEB0ZW1wbGF0ZSBURmllbGRWYWx1ZXMgLSBUaGUgZm9ybSB2YWx1ZXMgdHlwZVxuICogQHRlbXBsYXRlIFROYW1lIC0gVGhlIGZpZWxkIG5hbWUgdHlwZVxuICogQHRlbXBsYXRlIFRWYWx1ZSAtIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSB0eXBlXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgaW5jbHVkaW5nIHZhbHVlLCBvbkNoYW5nZSwgYW5kIHRyYW5zZm9ybSBmdW5jdGlvbnNcbiAqIEByZXR1cm5zIE9iamVjdCB3aXRoIHRyYW5zZm9ybWVkIHZhbHVlIGFuZCBlbmhhbmNlZCBvbkNoYW5nZSBoYW5kbGVyXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVHJhbnNmb3JtPFxuICBURmllbGRWYWx1ZXMgZXh0ZW5kcyBGaWVsZFZhbHVlcyA9IEZpZWxkVmFsdWVzLFxuICBUTmFtZSBleHRlbmRzIEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+ID0gRmllbGRQYXRoPFRGaWVsZFZhbHVlcz4sXG4gIFRWYWx1ZSA9IHVua25vd24sXG4+KFxuICBvcHRpb25zOiBVc2VUcmFuc2Zvcm1PcHRpb25zPFRGaWVsZFZhbHVlcywgVE5hbWUsIFRWYWx1ZT5cbik6IFVzZVRyYW5zZm9ybVJldHVybjxURmllbGRWYWx1ZXMsIFROYW1lLCBUVmFsdWU+IHtcbiAgY29uc3QgdmFsdWUgPVxuICAgIHR5cGVvZiBvcHRpb25zLnRyYW5zZm9ybT8uaW5wdXQgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgPyBvcHRpb25zLnRyYW5zZm9ybS5pbnB1dChvcHRpb25zLnZhbHVlKVxuICAgICAgOiBvcHRpb25zLnZhbHVlO1xuXG4gIGNvbnN0IG9uQ2hhbmdlID0gKFxuICAgIGV2ZW50T3JWYWx1ZTogRXZlbnRPclZhbHVlPFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPj4sXG4gICAgdmFsdWU/OiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT5cbiAgKTogdm9pZCA9PiB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLnRyYW5zZm9ybT8ub3V0cHV0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIG9wdGlvbnMub25DaGFuZ2Uob3B0aW9ucy50cmFuc2Zvcm0ub3V0cHV0KGV2ZW50T3JWYWx1ZSwgdmFsdWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUGFzcyB0aHJvdWdoIHRoZSBldmVudCBvciB2YWx1ZSBkaXJlY3RseVxuICAgICAgb3B0aW9ucy5vbkNoYW5nZShldmVudE9yVmFsdWUgYXMgUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZSxcbiAgICBvbkNoYW5nZSxcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlVHJhbnNmb3JtO1xuIiwgImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IENoYW5nZUV2ZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7XG4gIEZpZWxkUGF0aCxcbiAgRmllbGRWYWx1ZXMsXG4gIFBhdGhWYWx1ZSxcbiAgVXNlQ29udHJvbGxlclJldHVybixcbn0gZnJvbSBcInJlYWN0LWhvb2stZm9ybVwiO1xuXG5pbXBvcnQgdHlwZSB7IEV2ZW50T3JWYWx1ZSwgSW5wdXRFbGVtZW50IH0gZnJvbSBcIi4uLy4uL3R5cGVzL2V2ZW50c1wiO1xuXG4vKipcbiAqIEZpZWxkIHR5cGVzIGZvciBidWlsdC1pbiB0cmFuc2Zvcm1hdGlvbiBwYXR0ZXJuc1xuICovXG5leHBvcnQgdHlwZSBGaWVsZFR5cGUgPSAndGV4dCcgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICd0aW1lJyB8ICdzZWxlY3QnIHwgJ3JhZGlvJztcblxuLyoqXG4gKiBFbmhhbmNlZCBvcHRpb25zIGZvciB0aGUgdXNlVHJhbnNmb3JtIGhvb2sgd2l0aCBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zXG4gKiBhbmQgYnVpbHQtaW4gZmllbGQgdHlwZSBoYW5kbGluZy5cbiAqXG4gKiBAdGVtcGxhdGUgVEZpZWxkVmFsdWVzIC0gVGhlIGZvcm0gdmFsdWVzIHR5cGVcbiAqIEB0ZW1wbGF0ZSBUTmFtZSAtIFRoZSBmaWVsZCBuYW1lIHR5cGVcbiAqIEB0ZW1wbGF0ZSBUVmFsdWUgLSBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgdHlwZVxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmhhbmNlZFVzZVRyYW5zZm9ybU9wdGlvbnM8XG4gIFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzID0gRmllbGRWYWx1ZXMsXG4gIFROYW1lIGV4dGVuZHMgRmllbGRQYXRoPFRGaWVsZFZhbHVlcz4gPSBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPixcbiAgVFZhbHVlID0gUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+LFxuPiB7XG4gIC8qKiBUaGUgY3VycmVudCBmaWVsZCB2YWx1ZSBmcm9tIHJlYWN0LWhvb2stZm9ybSAqL1xuICB2YWx1ZTogVXNlQ29udHJvbGxlclJldHVybjxURmllbGRWYWx1ZXMsIFROYW1lPltcImZpZWxkXCJdW1widmFsdWVcIl07XG4gIC8qKiBUaGUgb25DaGFuZ2UgaGFuZGxlciBmcm9tIHJlYWN0LWhvb2stZm9ybSAqL1xuICBvbkNoYW5nZTogVXNlQ29udHJvbGxlclJldHVybjxURmllbGRWYWx1ZXMsIFROYW1lPltcImZpZWxkXCJdW1wib25DaGFuZ2VcIl07XG4gIC8qKiBPcHRpb25hbCB0cmFuc2Zvcm1hdGlvbiBmdW5jdGlvbnMgKi9cbiAgdHJhbnNmb3JtPzoge1xuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybSB0aGUgZmllbGQgdmFsdWUgZm9yIGRpc3BsYXkgaW4gdGhlIGlucHV0XG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGN1cnJlbnQgZmllbGQgdmFsdWVcbiAgICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgdG8gZGlzcGxheVxuICAgICAqL1xuICAgIGlucHV0PzogKHZhbHVlOiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4pID0+IFRWYWx1ZTtcbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm0gdGhlIGlucHV0IGV2ZW50IGJhY2sgdG8gdGhlIGZpZWxkIHZhbHVlXG4gICAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGlucHV0IGV2ZW50IG9yIHZhbHVlXG4gICAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIHZhbHVlIHRvIHN0b3JlIGluIHRoZSBmb3JtXG4gICAgICovXG4gICAgb3V0cHV0PzogKFxuICAgICAgZXZlbnRPclZhbHVlOiBFdmVudE9yVmFsdWU8UGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+PixcbiAgICAgIHZhbHVlPzogUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+XG4gICAgKSA9PiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT47XG4gIH07XG4gIC8qKiBCdWlsdC1pbiBmaWVsZCB0eXBlIGZvciBhdXRvbWF0aWMgdHJhbnNmb3JtYXRpb24gKi9cbiAgZmllbGRUeXBlPzogRmllbGRUeXBlO1xuICAvKiogRGVmYXVsdCB2YWx1ZSB0byB1c2Ugd2hlbiBmaWVsZCB2YWx1ZSBpcyBudWxsL3VuZGVmaW5lZCAqL1xuICBkZWZhdWx0VmFsdWU/OiBUVmFsdWU7XG4gIC8qKiBFbmFibGUgZGV2ZWxvcG1lbnQgd2FybmluZ3MgZm9yIGRlYnVnZ2luZyAqL1xuICBlbmFibGVXYXJuaW5ncz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5oYW5jZWQgcmV0dXJuIHR5cGUgZm9yIHRoZSB1c2VUcmFuc2Zvcm0gaG9vayB3aXRoIHN0YWJsZSByZWZlcmVuY2VzXG4gKlxuICogQHRlbXBsYXRlIFRGaWVsZFZhbHVlcyAtIFRoZSBmb3JtIHZhbHVlcyB0eXBlXG4gKiBAdGVtcGxhdGUgVE5hbWUgLSBUaGUgZmllbGQgbmFtZSB0eXBlICBcbiAqIEB0ZW1wbGF0ZSBUVmFsdWUgLSBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgdHlwZVxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmhhbmNlZFVzZVRyYW5zZm9ybVJldHVybjxcbiAgVEZpZWxkVmFsdWVzIGV4dGVuZHMgRmllbGRWYWx1ZXMgPSBGaWVsZFZhbHVlcyxcbiAgVE5hbWUgZXh0ZW5kcyBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPiA9IEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+LFxuICBUVmFsdWUgPSBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4sXG4+IHtcbiAgLyoqIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSB0byBkaXNwbGF5IGluIHRoZSBpbnB1dCAobWVtb2l6ZWQpICovXG4gIHZhbHVlOiBUVmFsdWU7XG4gIC8qKiBUaGUgZW5oYW5jZWQgb25DaGFuZ2UgaGFuZGxlciB3aXRoIHRyYW5zZm9ybWF0aW9uIGFwcGxpZWQgKG1lbW9pemVkKSAqL1xuICBvbkNoYW5nZTogVXNlQ29udHJvbGxlclJldHVybjxURmllbGRWYWx1ZXMsIFROYW1lPltcImZpZWxkXCJdW1wib25DaGFuZ2VcIl07XG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGZhY3RvcmllcyBmb3IgY29tbW9uIGZpZWxkIHR5cGVzXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1GYWN0b3JpZXMgPSB7XG4gIG51bWJlcjogPFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzLCBUTmFtZSBleHRlbmRzIEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+PigpID0+ICh7XG4gICAgaW5wdXQ6ICh2YWx1ZTogUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+KSA9PiB7XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIFwiXCIgYXMgc3RyaW5nO1xuXG4gICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICB9LFxuICAgIG91dHB1dDogKFxuICAgICAgZXZlbnRPclZhbHVlOiBFdmVudE9yVmFsdWU8UGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+PixcbiAgICAgIF92YWx1ZT86IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPlxuICAgICkgPT4ge1xuICAgICAgbGV0IHJhd1ZhbHVlOiBzdHJpbmc7XG4gICAgICBcbiAgICAgIC8vIEV4dHJhY3Qgc3RyaW5nIHZhbHVlIGZyb20gZXZlbnQgb3IgZGlyZWN0IHZhbHVlXG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiBldmVudE9yVmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAgIGV2ZW50T3JWYWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAndGFyZ2V0JyBpbiBldmVudE9yVmFsdWUgJiZcbiAgICAgICAgdHlwZW9mIGV2ZW50T3JWYWx1ZS50YXJnZXQgPT09ICdvYmplY3QnICYmXG4gICAgICAgIGV2ZW50T3JWYWx1ZS50YXJnZXQgIT09IG51bGwgJiZcbiAgICAgICAgJ3ZhbHVlJyBpbiBldmVudE9yVmFsdWUudGFyZ2V0XG4gICAgICApIHtcbiAgICAgICAgcmF3VmFsdWUgPSBTdHJpbmcoKGV2ZW50T3JWYWx1ZS50YXJnZXQgYXMgdW5rbm93biBhcyB7IHZhbHVlOiB1bmtub3duIH0pLnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJhd1ZhbHVlID0gU3RyaW5nKGV2ZW50T3JWYWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyYXdWYWx1ZSA9PT0gXCJcIikgcmV0dXJuIG51bGwgYXMgUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+O1xuICAgICAgY29uc3QgbnVtVmFsdWUgPSBOdW1iZXIocmF3VmFsdWUpO1xuXG4gICAgICByZXR1cm4gKGlzTmFOKG51bVZhbHVlKSA/IG51bGwgOiBudW1WYWx1ZSkgYXMgUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+O1xuICAgIH0sXG4gIH0pLFxuXG4gIHRleHQ6IDxURmllbGRWYWx1ZXMgZXh0ZW5kcyBGaWVsZFZhbHVlcywgVE5hbWUgZXh0ZW5kcyBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPj4oKSA9PiAoe1xuICAgIGlucHV0OiAodmFsdWU6IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPikgPT4ge1xuICAgICAgcmV0dXJuICh2YWx1ZSA/PyBcIlwiKSBhcyBzdHJpbmc7XG4gICAgfSxcbiAgICBvdXRwdXQ6IChcbiAgICAgIGV2ZW50T3JWYWx1ZTogRXZlbnRPclZhbHVlPFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPj4sXG4gICAgICBfdmFsdWU/OiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT5cbiAgICApID0+IHtcbiAgICAgIC8vIEV4dHJhY3Qgc3RyaW5nIHZhbHVlIGZyb20gZXZlbnQgb3IgZGlyZWN0IHZhbHVlXG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiBldmVudE9yVmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAgIGV2ZW50T3JWYWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAndGFyZ2V0JyBpbiBldmVudE9yVmFsdWUgJiZcbiAgICAgICAgdHlwZW9mIGV2ZW50T3JWYWx1ZS50YXJnZXQgPT09ICdvYmplY3QnICYmXG4gICAgICAgIGV2ZW50T3JWYWx1ZS50YXJnZXQgIT09IG51bGwgJiZcbiAgICAgICAgJ3ZhbHVlJyBpbiBldmVudE9yVmFsdWUudGFyZ2V0XG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIChldmVudE9yVmFsdWUudGFyZ2V0IGFzIHVua25vd24gYXMgeyB2YWx1ZTogUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+IH0pLnZhbHVlO1xuICAgICAgfVxuICAgICAgXG4gICAgICByZXR1cm4gZXZlbnRPclZhbHVlIGFzIFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPjtcbiAgICB9LFxuICB9KSxcblxuICBzZWxlY3Q6IDxURmllbGRWYWx1ZXMgZXh0ZW5kcyBGaWVsZFZhbHVlcywgVE5hbWUgZXh0ZW5kcyBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPj4oKSA9PiAoe1xuICAgIGlucHV0OiAodmFsdWU6IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPikgPT4ge1xuICAgICAgcmV0dXJuIHZhbHVlID8/IChcIlwiIGFzIHN0cmluZyk7XG4gICAgfSxcbiAgICBvdXRwdXQ6IChcbiAgICAgIGV2ZW50T3JWYWx1ZTogRXZlbnRPclZhbHVlPFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPj4sXG4gICAgICB2YWx1ZT86IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPlxuICAgICkgPT4ge1xuICAgICAgLy8gTVVJIHBhdHRlcm46IChldmVudCwgdmFsdWUpIHdoZXJlIHZhbHVlIGlzIHRoZSBhY3R1YWwgc2VsZWN0ZWQgdmFsdWVcbiAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBhcyBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT47XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFN0YW5kYXJkIGV2ZW50IHBhdHRlcm46IGV4dHJhY3QgZnJvbSBldmVudC50YXJnZXQudmFsdWVcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIGV2ZW50T3JWYWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgZXZlbnRPclZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICd0YXJnZXQnIGluIGV2ZW50T3JWYWx1ZSAmJlxuICAgICAgICB0eXBlb2YgZXZlbnRPclZhbHVlLnRhcmdldCA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgZXZlbnRPclZhbHVlLnRhcmdldCAhPT0gbnVsbCAmJlxuICAgICAgICAndmFsdWUnIGluIGV2ZW50T3JWYWx1ZS50YXJnZXRcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gKGV2ZW50T3JWYWx1ZS50YXJnZXQgYXMgdW5rbm93biBhcyB7IHZhbHVlOiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4gfSkudmFsdWU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIERpcmVjdCB2YWx1ZVxuICAgICAgcmV0dXJuIGV2ZW50T3JWYWx1ZSBhcyBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT47XG4gICAgfSxcbiAgfSksXG59IGFzIGNvbnN0OztcblxuLyoqXG4gKiBHZXQgYnVpbHQtaW4gdHJhbnNmb3JtYXRpb24gZm9yIGEgZmllbGQgdHlwZVxuICovXG5mdW5jdGlvbiBnZXRCdWlsdEluVHJhbnNmb3JtPFxuICBURmllbGRWYWx1ZXMgZXh0ZW5kcyBGaWVsZFZhbHVlcyxcbiAgVE5hbWUgZXh0ZW5kcyBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPixcbj4oZmllbGRUeXBlPzogRmllbGRUeXBlKSB7XG4gIHN3aXRjaCAoZmllbGRUeXBlKSB7XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1GYWN0b3JpZXMubnVtYmVyPFRGaWVsZFZhbHVlcywgVE5hbWU+KCk7XG4gICAgY2FzZSAndGV4dCc6XG4gICAgICByZXR1cm4gdHJhbnNmb3JtRmFjdG9yaWVzLnRleHQ8VEZpZWxkVmFsdWVzLCBUTmFtZT4oKTtcbiAgICBjYXNlICdzZWxlY3QnOlxuICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1GYWN0b3JpZXMuc2VsZWN0PFRGaWVsZFZhbHVlcywgVE5hbWU+KCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBlbmhhbmNlZCBob29rIGZvciB0cmFuc2Zvcm1pbmcgZm9ybSBmaWVsZCB2YWx1ZXMgd2l0aCBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zXG4gKiBhbmQgYnVpbHQtaW4gZmllbGQgdHlwZSBoYW5kbGluZy5cbiAqXG4gKiBUaGlzIGVuaGFuY2VkIHZlcnNpb24gcHJvdmlkZXM6XG4gKiAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbnMgd2l0aCB1c2VNZW1vIGFuZCB1c2VDYWxsYmFja1xuICogLSBCdWlsdC1pbiB0cmFuc2Zvcm1hdGlvbnMgZm9yIGNvbW1vbiBmaWVsZCB0eXBlc1xuICogLSBCZXR0ZXIgVHlwZVNjcmlwdCBpbmZlcmVuY2VcbiAqIC0gRGV2ZWxvcG1lbnQgd2FybmluZ3NcbiAqIC0gU3RhYmxlIHJlZmVyZW5jZXMgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXG4gKlxuICogQGV4YW1wbGVcbiAqIEJhc2ljIHVzYWdlIHdpdGggYnVpbHQtaW4gbnVtYmVyIGhhbmRsaW5nOlxuICogYGBgdHN4XG4gKiBjb25zdCB7IHZhbHVlLCBvbkNoYW5nZSB9ID0gdXNlRW5oYW5jZWRUcmFuc2Zvcm0oe1xuICogICB2YWx1ZTogZmllbGQudmFsdWUsXG4gKiAgIG9uQ2hhbmdlOiBmaWVsZC5vbkNoYW5nZSxcbiAqICAgZmllbGRUeXBlOiAnbnVtYmVyJ1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZVxuICogQ3VzdG9tIHRyYW5zZm9ybWF0aW9ucyAoc2FtZSBhcyBvcmlnaW5hbCk6XG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgdmFsdWUsIG9uQ2hhbmdlIH0gPSB1c2VFbmhhbmNlZFRyYW5zZm9ybSh7XG4gKiAgIHZhbHVlOiBmaWVsZC52YWx1ZSxcbiAqICAgb25DaGFuZ2U6IGZpZWxkLm9uQ2hhbmdlLFxuICogICB0cmFuc2Zvcm06IHtcbiAqICAgICBpbnB1dDogKHZhbHVlKSA9PiB2YWx1ZT8udG9TdHJpbmcoKSB8fCAnJyxcbiAqICAgICBvdXRwdXQ6IChldmVudCkgPT4gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKSB8fCBudWxsXG4gKiAgIH1cbiAqIH0pO1xuICogYGBgXG4gKlxuICogQGV4YW1wbGVcbiAqIFdpdGggZGVmYXVsdCB2YWx1ZSBhbmQgd2FybmluZ3M6XG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgdmFsdWUsIG9uQ2hhbmdlIH0gPSB1c2VFbmhhbmNlZFRyYW5zZm9ybSh7XG4gKiAgIHZhbHVlOiBmaWVsZC52YWx1ZSxcbiAqICAgb25DaGFuZ2U6IGZpZWxkLm9uQ2hhbmdlLFxuICogICBmaWVsZFR5cGU6ICd0ZXh0JyxcbiAqICAgZGVmYXVsdFZhbHVlOiAnJyxcbiAqICAgZW5hYmxlV2FybmluZ3M6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEB0ZW1wbGF0ZSBURmllbGRWYWx1ZXMgLSBUaGUgZm9ybSB2YWx1ZXMgdHlwZVxuICogQHRlbXBsYXRlIFROYW1lIC0gVGhlIGZpZWxkIG5hbWUgdHlwZVxuICogQHRlbXBsYXRlIFRWYWx1ZSAtIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSB0eXBlXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgaW5jbHVkaW5nIHZhbHVlLCBvbkNoYW5nZSwgYW5kIHRyYW5zZm9ybSBmdW5jdGlvbnNcbiAqIEByZXR1cm5zIE9iamVjdCB3aXRoIHRyYW5zZm9ybWVkIHZhbHVlIGFuZCBlbmhhbmNlZCBvbkNoYW5nZSBoYW5kbGVyIChib3RoIG1lbW9pemVkKVxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUVuaGFuY2VkVHJhbnNmb3JtPFxuICBURmllbGRWYWx1ZXMgZXh0ZW5kcyBGaWVsZFZhbHVlcyA9IEZpZWxkVmFsdWVzLFxuICBUTmFtZSBleHRlbmRzIEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+ID0gRmllbGRQYXRoPFRGaWVsZFZhbHVlcz4sXG4gIFRWYWx1ZSA9IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPixcbj4oXG4gIG9wdGlvbnM6IEVuaGFuY2VkVXNlVHJhbnNmb3JtT3B0aW9uczxURmllbGRWYWx1ZXMsIFROYW1lLCBUVmFsdWU+XG4pOiBFbmhhbmNlZFVzZVRyYW5zZm9ybVJldHVybjxURmllbGRWYWx1ZXMsIFROYW1lLCBUVmFsdWU+IHtcbiAgY29uc3QgeyBcbiAgICB2YWx1ZTogZmllbGRWYWx1ZSwgXG4gICAgb25DaGFuZ2U6IGZpZWxkT25DaGFuZ2UsIFxuICAgIHRyYW5zZm9ybSwgXG4gICAgZmllbGRUeXBlLCBcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZW5hYmxlV2FybmluZ3MgXG4gIH0gPSBvcHRpb25zO1xuXG4gIC8vIEdldCBidWlsdC1pbiB0cmFuc2Zvcm0gaWYgZmllbGRUeXBlIGlzIHNwZWNpZmllZFxuICBjb25zdCBidWlsdEluVHJhbnNmb3JtID0gdXNlTWVtbygoKSA9PiBcbiAgICBmaWVsZFR5cGUgPyBnZXRCdWlsdEluVHJhbnNmb3JtPFRGaWVsZFZhbHVlcywgVE5hbWU+KGZpZWxkVHlwZSkgOiB1bmRlZmluZWQsIFxuICAgIFtmaWVsZFR5cGVdXG4gICk7XG5cbiAgLy8gRGV2ZWxvcG1lbnQgd2FybmluZ3NcbiAgaWYgKGVuYWJsZVdhcm5pbmdzICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgaWYgKHRyYW5zZm9ybSAmJiBmaWVsZFR5cGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ3VzZUVuaGFuY2VkVHJhbnNmb3JtOiBCb3RoIGN1c3RvbSB0cmFuc2Zvcm0gYW5kIGZpZWxkVHlwZSBwcm92aWRlZC4gQ3VzdG9tIHRyYW5zZm9ybSB3aWxsIHRha2UgcHJlY2VkZW5jZS4nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1lbW9pemUgdGhlIHRyYW5zZm9ybWVkIGRpc3BsYXkgdmFsdWVcbiAgY29uc3QgdHJhbnNmb3JtZWRWYWx1ZSA9IHVzZU1lbW8oKCk6IFRWYWx1ZSA9PiB7XG4gICAgY29uc3QgaW5wdXRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0/LmlucHV0IHx8IGJ1aWx0SW5UcmFuc2Zvcm0/LmlucHV0O1xuICAgIFxuICAgIGlmICh0eXBlb2YgaW5wdXRUcmFuc2Zvcm0gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgcmV0dXJuIGlucHV0VHJhbnNmb3JtKGZpZWxkVmFsdWUpIGFzIFRWYWx1ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gRmFsbGJhY2sgd2l0aCBkZWZhdWx0IHZhbHVlIHN1cHBvcnRcbiAgICBpZiAoZmllbGRWYWx1ZSA9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gZmllbGRWYWx1ZSBhcyBUVmFsdWU7XG4gIH0sIFtmaWVsZFZhbHVlLCB0cmFuc2Zvcm0/LmlucHV0LCBidWlsdEluVHJhbnNmb3JtPy5pbnB1dCwgZGVmYXVsdFZhbHVlXSk7XG5cbiAgLy8gTWVtb2l6ZSB0aGUgZW5oYW5jZWQgb25DaGFuZ2UgaGFuZGxlclxuICBjb25zdCBlbmhhbmNlZE9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgZXZlbnRPclZhbHVlOiBFdmVudE9yVmFsdWU8UGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+PixcbiAgICAgIHZhbHVlPzogUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBvdXRwdXRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0/Lm91dHB1dCB8fCBidWlsdEluVHJhbnNmb3JtPy5vdXRwdXQ7XG4gICAgICBcbiAgICAgIGlmICh0eXBlb2Ygb3V0cHV0VHJhbnNmb3JtID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBIYW5kbGUgYm90aCBzaWduYXR1cmVzOiBvbGQgKGV2ZW50IG9ubHkpIGFuZCBuZXcgKGV2ZW50LCB2YWx1ZSlcbiAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZFZhbHVlID0gKG91dHB1dFRyYW5zZm9ybSBhcyAoZTogRXZlbnRPclZhbHVlPFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPj4sIHY/OiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4pID0+IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPikoZXZlbnRPclZhbHVlLCB2YWx1ZSk7XG5cbiAgICAgICAgICBmaWVsZE9uQ2hhbmdlKHRyYW5zZm9ybWVkVmFsdWUpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGlmIChlbmFibGVXYXJuaW5ncyAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcigndXNlRW5oYW5jZWRUcmFuc2Zvcm06IEVycm9yIGluIG91dHB1dCB0cmFuc2Zvcm1hdGlvbjonLCBlcnJvcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRmFsbGJhY2sgdG8gZGlyZWN0IHZhbHVlIG9yIGZpcnN0IGFyZ3VtZW50XG4gICAgICAgICAgZmllbGRPbkNoYW5nZShcbiAgICAgICAgICAgIHZhbHVlICE9PSB1bmRlZmluZWQgXG4gICAgICAgICAgICAgID8gdmFsdWUgXG4gICAgICAgICAgICAgIDogZXZlbnRPclZhbHVlIGFzIFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vIHRyYW5zZm9ybSwgcGFzcyB0aHJvdWdoIHRoZSB2YWx1ZSBvciBldmVudFxuICAgICAgICBmaWVsZE9uQ2hhbmdlKFxuICAgICAgICAgIHZhbHVlICE9PSB1bmRlZmluZWQgXG4gICAgICAgICAgICA/IHZhbHVlIFxuICAgICAgICAgICAgOiBldmVudE9yVmFsdWUgYXMgUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbZmllbGRPbkNoYW5nZSwgdHJhbnNmb3JtPy5vdXRwdXQsIGJ1aWx0SW5UcmFuc2Zvcm0/Lm91dHB1dCwgZW5hYmxlV2FybmluZ3NdXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogdHJhbnNmb3JtZWRWYWx1ZSxcbiAgICBvbkNoYW5nZTogZW5oYW5jZWRPbkNoYW5nZSxcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlRW5oYW5jZWRUcmFuc2Zvcm07Il0sCiAgIm1hcHBpbmdzIjogIjtBQThHTyxTQUFTLGFBS2QsU0FDaUQ7QUFDakQsUUFBTSxRQUNKLE9BQU8sUUFBUSxXQUFXLFVBQVUsYUFDaEMsUUFBUSxVQUFVLE1BQU0sUUFBUSxLQUFLLElBQ3JDLFFBQVE7QUFFZCxRQUFNLFdBQVcsQ0FDZixjQUNBQSxXQUNTO0FBQ1QsUUFBSSxPQUFPLFFBQVEsV0FBVyxXQUFXLFlBQVk7QUFDbkQsY0FBUSxTQUFTLFFBQVEsVUFBVSxPQUFPLGNBQWNBLE1BQUssQ0FBQztBQUFBLElBQ2hFLE9BQU87QUFFTCxjQUFRLFNB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
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/types/api.ts
|
|
2
|
+
function isJsonObject(value) {
|
|
3
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) && !(value instanceof FormData);
|
|
4
|
+
}
|
|
5
|
+
function isJsonArray(value) {
|
|
6
|
+
return Array.isArray(value);
|
|
7
|
+
}
|
|
8
|
+
function isFormData(value) {
|
|
9
|
+
return value instanceof FormData;
|
|
10
|
+
}
|
|
11
|
+
function isRequestBody(value) {
|
|
12
|
+
return isJsonObject(value) || isJsonArray(value) || isFormData(value);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// src/types/events.ts
|
|
16
|
+
function isInputChangeEvent(value) {
|
|
17
|
+
return typeof value === "object" && value !== null && "target" in value && typeof value.target === "object" && value.target !== null && "value" in value.target;
|
|
18
|
+
}
|
|
19
|
+
function isSelectChangeEvent(value) {
|
|
20
|
+
return isInputChangeEvent(value);
|
|
21
|
+
}
|
|
22
|
+
function isFormChangeEvent(value) {
|
|
23
|
+
return isInputChangeEvent(value) || isSelectChangeEvent(value);
|
|
24
|
+
}
|
|
25
|
+
function extractEventValue(eventOrValue, fallbackValue) {
|
|
26
|
+
if (isFormChangeEvent(eventOrValue)) {
|
|
27
|
+
return eventOrValue.target.value;
|
|
28
|
+
}
|
|
29
|
+
if (typeof eventOrValue === "object" && eventOrValue !== null && "target" in eventOrValue && typeof eventOrValue.target === "object" && eventOrValue.target !== null && "value" in eventOrValue.target) {
|
|
30
|
+
return eventOrValue.target.value;
|
|
31
|
+
}
|
|
32
|
+
return _nullishCoalesce(eventOrValue, () => ( fallbackValue));
|
|
33
|
+
}
|
|
34
|
+
function createEventValueExtractor() {
|
|
35
|
+
return (eventOrValue, directValue) => {
|
|
36
|
+
if (directValue !== void 0) {
|
|
37
|
+
return directValue;
|
|
38
|
+
}
|
|
39
|
+
return extractEventValue(eventOrValue);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// src/types/utilities.ts
|
|
44
|
+
function brand(value) {
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
function typedKeys(obj) {
|
|
48
|
+
return Object.keys(obj);
|
|
49
|
+
}
|
|
50
|
+
function typedEntries(obj) {
|
|
51
|
+
return Object.entries(obj);
|
|
52
|
+
}
|
|
53
|
+
function typedValues(obj) {
|
|
54
|
+
return Object.values(obj);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
exports.isJsonObject = isJsonObject; exports.isJsonArray = isJsonArray; exports.isFormData = isFormData; exports.isRequestBody = isRequestBody; exports.isInputChangeEvent = isInputChangeEvent; exports.isSelectChangeEvent = isSelectChangeEvent; exports.isFormChangeEvent = isFormChangeEvent; exports.extractEventValue = extractEventValue; exports.createEventValueExtractor = createEventValueExtractor; exports.brand = brand; exports.typedKeys = typedKeys; exports.typedEntries = typedEntries; exports.typedValues = typedValues;
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImQ6XFxQcm9qZWN0c1xcR05XZWJTb2Z0LlVJXFxwYWNrYWdlc1xcdWlcXGRpc3RcXGNodW5rLUdIVzc3V0lNLmNqcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLFNBQVMsWUFBWSxDQUFDLEtBQUssRUFBRTtBQUM3QixFQUFFLE9BQU8sT0FBTyxNQUFNLElBQUksU0FBUyxHQUFHLE1BQU0sSUFBSSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLFdBQVcsUUFBUSxDQUFDO0FBQzdHO0FBQ0EsU0FBUyxXQUFXLENBQUMsS0FBSyxFQUFFO0FBQzVCLEVBQUUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUM3QjtBQUNBLFNBQVMsVUFBVSxDQUFDLEtBQUssRUFBRTtBQUMzQixFQUFFLE9BQU8sTUFBTSxXQUFXLFFBQVE7QUFDbEM7QUFDQSxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUU7QUFDOUIsRUFBRSxPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztBQUN2RTtBQUNBO0FBQ0E7QUFDQSxTQUFTLGtCQUFrQixDQUFDLEtBQUssRUFBRTtBQUNuQyxFQUFFLE9BQU8sT0FBTyxNQUFNLElBQUksU0FBUyxHQUFHLE1BQU0sSUFBSSxLQUFLLEdBQUcsU0FBUyxHQUFHLE1BQU0sR0FBRyxPQUFPLEtBQUssQ0FBQyxPQUFPLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxHQUFHLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTTtBQUNqSztBQUNBLFNBQVMsbUJBQW1CLENBQUMsS0FBSyxFQUFFO0FBQ3BDLEVBQUUsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7QUFDbEM7QUFDQSxTQUFTLGlCQUFpQixDQUFDLEtBQUssRUFBRTtBQUNsQyxFQUFFLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxFQUFFLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDO0FBQ2hFO0FBQ0EsU0FBUyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFO0FBQ3hELEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUFFO0FBQ3ZDLElBQUksT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUs7QUFDcEMsRUFBRTtBQUNGLEVBQUUsR0FBRyxDQUFDLE9BQU8sYUFBYSxJQUFJLFNBQVMsR0FBRyxhQUFhLElBQUksS0FBSyxHQUFHLFNBQVMsR0FBRyxhQUFhLEdBQUcsT0FBTyxZQUFZLENBQUMsT0FBTyxJQUFJLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxJQUFJLEtBQUssR0FBRyxRQUFRLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRTtBQUMxTSxJQUFJLE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLO0FBQ3BDLEVBQUU7QUFDRixFQUFFLHdCQUFPLFlBQWEsVUFBRyxlQUFhO0FBQ3RDO0FBQ0EsU0FBUyx5QkFBeUIsQ0FBQyxFQUFFO0FBQ3JDLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsR0FBRztBQUN4QyxJQUFJLEdBQUcsQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLEVBQUU7QUFDaEMsTUFBTSxPQUFPLFdBQVc7QUFDeEIsSUFBSTtBQUNKLElBQUksT0FBTyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7QUFDMUMsRUFBRSxDQUFDO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFO0FBQ3RCLEVBQUUsT0FBTyxLQUFLO0FBQ2Q7QUFDQSxTQUFTLFNBQVMsQ0FBQyxHQUFHLEVBQUU7QUFDeEIsRUFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQ3pCO0FBQ0EsU0FBUyxZQUFZLENBQUMsR0FBRyxFQUFFO0FBQzNCLEVBQUUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUM1QjtBQUNBLFNBQVMsV0FBVyxDQUFDLEdBQUcsRUFBRTtBQUMxQixFQUFFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDM0I7QUFDQTtBQUNBO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRiw4Z0JBQUMiLCJmaWxlIjoiRDpcXFByb2plY3RzXFxHTldlYlNvZnQuVUlcXHBhY2thZ2VzXFx1aVxcZGlzdFxcY2h1bmstR0hXNzdXSU0uY2pzIiwic291cmNlc0NvbnRlbnQiOltudWxsXX0=
|