@abgov/jsonforms-components 1.28.1 → 1.29.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/index.esm.js CHANGED
@@ -2730,6 +2730,9 @@ const Visible = styled.div(_t2$3 || (_t2$3 = _$6`
2730
2730
  `), p => p.visible ? 'initial' : 'none');
2731
2731
 
2732
2732
  const ADD_REGISTER_DATA_ACTION = 'jsonforms/register/data/add';
2733
+ const ADD_NO_ANONYMOUS_ACTION = 'jsonforms/register/no_anonymous';
2734
+ const ADD_DATALIST_ACTION = 'jsonforms/register/add_datalist_action';
2735
+ const ADD_REGISTER_DATA_ERROR = 'jsonforms/register/add_register_data_error';
2733
2736
 
2734
2737
  var classof$3 = classofRaw$1;
2735
2738
 
@@ -2817,17 +2820,269 @@ $$5({ target: 'Array', proto: true, arity: 1, forced: FORCED$1 }, {
2817
2820
  }
2818
2821
  });
2819
2822
 
2820
- function registerReducer(registerData, action) {
2823
+ function registerReducer(state, action) {
2821
2824
  switch (action.type) {
2825
+ case ADD_REGISTER_DATA_ERROR:
2826
+ {
2827
+ const errors = action.payload;
2828
+ return Object.assign(Object.assign({}, state), {
2829
+ errors: Object.assign(Object.assign({}, state.errors), errors)
2830
+ });
2831
+ }
2822
2832
  case ADD_REGISTER_DATA_ACTION:
2823
2833
  {
2834
+ const {
2835
+ registerData
2836
+ } = state;
2824
2837
  registerData.push(action.payload);
2825
- return [...registerData];
2838
+ return Object.assign(Object.assign({}, state), {
2839
+ registerData: registerData
2840
+ });
2841
+ }
2842
+ case ADD_NO_ANONYMOUS_ACTION:
2843
+ {
2844
+ return Object.assign(Object.assign({}, state), {
2845
+ nonAnonymous: action.payload.nonAnonymous || []
2846
+ });
2826
2847
  }
2848
+ case ADD_DATALIST_ACTION:
2849
+ {
2850
+ return Object.assign(Object.assign({}, state), {
2851
+ nonExistent: action.payload.nonExistent || []
2852
+ });
2853
+ }
2854
+ }
2855
+ return state;
2856
+ }
2857
+
2858
+ var $$4 = _export;
2859
+ var $includes = arrayIncludes.includes;
2860
+ var fails$4 = fails$n;
2861
+ var addToUnscopables = addToUnscopables$3;
2862
+
2863
+ // FF99+ bug
2864
+ var BROKEN_ON_SPARSE = fails$4(function () {
2865
+ // eslint-disable-next-line es/no-array-prototype-includes -- detection
2866
+ return !Array(1).includes();
2867
+ });
2868
+
2869
+ // `Array.prototype.includes` method
2870
+ // https://tc39.es/ecma262/#sec-array.prototype.includes
2871
+ $$4({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {
2872
+ includes: function includes(el /* , fromIndex = 0 */) {
2873
+ return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
2827
2874
  }
2828
- return registerData;
2875
+ });
2876
+
2877
+ // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
2878
+ addToUnscopables('includes');
2879
+
2880
+ var uncurryThis$6 = functionUncurryThis;
2881
+
2882
+ var arraySlice$1 = uncurryThis$6([].slice);
2883
+
2884
+ var uncurryThis$5 = functionUncurryThis;
2885
+ var isArray = isArray$2;
2886
+ var isCallable$3 = isCallable$l;
2887
+ var classof$2 = classofRaw$1;
2888
+ var toString$4 = toString$a;
2889
+
2890
+ var push = uncurryThis$5([].push);
2891
+
2892
+ var getJsonReplacerFunction = function (replacer) {
2893
+ if (isCallable$3(replacer)) return replacer;
2894
+ if (!isArray(replacer)) return;
2895
+ var rawLength = replacer.length;
2896
+ var keys = [];
2897
+ for (var i = 0; i < rawLength; i++) {
2898
+ var element = replacer[i];
2899
+ if (typeof element == 'string') push(keys, element);
2900
+ else if (typeof element == 'number' || classof$2(element) === 'Number' || classof$2(element) === 'String') push(keys, toString$4(element));
2901
+ }
2902
+ var keysLength = keys.length;
2903
+ var root = true;
2904
+ return function (key, value) {
2905
+ if (root) {
2906
+ root = false;
2907
+ return value;
2908
+ }
2909
+ if (isArray(this)) return value;
2910
+ for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;
2911
+ };
2912
+ };
2913
+
2914
+ var $$3 = _export;
2915
+ var getBuiltIn$2 = getBuiltIn$6;
2916
+ var apply$1 = functionApply;
2917
+ var call$1 = functionCall;
2918
+ var uncurryThis$4 = functionUncurryThis;
2919
+ var fails$3 = fails$n;
2920
+ var isCallable$2 = isCallable$l;
2921
+ var isSymbol = isSymbol$3;
2922
+ var arraySlice = arraySlice$1;
2923
+ var getReplacerFunction = getJsonReplacerFunction;
2924
+ var NATIVE_SYMBOL$1 = symbolConstructorDetection;
2925
+
2926
+ var $String = String;
2927
+ var $stringify = getBuiltIn$2('JSON', 'stringify');
2928
+ var exec$1 = uncurryThis$4(/./.exec);
2929
+ var charAt$1 = uncurryThis$4(''.charAt);
2930
+ var charCodeAt = uncurryThis$4(''.charCodeAt);
2931
+ var replace$3 = uncurryThis$4(''.replace);
2932
+ var numberToString = uncurryThis$4(1.0.toString);
2933
+
2934
+ var tester = /[\uD800-\uDFFF]/g;
2935
+ var low = /^[\uD800-\uDBFF]$/;
2936
+ var hi = /^[\uDC00-\uDFFF]$/;
2937
+
2938
+ var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL$1 || fails$3(function () {
2939
+ var symbol = getBuiltIn$2('Symbol')('stringify detection');
2940
+ // MS Edge converts symbol values to JSON as {}
2941
+ return $stringify([symbol]) !== '[null]'
2942
+ // WebKit converts symbol values to JSON as null
2943
+ || $stringify({ a: symbol }) !== '{}'
2944
+ // V8 throws on boxed symbols
2945
+ || $stringify(Object(symbol)) !== '{}';
2946
+ });
2947
+
2948
+ // https://github.com/tc39/proposal-well-formed-stringify
2949
+ var ILL_FORMED_UNICODE = fails$3(function () {
2950
+ return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"'
2951
+ || $stringify('\uDEAD') !== '"\\udead"';
2952
+ });
2953
+
2954
+ var stringifyWithSymbolsFix = function (it, replacer) {
2955
+ var args = arraySlice(arguments);
2956
+ var $replacer = getReplacerFunction(replacer);
2957
+ if (!isCallable$2($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined
2958
+ args[1] = function (key, value) {
2959
+ // some old implementations (like WebKit) could pass numbers as keys
2960
+ if (isCallable$2($replacer)) value = call$1($replacer, this, $String(key), value);
2961
+ if (!isSymbol(value)) return value;
2962
+ };
2963
+ return apply$1($stringify, null, args);
2964
+ };
2965
+
2966
+ var fixIllFormed = function (match, offset, string) {
2967
+ var prev = charAt$1(string, offset - 1);
2968
+ var next = charAt$1(string, offset + 1);
2969
+ if ((exec$1(low, match) && !exec$1(hi, next)) || (exec$1(hi, match) && !exec$1(low, prev))) {
2970
+ return '\\u' + numberToString(charCodeAt(match, 0), 16);
2971
+ } return match;
2972
+ };
2973
+
2974
+ if ($stringify) {
2975
+ // `JSON.stringify` method
2976
+ // https://tc39.es/ecma262/#sec-json.stringify
2977
+ $$3({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {
2978
+ // eslint-disable-next-line no-unused-vars -- required for `.length`
2979
+ stringify: function stringify(it, replacer, space) {
2980
+ var args = arraySlice(arguments);
2981
+ var result = apply$1(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);
2982
+ return ILL_FORMED_UNICODE && typeof result == 'string' ? replace$3(result, tester, fixIllFormed) : result;
2983
+ }
2984
+ });
2829
2985
  }
2830
2986
 
2987
+ var call = functionCall;
2988
+ var hasOwn$3 = hasOwnProperty_1;
2989
+ var isPrototypeOf$3 = objectIsPrototypeOf;
2990
+ var regExpFlags = regexpFlags$1;
2991
+
2992
+ var RegExpPrototype$3 = RegExp.prototype;
2993
+
2994
+ var regexpGetFlags = function (R) {
2995
+ var flags = R.flags;
2996
+ return flags === undefined && !('flags' in RegExpPrototype$3) && !hasOwn$3(R, 'flags') && isPrototypeOf$3(RegExpPrototype$3, R)
2997
+ ? call(regExpFlags, R) : flags;
2998
+ };
2999
+
3000
+ var PROPER_FUNCTION_NAME = functionName.PROPER;
3001
+ var defineBuiltIn$1 = defineBuiltIn$6;
3002
+ var anObject = anObject$9;
3003
+ var $toString = toString$a;
3004
+ var fails$2 = fails$n;
3005
+ var getRegExpFlags$1 = regexpGetFlags;
3006
+
3007
+ var TO_STRING = 'toString';
3008
+ var RegExpPrototype$2 = RegExp.prototype;
3009
+ var nativeToString = RegExpPrototype$2[TO_STRING];
3010
+
3011
+ var NOT_GENERIC = fails$2(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });
3012
+ // FF44- RegExp#toString has a wrong name
3013
+ var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;
3014
+
3015
+ // `RegExp.prototype.toString` method
3016
+ // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
3017
+ if (NOT_GENERIC || INCORRECT_NAME) {
3018
+ defineBuiltIn$1(RegExpPrototype$2, TO_STRING, function toString() {
3019
+ var R = anObject(this);
3020
+ var pattern = $toString(R.source);
3021
+ var flags = $toString(getRegExpFlags$1(R));
3022
+ return '/' + pattern + '/' + flags;
3023
+ }, { unsafe: true });
3024
+ }
3025
+
3026
+ var isObject$2 = isObject$b;
3027
+ var classof$1 = classofRaw$1;
3028
+ var wellKnownSymbol$3 = wellKnownSymbol$e;
3029
+
3030
+ var MATCH$2 = wellKnownSymbol$3('match');
3031
+
3032
+ // `IsRegExp` abstract operation
3033
+ // https://tc39.es/ecma262/#sec-isregexp
3034
+ var isRegexp = function (it) {
3035
+ var isRegExp;
3036
+ return isObject$2(it) && ((isRegExp = it[MATCH$2]) !== undefined ? !!isRegExp : classof$1(it) === 'RegExp');
3037
+ };
3038
+
3039
+ var isRegExp$1 = isRegexp;
3040
+
3041
+ var $TypeError$1 = TypeError;
3042
+
3043
+ var notARegexp = function (it) {
3044
+ if (isRegExp$1(it)) {
3045
+ throw new $TypeError$1("The method doesn't accept regular expressions");
3046
+ } return it;
3047
+ };
3048
+
3049
+ var wellKnownSymbol$2 = wellKnownSymbol$e;
3050
+
3051
+ var MATCH$1 = wellKnownSymbol$2('match');
3052
+
3053
+ var correctIsRegexpLogic = function (METHOD_NAME) {
3054
+ var regexp = /./;
3055
+ try {
3056
+ '/./'[METHOD_NAME](regexp);
3057
+ } catch (error1) {
3058
+ try {
3059
+ regexp[MATCH$1] = false;
3060
+ return '/./'[METHOD_NAME](regexp);
3061
+ } catch (error2) { /* empty */ }
3062
+ } return false;
3063
+ };
3064
+
3065
+ var $$2 = _export;
3066
+ var uncurryThis$3 = functionUncurryThis;
3067
+ var notARegExp = notARegexp;
3068
+ var requireObjectCoercible = requireObjectCoercible$7;
3069
+ var toString$3 = toString$a;
3070
+ var correctIsRegExpLogic = correctIsRegexpLogic;
3071
+
3072
+ var stringIndexOf$1 = uncurryThis$3(''.indexOf);
3073
+
3074
+ // `String.prototype.includes` method
3075
+ // https://tc39.es/ecma262/#sec-string.prototype.includes
3076
+ $$2({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
3077
+ includes: function includes(searchString /* , position = 0 */) {
3078
+ return !!~stringIndexOf$1(
3079
+ toString$3(requireObjectCoercible(this)),
3080
+ toString$3(notARegExp(searchString)),
3081
+ arguments.length > 1 ? arguments[1] : undefined
3082
+ );
3083
+ }
3084
+ });
3085
+
2831
3086
  /******************************************************************************
2832
3087
  Copyright (c) Microsoft Corporation.
2833
3088
 
@@ -2870,8 +3125,8 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
2870
3125
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
2871
3126
  };
2872
3127
 
2873
- var isCallable$3 = isCallable$l;
2874
- var isObject$2 = isObject$b;
3128
+ var isCallable$1 = isCallable$l;
3129
+ var isObject$1 = isObject$b;
2875
3130
  var setPrototypeOf$1 = objectSetPrototypeOf;
2876
3131
 
2877
3132
  // makes subclassing work correct for wrapped built-ins
@@ -2881,40 +3136,14 @@ var inheritIfRequired$2 = function ($this, dummy, Wrapper) {
2881
3136
  // it can work only with native `setPrototypeOf`
2882
3137
  setPrototypeOf$1 &&
2883
3138
  // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
2884
- isCallable$3(NewTarget = dummy.constructor) &&
3139
+ isCallable$1(NewTarget = dummy.constructor) &&
2885
3140
  NewTarget !== Wrapper &&
2886
- isObject$2(NewTargetPrototype = NewTarget.prototype) &&
3141
+ isObject$1(NewTargetPrototype = NewTarget.prototype) &&
2887
3142
  NewTargetPrototype !== Wrapper.prototype
2888
3143
  ) setPrototypeOf$1($this, NewTargetPrototype);
2889
3144
  return $this;
2890
3145
  };
2891
3146
 
2892
- var isObject$1 = isObject$b;
2893
- var classof$2 = classofRaw$1;
2894
- var wellKnownSymbol$3 = wellKnownSymbol$e;
2895
-
2896
- var MATCH$2 = wellKnownSymbol$3('match');
2897
-
2898
- // `IsRegExp` abstract operation
2899
- // https://tc39.es/ecma262/#sec-isregexp
2900
- var isRegexp = function (it) {
2901
- var isRegExp;
2902
- return isObject$1(it) && ((isRegExp = it[MATCH$2]) !== undefined ? !!isRegExp : classof$2(it) === 'RegExp');
2903
- };
2904
-
2905
- var call$1 = functionCall;
2906
- var hasOwn$3 = hasOwnProperty_1;
2907
- var isPrototypeOf$3 = objectIsPrototypeOf;
2908
- var regExpFlags = regexpFlags$1;
2909
-
2910
- var RegExpPrototype$3 = RegExp.prototype;
2911
-
2912
- var regexpGetFlags = function (R) {
2913
- var flags = R.flags;
2914
- return flags === undefined && !('flags' in RegExpPrototype$3) && !hasOwn$3(R, 'flags') && isPrototypeOf$3(RegExpPrototype$3, R)
2915
- ? call$1(regExpFlags, R) : flags;
2916
- };
2917
-
2918
3147
  var defineProperty$1 = objectDefineProperty.f;
2919
3148
 
2920
3149
  var proxyAccessor$2 = function (Target, Source, key) {
@@ -2934,15 +3163,15 @@ var defineBuiltInAccessor$3 = function (target, name, descriptor) {
2934
3163
  return defineProperty.f(target, name, descriptor);
2935
3164
  };
2936
3165
 
2937
- var getBuiltIn$2 = getBuiltIn$6;
3166
+ var getBuiltIn$1 = getBuiltIn$6;
2938
3167
  var defineBuiltInAccessor$2 = defineBuiltInAccessor$3;
2939
- var wellKnownSymbol$2 = wellKnownSymbol$e;
3168
+ var wellKnownSymbol$1 = wellKnownSymbol$e;
2940
3169
  var DESCRIPTORS$4 = descriptors;
2941
3170
 
2942
- var SPECIES = wellKnownSymbol$2('species');
3171
+ var SPECIES = wellKnownSymbol$1('species');
2943
3172
 
2944
3173
  var setSpecies$1 = function (CONSTRUCTOR_NAME) {
2945
- var Constructor = getBuiltIn$2(CONSTRUCTOR_NAME);
3174
+ var Constructor = getBuiltIn$1(CONSTRUCTOR_NAME);
2946
3175
 
2947
3176
  if (DESCRIPTORS$4 && Constructor && !Constructor[SPECIES]) {
2948
3177
  defineBuiltInAccessor$2(Constructor, SPECIES, {
@@ -2954,36 +3183,36 @@ var setSpecies$1 = function (CONSTRUCTOR_NAME) {
2954
3183
 
2955
3184
  var DESCRIPTORS$3 = descriptors;
2956
3185
  var global$3 = global$h;
2957
- var uncurryThis$6 = functionUncurryThis;
3186
+ var uncurryThis$2 = functionUncurryThis;
2958
3187
  var isForced = isForced_1;
2959
3188
  var inheritIfRequired$1 = inheritIfRequired$2;
2960
3189
  var createNonEnumerableProperty$3 = createNonEnumerableProperty$9;
2961
3190
  var create = objectCreate;
2962
3191
  var getOwnPropertyNames = objectGetOwnPropertyNames.f;
2963
3192
  var isPrototypeOf$2 = objectIsPrototypeOf;
2964
- var isRegExp$1 = isRegexp;
2965
- var toString$4 = toString$a;
2966
- var getRegExpFlags$1 = regexpGetFlags;
3193
+ var isRegExp = isRegexp;
3194
+ var toString$2 = toString$a;
3195
+ var getRegExpFlags = regexpGetFlags;
2967
3196
  var stickyHelpers = regexpStickyHelpers;
2968
3197
  var proxyAccessor$1 = proxyAccessor$2;
2969
- var defineBuiltIn$1 = defineBuiltIn$6;
2970
- var fails$4 = fails$n;
3198
+ var defineBuiltIn = defineBuiltIn$6;
3199
+ var fails$1 = fails$n;
2971
3200
  var hasOwn$2 = hasOwnProperty_1;
2972
3201
  var enforceInternalState = internalState.enforce;
2973
3202
  var setSpecies = setSpecies$1;
2974
- var wellKnownSymbol$1 = wellKnownSymbol$e;
3203
+ var wellKnownSymbol = wellKnownSymbol$e;
2975
3204
  var UNSUPPORTED_DOT_ALL$1 = regexpUnsupportedDotAll;
2976
3205
  var UNSUPPORTED_NCG = regexpUnsupportedNcg;
2977
3206
 
2978
- var MATCH$1 = wellKnownSymbol$1('match');
3207
+ var MATCH = wellKnownSymbol('match');
2979
3208
  var NativeRegExp = global$3.RegExp;
2980
- var RegExpPrototype$2 = NativeRegExp.prototype;
3209
+ var RegExpPrototype$1 = NativeRegExp.prototype;
2981
3210
  var SyntaxError = global$3.SyntaxError;
2982
- var exec$1 = uncurryThis$6(RegExpPrototype$2.exec);
2983
- var charAt$1 = uncurryThis$6(''.charAt);
2984
- var replace$3 = uncurryThis$6(''.replace);
2985
- var stringIndexOf$1 = uncurryThis$6(''.indexOf);
2986
- var stringSlice$1 = uncurryThis$6(''.slice);
3211
+ var exec = uncurryThis$2(RegExpPrototype$1.exec);
3212
+ var charAt = uncurryThis$2(''.charAt);
3213
+ var replace$2 = uncurryThis$2(''.replace);
3214
+ var stringIndexOf = uncurryThis$2(''.indexOf);
3215
+ var stringSlice$1 = uncurryThis$2(''.slice);
2987
3216
  // TODO: Use only proper RegExpIdentifierName
2988
3217
  var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/;
2989
3218
  var re1 = /a/g;
@@ -2996,8 +3225,8 @@ var MISSED_STICKY = stickyHelpers.MISSED_STICKY;
2996
3225
  var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;
2997
3226
 
2998
3227
  var BASE_FORCED = DESCRIPTORS$3 &&
2999
- (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL$1 || UNSUPPORTED_NCG || fails$4(function () {
3000
- re2[MATCH$1] = false;
3228
+ (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL$1 || UNSUPPORTED_NCG || fails$1(function () {
3229
+ re2[MATCH] = false;
3001
3230
  // RegExp constructor can alter flags and IsRegExp works correct with @@match
3002
3231
  return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';
3003
3232
  }));
@@ -3009,9 +3238,9 @@ var handleDotAll = function (string) {
3009
3238
  var brackets = false;
3010
3239
  var chr;
3011
3240
  for (; index <= length; index++) {
3012
- chr = charAt$1(string, index);
3241
+ chr = charAt(string, index);
3013
3242
  if (chr === '\\') {
3014
- result += chr + charAt$1(string, ++index);
3243
+ result += chr + charAt(string, ++index);
3015
3244
  continue;
3016
3245
  }
3017
3246
  if (!brackets && chr === '.') {
@@ -3038,9 +3267,9 @@ var handleNCG = function (string) {
3038
3267
  var groupname = '';
3039
3268
  var chr;
3040
3269
  for (; index <= length; index++) {
3041
- chr = charAt$1(string, index);
3270
+ chr = charAt(string, index);
3042
3271
  if (chr === '\\') {
3043
- chr += charAt$1(string, ++index);
3272
+ chr += charAt(string, ++index);
3044
3273
  } else if (chr === ']') {
3045
3274
  brackets = false;
3046
3275
  } else if (!brackets) switch (true) {
@@ -3048,7 +3277,7 @@ var handleNCG = function (string) {
3048
3277
  brackets = true;
3049
3278
  break;
3050
3279
  case chr === '(':
3051
- if (exec$1(IS_NCG, stringSlice$1(string, index + 1))) {
3280
+ if (exec(IS_NCG, stringSlice$1(string, index + 1))) {
3052
3281
  index += 2;
3053
3282
  ncg = true;
3054
3283
  }
@@ -3074,8 +3303,8 @@ var handleNCG = function (string) {
3074
3303
  // https://tc39.es/ecma262/#sec-regexp-constructor
3075
3304
  if (isForced('RegExp', BASE_FORCED)) {
3076
3305
  var RegExpWrapper = function RegExp(pattern, flags) {
3077
- var thisIsRegExp = isPrototypeOf$2(RegExpPrototype$2, this);
3078
- var patternIsRegExp = isRegExp$1(pattern);
3306
+ var thisIsRegExp = isPrototypeOf$2(RegExpPrototype$1, this);
3307
+ var patternIsRegExp = isRegExp(pattern);
3079
3308
  var flagsAreUndefined = flags === undefined;
3080
3309
  var groups = [];
3081
3310
  var rawPattern = pattern;
@@ -3085,25 +3314,25 @@ if (isForced('RegExp', BASE_FORCED)) {
3085
3314
  return pattern;
3086
3315
  }
3087
3316
 
3088
- if (patternIsRegExp || isPrototypeOf$2(RegExpPrototype$2, pattern)) {
3317
+ if (patternIsRegExp || isPrototypeOf$2(RegExpPrototype$1, pattern)) {
3089
3318
  pattern = pattern.source;
3090
- if (flagsAreUndefined) flags = getRegExpFlags$1(rawPattern);
3319
+ if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);
3091
3320
  }
3092
3321
 
3093
- pattern = pattern === undefined ? '' : toString$4(pattern);
3094
- flags = flags === undefined ? '' : toString$4(flags);
3322
+ pattern = pattern === undefined ? '' : toString$2(pattern);
3323
+ flags = flags === undefined ? '' : toString$2(flags);
3095
3324
  rawPattern = pattern;
3096
3325
 
3097
3326
  if (UNSUPPORTED_DOT_ALL$1 && 'dotAll' in re1) {
3098
- dotAll = !!flags && stringIndexOf$1(flags, 's') > -1;
3099
- if (dotAll) flags = replace$3(flags, /s/g, '');
3327
+ dotAll = !!flags && stringIndexOf(flags, 's') > -1;
3328
+ if (dotAll) flags = replace$2(flags, /s/g, '');
3100
3329
  }
3101
3330
 
3102
3331
  rawFlags = flags;
3103
3332
 
3104
3333
  if (MISSED_STICKY && 'sticky' in re1) {
3105
- sticky = !!flags && stringIndexOf$1(flags, 'y') > -1;
3106
- if (sticky && UNSUPPORTED_Y) flags = replace$3(flags, /y/g, '');
3334
+ sticky = !!flags && stringIndexOf(flags, 'y') > -1;
3335
+ if (sticky && UNSUPPORTED_Y) flags = replace$2(flags, /y/g, '');
3107
3336
  }
3108
3337
 
3109
3338
  if (UNSUPPORTED_NCG) {
@@ -3112,7 +3341,7 @@ if (isForced('RegExp', BASE_FORCED)) {
3112
3341
  groups = handled[1];
3113
3342
  }
3114
3343
 
3115
- result = inheritIfRequired$1(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype$2, RegExpWrapper);
3344
+ result = inheritIfRequired$1(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype$1, RegExpWrapper);
3116
3345
 
3117
3346
  if (dotAll || sticky || groups.length) {
3118
3347
  state = enforceInternalState(result);
@@ -3136,9 +3365,9 @@ if (isForced('RegExp', BASE_FORCED)) {
3136
3365
  proxyAccessor$1(RegExpWrapper, NativeRegExp, keys[index++]);
3137
3366
  }
3138
3367
 
3139
- RegExpPrototype$2.constructor = RegExpWrapper;
3140
- RegExpWrapper.prototype = RegExpPrototype$2;
3141
- defineBuiltIn$1(global$3, 'RegExp', RegExpWrapper, { constructor: true });
3368
+ RegExpPrototype$1.constructor = RegExpWrapper;
3369
+ RegExpWrapper.prototype = RegExpPrototype$1;
3370
+ defineBuiltIn(global$3, 'RegExp', RegExpWrapper, { constructor: true });
3142
3371
  }
3143
3372
 
3144
3373
  // https://tc39.es/ecma262/#sec-get-regexp-@@species
@@ -3146,56 +3375,30 @@ setSpecies('RegExp');
3146
3375
 
3147
3376
  var DESCRIPTORS$2 = descriptors;
3148
3377
  var UNSUPPORTED_DOT_ALL = regexpUnsupportedDotAll;
3149
- var classof$1 = classofRaw$1;
3378
+ var classof = classofRaw$1;
3150
3379
  var defineBuiltInAccessor$1 = defineBuiltInAccessor$3;
3151
3380
  var getInternalState = internalState.get;
3152
3381
 
3153
- var RegExpPrototype$1 = RegExp.prototype;
3154
- var $TypeError$1 = TypeError;
3382
+ var RegExpPrototype = RegExp.prototype;
3383
+ var $TypeError = TypeError;
3155
3384
 
3156
3385
  // `RegExp.prototype.dotAll` getter
3157
3386
  // https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall
3158
3387
  if (DESCRIPTORS$2 && UNSUPPORTED_DOT_ALL) {
3159
- defineBuiltInAccessor$1(RegExpPrototype$1, 'dotAll', {
3388
+ defineBuiltInAccessor$1(RegExpPrototype, 'dotAll', {
3160
3389
  configurable: true,
3161
3390
  get: function dotAll() {
3162
- if (this === RegExpPrototype$1) return;
3391
+ if (this === RegExpPrototype) return;
3163
3392
  // We can't use InternalStateModule.getterFor because
3164
3393
  // we don't add metadata for regexps created by a literal.
3165
- if (classof$1(this) === 'RegExp') {
3394
+ if (classof(this) === 'RegExp') {
3166
3395
  return !!getInternalState(this).dotAll;
3167
3396
  }
3168
- throw new $TypeError$1('Incompatible receiver, RegExp required');
3397
+ throw new $TypeError('Incompatible receiver, RegExp required');
3169
3398
  }
3170
3399
  });
3171
3400
  }
3172
3401
 
3173
- var PROPER_FUNCTION_NAME = functionName.PROPER;
3174
- var defineBuiltIn = defineBuiltIn$6;
3175
- var anObject = anObject$9;
3176
- var $toString = toString$a;
3177
- var fails$3 = fails$n;
3178
- var getRegExpFlags = regexpGetFlags;
3179
-
3180
- var TO_STRING = 'toString';
3181
- var RegExpPrototype = RegExp.prototype;
3182
- var nativeToString = RegExpPrototype[TO_STRING];
3183
-
3184
- var NOT_GENERIC = fails$3(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });
3185
- // FF44- RegExp#toString has a wrong name
3186
- var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;
3187
-
3188
- // `RegExp.prototype.toString` method
3189
- // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
3190
- if (NOT_GENERIC || INCORRECT_NAME) {
3191
- defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {
3192
- var R = anObject(this);
3193
- var pattern = $toString(R.source);
3194
- var flags = $toString(getRegExpFlags(R));
3195
- return '/' + pattern + '/' + flags;
3196
- }, { unsafe: true });
3197
- }
3198
-
3199
3402
  const fetchRegister = props => __awaiter(void 0, void 0, void 0, function* () {
3200
3403
  let headers = {};
3201
3404
  const {
@@ -3221,7 +3424,9 @@ const fetchRegister = props => __awaiter(void 0, void 0, void 0, function* () {
3221
3424
  }
3222
3425
  return responseData;
3223
3426
  } catch (err) {
3427
+ const error = err;
3224
3428
  console.warn(`Error in fetch enum register data from remote: ${err}`);
3429
+ return error.message;
3225
3430
  }
3226
3431
  }
3227
3432
  return undefined;
@@ -3231,6 +3436,10 @@ const isValidHref = function isValidHref(url) {
3231
3436
  const mailToPattern = new RegExp(/^(mailto):[^ "]+$/);
3232
3437
  return httpPattern.test(url) || mailToPattern.test(url);
3233
3438
  };
3439
+ const isMailToHref = function isMailToHref(url) {
3440
+ const mailToPattern = new RegExp(/^(mailto):[^ "]+$/);
3441
+ return mailToPattern.test(url);
3442
+ };
3234
3443
 
3235
3444
  const JsonFormsRegisterContext = /*#__PURE__*/createContext(undefined);
3236
3445
  const JsonFormRegisterProvider = ({
@@ -3238,42 +3447,100 @@ const JsonFormRegisterProvider = ({
3238
3447
  defaultRegisters
3239
3448
  }) => {
3240
3449
  const registerCtx = useContext(JsonFormsRegisterContext);
3241
- const [registers, dispatch] = useReducer(registerReducer, []);
3450
+ const [registers, dispatch] = useReducer(registerReducer, {
3451
+ registerData: [],
3452
+ nonAnonymous: [],
3453
+ nonExistent: [],
3454
+ errors: {}
3455
+ });
3242
3456
  const context = useMemo(() => {
3243
3457
  return {
3244
3458
  isProvided: true,
3245
3459
  registerDispatch: dispatch,
3246
3460
  selectRegisterData: criteria => {
3247
- var _a, _b;
3461
+ var _a, _b, _c, _d;
3248
3462
  if (criteria === null || criteria === void 0 ? void 0 : criteria.url) {
3249
- return ((_a = registers === null || registers === void 0 ? void 0 : registers.find(r => r.url === criteria.url)) === null || _a === void 0 ? void 0 : _a.data) || [];
3463
+ return ((_b = (_a = registers.registerData) === null || _a === void 0 ? void 0 : _a.find(r => r.url === criteria.url)) === null || _b === void 0 ? void 0 : _b.data) || [];
3250
3464
  }
3251
3465
  if (criteria === null || criteria === void 0 ? void 0 : criteria.urn) {
3252
- return ((_b = registers === null || registers === void 0 ? void 0 : registers.find(r => r.urn === criteria.urn)) === null || _b === void 0 ? void 0 : _b.data) || [];
3466
+ return ((_d = (_c = registers.registerData) === null || _c === void 0 ? void 0 : _c.find(r => r.urn === criteria.urn)) === null || _d === void 0 ? void 0 : _d.data) || [];
3253
3467
  }
3254
3468
  return [];
3255
3469
  },
3470
+ fetchErrors: criteria => {
3471
+ var _a;
3472
+ if (criteria === null || criteria === void 0 ? void 0 : criteria.url) {
3473
+ const matchFound = registers === null || registers === void 0 ? void 0 : registers.registerData.some(listItem => {
3474
+ var _a;
3475
+ if ((listItem === null || listItem === void 0 ? void 0 : listItem.url) && ((_a = criteria === null || criteria === void 0 ? void 0 : criteria.url) === null || _a === void 0 ? void 0 : _a.toString().includes(listItem === null || listItem === void 0 ? void 0 : listItem.url))) {
3476
+ return true;
3477
+ }
3478
+ return false;
3479
+ });
3480
+ return matchFound ? '' : `${((_a = registers.errors[criteria === null || criteria === void 0 ? void 0 : criteria.url]) === null || _a === void 0 ? void 0 : _a.message) || ''}`;
3481
+ } else if (criteria === null || criteria === void 0 ? void 0 : criteria.urn) {
3482
+ if (registers === null || registers === void 0 ? void 0 : registers.nonExistent) {
3483
+ const matchFound = registers === null || registers === void 0 ? void 0 : registers.nonExistent.some(listItem => {
3484
+ var _a;
3485
+ if ((_a = criteria === null || criteria === void 0 ? void 0 : criteria.urn) === null || _a === void 0 ? void 0 : _a.toString().includes(listItem)) {
3486
+ return true;
3487
+ }
3488
+ return false;
3489
+ });
3490
+ if (!matchFound) {
3491
+ return 'The element does not exist';
3492
+ }
3493
+ }
3494
+ if (registers === null || registers === void 0 ? void 0 : registers.nonAnonymous) {
3495
+ const matchFound = registers === null || registers === void 0 ? void 0 : registers.nonAnonymous.some(nonAnon => {
3496
+ var _a;
3497
+ if ((_a = criteria === null || criteria === void 0 ? void 0 : criteria.urn) === null || _a === void 0 ? void 0 : _a.toString().includes(nonAnon)) {
3498
+ return true;
3499
+ }
3500
+ return false;
3501
+ });
3502
+ return matchFound ? 'The element does not allow anonymous reading' : '';
3503
+ }
3504
+ }
3505
+ return '';
3506
+ },
3256
3507
  fetchRegisterByUrl: registerConfig => __awaiter(void 0, void 0, void 0, function* () {
3508
+ var _a;
3257
3509
  // Prevent re-freshing remote data
3258
- if (registers === null || registers === void 0 ? void 0 : registers.find(r => r.url === (registerConfig === null || registerConfig === void 0 ? void 0 : registerConfig.url))) {
3510
+ if ((_a = registers.registerData) === null || _a === void 0 ? void 0 : _a.find(r => r.url === (registerConfig === null || registerConfig === void 0 ? void 0 : registerConfig.url))) {
3259
3511
  return;
3260
3512
  }
3261
3513
  const data = yield fetchRegister(registerConfig);
3262
3514
  // TODO: check the data type
3263
- if (data) {
3515
+ if (Array.isArray(data)) {
3264
3516
  dispatch({
3265
3517
  type: ADD_REGISTER_DATA_ACTION,
3266
3518
  payload: Object.assign(Object.assign({}, registerConfig), {
3267
3519
  data
3268
3520
  })
3269
3521
  });
3522
+ } else {
3523
+ const url = registerConfig.url || 'error';
3524
+ const errors = {
3525
+ [url]: {
3526
+ message: data || '',
3527
+ url: url
3528
+ }
3529
+ };
3530
+ if (JSON.stringify(registers.errors[url]) !== JSON.stringify(errors[url])) {
3531
+ dispatch({
3532
+ type: ADD_REGISTER_DATA_ERROR,
3533
+ payload: errors
3534
+ });
3535
+ }
3270
3536
  }
3271
3537
  })
3272
3538
  };
3273
3539
  }, [registers]);
3274
3540
  useEffect(() => {
3541
+ var _a, _b, _c;
3275
3542
  if (defaultRegisters) {
3276
- defaultRegisters === null || defaultRegisters === void 0 ? void 0 : defaultRegisters.forEach(register => {
3543
+ (_a = defaultRegisters === null || defaultRegisters === void 0 ? void 0 : defaultRegisters.registerData) === null || _a === void 0 ? void 0 : _a.forEach(register => {
3277
3544
  if ((register === null || register === void 0 ? void 0 : register.data) !== undefined) {
3278
3545
  // Register comes with data from remote
3279
3546
  dispatch({
@@ -3283,7 +3550,7 @@ const JsonFormRegisterProvider = ({
3283
3550
  } else {
3284
3551
  (() => __awaiter(void 0, void 0, void 0, function* () {
3285
3552
  const data = yield fetchRegister(register);
3286
- if (data) {
3553
+ if (Array.isArray(data)) {
3287
3554
  dispatch({
3288
3555
  type: ADD_REGISTER_DATA_ACTION,
3289
3556
  payload: Object.assign(Object.assign({}, register), {
@@ -3294,6 +3561,22 @@ const JsonFormRegisterProvider = ({
3294
3561
  }))();
3295
3562
  }
3296
3563
  });
3564
+ if (((_b = defaultRegisters === null || defaultRegisters === void 0 ? void 0 : defaultRegisters.nonAnonymous) === null || _b === void 0 ? void 0 : _b.length) > 0) {
3565
+ dispatch({
3566
+ type: ADD_NO_ANONYMOUS_ACTION,
3567
+ payload: {
3568
+ nonAnonymous: defaultRegisters === null || defaultRegisters === void 0 ? void 0 : defaultRegisters.nonAnonymous
3569
+ }
3570
+ });
3571
+ }
3572
+ if (((_c = defaultRegisters === null || defaultRegisters === void 0 ? void 0 : defaultRegisters.dataList) === null || _c === void 0 ? void 0 : _c.length) > 0) {
3573
+ dispatch({
3574
+ type: ADD_DATALIST_ACTION,
3575
+ payload: {
3576
+ nonExistent: defaultRegisters === null || defaultRegisters === void 0 ? void 0 : defaultRegisters.dataList
3577
+ }
3578
+ });
3579
+ }
3297
3580
  }
3298
3581
  }, [dispatch, defaultRegisters]);
3299
3582
  /* The client might use the context outside of the Jsonform to provide custom register data */
@@ -3369,28 +3652,28 @@ const GoAInputBaseControl = props => {
3369
3652
  });
3370
3653
  };
3371
3654
 
3372
- var $$4 = _export;
3655
+ var $$1 = _export;
3373
3656
  var DESCRIPTORS$1 = descriptors;
3374
3657
  var global$2 = global$h;
3375
- var uncurryThis$5 = functionUncurryThis;
3658
+ var uncurryThis$1 = functionUncurryThis;
3376
3659
  var hasOwn$1 = hasOwnProperty_1;
3377
- var isCallable$2 = isCallable$l;
3660
+ var isCallable = isCallable$l;
3378
3661
  var isPrototypeOf$1 = objectIsPrototypeOf;
3379
- var toString$3 = toString$a;
3662
+ var toString$1 = toString$a;
3380
3663
  var defineBuiltInAccessor = defineBuiltInAccessor$3;
3381
3664
  var copyConstructorProperties$1 = copyConstructorProperties$3;
3382
3665
 
3383
3666
  var NativeSymbol = global$2.Symbol;
3384
3667
  var SymbolPrototype = NativeSymbol && NativeSymbol.prototype;
3385
3668
 
3386
- if (DESCRIPTORS$1 && isCallable$2(NativeSymbol) && (!('description' in SymbolPrototype) ||
3669
+ if (DESCRIPTORS$1 && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||
3387
3670
  // Safari 12 bug
3388
3671
  NativeSymbol().description !== undefined
3389
3672
  )) {
3390
3673
  var EmptyStringDescriptionStore = {};
3391
3674
  // wrap Symbol constructor for correct work with undefined description
3392
3675
  var SymbolWrapper = function Symbol() {
3393
- var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString$3(arguments[0]);
3676
+ var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString$1(arguments[0]);
3394
3677
  var result = isPrototypeOf$1(SymbolPrototype, this)
3395
3678
  ? new NativeSymbol(description)
3396
3679
  // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
@@ -3403,12 +3686,12 @@ if (DESCRIPTORS$1 && isCallable$2(NativeSymbol) && (!('description' in SymbolPro
3403
3686
  SymbolWrapper.prototype = SymbolPrototype;
3404
3687
  SymbolPrototype.constructor = SymbolWrapper;
3405
3688
 
3406
- var NATIVE_SYMBOL$1 = String(NativeSymbol('description detection')) === 'Symbol(description detection)';
3407
- var thisSymbolValue = uncurryThis$5(SymbolPrototype.valueOf);
3408
- var symbolDescriptiveString = uncurryThis$5(SymbolPrototype.toString);
3689
+ var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)';
3690
+ var thisSymbolValue = uncurryThis$1(SymbolPrototype.valueOf);
3691
+ var symbolDescriptiveString = uncurryThis$1(SymbolPrototype.toString);
3409
3692
  var regexp = /^Symbol\((.*)\)[^)]+$/;
3410
- var replace$2 = uncurryThis$5(''.replace);
3411
- var stringSlice = uncurryThis$5(''.slice);
3693
+ var replace$1 = uncurryThis$1(''.replace);
3694
+ var stringSlice = uncurryThis$1(''.slice);
3412
3695
 
3413
3696
  defineBuiltInAccessor(SymbolPrototype, 'description', {
3414
3697
  configurable: true,
@@ -3416,12 +3699,12 @@ if (DESCRIPTORS$1 && isCallable$2(NativeSymbol) && (!('description' in SymbolPro
3416
3699
  var symbol = thisSymbolValue(this);
3417
3700
  if (hasOwn$1(EmptyStringDescriptionStore, symbol)) return '';
3418
3701
  var string = symbolDescriptiveString(symbol);
3419
- var desc = NATIVE_SYMBOL$1 ? stringSlice(string, 7, -1) : replace$2(string, regexp, '$1');
3702
+ var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace$1(string, regexp, '$1');
3420
3703
  return desc === '' ? undefined : desc;
3421
3704
  }
3422
3705
  });
3423
3706
 
3424
- $$4({ global: true, constructor: true, forced: true }, {
3707
+ $$1({ global: true, constructor: true, forced: true }, {
3425
3708
  Symbol: SymbolWrapper
3426
3709
  });
3427
3710
  }
@@ -3678,113 +3961,6 @@ const GoADateControl = props => jsx(GoAInputBaseControl, Object.assign({}, props
3678
3961
  const GoADateControlTester = rankWith(4, isDateControl);
3679
3962
  const GoAInputDateControl = withJsonFormsControlProps(GoADateControl);
3680
3963
 
3681
- var uncurryThis$4 = functionUncurryThis;
3682
-
3683
- var arraySlice$1 = uncurryThis$4([].slice);
3684
-
3685
- var uncurryThis$3 = functionUncurryThis;
3686
- var isArray = isArray$2;
3687
- var isCallable$1 = isCallable$l;
3688
- var classof = classofRaw$1;
3689
- var toString$2 = toString$a;
3690
-
3691
- var push = uncurryThis$3([].push);
3692
-
3693
- var getJsonReplacerFunction = function (replacer) {
3694
- if (isCallable$1(replacer)) return replacer;
3695
- if (!isArray(replacer)) return;
3696
- var rawLength = replacer.length;
3697
- var keys = [];
3698
- for (var i = 0; i < rawLength; i++) {
3699
- var element = replacer[i];
3700
- if (typeof element == 'string') push(keys, element);
3701
- else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString$2(element));
3702
- }
3703
- var keysLength = keys.length;
3704
- var root = true;
3705
- return function (key, value) {
3706
- if (root) {
3707
- root = false;
3708
- return value;
3709
- }
3710
- if (isArray(this)) return value;
3711
- for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;
3712
- };
3713
- };
3714
-
3715
- var $$3 = _export;
3716
- var getBuiltIn$1 = getBuiltIn$6;
3717
- var apply$1 = functionApply;
3718
- var call = functionCall;
3719
- var uncurryThis$2 = functionUncurryThis;
3720
- var fails$2 = fails$n;
3721
- var isCallable = isCallable$l;
3722
- var isSymbol = isSymbol$3;
3723
- var arraySlice = arraySlice$1;
3724
- var getReplacerFunction = getJsonReplacerFunction;
3725
- var NATIVE_SYMBOL = symbolConstructorDetection;
3726
-
3727
- var $String = String;
3728
- var $stringify = getBuiltIn$1('JSON', 'stringify');
3729
- var exec = uncurryThis$2(/./.exec);
3730
- var charAt = uncurryThis$2(''.charAt);
3731
- var charCodeAt = uncurryThis$2(''.charCodeAt);
3732
- var replace$1 = uncurryThis$2(''.replace);
3733
- var numberToString = uncurryThis$2(1.0.toString);
3734
-
3735
- var tester = /[\uD800-\uDFFF]/g;
3736
- var low = /^[\uD800-\uDBFF]$/;
3737
- var hi = /^[\uDC00-\uDFFF]$/;
3738
-
3739
- var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails$2(function () {
3740
- var symbol = getBuiltIn$1('Symbol')('stringify detection');
3741
- // MS Edge converts symbol values to JSON as {}
3742
- return $stringify([symbol]) !== '[null]'
3743
- // WebKit converts symbol values to JSON as null
3744
- || $stringify({ a: symbol }) !== '{}'
3745
- // V8 throws on boxed symbols
3746
- || $stringify(Object(symbol)) !== '{}';
3747
- });
3748
-
3749
- // https://github.com/tc39/proposal-well-formed-stringify
3750
- var ILL_FORMED_UNICODE = fails$2(function () {
3751
- return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"'
3752
- || $stringify('\uDEAD') !== '"\\udead"';
3753
- });
3754
-
3755
- var stringifyWithSymbolsFix = function (it, replacer) {
3756
- var args = arraySlice(arguments);
3757
- var $replacer = getReplacerFunction(replacer);
3758
- if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined
3759
- args[1] = function (key, value) {
3760
- // some old implementations (like WebKit) could pass numbers as keys
3761
- if (isCallable($replacer)) value = call($replacer, this, $String(key), value);
3762
- if (!isSymbol(value)) return value;
3763
- };
3764
- return apply$1($stringify, null, args);
3765
- };
3766
-
3767
- var fixIllFormed = function (match, offset, string) {
3768
- var prev = charAt(string, offset - 1);
3769
- var next = charAt(string, offset + 1);
3770
- if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {
3771
- return '\\u' + numberToString(charCodeAt(match, 0), 16);
3772
- } return match;
3773
- };
3774
-
3775
- if ($stringify) {
3776
- // `JSON.stringify` method
3777
- // https://tc39.es/ecma262/#sec-json.stringify
3778
- $$3({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {
3779
- // eslint-disable-next-line no-unused-vars -- required for `.length`
3780
- stringify: function stringify(it, replacer, space) {
3781
- var args = arraySlice(arguments);
3782
- var result = apply$1(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);
3783
- return ILL_FORMED_UNICODE && typeof result == 'string' ? replace$1(result, tester, fixIllFormed) : result;
3784
- }
3785
- });
3786
- }
3787
-
3788
3964
  const GoANumberInput = props => {
3789
3965
  var _a, _b, _c, _d, _e, _f, _g;
3790
3966
  // eslint-disable-next-line
@@ -4059,8 +4235,10 @@ const EnumSelect = props => {
4059
4235
  const registerConfig = fetchRegisterConfigFromOptions((_b = (_a = props.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.register);
4060
4236
  // eslint-disable-next-line react-hooks/exhaustive-deps
4061
4237
  let registerData = [];
4238
+ let error = '';
4062
4239
  if (registerConfig) {
4063
4240
  registerData = registerCtx === null || registerCtx === void 0 ? void 0 : registerCtx.selectRegisterData(registerConfig);
4241
+ error = (registerCtx === null || registerCtx === void 0 ? void 0 : registerCtx.fetchErrors(registerConfig)) || '';
4064
4242
  }
4065
4243
  const autocompletion = ((_d = (_c = props.uischema) === null || _c === void 0 ? void 0 : _c.options) === null || _d === void 0 ? void 0 : _d.autocomplete) === true;
4066
4244
  const appliedUiSchemaOptions = merge({}, config, props.uischema.options);
@@ -4092,25 +4270,29 @@ const EnumSelect = props => {
4092
4270
  registerCtx === null || registerCtx === void 0 ? void 0 : registerCtx.fetchRegisterByUrl(registerConfig);
4093
4271
  }
4094
4272
  }, [registerCtx, registerConfig]);
4095
- return jsx(GoADropdown, Object.assign({
4096
- name: `${label}`,
4097
- value: data,
4098
- disabled: !enabled,
4099
- relative: true,
4100
- filterable: autocompletion,
4101
- testId: `${id || label}-jsonform`
4102
- }, appliedUiSchemaOptions, {
4103
- onChange: (name, value) => {
4104
- handleChange(path, value);
4105
- }
4106
- }, (_e = uischema === null || uischema === void 0 ? void 0 : uischema.options) === null || _e === void 0 ? void 0 : _e.componentProps, {
4107
- children: mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.map(item => {
4108
- return jsx(GoADropdownItem, {
4109
- value: `${item.value}`,
4110
- label: `${item.label}`
4111
- }, `json-form-dropdown-${item.value}`);
4112
- })
4113
- }), `${id}-jsonform-key`);
4273
+ return jsx(GoAFormItem, {
4274
+ error: error,
4275
+ label: "",
4276
+ children: jsx(GoADropdown, Object.assign({
4277
+ name: `${label}`,
4278
+ value: data,
4279
+ disabled: !enabled,
4280
+ relative: true,
4281
+ filterable: autocompletion,
4282
+ testId: `${id || label}-jsonform`
4283
+ }, appliedUiSchemaOptions, {
4284
+ onChange: (name, value) => {
4285
+ handleChange(path, value);
4286
+ }
4287
+ }, (_e = uischema === null || uischema === void 0 ? void 0 : uischema.options) === null || _e === void 0 ? void 0 : _e.componentProps, {
4288
+ children: mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.map(item => {
4289
+ return jsx(GoADropdownItem, {
4290
+ value: `${item.value}`,
4291
+ label: `${item.label}`
4292
+ }, `json-form-dropdown-${item.value}`);
4293
+ })
4294
+ }), `${id}-jsonform-key`)
4295
+ });
4114
4296
  };
4115
4297
  const enumControl = props => {
4116
4298
  return jsx(GoAInputBaseControl, Object.assign({}, props, {
@@ -4268,75 +4450,6 @@ const BooleanRadioControl = props => jsx(GoAInputBaseControl, Object.assign({},
4268
4450
  const GoABooleanRadioControlTester = rankWith(3, and(isBooleanControl, optionIs('radio', true)));
4269
4451
  const GoABooleanRadioControl = withJsonFormsControlProps(BooleanRadioControl);
4270
4452
 
4271
- var $$2 = _export;
4272
- var $includes = arrayIncludes.includes;
4273
- var fails$1 = fails$n;
4274
- var addToUnscopables = addToUnscopables$3;
4275
-
4276
- // FF99+ bug
4277
- var BROKEN_ON_SPARSE = fails$1(function () {
4278
- // eslint-disable-next-line es/no-array-prototype-includes -- detection
4279
- return !Array(1).includes();
4280
- });
4281
-
4282
- // `Array.prototype.includes` method
4283
- // https://tc39.es/ecma262/#sec-array.prototype.includes
4284
- $$2({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {
4285
- includes: function includes(el /* , fromIndex = 0 */) {
4286
- return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
4287
- }
4288
- });
4289
-
4290
- // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
4291
- addToUnscopables('includes');
4292
-
4293
- var isRegExp = isRegexp;
4294
-
4295
- var $TypeError = TypeError;
4296
-
4297
- var notARegexp = function (it) {
4298
- if (isRegExp(it)) {
4299
- throw new $TypeError("The method doesn't accept regular expressions");
4300
- } return it;
4301
- };
4302
-
4303
- var wellKnownSymbol = wellKnownSymbol$e;
4304
-
4305
- var MATCH = wellKnownSymbol('match');
4306
-
4307
- var correctIsRegexpLogic = function (METHOD_NAME) {
4308
- var regexp = /./;
4309
- try {
4310
- '/./'[METHOD_NAME](regexp);
4311
- } catch (error1) {
4312
- try {
4313
- regexp[MATCH] = false;
4314
- return '/./'[METHOD_NAME](regexp);
4315
- } catch (error2) { /* empty */ }
4316
- } return false;
4317
- };
4318
-
4319
- var $$1 = _export;
4320
- var uncurryThis$1 = functionUncurryThis;
4321
- var notARegExp = notARegexp;
4322
- var requireObjectCoercible = requireObjectCoercible$7;
4323
- var toString$1 = toString$a;
4324
- var correctIsRegExpLogic = correctIsRegexpLogic;
4325
-
4326
- var stringIndexOf = uncurryThis$1(''.indexOf);
4327
-
4328
- // `String.prototype.includes` method
4329
- // https://tc39.es/ecma262/#sec-string.prototype.includes
4330
- $$1({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
4331
- includes: function includes(searchString /* , position = 0 */) {
4332
- return !!~stringIndexOf(
4333
- toString$1(requireObjectCoercible(this)),
4334
- toString$1(notARegExp(searchString)),
4335
- arguments.length > 1 ? arguments[1] : undefined
4336
- );
4337
- }
4338
- });
4339
-
4340
4453
  let _$5 = t => t,
4341
4454
  _t$5;
4342
4455
  const Checkboxes = ({
@@ -6594,7 +6707,11 @@ const RenderLink = props => {
6594
6707
  href: link,
6595
6708
  rel: "noopener noreferrer",
6596
6709
  target: "_blank",
6597
- children: [linkLabel, jsx(GoAIconButton, {
6710
+ children: [linkLabel, isMailToHref(link !== null && link !== void 0 ? link : '') ? jsx(GoAContextMenuIcon, {
6711
+ type: "mail",
6712
+ title: "Email",
6713
+ testId: "mail-icon"
6714
+ }) : jsx(GoAIconButton, {
6598
6715
  icon: "open",
6599
6716
  title: "Open",
6600
6717
  testId: "open-icon",
@@ -6678,7 +6795,7 @@ const HelpContents = ({
6678
6795
  elements,
6679
6796
  isParent: _isParent = false
6680
6797
  }) => jsx("div", {
6681
- children: elements === null || elements === void 0 ? void 0 : elements.map(element => {
6798
+ children: elements === null || elements === void 0 ? void 0 : elements.map((element, index) => {
6682
6799
  return jsx(HelpContentComponent, {
6683
6800
  uischema: element,
6684
6801
  label: element.label,
@@ -6692,7 +6809,7 @@ const HelpContents = ({
6692
6809
  id: '',
6693
6810
  schema: {},
6694
6811
  isParent: _isParent
6695
- });
6812
+ }, `${element.label}-help-content-${index}`);
6696
6813
  })
6697
6814
  });
6698
6815
  const HelpContentTester = rankWith(1, uiTypeIs('HelpContent'));
@@ -7014,4 +7131,4 @@ const GoARenderers = [...GoABaseRenderers, {
7014
7131
  }];
7015
7132
  const GoACells = [...InputCells];
7016
7133
 
7017
- export { ADD_REGISTER_DATA_ACTION, ContextProviderC, ContextProviderClass, ContextProviderFactory, GoABaseRenderers, GoABaseReviewRenderers, GoACells, GoARenderers, GoAReviewRenderers, JsonFormContext, JsonFormRegisterProvider, JsonFormsRegisterContext, createDefaultAjv, registerReducer };
7134
+ export { ADD_DATALIST_ACTION, ADD_NO_ANONYMOUS_ACTION, ADD_REGISTER_DATA_ACTION, ADD_REGISTER_DATA_ERROR, ContextProviderC, ContextProviderClass, ContextProviderFactory, GoABaseRenderers, GoABaseReviewRenderers, GoACells, GoARenderers, GoAReviewRenderers, JsonFormContext, JsonFormRegisterProvider, JsonFormsRegisterContext, createDefaultAjv, registerReducer };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abgov/jsonforms-components",
3
- "version": "1.28.1",
3
+ "version": "1.29.0",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Government of Alberta - React renderers for JSON Forms based on the design system.",
6
6
  "repository": "https://github.com/GovAlta/adsp-monorepo",
@@ -1,5 +1,8 @@
1
1
  import { Dispatch } from 'react';
2
2
  export declare const ADD_REGISTER_DATA_ACTION = "jsonforms/register/data/add";
3
+ export declare const ADD_NO_ANONYMOUS_ACTION = "jsonforms/register/no_anonymous";
4
+ export declare const ADD_DATALIST_ACTION = "jsonforms/register/add_datalist_action";
5
+ export declare const ADD_REGISTER_DATA_ERROR = "jsonforms/register/add_register_data_error";
3
6
  export interface RegisterConfig {
4
7
  urn?: string;
5
8
  url?: string;
@@ -13,11 +16,24 @@ export interface LabelValueRegisterData {
13
16
  key: string;
14
17
  value: string;
15
18
  }
19
+ export interface Errors {
20
+ url: string;
21
+ message: string;
22
+ }
16
23
  export type RegisterDataType = string[] | LabelValueRegisterData[];
17
24
  export interface RegisterConfigData extends RegisterConfig {
18
25
  data?: RegisterDataType;
26
+ errors?: Record<string, Errors>;
27
+ nonAnonymous?: string[];
28
+ nonExistent?: string[];
19
29
  }
20
30
  export type RegisterData = RegisterConfigData[];
31
+ export type RegisterDataResponse = {
32
+ registerData: RegisterConfigData[];
33
+ nonExistent: string[];
34
+ nonAnonymous: string[];
35
+ errors: Record<string, Errors>;
36
+ };
21
37
  type AddDataAction = {
22
38
  type: string;
23
39
  payload: RegisterConfigData;
@@ -1,2 +1,7 @@
1
- import { RegisterActions, RegisterData } from './actions';
2
- export declare function registerReducer(registerData: RegisterData, action: RegisterActions): RegisterData;
1
+ import { RegisterActions, RegisterData, RegisterDataResponse, Errors } from './actions';
2
+ export declare function registerReducer(state: {
3
+ registerData: RegisterData;
4
+ nonExistent: string[];
5
+ nonAnonymous: string[];
6
+ errors: Record<string, Errors>;
7
+ }, action: RegisterActions): RegisterDataResponse;
@@ -4,12 +4,17 @@ interface JsonFormsRegisterContextProps {
4
4
  registerDispatch: JsonFormRegisterDispatch;
5
5
  fetchRegisterByUrl: (registerConfig: RegisterConfig) => Promise<void>;
6
6
  selectRegisterData: (registerConfig: RegisterConfig) => RegisterDataType;
7
+ fetchErrors: (registerConfig: RegisterConfig) => string;
7
8
  isProvided: boolean;
8
9
  }
9
10
  export declare const JsonFormsRegisterContext: import("react").Context<JsonFormsRegisterContextProps | undefined>;
10
11
  interface JsonFormsRegisterProviderProps {
11
12
  children: ReactNode;
12
- defaultRegisters: RegisterConfig[] | RegisterData | undefined;
13
+ defaultRegisters: {
14
+ registerData: RegisterData;
15
+ dataList: string[];
16
+ nonAnonymous: string[];
17
+ } | undefined;
13
18
  }
14
19
  export declare const JsonFormRegisterProvider: ({ children, defaultRegisters, }: JsonFormsRegisterProviderProps) => JSX.Element;
15
20
  export {};
@@ -1,3 +1,4 @@
1
1
  import { RegisterConfig } from './actions';
2
- export declare const fetchRegister: (props: RegisterConfig) => Promise<any[] | undefined>;
2
+ export declare const fetchRegister: (props: RegisterConfig) => Promise<string | any[] | undefined>;
3
3
  export declare const isValidHref: (url: string) => boolean;
4
+ export declare const isMailToHref: (url: string) => boolean;