@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.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Ids from 'ids';
|
|
2
|
-
import { isString, get, isNumber, set, findIndex, isArray, isObject, values, uniqueBy, isFunction, bind, assign,
|
|
2
|
+
import { isString, get, isNumber, set, findIndex, isArray, isObject, isNil, values, uniqueBy, isFunction, bind, assign, groupBy, flatten, isUndefined } from 'min-dash';
|
|
3
3
|
import Big from 'big.js';
|
|
4
4
|
import { parseExpression, parseUnaryTests, evaluate, unaryTest } from 'feelin';
|
|
5
5
|
import { evaluate as evaluate$1, parser, buildSimpleTree } from 'feelers';
|
|
@@ -425,7 +425,7 @@ function prefixId(id, formId) {
|
|
|
425
425
|
return `fjs-form-${id}`;
|
|
426
426
|
}
|
|
427
427
|
|
|
428
|
-
const type$
|
|
428
|
+
const type$e = 'button';
|
|
429
429
|
function Button(props) {
|
|
430
430
|
const {
|
|
431
431
|
disabled,
|
|
@@ -437,7 +437,7 @@ function Button(props) {
|
|
|
437
437
|
action = 'submit'
|
|
438
438
|
} = field;
|
|
439
439
|
return jsx("div", {
|
|
440
|
-
class: formFieldClasses(type$
|
|
440
|
+
class: formFieldClasses(type$e),
|
|
441
441
|
children: jsx("button", {
|
|
442
442
|
class: "fjs-button",
|
|
443
443
|
type: action,
|
|
@@ -449,7 +449,7 @@ function Button(props) {
|
|
|
449
449
|
});
|
|
450
450
|
}
|
|
451
451
|
Button.config = {
|
|
452
|
-
type: type$
|
|
452
|
+
type: type$e,
|
|
453
453
|
keyed: false,
|
|
454
454
|
label: 'Button',
|
|
455
455
|
group: 'action',
|
|
@@ -747,7 +747,7 @@ function Label(props) {
|
|
|
747
747
|
});
|
|
748
748
|
}
|
|
749
749
|
|
|
750
|
-
const type$
|
|
750
|
+
const type$d = 'checkbox';
|
|
751
751
|
function Checkbox(props) {
|
|
752
752
|
const {
|
|
753
753
|
disabled,
|
|
@@ -780,7 +780,7 @@ function Checkbox(props) {
|
|
|
780
780
|
} = useContext(FormContext$1);
|
|
781
781
|
const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;
|
|
782
782
|
return jsxs("div", {
|
|
783
|
-
class: classNames(formFieldClasses(type$
|
|
783
|
+
class: classNames(formFieldClasses(type$d, {
|
|
784
784
|
errors,
|
|
785
785
|
disabled,
|
|
786
786
|
readonly
|
|
@@ -812,7 +812,7 @@ function Checkbox(props) {
|
|
|
812
812
|
});
|
|
813
813
|
}
|
|
814
814
|
Checkbox.config = {
|
|
815
|
-
type: type$
|
|
815
|
+
type: type$d,
|
|
816
816
|
keyed: true,
|
|
817
817
|
label: 'Checkbox',
|
|
818
818
|
group: 'selection',
|
|
@@ -826,54 +826,54 @@ Checkbox.config = {
|
|
|
826
826
|
};
|
|
827
827
|
|
|
828
828
|
// parses the options data from the provided form field and form data
|
|
829
|
-
function
|
|
829
|
+
function getOptionsData(formField, formData) {
|
|
830
830
|
const {
|
|
831
|
-
valuesKey,
|
|
832
|
-
values
|
|
831
|
+
valuesKey: optionsKey,
|
|
832
|
+
values: staticOptions
|
|
833
833
|
} = formField;
|
|
834
|
-
return
|
|
834
|
+
return optionsKey ? get(formData, [optionsKey]) : staticOptions;
|
|
835
835
|
}
|
|
836
836
|
|
|
837
837
|
// transforms the provided options into a normalized format, trimming invalid options
|
|
838
|
-
function
|
|
839
|
-
return
|
|
838
|
+
function normalizeOptionsData(optionsData) {
|
|
839
|
+
return optionsData.filter(_isOptionSomething).map(v => _normalizeOptionsData(v)).filter(v => v);
|
|
840
840
|
}
|
|
841
|
-
function
|
|
842
|
-
if (
|
|
841
|
+
function _normalizeOptionsData(optionData) {
|
|
842
|
+
if (_isAllowedOption(optionData)) {
|
|
843
843
|
// if a primitive is provided, use it as label and value
|
|
844
844
|
return {
|
|
845
|
-
value:
|
|
846
|
-
label: `${
|
|
845
|
+
value: optionData,
|
|
846
|
+
label: `${optionData}`
|
|
847
847
|
};
|
|
848
848
|
}
|
|
849
|
-
if (typeof
|
|
850
|
-
if (!
|
|
849
|
+
if (typeof optionData === 'object') {
|
|
850
|
+
if (!optionData.label && _isAllowedOption(optionData.value)) {
|
|
851
851
|
// if no label is provided, use the value as label
|
|
852
852
|
return {
|
|
853
|
-
value:
|
|
854
|
-
label: `${
|
|
853
|
+
value: optionData.value,
|
|
854
|
+
label: `${optionData.value}`
|
|
855
855
|
};
|
|
856
856
|
}
|
|
857
|
-
if (
|
|
857
|
+
if (_isOptionSomething(optionData.value) && _isAllowedOption(optionData.label)) {
|
|
858
858
|
// if both value and label are provided, use them as is, in this scenario, the value may also be an object
|
|
859
|
-
return
|
|
859
|
+
return optionData;
|
|
860
860
|
}
|
|
861
861
|
}
|
|
862
862
|
return null;
|
|
863
863
|
}
|
|
864
|
-
function
|
|
865
|
-
return _isReadableType(
|
|
864
|
+
function _isAllowedOption(option) {
|
|
865
|
+
return _isReadableType(option) && _isOptionSomething(option);
|
|
866
866
|
}
|
|
867
|
-
function _isReadableType(
|
|
868
|
-
return ['number', 'string', 'boolean'].includes(typeof
|
|
867
|
+
function _isReadableType(option) {
|
|
868
|
+
return ['number', 'string', 'boolean'].includes(typeof option);
|
|
869
869
|
}
|
|
870
|
-
function
|
|
871
|
-
return
|
|
870
|
+
function _isOptionSomething(option) {
|
|
871
|
+
return option || option === 0 || option === false;
|
|
872
872
|
}
|
|
873
873
|
function createEmptyOptions(options = {}) {
|
|
874
874
|
const defaults = {};
|
|
875
875
|
|
|
876
|
-
// provide default
|
|
876
|
+
// provide default options if valuesKey and valuesExpression are not set
|
|
877
877
|
if (!options.valuesKey && !options.valuesExpression) {
|
|
878
878
|
defaults.values = [{
|
|
879
879
|
label: 'Value',
|
|
@@ -896,72 +896,96 @@ const LOAD_STATES = {
|
|
|
896
896
|
};
|
|
897
897
|
|
|
898
898
|
/**
|
|
899
|
-
* @typedef {Object}
|
|
900
|
-
* @property {Object[]}
|
|
901
|
-
* @property {(LOAD_STATES)}
|
|
899
|
+
* @typedef {Object} OptionsGetter
|
|
900
|
+
* @property {Object[]} options - The options data
|
|
901
|
+
* @property {(LOAD_STATES)} loadState - The options data's loading state, to use for conditional rendering
|
|
902
902
|
*/
|
|
903
903
|
|
|
904
904
|
/**
|
|
905
|
-
* A hook to load
|
|
905
|
+
* A hook to load options for single and multiselect components.
|
|
906
906
|
*
|
|
907
|
-
* @param {Object} field - The form field to handle
|
|
908
|
-
* @return {
|
|
907
|
+
* @param {Object} field - The form field to handle options for
|
|
908
|
+
* @return {OptionsGetter} optionsGetter - A options getter object providing loading state and options
|
|
909
909
|
*/
|
|
910
|
-
function
|
|
910
|
+
function useOptionsAsync (field) {
|
|
911
911
|
const {
|
|
912
|
-
valuesExpression,
|
|
913
|
-
valuesKey,
|
|
914
|
-
values:
|
|
912
|
+
valuesExpression: optionsExpression,
|
|
913
|
+
valuesKey: optionsKey,
|
|
914
|
+
values: staticOptions
|
|
915
915
|
} = field;
|
|
916
|
-
const [
|
|
917
|
-
|
|
916
|
+
const [optionsGetter, setOptionsGetter] = useState({
|
|
917
|
+
options: [],
|
|
918
918
|
error: undefined,
|
|
919
|
-
|
|
919
|
+
loadState: LOAD_STATES.LOADING
|
|
920
920
|
});
|
|
921
921
|
const initialData = useService('form')._getState().initialData;
|
|
922
|
-
const expressionEvaluation = useExpressionEvaluation(
|
|
923
|
-
const
|
|
922
|
+
const expressionEvaluation = useExpressionEvaluation(optionsExpression);
|
|
923
|
+
const evaluatedOptions = useDeepCompareState(expressionEvaluation || [], []);
|
|
924
924
|
useEffect(() => {
|
|
925
|
-
let
|
|
925
|
+
let options = [];
|
|
926
926
|
|
|
927
|
-
// dynamic
|
|
928
|
-
if (
|
|
929
|
-
const
|
|
930
|
-
if (
|
|
931
|
-
|
|
927
|
+
// dynamic options
|
|
928
|
+
if (optionsKey !== undefined) {
|
|
929
|
+
const keyedOptions = (initialData || {})[optionsKey];
|
|
930
|
+
if (keyedOptions && Array.isArray(keyedOptions)) {
|
|
931
|
+
options = keyedOptions;
|
|
932
932
|
}
|
|
933
933
|
|
|
934
|
-
// static
|
|
935
|
-
} else if (
|
|
936
|
-
|
|
934
|
+
// static options
|
|
935
|
+
} else if (staticOptions !== undefined) {
|
|
936
|
+
options = Array.isArray(staticOptions) ? staticOptions : [];
|
|
937
937
|
|
|
938
938
|
// expression
|
|
939
|
-
} else if (
|
|
940
|
-
if (
|
|
941
|
-
|
|
939
|
+
} else if (optionsExpression) {
|
|
940
|
+
if (evaluatedOptions && Array.isArray(evaluatedOptions)) {
|
|
941
|
+
options = evaluatedOptions;
|
|
942
942
|
}
|
|
943
943
|
} else {
|
|
944
|
-
|
|
944
|
+
setOptionsGetter(buildErrorState('No options source defined in the form definition'));
|
|
945
945
|
return;
|
|
946
946
|
}
|
|
947
947
|
|
|
948
948
|
// normalize data to support primitives and partially defined objects
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
}, [
|
|
952
|
-
return
|
|
949
|
+
options = normalizeOptionsData(options);
|
|
950
|
+
setOptionsGetter(buildLoadedState(options));
|
|
951
|
+
}, [optionsKey, staticOptions, initialData, optionsExpression, evaluatedOptions]);
|
|
952
|
+
return optionsGetter;
|
|
953
953
|
}
|
|
954
954
|
const buildErrorState = error => ({
|
|
955
|
-
|
|
955
|
+
options: [],
|
|
956
956
|
error,
|
|
957
|
-
|
|
957
|
+
loadState: LOAD_STATES.ERROR
|
|
958
958
|
});
|
|
959
|
-
const buildLoadedState =
|
|
960
|
-
|
|
959
|
+
const buildLoadedState = options => ({
|
|
960
|
+
options,
|
|
961
961
|
error: undefined,
|
|
962
|
-
|
|
962
|
+
loadState: LOAD_STATES.LOADED
|
|
963
963
|
});
|
|
964
964
|
|
|
965
|
+
function useCleanupMultiSelectValues (props) {
|
|
966
|
+
const {
|
|
967
|
+
field,
|
|
968
|
+
options,
|
|
969
|
+
loadState,
|
|
970
|
+
onChange,
|
|
971
|
+
values
|
|
972
|
+
} = props;
|
|
973
|
+
|
|
974
|
+
// Ensures that the values are always a subset of the possible options
|
|
975
|
+
useEffect(() => {
|
|
976
|
+
if (loadState !== LOAD_STATES.LOADED) {
|
|
977
|
+
return;
|
|
978
|
+
}
|
|
979
|
+
const hasValuesNotInOptions = values.some(v => !options.map(o => o.value).includes(v));
|
|
980
|
+
if (hasValuesNotInOptions) {
|
|
981
|
+
onChange({
|
|
982
|
+
field,
|
|
983
|
+
value: values.filter(v => options.map(o => o.value).includes(v))
|
|
984
|
+
});
|
|
985
|
+
}
|
|
986
|
+
}, [field, options, onChange, JSON.stringify(values), loadState]);
|
|
987
|
+
}
|
|
988
|
+
|
|
965
989
|
// config ///////////////////
|
|
966
990
|
|
|
967
991
|
const MINUTES_IN_DAY = 60 * 24;
|
|
@@ -1175,7 +1199,7 @@ function sanitizeSingleSelectValue(options) {
|
|
|
1175
1199
|
value
|
|
1176
1200
|
} = options;
|
|
1177
1201
|
try {
|
|
1178
|
-
const validValues =
|
|
1202
|
+
const validValues = normalizeOptionsData(getOptionsData(formField, data)).map(v => v.value);
|
|
1179
1203
|
return validValues.includes(value) ? value : null;
|
|
1180
1204
|
} catch (error) {
|
|
1181
1205
|
// use default value in case of formatting error
|
|
@@ -1190,7 +1214,7 @@ function sanitizeMultiSelectValue(options) {
|
|
|
1190
1214
|
value
|
|
1191
1215
|
} = options;
|
|
1192
1216
|
try {
|
|
1193
|
-
const validValues =
|
|
1217
|
+
const validValues = normalizeOptionsData(getOptionsData(formField, data)).map(v => v.value);
|
|
1194
1218
|
return value.filter(v => validValues.includes(v));
|
|
1195
1219
|
} catch (error) {
|
|
1196
1220
|
// use default value in case of formatting error
|
|
@@ -1199,7 +1223,7 @@ function sanitizeMultiSelectValue(options) {
|
|
|
1199
1223
|
}
|
|
1200
1224
|
}
|
|
1201
1225
|
|
|
1202
|
-
const type$
|
|
1226
|
+
const type$c = 'checklist';
|
|
1203
1227
|
function Checklist(props) {
|
|
1204
1228
|
const {
|
|
1205
1229
|
disabled,
|
|
@@ -1208,7 +1232,7 @@ function Checklist(props) {
|
|
|
1208
1232
|
onFocus,
|
|
1209
1233
|
field,
|
|
1210
1234
|
readonly,
|
|
1211
|
-
value = []
|
|
1235
|
+
value: values = []
|
|
1212
1236
|
} = props;
|
|
1213
1237
|
const {
|
|
1214
1238
|
description,
|
|
@@ -1221,7 +1245,7 @@ function Checklist(props) {
|
|
|
1221
1245
|
required
|
|
1222
1246
|
} = validate;
|
|
1223
1247
|
const toggleCheckbox = v => {
|
|
1224
|
-
let newValue = [...
|
|
1248
|
+
let newValue = [...values];
|
|
1225
1249
|
if (!newValue.includes(v)) {
|
|
1226
1250
|
newValue.push(v);
|
|
1227
1251
|
} else {
|
|
@@ -1245,15 +1269,22 @@ function Checklist(props) {
|
|
|
1245
1269
|
onFocus && onFocus();
|
|
1246
1270
|
};
|
|
1247
1271
|
const {
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
} =
|
|
1272
|
+
loadState,
|
|
1273
|
+
options
|
|
1274
|
+
} = useOptionsAsync(field);
|
|
1275
|
+
useCleanupMultiSelectValues({
|
|
1276
|
+
field,
|
|
1277
|
+
loadState,
|
|
1278
|
+
options,
|
|
1279
|
+
values,
|
|
1280
|
+
onChange: props.onChange
|
|
1281
|
+
});
|
|
1251
1282
|
const {
|
|
1252
1283
|
formId
|
|
1253
1284
|
} = useContext(FormContext$1);
|
|
1254
1285
|
const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;
|
|
1255
1286
|
return jsxs("div", {
|
|
1256
|
-
class: classNames(formFieldClasses(type$
|
|
1287
|
+
class: classNames(formFieldClasses(type$c, {
|
|
1257
1288
|
errors,
|
|
1258
1289
|
disabled,
|
|
1259
1290
|
readonly
|
|
@@ -1267,11 +1298,11 @@ function Checklist(props) {
|
|
|
1267
1298
|
id: prefixId(`${id}-${index}`, formId),
|
|
1268
1299
|
label: v.label,
|
|
1269
1300
|
class: classNames({
|
|
1270
|
-
'fjs-checked':
|
|
1301
|
+
'fjs-checked': values.includes(v.value)
|
|
1271
1302
|
}),
|
|
1272
1303
|
required: false,
|
|
1273
1304
|
children: jsx("input", {
|
|
1274
|
-
checked:
|
|
1305
|
+
checked: values.includes(v.value),
|
|
1275
1306
|
class: "fjs-input",
|
|
1276
1307
|
disabled: disabled,
|
|
1277
1308
|
readOnly: readonly,
|
|
@@ -1292,9 +1323,9 @@ function Checklist(props) {
|
|
|
1292
1323
|
});
|
|
1293
1324
|
}
|
|
1294
1325
|
Checklist.config = {
|
|
1295
|
-
type: type$
|
|
1326
|
+
type: type$c,
|
|
1296
1327
|
keyed: true,
|
|
1297
|
-
label: '
|
|
1328
|
+
label: 'Checkbox group',
|
|
1298
1329
|
group: 'selection',
|
|
1299
1330
|
emptyValue: [],
|
|
1300
1331
|
sanitizeValue: sanitizeMultiSelectValue,
|
|
@@ -1444,16 +1475,16 @@ FormComponent$1.config = {
|
|
|
1444
1475
|
})
|
|
1445
1476
|
};
|
|
1446
1477
|
|
|
1447
|
-
var _path$
|
|
1448
|
-
function _extends$
|
|
1478
|
+
var _path$k;
|
|
1479
|
+
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); }
|
|
1449
1480
|
var SvgCalendar = function SvgCalendar(props) {
|
|
1450
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
1481
|
+
return /*#__PURE__*/React.createElement("svg", _extends$m({
|
|
1451
1482
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1452
1483
|
width: 14,
|
|
1453
1484
|
height: 15,
|
|
1454
1485
|
fill: "none",
|
|
1455
1486
|
viewBox: "0 0 28 30"
|
|
1456
|
-
}, props), _path$
|
|
1487
|
+
}, props), _path$k || (_path$k = /*#__PURE__*/React.createElement("path", {
|
|
1457
1488
|
fill: "currentColor",
|
|
1458
1489
|
fillRule: "evenodd",
|
|
1459
1490
|
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",
|
|
@@ -1716,19 +1747,19 @@ function Datepicker(props) {
|
|
|
1716
1747
|
});
|
|
1717
1748
|
}
|
|
1718
1749
|
|
|
1719
|
-
var _path$
|
|
1720
|
-
function _extends$
|
|
1750
|
+
var _path$j, _path2$4;
|
|
1751
|
+
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); }
|
|
1721
1752
|
var SvgClock = function SvgClock(props) {
|
|
1722
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
1753
|
+
return /*#__PURE__*/React.createElement("svg", _extends$l({
|
|
1723
1754
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1724
1755
|
width: 16,
|
|
1725
1756
|
height: 16,
|
|
1726
1757
|
fill: "none",
|
|
1727
1758
|
viewBox: "0 0 28 29"
|
|
1728
|
-
}, props), _path$
|
|
1759
|
+
}, props), _path$j || (_path$j = /*#__PURE__*/React.createElement("path", {
|
|
1729
1760
|
fill: "currentColor",
|
|
1730
1761
|
d: "M13 14.41 18.59 20 20 18.59l-5-5.01V5h-2v9.41Z"
|
|
1731
|
-
})), _path2$
|
|
1762
|
+
})), _path2$4 || (_path2$4 = /*#__PURE__*/React.createElement("path", {
|
|
1732
1763
|
fill: "currentColor",
|
|
1733
1764
|
fillRule: "evenodd",
|
|
1734
1765
|
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",
|
|
@@ -1999,7 +2030,7 @@ function Timepicker(props) {
|
|
|
1999
2030
|
});
|
|
2000
2031
|
}
|
|
2001
2032
|
|
|
2002
|
-
const type$
|
|
2033
|
+
const type$b = 'datetime';
|
|
2003
2034
|
function Datetime(props) {
|
|
2004
2035
|
const {
|
|
2005
2036
|
disabled,
|
|
@@ -2171,7 +2202,7 @@ function Datetime(props) {
|
|
|
2171
2202
|
'aria-describedby': errorMessageId
|
|
2172
2203
|
};
|
|
2173
2204
|
return jsxs("div", {
|
|
2174
|
-
class: formFieldClasses(type$
|
|
2205
|
+
class: formFieldClasses(type$b, {
|
|
2175
2206
|
errors: allErrors,
|
|
2176
2207
|
disabled,
|
|
2177
2208
|
readonly
|
|
@@ -2195,7 +2226,7 @@ function Datetime(props) {
|
|
|
2195
2226
|
});
|
|
2196
2227
|
}
|
|
2197
2228
|
Datetime.config = {
|
|
2198
|
-
type: type$
|
|
2229
|
+
type: type$b,
|
|
2199
2230
|
keyed: true,
|
|
2200
2231
|
label: 'Date time',
|
|
2201
2232
|
group: 'basic-input',
|
|
@@ -2375,7 +2406,7 @@ Group.config = {
|
|
|
2375
2406
|
type: 'group',
|
|
2376
2407
|
pathed: true,
|
|
2377
2408
|
label: 'Group',
|
|
2378
|
-
group: '
|
|
2409
|
+
group: 'container',
|
|
2379
2410
|
create: (options = {}) => ({
|
|
2380
2411
|
components: [],
|
|
2381
2412
|
showOutline: true,
|
|
@@ -2389,6 +2420,7 @@ const ALLOWED_NODES = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span', 'em', 'a', 'p
|
|
|
2389
2420
|
const ALLOWED_ATTRIBUTES = ['align', 'alt', 'class', 'href', 'id', 'name', 'rel', 'target', 'src'];
|
|
2390
2421
|
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
|
|
2391
2422
|
const ALLOWED_IMAGE_SRC_PATTERN = /^(https?|data):.*/i; // eslint-disable-line no-useless-escape
|
|
2423
|
+
const ALLOWED_IFRAME_SRC_PATTERN = /^(https):\/\/*/i; // eslint-disable-line no-useless-escape
|
|
2392
2424
|
const ATTR_WHITESPACE_PATTERN = /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g; // eslint-disable-line no-control-regex
|
|
2393
2425
|
|
|
2394
2426
|
const FORM_ELEMENT = document.createElement('form');
|
|
@@ -2429,6 +2461,18 @@ function sanitizeImageSource(src) {
|
|
|
2429
2461
|
return valid ? src : '';
|
|
2430
2462
|
}
|
|
2431
2463
|
|
|
2464
|
+
/**
|
|
2465
|
+
* Sanitizes an iframe source to ensure we only allow for links
|
|
2466
|
+
* that start with http(s).
|
|
2467
|
+
*
|
|
2468
|
+
* @param {string} src
|
|
2469
|
+
* @returns {string}
|
|
2470
|
+
*/
|
|
2471
|
+
function sanitizeIFrameSource(src) {
|
|
2472
|
+
const valid = ALLOWED_IFRAME_SRC_PATTERN.test(src);
|
|
2473
|
+
return valid ? src : '';
|
|
2474
|
+
}
|
|
2475
|
+
|
|
2432
2476
|
/**
|
|
2433
2477
|
* Recursively sanitize a HTML node, potentially
|
|
2434
2478
|
* removing it, its children or attributes.
|
|
@@ -2510,9 +2554,77 @@ function isValidAttribute(lcTag, lcName, value) {
|
|
|
2510
2554
|
return true;
|
|
2511
2555
|
}
|
|
2512
2556
|
|
|
2513
|
-
|
|
2557
|
+
const type$a = 'iframe';
|
|
2558
|
+
const DEFAULT_HEIGHT = 300;
|
|
2559
|
+
function IFrame(props) {
|
|
2560
|
+
const {
|
|
2561
|
+
field,
|
|
2562
|
+
disabled,
|
|
2563
|
+
readonly
|
|
2564
|
+
} = props;
|
|
2565
|
+
const {
|
|
2566
|
+
height = DEFAULT_HEIGHT,
|
|
2567
|
+
id,
|
|
2568
|
+
label,
|
|
2569
|
+
url
|
|
2570
|
+
} = field;
|
|
2571
|
+
const evaluatedUrl = useSingleLineTemplateEvaluation(url, {
|
|
2572
|
+
debug: true
|
|
2573
|
+
});
|
|
2574
|
+
const safeUrl = useMemo(() => sanitizeIFrameSource(evaluatedUrl), [evaluatedUrl]);
|
|
2575
|
+
const evaluatedLabel = useSingleLineTemplateEvaluation(label, {
|
|
2576
|
+
debug: true
|
|
2577
|
+
});
|
|
2578
|
+
const {
|
|
2579
|
+
formId
|
|
2580
|
+
} = useContext(FormContext$1);
|
|
2581
|
+
return jsxs("div", {
|
|
2582
|
+
class: formFieldClasses(type$a, {
|
|
2583
|
+
disabled,
|
|
2584
|
+
readonly
|
|
2585
|
+
}),
|
|
2586
|
+
children: [jsx(Label, {
|
|
2587
|
+
id: prefixId(id, formId),
|
|
2588
|
+
label: evaluatedLabel
|
|
2589
|
+
}), !evaluatedUrl && jsx(IFramePlaceholder, {
|
|
2590
|
+
text: "No content to show."
|
|
2591
|
+
}), evaluatedUrl && safeUrl && jsx("iframe", {
|
|
2592
|
+
src: safeUrl,
|
|
2593
|
+
title: evaluatedLabel,
|
|
2594
|
+
height: height,
|
|
2595
|
+
class: "fjs-iframe",
|
|
2596
|
+
id: prefixId(id, formId),
|
|
2597
|
+
sandbox: ""
|
|
2598
|
+
}), evaluatedUrl && !safeUrl && jsx(IFramePlaceholder, {
|
|
2599
|
+
text: "External content couldn't be loaded."
|
|
2600
|
+
})]
|
|
2601
|
+
});
|
|
2602
|
+
}
|
|
2603
|
+
function IFramePlaceholder(props) {
|
|
2604
|
+
const {
|
|
2605
|
+
text = 'iFrame'
|
|
2606
|
+
} = props;
|
|
2607
|
+
return jsx("div", {
|
|
2608
|
+
class: "fjs-iframe-placeholder",
|
|
2609
|
+
children: jsx("p", {
|
|
2610
|
+
class: "fjs-iframe-placeholder-text",
|
|
2611
|
+
children: text
|
|
2612
|
+
})
|
|
2613
|
+
});
|
|
2614
|
+
}
|
|
2615
|
+
IFrame.config = {
|
|
2616
|
+
type: type$a,
|
|
2617
|
+
keyed: false,
|
|
2618
|
+
label: 'iFrame',
|
|
2619
|
+
group: 'container',
|
|
2620
|
+
create: (options = {}) => ({
|
|
2621
|
+
...options
|
|
2622
|
+
})
|
|
2623
|
+
};
|
|
2624
|
+
|
|
2625
|
+
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); }
|
|
2514
2626
|
var SvgImagePlaceholder = function SvgImagePlaceholder(props) {
|
|
2515
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
2627
|
+
return /*#__PURE__*/React.createElement("svg", _extends$k({
|
|
2516
2628
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2517
2629
|
xmlSpace: "preserve",
|
|
2518
2630
|
width: 64,
|
|
@@ -2617,14 +2729,14 @@ function TemplatedInputAdorner(props) {
|
|
|
2617
2729
|
});
|
|
2618
2730
|
}
|
|
2619
2731
|
|
|
2620
|
-
var _path$
|
|
2621
|
-
function _extends$
|
|
2732
|
+
var _path$i;
|
|
2733
|
+
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); }
|
|
2622
2734
|
var SvgAngelDown = function SvgAngelDown(props) {
|
|
2623
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
2735
|
+
return /*#__PURE__*/React.createElement("svg", _extends$j({
|
|
2624
2736
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2625
2737
|
width: 8,
|
|
2626
2738
|
height: 8
|
|
2627
|
-
}, props), _path$
|
|
2739
|
+
}, props), _path$i || (_path$i = /*#__PURE__*/React.createElement("path", {
|
|
2628
2740
|
fill: "currentColor",
|
|
2629
2741
|
fillRule: "evenodd",
|
|
2630
2742
|
stroke: "currentColor",
|
|
@@ -2635,14 +2747,14 @@ var SvgAngelDown = function SvgAngelDown(props) {
|
|
|
2635
2747
|
};
|
|
2636
2748
|
var AngelDownIcon = SvgAngelDown;
|
|
2637
2749
|
|
|
2638
|
-
var _path$
|
|
2639
|
-
function _extends$
|
|
2750
|
+
var _path$h;
|
|
2751
|
+
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); }
|
|
2640
2752
|
var SvgAngelUp = function SvgAngelUp(props) {
|
|
2641
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
2753
|
+
return /*#__PURE__*/React.createElement("svg", _extends$i({
|
|
2642
2754
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2643
2755
|
width: 8,
|
|
2644
2756
|
height: 8
|
|
2645
|
-
}, props), _path$
|
|
2757
|
+
}, props), _path$h || (_path$h = /*#__PURE__*/React.createElement("path", {
|
|
2646
2758
|
fill: "currentColor",
|
|
2647
2759
|
fillRule: "evenodd",
|
|
2648
2760
|
stroke: "currentColor",
|
|
@@ -2899,13 +3011,10 @@ Numberfield.config = {
|
|
|
2899
3011
|
value,
|
|
2900
3012
|
formField
|
|
2901
3013
|
}) => {
|
|
2902
|
-
//
|
|
2903
|
-
if (isNullEquivalentValue(value)) return null;
|
|
3014
|
+
// invalid value types are sanitized to null
|
|
3015
|
+
if (isNullEquivalentValue(value) || !isValidNumber(value)) return null;
|
|
2904
3016
|
|
|
2905
|
-
//
|
|
2906
|
-
if (!isValidNumber(value)) return 'NaN';
|
|
2907
|
-
|
|
2908
|
-
// otherwise parse to formatting type
|
|
3017
|
+
// otherwise, we return a string or a number depending on the form field configuration
|
|
2909
3018
|
return formField.serializeToString ? value.toString() : Number(value);
|
|
2910
3019
|
},
|
|
2911
3020
|
create: (options = {}) => ({
|
|
@@ -2913,6 +3022,30 @@ Numberfield.config = {
|
|
|
2913
3022
|
})
|
|
2914
3023
|
};
|
|
2915
3024
|
|
|
3025
|
+
function useCleanupSingleSelectValue (props) {
|
|
3026
|
+
const {
|
|
3027
|
+
field,
|
|
3028
|
+
options,
|
|
3029
|
+
loadState,
|
|
3030
|
+
onChange,
|
|
3031
|
+
value
|
|
3032
|
+
} = props;
|
|
3033
|
+
|
|
3034
|
+
// Ensures that the value is always one of the possible options
|
|
3035
|
+
useEffect(() => {
|
|
3036
|
+
if (loadState !== LOAD_STATES.LOADED) {
|
|
3037
|
+
return;
|
|
3038
|
+
}
|
|
3039
|
+
const hasValueNotInOptions = value && !options.map(o => o.value).includes(value);
|
|
3040
|
+
if (hasValueNotInOptions) {
|
|
3041
|
+
onChange({
|
|
3042
|
+
field,
|
|
3043
|
+
value: null
|
|
3044
|
+
});
|
|
3045
|
+
}
|
|
3046
|
+
}, [field, options, onChange, value, loadState]);
|
|
3047
|
+
}
|
|
3048
|
+
|
|
2916
3049
|
const type$7 = 'radio';
|
|
2917
3050
|
function Radio(props) {
|
|
2918
3051
|
const {
|
|
@@ -2953,9 +3086,16 @@ function Radio(props) {
|
|
|
2953
3086
|
onFocus && onFocus();
|
|
2954
3087
|
};
|
|
2955
3088
|
const {
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
} =
|
|
3089
|
+
loadState,
|
|
3090
|
+
options
|
|
3091
|
+
} = useOptionsAsync(field);
|
|
3092
|
+
useCleanupSingleSelectValue({
|
|
3093
|
+
field,
|
|
3094
|
+
loadState,
|
|
3095
|
+
options,
|
|
3096
|
+
value,
|
|
3097
|
+
onChange: props.onChange
|
|
3098
|
+
});
|
|
2959
3099
|
const {
|
|
2960
3100
|
formId
|
|
2961
3101
|
} = useContext(FormContext$1);
|
|
@@ -3002,21 +3142,21 @@ function Radio(props) {
|
|
|
3002
3142
|
Radio.config = {
|
|
3003
3143
|
type: type$7,
|
|
3004
3144
|
keyed: true,
|
|
3005
|
-
label: 'Radio',
|
|
3145
|
+
label: 'Radio group',
|
|
3006
3146
|
group: 'selection',
|
|
3007
3147
|
emptyValue: null,
|
|
3008
3148
|
sanitizeValue: sanitizeSingleSelectValue,
|
|
3009
3149
|
create: createEmptyOptions
|
|
3010
3150
|
};
|
|
3011
3151
|
|
|
3012
|
-
var _path$
|
|
3013
|
-
function _extends$
|
|
3152
|
+
var _path$g;
|
|
3153
|
+
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); }
|
|
3014
3154
|
var SvgXMark = function SvgXMark(props) {
|
|
3015
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
3155
|
+
return /*#__PURE__*/React.createElement("svg", _extends$h({
|
|
3016
3156
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3017
3157
|
width: 8,
|
|
3018
3158
|
height: 8
|
|
3019
|
-
}, props), _path$
|
|
3159
|
+
}, props), _path$g || (_path$g = /*#__PURE__*/React.createElement("path", {
|
|
3020
3160
|
fill: "currentColor",
|
|
3021
3161
|
fillRule: "evenodd",
|
|
3022
3162
|
stroke: "currentColor",
|
|
@@ -3048,9 +3188,16 @@ function SearchableSelect(props) {
|
|
|
3048
3188
|
const searchbarRef = useRef();
|
|
3049
3189
|
const eventBus = useService('eventBus');
|
|
3050
3190
|
const {
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
} =
|
|
3191
|
+
loadState,
|
|
3192
|
+
options
|
|
3193
|
+
} = useOptionsAsync(field);
|
|
3194
|
+
useCleanupSingleSelectValue({
|
|
3195
|
+
field,
|
|
3196
|
+
loadState,
|
|
3197
|
+
options,
|
|
3198
|
+
value,
|
|
3199
|
+
onChange: props.onChange
|
|
3200
|
+
});
|
|
3054
3201
|
|
|
3055
3202
|
// 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
|
|
3056
3203
|
const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({
|
|
@@ -3208,10 +3355,18 @@ function SimpleSelect(props) {
|
|
|
3208
3355
|
} = useContext(FormContext$1);
|
|
3209
3356
|
const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);
|
|
3210
3357
|
const selectRef = useRef();
|
|
3358
|
+
const inputRef = useRef();
|
|
3211
3359
|
const {
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
} =
|
|
3360
|
+
loadState,
|
|
3361
|
+
options
|
|
3362
|
+
} = useOptionsAsync(field);
|
|
3363
|
+
useCleanupSingleSelectValue({
|
|
3364
|
+
field,
|
|
3365
|
+
loadState,
|
|
3366
|
+
options,
|
|
3367
|
+
value,
|
|
3368
|
+
onChange: props.onChange
|
|
3369
|
+
});
|
|
3215
3370
|
|
|
3216
3371
|
// 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
|
|
3217
3372
|
const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({
|
|
@@ -3232,12 +3387,12 @@ function SimpleSelect(props) {
|
|
|
3232
3387
|
return ds;
|
|
3233
3388
|
}, [disabled, isDropdownExpanded, loadState, value]);
|
|
3234
3389
|
const onMouseDown = useCallback(e => {
|
|
3235
|
-
const
|
|
3390
|
+
const input = inputRef.current;
|
|
3236
3391
|
setIsDropdownExpanded(!isDropdownExpanded);
|
|
3237
3392
|
if (isDropdownExpanded) {
|
|
3238
|
-
|
|
3393
|
+
input.blur();
|
|
3239
3394
|
} else {
|
|
3240
|
-
|
|
3395
|
+
input.focus();
|
|
3241
3396
|
}
|
|
3242
3397
|
e.preventDefault();
|
|
3243
3398
|
}, [isDropdownExpanded]);
|
|
@@ -3274,6 +3429,7 @@ function SimpleSelect(props) {
|
|
|
3274
3429
|
id: prefixId(`${id}-display`, formId),
|
|
3275
3430
|
children: valueLabel || 'Select'
|
|
3276
3431
|
}), !disabled && jsx("input", {
|
|
3432
|
+
ref: inputRef,
|
|
3277
3433
|
id: prefixId(`${id}-search`, formId),
|
|
3278
3434
|
class: "fjs-select-hidden-input",
|
|
3279
3435
|
value: valueLabel,
|
|
@@ -3472,34 +3628,36 @@ function Taglist(props) {
|
|
|
3472
3628
|
} = useContext(FormContext$1);
|
|
3473
3629
|
const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;
|
|
3474
3630
|
const [filter, setFilter] = useState('');
|
|
3475
|
-
const [filteredOptions, setFilteredOptions] = useState([]);
|
|
3476
3631
|
const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);
|
|
3477
|
-
const [hasOptionsLeft, setHasOptionsLeft] = useState(true);
|
|
3478
3632
|
const [isEscapeClosed, setIsEscapeClose] = useState(false);
|
|
3479
3633
|
const focusScopeRef = useRef();
|
|
3480
3634
|
const inputRef = useRef();
|
|
3481
3635
|
const eventBus = useService('eventBus');
|
|
3482
3636
|
const {
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
} =
|
|
3637
|
+
loadState,
|
|
3638
|
+
options
|
|
3639
|
+
} = useOptionsAsync(field);
|
|
3640
|
+
useCleanupMultiSelectValues({
|
|
3641
|
+
field,
|
|
3642
|
+
loadState,
|
|
3643
|
+
options,
|
|
3644
|
+
values,
|
|
3645
|
+
onChange: props.onChange
|
|
3646
|
+
});
|
|
3486
3647
|
|
|
3487
3648
|
// 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
|
|
3488
3649
|
const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({
|
|
3489
3650
|
[o.value]: options[x]
|
|
3490
3651
|
}))), [options]);
|
|
3652
|
+
const hasOptionsLeft = useMemo(() => options.length > values.length, [options.length, values.length]);
|
|
3491
3653
|
|
|
3492
3654
|
// Usage of stringify is necessary here because we want this effect to only trigger when there is a value change to the array
|
|
3493
|
-
|
|
3494
|
-
if (loadState
|
|
3495
|
-
|
|
3496
|
-
} else {
|
|
3497
|
-
setFilteredOptions([]);
|
|
3655
|
+
const filteredOptions = useMemo(() => {
|
|
3656
|
+
if (loadState !== LOAD_STATES.LOADED) {
|
|
3657
|
+
return [];
|
|
3498
3658
|
}
|
|
3499
|
-
|
|
3500
|
-
|
|
3501
|
-
setHasOptionsLeft(options.length > values.length);
|
|
3502
|
-
}, [options.length, values.length]);
|
|
3659
|
+
return options.filter(o => o.label && o.value && o.label.toLowerCase().includes(filter.toLowerCase()) && !values.includes(o.value));
|
|
3660
|
+
}, [filter, options, JSON.stringify(values), loadState]);
|
|
3503
3661
|
const selectValue = value => {
|
|
3504
3662
|
if (filter) {
|
|
3505
3663
|
setFilter('');
|
|
@@ -3626,7 +3784,7 @@ function Taglist(props) {
|
|
|
3626
3784
|
onMouseDown: e => e.preventDefault(),
|
|
3627
3785
|
children: [jsx("span", {
|
|
3628
3786
|
class: "fjs-taglist-tag-label",
|
|
3629
|
-
children: valueToOptionMap[v] ? valueToOptionMap[v].label :
|
|
3787
|
+
children: valueToOptionMap[v] ? valueToOptionMap[v].label : undefined
|
|
3630
3788
|
}), !disabled && !readonly && jsx("button", {
|
|
3631
3789
|
type: "button",
|
|
3632
3790
|
title: "Remove tag",
|
|
@@ -3847,7 +4005,7 @@ Textfield.config = {
|
|
|
3847
4005
|
sanitizeValue: ({
|
|
3848
4006
|
value
|
|
3849
4007
|
}) => {
|
|
3850
|
-
if (isArray(value) || isObject(value)) {
|
|
4008
|
+
if (isArray(value) || isObject(value) || isNil(value)) {
|
|
3851
4009
|
return '';
|
|
3852
4010
|
}
|
|
3853
4011
|
|
|
@@ -3938,7 +4096,7 @@ Textarea.config = {
|
|
|
3938
4096
|
emptyValue: '',
|
|
3939
4097
|
sanitizeValue: ({
|
|
3940
4098
|
value
|
|
3941
|
-
}) => isArray(value) || isObject(value) ? '' : String(value),
|
|
4099
|
+
}) => isArray(value) || isObject(value) || isNil(value) ? '' : String(value),
|
|
3942
4100
|
create: (options = {}) => ({
|
|
3943
4101
|
...options
|
|
3944
4102
|
})
|
|
@@ -3962,84 +4120,64 @@ const autoSizeTextarea = textarea => {
|
|
|
3962
4120
|
textarea.style.overflow = calculatedHeight > maxHeight ? 'visible' : 'hidden';
|
|
3963
4121
|
};
|
|
3964
4122
|
|
|
3965
|
-
var _path$
|
|
3966
|
-
function _extends$
|
|
4123
|
+
var _path$f;
|
|
4124
|
+
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); }
|
|
3967
4125
|
var SvgButton = function SvgButton(props) {
|
|
3968
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
4126
|
+
return /*#__PURE__*/React.createElement("svg", _extends$g({
|
|
3969
4127
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3970
4128
|
width: 54,
|
|
3971
4129
|
height: 54,
|
|
3972
4130
|
fill: "currentcolor"
|
|
3973
|
-
}, props), _path$
|
|
4131
|
+
}, props), _path$f || (_path$f = /*#__PURE__*/React.createElement("path", {
|
|
3974
4132
|
fillRule: "evenodd",
|
|
3975
4133
|
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"
|
|
3976
4134
|
})));
|
|
3977
4135
|
};
|
|
3978
4136
|
var ButtonIcon = SvgButton;
|
|
3979
4137
|
|
|
3980
|
-
var _path$
|
|
3981
|
-
function _extends$
|
|
4138
|
+
var _path$e;
|
|
4139
|
+
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); }
|
|
3982
4140
|
var SvgCheckbox = function SvgCheckbox(props) {
|
|
3983
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
4141
|
+
return /*#__PURE__*/React.createElement("svg", _extends$f({
|
|
3984
4142
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3985
4143
|
width: 54,
|
|
3986
4144
|
height: 54,
|
|
3987
4145
|
fill: "currentcolor"
|
|
3988
|
-
}, props), _path$
|
|
4146
|
+
}, props), _path$e || (_path$e = /*#__PURE__*/React.createElement("path", {
|
|
3989
4147
|
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"
|
|
3990
4148
|
})));
|
|
3991
4149
|
};
|
|
3992
4150
|
var CheckboxIcon = SvgCheckbox;
|
|
3993
4151
|
|
|
3994
|
-
var
|
|
3995
|
-
function _extends$
|
|
4152
|
+
var _path$d;
|
|
4153
|
+
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); }
|
|
3996
4154
|
var SvgChecklist = function SvgChecklist(props) {
|
|
3997
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
4155
|
+
return /*#__PURE__*/React.createElement("svg", _extends$e({
|
|
3998
4156
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3999
|
-
xmlnsXlink: "http://www.w3.org/1999/xlink",
|
|
4000
4157
|
width: 54,
|
|
4001
4158
|
height: 54,
|
|
4002
|
-
fill: "
|
|
4003
|
-
}, props),
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
y: 24
|
|
4010
|
-
}), /*#__PURE__*/React.createElement("use", {
|
|
4011
|
-
xlinkHref: "#Checklist_svg__a",
|
|
4012
|
-
y: 12
|
|
4013
|
-
}))), _use || (_use = /*#__PURE__*/React.createElement("use", {
|
|
4014
|
-
xlinkHref: "#Checklist_svg__b"
|
|
4015
|
-
})), _use2 || (_use2 = /*#__PURE__*/React.createElement("use", {
|
|
4016
|
-
xlinkHref: "#Checklist_svg__b",
|
|
4017
|
-
y: 12
|
|
4018
|
-
})), _use3 || (_use3 = /*#__PURE__*/React.createElement("use", {
|
|
4019
|
-
xlinkHref: "#Checklist_svg__b",
|
|
4020
|
-
y: 24
|
|
4021
|
-
})), _defs || (_defs = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("path", {
|
|
4022
|
-
id: "Checklist_svg__a",
|
|
4023
|
-
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"
|
|
4024
|
-
}), /*#__PURE__*/React.createElement("path", {
|
|
4025
|
-
id: "Checklist_svg__b",
|
|
4026
|
-
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"
|
|
4027
|
-
}))));
|
|
4159
|
+
fill: "none"
|
|
4160
|
+
}, props), _path$d || (_path$d = /*#__PURE__*/React.createElement("path", {
|
|
4161
|
+
fill: "currentColor",
|
|
4162
|
+
fillRule: "evenodd",
|
|
4163
|
+
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",
|
|
4164
|
+
clipRule: "evenodd"
|
|
4165
|
+
})));
|
|
4028
4166
|
};
|
|
4029
4167
|
var ChecklistIcon = SvgChecklist;
|
|
4030
4168
|
|
|
4031
|
-
var _path$
|
|
4032
|
-
function _extends$
|
|
4169
|
+
var _path$c, _path2$3, _path3;
|
|
4170
|
+
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); }
|
|
4033
4171
|
var SvgDatetime = function SvgDatetime(props) {
|
|
4034
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
4172
|
+
return /*#__PURE__*/React.createElement("svg", _extends$d({
|
|
4035
4173
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4036
4174
|
width: 54,
|
|
4037
4175
|
height: 54,
|
|
4038
4176
|
fill: "currentcolor"
|
|
4039
|
-
}, props), _path$
|
|
4177
|
+
}, props), _path$c || (_path$c = /*#__PURE__*/React.createElement("path", {
|
|
4040
4178
|
fillRule: "evenodd",
|
|
4041
4179
|
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"
|
|
4042
|
-
})), _path2$
|
|
4180
|
+
})), _path2$3 || (_path2$3 = /*#__PURE__*/React.createElement("path", {
|
|
4043
4181
|
d: "m35.13 37.603 1.237-1.237-3.468-3.475v-5.926h-1.754v6.654l3.984 3.984Z"
|
|
4044
4182
|
})), _path3 || (_path3 = /*#__PURE__*/React.createElement("path", {
|
|
4045
4183
|
fillRule: "evenodd",
|
|
@@ -4048,27 +4186,27 @@ var SvgDatetime = function SvgDatetime(props) {
|
|
|
4048
4186
|
};
|
|
4049
4187
|
var DatetimeIcon = SvgDatetime;
|
|
4050
4188
|
|
|
4051
|
-
var _path$
|
|
4052
|
-
function _extends$
|
|
4189
|
+
var _path$b, _path2$2;
|
|
4190
|
+
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); }
|
|
4053
4191
|
var SvgTaglist = function SvgTaglist(props) {
|
|
4054
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
4192
|
+
return /*#__PURE__*/React.createElement("svg", _extends$c({
|
|
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$b || (_path$b = /*#__PURE__*/React.createElement("path", {
|
|
4060
4198
|
fillRule: "evenodd",
|
|
4061
4199
|
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"
|
|
4062
|
-
})), _path2$
|
|
4200
|
+
})), _path2$2 || (_path2$2 = /*#__PURE__*/React.createElement("path", {
|
|
4063
4201
|
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"
|
|
4064
4202
|
})));
|
|
4065
4203
|
};
|
|
4066
4204
|
var TaglistIcon = SvgTaglist;
|
|
4067
4205
|
|
|
4068
4206
|
var _rect, _rect2, _rect3;
|
|
4069
|
-
function _extends$
|
|
4207
|
+
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); }
|
|
4070
4208
|
var SvgForm = function SvgForm(props) {
|
|
4071
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
4209
|
+
return /*#__PURE__*/React.createElement("svg", _extends$b({
|
|
4072
4210
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4073
4211
|
width: 54,
|
|
4074
4212
|
height: 54
|
|
@@ -4094,9 +4232,24 @@ var SvgForm = function SvgForm(props) {
|
|
|
4094
4232
|
};
|
|
4095
4233
|
var FormIcon = SvgForm;
|
|
4096
4234
|
|
|
4235
|
+
var _path$a;
|
|
4236
|
+
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); }
|
|
4237
|
+
var SvgGroup = function SvgGroup(props) {
|
|
4238
|
+
return /*#__PURE__*/React.createElement("svg", _extends$a({
|
|
4239
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4240
|
+
width: 54,
|
|
4241
|
+
height: 54,
|
|
4242
|
+
fill: "currentcolor"
|
|
4243
|
+
}, props), _path$a || (_path$a = /*#__PURE__*/React.createElement("path", {
|
|
4244
|
+
fillRule: "evenodd",
|
|
4245
|
+
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"
|
|
4246
|
+
})));
|
|
4247
|
+
};
|
|
4248
|
+
var GroupIcon = SvgGroup;
|
|
4249
|
+
|
|
4097
4250
|
var _path$9;
|
|
4098
4251
|
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); }
|
|
4099
|
-
var
|
|
4252
|
+
var SvgNumber = function SvgNumber(props) {
|
|
4100
4253
|
return /*#__PURE__*/React.createElement("svg", _extends$9({
|
|
4101
4254
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4102
4255
|
width: 54,
|
|
@@ -4104,58 +4257,58 @@ var SvgGroup = function SvgGroup(props) {
|
|
|
4104
4257
|
fill: "currentcolor"
|
|
4105
4258
|
}, props), _path$9 || (_path$9 = /*#__PURE__*/React.createElement("path", {
|
|
4106
4259
|
fillRule: "evenodd",
|
|
4107
|
-
d: "
|
|
4260
|
+
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"
|
|
4108
4261
|
})));
|
|
4109
4262
|
};
|
|
4110
|
-
var
|
|
4263
|
+
var NumberIcon = SvgNumber;
|
|
4111
4264
|
|
|
4112
4265
|
var _path$8;
|
|
4113
4266
|
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); }
|
|
4114
|
-
var
|
|
4267
|
+
var SvgRadio = function SvgRadio(props) {
|
|
4115
4268
|
return /*#__PURE__*/React.createElement("svg", _extends$8({
|
|
4116
4269
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4117
4270
|
width: 54,
|
|
4118
4271
|
height: 54,
|
|
4119
4272
|
fill: "currentcolor"
|
|
4120
4273
|
}, props), _path$8 || (_path$8 = /*#__PURE__*/React.createElement("path", {
|
|
4121
|
-
|
|
4122
|
-
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"
|
|
4274
|
+
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"
|
|
4123
4275
|
})));
|
|
4124
4276
|
};
|
|
4125
|
-
var
|
|
4277
|
+
var RadioIcon = SvgRadio;
|
|
4126
4278
|
|
|
4127
4279
|
var _path$7;
|
|
4128
4280
|
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); }
|
|
4129
|
-
var
|
|
4281
|
+
var SvgSelect = function SvgSelect(props) {
|
|
4130
4282
|
return /*#__PURE__*/React.createElement("svg", _extends$7({
|
|
4131
4283
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4132
4284
|
width: 54,
|
|
4133
4285
|
height: 54,
|
|
4134
4286
|
fill: "currentcolor"
|
|
4135
4287
|
}, props), _path$7 || (_path$7 = /*#__PURE__*/React.createElement("path", {
|
|
4136
|
-
|
|
4288
|
+
fillRule: "evenodd",
|
|
4289
|
+
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"
|
|
4137
4290
|
})));
|
|
4138
4291
|
};
|
|
4139
|
-
var
|
|
4292
|
+
var SelectIcon = SvgSelect;
|
|
4140
4293
|
|
|
4141
4294
|
var _path$6;
|
|
4142
4295
|
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); }
|
|
4143
|
-
var
|
|
4296
|
+
var SvgSeparator = function SvgSeparator(props) {
|
|
4144
4297
|
return /*#__PURE__*/React.createElement("svg", _extends$6({
|
|
4145
4298
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4146
4299
|
width: 54,
|
|
4147
4300
|
height: 54,
|
|
4148
|
-
fill: "
|
|
4301
|
+
fill: "none"
|
|
4149
4302
|
}, props), _path$6 || (_path$6 = /*#__PURE__*/React.createElement("path", {
|
|
4150
|
-
|
|
4151
|
-
d: "
|
|
4303
|
+
fill: "currentColor",
|
|
4304
|
+
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"
|
|
4152
4305
|
})));
|
|
4153
4306
|
};
|
|
4154
|
-
var
|
|
4307
|
+
var SeparatorIcon = SvgSeparator;
|
|
4155
4308
|
|
|
4156
4309
|
var _path$5;
|
|
4157
4310
|
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); }
|
|
4158
|
-
var
|
|
4311
|
+
var SvgSpacer = function SvgSpacer(props) {
|
|
4159
4312
|
return /*#__PURE__*/React.createElement("svg", _extends$5({
|
|
4160
4313
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4161
4314
|
width: 54,
|
|
@@ -4163,43 +4316,43 @@ var SvgSeparator = function SvgSeparator(props) {
|
|
|
4163
4316
|
fill: "none"
|
|
4164
4317
|
}, props), _path$5 || (_path$5 = /*#__PURE__*/React.createElement("path", {
|
|
4165
4318
|
fill: "currentColor",
|
|
4166
|
-
d: "
|
|
4319
|
+
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"
|
|
4167
4320
|
})));
|
|
4168
4321
|
};
|
|
4169
|
-
var
|
|
4322
|
+
var SpacerIcon = SvgSpacer;
|
|
4170
4323
|
|
|
4171
4324
|
var _path$4;
|
|
4172
4325
|
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); }
|
|
4173
|
-
var
|
|
4326
|
+
var SvgText = function SvgText(props) {
|
|
4174
4327
|
return /*#__PURE__*/React.createElement("svg", _extends$4({
|
|
4175
4328
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4176
4329
|
width: 54,
|
|
4177
4330
|
height: 54,
|
|
4178
|
-
fill: "
|
|
4331
|
+
fill: "currentcolor"
|
|
4179
4332
|
}, props), _path$4 || (_path$4 = /*#__PURE__*/React.createElement("path", {
|
|
4180
|
-
|
|
4181
|
-
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"
|
|
4333
|
+
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"
|
|
4182
4334
|
})));
|
|
4183
4335
|
};
|
|
4184
|
-
var
|
|
4336
|
+
var TextIcon = SvgText;
|
|
4185
4337
|
|
|
4186
4338
|
var _path$3;
|
|
4187
4339
|
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); }
|
|
4188
|
-
var
|
|
4340
|
+
var SvgTextfield = function SvgTextfield(props) {
|
|
4189
4341
|
return /*#__PURE__*/React.createElement("svg", _extends$3({
|
|
4190
4342
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4191
4343
|
width: 54,
|
|
4192
4344
|
height: 54,
|
|
4193
4345
|
fill: "currentcolor"
|
|
4194
4346
|
}, props), _path$3 || (_path$3 = /*#__PURE__*/React.createElement("path", {
|
|
4195
|
-
|
|
4347
|
+
fillRule: "evenodd",
|
|
4348
|
+
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"
|
|
4196
4349
|
})));
|
|
4197
4350
|
};
|
|
4198
|
-
var
|
|
4351
|
+
var TextfieldIcon = SvgTextfield;
|
|
4199
4352
|
|
|
4200
4353
|
var _path$2;
|
|
4201
4354
|
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); }
|
|
4202
|
-
var
|
|
4355
|
+
var SvgTextarea = function SvgTextarea(props) {
|
|
4203
4356
|
return /*#__PURE__*/React.createElement("svg", _extends$2({
|
|
4204
4357
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4205
4358
|
width: 54,
|
|
@@ -4207,25 +4360,30 @@ var SvgTextfield = function SvgTextfield(props) {
|
|
|
4207
4360
|
fill: "currentcolor"
|
|
4208
4361
|
}, props), _path$2 || (_path$2 = /*#__PURE__*/React.createElement("path", {
|
|
4209
4362
|
fillRule: "evenodd",
|
|
4210
|
-
d: "M45
|
|
4363
|
+
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"
|
|
4211
4364
|
})));
|
|
4212
4365
|
};
|
|
4213
|
-
var
|
|
4366
|
+
var TextareaIcon = SvgTextarea;
|
|
4214
4367
|
|
|
4215
|
-
var _path$1;
|
|
4368
|
+
var _path$1, _path2$1;
|
|
4216
4369
|
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); }
|
|
4217
|
-
var
|
|
4370
|
+
var SvgIFrame = function SvgIFrame(props) {
|
|
4218
4371
|
return /*#__PURE__*/React.createElement("svg", _extends$1({
|
|
4219
4372
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4220
4373
|
width: 54,
|
|
4221
4374
|
height: 54,
|
|
4222
|
-
fill: "
|
|
4375
|
+
fill: "none"
|
|
4223
4376
|
}, props), _path$1 || (_path$1 = /*#__PURE__*/React.createElement("path", {
|
|
4377
|
+
fill: "currentcolor",
|
|
4378
|
+
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"
|
|
4379
|
+
})), _path2$1 || (_path2$1 = /*#__PURE__*/React.createElement("path", {
|
|
4380
|
+
fill: "currentcolor",
|
|
4224
4381
|
fillRule: "evenodd",
|
|
4225
|
-
d: "
|
|
4382
|
+
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",
|
|
4383
|
+
clipRule: "evenodd"
|
|
4226
4384
|
})));
|
|
4227
4385
|
};
|
|
4228
|
-
var
|
|
4386
|
+
var IFrameIcon = SvgIFrame;
|
|
4229
4387
|
|
|
4230
4388
|
var _path, _path2;
|
|
4231
4389
|
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); }
|
|
@@ -4255,6 +4413,7 @@ const iconsByType = type => {
|
|
|
4255
4413
|
columns: GroupIcon,
|
|
4256
4414
|
datetime: DatetimeIcon,
|
|
4257
4415
|
group: GroupIcon,
|
|
4416
|
+
iframe: IFrameIcon,
|
|
4258
4417
|
image: ImageIcon,
|
|
4259
4418
|
number: NumberIcon,
|
|
4260
4419
|
radio: RadioIcon,
|
|
@@ -4269,7 +4428,7 @@ const iconsByType = type => {
|
|
|
4269
4428
|
}[type];
|
|
4270
4429
|
};
|
|
4271
4430
|
|
|
4272
|
-
const formFields = [Button, Checkbox, Checklist, FormComponent$1, Group, Image, Numberfield, Datetime, Radio, Select, Spacer, Separator, Taglist, Text, Textfield, Textarea];
|
|
4431
|
+
const formFields = [Button, Checkbox, Checklist, FormComponent$1, Group, IFrame, Image, Numberfield, Datetime, Radio, Select, Spacer, Separator, Taglist, Text, Textfield, Textarea];
|
|
4273
4432
|
|
|
4274
4433
|
class FormFields {
|
|
4275
4434
|
constructor() {
|
|
@@ -4341,8 +4500,8 @@ function createFormContainer(prefix = 'fjs') {
|
|
|
4341
4500
|
return container;
|
|
4342
4501
|
}
|
|
4343
4502
|
|
|
4344
|
-
const EXPRESSION_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'conditional.hide', 'description', 'label', 'source', 'readonly', 'text', 'validate.min', 'validate.max', 'validate.minLength', 'validate.maxLength', 'valuesExpression'];
|
|
4345
|
-
const TEMPLATE_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'description', 'label', 'source', 'text'];
|
|
4503
|
+
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'];
|
|
4504
|
+
const TEMPLATE_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'description', 'label', 'source', 'text', 'url'];
|
|
4346
4505
|
function isRequired(field) {
|
|
4347
4506
|
return field.required;
|
|
4348
4507
|
}
|
|
@@ -6837,7 +6996,7 @@ class Form {
|
|
|
6837
6996
|
}
|
|
6838
6997
|
}
|
|
6839
6998
|
|
|
6840
|
-
const schemaVersion =
|
|
6999
|
+
const schemaVersion = 13;
|
|
6841
7000
|
|
|
6842
7001
|
/**
|
|
6843
7002
|
* @typedef { import('./types').CreateFormOptions } CreateFormOptions
|
|
@@ -6862,5 +7021,5 @@ function createForm(options) {
|
|
|
6862
7021
|
});
|
|
6863
7022
|
}
|
|
6864
7023
|
|
|
6865
|
-
export { Button, Checkbox, Checklist, ConditionChecker, DATETIME_SUBTYPES, DATETIME_SUBTYPES_LABELS, DATETIME_SUBTYPE_PATH, DATE_DISALLOW_PAST_PATH, DATE_LABEL_PATH, Datetime, FormComponent$1 as Default, Description, Errors, ExpressionLanguageModule, FeelExpressionLanguage, FeelersTemplating, FieldFactory, Form, FormComponent, FormContext$1 as FormContext, FormField, FormFieldRegistry, FormFields, FormLayouter, FormRenderContext$1 as FormRenderContext, Group, Image, Importer, Label, MINUTES_IN_DAY, MarkdownModule, MarkdownRenderer, Numberfield, PathRegistry, Radio, Select, Separator, Spacer, TIME_INTERVAL_PATH, TIME_LABEL_PATH, TIME_SERIALISINGFORMAT_LABELS, TIME_SERIALISING_FORMATS, TIME_SERIALISING_FORMAT_PATH, TIME_USE24H_PATH, Taglist, Text, Textarea, Textfield, VALUES_SOURCES, VALUES_SOURCES_DEFAULTS, VALUES_SOURCES_LABELS, VALUES_SOURCES_PATHS, VALUES_SOURCE_DEFAULT, ViewerCommands, ViewerCommandsModule, clone, createForm, createFormContainer, createInjector, formFields, generateIdForType, generateIndexForType, getSchemaVariables, getValuesSource, iconsByType, isRequired, pathParse, pathsEqual, runRecursively, sanitizeHTML, sanitizeImageSource, schemaVersion };
|
|
7024
|
+
export { Button, Checkbox, Checklist, ConditionChecker, DATETIME_SUBTYPES, DATETIME_SUBTYPES_LABELS, DATETIME_SUBTYPE_PATH, DATE_DISALLOW_PAST_PATH, DATE_LABEL_PATH, Datetime, FormComponent$1 as Default, Description, Errors, ExpressionLanguageModule, FeelExpressionLanguage, FeelersTemplating, FieldFactory, Form, FormComponent, FormContext$1 as FormContext, FormField, FormFieldRegistry, FormFields, FormLayouter, FormRenderContext$1 as FormRenderContext, Group, IFrame, Image, Importer, Label, MINUTES_IN_DAY, MarkdownModule, MarkdownRenderer, Numberfield, PathRegistry, Radio, Select, Separator, Spacer, TIME_INTERVAL_PATH, TIME_LABEL_PATH, TIME_SERIALISINGFORMAT_LABELS, TIME_SERIALISING_FORMATS, TIME_SERIALISING_FORMAT_PATH, TIME_USE24H_PATH, Taglist, Text, Textarea, Textfield, VALUES_SOURCES, VALUES_SOURCES_DEFAULTS, VALUES_SOURCES_LABELS, VALUES_SOURCES_PATHS, VALUES_SOURCE_DEFAULT, ViewerCommands, ViewerCommandsModule, clone, createForm, createFormContainer, createInjector, formFields, generateIdForType, generateIndexForType, getSchemaVariables, getValuesSource, iconsByType, isRequired, pathParse, pathsEqual, runRecursively, sanitizeHTML, sanitizeIFrameSource, sanitizeImageSource, schemaVersion, useExpressionEvaluation, useSingleLineTemplateEvaluation, useTemplateEvaluation };
|
|
6866
7025
|
//# sourceMappingURL=index.es.js.map
|