@jcoreio/zod-forms 2.0.0-beta.4 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/ConditionalValidator.d.ts.map +1 -1
  2. package/ConditionalValidator.js +4 -2
  3. package/ConditionalValidator.js.map +1 -1
  4. package/ConditionalValidator.mjs +3 -1
  5. package/ConditionalValidator.mjs.map +1 -1
  6. package/FieldPath.d.ts.map +1 -1
  7. package/FieldPath.js +1 -0
  8. package/FieldPath.js.map +1 -1
  9. package/FieldPath.mjs.map +1 -1
  10. package/FormState.d.ts +7 -4
  11. package/FormState.d.ts.map +1 -1
  12. package/FormState.js.map +1 -1
  13. package/FormState.mjs.map +1 -1
  14. package/actions/arrayActions.js.map +1 -1
  15. package/actions/arrayActions.mjs.map +1 -1
  16. package/actions/setSubmitStatus.d.ts +1 -1
  17. package/createFormMiddleware.js +3 -3
  18. package/createFormMiddleware.js.map +1 -1
  19. package/createFormMiddleware.mjs.map +1 -1
  20. package/createFormProvider.d.ts +9 -3
  21. package/createFormProvider.d.ts.map +1 -1
  22. package/createFormProvider.js +10 -3
  23. package/createFormProvider.js.map +1 -1
  24. package/createFormProvider.mjs +53 -44
  25. package/createFormProvider.mjs.map +1 -1
  26. package/createFormReducer.js +16 -16
  27. package/createFormReducer.js.map +1 -1
  28. package/createSelectFieldErrorMap.d.ts +3 -3
  29. package/createSelectFieldErrorMap.js.map +1 -1
  30. package/createSelectFieldErrorMap.mjs.map +1 -1
  31. package/createSelectFormStatus.d.ts +10 -10
  32. package/createSelectFormStatus.d.ts.map +1 -1
  33. package/createSelectFormStatus.js +2 -2
  34. package/createSelectFormStatus.js.map +1 -1
  35. package/createSelectFormStatus.mjs +1 -1
  36. package/createSelectFormStatus.mjs.map +1 -1
  37. package/createSelectFormValues.js.map +1 -1
  38. package/createZodForm.d.ts +10 -5
  39. package/createZodForm.d.ts.map +1 -1
  40. package/package.json +5 -4
  41. package/reducers/addHandlers.d.ts +2 -2
  42. package/reducers/addHandlers.d.ts.map +1 -1
  43. package/reducers/arrayMove.js.map +1 -1
  44. package/reducers/arrayMove.mjs.map +1 -1
  45. package/reducers/initialize.d.ts +4 -4
  46. package/reducers/initialize.d.ts.map +1 -1
  47. package/reducers/initialize.js.map +1 -1
  48. package/reducers/initialize.mjs.map +1 -1
  49. package/reducers/removeHandlers.d.ts +2 -2
  50. package/reducers/removeHandlers.d.ts.map +1 -1
  51. package/reducers/setMeta.d.ts.map +1 -1
  52. package/reducers/setMeta.js +4 -1
  53. package/reducers/setMeta.js.map +1 -1
  54. package/reducers/setMeta.mjs +4 -1
  55. package/reducers/setMeta.mjs.map +1 -1
  56. package/reducers/setParsedValue.d.ts +2 -2
  57. package/reducers/setParsedValue.d.ts.map +1 -1
  58. package/reducers/setParsedValue.js +1 -1
  59. package/reducers/setParsedValue.js.map +1 -1
  60. package/reducers/setParsedValue.mjs +1 -1
  61. package/reducers/setParsedValue.mjs.map +1 -1
  62. package/reducers/setSubmitStatus.d.ts +2 -2
  63. package/reducers/setSubmitStatus.d.ts.map +1 -1
  64. package/reducers/setValue.d.ts +1 -1
  65. package/reducers/setValue.d.ts.map +1 -1
  66. package/reducers/submitSucceeded.d.ts +1 -1
  67. package/reducers/submitSucceeded.d.ts.map +1 -1
  68. package/reducers/util/updateRawArray.js.map +1 -1
  69. package/reducers/util/updateRawArray.mjs.map +1 -1
  70. package/src/ConditionalValidator.ts +11 -12
  71. package/src/FieldPath.ts +34 -54
  72. package/src/FormState.ts +5 -4
  73. package/src/actions/arrayActions.ts +4 -4
  74. package/src/createFormMiddleware.ts +2 -2
  75. package/src/createFormProvider.tsx +14 -2
  76. package/src/createSelectFieldErrorMap.ts +12 -10
  77. package/src/createSelectFormStatus.ts +3 -1
  78. package/src/reducers/arrayMove.ts +2 -2
  79. package/src/reducers/initialize.ts +3 -3
  80. package/src/reducers/setMeta.ts +4 -1
  81. package/src/reducers/setParsedValue.ts +10 -9
  82. package/src/reducers/util/updateRawArray.ts +4 -4
  83. package/src/useArrayField.ts +39 -28
  84. package/src/useField.ts +92 -27
  85. package/src/useFormContext.ts +2 -2
  86. package/src/useFormDispatch.ts +3 -7
  87. package/src/useHtmlField.ts +47 -41
  88. package/src/useInitialize.ts +1 -1
  89. package/src/util/DeepPartial.ts +2 -3
  90. package/src/util/PathInType.ts +16 -16
  91. package/src/util/SchemaAt.ts +38 -49
  92. package/src/util/bindActionsToField.ts +6 -7
  93. package/src/util/parsePathstring.ts +47 -41
  94. package/src/util/pathstring.ts +9 -13
  95. package/src/util/set.ts +4 -1
  96. package/useArrayField.d.ts +2 -2
  97. package/useArrayField.d.ts.map +1 -1
  98. package/useArrayField.js +22 -8
  99. package/useArrayField.js.map +1 -1
  100. package/useArrayField.mjs +12 -2
  101. package/useArrayField.mjs.map +1 -1
  102. package/useField.d.ts +6 -3
  103. package/useField.d.ts.map +1 -1
  104. package/useField.js +55 -22
  105. package/useField.js.map +1 -1
  106. package/useField.mjs +34 -16
  107. package/useField.mjs.map +1 -1
  108. package/useFormContext.js.map +1 -1
  109. package/useFormContext.mjs.map +1 -1
  110. package/useFormDispatch.d.ts +1 -3
  111. package/useFormDispatch.d.ts.map +1 -1
  112. package/useFormDispatch.js.map +1 -1
  113. package/useFormDispatch.mjs.map +1 -1
  114. package/useFormStatus.d.ts +1 -1
  115. package/useHtmlField.d.ts +2 -1
  116. package/useHtmlField.d.ts.map +1 -1
  117. package/useHtmlField.js +35 -24
  118. package/useHtmlField.js.map +1 -1
  119. package/useHtmlField.mjs +36 -21
  120. package/useHtmlField.mjs.map +1 -1
  121. package/useInitialize.js.map +1 -1
  122. package/useInitialize.mjs.map +1 -1
  123. package/useSubmit.js.map +1 -1
  124. package/util/DeepPartial.d.ts.map +1 -1
  125. package/util/DeepPartial.js.map +1 -1
  126. package/util/DeepPartial.mjs.map +1 -1
  127. package/util/PathInType.d.ts +2 -1
  128. package/util/PathInType.d.ts.map +1 -1
  129. package/util/PathInType.js.map +1 -1
  130. package/util/PathInType.mjs.map +1 -1
  131. package/util/SchemaAt.d.ts +1 -1
  132. package/util/SchemaAt.d.ts.map +1 -1
  133. package/util/SchemaAt.js.map +1 -1
  134. package/util/SchemaAt.mjs.map +1 -1
  135. package/util/bindActionsToField.d.ts +1 -1
  136. package/util/bindActionsToField.d.ts.map +1 -1
  137. package/util/bindActionsToField.js.map +1 -1
  138. package/util/bindActionsToField.mjs.map +1 -1
  139. package/util/parsePathstring.d.ts +23 -6
  140. package/util/parsePathstring.d.ts.map +1 -1
  141. package/util/parsePathstring.js.map +1 -1
  142. package/util/parsePathstring.mjs.map +1 -1
  143. package/util/pathstring.d.ts +2 -8
  144. package/util/pathstring.d.ts.map +1 -1
  145. package/util/pathstring.js.map +1 -1
  146. package/util/pathstring.mjs.map +1 -1
  147. package/util/set.d.ts.map +1 -1
  148. package/util/set.js +1 -4
  149. package/util/set.js.map +1 -1
  150. package/util/set.mjs +1 -3
  151. package/util/set.mjs.map +1 -1
package/util/set.js CHANGED
@@ -5,10 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.set = set;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
9
  function set(from, path, value) {
13
10
  var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
14
11
  if (index === path.length) return value;
@@ -24,7 +21,7 @@ function set(from, path, value) {
24
21
  var _oldValue = from[path[index]];
25
22
  var _newValue = set(_oldValue, path, value, index + 1);
26
23
  if (Object.is(_oldValue, _newValue)) return from;
27
- var _result = Array.isArray(from) ? (0, _toConsumableArray2["default"])(from) : _objectSpread({}, from);
24
+ var _result = Array.isArray(from) ? (0, _toConsumableArray2["default"])(from) : Object.assign(Object.create(Object.getPrototypeOf(from)), from);
28
25
  _result[path[index]] = _newValue;
29
26
  return _result;
30
27
  }
package/util/set.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"set.js","names":["set","from","path","value","index","arguments","length","undefined","Map","oldValue","get","newValue","Object","is","result","Array","isArray","_toConsumableArray2","_objectSpread"],"sources":["../../src/util/set.ts"],"sourcesContent":["export function set(\n from: unknown,\n path: (string | number | symbol)[],\n value: unknown,\n index = 0\n): unknown {\n if (index === path.length) return value\n if (from instanceof Map) {\n const oldValue = from.get(path[index])\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result = new Map(from)\n result.set(path[index], newValue)\n return result\n }\n if (from instanceof Object) {\n const oldValue = (from as any)[path[index]]\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result: any = Array.isArray(from) ? [...from] : { ...from }\n result[path[index]] = newValue\n return result\n }\n return set(typeof path[index] === 'number' ? [] : {}, path, value, index)\n}\n"],"mappings":";;;;;;;;;;;AAAO,SAASA,GAAGA,CACjBC,IAAa,EACbC,IAAkC,EAClCC,KAAc,EAEL;EAAA,IADTC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAET,IAAID,KAAK,KAAKF,IAAI,CAACI,MAAM,EAAE,OAAOH,KAAK;EACvC,IAAIF,IAAI,YAAYO,GAAG,EAAE;IACvB,IAAMC,QAAQ,GAAGR,IAAI,CAACS,GAAG,CAACR,IAAI,CAACE,KAAK,CAAC,CAAC;IACtC,IAAMO,QAAQ,GAAGX,GAAG,CAACS,QAAQ,EAAEP,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIQ,MAAM,CAACC,EAAE,CAACJ,QAAQ,EAAEE,QAAQ,CAAC,EAAE,OAAOV,IAAI;IAC9C,IAAMa,MAAM,GAAG,IAAIN,GAAG,CAACP,IAAI,CAAC;IAC5Ba,MAAM,CAACd,GAAG,CAACE,IAAI,CAACE,KAAK,CAAC,EAAEO,QAAQ,CAAC;IACjC,OAAOG,MAAM;EACf;EACA,IAAIb,IAAI,YAAYW,MAAM,EAAE;IAC1B,IAAMH,SAAQ,GAAIR,IAAI,CAASC,IAAI,CAACE,KAAK,CAAC,CAAC;IAC3C,IAAMO,SAAQ,GAAGX,GAAG,CAACS,SAAQ,EAAEP,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIQ,MAAM,CAACC,EAAE,CAACJ,SAAQ,EAAEE,SAAQ,CAAC,EAAE,OAAOV,IAAI;IAC9C,IAAMa,OAAW,GAAGC,KAAK,CAACC,OAAO,CAACf,IAAI,CAAC,OAAAgB,mBAAA,aAAOhB,IAAI,IAAAiB,aAAA,KAASjB,IAAI,CAAE;IACjEa,OAAM,CAACZ,IAAI,CAACE,KAAK,CAAC,CAAC,GAAGO,SAAQ;IAC9B,OAAOG,OAAM;EACf;EACA,OAAOd,GAAG,CAAC,OAAOE,IAAI,CAACE,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAEC,KAAK,EAAEC,KAAK,CAAC;AAC3E","ignoreList":[]}
1
+ {"version":3,"file":"set.js","names":["set","from","path","value","index","arguments","length","undefined","Map","oldValue","get","newValue","Object","is","result","Array","isArray","_toConsumableArray2","assign","create","getPrototypeOf"],"sources":["../../src/util/set.ts"],"sourcesContent":["export function set(\n from: unknown,\n path: (string | number | symbol)[],\n value: unknown,\n index = 0\n): unknown {\n if (index === path.length) return value\n if (from instanceof Map) {\n const oldValue = from.get(path[index])\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result = new Map(from)\n result.set(path[index], newValue)\n return result\n }\n if (from instanceof Object) {\n const oldValue = (from as any)[path[index]]\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result: any =\n Array.isArray(from) ?\n [...from]\n : Object.assign(Object.create(Object.getPrototypeOf(from)), from)\n result[path[index]] = newValue\n return result\n }\n return set(typeof path[index] === 'number' ? [] : {}, path, value, index)\n}\n"],"mappings":";;;;;;;;AAAO,SAASA,GAAGA,CACjBC,IAAa,EACbC,IAAkC,EAClCC,KAAc,EAEL;EAAA,IADTC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAET,IAAID,KAAK,KAAKF,IAAI,CAACI,MAAM,EAAE,OAAOH,KAAK;EACvC,IAAIF,IAAI,YAAYO,GAAG,EAAE;IACvB,IAAMC,QAAQ,GAAGR,IAAI,CAACS,GAAG,CAACR,IAAI,CAACE,KAAK,CAAC,CAAC;IACtC,IAAMO,QAAQ,GAAGX,GAAG,CAACS,QAAQ,EAAEP,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIQ,MAAM,CAACC,EAAE,CAACJ,QAAQ,EAAEE,QAAQ,CAAC,EAAE,OAAOV,IAAI;IAC9C,IAAMa,MAAM,GAAG,IAAIN,GAAG,CAACP,IAAI,CAAC;IAC5Ba,MAAM,CAACd,GAAG,CAACE,IAAI,CAACE,KAAK,CAAC,EAAEO,QAAQ,CAAC;IACjC,OAAOG,MAAM;EACf;EACA,IAAIb,IAAI,YAAYW,MAAM,EAAE;IAC1B,IAAMH,SAAQ,GAAIR,IAAI,CAASC,IAAI,CAACE,KAAK,CAAC,CAAC;IAC3C,IAAMO,SAAQ,GAAGX,GAAG,CAACS,SAAQ,EAAEP,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIQ,MAAM,CAACC,EAAE,CAACJ,SAAQ,EAAEE,SAAQ,CAAC,EAAE,OAAOV,IAAI;IAC9C,IAAMa,OAAW,GACfC,KAAK,CAACC,OAAO,CAACf,IAAI,CAAC,OAAAgB,mBAAA,aACbhB,IAAI,IACRW,MAAM,CAACM,MAAM,CAACN,MAAM,CAACO,MAAM,CAACP,MAAM,CAACQ,cAAc,CAACnB,IAAI,CAAC,CAAC,EAAEA,IAAI,CAAC;IACnEa,OAAM,CAACZ,IAAI,CAACE,KAAK,CAAC,CAAC,GAAGO,SAAQ;IAC9B,OAAOG,OAAM;EACf;EACA,OAAOd,GAAG,CAAC,OAAOE,IAAI,CAACE,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAEC,KAAK,EAAEC,KAAK,CAAC;AAC3E","ignoreList":[]}
package/util/set.mjs CHANGED
@@ -12,9 +12,7 @@ export function set(from, path, value, index = 0) {
12
12
  const oldValue = from[path[index]];
13
13
  const newValue = set(oldValue, path, value, index + 1);
14
14
  if (Object.is(oldValue, newValue)) return from;
15
- const result = Array.isArray(from) ? [...from] : {
16
- ...from
17
- };
15
+ const result = Array.isArray(from) ? [...from] : Object.assign(Object.create(Object.getPrototypeOf(from)), from);
18
16
  result[path[index]] = newValue;
19
17
  return result;
20
18
  }
package/util/set.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"set.mjs","names":["set","from","path","value","index","length","Map","oldValue","get","newValue","Object","is","result","Array","isArray"],"sources":["../../src/util/set.ts"],"sourcesContent":["export function set(\n from: unknown,\n path: (string | number | symbol)[],\n value: unknown,\n index = 0\n): unknown {\n if (index === path.length) return value\n if (from instanceof Map) {\n const oldValue = from.get(path[index])\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result = new Map(from)\n result.set(path[index], newValue)\n return result\n }\n if (from instanceof Object) {\n const oldValue = (from as any)[path[index]]\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result: any = Array.isArray(from) ? [...from] : { ...from }\n result[path[index]] = newValue\n return result\n }\n return set(typeof path[index] === 'number' ? [] : {}, path, value, index)\n}\n"],"mappings":"AAAA,OAAO,SAASA,GAAGA,CACjBC,IAAa,EACbC,IAAkC,EAClCC,KAAc,EACdC,KAAK,GAAG,CAAC,EACA;EACT,IAAIA,KAAK,KAAKF,IAAI,CAACG,MAAM,EAAE,OAAOF,KAAK;EACvC,IAAIF,IAAI,YAAYK,GAAG,EAAE;IACvB,MAAMC,QAAQ,GAAGN,IAAI,CAACO,GAAG,CAACN,IAAI,CAACE,KAAK,CAAC,CAAC;IACtC,MAAMK,QAAQ,GAAGT,GAAG,CAACO,QAAQ,EAAEL,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIM,MAAM,CAACC,EAAE,CAACJ,QAAQ,EAAEE,QAAQ,CAAC,EAAE,OAAOR,IAAI;IAC9C,MAAMW,MAAM,GAAG,IAAIN,GAAG,CAACL,IAAI,CAAC;IAC5BW,MAAM,CAACZ,GAAG,CAACE,IAAI,CAACE,KAAK,CAAC,EAAEK,QAAQ,CAAC;IACjC,OAAOG,MAAM;EACf;EACA,IAAIX,IAAI,YAAYS,MAAM,EAAE;IAC1B,MAAMH,QAAQ,GAAIN,IAAI,CAASC,IAAI,CAACE,KAAK,CAAC,CAAC;IAC3C,MAAMK,QAAQ,GAAGT,GAAG,CAACO,QAAQ,EAAEL,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIM,MAAM,CAACC,EAAE,CAACJ,QAAQ,EAAEE,QAAQ,CAAC,EAAE,OAAOR,IAAI;IAC9C,MAAMW,MAAW,GAAGC,KAAK,CAACC,OAAO,CAACb,IAAI,CAAC,GAAG,CAAC,GAAGA,IAAI,CAAC,GAAG;MAAE,GAAGA;IAAK,CAAC;IACjEW,MAAM,CAACV,IAAI,CAACE,KAAK,CAAC,CAAC,GAAGK,QAAQ;IAC9B,OAAOG,MAAM;EACf;EACA,OAAOZ,GAAG,CAAC,OAAOE,IAAI,CAACE,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAEC,KAAK,EAAEC,KAAK,CAAC;AAC3E","ignoreList":[]}
1
+ {"version":3,"file":"set.mjs","names":["set","from","path","value","index","length","Map","oldValue","get","newValue","Object","is","result","Array","isArray","assign","create","getPrototypeOf"],"sources":["../../src/util/set.ts"],"sourcesContent":["export function set(\n from: unknown,\n path: (string | number | symbol)[],\n value: unknown,\n index = 0\n): unknown {\n if (index === path.length) return value\n if (from instanceof Map) {\n const oldValue = from.get(path[index])\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result = new Map(from)\n result.set(path[index], newValue)\n return result\n }\n if (from instanceof Object) {\n const oldValue = (from as any)[path[index]]\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result: any =\n Array.isArray(from) ?\n [...from]\n : Object.assign(Object.create(Object.getPrototypeOf(from)), from)\n result[path[index]] = newValue\n return result\n }\n return set(typeof path[index] === 'number' ? [] : {}, path, value, index)\n}\n"],"mappings":"AAAA,OAAO,SAASA,GAAGA,CACjBC,IAAa,EACbC,IAAkC,EAClCC,KAAc,EACdC,KAAK,GAAG,CAAC,EACA;EACT,IAAIA,KAAK,KAAKF,IAAI,CAACG,MAAM,EAAE,OAAOF,KAAK;EACvC,IAAIF,IAAI,YAAYK,GAAG,EAAE;IACvB,MAAMC,QAAQ,GAAGN,IAAI,CAACO,GAAG,CAACN,IAAI,CAACE,KAAK,CAAC,CAAC;IACtC,MAAMK,QAAQ,GAAGT,GAAG,CAACO,QAAQ,EAAEL,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIM,MAAM,CAACC,EAAE,CAACJ,QAAQ,EAAEE,QAAQ,CAAC,EAAE,OAAOR,IAAI;IAC9C,MAAMW,MAAM,GAAG,IAAIN,GAAG,CAACL,IAAI,CAAC;IAC5BW,MAAM,CAACZ,GAAG,CAACE,IAAI,CAACE,KAAK,CAAC,EAAEK,QAAQ,CAAC;IACjC,OAAOG,MAAM;EACf;EACA,IAAIX,IAAI,YAAYS,MAAM,EAAE;IAC1B,MAAMH,QAAQ,GAAIN,IAAI,CAASC,IAAI,CAACE,KAAK,CAAC,CAAC;IAC3C,MAAMK,QAAQ,GAAGT,GAAG,CAACO,QAAQ,EAAEL,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIM,MAAM,CAACC,EAAE,CAACJ,QAAQ,EAAEE,QAAQ,CAAC,EAAE,OAAOR,IAAI;IAC9C,MAAMW,MAAW,GACfC,KAAK,CAACC,OAAO,CAACb,IAAI,CAAC,GACjB,CAAC,GAAGA,IAAI,CAAC,GACTS,MAAM,CAACK,MAAM,CAACL,MAAM,CAACM,MAAM,CAACN,MAAM,CAACO,cAAc,CAAChB,IAAI,CAAC,CAAC,EAAEA,IAAI,CAAC;IACnEW,MAAM,CAACV,IAAI,CAACE,KAAK,CAAC,CAAC,GAAGK,QAAQ;IAC9B,OAAOG,MAAM;EACf;EACA,OAAOZ,GAAG,CAAC,OAAOE,IAAI,CAACE,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAEC,KAAK,EAAEC,KAAK,CAAC;AAC3E","ignoreList":[]}