@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.
- package/library/axiom-ui-forms.d.ts +56 -26
- package/library/esm/_virtual/index10.js +2 -2
- package/library/esm/_virtual/index3.js +2 -2
- package/library/esm/_virtual/index4.js +2 -2
- package/library/esm/_virtual/index9.js +2 -2
- package/library/esm/node_modules/@axdspub/axiom-maps/library/index.js +1 -1
- package/library/esm/node_modules/@axdspub/axiom-maps/library/openlayers/index.esm.js +1 -1
- package/library/esm/node_modules/@axdspub/axiom-maps/node_modules/@axdspub/axiom-ui-utilities/library/index.js +15219 -0
- package/library/esm/node_modules/@axdspub/axiom-maps/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -0
- package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js +122 -90
- package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -1
- package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +23 -1
- package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
- package/library/esm/node_modules/ajv/dist/compile/validate/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/vocabularies/discriminator/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
- package/library/esm/node_modules/lodash-es/_SetCache.js +28 -0
- package/library/esm/node_modules/lodash-es/_SetCache.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_arrayLikeKeys.js +8 -1
- package/library/esm/node_modules/lodash-es/_arrayLikeKeys.js.map +1 -1
- package/library/esm/node_modules/lodash-es/_arraySome.js +24 -0
- package/library/esm/node_modules/lodash-es/_arraySome.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_baseIsEqual.js +29 -0
- package/library/esm/node_modules/lodash-es/_baseIsEqual.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_baseIsEqualDeep.js +84 -0
- package/library/esm/node_modules/lodash-es/_baseIsEqualDeep.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_baseKeys.js +31 -0
- package/library/esm/node_modules/lodash-es/_baseKeys.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_baseTrim.js +20 -0
- package/library/esm/node_modules/lodash-es/_baseTrim.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_cacheHas.js +14 -0
- package/library/esm/node_modules/lodash-es/_cacheHas.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_equalArrays.js +85 -0
- package/library/esm/node_modules/lodash-es/_equalArrays.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_equalByTag.js +113 -0
- package/library/esm/node_modules/lodash-es/_equalByTag.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_equalObjects.js +91 -0
- package/library/esm/node_modules/lodash-es/_equalObjects.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_getAllKeys.js +17 -0
- package/library/esm/node_modules/lodash-es/_getAllKeys.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_mapToArray.js +19 -0
- package/library/esm/node_modules/lodash-es/_mapToArray.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_nativeKeys.js +7 -0
- package/library/esm/node_modules/lodash-es/_nativeKeys.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_setCacheAdd.js +20 -0
- package/library/esm/node_modules/lodash-es/_setCacheAdd.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_setCacheHas.js +15 -0
- package/library/esm/node_modules/lodash-es/_setCacheHas.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_setToArray.js +19 -0
- package/library/esm/node_modules/lodash-es/_setToArray.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_trimmedEndIndex.js +20 -0
- package/library/esm/node_modules/lodash-es/_trimmedEndIndex.js.map +1 -0
- package/library/esm/node_modules/lodash-es/debounce.js +192 -0
- package/library/esm/node_modules/lodash-es/debounce.js.map +1 -0
- package/library/esm/node_modules/lodash-es/isEqual.js +36 -0
- package/library/esm/node_modules/lodash-es/isEqual.js.map +1 -0
- package/library/esm/node_modules/lodash-es/keys.js +38 -0
- package/library/esm/node_modules/lodash-es/keys.js.map +1 -0
- package/library/esm/node_modules/lodash-es/keysIn.js +1 -1
- package/library/esm/node_modules/lodash-es/keysIn.js.map +1 -1
- package/library/esm/node_modules/lodash-es/now.js +24 -0
- package/library/esm/node_modules/lodash-es/now.js.map +1 -0
- package/library/esm/node_modules/lodash-es/toNumber.js +65 -0
- package/library/esm/node_modules/lodash-es/toNumber.js.map +1 -0
- package/library/esm/src/Form/Components/FieldCreator.js +86 -31
- package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
- package/library/esm/src/Form/Components/FieldLabel.js +90 -19
- package/library/esm/src/Form/Components/FieldLabel.js.map +1 -1
- package/library/esm/src/Form/Components/InlineMarkdown.js +4 -0
- package/library/esm/src/Form/Components/InlineMarkdown.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Boolean.js +8 -6
- package/library/esm/src/Form/Components/Inputs/Boolean.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Constant.js +2 -2
- package/library/esm/src/Form/Components/Inputs/Constant.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Date.js +3 -4
- package/library/esm/src/Form/Components/Inputs/Date.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/DateTime.js +3 -4
- package/library/esm/src/Form/Components/Inputs/DateTime.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/GeoJSON.js +5 -4
- package/library/esm/src/Form/Components/Inputs/GeoJSON.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Geometry.js +20 -11
- package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/JSON.js +6 -5
- package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/LongString.js +5 -5
- package/library/esm/src/Form/Components/Inputs/LongString.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Number.js +49 -35
- package/library/esm/src/Form/Components/Inputs/Number.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Object.js +46 -11
- package/library/esm/src/Form/Components/Inputs/Object.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/RadioGroup.js +2 -3
- package/library/esm/src/Form/Components/Inputs/RadioGroup.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/SingleSelect.js +2 -3
- package/library/esm/src/Form/Components/Inputs/SingleSelect.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/String.js +5 -11
- package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Time.js +2 -3
- package/library/esm/src/Form/Components/Inputs/Time.js.map +1 -1
- package/library/esm/src/Form/Creator/FormCreator.js +6 -6
- package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
- package/library/esm/src/Form/Creator/FormFields.js +1 -1
- package/library/esm/src/Form/Creator/FormFields.js.map +1 -1
- package/library/esm/src/Form/Creator/FormHeader.js +2 -1
- package/library/esm/src/Form/Creator/FormHeader.js.map +1 -1
- package/library/esm/src/Form/Creator/FormSection.js +1 -1
- package/library/esm/src/Form/Creator/FormSection.js.map +1 -1
- package/library/esm/src/Form/Creator/Page.js +7 -2
- package/library/esm/src/Form/Creator/Page.js.map +1 -1
- package/library/esm/src/Form/Creator/Wizard.js +6 -6
- package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
- package/library/esm/src/utils/getters.js +36 -6
- package/library/esm/src/utils/getters.js.map +1 -1
- package/library/esm/src/utils/helpers.js +11 -0
- package/library/esm/src/utils/helpers.js.map +1 -0
- package/library/esm/src/utils/manipulators.js +30 -11
- package/library/esm/src/utils/manipulators.js.map +1 -1
- package/library/esm/src/utils/schemaToFormHelpers.js +2 -2
- package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -1
- package/library/esm/src/utils/validators.js +94 -15
- package/library/esm/src/utils/validators.js.map +1 -1
- 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
|
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:
|
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
|
49
|
-
|
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
|
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
|
71
|
-
|
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:
|
77
|
-
React__default.createElement(FieldLabel,
|
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",
|
86
|
-
return React__default.createElement(
|
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 ? '
|
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":";;;;;;;;;;;AAWA,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM;AAC7D,IAAM,iBAAiB,GAAG,EAAE,CAAA;AAY5B,IAAM,eAAe,GAAG,wEAAwE;AAEhG,IAAM,cAAc,GAAG,UAAC,EAIvB,EAAA;AAHC,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA;IAIF,IAAA,EAAA,GAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAAmB;IAE7C,QACEA,4DAEI;AACE,UAAEA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,6BAA6B,EAAA;YAACA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,gBAAgB,EAAkB,EAAA,YAAA,CAAA;;YAC3FA,cAAC,CAAA,aAAA,CAAA,MAAM,EAAC,EAAA,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAC7B,OAAO,EAAE,YAAA;AACP,oBAAA,QAAQ,EAAE;oBACV,UAAU,CAAC,KAAK,CAAC;iBAClB,EAAA;;AAAM,gBAAAA,cAAA,CAAA,aAAA,CAAC,SAAS,EAAC,EAAA,SAAS,EAAC,aAAa,GAAG,CACrC;YACTA,cAAC,CAAA,aAAA,CAAA,MAAM,EAAC,EAAA,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAC5B,OAAO,EAAE,YAAA;oBACP,UAAU,CAAC,KAAK,CAAC;iBAClB,EAAA;;AAAS,gBAAAA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAC,EAAA,SAAS,EAAC,aAAa,EAAA,CAAG,CACzC;UAEXA,6BAAC,MAAM,EAAA,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,YAAQ,EAAA,UAAU,CAAC,IAAI,CAAC,CAAA,EAAE,EAAA;;YACxEA,cAAC,CAAA,aAAA,CAAA,SAAS,IAAC,SAAS,EAAC,wBAAwB,EAAG,CAAA,CAChD,CAEd;AAEP,CAAC;AAED,IAAM,oBAAoB,GAAG,UAAC,KAAiB,EAAA;;IAC7C,IAAM,EAAE,GAAG,EAAE;IACb,IAAM,KAAK,GAAG,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC;AAC9B,IAAA,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI;IACvB,IAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK;AACxC,IAAA,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,KAAK,QAAQ,EAAE;AAChD,QAAA,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AACd,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,YAAA,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,cAAc,GAAG,cAAc,CAAC;;;AAGxD,IAAA,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AACrB,CAAC;AAED,IAAM,aAAa,GAAG,UAAC,EAiBtB,EAAA;QAhBC,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,gBAAgB,EAAhB,QAAQ,GAAG,EAAA,KAAA,MAAA,GAAA,KAAK,GAAA,EAAA;IAWhB,IAAM,QAAQ,GAAG,UAAC,CAAoB,EAAA;AACpC,QAAA,IAAM,SAAS,GAAA,aAAA,CAAA,EAAA,EAAO,MAAM,EAAA,IAAA,CAAC;QAC7B,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjC,QAAQ,CAAC,SAAS,CAAC;AACrB,KAAC;AAED,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,qBAAsB,CAAA,MAAA,CAAA,QAAQ,GAAG,GAAA,CAAA,MAAA,CAAI,iBAAiB,CAAE,GAAG,EAAE,EAAS,QAAA,CAAA,CAAA,MAAA,CAAA,oBAAoB,CAAC,KAAK,CAAC,CAAE,EAAe,aAAA,EAAA,QAAA,CAAA,MAAA,CAAS,KAAK,CAAC,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,KAAK,CAAE,EAAA;AACxJ,QAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EACf,EAAA,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,UAAC,CAAC,EAAA;AACV,gBAAA,IAAM,SAAS,GAAA,aAAA,CAAA,EAAA,EAAO,MAAM,EAAA,IAAA,CAAC;AAC7B,gBAAA,SAAS,CAAC,KAAK,CAAC,GAAG,CAAe;gBAClC,QAAQ,CAAC,SAAS,CAAC;AACrB,aAAC,EACD,CAAA;QACEA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,gCAAgC,EAAA;YAE7CA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,YAAY,EAAA;gBACzBA,cAAC,CAAA,aAAA,CAAA,MAAM,EACP,EAAA,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,YAAA;wBACP,QAAQ,CAAC,IAAI,CAAC;qBACf,EAAA;;AAAM,oBAAAA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAC,EAAA,SAAS,EAAC,aAAa,GAAG,CAAS;gBACpDA,cAAC,CAAA,aAAA,CAAA,MAAM,EACL,EAAA,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,YAAA;AACP,wBAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;qBACjC,EAAA;;AAAY,oBAAAA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAC,EAAA,SAAS,EAAC,aAAa,EAAA,CAAG,CAC1C,CACL;YACL,KAAK,GAAG,CAAC,KACVA,6BAAC,cAAc,EAAA,EAAC,QAAQ,EAAE,YAAA;AACxB,oBAAA,IAAM,SAAS,GAAA,aAAA,CAAA,EAAA,EAAO,MAAM,EAAA,IAAA,CAAC;AAC7B,oBAAA,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC1B,QAAQ,CAAC,SAAS,CAAC;AACrB,iBAAC,EAAI,CAAA,CACJ,CACG,CACJ;AAEd,CAAC;AAEM,IAAM,oBAAoB,GAAG,UAAC,EAKrB,EAAA;AAJd,IAAA,IAAA,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,EAAA,GAAA,EAAA,CAAA,QAAgB,EAAhB,QAAQ,GAAG,EAAA,KAAA,MAAA,GAAA,KAAK,GAAA,EAAA,EAChB,KAAK,GAAA,EAAA,CAAA,KAAA;AAEC,IAAA,IAAA,EAAsD,GAAA,cAAc,EAAE,EAApE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,aAAa,GAAA,EAAA,CAAA,aAAA,EAAE,cAAc,GAAA,EAAA,CAAA,cAAA,EAAE,IAAI,UAAqB;IAC5E,IAAM,eAAe,GAAG,UAAC,CAA2B,EAAA;QAClD,IAAM,mBAAmB,GAAG,sCAAsC,CAAC;AACjE,YAAA,IAAI,EAAA,IAAA;AACJ,YAAA,KAAK,EAAA,KAAA;AACL,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,UAAU,EAAA;AACX,SAAA,CAAC;QACF,aAAa,CAAC,mBAAmB,CAAC;AACpC,KAAC;AAED,IAAA,IAAM,UAAU,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC;AACjF,IAAA,IAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,UAAU,CAAC;AAE3E,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE;AAClF,QAAA,OAAOA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,kBAAA,CAAA,MAAA,CAAmB,QAAQ,GAAG,GAAA,CAAA,MAAA,CAAI,iBAAiB,CAAE,GAAG,EAAE,CAAE,EAAA;YACjFA,cAAC,CAAA,aAAA,CAAA,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAI,CAAA;YAChDA,cAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,eAAe,EAAA;AAAC,gBAAAA,cAAA,CAAA,aAAA,CAAC,uBAAuB,EAAA,EAAC,SAAS,EAAC,qBAAqB,EAAG,CAAA;;AAAkB,gBAAAA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oCAAoC,IAAE,KAAK,CAAC,EAAE,CAAQ;AAA2E,gBAAA,yEAAA,CAAA,CACvP;;AAGR,IAAA,IAAM,cAAc,GAAG,QAAA,CAAA,QAAA,CAAA,EAAA,EAClB,QAAQ,CACR,GAAC,cAAc,KAAd,IAAA,IAAA,cAAc,cAAd,cAAc,GAAI,EAAE,EAAC,CACzB,KAAK,CAAC,IAAI,CAAC;AAEb,IAAA,OAAOA,sCAAK,SAAS,EAAC,2EAA2E,EAAA,EAE7F,aAAa,KAAb,IAAA,IAAA,aAAa,KAAb,MAAA,GAAA,MAAA,GAAA,aAAa,CAAE,GAAG,CAAC,UAAC,EAAE,EAAE,KAAK,EAAA;QAC3B,OAAOA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,EAAA,CAAA,MAAA,CAAG,KAAK,CAAC,EAAE,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,KAAK,CAAE,EAAA;AACrC,YAAA,UAAU,IAAIA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;gBAAEA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,cAAc,EAAA,EAAE,YAAY,CAAC,KAAK,CAAC,CAAQ;AAAA,gBAAAA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,gBAAgB,EAAA,EAAE,YAAY,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAQ,CAAG;YAC7KA,cAAC,CAAA,aAAA,CAAA,aAAa,EACb,EAAA,GAAG,EAAE,EAAA,CAAA,MAAA,CAAG,KAAK,CAAC,EAAE,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,KAAK,CAAE,EAC3B,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,EAC7C,KAAK,EAAE,EAAE,EACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,MAAA,GAAA,QAAQ,GAAI,eAAe,EACrC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,QAAQ,EAChB,CAAA,CAAM;KACX,CAAC,CAEA;AACR;AAEM,IAAA,YAAY,GAAG,UAAC,EAQN,EAAA;;QAPd,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,wBAAyD,EAAzD,gBAAgB,mBAAG,sCAAsC,GAAA,EAAA,EACzD,eAAe,GAAA,EAAA,CAAA,eAAA;AAET,IAAA,IAAA,EAAsD,GAAA,cAAc,EAAE,EAApE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,cAAc,GAAA,EAAA,CAAA,cAAA,EAAE,aAAa,GAAA,EAAA,CAAA,aAAA,EAAE,UAAU,gBAAqB;AAC5E,IAAA,IAAM,cAAc,GAAG,QAAA,CAAA,QAAA,CAAA,EAAA,EAClB,QAAQ,CACR,GAAC,cAAc,KAAd,IAAA,IAAA,cAAc,cAAd,cAAc,GAAI,EAAE,EAAC,CACzB,KAAK,CAAC,IAAI,CAAC;IAEb,IAAM,eAAe,GAAG,UAAC,CAAwC,EAAA;QAC/D,IAAM,mBAAmB,GAAG,sCAAsC,CAAC;AACjE,YAAA,IAAI,EAAA,IAAA;AACJ,YAAA,KAAK,EAAA,KAAA;AACL,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,UAAU,EAAA;AACX,SAAA,CAAC;QACF,aAAa,CAAC,mBAAmB,CAAC;AACpC,KAAC;IACD,IAAM,UAAU,GAAG,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,MAAA,GAAA,QAAQ,GAAI,eAAe;AAE9C;;;;;;;;;;AAUc;AAEd,IAAA,eAAe,GAAG,eAAe,KAAf,IAAA,IAAA,eAAe,KAAf,MAAA,GAAA,eAAe,GAAI,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC;IAEtE,IACE,CAAC,eAAe,CAAC,IAAI,IAAI,eAAe,CAAC,MAAM,KAAK,SAAS;AAC7D,SAAC,CAAC,eAAe,CAAC,IAAI,IAAI,eAAe,CAAC,MAAM,KAAK,SAAS,CAAC,EAC/D;AACA,QAAA,OAAO,IAAI;;SACN,IACL,CAAC,eAAe,CAAC,MAAM,KAAK,SAAS,IAAI,eAAe,CAAC,IAAI;AAC7D,SAAC,eAAe,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAC9D;QACA,QAAQ,GAAG,IAAI;;SACV,IAAI,eAAe,CAAC,MAAM,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,EAAE;QACtE,QAAQ,GAAG,KAAK;;AAElB,IAAA,IAAI,eAAe,CAAC,eAAe,KAAK,SAAS,EAAE;AACjD,QAAA,IAAI,KAAK,KAAK,eAAe,CAAC,eAAe,EAAE;AAC7C,YAAA,KAAK,GAAG,eAAe,CAAC,eAAe;AACvC,YAAA,OAAOA,cAAC,CAAA,aAAA,CAAA,YAAY,EAClB,EAAA,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAO,eAAe,CAAE,EAAA,EAAA,eAAe,EAAE,SAAS,MACjE;;;AAIN,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC;IAEnF,OAAOA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAEP,cAAc,KAAK;AACjB,UAAEA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEC,OAAK,CAAC,aAAa,CAAC;AACpC,gBAAA,SAAS,EAAA,SAAA;AACT,gBAAA,gBAAgB,EAAA,gBAAA;AAChB,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,GAAG,iBAAiB,GAAG,SAAS;oBACxC,oBAAoB,CAAC,KAAK;AAC3B;AACF,aAAA,CAAC,EACA,EAAA,KAAK,CAAC,QAAQ,KAAK;AACjB,cAAED,cAAA,CAAA,aAAA,CAAC,oBAAoB,EAAA,EACnB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB;AACJ,cAAEA,cAAC,CAAA,aAAA,CAAA,cAAc,EACb,EAAA,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,GACnE;AAGR,UAAEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;YACEA,cAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,gBAAgB,EAAA;AAAC,gBAAAA,cAAA,CAAA,aAAA,CAAC,uBAAuB,EAAA,EAAC,SAAS,EAAC,QAAQ,EAAG,CAAA;AAAE,gBAAA,GAAA,EAAA,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE,CAAK;YACpGA,cAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,0BAA0B,EAAA;;gBAA6BA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,kDAAkD,EAAY,EAAA,MAAA,CAAA;AAAA,gBAAAA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,+CAA+C,IAAE,KAAK,CAAC,IAAI,CAAQ;;gBAAIA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,kDAAkD,EAAU,EAAA,IAAA,CAAA;gBAAAA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,+CAA+C,EAAE,EAAA,KAAK,CAAC,EAAE,CAAQ,CAAI,CACtY,CAEL;AACP;;;;"}
|
@@ -1,33 +1,104 @@
|
|
1
|
-
import { __assign } from '../../../node_modules/tslib/tslib.es6.js';
|
2
1
|
import InlineMarkdown from './InlineMarkdown.js';
|
3
|
-
import {
|
4
|
-
import {
|
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
|
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(
|
10
|
-
|
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 (
|
14
|
-
|
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 (
|
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
|
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 (
|
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",
|
28
|
-
React__default.createElement(FieldLabelText,
|
29
|
-
|
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}
|
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 {
|
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
|
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,
|
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
|
-
|
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 {
|
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
|
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,
|
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;;;;"}
|