@abgov/jsonforms-components 2.44.1 → 2.45.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
@@ -1,6 +1,6 @@
1
1
  import * as runtime from 'react/jsx-runtime';
2
2
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
3
- import React, { createContext, useContext, useReducer, useMemo, useEffect, useCallback, useState, useRef, useLayoutEffect } from 'react';
3
+ import React, { createContext, useContext, useReducer, useMemo, useEffect, useCallback, useRef, useState, useLayoutEffect } from 'react';
4
4
  import { GoabFormItem, GoabInput, GoabTextArea, GoabCallout, GoabRadioGroup, GoabRadioItem, GoabCheckbox, GoabIcon, GoabButton, GoabGrid, GoabModal, GoabButtonGroup, GoabTable, GoabContainer, GoabDropdown, GoabDropdownItem, GoabIconButton, GoabDetails, GoabFormStepper, GoabFormStep, GoabPages, GoabBadge, GoabText, GoabFileUploadInput, GoabCircularProgress, GoabSpinner } from '@abgov/react-components';
5
5
  import styled from 'styled-components';
6
6
  import axios from 'axios';
@@ -1638,44 +1638,14 @@ $$G({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }
1638
1638
  assign: assign
1639
1639
  });
1640
1640
 
1641
- var NATIVE_BIND$1 = functionBindNative;
1642
-
1643
- var FunctionPrototype = Function.prototype;
1644
- var apply$4 = FunctionPrototype.apply;
1645
- var call$n = FunctionPrototype.call;
1646
-
1647
- // eslint-disable-next-line es/no-reflect -- safe
1648
- var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$n.bind(apply$4) : function () {
1649
- return call$n.apply(apply$4, arguments);
1650
- });
1651
-
1652
- var defineProperty$1 = objectDefineProperty.f;
1653
-
1654
- var proxyAccessor$2 = function (Target, Source, key) {
1655
- key in Target || defineProperty$1(Target, key, {
1656
- configurable: true,
1657
- get: function () { return Source[key]; },
1658
- set: function (it) { Source[key] = it; }
1659
- });
1660
- };
1661
-
1662
- var isCallable$e = isCallable$s;
1663
- var isObject$6 = isObject$f;
1664
- var setPrototypeOf$2 = objectSetPrototypeOf;
1641
+ var classofRaw$1 = classofRaw$2;
1642
+ var uncurryThis$o = functionUncurryThis;
1665
1643
 
1666
- // makes subclassing work correct for wrapped built-ins
1667
- var inheritIfRequired$2 = function ($this, dummy, Wrapper) {
1668
- var NewTarget, NewTargetPrototype;
1669
- if (
1670
- // it can work only with native `setPrototypeOf`
1671
- setPrototypeOf$2 &&
1672
- // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
1673
- isCallable$e(NewTarget = dummy.constructor) &&
1674
- NewTarget !== Wrapper &&
1675
- isObject$6(NewTargetPrototype = NewTarget.prototype) &&
1676
- NewTargetPrototype !== Wrapper.prototype
1677
- ) setPrototypeOf$2($this, NewTargetPrototype);
1678
- return $this;
1644
+ var functionUncurryThisClause = function (fn) {
1645
+ // Nashorn bug:
1646
+ // https://github.com/zloirock/core-js/issues/1128
1647
+ // https://github.com/zloirock/core-js/issues/1130
1648
+ if (classofRaw$1(fn) === 'Function') return uncurryThis$o(fn);
1679
1649
  };
1680
1650
 
1681
1651
  var wellKnownSymbol$f = wellKnownSymbol$m;
@@ -1688,15 +1658,15 @@ test[TO_STRING_TAG$3] = 'z';
1688
1658
  var toStringTagSupport = String(test) === '[object z]';
1689
1659
 
1690
1660
  var TO_STRING_TAG_SUPPORT = toStringTagSupport;
1691
- var isCallable$d = isCallable$s;
1692
- var classofRaw$1 = classofRaw$2;
1661
+ var isCallable$e = isCallable$s;
1662
+ var classofRaw = classofRaw$2;
1693
1663
  var wellKnownSymbol$e = wellKnownSymbol$m;
1694
1664
 
1695
1665
  var TO_STRING_TAG$2 = wellKnownSymbol$e('toStringTag');
1696
1666
  var $Object = Object;
1697
1667
 
1698
1668
  // ES3 wrong here
1699
- var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) === 'Arguments';
1669
+ var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';
1700
1670
 
1701
1671
  // fallback for IE11 Script Access Denied error
1702
1672
  var tryGet = function (it, key) {
@@ -1706,15 +1676,15 @@ var tryGet = function (it, key) {
1706
1676
  };
1707
1677
 
1708
1678
  // getting tag from ES6+ `Object.prototype.toString`
1709
- var classof$9 = TO_STRING_TAG_SUPPORT ? classofRaw$1 : function (it) {
1679
+ var classof$9 = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
1710
1680
  var O, tag, result;
1711
1681
  return it === undefined ? 'Undefined' : it === null ? 'Null'
1712
1682
  // @@toStringTag case
1713
1683
  : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG$2)) == 'string' ? tag
1714
1684
  // builtinTag case
1715
- : CORRECT_ARGUMENTS ? classofRaw$1(O)
1685
+ : CORRECT_ARGUMENTS ? classofRaw(O)
1716
1686
  // ES3 arguments fallback
1717
- : (result = classofRaw$1(O)) === 'Object' && isCallable$d(O.callee) ? 'Arguments' : result;
1687
+ : (result = classofRaw(O)) === 'Object' && isCallable$e(O.callee) ? 'Arguments' : result;
1718
1688
  };
1719
1689
 
1720
1690
  var classof$8 = classof$9;
@@ -1726,27 +1696,137 @@ var toString$j = function (argument) {
1726
1696
  return $String$1(argument);
1727
1697
  };
1728
1698
 
1699
+ var isObject$6 = isObject$f;
1700
+ var classof$7 = classofRaw$2;
1701
+ var wellKnownSymbol$d = wellKnownSymbol$m;
1702
+
1703
+ var MATCH$2 = wellKnownSymbol$d('match');
1704
+
1705
+ // `IsRegExp` abstract operation
1706
+ // https://tc39.es/ecma262/#sec-isregexp
1707
+ var isRegexp = function (it) {
1708
+ var isRegExp;
1709
+ return isObject$6(it) && ((isRegExp = it[MATCH$2]) !== undefined ? !!isRegExp : classof$7(it) === 'RegExp');
1710
+ };
1711
+
1712
+ var isRegExp$1 = isRegexp;
1713
+
1714
+ var $TypeError$e = TypeError;
1715
+
1716
+ var notARegexp = function (it) {
1717
+ if (isRegExp$1(it)) {
1718
+ throw new $TypeError$e("The method doesn't accept regular expressions");
1719
+ } return it;
1720
+ };
1721
+
1722
+ var wellKnownSymbol$c = wellKnownSymbol$m;
1723
+
1724
+ var MATCH$1 = wellKnownSymbol$c('match');
1725
+
1726
+ var correctIsRegexpLogic = function (METHOD_NAME) {
1727
+ var regexp = /./;
1728
+ try {
1729
+ '/./'[METHOD_NAME](regexp);
1730
+ } catch (error1) {
1731
+ try {
1732
+ regexp[MATCH$1] = false;
1733
+ return '/./'[METHOD_NAME](regexp);
1734
+ } catch (error2) { /* empty */ }
1735
+ } return false;
1736
+ };
1737
+
1738
+ var $$F = _export;
1739
+ var uncurryThis$n = functionUncurryThisClause;
1740
+ var getOwnPropertyDescriptor$4 = objectGetOwnPropertyDescriptor.f;
1741
+ var toLength$5 = toLength$7;
1729
1742
  var toString$i = toString$j;
1743
+ var notARegExp$2 = notARegexp;
1744
+ var requireObjectCoercible$a = requireObjectCoercible$e;
1745
+ var correctIsRegExpLogic$2 = correctIsRegexpLogic;
1730
1746
 
1731
- var normalizeStringArgument$1 = function (argument, $default) {
1732
- return argument === undefined ? arguments.length < 2 ? '' : $default : toString$i(argument);
1747
+ var stringSlice$8 = uncurryThis$n(''.slice);
1748
+ var min$3 = Math.min;
1749
+
1750
+ var CORRECT_IS_REGEXP_LOGIC$1 = correctIsRegExpLogic$2('startsWith');
1751
+ // https://github.com/zloirock/core-js/pull/702
1752
+ var MDN_POLYFILL_BUG$1 = !CORRECT_IS_REGEXP_LOGIC$1 && !!function () {
1753
+ var descriptor = getOwnPropertyDescriptor$4(String.prototype, 'startsWith');
1754
+ return descriptor && !descriptor.writable;
1755
+ }();
1756
+
1757
+ // `String.prototype.startsWith` method
1758
+ // https://tc39.es/ecma262/#sec-string.prototype.startswith
1759
+ $$F({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1 }, {
1760
+ startsWith: function startsWith(searchString /* , position = 0 */) {
1761
+ var that = toString$i(requireObjectCoercible$a(this));
1762
+ notARegExp$2(searchString);
1763
+ var index = toLength$5(min$3(arguments.length > 1 ? arguments[1] : undefined, that.length));
1764
+ var search = toString$i(searchString);
1765
+ return stringSlice$8(that, index, index + search.length) === search;
1766
+ }
1767
+ });
1768
+
1769
+ var NATIVE_BIND$1 = functionBindNative;
1770
+
1771
+ var FunctionPrototype = Function.prototype;
1772
+ var apply$4 = FunctionPrototype.apply;
1773
+ var call$n = FunctionPrototype.call;
1774
+
1775
+ // eslint-disable-next-line es/no-reflect -- safe
1776
+ var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$n.bind(apply$4) : function () {
1777
+ return call$n.apply(apply$4, arguments);
1778
+ });
1779
+
1780
+ var defineProperty$1 = objectDefineProperty.f;
1781
+
1782
+ var proxyAccessor$2 = function (Target, Source, key) {
1783
+ key in Target || defineProperty$1(Target, key, {
1784
+ configurable: true,
1785
+ get: function () { return Source[key]; },
1786
+ set: function (it) { Source[key] = it; }
1787
+ });
1733
1788
  };
1734
1789
 
1790
+ var isCallable$d = isCallable$s;
1735
1791
  var isObject$5 = isObject$f;
1792
+ var setPrototypeOf$2 = objectSetPrototypeOf;
1793
+
1794
+ // makes subclassing work correct for wrapped built-ins
1795
+ var inheritIfRequired$2 = function ($this, dummy, Wrapper) {
1796
+ var NewTarget, NewTargetPrototype;
1797
+ if (
1798
+ // it can work only with native `setPrototypeOf`
1799
+ setPrototypeOf$2 &&
1800
+ // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
1801
+ isCallable$d(NewTarget = dummy.constructor) &&
1802
+ NewTarget !== Wrapper &&
1803
+ isObject$5(NewTargetPrototype = NewTarget.prototype) &&
1804
+ NewTargetPrototype !== Wrapper.prototype
1805
+ ) setPrototypeOf$2($this, NewTargetPrototype);
1806
+ return $this;
1807
+ };
1808
+
1809
+ var toString$h = toString$j;
1810
+
1811
+ var normalizeStringArgument$1 = function (argument, $default) {
1812
+ return argument === undefined ? arguments.length < 2 ? '' : $default : toString$h(argument);
1813
+ };
1814
+
1815
+ var isObject$4 = isObject$f;
1736
1816
  var createNonEnumerableProperty$5 = createNonEnumerableProperty$a;
1737
1817
 
1738
1818
  // `InstallErrorCause` abstract operation
1739
1819
  // https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause
1740
1820
  var installErrorCause$1 = function (O, options) {
1741
- if (isObject$5(options) && 'cause' in options) {
1821
+ if (isObject$4(options) && 'cause' in options) {
1742
1822
  createNonEnumerableProperty$5(O, 'cause', options.cause);
1743
1823
  }
1744
1824
  };
1745
1825
 
1746
- var uncurryThis$o = functionUncurryThis;
1826
+ var uncurryThis$m = functionUncurryThis;
1747
1827
 
1748
1828
  var $Error = Error;
1749
- var replace$6 = uncurryThis$o(''.replace);
1829
+ var replace$6 = uncurryThis$m(''.replace);
1750
1830
 
1751
1831
  var TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');
1752
1832
  // eslint-disable-next-line redos/no-vulnerable -- safe
@@ -1849,7 +1929,7 @@ var wrapErrorConstructorWithCause$1 = function (FULL_NAME, wrapper, FORCED, IS_A
1849
1929
  };
1850
1930
 
1851
1931
  /* eslint-disable no-unused-vars -- required for functions `.length` */
1852
- var $$F = _export;
1932
+ var $$E = _export;
1853
1933
  var global$g = global$r;
1854
1934
  var apply$3 = functionApply;
1855
1935
  var wrapErrorConstructorWithCause = wrapErrorConstructorWithCause$1;
@@ -1863,14 +1943,14 @@ var FORCED$5 = new Error('e', { cause: 7 }).cause !== 7;
1863
1943
  var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {
1864
1944
  var O = {};
1865
1945
  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED$5);
1866
- $$F({ global: true, constructor: true, arity: 1, forced: FORCED$5 }, O);
1946
+ $$E({ global: true, constructor: true, arity: 1, forced: FORCED$5 }, O);
1867
1947
  };
1868
1948
 
1869
1949
  var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {
1870
1950
  if (WebAssembly && WebAssembly[ERROR_NAME]) {
1871
1951
  var O = {};
1872
1952
  O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED$5);
1873
- $$F({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED$5 }, O);
1953
+ $$E({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED$5 }, O);
1874
1954
  }
1875
1955
  };
1876
1956
 
@@ -1906,7 +1986,7 @@ exportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {
1906
1986
  return function RuntimeError(message) { return apply$3(init, this, arguments); };
1907
1987
  });
1908
1988
 
1909
- var $$E = _export;
1989
+ var $$D = _export;
1910
1990
  var toObject$5 = toObject$9;
1911
1991
  var lengthOfArrayLike$7 = lengthOfArrayLike$9;
1912
1992
  var toIntegerOrInfinity$6 = toIntegerOrInfinity$9;
@@ -1914,7 +1994,7 @@ var addToUnscopables$3 = addToUnscopables$5;
1914
1994
 
1915
1995
  // `Array.prototype.at` method
1916
1996
  // https://tc39.es/ecma262/#sec-array.prototype.at
1917
- $$E({ target: 'Array', proto: true }, {
1997
+ $$D({ target: 'Array', proto: true }, {
1918
1998
  at: function at(index) {
1919
1999
  var O = toObject$5(this);
1920
2000
  var len = lengthOfArrayLike$7(O);
@@ -2001,8 +2081,8 @@ var regexpUnsupportedNcg = fails$h(function () {
2001
2081
  /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
2002
2082
  /* eslint-disable regexp/no-useless-quantifier -- testing */
2003
2083
  var call$m = functionCall;
2004
- var uncurryThis$n = functionUncurryThis;
2005
- var toString$h = toString$j;
2084
+ var uncurryThis$l = functionUncurryThis;
2085
+ var toString$g = toString$j;
2006
2086
  var regexpFlags = regexpFlags$1;
2007
2087
  var stickyHelpers$2 = regexpStickyHelpers;
2008
2088
  var shared = shared$4;
@@ -2014,10 +2094,10 @@ var UNSUPPORTED_NCG$1 = regexpUnsupportedNcg;
2014
2094
  var nativeReplace = shared('native-string-replace', String.prototype.replace);
2015
2095
  var nativeExec = RegExp.prototype.exec;
2016
2096
  var patchedExec = nativeExec;
2017
- var charAt$6 = uncurryThis$n(''.charAt);
2018
- var indexOf = uncurryThis$n(''.indexOf);
2019
- var replace$5 = uncurryThis$n(''.replace);
2020
- var stringSlice$8 = uncurryThis$n(''.slice);
2097
+ var charAt$6 = uncurryThis$l(''.charAt);
2098
+ var indexOf = uncurryThis$l(''.indexOf);
2099
+ var replace$5 = uncurryThis$l(''.replace);
2100
+ var stringSlice$7 = uncurryThis$l(''.slice);
2021
2101
 
2022
2102
  var UPDATES_LAST_INDEX_WRONG = (function () {
2023
2103
  var re1 = /a/;
@@ -2038,7 +2118,7 @@ if (PATCH) {
2038
2118
  patchedExec = function exec(string) {
2039
2119
  var re = this;
2040
2120
  var state = getInternalState$1(re);
2041
- var str = toString$h(string);
2121
+ var str = toString$g(string);
2042
2122
  var raw = state.raw;
2043
2123
  var result, reCopy, lastIndex, match, i, object, group;
2044
2124
 
@@ -2062,7 +2142,7 @@ if (PATCH) {
2062
2142
  flags += 'g';
2063
2143
  }
2064
2144
 
2065
- strCopy = stringSlice$8(str, re.lastIndex);
2145
+ strCopy = stringSlice$7(str, re.lastIndex);
2066
2146
  // Support anchored sticky behavior.
2067
2147
  if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$6(str, re.lastIndex - 1) !== '\n')) {
2068
2148
  source = '(?: ' + source + ')';
@@ -2083,8 +2163,8 @@ if (PATCH) {
2083
2163
 
2084
2164
  if (sticky) {
2085
2165
  if (match) {
2086
- match.input = stringSlice$8(match.input, charsAdded);
2087
- match[0] = stringSlice$8(match[0], charsAdded);
2166
+ match.input = stringSlice$7(match.input, charsAdded);
2167
+ match[0] = stringSlice$7(match[0], charsAdded);
2088
2168
  match.index = re.lastIndex;
2089
2169
  re.lastIndex += match[0].length;
2090
2170
  } else re.lastIndex = 0;
@@ -2115,22 +2195,22 @@ if (PATCH) {
2115
2195
 
2116
2196
  var regexpExec$2 = patchedExec;
2117
2197
 
2118
- var $$D = _export;
2198
+ var $$C = _export;
2119
2199
  var exec$6 = regexpExec$2;
2120
2200
 
2121
2201
  // `RegExp.prototype.exec` method
2122
2202
  // https://tc39.es/ecma262/#sec-regexp.prototype.exec
2123
- $$D({ target: 'RegExp', proto: true, forced: /./.exec !== exec$6 }, {
2203
+ $$C({ target: 'RegExp', proto: true, forced: /./.exec !== exec$6 }, {
2124
2204
  exec: exec$6
2125
2205
  });
2126
2206
 
2127
2207
  // TODO: Remove from `core-js@4` since it's moved to entry points
2128
2208
 
2129
- var $$C = _export;
2209
+ var $$B = _export;
2130
2210
  var call$l = functionCall;
2131
2211
  var isCallable$c = isCallable$s;
2132
2212
  var anObject$m = anObject$s;
2133
- var toString$g = toString$j;
2213
+ var toString$f = toString$j;
2134
2214
 
2135
2215
  var DELEGATES_TO_EXEC = function () {
2136
2216
  var execCalled = false;
@@ -2146,10 +2226,10 @@ var nativeTest = /./.test;
2146
2226
 
2147
2227
  // `RegExp.prototype.test` method
2148
2228
  // https://tc39.es/ecma262/#sec-regexp.prototype.test
2149
- $$C({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
2229
+ $$B({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
2150
2230
  test: function (S) {
2151
2231
  var R = anObject$m(this);
2152
- var string = toString$g(S);
2232
+ var string = toString$f(S);
2153
2233
  var exec = R.exec;
2154
2234
  if (!isCallable$c(exec)) return call$l(nativeTest, R, string);
2155
2235
  var result = call$l(exec, R, string);
@@ -2198,14 +2278,14 @@ if (NOT_GENERIC || INCORRECT_NAME) {
2198
2278
  }, { unsafe: true });
2199
2279
  }
2200
2280
 
2201
- var $$B = _export;
2202
- var uncurryThis$m = functionUncurryThis;
2203
- var requireObjectCoercible$a = requireObjectCoercible$e;
2281
+ var $$A = _export;
2282
+ var uncurryThis$k = functionUncurryThis;
2283
+ var requireObjectCoercible$9 = requireObjectCoercible$e;
2204
2284
  var toIntegerOrInfinity$5 = toIntegerOrInfinity$9;
2205
- var toString$f = toString$j;
2285
+ var toString$e = toString$j;
2206
2286
  var fails$f = fails$w;
2207
2287
 
2208
- var charAt$5 = uncurryThis$m(''.charAt);
2288
+ var charAt$5 = uncurryThis$k(''.charAt);
2209
2289
 
2210
2290
  var FORCED$4 = fails$f(function () {
2211
2291
  // eslint-disable-next-line es/no-array-string-prototype-at -- safe
@@ -2214,9 +2294,9 @@ var FORCED$4 = fails$f(function () {
2214
2294
 
2215
2295
  // `String.prototype.at` method
2216
2296
  // https://tc39.es/ecma262/#sec-string.prototype.at
2217
- $$B({ target: 'String', proto: true, forced: FORCED$4 }, {
2297
+ $$A({ target: 'String', proto: true, forced: FORCED$4 }, {
2218
2298
  at: function at(index) {
2219
- var S = toString$f(requireObjectCoercible$a(this));
2299
+ var S = toString$e(requireObjectCoercible$9(this));
2220
2300
  var len = S.length;
2221
2301
  var relativeIndex = toIntegerOrInfinity$5(index);
2222
2302
  var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
@@ -2230,14 +2310,14 @@ var call$j = functionCall;
2230
2310
  var defineBuiltIn$4 = defineBuiltIn$9;
2231
2311
  var regexpExec$1 = regexpExec$2;
2232
2312
  var fails$e = fails$w;
2233
- var wellKnownSymbol$d = wellKnownSymbol$m;
2313
+ var wellKnownSymbol$b = wellKnownSymbol$m;
2234
2314
  var createNonEnumerableProperty$2 = createNonEnumerableProperty$a;
2235
2315
 
2236
- var SPECIES$4 = wellKnownSymbol$d('species');
2316
+ var SPECIES$4 = wellKnownSymbol$b('species');
2237
2317
  var RegExpPrototype$2 = RegExp.prototype;
2238
2318
 
2239
2319
  var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {
2240
- var SYMBOL = wellKnownSymbol$d(KEY);
2320
+ var SYMBOL = wellKnownSymbol$b(KEY);
2241
2321
 
2242
2322
  var DELEGATES_TO_SYMBOL = !fails$e(function () {
2243
2323
  // String methods call symbol-named RegExp methods
@@ -2300,18 +2380,18 @@ var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {
2300
2380
  if (SHAM) createNonEnumerableProperty$2(RegExpPrototype$2[SYMBOL], 'sham', true);
2301
2381
  };
2302
2382
 
2303
- var uncurryThis$l = functionUncurryThis;
2383
+ var uncurryThis$j = functionUncurryThis;
2304
2384
  var toIntegerOrInfinity$4 = toIntegerOrInfinity$9;
2305
- var toString$e = toString$j;
2306
- var requireObjectCoercible$9 = requireObjectCoercible$e;
2385
+ var toString$d = toString$j;
2386
+ var requireObjectCoercible$8 = requireObjectCoercible$e;
2307
2387
 
2308
- var charAt$4 = uncurryThis$l(''.charAt);
2309
- var charCodeAt$1 = uncurryThis$l(''.charCodeAt);
2310
- var stringSlice$7 = uncurryThis$l(''.slice);
2388
+ var charAt$4 = uncurryThis$j(''.charAt);
2389
+ var charCodeAt$1 = uncurryThis$j(''.charCodeAt);
2390
+ var stringSlice$6 = uncurryThis$j(''.slice);
2311
2391
 
2312
2392
  var createMethod$3 = function (CONVERT_TO_STRING) {
2313
2393
  return function ($this, pos) {
2314
- var S = toString$e(requireObjectCoercible$9($this));
2394
+ var S = toString$d(requireObjectCoercible$8($this));
2315
2395
  var position = toIntegerOrInfinity$4(pos);
2316
2396
  var size = S.length;
2317
2397
  var first, second;
@@ -2323,7 +2403,7 @@ var createMethod$3 = function (CONVERT_TO_STRING) {
2323
2403
  ? charAt$4(S, position)
2324
2404
  : first
2325
2405
  : CONVERT_TO_STRING
2326
- ? stringSlice$7(S, position, position + 2)
2406
+ ? stringSlice$6(S, position, position + 2)
2327
2407
  : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
2328
2408
  };
2329
2409
  };
@@ -2342,13 +2422,13 @@ var advanceStringIndex$3 = function (S, index, unicode) {
2342
2422
  return index + (unicode ? charAt$3(S, index).length : 1);
2343
2423
  };
2344
2424
 
2345
- var uncurryThis$k = functionUncurryThis;
2425
+ var uncurryThis$i = functionUncurryThis;
2346
2426
  var toObject$4 = toObject$9;
2347
2427
 
2348
2428
  var floor = Math.floor;
2349
- var charAt$2 = uncurryThis$k(''.charAt);
2350
- var replace$4 = uncurryThis$k(''.replace);
2351
- var stringSlice$6 = uncurryThis$k(''.slice);
2429
+ var charAt$2 = uncurryThis$i(''.charAt);
2430
+ var replace$4 = uncurryThis$i(''.replace);
2431
+ var stringSlice$5 = uncurryThis$i(''.slice);
2352
2432
  // eslint-disable-next-line redos/no-vulnerable -- safe
2353
2433
  var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g;
2354
2434
  var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g;
@@ -2368,10 +2448,10 @@ var getSubstitution$1 = function (matched, str, position, captures, namedCapture
2368
2448
  switch (charAt$2(ch, 0)) {
2369
2449
  case '$': return '$';
2370
2450
  case '&': return matched;
2371
- case '`': return stringSlice$6(str, 0, position);
2372
- case "'": return stringSlice$6(str, tailPos);
2451
+ case '`': return stringSlice$5(str, 0, position);
2452
+ case "'": return stringSlice$5(str, tailPos);
2373
2453
  case '<':
2374
- capture = namedCaptures[stringSlice$6(ch, 1, -1)];
2454
+ capture = namedCaptures[stringSlice$5(ch, 1, -1)];
2375
2455
  break;
2376
2456
  default: // \d\d?
2377
2457
  var n = +ch;
@@ -2391,10 +2471,10 @@ var getSubstitution$1 = function (matched, str, position, captures, namedCapture
2391
2471
  var call$i = functionCall;
2392
2472
  var anObject$k = anObject$s;
2393
2473
  var isCallable$b = isCallable$s;
2394
- var classof$7 = classofRaw$2;
2474
+ var classof$6 = classofRaw$2;
2395
2475
  var regexpExec = regexpExec$2;
2396
2476
 
2397
- var $TypeError$e = TypeError;
2477
+ var $TypeError$d = TypeError;
2398
2478
 
2399
2479
  // `RegExpExec` abstract operation
2400
2480
  // https://tc39.es/ecma262/#sec-regexpexec
@@ -2405,35 +2485,35 @@ var regexpExecAbstract = function (R, S) {
2405
2485
  if (result !== null) anObject$k(result);
2406
2486
  return result;
2407
2487
  }
2408
- if (classof$7(R) === 'RegExp') return call$i(regexpExec, R, S);
2409
- throw new $TypeError$e('RegExp#exec called on incompatible receiver');
2488
+ if (classof$6(R) === 'RegExp') return call$i(regexpExec, R, S);
2489
+ throw new $TypeError$d('RegExp#exec called on incompatible receiver');
2410
2490
  };
2411
2491
 
2412
2492
  var apply$2 = functionApply;
2413
2493
  var call$h = functionCall;
2414
- var uncurryThis$j = functionUncurryThis;
2494
+ var uncurryThis$h = functionUncurryThis;
2415
2495
  var fixRegExpWellKnownSymbolLogic$2 = fixRegexpWellKnownSymbolLogic;
2416
2496
  var fails$d = fails$w;
2417
2497
  var anObject$j = anObject$s;
2418
2498
  var isCallable$a = isCallable$s;
2419
2499
  var isNullOrUndefined$4 = isNullOrUndefined$7;
2420
2500
  var toIntegerOrInfinity$3 = toIntegerOrInfinity$9;
2421
- var toLength$5 = toLength$7;
2422
- var toString$d = toString$j;
2423
- var requireObjectCoercible$8 = requireObjectCoercible$e;
2501
+ var toLength$4 = toLength$7;
2502
+ var toString$c = toString$j;
2503
+ var requireObjectCoercible$7 = requireObjectCoercible$e;
2424
2504
  var advanceStringIndex$2 = advanceStringIndex$3;
2425
2505
  var getMethod$5 = getMethod$7;
2426
2506
  var getSubstitution = getSubstitution$1;
2427
2507
  var regExpExec$2 = regexpExecAbstract;
2428
- var wellKnownSymbol$c = wellKnownSymbol$m;
2508
+ var wellKnownSymbol$a = wellKnownSymbol$m;
2429
2509
 
2430
- var REPLACE = wellKnownSymbol$c('replace');
2510
+ var REPLACE = wellKnownSymbol$a('replace');
2431
2511
  var max$1 = Math.max;
2432
- var min$3 = Math.min;
2433
- var concat = uncurryThis$j([].concat);
2434
- var push$3 = uncurryThis$j([].push);
2435
- var stringIndexOf$2 = uncurryThis$j(''.indexOf);
2436
- var stringSlice$5 = uncurryThis$j(''.slice);
2512
+ var min$2 = Math.min;
2513
+ var concat = uncurryThis$h([].concat);
2514
+ var push$3 = uncurryThis$h([].push);
2515
+ var stringIndexOf$2 = uncurryThis$h(''.indexOf);
2516
+ var stringSlice$4 = uncurryThis$h(''.slice);
2437
2517
 
2438
2518
  var maybeToString = function (it) {
2439
2519
  return it === undefined ? it : String(it);
@@ -2473,17 +2553,17 @@ fixRegExpWellKnownSymbolLogic$2('replace', function (_, nativeReplace, maybeCall
2473
2553
  // `String.prototype.replace` method
2474
2554
  // https://tc39.es/ecma262/#sec-string.prototype.replace
2475
2555
  function replace(searchValue, replaceValue) {
2476
- var O = requireObjectCoercible$8(this);
2556
+ var O = requireObjectCoercible$7(this);
2477
2557
  var replacer = isNullOrUndefined$4(searchValue) ? undefined : getMethod$5(searchValue, REPLACE);
2478
2558
  return replacer
2479
2559
  ? call$h(replacer, searchValue, O, replaceValue)
2480
- : call$h(nativeReplace, toString$d(O), searchValue, replaceValue);
2560
+ : call$h(nativeReplace, toString$c(O), searchValue, replaceValue);
2481
2561
  },
2482
2562
  // `RegExp.prototype[@@replace]` method
2483
2563
  // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
2484
2564
  function (string, replaceValue) {
2485
2565
  var rx = anObject$j(this);
2486
- var S = toString$d(string);
2566
+ var S = toString$c(string);
2487
2567
 
2488
2568
  if (
2489
2569
  typeof replaceValue == 'string' &&
@@ -2495,7 +2575,7 @@ fixRegExpWellKnownSymbolLogic$2('replace', function (_, nativeReplace, maybeCall
2495
2575
  }
2496
2576
 
2497
2577
  var functionalReplace = isCallable$a(replaceValue);
2498
- if (!functionalReplace) replaceValue = toString$d(replaceValue);
2578
+ if (!functionalReplace) replaceValue = toString$c(replaceValue);
2499
2579
 
2500
2580
  var global = rx.global;
2501
2581
  var fullUnicode;
@@ -2513,8 +2593,8 @@ fixRegExpWellKnownSymbolLogic$2('replace', function (_, nativeReplace, maybeCall
2513
2593
  push$3(results, result);
2514
2594
  if (!global) break;
2515
2595
 
2516
- var matchStr = toString$d(result[0]);
2517
- if (matchStr === '') rx.lastIndex = advanceStringIndex$2(S, toLength$5(rx.lastIndex), fullUnicode);
2596
+ var matchStr = toString$c(result[0]);
2597
+ if (matchStr === '') rx.lastIndex = advanceStringIndex$2(S, toLength$4(rx.lastIndex), fullUnicode);
2518
2598
  }
2519
2599
 
2520
2600
  var accumulatedResult = '';
@@ -2522,8 +2602,8 @@ fixRegExpWellKnownSymbolLogic$2('replace', function (_, nativeReplace, maybeCall
2522
2602
  for (var i = 0; i < results.length; i++) {
2523
2603
  result = results[i];
2524
2604
 
2525
- var matched = toString$d(result[0]);
2526
- var position = max$1(min$3(toIntegerOrInfinity$3(result.index), S.length), 0);
2605
+ var matched = toString$c(result[0]);
2606
+ var position = max$1(min$2(toIntegerOrInfinity$3(result.index), S.length), 0);
2527
2607
  var captures = [];
2528
2608
  var replacement;
2529
2609
  // NOTE: This is equivalent to
@@ -2536,101 +2616,21 @@ fixRegExpWellKnownSymbolLogic$2('replace', function (_, nativeReplace, maybeCall
2536
2616
  if (functionalReplace) {
2537
2617
  var replacerArgs = concat([matched], captures, position, S);
2538
2618
  if (namedCaptures !== undefined) push$3(replacerArgs, namedCaptures);
2539
- replacement = toString$d(apply$2(replaceValue, undefined, replacerArgs));
2619
+ replacement = toString$c(apply$2(replaceValue, undefined, replacerArgs));
2540
2620
  } else {
2541
2621
  replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
2542
2622
  }
2543
2623
  if (position >= nextSourcePosition) {
2544
- accumulatedResult += stringSlice$5(S, nextSourcePosition, position) + replacement;
2624
+ accumulatedResult += stringSlice$4(S, nextSourcePosition, position) + replacement;
2545
2625
  nextSourcePosition = position + matched.length;
2546
2626
  }
2547
2627
  }
2548
2628
 
2549
- return accumulatedResult + stringSlice$5(S, nextSourcePosition);
2629
+ return accumulatedResult + stringSlice$4(S, nextSourcePosition);
2550
2630
  }
2551
2631
  ];
2552
2632
  }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);
2553
2633
 
2554
- var classofRaw = classofRaw$2;
2555
- var uncurryThis$i = functionUncurryThis;
2556
-
2557
- var functionUncurryThisClause = function (fn) {
2558
- // Nashorn bug:
2559
- // https://github.com/zloirock/core-js/issues/1128
2560
- // https://github.com/zloirock/core-js/issues/1130
2561
- if (classofRaw(fn) === 'Function') return uncurryThis$i(fn);
2562
- };
2563
-
2564
- var isObject$4 = isObject$f;
2565
- var classof$6 = classofRaw$2;
2566
- var wellKnownSymbol$b = wellKnownSymbol$m;
2567
-
2568
- var MATCH$2 = wellKnownSymbol$b('match');
2569
-
2570
- // `IsRegExp` abstract operation
2571
- // https://tc39.es/ecma262/#sec-isregexp
2572
- var isRegexp = function (it) {
2573
- var isRegExp;
2574
- return isObject$4(it) && ((isRegExp = it[MATCH$2]) !== undefined ? !!isRegExp : classof$6(it) === 'RegExp');
2575
- };
2576
-
2577
- var isRegExp$1 = isRegexp;
2578
-
2579
- var $TypeError$d = TypeError;
2580
-
2581
- var notARegexp = function (it) {
2582
- if (isRegExp$1(it)) {
2583
- throw new $TypeError$d("The method doesn't accept regular expressions");
2584
- } return it;
2585
- };
2586
-
2587
- var wellKnownSymbol$a = wellKnownSymbol$m;
2588
-
2589
- var MATCH$1 = wellKnownSymbol$a('match');
2590
-
2591
- var correctIsRegexpLogic = function (METHOD_NAME) {
2592
- var regexp = /./;
2593
- try {
2594
- '/./'[METHOD_NAME](regexp);
2595
- } catch (error1) {
2596
- try {
2597
- regexp[MATCH$1] = false;
2598
- return '/./'[METHOD_NAME](regexp);
2599
- } catch (error2) { /* empty */ }
2600
- } return false;
2601
- };
2602
-
2603
- var $$A = _export;
2604
- var uncurryThis$h = functionUncurryThisClause;
2605
- var getOwnPropertyDescriptor$4 = objectGetOwnPropertyDescriptor.f;
2606
- var toLength$4 = toLength$7;
2607
- var toString$c = toString$j;
2608
- var notARegExp$2 = notARegexp;
2609
- var requireObjectCoercible$7 = requireObjectCoercible$e;
2610
- var correctIsRegExpLogic$2 = correctIsRegexpLogic;
2611
-
2612
- var stringSlice$4 = uncurryThis$h(''.slice);
2613
- var min$2 = Math.min;
2614
-
2615
- var CORRECT_IS_REGEXP_LOGIC$1 = correctIsRegExpLogic$2('startsWith');
2616
- // https://github.com/zloirock/core-js/pull/702
2617
- var MDN_POLYFILL_BUG$1 = !CORRECT_IS_REGEXP_LOGIC$1 && !!function () {
2618
- var descriptor = getOwnPropertyDescriptor$4(String.prototype, 'startsWith');
2619
- return descriptor && !descriptor.writable;
2620
- }();
2621
-
2622
- // `String.prototype.startsWith` method
2623
- // https://tc39.es/ecma262/#sec-string.prototype.startswith
2624
- $$A({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1 }, {
2625
- startsWith: function startsWith(searchString /* , position = 0 */) {
2626
- var that = toString$c(requireObjectCoercible$7(this));
2627
- notARegExp$2(searchString);
2628
- var index = toLength$4(min$2(arguments.length > 1 ? arguments[1] : undefined, that.length));
2629
- var search = toString$c(searchString);
2630
- return stringSlice$4(that, index, index + search.length) === search;
2631
- }
2632
- });
2633
-
2634
2634
  var isPrototypeOf$3 = objectIsPrototypeOf;
2635
2635
 
2636
2636
  var $TypeError$c = TypeError;
@@ -3177,7 +3177,6 @@ const checkFieldValidity = props => {
3177
3177
  errors: ajvErrors,
3178
3178
  required,
3179
3179
  label,
3180
- uischema,
3181
3180
  schema
3182
3181
  } = props;
3183
3182
  const labelToUpdate = label;
@@ -3561,7 +3560,8 @@ styled.div(_t$c || (_t$c = _$b`
3561
3560
  `));
3562
3561
  const Visible = styled.div(_t2$7 || (_t2$7 = _$b`
3563
3562
  display: ${0};
3564
- `), p => p.visible ? 'initial' : 'none');
3563
+ width: 100%;
3564
+ `), p => p.visible ? 'block' : 'none');
3565
3565
 
3566
3566
  const ADD_REGISTER_DATA_ACTION = 'jsonforms/register/data/add';
3567
3567
  const ADD_NO_ANONYMOUS_ACTION = 'jsonforms/register/no_anonymous';
@@ -5189,16 +5189,21 @@ let _$a = t => t,
5189
5189
  _t5$4,
5190
5190
  _t6$3,
5191
5191
  _t7$2,
5192
- _t8$2;
5192
+ _t8$2,
5193
+ _t9$2,
5194
+ _t0$2,
5195
+ _t1$2,
5196
+ _t10$2;
5193
5197
  const FormFieldWrapper = styled.div(_t$b || (_t$b = _$a`
5194
5198
  margin-bottom: var(--goa-space-l);
5195
5199
  `));
5196
5200
  const WarningIconDiv = styled.div(_t2$6 || (_t2$6 = _$a`
5197
- display: inline-flex;
5201
+ display: flex;
5198
5202
  align-items: flex-start;
5199
- gap: 0.25rem;
5200
- font-size: var(--goa-font-size-2);
5201
- color: var(--goa-color-interactive-error);
5203
+ gap: var(--goa-space-2xs);
5204
+ font: var(--goa-form-item-message-typography);
5205
+ color: var(--goa-form-item-error-message-color);
5206
+ margin-top: var(--goa-form-item-message-margin-top);
5202
5207
  `));
5203
5208
  const RequiredTextLabel = styled.label(_t3$5 || (_t3$5 = _$a`
5204
5209
  color: var(--goa-color-greyscale-700);
@@ -5219,15 +5224,39 @@ const PageReviewValueCol = styled.td(_t5$4 || (_t5$4 = _$a`
5219
5224
  text-align: left;
5220
5225
  vertical-align: top;
5221
5226
  `));
5227
+ const PageReviewContainer = styled.td(_t6$3 || (_t6$3 = _$a`
5228
+ padding: 12px 0px;
5229
+ border-bottom: 1px solid #ccc;
5230
+ width: 100%;
5231
+ vertical-align: top;
5232
+ `));
5233
+ const ReviewHeader = styled.div(_t7$2 || (_t7$2 = _$a`
5234
+ display: flex;
5235
+ justify-content: space-between;
5236
+ align-items: center;
5237
+ width: 100%;
5238
+ `));
5239
+ const ReviewLabel = styled.div(_t8$2 || (_t8$2 = _$a`
5240
+ font-weight: var(--goa-font-weight-bold);
5241
+ font-size: var(--goa-font-size-4);
5242
+ line-height: var(--goa-line-height-3);
5243
+ color: var(--goa-color-text-default);
5244
+ `));
5245
+ const ReviewValue = styled.div(_t9$2 || (_t9$2 = _$a`
5246
+ margin-top: var(--goa-space-m);
5247
+ color: var(--goa-color-text-default);
5248
+ font-size: var(--goa-font-size-4);
5249
+ line-height: var(--goa-line-height-3);
5250
+ `));
5222
5251
  //Check and unchecked are different heights otherwise
5223
- const CheckboxWrapper = styled.div(_t6$3 || (_t6$3 = _$a`
5252
+ const CheckboxWrapper = styled.div(_t0$2 || (_t0$2 = _$a`
5224
5253
  min-height: 28px;
5225
5254
  `));
5226
- styled.h4(_t7$2 || (_t7$2 = _$a`
5255
+ styled.h4(_t1$2 || (_t1$2 = _$a`
5227
5256
  margin: 0 0 0.25rem 0;
5228
5257
  fontsize: larger;
5229
5258
  `));
5230
- styled.h4(_t8$2 || (_t8$2 = _$a`
5259
+ styled.h4(_t10$2 || (_t10$2 = _$a`
5231
5260
  border-bottom: 1px solid #ddd;
5232
5261
  `));
5233
5262
 
@@ -6260,7 +6289,8 @@ const stepperReducer = (state, action) => {
6260
6289
  categories: newCategories,
6261
6290
  isOnReview,
6262
6291
  hasNextButton: !isOnReview,
6263
- hasPrevButton: newActive !== 0
6292
+ hasPrevButton: newActive !== 0,
6293
+ targetScope: undefined
6264
6294
  });
6265
6295
  }
6266
6296
  case 'page/prev':
@@ -6274,13 +6304,15 @@ const stepperReducer = (state, action) => {
6274
6304
  categories: newCategories,
6275
6305
  isOnReview: false,
6276
6306
  hasNextButton: true,
6277
- hasPrevButton: newActive !== 0
6307
+ hasPrevButton: newActive !== 0,
6308
+ targetScope: undefined
6278
6309
  });
6279
6310
  }
6280
6311
  case 'page/to/index':
6281
6312
  {
6282
6313
  const {
6283
- id
6314
+ id,
6315
+ targetScope
6284
6316
  } = action.payload;
6285
6317
  const newActive = id;
6286
6318
  const newCategories = categories.map((c, idx) => idx === id ? Object.assign({}, c, {
@@ -6293,7 +6325,8 @@ const stepperReducer = (state, action) => {
6293
6325
  isOnReview,
6294
6326
  hasNextButton: !isOnReview,
6295
6327
  hasPrevButton: newActive !== 0,
6296
- maxReachedStep: Math.max(state.maxReachedStep, activeId)
6328
+ maxReachedStep: Math.max(state.maxReachedStep, activeId),
6329
+ targetScope
6297
6330
  });
6298
6331
  }
6299
6332
  case 'update/category':
@@ -6306,14 +6339,14 @@ const stepperReducer = (state, action) => {
6306
6339
  } = action.payload;
6307
6340
  ajv.validate(schema, data);
6308
6341
  const newCategories = state.categories.map(cat => {
6309
- var _ajv$errors;
6310
6342
  // ✅ compare against cat.id, not the index
6311
6343
  if (cat.id !== id) {
6312
6344
  return cat;
6313
6345
  }
6346
+ const filteredErrors = ajv.errors && ajv.errors.filter(error => (error == null ? void 0 : error.data) != null);
6314
6347
  const status = getStepStatus({
6315
6348
  scopes: cat.scopes,
6316
- errors: (_ajv$errors = ajv.errors) != null ? _ajv$errors : [],
6349
+ errors: filteredErrors != null ? filteredErrors : [],
6317
6350
  schema
6318
6351
  });
6319
6352
  return Object.assign({}, cat, {
@@ -6354,7 +6387,7 @@ const stepperReducer = (state, action) => {
6354
6387
  };
6355
6388
 
6356
6389
  const createStepperContextInitData = props => {
6357
- var _ajv$errors, _uischema$options, _uischema$options2, _categorization$eleme;
6390
+ var _uischema$options, _uischema$options2, _categorization$eleme;
6358
6391
  const {
6359
6392
  uischema,
6360
6393
  data,
@@ -6364,18 +6397,18 @@ const createStepperContextInitData = props => {
6364
6397
  path
6365
6398
  } = props;
6366
6399
  const categorization = uischema;
6400
+ const filteredErrors = ajv.errors && ajv.errors.filter(error => (error == null ? void 0 : error.data) != null);
6367
6401
  // run validation once, capture errors
6368
6402
  const valid = ajv.validate(schema, data || {});
6369
- (_ajv$errors = ajv.errors) != null ? _ajv$errors : [];
6370
6403
  const isPage = (uischema == null || (_uischema$options = uischema.options) == null ? void 0 : _uischema$options.variant) === 'pages';
6371
6404
  const isCacheStatus = (_uischema$options2 = uischema.options) == null ? void 0 : _uischema$options2.cacheStatus;
6372
6405
  isCacheStatus && getIsVisitFromLocalStorage() || [];
6373
6406
  const categories = (_categorization$eleme = categorization.elements) == null ? void 0 : _categorization$eleme.map((c, id) => {
6374
- var _ajv$errors2, _deriveLabelForUISche;
6407
+ var _deriveLabelForUISche;
6375
6408
  const scopes = pickPropertyValues(c, 'scope', 'ListWithDetail');
6376
6409
  const status = getStepStatus({
6377
6410
  scopes,
6378
- errors: (_ajv$errors2 = ajv.errors) != null ? _ajv$errors2 : [],
6411
+ errors: filteredErrors != null ? filteredErrors : [],
6379
6412
  schema
6380
6413
  });
6381
6414
  return {
@@ -6478,7 +6511,7 @@ const JsonFormsStepperContextProvider = ({
6478
6511
  });
6479
6512
  },
6480
6513
  validatePage: doValidatePage,
6481
- goToPage: id => {
6514
+ goToPage: (id, targetScope) => {
6482
6515
  var _ctx$core3, _ctx$core5;
6483
6516
  ajv.validate(schema, ((_ctx$core3 = ctx.core) == null ? void 0 : _ctx$core3.data) || {});
6484
6517
  // Only update the current category
@@ -6504,7 +6537,8 @@ const JsonFormsStepperContextProvider = ({
6504
6537
  stepperDispatch({
6505
6538
  type: 'page/to/index',
6506
6539
  payload: {
6507
- id
6540
+ id,
6541
+ targetScope
6508
6542
  }
6509
6543
  });
6510
6544
  },
@@ -6572,6 +6606,7 @@ const GoAInputBaseControl = props => {
6572
6606
  } = props;
6573
6607
  const InnerComponent = input;
6574
6608
  const labelToUpdate = label || '';
6609
+ const controlRef = useRef(null);
6575
6610
  let modifiedErrors = checkFieldValidity(props);
6576
6611
  const formStepperCtx = useContext(JsonFormsStepperContext);
6577
6612
  const stepperState = formStepperCtx == null || formStepperCtx.selectStepperState == null ? void 0 : formStepperCtx.selectStepperState();
@@ -6583,6 +6618,36 @@ const GoAInputBaseControl = props => {
6583
6618
  setIsVisited(true);
6584
6619
  }
6585
6620
  }, [showReviewLink, isStepperReview]);
6621
+ /* istanbul ignore next */
6622
+ useEffect(() => {
6623
+ if (stepperState != null && stepperState.targetScope && stepperState.targetScope === uischema.scope && controlRef.current) {
6624
+ const inputElement = controlRef.current.querySelector('input, textarea, select, goa-input, goa-textarea, goa-dropdown, goa-checkbox, goa-radio-group');
6625
+ if (inputElement) {
6626
+ controlRef.current.scrollIntoView({
6627
+ behavior: 'smooth',
6628
+ block: 'center'
6629
+ });
6630
+ setTimeout(() => {
6631
+ var _inputElement$tagName;
6632
+ if ((_inputElement$tagName = inputElement.tagName) != null && _inputElement$tagName.toLowerCase().startsWith('goa-')) {
6633
+ inputElement.focused = true;
6634
+ if (typeof inputElement.focus === 'function') {
6635
+ inputElement.focus();
6636
+ }
6637
+ const shadowRoot = inputElement.shadowRoot;
6638
+ if (shadowRoot) {
6639
+ const actualInput = shadowRoot.querySelector('input, textarea, select');
6640
+ if (actualInput instanceof HTMLElement) {
6641
+ actualInput.focus();
6642
+ }
6643
+ }
6644
+ } else if (inputElement instanceof HTMLElement) {
6645
+ inputElement.focus();
6646
+ }
6647
+ }, 300);
6648
+ }
6649
+ }
6650
+ }, [stepperState == null ? void 0 : stepperState.targetScope, uischema.scope]);
6586
6651
  if (modifiedErrors === 'must be equal to one of the allowed values') {
6587
6652
  modifiedErrors = '';
6588
6653
  }
@@ -6591,6 +6656,7 @@ const GoAInputBaseControl = props => {
6591
6656
  children: jsx(Visible, {
6592
6657
  visible: visible,
6593
6658
  children: jsx(FormFieldWrapper, {
6659
+ ref: controlRef,
6594
6660
  children: jsx(GoabFormItem, {
6595
6661
  requirement: (_uischema$options$com = uischema == null || (_uischema$options = uischema.options) == null || (_uischema$options = _uischema$options.componentProps) == null ? void 0 : _uischema$options.requirement) != null ? _uischema$options$com : required || getRequiredIfThen(props).length > 0 ? 'required' : undefined,
6596
6662
  error: isVisited === true ? modifiedErrors : undefined,
@@ -8254,7 +8320,7 @@ const GoInputBaseReview = props => jsx(GoAInputBaseControl, Object.assign({}, pr
8254
8320
  const GoAInputBaseReviewControl = withJsonFormsControlProps(GoInputBaseReview);
8255
8321
 
8256
8322
  const GoAInputBaseTableReview = props => {
8257
- var _uischema$options3;
8323
+ var _uischema$options, _jsonForms$core, _activeError, _activeError2, _uischema$options4;
8258
8324
  const {
8259
8325
  data,
8260
8326
  uischema,
@@ -8263,23 +8329,28 @@ const GoAInputBaseTableReview = props => {
8263
8329
  path,
8264
8330
  errors,
8265
8331
  enabled,
8266
- cells
8332
+ cells,
8333
+ required
8267
8334
  } = props;
8268
8335
  const context = useContext(JsonFormsStepperContext);
8269
8336
  const jsonForms = useJsonForms();
8270
- const labelToUpdate = convertToSentenceCase(getLabelText(uischema.scope, label || ''));
8337
+ let labelToUpdate = (_uischema$options = uischema.options) != null && _uischema$options.reviewLabel ? uischema.options.reviewLabel : convertToSentenceCase(getLabelText(uischema.scope, label || ''));
8338
+ if (labelToUpdate === '') {
8339
+ const scopeName = uischema.scope ? getLastSegmentFromPointer(uischema.scope) : '';
8340
+ labelToUpdate = convertToSentenceCase(scopeName);
8341
+ }
8271
8342
  let reviewText = data;
8272
8343
  const isBoolean = typeof data === 'boolean';
8273
8344
  if (isBoolean) {
8274
- var _uischema$options, _uischema$options2;
8345
+ var _uischema$options2, _uischema$options3;
8275
8346
  let checkboxLabel = '';
8276
- if ((_uischema$options = uischema.options) != null && (_uischema$options = _uischema$options.text) != null && _uischema$options.trim()) {
8347
+ if ((_uischema$options2 = uischema.options) != null && (_uischema$options2 = _uischema$options2.text) != null && _uischema$options2.trim()) {
8277
8348
  checkboxLabel = uischema.options.text.trim();
8278
8349
  } else if (uischema.scope && uischema.scope.startsWith('#/')) {
8279
8350
  const fallbackLabel = getLastSegmentFromPointer(uischema.scope);
8280
8351
  checkboxLabel = fallbackLabel.charAt(0).toUpperCase() + fallbackLabel.slice(1);
8281
8352
  }
8282
- if (((_uischema$options2 = uischema.options) == null ? void 0 : _uischema$options2.radio) === true) {
8353
+ if (((_uischema$options3 = uischema.options) == null ? void 0 : _uischema$options3.radio) === true) {
8283
8354
  reviewText = data ? `Yes` : `No`;
8284
8355
  } else {
8285
8356
  if (label !== '' || typeof label === 'boolean') {
@@ -8289,34 +8360,76 @@ const GoAInputBaseTableReview = props => {
8289
8360
  }
8290
8361
  }
8291
8362
  }
8363
+ // Helper to extract errors manually from global state, bypassing "touched" filter
8364
+ const normalizePath = p => p.replace(/\[(\d+)\]/g, '.$1').replace(/^\./, '').replace(/\//g, '.');
8365
+ const findMatchingError = currentErrors => {
8366
+ if (!currentErrors) return undefined;
8367
+ const normalizedPropPath = normalizePath(path || '');
8368
+ for (const e of currentErrors) {
8369
+ var _e$params2;
8370
+ const errorPath = normalizePath(e.dataPath || e.instancePath || '');
8371
+ if (errorPath === normalizedPropPath) {
8372
+ return e.message;
8373
+ }
8374
+ if (e.keyword === 'required') {
8375
+ var _e$params;
8376
+ const missing = (_e$params = e.params) == null ? void 0 : _e$params.missingProperty;
8377
+ if (missing) {
8378
+ const missingPath = errorPath ? `${errorPath}.${missing}` : missing;
8379
+ if (missingPath === normalizedPropPath) {
8380
+ return e.message;
8381
+ }
8382
+ }
8383
+ }
8384
+ if (e.keyword === 'errorMessage' && (_e$params2 = e.params) != null && _e$params2.errors) {
8385
+ const nested = findMatchingError(e.params.errors);
8386
+ if (nested) return e.message;
8387
+ }
8388
+ }
8389
+ return undefined;
8390
+ };
8391
+ let activeError = findMatchingError((_jsonForms$core = jsonForms.core) == null ? void 0 : _jsonForms$core.errors);
8392
+ if (required && (data === undefined || data === null || data === '') && !activeError) {
8393
+ activeError = `${labelToUpdate} is required`;
8394
+ } else if ((_activeError = activeError) != null && _activeError.includes('is a required property') || (_activeError2 = activeError) != null && _activeError2.includes('must have required property')) {
8395
+ activeError = `${labelToUpdate} is required`;
8396
+ }
8292
8397
  // eslint-disable-next-line
8293
- const stepId = (_uischema$options3 = uischema.options) == null ? void 0 : _uischema$options3.stepId;
8294
- return jsxs("tr", {
8398
+ const stepId = (_uischema$options4 = uischema.options) == null ? void 0 : _uischema$options4.stepId;
8399
+ return jsx("tr", {
8295
8400
  "data-testid": `input-base-table-${label}-row`,
8296
- children: [jsx(PageReviewNameCol, {
8297
- children: labelToUpdate && jsx("strong", {
8298
- children: labelToUpdate
8299
- })
8300
- }), jsx(PageReviewValueCol, {
8301
- children: typeof reviewText === 'string' || typeof reviewText === 'number' ? jsx("div", {
8302
- children: reviewText
8303
- }) : jsx(JsonFormsDispatch, {
8304
- "data-testid": `jsonforms-object-list-defined-elements-dispatch`,
8305
- schema: schema,
8306
- uischema: uischema,
8307
- enabled: enabled,
8308
- renderers: jsonForms.renderers,
8309
- cells: cells
8310
- })
8311
- }), jsx("td", {
8312
- className: "goa-table-number-col",
8313
- children: stepId !== undefined && jsx(GoabButton, {
8314
- type: "tertiary",
8315
- size: "compact",
8316
- onClick: () => context == null ? void 0 : context.goToPage(stepId),
8317
- children: "Change"
8318
- })
8319
- })]
8401
+ children: jsxs(PageReviewContainer, {
8402
+ colSpan: 3,
8403
+ children: [jsxs(ReviewHeader, {
8404
+ children: [jsxs(ReviewLabel, {
8405
+ children: [labelToUpdate, required && jsx(RequiredTextLabel, {
8406
+ children: " (required)"
8407
+ })]
8408
+ }), stepId !== undefined && jsx(GoabButton, {
8409
+ type: "tertiary",
8410
+ size: "compact",
8411
+ onClick: () => context == null ? void 0 : context.goToPage(stepId, uischema.scope),
8412
+ children: "Change"
8413
+ })]
8414
+ }), jsxs(ReviewValue, {
8415
+ children: [typeof reviewText === 'string' || typeof reviewText === 'number' ? jsx("div", {
8416
+ "data-testid": `review-value-${label}`,
8417
+ children: reviewText
8418
+ }) : jsx(JsonFormsDispatch, {
8419
+ "data-testid": `jsonforms-object-list-defined-elements-dispatch`,
8420
+ schema: schema,
8421
+ uischema: uischema,
8422
+ enabled: enabled,
8423
+ renderers: jsonForms.renderers,
8424
+ cells: cells
8425
+ }), activeError && jsxs(WarningIconDiv, {
8426
+ children: [jsx(GoabIcon, {
8427
+ type: "warning",
8428
+ size: "small"
8429
+ }), activeError]
8430
+ })]
8431
+ })]
8432
+ })
8320
8433
  });
8321
8434
  };
8322
8435
  const GoAInputBaseTableReviewControl = withJsonFormsControlProps(GoAInputBaseTableReview);
@@ -9111,42 +9224,63 @@ const isPropertiesMatch = (obj, props, isExactMatch) => {
9111
9224
  }
9112
9225
  }
9113
9226
  return false;
9114
- };
9115
- const createSchemaMatchTester = (props, isExactMatch = false) => {
9116
- return schemaMatches(schema => {
9117
- return schema && isPropertiesMatch(schema.properties, props, isExactMatch);
9118
- });
9119
- };
9120
-
9121
- const isFullName = createSchemaMatchTester(['firstName', 'middleName', 'lastName'], true);
9122
- const FullNameTester = rankWith(4, isFullName);
9123
-
9124
- const FullNameControlReview = props => {
9125
- var _props$uischema, _props$data, _props$data2, _props$data3, _props$data4;
9126
- const context = useContext(JsonFormsStepperContext);
9127
- const stepId = (_props$uischema = props.uischema) == null || (_props$uischema = _props$uischema.options) == null ? void 0 : _props$uischema.stepId;
9128
- const renderRow = (label, value, testId) => jsxs("tr", {
9129
- children: [jsx(PageReviewNameCol, {
9130
- children: jsx("strong", {
9131
- children: label
9132
- })
9133
- }), jsx(PageReviewValueCol, {
9134
- children: jsx("div", {
9135
- "data-testid": testId,
9136
- children: value
9137
- })
9138
- }), jsx("td", {
9139
- className: "goa-table-width-limit",
9140
- children: jsx(GoabButton, {
9141
- type: "tertiary",
9142
- size: "compact",
9143
- onClick: () => context == null ? void 0 : context.goToPage(stepId),
9144
- children: "Change"
9145
- })
9146
- })]
9227
+ };
9228
+ const createSchemaMatchTester = (props, isExactMatch = false) => {
9229
+ return schemaMatches(schema => {
9230
+ return schema && isPropertiesMatch(schema.properties, props, isExactMatch);
9231
+ });
9232
+ };
9233
+
9234
+ const isFullName = createSchemaMatchTester(['firstName', 'middleName', 'lastName'], true);
9235
+ const FullNameTester = rankWith(4, isFullName);
9236
+
9237
+ const FullNameControlReview = props => {
9238
+ var _props$uischema, _props$data, _props$data2, _props$data3, _props$data4;
9239
+ const context = useContext(JsonFormsStepperContext);
9240
+ const stepId = (_props$uischema = props.uischema) == null || (_props$uischema = _props$uischema.options) == null ? void 0 : _props$uischema.stepId;
9241
+ const {
9242
+ label,
9243
+ errors,
9244
+ required,
9245
+ uischema
9246
+ } = props;
9247
+ const renderRow = (label, value, testId) => jsx("tr", {
9248
+ children: jsxs(PageReviewContainer, {
9249
+ colSpan: 3,
9250
+ children: [jsxs(ReviewHeader, {
9251
+ children: [jsx(ReviewLabel, {
9252
+ children: label
9253
+ }), jsx(GoabButton, {
9254
+ type: "tertiary",
9255
+ size: "compact",
9256
+ onClick: () => context == null ? void 0 : context.goToPage(stepId, uischema.scope),
9257
+ children: "Change"
9258
+ })]
9259
+ }), jsx(ReviewValue, {
9260
+ children: jsx("div", {
9261
+ "data-testid": testId,
9262
+ children: value
9263
+ })
9264
+ })]
9265
+ })
9147
9266
  });
9148
9267
  return jsxs(Fragment, {
9149
- children: [renderRow('First name', (_props$data = props.data) == null ? void 0 : _props$data.firstName, `firstName-control-${props.id}`), ((_props$data2 = props.data) == null ? void 0 : _props$data2.middleName) && renderRow('Middle name', (_props$data3 = props.data) == null ? void 0 : _props$data3.middleName, `middleName-control-${props.id}`), renderRow('Last name', (_props$data4 = props.data) == null ? void 0 : _props$data4.lastName, `lastName-control-${props.id}`)]
9268
+ children: [jsx("tr", {
9269
+ "data-testid": "full-name-header",
9270
+ children: jsxs(PageReviewContainer, {
9271
+ colSpan: 3,
9272
+ children: [jsxs(ReviewLabel, {
9273
+ children: [label, required && jsx(RequiredTextLabel, {
9274
+ children: " (required)"
9275
+ })]
9276
+ }), errors && jsxs(WarningIconDiv, {
9277
+ children: [jsx(GoabIcon, {
9278
+ type: "warning",
9279
+ size: "small"
9280
+ }), errors != null && errors.includes('is a required property') ? `${label} is required` : errors]
9281
+ })]
9282
+ })
9283
+ }), renderRow('First name', (_props$data = props.data) == null ? void 0 : _props$data.firstName, `firstName-control-${props.id}`), ((_props$data2 = props.data) == null ? void 0 : _props$data2.middleName) && renderRow('Middle name', (_props$data3 = props.data) == null ? void 0 : _props$data3.middleName, `middleName-control-${props.id}`), renderRow('Last name', (_props$data4 = props.data) == null ? void 0 : _props$data4.lastName, `lastName-control-${props.id}`)]
9150
9284
  });
9151
9285
  };
9152
9286
  const GoAInputBaseFullNameControlReview = withJsonFormsAllOfProps(FullNameControlReview);
@@ -9178,7 +9312,7 @@ const FullNameDobReviewControl = props => {
9178
9312
  children: jsx(GoabButton, {
9179
9313
  type: "tertiary",
9180
9314
  size: "compact",
9181
- onClick: () => context == null ? void 0 : context.goToPage(stepId),
9315
+ onClick: () => context == null ? void 0 : context.goToPage(stepId, uischema.scope),
9182
9316
  children: "Change"
9183
9317
  })
9184
9318
  })]
@@ -9673,9 +9807,10 @@ const renderCellColumn = ({
9673
9807
  });
9674
9808
  };
9675
9809
  if (data === undefined && isRequired || error !== '' && error !== undefined) {
9676
- return renderWarningCell(data);
9810
+ const message = error || (isRequired && data === undefined ? 'Required' : data);
9811
+ return renderWarningCell(message);
9677
9812
  } else if (data !== undefined && isRequired && error) {
9678
- return renderWarningCell(data);
9813
+ return renderWarningCell(error);
9679
9814
  }
9680
9815
  const path = `/${rowPath}/${index}/${element}/${index === 0 ? index : index - 1}`;
9681
9816
  const nestedErrors = errors == null ? void 0 : errors.filter(e => e.instancePath.includes(path));
@@ -9685,6 +9820,10 @@ const renderCellColumn = ({
9685
9820
  } else if (typeof data === 'object' || Array.isArray(data)) {
9686
9821
  const result = Object.keys(data);
9687
9822
  if (!isRequired && nestedErrors.length === 0) {
9823
+ if ('year' in data && 'month' in data && 'day' in data) {
9824
+ const dateObj = data;
9825
+ return `${dateObj.year}-${dateObj.month}-${dateObj.day}`;
9826
+ }
9688
9827
  return jsx("pre", {
9689
9828
  children: JSON.stringify(data, null, 2)
9690
9829
  });
@@ -9761,8 +9900,11 @@ const EmptyList$1 = ({
9761
9900
  numColumns,
9762
9901
  noDataMessage,
9763
9902
  translations
9764
- }) => jsx(GoabGrid, {
9765
- minChildWidth: "30ch",
9903
+ }) => jsx("div", {
9904
+ style: {
9905
+ width: '100%',
9906
+ padding: '1rem 0'
9907
+ },
9766
9908
  children: jsx(TextCenter, {
9767
9909
  children: jsx("b", {
9768
9910
  children: noDataMessage
@@ -9814,6 +9956,11 @@ const NonEmptyCellComponent$1 = /*#__PURE__*/React.memo(function NonEmptyCellCom
9814
9956
  properties && Object.keys(properties).forEach(item => {
9815
9957
  if (Object.keys(tableKeys).includes(item)) {
9816
9958
  tempTableKeys[item] = tableKeys[item];
9959
+ } else {
9960
+ // If the property is not in the tableKeys (e.g. it was a nested object in the UI schema),
9961
+ // we still need a header for it to maintain alignment.
9962
+ // Use the property title from the schema, or capitalize the property name.
9963
+ tempTableKeys[item] = properties[item].title || capitalizeFirstLetter(item);
9817
9964
  }
9818
9965
  });
9819
9966
  tableKeys = tempTableKeys;
@@ -9864,6 +10011,10 @@ const NonEmptyCellComponent$1 = /*#__PURE__*/React.memo(function NonEmptyCellCom
9864
10011
  }, 0)
9865
10012
  }), jsx("tbody", {
9866
10013
  children: range(count || 0).map((num, i) => {
10014
+ // Skip rendering empty rows in review mode
10015
+ if (isInReview === true && (data === undefined || data[num] === undefined || Object.keys(data[num]).length === 0)) {
10016
+ return null;
10017
+ }
9867
10018
  const errorRow = errors == null ? void 0 : errors.find(error => error.instancePath.includes(`/${props.rowPath.replace(/\./g, '/')}/${i}`));
9868
10019
  return jsxs("tr", {
9869
10020
  children: [Object.keys(properties).map((element, ix) => {
@@ -9889,7 +10040,7 @@ const NonEmptyCellComponent$1 = /*#__PURE__*/React.memo(function NonEmptyCellCom
9889
10040
  display: 'block'
9890
10041
  },
9891
10042
  children: renderCellColumn({
9892
- data: currentData ? String(currentData) : undefined,
10043
+ data: currentData !== '' && currentData !== null && currentData !== undefined ? currentData : undefined,
9893
10044
  error: error == null ? void 0 : error.message,
9894
10045
  isRequired: (_required$includes = required == null ? void 0 : required.includes(tableKeys[element])) != null ? _required$includes : false,
9895
10046
  errors: errors !== undefined ? errors : [],
@@ -10008,7 +10159,11 @@ const NonEmptyRowComponent$1 = ({
10008
10159
  handleChange
10009
10160
  }) => {
10010
10161
  return jsx("div", {
10011
- children: enabled ? jsx(GoabContainer, {
10162
+ children: enabled ? isInReview ? jsx("div", {
10163
+ children: jsx("div", {
10164
+ children: GenerateRows$1(NonEmptyCell$1, schema, childPath, enabled, openDeleteDialog, handleChange, cells, uischema, isInReview, count, data)
10165
+ })
10166
+ }) : jsx(GoabContainer, {
10012
10167
  children: jsx("div", {
10013
10168
  children: jsx("div", {
10014
10169
  children: GenerateRows$1(NonEmptyCell$1, schema, childPath, enabled, openDeleteDialog, handleChange, cells, uischema, isInReview, count, data)
@@ -10062,11 +10217,12 @@ const ObjectArrayList$1 = ({
10062
10217
  }, 0);
10063
10218
  };
10064
10219
  const ObjectArrayControl = props => {
10065
- var _uischema$options5, _registers$categories, _registers$categories2;
10220
+ var _uischema$options5, _registers$categories3, _registers$categories4;
10066
10221
  const [registers, dispatch] = useReducer(objectListReducer, initialState);
10067
10222
  const [open, setOpen] = useState(false);
10068
10223
  const [rowData, setRowData] = useState(0);
10069
10224
  const [maxItemsError, setMaxItemsError] = useState('');
10225
+ const context = useContext(JsonFormsStepperContext);
10070
10226
  const {
10071
10227
  label,
10072
10228
  path,
@@ -10197,32 +10353,70 @@ const ObjectArrayControl = props => {
10197
10353
  const listTitle = label || ((_uischema$options5 = uischema.options) == null ? void 0 : _uischema$options5.title);
10198
10354
  const isInReview = isStepperReview === true;
10199
10355
  const isListWithDetail = controlElement.type === 'ListWithDetail';
10200
- return jsxs(Visible, {
10356
+ if (isInReview) {
10357
+ var _uischema$options6, _registers$categories, _registers$categories2;
10358
+ return jsx("tr", {
10359
+ children: jsxs(PageReviewContainer, {
10360
+ colSpan: 3,
10361
+ children: [listTitle ? isListWithDetail && additionalProps.required && (data === null || data === undefined) ? jsx("b", {
10362
+ children: jsxs(ListWithDetailWarningIconDiv, {
10363
+ children: [jsx(GoabIcon, {
10364
+ type: "warning",
10365
+ title: "warning",
10366
+ size: "small",
10367
+ theme: "filled",
10368
+ ml: "2xs",
10369
+ mt: "2xs"
10370
+ }), listTitle, " is required."]
10371
+ })
10372
+ }) : jsxs(ReviewHeader, {
10373
+ style: {
10374
+ width: '100%',
10375
+ display: 'grid',
10376
+ gridTemplateColumns: '1fr auto',
10377
+ alignItems: 'center'
10378
+ },
10379
+ children: [jsxs(ReviewLabel, {
10380
+ children: [listTitle, " ", jsx("span", {
10381
+ children: additionalProps.required && '(required)'
10382
+ }), maxItemsError && jsx("span", {
10383
+ style: {
10384
+ color: 'red',
10385
+ marginLeft: '1rem'
10386
+ },
10387
+ children: maxItemsError
10388
+ })]
10389
+ }), ((_uischema$options6 = uischema.options) == null ? void 0 : _uischema$options6.stepId) !== undefined && jsx(GoabButton, {
10390
+ type: "tertiary",
10391
+ size: "compact",
10392
+ onClick: () => {
10393
+ var _uischema$options7;
10394
+ return context == null ? void 0 : context.goToPage((_uischema$options7 = uischema.options) == null ? void 0 : _uischema$options7.stepId);
10395
+ },
10396
+ children: "Change"
10397
+ })]
10398
+ }) : null, jsx(ObjectArrayList$1, Object.assign({
10399
+ path: path,
10400
+ schema: schema,
10401
+ uischema: uischema,
10402
+ enabled: enabled,
10403
+ openDeleteDialog: openDeleteDialog,
10404
+ translations: {},
10405
+ count: ((_registers$categories = registers.categories[path]) == null ? void 0 : _registers$categories.count) || Object.keys(data || []).length,
10406
+ data: data || ((_registers$categories2 = registers.categories[path]) == null ? void 0 : _registers$categories2.data),
10407
+ cells: cells,
10408
+ config: config,
10409
+ isInReview: isInReview,
10410
+ handleChange: handleChangeWithData
10411
+ }, additionalProps))]
10412
+ })
10413
+ });
10414
+ }
10415
+ const content = jsxs(Visible, {
10201
10416
  visible: visible,
10202
10417
  "data-testid": "jsonforms-object-list-wrapper",
10203
10418
  children: [jsxs(ToolBarHeader, {
10204
- children: [isInReview ? listTitle ? isListWithDetail && additionalProps.required && (data === null || data === undefined) ? jsx("b", {
10205
- children: jsxs(ListWithDetailWarningIconDiv, {
10206
- children: [jsx(GoabIcon, {
10207
- type: "warning",
10208
- title: "warning",
10209
- size: "small",
10210
- theme: "filled",
10211
- ml: "2xs",
10212
- mt: "2xs"
10213
- }), listTitle, " is required."]
10214
- })
10215
- }) : jsxs("b", {
10216
- children: [listTitle, " ", jsx("span", {
10217
- children: additionalProps.required && '(required)'
10218
- }), maxItemsError && jsx("span", {
10219
- style: {
10220
- color: 'red',
10221
- marginLeft: '1rem'
10222
- },
10223
- children: maxItemsError
10224
- })]
10225
- }) : null : listTitle && jsxs(ObjectArrayTitle, {
10419
+ children: [listTitle && jsxs(ObjectArrayTitle, {
10226
10420
  children: [listTitle, " ", jsx("span", {
10227
10421
  children: additionalProps.required && '(required)'
10228
10422
  }), maxItemsError && jsx("span", {
@@ -10232,7 +10426,7 @@ const ObjectArrayControl = props => {
10232
10426
  },
10233
10427
  children: maxItemsError
10234
10428
  })]
10235
- }), !isInReview && jsx(ObjectArrayToolBar, {
10429
+ }), jsx(ObjectArrayToolBar, {
10236
10430
  errors: errors,
10237
10431
  label: label,
10238
10432
  addItem: (a, b) => () => addItem(a, b),
@@ -10251,8 +10445,8 @@ const ObjectArrayControl = props => {
10251
10445
  enabled: enabled,
10252
10446
  openDeleteDialog: openDeleteDialog,
10253
10447
  translations: {},
10254
- count: ((_registers$categories = registers.categories[path]) == null ? void 0 : _registers$categories.count) || Object.keys(data || []).length,
10255
- data: data || ((_registers$categories2 = registers.categories[path]) == null ? void 0 : _registers$categories2.data),
10448
+ count: ((_registers$categories3 = registers.categories[path]) == null ? void 0 : _registers$categories3.count) || Object.keys(data || []).length,
10449
+ data: data || ((_registers$categories4 = registers.categories[path]) == null ? void 0 : _registers$categories4.data),
10256
10450
  cells: cells,
10257
10451
  config: config,
10258
10452
  isInReview: isInReview,
@@ -10266,6 +10460,7 @@ const ObjectArrayControl = props => {
10266
10460
  })]
10267
10461
  })]
10268
10462
  });
10463
+ return content;
10269
10464
  };
10270
10465
 
10271
10466
  const ArrayControl = props => {
@@ -10298,16 +10493,14 @@ const ArrayControlReview = props => {
10298
10493
  const {
10299
10494
  visible
10300
10495
  } = props;
10301
- return jsx(Visible, {
10302
- visible: visible,
10303
- children: jsx(ObjectArrayControl, Object.assign({
10304
- arraySchema: {}
10305
- }, props, {
10306
- addItem: () => () => {},
10307
- isStepperReview: true,
10308
- enabled: true
10309
- }))
10310
- });
10496
+ if (!visible) return null;
10497
+ return jsx(ObjectArrayControl, Object.assign({
10498
+ arraySchema: {}
10499
+ }, props, {
10500
+ addItem: () => () => {},
10501
+ isStepperReview: true,
10502
+ enabled: true
10503
+ }));
10311
10504
  };
10312
10505
  const GoAArrayControlRenderer = withJsonFormsControlProps(ArrayControlBase);
10313
10506
  const GoAArrayControlReviewRenderer = withJsonFormsControlProps(ArrayControlReview);
@@ -10831,7 +11024,6 @@ const LeftTab = ({
10831
11024
  children: [jsx(TabName, {
10832
11025
  children: name
10833
11026
  }), enabled ? jsx(Trash, {
10834
- role: "trash button",
10835
11027
  children: jsx(GoabIconButton, {
10836
11028
  disabled: !enabled,
10837
11029
  icon: "trash",
@@ -11479,8 +11671,10 @@ const AddressLoopUpControlTableReview = props => {
11479
11671
  const {
11480
11672
  data,
11481
11673
  schema,
11482
- uischema
11674
+ uischema,
11675
+ path
11483
11676
  } = props;
11677
+ const jsonForms = useJsonForms();
11484
11678
  // eslint-disable-next-line
11485
11679
  const stepId = (_uischema$options = uischema.options) == null ? void 0 : _uischema$options.stepId;
11486
11680
  const formStepperCtx = useContext(JsonFormsStepperContext);
@@ -11526,36 +11720,80 @@ const AddressLoopUpControlTableReview = props => {
11526
11720
  label: 'Yukon'
11527
11721
  }];
11528
11722
  const provinceLabel = isAlbertaAddress ? 'Alberta' : ((_provinces$find = provinces.find(p => p.value === (data == null ? void 0 : data.subdivisionCode))) == null ? void 0 : _provinces$find.label) || (data == null ? void 0 : data.subdivisionCode);
11529
- const renderRow = (label, value) => jsxs("tr", {
11530
- children: [jsx(PageReviewNameCol, {
11531
- children: label
11532
- }), jsx(PageReviewNameCol, {
11533
- children: value
11534
- }), jsx("td", {
11535
- className: "goa-table-width-limit",
11536
- children: jsx(GoabButton, {
11537
- type: "tertiary",
11538
- size: "compact",
11539
- onClick: () => formStepperCtx == null ? void 0 : formStepperCtx.goToPage(stepId),
11540
- children: "Change"
11723
+ const getError = propName => {
11724
+ var _findMatchingError, _jsonForms$core;
11725
+ const normalizePath = p => p.replace(/\[(\d+)\]/g, '.$1').replace(/^\./, '').replace(/\//g, '.');
11726
+ // We need to return the message of the MATCHED error, but findError above returns boolean (mostly) or message if I refactor.
11727
+ // Let's refactor to return the error object or message.
11728
+ const findMatchingError = errors => {
11729
+ if (!errors) return undefined;
11730
+ for (const e of errors) {
11731
+ var _e$params, _e$params2;
11732
+ const rawErrorPath = e.dataPath || e.instancePath || '';
11733
+ const errorPath = normalizePath(rawErrorPath);
11734
+ const currentPath = normalizePath(path || '');
11735
+ const dotPath = currentPath ? `${currentPath}.${propName}` : propName;
11736
+ if (e.keyword === 'errorMessage' && (_e$params = e.params) != null && _e$params.errors) {
11737
+ const nested = findMatchingError(e.params.errors);
11738
+ if (nested) return e; // Return the wrapper error (contains the custom message)
11739
+ }
11740
+ if (errorPath === dotPath) return e;
11741
+ const isRequiredError = e.keyword === 'required';
11742
+ const missingProperty = (_e$params2 = e.params) == null ? void 0 : _e$params2.missingProperty;
11743
+ if (isRequiredError && missingProperty === propName) {
11744
+ if (errorPath === currentPath) return e;
11745
+ }
11746
+ }
11747
+ return undefined;
11748
+ };
11749
+ return (_findMatchingError = findMatchingError((_jsonForms$core = jsonForms.core) == null ? void 0 : _jsonForms$core.errors)) == null ? void 0 : _findMatchingError.message;
11750
+ };
11751
+ const isRequired = propName => {
11752
+ var _schema$required;
11753
+ return schema == null || (_schema$required = schema.required) == null ? void 0 : _schema$required.includes(propName);
11754
+ };
11755
+ const renderRow = (label, value, propName, showButton = true) => {
11756
+ var _error, _error2;
11757
+ let error = getError(propName);
11758
+ const required = isRequired(propName);
11759
+ if (required && !value && !error) {
11760
+ error = `${label} is required`;
11761
+ }
11762
+ return jsx("tr", {
11763
+ children: jsxs(PageReviewContainer, {
11764
+ colSpan: 3,
11765
+ children: [jsxs(ReviewHeader, {
11766
+ children: [jsxs(ReviewLabel, {
11767
+ children: [label, required && jsx(RequiredTextLabel, {
11768
+ children: " (required)"
11769
+ })]
11770
+ }), showButton && jsx(GoabButton, {
11771
+ type: "tertiary",
11772
+ size: "compact",
11773
+ onClick: () => formStepperCtx == null ? void 0 : formStepperCtx.goToPage(stepId, uischema.scope),
11774
+ children: "Change"
11775
+ })]
11776
+ }), jsxs(ReviewValue, {
11777
+ children: [value, error && jsxs(WarningIconDiv, {
11778
+ children: [jsx(GoabIcon, {
11779
+ type: "warning",
11780
+ size: "small"
11781
+ }), (_error = error) != null && _error.includes('is a required property') || (_error2 = error) != null && _error2.includes('required property') ? `${label} is required` : error]
11782
+ })]
11783
+ })]
11541
11784
  })
11542
- })]
11543
- });
11785
+ });
11786
+ };
11544
11787
  return jsxs(Fragment, {
11545
- children: [jsxs("tr", {
11788
+ children: [jsx("tr", {
11546
11789
  "data-testid": "address-lookup-table-review",
11547
- children: [jsx(PageReviewNameCol, {
11548
- children: jsx("strong", {
11790
+ children: jsx(PageReviewContainer, {
11791
+ colSpan: 3,
11792
+ children: jsx(ReviewLabel, {
11549
11793
  children: `${isAlbertaAddress ? 'Alberta' : 'Canada'} postal address`
11550
11794
  })
11551
- }), jsx("td", {
11552
- style: {
11553
- verticalAlign: 'top'
11554
- }
11555
- }), jsx("td", {
11556
- className: "goa-table-width-limit"
11557
- })]
11558
- }), renderRow('Address line 1', data == null ? void 0 : data.addressLine1), (data == null ? void 0 : data.addressLine2) && renderRow('Address line 2', data.addressLine2), renderRow('City', data == null ? void 0 : data.municipality), renderRow('Postal Code', data == null ? void 0 : data.postalCode), renderRow('Province', provinceLabel), renderRow('Country', 'Canada')]
11795
+ })
11796
+ }), renderRow('Address line 1', data == null ? void 0 : data.addressLine1, 'addressLine1'), (data == null ? void 0 : data.addressLine2) && renderRow('Address line 2', data.addressLine2, 'addressLine2'), renderRow('City', data == null ? void 0 : data.municipality, 'municipality'), renderRow('Postal Code', data == null ? void 0 : data.postalCode, 'postalCode'), renderRow('Province', provinceLabel, 'subdivisionCode'), renderRow('Country', 'Canada', 'country', false)]
11559
11797
  });
11560
11798
  };
11561
11799
 
@@ -12167,10 +12405,10 @@ const GoABaseTableReviewRenderers$1 = [
12167
12405
  renderer: GoAInputBaseTableReviewControl
12168
12406
  }, {
12169
12407
  tester: GoAArrayControlTester,
12170
- renderer: GoAInputBaseTableReviewControl
12408
+ renderer: GoAArrayControlReviewRenderer
12171
12409
  }, {
12172
12410
  tester: GoAListWithDetailsTester,
12173
- renderer: GoAInputBaseTableReviewControl
12411
+ renderer: GoAArrayControlReviewRenderer
12174
12412
  }, {
12175
12413
  tester: FullNameDobTester,
12176
12414
  renderer: GoAInputBaseTableReviewControl
@@ -12189,6 +12427,9 @@ const GoABaseTableReviewRenderers$1 = [
12189
12427
  }, {
12190
12428
  tester: HelpContentTester,
12191
12429
  renderer: EmptyHelpContentRenderer
12430
+ }, {
12431
+ tester: GoACalloutControlTester,
12432
+ renderer: CalloutReviewControl
12192
12433
  }];
12193
12434
  [
12194
12435
  // controls
@@ -12236,10 +12477,10 @@ const GoABaseTableReviewRenderers$1 = [
12236
12477
  renderer: GoAInputBaseReviewControl
12237
12478
  }, {
12238
12479
  tester: GoAArrayControlTester,
12239
- renderer: GoAInputBaseTableReviewControl // Array might still need table or custom grid
12480
+ renderer: GoAArrayControlReviewRenderer // Array might still need table or custom grid
12240
12481
  }, {
12241
12482
  tester: GoAListWithDetailsTester,
12242
- renderer: GoAInputBaseTableReviewControl // List with details is complex
12483
+ renderer: GoAArrayControlReviewRenderer // List with details is complex
12243
12484
  }, {
12244
12485
  tester: AddressLookUpTester,
12245
12486
  renderer: withJsonFormsControlProps(AddressLookUpControlReview)
@@ -12255,6 +12496,9 @@ const GoABaseTableReviewRenderers$1 = [
12255
12496
  }, {
12256
12497
  tester: HelpContentTester,
12257
12498
  renderer: EmptyHelpContentRenderer
12499
+ }, {
12500
+ tester: GoACalloutControlTester,
12501
+ renderer: CalloutReviewControl
12258
12502
  }];
12259
12503
  const FormStepperReviewer = props => {
12260
12504
  var _uischema$options$com, _uischema$options, _componentProps$readO;
@@ -12275,43 +12519,61 @@ const FormStepperReviewer = props => {
12275
12519
  return jsx(ReviewItem, {
12276
12520
  children: categories.map((category, categoryIndex) => {
12277
12521
  const categoryLabel = category.label || category.i18n || 'Unknown Category';
12522
+ const hasVisibleContent = element => {
12523
+ if (!isVisible(element, data, '', ajv, undefined)) {
12524
+ return false;
12525
+ }
12526
+ if (element.type === 'HelpContent' || element.type === 'Callout') {
12527
+ return false;
12528
+ }
12529
+ if (element.elements && Array.isArray(element.elements)) {
12530
+ return element.elements.some(child => hasVisibleContent(child));
12531
+ }
12532
+ return true;
12533
+ };
12534
+ const elementsToRender = category.elements
12535
+ //eslint-disable-next-line
12536
+ .filter(field => {
12537
+ var _field$rule;
12538
+ if (!hasVisibleContent(field)) {
12539
+ return false;
12540
+ }
12541
+ const conditionProps = (_field$rule = field.rule) == null ? void 0 : _field$rule.condition;
12542
+ /* istanbul ignore next */
12543
+ if (conditionProps && data) {
12544
+ var _conditionProps$scope;
12545
+ const canHideControlParts = conditionProps == null || (_conditionProps$scope = conditionProps.scope) == null ? void 0 : _conditionProps$scope.split('/');
12546
+ const canHideControl = canHideControlParts && canHideControlParts[(canHideControlParts == null ? void 0 : canHideControlParts.length) - 1];
12547
+ const isHidden = getProperty(data, canHideControl);
12548
+ if (!isHidden) {
12549
+ return field;
12550
+ }
12551
+ return false;
12552
+ }
12553
+ return true;
12554
+ }).map(e => {
12555
+ const layout = e;
12556
+ if (rescopeMaps.some(scope => {
12557
+ var _layout$elements;
12558
+ return (_layout$elements = layout.elements) == null ? void 0 : _layout$elements.map(el => {
12559
+ const element = el;
12560
+ return element.scope;
12561
+ }).includes(scope);
12562
+ })) {
12563
+ return layout.elements;
12564
+ } else {
12565
+ return e;
12566
+ }
12567
+ }).flat();
12568
+ if (elementsToRender.length === 0) {
12569
+ return null;
12570
+ }
12278
12571
  return jsxs(ReviewItemSection, {
12279
12572
  children: [jsx(ReviewItemHeader, {
12280
12573
  children: jsx(ReviewItemTitle, {
12281
12574
  children: categoryLabel
12282
12575
  })
12283
- }), category.elements
12284
- //eslint-disable-next-line
12285
- .filter(field => {
12286
- var _field$rule;
12287
- // [TODO] we need to double check why we cannot hide the elements at the element level
12288
- const conditionProps = (_field$rule = field.rule) == null ? void 0 : _field$rule.condition;
12289
- /* istanbul ignore next */
12290
- if (conditionProps && data) {
12291
- var _conditionProps$scope;
12292
- const canHideControlParts = conditionProps == null || (_conditionProps$scope = conditionProps.scope) == null ? void 0 : _conditionProps$scope.split('/');
12293
- const canHideControl = canHideControlParts && canHideControlParts[(canHideControlParts == null ? void 0 : canHideControlParts.length) - 1];
12294
- const isHidden = getProperty(data, canHideControl);
12295
- if (!isHidden) {
12296
- return field;
12297
- }
12298
- } else {
12299
- return field;
12300
- }
12301
- }).map(e => {
12302
- const layout = e;
12303
- if (rescopeMaps.some(scope => {
12304
- var _layout$elements;
12305
- return (_layout$elements = layout.elements) == null ? void 0 : _layout$elements.map(el => {
12306
- const element = el;
12307
- return element.scope;
12308
- }).includes(scope);
12309
- })) {
12310
- return layout.elements;
12311
- } else {
12312
- return e;
12313
- }
12314
- }).flat().map((element, elementIndex) => {
12576
+ }), elementsToRender.map((element, elementIndex) => {
12315
12577
  const stepperElement = Object.assign({}, element);
12316
12578
  stepperElement.options = Object.assign({}, stepperElement.options, {
12317
12579
  stepId: categoryIndex
@@ -14124,11 +14386,15 @@ const FullNameControl = props => {
14124
14386
  schema,
14125
14387
  handleChange,
14126
14388
  enabled,
14127
- visible
14389
+ visible,
14390
+ uischema
14128
14391
  } = props;
14129
14392
  const requiredFields = schema.required;
14130
14393
  const defaultName = {};
14131
14394
  const [nameData, setNameData] = useState(data || defaultName);
14395
+ const controlRef = useRef(null);
14396
+ const formStepperCtx = useContext(JsonFormsStepperContext);
14397
+ const stepperState = formStepperCtx == null || formStepperCtx.selectStepperState == null ? void 0 : formStepperCtx.selectStepperState();
14132
14398
  const updateFormData = updatedData => {
14133
14399
  updatedData = Object.fromEntries(Object.entries(updatedData).filter(([_, value]) => value !== ''));
14134
14400
  handleChange(path, updatedData);
@@ -14140,16 +14406,49 @@ const FullNameControl = props => {
14140
14406
  setNameData(updatedName);
14141
14407
  updateFormData(updatedName);
14142
14408
  };
14409
+ /* istanbul ignore next */
14410
+ useEffect(() => {
14411
+ if (stepperState != null && stepperState.targetScope && stepperState.targetScope === uischema.scope && controlRef.current) {
14412
+ const inputElement = controlRef.current.querySelector('input, goa-input');
14413
+ if (inputElement) {
14414
+ controlRef.current.scrollIntoView({
14415
+ behavior: 'smooth',
14416
+ block: 'center'
14417
+ });
14418
+ setTimeout(() => {
14419
+ var _inputElement$tagName;
14420
+ if ((_inputElement$tagName = inputElement.tagName) != null && _inputElement$tagName.toLowerCase().startsWith('goa-')) {
14421
+ inputElement.focused = true;
14422
+ if (typeof inputElement.focus === 'function') {
14423
+ inputElement.focus();
14424
+ }
14425
+ const shadowRoot = inputElement.shadowRoot;
14426
+ if (shadowRoot) {
14427
+ const actualInput = shadowRoot.querySelector('input');
14428
+ if (actualInput instanceof HTMLElement) {
14429
+ actualInput.focus();
14430
+ }
14431
+ }
14432
+ } else if (inputElement instanceof HTMLElement) {
14433
+ inputElement.focus();
14434
+ }
14435
+ }, 300);
14436
+ }
14437
+ }
14438
+ }, [stepperState == null ? void 0 : stepperState.targetScope, uischema.scope]);
14143
14439
  return jsx(Visible, {
14144
14440
  visible: visible,
14145
- children: jsx(NameInputs, {
14146
- firstName: nameData.firstName,
14147
- middleName: nameData.middleName,
14148
- lastName: nameData.lastName,
14149
- handleInputChange: handleInputChange,
14150
- data: data,
14151
- disabled: !enabled,
14152
- requiredFields: requiredFields
14441
+ children: jsx("div", {
14442
+ ref: controlRef,
14443
+ children: jsx(NameInputs, {
14444
+ firstName: nameData.firstName,
14445
+ middleName: nameData.middleName,
14446
+ lastName: nameData.lastName,
14447
+ handleInputChange: handleInputChange,
14448
+ data: data,
14449
+ disabled: !enabled,
14450
+ requiredFields: requiredFields
14451
+ })
14153
14452
  })
14154
14453
  });
14155
14454
  };
@@ -14195,10 +14494,14 @@ const FullNameDobControl = props => {
14195
14494
  schema,
14196
14495
  handleChange,
14197
14496
  enabled,
14198
- visible
14497
+ visible,
14498
+ uischema
14199
14499
  } = props;
14200
14500
  const requiredFields = schema.required;
14201
14501
  const [errors, setErrors] = useState({});
14502
+ const controlRef = useRef(null);
14503
+ const formStepperCtx = useContext(JsonFormsStepperContext);
14504
+ const stepperState = formStepperCtx == null || formStepperCtx.selectStepperState == null ? void 0 : formStepperCtx.selectStepperState();
14202
14505
  const defaultNameAndDob = {};
14203
14506
  const validDates = () => {
14204
14507
  const currentDate = new Date();
@@ -14234,93 +14537,126 @@ const FullNameDobControl = props => {
14234
14537
  setErrors(err);
14235
14538
  };
14236
14539
  useSyncAutofillFields(['firstName', 'middleName', 'lastName', 'dateOfBirth'], formData, updateFormData, handleRequiredFieldBlur);
14237
- return jsxs(Visible, {
14540
+ /* istanbul ignore next */
14541
+ useEffect(() => {
14542
+ if (stepperState != null && stepperState.targetScope && stepperState.targetScope === uischema.scope && controlRef.current) {
14543
+ const inputElement = controlRef.current.querySelector('input, goa-input');
14544
+ if (inputElement) {
14545
+ controlRef.current.scrollIntoView({
14546
+ behavior: 'smooth',
14547
+ block: 'center'
14548
+ });
14549
+ setTimeout(() => {
14550
+ var _inputElement$tagName;
14551
+ if ((_inputElement$tagName = inputElement.tagName) != null && _inputElement$tagName.toLowerCase().startsWith('goa-')) {
14552
+ inputElement.focused = true;
14553
+ if (typeof inputElement.focus === 'function') {
14554
+ inputElement.focus();
14555
+ }
14556
+ const shadowRoot = inputElement.shadowRoot;
14557
+ if (shadowRoot) {
14558
+ const actualInput = shadowRoot.querySelector('input');
14559
+ if (actualInput instanceof HTMLElement) {
14560
+ actualInput.focus();
14561
+ }
14562
+ }
14563
+ } else if (inputElement instanceof HTMLElement) {
14564
+ inputElement.focus();
14565
+ }
14566
+ }, 300);
14567
+ }
14568
+ }
14569
+ }, [stepperState == null ? void 0 : stepperState.targetScope, uischema.scope]);
14570
+ return jsx(Visible, {
14238
14571
  visible: visible,
14239
- children: [jsxs(GoabGrid, {
14240
- minChildWidth: "0ch",
14241
- gap: "s",
14242
- mb: "m",
14243
- children: [jsx(GoabFormItem, {
14244
- label: "First name",
14245
- requirement: schema != null && (_schema$required = schema.required) != null && _schema$required.includes('firstName') ? 'required' : undefined,
14246
- error: (_errors$firstName = errors == null ? void 0 : errors['firstName']) != null ? _errors$firstName : '',
14247
- testId: "form-item-first-name",
14248
- children: jsx(GoabInput, {
14249
- disabled: !enabled,
14250
- type: "text",
14251
- name: "firstName",
14252
- testId: "name-form-first-name",
14253
- ariaLabel: 'name-form-first-name',
14254
- value: formData.firstName,
14255
- onChange: detail => {
14256
- handleInputChange(detail.name, detail.value);
14257
- },
14258
- onBlur: detail => {
14259
- handleRequiredFieldBlur(detail.name);
14260
- },
14261
- width: "100%"
14262
- })
14263
- }), jsx(GoabFormItem, {
14264
- label: "Middle name",
14265
- requirement: schema != null && (_schema$required2 = schema.required) != null && _schema$required2.includes('middleName') ? 'required' : undefined,
14266
- children: jsx(GoabInput, {
14267
- type: "text",
14268
- name: "middleName",
14269
- disabled: !enabled,
14270
- testId: "name-form-middle-name",
14271
- ariaLabel: 'name-form-middle-name',
14272
- value: formData.middleName || '',
14273
- onChange: detail => handleInputChange(detail.name, detail.value),
14274
- width: "100%"
14275
- })
14276
- }), jsx(GoabFormItem, {
14277
- label: "Last name",
14278
- requirement: schema != null && (_schema$required3 = schema.required) != null && _schema$required3.includes('lastName') ? 'required' : undefined,
14279
- error: (_errors$lastName = errors == null ? void 0 : errors['lastName']) != null ? _errors$lastName : '',
14280
- testId: "form-item-last-name",
14281
- children: jsx(GoabInput, {
14282
- type: "text",
14283
- name: "lastName",
14284
- disabled: !enabled,
14285
- testId: "name-form-last-name",
14286
- ariaLabel: 'name-form-last-name',
14287
- value: formData.lastName || '',
14288
- onChange: detail => {
14289
- handleInputChange(detail.name, detail.value);
14290
- },
14291
- onBlur: detail => {
14292
- handleRequiredFieldBlur(detail.name);
14293
- },
14294
- width: "100%"
14572
+ children: jsxs("div", {
14573
+ ref: controlRef,
14574
+ children: [jsxs(GoabGrid, {
14575
+ minChildWidth: "0ch",
14576
+ gap: "s",
14577
+ mb: "m",
14578
+ children: [jsx(GoabFormItem, {
14579
+ label: "First name",
14580
+ requirement: schema != null && (_schema$required = schema.required) != null && _schema$required.includes('firstName') ? 'required' : undefined,
14581
+ error: (_errors$firstName = errors == null ? void 0 : errors['firstName']) != null ? _errors$firstName : '',
14582
+ testId: "form-item-first-name",
14583
+ children: jsx(GoabInput, {
14584
+ disabled: !enabled,
14585
+ type: "text",
14586
+ name: "firstName",
14587
+ testId: "name-form-first-name",
14588
+ ariaLabel: 'name-form-first-name',
14589
+ value: formData.firstName,
14590
+ onChange: detail => {
14591
+ handleInputChange(detail.name, detail.value);
14592
+ },
14593
+ onBlur: detail => {
14594
+ handleRequiredFieldBlur(detail.name);
14595
+ },
14596
+ width: "100%"
14597
+ })
14598
+ }), jsx(GoabFormItem, {
14599
+ label: "Middle name",
14600
+ requirement: schema != null && (_schema$required2 = schema.required) != null && _schema$required2.includes('middleName') ? 'required' : undefined,
14601
+ children: jsx(GoabInput, {
14602
+ type: "text",
14603
+ name: "middleName",
14604
+ disabled: !enabled,
14605
+ testId: "name-form-middle-name",
14606
+ ariaLabel: 'name-form-middle-name',
14607
+ value: formData.middleName || '',
14608
+ onChange: detail => handleInputChange(detail.name, detail.value),
14609
+ width: "100%"
14610
+ })
14611
+ }), jsx(GoabFormItem, {
14612
+ label: "Last name",
14613
+ requirement: schema != null && (_schema$required3 = schema.required) != null && _schema$required3.includes('lastName') ? 'required' : undefined,
14614
+ error: (_errors$lastName = errors == null ? void 0 : errors['lastName']) != null ? _errors$lastName : '',
14615
+ testId: "form-item-last-name",
14616
+ children: jsx(GoabInput, {
14617
+ type: "text",
14618
+ name: "lastName",
14619
+ disabled: !enabled,
14620
+ testId: "name-form-last-name",
14621
+ ariaLabel: 'name-form-last-name',
14622
+ value: formData.lastName || '',
14623
+ onChange: detail => {
14624
+ handleInputChange(detail.name, detail.value);
14625
+ },
14626
+ onBlur: detail => {
14627
+ handleRequiredFieldBlur(detail.name);
14628
+ },
14629
+ width: "100%"
14630
+ })
14631
+ })]
14632
+ }), jsx(GoabGrid, {
14633
+ minChildWidth: "0ch",
14634
+ gap: "s",
14635
+ mb: "m",
14636
+ children: jsx(GoabFormItem, {
14637
+ label: "Date of birth",
14638
+ error: (_errors$dateOfBirth = errors == null ? void 0 : errors['dateOfBirth']) != null ? _errors$dateOfBirth : '',
14639
+ requirement: requiredFields != null && requiredFields.includes('dateOfBirth') ? 'required' : undefined,
14640
+ children: jsx(GoabInput, {
14641
+ type: "date",
14642
+ name: "dateOfBirth",
14643
+ disabled: !enabled,
14644
+ min: validDates().minDate,
14645
+ max: validDates().maxDate,
14646
+ testId: `dob-form-dateOfBirth`,
14647
+ ariaLabel: "dob-form-dateOfBirth",
14648
+ placeholder: "YYYY-MM-DD",
14649
+ value: formData == null ? void 0 : formData.dateOfBirth,
14650
+ onChange: detail => handleInputChange(detail.name, detail.value),
14651
+ onBlur: detail => {
14652
+ /* istanbul ignore next */
14653
+ handleRequiredFieldBlur(detail.name);
14654
+ },
14655
+ width: "100%"
14656
+ })
14295
14657
  })
14296
14658
  })]
14297
- }), jsx(GoabGrid, {
14298
- minChildWidth: "0ch",
14299
- gap: "s",
14300
- mb: "m",
14301
- children: jsx(GoabFormItem, {
14302
- label: "Date of birth",
14303
- error: (_errors$dateOfBirth = errors == null ? void 0 : errors['dateOfBirth']) != null ? _errors$dateOfBirth : '',
14304
- requirement: requiredFields != null && requiredFields.includes('dateOfBirth') ? 'required' : undefined,
14305
- children: jsx(GoabInput, {
14306
- type: "date",
14307
- name: "dateOfBirth",
14308
- disabled: !enabled,
14309
- min: validDates().minDate,
14310
- max: validDates().maxDate,
14311
- testId: `dob-form-dateOfBirth`,
14312
- ariaLabel: "dob-form-dateOfBirth",
14313
- placeholder: "YYYY-MM-DD",
14314
- value: formData == null ? void 0 : formData.dateOfBirth,
14315
- onChange: detail => handleInputChange(detail.name, detail.value),
14316
- onBlur: detail => {
14317
- /* istanbul ignore next */
14318
- handleRequiredFieldBlur(detail.name);
14319
- },
14320
- width: "100%"
14321
- })
14322
- })
14323
- })]
14659
+ })
14324
14660
  });
14325
14661
  };
14326
14662