@axdspub/axiom-ui-forms 0.3.3 → 0.3.5

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 (122) hide show
  1. package/library/axiom-ui-forms.d.ts +56 -26
  2. package/library/esm/_virtual/index10.js +2 -2
  3. package/library/esm/_virtual/index3.js +2 -2
  4. package/library/esm/_virtual/index4.js +2 -2
  5. package/library/esm/_virtual/index9.js +2 -2
  6. package/library/esm/node_modules/@axdspub/axiom-maps/library/index.js +1 -1
  7. package/library/esm/node_modules/@axdspub/axiom-maps/library/openlayers/index.esm.js +1 -1
  8. package/library/esm/node_modules/@axdspub/axiom-maps/node_modules/@axdspub/axiom-ui-utilities/library/index.js +15219 -0
  9. package/library/esm/node_modules/@axdspub/axiom-maps/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -0
  10. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js +122 -90
  11. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -1
  12. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +23 -1
  13. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
  14. package/library/esm/node_modules/ajv/dist/compile/validate/index.js +1 -1
  15. package/library/esm/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
  16. package/library/esm/node_modules/ajv/dist/vocabularies/discriminator/index.js +1 -1
  17. package/library/esm/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
  18. package/library/esm/node_modules/lodash-es/_SetCache.js +28 -0
  19. package/library/esm/node_modules/lodash-es/_SetCache.js.map +1 -0
  20. package/library/esm/node_modules/lodash-es/_arrayLikeKeys.js +8 -1
  21. package/library/esm/node_modules/lodash-es/_arrayLikeKeys.js.map +1 -1
  22. package/library/esm/node_modules/lodash-es/_arraySome.js +24 -0
  23. package/library/esm/node_modules/lodash-es/_arraySome.js.map +1 -0
  24. package/library/esm/node_modules/lodash-es/_baseIsEqual.js +29 -0
  25. package/library/esm/node_modules/lodash-es/_baseIsEqual.js.map +1 -0
  26. package/library/esm/node_modules/lodash-es/_baseIsEqualDeep.js +84 -0
  27. package/library/esm/node_modules/lodash-es/_baseIsEqualDeep.js.map +1 -0
  28. package/library/esm/node_modules/lodash-es/_baseKeys.js +31 -0
  29. package/library/esm/node_modules/lodash-es/_baseKeys.js.map +1 -0
  30. package/library/esm/node_modules/lodash-es/_baseTrim.js +20 -0
  31. package/library/esm/node_modules/lodash-es/_baseTrim.js.map +1 -0
  32. package/library/esm/node_modules/lodash-es/_cacheHas.js +14 -0
  33. package/library/esm/node_modules/lodash-es/_cacheHas.js.map +1 -0
  34. package/library/esm/node_modules/lodash-es/_equalArrays.js +85 -0
  35. package/library/esm/node_modules/lodash-es/_equalArrays.js.map +1 -0
  36. package/library/esm/node_modules/lodash-es/_equalByTag.js +113 -0
  37. package/library/esm/node_modules/lodash-es/_equalByTag.js.map +1 -0
  38. package/library/esm/node_modules/lodash-es/_equalObjects.js +91 -0
  39. package/library/esm/node_modules/lodash-es/_equalObjects.js.map +1 -0
  40. package/library/esm/node_modules/lodash-es/_getAllKeys.js +17 -0
  41. package/library/esm/node_modules/lodash-es/_getAllKeys.js.map +1 -0
  42. package/library/esm/node_modules/lodash-es/_mapToArray.js +19 -0
  43. package/library/esm/node_modules/lodash-es/_mapToArray.js.map +1 -0
  44. package/library/esm/node_modules/lodash-es/_nativeKeys.js +7 -0
  45. package/library/esm/node_modules/lodash-es/_nativeKeys.js.map +1 -0
  46. package/library/esm/node_modules/lodash-es/_setCacheAdd.js +20 -0
  47. package/library/esm/node_modules/lodash-es/_setCacheAdd.js.map +1 -0
  48. package/library/esm/node_modules/lodash-es/_setCacheHas.js +15 -0
  49. package/library/esm/node_modules/lodash-es/_setCacheHas.js.map +1 -0
  50. package/library/esm/node_modules/lodash-es/_setToArray.js +19 -0
  51. package/library/esm/node_modules/lodash-es/_setToArray.js.map +1 -0
  52. package/library/esm/node_modules/lodash-es/_trimmedEndIndex.js +20 -0
  53. package/library/esm/node_modules/lodash-es/_trimmedEndIndex.js.map +1 -0
  54. package/library/esm/node_modules/lodash-es/debounce.js +192 -0
  55. package/library/esm/node_modules/lodash-es/debounce.js.map +1 -0
  56. package/library/esm/node_modules/lodash-es/isEqual.js +36 -0
  57. package/library/esm/node_modules/lodash-es/isEqual.js.map +1 -0
  58. package/library/esm/node_modules/lodash-es/keys.js +38 -0
  59. package/library/esm/node_modules/lodash-es/keys.js.map +1 -0
  60. package/library/esm/node_modules/lodash-es/keysIn.js +1 -1
  61. package/library/esm/node_modules/lodash-es/keysIn.js.map +1 -1
  62. package/library/esm/node_modules/lodash-es/now.js +24 -0
  63. package/library/esm/node_modules/lodash-es/now.js.map +1 -0
  64. package/library/esm/node_modules/lodash-es/toNumber.js +65 -0
  65. package/library/esm/node_modules/lodash-es/toNumber.js.map +1 -0
  66. package/library/esm/src/Form/Components/FieldCreator.js +86 -31
  67. package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
  68. package/library/esm/src/Form/Components/FieldLabel.js +90 -19
  69. package/library/esm/src/Form/Components/FieldLabel.js.map +1 -1
  70. package/library/esm/src/Form/Components/InlineMarkdown.js +4 -0
  71. package/library/esm/src/Form/Components/InlineMarkdown.js.map +1 -1
  72. package/library/esm/src/Form/Components/Inputs/Boolean.js +8 -6
  73. package/library/esm/src/Form/Components/Inputs/Boolean.js.map +1 -1
  74. package/library/esm/src/Form/Components/Inputs/Constant.js +2 -2
  75. package/library/esm/src/Form/Components/Inputs/Constant.js.map +1 -1
  76. package/library/esm/src/Form/Components/Inputs/Date.js +3 -4
  77. package/library/esm/src/Form/Components/Inputs/Date.js.map +1 -1
  78. package/library/esm/src/Form/Components/Inputs/DateTime.js +3 -4
  79. package/library/esm/src/Form/Components/Inputs/DateTime.js.map +1 -1
  80. package/library/esm/src/Form/Components/Inputs/GeoJSON.js +5 -4
  81. package/library/esm/src/Form/Components/Inputs/GeoJSON.js.map +1 -1
  82. package/library/esm/src/Form/Components/Inputs/Geometry.js +20 -11
  83. package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
  84. package/library/esm/src/Form/Components/Inputs/JSON.js +6 -5
  85. package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -1
  86. package/library/esm/src/Form/Components/Inputs/LongString.js +5 -5
  87. package/library/esm/src/Form/Components/Inputs/LongString.js.map +1 -1
  88. package/library/esm/src/Form/Components/Inputs/Number.js +49 -35
  89. package/library/esm/src/Form/Components/Inputs/Number.js.map +1 -1
  90. package/library/esm/src/Form/Components/Inputs/Object.js +46 -11
  91. package/library/esm/src/Form/Components/Inputs/Object.js.map +1 -1
  92. package/library/esm/src/Form/Components/Inputs/RadioGroup.js +2 -3
  93. package/library/esm/src/Form/Components/Inputs/RadioGroup.js.map +1 -1
  94. package/library/esm/src/Form/Components/Inputs/SingleSelect.js +2 -3
  95. package/library/esm/src/Form/Components/Inputs/SingleSelect.js.map +1 -1
  96. package/library/esm/src/Form/Components/Inputs/String.js +5 -11
  97. package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
  98. package/library/esm/src/Form/Components/Inputs/Time.js +2 -3
  99. package/library/esm/src/Form/Components/Inputs/Time.js.map +1 -1
  100. package/library/esm/src/Form/Creator/FormCreator.js +6 -6
  101. package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
  102. package/library/esm/src/Form/Creator/FormFields.js +1 -1
  103. package/library/esm/src/Form/Creator/FormFields.js.map +1 -1
  104. package/library/esm/src/Form/Creator/FormHeader.js +2 -1
  105. package/library/esm/src/Form/Creator/FormHeader.js.map +1 -1
  106. package/library/esm/src/Form/Creator/FormSection.js +1 -1
  107. package/library/esm/src/Form/Creator/FormSection.js.map +1 -1
  108. package/library/esm/src/Form/Creator/Page.js +7 -2
  109. package/library/esm/src/Form/Creator/Page.js.map +1 -1
  110. package/library/esm/src/Form/Creator/Wizard.js +6 -6
  111. package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
  112. package/library/esm/src/utils/getters.js +36 -6
  113. package/library/esm/src/utils/getters.js.map +1 -1
  114. package/library/esm/src/utils/helpers.js +11 -0
  115. package/library/esm/src/utils/helpers.js.map +1 -0
  116. package/library/esm/src/utils/manipulators.js +30 -11
  117. package/library/esm/src/utils/manipulators.js.map +1 -1
  118. package/library/esm/src/utils/schemaToFormHelpers.js +2 -2
  119. package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -1
  120. package/library/esm/src/utils/validators.js +94 -15
  121. package/library/esm/src/utils/validators.js.map +1 -1
  122. package/package.json +5 -3
@@ -0,0 +1,65 @@
1
+ import baseTrim from './_baseTrim.js';
2
+ import isObject from './isObject.js';
3
+ import isSymbol from './isSymbol.js';
4
+
5
+ /** Used as references for various `Number` constants. */
6
+ var NAN = 0 / 0;
7
+
8
+ /** Used to detect bad signed hexadecimal string values. */
9
+ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
10
+
11
+ /** Used to detect binary string values. */
12
+ var reIsBinary = /^0b[01]+$/i;
13
+
14
+ /** Used to detect octal string values. */
15
+ var reIsOctal = /^0o[0-7]+$/i;
16
+
17
+ /** Built-in method references without a dependency on `root`. */
18
+ var freeParseInt = parseInt;
19
+
20
+ /**
21
+ * Converts `value` to a number.
22
+ *
23
+ * @static
24
+ * @memberOf _
25
+ * @since 4.0.0
26
+ * @category Lang
27
+ * @param {*} value The value to process.
28
+ * @returns {number} Returns the number.
29
+ * @example
30
+ *
31
+ * _.toNumber(3.2);
32
+ * // => 3.2
33
+ *
34
+ * _.toNumber(Number.MIN_VALUE);
35
+ * // => 5e-324
36
+ *
37
+ * _.toNumber(Infinity);
38
+ * // => Infinity
39
+ *
40
+ * _.toNumber('3.2');
41
+ * // => 3.2
42
+ */
43
+ function toNumber(value) {
44
+ if (typeof value == 'number') {
45
+ return value;
46
+ }
47
+ if (isSymbol(value)) {
48
+ return NAN;
49
+ }
50
+ if (isObject(value)) {
51
+ var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
52
+ value = isObject(other) ? (other + '') : other;
53
+ }
54
+ if (typeof value != 'string') {
55
+ return value === 0 ? value : +value;
56
+ }
57
+ value = baseTrim(value);
58
+ var isBinary = reIsBinary.test(value);
59
+ return (isBinary || reIsOctal.test(value))
60
+ ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
61
+ : (reIsBadHex.test(value) ? NAN : +value);
62
+ }
63
+
64
+ export { toNumber as default };
65
+ //# sourceMappingURL=toNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toNumber.js","sources":["../../../../node_modules/lodash-es/toNumber.js"],"sourcesContent":["import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n"],"names":[],"mappings":";;;;AAIA;AACA,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;;AAEf;AACA,IAAI,UAAU,GAAG,oBAAoB;;AAErC;AACA,IAAI,UAAU,GAAG,YAAY;;AAE7B;AACA,IAAI,SAAS,GAAG,aAAa;;AAE7B;AACA,IAAI,YAAY,GAAG,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;AAChC,IAAI,OAAO,KAAK;AAChB;AACA,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvB,IAAI,OAAO,GAAG;AACd;AACA,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvB,IAAI,IAAI,KAAK,GAAG,OAAO,KAAK,CAAC,OAAO,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK;AAC5E,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK;AAClD;AACA,EAAE,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;AAChC,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK;AACvC;AACA,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AACzB,EAAE,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACvC,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC;AACnD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;AAC7C;;;;","x_google_ignoreList":[0]}
@@ -2,13 +2,15 @@ import { __assign, __spreadArray } from '../../../node_modules/tslib/tslib.es6.j
2
2
  import FieldLabel from './FieldLabel.js';
3
3
  import inputMap from './Inputs/inputMap.js';
4
4
  import { useFormContext } from '../Creator/FormContextProvider.js';
5
- import { getFieldValue } from '../../utils/getters.js';
6
- import { createOneOfMultipleField, cleanAndUpdateFormValuesWithFieldValue, updateFormValuesWithFieldValue } from '../../utils/manipulators.js';
5
+ import { getFieldValue, makeJsonPath } from '../../utils/getters.js';
6
+ import { createOneOfMultipleField, cleanAndUpdateFormValuesWithFieldValue } from '../../utils/manipulators.js';
7
7
  import { checkCondition } from '../../utils/validators.js';
8
8
  import { utils as index$1, Button } from '../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
9
9
  import { ExclamationTriangleIcon, PlusIcon, CopyIcon, CheckIcon, Cross1Icon, TrashIcon } from '../../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
10
10
  import React__default, { useState } from 'react';
11
11
 
12
+ var SHOW_DEBUG = import.meta.env.VITE_SHOW_DEBUG === 'true';
13
+ var disabledClassName = ''; // 'opacity-50 pointer-events-none cursor-not-allowed'
12
14
  var toolButtonClass = 'border-white hover:border-single hover:border-1 hover:border-slate-400';
13
15
  var DeleteMultiple = function (_a) {
14
16
  var doDelete = _a.doDelete;
@@ -32,26 +34,35 @@ var DeleteMultiple = function (_a) {
32
34
  "Delete ",
33
35
  React__default.createElement(TrashIcon, { className: 'inline ml-2 fill-white' }))));
34
36
  };
37
+ var getFieldWrapperClass = function (field) {
38
+ var _a, _b;
39
+ var cl = [];
40
+ var level = (_a = field.level) !== null && _a !== void 0 ? _a : 0;
41
+ var type = field.type;
42
+ var multiple = (_b = field.multiple) !== null && _b !== void 0 ? _b : false;
43
+ if ((type === 'object' && level > 1) || multiple) {
44
+ cl.push('p-4');
45
+ if (level > 0) {
46
+ cl.push(level % 2 ? 'bg-slate-200' : 'bg-slate-100');
47
+ }
48
+ }
49
+ return cl.join(' ');
50
+ };
35
51
  var OneOfMultiple = function (_a) {
36
- var InputComponent = _a.InputComponent, field = _a.field, value = _a.value, index = _a.index, onChange = _a.onChange, values = _a.values;
52
+ var InputComponent = _a.InputComponent, field = _a.field, value = _a.value, index = _a.index, onChange = _a.onChange, values = _a.values, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
37
53
  var addValue = function (v) {
38
54
  var newValues = __spreadArray([], values, true);
39
55
  newValues.splice(index + 1, 0, v);
40
56
  onChange(newValues);
41
57
  };
42
- return (React__default.createElement("div", { className: 'flex flex-col gap-2' },
43
- React__default.createElement(InputComponent, { field: field, value: value, onChange: function (v) {
58
+ return (React__default.createElement("div", { className: "flex flex-col gap-2".concat(disabled ? " ".concat(disabledClassName) : '', " py-2 ").concat(getFieldWrapperClass(field)), "data-testid": "field-".concat(field.id, "-").concat(index) },
59
+ React__default.createElement(InputComponent, { field: field, value: value, disabled: disabled, onChange: function (v) {
44
60
  var newValues = __spreadArray([], values, true);
45
61
  newValues[index] = v;
46
62
  onChange(newValues);
47
63
  } }),
48
- React__default.createElement("div", { className: 'flex flex-row justify-between w-full p-2' },
49
- index > 0 && (React__default.createElement(DeleteMultiple, { doDelete: function () {
50
- var newValues = __spreadArray([], values, true);
51
- newValues.splice(index, 1);
52
- onChange(newValues);
53
- } })),
54
- React__default.createElement("div", { className: 'ml-auto flex gap-2' },
64
+ React__default.createElement("div", { className: 'flex flex-row w-full p-2 gap-4' },
65
+ React__default.createElement("div", { className: 'flex gap-2' },
55
66
  React__default.createElement(Button, { size: 'xs', className: toolButtonClass, onClick: function () {
56
67
  addValue(null);
57
68
  } },
@@ -61,20 +72,30 @@ var OneOfMultiple = function (_a) {
61
72
  addValue(structuredClone(value));
62
73
  } },
63
74
  "Duplicate ",
64
- React__default.createElement(CopyIcon, { className: 'inline ml-2' }))))));
75
+ React__default.createElement(CopyIcon, { className: 'inline ml-2' }))),
76
+ index > 0 && (React__default.createElement(DeleteMultiple, { doDelete: function () {
77
+ var newValues = __spreadArray([], values, true);
78
+ newValues.splice(index, 1);
79
+ onChange(newValues);
80
+ } })))));
65
81
  };
66
82
  var MultipleFieldCreator = function (_a) {
67
- var field = _a.field, onChange = _a.onChange, value = _a.value;
68
- var _b = useFormContext(), formValues = _b.formValues, setFormValues = _b.setFormValues, inputOverrides = _b.inputOverrides;
83
+ var field = _a.field, onChange = _a.onChange, _b = _a.disabled, disabled = _b === void 0 ? false : _b, value = _a.value;
84
+ var _c = useFormContext(), formValues = _c.formValues, setFormValues = _c.setFormValues, inputOverrides = _c.inputOverrides, form = _c.form;
69
85
  var defaultOnChange = function (v) {
70
- var formValuesCopy = updateFormValuesWithFieldValue(field, v, formValues);
71
- setFormValues(formValuesCopy);
86
+ var formValuesCopyClean = cleanAndUpdateFormValuesWithFieldValue({
87
+ form: form,
88
+ field: field,
89
+ value: v,
90
+ formValues: formValues
91
+ });
92
+ setFormValues(formValuesCopyClean);
72
93
  };
73
94
  var initialVal = value !== undefined ? value : getFieldValue(field, formValues);
74
95
  var initialValues = Array.isArray(initialVal) ? initialVal : [initialVal];
75
96
  if (field.type === 'object' && field.skip_path === true && field.multiple === true) {
76
- return React__default.createElement("div", { className: 'p-4 bg-slate-100' },
77
- React__default.createElement(FieldLabel, __assign({}, field)),
97
+ return React__default.createElement("div", { className: "p-4 bg-slate-100".concat(disabled ? " ".concat(disabledClassName) : '') },
98
+ React__default.createElement(FieldLabel, { field: field, disabled: disabled }),
78
99
  React__default.createElement("p", { className: 'text-rose-700' },
79
100
  React__default.createElement(ExclamationTriangleIcon, { className: 'inline w-4 h-4 mr-2' }),
80
101
  " Error with field ",
@@ -82,18 +103,19 @@ var MultipleFieldCreator = function (_a) {
82
103
  " Object fields with multiple true and skip_path true are not supported."));
83
104
  }
84
105
  var InputComponent = __assign(__assign({}, inputMap), (inputOverrides !== null && inputOverrides !== void 0 ? inputOverrides : {}))[field.type];
85
- return React__default.createElement("div", null, initialValues === null || initialValues === void 0 ? void 0 : initialValues.map(function (value, index) {
86
- return React__default.createElement(OneOfMultiple, { key: "".concat(field.id, "-").concat(index), InputComponent: InputComponent, field: createOneOfMultipleField(field, index), value: value, index: index, onChange: onChange !== null && onChange !== void 0 ? onChange : defaultOnChange, values: initialValues });
106
+ return React__default.createElement("div", { className: 'flex flex-col divide-y-2 divide-opacity-50 divide-slate-400 divide-dashed' }, initialValues === null || initialValues === void 0 ? void 0 : initialValues.map(function (va, index) {
107
+ return React__default.createElement("div", { key: "".concat(field.id, "-").concat(index) },
108
+ SHOW_DEBUG && React__default.createElement(React__default.Fragment, null,
109
+ React__default.createElement("span", { className: 'text-red-500' }, makeJsonPath(field)),
110
+ React__default.createElement("span", { className: 'text-green-500' }, makeJsonPath(createOneOfMultipleField(field, index)))),
111
+ React__default.createElement(OneOfMultiple, { key: "".concat(field.id, "-").concat(index), InputComponent: InputComponent, field: createOneOfMultipleField(field, index), value: va, index: index, onChange: onChange !== null && onChange !== void 0 ? onChange : defaultOnChange, values: initialValues, disabled: disabled }));
87
112
  }));
88
113
  };
89
114
  var FieldCreator = function (_a) {
90
115
  var _b;
91
- var field = _a.field, value = _a.value, onChange = _a.onChange, className = _a.className, _c = _a.defaultClassName, defaultClassName = _c === void 0 ? 'py-2 flex flex-col gap-8 flex-grow h-full' : _c;
116
+ var field = _a.field, value = _a.value, onChange = _a.onChange, className = _a.className, disabled = _a.disabled, _c = _a.defaultClassName, defaultClassName = _c === void 0 ? 'flex flex-col gap-8 flex-grow h-full' : _c, conditionResult = _a.conditionResult;
92
117
  var _d = useFormContext(), form = _d.form, inputOverrides = _d.inputOverrides, setFormValues = _d.setFormValues, formValues = _d.formValues;
93
118
  var InputComponent = __assign(__assign({}, inputMap), (inputOverrides !== null && inputOverrides !== void 0 ? inputOverrides : {}))[field.type];
94
- if (!checkCondition(field, formValues)) {
95
- return null;
96
- }
97
119
  var defaultOnChange = function (v) {
98
120
  var formValuesCopyClean = cleanAndUpdateFormValuesWithFieldValue({
99
121
  form: form,
@@ -104,14 +126,47 @@ var FieldCreator = function (_a) {
104
126
  setFormValues(formValuesCopyClean);
105
127
  };
106
128
  var onChangeFn = onChange !== null && onChange !== void 0 ? onChange : defaultOnChange;
129
+ /* useEffect(() => {
130
+ const fieldValue = getFieldValue(field, formValues)
131
+ if (
132
+ !(
133
+ (value === undefined || value === null) && (fieldValue === undefined || fieldValue === null)
134
+ ) &&
135
+ value !== fieldValue
136
+ ) {
137
+ onChangeFn(value)
138
+ }
139
+ }, [value]) */
140
+ conditionResult = conditionResult !== null && conditionResult !== void 0 ? conditionResult : checkCondition(field, formValues);
141
+ if ((conditionResult.pass && conditionResult.result === 'exclude') ||
142
+ (!conditionResult.pass && conditionResult.result === 'include')) {
143
+ return null;
144
+ }
145
+ else if ((conditionResult.result === 'disable' && conditionResult.pass) ||
146
+ (conditionResult.result === 'enable' && !conditionResult.pass)) {
147
+ disabled = true;
148
+ }
149
+ else if (conditionResult.result === 'enable' && conditionResult.pass) {
150
+ disabled = false;
151
+ }
152
+ if (conditionResult.newDefaultValue !== undefined) {
153
+ if (value !== conditionResult.newDefaultValue) {
154
+ value = conditionResult.newDefaultValue;
155
+ return React__default.createElement(FieldCreator, { field: field, value: value, onChange: onChange, className: className, defaultClassName: defaultClassName, disabled: disabled, conditionResult: __assign(__assign({}, conditionResult), { newDefaultValue: undefined }) });
156
+ }
157
+ }
107
158
  var initialValue = value !== undefined ? value : getFieldValue(field, formValues);
108
- return InputComponent !== undefined
159
+ return React__default.createElement(React__default.Fragment, null, InputComponent !== undefined
109
160
  ? React__default.createElement("div", { className: index$1.makeClassName({
110
161
  className: className,
111
- defaultClassName: defaultClassName
162
+ defaultClassName: defaultClassName,
163
+ extras: [
164
+ disabled ? disabledClassName : undefined,
165
+ getFieldWrapperClass(field)
166
+ ]
112
167
  }) }, field.multiple === true
113
- ? React__default.createElement(MultipleFieldCreator, { field: field, onChange: onChange })
114
- : React__default.createElement(InputComponent, { field: field, onChange: onChangeFn, value: Array.isArray(initialValue) ? initialValue[0] : initialValue }))
168
+ ? React__default.createElement(MultipleFieldCreator, { field: field, disabled: disabled, onChange: onChange })
169
+ : React__default.createElement(InputComponent, { field: field, disabled: disabled, onChange: onChangeFn, value: Array.isArray(initialValue) ? initialValue[0] : initialValue }))
115
170
  : React__default.createElement("div", null,
116
171
  React__default.createElement("p", { className: 'font-bold mb-2' },
117
172
  React__default.createElement(ExclamationTriangleIcon, { className: 'inline' }),
@@ -122,8 +177,8 @@ var FieldCreator = function (_a) {
122
177
  React__default.createElement("span", { className: 'p-2 bg-slate-700 text-white font-mono text-xs' }, field.type),
123
178
  " at ",
124
179
  React__default.createElement("span", { className: 'text-rose-800 font-mono text-xs bg-slate-300 p-2' }, "id"),
125
- React__default.createElement("span", { className: 'p-2 bg-slate-700 text-white font-mono text-xs' }, field.id)));
180
+ React__default.createElement("span", { className: 'p-2 bg-slate-700 text-white font-mono text-xs' }, field.id))));
126
181
  };
127
182
 
128
- export { FieldCreator as default };
183
+ export { MultipleFieldCreator, FieldCreator as default };
129
184
  //# sourceMappingURL=FieldCreator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldCreator.js","sources":["../../../../../src/Form/Components/FieldCreator.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport inputMap from '@/Form/Components/Inputs/inputMap'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { type IFieldInputProps, type IFormField, type IValueChangeFn, type IValueType } from '@/Form/Creator/FormCreatorTypes'\r\nimport { getFieldValue } from '@/utils/getters'\r\nimport { cleanAndUpdateFormValuesWithFieldValue, createOneOfMultipleField, updateFormValuesWithFieldValue } from '@/utils/manipulators'\r\nimport { checkCondition } from '@/utils/validators'\r\nimport { Button, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { CheckIcon, CopyIcon, Cross1Icon, ExclamationTriangleIcon, PlusIcon, TrashIcon } from '@radix-ui/react-icons'\r\nimport React, { useState, type ReactElement } from 'react'\r\n\r\ninterface IFieldCreator {\r\n field: IFormField\r\n onChange?: IValueChangeFn\r\n className?: string\r\n defaultClassName?: string\r\n value?: IValueType | IValueType[]\r\n}\r\n\r\nconst toolButtonClass = 'border-white hover:border-single hover:border-1 hover:border-slate-400'\r\n\r\nconst DeleteMultiple = ({\r\n doDelete\r\n}: {\r\n doDelete: () => void\r\n}): ReactElement => {\r\n const [confirm, setConfirm] = useState(false)\r\n\r\n return (\r\n <>\r\n {\r\n confirm\r\n ? <p className='flex flex-row gap-2 text-sm'><span className='text-slate-600'>Deleting: </span> Are you sure?\r\n <Button size='xs' type='submit'\r\n onClick={() => {\r\n doDelete()\r\n setConfirm(false)\r\n }}>Yes <CheckIcon className='inline ml-2' />\r\n </Button>\r\n <Button size='xs' type='alert'\r\n onClick={() => {\r\n setConfirm(false)\r\n }}>Cancel <Cross1Icon className='inline ml-2' />\r\n </Button>\r\n </p>\r\n : <Button size='xs' className={toolButtonClass} onClick={() => { setConfirm(true) }}>\r\n Delete <TrashIcon className='inline ml-2 fill-white' />\r\n </Button>\r\n }\r\n </>\r\n )\r\n}\r\n\r\nconst OneOfMultiple = ({\r\n InputComponent,\r\n field,\r\n value,\r\n index,\r\n onChange,\r\n values\r\n\r\n}: {\r\n InputComponent: React.FC<IFieldInputProps>\r\n field: IFormField\r\n value: IValueType\r\n index: number\r\n onChange: (v: IValueType[] | undefined) => void\r\n values: IValueType[]\r\n}): ReactElement => {\r\n const addValue = (v: IValueType | null): void => {\r\n const newValues = [...values]\r\n newValues.splice(index + 1, 0, v)\r\n onChange(newValues)\r\n }\r\n\r\n return (\r\n <div className='flex flex-col gap-2'>\r\n <InputComponent\r\n field={field}\r\n value={value}\r\n onChange={(v) => {\r\n const newValues = [...values]\r\n newValues[index] = v as IValueType\r\n onChange(newValues)\r\n }}\r\n />\r\n\r\n <div className='flex flex-row justify-between w-full p-2'>\r\n {index > 0 && (\r\n <DeleteMultiple doDelete={() => {\r\n const newValues = [...values]\r\n newValues.splice(index, 1)\r\n onChange(newValues)\r\n }} />\r\n )}\r\n <div className='ml-auto flex gap-2'>\r\n <Button\r\n size='xs'\r\n className={toolButtonClass}\r\n onClick={() => {\r\n addValue(null)\r\n }}>Add <PlusIcon className='inline ml-2' /></Button>\r\n <Button\r\n size='xs'\r\n className={toolButtonClass}\r\n onClick={() => {\r\n addValue(structuredClone(value))\r\n }}>Duplicate <CopyIcon className='inline ml-2' />\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nconst MultipleFieldCreator = ({\r\n field,\r\n onChange,\r\n value\r\n}: IFieldCreator): ReactElement => {\r\n const { formValues, setFormValues, inputOverrides } = useFormContext()\r\n const defaultOnChange = (v: IValueType[] | undefined): void => {\r\n const formValuesCopy = updateFormValuesWithFieldValue(field, v, formValues)\r\n setFormValues(formValuesCopy)\r\n }\r\n\r\n const initialVal = value !== undefined ? value : getFieldValue(field, formValues)\r\n const initialValues = Array.isArray(initialVal) ? initialVal : [initialVal]\r\n\r\n if (field.type === 'object' && field.skip_path === true && field.multiple === true) {\r\n return <div className='p-4 bg-slate-100'>\r\n <FieldLabel {...field} />\r\n <p className='text-rose-700'><ExclamationTriangleIcon className='inline w-4 h-4 mr-2' /> Error with field <span className='font-sans p-2 text-xs bg-slate-200'>{field.id}</span> Object fields with multiple true and skip_path true are not supported.</p>\r\n </div>\r\n }\r\n\r\n const InputComponent = {\r\n ...inputMap,\r\n ...(inputOverrides ?? {})\r\n }[field.type]\r\n\r\n return <div>\r\n {\r\n initialValues?.map((value, index) => {\r\n return <OneOfMultiple\r\n key={`${field.id}-${index}`}\r\n InputComponent={InputComponent}\r\n field={createOneOfMultipleField(field, index)}\r\n value={value}\r\n index={index}\r\n onChange={onChange ?? defaultOnChange}\r\n values={initialValues}\r\n />\r\n })\r\n }\r\n </div>\r\n}\r\n\r\nconst FieldCreator = ({\r\n field,\r\n value,\r\n onChange,\r\n className,\r\n defaultClassName = 'py-2 flex flex-col gap-8 flex-grow h-full'\r\n}: IFieldCreator): ReactElement | null => {\r\n const { form, inputOverrides, setFormValues, formValues } = useFormContext()\r\n const InputComponent = {\r\n ...inputMap,\r\n ...(inputOverrides ?? {})\r\n }[field.type]\r\n\r\n if (!checkCondition(field, formValues)) {\r\n return null\r\n }\r\n\r\n const defaultOnChange = (v: IValueType | IValueType[] | undefined): void => {\r\n const formValuesCopyClean = cleanAndUpdateFormValuesWithFieldValue({\r\n form,\r\n field,\r\n value: v,\r\n formValues\r\n })\r\n setFormValues(formValuesCopyClean)\r\n }\r\n const onChangeFn = onChange ?? defaultOnChange\r\n\r\n const initialValue = value !== undefined ? value : getFieldValue(field, formValues)\r\n\r\n return InputComponent !== undefined\r\n ? <div className={utils.makeClassName({\r\n className,\r\n defaultClassName\r\n })}>{\r\n field.multiple === true\r\n ? <MultipleFieldCreator\r\n field={field}\r\n onChange={onChange}\r\n />\r\n : <InputComponent\r\n field={field}\r\n onChange={onChangeFn}\r\n value={Array.isArray(initialValue) ? initialValue[0] : initialValue}\r\n />\r\n\r\n }</div>\r\n : <div>\r\n <p className='font-bold mb-2'><ExclamationTriangleIcon className='inline' /> {field.label ?? ''}</p>\r\n <p className='p-4 text-sm bg-slate-100'>No component definition for <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>type</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.type}</span> at <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>id</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.id}</span></p>\r\n </div>\r\n}\r\n\r\nexport default FieldCreator\r\n"],"names":["React","utils"],"mappings":"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"}
1
+ {"version":3,"file":"FieldCreator.js","sources":["../../../../../src/Form/Components/FieldCreator.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport inputMap from '@/Form/Components/Inputs/inputMap'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { type ICheckConditionResult, type IFieldInputProps, type IFormField, type IValueChangeFn, type IValueType } from '@/Form/Creator/FormCreatorTypes'\r\nimport { getFieldValue, makeJsonPath } from '@/utils/getters'\r\nimport { cleanAndUpdateFormValuesWithFieldValue, createOneOfMultipleField } from '@/utils/manipulators'\r\nimport { checkCondition } from '@/utils/validators'\r\nimport { Button, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { CheckIcon, CopyIcon, Cross1Icon, ExclamationTriangleIcon, PlusIcon, TrashIcon } from '@radix-ui/react-icons'\r\nimport React, { useState, type ReactElement } from 'react'\r\n\r\nconst SHOW_DEBUG = import.meta.env.VITE_SHOW_DEBUG === 'true'\r\nconst disabledClassName = '' // 'opacity-50 pointer-events-none cursor-not-allowed'\r\n\r\ninterface IFieldCreator {\r\n field: IFormField\r\n onChange?: IValueChangeFn\r\n className?: string\r\n defaultClassName?: string\r\n value?: IValueType | IValueType[]\r\n disabled?: boolean\r\n conditionResult?: ICheckConditionResult\r\n}\r\n\r\nconst toolButtonClass = 'border-white hover:border-single hover:border-1 hover:border-slate-400'\r\n\r\nconst DeleteMultiple = ({\r\n doDelete\r\n}: {\r\n doDelete: () => void\r\n}): ReactElement => {\r\n const [confirm, setConfirm] = useState(false)\r\n\r\n return (\r\n <>\r\n {\r\n confirm\r\n ? <p className='flex flex-row gap-2 text-sm'><span className='text-slate-600'>Deleting: </span> Are you sure?\r\n <Button size='xs' type='submit'\r\n onClick={() => {\r\n doDelete()\r\n setConfirm(false)\r\n }}>Yes <CheckIcon className='inline ml-2' />\r\n </Button>\r\n <Button size='xs' type='alert'\r\n onClick={() => {\r\n setConfirm(false)\r\n }}>Cancel <Cross1Icon className='inline ml-2' />\r\n </Button>\r\n </p>\r\n : <Button size='xs' className={toolButtonClass} onClick={() => { setConfirm(true) }}>\r\n Delete <TrashIcon className='inline ml-2 fill-white' />\r\n </Button>\r\n }\r\n </>\r\n )\r\n}\r\n\r\nconst getFieldWrapperClass = (field: IFormField): string => {\r\n const cl = []\r\n const level = field.level ?? 0\r\n const type = field.type\r\n const multiple = field.multiple ?? false\r\n if ((type === 'object' && level > 1) || multiple) {\r\n cl.push('p-4')\r\n if (level > 0) {\r\n cl.push(level % 2 ? 'bg-slate-200' : 'bg-slate-100')\r\n }\r\n }\r\n return cl.join(' ')\r\n}\r\n\r\nconst OneOfMultiple = ({\r\n InputComponent,\r\n field,\r\n value,\r\n index,\r\n onChange,\r\n values,\r\n disabled = false\r\n\r\n}: {\r\n InputComponent: React.FC<IFieldInputProps>\r\n field: IFormField\r\n value: IValueType\r\n index: number\r\n onChange: (v: IValueType[] | undefined) => void\r\n values: IValueType[]\r\n disabled?: boolean\r\n}): ReactElement => {\r\n const addValue = (v: IValueType | null): void => {\r\n const newValues = [...values]\r\n newValues.splice(index + 1, 0, v)\r\n onChange(newValues)\r\n }\r\n\r\n return (\r\n <div className={`flex flex-col gap-2${disabled ? ` ${disabledClassName}` : ''} py-2 ${getFieldWrapperClass(field)}`} data-testid={`field-${field.id}-${index}`}>\r\n <InputComponent\r\n field={field}\r\n value={value}\r\n disabled={disabled}\r\n onChange={(v) => {\r\n const newValues = [...values]\r\n newValues[index] = v as IValueType\r\n onChange(newValues)\r\n }}\r\n />\r\n <div className='flex flex-row w-full p-2 gap-4'>\r\n\r\n <div className='flex gap-2'>\r\n <Button\r\n size='xs'\r\n className={toolButtonClass}\r\n onClick={() => {\r\n addValue(null)\r\n }}>Add <PlusIcon className='inline ml-2' /></Button>\r\n <Button\r\n size='xs'\r\n className={toolButtonClass}\r\n onClick={() => {\r\n addValue(structuredClone(value))\r\n }}>Duplicate <CopyIcon className='inline ml-2' />\r\n </Button>\r\n </div>\r\n {index > 0 && (\r\n <DeleteMultiple doDelete={() => {\r\n const newValues = [...values]\r\n newValues.splice(index, 1)\r\n onChange(newValues)\r\n }} />\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport const MultipleFieldCreator = ({\r\n field,\r\n onChange,\r\n disabled = false,\r\n value\r\n}: IFieldCreator): ReactElement => {\r\n const { formValues, setFormValues, inputOverrides, form } = useFormContext()\r\n const defaultOnChange = (v: IValueType[] | undefined): void => {\r\n const formValuesCopyClean = cleanAndUpdateFormValuesWithFieldValue({\r\n form,\r\n field,\r\n value: v,\r\n formValues\r\n })\r\n setFormValues(formValuesCopyClean)\r\n }\r\n\r\n const initialVal = value !== undefined ? value : getFieldValue(field, formValues)\r\n const initialValues = Array.isArray(initialVal) ? initialVal : [initialVal]\r\n\r\n if (field.type === 'object' && field.skip_path === true && field.multiple === true) {\r\n return <div className={`p-4 bg-slate-100${disabled ? ` ${disabledClassName}` : ''}`}>\r\n <FieldLabel field={field} disabled={disabled} />\r\n <p className='text-rose-700'><ExclamationTriangleIcon className='inline w-4 h-4 mr-2' /> Error with field <span className='font-sans p-2 text-xs bg-slate-200'>{field.id}</span> Object fields with multiple true and skip_path true are not supported.</p>\r\n </div>\r\n }\r\n\r\n const InputComponent = {\r\n ...inputMap,\r\n ...(inputOverrides ?? {})\r\n }[field.type]\r\n\r\n return <div className='flex flex-col divide-y-2 divide-opacity-50 divide-slate-400 divide-dashed'>\r\n {\r\n initialValues?.map((va, index) => {\r\n return <div key={`${field.id}-${index}`}>{\r\n SHOW_DEBUG && <><span className='text-red-500'>{makeJsonPath(field)}</span><span className='text-green-500'>{makeJsonPath(createOneOfMultipleField(field, index))}</span></>\r\n }<OneOfMultiple\r\n key={`${field.id}-${index}`}\r\n InputComponent={InputComponent}\r\n field={createOneOfMultipleField(field, index)}\r\n value={va}\r\n index={index}\r\n onChange={onChange ?? defaultOnChange}\r\n values={initialValues}\r\n disabled={disabled}\r\n /></div>\r\n })\r\n }\r\n </div>\r\n}\r\n\r\nconst FieldCreator = ({\r\n field,\r\n value,\r\n onChange,\r\n className,\r\n disabled,\r\n defaultClassName = 'flex flex-col gap-8 flex-grow h-full',\r\n conditionResult\r\n}: IFieldCreator): ReactElement | null => {\r\n const { form, inputOverrides, setFormValues, formValues } = useFormContext()\r\n const InputComponent = {\r\n ...inputMap,\r\n ...(inputOverrides ?? {})\r\n }[field.type]\r\n\r\n const defaultOnChange = (v: IValueType | IValueType[] | undefined): void => {\r\n const formValuesCopyClean = cleanAndUpdateFormValuesWithFieldValue({\r\n form,\r\n field,\r\n value: v,\r\n formValues\r\n })\r\n setFormValues(formValuesCopyClean)\r\n }\r\n const onChangeFn = onChange ?? defaultOnChange\r\n\r\n /* useEffect(() => {\r\n const fieldValue = getFieldValue(field, formValues)\r\n if (\r\n !(\r\n (value === undefined || value === null) && (fieldValue === undefined || fieldValue === null)\r\n ) &&\r\n value !== fieldValue\r\n ) {\r\n onChangeFn(value)\r\n }\r\n }, [value]) */\r\n\r\n conditionResult = conditionResult ?? checkCondition(field, formValues)\r\n\r\n if (\r\n (conditionResult.pass && conditionResult.result === 'exclude') ||\r\n (!conditionResult.pass && conditionResult.result === 'include')\r\n ) {\r\n return null\r\n } else if (\r\n (conditionResult.result === 'disable' && conditionResult.pass) ||\r\n (conditionResult.result === 'enable' && !conditionResult.pass)\r\n ) {\r\n disabled = true\r\n } else if (conditionResult.result === 'enable' && conditionResult.pass) {\r\n disabled = false\r\n }\r\n if (conditionResult.newDefaultValue !== undefined) {\r\n if (value !== conditionResult.newDefaultValue) {\r\n value = conditionResult.newDefaultValue\r\n return <FieldCreator\r\n field={field}\r\n value={value}\r\n onChange={onChange}\r\n className={className}\r\n defaultClassName={defaultClassName}\r\n disabled={disabled}\r\n conditionResult={{ ...conditionResult, newDefaultValue: undefined }}\r\n />\r\n }\r\n }\r\n\r\n const initialValue = value !== undefined ? value : getFieldValue(field, formValues)\r\n\r\n return <>\r\n {\r\n InputComponent !== undefined\r\n ? <div className={utils.makeClassName({\r\n className,\r\n defaultClassName,\r\n extras: [\r\n disabled ? disabledClassName : undefined,\r\n getFieldWrapperClass(field)\r\n ]\r\n })}>{\r\n field.multiple === true\r\n ? <MultipleFieldCreator\r\n field={field}\r\n disabled={disabled}\r\n onChange={onChange}\r\n />\r\n : <InputComponent\r\n field={field}\r\n disabled={disabled}\r\n onChange={onChangeFn}\r\n value={Array.isArray(initialValue) ? initialValue[0] : initialValue}\r\n />\r\n\r\n }</div>\r\n : <div>\r\n <p className='font-bold mb-2'><ExclamationTriangleIcon className='inline' /> {field.label ?? ''}</p>\r\n <p className='p-4 text-sm bg-slate-100'>No component definition for <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>type</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.type}</span> at <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>id</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.id}</span></p>\r\n </div>\r\n }\r\n </>\r\n}\r\n\r\nexport default FieldCreator\r\n"],"names":["React","utils"],"mappings":"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"}
@@ -1,33 +1,104 @@
1
- import { __assign } from '../../../node_modules/tslib/tslib.es6.js';
2
1
  import InlineMarkdown from './InlineMarkdown.js';
3
- import { Tooltip as RadixTooltip } from '../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
4
- import { InfoCircledIcon } from '../../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
2
+ import { makeJsonPath } from '../../utils/getters.js';
3
+ import { utils as index$1, Tooltip as RadixTooltip } from '../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
4
+ import { PlusIcon, InfoCircledIcon, ReloadIcon } from '../../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
5
5
  import React__default from 'react';
6
+ import isEqual from '../../../node_modules/lodash-es/isEqual.js';
6
7
 
7
- var FieldDescriptionTooltip = function (field) {
8
+ var SHOW_DEBUG = import.meta.env.VITE_SHOW_DEBUG === 'true';
9
+ var FieldRevertToDefault = function (_a) {
10
+ var _b;
11
+ var field = _a.field, disabled = _a.disabled, value = _a.value, onChange = _a.onChange;
12
+ var isDifferent = onChange !== undefined && !field.multiple && field.defaultValue !== undefined && !isEqual(value, field.defaultValue);
13
+ return (isDifferent
14
+ ? React__default.createElement("span", { "data-testid": "revert-to-default", className: disabled ? 'cursor-not-allowed' : 'cursor-pointer', onClick: function () {
15
+ if (disabled !== true) {
16
+ onChange(field.defaultValue);
17
+ }
18
+ } },
19
+ React__default.createElement(RadixTooltip, { content: "Reset to default value".concat(String(field.defaultValue) !== String({}) ? " (".concat(String((_b = field.defaultValue) !== null && _b !== void 0 ? _b : 'NA'), ")") : '') },
20
+ React__default.createElement(ReloadIcon, { className: 'inline-block ml-2 cursor-pointer hover:text-slate-500' })))
21
+ : React__default.createElement(React__default.Fragment, null));
22
+ };
23
+ var FieldDescriptionTooltip = function (_a) {
24
+ var _b;
25
+ var field = _a.field; _a.disabled;
26
+ var hasLongDescription = field.long_description !== undefined && field.long_description !== null && field.long_description !== '';
27
+ var longDescription = (_b = field.long_description) !== null && _b !== void 0 ? _b : '';
8
28
  return (field.description !== undefined
9
- ? React__default.createElement(RadixTooltip, { content: React__default.createElement("span", { className: 'leading-6' }, field.description), contentClassName: 'max-w-[400px]', className: 'z-[1000]' },
10
- React__default.createElement(InfoCircledIcon, null))
29
+ ? React__default.createElement("span", { onClick: function () {
30
+ if (hasLongDescription) {
31
+ window.open(longDescription, '_blank');
32
+ }
33
+ } },
34
+ React__default.createElement(RadixTooltip, { tooltipWrapperClassName: '!z-50', content: React__default.createElement("span", { className: 'leading-6' },
35
+ React__default.createElement(InlineMarkdown, null, field.description),
36
+ hasLongDescription && React__default.createElement("span", { className: 'text-xs text-slate-400' },
37
+ React__default.createElement(PlusIcon, { className: 'inline w-4 h-4 mt-0' }),
38
+ " Click for more information")), contentClassName: 'max-w-[400px]' },
39
+ React__default.createElement(InfoCircledIcon, null)))
11
40
  : React__default.createElement(React__default.Fragment, null));
12
41
  };
13
- var FieldLabelText = function (field) {
14
- return (React__default.createElement("strong", null,
42
+ var FieldLabelText = function (_a) {
43
+ var _b;
44
+ var field = _a.field, disabled = _a.disabled, value = _a.value, onChange = _a.onChange, className = _a.className;
45
+ if (field.label === undefined || field.label === null || field.label === '') {
46
+ return React__default.createElement(React__default.Fragment, null);
47
+ }
48
+ return (React__default.createElement("span", { className: index$1.makeClassName({
49
+ className: className,
50
+ defaultClassName: 'font-semibold',
51
+ extras: [
52
+ disabled ? 'cursor-not-allowed opacity-70' : '',
53
+ field.level !== undefined && field.type !== 'object' && field.multiple !== true
54
+ ? 'font-normal'
55
+ : undefined,
56
+ field.level !== undefined && field.level > 1
57
+ ? 'text-sm'
58
+ : undefined
59
+ ]
60
+ }) },
15
61
  React__default.createElement(InlineMarkdown, null, field.label),
16
- " ",
17
- field.required === true ? React__default.createElement("span", { className: 'text-red-500' }, "*") : ''));
62
+ SHOW_DEBUG && React__default.createElement("span", { className: 'text-xs text-slate-400' }, field.id),
63
+ field.required === true ? React__default.createElement("span", { className: 'text-red-500' }, "*") : '',
64
+ field.label !== '' && React__default.createElement(FieldRevertToDefault, { field: field, disabled: disabled, value: value, onChange: onChange }),
65
+ SHOW_DEBUG && React__default.createElement("span", { className: SHOW_DEBUG ? '' : 'hidden' },
66
+ React__default.createElement("br", null),
67
+ React__default.createElement("span", { className: 'text-xs text-slate-400' }, (_b = makeJsonPath(field)) !== null && _b !== void 0 ? _b : 'NA'))));
18
68
  };
19
- var FieldDescriptionText = function (field) {
69
+ var FieldDescriptionText = function (_a) {
70
+ var _b;
71
+ var field = _a.field; _a.disabled;
72
+ var hasLongDescription = field.long_description !== undefined && field.long_description !== null && field.long_description !== '';
73
+ var longDescription = (_b = field.long_description) !== null && _b !== void 0 ? _b : '';
74
+ var longDescriptionButton = hasLongDescription
75
+ ? React__default.createElement("span", { className: 'ml-2 text-xs text-white bg-slate-400 p-1 px-2 rounded-md cursor-pointer hover:bg-slate-500', onClick: function () {
76
+ window.open(longDescription, '_blank');
77
+ } },
78
+ React__default.createElement(PlusIcon, { className: 'inline w-3 h-3 -mt-1 mr-0' }),
79
+ " More")
80
+ : null;
20
81
  return (React__default.createElement(React__default.Fragment, null, field.description !== undefined
21
- ? React__default.createElement("p", { className: 'text-xs py-2' },
22
- React__default.createElement(InlineMarkdown, null, field.description))
23
- : ''));
82
+ ? React__default.createElement("p", { className: 'text-xs pb-2' },
83
+ React__default.createElement(InlineMarkdown, null, field.description),
84
+ longDescriptionButton)
85
+ : longDescriptionButton));
24
86
  };
25
- var FieldLabel = function (field) {
87
+ var FieldLabel = function (_a) {
88
+ var _b, _c, _d;
89
+ var field = _a.field, disabled = _a.disabled, value = _a.value, onChange = _a.onChange; _a.className;
26
90
  return React__default.createElement(React__default.Fragment, null,
27
- React__default.createElement("p", null,
28
- React__default.createElement(FieldLabelText, __assign({}, field))),
29
- React__default.createElement(FieldDescriptionText, __assign({}, field)));
91
+ field.label !== undefined && field.label !== null && React__default.createElement("p", { className: 'pb-2' },
92
+ React__default.createElement(FieldLabelText, { field: field, disabled: disabled, value: value, onChange: onChange }),
93
+ ((_b = field.settings) === null || _b === void 0 ? void 0 : _b.descriptionPresentation) === 'tooltip'
94
+ ? React__default.createElement(React__default.Fragment, null,
95
+ " ",
96
+ React__default.createElement(FieldDescriptionTooltip, { field: field, disabled: disabled }))
97
+ : React__default.createElement(React__default.Fragment, null)),
98
+ ((_c = field.settings) === null || _c === void 0 ? void 0 : _c.descriptionPresentation) === 'inline' || ((_d = field.settings) === null || _d === void 0 ? void 0 : _d.descriptionPresentation) === undefined
99
+ ? React__default.createElement(FieldDescriptionText, { field: field, disabled: disabled })
100
+ : React__default.createElement(React__default.Fragment, null));
30
101
  };
31
102
 
32
- export { FieldDescriptionText, FieldDescriptionTooltip, FieldLabelText, FieldLabel as default };
103
+ export { FieldDescriptionText, FieldDescriptionTooltip, FieldLabelText, FieldRevertToDefault, FieldLabel as default };
33
104
  //# sourceMappingURL=FieldLabel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldLabel.js","sources":["../../../../../src/Form/Components/FieldLabel.tsx"],"sourcesContent":["import InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport { type IFormField } from '@/Form/Creator/FormCreatorTypes'\r\nimport { Tooltip } from '@axdspub/axiom-ui-utilities'\r\nimport { InfoCircledIcon } from '@radix-ui/react-icons'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nexport const FieldDescriptionTooltip = (field: IFormField): ReactElement => {\r\n return (\r\n field.description !== undefined\r\n ? <Tooltip content={<span className='leading-6'>{field.description}</span>} contentClassName='max-w-[400px]' className='z-[1000]'><InfoCircledIcon /></Tooltip>\r\n : <></>\r\n )\r\n}\r\n\r\nexport const FieldLabelText = (field: IFormField): ReactElement => {\r\n return (\r\n <strong><InlineMarkdown>{field.label}</InlineMarkdown> { field.required === true ? <span className='text-red-500'>*</span> : ''}</strong>\r\n )\r\n}\r\n\r\nexport const FieldDescriptionText = (field: IFormField): ReactElement => {\r\n return (\r\n <>{\r\n field.description !== undefined\r\n ? <p className='text-xs py-2'><InlineMarkdown>{field.description}</InlineMarkdown></p>\r\n : ''\r\n }</>\r\n )\r\n}\r\n\r\nconst FieldLabel = (field: IFormField): ReactElement => {\r\n return <>\r\n <p><FieldLabelText {...field} /></p>\r\n <FieldDescriptionText {...field} />\r\n\r\n </>\r\n}\r\n\r\nexport default FieldLabel\r\n"],"names":["React","Tooltip"],"mappings":";;;;;;AAMO,IAAM,uBAAuB,GAAG,UAAC,KAAiB,EAAA;AACvD,IAAA,QACE,KAAK,CAAC,WAAW,KAAK;UAClBA,6BAACC,YAAO,EAAA,EAAC,OAAO,EAAED,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,WAAW,EAAA,EAAE,KAAK,CAAC,WAAW,CAAQ,EAAE,gBAAgB,EAAC,eAAe,EAAC,SAAS,EAAC,UAAU,EAAA;YAACA,cAAC,CAAA,aAAA,CAAA,eAAe,OAAG;UACnJA,cAAK,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAA;AAEb;AAEO,IAAM,cAAc,GAAG,UAAC,KAAiB,EAAA;AAC9C,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA,IAAA;AAAQ,QAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,IAAA,EAAE,KAAK,CAAC,KAAK,CAAkB;;AAAG,QAAA,KAAK,CAAC,QAAQ,KAAK,IAAI,GAAGA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,cAAc,QAAS,GAAG,EAAE,CAAU;AAE7I;AAEO,IAAM,oBAAoB,GAAG,UAAC,KAAiB,EAAA;AACpD,IAAA,QACEA,cACE,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,KAAK,CAAC,WAAW,KAAK;AACpB,UAAEA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,cAAc,EAAA;AAAC,YAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAE,IAAA,EAAA,KAAK,CAAC,WAAW,CAAkB;AAClF,UAAE,EAAE,CACJ;AAER;AAEM,IAAA,UAAU,GAAG,UAAC,KAAiB,EAAA;IACnC,OAAOA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;AACL,QAAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;AAAG,YAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAA,CAAI,CAAI;AACpC,QAAAA,cAAA,CAAA,aAAA,CAAC,oBAAoB,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAA,CAAI,CAElC;AACL;;;;"}
1
+ {"version":3,"file":"FieldLabel.js","sources":["../../../../../src/Form/Components/FieldLabel.tsx"],"sourcesContent":["import InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport { type IValueType, type IFormField, type IValueChangeFn } from '@/Form/Creator/FormCreatorTypes'\r\nimport { makeJsonPath } from '@/utils/getters'\r\nimport { Tooltip, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { InfoCircledIcon, PlusIcon, ReloadIcon } from '@radix-ui/react-icons'\r\nimport { isEqual } from 'lodash-es'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst SHOW_DEBUG = import.meta.env.VITE_SHOW_DEBUG === 'true'\r\nexport const FieldRevertToDefault = ({ field, disabled, value, onChange }: { field: IFormField, disabled?: boolean, value?: IValueType, onChange?: IValueChangeFn }): ReactElement => {\r\n const isDifferent = onChange !== undefined && !field.multiple && field.defaultValue !== undefined && !isEqual(value, field.defaultValue)\r\n return (\r\n isDifferent\r\n ? <span data-testid=\"revert-to-default\" className={disabled ? 'cursor-not-allowed' : 'cursor-pointer'} onClick={() => {\r\n if (disabled !== true) {\r\n onChange(field.defaultValue)\r\n }\r\n }}><Tooltip content={`Reset to default value${String(field.defaultValue) !== String({}) ? ` (${String(field.defaultValue ?? 'NA')})` : ''}`}><ReloadIcon className='inline-block ml-2 cursor-pointer hover:text-slate-500' /></Tooltip></span>\r\n : <></>\r\n )\r\n}\r\n\r\nexport const FieldDescriptionTooltip = ({ field, disabled }: { field: IFormField, disabled?: boolean }): ReactElement => {\r\n const hasLongDescription = field.long_description !== undefined && field.long_description !== null && field.long_description !== ''\r\n const longDescription = field.long_description ?? ''\r\n return (\r\n field.description !== undefined\r\n ? <span onClick={() => {\r\n if (hasLongDescription) {\r\n window.open(longDescription, '_blank')\r\n }\r\n }}>\r\n <Tooltip\r\n tooltipWrapperClassName='!z-50'\r\n content={<span className='leading-6'><InlineMarkdown>{field.description}</InlineMarkdown>{hasLongDescription && <span className='text-xs text-slate-400'><PlusIcon className='inline w-4 h-4 mt-0' /> Click for more information</span>}</span>}\r\n contentClassName='max-w-[400px]'\r\n\r\n ><InfoCircledIcon /></Tooltip>\r\n </span>\r\n : <></>\r\n )\r\n}\r\n\r\nexport const FieldLabelText = ({ field, disabled, value, onChange, className }: { field: IFormField, disabled?: boolean, value?: IValueType, onChange?: IValueChangeFn, className?: string }): ReactElement => {\r\n if (field.label === undefined || field.label === null || field.label === '') {\r\n return <></>\r\n }\r\n return (\r\n <span className={utils.makeClassName({\r\n className,\r\n defaultClassName: 'font-semibold',\r\n extras: [\r\n disabled ? 'cursor-not-allowed opacity-70' : '',\r\n field.level !== undefined && field.type !== 'object' && field.multiple !== true\r\n ? 'font-normal'\r\n : undefined,\r\n field.level !== undefined && field.level > 1\r\n ? 'text-sm'\r\n : undefined\r\n\r\n ]\r\n })}>\r\n <InlineMarkdown>{field.label}</InlineMarkdown>\r\n { SHOW_DEBUG && <span className='text-xs text-slate-400'>{field.id}</span> }\r\n { field.required === true ? <span className='text-red-500'>*</span> : ''}\r\n { field.label !== '' && <FieldRevertToDefault field={field} disabled={disabled} value={value} onChange={onChange} /> }\r\n { SHOW_DEBUG && <span className={SHOW_DEBUG ? '' : 'hidden'}><br /><span className='text-xs text-slate-400'>{makeJsonPath(field) ?? 'NA'}</span></span>}\r\n </span>\r\n )\r\n}\r\n\r\nexport const FieldDescriptionText = ({ field, disabled }: { field: IFormField, disabled?: boolean }): ReactElement => {\r\n const hasLongDescription = field.long_description !== undefined && field.long_description !== null && field.long_description !== ''\r\n const longDescription = field.long_description ?? ''\r\n const longDescriptionButton = hasLongDescription\r\n ? <span className='ml-2 text-xs text-white bg-slate-400 p-1 px-2 rounded-md cursor-pointer hover:bg-slate-500' onClick={() => {\r\n window.open(longDescription, '_blank')\r\n }}><PlusIcon className='inline w-3 h-3 -mt-1 mr-0' /> More</span>\r\n : null\r\n return (\r\n <>{\r\n field.description !== undefined\r\n ? <p className='text-xs pb-2'><InlineMarkdown>{field.description}</InlineMarkdown>{longDescriptionButton}</p>\r\n : longDescriptionButton\r\n }</>\r\n )\r\n}\r\n\r\nconst FieldLabel = ({ field, disabled, value, onChange, className }: { field: IFormField, disabled?: boolean, value?: IValueType, onChange?: IValueChangeFn, className?: string }): ReactElement => {\r\n return <>{\r\n field.label !== undefined && field.label !== null && <p className='pb-2'><FieldLabelText field={field} disabled={disabled} value={value} onChange={onChange} />{\r\n field.settings?.descriptionPresentation === 'tooltip'\r\n ? <> <FieldDescriptionTooltip field={field} disabled={disabled} /></>\r\n : <></>\r\n }</p>\r\n }\r\n {\r\n field.settings?.descriptionPresentation === 'inline' || field.settings?.descriptionPresentation === undefined\r\n ? <FieldDescriptionText field={field} disabled={disabled} />\r\n : <></>\r\n }\r\n </>\r\n}\r\n\r\nexport default FieldLabel\r\n"],"names":["React","Tooltip","utils"],"mappings":"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"}
@@ -7,6 +7,10 @@ var InlineMarkdown = function (_a) {
7
7
  p: function (_a) {
8
8
  var children = _a.children;
9
9
  return React__default.createElement(React__default.Fragment, null, children);
10
+ },
11
+ a: function (_a) {
12
+ var children = _a.children, href = _a.href;
13
+ return React__default.createElement("a", { href: href, target: (href === null || href === void 0 ? void 0 : href.match(/^http/)) ? '_blank' : undefined, rel: "noopener noreferrer", className: "text-blue-500 hover:underline" }, children);
10
14
  }
11
15
  } }, children);
12
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"InlineMarkdown.js","sources":["../../../../../src/Form/Components/InlineMarkdown.tsx"],"sourcesContent":["import React, { type ReactElement } from 'react'\r\nimport Markdown from 'react-markdown'\r\n\r\nconst InlineMarkdown = ({ children }: { children: string | null | undefined }): ReactElement => {\r\n return <Markdown components={{\r\n p: ({ children }) => <>{children}</>\r\n }}>{children}</Markdown>\r\n}\r\n\r\nexport default InlineMarkdown\r\n"],"names":["React"],"mappings":";;;AAGM,IAAA,cAAc,GAAG,UAAC,EAAqD,EAAA;AAAnD,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA;AAChC,IAAA,OAAOA,cAAC,CAAA,aAAA,CAAA,QAAQ,EAAC,EAAA,UAAU,EAAE;YAC3B,CAAC,EAAE,UAAC,EAAY,EAAA;AAAV,gBAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA;gBAAO,OAAAA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAG,QAAQ,CAAI;;SACrC,EAAG,EAAA,QAAQ,CAAY;AAC1B;;;;"}
1
+ {"version":3,"file":"InlineMarkdown.js","sources":["../../../../../src/Form/Components/InlineMarkdown.tsx"],"sourcesContent":["import React, { type ReactElement } from 'react'\r\nimport Markdown from 'react-markdown'\r\n\r\nconst InlineMarkdown = ({ children }: { children: string | null | undefined }): ReactElement => {\r\n return <Markdown components={{\r\n p: ({ children }) => <>{children}</>,\r\n a: ({ children, href }) => <a href={href} target={href?.match(/^http/) ? '_blank' : undefined} rel=\"noopener noreferrer\" className=\"text-blue-500 hover:underline\">{children}</a>\r\n }}>{children}</Markdown>\r\n}\r\n\r\nexport default InlineMarkdown\r\n"],"names":["React"],"mappings":";;;AAGM,IAAA,cAAc,GAAG,UAAC,EAAqD,EAAA;AAAnD,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA;AAChC,IAAA,OAAOA,cAAC,CAAA,aAAA,CAAA,QAAQ,EAAC,EAAA,UAAU,EAAE;YAC3B,CAAC,EAAE,UAAC,EAAY,EAAA;AAAV,gBAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA;gBAAO,OAAAA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAG,QAAQ,CAAI;aAAA;YACpC,CAAC,EAAE,UAAC,EAAkB,EAAA;oBAAhB,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA;AAAO,gBAAA,OAAAA,oCAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,MAAA,GAAA,MAAA,GAAA,IAAI,CAAE,KAAK,CAAC,OAAO,CAAC,IAAG,QAAQ,GAAG,SAAS,EAAE,GAAG,EAAC,qBAAqB,EAAC,SAAS,EAAC,+BAA+B,EAAA,EAAE,QAAQ,CAAK;;SAClL,EAAG,EAAA,QAAQ,CAAY;AAC1B;;;;"}
@@ -1,15 +1,17 @@
1
- import { __assign } from '../../../../node_modules/tslib/tslib.es6.js';
2
- import { FieldLabelText, FieldDescriptionTooltip } from '../FieldLabel.js';
1
+ import { FieldLabelText, FieldDescriptionTooltip, FieldDescriptionText } from '../FieldLabel.js';
3
2
  import { Checkbox } from '../../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
4
3
  import React__default from 'react';
5
4
 
6
5
  var BooleanInput = function (_a) {
7
- var field = _a.field, onChange = _a.onChange, value = _a.value;
6
+ var _b, _c;
7
+ var field = _a.field, onChange = _a.onChange, value = _a.value, disabled = _a.disabled;
8
8
  var initialValue = value !== undefined ? value : false;
9
- return React__default.createElement(Checkbox, { id: field.id, testId: field.id, label: React__default.createElement(React__default.Fragment, null,
10
- React__default.createElement(FieldLabelText, __assign({}, field)),
9
+ return React__default.createElement(Checkbox, { id: field.id, testId: field.id, disabled: disabled, label: React__default.createElement(React__default.Fragment, null,
10
+ React__default.createElement(FieldLabelText, { field: field, disabled: disabled, value: value, onChange: onChange }),
11
11
  " ",
12
- React__default.createElement(FieldDescriptionTooltip, __assign({}, field))), value: Boolean(initialValue), onChange: function (e) {
12
+ (((_b = field.settings) === null || _b === void 0 ? void 0 : _b.descriptionPresentation) === 'inline' || ((_c = field.settings) === null || _c === void 0 ? void 0 : _c.descriptionPresentation) === undefined)
13
+ ? React__default.createElement(FieldDescriptionTooltip, { field: field, disabled: disabled })
14
+ : React__default.createElement(FieldDescriptionText, { field: field, disabled: disabled })), value: Boolean(initialValue), onChange: function (e) {
13
15
  onChange(e);
14
16
  } });
15
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Boolean.js","sources":["../../../../../../src/Form/Components/Inputs/Boolean.tsx"],"sourcesContent":["import { FieldDescriptionTooltip, FieldLabelText } from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { Checkbox } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst BooleanInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : false\r\n return <Checkbox id={field.id} testId={field.id} label={<><FieldLabelText {...field} /> <FieldDescriptionTooltip {...field} /></>} value={Boolean(initialValue)} onChange={(e) => {\r\n onChange(e)\r\n }} />\r\n}\r\n\r\nexport default BooleanInput\r\n"],"names":["React"],"mappings":";;;;;AAKM,IAAA,YAAY,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AAC5C,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK;AACxD,IAAA,OAAOA,6BAAC,QAAQ,EAAA,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAEA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;YAAEA,cAAC,CAAA,aAAA,CAAA,cAAc,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA;;AAAC,YAAAA,cAAA,CAAA,aAAA,CAAC,uBAAuB,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA,CAAG,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,UAAC,CAAC,EAAA;YAC3K,QAAQ,CAAC,CAAC,CAAC;AACb,SAAC,GAAI;AACP;;;;"}
1
+ {"version":3,"file":"Boolean.js","sources":["../../../../../../src/Form/Components/Inputs/Boolean.tsx"],"sourcesContent":["import { FieldDescriptionText, FieldDescriptionTooltip, FieldLabelText } from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { Checkbox } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst BooleanInput = ({ field, onChange, value, disabled }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : false\r\n return <Checkbox id={field.id} testId={field.id} disabled={disabled} label={<><FieldLabelText field={field} disabled={disabled} value={value} onChange={onChange} /> {\r\n (field.settings?.descriptionPresentation === 'inline' || field.settings?.descriptionPresentation === undefined)\r\n ? <FieldDescriptionTooltip field={field} disabled={disabled} />\r\n : <FieldDescriptionText field={field} disabled={disabled} />\r\n }</>} value={Boolean(initialValue)} onChange={(e) => {\r\n onChange(e)\r\n }}\r\n />\r\n}\r\n\r\nexport default BooleanInput\r\n"],"names":["React"],"mappings":";;;;AAKM,IAAA,YAAY,GAAG,UAAC,EAAsD,EAAA;;QAApD,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA;AACtD,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK;IACxD,OAAOA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAC,EAAA,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAEA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;AAAE,YAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAC,EAAA,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAI,CAAA;;AAClK,YAAA,CAAC,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,uBAAuB,MAAK,QAAQ,IAAI,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,0CAAE,uBAAuB,MAAK,SAAS;kBAC1GA,cAAC,CAAA,aAAA,CAAA,uBAAuB,EAAC,EAAA,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAI;kBAC7DA,cAAC,CAAA,aAAA,CAAA,oBAAoB,EAAC,EAAA,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAA,CAAI,CAC5D,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,UAAC,CAAC,EAAA;YAC9C,QAAQ,CAAC,CAAC,CAAC;AACb,SAAC,GACC;AACJ;;;;"}
@@ -7,9 +7,9 @@ var notify = memoize(function (k, v, onChange) {
7
7
  }, 50);
8
8
  });
9
9
  var ConstantInput = function (_a) {
10
- _a.value; var field = _a.field, onChange = _a.onChange;
10
+ var value = _a.value, field = _a.field, onChange = _a.onChange;
11
11
  var constantField = field;
12
- var val = constantField.defaultValue;
12
+ var val = value !== null && value !== void 0 ? value : constantField.defaultValue;
13
13
  notify("".concat(field.path ? field.path.map(function (f) { return f.id; }).join('.') : field.id, ".").concat(JSON.stringify(val)), val, onChange);
14
14
  return (React__default.createElement(React__default.Fragment, null));
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Constant.js","sources":["../../../../../../src/Form/Components/Inputs/Constant.tsx"],"sourcesContent":["import { type IConstantField, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { memoize } from 'lodash-es'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst notify = memoize((k, v, onChange) => {\r\n setTimeout(() => {\r\n onChange(v)\r\n }, 50)\r\n})\r\n\r\nconst ConstantInput = ({ value, field, onChange }: IFieldInputProps): ReactElement => {\r\n const constantField = field as IConstantField\r\n const val = constantField.defaultValue\r\n notify(`${field.path ? field.path.map(f => f.id).join('.') : field.id}.${JSON.stringify(val)}`, val, onChange)\r\n return (\r\n <></>\r\n )\r\n}\r\n\r\nexport default ConstantInput\r\n"],"names":["React"],"mappings":";;;AAIA,IAAM,MAAM,GAAG,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAA;AACpC,IAAA,UAAU,CAAC,YAAA;QACT,QAAQ,CAAC,CAAC,CAAC;KACZ,EAAE,EAAE,CAAC;AACR,CAAC,CAAC;AAEI,IAAA,aAAa,GAAG,UAAC,EAA4C,EAAA;AAA1C,YAAK,CAAE,KAAA,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA,CAAE,QAAQ,GAAA,EAAA,CAAA;IAC7C,IAAM,aAAa,GAAG,KAAuB;AAC7C,IAAA,IAAM,GAAG,GAAG,aAAa,CAAC,YAAY;IACtC,MAAM,CAAC,UAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,EAAE,CAAA,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC;IAC9G,QACEA,cAAK,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAA;AAET;;;;"}
1
+ {"version":3,"file":"Constant.js","sources":["../../../../../../src/Form/Components/Inputs/Constant.tsx"],"sourcesContent":["import { type IConstantField, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { memoize } from 'lodash-es'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst notify = memoize((k, v, onChange) => {\r\n setTimeout(() => {\r\n onChange(v)\r\n }, 50)\r\n})\r\n\r\nconst ConstantInput = ({ value, field, onChange }: IFieldInputProps): ReactElement => {\r\n const constantField = field as IConstantField\r\n const val = value ?? constantField.defaultValue\r\n notify(`${field.path ? field.path.map(f => f.id).join('.') : field.id}.${JSON.stringify(val)}`, val, onChange)\r\n return (\r\n <></>\r\n )\r\n}\r\n\r\nexport default ConstantInput\r\n"],"names":["React"],"mappings":";;;AAIA,IAAM,MAAM,GAAG,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAA;AACpC,IAAA,UAAU,CAAC,YAAA;QACT,QAAQ,CAAC,CAAC,CAAC;KACZ,EAAE,EAAE,CAAC;AACR,CAAC,CAAC;AAEI,IAAA,aAAa,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA;IAC7C,IAAM,aAAa,GAAG,KAAuB;IAC7C,IAAM,GAAG,GAAG,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,MAAA,GAAA,KAAK,GAAI,aAAa,CAAC,YAAY;IAC/C,MAAM,CAAC,UAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,EAAE,CAAA,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC;IAC9G,QACEA,cAAK,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAA;AAET;;;;"}