@abgov/jsonforms-components 1.32.2 → 1.33.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
@@ -1935,16 +1935,55 @@ $$e({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
1935
1935
  }
1936
1936
  });
1937
1937
 
1938
+ var call$b = functionCall;
1939
+ var hasOwn$4 = hasOwnProperty_1;
1940
+ var isPrototypeOf$5 = objectIsPrototypeOf;
1941
+ var regExpFlags = regexpFlags$1;
1942
+
1943
+ var RegExpPrototype$4 = RegExp.prototype;
1944
+
1945
+ var regexpGetFlags = function (R) {
1946
+ var flags = R.flags;
1947
+ return flags === undefined && !('flags' in RegExpPrototype$4) && !hasOwn$4(R, 'flags') && isPrototypeOf$5(RegExpPrototype$4, R)
1948
+ ? call$b(regExpFlags, R) : flags;
1949
+ };
1950
+
1951
+ var PROPER_FUNCTION_NAME = functionName.PROPER;
1952
+ var defineBuiltIn$4 = defineBuiltIn$8;
1953
+ var anObject$7 = anObject$e;
1954
+ var $toString = toString$a;
1955
+ var fails$b = fails$q;
1956
+ var getRegExpFlags$1 = regexpGetFlags;
1957
+
1958
+ var TO_STRING = 'toString';
1959
+ var RegExpPrototype$3 = RegExp.prototype;
1960
+ var nativeToString = RegExpPrototype$3[TO_STRING];
1961
+
1962
+ var NOT_GENERIC = fails$b(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });
1963
+ // FF44- RegExp#toString has a wrong name
1964
+ var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;
1965
+
1966
+ // `RegExp.prototype.toString` method
1967
+ // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
1968
+ if (NOT_GENERIC || INCORRECT_NAME) {
1969
+ defineBuiltIn$4(RegExpPrototype$3, TO_STRING, function toString() {
1970
+ var R = anObject$7(this);
1971
+ var pattern = $toString(R.source);
1972
+ var flags = $toString(getRegExpFlags$1(R));
1973
+ return '/' + pattern + '/' + flags;
1974
+ }, { unsafe: true });
1975
+ }
1976
+
1938
1977
  var $$d = _export;
1939
1978
  var uncurryThis$d = functionUncurryThis;
1940
1979
  var requireObjectCoercible$3 = requireObjectCoercible$7;
1941
1980
  var toIntegerOrInfinity$2 = toIntegerOrInfinity$6;
1942
1981
  var toString$7 = toString$a;
1943
- var fails$b = fails$q;
1982
+ var fails$a = fails$q;
1944
1983
 
1945
1984
  var charAt$5 = uncurryThis$d(''.charAt);
1946
1985
 
1947
- var FORCED$3 = fails$b(function () {
1986
+ var FORCED$3 = fails$a(function () {
1948
1987
  // eslint-disable-next-line es/no-array-string-prototype-at -- safe
1949
1988
  return '𠮷'.at(-2) !== '\uD842';
1950
1989
  });
@@ -1965,36 +2004,36 @@ var NATIVE_BIND$1 = functionBindNative;
1965
2004
 
1966
2005
  var FunctionPrototype = Function.prototype;
1967
2006
  var apply$4 = FunctionPrototype.apply;
1968
- var call$b = FunctionPrototype.call;
2007
+ var call$a = FunctionPrototype.call;
1969
2008
 
1970
2009
  // eslint-disable-next-line es/no-reflect -- safe
1971
- var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$b.bind(apply$4) : function () {
1972
- return call$b.apply(apply$4, arguments);
2010
+ var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$a.bind(apply$4) : function () {
2011
+ return call$a.apply(apply$4, arguments);
1973
2012
  });
1974
2013
 
1975
2014
  // TODO: Remove from `core-js@4` since it's moved to entry points
1976
2015
 
1977
- var call$a = functionCall;
1978
- var defineBuiltIn$4 = defineBuiltIn$8;
2016
+ var call$9 = functionCall;
2017
+ var defineBuiltIn$3 = defineBuiltIn$8;
1979
2018
  var regexpExec$1 = regexpExec$2;
1980
- var fails$a = fails$q;
2019
+ var fails$9 = fails$q;
1981
2020
  var wellKnownSymbol$a = wellKnownSymbol$j;
1982
2021
  var createNonEnumerableProperty$4 = createNonEnumerableProperty$9;
1983
2022
 
1984
2023
  var SPECIES$3 = wellKnownSymbol$a('species');
1985
- var RegExpPrototype$4 = RegExp.prototype;
2024
+ var RegExpPrototype$2 = RegExp.prototype;
1986
2025
 
1987
2026
  var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {
1988
2027
  var SYMBOL = wellKnownSymbol$a(KEY);
1989
2028
 
1990
- var DELEGATES_TO_SYMBOL = !fails$a(function () {
2029
+ var DELEGATES_TO_SYMBOL = !fails$9(function () {
1991
2030
  // String methods call symbol-named RegExp methods
1992
2031
  var O = {};
1993
2032
  O[SYMBOL] = function () { return 7; };
1994
2033
  return ''[KEY](O) !== 7;
1995
2034
  });
1996
2035
 
1997
- var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$a(function () {
2036
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$9(function () {
1998
2037
  // Symbol-named RegExp methods call .exec
1999
2038
  var execCalled = false;
2000
2039
  var re = /a/;
@@ -2029,23 +2068,23 @@ var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {
2029
2068
  var nativeRegExpMethod = /./[SYMBOL];
2030
2069
  var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
2031
2070
  var $exec = regexp.exec;
2032
- if ($exec === regexpExec$1 || $exec === RegExpPrototype$4.exec) {
2071
+ if ($exec === regexpExec$1 || $exec === RegExpPrototype$2.exec) {
2033
2072
  if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
2034
2073
  // The native String method already delegates to @@method (this
2035
2074
  // polyfilled function), leasing to infinite recursion.
2036
2075
  // We avoid it by directly calling the native @@method method.
2037
- return { done: true, value: call$a(nativeRegExpMethod, regexp, str, arg2) };
2076
+ return { done: true, value: call$9(nativeRegExpMethod, regexp, str, arg2) };
2038
2077
  }
2039
- return { done: true, value: call$a(nativeMethod, str, regexp, arg2) };
2078
+ return { done: true, value: call$9(nativeMethod, str, regexp, arg2) };
2040
2079
  }
2041
2080
  return { done: false };
2042
2081
  });
2043
2082
 
2044
- defineBuiltIn$4(String.prototype, KEY, methods[0]);
2045
- defineBuiltIn$4(RegExpPrototype$4, SYMBOL, methods[1]);
2083
+ defineBuiltIn$3(String.prototype, KEY, methods[0]);
2084
+ defineBuiltIn$3(RegExpPrototype$2, SYMBOL, methods[1]);
2046
2085
  }
2047
2086
 
2048
- if (SHAM) createNonEnumerableProperty$4(RegExpPrototype$4[SYMBOL], 'sham', true);
2087
+ if (SHAM) createNonEnumerableProperty$4(RegExpPrototype$2[SYMBOL], 'sham', true);
2049
2088
  };
2050
2089
 
2051
2090
  var uncurryThis$c = functionUncurryThis;
@@ -2139,8 +2178,8 @@ var getSubstitution$1 = function (matched, str, position, captures, namedCapture
2139
2178
  });
2140
2179
  };
2141
2180
 
2142
- var call$9 = functionCall;
2143
- var anObject$7 = anObject$e;
2181
+ var call$8 = functionCall;
2182
+ var anObject$6 = anObject$e;
2144
2183
  var isCallable$a = isCallable$q;
2145
2184
  var classof$7 = classofRaw$2;
2146
2185
  var regexpExec = regexpExec$2;
@@ -2152,20 +2191,20 @@ var $TypeError$b = TypeError;
2152
2191
  var regexpExecAbstract = function (R, S) {
2153
2192
  var exec = R.exec;
2154
2193
  if (isCallable$a(exec)) {
2155
- var result = call$9(exec, R, S);
2156
- if (result !== null) anObject$7(result);
2194
+ var result = call$8(exec, R, S);
2195
+ if (result !== null) anObject$6(result);
2157
2196
  return result;
2158
2197
  }
2159
- if (classof$7(R) === 'RegExp') return call$9(regexpExec, R, S);
2198
+ if (classof$7(R) === 'RegExp') return call$8(regexpExec, R, S);
2160
2199
  throw new $TypeError$b('RegExp#exec called on incompatible receiver');
2161
2200
  };
2162
2201
 
2163
2202
  var apply$3 = functionApply;
2164
- var call$8 = functionCall;
2203
+ var call$7 = functionCall;
2165
2204
  var uncurryThis$a = functionUncurryThis;
2166
2205
  var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic;
2167
- var fails$9 = fails$q;
2168
- var anObject$6 = anObject$e;
2206
+ var fails$8 = fails$q;
2207
+ var anObject$5 = anObject$e;
2169
2208
  var isCallable$9 = isCallable$q;
2170
2209
  var isNullOrUndefined$2 = isNullOrUndefined$5;
2171
2210
  var toIntegerOrInfinity = toIntegerOrInfinity$6;
@@ -2205,7 +2244,7 @@ var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
2205
2244
  return false;
2206
2245
  })();
2207
2246
 
2208
- var REPLACE_SUPPORTS_NAMED_GROUPS = !fails$9(function () {
2247
+ var REPLACE_SUPPORTS_NAMED_GROUPS = !fails$8(function () {
2209
2248
  var re = /./;
2210
2249
  re.exec = function () {
2211
2250
  var result = [];
@@ -2227,13 +2266,13 @@ fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNa
2227
2266
  var O = requireObjectCoercible$1(this);
2228
2267
  var replacer = isNullOrUndefined$2(searchValue) ? undefined : getMethod$2(searchValue, REPLACE);
2229
2268
  return replacer
2230
- ? call$8(replacer, searchValue, O, replaceValue)
2231
- : call$8(nativeReplace, toString$5(O), searchValue, replaceValue);
2269
+ ? call$7(replacer, searchValue, O, replaceValue)
2270
+ : call$7(nativeReplace, toString$5(O), searchValue, replaceValue);
2232
2271
  },
2233
2272
  // `RegExp.prototype[@@replace]` method
2234
2273
  // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
2235
2274
  function (string, replaceValue) {
2236
- var rx = anObject$6(this);
2275
+ var rx = anObject$5(this);
2237
2276
  var S = toString$5(string);
2238
2277
 
2239
2278
  if (
@@ -2348,6 +2387,24 @@ const isEmptyBoolean = (schema, data) => {
2348
2387
  const isEmptyNumber = (schema, data) => {
2349
2388
  return data === '' || data === undefined || data === null || (schema.type === 'number' || schema.type === 'integer') && isNaN(+data);
2350
2389
  };
2390
+ const validateSinWithLuhn = input => {
2391
+ const cardNumber = input.toString();
2392
+ const digits = cardNumber.replace(/\D/g, '').split('').map(Number);
2393
+ let sum = 0;
2394
+ let isSecond = false;
2395
+ for (let i = digits.length - 1; i >= 0; i--) {
2396
+ let digit = digits[i];
2397
+ if (isSecond) {
2398
+ digit *= 2;
2399
+ if (digit > 9) {
2400
+ digit -= 9;
2401
+ }
2402
+ }
2403
+ sum += digit;
2404
+ isSecond = !isSecond;
2405
+ }
2406
+ return sum % 10 === 0;
2407
+ };
2351
2408
  /**
2352
2409
  * Check if a required, defined input value is valid. Returns an appropriate
2353
2410
  * error message if not.
@@ -2364,6 +2421,12 @@ const checkFieldValidity = props => {
2364
2421
  schema
2365
2422
  } = props;
2366
2423
  const labelToUpdate = getLabelText(uischema.scope, label);
2424
+ const extraSchema = schema;
2425
+ if (extraSchema && data && (extraSchema === null || extraSchema === void 0 ? void 0 : extraSchema.title) === 'Social insurance number') {
2426
+ if (!validateSinWithLuhn(data)) {
2427
+ return extraSchema.errorMessage;
2428
+ }
2429
+ }
2367
2430
  if (required) {
2368
2431
  if (data === undefined) return '';
2369
2432
  if (schema) {
@@ -2785,9 +2848,9 @@ var toObject$1 = toObject$7;
2785
2848
  var lengthOfArrayLike$2 = lengthOfArrayLike$5;
2786
2849
  var setArrayLength = arraySetLength;
2787
2850
  var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1;
2788
- var fails$8 = fails$q;
2851
+ var fails$7 = fails$q;
2789
2852
 
2790
- var INCORRECT_TO_LENGTH = fails$8(function () {
2853
+ var INCORRECT_TO_LENGTH = fails$7(function () {
2791
2854
  return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;
2792
2855
  });
2793
2856
 
@@ -2859,11 +2922,11 @@ function registerReducer(state, action) {
2859
2922
 
2860
2923
  var $$b = _export;
2861
2924
  var $includes = arrayIncludes.includes;
2862
- var fails$7 = fails$q;
2925
+ var fails$6 = fails$q;
2863
2926
  var addToUnscopables = addToUnscopables$3;
2864
2927
 
2865
2928
  // FF99+ bug
2866
- var BROKEN_ON_SPARSE = fails$7(function () {
2929
+ var BROKEN_ON_SPARSE = fails$6(function () {
2867
2930
  // eslint-disable-next-line es/no-array-prototype-includes -- detection
2868
2931
  return !Array(1).includes();
2869
2932
  });
@@ -2916,9 +2979,9 @@ var getJsonReplacerFunction = function (replacer) {
2916
2979
  var $$a = _export;
2917
2980
  var getBuiltIn$5 = getBuiltIn$9;
2918
2981
  var apply$2 = functionApply;
2919
- var call$7 = functionCall;
2982
+ var call$6 = functionCall;
2920
2983
  var uncurryThis$7 = functionUncurryThis;
2921
- var fails$6 = fails$q;
2984
+ var fails$5 = fails$q;
2922
2985
  var isCallable$7 = isCallable$q;
2923
2986
  var isSymbol = isSymbol$3;
2924
2987
  var arraySlice$1 = arraySlice$2;
@@ -2937,7 +3000,7 @@ var tester = /[\uD800-\uDFFF]/g;
2937
3000
  var low = /^[\uD800-\uDBFF]$/;
2938
3001
  var hi = /^[\uDC00-\uDFFF]$/;
2939
3002
 
2940
- var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL$1 || fails$6(function () {
3003
+ var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL$1 || fails$5(function () {
2941
3004
  var symbol = getBuiltIn$5('Symbol')('stringify detection');
2942
3005
  // MS Edge converts symbol values to JSON as {}
2943
3006
  return $stringify([symbol]) !== '[null]'
@@ -2948,7 +3011,7 @@ var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL$1 || fails$6(function () {
2948
3011
  });
2949
3012
 
2950
3013
  // https://github.com/tc39/proposal-well-formed-stringify
2951
- var ILL_FORMED_UNICODE = fails$6(function () {
3014
+ var ILL_FORMED_UNICODE = fails$5(function () {
2952
3015
  return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"'
2953
3016
  || $stringify('\uDEAD') !== '"\\udead"';
2954
3017
  });
@@ -2959,7 +3022,7 @@ var stringifyWithSymbolsFix = function (it, replacer) {
2959
3022
  if (!isCallable$7($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined
2960
3023
  args[1] = function (key, value) {
2961
3024
  // some old implementations (like WebKit) could pass numbers as keys
2962
- if (isCallable$7($replacer)) value = call$7($replacer, this, $String(key), value);
3025
+ if (isCallable$7($replacer)) value = call$6($replacer, this, $String(key), value);
2963
3026
  if (!isSymbol(value)) return value;
2964
3027
  };
2965
3028
  return apply$2($stringify, null, args);
@@ -2986,45 +3049,6 @@ if ($stringify) {
2986
3049
  });
2987
3050
  }
2988
3051
 
2989
- var call$6 = functionCall;
2990
- var hasOwn$4 = hasOwnProperty_1;
2991
- var isPrototypeOf$5 = objectIsPrototypeOf;
2992
- var regExpFlags = regexpFlags$1;
2993
-
2994
- var RegExpPrototype$3 = RegExp.prototype;
2995
-
2996
- var regexpGetFlags = function (R) {
2997
- var flags = R.flags;
2998
- return flags === undefined && !('flags' in RegExpPrototype$3) && !hasOwn$4(R, 'flags') && isPrototypeOf$5(RegExpPrototype$3, R)
2999
- ? call$6(regExpFlags, R) : flags;
3000
- };
3001
-
3002
- var PROPER_FUNCTION_NAME = functionName.PROPER;
3003
- var defineBuiltIn$3 = defineBuiltIn$8;
3004
- var anObject$5 = anObject$e;
3005
- var $toString = toString$a;
3006
- var fails$5 = fails$q;
3007
- var getRegExpFlags$1 = regexpGetFlags;
3008
-
3009
- var TO_STRING = 'toString';
3010
- var RegExpPrototype$2 = RegExp.prototype;
3011
- var nativeToString = RegExpPrototype$2[TO_STRING];
3012
-
3013
- var NOT_GENERIC = fails$5(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });
3014
- // FF44- RegExp#toString has a wrong name
3015
- var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;
3016
-
3017
- // `RegExp.prototype.toString` method
3018
- // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
3019
- if (NOT_GENERIC || INCORRECT_NAME) {
3020
- defineBuiltIn$3(RegExpPrototype$2, TO_STRING, function toString() {
3021
- var R = anObject$5(this);
3022
- var pattern = $toString(R.source);
3023
- var flags = $toString(getRegExpFlags$1(R));
3024
- return '/' + pattern + '/' + flags;
3025
- }, { unsafe: true });
3026
- }
3027
-
3028
3052
  var isObject$4 = isObject$d;
3029
3053
  var classof$4 = classofRaw$2;
3030
3054
  var wellKnownSymbol$8 = wellKnownSymbol$j;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abgov/jsonforms-components",
3
- "version": "1.32.2",
3
+ "version": "1.33.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",
@@ -19,6 +19,7 @@ export declare const controlScopeMatchesLabel: (scope: string, label: string) =>
19
19
  * @returns
20
20
  */
21
21
  export declare const getLabelText: (scope: string, label: string) => string;
22
+ export declare const validateSinWithLuhn: (input: number) => boolean;
22
23
  /**
23
24
  * Check if a required, defined input value is valid. Returns an appropriate
24
25
  * error message if not.