@axdspub/axiom-ui-forms 0.2.9 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/README.md +272 -272
  2. package/library/axiom-ui-forms.d.ts +213 -77
  3. package/library/esm/_virtual/_commonjsHelpers.js +26 -1
  4. package/library/esm/_virtual/_commonjsHelpers.js.map +1 -1
  5. package/library/esm/_virtual/_freeGlobal.js +7 -0
  6. package/library/esm/_virtual/_freeGlobal.js.map +1 -0
  7. package/library/esm/_virtual/get.js +8 -0
  8. package/library/esm/_virtual/get.js.map +1 -0
  9. package/library/esm/_virtual/index10.js +2 -2
  10. package/library/esm/_virtual/index11.js +2 -2
  11. package/library/esm/_virtual/index12.js +2 -6
  12. package/library/esm/_virtual/index12.js.map +1 -1
  13. package/library/esm/_virtual/index13.js +2 -6
  14. package/library/esm/_virtual/index13.js.map +1 -1
  15. package/library/esm/_virtual/index3.js +2 -2
  16. package/library/esm/_virtual/index3.js.map +1 -1
  17. package/library/esm/_virtual/index5.js +2 -2
  18. package/library/esm/_virtual/index6.js +2 -2
  19. package/library/esm/_virtual/index6.js.map +1 -1
  20. package/library/esm/_virtual/index7.js +6 -2
  21. package/library/esm/_virtual/index7.js.map +1 -1
  22. package/library/esm/_virtual/index8.js +6 -2
  23. package/library/esm/_virtual/index8.js.map +1 -1
  24. package/library/esm/_virtual/index9.js +2 -2
  25. package/library/esm/_virtual/set.js +8 -0
  26. package/library/esm/_virtual/set.js.map +1 -0
  27. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js +1 -1
  28. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -1
  29. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +23 -1
  30. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
  31. package/library/esm/node_modules/ajv/dist/compile/codegen/index.js +1 -1
  32. package/library/esm/node_modules/ajv/dist/compile/index.js +1 -1
  33. package/library/esm/node_modules/ajv/dist/compile/validate/index.js +1 -1
  34. package/library/esm/node_modules/ajv/dist/vocabularies/applicator/index.js +1 -1
  35. package/library/esm/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
  36. package/library/esm/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
  37. package/library/esm/node_modules/ajv/dist/vocabularies/validation/index.js +1 -1
  38. package/library/esm/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
  39. package/library/esm/node_modules/jotai/esm/react.js +135 -0
  40. package/library/esm/node_modules/jotai/esm/react.js.map +1 -0
  41. package/library/esm/node_modules/jotai/esm/vanilla/internals.js +551 -0
  42. package/library/esm/node_modules/jotai/esm/vanilla/internals.js.map +1 -0
  43. package/library/esm/node_modules/jotai/esm/vanilla.js +111 -0
  44. package/library/esm/node_modules/jotai/esm/vanilla.js.map +1 -0
  45. package/library/esm/node_modules/lodash/_Hash.js +49 -0
  46. package/library/esm/node_modules/lodash/_Hash.js.map +1 -0
  47. package/library/esm/node_modules/lodash/_ListCache.js +49 -0
  48. package/library/esm/node_modules/lodash/_ListCache.js.map +1 -0
  49. package/library/esm/node_modules/lodash/_Map.js +21 -0
  50. package/library/esm/node_modules/lodash/_Map.js.map +1 -0
  51. package/library/esm/node_modules/lodash/_MapCache.js +49 -0
  52. package/library/esm/node_modules/lodash/_MapCache.js.map +1 -0
  53. package/library/esm/node_modules/lodash/_Symbol.js +19 -0
  54. package/library/esm/node_modules/lodash/_Symbol.js.map +1 -0
  55. package/library/esm/node_modules/lodash/_arrayMap.js +33 -0
  56. package/library/esm/node_modules/lodash/_arrayMap.js.map +1 -0
  57. package/library/esm/node_modules/lodash/_assignValue.js +42 -0
  58. package/library/esm/node_modules/lodash/_assignValue.js.map +1 -0
  59. package/library/esm/node_modules/lodash/_assocIndexOf.js +34 -0
  60. package/library/esm/node_modules/lodash/_assocIndexOf.js.map +1 -0
  61. package/library/esm/node_modules/lodash/_baseAssignValue.js +38 -0
  62. package/library/esm/node_modules/lodash/_baseAssignValue.js.map +1 -0
  63. package/library/esm/node_modules/lodash/_baseGet.js +38 -0
  64. package/library/esm/node_modules/lodash/_baseGet.js.map +1 -0
  65. package/library/esm/node_modules/lodash/_baseGetTag.js +43 -0
  66. package/library/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
  67. package/library/esm/node_modules/lodash/_baseIsNative.js +63 -0
  68. package/library/esm/node_modules/lodash/_baseIsNative.js.map +1 -0
  69. package/library/esm/node_modules/lodash/_baseSet.js +68 -0
  70. package/library/esm/node_modules/lodash/_baseSet.js.map +1 -0
  71. package/library/esm/node_modules/lodash/_baseToString.js +50 -0
  72. package/library/esm/node_modules/lodash/_baseToString.js.map +1 -0
  73. package/library/esm/node_modules/lodash/_castPath.js +37 -0
  74. package/library/esm/node_modules/lodash/_castPath.js.map +1 -0
  75. package/library/esm/node_modules/lodash/_coreJsData.js +19 -0
  76. package/library/esm/node_modules/lodash/_coreJsData.js.map +1 -0
  77. package/library/esm/node_modules/lodash/_defineProperty.js +24 -0
  78. package/library/esm/node_modules/lodash/_defineProperty.js.map +1 -0
  79. package/library/esm/node_modules/lodash/_freeGlobal.js +7 -0
  80. package/library/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
  81. package/library/esm/node_modules/lodash/_getMapData.js +31 -0
  82. package/library/esm/node_modules/lodash/_getMapData.js.map +1 -0
  83. package/library/esm/node_modules/lodash/_getNative.js +31 -0
  84. package/library/esm/node_modules/lodash/_getNative.js.map +1 -0
  85. package/library/esm/node_modules/lodash/_getRawTag.js +59 -0
  86. package/library/esm/node_modules/lodash/_getRawTag.js.map +1 -0
  87. package/library/esm/node_modules/lodash/_getValue.js +25 -0
  88. package/library/esm/node_modules/lodash/_getValue.js.map +1 -0
  89. package/library/esm/node_modules/lodash/_hashClear.js +28 -0
  90. package/library/esm/node_modules/lodash/_hashClear.js.map +1 -0
  91. package/library/esm/node_modules/lodash/_hashDelete.js +29 -0
  92. package/library/esm/node_modules/lodash/_hashDelete.js.map +1 -0
  93. package/library/esm/node_modules/lodash/_hashGet.js +43 -0
  94. package/library/esm/node_modules/lodash/_hashGet.js.map +1 -0
  95. package/library/esm/node_modules/lodash/_hashHas.js +36 -0
  96. package/library/esm/node_modules/lodash/_hashHas.js.map +1 -0
  97. package/library/esm/node_modules/lodash/_hashSet.js +36 -0
  98. package/library/esm/node_modules/lodash/_hashSet.js.map +1 -0
  99. package/library/esm/node_modules/lodash/_isIndex.js +37 -0
  100. package/library/esm/node_modules/lodash/_isIndex.js.map +1 -0
  101. package/library/esm/node_modules/lodash/_isKey.js +43 -0
  102. package/library/esm/node_modules/lodash/_isKey.js.map +1 -0
  103. package/library/esm/node_modules/lodash/_isKeyable.js +27 -0
  104. package/library/esm/node_modules/lodash/_isKeyable.js.map +1 -0
  105. package/library/esm/node_modules/lodash/_isMasked.js +33 -0
  106. package/library/esm/node_modules/lodash/_isMasked.js.map +1 -0
  107. package/library/esm/node_modules/lodash/_listCacheClear.js +25 -0
  108. package/library/esm/node_modules/lodash/_listCacheClear.js.map +1 -0
  109. package/library/esm/node_modules/lodash/_listCacheDelete.js +48 -0
  110. package/library/esm/node_modules/lodash/_listCacheDelete.js.map +1 -0
  111. package/library/esm/node_modules/lodash/_listCacheGet.js +32 -0
  112. package/library/esm/node_modules/lodash/_listCacheGet.js.map +1 -0
  113. package/library/esm/node_modules/lodash/_listCacheHas.js +29 -0
  114. package/library/esm/node_modules/lodash/_listCacheHas.js.map +1 -0
  115. package/library/esm/node_modules/lodash/_listCacheSet.js +39 -0
  116. package/library/esm/node_modules/lodash/_listCacheSet.js.map +1 -0
  117. package/library/esm/node_modules/lodash/_mapCacheClear.js +36 -0
  118. package/library/esm/node_modules/lodash/_mapCacheClear.js.map +1 -0
  119. package/library/esm/node_modules/lodash/_mapCacheDelete.js +31 -0
  120. package/library/esm/node_modules/lodash/_mapCacheDelete.js.map +1 -0
  121. package/library/esm/node_modules/lodash/_mapCacheGet.js +29 -0
  122. package/library/esm/node_modules/lodash/_mapCacheGet.js.map +1 -0
  123. package/library/esm/node_modules/lodash/_mapCacheHas.js +29 -0
  124. package/library/esm/node_modules/lodash/_mapCacheHas.js.map +1 -0
  125. package/library/esm/node_modules/lodash/_mapCacheSet.js +35 -0
  126. package/library/esm/node_modules/lodash/_mapCacheSet.js.map +1 -0
  127. package/library/esm/node_modules/lodash/_memoizeCapped.js +39 -0
  128. package/library/esm/node_modules/lodash/_memoizeCapped.js.map +1 -0
  129. package/library/esm/node_modules/lodash/_nativeCreate.js +19 -0
  130. package/library/esm/node_modules/lodash/_nativeCreate.js.map +1 -0
  131. package/library/esm/node_modules/lodash/_objectToString.js +34 -0
  132. package/library/esm/node_modules/lodash/_objectToString.js.map +1 -0
  133. package/library/esm/node_modules/lodash/_root.js +22 -0
  134. package/library/esm/node_modules/lodash/_root.js.map +1 -0
  135. package/library/esm/node_modules/lodash/_stringToPath.js +40 -0
  136. package/library/esm/node_modules/lodash/_stringToPath.js.map +1 -0
  137. package/library/esm/node_modules/lodash/_toKey.js +31 -0
  138. package/library/esm/node_modules/lodash/_toKey.js.map +1 -0
  139. package/library/esm/node_modules/lodash/_toSource.js +38 -0
  140. package/library/esm/node_modules/lodash/_toSource.js.map +1 -0
  141. package/library/esm/node_modules/lodash/eq.js +49 -0
  142. package/library/esm/node_modules/lodash/eq.js.map +1 -0
  143. package/library/esm/node_modules/lodash/get.js +46 -0
  144. package/library/esm/node_modules/lodash/get.js.map +1 -0
  145. package/library/esm/node_modules/lodash/isArray.js +38 -0
  146. package/library/esm/node_modules/lodash/isArray.js.map +1 -0
  147. package/library/esm/node_modules/lodash/isFunction.js +51 -0
  148. package/library/esm/node_modules/lodash/isFunction.js.map +1 -0
  149. package/library/esm/node_modules/lodash/isObject.js +43 -0
  150. package/library/esm/node_modules/lodash/isObject.js.map +1 -0
  151. package/library/esm/node_modules/lodash/isObjectLike.js +41 -0
  152. package/library/esm/node_modules/lodash/isObjectLike.js.map +1 -0
  153. package/library/esm/node_modules/lodash/isSymbol.js +43 -0
  154. package/library/esm/node_modules/lodash/isSymbol.js.map +1 -0
  155. package/library/esm/node_modules/lodash/memoize.js +86 -0
  156. package/library/esm/node_modules/lodash/memoize.js.map +1 -0
  157. package/library/esm/node_modules/lodash/set.js +48 -0
  158. package/library/esm/node_modules/lodash/set.js.map +1 -0
  159. package/library/esm/node_modules/lodash/toString.js +41 -0
  160. package/library/esm/node_modules/lodash/toString.js.map +1 -0
  161. package/library/esm/node_modules/react-router/dist/development/chunk-HA7DTUK3.js +1 -1
  162. package/library/esm/node_modules/unified/lib/index.js +1 -1
  163. package/library/esm/src/Form/Components/FieldCreator.js +24 -7
  164. package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
  165. package/library/esm/src/Form/Components/FieldLabel.js +1 -1
  166. package/library/esm/src/Form/Components/FieldLabel.js.map +1 -1
  167. package/library/esm/src/Form/Components/InlineMarkdown.js.map +1 -1
  168. package/library/esm/src/Form/Components/Inputs/Boolean.js.map +1 -1
  169. package/library/esm/src/Form/Components/Inputs/Constant.js.map +1 -1
  170. package/library/esm/src/Form/Components/Inputs/Date.js.map +1 -1
  171. package/library/esm/src/Form/Components/Inputs/DateTime.js.map +1 -1
  172. package/library/esm/src/Form/Components/Inputs/GeoJSON.js.map +1 -1
  173. package/library/esm/src/Form/Components/Inputs/GeoJSONInputLoader.js.map +1 -1
  174. package/library/esm/src/Form/Components/Inputs/Geometry.js +38 -32
  175. package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
  176. package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js +4 -1
  177. package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js.map +1 -1
  178. package/library/esm/src/Form/Components/Inputs/JSON.js +83 -42
  179. package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -1
  180. package/library/esm/src/Form/Components/Inputs/JSONInputLoader.js.map +1 -1
  181. package/library/esm/src/Form/Components/Inputs/LongString.js.map +1 -1
  182. package/library/esm/src/Form/Components/Inputs/Number.js +34 -9
  183. package/library/esm/src/Form/Components/Inputs/Number.js.map +1 -1
  184. package/library/esm/src/Form/Components/Inputs/Object.js +7 -2
  185. package/library/esm/src/Form/Components/Inputs/Object.js.map +1 -1
  186. package/library/esm/src/Form/Components/Inputs/OneOfInput.js.map +1 -1
  187. package/library/esm/src/Form/Components/Inputs/RadioGroup.js.map +1 -1
  188. package/library/esm/src/Form/Components/Inputs/SingleSelect.js +2 -1
  189. package/library/esm/src/Form/Components/Inputs/SingleSelect.js.map +1 -1
  190. package/library/esm/src/Form/Components/Inputs/String.js +2 -2
  191. package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
  192. package/library/esm/src/Form/Components/Inputs/Time.js.map +1 -1
  193. package/library/esm/src/Form/Components/Inputs/index.js +11 -0
  194. package/library/esm/src/Form/Components/Inputs/index.js.map +1 -0
  195. package/library/esm/src/Form/Components/Inputs/inputMap.js.map +1 -1
  196. package/library/esm/src/Form/Creator/FormContextProvider.js.map +1 -1
  197. package/library/esm/src/Form/Creator/FormCreator.js +20 -9
  198. package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
  199. package/library/esm/src/Form/Creator/FormFields.js.map +1 -1
  200. package/library/esm/src/Form/Creator/FormHeader.js.map +1 -1
  201. package/library/esm/src/Form/Creator/FormSection.js.map +1 -1
  202. package/library/esm/src/Form/Creator/FormSectionContextProvider.js.map +1 -1
  203. package/library/esm/src/Form/Creator/NavElement.js.map +1 -1
  204. package/library/esm/src/Form/Creator/Page.js +40 -7
  205. package/library/esm/src/Form/Creator/Page.js.map +1 -1
  206. package/library/esm/src/Form/Creator/Wizard.js +79 -22
  207. package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
  208. package/library/esm/src/Form/Manage/CopyableJSONOutput.js +3 -3
  209. package/library/esm/src/Form/Manage/CopyableJSONOutput.js.map +1 -1
  210. package/library/esm/src/library.js +11 -13
  211. package/library/esm/src/library.js.map +1 -1
  212. package/library/esm/src/utils/getters.js +135 -0
  213. package/library/esm/src/utils/getters.js.map +1 -0
  214. package/library/esm/src/utils/manipulators.js +171 -0
  215. package/library/esm/src/utils/manipulators.js.map +1 -0
  216. package/library/esm/src/utils/resolveRefs.js +44 -0
  217. package/library/esm/src/utils/resolveRefs.js.map +1 -0
  218. package/library/esm/src/utils/responsive/layoutState.js +18 -0
  219. package/library/esm/src/utils/responsive/layoutState.js.map +1 -0
  220. package/library/esm/src/{Form → utils}/schemaToFormHelpers.js +157 -38
  221. package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -0
  222. package/library/esm/src/utils/validators.js +38 -0
  223. package/library/esm/src/utils/validators.js.map +1 -0
  224. package/package.json +131 -124
  225. package/library/esm/src/Form/helpers.js +0 -162
  226. package/library/esm/src/Form/helpers.js.map +0 -1
  227. package/library/esm/src/Form/resolveRefs.js +0 -26
  228. package/library/esm/src/Form/resolveRefs.js.map +0 -1
  229. package/library/esm/src/Form/schemaToFormHelpers.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { __assign } from '../../../../node_modules/tslib/tslib.es6.js';
2
- import React__default, { useState } from 'react';
2
+ import React__default, { useState, useEffect } from 'react';
3
3
  import ReactCodeMirror from '../../../../node_modules/@uiw/react-codemirror/esm/index.js';
4
4
  import { json } from '../../../../node_modules/@codemirror/lang-json/dist/index.js';
5
5
  import { yaml } from '../../../../node_modules/@codemirror/lang-yaml/dist/index.js';
@@ -11,65 +11,100 @@ 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) {
33
+ var _b, _c, _d, _e;
15
34
  var field = _a.field, onChange = _a.onChange, value = _a.value;
16
- var _b = useState('json'), format = _b[0], setFormat = _b[1];
17
- var _c = useState(typeof value === 'object'
18
- ? JSON.stringify(value, null, 2)
19
- : (value !== undefined && value !== null
20
- ? String(value)
21
- : '')), workingValue = _c[0], setWorkingValue = _c[1];
22
- var _d = useState(null), error = _d[0], setError = _d[1];
35
+ var jsonField = field;
36
+ var exportAsString = (_c = (_b = jsonField === null || jsonField === void 0 ? void 0 : jsonField.settings) === null || _b === void 0 ? void 0 : _b.exportAsString) !== null && _c !== void 0 ? _c : false;
37
+ var allowEmpty = (_e = (_d = jsonField === null || jsonField === void 0 ? void 0 : jsonField.settings) === null || _d === void 0 ? void 0 : _d.allowEmpty) !== null && _e !== void 0 ? _e : false;
38
+ var _f = useState('json'), format = _f[0], setFormat = _f[1];
39
+ var _g = useState(''), workingValue = _g[0], setWorkingValue = _g[1];
40
+ var _h = useState(null), error = _h[0], setError = _h[1];
41
+ var _j = useState(false), hasFocus = _j[0], setHasFocus = _j[1];
42
+ useEffect(function () {
43
+ if (!hasFocus) {
44
+ setWorkingValue(typeof value === 'object'
45
+ ? JSON.stringify(value, null, 2)
46
+ : (value !== undefined && value !== null
47
+ ? tryGetFormatted(String(value), format)
48
+ : allowEmpty
49
+ ? ''
50
+ : '{}'));
51
+ }
52
+ }, [value]);
23
53
  // Validate JSON and display error
24
54
  var validateJson = function (val) {
25
55
  try {
26
- if (val.trim() !== '') {
27
- JSON.parse(val);
56
+ if (val.trim() === '') {
57
+ setError(null);
58
+ return true;
28
59
  }
60
+ JSON.parse(val);
29
61
  setError(null); // Clear error if valid
62
+ return true;
30
63
  }
31
64
  catch (err) {
32
65
  setError('Invalid JSON: ' + err.message);
66
+ return false;
33
67
  }
34
68
  };
35
69
  var validateYaml = function (val) {
36
70
  try {
37
- if (val.trim() !== '') {
38
- jsYaml.load(val);
71
+ if (val.trim() === '') {
72
+ setError(null);
73
+ return true;
39
74
  }
75
+ jsYaml.load(val);
40
76
  setError(null);
77
+ return true;
41
78
  }
42
79
  catch (err) {
43
80
  setError('Invalid YAML: ' + err.message);
81
+ return false;
44
82
  }
45
83
  };
46
84
  // Handle content change
47
85
  var handleChange = function (val) {
48
86
  setWorkingValue(val);
49
87
  if (format === 'json') {
50
- validateJson(val);
51
- onChange(val);
88
+ if (validateJson(val)) {
89
+ if (!allowEmpty && val.trim() === '') {
90
+ val = '{}';
91
+ }
92
+ onChange(exportAsString ? val : JSON.parse(val));
93
+ }
52
94
  }
53
95
  else if (format === 'yaml') {
54
- validateYaml(val);
55
- var ob = jsYaml.load(val);
56
- var json_1 = JSON.stringify(ob, null, 2);
57
- validateJson(json_1);
58
- onChange(json_1);
96
+ if (validateYaml(val)) {
97
+ var json_1 = JSON.stringify(val === '' && !allowEmpty ? '{}' : jsYaml.load(val), null, 2);
98
+ if (validateJson(json_1)) {
99
+ onChange(exportAsString ? json_1 : JSON.parse(json_1));
100
+ }
101
+ }
59
102
  }
60
103
  };
61
104
  // Format JSON or YAML
62
105
  var handleFormat = function () {
63
106
  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
- }
107
+ setWorkingValue(getFormatted(workingValue, format));
73
108
  setError(null);
74
109
  }
75
110
  catch (error) {
@@ -101,7 +136,7 @@ var JsonYamlEditor = function (_a) {
101
136
  }
102
137
  };
103
138
  var btnClass = 'border-0 rounded-none';
104
- return (React__default.createElement("div", { className: 'flex flex-col' },
139
+ return (React__default.createElement("div", { className: 'flex flex-col h-full relative' },
105
140
  React__default.createElement(FieldLabel, __assign({}, field)),
106
141
  React__default.createElement("div", { className: 'flex flex-row' },
107
142
  React__default.createElement(Button, { size: 'xs', disabled: error !== null, className: "".concat(btnClass, " ").concat(format !== 'json' ? 'font-normal' : 'text-white bg-[#282c34]'), onClick: function () { updateFormat('json'); } }, "JSON"),
@@ -110,22 +145,28 @@ var JsonYamlEditor = function (_a) {
110
145
  React__default.createElement(Button, { size: 'xs', className: btnClass, onClick: function () { handleFormat(); } },
111
146
  "Format ",
112
147
  React__default.createElement(UpdateIcon, { className: 'inline w-3 h-3 -mt-1 ml-1' })))),
113
- React__default.createElement("div", { className: ' relative flex-grow' },
114
- React__default.createElement("span", { className: 'absolute right-6 bottom-4 pointer-events-auto z-50' },
115
- React__default.createElement(CopyButton, { string: error === null && workingValue !== ''
116
- ? format === 'json'
117
- ? JSON.stringify(JSON.parse(workingValue), null, 2)
118
- : jsYaml.dump(workingValue)
119
- : workingValue, className: 'white z-50' })),
120
- error && React__default.createElement("p", { className: "text-red-500 text-xs mb-2 absolute bg-white bg-opacity-90 max-w-[50%] p-2 right-0 z-50" },
121
- React__default.createElement(ExclamationTriangleIcon, { className: 'inline w-3 h-3 -mt-1 mr-1' }),
122
- " ",
123
- error),
124
- React__default.createElement(ReactCodeMirror, { value: workingValue, className: 'h-full', height: '550px', extensions: [
148
+ error && React__default.createElement("p", { className: "text-red-500 text-xs mb-2 absolute bg-white bg-opacity-90 max-w-[50%] p-2 right-0 z-40" },
149
+ React__default.createElement(ExclamationTriangleIcon, { className: 'inline w-3 h-3 -mt-1 mr-1' }),
150
+ " ",
151
+ error),
152
+ React__default.createElement("span", { className: 'absolute right-6 bottom-4 pointer-events-auto z-40' },
153
+ React__default.createElement(CopyButton, { string: error === null && workingValue !== ''
154
+ ? format === 'json'
155
+ ? JSON.stringify(JSON.parse(workingValue), null, 2)
156
+ : jsYaml.dump(workingValue)
157
+ : workingValue, className: 'white z-40' })),
158
+ React__default.createElement("div", { className: 'h-full flex-grow overflow-auto' },
159
+ React__default.createElement(ReactCodeMirror, { value: format === 'yaml' && workingValue === '{}' ? '' : workingValue, extensions: [
125
160
  format === 'json' ? json() : yaml(),
126
161
  autocompletion(),
127
162
  EditorView.lineWrapping
128
- ], onChange: handleChange, theme: "dark" }))));
163
+ ], height: '100%', className: 'h-full', onChange: handleChange, theme: "dark", onFocus: function () {
164
+ console.log('FOCUS');
165
+ setHasFocus(true);
166
+ }, onBlur: function () {
167
+ console.log('BLUR');
168
+ setHasFocus(false);
169
+ } }))));
129
170
  };
130
171
 
131
172
  export { JsonYamlEditor as default };
@@ -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, useEffect, useState } from 'react'\r\nimport CodeMirror from '@uiw/react-codemirror'\r\nimport { json } from '@codemirror/lang-json'\r\nimport { yaml } from '@codemirror/lang-yaml'\r\nimport { autocompletion } from '@codemirror/autocomplete'\r\nimport { EditorView } from '@codemirror/view'\r\nimport yamlParser from 'js-yaml'\r\nimport { Button } from '@axdspub/axiom-ui-utilities'\r\nimport { ExclamationTriangleIcon, UpdateIcon } from '@radix-ui/react-icons'\r\nimport { type IJSONField, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { CopyButton } from '@/Form/Manage/CopyableJSONOutput'\r\n\r\nconst getFormatted = (val: string, fmt: string): string => {\r\n if (fmt === 'json') {\r\n const jsonObject = JSON.parse(val)\r\n return JSON.stringify(jsonObject, null, 2)\r\n } else {\r\n const yamlObject = yamlParser.load(val)\r\n return yamlParser.dump(yamlObject)\r\n }\r\n}\r\n\r\nconst tryGetFormatted = (val: string, fmt: string): string => {\r\n try {\r\n return getFormatted(val, fmt)\r\n } catch (error) {\r\n return val\r\n }\r\n}\r\n\r\nconst JsonYamlEditor = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const jsonField = field as IJSONField\r\n const exportAsString = jsonField?.settings?.exportAsString ?? false\r\n const allowEmpty = jsonField?.settings?.allowEmpty ?? false\r\n const [format, setFormat] = useState<'json' | 'yaml'>('json')\r\n const [workingValue, setWorkingValue] = useState<string>('')\r\n const [error, setError] = useState<string | null>(null)\r\n const [hasFocus, setHasFocus] = useState(false)\r\n\r\n useEffect(() => {\r\n if (!hasFocus) {\r\n setWorkingValue(\r\n typeof value === 'object'\r\n ? JSON.stringify(value, null, 2)\r\n : (value !== undefined && value !== null\r\n ? tryGetFormatted(String(value), format)\r\n : allowEmpty\r\n ? ''\r\n : '{}'\r\n )\r\n )\r\n }\r\n }, [value])\r\n\r\n // Validate JSON and display error\r\n const validateJson = (val: string): boolean => {\r\n try {\r\n if (val.trim() === '') {\r\n setError(null)\r\n return true\r\n }\r\n JSON.parse(val)\r\n setError(null) // Clear error if valid\r\n return true\r\n } catch (err) {\r\n setError('Invalid JSON: ' + (err as Error).message)\r\n return false\r\n }\r\n }\r\n\r\n const validateYaml = (val: string): boolean => {\r\n try {\r\n if (val.trim() === '') {\r\n setError(null)\r\n return true\r\n }\r\n yamlParser.load(val)\r\n setError(null)\r\n return true\r\n } catch (err) {\r\n setError('Invalid YAML: ' + (err as Error).message)\r\n return false\r\n }\r\n }\r\n\r\n // Handle content change\r\n const handleChange = (val: string): void => {\r\n setWorkingValue(val)\r\n if (format === 'json') {\r\n if (validateJson(val)) {\r\n if (!allowEmpty && val.trim() === '') {\r\n val = '{}'\r\n }\r\n onChange(exportAsString ? val : JSON.parse(val))\r\n }\r\n } else if (format === 'yaml') {\r\n if (validateYaml(val)) {\r\n const json = JSON.stringify(val === '' && !allowEmpty ? '{}' : yamlParser.load(val), null, 2)\r\n if (validateJson(json)) {\r\n onChange(exportAsString ? json : JSON.parse(json))\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Format JSON or YAML\r\n const handleFormat = (): void => {\r\n try {\r\n setWorkingValue(getFormatted(workingValue, format))\r\n setError(null)\r\n } catch (error) {\r\n setError('Formatting failed: Invalid data.')\r\n }\r\n }\r\n\r\n const updateFormat = (newFormat: 'json' | 'yaml'): void => {\r\n try {\r\n if (newFormat === 'yaml') {\r\n if (workingValue.trim() !== '') {\r\n const jsonObject = JSON.parse(workingValue)\r\n setWorkingValue(yamlParser.dump(jsonObject))\r\n }\r\n setFormat('yaml')\r\n setError(null)\r\n } else {\r\n if (workingValue.trim() !== '') {\r\n const yamlObject = yamlParser.load(workingValue)\r\n const jsonString = JSON.stringify(yamlObject, null, 2)\r\n setWorkingValue(jsonString)\r\n validateJson(jsonString)\r\n }\r\n setFormat('json')\r\n }\r\n } catch (error) {\r\n setError('Format conversion failed: Invalid data.')\r\n }\r\n }\r\n\r\n const btnClass = 'border-0 rounded-none'\r\n\r\n return (\r\n <div className='flex flex-col h-full relative'>\r\n <FieldLabel {...field} />\r\n <div className='flex flex-row'>\r\n <Button size='xs' disabled={error !== null} className={`${btnClass} ${format !== 'json' ? 'font-normal' : 'text-white bg-[#282c34]'}`} onClick={() => { updateFormat('json') }}>JSON</Button>\r\n <Button size='xs' disabled={error !== null} className={`${btnClass} ${format !== 'yaml' ? 'font-normal' : 'text-white bg-[#282c34]'}`} onClick={() => { updateFormat('yaml') }}>YAML</Button>\r\n <div className=\"ml-auto\">\r\n <Button size='xs' className={btnClass} onClick={() => { handleFormat() }}>Format <UpdateIcon className='inline w-3 h-3 -mt-1 ml-1' /></Button>\r\n </div>\r\n </div>\r\n\r\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-40\"><ExclamationTriangleIcon className='inline w-3 h-3 -mt-1 mr-1' /> {error}</p>}\r\n <span className='absolute right-6 bottom-4 pointer-events-auto z-40'>\r\n <CopyButton string={\r\n error === null && workingValue !== ''\r\n ? format === 'json'\r\n ? JSON.stringify(JSON.parse(workingValue), null, 2)\r\n : yamlParser.dump(workingValue)\r\n : workingValue\r\n } className='white z-40' />\r\n </span>\r\n <div className='h-full flex-grow overflow-auto'>\r\n <CodeMirror\r\n value={format === 'yaml' && workingValue === '{}' ? '' : workingValue}\r\n extensions={[\r\n format === 'json' ? json() : yaml(),\r\n autocompletion(),\r\n EditorView.lineWrapping\r\n ]}\r\n height='100%'\r\n className='h-full'\r\n onChange={handleChange}\r\n theme=\"dark\"\r\n onFocus={() => {\r\n console.log('FOCUS')\r\n setHasFocus(true)\r\n }}\r\n onBlur={() => {\r\n console.log('BLUR')\r\n setHasFocus(false)\r\n }}\r\n />\r\n </div>\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default JsonYamlEditor\r\n"],"names":["yamlParser","React","CodeMirror"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"JSONInputLoader.js","sources":["../../../../../../src/Form/Components/Inputs/JSONInputLoader.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 JSONInput = lazy(async () => await import('./JSON'))\nconst JSONInputLoader = (props: IFieldInputProps): ReactElement => {\n return (\n <>\n <Suspense fallback={<div className='h-[500px]'><Loader className='pt-20' /></div>}>\n <JSONInput {...props} />\n </Suspense>\n </>\n )\n}\n\nexport default JSONInputLoader\n"],"names":["React"],"mappings":";;;;AAIA,IAAM,SAAS,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,WAAQ,CAAC,CAAA;AAAtB,QAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAA,SAAsB,CAAA;;AAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAC;AACpD,IAAA,eAAe,GAAG,UAAC,KAAuB,EAAA;AAC9C,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,SAAS,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,EAAI,CACjB,CACV;AAET;;;;"}
1
+ {"version":3,"file":"JSONInputLoader.js","sources":["../../../../../../src/Form/Components/Inputs/JSONInputLoader.tsx"],"sourcesContent":["import { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { Loader } from '@axdspub/axiom-ui-utilities'\r\nimport React, { lazy, Suspense, type ReactElement } from 'react'\r\n\r\nconst JSONInput = lazy(async () => await import('./JSON'))\r\nconst JSONInputLoader = (props: IFieldInputProps): ReactElement => {\r\n return (\r\n <>\r\n <Suspense fallback={<div className='h-[500px]'><Loader className='pt-20' /></div>}>\r\n <JSONInput {...props} />\r\n </Suspense>\r\n </>\r\n )\r\n}\r\n\r\nexport default JSONInputLoader\r\n"],"names":["React"],"mappings":";;;;AAIA,IAAM,SAAS,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,WAAQ,CAAC,CAAA;AAAtB,QAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAA,SAAsB,CAAA;;AAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAC;AACpD,IAAA,eAAe,GAAG,UAAC,KAAuB,EAAA;AAC9C,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,SAAS,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,EAAI,CACjB,CACV;AAET;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"LongString.js","sources":["../../../../../../src/Form/Components/Inputs/LongString.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { TextArea } from '@axdspub/axiom-ui-utilities'\nimport React, { type ReactElement } from 'react'\n\nconst LongStringInput = ({ field, onChange, value, className }: IFieldInputProps): ReactElement => {\n const initialValue = value !== undefined ? value : ''\n const getValue = (): string => {\n return initialValue !== undefined && initialValue !== null ? String(initialValue) : ''\n }\n return <div>\n <TextArea\n className={className}\n id={field.id}\n testId={field.id}\n label={<FieldLabel {...field} />}\n value={getValue()}\n onChange={(e) => {\n onChange(e)\n }} /></div>\n}\n\nexport default LongStringInput\n"],"names":["React"],"mappings":";;;;;AAKM,IAAA,eAAe,GAAG,UAAC,EAAuD,EAAA;QAArD,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA;AAC1D,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,EAAE;AACrD,IAAA,IAAM,QAAQ,GAAG,YAAA;AACf,QAAA,OAAO,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE;AACxF,KAAC;IACD,OAAOA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;AACH,QAAAA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EACP,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,KAAK,EAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAI,CAAA,EAChC,KAAK,EAAE,QAAQ,EAAE,EACjB,QAAQ,EAAE,UAAC,CAAC,EAAA;gBACV,QAAQ,CAAC,CAAC,CAAC;aACZ,EAAA,CAAI,CAAM;AACnB;;;;"}
1
+ {"version":3,"file":"LongString.js","sources":["../../../../../../src/Form/Components/Inputs/LongString.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { TextArea } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst LongStringInput = ({ field, onChange, value, className }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : ''\r\n const getValue = (): string => {\r\n return initialValue !== undefined && initialValue !== null ? String(initialValue) : ''\r\n }\r\n return <div>\r\n <TextArea\r\n className={className}\r\n id={field.id}\r\n testId={field.id}\r\n label={<FieldLabel {...field} />}\r\n value={getValue()}\r\n onChange={(e) => {\r\n onChange(e)\r\n }} /></div>\r\n}\r\n\r\nexport default LongStringInput\r\n"],"names":["React"],"mappings":";;;;;AAKM,IAAA,eAAe,GAAG,UAAC,EAAuD,EAAA;QAArD,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA;AAC1D,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,EAAE;AACrD,IAAA,IAAM,QAAQ,GAAG,YAAA;AACf,QAAA,OAAO,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE;AACxF,KAAC;IACD,OAAOA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;AACH,QAAAA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EACP,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,KAAK,EAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAI,CAAA,EAChC,KAAK,EAAE,QAAQ,EAAE,EACjB,QAAQ,EAAE,UAAC,CAAC,EAAA;gBACV,QAAQ,CAAC,CAAC,CAAC;aACZ,EAAA,CAAI,CAAM;AACnB;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { __assign } from '../../../../node_modules/tslib/tslib.es6.js';
2
- import FieldLabel from '../FieldLabel.js';
3
- import { Slider as SliderSingle, Input } from '../../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
2
+ import FieldLabel, { FieldLabelText, FieldDescriptionTooltip } from '../FieldLabel.js';
3
+ import { Checkbox, Slider as SliderSingle, Input } from '../../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
4
4
  import { Pencil1Icon, Cross2Icon, CheckIcon } from '../../../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
5
5
  import React__default, { useState } from 'react';
6
6
 
@@ -56,10 +56,10 @@ var SliderInput = function (_a) {
56
56
  } }))))));
57
57
  };
58
58
  var TextInput = function (_a) {
59
- var field = _a.field, onChange = _a.onChange, value = _a.value;
59
+ var field = _a.field, onChange = _a.onChange, value = _a.value, className = _a.className;
60
60
  var _b = useState(undefined), error = _b[0], setError = _b[1];
61
61
  return (React__default.createElement(React__default.Fragment, null,
62
- React__default.createElement(Input, { id: field.id, testId: field.id, error: error, value: value !== undefined && value !== null ? String(value) : '', label: React__default.createElement(FieldLabel, __assign({}, field)), onChange: function (e) {
62
+ React__default.createElement(Input, { id: field.id, testId: field.id, error: error, className: className, value: value !== undefined && value !== null ? String(value) : '', label: React__default.createElement(FieldLabel, __assign({}, field)), onChange: function (e) {
63
63
  if (e !== undefined && !isNaN(+e) && e !== '') {
64
64
  onChange(+e);
65
65
  setError(undefined);
@@ -77,14 +77,39 @@ var TextInput = function (_a) {
77
77
  error !== undefined && React__default.createElement("p", { className: 'text-red-500 text-xs py-2' }, error)));
78
78
  };
79
79
  var NumberInput = function (_a) {
80
- var _b, _c, _d;
80
+ var _b, _c, _d, _e;
81
81
  var field = _a.field, onChange = _a.onChange, value = _a.value;
82
82
  var initialValue = value !== undefined ? value : '';
83
83
  var numberField = field;
84
- var max = (_b = numberField === null || numberField === void 0 ? void 0 : numberField.constraints) === null || _b === void 0 ? void 0 : _b.max;
85
- return (React__default.createElement("div", null, max !== undefined
86
- ? React__default.createElement(SliderInput, { field: field, value: initialValue, onChange: onChange, min: (_c = numberField === null || numberField === void 0 ? void 0 : numberField.constraints) === null || _c === void 0 ? void 0 : _c.min, max: max, step: (_d = numberField === null || numberField === void 0 ? void 0 : numberField.settings) === null || _d === void 0 ? void 0 : _d.step })
87
- : React__default.createElement(TextInput, { field: field, value: initialValue, onChange: onChange })));
84
+ var isNull = initialValue === undefined || initialValue === null || initialValue === '';
85
+ var _f = useState(!isNull), userSelectedNotNull = _f[0], setUserSelectedNotNull = _f[1];
86
+ var canBeNull = ((_b = numberField.settings) === null || _b === void 0 ? void 0 : _b.canBeNull) === true;
87
+ var max = (_c = numberField === null || numberField === void 0 ? void 0 : numberField.constraints) === null || _c === void 0 ? void 0 : _c.max;
88
+ var fieldForInput = canBeNull
89
+ ? __assign(__assign({}, field), { label: undefined, description: undefined }) : field;
90
+ var el = (React__default.createElement(React__default.Fragment, null, max !== undefined
91
+ ? React__default.createElement(SliderInput, { field: fieldForInput, value: initialValue, onChange: onChange, min: (_d = numberField === null || numberField === void 0 ? void 0 : numberField.constraints) === null || _d === void 0 ? void 0 : _d.min, max: max, step: (_e = numberField === null || numberField === void 0 ? void 0 : numberField.settings) === null || _e === void 0 ? void 0 : _e.step })
92
+ : React__default.createElement(TextInput, { field: fieldForInput, value: initialValue, onChange: onChange, className: 'max-w-[300px]' })));
93
+ if (canBeNull) {
94
+ return (React__default.createElement("div", { className: 'flex flex-col gap-2' },
95
+ React__default.createElement(Checkbox, { id: "".concat(field.id, "-null"), testId: "".concat(field.id, "-null"), label: React__default.createElement(React__default.Fragment, null,
96
+ React__default.createElement(FieldLabelText, __assign({}, field)),
97
+ " ",
98
+ React__default.createElement(FieldDescriptionTooltip, __assign({}, field))), value: userSelectedNotNull, onChange: function (e) {
99
+ var _a, _b, _c, _d;
100
+ setUserSelectedNotNull(!userSelectedNotNull);
101
+ if (!e) {
102
+ onChange(undefined);
103
+ }
104
+ else {
105
+ onChange((_d = (_c = (_b = (_a = numberField === null || numberField === void 0 ? void 0 : numberField.settings) === null || _a === void 0 ? void 0 : _a.nonNullDefaultValue) !== null && _b !== void 0 ? _b : numberField === null || numberField === void 0 ? void 0 : numberField.defaultValue) !== null && _c !== void 0 ? _c : value) !== null && _d !== void 0 ? _d : 0);
106
+ }
107
+ } }),
108
+ userSelectedNotNull ? el : React__default.createElement(React__default.Fragment, null)));
109
+ }
110
+ else {
111
+ return el;
112
+ }
88
113
  };
89
114
 
90
115
  export { NumberInput as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","sources":["../../../../../../src/Form/Components/Inputs/Number.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\nimport { type INumberField, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { Input, Slider } from '@axdspub/axiom-ui-utilities'\nimport { CheckIcon, Cross2Icon, Pencil1Icon } from '@radix-ui/react-icons'\nimport React, { useState, type ReactElement } from 'react'\n\nconst isValidNumber = (value: string): boolean => {\n if (value === undefined || value === null || value === '') {\n return false\n }\n const num = Number(value)\n return !isNaN(num) && isFinite(num)\n}\n\nconst SliderInput = ({ field, value, onChange, min, max, step }: IFieldInputProps & { max: number, min?: number, step?: number }): ReactElement => {\n const updateTemp = (value: string | number | undefined): void => {\n if (value !== undefined && isValidNumber(String(value))) {\n setTempValue(+value)\n setTempTextValue(String(value))\n } else {\n setTempTextValue(value !== undefined ? String(value) : undefined)\n }\n }\n const [tempValue, setTempValue] = useState<number>(value !== undefined && value !== null ? +value : 0)\n const [tempTextValue, setTempTextValue] = useState<string | undefined>(value !== undefined ? String(value) : undefined)\n const [mode, setMode] = useState<'slider' | 'text'>('slider')\n\n return (<div>\n <FieldLabel {...field} />\n <div className='flex flex-row gap-4'>\n <Slider\n className='flex-grow max-w-[400px] mt-1'\n size='sm'\n value={tempValue}\n min={min ?? 0}\n max={max}\n onChange={(v: number): void => {\n updateTemp(v)\n } }\n onChangeComplete={(v: number): void => {\n updateTemp(v)\n onChange(v)\n } }\n id={field.id}\n testId={field.id}\n step={step ?? ((max - (min ?? 0)) / 100)} />\n <div className='w-[100px] flex flex-row text-right'>\n {\n mode === 'slider'\n ? <>\n <strong className='w-[60px]'>{tempValue}</strong>\n <Pencil1Icon className='inline m-1 w-5 h-5 cursor-pointer' onClick={() => {\n setMode('text')\n }} />\n </>\n : <>\n <Input\n id={`slider-text-${field.id}`}\n testId={`slider-text-${field.id}`}\n value={tempTextValue !== undefined && tempTextValue !== null ? String(tempTextValue) : ''}\n className='w-[50px] text-xs text-right'\n size='xs'\n label={undefined}\n onChange={(e) => {\n updateTemp(e)\n }} />\n <Cross2Icon className='flex-none inline w-5 h-5 m-1 cursor-pointer' color='red' onClick={() => {\n setMode('slider')\n }} />\n <CheckIcon className={`flex-none inline w-5 h-5 m-1 ${isValidNumber(String(tempTextValue)) ? 'cursor-pointer' : 'opacity-50'}`} color='green' onClick={() => {\n if (isValidNumber(String(tempTextValue))) {\n setMode('slider')\n updateTemp(tempTextValue)\n onChange(tempTextValue)\n }\n }} />\n </>\n }\n </div>\n </div>\n </div>)\n}\n\nconst TextInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const [error, setError] = useState<string | undefined>(undefined)\n\n return (\n <>\n <Input\n id={field.id}\n testId={field.id}\n error={error}\n value={value !== undefined && value !== null ? String(value) : ''}\n label={<FieldLabel {...field} />} onChange={(e) => {\n if (e !== undefined && !isNaN(+e) && e !== '') {\n onChange(+e)\n setError(undefined)\n } else {\n if (String(e).length > 0) {\n setError('Please enter a valid number')\n } else {\n setError(undefined)\n }\n onChange(undefined)\n }\n }} />\n {error !== undefined && <p className='text-red-500 text-xs py-2'>{error}</p>}\n </>\n )\n}\n\nconst NumberInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const initialValue = value !== undefined ? value : ''\n const numberField = field as INumberField\n\n const max = numberField?.constraints?.max\n return (\n <div>{\n max !== undefined\n ? <SliderInput\n field={field}\n value={initialValue}\n onChange={onChange}\n min={numberField?.constraints?.min}\n max={max}\n step={numberField?.settings?.step} />\n : <TextInput\n field={field}\n value={initialValue}\n onChange={onChange} />\n }</div>\n )\n}\n\nexport default NumberInput\n"],"names":["React","Slider"],"mappings":"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"}
1
+ {"version":3,"file":"Number.js","sources":["../../../../../../src/Form/Components/Inputs/Number.tsx"],"sourcesContent":["import FieldLabel, { FieldDescriptionTooltip, FieldLabelText } from '@/Form/Components/FieldLabel'\r\nimport { type INumberField, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { Checkbox, Input, Slider } from '@axdspub/axiom-ui-utilities'\r\nimport { CheckIcon, Cross2Icon, Pencil1Icon } from '@radix-ui/react-icons'\r\nimport React, { useState, type ReactElement } from 'react'\r\n\r\nconst isValidNumber = (value: string): boolean => {\r\n if (value === undefined || value === null || value === '') {\r\n return false\r\n }\r\n const num = Number(value)\r\n return !isNaN(num) && isFinite(num)\r\n}\r\n\r\nconst SliderInput = ({ field, value, onChange, min, max, step }: IFieldInputProps & { max: number, min?: number, step?: number }): ReactElement => {\r\n const updateTemp = (value: string | number | undefined): void => {\r\n if (value !== undefined && isValidNumber(String(value))) {\r\n setTempValue(+value)\r\n setTempTextValue(String(value))\r\n } else {\r\n setTempTextValue(value !== undefined ? String(value) : undefined)\r\n }\r\n }\r\n const [tempValue, setTempValue] = useState<number>(value !== undefined && value !== null ? +value : 0)\r\n const [tempTextValue, setTempTextValue] = useState<string | undefined>(value !== undefined ? String(value) : undefined)\r\n const [mode, setMode] = useState<'slider' | 'text'>('slider')\r\n\r\n return (<div>\r\n <FieldLabel {...field} />\r\n <div className='flex flex-row gap-4'>\r\n <Slider\r\n className='flex-grow max-w-[400px] mt-1'\r\n size='sm'\r\n value={tempValue}\r\n min={min ?? 0}\r\n max={max}\r\n onChange={(v: number): void => {\r\n updateTemp(v)\r\n } }\r\n onChangeComplete={(v: number): void => {\r\n updateTemp(v)\r\n onChange(v)\r\n } }\r\n id={field.id}\r\n testId={field.id}\r\n step={step ?? ((max - (min ?? 0)) / 100)} />\r\n <div className='w-[100px] flex flex-row text-right'>\r\n {\r\n mode === 'slider'\r\n ? <>\r\n <strong className='w-[60px]'>{tempValue}</strong>\r\n <Pencil1Icon className='inline m-1 w-5 h-5 cursor-pointer' onClick={() => {\r\n setMode('text')\r\n }} />\r\n </>\r\n : <>\r\n <Input\r\n id={`slider-text-${field.id}`}\r\n testId={`slider-text-${field.id}`}\r\n value={tempTextValue !== undefined && tempTextValue !== null ? String(tempTextValue) : ''}\r\n className='w-[50px] text-xs text-right'\r\n size='xs'\r\n label={undefined}\r\n onChange={(e) => {\r\n updateTemp(e)\r\n }} />\r\n <Cross2Icon className='flex-none inline w-5 h-5 m-1 cursor-pointer' color='red' onClick={() => {\r\n setMode('slider')\r\n }} />\r\n <CheckIcon className={`flex-none inline w-5 h-5 m-1 ${isValidNumber(String(tempTextValue)) ? 'cursor-pointer' : 'opacity-50'}`} color='green' onClick={() => {\r\n if (isValidNumber(String(tempTextValue))) {\r\n setMode('slider')\r\n updateTemp(tempTextValue)\r\n onChange(tempTextValue)\r\n }\r\n }} />\r\n </>\r\n }\r\n </div>\r\n </div>\r\n </div>)\r\n}\r\n\r\nconst TextInput = ({ field, onChange, value, className }: IFieldInputProps): ReactElement => {\r\n const [error, setError] = useState<string | undefined>(undefined)\r\n\r\n return (\r\n <>\r\n <Input\r\n id={field.id}\r\n testId={field.id}\r\n error={error}\r\n className={className}\r\n value={value !== undefined && value !== null ? String(value) : ''}\r\n label={<FieldLabel {...field} />} onChange={(e) => {\r\n if (e !== undefined && !isNaN(+e) && e !== '') {\r\n onChange(+e)\r\n setError(undefined)\r\n } else {\r\n if (String(e).length > 0) {\r\n setError('Please enter a valid number')\r\n } else {\r\n setError(undefined)\r\n }\r\n onChange(undefined)\r\n }\r\n }} />\r\n {error !== undefined && <p className='text-red-500 text-xs py-2'>{error}</p>}\r\n </>\r\n )\r\n}\r\n\r\nconst NumberInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : ''\r\n const numberField = field as INumberField\r\n const isNull = initialValue === undefined || initialValue === null || initialValue === ''\r\n const [userSelectedNotNull, setUserSelectedNotNull] = useState<boolean>(!isNull)\r\n const canBeNull = numberField.settings?.canBeNull === true\r\n\r\n const max = numberField?.constraints?.max\r\n const fieldForInput = canBeNull\r\n ? {\r\n ...field,\r\n label: undefined,\r\n description: undefined\r\n }\r\n : field\r\n const el = (\r\n <>{\r\n max !== undefined\r\n ? <SliderInput\r\n field={fieldForInput}\r\n value={initialValue}\r\n onChange={onChange}\r\n min={numberField?.constraints?.min}\r\n max={max}\r\n step={numberField?.settings?.step} />\r\n : <TextInput\r\n field={fieldForInput}\r\n value={initialValue}\r\n onChange={onChange}\r\n className='max-w-[300px]'\r\n\r\n />\r\n }</>\r\n )\r\n\r\n if (canBeNull) {\r\n return (\r\n <div className='flex flex-col gap-2'>\r\n <Checkbox\r\n id={`${field.id}-null`}\r\n testId={`${field.id}-null`}\r\n label={<><FieldLabelText {...field}\r\n /> <FieldDescriptionTooltip {...field} /></>}\r\n value={userSelectedNotNull}\r\n onChange={(e) => {\r\n setUserSelectedNotNull(!userSelectedNotNull)\r\n if (!e) {\r\n onChange(undefined)\r\n } else {\r\n onChange(numberField?.settings?.nonNullDefaultValue ?? numberField?.defaultValue ?? value ?? 0)\r\n }\r\n }} />\r\n {userSelectedNotNull ? el : <></>}\r\n </div>\r\n )\r\n } else {\r\n return el\r\n }\r\n}\r\n\r\nexport default NumberInput\r\n"],"names":["React","Slider"],"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'\r\nimport FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type ICompositeValueType, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { utils } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst ObjectInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const initialValue = (typeof value === 'object' ? value ?? {} : {}) as ICompositeValueType\r\n if (field.type === 'object' && field.fields !== undefined) {\r\n const cl = `${field.layout === 'horizontal' ? `flex flex-row gap-4 ${field.label !== undefined ? 'px-0' : ''}` : 'flex flex-col gap-4'}`\r\n const fc = field.layout === 'horizontal' ? 'flex-1' : ''\r\n return (\r\n <div>\r\n {\r\n field.label !== undefined\r\n ? <FieldLabel {...field} />\r\n : null\r\n }\r\n <div className={`p-4 bg-slate-100 ${cl}`}>\r\n {\r\n field.fields.map((childField) => {\r\n const key = (field.path ?? [field.id]).concat(childField.id).join('.')\r\n\r\n return (\r\n <FieldCreator\r\n onChange={(e) => {\r\n if (childField.type === 'object' && childField.skip_path === true) {\r\n onChange(e)\r\n } else {\r\n initialValue[childField.id] = e\r\n onChange({ ...initialValue })\r\n }\r\n }}\r\n className={utils.makeClassName({\r\n defaultClassName: 'p-0',\r\n className: fc\r\n })}\r\n // default to null here so that FormCreator doesn't go out and look for the value again\r\n // todo: update this so that it's clearer. difference between undefined and null too small\r\n value={(\r\n childField.type === 'object' && childField.skip_path === true\r\n ? initialValue\r\n : initialValue[childField.id]\r\n ) ?? null\r\n }\r\n field={childField}\r\n key={key}\r\n />\r\n )\r\n })\r\n }\r\n </div>\r\n </div>\r\n )\r\n }\r\n return <p>Field config for {field.id} is missing &apos;fields&apos;</p>\r\n}\r\n\r\nexport default ObjectInput\r\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;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"OneOfInput.js","sources":["../../../../../../src/Form/Components/Inputs/OneOfInput.tsx"],"sourcesContent":["import { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport React, { type ReactElement } from 'react'\n\nconst OneOfInput = ({ field, value, onChange }: IFieldInputProps): ReactElement => {\n return (\n <>OneOfField not implemented yet</>\n )\n}\n\nexport default OneOfInput\n"],"names":["React"],"mappings":";;AAGM,IAAA,UAAU,GAAG,UAAC,EAA4C,EAAA;AAA1C,YAAK,CAAE,CAAK,EAAA,CAAA,KAAA,CAAA,CAAU,EAAA,CAAA;IAC1C,QACEA,cAAmC,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,gCAAA,CAAA;AAEvC;;;;"}
1
+ {"version":3,"file":"OneOfInput.js","sources":["../../../../../../src/Form/Components/Inputs/OneOfInput.tsx"],"sourcesContent":["import { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst OneOfInput = ({ field, value, onChange }: IFieldInputProps): ReactElement => {\r\n return (\r\n <>OneOfField not implemented yet</>\r\n )\r\n}\r\n\r\nexport default OneOfInput\r\n"],"names":["React"],"mappings":";;AAGM,IAAA,UAAU,GAAG,UAAC,EAA4C,EAAA;AAA1C,YAAK,CAAE,CAAK,EAAA,CAAA,KAAA,CAAA,CAAU,EAAA,CAAA;IAC1C,QACEA,cAAmC,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,gCAAA,CAAA;AAEvC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","sources":["../../../../../../src/Form/Components/Inputs/RadioGroup.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { RadioGroup } from '@axdspub/axiom-ui-utilities'\nimport React, { type ReactElement } from 'react'\n\nconst RadioInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const initialValue = value !== undefined ? value : ''\n\n if (field.type === 'radio' && field.options !== undefined) {\n return <RadioGroup\n id={field.id}\n label={<FieldLabel {...field} />}\n testId={field.id}\n options={field.options}\n value={initialValue !== undefined && initialValue !== null ? String(initialValue) : ''}\n onChange={(e) => {\n onChange(e?.value)\n }}\n />\n }\n return <p>Field config for {field.id} is missing &apos;options&apos;</p>\n}\n\nexport default RadioInput\n"],"names":["React","RadioGroup"],"mappings":";;;;;AAKM,IAAA,UAAU,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AAC1C,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,EAAE;AAErD,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;QACzD,OAAOA,cAAA,CAAA,aAAA,CAACC,eAAU,EAAA,EACd,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAED,cAAA,CAAA,aAAA,CAAC,UAAU,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA,EAChC,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EACtF,QAAQ,EAAE,UAAC,CAAC,EAAA;gBACV,QAAQ,CAAC,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC;AACpB,aAAC,GACD;;IAEN,OAAOA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;;AAAqB,QAAA,KAAK,CAAC,EAAE;gCAAoC;AAC1E;;;;"}
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../../../../../src/Form/Components/Inputs/RadioGroup.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { RadioGroup } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst RadioInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : ''\r\n\r\n if (field.type === 'radio' && field.options !== undefined) {\r\n return <RadioGroup\r\n id={field.id}\r\n label={<FieldLabel {...field} />}\r\n testId={field.id}\r\n options={field.options}\r\n value={initialValue !== undefined && initialValue !== null ? String(initialValue) : ''}\r\n onChange={(e) => {\r\n onChange(e?.value)\r\n }}\r\n />\r\n }\r\n return <p>Field config for {field.id} is missing &apos;options&apos;</p>\r\n}\r\n\r\nexport default RadioInput\r\n"],"names":["React","RadioGroup"],"mappings":";;;;;AAKM,IAAA,UAAU,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AAC1C,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,EAAE;AAErD,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;QACzD,OAAOA,cAAA,CAAA,aAAA,CAACC,eAAU,EAAA,EACd,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAED,cAAA,CAAA,aAAA,CAAC,UAAU,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA,EAChC,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EACtF,QAAQ,EAAE,UAAC,CAAC,EAAA;gBACV,QAAQ,CAAC,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC;AACpB,aAAC,GACD;;IAEN,OAAOA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;;AAAqB,QAAA,KAAK,CAAC,EAAE;gCAAoC;AAC1E;;;;"}
@@ -4,10 +4,11 @@ import { SelectInput as Select } from '../../../../node_modules/@axdspub/axiom-u
4
4
  import React__default from 'react';
5
5
 
6
6
  var SingleSelectInput = function (_a) {
7
+ var _b;
7
8
  var field = _a.field, onChange = _a.onChange, value = _a.value;
8
9
  var initialValue = value !== undefined ? value : '';
9
10
  if (field.type === 'select' && field.options !== undefined) {
10
- return React__default.createElement(Select, { id: field.id, label: React__default.createElement(FieldLabel, __assign({}, field)), testId: field.id, options: field.options, value: initialValue !== undefined && initialValue !== null ? String(initialValue) : '', onChange: function (e) {
11
+ return React__default.createElement(Select, { id: field.id, label: React__default.createElement(FieldLabel, __assign({}, field)), testId: field.id, options: field.options, includePrompt: ((_b = field === null || field === void 0 ? void 0 : field.settings) === null || _b === void 0 ? void 0 : _b.allowNull) !== false, value: initialValue !== undefined && initialValue !== null ? String(initialValue) : '', onChange: function (e) {
11
12
  onChange(e === null || e === void 0 ? void 0 : e.value);
12
13
  } });
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SingleSelect.js","sources":["../../../../../../src/Form/Components/Inputs/SingleSelect.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { SelectInput } from '@axdspub/axiom-ui-utilities'\nimport React, { type ReactElement } from 'react'\n\nconst SingleSelectInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const initialValue = value !== undefined ? value : ''\n\n if (field.type === 'select' && field.options !== undefined) {\n return <SelectInput\n id={field.id}\n label={<FieldLabel {...field} />}\n testId={field.id}\n options={field.options}\n value={initialValue !== undefined && initialValue !== null ? String(initialValue) : ''}\n onChange={(e) => {\n onChange(e?.value)\n }}\n />\n }\n return <p>Field config for {field.id} is missing &apos;options&apos;</p>\n}\n\nexport default SingleSelectInput\n"],"names":["React","SelectInput"],"mappings":";;;;;AAKM,IAAA,iBAAiB,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AACjD,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,EAAE;AAErD,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;QAC1D,OAAOA,cAAA,CAAA,aAAA,CAACC,MAAW,EAAA,EACf,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAED,cAAA,CAAA,aAAA,CAAC,UAAU,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA,EAChC,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EACtF,QAAQ,EAAE,UAAC,CAAC,EAAA;gBACV,QAAQ,CAAC,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC;AACpB,aAAC,GACD;;IAEN,OAAOA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;;AAAqB,QAAA,KAAK,CAAC,EAAE;gCAAoC;AAC1E;;;;"}
1
+ {"version":3,"file":"SingleSelect.js","sources":["../../../../../../src/Form/Components/Inputs/SingleSelect.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { SelectInput } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst SingleSelectInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : ''\r\n\r\n if (field.type === 'select' && field.options !== undefined) {\r\n return <SelectInput\r\n id={field.id}\r\n label={<FieldLabel {...field} />}\r\n testId={field.id}\r\n options={field.options}\r\n includePrompt = {field?.settings?.allowNull !== false}\r\n value={initialValue !== undefined && initialValue !== null ? String(initialValue) : ''}\r\n onChange={(e) => {\r\n onChange(e?.value)\r\n }}\r\n />\r\n }\r\n return <p>Field config for {field.id} is missing &apos;options&apos;</p>\r\n}\r\n\r\nexport default SingleSelectInput\r\n"],"names":["React","SelectInput"],"mappings":";;;;;AAKM,IAAA,iBAAiB,GAAG,UAAC,EAA4C,EAAA;;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AACjD,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,EAAE;AAErD,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;AAC1D,QAAA,OAAOA,cAAC,CAAA,aAAA,CAAAC,MAAW,EACf,EAAA,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAED,cAAC,CAAA,aAAA,CAAA,UAAU,eAAK,KAAK,CAAA,CAAI,EAChC,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,aAAa,EAAI,CAAA,CAAA,EAAA,GAAA,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,MAAA,GAAA,MAAA,GAAA,KAAK,CAAE,QAAQ,0CAAE,SAAS,MAAK,KAAK,EACrD,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EACtF,QAAQ,EAAE,UAAC,CAAC,EAAA;gBACV,QAAQ,CAAC,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC;AACpB,aAAC,GACD;;IAEN,OAAOA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;;AAAqB,QAAA,KAAK,CAAC,EAAE;gCAAoC;AAC1E;;;;"}
@@ -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'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { Input } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst StringInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const initialValue = (value !== undefined && value !== null) ? String(value) : ''\r\n /* const [val, setVal] = useState<string | undefined>(initialValue !== undefined && initialValue !== null ? String(initialValue) : '')\r\n useDeferredValue(val)\r\n const newVal = useDeferredValue(val)\r\n useEffect(() => {\r\n onChange(newVal === '' ? undefined : newVal)\r\n }, [newVal]) */\r\n return <div>\r\n <Input\r\n id={field.id}\r\n testId={field.id}\r\n value={initialValue}\r\n label={<FieldLabel {...field} />} onChange={(e) => {\r\n onChange((e === '' || e === null) ? undefined : e)\r\n }} /></div>\r\n}\r\n\r\nexport default StringInput\r\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;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Time.js","sources":["../../../../../../src/Form/Components/Inputs/Time.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport React, { type ReactElement, useState } from 'react'\n\nconst TimeInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const [error, setError] = useState<string | null>(null)\n\n if (field.type !== 'time') {\n return <p>Field config for {field.id} is missing &apos;options&apos;</p>\n }\n const { minTime, maxTime } = field.constraints ?? {}\n\n // Convert the value to the format expected by time input (hh:mm)\n const formatValue = (val: string | undefined | null): string => {\n if (!val) return ''\n try {\n // Ensure the value is in the correct format\n const date = new Date(val)\n if (isNaN(date.getTime())) return ''\n\n // Format to hh:mm\n const hours = String(date.getHours()).padStart(2, '0')\n const minutes = String(date.getMinutes()).padStart(2, '0')\n\n return `${hours}:${minutes}`\n } catch {\n return ''\n }\n }\n\n const validateTime = (timeStr: string): string | null => {\n if (!minTime && !maxTime) return null\n\n // Create reference dates for comparison using the same date\n const referenceDate = '1970-01-01'\n const inputDate = new Date(`${referenceDate}T${timeStr}`)\n const minDate = minTime ? new Date(`${referenceDate}T${minTime}`) : null\n const maxDate = maxTime ? new Date(`${referenceDate}T${maxTime}`) : null\n\n if (minDate && inputDate < minDate) {\n return `Time must be after ${minTime}`\n }\n if (maxDate && inputDate > maxDate) {\n return `Time must be before ${maxTime}`\n }\n return null\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const inputValue = e.target.value\n\n // If we have a partial time (e.g., just started typing hours), don't update\n if (inputValue && inputValue.length < 5) { // 5 is the length of a complete time value (HH:MM)\n return\n }\n\n if (inputValue) {\n const newValue = new Date(`1970-01-01T${inputValue}`).toISOString()\n const validationError = validateTime(inputValue)\n setError(validationError)\n if (!validationError) {\n onChange(newValue)\n }\n } else {\n setError(null)\n onChange(undefined)\n }\n }\n\n const getConstraintMessage = (): string | null => {\n if (!minTime && !maxTime) return null\n const parts = []\n if (minTime) parts.push(`after ${minTime}`)\n if (maxTime) parts.push(`before ${maxTime}`)\n return `Must be ${parts.join(' and ')}`\n }\n\n const constraintMessage = getConstraintMessage()\n\n return (\n <div>\n <div className=\"flex flex-wrap items-baseline gap-2\">\n <label htmlFor={field.id} className=\"flex-1 min-w-[200px]\">\n <FieldLabel {...field} />\n </label>\n {constraintMessage && (\n <span className=\"text-sm text-slate-500 italic\">\n {constraintMessage}\n </span>\n )}\n </div>\n <input\n id={field.id}\n className={`border ${error ? 'border-red-500' : 'border-slate-300'} p-2 w-full`}\n data-testid={field.id}\n type=\"time\"\n value={formatValue(value as string)}\n onChange={handleChange}\n min={minTime}\n max={maxTime}\n />\n {error && <p className=\"text-red-500 text-sm mt-1\">{error}</p>}\n </div>\n )\n}\n\nexport default TimeInput\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"Time.js","sources":["../../../../../../src/Form/Components/Inputs/Time.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport React, { type ReactElement, useState } from 'react'\r\n\r\nconst TimeInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const [error, setError] = useState<string | null>(null)\r\n\r\n if (field.type !== 'time') {\r\n return <p>Field config for {field.id} is missing &apos;options&apos;</p>\r\n }\r\n const { minTime, maxTime } = field.constraints ?? {}\r\n\r\n // Convert the value to the format expected by time input (hh:mm)\r\n const formatValue = (val: string | undefined | null): string => {\r\n if (!val) return ''\r\n try {\r\n // Ensure the value is in the correct format\r\n const date = new Date(val)\r\n if (isNaN(date.getTime())) return ''\r\n\r\n // Format to hh:mm\r\n const hours = String(date.getHours()).padStart(2, '0')\r\n const minutes = String(date.getMinutes()).padStart(2, '0')\r\n\r\n return `${hours}:${minutes}`\r\n } catch {\r\n return ''\r\n }\r\n }\r\n\r\n const validateTime = (timeStr: string): string | null => {\r\n if (!minTime && !maxTime) return null\r\n\r\n // Create reference dates for comparison using the same date\r\n const referenceDate = '1970-01-01'\r\n const inputDate = new Date(`${referenceDate}T${timeStr}`)\r\n const minDate = minTime ? new Date(`${referenceDate}T${minTime}`) : null\r\n const maxDate = maxTime ? new Date(`${referenceDate}T${maxTime}`) : null\r\n\r\n if (minDate && inputDate < minDate) {\r\n return `Time must be after ${minTime}`\r\n }\r\n if (maxDate && inputDate > maxDate) {\r\n return `Time must be before ${maxTime}`\r\n }\r\n return null\r\n }\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\r\n const inputValue = e.target.value\r\n\r\n // If we have a partial time (e.g., just started typing hours), don't update\r\n if (inputValue && inputValue.length < 5) { // 5 is the length of a complete time value (HH:MM)\r\n return\r\n }\r\n\r\n if (inputValue) {\r\n const newValue = new Date(`1970-01-01T${inputValue}`).toISOString()\r\n const validationError = validateTime(inputValue)\r\n setError(validationError)\r\n if (!validationError) {\r\n onChange(newValue)\r\n }\r\n } else {\r\n setError(null)\r\n onChange(undefined)\r\n }\r\n }\r\n\r\n const getConstraintMessage = (): string | null => {\r\n if (!minTime && !maxTime) return null\r\n const parts = []\r\n if (minTime) parts.push(`after ${minTime}`)\r\n if (maxTime) parts.push(`before ${maxTime}`)\r\n return `Must be ${parts.join(' and ')}`\r\n }\r\n\r\n const constraintMessage = getConstraintMessage()\r\n\r\n return (\r\n <div>\r\n <div className=\"flex flex-wrap items-baseline gap-2\">\r\n <label htmlFor={field.id} className=\"flex-1 min-w-[200px]\">\r\n <FieldLabel {...field} />\r\n </label>\r\n {constraintMessage && (\r\n <span className=\"text-sm text-slate-500 italic\">\r\n {constraintMessage}\r\n </span>\r\n )}\r\n </div>\r\n <input\r\n id={field.id}\r\n className={`border ${error ? 'border-red-500' : 'border-slate-300'} p-2 w-full`}\r\n data-testid={field.id}\r\n type=\"time\"\r\n value={formatValue(value as string)}\r\n onChange={handleChange}\r\n min={minTime}\r\n max={maxTime}\r\n />\r\n {error && <p className=\"text-red-500 text-sm mt-1\">{error}</p>}\r\n </div>\r\n )\r\n}\r\n\r\nexport default TimeInput\r\n"],"names":["React"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export { default as BooleanInput } from './Boolean.js';
2
+ export { default as JSONInput } from './JSONInputLoader.js';
3
+ export { default as NumberInput } from './Number.js';
4
+ export { default as TextInput } from './String.js';
5
+ export { default as LongTextInput } from './LongString.js';
6
+ export { default as SelectInput } from './SingleSelect.js';
7
+ export { default as GeoJSONInput } from './GeoJSONInputLoader.js';
8
+ export { default as DateTimeInput } from './DateTime.js';
9
+ export { default as DateInput } from './Date.js';
10
+ export { default as TimeInput } from './Time.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}