@bpmn-io/form-js-viewer 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/form-js-base.css +24 -0
- package/dist/assets/form-js.css +457 -654
- package/dist/index.cjs +394 -230
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +391 -232
- package/dist/index.es.js.map +1 -1
- package/dist/types/core/FieldFactory.d.ts +1 -1
- package/dist/types/core/FormFieldRegistry.d.ts +1 -1
- package/dist/types/core/FormLayouter.d.ts +2 -2
- package/dist/types/core/Importer.d.ts +1 -1
- package/dist/types/core/PathRegistry.d.ts +1 -1
- package/dist/types/core/Validator.d.ts +1 -1
- package/dist/types/core/index.d.ts +8 -8
- package/dist/types/features/expression-language/ConditionChecker.d.ts +1 -1
- package/dist/types/features/expression-language/FeelExpressionLanguage.d.ts +1 -1
- package/dist/types/features/expression-language/FeelersTemplating.d.ts +1 -1
- package/dist/types/features/expression-language/index.d.ts +4 -4
- package/dist/types/features/markdown/MarkdownRenderer.d.ts +1 -1
- package/dist/types/features/markdown/index.d.ts +2 -2
- package/dist/types/features/viewerCommands/ViewerCommands.d.ts +1 -1
- package/dist/types/features/viewerCommands/cmd/UpdateFieldValidationHandler.d.ts +1 -1
- package/dist/types/features/viewerCommands/index.d.ts +3 -3
- package/dist/types/index.d.ts +1 -1
- package/dist/types/render/Renderer.d.ts +1 -1
- package/dist/types/render/components/Sanitizer.d.ts +8 -0
- package/dist/types/render/components/form-fields/Button.d.ts +3 -3
- package/dist/types/render/components/form-fields/Checkbox.d.ts +4 -4
- package/dist/types/render/components/form-fields/Checklist.d.ts +5 -5
- package/dist/types/render/components/form-fields/Datetime.d.ts +4 -4
- package/dist/types/render/components/form-fields/Default.d.ts +4 -4
- package/dist/types/render/components/form-fields/Group.d.ts +4 -4
- package/dist/types/render/components/form-fields/IFrame.d.ts +12 -0
- package/dist/types/render/components/form-fields/Image.d.ts +3 -3
- package/dist/types/render/components/form-fields/Number.d.ts +4 -4
- package/dist/types/render/components/form-fields/Radio.d.ts +5 -5
- package/dist/types/render/components/form-fields/Select.d.ts +5 -5
- package/dist/types/render/components/form-fields/Separator.d.ts +3 -3
- package/dist/types/render/components/form-fields/Spacer.d.ts +3 -3
- package/dist/types/render/components/form-fields/Taglist.d.ts +5 -5
- package/dist/types/render/components/form-fields/Text.d.ts +3 -3
- package/dist/types/render/components/form-fields/Textarea.d.ts +4 -4
- package/dist/types/render/components/form-fields/Textfield.d.ts +4 -4
- package/dist/types/render/components/index.d.ts +3 -2
- package/dist/types/render/components/util/optionsUtil.d.ts +8 -0
- package/dist/types/render/hooks/useCleanupMultiSelectValues.d.ts +1 -0
- package/dist/types/render/hooks/useCleanupSingleSelectValue.d.ts +1 -0
- package/dist/types/render/hooks/useOptionsAsync.d.ts +28 -0
- package/dist/types/render/index.d.ts +4 -3
- package/dist/types/util/constants/DatetimeConstants.d.ts +6 -6
- package/dist/types/util/constants/ValuesSourceConstants.d.ts +3 -3
- package/package.json +4 -4
- package/dist/types/render/components/util/valuesUtil.d.ts +0 -8
- package/dist/types/render/hooks/useValuesAsync.d.ts +0 -28
package/dist/index.cjs
CHANGED
|
@@ -445,7 +445,7 @@ function prefixId(id, formId) {
|
|
|
445
445
|
return `fjs-form-${id}`;
|
|
446
446
|
}
|
|
447
447
|
|
|
448
|
-
const type$
|
|
448
|
+
const type$e = 'button';
|
|
449
449
|
function Button(props) {
|
|
450
450
|
const {
|
|
451
451
|
disabled,
|
|
@@ -457,7 +457,7 @@ function Button(props) {
|
|
|
457
457
|
action = 'submit'
|
|
458
458
|
} = field;
|
|
459
459
|
return jsxRuntime.jsx("div", {
|
|
460
|
-
class: formFieldClasses(type$
|
|
460
|
+
class: formFieldClasses(type$e),
|
|
461
461
|
children: jsxRuntime.jsx("button", {
|
|
462
462
|
class: "fjs-button",
|
|
463
463
|
type: action,
|
|
@@ -469,7 +469,7 @@ function Button(props) {
|
|
|
469
469
|
});
|
|
470
470
|
}
|
|
471
471
|
Button.config = {
|
|
472
|
-
type: type$
|
|
472
|
+
type: type$e,
|
|
473
473
|
keyed: false,
|
|
474
474
|
label: 'Button',
|
|
475
475
|
group: 'action',
|
|
@@ -767,7 +767,7 @@ function Label(props) {
|
|
|
767
767
|
});
|
|
768
768
|
}
|
|
769
769
|
|
|
770
|
-
const type$
|
|
770
|
+
const type$d = 'checkbox';
|
|
771
771
|
function Checkbox(props) {
|
|
772
772
|
const {
|
|
773
773
|
disabled,
|
|
@@ -800,7 +800,7 @@ function Checkbox(props) {
|
|
|
800
800
|
} = hooks.useContext(FormContext$1);
|
|
801
801
|
const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;
|
|
802
802
|
return jsxRuntime.jsxs("div", {
|
|
803
|
-
class: classNames(formFieldClasses(type$
|
|
803
|
+
class: classNames(formFieldClasses(type$d, {
|
|
804
804
|
errors,
|
|
805
805
|
disabled,
|
|
806
806
|
readonly
|
|
@@ -832,7 +832,7 @@ function Checkbox(props) {
|
|
|
832
832
|
});
|
|
833
833
|
}
|
|
834
834
|
Checkbox.config = {
|
|
835
|
-
type: type$
|
|
835
|
+
type: type$d,
|
|
836
836
|
keyed: true,
|
|
837
837
|
label: 'Checkbox',
|
|
838
838
|
group: 'selection',
|
|
@@ -846,54 +846,54 @@ Checkbox.config = {
|
|
|
846
846
|
};
|
|
847
847
|
|
|
848
848
|
// parses the options data from the provided form field and form data
|
|
849
|
-
function
|
|
849
|
+
function getOptionsData(formField, formData) {
|
|
850
850
|
const {
|
|
851
|
-
valuesKey,
|
|
852
|
-
values
|
|
851
|
+
valuesKey: optionsKey,
|
|
852
|
+
values: staticOptions
|
|
853
853
|
} = formField;
|
|
854
|
-
return
|
|
854
|
+
return optionsKey ? minDash.get(formData, [optionsKey]) : staticOptions;
|
|
855
855
|
}
|
|
856
856
|
|
|
857
857
|
// transforms the provided options into a normalized format, trimming invalid options
|
|
858
|
-
function
|
|
859
|
-
return
|
|
858
|
+
function normalizeOptionsData(optionsData) {
|
|
859
|
+
return optionsData.filter(_isOptionSomething).map(v => _normalizeOptionsData(v)).filter(v => v);
|
|
860
860
|
}
|
|
861
|
-
function
|
|
862
|
-
if (
|
|
861
|
+
function _normalizeOptionsData(optionData) {
|
|
862
|
+
if (_isAllowedOption(optionData)) {
|
|
863
863
|
// if a primitive is provided, use it as label and value
|
|
864
864
|
return {
|
|
865
|
-
value:
|
|
866
|
-
label: `${
|
|
865
|
+
value: optionData,
|
|
866
|
+
label: `${optionData}`
|
|
867
867
|
};
|
|
868
868
|
}
|
|
869
|
-
if (typeof
|
|
870
|
-
if (!
|
|
869
|
+
if (typeof optionData === 'object') {
|
|
870
|
+
if (!optionData.label && _isAllowedOption(optionData.value)) {
|
|
871
871
|
// if no label is provided, use the value as label
|
|
872
872
|
return {
|
|
873
|
-
value:
|
|
874
|
-
label: `${
|
|
873
|
+
value: optionData.value,
|
|
874
|
+
label: `${optionData.value}`
|
|
875
875
|
};
|
|
876
876
|
}
|
|
877
|
-
if (
|
|
877
|
+
if (_isOptionSomething(optionData.value) && _isAllowedOption(optionData.label)) {
|
|
878
878
|
// if both value and label are provided, use them as is, in this scenario, the value may also be an object
|
|
879
|
-
return
|
|
879
|
+
return optionData;
|
|
880
880
|
}
|
|
881
881
|
}
|
|
882
882
|
return null;
|
|
883
883
|
}
|
|
884
|
-
function
|
|
885
|
-
return _isReadableType(
|
|
884
|
+
function _isAllowedOption(option) {
|
|
885
|
+
return _isReadableType(option) && _isOptionSomething(option);
|
|
886
886
|
}
|
|
887
|
-
function _isReadableType(
|
|
888
|
-
return ['number', 'string', 'boolean'].includes(typeof
|
|
887
|
+
function _isReadableType(option) {
|
|
888
|
+
return ['number', 'string', 'boolean'].includes(typeof option);
|
|
889
889
|
}
|
|
890
|
-
function
|
|
891
|
-
return
|
|
890
|
+
function _isOptionSomething(option) {
|
|
891
|
+
return option || option === 0 || option === false;
|
|
892
892
|
}
|
|
893
893
|
function createEmptyOptions(options = {}) {
|
|
894
894
|
const defaults = {};
|
|
895
895
|
|
|
896
|
-
// provide default
|
|
896
|
+
// provide default options if valuesKey and valuesExpression are not set
|
|
897
897
|
if (!options.valuesKey && !options.valuesExpression) {
|
|
898
898
|
defaults.values = [{
|
|
899
899
|
label: 'Value',
|
|
@@ -916,72 +916,96 @@ const LOAD_STATES = {
|
|
|
916
916
|
};
|
|
917
917
|
|
|
918
918
|
/**
|
|
919
|
-
* @typedef {Object}
|
|
920
|
-
* @property {Object[]}
|
|
921
|
-
* @property {(LOAD_STATES)}
|
|
919
|
+
* @typedef {Object} OptionsGetter
|
|
920
|
+
* @property {Object[]} options - The options data
|
|
921
|
+
* @property {(LOAD_STATES)} loadState - The options data's loading state, to use for conditional rendering
|
|
922
922
|
*/
|
|
923
923
|
|
|
924
924
|
/**
|
|
925
|
-
* A hook to load
|
|
925
|
+
* A hook to load options for single and multiselect components.
|
|
926
926
|
*
|
|
927
|
-
* @param {Object} field - The form field to handle
|
|
928
|
-
* @return {
|
|
927
|
+
* @param {Object} field - The form field to handle options for
|
|
928
|
+
* @return {OptionsGetter} optionsGetter - A options getter object providing loading state and options
|
|
929
929
|
*/
|
|
930
|
-
function
|
|
930
|
+
function useOptionsAsync (field) {
|
|
931
931
|
const {
|
|
932
|
-
valuesExpression,
|
|
933
|
-
valuesKey,
|
|
934
|
-
values:
|
|
932
|
+
valuesExpression: optionsExpression,
|
|
933
|
+
valuesKey: optionsKey,
|
|
934
|
+
values: staticOptions
|
|
935
935
|
} = field;
|
|
936
|
-
const [
|
|
937
|
-
|
|
936
|
+
const [optionsGetter, setOptionsGetter] = hooks.useState({
|
|
937
|
+
options: [],
|
|
938
938
|
error: undefined,
|
|
939
|
-
|
|
939
|
+
loadState: LOAD_STATES.LOADING
|
|
940
940
|
});
|
|
941
941
|
const initialData = useService('form')._getState().initialData;
|
|
942
|
-
const expressionEvaluation = useExpressionEvaluation(
|
|
943
|
-
const
|
|
942
|
+
const expressionEvaluation = useExpressionEvaluation(optionsExpression);
|
|
943
|
+
const evaluatedOptions = useDeepCompareState(expressionEvaluation || [], []);
|
|
944
944
|
hooks.useEffect(() => {
|
|
945
|
-
let
|
|
945
|
+
let options = [];
|
|
946
946
|
|
|
947
|
-
// dynamic
|
|
948
|
-
if (
|
|
949
|
-
const
|
|
950
|
-
if (
|
|
951
|
-
|
|
947
|
+
// dynamic options
|
|
948
|
+
if (optionsKey !== undefined) {
|
|
949
|
+
const keyedOptions = (initialData || {})[optionsKey];
|
|
950
|
+
if (keyedOptions && Array.isArray(keyedOptions)) {
|
|
951
|
+
options = keyedOptions;
|
|
952
952
|
}
|
|
953
953
|
|
|
954
|
-
// static
|
|
955
|
-
} else if (
|
|
956
|
-
|
|
954
|
+
// static options
|
|
955
|
+
} else if (staticOptions !== undefined) {
|
|
956
|
+
options = Array.isArray(staticOptions) ? staticOptions : [];
|
|
957
957
|
|
|
958
958
|
// expression
|
|
959
|
-
} else if (
|
|
960
|
-
if (
|
|
961
|
-
|
|
959
|
+
} else if (optionsExpression) {
|
|
960
|
+
if (evaluatedOptions && Array.isArray(evaluatedOptions)) {
|
|
961
|
+
options = evaluatedOptions;
|
|
962
962
|
}
|
|
963
963
|
} else {
|
|
964
|
-
|
|
964
|
+
setOptionsGetter(buildErrorState('No options source defined in the form definition'));
|
|
965
965
|
return;
|
|
966
966
|
}
|
|
967
967
|
|
|
968
968
|
// normalize data to support primitives and partially defined objects
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
}, [
|
|
972
|
-
return
|
|
969
|
+
options = normalizeOptionsData(options);
|
|
970
|
+
setOptionsGetter(buildLoadedState(options));
|
|
971
|
+
}, [optionsKey, staticOptions, initialData, optionsExpression, evaluatedOptions]);
|
|
972
|
+
return optionsGetter;
|
|
973
973
|
}
|
|
974
974
|
const buildErrorState = error => ({
|
|
975
|
-
|
|
975
|
+
options: [],
|
|
976
976
|
error,
|
|
977
|
-
|
|
977
|
+
loadState: LOAD_STATES.ERROR
|
|
978
978
|
});
|
|
979
|
-
const buildLoadedState =
|
|
980
|
-
|
|
979
|
+
const buildLoadedState = options => ({
|
|
980
|
+
options,
|
|
981
981
|
error: undefined,
|
|
982
|
-
|
|
982
|
+
loadState: LOAD_STATES.LOADED
|
|
983
983
|
});
|
|
984
984
|
|
|
985
|
+
function useCleanupMultiSelectValues (props) {
|
|
986
|
+
const {
|
|
987
|
+
field,
|
|
988
|
+
options,
|
|
989
|
+
loadState,
|
|
990
|
+
onChange,
|
|
991
|
+
values
|
|
992
|
+
} = props;
|
|
993
|
+
|
|
994
|
+
// Ensures that the values are always a subset of the possible options
|
|
995
|
+
hooks.useEffect(() => {
|
|
996
|
+
if (loadState !== LOAD_STATES.LOADED) {
|
|
997
|
+
return;
|
|
998
|
+
}
|
|
999
|
+
const hasValuesNotInOptions = values.some(v => !options.map(o => o.value).includes(v));
|
|
1000
|
+
if (hasValuesNotInOptions) {
|
|
1001
|
+
onChange({
|
|
1002
|
+
field,
|
|
1003
|
+
value: values.filter(v => options.map(o => o.value).includes(v))
|
|
1004
|
+
});
|
|
1005
|
+
}
|
|
1006
|
+
}, [field, options, onChange, JSON.stringify(values), loadState]);
|
|
1007
|
+
}
|
|
1008
|
+
|
|
985
1009
|
// config ///////////////////
|
|
986
1010
|
|
|
987
1011
|
const MINUTES_IN_DAY = 60 * 24;
|
|
@@ -1195,7 +1219,7 @@ function sanitizeSingleSelectValue(options) {
|
|
|
1195
1219
|
value
|
|
1196
1220
|
} = options;
|
|
1197
1221
|
try {
|
|
1198
|
-
const validValues =
|
|
1222
|
+
const validValues = normalizeOptionsData(getOptionsData(formField, data)).map(v => v.value);
|
|
1199
1223
|
return validValues.includes(value) ? value : null;
|
|
1200
1224
|
} catch (error) {
|
|
1201
1225
|
// use default value in case of formatting error
|
|
@@ -1210,7 +1234,7 @@ function sanitizeMultiSelectValue(options) {
|
|
|
1210
1234
|
value
|
|
1211
1235
|
} = options;
|
|
1212
1236
|
try {
|
|
1213
|
-
const validValues =
|
|
1237
|
+
const validValues = normalizeOptionsData(getOptionsData(formField, data)).map(v => v.value);
|
|
1214
1238
|
return value.filter(v => validValues.includes(v));
|
|
1215
1239
|
} catch (error) {
|
|
1216
1240
|
// use default value in case of formatting error
|
|
@@ -1219,7 +1243,7 @@ function sanitizeMultiSelectValue(options) {
|
|
|
1219
1243
|
}
|
|
1220
1244
|
}
|
|
1221
1245
|
|
|
1222
|
-
const type$
|
|
1246
|
+
const type$c = 'checklist';
|
|
1223
1247
|
function Checklist(props) {
|
|
1224
1248
|
const {
|
|
1225
1249
|
disabled,
|
|
@@ -1228,7 +1252,7 @@ function Checklist(props) {
|
|
|
1228
1252
|
onFocus,
|
|
1229
1253
|
field,
|
|
1230
1254
|
readonly,
|
|
1231
|
-
value = []
|
|
1255
|
+
value: values = []
|
|
1232
1256
|
} = props;
|
|
1233
1257
|
const {
|
|
1234
1258
|
description,
|
|
@@ -1241,7 +1265,7 @@ function Checklist(props) {
|
|
|
1241
1265
|
required
|
|
1242
1266
|
} = validate;
|
|
1243
1267
|
const toggleCheckbox = v => {
|
|
1244
|
-
let newValue = [...
|
|
1268
|
+
let newValue = [...values];
|
|
1245
1269
|
if (!newValue.includes(v)) {
|
|
1246
1270
|
newValue.push(v);
|
|
1247
1271
|
} else {
|
|
@@ -1265,15 +1289,22 @@ function Checklist(props) {
|
|
|
1265
1289
|
onFocus && onFocus();
|
|
1266
1290
|
};
|
|
1267
1291
|
const {
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
} =
|
|
1292
|
+
loadState,
|
|
1293
|
+
options
|
|
1294
|
+
} = useOptionsAsync(field);
|
|
1295
|
+
useCleanupMultiSelectValues({
|
|
1296
|
+
field,
|
|
1297
|
+
loadState,
|
|
1298
|
+
options,
|
|
1299
|
+
values,
|
|
1300
|
+
onChange: props.onChange
|
|
1301
|
+
});
|
|
1271
1302
|
const {
|
|
1272
1303
|
formId
|
|
1273
1304
|
} = hooks.useContext(FormContext$1);
|
|
1274
1305
|
const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;
|
|
1275
1306
|
return jsxRuntime.jsxs("div", {
|
|
1276
|
-
class: classNames(formFieldClasses(type$
|
|
1307
|
+
class: classNames(formFieldClasses(type$c, {
|
|
1277
1308
|
errors,
|
|
1278
1309
|
disabled,
|
|
1279
1310
|
readonly
|
|
@@ -1287,11 +1318,11 @@ function Checklist(props) {
|
|
|
1287
1318
|
id: prefixId(`${id}-${index}`, formId),
|
|
1288
1319
|
label: v.label,
|
|
1289
1320
|
class: classNames({
|
|
1290
|
-
'fjs-checked':
|
|
1321
|
+
'fjs-checked': values.includes(v.value)
|
|
1291
1322
|
}),
|
|
1292
1323
|
required: false,
|
|
1293
1324
|
children: jsxRuntime.jsx("input", {
|
|
1294
|
-
checked:
|
|
1325
|
+
checked: values.includes(v.value),
|
|
1295
1326
|
class: "fjs-input",
|
|
1296
1327
|
disabled: disabled,
|
|
1297
1328
|
readOnly: readonly,
|
|
@@ -1312,9 +1343,9 @@ function Checklist(props) {
|
|
|
1312
1343
|
});
|
|
1313
1344
|
}
|
|
1314
1345
|
Checklist.config = {
|
|
1315
|
-
type: type$
|
|
1346
|
+
type: type$c,
|
|
1316
1347
|
keyed: true,
|
|
1317
|
-
label: '
|
|
1348
|
+
label: 'Checkbox group',
|
|
1318
1349
|
group: 'selection',
|
|
1319
1350
|
emptyValue: [],
|
|
1320
1351
|
sanitizeValue: sanitizeMultiSelectValue,
|
|
@@ -1464,16 +1495,16 @@ FormComponent$1.config = {
|
|
|
1464
1495
|
})
|
|
1465
1496
|
};
|
|
1466
1497
|
|
|
1467
|
-
var _path$
|
|
1468
|
-
function _extends$
|
|
1498
|
+
var _path$k;
|
|
1499
|
+
function _extends$m() { _extends$m = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$m.apply(this, arguments); }
|
|
1469
1500
|
var SvgCalendar = function SvgCalendar(props) {
|
|
1470
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1501
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$m({
|
|
1471
1502
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1472
1503
|
width: 14,
|
|
1473
1504
|
height: 15,
|
|
1474
1505
|
fill: "none",
|
|
1475
1506
|
viewBox: "0 0 28 30"
|
|
1476
|
-
}, props), _path$
|
|
1507
|
+
}, props), _path$k || (_path$k = /*#__PURE__*/React__namespace.createElement("path", {
|
|
1477
1508
|
fill: "currentColor",
|
|
1478
1509
|
fillRule: "evenodd",
|
|
1479
1510
|
d: "M19 2H9V0H7v2H2a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-5V0h-2v2ZM7 7V4H2v5h24V4h-5v3h-2V4H9v3H7Zm-5 4v17h24V11H2Z",
|
|
@@ -1736,19 +1767,19 @@ function Datepicker(props) {
|
|
|
1736
1767
|
});
|
|
1737
1768
|
}
|
|
1738
1769
|
|
|
1739
|
-
var _path$
|
|
1740
|
-
function _extends$
|
|
1770
|
+
var _path$j, _path2$4;
|
|
1771
|
+
function _extends$l() { _extends$l = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$l.apply(this, arguments); }
|
|
1741
1772
|
var SvgClock = function SvgClock(props) {
|
|
1742
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1773
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$l({
|
|
1743
1774
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1744
1775
|
width: 16,
|
|
1745
1776
|
height: 16,
|
|
1746
1777
|
fill: "none",
|
|
1747
1778
|
viewBox: "0 0 28 29"
|
|
1748
|
-
}, props), _path$
|
|
1779
|
+
}, props), _path$j || (_path$j = /*#__PURE__*/React__namespace.createElement("path", {
|
|
1749
1780
|
fill: "currentColor",
|
|
1750
1781
|
d: "M13 14.41 18.59 20 20 18.59l-5-5.01V5h-2v9.41Z"
|
|
1751
|
-
})), _path2$
|
|
1782
|
+
})), _path2$4 || (_path2$4 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
1752
1783
|
fill: "currentColor",
|
|
1753
1784
|
fillRule: "evenodd",
|
|
1754
1785
|
d: "M6.222 25.64A14 14 0 1 0 21.778 2.36 14 14 0 0 0 6.222 25.64ZM7.333 4.023a12 12 0 1 1 13.334 19.955A12 12 0 0 1 7.333 4.022Z",
|
|
@@ -2019,7 +2050,7 @@ function Timepicker(props) {
|
|
|
2019
2050
|
});
|
|
2020
2051
|
}
|
|
2021
2052
|
|
|
2022
|
-
const type$
|
|
2053
|
+
const type$b = 'datetime';
|
|
2023
2054
|
function Datetime(props) {
|
|
2024
2055
|
const {
|
|
2025
2056
|
disabled,
|
|
@@ -2191,7 +2222,7 @@ function Datetime(props) {
|
|
|
2191
2222
|
'aria-describedby': errorMessageId
|
|
2192
2223
|
};
|
|
2193
2224
|
return jsxRuntime.jsxs("div", {
|
|
2194
|
-
class: formFieldClasses(type$
|
|
2225
|
+
class: formFieldClasses(type$b, {
|
|
2195
2226
|
errors: allErrors,
|
|
2196
2227
|
disabled,
|
|
2197
2228
|
readonly
|
|
@@ -2215,7 +2246,7 @@ function Datetime(props) {
|
|
|
2215
2246
|
});
|
|
2216
2247
|
}
|
|
2217
2248
|
Datetime.config = {
|
|
2218
|
-
type: type$
|
|
2249
|
+
type: type$b,
|
|
2219
2250
|
keyed: true,
|
|
2220
2251
|
label: 'Date time',
|
|
2221
2252
|
group: 'basic-input',
|
|
@@ -2395,7 +2426,7 @@ Group.config = {
|
|
|
2395
2426
|
type: 'group',
|
|
2396
2427
|
pathed: true,
|
|
2397
2428
|
label: 'Group',
|
|
2398
|
-
group: '
|
|
2429
|
+
group: 'container',
|
|
2399
2430
|
create: (options = {}) => ({
|
|
2400
2431
|
components: [],
|
|
2401
2432
|
showOutline: true,
|
|
@@ -2409,6 +2440,7 @@ const ALLOWED_NODES = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span', 'em', 'a', 'p
|
|
|
2409
2440
|
const ALLOWED_ATTRIBUTES = ['align', 'alt', 'class', 'href', 'id', 'name', 'rel', 'target', 'src'];
|
|
2410
2441
|
const ALLOWED_URI_PATTERN = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i; // eslint-disable-line no-useless-escape
|
|
2411
2442
|
const ALLOWED_IMAGE_SRC_PATTERN = /^(https?|data):.*/i; // eslint-disable-line no-useless-escape
|
|
2443
|
+
const ALLOWED_IFRAME_SRC_PATTERN = /^(https):\/\/*/i; // eslint-disable-line no-useless-escape
|
|
2412
2444
|
const ATTR_WHITESPACE_PATTERN = /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g; // eslint-disable-line no-control-regex
|
|
2413
2445
|
|
|
2414
2446
|
const FORM_ELEMENT = document.createElement('form');
|
|
@@ -2449,6 +2481,18 @@ function sanitizeImageSource(src) {
|
|
|
2449
2481
|
return valid ? src : '';
|
|
2450
2482
|
}
|
|
2451
2483
|
|
|
2484
|
+
/**
|
|
2485
|
+
* Sanitizes an iframe source to ensure we only allow for links
|
|
2486
|
+
* that start with http(s).
|
|
2487
|
+
*
|
|
2488
|
+
* @param {string} src
|
|
2489
|
+
* @returns {string}
|
|
2490
|
+
*/
|
|
2491
|
+
function sanitizeIFrameSource(src) {
|
|
2492
|
+
const valid = ALLOWED_IFRAME_SRC_PATTERN.test(src);
|
|
2493
|
+
return valid ? src : '';
|
|
2494
|
+
}
|
|
2495
|
+
|
|
2452
2496
|
/**
|
|
2453
2497
|
* Recursively sanitize a HTML node, potentially
|
|
2454
2498
|
* removing it, its children or attributes.
|
|
@@ -2530,9 +2574,77 @@ function isValidAttribute(lcTag, lcName, value) {
|
|
|
2530
2574
|
return true;
|
|
2531
2575
|
}
|
|
2532
2576
|
|
|
2533
|
-
|
|
2577
|
+
const type$a = 'iframe';
|
|
2578
|
+
const DEFAULT_HEIGHT = 300;
|
|
2579
|
+
function IFrame(props) {
|
|
2580
|
+
const {
|
|
2581
|
+
field,
|
|
2582
|
+
disabled,
|
|
2583
|
+
readonly
|
|
2584
|
+
} = props;
|
|
2585
|
+
const {
|
|
2586
|
+
height = DEFAULT_HEIGHT,
|
|
2587
|
+
id,
|
|
2588
|
+
label,
|
|
2589
|
+
url
|
|
2590
|
+
} = field;
|
|
2591
|
+
const evaluatedUrl = useSingleLineTemplateEvaluation(url, {
|
|
2592
|
+
debug: true
|
|
2593
|
+
});
|
|
2594
|
+
const safeUrl = hooks.useMemo(() => sanitizeIFrameSource(evaluatedUrl), [evaluatedUrl]);
|
|
2595
|
+
const evaluatedLabel = useSingleLineTemplateEvaluation(label, {
|
|
2596
|
+
debug: true
|
|
2597
|
+
});
|
|
2598
|
+
const {
|
|
2599
|
+
formId
|
|
2600
|
+
} = hooks.useContext(FormContext$1);
|
|
2601
|
+
return jsxRuntime.jsxs("div", {
|
|
2602
|
+
class: formFieldClasses(type$a, {
|
|
2603
|
+
disabled,
|
|
2604
|
+
readonly
|
|
2605
|
+
}),
|
|
2606
|
+
children: [jsxRuntime.jsx(Label, {
|
|
2607
|
+
id: prefixId(id, formId),
|
|
2608
|
+
label: evaluatedLabel
|
|
2609
|
+
}), !evaluatedUrl && jsxRuntime.jsx(IFramePlaceholder, {
|
|
2610
|
+
text: "No content to show."
|
|
2611
|
+
}), evaluatedUrl && safeUrl && jsxRuntime.jsx("iframe", {
|
|
2612
|
+
src: safeUrl,
|
|
2613
|
+
title: evaluatedLabel,
|
|
2614
|
+
height: height,
|
|
2615
|
+
class: "fjs-iframe",
|
|
2616
|
+
id: prefixId(id, formId),
|
|
2617
|
+
sandbox: ""
|
|
2618
|
+
}), evaluatedUrl && !safeUrl && jsxRuntime.jsx(IFramePlaceholder, {
|
|
2619
|
+
text: "External content couldn't be loaded."
|
|
2620
|
+
})]
|
|
2621
|
+
});
|
|
2622
|
+
}
|
|
2623
|
+
function IFramePlaceholder(props) {
|
|
2624
|
+
const {
|
|
2625
|
+
text = 'iFrame'
|
|
2626
|
+
} = props;
|
|
2627
|
+
return jsxRuntime.jsx("div", {
|
|
2628
|
+
class: "fjs-iframe-placeholder",
|
|
2629
|
+
children: jsxRuntime.jsx("p", {
|
|
2630
|
+
class: "fjs-iframe-placeholder-text",
|
|
2631
|
+
children: text
|
|
2632
|
+
})
|
|
2633
|
+
});
|
|
2634
|
+
}
|
|
2635
|
+
IFrame.config = {
|
|
2636
|
+
type: type$a,
|
|
2637
|
+
keyed: false,
|
|
2638
|
+
label: 'iFrame',
|
|
2639
|
+
group: 'container',
|
|
2640
|
+
create: (options = {}) => ({
|
|
2641
|
+
...options
|
|
2642
|
+
})
|
|
2643
|
+
};
|
|
2644
|
+
|
|
2645
|
+
function _extends$k() { _extends$k = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$k.apply(this, arguments); }
|
|
2534
2646
|
var SvgImagePlaceholder = function SvgImagePlaceholder(props) {
|
|
2535
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2647
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$k({
|
|
2536
2648
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2537
2649
|
xmlSpace: "preserve",
|
|
2538
2650
|
width: 64,
|
|
@@ -2637,14 +2749,14 @@ function TemplatedInputAdorner(props) {
|
|
|
2637
2749
|
});
|
|
2638
2750
|
}
|
|
2639
2751
|
|
|
2640
|
-
var _path$
|
|
2641
|
-
function _extends$
|
|
2752
|
+
var _path$i;
|
|
2753
|
+
function _extends$j() { _extends$j = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$j.apply(this, arguments); }
|
|
2642
2754
|
var SvgAngelDown = function SvgAngelDown(props) {
|
|
2643
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2755
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$j({
|
|
2644
2756
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2645
2757
|
width: 8,
|
|
2646
2758
|
height: 8
|
|
2647
|
-
}, props), _path$
|
|
2759
|
+
}, props), _path$i || (_path$i = /*#__PURE__*/React__namespace.createElement("path", {
|
|
2648
2760
|
fill: "currentColor",
|
|
2649
2761
|
fillRule: "evenodd",
|
|
2650
2762
|
stroke: "currentColor",
|
|
@@ -2655,14 +2767,14 @@ var SvgAngelDown = function SvgAngelDown(props) {
|
|
|
2655
2767
|
};
|
|
2656
2768
|
var AngelDownIcon = SvgAngelDown;
|
|
2657
2769
|
|
|
2658
|
-
var _path$
|
|
2659
|
-
function _extends$
|
|
2770
|
+
var _path$h;
|
|
2771
|
+
function _extends$i() { _extends$i = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$i.apply(this, arguments); }
|
|
2660
2772
|
var SvgAngelUp = function SvgAngelUp(props) {
|
|
2661
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2773
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$i({
|
|
2662
2774
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2663
2775
|
width: 8,
|
|
2664
2776
|
height: 8
|
|
2665
|
-
}, props), _path$
|
|
2777
|
+
}, props), _path$h || (_path$h = /*#__PURE__*/React__namespace.createElement("path", {
|
|
2666
2778
|
fill: "currentColor",
|
|
2667
2779
|
fillRule: "evenodd",
|
|
2668
2780
|
stroke: "currentColor",
|
|
@@ -2919,13 +3031,10 @@ Numberfield.config = {
|
|
|
2919
3031
|
value,
|
|
2920
3032
|
formField
|
|
2921
3033
|
}) => {
|
|
2922
|
-
//
|
|
2923
|
-
if (isNullEquivalentValue(value)) return null;
|
|
3034
|
+
// invalid value types are sanitized to null
|
|
3035
|
+
if (isNullEquivalentValue(value) || !isValidNumber(value)) return null;
|
|
2924
3036
|
|
|
2925
|
-
//
|
|
2926
|
-
if (!isValidNumber(value)) return 'NaN';
|
|
2927
|
-
|
|
2928
|
-
// otherwise parse to formatting type
|
|
3037
|
+
// otherwise, we return a string or a number depending on the form field configuration
|
|
2929
3038
|
return formField.serializeToString ? value.toString() : Number(value);
|
|
2930
3039
|
},
|
|
2931
3040
|
create: (options = {}) => ({
|
|
@@ -2933,6 +3042,30 @@ Numberfield.config = {
|
|
|
2933
3042
|
})
|
|
2934
3043
|
};
|
|
2935
3044
|
|
|
3045
|
+
function useCleanupSingleSelectValue (props) {
|
|
3046
|
+
const {
|
|
3047
|
+
field,
|
|
3048
|
+
options,
|
|
3049
|
+
loadState,
|
|
3050
|
+
onChange,
|
|
3051
|
+
value
|
|
3052
|
+
} = props;
|
|
3053
|
+
|
|
3054
|
+
// Ensures that the value is always one of the possible options
|
|
3055
|
+
hooks.useEffect(() => {
|
|
3056
|
+
if (loadState !== LOAD_STATES.LOADED) {
|
|
3057
|
+
return;
|
|
3058
|
+
}
|
|
3059
|
+
const hasValueNotInOptions = value && !options.map(o => o.value).includes(value);
|
|
3060
|
+
if (hasValueNotInOptions) {
|
|
3061
|
+
onChange({
|
|
3062
|
+
field,
|
|
3063
|
+
value: null
|
|
3064
|
+
});
|
|
3065
|
+
}
|
|
3066
|
+
}, [field, options, onChange, value, loadState]);
|
|
3067
|
+
}
|
|
3068
|
+
|
|
2936
3069
|
const type$7 = 'radio';
|
|
2937
3070
|
function Radio(props) {
|
|
2938
3071
|
const {
|
|
@@ -2973,9 +3106,16 @@ function Radio(props) {
|
|
|
2973
3106
|
onFocus && onFocus();
|
|
2974
3107
|
};
|
|
2975
3108
|
const {
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
} =
|
|
3109
|
+
loadState,
|
|
3110
|
+
options
|
|
3111
|
+
} = useOptionsAsync(field);
|
|
3112
|
+
useCleanupSingleSelectValue({
|
|
3113
|
+
field,
|
|
3114
|
+
loadState,
|
|
3115
|
+
options,
|
|
3116
|
+
value,
|
|
3117
|
+
onChange: props.onChange
|
|
3118
|
+
});
|
|
2979
3119
|
const {
|
|
2980
3120
|
formId
|
|
2981
3121
|
} = hooks.useContext(FormContext$1);
|
|
@@ -3022,21 +3162,21 @@ function Radio(props) {
|
|
|
3022
3162
|
Radio.config = {
|
|
3023
3163
|
type: type$7,
|
|
3024
3164
|
keyed: true,
|
|
3025
|
-
label: 'Radio',
|
|
3165
|
+
label: 'Radio group',
|
|
3026
3166
|
group: 'selection',
|
|
3027
3167
|
emptyValue: null,
|
|
3028
3168
|
sanitizeValue: sanitizeSingleSelectValue,
|
|
3029
3169
|
create: createEmptyOptions
|
|
3030
3170
|
};
|
|
3031
3171
|
|
|
3032
|
-
var _path$
|
|
3033
|
-
function _extends$
|
|
3172
|
+
var _path$g;
|
|
3173
|
+
function _extends$h() { _extends$h = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$h.apply(this, arguments); }
|
|
3034
3174
|
var SvgXMark = function SvgXMark(props) {
|
|
3035
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
3175
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$h({
|
|
3036
3176
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3037
3177
|
width: 8,
|
|
3038
3178
|
height: 8
|
|
3039
|
-
}, props), _path$
|
|
3179
|
+
}, props), _path$g || (_path$g = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3040
3180
|
fill: "currentColor",
|
|
3041
3181
|
fillRule: "evenodd",
|
|
3042
3182
|
stroke: "currentColor",
|
|
@@ -3068,9 +3208,16 @@ function SearchableSelect(props) {
|
|
|
3068
3208
|
const searchbarRef = hooks.useRef();
|
|
3069
3209
|
const eventBus = useService('eventBus');
|
|
3070
3210
|
const {
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
} =
|
|
3211
|
+
loadState,
|
|
3212
|
+
options
|
|
3213
|
+
} = useOptionsAsync(field);
|
|
3214
|
+
useCleanupSingleSelectValue({
|
|
3215
|
+
field,
|
|
3216
|
+
loadState,
|
|
3217
|
+
options,
|
|
3218
|
+
value,
|
|
3219
|
+
onChange: props.onChange
|
|
3220
|
+
});
|
|
3074
3221
|
|
|
3075
3222
|
// We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label
|
|
3076
3223
|
const valueToOptionMap = hooks.useMemo(() => Object.assign({}, ...options.map((o, x) => ({
|
|
@@ -3228,10 +3375,18 @@ function SimpleSelect(props) {
|
|
|
3228
3375
|
} = hooks.useContext(FormContext$1);
|
|
3229
3376
|
const [isDropdownExpanded, setIsDropdownExpanded] = hooks.useState(false);
|
|
3230
3377
|
const selectRef = hooks.useRef();
|
|
3378
|
+
const inputRef = hooks.useRef();
|
|
3231
3379
|
const {
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
} =
|
|
3380
|
+
loadState,
|
|
3381
|
+
options
|
|
3382
|
+
} = useOptionsAsync(field);
|
|
3383
|
+
useCleanupSingleSelectValue({
|
|
3384
|
+
field,
|
|
3385
|
+
loadState,
|
|
3386
|
+
options,
|
|
3387
|
+
value,
|
|
3388
|
+
onChange: props.onChange
|
|
3389
|
+
});
|
|
3235
3390
|
|
|
3236
3391
|
// We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label
|
|
3237
3392
|
const valueToOptionMap = hooks.useMemo(() => Object.assign({}, ...options.map((o, x) => ({
|
|
@@ -3252,12 +3407,12 @@ function SimpleSelect(props) {
|
|
|
3252
3407
|
return ds;
|
|
3253
3408
|
}, [disabled, isDropdownExpanded, loadState, value]);
|
|
3254
3409
|
const onMouseDown = hooks.useCallback(e => {
|
|
3255
|
-
const
|
|
3410
|
+
const input = inputRef.current;
|
|
3256
3411
|
setIsDropdownExpanded(!isDropdownExpanded);
|
|
3257
3412
|
if (isDropdownExpanded) {
|
|
3258
|
-
|
|
3413
|
+
input.blur();
|
|
3259
3414
|
} else {
|
|
3260
|
-
|
|
3415
|
+
input.focus();
|
|
3261
3416
|
}
|
|
3262
3417
|
e.preventDefault();
|
|
3263
3418
|
}, [isDropdownExpanded]);
|
|
@@ -3294,6 +3449,7 @@ function SimpleSelect(props) {
|
|
|
3294
3449
|
id: prefixId(`${id}-display`, formId),
|
|
3295
3450
|
children: valueLabel || 'Select'
|
|
3296
3451
|
}), !disabled && jsxRuntime.jsx("input", {
|
|
3452
|
+
ref: inputRef,
|
|
3297
3453
|
id: prefixId(`${id}-search`, formId),
|
|
3298
3454
|
class: "fjs-select-hidden-input",
|
|
3299
3455
|
value: valueLabel,
|
|
@@ -3492,34 +3648,36 @@ function Taglist(props) {
|
|
|
3492
3648
|
} = hooks.useContext(FormContext$1);
|
|
3493
3649
|
const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;
|
|
3494
3650
|
const [filter, setFilter] = hooks.useState('');
|
|
3495
|
-
const [filteredOptions, setFilteredOptions] = hooks.useState([]);
|
|
3496
3651
|
const [isDropdownExpanded, setIsDropdownExpanded] = hooks.useState(false);
|
|
3497
|
-
const [hasOptionsLeft, setHasOptionsLeft] = hooks.useState(true);
|
|
3498
3652
|
const [isEscapeClosed, setIsEscapeClose] = hooks.useState(false);
|
|
3499
3653
|
const focusScopeRef = hooks.useRef();
|
|
3500
3654
|
const inputRef = hooks.useRef();
|
|
3501
3655
|
const eventBus = useService('eventBus');
|
|
3502
3656
|
const {
|
|
3503
|
-
|
|
3504
|
-
|
|
3505
|
-
} =
|
|
3657
|
+
loadState,
|
|
3658
|
+
options
|
|
3659
|
+
} = useOptionsAsync(field);
|
|
3660
|
+
useCleanupMultiSelectValues({
|
|
3661
|
+
field,
|
|
3662
|
+
loadState,
|
|
3663
|
+
options,
|
|
3664
|
+
values,
|
|
3665
|
+
onChange: props.onChange
|
|
3666
|
+
});
|
|
3506
3667
|
|
|
3507
3668
|
// We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label
|
|
3508
3669
|
const valueToOptionMap = hooks.useMemo(() => Object.assign({}, ...options.map((o, x) => ({
|
|
3509
3670
|
[o.value]: options[x]
|
|
3510
3671
|
}))), [options]);
|
|
3672
|
+
const hasOptionsLeft = hooks.useMemo(() => options.length > values.length, [options.length, values.length]);
|
|
3511
3673
|
|
|
3512
3674
|
// Usage of stringify is necessary here because we want this effect to only trigger when there is a value change to the array
|
|
3513
|
-
hooks.
|
|
3514
|
-
if (loadState
|
|
3515
|
-
|
|
3516
|
-
} else {
|
|
3517
|
-
setFilteredOptions([]);
|
|
3675
|
+
const filteredOptions = hooks.useMemo(() => {
|
|
3676
|
+
if (loadState !== LOAD_STATES.LOADED) {
|
|
3677
|
+
return [];
|
|
3518
3678
|
}
|
|
3519
|
-
|
|
3520
|
-
|
|
3521
|
-
setHasOptionsLeft(options.length > values.length);
|
|
3522
|
-
}, [options.length, values.length]);
|
|
3679
|
+
return options.filter(o => o.label && o.value && o.label.toLowerCase().includes(filter.toLowerCase()) && !values.includes(o.value));
|
|
3680
|
+
}, [filter, options, JSON.stringify(values), loadState]);
|
|
3523
3681
|
const selectValue = value => {
|
|
3524
3682
|
if (filter) {
|
|
3525
3683
|
setFilter('');
|
|
@@ -3646,7 +3804,7 @@ function Taglist(props) {
|
|
|
3646
3804
|
onMouseDown: e => e.preventDefault(),
|
|
3647
3805
|
children: [jsxRuntime.jsx("span", {
|
|
3648
3806
|
class: "fjs-taglist-tag-label",
|
|
3649
|
-
children: valueToOptionMap[v] ? valueToOptionMap[v].label :
|
|
3807
|
+
children: valueToOptionMap[v] ? valueToOptionMap[v].label : undefined
|
|
3650
3808
|
}), !disabled && !readonly && jsxRuntime.jsx("button", {
|
|
3651
3809
|
type: "button",
|
|
3652
3810
|
title: "Remove tag",
|
|
@@ -3867,7 +4025,7 @@ Textfield.config = {
|
|
|
3867
4025
|
sanitizeValue: ({
|
|
3868
4026
|
value
|
|
3869
4027
|
}) => {
|
|
3870
|
-
if (minDash.isArray(value) || minDash.isObject(value)) {
|
|
4028
|
+
if (minDash.isArray(value) || minDash.isObject(value) || minDash.isNil(value)) {
|
|
3871
4029
|
return '';
|
|
3872
4030
|
}
|
|
3873
4031
|
|
|
@@ -3958,7 +4116,7 @@ Textarea.config = {
|
|
|
3958
4116
|
emptyValue: '',
|
|
3959
4117
|
sanitizeValue: ({
|
|
3960
4118
|
value
|
|
3961
|
-
}) => minDash.isArray(value) || minDash.isObject(value) ? '' : String(value),
|
|
4119
|
+
}) => minDash.isArray(value) || minDash.isObject(value) || minDash.isNil(value) ? '' : String(value),
|
|
3962
4120
|
create: (options = {}) => ({
|
|
3963
4121
|
...options
|
|
3964
4122
|
})
|
|
@@ -3982,84 +4140,64 @@ const autoSizeTextarea = textarea => {
|
|
|
3982
4140
|
textarea.style.overflow = calculatedHeight > maxHeight ? 'visible' : 'hidden';
|
|
3983
4141
|
};
|
|
3984
4142
|
|
|
3985
|
-
var _path$
|
|
3986
|
-
function _extends$
|
|
4143
|
+
var _path$f;
|
|
4144
|
+
function _extends$g() { _extends$g = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$g.apply(this, arguments); }
|
|
3987
4145
|
var SvgButton = function SvgButton(props) {
|
|
3988
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
4146
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$g({
|
|
3989
4147
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3990
4148
|
width: 54,
|
|
3991
4149
|
height: 54,
|
|
3992
4150
|
fill: "currentcolor"
|
|
3993
|
-
}, props), _path$
|
|
4151
|
+
}, props), _path$f || (_path$f = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3994
4152
|
fillRule: "evenodd",
|
|
3995
4153
|
d: "M45 17a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h36zm-9 8.889H18v2.222h18v-2.222z"
|
|
3996
4154
|
})));
|
|
3997
4155
|
};
|
|
3998
4156
|
var ButtonIcon = SvgButton;
|
|
3999
4157
|
|
|
4000
|
-
var _path$
|
|
4001
|
-
function _extends$
|
|
4158
|
+
var _path$e;
|
|
4159
|
+
function _extends$f() { _extends$f = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$f.apply(this, arguments); }
|
|
4002
4160
|
var SvgCheckbox = function SvgCheckbox(props) {
|
|
4003
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
4161
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$f({
|
|
4004
4162
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4005
4163
|
width: 54,
|
|
4006
4164
|
height: 54,
|
|
4007
4165
|
fill: "currentcolor"
|
|
4008
|
-
}, props), _path$
|
|
4166
|
+
}, props), _path$e || (_path$e = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4009
4167
|
d: "M34 18H20a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V20a2 2 0 0 0-2-2zm-9 14-5-5 1.41-1.41L25 29.17l7.59-7.59L34 23l-9 9z"
|
|
4010
4168
|
})));
|
|
4011
4169
|
};
|
|
4012
4170
|
var CheckboxIcon = SvgCheckbox;
|
|
4013
4171
|
|
|
4014
|
-
var
|
|
4015
|
-
function _extends$
|
|
4172
|
+
var _path$d;
|
|
4173
|
+
function _extends$e() { _extends$e = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$e.apply(this, arguments); }
|
|
4016
4174
|
var SvgChecklist = function SvgChecklist(props) {
|
|
4017
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
4175
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$e({
|
|
4018
4176
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4019
|
-
xmlnsXlink: "http://www.w3.org/1999/xlink",
|
|
4020
4177
|
width: 54,
|
|
4021
4178
|
height: 54,
|
|
4022
|
-
fill: "
|
|
4023
|
-
}, props),
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
y: 24
|
|
4030
|
-
}), /*#__PURE__*/React__namespace.createElement("use", {
|
|
4031
|
-
xlinkHref: "#Checklist_svg__a",
|
|
4032
|
-
y: 12
|
|
4033
|
-
}))), _use || (_use = /*#__PURE__*/React__namespace.createElement("use", {
|
|
4034
|
-
xlinkHref: "#Checklist_svg__b"
|
|
4035
|
-
})), _use2 || (_use2 = /*#__PURE__*/React__namespace.createElement("use", {
|
|
4036
|
-
xlinkHref: "#Checklist_svg__b",
|
|
4037
|
-
y: 12
|
|
4038
|
-
})), _use3 || (_use3 = /*#__PURE__*/React__namespace.createElement("use", {
|
|
4039
|
-
xlinkHref: "#Checklist_svg__b",
|
|
4040
|
-
y: 24
|
|
4041
|
-
})), _defs || (_defs = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("path", {
|
|
4042
|
-
id: "Checklist_svg__a",
|
|
4043
|
-
d: "M18 12h-6v6h6v-6zm-6-2a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2h-6z"
|
|
4044
|
-
}), /*#__PURE__*/React__namespace.createElement("path", {
|
|
4045
|
-
id: "Checklist_svg__b",
|
|
4046
|
-
d: "M23 14.5a1 1 0 0 1 1-1h19a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H24a1 1 0 0 1-1-1v-1z"
|
|
4047
|
-
}))));
|
|
4179
|
+
fill: "none"
|
|
4180
|
+
}, props), _path$d || (_path$d = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4181
|
+
fill: "currentColor",
|
|
4182
|
+
fillRule: "evenodd",
|
|
4183
|
+
d: "M14.35 24.75H19v4.65h-4.65v-4.65Zm-1.414-1.414a2 2 0 0 1 1.414-.586H19a2 2 0 0 1 2 2v4.65a2 2 0 0 1-2 2h-4.65a2 2 0 0 1-2-2v-4.65a2 2 0 0 1 .586-1.414ZM14.35 37.05H19v4.65h-4.65v-4.65Zm-1.414-1.414a2 2 0 0 1 1.414-.586H19a2 2 0 0 1 2 2v4.65a2 2 0 0 1-2 2h-4.65a2 2 0 0 1-2-2v-4.65a2 2 0 0 1 .586-1.414ZM14.35 12.45H19v4.65h-4.65v-4.65Zm-1.414-1.414a2 2 0 0 1 1.414-.586H19a2 2 0 0 1 2 2v4.65a2 2 0 0 1-2 2h-4.65a2 2 0 0 1-2-2v-4.65a2 2 0 0 1 .586-1.414Zm12.007 14.977a1 1 0 0 0-.293.707v.65a1 1 0 0 0 1 1h15a1 1 0 0 0 1-1v-.65a1 1 0 0 0-1-1h-15a1 1 0 0 0-.707.293Zm0 12.3a1 1 0 0 0-.293.707v.65a1 1 0 0 0 1 1h15a1 1 0 0 0 1-1v-.65a1 1 0 0 0-1-1h-15a1 1 0 0 0-.707.293Zm0-24.6a1 1 0 0 0-.293.707v.65a1 1 0 0 0 1 1h15a1 1 0 0 0 1-1v-.65a1 1 0 0 0-1-1h-15a1 1 0 0 0-.707.293Z",
|
|
4184
|
+
clipRule: "evenodd"
|
|
4185
|
+
})));
|
|
4048
4186
|
};
|
|
4049
4187
|
var ChecklistIcon = SvgChecklist;
|
|
4050
4188
|
|
|
4051
|
-
var _path$
|
|
4052
|
-
function _extends$
|
|
4189
|
+
var _path$c, _path2$3, _path3;
|
|
4190
|
+
function _extends$d() { _extends$d = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$d.apply(this, arguments); }
|
|
4053
4191
|
var SvgDatetime = function SvgDatetime(props) {
|
|
4054
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
4192
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$d({
|
|
4055
4193
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4056
4194
|
width: 54,
|
|
4057
4195
|
height: 54,
|
|
4058
4196
|
fill: "currentcolor"
|
|
4059
|
-
}, props), _path$
|
|
4197
|
+
}, props), _path$c || (_path$c = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4060
4198
|
fillRule: "evenodd",
|
|
4061
4199
|
d: "M37.908 13.418h-5.004v-2.354h-1.766v2.354H21.13v-2.354h-1.766v2.354H14.36a2.07 2.07 0 0 0-2.06 2.06v23.549a2.07 2.07 0 0 0 2.06 2.06h6.77v-1.766h-6.358a.707.707 0 0 1-.706-.706V15.89c0-.39.316-.707.706-.707h4.592v2.355h1.766v-2.355h10.008v2.355h1.766v-2.355h4.592a.71.71 0 0 1 .707.707v6.358h1.765v-6.77c0-1.133-.927-2.06-2.06-2.06z"
|
|
4062
|
-
})), _path2$
|
|
4200
|
+
})), _path2$3 || (_path2$3 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4063
4201
|
d: "m35.13 37.603 1.237-1.237-3.468-3.475v-5.926h-1.754v6.654l3.984 3.984Z"
|
|
4064
4202
|
})), _path3 || (_path3 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4065
4203
|
fillRule: "evenodd",
|
|
@@ -4068,27 +4206,27 @@ var SvgDatetime = function SvgDatetime(props) {
|
|
|
4068
4206
|
};
|
|
4069
4207
|
var DatetimeIcon = SvgDatetime;
|
|
4070
4208
|
|
|
4071
|
-
var _path$
|
|
4072
|
-
function _extends$
|
|
4209
|
+
var _path$b, _path2$2;
|
|
4210
|
+
function _extends$c() { _extends$c = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$c.apply(this, arguments); }
|
|
4073
4211
|
var SvgTaglist = function SvgTaglist(props) {
|
|
4074
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
4212
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$c({
|
|
4075
4213
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4076
4214
|
width: 54,
|
|
4077
4215
|
height: 54,
|
|
4078
4216
|
fill: "currentcolor"
|
|
4079
|
-
}, props), _path$
|
|
4217
|
+
}, props), _path$b || (_path$b = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4080
4218
|
fillRule: "evenodd",
|
|
4081
4219
|
d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36Zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1Z"
|
|
4082
|
-
})), _path2$
|
|
4220
|
+
})), _path2$2 || (_path2$2 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4083
4221
|
d: "M11 22a1 1 0 0 1 1-1h19a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H12a1 1 0 0 1-1-1V22Z"
|
|
4084
4222
|
})));
|
|
4085
4223
|
};
|
|
4086
4224
|
var TaglistIcon = SvgTaglist;
|
|
4087
4225
|
|
|
4088
4226
|
var _rect, _rect2, _rect3;
|
|
4089
|
-
function _extends$
|
|
4227
|
+
function _extends$b() { _extends$b = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$b.apply(this, arguments); }
|
|
4090
4228
|
var SvgForm = function SvgForm(props) {
|
|
4091
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
4229
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$b({
|
|
4092
4230
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4093
4231
|
width: 54,
|
|
4094
4232
|
height: 54
|
|
@@ -4114,9 +4252,24 @@ var SvgForm = function SvgForm(props) {
|
|
|
4114
4252
|
};
|
|
4115
4253
|
var FormIcon = SvgForm;
|
|
4116
4254
|
|
|
4255
|
+
var _path$a;
|
|
4256
|
+
function _extends$a() { _extends$a = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$a.apply(this, arguments); }
|
|
4257
|
+
var SvgGroup = function SvgGroup(props) {
|
|
4258
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$a({
|
|
4259
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4260
|
+
width: 54,
|
|
4261
|
+
height: 54,
|
|
4262
|
+
fill: "currentcolor"
|
|
4263
|
+
}, props), _path$a || (_path$a = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4264
|
+
fillRule: "evenodd",
|
|
4265
|
+
d: "M8 33v5a1 1 0 0 0 1 1h4v2H9a3 3 0 0 1-3-3v-5h2Zm18 6v2H15v-2h11Zm13 0v2H28v-2h11Zm9-6v5a3 3 0 0 1-3 3h-4v-2h4a1 1 0 0 0 .993-.883L46 38v-5h2ZM8 22v9H6v-9h2Zm40 0v9h-2v-9h2Zm-35-9v2H9a1 1 0 0 0-.993.883L8 16v4H6v-4a3 3 0 0 1 3-3h4Zm32 0a3 3 0 0 1 3 3v4h-2v-4a1 1 0 0 0-.883-.993L45 15h-4v-2h4Zm-6 0v2H28v-2h11Zm-13 0v2H15v-2h11Z"
|
|
4266
|
+
})));
|
|
4267
|
+
};
|
|
4268
|
+
var GroupIcon = SvgGroup;
|
|
4269
|
+
|
|
4117
4270
|
var _path$9;
|
|
4118
4271
|
function _extends$9() { _extends$9 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); }
|
|
4119
|
-
var
|
|
4272
|
+
var SvgNumber = function SvgNumber(props) {
|
|
4120
4273
|
return /*#__PURE__*/React__namespace.createElement("svg", _extends$9({
|
|
4121
4274
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4122
4275
|
width: 54,
|
|
@@ -4124,58 +4277,58 @@ var SvgGroup = function SvgGroup(props) {
|
|
|
4124
4277
|
fill: "currentcolor"
|
|
4125
4278
|
}, props), _path$9 || (_path$9 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4126
4279
|
fillRule: "evenodd",
|
|
4127
|
-
d: "
|
|
4280
|
+
d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zM35 28.444h7l-3.5 4-3.5-4zM35 26h7l-3.5-4-3.5 4z"
|
|
4128
4281
|
})));
|
|
4129
4282
|
};
|
|
4130
|
-
var
|
|
4283
|
+
var NumberIcon = SvgNumber;
|
|
4131
4284
|
|
|
4132
4285
|
var _path$8;
|
|
4133
4286
|
function _extends$8() { _extends$8 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); }
|
|
4134
|
-
var
|
|
4287
|
+
var SvgRadio = function SvgRadio(props) {
|
|
4135
4288
|
return /*#__PURE__*/React__namespace.createElement("svg", _extends$8({
|
|
4136
4289
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4137
4290
|
width: 54,
|
|
4138
4291
|
height: 54,
|
|
4139
4292
|
fill: "currentcolor"
|
|
4140
4293
|
}, props), _path$8 || (_path$8 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4141
|
-
|
|
4142
|
-
d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zM35 28.444h7l-3.5 4-3.5-4zM35 26h7l-3.5-4-3.5 4z"
|
|
4294
|
+
d: "M27 22c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 18a8 8 0 1 1 0-16 8 8 0 1 1 0 16z"
|
|
4143
4295
|
})));
|
|
4144
4296
|
};
|
|
4145
|
-
var
|
|
4297
|
+
var RadioIcon = SvgRadio;
|
|
4146
4298
|
|
|
4147
4299
|
var _path$7;
|
|
4148
4300
|
function _extends$7() { _extends$7 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); }
|
|
4149
|
-
var
|
|
4301
|
+
var SvgSelect = function SvgSelect(props) {
|
|
4150
4302
|
return /*#__PURE__*/React__namespace.createElement("svg", _extends$7({
|
|
4151
4303
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4152
4304
|
width: 54,
|
|
4153
4305
|
height: 54,
|
|
4154
4306
|
fill: "currentcolor"
|
|
4155
4307
|
}, props), _path$7 || (_path$7 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4156
|
-
|
|
4308
|
+
fillRule: "evenodd",
|
|
4309
|
+
d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zm-12 7h9l-4.5 6-4.5-6z"
|
|
4157
4310
|
})));
|
|
4158
4311
|
};
|
|
4159
|
-
var
|
|
4312
|
+
var SelectIcon = SvgSelect;
|
|
4160
4313
|
|
|
4161
4314
|
var _path$6;
|
|
4162
4315
|
function _extends$6() { _extends$6 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); }
|
|
4163
|
-
var
|
|
4316
|
+
var SvgSeparator = function SvgSeparator(props) {
|
|
4164
4317
|
return /*#__PURE__*/React__namespace.createElement("svg", _extends$6({
|
|
4165
4318
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4166
4319
|
width: 54,
|
|
4167
4320
|
height: 54,
|
|
4168
|
-
fill: "
|
|
4321
|
+
fill: "none"
|
|
4169
4322
|
}, props), _path$6 || (_path$6 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4170
|
-
|
|
4171
|
-
d: "
|
|
4323
|
+
fill: "currentColor",
|
|
4324
|
+
d: "M26.293 16.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 18.414l-3.293 3.293a1 1 0 0 1-1.414-1.414l4-4ZM9 26h36v2H9v-2Zm13.293 7.707 4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 35.586l-3.293-3.293a1 1 0 0 0-1.414 1.414Z"
|
|
4172
4325
|
})));
|
|
4173
4326
|
};
|
|
4174
|
-
var
|
|
4327
|
+
var SeparatorIcon = SvgSeparator;
|
|
4175
4328
|
|
|
4176
4329
|
var _path$5;
|
|
4177
4330
|
function _extends$5() { _extends$5 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); }
|
|
4178
|
-
var
|
|
4331
|
+
var SvgSpacer = function SvgSpacer(props) {
|
|
4179
4332
|
return /*#__PURE__*/React__namespace.createElement("svg", _extends$5({
|
|
4180
4333
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4181
4334
|
width: 54,
|
|
@@ -4183,43 +4336,43 @@ var SvgSeparator = function SvgSeparator(props) {
|
|
|
4183
4336
|
fill: "none"
|
|
4184
4337
|
}, props), _path$5 || (_path$5 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4185
4338
|
fill: "currentColor",
|
|
4186
|
-
d: "
|
|
4339
|
+
d: "M9 15v2h36v-2H9Zm0 22v2h36v-2H9Zm17.293-17.707a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 21.414l-3.293 3.293a1 1 0 0 1-1.414-1.414l4-4Zm-4 11.414 4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 32.586l-3.293-3.293a1 1 0 0 0-1.414 1.414Z"
|
|
4187
4340
|
})));
|
|
4188
4341
|
};
|
|
4189
|
-
var
|
|
4342
|
+
var SpacerIcon = SvgSpacer;
|
|
4190
4343
|
|
|
4191
4344
|
var _path$4;
|
|
4192
4345
|
function _extends$4() { _extends$4 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }
|
|
4193
|
-
var
|
|
4346
|
+
var SvgText = function SvgText(props) {
|
|
4194
4347
|
return /*#__PURE__*/React__namespace.createElement("svg", _extends$4({
|
|
4195
4348
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4196
4349
|
width: 54,
|
|
4197
4350
|
height: 54,
|
|
4198
|
-
fill: "
|
|
4351
|
+
fill: "currentcolor"
|
|
4199
4352
|
}, props), _path$4 || (_path$4 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4200
|
-
|
|
4201
|
-
d: "M9 15v2h36v-2H9Zm0 22v2h36v-2H9Zm17.293-17.707a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 21.414l-3.293 3.293a1 1 0 0 1-1.414-1.414l4-4Zm-4 11.414 4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 32.586l-3.293-3.293a1 1 0 0 0-1.414 1.414Z"
|
|
4353
|
+
d: "M20.58 33.77h-3l-1.18-3.08H11l-1.1 3.08H7l5.27-13.54h2.89zm-5-5.36-1.86-5-1.83 5zM22 20.23h5.41a15.47 15.47 0 0 1 2.4.14 3.42 3.42 0 0 1 1.41.55 3.47 3.47 0 0 1 1 1.14 3 3 0 0 1 .42 1.58 3.26 3.26 0 0 1-1.91 2.94 3.63 3.63 0 0 1 1.91 1.22 3.28 3.28 0 0 1 .66 2 4 4 0 0 1-.43 1.8 3.63 3.63 0 0 1-1.09 1.4 3.89 3.89 0 0 1-1.83.65q-.69.07-3.3.09H22zm2.73 2.25v3.13h3.8a1.79 1.79 0 0 0 1.1-.49 1.41 1.41 0 0 0 .41-1 1.49 1.49 0 0 0-.35-1 1.54 1.54 0 0 0-1-.48c-.27 0-1.05-.05-2.34-.05zm0 5.39v3.62h2.57a11.52 11.52 0 0 0 1.88-.09 1.65 1.65 0 0 0 1-.54 1.6 1.6 0 0 0 .38-1.14 1.75 1.75 0 0 0-.29-1 1.69 1.69 0 0 0-.86-.62 9.28 9.28 0 0 0-2.41-.23zm19.62.92 2.65.84a5.94 5.94 0 0 1-2 3.29A5.74 5.74 0 0 1 41.38 34a5.87 5.87 0 0 1-4.44-1.84 7.09 7.09 0 0 1-1.73-5A7.43 7.43 0 0 1 37 21.87 6 6 0 0 1 41.54 20a5.64 5.64 0 0 1 4 1.47A5.33 5.33 0 0 1 47 24l-2.7.65a2.8 2.8 0 0 0-2.86-2.27A3.09 3.09 0 0 0 39 23.42a5.31 5.31 0 0 0-.93 3.5 5.62 5.62 0 0 0 .93 3.65 3 3 0 0 0 2.4 1.09 2.72 2.72 0 0 0 1.82-.66 4 4 0 0 0 1.13-2.21z"
|
|
4202
4354
|
})));
|
|
4203
4355
|
};
|
|
4204
|
-
var
|
|
4356
|
+
var TextIcon = SvgText;
|
|
4205
4357
|
|
|
4206
4358
|
var _path$3;
|
|
4207
4359
|
function _extends$3() { _extends$3 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }
|
|
4208
|
-
var
|
|
4360
|
+
var SvgTextfield = function SvgTextfield(props) {
|
|
4209
4361
|
return /*#__PURE__*/React__namespace.createElement("svg", _extends$3({
|
|
4210
4362
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4211
4363
|
width: 54,
|
|
4212
4364
|
height: 54,
|
|
4213
4365
|
fill: "currentcolor"
|
|
4214
4366
|
}, props), _path$3 || (_path$3 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4215
|
-
|
|
4367
|
+
fillRule: "evenodd",
|
|
4368
|
+
d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zm-32 4v10h-2V22h2z"
|
|
4216
4369
|
})));
|
|
4217
4370
|
};
|
|
4218
|
-
var
|
|
4371
|
+
var TextfieldIcon = SvgTextfield;
|
|
4219
4372
|
|
|
4220
4373
|
var _path$2;
|
|
4221
4374
|
function _extends$2() { _extends$2 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
|
|
4222
|
-
var
|
|
4375
|
+
var SvgTextarea = function SvgTextarea(props) {
|
|
4223
4376
|
return /*#__PURE__*/React__namespace.createElement("svg", _extends$2({
|
|
4224
4377
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4225
4378
|
width: 54,
|
|
@@ -4227,25 +4380,30 @@ var SvgTextfield = function SvgTextfield(props) {
|
|
|
4227
4380
|
fill: "currentcolor"
|
|
4228
4381
|
}, props), _path$2 || (_path$2 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4229
4382
|
fillRule: "evenodd",
|
|
4230
|
-
d: "M45
|
|
4383
|
+
d: "M45 13a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V16a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V16a1 1 0 0 0-1-1zm-1.136 15.5.849.849-6.364 6.364-.849-.849 6.364-6.364zm.264 3.5.849.849-2.828 2.828-.849-.849L44.128 34zM13 19v10h-2V19h2z"
|
|
4231
4384
|
})));
|
|
4232
4385
|
};
|
|
4233
|
-
var
|
|
4386
|
+
var TextareaIcon = SvgTextarea;
|
|
4234
4387
|
|
|
4235
|
-
var _path$1;
|
|
4388
|
+
var _path$1, _path2$1;
|
|
4236
4389
|
function _extends$1() { _extends$1 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
|
|
4237
|
-
var
|
|
4390
|
+
var SvgIFrame = function SvgIFrame(props) {
|
|
4238
4391
|
return /*#__PURE__*/React__namespace.createElement("svg", _extends$1({
|
|
4239
4392
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4240
4393
|
width: 54,
|
|
4241
4394
|
height: 54,
|
|
4242
|
-
fill: "
|
|
4395
|
+
fill: "none"
|
|
4243
4396
|
}, props), _path$1 || (_path$1 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4397
|
+
fill: "currentcolor",
|
|
4398
|
+
d: "M34.467 37.3 41 31l-6.533-6.3-1.32 1.273L38.36 31l-5.213 5.027 1.32 1.273ZM19.533 24.7 13 31l6.533 6.3 1.32-1.273L15.64 31l5.214-5.027-1.32-1.273Zm4.127 14.832 1.805.468 4.875-17.532L28.535 22 23.66 39.532Z"
|
|
4399
|
+
})), _path2$1 || (_path2$1 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4400
|
+
fill: "currentcolor",
|
|
4244
4401
|
fillRule: "evenodd",
|
|
4245
|
-
d: "
|
|
4402
|
+
d: "M46 9a3 3 0 0 1 3 3v30a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3V12a3 3 0 0 1 3-3h38Zm0 2H8a1 1 0 0 0-1 1v4h40v-4a1 1 0 0 0-1-1ZM7 42V18h40v24a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1Z",
|
|
4403
|
+
clipRule: "evenodd"
|
|
4246
4404
|
})));
|
|
4247
4405
|
};
|
|
4248
|
-
var
|
|
4406
|
+
var IFrameIcon = SvgIFrame;
|
|
4249
4407
|
|
|
4250
4408
|
var _path, _path2;
|
|
4251
4409
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
@@ -4275,6 +4433,7 @@ const iconsByType = type => {
|
|
|
4275
4433
|
columns: GroupIcon,
|
|
4276
4434
|
datetime: DatetimeIcon,
|
|
4277
4435
|
group: GroupIcon,
|
|
4436
|
+
iframe: IFrameIcon,
|
|
4278
4437
|
image: ImageIcon,
|
|
4279
4438
|
number: NumberIcon,
|
|
4280
4439
|
radio: RadioIcon,
|
|
@@ -4289,7 +4448,7 @@ const iconsByType = type => {
|
|
|
4289
4448
|
}[type];
|
|
4290
4449
|
};
|
|
4291
4450
|
|
|
4292
|
-
const formFields = [Button, Checkbox, Checklist, FormComponent$1, Group, Image, Numberfield, Datetime, Radio, Select, Spacer, Separator, Taglist, Text, Textfield, Textarea];
|
|
4451
|
+
const formFields = [Button, Checkbox, Checklist, FormComponent$1, Group, IFrame, Image, Numberfield, Datetime, Radio, Select, Spacer, Separator, Taglist, Text, Textfield, Textarea];
|
|
4293
4452
|
|
|
4294
4453
|
class FormFields {
|
|
4295
4454
|
constructor() {
|
|
@@ -4361,8 +4520,8 @@ function createFormContainer(prefix = 'fjs') {
|
|
|
4361
4520
|
return container;
|
|
4362
4521
|
}
|
|
4363
4522
|
|
|
4364
|
-
const EXPRESSION_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'conditional.hide', 'description', 'label', 'source', 'readonly', 'text', 'validate.min', 'validate.max', 'validate.minLength', 'validate.maxLength', 'valuesExpression'];
|
|
4365
|
-
const TEMPLATE_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'description', 'label', 'source', 'text'];
|
|
4523
|
+
const EXPRESSION_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'conditional.hide', 'description', 'label', 'source', 'readonly', 'text', 'validate.min', 'validate.max', 'validate.minLength', 'validate.maxLength', 'valuesExpression', 'url'];
|
|
4524
|
+
const TEMPLATE_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'description', 'label', 'source', 'text', 'url'];
|
|
4366
4525
|
function isRequired(field) {
|
|
4367
4526
|
return field.required;
|
|
4368
4527
|
}
|
|
@@ -6857,7 +7016,7 @@ class Form {
|
|
|
6857
7016
|
}
|
|
6858
7017
|
}
|
|
6859
7018
|
|
|
6860
|
-
const schemaVersion =
|
|
7019
|
+
const schemaVersion = 13;
|
|
6861
7020
|
|
|
6862
7021
|
/**
|
|
6863
7022
|
* @typedef { import('./types').CreateFormOptions } CreateFormOptions
|
|
@@ -6908,6 +7067,7 @@ exports.FormFields = FormFields;
|
|
|
6908
7067
|
exports.FormLayouter = FormLayouter;
|
|
6909
7068
|
exports.FormRenderContext = FormRenderContext$1;
|
|
6910
7069
|
exports.Group = Group;
|
|
7070
|
+
exports.IFrame = IFrame;
|
|
6911
7071
|
exports.Image = Image;
|
|
6912
7072
|
exports.Importer = Importer;
|
|
6913
7073
|
exports.Label = Label;
|
|
@@ -6952,6 +7112,10 @@ exports.pathParse = pathParse;
|
|
|
6952
7112
|
exports.pathsEqual = pathsEqual;
|
|
6953
7113
|
exports.runRecursively = runRecursively;
|
|
6954
7114
|
exports.sanitizeHTML = sanitizeHTML;
|
|
7115
|
+
exports.sanitizeIFrameSource = sanitizeIFrameSource;
|
|
6955
7116
|
exports.sanitizeImageSource = sanitizeImageSource;
|
|
6956
7117
|
exports.schemaVersion = schemaVersion;
|
|
7118
|
+
exports.useExpressionEvaluation = useExpressionEvaluation;
|
|
7119
|
+
exports.useSingleLineTemplateEvaluation = useSingleLineTemplateEvaluation;
|
|
7120
|
+
exports.useTemplateEvaluation = useTemplateEvaluation;
|
|
6957
7121
|
//# sourceMappingURL=index.cjs.map
|