@abgov/jsonforms-components 1.28.2 → 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;
@@ -3242,42 +3447,100 @@ const JsonFormRegisterProvider = ({
3242
3447
  defaultRegisters
3243
3448
  }) => {
3244
3449
  const registerCtx = useContext(JsonFormsRegisterContext);
3245
- const [registers, dispatch] = useReducer(registerReducer, []);
3450
+ const [registers, dispatch] = useReducer(registerReducer, {
3451
+ registerData: [],
3452
+ nonAnonymous: [],
3453
+ nonExistent: [],
3454
+ errors: {}
3455
+ });
3246
3456
  const context = useMemo(() => {
3247
3457
  return {
3248
3458
  isProvided: true,
3249
3459
  registerDispatch: dispatch,
3250
3460
  selectRegisterData: criteria => {
3251
- var _a, _b;
3461
+ var _a, _b, _c, _d;
3252
3462
  if (criteria === null || criteria === void 0 ? void 0 : criteria.url) {
3253
- 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) || [];
3254
3464
  }
3255
3465
  if (criteria === null || criteria === void 0 ? void 0 : criteria.urn) {
3256
- 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) || [];
3257
3467
  }
3258
3468
  return [];
3259
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
+ },
3260
3507
  fetchRegisterByUrl: registerConfig => __awaiter(void 0, void 0, void 0, function* () {
3508
+ var _a;
3261
3509
  // Prevent re-freshing remote data
3262
- 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))) {
3263
3511
  return;
3264
3512
  }
3265
3513
  const data = yield fetchRegister(registerConfig);
3266
3514
  // TODO: check the data type
3267
- if (data) {
3515
+ if (Array.isArray(data)) {
3268
3516
  dispatch({
3269
3517
  type: ADD_REGISTER_DATA_ACTION,
3270
3518
  payload: Object.assign(Object.assign({}, registerConfig), {
3271
3519
  data
3272
3520
  })
3273
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
+ }
3274
3536
  }
3275
3537
  })
3276
3538
  };
3277
3539
  }, [registers]);
3278
3540
  useEffect(() => {
3541
+ var _a, _b, _c;
3279
3542
  if (defaultRegisters) {
3280
- 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 => {
3281
3544
  if ((register === null || register === void 0 ? void 0 : register.data) !== undefined) {
3282
3545
  // Register comes with data from remote
3283
3546
  dispatch({
@@ -3287,7 +3550,7 @@ const JsonFormRegisterProvider = ({
3287
3550
  } else {
3288
3551
  (() => __awaiter(void 0, void 0, void 0, function* () {
3289
3552
  const data = yield fetchRegister(register);
3290
- if (data) {
3553
+ if (Array.isArray(data)) {
3291
3554
  dispatch({
3292
3555
  type: ADD_REGISTER_DATA_ACTION,
3293
3556
  payload: Object.assign(Object.assign({}, register), {
@@ -3298,6 +3561,22 @@ const JsonFormRegisterProvider = ({
3298
3561
  }))();
3299
3562
  }
3300
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
+ }
3301
3580
  }
3302
3581
  }, [dispatch, defaultRegisters]);
3303
3582
  /* The client might use the context outside of the Jsonform to provide custom register data */
@@ -3373,28 +3652,28 @@ const GoAInputBaseControl = props => {
3373
3652
  });
3374
3653
  };
3375
3654
 
3376
- var $$4 = _export;
3655
+ var $$1 = _export;
3377
3656
  var DESCRIPTORS$1 = descriptors;
3378
3657
  var global$2 = global$h;
3379
- var uncurryThis$5 = functionUncurryThis;
3658
+ var uncurryThis$1 = functionUncurryThis;
3380
3659
  var hasOwn$1 = hasOwnProperty_1;
3381
- var isCallable$2 = isCallable$l;
3660
+ var isCallable = isCallable$l;
3382
3661
  var isPrototypeOf$1 = objectIsPrototypeOf;
3383
- var toString$3 = toString$a;
3662
+ var toString$1 = toString$a;
3384
3663
  var defineBuiltInAccessor = defineBuiltInAccessor$3;
3385
3664
  var copyConstructorProperties$1 = copyConstructorProperties$3;
3386
3665
 
3387
3666
  var NativeSymbol = global$2.Symbol;
3388
3667
  var SymbolPrototype = NativeSymbol && NativeSymbol.prototype;
3389
3668
 
3390
- if (DESCRIPTORS$1 && isCallable$2(NativeSymbol) && (!('description' in SymbolPrototype) ||
3669
+ if (DESCRIPTORS$1 && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||
3391
3670
  // Safari 12 bug
3392
3671
  NativeSymbol().description !== undefined
3393
3672
  )) {
3394
3673
  var EmptyStringDescriptionStore = {};
3395
3674
  // wrap Symbol constructor for correct work with undefined description
3396
3675
  var SymbolWrapper = function Symbol() {
3397
- 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]);
3398
3677
  var result = isPrototypeOf$1(SymbolPrototype, this)
3399
3678
  ? new NativeSymbol(description)
3400
3679
  // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
@@ -3407,12 +3686,12 @@ if (DESCRIPTORS$1 && isCallable$2(NativeSymbol) && (!('description' in SymbolPro
3407
3686
  SymbolWrapper.prototype = SymbolPrototype;
3408
3687
  SymbolPrototype.constructor = SymbolWrapper;
3409
3688
 
3410
- var NATIVE_SYMBOL$1 = String(NativeSymbol('description detection')) === 'Symbol(description detection)';
3411
- var thisSymbolValue = uncurryThis$5(SymbolPrototype.valueOf);
3412
- 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);
3413
3692
  var regexp = /^Symbol\((.*)\)[^)]+$/;
3414
- var replace$2 = uncurryThis$5(''.replace);
3415
- var stringSlice = uncurryThis$5(''.slice);
3693
+ var replace$1 = uncurryThis$1(''.replace);
3694
+ var stringSlice = uncurryThis$1(''.slice);
3416
3695
 
3417
3696
  defineBuiltInAccessor(SymbolPrototype, 'description', {
3418
3697
  configurable: true,
@@ -3420,12 +3699,12 @@ if (DESCRIPTORS$1 && isCallable$2(NativeSymbol) && (!('description' in SymbolPro
3420
3699
  var symbol = thisSymbolValue(this);
3421
3700
  if (hasOwn$1(EmptyStringDescriptionStore, symbol)) return '';
3422
3701
  var string = symbolDescriptiveString(symbol);
3423
- 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');
3424
3703
  return desc === '' ? undefined : desc;
3425
3704
  }
3426
3705
  });
3427
3706
 
3428
- $$4({ global: true, constructor: true, forced: true }, {
3707
+ $$1({ global: true, constructor: true, forced: true }, {
3429
3708
  Symbol: SymbolWrapper
3430
3709
  });
3431
3710
  }
@@ -3682,113 +3961,6 @@ const GoADateControl = props => jsx(GoAInputBaseControl, Object.assign({}, props
3682
3961
  const GoADateControlTester = rankWith(4, isDateControl);
3683
3962
  const GoAInputDateControl = withJsonFormsControlProps(GoADateControl);
3684
3963
 
3685
- var uncurryThis$4 = functionUncurryThis;
3686
-
3687
- var arraySlice$1 = uncurryThis$4([].slice);
3688
-
3689
- var uncurryThis$3 = functionUncurryThis;
3690
- var isArray = isArray$2;
3691
- var isCallable$1 = isCallable$l;
3692
- var classof = classofRaw$1;
3693
- var toString$2 = toString$a;
3694
-
3695
- var push = uncurryThis$3([].push);
3696
-
3697
- var getJsonReplacerFunction = function (replacer) {
3698
- if (isCallable$1(replacer)) return replacer;
3699
- if (!isArray(replacer)) return;
3700
- var rawLength = replacer.length;
3701
- var keys = [];
3702
- for (var i = 0; i < rawLength; i++) {
3703
- var element = replacer[i];
3704
- if (typeof element == 'string') push(keys, element);
3705
- else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString$2(element));
3706
- }
3707
- var keysLength = keys.length;
3708
- var root = true;
3709
- return function (key, value) {
3710
- if (root) {
3711
- root = false;
3712
- return value;
3713
- }
3714
- if (isArray(this)) return value;
3715
- for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;
3716
- };
3717
- };
3718
-
3719
- var $$3 = _export;
3720
- var getBuiltIn$1 = getBuiltIn$6;
3721
- var apply$1 = functionApply;
3722
- var call = functionCall;
3723
- var uncurryThis$2 = functionUncurryThis;
3724
- var fails$2 = fails$n;
3725
- var isCallable = isCallable$l;
3726
- var isSymbol = isSymbol$3;
3727
- var arraySlice = arraySlice$1;
3728
- var getReplacerFunction = getJsonReplacerFunction;
3729
- var NATIVE_SYMBOL = symbolConstructorDetection;
3730
-
3731
- var $String = String;
3732
- var $stringify = getBuiltIn$1('JSON', 'stringify');
3733
- var exec = uncurryThis$2(/./.exec);
3734
- var charAt = uncurryThis$2(''.charAt);
3735
- var charCodeAt = uncurryThis$2(''.charCodeAt);
3736
- var replace$1 = uncurryThis$2(''.replace);
3737
- var numberToString = uncurryThis$2(1.0.toString);
3738
-
3739
- var tester = /[\uD800-\uDFFF]/g;
3740
- var low = /^[\uD800-\uDBFF]$/;
3741
- var hi = /^[\uDC00-\uDFFF]$/;
3742
-
3743
- var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails$2(function () {
3744
- var symbol = getBuiltIn$1('Symbol')('stringify detection');
3745
- // MS Edge converts symbol values to JSON as {}
3746
- return $stringify([symbol]) !== '[null]'
3747
- // WebKit converts symbol values to JSON as null
3748
- || $stringify({ a: symbol }) !== '{}'
3749
- // V8 throws on boxed symbols
3750
- || $stringify(Object(symbol)) !== '{}';
3751
- });
3752
-
3753
- // https://github.com/tc39/proposal-well-formed-stringify
3754
- var ILL_FORMED_UNICODE = fails$2(function () {
3755
- return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"'
3756
- || $stringify('\uDEAD') !== '"\\udead"';
3757
- });
3758
-
3759
- var stringifyWithSymbolsFix = function (it, replacer) {
3760
- var args = arraySlice(arguments);
3761
- var $replacer = getReplacerFunction(replacer);
3762
- if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined
3763
- args[1] = function (key, value) {
3764
- // some old implementations (like WebKit) could pass numbers as keys
3765
- if (isCallable($replacer)) value = call($replacer, this, $String(key), value);
3766
- if (!isSymbol(value)) return value;
3767
- };
3768
- return apply$1($stringify, null, args);
3769
- };
3770
-
3771
- var fixIllFormed = function (match, offset, string) {
3772
- var prev = charAt(string, offset - 1);
3773
- var next = charAt(string, offset + 1);
3774
- if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {
3775
- return '\\u' + numberToString(charCodeAt(match, 0), 16);
3776
- } return match;
3777
- };
3778
-
3779
- if ($stringify) {
3780
- // `JSON.stringify` method
3781
- // https://tc39.es/ecma262/#sec-json.stringify
3782
- $$3({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {
3783
- // eslint-disable-next-line no-unused-vars -- required for `.length`
3784
- stringify: function stringify(it, replacer, space) {
3785
- var args = arraySlice(arguments);
3786
- var result = apply$1(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);
3787
- return ILL_FORMED_UNICODE && typeof result == 'string' ? replace$1(result, tester, fixIllFormed) : result;
3788
- }
3789
- });
3790
- }
3791
-
3792
3964
  const GoANumberInput = props => {
3793
3965
  var _a, _b, _c, _d, _e, _f, _g;
3794
3966
  // eslint-disable-next-line
@@ -4063,8 +4235,10 @@ const EnumSelect = props => {
4063
4235
  const registerConfig = fetchRegisterConfigFromOptions((_b = (_a = props.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.register);
4064
4236
  // eslint-disable-next-line react-hooks/exhaustive-deps
4065
4237
  let registerData = [];
4238
+ let error = '';
4066
4239
  if (registerConfig) {
4067
4240
  registerData = registerCtx === null || registerCtx === void 0 ? void 0 : registerCtx.selectRegisterData(registerConfig);
4241
+ error = (registerCtx === null || registerCtx === void 0 ? void 0 : registerCtx.fetchErrors(registerConfig)) || '';
4068
4242
  }
4069
4243
  const autocompletion = ((_d = (_c = props.uischema) === null || _c === void 0 ? void 0 : _c.options) === null || _d === void 0 ? void 0 : _d.autocomplete) === true;
4070
4244
  const appliedUiSchemaOptions = merge({}, config, props.uischema.options);
@@ -4096,25 +4270,29 @@ const EnumSelect = props => {
4096
4270
  registerCtx === null || registerCtx === void 0 ? void 0 : registerCtx.fetchRegisterByUrl(registerConfig);
4097
4271
  }
4098
4272
  }, [registerCtx, registerConfig]);
4099
- return jsx(GoADropdown, Object.assign({
4100
- name: `${label}`,
4101
- value: data,
4102
- disabled: !enabled,
4103
- relative: true,
4104
- filterable: autocompletion,
4105
- testId: `${id || label}-jsonform`
4106
- }, appliedUiSchemaOptions, {
4107
- onChange: (name, value) => {
4108
- handleChange(path, value);
4109
- }
4110
- }, (_e = uischema === null || uischema === void 0 ? void 0 : uischema.options) === null || _e === void 0 ? void 0 : _e.componentProps, {
4111
- children: mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.map(item => {
4112
- return jsx(GoADropdownItem, {
4113
- value: `${item.value}`,
4114
- label: `${item.label}`
4115
- }, `json-form-dropdown-${item.value}`);
4116
- })
4117
- }), `${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
+ });
4118
4296
  };
4119
4297
  const enumControl = props => {
4120
4298
  return jsx(GoAInputBaseControl, Object.assign({}, props, {
@@ -4272,75 +4450,6 @@ const BooleanRadioControl = props => jsx(GoAInputBaseControl, Object.assign({},
4272
4450
  const GoABooleanRadioControlTester = rankWith(3, and(isBooleanControl, optionIs('radio', true)));
4273
4451
  const GoABooleanRadioControl = withJsonFormsControlProps(BooleanRadioControl);
4274
4452
 
4275
- var $$2 = _export;
4276
- var $includes = arrayIncludes.includes;
4277
- var fails$1 = fails$n;
4278
- var addToUnscopables = addToUnscopables$3;
4279
-
4280
- // FF99+ bug
4281
- var BROKEN_ON_SPARSE = fails$1(function () {
4282
- // eslint-disable-next-line es/no-array-prototype-includes -- detection
4283
- return !Array(1).includes();
4284
- });
4285
-
4286
- // `Array.prototype.includes` method
4287
- // https://tc39.es/ecma262/#sec-array.prototype.includes
4288
- $$2({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {
4289
- includes: function includes(el /* , fromIndex = 0 */) {
4290
- return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
4291
- }
4292
- });
4293
-
4294
- // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
4295
- addToUnscopables('includes');
4296
-
4297
- var isRegExp = isRegexp;
4298
-
4299
- var $TypeError = TypeError;
4300
-
4301
- var notARegexp = function (it) {
4302
- if (isRegExp(it)) {
4303
- throw new $TypeError("The method doesn't accept regular expressions");
4304
- } return it;
4305
- };
4306
-
4307
- var wellKnownSymbol = wellKnownSymbol$e;
4308
-
4309
- var MATCH = wellKnownSymbol('match');
4310
-
4311
- var correctIsRegexpLogic = function (METHOD_NAME) {
4312
- var regexp = /./;
4313
- try {
4314
- '/./'[METHOD_NAME](regexp);
4315
- } catch (error1) {
4316
- try {
4317
- regexp[MATCH] = false;
4318
- return '/./'[METHOD_NAME](regexp);
4319
- } catch (error2) { /* empty */ }
4320
- } return false;
4321
- };
4322
-
4323
- var $$1 = _export;
4324
- var uncurryThis$1 = functionUncurryThis;
4325
- var notARegExp = notARegexp;
4326
- var requireObjectCoercible = requireObjectCoercible$7;
4327
- var toString$1 = toString$a;
4328
- var correctIsRegExpLogic = correctIsRegexpLogic;
4329
-
4330
- var stringIndexOf = uncurryThis$1(''.indexOf);
4331
-
4332
- // `String.prototype.includes` method
4333
- // https://tc39.es/ecma262/#sec-string.prototype.includes
4334
- $$1({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
4335
- includes: function includes(searchString /* , position = 0 */) {
4336
- return !!~stringIndexOf(
4337
- toString$1(requireObjectCoercible(this)),
4338
- toString$1(notARegExp(searchString)),
4339
- arguments.length > 1 ? arguments[1] : undefined
4340
- );
4341
- }
4342
- });
4343
-
4344
4453
  let _$5 = t => t,
4345
4454
  _t$5;
4346
4455
  const Checkboxes = ({
@@ -6686,7 +6795,7 @@ const HelpContents = ({
6686
6795
  elements,
6687
6796
  isParent: _isParent = false
6688
6797
  }) => jsx("div", {
6689
- children: elements === null || elements === void 0 ? void 0 : elements.map(element => {
6798
+ children: elements === null || elements === void 0 ? void 0 : elements.map((element, index) => {
6690
6799
  return jsx(HelpContentComponent, {
6691
6800
  uischema: element,
6692
6801
  label: element.label,
@@ -6700,7 +6809,7 @@ const HelpContents = ({
6700
6809
  id: '',
6701
6810
  schema: {},
6702
6811
  isParent: _isParent
6703
- });
6812
+ }, `${element.label}-help-content-${index}`);
6704
6813
  })
6705
6814
  });
6706
6815
  const HelpContentTester = rankWith(1, uiTypeIs('HelpContent'));
@@ -7022,4 +7131,4 @@ const GoARenderers = [...GoABaseRenderers, {
7022
7131
  }];
7023
7132
  const GoACells = [...InputCells];
7024
7133
 
7025
- 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.2",
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,4 +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
4
  export declare const isMailToHref: (url: string) => boolean;