@axdspub/axiom-ui-forms 0.2.9 → 0.2.10

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 (177) hide show
  1. package/library/axiom-ui-forms.d.ts +113 -51
  2. package/library/esm/_virtual/_commonjsHelpers.js +26 -1
  3. package/library/esm/_virtual/_commonjsHelpers.js.map +1 -1
  4. package/library/esm/_virtual/_freeGlobal.js +7 -0
  5. package/library/esm/_virtual/_freeGlobal.js.map +1 -0
  6. package/library/esm/_virtual/get.js +8 -0
  7. package/library/esm/_virtual/get.js.map +1 -0
  8. package/library/esm/_virtual/index10.js +2 -2
  9. package/library/esm/_virtual/index11.js +2 -2
  10. package/library/esm/_virtual/index14.js +2 -2
  11. package/library/esm/_virtual/index15.js +2 -2
  12. package/library/esm/_virtual/index3.js +2 -2
  13. package/library/esm/_virtual/index4.js +2 -2
  14. package/library/esm/_virtual/index5.js +2 -2
  15. package/library/esm/_virtual/index6.js +2 -2
  16. package/library/esm/_virtual/index6.js.map +1 -1
  17. package/library/esm/_virtual/index7.js +2 -2
  18. package/library/esm/_virtual/index7.js.map +1 -1
  19. package/library/esm/_virtual/set.js +8 -0
  20. package/library/esm/_virtual/set.js.map +1 -0
  21. package/library/esm/node_modules/ajv/dist/compile/codegen/index.js +1 -1
  22. package/library/esm/node_modules/ajv/dist/compile/index.js +1 -1
  23. package/library/esm/node_modules/ajv/dist/compile/validate/index.js +1 -1
  24. package/library/esm/node_modules/ajv/dist/vocabularies/applicator/index.js +1 -1
  25. package/library/esm/node_modules/ajv/dist/vocabularies/discriminator/index.js +1 -1
  26. package/library/esm/node_modules/ajv/dist/vocabularies/validation/index.js +1 -1
  27. package/library/esm/node_modules/fast-uri/index.js +1 -1
  28. package/library/esm/node_modules/json-schema-traverse/index.js +1 -1
  29. package/library/esm/node_modules/lodash/_Hash.js +49 -0
  30. package/library/esm/node_modules/lodash/_Hash.js.map +1 -0
  31. package/library/esm/node_modules/lodash/_ListCache.js +49 -0
  32. package/library/esm/node_modules/lodash/_ListCache.js.map +1 -0
  33. package/library/esm/node_modules/lodash/_Map.js +21 -0
  34. package/library/esm/node_modules/lodash/_Map.js.map +1 -0
  35. package/library/esm/node_modules/lodash/_MapCache.js +49 -0
  36. package/library/esm/node_modules/lodash/_MapCache.js.map +1 -0
  37. package/library/esm/node_modules/lodash/_Symbol.js +19 -0
  38. package/library/esm/node_modules/lodash/_Symbol.js.map +1 -0
  39. package/library/esm/node_modules/lodash/_arrayMap.js +33 -0
  40. package/library/esm/node_modules/lodash/_arrayMap.js.map +1 -0
  41. package/library/esm/node_modules/lodash/_assignValue.js +42 -0
  42. package/library/esm/node_modules/lodash/_assignValue.js.map +1 -0
  43. package/library/esm/node_modules/lodash/_assocIndexOf.js +34 -0
  44. package/library/esm/node_modules/lodash/_assocIndexOf.js.map +1 -0
  45. package/library/esm/node_modules/lodash/_baseAssignValue.js +38 -0
  46. package/library/esm/node_modules/lodash/_baseAssignValue.js.map +1 -0
  47. package/library/esm/node_modules/lodash/_baseGet.js +38 -0
  48. package/library/esm/node_modules/lodash/_baseGet.js.map +1 -0
  49. package/library/esm/node_modules/lodash/_baseGetTag.js +43 -0
  50. package/library/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
  51. package/library/esm/node_modules/lodash/_baseIsNative.js +63 -0
  52. package/library/esm/node_modules/lodash/_baseIsNative.js.map +1 -0
  53. package/library/esm/node_modules/lodash/_baseSet.js +68 -0
  54. package/library/esm/node_modules/lodash/_baseSet.js.map +1 -0
  55. package/library/esm/node_modules/lodash/_baseToString.js +50 -0
  56. package/library/esm/node_modules/lodash/_baseToString.js.map +1 -0
  57. package/library/esm/node_modules/lodash/_castPath.js +37 -0
  58. package/library/esm/node_modules/lodash/_castPath.js.map +1 -0
  59. package/library/esm/node_modules/lodash/_coreJsData.js +19 -0
  60. package/library/esm/node_modules/lodash/_coreJsData.js.map +1 -0
  61. package/library/esm/node_modules/lodash/_defineProperty.js +24 -0
  62. package/library/esm/node_modules/lodash/_defineProperty.js.map +1 -0
  63. package/library/esm/node_modules/lodash/_freeGlobal.js +7 -0
  64. package/library/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
  65. package/library/esm/node_modules/lodash/_getMapData.js +31 -0
  66. package/library/esm/node_modules/lodash/_getMapData.js.map +1 -0
  67. package/library/esm/node_modules/lodash/_getNative.js +31 -0
  68. package/library/esm/node_modules/lodash/_getNative.js.map +1 -0
  69. package/library/esm/node_modules/lodash/_getRawTag.js +59 -0
  70. package/library/esm/node_modules/lodash/_getRawTag.js.map +1 -0
  71. package/library/esm/node_modules/lodash/_getValue.js +25 -0
  72. package/library/esm/node_modules/lodash/_getValue.js.map +1 -0
  73. package/library/esm/node_modules/lodash/_hashClear.js +28 -0
  74. package/library/esm/node_modules/lodash/_hashClear.js.map +1 -0
  75. package/library/esm/node_modules/lodash/_hashDelete.js +29 -0
  76. package/library/esm/node_modules/lodash/_hashDelete.js.map +1 -0
  77. package/library/esm/node_modules/lodash/_hashGet.js +43 -0
  78. package/library/esm/node_modules/lodash/_hashGet.js.map +1 -0
  79. package/library/esm/node_modules/lodash/_hashHas.js +36 -0
  80. package/library/esm/node_modules/lodash/_hashHas.js.map +1 -0
  81. package/library/esm/node_modules/lodash/_hashSet.js +36 -0
  82. package/library/esm/node_modules/lodash/_hashSet.js.map +1 -0
  83. package/library/esm/node_modules/lodash/_isIndex.js +37 -0
  84. package/library/esm/node_modules/lodash/_isIndex.js.map +1 -0
  85. package/library/esm/node_modules/lodash/_isKey.js +43 -0
  86. package/library/esm/node_modules/lodash/_isKey.js.map +1 -0
  87. package/library/esm/node_modules/lodash/_isKeyable.js +27 -0
  88. package/library/esm/node_modules/lodash/_isKeyable.js.map +1 -0
  89. package/library/esm/node_modules/lodash/_isMasked.js +33 -0
  90. package/library/esm/node_modules/lodash/_isMasked.js.map +1 -0
  91. package/library/esm/node_modules/lodash/_listCacheClear.js +25 -0
  92. package/library/esm/node_modules/lodash/_listCacheClear.js.map +1 -0
  93. package/library/esm/node_modules/lodash/_listCacheDelete.js +48 -0
  94. package/library/esm/node_modules/lodash/_listCacheDelete.js.map +1 -0
  95. package/library/esm/node_modules/lodash/_listCacheGet.js +32 -0
  96. package/library/esm/node_modules/lodash/_listCacheGet.js.map +1 -0
  97. package/library/esm/node_modules/lodash/_listCacheHas.js +29 -0
  98. package/library/esm/node_modules/lodash/_listCacheHas.js.map +1 -0
  99. package/library/esm/node_modules/lodash/_listCacheSet.js +39 -0
  100. package/library/esm/node_modules/lodash/_listCacheSet.js.map +1 -0
  101. package/library/esm/node_modules/lodash/_mapCacheClear.js +36 -0
  102. package/library/esm/node_modules/lodash/_mapCacheClear.js.map +1 -0
  103. package/library/esm/node_modules/lodash/_mapCacheDelete.js +31 -0
  104. package/library/esm/node_modules/lodash/_mapCacheDelete.js.map +1 -0
  105. package/library/esm/node_modules/lodash/_mapCacheGet.js +29 -0
  106. package/library/esm/node_modules/lodash/_mapCacheGet.js.map +1 -0
  107. package/library/esm/node_modules/lodash/_mapCacheHas.js +29 -0
  108. package/library/esm/node_modules/lodash/_mapCacheHas.js.map +1 -0
  109. package/library/esm/node_modules/lodash/_mapCacheSet.js +35 -0
  110. package/library/esm/node_modules/lodash/_mapCacheSet.js.map +1 -0
  111. package/library/esm/node_modules/lodash/_memoizeCapped.js +39 -0
  112. package/library/esm/node_modules/lodash/_memoizeCapped.js.map +1 -0
  113. package/library/esm/node_modules/lodash/_nativeCreate.js +19 -0
  114. package/library/esm/node_modules/lodash/_nativeCreate.js.map +1 -0
  115. package/library/esm/node_modules/lodash/_objectToString.js +34 -0
  116. package/library/esm/node_modules/lodash/_objectToString.js.map +1 -0
  117. package/library/esm/node_modules/lodash/_root.js +22 -0
  118. package/library/esm/node_modules/lodash/_root.js.map +1 -0
  119. package/library/esm/node_modules/lodash/_stringToPath.js +40 -0
  120. package/library/esm/node_modules/lodash/_stringToPath.js.map +1 -0
  121. package/library/esm/node_modules/lodash/_toKey.js +31 -0
  122. package/library/esm/node_modules/lodash/_toKey.js.map +1 -0
  123. package/library/esm/node_modules/lodash/_toSource.js +38 -0
  124. package/library/esm/node_modules/lodash/_toSource.js.map +1 -0
  125. package/library/esm/node_modules/lodash/eq.js +49 -0
  126. package/library/esm/node_modules/lodash/eq.js.map +1 -0
  127. package/library/esm/node_modules/lodash/get.js +46 -0
  128. package/library/esm/node_modules/lodash/get.js.map +1 -0
  129. package/library/esm/node_modules/lodash/isArray.js +38 -0
  130. package/library/esm/node_modules/lodash/isArray.js.map +1 -0
  131. package/library/esm/node_modules/lodash/isFunction.js +51 -0
  132. package/library/esm/node_modules/lodash/isFunction.js.map +1 -0
  133. package/library/esm/node_modules/lodash/isObject.js +43 -0
  134. package/library/esm/node_modules/lodash/isObject.js.map +1 -0
  135. package/library/esm/node_modules/lodash/isObjectLike.js +41 -0
  136. package/library/esm/node_modules/lodash/isObjectLike.js.map +1 -0
  137. package/library/esm/node_modules/lodash/isSymbol.js +43 -0
  138. package/library/esm/node_modules/lodash/isSymbol.js.map +1 -0
  139. package/library/esm/node_modules/lodash/memoize.js +86 -0
  140. package/library/esm/node_modules/lodash/memoize.js.map +1 -0
  141. package/library/esm/node_modules/lodash/set.js +48 -0
  142. package/library/esm/node_modules/lodash/set.js.map +1 -0
  143. package/library/esm/node_modules/lodash/toString.js +41 -0
  144. package/library/esm/node_modules/lodash/toString.js.map +1 -0
  145. package/library/esm/node_modules/react-router/dist/development/chunk-HA7DTUK3.js +1 -1
  146. package/library/esm/src/Form/Components/FieldCreator.js +7 -5
  147. package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
  148. package/library/esm/src/Form/Components/Inputs/Geometry.js +37 -31
  149. package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
  150. package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js +4 -1
  151. package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js.map +1 -1
  152. package/library/esm/src/Form/Components/Inputs/JSON.js +20 -10
  153. package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -1
  154. package/library/esm/src/Form/Components/Inputs/Object.js +7 -2
  155. package/library/esm/src/Form/Components/Inputs/Object.js.map +1 -1
  156. package/library/esm/src/Form/Components/Inputs/String.js +2 -2
  157. package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
  158. package/library/esm/src/Form/Creator/FormCreator.js +3 -1
  159. package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
  160. package/library/esm/src/Form/Creator/Page.js +1 -1
  161. package/library/esm/src/Form/Creator/Page.js.map +1 -1
  162. package/library/esm/src/Form/Creator/Wizard.js +1 -1
  163. package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
  164. package/library/esm/src/library.js +6 -3
  165. package/library/esm/src/library.js.map +1 -1
  166. package/library/esm/src/utils/getters.js +105 -0
  167. package/library/esm/src/utils/getters.js.map +1 -0
  168. package/library/esm/src/utils/manipulators.js +94 -0
  169. package/library/esm/src/utils/manipulators.js.map +1 -0
  170. package/library/esm/src/{Form → utils}/schemaToFormHelpers.js +7 -6
  171. package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -0
  172. package/library/esm/src/utils/validators.js +36 -0
  173. package/library/esm/src/utils/validators.js.map +1 -0
  174. package/package.json +8 -3
  175. package/library/esm/src/Form/helpers.js +0 -162
  176. package/library/esm/src/Form/helpers.js.map +0 -1
  177. package/library/esm/src/Form/schemaToFormHelpers.js.map +0 -1
@@ -11,9 +11,12 @@ List of coordinates for testing. Around Anchorage.
11
11
  ...
12
12
  */
13
13
  // --- calculateCenterFromGeoJSON remains the same (zoom ignored for initial load) ---
14
- var calculateCenterFromGeoJSON = function (geo) {
14
+ var calculateCenterFromGeoJSON = function (geo, defaultCenter) {
15
15
  var _a;
16
- // ... (Implementation from previous correct version) ...
16
+ // If default center is provided, use it
17
+ if (defaultCenter) {
18
+ return defaultCenter;
19
+ }
17
20
  // If input is Geometry, wrap it temporarily for calculation
18
21
  var featureCollection;
19
22
  if (geo && geo.type !== 'FeatureCollection') {
@@ -27,12 +30,14 @@ var calculateCenterFromGeoJSON = function (geo) {
27
30
  else if (geo && geo.type === 'FeatureCollection') {
28
31
  featureCollection = geo;
29
32
  }
33
+ // Default to Anchorage if no valid GeoJSON
34
+ var DEFAULT_CENTER = { lat: 61.2181, lon: -149.9003, zoom: 8 };
30
35
  if (!featureCollection || !('features' in featureCollection) || !Array.isArray(featureCollection.features) || featureCollection.features.length === 0) {
31
- return { lat: 61.2181, lon: -149.9003, zoom: 8 }; // Default to Anchorage
36
+ return DEFAULT_CENTER;
32
37
  }
33
38
  var feature = featureCollection.features[0];
34
39
  if (!(feature === null || feature === void 0 ? void 0 : feature.geometry)) {
35
- return { lat: 61.2181, lon: -149.9003, zoom: 8 };
40
+ return DEFAULT_CENTER;
36
41
  }
37
42
  var geometry = feature.geometry;
38
43
  var coordinates = []; // Adjusted type
@@ -47,7 +52,7 @@ var calculateCenterFromGeoJSON = function (geo) {
47
52
  coordinates = [geometry.coordinates]; // Wrap single point for uniform handling
48
53
  break;
49
54
  default:
50
- return { lat: 61.2181, lon: -149.9003, zoom: 8 };
55
+ return DEFAULT_CENTER;
51
56
  }
52
57
  // Flatten coordinates for bounds calculation if needed (e.g., MultiPoint, MultiLineString)
53
58
  var flatCoordinates = (_a = []).concat.apply(_a, coordinates);
@@ -60,7 +65,7 @@ var calculateCenterFromGeoJSON = function (geo) {
60
65
  return { lat: lat, lon: lon, zoom: 8 }; // Default zoom
61
66
  }
62
67
  console.warn('Could not determine coordinates for centering.');
63
- return { lat: 61.2181, lon: -149.9003, zoom: 8 };
68
+ return DEFAULT_CENTER;
64
69
  }
65
70
  // Calculate bounds
66
71
  var minLat = Infinity;
@@ -83,7 +88,7 @@ var calculateCenterFromGeoJSON = function (geo) {
83
88
  count++;
84
89
  });
85
90
  if (count === 0) {
86
- return { lat: 61.2181, lon: -149.9003, zoom: 8 };
91
+ return DEFAULT_CENTER;
87
92
  }
88
93
  var centerLat = sumLat / count;
89
94
  var centerLon = sumLon / count;
@@ -112,7 +117,7 @@ var getInitialDrawType = function (field) {
112
117
  var _a;
113
118
  var settings = (_a = field.settings) !== null && _a !== void 0 ? _a : {};
114
119
  var drawEnabled = settings.drawEnabled !== false;
115
- var drawPointEnabled = settings.drawPointEnable === true && drawEnabled;
120
+ var drawPointEnabled = settings.drawPointEnabled === true && drawEnabled;
116
121
  var drawPathEnabled = settings.drawPathEnabled === true && drawEnabled;
117
122
  var drawPolygonEnabled = settings.drawPolygonEnabled === true && drawEnabled;
118
123
  if (drawPointEnabled)
@@ -124,12 +129,12 @@ var getInitialDrawType = function (field) {
124
129
  return EMapShape.point; // Defaulting to Point if none specified
125
130
  };
126
131
  var GeometryInput = function (_a) {
127
- var _b, _c, _d, _e, _f;
132
+ var _b, _c, _d, _e, _f, _g, _h, _j;
128
133
  var field = _a.field, onChange = _a.onChange, value = _a.value;
129
- var _g = useState(undefined), map = _g[0], setMapState = _g[1];
130
- var _h = useState(undefined), error = _h[0], setError = _h[1];
134
+ var _k = useState(undefined), map = _k[0], setMapState = _k[1];
135
+ var _l = useState(undefined), error = _l[0], setError = _l[1];
131
136
  var showGeoJSONInput = useState(false)[0];
132
- var _j = useState(function () {
137
+ var _m = useState(function () {
133
138
  if (value && typeof value === 'object' && 'type' in value && value.type !== 'FeatureCollection' && value.type !== 'Feature') {
134
139
  return { type: 'Feature', properties: {}, geometry: value };
135
140
  }
@@ -137,23 +142,23 @@ var GeometryInput = function (_a) {
137
142
  return value;
138
143
  }
139
144
  return undefined;
140
- }), geojson = _j[0], setGeojson = _j[1];
141
- var drawEnabled = ((_b = field.settings) === null || _b === void 0 ? void 0 : _b.drawEnabled) !== false;
142
- var drawPointEnabled = ((_c = field.settings) === null || _c === void 0 ? void 0 : _c.drawPointEnable) === true && drawEnabled;
143
- var drawPathEnabled = ((_d = field.settings) === null || _d === void 0 ? void 0 : _d.drawPathEnabled) === true && drawEnabled;
144
- var drawPolygonEnabled = ((_e = field.settings) === null || _e === void 0 ? void 0 : _e.drawPolygonEnabled) === true && drawEnabled;
145
- var showCoordinateInput = ((_f = field.settings) === null || _f === void 0 ? void 0 : _f.showCoordinateInput) !== false;
146
- var _k = useState(function () { return getInitialDrawType(field); }), currentDrawType = _k[0], setCurrentDrawType = _k[1];
147
- var _l = useState(!geojson && drawEnabled), isDrawing = _l[0], setIsDrawing = _l[1];
148
- var initialMapCenter = calculateCenterFromGeoJSON(geojson);
149
- var INITIAL_DEFAULT_ZOOM = 8; // Fixed default zoom
145
+ }), geojson = _m[0], setGeojson = _m[1];
146
+ var geomField = field;
147
+ var drawEnabled = ((_b = geomField.settings) === null || _b === void 0 ? void 0 : _b.drawEnabled) !== false;
148
+ var drawPointEnabled = ((_c = geomField.settings) === null || _c === void 0 ? void 0 : _c.drawPointEnabled) === true && drawEnabled;
149
+ var drawPathEnabled = ((_d = geomField.settings) === null || _d === void 0 ? void 0 : _d.drawPathEnabled) === true && drawEnabled;
150
+ var drawPolygonEnabled = ((_e = geomField.settings) === null || _e === void 0 ? void 0 : _e.drawPolygonEnabled) === true && drawEnabled;
151
+ var showCoordinateInput = ((_f = geomField.settings) === null || _f === void 0 ? void 0 : _f.showCoordinateInput) !== false;
152
+ var _o = useState(function () { return getInitialDrawType(field); }), currentDrawType = _o[0], setCurrentDrawType = _o[1];
153
+ var _p = useState(!geojson && drawEnabled), isDrawing = _p[0], setIsDrawing = _p[1];
154
+ var initialMapCenter = calculateCenterFromGeoJSON(geojson, (_g = geomField.settings) === null || _g === void 0 ? void 0 : _g.defaultCenter);
150
155
  var MAP_CONFIG = {
151
156
  baseLayerKey: 'hybrid',
152
- height: '500px',
157
+ height: (_j = (_h = geomField.settings) === null || _h === void 0 ? void 0 : _h.height) !== null && _j !== void 0 ? _j : '500px',
153
158
  width: '100%',
154
159
  style: { /* ... styles ... */},
155
160
  center: { lat: initialMapCenter.lat, lon: initialMapCenter.lon },
156
- zoom: INITIAL_DEFAULT_ZOOM, // Use fixed zoom
161
+ zoom: initialMapCenter.zoom,
157
162
  tools: {
158
163
  draw: {
159
164
  shape: currentDrawType,
@@ -194,7 +199,7 @@ var GeometryInput = function (_a) {
194
199
  setCoordinates(newCoords);
195
200
  // setShowShapeTypeButtons(shouldShowShapeButtons(newCoords)); // Let coordinate effect handle this
196
201
  }, []);
197
- var _m = useState(function () {
202
+ var _q = useState(function () {
198
203
  var _a, _b, _c;
199
204
  if (!(geojson === null || geojson === void 0 ? void 0 : geojson.geometry))
200
205
  return '';
@@ -219,8 +224,10 @@ var GeometryInput = function (_a) {
219
224
  initCoords = '';
220
225
  }
221
226
  return initCoords;
222
- }), coordinates = _m[0], setCoordinates = _m[1];
223
- useEffect(function () { updateCoordinatesFromFeature(geojson); }, [geojson, updateCoordinatesFromFeature]);
227
+ }), coordinates = _q[0], setCoordinates = _q[1];
228
+ useEffect(function () {
229
+ updateCoordinatesFromFeature(geojson);
230
+ }, [geojson, updateCoordinatesFromFeature]);
224
231
  var createGeoJSONFromCoordinates = function (coordString, forceType) {
225
232
  if (!coordString.trim()) {
226
233
  setError(undefined);
@@ -257,7 +264,7 @@ var GeometryInput = function (_a) {
257
264
  var validLinesCount = coords.trim().split('\n').filter(function (l) { return l.trim(); }).length;
258
265
  return (drawPolygonEnabled || drawPathEnabled) && validLinesCount >= 2;
259
266
  };
260
- var _o = useState(function () { return shouldShowShapeButtons(coordinates); }), showShapeTypeButtons = _o[0], setShowShapeTypeButtons = _o[1];
267
+ var _r = useState(function () { return shouldShowShapeButtons(coordinates); }), showShapeTypeButtons = _r[0], setShowShapeTypeButtons = _r[1];
261
268
  useEffect(function () { setShowShapeTypeButtons(shouldShowShapeButtons(coordinates)); }, [coordinates, drawPolygonEnabled, drawPathEnabled]); // Added effect to update buttons
262
269
  // ---- Map Event Handlers & State Updates ----
263
270
  useEffect(function () {
@@ -278,7 +285,6 @@ var GeometryInput = function (_a) {
278
285
  useEffect(function () {
279
286
  var _a;
280
287
  onChange((_a = geojson === null || geojson === void 0 ? void 0 : geojson.geometry) !== null && _a !== void 0 ? _a : undefined);
281
- // eslint-disable-next-line react-hooks/exhaustive-deps
282
288
  }, [geojson]);
283
289
  useEffect(function () {
284
290
  if (!map)
@@ -381,7 +387,7 @@ var GeometryInput = function (_a) {
381
387
  return (React__default.createElement("div", null,
382
388
  React__default.createElement(FieldLabel, __assign({}, field)),
383
389
  React__default.createElement("div", { className: "relative" },
384
- drawEnabled && (drawPolygonEnabled || drawPathEnabled || drawPointEnabled) && (React__default.createElement("div", { className: "absolute z-20 top-12 right-4 flex flex-col gap-2" },
390
+ drawEnabled && (drawPolygonEnabled || drawPathEnabled || drawPointEnabled) && (React__default.createElement("div", { className: "absolute z-20 top-4 right-4 flex flex-col gap-2" },
385
391
  drawPointEnabled && (React__default.createElement("div", { className: "tooltip-container relative group" },
386
392
  React__default.createElement(Button, { onClick: function () { handleDrawTypeChange(EMapShape.point); },
387
393
  // Reverted className logic
@@ -426,7 +432,7 @@ var GeometryInput = function (_a) {
426
432
  "Create Polygon")))),
427
433
  React__default.createElement(TextArea, { error: error, className: 'min-h-[100px] bg-slate-50 rounded-lg shadow-inner font-mono text-sm', id: "".concat(field.id, "-coordinates"), testId: "".concat(field.id, "-coordinates"), value: coordinates, onChange: handleCoordinatesChange, placeholder: '...', "aria-label": "Coordinates Input" }),
428
434
  error && React__default.createElement("p", { className: "text-red-600 text-xs mt-1" }, error))),
429
- showGeoJSONInput && React__default.createElement(TextArea, { error: error, className: '...', id: field.id + '-debug', testId: field.id + '-debug', label: React__default.createElement(FieldLabel, __assign({}, field, { label: "Debug GeoJSON Feature State" })), value: getValue(), readOnly: true }))));
435
+ showGeoJSONInput && React__default.createElement(TextArea, { error: error, className: '...', id: field.id + '-debug', testId: field.id + '-debug', label: React__default.createElement(FieldLabel, __assign({}, field, { label: "Debug GeoJSON Feature State" })), value: JSON.stringify(value, null, 2) }))));
430
436
  };
431
437
 
432
438
  export { GeometryInput, GeometryInput as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Geometry.js","sources":["../../../../../../src/Form/Components/Inputs/Geometry.tsx"],"sourcesContent":["import { Button, TextArea } from '@axdspub/axiom-ui-utilities'\nimport FieldLabel from '@/Form/Components/FieldLabel'\nimport { type IFieldInputProps, type IFormField } from '@/Form/Creator/FormCreatorTypes' // Added IFormField explicitly\n\nimport { EMapShape, type IMap, type IMapDrawEvent, type IStyleableMapProps } from '@axdspub/axiom-maps'\nimport { OpenLayersMap as Map } from '@axdspub/axiom-maps/library/openlayers'\n// Import Geometry type if not already done\nimport { type Feature, type GeoJSON, type Geometry } from 'geojson'\nimport React, { useEffect, useState, type ReactElement, useCallback } from 'react' // Added useCallback\nimport { TrashIcon, SquareIcon, BorderSolidIcon, DrawingPinFilledIcon } from '@radix-ui/react-icons'\n\n/*\nList of coordinates for testing. Around Anchorage.\n...\n*/\n\n// --- calculateCenterFromGeoJSON remains the same (zoom ignored for initial load) ---\nconst calculateCenterFromGeoJSON = (geo: GeoJSON | undefined): { lat: number, lon: number, zoom: number } => {\n // ... (Implementation from previous correct version) ...\n // If input is Geometry, wrap it temporarily for calculation\n let featureCollection: GeoJSON.FeatureCollection | undefined\n if (geo && geo.type !== 'FeatureCollection') {\n if (geo.type === 'Feature') {\n featureCollection = { type: 'FeatureCollection', features: [geo] }\n } else if (geo.type === 'Point' || geo.type === 'LineString' || geo.type === 'Polygon' /* add others as needed */) {\n featureCollection = { type: 'FeatureCollection', features: [{ type: 'Feature', properties: {}, geometry: geo as Geometry }] }\n }\n } else if (geo && geo.type === 'FeatureCollection') {\n featureCollection = geo\n }\n\n if (!featureCollection || !('features' in featureCollection) || !Array.isArray(featureCollection.features) || featureCollection.features.length === 0) {\n return { lat: 61.2181, lon: -149.9003, zoom: 8 } // Default to Anchorage\n }\n\n const feature = featureCollection.features[0]\n if (!feature?.geometry) {\n return { lat: 61.2181, lon: -149.9003, zoom: 8 }\n }\n\n const geometry = feature.geometry\n let coordinates: GeoJSON.Position | GeoJSON.Position[] | GeoJSON.Position[][] = [] // Adjusted type\n\n switch (geometry.type) {\n case 'Polygon':\n coordinates = geometry.coordinates[0] // Get first ring (ignore holes)\n break\n case 'LineString':\n coordinates = geometry.coordinates\n break\n case 'Point':\n coordinates = [geometry.coordinates] // Wrap single point for uniform handling\n break\n default:\n return { lat: 61.2181, lon: -149.9003, zoom: 8 }\n }\n\n // Flatten coordinates for bounds calculation if needed (e.g., MultiPoint, MultiLineString)\n const flatCoordinates = ([] as GeoJSON.Position[]).concat(...coordinates as any)\n\n if (!Array.isArray(flatCoordinates) || flatCoordinates.length === 0 || !Array.isArray(flatCoordinates[0])) {\n // Handle single point case where flatCoordinates might be just [lon, lat]\n if (Array.isArray(flatCoordinates) && flatCoordinates.length === 2 && typeof flatCoordinates[0] === 'number') {\n const [lon, lat] = flatCoordinates as GeoJSON.Position\n // FIX #2: Return a default zoom even for a point here for centering logic,\n // but we won't use this zoom for the initial MAP_CONFIG.\n return { lat, lon, zoom: 8 } // Default zoom\n }\n console.warn('Could not determine coordinates for centering.')\n return { lat: 61.2181, lon: -149.9003, zoom: 8 }\n }\n\n // Calculate bounds\n let minLat = Infinity; let maxLat = -Infinity; let minLon = Infinity; let maxLon = -Infinity\n let sumLat = 0; let sumLon = 0; let count = 0\n\n flatCoordinates.forEach((coord: GeoJSON.Position) => {\n if (!Array.isArray(coord) || coord.length < 2) return; const [lon, lat] = coord\n minLat = Math.min(minLat, lat); maxLat = Math.max(maxLat, lat); minLon = Math.min(minLon, lon); maxLon = Math.max(maxLon, lon)\n sumLat += lat; sumLon += lon; count++\n })\n\n if (count === 0) { return { lat: 61.2181, lon: -149.9003, zoom: 8 } }\n\n const centerLat = sumLat / count; const centerLon = sumLon / count\n const latDiff = maxLat - minLat; const lonDiff = maxLon - minLon; const maxDiff = Math.max(latDiff, lonDiff)\n\n let zoom = 8 // default zoom\n if (count === 1 || maxDiff === 0) zoom = 12; else if (maxDiff < 0.1) zoom = 12; else if (maxDiff < 0.5) zoom = 10\n else if (maxDiff < 1) zoom = 9; else if (maxDiff < 2) zoom = 8; else if (maxDiff < 5) zoom = 7; else zoom = 6\n\n return { lat: centerLat, lon: centerLon, zoom }\n}\n\n// Helper function to determine initial draw type based on settings\nconst getInitialDrawType = (field: IFormField): EMapShape => {\n const settings = field.settings ?? {}\n const drawEnabled = settings.drawEnabled !== false\n const drawPointEnabled = settings.drawPointEnable === true && drawEnabled\n const drawPathEnabled = settings.drawPathEnabled === true && drawEnabled\n const drawPolygonEnabled = settings.drawPolygonEnabled === true && drawEnabled\n\n if (drawPointEnabled) return EMapShape.point\n if (drawPathEnabled) return EMapShape.linestring\n if (drawPolygonEnabled) return EMapShape.polygon\n return EMapShape.point // Defaulting to Point if none specified\n}\n\nexport const GeometryInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const [map, setMapState] = useState<IMap | undefined>(undefined)\n const [error, setError] = useState<string | undefined>(undefined)\n const [showGeoJSONInput] = useState<boolean>(false)\n\n const [geojson, setGeojson] = useState<Feature | undefined>(() => {\n if (value && typeof value === 'object' && 'type' in value && value.type !== 'FeatureCollection' && value.type !== 'Feature') {\n return { type: 'Feature', properties: {}, geometry: value as Geometry }\n }\n if (value && typeof value === 'object' && 'type' in value && value.type === 'Feature') { return value as Feature }\n return undefined\n })\n\n const drawEnabled = field.settings?.drawEnabled !== false\n const drawPointEnabled = field.settings?.drawPointEnable === true && drawEnabled\n const drawPathEnabled = field.settings?.drawPathEnabled === true && drawEnabled\n const drawPolygonEnabled = field.settings?.drawPolygonEnabled === true && drawEnabled\n const showCoordinateInput = field.settings?.showCoordinateInput !== false\n\n const [currentDrawType, setCurrentDrawType] = useState<EMapShape>(() => getInitialDrawType(field))\n const [isDrawing, setIsDrawing] = useState<boolean>(!geojson && drawEnabled)\n\n const initialMapCenter = calculateCenterFromGeoJSON(geojson)\n const INITIAL_DEFAULT_ZOOM = 8 // Fixed default zoom\n\n const MAP_CONFIG: IStyleableMapProps = {\n baseLayerKey: 'hybrid',\n height: '500px',\n width: '100%',\n style: { /* ... styles ... */ },\n center: { lat: initialMapCenter.lat, lon: initialMapCenter.lon },\n zoom: INITIAL_DEFAULT_ZOOM, // Use fixed zoom\n tools: {\n draw: {\n shape: currentDrawType,\n enabled: drawEnabled && (drawPolygonEnabled || drawPathEnabled || drawPointEnabled)\n }\n }\n }\n\n // ---- Coordinate Handling ----\n const updateCoordinatesFromFeature = useCallback((feature: Feature | undefined): void => {\n if (!feature?.geometry) { setCoordinates(''); return }\n const geometry = feature.geometry; let newCoords = ''\n try {\n if (geometry.type === 'Polygon') { newCoords = (geometry.coordinates[0] ?? []).map(pos => `${pos[1]}, ${pos[0]}`).join('\\n') } else if (geometry.type === 'LineString') { newCoords = (geometry.coordinates ?? []).map(pos => `${pos[1]}, ${pos[0]}`).join('\\n') } else if (geometry.type === 'Point') { const coords = geometry.coordinates ?? [NaN, NaN]; if (!isNaN(coords[0]) && !isNaN(coords[1])) { newCoords = `${coords[1]}, ${coords[0]}` } else { newCoords = '' } }\n } catch (e) { console.error('Err format coords:', e); newCoords = '' }\n setCoordinates(newCoords)\n // setShowShapeTypeButtons(shouldShowShapeButtons(newCoords)); // Let coordinate effect handle this\n }, [])\n\n const [coordinates, setCoordinates] = useState<string>(() => {\n if (!geojson?.geometry) return ''; let initCoords = ''; const geometry = geojson.geometry\n try {\n if (geometry.type === 'Polygon') { initCoords = (geometry.coordinates[0] ?? []).map(pos => `${pos[1]}, ${pos[0]}`).join('\\n') } else if (geometry.type === 'LineString') { initCoords = (geometry.coordinates ?? []).map(pos => `${pos[1]}, ${pos[0]}`).join('\\n') } else if (geometry.type === 'Point') { const coords = geometry.coordinates ?? [NaN, NaN]; if (!isNaN(coords[0]) && !isNaN(coords[1])) { initCoords = `${coords[1]}, ${coords[0]}` } }\n } catch (e) { console.error('Err init coords:', e); initCoords = '' } return initCoords\n })\n\n useEffect(() => { updateCoordinatesFromFeature(geojson) }, [geojson, updateCoordinatesFromFeature])\n\n const createGeoJSONFromCoordinates = (coordString: string, forceType?: EMapShape): Feature | undefined => { /* ... same as last working version ... */\n if (!coordString.trim()) { setError(undefined); return undefined }\n try {\n const points = coordString.split('\\n').map(l => l.trim()).filter(l => l).map(l => { const [lat, lon] = l.split(',').map(c => parseFloat(c.trim())); if (isNaN(lat) || isNaN(lon) || lat < -90 || lat > 90 || lon < -180 || lon > 180) throw Error(`Invalid: ${lat}, ${lon}`); return [lon, lat] })\n if (points.length === 0) throw Error('No valid coords')\n if (points.length === 1 && drawPointEnabled) return { type: 'Feature', properties: {}, geometry: { type: 'Point', coordinates: points[0] } }\n if ((forceType === EMapShape.polygon || (!forceType && points.length >= 3)) && drawPolygonEnabled) { if (points.length > 0 && JSON.stringify(points[0]) !== JSON.stringify(points[points.length - 1])) points.push(points[0]); if (points.length < 4) throw Error('Min 3 unique coords for polygon'); return { type: 'Feature', properties: {}, geometry: { type: 'Polygon', coordinates: [points] } } }\n if ((forceType === EMapShape.linestring || (!forceType && points.length >= 2)) && drawPathEnabled) { if (points.length < 2) throw Error('Min 2 coords for path'); return { type: 'Feature', properties: {}, geometry: { type: 'LineString', coordinates: points } } }\n setError('Cannot create shape. Check tools/coords.'); return undefined\n } catch (e: any) { setError(`Invalid coords/count: ${e.message}. Use \"lat, lon\"`); return undefined }\n }\n\n const shouldShowShapeButtons = (coords: string): boolean => { /* ... same as last working version ... */\n const validLinesCount = coords.trim().split('\\n').filter(l => l.trim()).length\n return (drawPolygonEnabled || drawPathEnabled) && validLinesCount >= 2\n }\n const [showShapeTypeButtons, setShowShapeTypeButtons] = useState<boolean>(() => shouldShowShapeButtons(coordinates))\n useEffect(() => { setShowShapeTypeButtons(shouldShowShapeButtons(coordinates)) }, [coordinates, drawPolygonEnabled, drawPathEnabled]) // Added effect to update buttons\n\n // ---- Map Event Handlers & State Updates ----\n useEffect(() => { // Map event listeners\n if (!map) return\n const drawCompleteListener = (e: IMapDrawEvent) => { /* ... same ... */ const f = e.data?.geojson?.features?.[0]; if (f) { setGeojson(f); setIsDrawing(false); map.disableDraw(currentDrawType) } }\n const drawUpdateListener = (e: IMapDrawEvent) => { /* ... same ... */ const f = e.data?.geojson?.features?.[0]; if (f) { setGeojson(f) } }\n map.onDrawComplete(drawCompleteListener); map.onDrawUpdate(drawUpdateListener)\n // Cleanup omitted\n }, [map, currentDrawType])\n\n useEffect(() => { // Parent onChange trigger\n onChange(geojson?.geometry ?? undefined)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [geojson])\n\n useEffect(() => { // Map drawing/state sync effect\n if (!map) return\n const correctDrawType = getInitialDrawType(field)\n if (currentDrawType !== correctDrawType) { setCurrentDrawType(correctDrawType) }\n\n if (geojson?.geometry) {\n map.setDrawGeojson({ type: 'FeatureCollection', features: [geojson] })\n map.disableDraw(correctDrawType) // Ensure correct tool is disabled\n setIsDrawing(false)\n } else {\n map.setDrawGeojson({ type: 'FeatureCollection', features: [] })\n if (drawEnabled && (drawPointEnabled || drawPathEnabled || drawPolygonEnabled)) {\n map.enableDraw(correctDrawType) // Enable the correct initial tool\n setIsDrawing(true)\n } else {\n map.disableDraw(correctDrawType) // Ensure drawing is off if not enabled\n setIsDrawing(false)\n }\n }\n }, [map, geojson, drawEnabled, drawPointEnabled, drawPathEnabled, drawPolygonEnabled, currentDrawType, field])\n\n // ---- Helper Functions ----\n const hasValidShape = (feature?: Feature): boolean => !!feature?.geometry\n\n const clearShape = (): void => { /* ... same ... */\n setGeojson(undefined); setCoordinates(''); setShowShapeTypeButtons(false)\n if (map && drawEnabled) { map.setDrawGeojson({ type: 'FeatureCollection', features: [] }); const iType = getInitialDrawType(field); setCurrentDrawType(iType); map.enableDraw(iType); setIsDrawing(true) }\n }\n\n const handleDrawTypeChange = (shapeType: EMapShape): void => { /* ... same as minimal fix version ... */\n if (map && drawEnabled) {\n const isAllowed = (shapeType === EMapShape.point && drawPointEnabled) || (shapeType === EMapShape.linestring && drawPathEnabled) || (shapeType === EMapShape.polygon && drawPolygonEnabled)\n if (isAllowed && shapeType !== currentDrawType) { map.disableDraw(currentDrawType); setCurrentDrawType(shapeType); map.enableDraw(shapeType); setIsDrawing(true) }\n }\n }\n\n const handleCoordinatesChange = (e: string | undefined): void => { /* ... same as minimal fix version ... */\n const newCoords = e ?? ''; setCoordinates(newCoords)\n const pointsCount = newCoords.trim().split('\\n').filter(l => l.trim()).length\n let intendedType: EMapShape | undefined\n if (pointsCount === 1 && drawPointEnabled) intendedType = EMapShape.point\n else if (pointsCount >= 3 && drawPolygonEnabled) intendedType = EMapShape.polygon\n else if (pointsCount >= 2 && drawPathEnabled) intendedType = EMapShape.linestring\n const newFeature = createGeoJSONFromCoordinates(newCoords, intendedType)\n if (newFeature) {\n setGeojson(newFeature); setError(undefined)\n if (map) { map.setDrawGeojson({ type: 'FeatureCollection', features: [] }); map.setDrawGeojson({ type: 'FeatureCollection', features: [newFeature] }); map.disableDraw(currentDrawType); setIsDrawing(false) }\n // setShowShapeTypeButtons(shouldShowShapeButtons(newCoords)); // Let effect handle this\n } else {\n if (!newCoords.trim()) { setGeojson(undefined); if (map && drawEnabled) { map.setDrawGeojson({ type: 'FeatureCollection', features: [] }); map.enableDraw(currentDrawType); setIsDrawing(true) } setShowShapeTypeButtons(false) } else if (!error) { setError('Cannot form valid shape with coords/tools.') }\n }\n }\n\n const applyShapeType = (shapeType: EMapShape): void => { /* ... same ... */\n const newFeature = createGeoJSONFromCoordinates(coordinates, shapeType)\n if (newFeature) { setGeojson(newFeature); setError(undefined) } else if (!error) { setError(`Could not create ${shapeType === EMapShape.polygon ? 'poly' : 'path'}.`) }\n }\n\n // ---- JSX Return (Reverting Button ClassNames and removing disabled) ----\n return (\n <div>\n <FieldLabel {...field} />\n <div className=\"relative\">\n {drawEnabled && (drawPolygonEnabled || drawPathEnabled || drawPointEnabled) && (\n <div className=\"absolute z-20 top-12 right-4 flex flex-col gap-2\">\n {/* Point Button - Render only if allowed */}\n {drawPointEnabled && (\n <div className=\"tooltip-container relative group\">\n <Button\n onClick={() => { handleDrawTypeChange(EMapShape.point) }}\n // Reverted className logic\n className={`p-2 rounded-lg shadow-lg ${\n currentDrawType === EMapShape.point && isDrawing\n ? 'bg-white hover:bg-gray-50 ring-2 ring-yellow-200 shadow-[0_0_10px_rgba(253,224,71,0.5)]'\n : 'bg-gray-100 hover:bg-gray-50'\n } text-black w-10 h-10 flex items-center justify-center`}\n aria-label=\"Draw Point\"\n >\n <DrawingPinFilledIcon className=\"w-5 h-5\" />\n <span className=\"tooltip absolute right-full mr-2 px-2 py-1 bg-gray-800 text-white text-sm rounded whitespace-nowrap opacity-0 group-hover:opacity-100 pointer-events-none\">\n Draw Point\n </span>\n </Button>\n </div>\n )}\n {/* Path Button - Render only if allowed */}\n {drawPathEnabled && (\n <div className=\"tooltip-container relative group\">\n <Button\n onClick={() => { handleDrawTypeChange(EMapShape.linestring) }}\n // Reverted className logic\n className={`p-2 rounded-lg shadow-lg ${\n currentDrawType === EMapShape.linestring && isDrawing\n ? 'bg-white hover:bg-gray-50 ring-2 ring-yellow-200 shadow-[0_0_10px_rgba(253,224,71,0.5)]'\n : 'bg-gray-100 hover:bg-gray-50'\n } text-black w-10 h-10 flex items-center justify-center`}\n aria-label=\"Draw Path\"\n >\n <BorderSolidIcon className=\"w-5 h-5\" />\n <span className=\"tooltip absolute right-full mr-2 px-2 py-1 bg-gray-800 text-white text-sm rounded whitespace-nowrap opacity-0 group-hover:opacity-100 pointer-events-none\">\n Draw Path\n </span>\n </Button>\n </div>\n )}\n {/* Polygon Button - Render only if allowed */}\n {drawPolygonEnabled && (\n <div className=\"tooltip-container relative group\">\n <Button\n onClick={() => { handleDrawTypeChange(EMapShape.polygon) }}\n // Reverted className logic\n className={`p-2 rounded-lg shadow-lg ${\n currentDrawType === EMapShape.polygon && isDrawing\n ? 'bg-white hover:bg-gray-50 ring-2 ring-yellow-200 shadow-[0_0_10px_rgba(253,224,71,0.5)]'\n : 'bg-gray-100 hover:bg-gray-50'\n } text-black w-10 h-10 flex items-center justify-center`}\n aria-label=\"Draw Polygon\"\n >\n <SquareIcon className=\"w-5 h-5 rotate-45\" />\n <span className=\"tooltip absolute right-full mr-2 px-2 py-1 bg-gray-800 text-white text-sm rounded whitespace-nowrap opacity-0 group-hover:opacity-100 pointer-events-none\">\n Draw Polygon\n </span>\n </Button>\n </div>\n )}\n {/* Clear Button - Render if shape exists */}\n {hasValidShape(geojson) && (\n <div className=\"tooltip-container relative group\">\n <Button\n onClick={clearShape}\n className=\"p-2 rounded-lg shadow-lg bg-red-500 hover:bg-red-600 text-white w-10 h-10 flex items-center justify-center\"\n aria-label=\"Clear Shape\"\n >\n <TrashIcon className=\"w-5 h-5\" />\n <span className=\"tooltip absolute right-full mr-2 px-2 py-1 bg-gray-800 text-white text-sm rounded whitespace-nowrap opacity-0 group-hover:opacity-100 pointer-events-none\">\n Clear Shape\n </span>\n </Button>\n </div>\n )}\n </div>\n )}\n\n {/* Map Component */}\n <Map {...MAP_CONFIG} setState={setMapState} />\n\n {/* Coordinate Input Section */}\n {showCoordinateInput && (\n <div className=\"mt-4\">\n <div className=\"flex justify-between items-center mb-2 flex-wrap gap-y-2\">\n <span className=\"text-sm\"> {/* ... label ... */} </span>\n {showShapeTypeButtons && (drawPathEnabled || drawPolygonEnabled) && (\n <div className=\"flex gap-2\"> {/* ... Create Path/Polygon buttons ... */}\n {drawPathEnabled && <Button onClick={() => { applyShapeType(EMapShape.linestring) }} className=\"px-3 py-1 bg-white hover:bg-gray-50 text-black rounded-lg shadow-sm border border-gray-200 text-xs flex items-center gap-1\"><BorderSolidIcon className=\"w-3 h-3\" />Create Path</Button>}\n {drawPolygonEnabled && <Button onClick={() => { applyShapeType(EMapShape.polygon) }} className=\"px-3 py-1 bg-white hover:bg-gray-50 text-black rounded-lg shadow-sm border border-gray-200 text-xs flex items-center gap-1\"><SquareIcon className=\"w-3 h-3 rotate-45\" />Create Polygon</Button>}\n </div>\n )}\n </div>\n <TextArea error={error} className='min-h-[100px] bg-slate-50 rounded-lg shadow-inner font-mono text-sm' id={`${field.id}-coordinates`} testId={`${field.id}-coordinates`} value={coordinates} onChange={handleCoordinatesChange} placeholder={'...'} aria-label=\"Coordinates Input\" />\n {error && <p className=\"text-red-600 text-xs mt-1\">{error}</p>}\n </div>\n )}\n\n {/* Debug Output (Optional) */}\n {showGeoJSONInput && <TextArea error={error} className='...' id={field.id + '-debug'} testId={field.id + '-debug'} label={<FieldLabel {...field} label=\"Debug GeoJSON Feature State\"/>} value={getValue()} readOnly />}\n </div>\n </div>\n )\n}\n\nexport default GeometryInput\n"],"names":["React","Map"],"mappings":";;;;;;;;AAWA;;;AAGE;AAEF;AACA,IAAM,0BAA0B,GAAG,UAAC,GAAwB,EAAA;;;;AAG1D,IAAA,IAAI,iBAAwD;IAC5D,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC3C,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;AAC1B,YAAA,iBAAiB,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE;;aAC7D,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,6BAA6B;YACjH,iBAAiB,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAe,EAAE,CAAC,EAAE;;;SAE1H,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE;QAClD,iBAAiB,GAAG,GAAG;;AAGzB,IAAA,IAAI,CAAC,iBAAiB,IAAI,EAAE,UAAU,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACrJ,QAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;;IAGlD,IAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,IAAI,EAAC,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,QAAQ,CAAA,EAAE;AACtB,QAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE;;AAGlD,IAAA,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ;AACjC,IAAA,IAAI,WAAW,GAAiE,EAAE,CAAA;AAElF,IAAA,QAAQ,QAAQ,CAAC,IAAI;AACnB,QAAA,KAAK,SAAS;YACZ,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YACrC;AACF,QAAA,KAAK,YAAY;AACf,YAAA,WAAW,GAAG,QAAQ,CAAC,WAAW;YAClC;AACF,QAAA,KAAK,OAAO;YACV,WAAW,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;YACpC;AACF,QAAA;AACE,YAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE;;;IAIpD,IAAM,eAAe,GAAG,CAAA,EAAC,GAAA,EAAyB,EAAC,MAAM,CAAA,KAAA,CAAA,EAAA,EAAI,WAAkB,CAAC;IAEhF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;;QAEzG,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,eAAe,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YACtG,IAAA,EAAA,GAAa,eAAmC,EAA/C,GAAG,QAAA,EAAE,GAAG,QAAuC;;;AAGtD,YAAA,OAAO,EAAE,GAAG,EAAA,GAAA,EAAE,GAAG,EAAA,GAAA,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;;AAE9B,QAAA,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC;AAC9D,QAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE;;;IAIlD,IAAI,MAAM,GAAG,QAAQ;AAAE,IAAA,IAAI,MAAM,GAAG,CAAC,QAAQ;IAAE,IAAI,MAAM,GAAG,QAAQ;AAAE,IAAA,IAAI,MAAM,GAAG,CAAC,QAAQ;IAC5F,IAAI,MAAM,GAAG,CAAC;IAAE,IAAI,MAAM,GAAG,CAAC;IAAE,IAAI,KAAK,GAAG,CAAC;AAE7C,IAAA,eAAe,CAAC,OAAO,CAAC,UAAC,KAAuB,EAAA;AAC9C,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE;QAAe,IAAA,GAAG,GAAS,KAAK,CAAA,CAAA,CAAd,EAAE,GAAG,GAAI,KAAK,CAAA,CAAA,CAAT;QACtE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;QAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;QAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;QAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;QAC9H,MAAM,IAAI,GAAG;QAAE,MAAM,IAAI,GAAG;AAAE,QAAA,KAAK,EAAE;AACvC,KAAC,CAAC;AAEF,IAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AAAE,QAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE;;AAEnE,IAAA,IAAM,SAAS,GAAG,MAAM,GAAG,KAAK;AAAE,IAAA,IAAM,SAAS,GAAG,MAAM,GAAG,KAAK;AAClE,IAAA,IAAM,OAAO,GAAG,MAAM,GAAG,MAAM;AAAE,IAAA,IAAM,OAAO,GAAG,MAAM,GAAG,MAAM;IAAE,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;AAE5G,IAAA,IAAI,IAAI,GAAG,CAAC,CAAA;AACZ,IAAA,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC;QAAE,IAAI,GAAG,EAAE;SAAO,IAAI,OAAO,GAAG,GAAG;QAAE,IAAI,GAAG,EAAE;SAAO,IAAI,OAAO,GAAG,GAAG;QAAE,IAAI,GAAG,EAAE;SAC5G,IAAI,OAAO,GAAG,CAAC;QAAE,IAAI,GAAG,CAAC;SAAO,IAAI,OAAO,GAAG,CAAC;QAAE,IAAI,GAAG,CAAC;SAAO,IAAI,OAAO,GAAG,CAAC;QAAE,IAAI,GAAG,CAAC;;QAAO,IAAI,GAAG,CAAC;AAE7G,IAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAA,IAAA,EAAE;AACjD,CAAC;AAED;AACA,IAAM,kBAAkB,GAAG,UAAC,KAAiB,EAAA;;IAC3C,IAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;AACrC,IAAA,IAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,KAAK,KAAK;IAClD,IAAM,gBAAgB,GAAG,QAAQ,CAAC,eAAe,KAAK,IAAI,IAAI,WAAW;IACzE,IAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,KAAK,IAAI,IAAI,WAAW;IACxE,IAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,KAAK,IAAI,IAAI,WAAW;AAE9E,IAAA,IAAI,gBAAgB;QAAE,OAAO,SAAS,CAAC,KAAK;AAC5C,IAAA,IAAI,eAAe;QAAE,OAAO,SAAS,CAAC,UAAU;AAChD,IAAA,IAAI,kBAAkB;QAAE,OAAO,SAAS,CAAC,OAAO;AAChD,IAAA,OAAO,SAAS,CAAC,KAAK,CAAA;AACxB,CAAC;AAEM,IAAM,aAAa,GAAG,UAAC,EAA4C,EAAA;;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;IAC9C,IAAA,EAAA,GAAqB,QAAQ,CAAmB,SAAS,CAAC,EAAzD,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAAyC;IAC1D,IAAA,EAAA,GAAoB,QAAQ,CAAqB,SAAS,CAAC,EAA1D,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAA2C;AAC1D,IAAA,IAAA,gBAAgB,GAAI,QAAQ,CAAU,KAAK,CAAC,GAA5B;IAEjB,IAAA,EAAA,GAAwB,QAAQ,CAAsB,YAAA;QAC1D,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;AAC3H,YAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAiB,EAAE;;AAEzE,QAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,OAAO,KAAgB;;AAChH,QAAA,OAAO,SAAS;AAClB,KAAC,CAAC,EANK,OAAO,QAAA,EAAE,UAAU,QAMxB;IAEF,IAAM,WAAW,GAAG,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,WAAW,MAAK,KAAK;AACzD,IAAA,IAAM,gBAAgB,GAAG,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,eAAe,MAAK,IAAI,IAAI,WAAW;AAChF,IAAA,IAAM,eAAe,GAAG,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,eAAe,MAAK,IAAI,IAAI,WAAW;AAC/E,IAAA,IAAM,kBAAkB,GAAG,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,kBAAkB,MAAK,IAAI,IAAI,WAAW;IACrF,IAAM,mBAAmB,GAAG,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,mBAAmB,MAAK,KAAK;AAEnE,IAAA,IAAA,KAAwC,QAAQ,CAAY,cAAM,OAAA,kBAAkB,CAAC,KAAK,CAAC,CAAzB,EAAyB,CAAC,EAA3F,eAAe,QAAA,EAAE,kBAAkB,QAAwD;AAC5F,IAAA,IAAA,EAA4B,GAAA,QAAQ,CAAU,CAAC,OAAO,IAAI,WAAW,CAAC,EAArE,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,QAA8C;AAE5E,IAAA,IAAM,gBAAgB,GAAG,0BAA0B,CAAC,OAAO,CAAC;AAC5D,IAAA,IAAM,oBAAoB,GAAG,CAAC,CAAA;AAE9B,IAAA,IAAM,UAAU,GAAuB;AACrC,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,uBAAwB;AAC/B,QAAA,MAAM,EAAE,EAAE,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE;QAChE,IAAI,EAAE,oBAAoB;AAC1B,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,WAAW,KAAK,kBAAkB,IAAI,eAAe,IAAI,gBAAgB;AACnF;AACF;KACF;;AAGD,IAAA,IAAM,4BAA4B,GAAG,WAAW,CAAC,UAAC,OAA4B,EAAA;;QAC5E,IAAI,EAAC,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,QAAQ,CAAA,EAAE;YAAE,cAAc,CAAC,EAAE,CAAC;YAAE;;AAC9C,QAAA,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ;QAAE,IAAI,SAAS,GAAG,EAAE;AACrD,QAAA,IAAI;AACF,YAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE;AAAE,gBAAA,SAAS,GAAG,CAAC,CAAA,EAAA,GAAA,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAAE,GAAG,CAAC,UAAA,GAAG,EAAI,EAAA,OAAA,EAAG,CAAA,MAAA,CAAA,GAAG,CAAC,CAAC,CAAC,EAAK,IAAA,CAAA,CAAA,MAAA,CAAA,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;AAAQ,iBAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE;AAAE,gBAAA,SAAS,GAAG,CAAC,CAAA,EAAA,GAAA,QAAQ,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAAE,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,EAAA,CAAA,MAAA,CAAG,GAAG,CAAC,CAAC,CAAC,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,GAAG,CAAC,CAAC,CAAC,CAAE,CAAtB,EAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;AAAQ,iBAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;AAAE,gBAAA,IAAM,MAAM,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAC,GAAG,EAAE,GAAG,CAAC;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AAAE,oBAAA,SAAS,GAAG,EAAA,CAAA,MAAA,CAAG,MAAM,CAAC,CAAC,CAAC,EAAK,IAAA,CAAA,CAAA,MAAA,CAAA,MAAM,CAAC,CAAC,CAAC,CAAE;;qBAAQ;oBAAE,SAAS,GAAG,EAAE;;;;QAC1c,OAAO,CAAC,EAAE;AAAE,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC;YAAE,SAAS,GAAG,EAAE;;QACpE,cAAc,CAAC,SAAS,CAAC;;KAE1B,EAAE,EAAE,CAAC;IAEA,IAAA,EAAA,GAAgC,QAAQ,CAAS,YAAA;;QACrD,IAAI,EAAC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,QAAQ,CAAA;AAAE,YAAA,OAAO,EAAE;QAAE,IAAI,UAAU,GAAG,EAAE;AAAE,QAAA,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ;AACzF,QAAA,IAAI;AACF,YAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE;AAAE,gBAAA,UAAU,GAAG,CAAC,CAAA,EAAA,GAAA,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAAE,GAAG,CAAC,UAAA,GAAG,EAAI,EAAA,OAAA,EAAG,CAAA,MAAA,CAAA,GAAG,CAAC,CAAC,CAAC,EAAK,IAAA,CAAA,CAAA,MAAA,CAAA,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;AAAQ,iBAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE;AAAE,gBAAA,UAAU,GAAG,CAAC,CAAA,EAAA,GAAA,QAAQ,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAAE,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,EAAA,CAAA,MAAA,CAAG,GAAG,CAAC,CAAC,CAAC,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,GAAG,CAAC,CAAC,CAAC,CAAE,CAAtB,EAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;AAAQ,iBAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;AAAE,gBAAA,IAAM,MAAM,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAC,GAAG,EAAE,GAAG,CAAC;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AAAE,oBAAA,UAAU,GAAG,EAAA,CAAA,MAAA,CAAG,MAAM,CAAC,CAAC,CAAC,EAAK,IAAA,CAAA,CAAA,MAAA,CAAA,MAAM,CAAC,CAAC,CAAC,CAAE;;;;QACrb,OAAO,CAAC,EAAE;AAAE,YAAA,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAAE,UAAU,GAAG,EAAE;;AAAG,QAAA,OAAO,UAAU;AACzF,KAAC,CAAC,EALK,WAAW,QAAA,EAAE,cAAc,QAKhC;AAEF,IAAA,SAAS,CAAC,YAAQ,EAAA,4BAA4B,CAAC,OAAO,CAAC,CAAA,EAAE,EAAE,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;AAEnG,IAAA,IAAM,4BAA4B,GAAG,UAAC,WAAmB,EAAE,SAAqB,EAAA;AAC9E,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE;YAAE,QAAQ,CAAC,SAAS,CAAC;AAAE,YAAA,OAAO,SAAS;;AAChE,QAAA,IAAI;YACF,IAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,EAAE,CAAR,EAAQ,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAD,EAAC,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAY,IAAA,EAAa,GAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA,EAAA,CAAC,EAAvD,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,GAAG,GAA+C,EAAA,CAAA,CAAA,CAAA,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG;gBAAE,MAAM,KAAK,CAAC,WAAY,CAAA,MAAA,CAAA,GAAG,eAAK,GAAG,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA,EAAE,CAAC;AAClS,YAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAAE,gBAAA,MAAM,KAAK,CAAC,iBAAiB,CAAC;AACvD,YAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB;gBAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5I,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,kBAAkB,EAAE;AAAE,gBAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAAE,gBAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;AAAE,oBAAA,MAAM,KAAK,CAAC,iCAAiC,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;;YACtY,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,UAAU,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,eAAe,EAAE;AAAE,gBAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;AAAE,oBAAA,MAAM,KAAK,CAAC,uBAAuB,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;;YACnQ,QAAQ,CAAC,0CAA0C,CAAC;AAAE,YAAA,OAAO,SAAS;;QACtE,OAAO,CAAM,EAAE;AAAE,YAAA,QAAQ,CAAC,wBAAyB,CAAA,MAAA,CAAA,CAAC,CAAC,OAAO,EAAA,oBAAA,CAAkB,CAAC;AAAE,YAAA,OAAO,SAAS;;AACrG,KAAC;IAED,IAAM,sBAAsB,GAAG,UAAC,MAAc,EAAA;QAC5C,IAAM,eAAe,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,IAAI,EAAE,CAAA,EAAA,CAAC,CAAC,MAAM;QAC9E,OAAO,CAAC,kBAAkB,IAAI,eAAe,KAAK,eAAe,IAAI,CAAC;AACxE,KAAC;AACK,IAAA,IAAA,KAAkD,QAAQ,CAAU,cAAM,OAAA,sBAAsB,CAAC,WAAW,CAAC,CAAnC,EAAmC,CAAC,EAA7G,oBAAoB,QAAA,EAAE,uBAAuB,QAAgE;IACpH,SAAS,CAAC,cAAQ,uBAAuB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAA,EAAE,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAA;;AAGrI,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAI,CAAC,GAAG;YAAE;AACV,QAAA,IAAM,oBAAoB,GAAG,UAAC,CAAgB,EAAO,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,oBAAmB,IAAM,CAAC,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAC,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,QAAQ,MAAG,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;YAAE,UAAU,CAAC,CAAC,CAAC;YAAE,YAAY,CAAC,KAAK,CAAC;AAAE,YAAA,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC;SAAE,EAAE;AACnM,QAAA,IAAM,kBAAkB,GAAG,UAAC,CAAgB,EAAO,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,oBAAmB,IAAM,CAAC,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAC,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,QAAQ,MAAG,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;YAAE,UAAU,CAAC,CAAC,CAAC;SAAE,EAAE;AAC1I,QAAA,GAAG,CAAC,cAAc,CAAC,oBAAoB,CAAC;AAAE,QAAA,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC;;AAEhF,KAAC,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAE1B,IAAA,SAAS,CAAC,YAAA;;AACR,QAAA,QAAQ,CAAC,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS,CAAC;;AAE1C,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAEb,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAI,CAAC,GAAG;YAAE;AACV,QAAA,IAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACjD,QAAA,IAAI,eAAe,KAAK,eAAe,EAAE;YAAE,kBAAkB,CAAC,eAAe,CAAC;;QAE9E,IAAI,OAAO,aAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,QAAQ,EAAE;AACrB,YAAA,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AACtE,YAAA,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;YAChC,YAAY,CAAC,KAAK,CAAC;;aACd;AACL,YAAA,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC/D,IAAI,WAAW,KAAK,gBAAgB,IAAI,eAAe,IAAI,kBAAkB,CAAC,EAAE;AAC9E,gBAAA,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;gBAC/B,YAAY,CAAC,IAAI,CAAC;;iBACb;AACL,gBAAA,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;gBAChC,YAAY,CAAC,KAAK,CAAC;;;AAGzB,KAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;;AAG9G,IAAA,IAAM,aAAa,GAAG,UAAC,OAAiB,EAAc,EAAA,OAAA,CAAC,EAAC,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAA,CAAA,EAAA;AAEzE,IAAA,IAAM,UAAU,GAAG,YAAA;QACjB,UAAU,CAAC,SAAS,CAAC;QAAE,cAAc,CAAC,EAAE,CAAC;QAAE,uBAAuB,CAAC,KAAK,CAAC;AACzE,QAAA,IAAI,GAAG,IAAI,WAAW,EAAE;AAAE,YAAA,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAAE,YAAA,IAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC;YAAE,kBAAkB,CAAC,KAAK,CAAC;AAAE,YAAA,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC;;AAC1M,KAAC;IAED,IAAM,oBAAoB,GAAG,UAAC,SAAoB,EAAA;AAChD,QAAA,IAAI,GAAG,IAAI,WAAW,EAAE;AACtB,YAAA,IAAM,SAAS,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,KAAK,IAAI,gBAAgB,MAAM,SAAS,KAAK,SAAS,CAAC,UAAU,IAAI,eAAe,CAAC,KAAK,SAAS,KAAK,SAAS,CAAC,OAAO,IAAI,kBAAkB,CAAC;AAC3L,YAAA,IAAI,SAAS,IAAI,SAAS,KAAK,eAAe,EAAE;AAAE,gBAAA,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC;gBAAE,kBAAkB,CAAC,SAAS,CAAC;AAAE,gBAAA,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,YAAY,CAAC,IAAI,CAAC;;;AAEpK,KAAC;IAED,IAAM,uBAAuB,GAAG,UAAC,CAAqB,EAAA;QACpD,IAAM,SAAS,GAAG,CAAC,KAAA,IAAA,IAAD,CAAC,KAAD,MAAA,GAAA,CAAC,GAAI,EAAE;QAAE,cAAc,CAAC,SAAS,CAAC;QACpD,IAAM,WAAW,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,IAAI,EAAE,CAAA,EAAA,CAAC,CAAC,MAAM;AAC7E,QAAA,IAAI,YAAmC;AACvC,QAAA,IAAI,WAAW,KAAK,CAAC,IAAI,gBAAgB;AAAE,YAAA,YAAY,GAAG,SAAS,CAAC,KAAK;AACpE,aAAA,IAAI,WAAW,IAAI,CAAC,IAAI,kBAAkB;AAAE,YAAA,YAAY,GAAG,SAAS,CAAC,OAAO;AAC5E,aAAA,IAAI,WAAW,IAAI,CAAC,IAAI,eAAe;AAAE,YAAA,YAAY,GAAG,SAAS,CAAC,UAAU;QACjF,IAAM,UAAU,GAAG,4BAA4B,CAAC,SAAS,EAAE,YAAY,CAAC;QACxE,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,UAAU,CAAC;YAAE,QAAQ,CAAC,SAAS,CAAC;YAC3C,IAAI,GAAG,EAAE;AAAE,gBAAA,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAAE,gBAAA,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;AAAE,gBAAA,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC;gBAAE,YAAY,CAAC,KAAK,CAAC;;;;aAEvM;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;gBAAE,UAAU,CAAC,SAAS,CAAC;AAAE,gBAAA,IAAI,GAAG,IAAI,WAAW,EAAE;AAAE,oBAAA,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAAE,oBAAA,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC;oBAAE,YAAY,CAAC,IAAI,CAAC;;gBAAG,uBAAuB,CAAC,KAAK,CAAC;;iBAAQ,IAAI,CAAC,KAAK,EAAE;gBAAE,QAAQ,CAAC,4CAA4C,CAAC;;;AAE/S,KAAC;IAED,IAAM,cAAc,GAAG,UAAC,SAAoB,EAAA;QAC1C,IAAM,UAAU,GAAG,4BAA4B,CAAC,WAAW,EAAE,SAAS,CAAC;QACvE,IAAI,UAAU,EAAE;YAAE,UAAU,CAAC,UAAU,CAAC;YAAE,QAAQ,CAAC,SAAS,CAAC;;aAAQ,IAAI,CAAC,KAAK,EAAE;AAAE,YAAA,QAAQ,CAAC,mBAAoB,CAAA,MAAA,CAAA,SAAS,KAAK,SAAS,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,EAAA,GAAA,CAAG,CAAC;;AACvK,KAAC;;AAGD,IAAA,QACMA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;QACIA,cAAC,CAAA,aAAA,CAAA,UAAU,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA;QACzBA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,UAAU,EAAA;AACpB,YAAA,WAAW,KAAK,kBAAkB,IAAI,eAAe,IAAI,gBAAgB,CAAC,KACvEA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,kDAAkD,EAAA;AAE5D,gBAAA,gBAAgB,KACZA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,kCAAkC,EAAA;AAC7C,oBAAAA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EACJ,OAAO,EAAE,YAAQ,EAAA,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA,EAAE;;wBAExD,SAAS,EAAE,mCACP,eAAe,KAAK,SAAS,CAAC,KAAK,IAAI;AACrC,8BAAE;AACF,8BAAE,8BAA8B,EACoB,wDAAA,CAAA,EAAA,YAAA,EAC/C,YAAY,EAAA;AAExB,wBAAAA,cAAA,CAAA,aAAA,CAAC,oBAAoB,EAAA,EAAC,SAAS,EAAC,SAAS,EAAG,CAAA;AAC5C,wBAAAA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,2JAA2J,EAEpK,EAAA,YAAA,CAAA,CACA,CACP,CACV;AAEA,gBAAA,eAAe,KACbA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,kCAAkC,EAAA;AAC7C,oBAAAA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EACH,OAAO,EAAE,YAAQ,EAAA,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA,EAAE;;wBAE7D,SAAS,EAAE,mCACP,eAAe,KAAK,SAAS,CAAC,UAAU,IAAI;AAC1C,8BAAE;AACF,8BAAE,8BAA8B,EACoB,wDAAA,CAAA,EAAA,YAAA,EAC/C,WAAW,EAAA;AAEtB,wBAAAA,cAAA,CAAA,aAAA,CAAC,eAAe,EAAA,EAAC,SAAS,EAAC,SAAS,EAAG,CAAA;AACvC,wBAAAA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,2JAA2J,EAEpK,EAAA,WAAA,CAAA,CACA,CACT,CACR;AAEA,gBAAA,kBAAkB,KACdA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,kCAAkC,EAAA;AAC7C,oBAAAA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EACH,OAAO,EAAE,YAAQ,EAAA,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,EAAE;;wBAE1D,SAAS,EAAE,mCACP,eAAe,KAAK,SAAS,CAAC,OAAO,IAAI;AACvC,8BAAE;AACF,8BAAE,8BAA8B,EACoB,wDAAA,CAAA,EAAA,YAAA,EAC/C,cAAc,EAAA;AAE1B,wBAAAA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAG,CAAA;AAC5C,wBAAAA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,2JAA2J,EAEpK,EAAA,cAAA,CAAA,CACA,CACR,CACV;gBAEA,aAAa,CAAC,OAAO,CAAC,KACnBA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,kCAAkC,EAAA;oBAC7CA,cAAC,CAAA,aAAA,CAAA,MAAM,EACH,EAAA,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,4GAA4G,EAAA,YAAA,EAC3G,aAAa,EAAA;AAExB,wBAAAA,cAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,SAAS,EAAG,CAAA;wBACjCA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,2JAA2J,EAAA,EAAA,aAAA,CAEpK,CACF,CACP,CACT,CACC,CACT;AAGD,YAAAA,cAAA,CAAA,aAAA,CAACC,sBAAG,EAAK,QAAA,CAAA,EAAA,EAAA,UAAU,IAAE,QAAQ,EAAE,WAAW,EAAI,CAAA,CAAA;AAG7C,YAAA,mBAAmB,KACfD,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,MAAM,EAAA;gBAClBA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,0DAA0D,EAAA;oBACrEA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,SAAS,EAAA;;AAA+B,wBAAA,GAAA,CAAA;oBACvD,oBAAoB,KAAK,eAAe,IAAI,kBAAkB,CAAC,KAC5DA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,YAAY,EAAA;;AACtB,wBAAA,eAAe,IAAIA,cAAC,CAAA,aAAA,CAAA,MAAM,IAAC,OAAO,EAAE,cAAQ,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA,EAAE,EAAE,SAAS,EAAC,4HAA4H,EAAA;AAAC,4BAAAA,cAAA,CAAA,aAAA,CAAC,eAAe,EAAA,EAAC,SAAS,EAAC,SAAS,EAAG,CAAA;AAAoB,4BAAA,aAAA,CAAA;AACtR,wBAAA,kBAAkB,IAAIA,cAAC,CAAA,aAAA,CAAA,MAAM,IAAC,OAAO,EAAE,cAAQ,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,EAAE,EAAE,SAAS,EAAC,4HAA4H,EAAA;AAAC,4BAAAA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAG,CAAA;AAAuB,4BAAA,gBAAA,CAAA,CAC7R,CACT,CACC;AACN,gBAAAA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,qEAAqE,EAAC,EAAE,EAAE,EAAA,CAAA,MAAA,CAAG,KAAK,CAAC,EAAE,iBAAc,EAAE,MAAM,EAAE,EAAA,CAAA,MAAA,CAAG,KAAK,CAAC,EAAE,iBAAc,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,uBAAuB,EAAE,WAAW,EAAE,KAAK,EAAA,YAAA,EAAa,mBAAmB,EAAG,CAAA;gBACrR,KAAK,IAAIA,oCAAG,SAAS,EAAC,2BAA2B,EAAE,EAAA,KAAK,CAAK,CAC5D,CACT;YAGC,gBAAgB,IAAIA,6BAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,KAAK,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,EAAE,EAAA,KAAK,EAAC,6BAA6B,IAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAG,IAAA,EAAA,CAAA,CACrN,CACJ;AAEd;;;;"}
1
+ {"version":3,"file":"Geometry.js","sources":["../../../../../../src/Form/Components/Inputs/Geometry.tsx"],"sourcesContent":["import { Button, TextArea } from '@axdspub/axiom-ui-utilities'\nimport FieldLabel from '@/Form/Components/FieldLabel'\nimport { type IGeometryField, type IFieldInputProps, type IFormField } from '@/Form/Creator/FormCreatorTypes' // Added IFormField explicitly\n\nimport { EMapShape, type IMap, type IMapDrawEvent, type IStyleableMapProps } from '@axdspub/axiom-maps'\nimport { OpenLayersMap as Map } from '@axdspub/axiom-maps/library/openlayers'\n// Import Geometry type if not already done\nimport { type Feature, type GeoJSON, type Geometry } from 'geojson'\nimport React, { useEffect, useState, type ReactElement, useCallback } from 'react' // Added useCallback\nimport { TrashIcon, SquareIcon, BorderSolidIcon, DrawingPinFilledIcon } from '@radix-ui/react-icons'\n\n/*\nList of coordinates for testing. Around Anchorage.\n...\n*/\n\n// --- calculateCenterFromGeoJSON remains the same (zoom ignored for initial load) ---\nconst calculateCenterFromGeoJSON = (geo: GeoJSON | undefined, defaultCenter?: { lat: number, lon: number, zoom: number }): { lat: number, lon: number, zoom: number } => {\n // If default center is provided, use it\n if (defaultCenter) {\n return defaultCenter\n }\n\n // If input is Geometry, wrap it temporarily for calculation\n let featureCollection: GeoJSON.FeatureCollection | undefined\n if (geo && geo.type !== 'FeatureCollection') {\n if (geo.type === 'Feature') {\n featureCollection = { type: 'FeatureCollection', features: [geo] }\n } else if (geo.type === 'Point' || geo.type === 'LineString' || geo.type === 'Polygon' /* add others as needed */) {\n featureCollection = { type: 'FeatureCollection', features: [{ type: 'Feature', properties: {}, geometry: geo as Geometry }] }\n }\n } else if (geo && geo.type === 'FeatureCollection') {\n featureCollection = geo\n }\n\n // Default to Anchorage if no valid GeoJSON\n const DEFAULT_CENTER = { lat: 61.2181, lon: -149.9003, zoom: 8 }\n\n if (!featureCollection || !('features' in featureCollection) || !Array.isArray(featureCollection.features) || featureCollection.features.length === 0) {\n return DEFAULT_CENTER\n }\n\n const feature = featureCollection.features[0]\n if (!feature?.geometry) {\n return DEFAULT_CENTER\n }\n\n const geometry = feature.geometry\n let coordinates: GeoJSON.Position | GeoJSON.Position[] | GeoJSON.Position[][] = [] // Adjusted type\n\n switch (geometry.type) {\n case 'Polygon':\n coordinates = geometry.coordinates[0] // Get first ring (ignore holes)\n break\n case 'LineString':\n coordinates = geometry.coordinates\n break\n case 'Point':\n coordinates = [geometry.coordinates] // Wrap single point for uniform handling\n break\n default:\n return DEFAULT_CENTER\n }\n\n // Flatten coordinates for bounds calculation if needed (e.g., MultiPoint, MultiLineString)\n const flatCoordinates = ([] as GeoJSON.Position[]).concat(...coordinates as any)\n\n if (!Array.isArray(flatCoordinates) || flatCoordinates.length === 0 || !Array.isArray(flatCoordinates[0])) {\n // Handle single point case where flatCoordinates might be just [lon, lat]\n if (Array.isArray(flatCoordinates) && flatCoordinates.length === 2 && typeof flatCoordinates[0] === 'number') {\n const [lon, lat] = flatCoordinates as unknown as GeoJSON.Position\n // FIX #2: Return a default zoom even for a point here for centering logic,\n // but we won't use this zoom for the initial MAP_CONFIG.\n return { lat, lon, zoom: 8 } // Default zoom\n }\n console.warn('Could not determine coordinates for centering.')\n return DEFAULT_CENTER\n }\n\n // Calculate bounds\n let minLat = Infinity; let maxLat = -Infinity; let minLon = Infinity; let maxLon = -Infinity\n let sumLat = 0; let sumLon = 0; let count = 0\n\n flatCoordinates.forEach((coord: GeoJSON.Position) => {\n if (!Array.isArray(coord) || coord.length < 2) return; const [lon, lat] = coord\n minLat = Math.min(minLat, lat); maxLat = Math.max(maxLat, lat); minLon = Math.min(minLon, lon); maxLon = Math.max(maxLon, lon)\n sumLat += lat; sumLon += lon; count++\n })\n\n if (count === 0) { return DEFAULT_CENTER }\n\n const centerLat = sumLat / count; const centerLon = sumLon / count\n const latDiff = maxLat - minLat; const lonDiff = maxLon - minLon; const maxDiff = Math.max(latDiff, lonDiff)\n\n let zoom = 8 // default zoom\n if (count === 1 || maxDiff === 0) zoom = 12; else if (maxDiff < 0.1) zoom = 12; else if (maxDiff < 0.5) zoom = 10\n else if (maxDiff < 1) zoom = 9; else if (maxDiff < 2) zoom = 8; else if (maxDiff < 5) zoom = 7; else zoom = 6\n\n return { lat: centerLat, lon: centerLon, zoom }\n}\n\n// Helper function to determine initial draw type based on settings\nconst getInitialDrawType = (field: IFormField): EMapShape => {\n const settings = (field as IGeometryField).settings ?? {}\n const drawEnabled = settings.drawEnabled !== false\n const drawPointEnabled = settings.drawPointEnabled === true && drawEnabled\n const drawPathEnabled = settings.drawPathEnabled === true && drawEnabled\n const drawPolygonEnabled = settings.drawPolygonEnabled === true && drawEnabled\n\n if (drawPointEnabled) return EMapShape.point\n if (drawPathEnabled) return EMapShape.linestring\n if (drawPolygonEnabled) return EMapShape.polygon\n return EMapShape.point // Defaulting to Point if none specified\n}\n\nexport const GeometryInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const [map, setMapState] = useState<IMap | undefined>(undefined)\n const [error, setError] = useState<string | undefined>(undefined)\n const [showGeoJSONInput] = useState<boolean>(false)\n\n const [geojson, setGeojson] = useState<Feature | undefined>(() => {\n if (value && typeof value === 'object' && 'type' in value && value.type !== 'FeatureCollection' && value.type !== 'Feature') {\n return { type: 'Feature', properties: {}, geometry: value as Geometry }\n }\n if (value && typeof value === 'object' && 'type' in value && value.type === 'Feature') { return value as Feature }\n return undefined\n })\n\n const geomField = field as IGeometryField\n\n const drawEnabled = geomField.settings?.drawEnabled !== false\n const drawPointEnabled = geomField.settings?.drawPointEnabled === true && drawEnabled\n const drawPathEnabled = geomField.settings?.drawPathEnabled === true && drawEnabled\n const drawPolygonEnabled = geomField.settings?.drawPolygonEnabled === true && drawEnabled\n const showCoordinateInput = geomField.settings?.showCoordinateInput !== false\n\n const [currentDrawType, setCurrentDrawType] = useState<EMapShape>(() => getInitialDrawType(field))\n const [isDrawing, setIsDrawing] = useState<boolean>(!geojson && drawEnabled)\n\n const initialMapCenter = calculateCenterFromGeoJSON(geojson, geomField.settings?.defaultCenter)\n\n const MAP_CONFIG: IStyleableMapProps = {\n baseLayerKey: 'hybrid',\n height: geomField.settings?.height ?? '500px',\n width: '100%',\n style: { /* ... styles ... */ },\n center: { lat: initialMapCenter.lat, lon: initialMapCenter.lon },\n zoom: initialMapCenter.zoom,\n tools: {\n draw: {\n shape: currentDrawType,\n enabled: drawEnabled && (drawPolygonEnabled || drawPathEnabled || drawPointEnabled)\n }\n }\n }\n\n // ---- Coordinate Handling ----\n const updateCoordinatesFromFeature = useCallback((feature: Feature | undefined): void => {\n if (!feature?.geometry) { setCoordinates(''); return }\n const geometry = feature.geometry; let newCoords = ''\n try {\n if (geometry.type === 'Polygon') { newCoords = (geometry.coordinates[0] ?? []).map(pos => `${pos[1]}, ${pos[0]}`).join('\\n') } else if (geometry.type === 'LineString') { newCoords = (geometry.coordinates ?? []).map(pos => `${pos[1]}, ${pos[0]}`).join('\\n') } else if (geometry.type === 'Point') { const coords = geometry.coordinates ?? [NaN, NaN]; if (!isNaN(coords[0]) && !isNaN(coords[1])) { newCoords = `${coords[1]}, ${coords[0]}` } else { newCoords = '' } }\n } catch (e) { console.error('Err format coords:', e); newCoords = '' }\n setCoordinates(newCoords)\n // setShowShapeTypeButtons(shouldShowShapeButtons(newCoords)); // Let coordinate effect handle this\n }, [])\n\n const [coordinates, setCoordinates] = useState<string>(() => {\n if (!geojson?.geometry) return ''; let initCoords = ''; const geometry = geojson.geometry\n try {\n if (geometry.type === 'Polygon') { initCoords = (geometry.coordinates[0] ?? []).map(pos => `${pos[1]}, ${pos[0]}`).join('\\n') } else if (geometry.type === 'LineString') { initCoords = (geometry.coordinates ?? []).map(pos => `${pos[1]}, ${pos[0]}`).join('\\n') } else if (geometry.type === 'Point') { const coords = geometry.coordinates ?? [NaN, NaN]; if (!isNaN(coords[0]) && !isNaN(coords[1])) { initCoords = `${coords[1]}, ${coords[0]}` } }\n } catch (e) { console.error('Err init coords:', e); initCoords = '' } return initCoords\n })\n\n useEffect(() => {\n updateCoordinatesFromFeature(geojson)\n }, [geojson, updateCoordinatesFromFeature])\n\n const createGeoJSONFromCoordinates = (coordString: string, forceType?: EMapShape): Feature | undefined => { /* ... same as last working version ... */\n if (!coordString.trim()) { setError(undefined); return undefined }\n try {\n const points = coordString.split('\\n').map(l => l.trim()).filter(l => l).map(l => { const [lat, lon] = l.split(',').map(c => parseFloat(c.trim())); if (isNaN(lat) || isNaN(lon) || lat < -90 || lat > 90 || lon < -180 || lon > 180) throw Error(`Invalid: ${lat}, ${lon}`); return [lon, lat] })\n if (points.length === 0) throw Error('No valid coords')\n if (points.length === 1 && drawPointEnabled) return { type: 'Feature', properties: {}, geometry: { type: 'Point', coordinates: points[0] } }\n if ((forceType === EMapShape.polygon || (!forceType && points.length >= 3)) && drawPolygonEnabled) { if (points.length > 0 && JSON.stringify(points[0]) !== JSON.stringify(points[points.length - 1])) points.push(points[0]); if (points.length < 4) throw Error('Min 3 unique coords for polygon'); return { type: 'Feature', properties: {}, geometry: { type: 'Polygon', coordinates: [points] } } }\n if ((forceType === EMapShape.linestring || (!forceType && points.length >= 2)) && drawPathEnabled) { if (points.length < 2) throw Error('Min 2 coords for path'); return { type: 'Feature', properties: {}, geometry: { type: 'LineString', coordinates: points } } }\n setError('Cannot create shape. Check tools/coords.'); return undefined\n } catch (e: any) { setError(`Invalid coords/count: ${e.message}. Use \"lat, lon\"`); return undefined }\n }\n\n const shouldShowShapeButtons = (coords: string): boolean => { /* ... same as last working version ... */\n const validLinesCount = coords.trim().split('\\n').filter(l => l.trim()).length\n return (drawPolygonEnabled || drawPathEnabled) && validLinesCount >= 2\n }\n const [showShapeTypeButtons, setShowShapeTypeButtons] = useState<boolean>(() => shouldShowShapeButtons(coordinates))\n useEffect(() => { setShowShapeTypeButtons(shouldShowShapeButtons(coordinates)) }, [coordinates, drawPolygonEnabled, drawPathEnabled]) // Added effect to update buttons\n\n // ---- Map Event Handlers & State Updates ----\n useEffect(() => { // Map event listeners\n if (!map) return\n const drawCompleteListener = (e: IMapDrawEvent): void => { /* ... same ... */ const f = e.data?.geojson?.features?.[0]; if (f) { setGeojson(f); setIsDrawing(false); map.disableDraw(currentDrawType) } }\n const drawUpdateListener = (e: IMapDrawEvent): void => { /* ... same ... */ const f = e.data?.geojson?.features?.[0]; if (f) { setGeojson(f) } }\n map.onDrawComplete(drawCompleteListener); map.onDrawUpdate(drawUpdateListener)\n // Cleanup omitted\n }, [map, currentDrawType])\n\n useEffect(() => { // Parent onChange trigger\n onChange(geojson?.geometry ?? undefined)\n }, [geojson])\n\n useEffect(() => { // Map drawing/state sync effect\n if (!map) return\n const correctDrawType = getInitialDrawType(field)\n if (currentDrawType !== correctDrawType) {\n setCurrentDrawType(correctDrawType)\n }\n\n if (geojson?.geometry) {\n map.setDrawGeojson({ type: 'FeatureCollection', features: [geojson] })\n map.disableDraw(correctDrawType) // Ensure correct tool is disabled\n setIsDrawing(false)\n } else {\n map.setDrawGeojson({ type: 'FeatureCollection', features: [] })\n if (drawEnabled && (drawPointEnabled || drawPathEnabled || drawPolygonEnabled)) {\n map.enableDraw(correctDrawType) // Enable the correct initial tool\n setIsDrawing(true)\n } else {\n map.disableDraw(correctDrawType) // Ensure drawing is off if not enabled\n setIsDrawing(false)\n }\n }\n }, [map, geojson, drawEnabled, drawPointEnabled, drawPathEnabled, drawPolygonEnabled, currentDrawType, field])\n\n // ---- Helper Functions ----\n const hasValidShape = (feature?: Feature): boolean => !!feature?.geometry\n\n const clearShape = (): void => { /* ... same ... */\n setGeojson(undefined); setCoordinates(''); setShowShapeTypeButtons(false)\n if (map && drawEnabled) { map.setDrawGeojson({ type: 'FeatureCollection', features: [] }); const iType = getInitialDrawType(field); setCurrentDrawType(iType); map.enableDraw(iType); setIsDrawing(true) }\n }\n\n const handleDrawTypeChange = (shapeType: EMapShape): void => { /* ... same as minimal fix version ... */\n if (map && drawEnabled) {\n const isAllowed = (shapeType === EMapShape.point && drawPointEnabled) || (shapeType === EMapShape.linestring && drawPathEnabled) || (shapeType === EMapShape.polygon && drawPolygonEnabled)\n if (isAllowed && shapeType !== currentDrawType) { map.disableDraw(currentDrawType); setCurrentDrawType(shapeType); map.enableDraw(shapeType); setIsDrawing(true) }\n }\n }\n\n const handleCoordinatesChange = (e: string | undefined): void => { /* ... same as minimal fix version ... */\n const newCoords = e ?? ''; setCoordinates(newCoords)\n const pointsCount = newCoords.trim().split('\\n').filter(l => l.trim()).length\n let intendedType: EMapShape | undefined\n if (pointsCount === 1 && drawPointEnabled) intendedType = EMapShape.point\n else if (pointsCount >= 3 && drawPolygonEnabled) intendedType = EMapShape.polygon\n else if (pointsCount >= 2 && drawPathEnabled) intendedType = EMapShape.linestring\n const newFeature = createGeoJSONFromCoordinates(newCoords, intendedType)\n if (newFeature) {\n setGeojson(newFeature); setError(undefined)\n if (map) { map.setDrawGeojson({ type: 'FeatureCollection', features: [] }); map.setDrawGeojson({ type: 'FeatureCollection', features: [newFeature] }); map.disableDraw(currentDrawType); setIsDrawing(false) }\n // setShowShapeTypeButtons(shouldShowShapeButtons(newCoords)); // Let effect handle this\n } else {\n if (!newCoords.trim()) { setGeojson(undefined); if (map && drawEnabled) { map.setDrawGeojson({ type: 'FeatureCollection', features: [] }); map.enableDraw(currentDrawType); setIsDrawing(true) } setShowShapeTypeButtons(false) } else if (!error) { setError('Cannot form valid shape with coords/tools.') }\n }\n }\n\n const applyShapeType = (shapeType: EMapShape): void => { /* ... same ... */\n const newFeature = createGeoJSONFromCoordinates(coordinates, shapeType)\n if (newFeature) { setGeojson(newFeature); setError(undefined) } else if (!error) { setError(`Could not create ${shapeType === EMapShape.polygon ? 'poly' : 'path'}.`) }\n }\n\n // ---- JSX Return (Reverting Button ClassNames and removing disabled) ----\n return (\n <div>\n <FieldLabel {...field} />\n <div className=\"relative\">\n {drawEnabled && (drawPolygonEnabled || drawPathEnabled || drawPointEnabled) && (\n <div className=\"absolute z-20 top-4 right-4 flex flex-col gap-2\">\n {/* Point Button - Render only if allowed */}\n {drawPointEnabled && (\n <div className=\"tooltip-container relative group\">\n <Button\n onClick={() => { handleDrawTypeChange(EMapShape.point) }}\n // Reverted className logic\n className={`p-2 rounded-lg shadow-lg ${\n currentDrawType === EMapShape.point && isDrawing\n ? 'bg-white hover:bg-gray-50 ring-2 ring-yellow-200 shadow-[0_0_10px_rgba(253,224,71,0.5)]'\n : 'bg-gray-100 hover:bg-gray-50'\n } text-black w-10 h-10 flex items-center justify-center`}\n aria-label=\"Draw Point\"\n >\n <DrawingPinFilledIcon className=\"w-5 h-5\" />\n <span className=\"tooltip absolute right-full mr-2 px-2 py-1 bg-gray-800 text-white text-sm rounded whitespace-nowrap opacity-0 group-hover:opacity-100 pointer-events-none\">\n Draw Point\n </span>\n </Button>\n </div>\n )}\n {/* Path Button - Render only if allowed */}\n {drawPathEnabled && (\n <div className=\"tooltip-container relative group\">\n <Button\n onClick={() => { handleDrawTypeChange(EMapShape.linestring) }}\n // Reverted className logic\n className={`p-2 rounded-lg shadow-lg ${\n currentDrawType === EMapShape.linestring && isDrawing\n ? 'bg-white hover:bg-gray-50 ring-2 ring-yellow-200 shadow-[0_0_10px_rgba(253,224,71,0.5)]'\n : 'bg-gray-100 hover:bg-gray-50'\n } text-black w-10 h-10 flex items-center justify-center`}\n aria-label=\"Draw Path\"\n >\n <BorderSolidIcon className=\"w-5 h-5\" />\n <span className=\"tooltip absolute right-full mr-2 px-2 py-1 bg-gray-800 text-white text-sm rounded whitespace-nowrap opacity-0 group-hover:opacity-100 pointer-events-none\">\n Draw Path\n </span>\n </Button>\n </div>\n )}\n {/* Polygon Button - Render only if allowed */}\n {drawPolygonEnabled && (\n <div className=\"tooltip-container relative group\">\n <Button\n onClick={() => { handleDrawTypeChange(EMapShape.polygon) }}\n // Reverted className logic\n className={`p-2 rounded-lg shadow-lg ${\n currentDrawType === EMapShape.polygon && isDrawing\n ? 'bg-white hover:bg-gray-50 ring-2 ring-yellow-200 shadow-[0_0_10px_rgba(253,224,71,0.5)]'\n : 'bg-gray-100 hover:bg-gray-50'\n } text-black w-10 h-10 flex items-center justify-center`}\n aria-label=\"Draw Polygon\"\n >\n <SquareIcon className=\"w-5 h-5 rotate-45\" />\n <span className=\"tooltip absolute right-full mr-2 px-2 py-1 bg-gray-800 text-white text-sm rounded whitespace-nowrap opacity-0 group-hover:opacity-100 pointer-events-none\">\n Draw Polygon\n </span>\n </Button>\n </div>\n )}\n {/* Clear Button - Render if shape exists */}\n {hasValidShape(geojson) && (\n <div className=\"tooltip-container relative group\">\n <Button\n onClick={clearShape}\n className=\"p-2 rounded-lg shadow-lg bg-red-500 hover:bg-red-600 text-white w-10 h-10 flex items-center justify-center\"\n aria-label=\"Clear Shape\"\n >\n <TrashIcon className=\"w-5 h-5\" />\n <span className=\"tooltip absolute right-full mr-2 px-2 py-1 bg-gray-800 text-white text-sm rounded whitespace-nowrap opacity-0 group-hover:opacity-100 pointer-events-none\">\n Clear Shape\n </span>\n </Button>\n </div>\n )}\n </div>\n )}\n\n {/* Map Component */}\n <Map {...MAP_CONFIG} setState={setMapState} />\n\n {/* Coordinate Input Section */}\n {showCoordinateInput && (\n <div className=\"mt-4\">\n <div className=\"flex justify-between items-center mb-2 flex-wrap gap-y-2\">\n <span className=\"text-sm\"> {/* ... label ... */} </span>\n {showShapeTypeButtons && (drawPathEnabled || drawPolygonEnabled) && (\n <div className=\"flex gap-2\"> {/* ... Create Path/Polygon buttons ... */}\n {drawPathEnabled && <Button onClick={() => { applyShapeType(EMapShape.linestring) }} className=\"px-3 py-1 bg-white hover:bg-gray-50 text-black rounded-lg shadow-sm border border-gray-200 text-xs flex items-center gap-1\"><BorderSolidIcon className=\"w-3 h-3\" />Create Path</Button>}\n {drawPolygonEnabled && <Button onClick={() => { applyShapeType(EMapShape.polygon) }} className=\"px-3 py-1 bg-white hover:bg-gray-50 text-black rounded-lg shadow-sm border border-gray-200 text-xs flex items-center gap-1\"><SquareIcon className=\"w-3 h-3 rotate-45\" />Create Polygon</Button>}\n </div>\n )}\n </div>\n <TextArea error={error} className='min-h-[100px] bg-slate-50 rounded-lg shadow-inner font-mono text-sm' id={`${field.id}-coordinates`} testId={`${field.id}-coordinates`} value={coordinates} onChange={handleCoordinatesChange} placeholder={'...'} aria-label=\"Coordinates Input\" />\n {error && <p className=\"text-red-600 text-xs mt-1\">{error}</p>}\n </div>\n )}\n\n {/* Debug Output (Optional) */}\n {showGeoJSONInput && <TextArea error={error} className='...' id={field.id + '-debug'} testId={field.id + '-debug'} label={<FieldLabel {...field} label=\"Debug GeoJSON Feature State\"/>} value={JSON.stringify(value, null, 2)} />}\n </div>\n </div>\n )\n}\n\nexport default GeometryInput\n"],"names":["React","Map"],"mappings":"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"}
@@ -9,8 +9,11 @@ var GeometryInput = lazy(function () { return __awaiter(void 0, void 0, void 0,
9
9
  }
10
10
  }); }); });
11
11
  var GeoJSONInputLoader = function (props) {
12
+ var _a, _b;
13
+ var geomField = props.field;
14
+ var height = (_b = (_a = geomField.settings) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : '500px';
12
15
  return (React__default.createElement(React__default.Fragment, null,
13
- React__default.createElement(Suspense, { fallback: React__default.createElement("div", { className: 'h-[500px]' },
16
+ React__default.createElement(Suspense, { fallback: React__default.createElement("div", { className: "h-[".concat(height, "]") },
14
17
  React__default.createElement(Loader, { className: 'pt-20' })) },
15
18
  React__default.createElement(GeometryInput, __assign({}, props)))));
16
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"GeometryInputLoader.js","sources":["../../../../../../src/Form/Components/Inputs/GeometryInputLoader.tsx"],"sourcesContent":["import { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { Loader } from '@axdspub/axiom-ui-utilities'\nimport React, { lazy, Suspense, type ReactElement } from 'react'\n\nconst GeometryInput = lazy(async () => await import('./Geometry'))\nconst GeoJSONInputLoader = (props: IFieldInputProps): ReactElement => {\n return (\n <>\n <Suspense fallback={<div className='h-[500px]'><Loader className='pt-20' /></div>}>\n <GeometryInput {...props} />\n </Suspense>\n </>\n )\n}\n\nexport default GeoJSONInputLoader\n"],"names":["React"],"mappings":";;;;AAIA,IAAM,aAAa,GAAG,IAAI,CAAC,YAAA,EAAA,OAAA,SAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,OAAA,WAAA,CAAA,IAAA,EAAA,UAAA,EAAA,EAAA;;AAAY,QAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,OAAO,eAAY,CAAC,CAAA;AAA1B,QAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAA,SAA0B,CAAA;;AAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAC;AAC5D,IAAA,kBAAkB,GAAG,UAAC,KAAuB,EAAA;AACjD,IAAA,QACIA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;AACE,QAAAA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAC,EAAA,QAAQ,EAAEA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,WAAW,EAAA;AAAC,gBAAAA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAC,EAAA,SAAS,EAAC,OAAO,GAAG,CAAM,EAAA;AAC7E,YAAAA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,EAAI,CACrB,CACV;AAET;;;;"}
1
+ {"version":3,"file":"GeometryInputLoader.js","sources":["../../../../../../src/Form/Components/Inputs/GeometryInputLoader.tsx"],"sourcesContent":["import { type IFieldInputProps, type IGeometryField } from '@/Form/Creator/FormCreatorTypes'\nimport { Loader } from '@axdspub/axiom-ui-utilities'\nimport React, { lazy, Suspense, type ReactElement } from 'react'\n\nconst GeometryInput = lazy(async () => await import('./Geometry'))\nconst GeoJSONInputLoader = (props: IFieldInputProps): ReactElement => {\n const geomField = props.field as IGeometryField\n const height = geomField.settings?.height ?? '500px'\n\n return (\n <>\n <Suspense fallback={<div className={`h-[${height}]`}><Loader className='pt-20' /></div>}>\n <GeometryInput {...props} />\n </Suspense>\n </>\n )\n}\n\nexport default GeoJSONInputLoader\n"],"names":["React"],"mappings":";;;;AAIA,IAAM,aAAa,GAAG,IAAI,CAAC,YAAA,EAAA,OAAA,SAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,OAAA,WAAA,CAAA,IAAA,EAAA,UAAA,EAAA,EAAA;;AAAY,QAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,OAAO,eAAY,CAAC,CAAA;AAA1B,QAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAA,SAA0B,CAAA;;AAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAC;AAC5D,IAAA,kBAAkB,GAAG,UAAC,KAAuB,EAAA;;AACjD,IAAA,IAAM,SAAS,GAAG,KAAK,CAAC,KAAuB;IAC/C,IAAM,MAAM,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,SAAS,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,OAAO;AAEpD,IAAA,QACIA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;QACEA,cAAC,CAAA,aAAA,CAAA,QAAQ,IAAC,QAAQ,EAAEA,sCAAK,SAAS,EAAE,KAAM,CAAA,MAAA,CAAA,MAAM,EAAG,GAAA,CAAA,EAAA;AAAE,gBAAAA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAC,EAAA,SAAS,EAAC,OAAO,GAAG,CAAM,EAAA;AACnF,YAAAA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,EAAI,CACrB,CACV;AAET;;;;"}
@@ -11,13 +11,31 @@ import { UpdateIcon, ExclamationTriangleIcon } from '../../../../node_modules/@r
11
11
  import FieldLabel from '../FieldLabel.js';
12
12
  import { CopyButton } from '../../Manage/CopyableJSONOutput.js';
13
13
 
14
+ var getFormatted = function (val, fmt) {
15
+ if (fmt === 'json') {
16
+ var jsonObject = JSON.parse(val);
17
+ return JSON.stringify(jsonObject, null, 2);
18
+ }
19
+ else {
20
+ var yamlObject = jsYaml.load(val);
21
+ return jsYaml.dump(yamlObject);
22
+ }
23
+ };
24
+ var tryGetFormatted = function (val, fmt) {
25
+ try {
26
+ return getFormatted(val, fmt);
27
+ }
28
+ catch (error) {
29
+ return val;
30
+ }
31
+ };
14
32
  var JsonYamlEditor = function (_a) {
15
33
  var field = _a.field, onChange = _a.onChange, value = _a.value;
16
34
  var _b = useState('json'), format = _b[0], setFormat = _b[1];
17
35
  var _c = useState(typeof value === 'object'
18
36
  ? JSON.stringify(value, null, 2)
19
37
  : (value !== undefined && value !== null
20
- ? String(value)
38
+ ? tryGetFormatted(String(value), format)
21
39
  : '')), workingValue = _c[0], setWorkingValue = _c[1];
22
40
  var _d = useState(null), error = _d[0], setError = _d[1];
23
41
  // Validate JSON and display error
@@ -61,15 +79,7 @@ var JsonYamlEditor = function (_a) {
61
79
  // Format JSON or YAML
62
80
  var handleFormat = function () {
63
81
  try {
64
- if (format === 'json') {
65
- var jsonObject = JSON.parse(workingValue);
66
- setWorkingValue(JSON.stringify(jsonObject, null, 2));
67
- validateJson(workingValue);
68
- }
69
- else {
70
- var yamlObject = jsYaml.load(workingValue);
71
- setWorkingValue(jsYaml.dump(yamlObject));
72
- }
82
+ setWorkingValue(getFormatted(workingValue, format));
73
83
  setError(null);
74
84
  }
75
85
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"JSON.js","sources":["../../../../../../src/Form/Components/Inputs/JSON.tsx"],"sourcesContent":["import React, { type ReactElement, useState } from 'react'\nimport CodeMirror from '@uiw/react-codemirror'\nimport { json } from '@codemirror/lang-json'\nimport { yaml } from '@codemirror/lang-yaml'\nimport { autocompletion } from '@codemirror/autocomplete'\nimport { EditorView } from '@codemirror/view'\nimport yamlParser from 'js-yaml'\nimport { Button } from '@axdspub/axiom-ui-utilities'\nimport { ExclamationTriangleIcon, UpdateIcon } from '@radix-ui/react-icons'\nimport { type IFieldInputProps } from '@/library'\nimport FieldLabel from '@/Form/Components/FieldLabel'\nimport { CopyButton } from '@/Form/Manage/CopyableJSONOutput'\n\nconst JsonYamlEditor = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const [format, setFormat] = useState<'json' | 'yaml'>('json')\n const [workingValue, setWorkingValue] = useState<string>(typeof value === 'object'\n ? JSON.stringify(value, null, 2)\n : (value !== undefined && value !== null\n ? String(value)\n : ''\n )\n )\n const [error, setError] = useState<string | null>(null)\n\n // Validate JSON and display error\n const validateJson = (val: string): void => {\n try {\n if (val.trim() !== '') {\n JSON.parse(val)\n }\n setError(null) // Clear error if valid\n } catch (err) {\n setError('Invalid JSON: ' + (err as Error).message)\n }\n }\n\n const validateYaml = (val: string): void => {\n try {\n if (val.trim() !== '') {\n yamlParser.load(val)\n }\n setError(null)\n } catch (err) {\n setError('Invalid YAML: ' + (err as Error).message)\n }\n }\n\n // Handle content change\n const handleChange = (val: string): void => {\n setWorkingValue(val)\n if (format === 'json') {\n validateJson(val)\n onChange(val)\n } else if (format === 'yaml') {\n validateYaml(val)\n const ob = yamlParser.load(val)\n const json = JSON.stringify(ob, null, 2)\n validateJson(json)\n onChange(json)\n }\n }\n\n // Format JSON or YAML\n const handleFormat = (): void => {\n try {\n if (format === 'json') {\n const jsonObject = JSON.parse(workingValue)\n setWorkingValue(JSON.stringify(jsonObject, null, 2))\n validateJson(workingValue)\n } else {\n const yamlObject = yamlParser.load(workingValue)\n setWorkingValue(yamlParser.dump(yamlObject))\n }\n setError(null)\n } catch (error) {\n setError('Formatting failed: Invalid data.')\n }\n }\n\n const updateFormat = (newFormat: 'json' | 'yaml'): void => {\n try {\n if (newFormat === 'yaml') {\n if (workingValue.trim() !== '') {\n const jsonObject = JSON.parse(workingValue)\n setWorkingValue(yamlParser.dump(jsonObject))\n }\n setFormat('yaml')\n setError(null)\n } else {\n if (workingValue.trim() !== '') {\n const yamlObject = yamlParser.load(workingValue)\n const jsonString = JSON.stringify(yamlObject, null, 2)\n setWorkingValue(jsonString)\n validateJson(jsonString)\n }\n setFormat('json')\n }\n } catch (error) {\n setError('Format conversion failed: Invalid data.')\n }\n }\n\n const btnClass = 'border-0 rounded-none'\n\n return (\n <div className='flex flex-col'>\n <FieldLabel {...field} />\n <div className='flex flex-row'>\n <Button size='xs' disabled={error !== null} className={`${btnClass} ${format !== 'json' ? 'font-normal' : 'text-white bg-[#282c34]'}`} onClick={() => { updateFormat('json') }}>JSON</Button>\n <Button size='xs' disabled={error !== null} className={`${btnClass} ${format !== 'yaml' ? 'font-normal' : 'text-white bg-[#282c34]'}`} onClick={() => { updateFormat('yaml') }}>YAML</Button>\n <div className=\"ml-auto\">\n <Button size='xs' className={btnClass} onClick={() => { handleFormat() }}>Format <UpdateIcon className='inline w-3 h-3 -mt-1 ml-1' /></Button>\n </div>\n </div>\n <div className=' relative flex-grow'>\n <span className='absolute right-6 bottom-4 pointer-events-auto z-50'>\n <CopyButton string={\n error === null && workingValue !== ''\n ? format === 'json'\n ? JSON.stringify(JSON.parse(workingValue), null, 2)\n : yamlParser.dump(workingValue)\n : workingValue\n } className='white z-50' />\n </span>\n {error && <p className=\"text-red-500 text-xs mb-2 absolute bg-white bg-opacity-90 max-w-[50%] p-2 right-0 z-50\"><ExclamationTriangleIcon className='inline w-3 h-3 -mt-1 mr-1' /> {error}</p>}\n <CodeMirror\n value={workingValue}\n className='h-full'\n height='550px'\n extensions={[\n format === 'json' ? json() : yaml(),\n autocompletion(),\n EditorView.lineWrapping\n ]}\n onChange={handleChange}\n theme=\"dark\"\n />\n </div>\n\n </div>\n )\n}\n\nexport default JsonYamlEditor\n"],"names":["yamlParser","React","CodeMirror"],"mappings":"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"}
1
+ {"version":3,"file":"JSON.js","sources":["../../../../../../src/Form/Components/Inputs/JSON.tsx"],"sourcesContent":["import React, { type ReactElement, useState } from 'react'\nimport CodeMirror from '@uiw/react-codemirror'\nimport { json } from '@codemirror/lang-json'\nimport { yaml } from '@codemirror/lang-yaml'\nimport { autocompletion } from '@codemirror/autocomplete'\nimport { EditorView } from '@codemirror/view'\nimport yamlParser from 'js-yaml'\nimport { Button } from '@axdspub/axiom-ui-utilities'\nimport { ExclamationTriangleIcon, UpdateIcon } from '@radix-ui/react-icons'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport FieldLabel from '@/Form/Components/FieldLabel'\nimport { CopyButton } from '@/Form/Manage/CopyableJSONOutput'\n\nconst getFormatted = (val: string, fmt: string): string => {\n if (fmt === 'json') {\n const jsonObject = JSON.parse(val)\n return JSON.stringify(jsonObject, null, 2)\n } else {\n const yamlObject = yamlParser.load(val)\n return yamlParser.dump(yamlObject)\n }\n}\n\nconst tryGetFormatted = (val: string, fmt: string): string => {\n try {\n return getFormatted(val, fmt)\n } catch (error) {\n return val\n }\n}\n\nconst JsonYamlEditor = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const [format, setFormat] = useState<'json' | 'yaml'>('json')\n const [workingValue, setWorkingValue] = useState<string>(typeof value === 'object'\n ? JSON.stringify(value, null, 2)\n : (value !== undefined && value !== null\n ? tryGetFormatted(String(value), format)\n : ''\n )\n )\n const [error, setError] = useState<string | null>(null)\n\n // Validate JSON and display error\n const validateJson = (val: string): void => {\n try {\n if (val.trim() !== '') {\n JSON.parse(val)\n }\n setError(null) // Clear error if valid\n } catch (err) {\n setError('Invalid JSON: ' + (err as Error).message)\n }\n }\n\n const validateYaml = (val: string): void => {\n try {\n if (val.trim() !== '') {\n yamlParser.load(val)\n }\n setError(null)\n } catch (err) {\n setError('Invalid YAML: ' + (err as Error).message)\n }\n }\n\n // Handle content change\n const handleChange = (val: string): void => {\n setWorkingValue(val)\n if (format === 'json') {\n validateJson(val)\n onChange(val)\n } else if (format === 'yaml') {\n validateYaml(val)\n const ob = yamlParser.load(val)\n const json = JSON.stringify(ob, null, 2)\n validateJson(json)\n onChange(json)\n }\n }\n\n // Format JSON or YAML\n const handleFormat = (): void => {\n try {\n setWorkingValue(getFormatted(workingValue, format))\n setError(null)\n } catch (error) {\n setError('Formatting failed: Invalid data.')\n }\n }\n\n const updateFormat = (newFormat: 'json' | 'yaml'): void => {\n try {\n if (newFormat === 'yaml') {\n if (workingValue.trim() !== '') {\n const jsonObject = JSON.parse(workingValue)\n setWorkingValue(yamlParser.dump(jsonObject))\n }\n setFormat('yaml')\n setError(null)\n } else {\n if (workingValue.trim() !== '') {\n const yamlObject = yamlParser.load(workingValue)\n const jsonString = JSON.stringify(yamlObject, null, 2)\n setWorkingValue(jsonString)\n validateJson(jsonString)\n }\n setFormat('json')\n }\n } catch (error) {\n setError('Format conversion failed: Invalid data.')\n }\n }\n\n const btnClass = 'border-0 rounded-none'\n\n return (\n <div className='flex flex-col'>\n <FieldLabel {...field} />\n <div className='flex flex-row'>\n <Button size='xs' disabled={error !== null} className={`${btnClass} ${format !== 'json' ? 'font-normal' : 'text-white bg-[#282c34]'}`} onClick={() => { updateFormat('json') }}>JSON</Button>\n <Button size='xs' disabled={error !== null} className={`${btnClass} ${format !== 'yaml' ? 'font-normal' : 'text-white bg-[#282c34]'}`} onClick={() => { updateFormat('yaml') }}>YAML</Button>\n <div className=\"ml-auto\">\n <Button size='xs' className={btnClass} onClick={() => { handleFormat() }}>Format <UpdateIcon className='inline w-3 h-3 -mt-1 ml-1' /></Button>\n </div>\n </div>\n <div className=' relative flex-grow'>\n <span className='absolute right-6 bottom-4 pointer-events-auto z-50'>\n <CopyButton string={\n error === null && workingValue !== ''\n ? format === 'json'\n ? JSON.stringify(JSON.parse(workingValue), null, 2)\n : yamlParser.dump(workingValue)\n : workingValue\n } className='white z-50' />\n </span>\n {error && <p className=\"text-red-500 text-xs mb-2 absolute bg-white bg-opacity-90 max-w-[50%] p-2 right-0 z-50\"><ExclamationTriangleIcon className='inline w-3 h-3 -mt-1 mr-1' /> {error}</p>}\n <CodeMirror\n value={workingValue}\n className='h-full'\n height='550px'\n extensions={[\n format === 'json' ? json() : yaml(),\n autocompletion(),\n EditorView.lineWrapping\n ]}\n onChange={handleChange}\n theme=\"dark\"\n />\n </div>\n\n </div>\n )\n}\n\nexport default JsonYamlEditor\n"],"names":["yamlParser","React","CodeMirror"],"mappings":"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"}
@@ -15,7 +15,7 @@ var ObjectInput = function (_a) {
15
15
  ? React__default.createElement(FieldLabel, __assign({}, field))
16
16
  : null,
17
17
  React__default.createElement("div", { className: "p-4 bg-slate-100 ".concat(cl) }, field.fields.map(function (childField) {
18
- var _a;
18
+ var _a, _b;
19
19
  var key = ((_a = field.path) !== null && _a !== void 0 ? _a : [field.id]).concat(childField.id).join('.');
20
20
  return (React__default.createElement(FieldCreator, { onChange: function (e) {
21
21
  if (childField.type === 'object' && childField.skip_path === true) {
@@ -28,7 +28,12 @@ var ObjectInput = function (_a) {
28
28
  }, className: index$1.makeClassName({
29
29
  defaultClassName: 'p-0',
30
30
  className: fc_1
31
- }), value: initialValue[childField.id], field: childField, key: key }));
31
+ }),
32
+ // default to null here so that FormCreator doesn't go out and look for the value again
33
+ // todo: update this so that it's clearer. difference between undefined and null too small
34
+ value: (_b = (childField.type === 'object' && childField.skip_path === true
35
+ ? initialValue
36
+ : initialValue[childField.id])) !== null && _b !== void 0 ? _b : null, field: childField, key: key }));
32
37
  }))));
33
38
  }
34
39
  return React__default.createElement("p", null,
@@ -1 +1 @@
1
- {"version":3,"file":"Object.js","sources":["../../../../../../src/Form/Components/Inputs/Object.tsx"],"sourcesContent":["import FieldCreator from '@/Form/Components/FieldCreator'\nimport FieldLabel from '@/Form/Components/FieldLabel'\nimport { type ICompositeValueType, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { utils } from '@axdspub/axiom-ui-utilities'\nimport React, { type ReactElement } from 'react'\n\nconst ObjectInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const initialValue = (typeof value === 'object' ? value ?? {} : {}) as ICompositeValueType\n if (field.type === 'object' && field.fields !== undefined) {\n const cl = `${field.layout === 'horizontal' ? `flex flex-row gap-4 ${field.label !== undefined ? 'px-0' : ''}` : 'flex flex-col gap-4'}`\n const fc = field.layout === 'horizontal' ? 'flex-1' : ''\n return (\n <div>\n {\n field.label !== undefined\n ? <FieldLabel {...field} />\n : null\n }\n <div className={`p-4 bg-slate-100 ${cl}`}>\n {\n field.fields.map((childField) => {\n const key = (field.path ?? [field.id]).concat(childField.id).join('.')\n\n return (\n <FieldCreator\n onChange={(e) => {\n if (childField.type === 'object' && childField.skip_path === true) {\n onChange(e)\n } else {\n initialValue[childField.id] = e\n onChange({ ...initialValue })\n }\n }}\n className={utils.makeClassName({\n defaultClassName: 'p-0',\n className: fc\n })}\n value={initialValue[childField.id]}\n field={childField}\n key={key}\n />\n )\n })\n }\n </div>\n </div>\n )\n }\n return <p>Field config for {field.id} is missing &apos;fields&apos;</p>\n}\n\nexport default ObjectInput\n"],"names":["React","utils"],"mappings":";;;;;;AAMM,IAAA,WAAW,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;IAC3C,IAAM,YAAY,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,aAAL,KAAK,KAAA,MAAA,GAAL,KAAK,GAAI,EAAE,GAAG,EAAE,CAAwB;AAC1F,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;AACzD,QAAA,IAAM,EAAE,GAAG,EAAG,CAAA,MAAA,CAAA,KAAK,CAAC,MAAM,KAAK,YAAY,GAAG,uBAAA,CAAA,MAAA,CAAwB,KAAK,CAAC,KAAK,KAAK,SAAS,GAAG,MAAM,GAAG,EAAE,CAAE,GAAG,qBAAqB,CAAE;AACzI,QAAA,IAAM,IAAE,GAAG,KAAK,CAAC,MAAM,KAAK,YAAY,GAAG,QAAQ,GAAG,EAAE;AACxD,QAAA,QACIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;YAEE,KAAK,CAAC,KAAK,KAAK;AACd,kBAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAI;AAC3B,kBAAE,IAAI;AAEV,YAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,oBAAqB,CAAA,MAAA,CAAA,EAAE,CAAE,EAAA,EAEvC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,UAAU,EAAA;;gBAC1B,IAAM,GAAG,GAAG,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAEtE,gBAAA,QACEA,cAAC,CAAA,aAAA,CAAA,YAAY,IACX,QAAQ,EAAE,UAAC,CAAC,EAAA;AACV,wBAAA,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,EAAE;4BACjE,QAAQ,CAAC,CAAC,CAAC;;6BACN;AACL,4BAAA,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC;4BAC/B,QAAQ,CAAA,QAAA,CAAA,EAAA,EAAM,YAAY,CAAA,CAAG;;AAEjC,qBAAC,EACD,SAAS,EAAEC,OAAK,CAAC,aAAa,CAAC;AAC7B,wBAAA,gBAAgB,EAAE,KAAK;AACvB,wBAAA,SAAS,EAAE;AACZ,qBAAA,CAAC,EACF,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,EAClC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,GAAG,EAAA,CACR;AAEN,aAAC,CAAC,CAEA,CACA;;IAGV,OAAOD,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;;AAAqB,QAAA,KAAK,CAAC,EAAE;+BAAmC;AACzE;;;;"}
1
+ {"version":3,"file":"Object.js","sources":["../../../../../../src/Form/Components/Inputs/Object.tsx"],"sourcesContent":["import FieldCreator from '@/Form/Components/FieldCreator'\nimport FieldLabel from '@/Form/Components/FieldLabel'\nimport { type ICompositeValueType, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { utils } from '@axdspub/axiom-ui-utilities'\nimport React, { type ReactElement } from 'react'\n\nconst ObjectInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const initialValue = (typeof value === 'object' ? value ?? {} : {}) as ICompositeValueType\n if (field.type === 'object' && field.fields !== undefined) {\n const cl = `${field.layout === 'horizontal' ? `flex flex-row gap-4 ${field.label !== undefined ? 'px-0' : ''}` : 'flex flex-col gap-4'}`\n const fc = field.layout === 'horizontal' ? 'flex-1' : ''\n return (\n <div>\n {\n field.label !== undefined\n ? <FieldLabel {...field} />\n : null\n }\n <div className={`p-4 bg-slate-100 ${cl}`}>\n {\n field.fields.map((childField) => {\n const key = (field.path ?? [field.id]).concat(childField.id).join('.')\n\n return (\n <FieldCreator\n onChange={(e) => {\n if (childField.type === 'object' && childField.skip_path === true) {\n onChange(e)\n } else {\n initialValue[childField.id] = e\n onChange({ ...initialValue })\n }\n }}\n className={utils.makeClassName({\n defaultClassName: 'p-0',\n className: fc\n })}\n // default to null here so that FormCreator doesn't go out and look for the value again\n // todo: update this so that it's clearer. difference between undefined and null too small\n value={(\n childField.type === 'object' && childField.skip_path === true\n ? initialValue\n : initialValue[childField.id]\n ) ?? null\n }\n field={childField}\n key={key}\n />\n )\n })\n }\n </div>\n </div>\n )\n }\n return <p>Field config for {field.id} is missing &apos;fields&apos;</p>\n}\n\nexport default ObjectInput\n"],"names":["React","utils"],"mappings":";;;;;;AAMM,IAAA,WAAW,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;IAC3C,IAAM,YAAY,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,aAAL,KAAK,KAAA,MAAA,GAAL,KAAK,GAAI,EAAE,GAAG,EAAE,CAAwB;AAC1F,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;AACzD,QAAA,IAAM,EAAE,GAAG,EAAG,CAAA,MAAA,CAAA,KAAK,CAAC,MAAM,KAAK,YAAY,GAAG,uBAAA,CAAA,MAAA,CAAwB,KAAK,CAAC,KAAK,KAAK,SAAS,GAAG,MAAM,GAAG,EAAE,CAAE,GAAG,qBAAqB,CAAE;AACzI,QAAA,IAAM,IAAE,GAAG,KAAK,CAAC,MAAM,KAAK,YAAY,GAAG,QAAQ,GAAG,EAAE;AACxD,QAAA,QACIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;YAEE,KAAK,CAAC,KAAK,KAAK;AACd,kBAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAI;AAC3B,kBAAE,IAAI;AAEV,YAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,oBAAqB,CAAA,MAAA,CAAA,EAAE,CAAE,EAAA,EAEvC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,UAAU,EAAA;;gBAC1B,IAAM,GAAG,GAAG,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAEtE,gBAAA,QACEA,cAAC,CAAA,aAAA,CAAA,YAAY,IACX,QAAQ,EAAE,UAAC,CAAC,EAAA;AACV,wBAAA,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,EAAE;4BACjE,QAAQ,CAAC,CAAC,CAAC;;6BACN;AACL,4BAAA,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC;4BAC/B,QAAQ,CAAA,QAAA,CAAA,EAAA,EAAM,YAAY,CAAA,CAAG;;AAEjC,qBAAC,EACD,SAAS,EAAEC,OAAK,CAAC,aAAa,CAAC;AAC7B,wBAAA,gBAAgB,EAAE,KAAK;AACvB,wBAAA,SAAS,EAAE;qBACZ,CAAC;;;AAGF,oBAAA,KAAK,EAAE,CAAA,EAAA,IACL,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,KAAK;AACvD,0BAAE;0BACA,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAChC,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,IAAI,EAET,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,GAAG,EAAA,CACR;AAEN,aAAC,CAAC,CAEA,CACA;;IAGV,OAAOD,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;;AAAqB,QAAA,KAAK,CAAC,EAAE;+BAAmC;AACzE;;;;"}
@@ -5,7 +5,7 @@ import React__default from 'react';
5
5
 
6
6
  var StringInput = function (_a) {
7
7
  var field = _a.field, onChange = _a.onChange, value = _a.value;
8
- var initialValue = value !== undefined ? String(value) : '';
8
+ var initialValue = (value !== undefined && value !== null) ? String(value) : '';
9
9
  /* const [val, setVal] = useState<string | undefined>(initialValue !== undefined && initialValue !== null ? String(initialValue) : '')
10
10
  useDeferredValue(val)
11
11
  const newVal = useDeferredValue(val)
@@ -14,7 +14,7 @@ var StringInput = function (_a) {
14
14
  }, [newVal]) */
15
15
  return React__default.createElement("div", null,
16
16
  React__default.createElement(Input, { id: field.id, testId: field.id, value: initialValue, label: React__default.createElement(FieldLabel, __assign({}, field)), onChange: function (e) {
17
- onChange(e === '' ? undefined : e);
17
+ onChange((e === '' || e === null) ? undefined : e);
18
18
  } }));
19
19
  };
20
20
 
@@ -1 +1 @@
1
- {"version":3,"file":"String.js","sources":["../../../../../../src/Form/Components/Inputs/String.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { Input } from '@axdspub/axiom-ui-utilities'\nimport React, { type ReactElement } from 'react'\n\nconst StringInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const initialValue = value !== undefined ? String(value) : ''\n /* const [val, setVal] = useState<string | undefined>(initialValue !== undefined && initialValue !== null ? String(initialValue) : '')\n useDeferredValue(val)\n const newVal = useDeferredValue(val)\n useEffect(() => {\n onChange(newVal === '' ? undefined : newVal)\n }, [newVal]) */\n return <div>\n <Input\n id={field.id}\n testId={field.id}\n value={initialValue}\n label={<FieldLabel {...field} />} onChange={(e) => {\n onChange(e === '' ? undefined : e)\n }} /></div>\n}\n\nexport default StringInput\n"],"names":["React"],"mappings":";;;;;AAKM,IAAA,WAAW,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AAC3C,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AAC7D;;;;;AAKe;IACf,OAAOA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;AACH,QAAAA,cAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EACJ,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAEA,cAAC,CAAA,aAAA,CAAA,UAAU,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA,EAAE,QAAQ,EAAE,UAAC,CAAC,EAAA;AAC5C,gBAAA,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC;aACnC,EAAA,CAAI,CAAM;AACnB;;;;"}
1
+ {"version":3,"file":"String.js","sources":["../../../../../../src/Form/Components/Inputs/String.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { Input } from '@axdspub/axiom-ui-utilities'\nimport React, { type ReactElement } from 'react'\n\nconst StringInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const initialValue = (value !== undefined && value !== null) ? String(value) : ''\n /* const [val, setVal] = useState<string | undefined>(initialValue !== undefined && initialValue !== null ? String(initialValue) : '')\n useDeferredValue(val)\n const newVal = useDeferredValue(val)\n useEffect(() => {\n onChange(newVal === '' ? undefined : newVal)\n }, [newVal]) */\n return <div>\n <Input\n id={field.id}\n testId={field.id}\n value={initialValue}\n label={<FieldLabel {...field} />} onChange={(e) => {\n onChange((e === '' || e === null) ? undefined : e)\n }} /></div>\n}\n\nexport default StringInput\n"],"names":["React"],"mappings":";;;;;AAKM,IAAA,WAAW,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;IAC3C,IAAM,YAAY,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AACjF;;;;;AAKe;IACf,OAAOA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;AACH,QAAAA,cAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EACJ,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAEA,cAAC,CAAA,aAAA,CAAA,UAAU,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA,EAAE,QAAQ,EAAE,UAAC,CAAC,EAAA;AAC5C,gBAAA,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC;aACnD,EAAA,CAAI,CAAM;AACnB;;;;"}