@abgov/jsonforms-components 2.57.4 → 2.58.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
@@ -7,7 +7,7 @@ import styled from 'styled-components';
7
7
  import axios from 'axios';
8
8
  import get$1 from 'lodash/get';
9
9
  import { isVisible, isEnabled, deriveLabelForUISchemaElement, rankWith, isStringControl, and, optionIs, isDateControl, isNumberControl, isIntegerControl, isDateTimeControl, isTimeControl, uiTypeIs, isControl as isControl$1, isEnumControl, isBooleanControl, createDefaultValue, Paths, Resolve, toDataPath, schemaTypeIs, formatIs, getAjv, schemaMatches, or, isObjectArrayControl, isPrimitiveArrayControl, composePaths, hasType, isCategorization, isLayout } from '@jsonforms/core';
10
- import * as _$b from 'lodash';
10
+ import * as _$c from 'lodash';
11
11
  import ___default, { isObject as isObject$i, isEmpty as isEmpty$1 } from 'lodash';
12
12
  import { useJsonForms, withJsonFormsControlProps, withJsonFormsEnumProps, withTranslateProps, JsonFormsDispatch, withJsonFormsAllOfProps, withJsonFormsArrayLayoutProps, withJsonFormsLayoutProps, withJsonFormsCellProps } from '@jsonforms/react';
13
13
  import dompurify from 'dompurify';
@@ -4078,16 +4078,16 @@ const ensureGoaDatePointerCursor = host => {
4078
4078
  sr.appendChild(style);
4079
4079
  };
4080
4080
 
4081
- let _$a = t => t,
4082
- _t$b,
4081
+ let _$b = t => t,
4082
+ _t$c,
4083
4083
  _t2$6;
4084
- styled.div(_t$b || (_t$b = _$a`
4084
+ styled.div(_t$c || (_t$c = _$b`
4085
4085
  height: 70vh;
4086
4086
  overflow-y: auto;
4087
4087
  padding-left: var(--goa-space-2xs);
4088
4088
  padding-right: var(--goa-space-2xs);
4089
4089
  `));
4090
- const Visible = styled.div(_t2$6 || (_t2$6 = _$a`
4090
+ const Visible = styled.div(_t2$6 || (_t2$6 = _$b`
4091
4091
  display: ${0};
4092
4092
  width: 100%;
4093
4093
  `), p => p.visible ? 'block' : 'none');
@@ -4213,6 +4213,15 @@ const OPTION_DEFINITIONS = defineFields$1({
4213
4213
  mainTitle: {
4214
4214
  schema: 'Main form title'
4215
4215
  },
4216
+ enableEmail: {
4217
+ schema: true
4218
+ },
4219
+ enablePhone: {
4220
+ schema: true
4221
+ },
4222
+ emailFirst: {
4223
+ schema: true
4224
+ },
4216
4225
  noDataMessage: {
4217
4226
  schema: 'no data'
4218
4227
  },
@@ -5767,8 +5776,8 @@ const useRegisterUser = () => {
5767
5776
  return ctx.user;
5768
5777
  };
5769
5778
 
5770
- let _$9 = t => t,
5771
- _t$a,
5779
+ let _$a = t => t,
5780
+ _t$b,
5772
5781
  _t2$5,
5773
5782
  _t3$4,
5774
5783
  _t4$4,
@@ -5780,10 +5789,10 @@ let _$9 = t => t,
5780
5789
  _t0$2,
5781
5790
  _t1$2,
5782
5791
  _t10$2;
5783
- const FormFieldWrapper = styled.div(_t$a || (_t$a = _$9`
5792
+ const FormFieldWrapper$1 = styled.div(_t$b || (_t$b = _$a`
5784
5793
  margin-bottom: var(--goa-space-l);
5785
5794
  `));
5786
- const WarningIconDiv = styled.div(_t2$5 || (_t2$5 = _$9`
5795
+ const WarningIconDiv = styled.div(_t2$5 || (_t2$5 = _$a`
5787
5796
  display: flex;
5788
5797
  align-items: flex-start;
5789
5798
  gap: var(--goa-space-2xs);
@@ -5791,58 +5800,58 @@ const WarningIconDiv = styled.div(_t2$5 || (_t2$5 = _$9`
5791
5800
  color: var(--goa-form-item-error-message-color);
5792
5801
  margin-top: var(--goa-form-item-message-margin-top);
5793
5802
  `));
5794
- const RequiredTextLabel = styled.label(_t3$4 || (_t3$4 = _$9`
5803
+ const RequiredTextLabel = styled.label(_t3$4 || (_t3$4 = _$a`
5795
5804
  color: var(--goa-color-greyscale-700);
5796
5805
  font-weight: var(--goa-font-weight-regular);
5797
5806
  font-size: var(--goa-font-size-2);
5798
5807
  line-height: var(--goa-line-height-1);
5799
5808
  font-style: normal;
5800
5809
  `));
5801
- styled.td(_t4$4 || (_t4$4 = _$9`
5810
+ styled.td(_t4$4 || (_t4$4 = _$a`
5802
5811
  width: 40%;
5803
5812
  padding-top: var(--goa-space-s);
5804
5813
  padding-bottom: var(--goa-space-s);
5805
5814
  padding-right: var(--goa-space-m);
5806
5815
  vertical-align: top;
5807
5816
  `));
5808
- styled.td(_t5$3 || (_t5$3 = _$9`
5817
+ styled.td(_t5$3 || (_t5$3 = _$a`
5809
5818
  width: 40%;
5810
5819
  text-align: left;
5811
5820
  vertical-align: top;
5812
5821
  `));
5813
- const PageReviewContainer = styled.td(_t6$3 || (_t6$3 = _$9`
5822
+ const PageReviewContainer = styled.td(_t6$3 || (_t6$3 = _$a`
5814
5823
  padding: 12px 0px;
5815
5824
  border-bottom: 1px solid #ccc;
5816
5825
  width: 100%;
5817
5826
  vertical-align: top;
5818
5827
  `));
5819
- const ReviewHeader = styled.div(_t7$2 || (_t7$2 = _$9`
5828
+ const ReviewHeader = styled.div(_t7$2 || (_t7$2 = _$a`
5820
5829
  display: flex;
5821
5830
  justify-content: space-between;
5822
5831
  align-items: center;
5823
5832
  width: 100%;
5824
5833
  `));
5825
- const ReviewLabel = styled.div(_t8$2 || (_t8$2 = _$9`
5834
+ const ReviewLabel = styled.div(_t8$2 || (_t8$2 = _$a`
5826
5835
  font-weight: var(--goa-font-weight-bold);
5827
5836
  font-size: var(--goa-font-size-4);
5828
5837
  line-height: var(--goa-line-height-3);
5829
5838
  color: var(--goa-color-text-default);
5830
5839
  `));
5831
- const ReviewValue = styled.div(_t9$2 || (_t9$2 = _$9`
5840
+ const ReviewValue = styled.div(_t9$2 || (_t9$2 = _$a`
5832
5841
  margin-top: var(--goa-space-m);
5833
5842
  color: var(--goa-color-text-default);
5834
5843
  font-size: var(--goa-font-size-4);
5835
5844
  line-height: var(--goa-line-height-3);
5836
5845
  `));
5837
5846
  //Check and unchecked are different heights otherwise
5838
- const CheckboxWrapper = styled.div(_t0$2 || (_t0$2 = _$9`
5847
+ const CheckboxWrapper = styled.div(_t0$2 || (_t0$2 = _$a`
5839
5848
  min-height: 28px;
5840
5849
  `));
5841
- styled.h4(_t1$2 || (_t1$2 = _$9`
5850
+ styled.h4(_t1$2 || (_t1$2 = _$a`
5842
5851
  margin: 0 0 0.25rem 0;
5843
5852
  fontsize: larger;
5844
5853
  `));
5845
- styled.h4(_t10$2 || (_t10$2 = _$9`
5854
+ styled.h4(_t10$2 || (_t10$2 = _$a`
5846
5855
  border-bottom: 1px solid #ddd;
5847
5856
  `));
5848
5857
 
@@ -5957,7 +5966,7 @@ const pickPropertyValues = (obj, property, endWithType) => {
5957
5966
  Object.entries(obj).forEach(function ([key, value]) {
5958
5967
  if (key === property) {
5959
5968
  values.push(value);
5960
- } else if (_$b.isObject(value)) {
5969
+ } else if (_$c.isObject(value)) {
5961
5970
  // if the object type is equal to end type, we are not going to continue the recursive approach
5962
5971
  if ((value == null ? void 0 : value.type) === endWithType) {
5963
5972
  if (property in value) {
@@ -5966,7 +5975,7 @@ const pickPropertyValues = (obj, property, endWithType) => {
5966
5975
  } else {
5967
5976
  values = [...values, ...pickPropertyValues(value, property, endWithType)];
5968
5977
  }
5969
- } else if (_$b.isArray(value)) {
5978
+ } else if (_$c.isArray(value)) {
5970
5979
  const nextValues = value.map(function (arrayObj) {
5971
5980
  return pickPropertyValues(arrayObj, property, endWithType);
5972
5981
  });
@@ -6969,7 +6978,7 @@ const GoAInputBaseControl = props => {
6969
6978
  defaultRegisters: undefined,
6970
6979
  children: jsx(Visible, {
6971
6980
  visible: visible,
6972
- children: jsx(FormFieldWrapper, {
6981
+ children: jsx(FormFieldWrapper$1, {
6973
6982
  ref: controlRef,
6974
6983
  className: "jsonforms-elements-wrapper",
6975
6984
  id: isStepperReview === true ? `review-base-${path}-element-wrapper` : `${path}-element-wrapper`,
@@ -8270,8 +8279,8 @@ const BooleanRadioControl = props => jsx(GoAInputBaseControl, Object.assign({},
8270
8279
  const GoABooleanRadioControlTester = rankWith(3, and(isBooleanControl, optionIs('radio', true)));
8271
8280
  const GoABooleanRadioControl = withJsonFormsControlProps(BooleanRadioControl);
8272
8281
 
8273
- let _$8 = t => t,
8274
- _t$9;
8282
+ let _$9 = t => t,
8283
+ _t$a;
8275
8284
  const Checkboxes = ({
8276
8285
  children,
8277
8286
  orientation,
@@ -8283,7 +8292,7 @@ const Checkboxes = ({
8283
8292
  children: children
8284
8293
  });
8285
8294
  };
8286
- const CheckBoxGroupDiv = styled.div(_t$9 || (_t$9 = _$8`
8295
+ const CheckBoxGroupDiv = styled.div(_t$a || (_t$a = _$9`
8287
8296
  .horizontal {
8288
8297
  display: flex;
8289
8298
  flex-direction: row;
@@ -8643,8 +8652,8 @@ $$7({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$1 }, {
8643
8652
  }
8644
8653
  });
8645
8654
 
8646
- let _$7 = t => t,
8647
- _t$8,
8655
+ let _$8 = t => t,
8656
+ _t$9,
8648
8657
  _t2$4,
8649
8658
  _t3$3,
8650
8659
  _t4$3,
@@ -8675,21 +8684,21 @@ let _$7 = t => t,
8675
8684
  _t27$1,
8676
8685
  _t28$1,
8677
8686
  _t29;
8678
- const DeleteDialogContent = styled.div(_t$8 || (_t$8 = _$7`
8687
+ const DeleteDialogContent = styled.div(_t$9 || (_t$9 = _$8`
8679
8688
  margin-bottom: var(--goa-space-m);
8680
8689
  `));
8681
- const MarginTop = styled.div(_t2$4 || (_t2$4 = _$7`
8690
+ const MarginTop = styled.div(_t2$4 || (_t2$4 = _$8`
8682
8691
  margin-top: var(--goa-space-l);
8683
8692
  `));
8684
- const NonEmptyCellStyle = styled.div(_t3$3 || (_t3$3 = _$7`
8693
+ const NonEmptyCellStyle = styled.div(_t3$3 || (_t3$3 = _$8`
8685
8694
  goa-table thead th {
8686
8695
  background-color: #000:
8687
8696
  }
8688
8697
  `));
8689
- const ToolBarHeader = styled.div(_t4$3 || (_t4$3 = _$7`
8698
+ const ToolBarHeader = styled.div(_t4$3 || (_t4$3 = _$8`
8690
8699
  margin-bottom: var(--goa-space-s);
8691
8700
  `));
8692
- const ObjectArrayTitle = styled.h3(_t5$2 || (_t5$2 = _$7`
8701
+ const ObjectArrayTitle = styled.h3(_t5$2 || (_t5$2 = _$8`
8693
8702
  margin-bottom: var(--goa-space-s);
8694
8703
 
8695
8704
  span {
@@ -8697,24 +8706,24 @@ const ObjectArrayTitle = styled.h3(_t5$2 || (_t5$2 = _$7`
8697
8706
  font-size: var(--goa-font-size-2);
8698
8707
  }
8699
8708
  `));
8700
- const RequiredSpan = styled.span(_t6$2 || (_t6$2 = _$7`
8709
+ const RequiredSpan = styled.span(_t6$2 || (_t6$2 = _$8`
8701
8710
  color: #666666;
8702
8711
  font-weight: var(--goa-font-weight-regular);
8703
8712
  font-size: var(--goa-font-size-2);
8704
8713
  `));
8705
- const TextCenter = styled.div(_t7$1 || (_t7$1 = _$7`
8714
+ const TextCenter = styled.div(_t7$1 || (_t7$1 = _$8`
8706
8715
  text-align: center;
8707
8716
  `));
8708
- const SideMenuItem = styled.div(_t8$1 || (_t8$1 = _$7`
8717
+ const SideMenuItem = styled.div(_t8$1 || (_t8$1 = _$8`
8709
8718
  margin-top: 1rem;
8710
8719
  `));
8711
- const RowFlex = styled.div(_t9$1 || (_t9$1 = _$7`
8720
+ const RowFlex = styled.div(_t9$1 || (_t9$1 = _$8`
8712
8721
  display: flex;
8713
8722
  margin: 1.5rem 0 1.5rem 0;
8714
8723
 
8715
8724
  align-items: flex-start;
8716
8725
  `));
8717
- const RowFlexMenuMain = styled.div(_t0$1 || (_t0$1 = _$7`
8726
+ const RowFlexMenuMain = styled.div(_t0$1 || (_t0$1 = _$8`
8718
8727
  display: flex;
8719
8728
  flex-direction: column;
8720
8729
  align-items: stretch;
@@ -8731,7 +8740,7 @@ const RowFlexMenuMain = styled.div(_t0$1 || (_t0$1 = _$7`
8731
8740
  border-color: var(--goa-color-greyscale-400);
8732
8741
  }
8733
8742
  `));
8734
- const RowFlexMenuLeft = styled.div(_t1$1 || (_t1$1 = _$7`
8743
+ const RowFlexMenuLeft = styled.div(_t1$1 || (_t1$1 = _$8`
8735
8744
  display: flex;
8736
8745
  flex-direction: row;
8737
8746
  align-items: stretch;
@@ -8747,12 +8756,12 @@ const RowFlexMenuLeft = styled.div(_t1$1 || (_t1$1 = _$7`
8747
8756
  border-color: var(--goa-color-greyscale-400);
8748
8757
  }
8749
8758
  `));
8750
- const FlexTabs = styled.div(_t10$1 || (_t10$1 = _$7`
8759
+ const FlexTabs = styled.div(_t10$1 || (_t10$1 = _$8`
8751
8760
  flex-direction: column;
8752
8761
  flex: 1;
8753
8762
  overflow-y: auto !important;
8754
8763
  `));
8755
- const FlexTabsWithMargin = styled.div(_t11$1 || (_t11$1 = _$7`
8764
+ const FlexTabsWithMargin = styled.div(_t11$1 || (_t11$1 = _$8`
8756
8765
  flex-direction: column;
8757
8766
  flex: 1;
8758
8767
  overflow-y: auto !important;
@@ -8761,64 +8770,64 @@ const FlexTabsWithMargin = styled.div(_t11$1 || (_t11$1 = _$7`
8761
8770
  flex-shrink: 1;
8762
8771
  // max-height: 500px;
8763
8772
  `));
8764
- const FlexForm = styled.div(_t12$1 || (_t12$1 = _$7`
8773
+ const FlexForm = styled.div(_t12$1 || (_t12$1 = _$8`
8765
8774
  flex-direction: column;
8766
8775
  flex: 3;
8767
8776
  flex-shrink: 0;
8768
8777
  overflow-y: visible;
8769
8778
  `));
8770
- const TabName = styled.div(_t13$1 || (_t13$1 = _$7`
8779
+ const TabName = styled.div(_t13$1 || (_t13$1 = _$8`
8771
8780
  margin: 1rem 0 1rem 1rem;
8772
8781
  font-weight: 400;
8773
8782
  white-space: nowrap;
8774
8783
  overflow: hidden;
8775
8784
  text-overflow: ellipsis;
8776
8785
  `));
8777
- const Trash = styled.div(_t14$1 || (_t14$1 = _$7`
8786
+ const Trash = styled.div(_t14$1 || (_t14$1 = _$8`
8778
8787
  margin: 0.9rem 0.4rem 0.6rem 0.75rem;
8779
8788
  margin-left: auto;
8780
8789
  `));
8781
- const ListContainer = styled.div(_t15$1 || (_t15$1 = _$7`
8790
+ const ListContainer = styled.div(_t15$1 || (_t15$1 = _$8`
8782
8791
  padding: 0 0 0 0;
8783
8792
  `));
8784
- styled.div(_t16$1 || (_t16$1 = _$7`
8793
+ styled.div(_t16$1 || (_t16$1 = _$8`
8785
8794
  padding: 0 0 var(--goa-space-l) 0;
8786
8795
  `));
8787
- const UpdateListContainer = styled.div(_t17$1 || (_t17$1 = _$7`
8796
+ const UpdateListContainer = styled.div(_t17$1 || (_t17$1 = _$8`
8788
8797
  width: 100%;
8789
8798
  border: 1px solid #dcdcdc;
8790
8799
  padding: var(--goa-space-xl);
8791
8800
  `));
8792
- styled.div(_t18$1 || (_t18$1 = _$7`
8801
+ styled.div(_t18$1 || (_t18$1 = _$8`
8793
8802
  padding: 0 1.5rem 0 0;
8794
8803
  border: 1px solid #dcdcdc;
8795
8804
  `));
8796
- const TableTHHeader = styled.th(_t19$1 || (_t19$1 = _$7`
8805
+ const TableTHHeader = styled.th(_t19$1 || (_t19$1 = _$8`
8797
8806
  background-color: var(--goa-color-greyscale-100) !important;
8798
8807
  vertical-align: top;
8799
8808
  `));
8800
- const ObjectArrayWarningIconDiv = styled.div(_t20$1 || (_t20$1 = _$7`
8809
+ const ObjectArrayWarningIconDiv = styled.div(_t20$1 || (_t20$1 = _$8`
8801
8810
  display: inline-flex;
8802
8811
  align-items: flex-start;
8803
8812
  gap: 0.25rem;
8804
8813
  font-size: var(--goa-font-size-2);
8805
8814
  color: var(--goa-color-interactive-error);
8806
8815
  `));
8807
- const ListWithDetailWarningIconDiv = styled.div(_t21$1 || (_t21$1 = _$7`
8816
+ const ListWithDetailWarningIconDiv = styled.div(_t21$1 || (_t21$1 = _$8`
8808
8817
  display: inline-flex;
8809
8818
  align-items: flex-start;
8810
8819
  gap: 0.25rem;
8811
8820
  font-size: var(--goa-font-size-3);
8812
8821
  color: var(--goa-color-interactive-error);
8813
8822
  `));
8814
- styled.label(_t22$1 || (_t22$1 = _$7`
8823
+ styled.label(_t22$1 || (_t22$1 = _$8`
8815
8824
  color: var(--goa-color-interactive-error);
8816
8825
  font-weight: var(--goa-font-weight-regular);
8817
8826
  font-size: var(--goa-font-size-3);
8818
8827
  line-height: var(--goa-line-height-1);
8819
8828
  font-style: normal;
8820
8829
  `));
8821
- styled.div(_t23$1 || (_t23$1 = _$7`
8830
+ styled.div(_t23$1 || (_t23$1 = _$8`
8822
8831
  margin-top: var(--goa-space-m);
8823
8832
  color: var(--goa-color-interactive-error);
8824
8833
  font-weight: var(--goa-font-weight-regular);
@@ -8826,10 +8835,10 @@ styled.div(_t23$1 || (_t23$1 = _$7`
8826
8835
  line-height: var(--goa-line-height-1);
8827
8836
  font-style: normal;
8828
8837
  `));
8829
- const HilightCellWarning = styled.div(_t24$1 || (_t24$1 = _$7`
8838
+ const HilightCellWarning = styled.div(_t24$1 || (_t24$1 = _$8`
8830
8839
  background-color: transparent;
8831
8840
  `));
8832
- const FixTableHeaderAlignment = styled.div(_t25$1 || (_t25$1 = _$7`
8841
+ const FixTableHeaderAlignment = styled.div(_t25$1 || (_t25$1 = _$8`
8833
8842
  table thead th:nth-child(3) {
8834
8843
  text-align: center;
8835
8844
  }
@@ -8838,22 +8847,22 @@ const FixTableHeaderAlignment = styled.div(_t25$1 || (_t25$1 = _$7`
8838
8847
  text-align: center;
8839
8848
  }
8840
8849
  `));
8841
- const ListWithDetailsReviewCellDiv = styled.div(_t26$1 || (_t26$1 = _$7`
8850
+ const ListWithDetailsReviewCellDiv = styled.div(_t26$1 || (_t26$1 = _$8`
8842
8851
  display: 'flex';
8843
8852
  flex-direction: 'column';
8844
8853
  text-align: 'start';
8845
8854
  `));
8846
- const IconsContainer = styled.div(_t27$1 || (_t27$1 = _$7`
8855
+ const IconsContainer = styled.div(_t27$1 || (_t27$1 = _$8`
8847
8856
  display: flex;
8848
8857
  align-items: center;
8849
8858
  justify-content: flex-end;
8850
8859
  gap: var(--goa-space-xs);
8851
8860
  padding-bottom: var(--goa-space-xs);
8852
8861
  `));
8853
- const TableContentContainer = styled.div(_t28$1 || (_t28$1 = _$7`
8862
+ const TableContentContainer = styled.div(_t28$1 || (_t28$1 = _$8`
8854
8863
  padding: var(--goa-space-l);
8855
8864
  `));
8856
- const NoDataMessage = styled.div(_t29 || (_t29 = _$7`
8865
+ const NoDataMessage = styled.div(_t29 || (_t29 = _$8`
8857
8866
  padding: var(--goa-space-xl) var(--goa-space-l);
8858
8867
  color: var(--goa-color-greyscale-700);
8859
8868
  font: var(--goa-typography-body-m);
@@ -10206,7 +10215,7 @@ const GoAEmailInput = props => {
10206
10215
  visible: visible,
10207
10216
  children: jsx(JsonFormRegisterProvider, {
10208
10217
  defaultRegisters: undefined,
10209
- children: jsx(FormFieldWrapper, {
10218
+ children: jsx(FormFieldWrapper$1, {
10210
10219
  children: jsx(GoabFormItem, {
10211
10220
  error: isVisited && finalErrors,
10212
10221
  testId: "form-email-input-wrapper",
@@ -10251,8 +10260,8 @@ const GoAEmailControl = props => jsx(GoAEmailInput, Object.assign({}, props));
10251
10260
  const GoAEmailControlTester = rankWith(4, and(isControl$1, schemaTypeIs('string'), formatIs('email')));
10252
10261
  const GoAInputEmailControl = withJsonFormsControlProps(GoAEmailControl);
10253
10262
 
10254
- let _$6 = t => t,
10255
- _t$7;
10263
+ let _$7 = t => t,
10264
+ _t$8;
10256
10265
  const renderLayoutElements = (elements, schema, path, enabled, renderers, cells) => {
10257
10266
  return elements.map((child, index) => jsx(JsonFormsDispatch, {
10258
10267
  uischema: child,
@@ -10331,14 +10340,14 @@ const ReviewLayoutRenderer = ({
10331
10340
  }
10332
10341
  }
10333
10342
  };
10334
- const ReviewGrid = styled.div(_t$7 || (_t$7 = _$6`
10343
+ const ReviewGrid = styled.div(_t$8 || (_t$8 = _$7`
10335
10344
  display: grid;
10336
10345
  grid-template-columns: repeat(auto-fit, minmax(250px, calc(50% - 8px)));
10337
10346
  gap: 16px;
10338
10347
  `));
10339
10348
 
10340
- let _$5 = t => t,
10341
- _t$6,
10349
+ let _$6 = t => t,
10350
+ _t$7,
10342
10351
  _t2$3,
10343
10352
  _t3$2,
10344
10353
  _t4$2,
@@ -10368,11 +10377,11 @@ let _$5 = t => t,
10368
10377
  _t26,
10369
10378
  _t27,
10370
10379
  _t28;
10371
- const ReviewItem = styled.div(_t$6 || (_t$6 = _$5`
10380
+ const ReviewItem = styled.div(_t$7 || (_t$7 = _$6`
10372
10381
  display: flex;
10373
10382
  flex-direction: column;
10374
10383
  `));
10375
- const CompletionStatus = styled.div(_t2$3 || (_t2$3 = _$5`
10384
+ const CompletionStatus = styled.div(_t2$3 || (_t2$3 = _$6`
10376
10385
  padding: 0;
10377
10386
  margin: 0;
10378
10387
  padding-top: var(--goa-space-xl);
@@ -10380,14 +10389,14 @@ const CompletionStatus = styled.div(_t2$3 || (_t2$3 = _$5`
10380
10389
  display: flex;
10381
10390
  flex-direction: column;
10382
10391
  `));
10383
- const BarTop = styled.div(_t3$2 || (_t3$2 = _$5`
10392
+ const BarTop = styled.div(_t3$2 || (_t3$2 = _$6`
10384
10393
  display: flex;
10385
10394
 
10386
10395
  .progress-text {
10387
10396
  margin-left: auto;
10388
10397
  }
10389
10398
  `));
10390
- const Bar = styled.div(_t4$2 || (_t4$2 = _$5`
10399
+ const Bar = styled.div(_t4$2 || (_t4$2 = _$6`
10391
10400
  display: flex;
10392
10401
  flex-direction: row;
10393
10402
 
@@ -10417,15 +10426,15 @@ const Bar = styled.div(_t4$2 || (_t4$2 = _$5`
10417
10426
  box-sizing: border-box;
10418
10427
  }
10419
10428
  `));
10420
- styled.div(_t5$1 || (_t5$1 = _$5``));
10421
- const BadgeWrapper = styled.div(_t6$1 || (_t6$1 = _$5`
10429
+ styled.div(_t5$1 || (_t5$1 = _$6``));
10430
+ const BadgeWrapper = styled.div(_t6$1 || (_t6$1 = _$6`
10422
10431
  margin-left: 10px;
10423
10432
  margin-top: 7px;
10424
10433
  `));
10425
- const CompletionTextHeader = styled.h3(_t7 || (_t7 = _$5`
10434
+ const CompletionTextHeader = styled.h3(_t7 || (_t7 = _$6`
10426
10435
  display: flex;
10427
10436
  `));
10428
- const ReviewItemSection = styled.div(_t8 || (_t8 = _$5`
10437
+ const ReviewItemSection = styled.div(_t8 || (_t8 = _$6`
10429
10438
  margin-bottom: var(--goa-space-m);
10430
10439
  padding: var(--goa-space-xl) var(--goa-space-2xl);
10431
10440
  border: 1px solid var(--goa-color-greyscale-300);
@@ -10435,18 +10444,18 @@ const ReviewItemSection = styled.div(_t8 || (_t8 = _$5`
10435
10444
  max-width: 1600px;
10436
10445
  }
10437
10446
  `));
10438
- const ReviewItemHeader = styled.div(_t9 || (_t9 = _$5`
10447
+ const ReviewItemHeader = styled.div(_t9 || (_t9 = _$6`
10439
10448
  display: flex;
10440
10449
  align-items: center;
10441
10450
  justify-content: space-between;
10442
10451
  margin-bottom: var(--goa-space-xl);
10443
10452
  `));
10444
- const ReviewItemTitle = styled.div(_t0 || (_t0 = _$5`
10453
+ const ReviewItemTitle = styled.div(_t0 || (_t0 = _$6`
10445
10454
  font-size: var(--goa-space-l);
10446
10455
  line-height: var(--goa-space-xl);
10447
10456
  font-weight: 300;
10448
10457
  `));
10449
- styled.div(_t1 || (_t1 = _$5`
10458
+ styled.div(_t1 || (_t1 = _$6`
10450
10459
  color: #0070c4;
10451
10460
  text-decoration: underline;
10452
10461
  outline: none;
@@ -10457,20 +10466,20 @@ styled.div(_t1 || (_t1 = _$5`
10457
10466
  background-color: #e6f7ff;
10458
10467
  }
10459
10468
  `));
10460
- styled.div(_t10 || (_t10 = _$5`
10469
+ styled.div(_t10 || (_t10 = _$6`
10461
10470
  margin-left: var(--goa-space-m);
10462
10471
  `));
10463
- styled.div(_t11 || (_t11 = _$5`
10472
+ styled.div(_t11 || (_t11 = _$6`
10464
10473
  margin-bottom: var(--goa-space-m);
10465
10474
  `));
10466
- styled.div(_t12 || (_t12 = _$5`
10475
+ styled.div(_t12 || (_t12 = _$6`
10467
10476
  margin: var(--goa-space-s);
10468
10477
  width: 100%;
10469
10478
  `));
10470
- styled.h3(_t13 || (_t13 = _$5`
10479
+ styled.h3(_t13 || (_t13 = _$6`
10471
10480
  text-transform: capitalize;
10472
10481
  `));
10473
- const RightAlignmentDiv = styled.div(_t14 || (_t14 = _$5`
10482
+ const RightAlignmentDiv = styled.div(_t14 || (_t14 = _$6`
10474
10483
  @media screen and (max-width: 767px) {
10475
10484
  margin-bottom: var(--goa-space-l);
10476
10485
  }
@@ -10480,50 +10489,50 @@ const RightAlignmentDiv = styled.div(_t14 || (_t14 = _$5`
10480
10489
  margin-bottom: var(--goa-space-l);
10481
10490
  }
10482
10491
  `));
10483
- const FormStepperSummaryH3 = styled.h3(_t15 || (_t15 = _$5`
10492
+ const FormStepperSummaryH3 = styled.h3(_t15 || (_t15 = _$6`
10484
10493
  flex: 1;
10485
10494
  margin-bottom: var(--goa-space-m);
10486
10495
  font-size: var(--goa-font-size-7);
10487
10496
  line-height: var(--goa-line-height-4);
10488
10497
  font-weight: var(--goa-font-weight-regular);
10489
10498
  `));
10490
- const PageRenderPadding = styled.div(_t16 || (_t16 = _$5`
10499
+ const PageRenderPadding = styled.div(_t16 || (_t16 = _$6`
10491
10500
  margin-top: var(--goa-space-2xl);
10492
10501
  `));
10493
- styled.div(_t17 || (_t17 = _$5`
10502
+ styled.div(_t17 || (_t17 = _$6`
10494
10503
  margin-bottom: var(--goa-space-2xl);
10495
10504
  `));
10496
- const PageBorder = styled.div(_t18 || (_t18 = _$5`
10505
+ const PageBorder = styled.div(_t18 || (_t18 = _$6`
10497
10506
  padding: var(--goa-space-m) var(--goa-space-3xl);
10498
10507
  `));
10499
- styled.div(_t19 || (_t19 = _$5`
10508
+ styled.div(_t19 || (_t19 = _$6`
10500
10509
  .element-style {
10501
10510
  max-width: 1600px;
10502
10511
  }
10503
10512
  `));
10504
- styled.div(_t20 || (_t20 = _$5`
10513
+ styled.div(_t20 || (_t20 = _$6`
10505
10514
  padding: var(--goa-space-xl) var(--goa-space-2xl);
10506
10515
  border: 1px solid var(--goa-color-greyscale-300);
10507
10516
  border-radius: var(--goa-border-radius-xl);
10508
10517
  `));
10509
- styled.div(_t21 || (_t21 = _$5`
10518
+ styled.div(_t21 || (_t21 = _$6`
10510
10519
  margin-top: var(--goa-space-xl);
10511
10520
  display: flex;
10512
10521
  justify-content: space-between;
10513
10522
  `));
10514
- styled.h3(_t22 || (_t22 = _$5`
10523
+ styled.h3(_t22 || (_t22 = _$6`
10515
10524
  color: var(--goa-color-text-secondary) !important;
10516
10525
  margin-bottom: var(--goa-space-l);
10517
10526
  `));
10518
- const CategoryStatus = styled.td(_t23 || (_t23 = _$5`
10527
+ const CategoryStatus = styled.td(_t23 || (_t23 = _$6`
10519
10528
  width: var(--goa-space-xl);
10520
10529
  padding-right: var(--goa-space-xl);
10521
10530
  align-content: center;
10522
10531
  `));
10523
- const Center = styled.div(_t24 || (_t24 = _$5`
10532
+ const Center = styled.div(_t24 || (_t24 = _$6`
10524
10533
  padding-top: 5px;
10525
10534
  `));
10526
- const PageStepperRow = styled.tr(_t25 || (_t25 = _$5`
10535
+ const PageStepperRow = styled.tr(_t25 || (_t25 = _$6`
10527
10536
  ${0}
10528
10537
  `), ({
10529
10538
  disabled
@@ -10548,7 +10557,7 @@ const PageStepperRow = styled.tr(_t25 || (_t25 = _$5`
10548
10557
  outline: 3px solid var(--goa-color-interactive-focus);
10549
10558
  }
10550
10559
  `);
10551
- const SectionHeaderRowTr = styled.tr(_t26 || (_t26 = _$5`
10560
+ const SectionHeaderRowTr = styled.tr(_t26 || (_t26 = _$6`
10552
10561
  & > td {
10553
10562
  border: 0 !important;
10554
10563
  padding-top: var(--goa-space-l);
@@ -10560,7 +10569,7 @@ const SectionHeaderRowTr = styled.tr(_t26 || (_t26 = _$5`
10560
10569
  border-top: none !important;
10561
10570
  }
10562
10571
  `));
10563
- const SummaryRowLink = styled.a(_t27 || (_t27 = _$5`
10572
+ const SummaryRowLink = styled.a(_t27 || (_t27 = _$6`
10564
10573
  position: relative;
10565
10574
  top: var(--goa-space-xs);
10566
10575
  &:focus-visible {
@@ -10569,7 +10578,7 @@ const SummaryRowLink = styled.a(_t27 || (_t27 = _$5`
10569
10578
  }
10570
10579
  padding: 0 var(--goa-space-s) var(--goa-space-xs); var(--goa-space-s);
10571
10580
  `));
10572
- const SummaryTd = styled.td(_t28 || (_t28 = _$5`
10581
+ const SummaryTd = styled.td(_t28 || (_t28 = _$6`
10573
10582
  border: 0 !important;
10574
10583
  padding: 0 !important;
10575
10584
  `));
@@ -10863,100 +10872,494 @@ const FullNameDobReviewControl = props => {
10863
10872
  };
10864
10873
  const GoAInputBaseFullNameDobControlReview = withJsonFormsAllOfProps(FullNameDobReviewControl);
10865
10874
 
10866
- var $$5 = _export;
10867
- var iterate = iterate$a;
10868
- var createProperty$1 = createProperty$4;
10875
+ let _$5 = t => t,
10876
+ _t$6;
10877
+ const PhoneGrid = styled.div(_t$6 || (_t$6 = _$5`
10878
+ display: grid;
10879
+ grid-template-columns: 1fr 2fr;
10880
+ gap: 0.2rem;
10881
+ align-items: start;
10882
+ margin-bottom: var(--goa-space-l) !important;
10869
10883
 
10870
- // `Object.fromEntries` method
10871
- // https://github.com/tc39/proposal-object-from-entries
10872
- $$5({ target: 'Object', stat: true }, {
10873
- fromEntries: function fromEntries(iterable) {
10874
- var obj = {};
10875
- iterate(iterable, function (k, v) {
10876
- createProperty$1(obj, k, v);
10877
- }, { AS_ENTRIES: true });
10878
- return obj;
10884
+ goa-form-item {
10885
+ margin-right: 0 !important;
10879
10886
  }
10887
+ `));
10888
+ const PHONE_REGEX = /^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$/;
10889
+ const normalizePhoneData = value => ({
10890
+ type: (value == null ? void 0 : value.type) || '',
10891
+ number: (value == null ? void 0 : value.number) || ''
10880
10892
  });
10893
+ const PhoneNumberWithTypeControl = props => {
10894
+ const {
10895
+ data,
10896
+ path,
10897
+ handleChange,
10898
+ enabled,
10899
+ visible,
10900
+ required
10901
+ } = props;
10902
+ const [formData, setFormData] = useState(normalizePhoneData(data));
10903
+ const [error, setError] = useState(undefined);
10904
+ useEffect(() => {
10905
+ const nextData = normalizePhoneData(data);
10906
+ setFormData(currentData => currentData.type === nextData.type && currentData.number === nextData.number ? currentData : nextData);
10907
+ }, [data]);
10908
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10909
+ const updateFormData = updated => {
10910
+ setFormData(updated);
10911
+ if (updated.number && !PHONE_REGEX.test(updated.number)) {
10912
+ setError('Enter a valid phone number (e.g., (780) 123-4567)');
10913
+ } else {
10914
+ setError(undefined);
10915
+ }
10916
+ handleChange(path, updated);
10917
+ };
10918
+ return jsx(Visible, {
10919
+ visible: visible,
10920
+ children: jsxs(PhoneGrid, {
10921
+ children: [jsx(GoabFormItem, {
10922
+ label: "Phone type",
10923
+ requirement: required ? 'required' : undefined,
10924
+ children: jsxs(GoabDropdown, {
10925
+ name: "type",
10926
+ value: formData.type || '',
10927
+ disabled: !enabled,
10928
+ onChange: detail => updateFormData(Object.assign({}, formData, {
10929
+ type: detail.value
10930
+ })),
10931
+ children: [jsx(GoabDropdownItem, {
10932
+ value: "Mobile"
10933
+ }), jsx(GoabDropdownItem, {
10934
+ value: "Landline"
10935
+ })]
10936
+ })
10937
+ }), jsx(GoabFormItem, {
10938
+ label: "Phone number",
10939
+ error: error,
10940
+ requirement: required ? 'required' : undefined,
10941
+ children: jsx(GoabInput, {
10942
+ type: "tel",
10943
+ name: "number",
10944
+ placeholder: "(000) 000-0000",
10945
+ value: formData.number || '',
10946
+ disabled: !enabled,
10947
+ onChange: detail => updateFormData(Object.assign({}, formData, {
10948
+ number: detail.value
10949
+ }))
10950
+ })
10951
+ })]
10952
+ })
10953
+ });
10954
+ };
10955
+ const GoAPhoneNumberWithTypeControl = withJsonFormsControlProps(PhoneNumberWithTypeControl);
10881
10956
 
10882
- var global$3 = global$t;
10883
- var fails$1 = fails$x;
10884
- var uncurryThis$7 = functionUncurryThis;
10885
- var toString$4 = toString$m;
10886
- var trim = stringTrim.trim;
10887
- var whitespaces = whitespaces$3;
10888
-
10889
- var $parseInt$1 = global$3.parseInt;
10890
- var Symbol$1 = global$3.Symbol;
10891
- var ITERATOR$2 = Symbol$1 && Symbol$1.iterator;
10892
- var hex = /^[+-]?0x/i;
10893
- var exec$2 = uncurryThis$7(hex.exec);
10894
- var FORCED = $parseInt$1(whitespaces + '08') !== 8 || $parseInt$1(whitespaces + '0x16') !== 22
10895
- // MS Edge 18- broken with boxed symbols
10896
- || (ITERATOR$2 && !fails$1(function () { $parseInt$1(Object(ITERATOR$2)); }));
10957
+ const PhoneNumberControl = props => {
10958
+ const {
10959
+ data,
10960
+ path,
10961
+ schema,
10962
+ handleChange,
10963
+ enabled,
10964
+ visible,
10965
+ required
10966
+ } = props;
10967
+ const [error, setError] = useState('');
10968
+ const handleInputChange = (name, value) => {
10969
+ if (value && !PHONE_REGEX.test(value)) {
10970
+ setError('Must be a valid 10-digit phone number in format (000) 000-0000');
10971
+ } else {
10972
+ setError('');
10973
+ }
10974
+ handleChange(path, value);
10975
+ };
10976
+ return jsx(Visible, {
10977
+ visible: visible,
10978
+ children: jsx(GoabFormItem, {
10979
+ label: (schema == null ? void 0 : schema.title) || 'Phone number',
10980
+ requirement: required ? 'required' : undefined,
10981
+ error: error,
10982
+ testId: `form-item-${path}`,
10983
+ children: jsx(GoabInput, {
10984
+ type: "tel",
10985
+ name: path,
10986
+ disabled: !enabled,
10987
+ "aria-label": "phone number input",
10988
+ testId: `phone-input-${path}`,
10989
+ value: data || '',
10990
+ onChange: detail => handleInputChange(detail.name, detail.value),
10991
+ placeholder: "(000) 000-0000",
10992
+ width: "100%"
10993
+ })
10994
+ })
10995
+ });
10996
+ };
10997
+ const GoAPhoneNumberControl = withJsonFormsControlProps(PhoneNumberControl);
10897
10998
 
10898
- // `parseInt` method
10899
- // https://tc39.es/ecma262/#sec-parseint-string-radix
10900
- var numberParseInt = FORCED ? function parseInt(string, radix) {
10901
- var S = trim(toString$4(string));
10902
- return $parseInt$1(S, (radix >>> 0) || (exec$2(hex, S) ? 16 : 10));
10903
- } : $parseInt$1;
10999
+ const PhoneNumberTester = rankWith(4, and(isControl$1, schemaTypeIs('string'), formatIs('phone')));
10904
11000
 
10905
- var $$4 = _export;
10906
- var $parseInt = numberParseInt;
11001
+ let _$4 = t => t,
11002
+ _t$5,
11003
+ _t2$2,
11004
+ _t3$1,
11005
+ _t4$1,
11006
+ _t5,
11007
+ _t6;
11008
+ const SearchBox = styled.div(_t$5 || (_t$5 = _$4`
11009
+ position: relative;
10907
11010
 
10908
- // `parseInt` method
10909
- // https://tc39.es/ecma262/#sec-parseint-string-radix
10910
- $$4({ global: true, forced: parseInt !== $parseInt }, {
10911
- parseInt: $parseInt
10912
- });
11011
+ .suggestions {
11012
+ width: 100%;
11013
+ margin-top: 3px;
11014
+ border-top-width: 0;
11015
+ list-style: none;
11016
+ max-height: 15.5rem;
11017
+ width: 100%;
11018
+ position: absolute;
10913
11019
 
10914
- const ADD_DATA_ACTION = 'jsonforms/register/add_data_action';
10915
- const SET_DATA_ACTION = 'jsonforms/register/set_data_action';
10916
- const INCREMENT_ACTION = 'jsonforms/register/increment_action';
10917
- const DELETE_ACTION = 'jsonforms/register/delete_action';
10918
- const initialState = {
10919
- categories: {}
10920
- };
11020
+ background: var(--goa-color-greyscale-white);
11021
+ box-shadow: 0 8px 8px rgb(0 0 0 / 20%), 0 4px 4px rgb(0 0 0 / 10%);
11022
+ z-index: 99;
11023
+ overflow: hidden auto;
11024
+ padding-left: 0;
11025
+ }
11026
+ .suggestions li {
11027
+ }
11028
+ .suggestion-active,
11029
+ .suggestions li:hover {
11030
+ background-color: var(--goa-color-interactive-default);
11031
+ color: var(--goa-color-greyscale-white);
11032
+ cursor: pointer;
11033
+ font-weight: 600;
11034
+ }
11035
+ .input-container {
11036
+ position: relative;
11037
+ display: inline-block;
11038
+ width: 100%; /* Ensures it spans the parent container */
11039
+ }
10921
11040
 
10922
- function objectListReducer(state, action) {
10923
- switch (action.type) {
10924
- case ADD_DATA_ACTION:
10925
- {
10926
- //ok so we're assuming we're already getting the updated category data
10927
- const {
10928
- categories
10929
- } = state;
10930
- const {
10931
- name,
10932
- category
10933
- } = action.payload;
10934
- const newCategories = Object.assign({}, categories);
10935
- if (!newCategories[name]) {
10936
- newCategories[name] = {
10937
- data: category
10938
- };
10939
- } else {
10940
- newCategories[name].data = category;
10941
- }
10942
- return Object.assign({}, state, {
10943
- categories: newCategories
10944
- });
10945
- }
10946
- case SET_DATA_ACTION:
10947
- {
10948
- const CategoriesStateData = action.payload;
10949
- return Object.assign({}, state, {
10950
- categories: CategoriesStateData
10951
- });
10952
- }
10953
- case INCREMENT_ACTION:
10954
- {
10955
- const {
10956
- categories
10957
- } = state;
10958
- const name = action.payload;
10959
- const newCategories = Object.assign({}, categories);
11041
+ .input-container .input-spinner {
11042
+ position: absolute;
11043
+ top: 50%;
11044
+ right: 8px; /* Adjust based on padding or margin of the input field */
11045
+ transform: translateY(-50%);
11046
+ z-index: 1; /* Ensure it appears above the input */
11047
+ pointer-events: none; /* Prevent spinner from interfering with clicks */
11048
+ }
11049
+ `));
11050
+ const AddressIndent = styled.div(_t2$2 || (_t2$2 = _$4`
11051
+ margin: 0 0 var(--goa-space-m) 0;
11052
+ text-wrap: wrap;
11053
+ word-break: break-word;
11054
+ border: 1px solid var(--goa-color-greyscale-300);
11055
+ border-radius: var(--goa-border-radius-xl);
11056
+ padding: var(--goa-space-l);
11057
+ `));
11058
+ const TextWrap = styled.p(_t3$1 || (_t3$1 = _$4`
11059
+ text-wrap: auto;
11060
+ word-break: break-word;
11061
+ `));
11062
+ const TextWrapDiv = styled.div(_t4$1 || (_t4$1 = _$4`
11063
+ text-wrap: auto;
11064
+ word-break: break-word;
11065
+ `));
11066
+ const LabelDiv = styled.div(_t5 || (_t5 = _$4`
11067
+ font-size: var(--goa-font-size-2);
11068
+ padding-bottom: var(--goa-space-l);
11069
+ `));
11070
+ /* istanbul ignore next */
11071
+ const ListItem = styled.li(_t6 || (_t6 = _$4`
11072
+ background-color: ${0};
11073
+ color: ${0};
11074
+ font-weight: ${0};
11075
+ padding: var(--goa-space-xs) var(--goa-space-2xs) var(--goa-space-xs) var(--goa-space-xs);
11076
+ margin-left: 0.25rem;
11077
+ `), ({
11078
+ selected,
11079
+ index
11080
+ }) => selected === index ? 'var(--goa-color-interactive-default)' : '', ({
11081
+ selected,
11082
+ index
11083
+ }) => selected === index ? 'var(--goa-color-greyscale-white) !important' : '', ({
11084
+ selected,
11085
+ index
11086
+ }) => selected === index ? '600' : '');
11087
+
11088
+ const PhoneNumberReviewControl = props => {
11089
+ const {
11090
+ data,
11091
+ id,
11092
+ required
11093
+ } = props;
11094
+ return jsx(GoabFormItem, {
11095
+ label: "Phone number",
11096
+ error: required && !data ? 'Phone number is required' : '',
11097
+ requirement: required ? 'required' : undefined,
11098
+ children: jsx(TextWrapDiv, {
11099
+ children: jsx("div", {
11100
+ "data-testid": `phone-control-${id}`,
11101
+ children: data || ''
11102
+ })
11103
+ })
11104
+ });
11105
+ };
11106
+ const GoabInputBasePhoneNumberReviewControl = withJsonFormsAllOfProps(PhoneNumberReviewControl);
11107
+
11108
+ const isPhoneNumberWithType = createSchemaMatchTester(['number', 'type'], true);
11109
+ const PhoneNumberWithTypeTester = rankWith(4, isPhoneNumberWithType);
11110
+
11111
+ const PhoneNumberWithTypeReviewControl = props => {
11112
+ const {
11113
+ data,
11114
+ id,
11115
+ required
11116
+ } = props;
11117
+ return jsxs(PhoneGrid, {
11118
+ children: [jsx(GoabFormItem, {
11119
+ label: "Phone number",
11120
+ error: required && !(data != null && data.number) ? 'Phone number is required' : '',
11121
+ requirement: required ? 'required' : undefined,
11122
+ children: jsx(TextWrapDiv, {
11123
+ children: jsx("div", {
11124
+ "data-testid": `phone-number-control-${id}`,
11125
+ children: (data == null ? void 0 : data.number) || ''
11126
+ })
11127
+ })
11128
+ }), jsx(GoabFormItem, {
11129
+ label: "Phone type",
11130
+ error: required && !(data != null && data.type) ? 'Phone type is required' : '',
11131
+ requirement: required ? 'required' : undefined,
11132
+ children: jsx(TextWrapDiv, {
11133
+ children: jsx("div", {
11134
+ "data-testid": `phone-type-control-${id}`,
11135
+ children: (data == null ? void 0 : data.type) || ''
11136
+ })
11137
+ })
11138
+ })]
11139
+ });
11140
+ };
11141
+ const GoabInputBasePhoneNumberWithTypeReviewControl = withJsonFormsAllOfProps(PhoneNumberWithTypeReviewControl);
11142
+
11143
+ let _$3 = t => t,
11144
+ _t$4;
11145
+ const FormFieldWrapper = styled.div(_t$4 || (_t$4 = _$3`
11146
+ margin-bottom: var(--goa-space-l);
11147
+ `));
11148
+
11149
+ const ContractInfoControl = props => {
11150
+ var _options$enableEmail, _options$enablePhone, _options$emailFirst;
11151
+ const {
11152
+ data = {},
11153
+ path,
11154
+ handleChange,
11155
+ enabled,
11156
+ visible,
11157
+ required,
11158
+ uischema
11159
+ } = props;
11160
+ const handleFieldChange = (field, value) => {
11161
+ handleChange(`${path}.${field}`, value);
11162
+ };
11163
+ const emailProps = Object.assign({}, props, {
11164
+ data: data == null ? void 0 : data.email,
11165
+ path: `${path}.email`
11166
+ });
11167
+ const phoneProps = Object.assign({}, props, {
11168
+ data: data == null ? void 0 : data.phone,
11169
+ path: `${path}.phone`
11170
+ });
11171
+ const {
11172
+ options
11173
+ } = uischema;
11174
+ const enableEmail = (_options$enableEmail = options == null ? void 0 : options.enableEmail) != null ? _options$enableEmail : true;
11175
+ const enablePhone = (_options$enablePhone = options == null ? void 0 : options.enablePhone) != null ? _options$enablePhone : true;
11176
+ const emailFirst = (_options$emailFirst = options == null ? void 0 : options.emailFirst) != null ? _options$emailFirst : false;
11177
+ if (!enableEmail && !enablePhone) {
11178
+ throw new Error('At least one contact method must be enabled');
11179
+ }
11180
+ return jsxs("div", {
11181
+ style: {
11182
+ display: visible ? 'block' : 'none'
11183
+ },
11184
+ children: [enableEmail && emailFirst && jsx(GoAEmailInput, Object.assign({}, emailProps)), enablePhone && jsx(FormFieldWrapper, {
11185
+ children: jsx(PhoneNumberControl, Object.assign({}, phoneProps))
11186
+ }), enableEmail && !emailFirst && jsx(GoAEmailInput, Object.assign({}, emailProps)), enableEmail && enablePhone && jsx(FormFieldWrapper, {
11187
+ children: jsx(GoabFormItem, {
11188
+ label: "Preferred Contact Method",
11189
+ requirement: required ? 'required' : undefined,
11190
+ children: jsxs(GoabDropdown, {
11191
+ testId: `preferred-contact-${path}`,
11192
+ disabled: !enabled,
11193
+ value: data.preferredContactMethod || '',
11194
+ onChange: detail => handleFieldChange('preferredContactMethod', detail.value || ''),
11195
+ width: "250px",
11196
+ children: [jsx(GoabDropdownItem, {
11197
+ value: "",
11198
+ label: "Select a Contact Method"
11199
+ }), emailFirst && jsx(GoabDropdownItem, {
11200
+ value: "Email",
11201
+ label: "Email"
11202
+ }), jsx(GoabDropdownItem, {
11203
+ value: "Phone",
11204
+ label: "Phone"
11205
+ }), !emailFirst && jsx(GoabDropdownItem, {
11206
+ value: "Email",
11207
+ label: "Email"
11208
+ })]
11209
+ })
11210
+ })
11211
+ })]
11212
+ });
11213
+ };
11214
+
11215
+ const ContractInfoControlReview = props => {
11216
+ var _props$uischema, _schema$required, _options$enableEmail, _options$enablePhone, _options$emailFirst;
11217
+ const context = useContext(JsonFormsStepperContext);
11218
+ const stepId = (_props$uischema = props.uischema) == null || (_props$uischema = _props$uischema.options) == null ? void 0 : _props$uischema.stepId;
11219
+ const {
11220
+ uischema,
11221
+ data = {},
11222
+ id,
11223
+ schema
11224
+ } = props;
11225
+ const requiredFields = (_schema$required = schema == null ? void 0 : schema.required) != null ? _schema$required : [];
11226
+ const isMissing = value => value === undefined || value === null || value === '';
11227
+ const renderRow = (fieldLabel, value, fieldName, testId) => jsx("tr", {
11228
+ children: jsxs(PageReviewContainer, {
11229
+ colSpan: 3,
11230
+ children: [jsxs(ReviewHeader, {
11231
+ children: [jsx(ReviewLabel, {
11232
+ children: fieldLabel
11233
+ }), stepId !== undefined && jsx(GoabButton, {
11234
+ type: "tertiary",
11235
+ size: "compact",
11236
+ onClick: () => context == null ? void 0 : context.goToPage(stepId, uischema.scope),
11237
+ testId: `${fieldName}-change-btn`,
11238
+ children: "Change"
11239
+ })]
11240
+ }), jsxs(ReviewValue, {
11241
+ children: [jsx("div", {
11242
+ "data-testid": testId,
11243
+ children: value != null ? value : ''
11244
+ }), requiredFields.includes(fieldName) && isMissing(value) && jsx(GoabFormItem, {
11245
+ error: `${fieldLabel} is required`,
11246
+ label: ""
11247
+ })]
11248
+ })]
11249
+ })
11250
+ }, testId);
11251
+ const {
11252
+ options
11253
+ } = uischema;
11254
+ const enableEmail = (_options$enableEmail = options == null ? void 0 : options.enableEmail) != null ? _options$enableEmail : true;
11255
+ const enablePhone = (_options$enablePhone = options == null ? void 0 : options.enablePhone) != null ? _options$enablePhone : true;
11256
+ const emailFirst = (_options$emailFirst = options == null ? void 0 : options.emailFirst) != null ? _options$emailFirst : false;
11257
+ if (!enableEmail && !enablePhone) {
11258
+ throw new Error('At least one contact method must be enabled');
11259
+ }
11260
+ return jsxs(Fragment, {
11261
+ children: [enableEmail && emailFirst && renderRow('Email', data == null ? void 0 : data.email, 'email', `email-control-${id}`), enablePhone && renderRow('Phone number', data == null ? void 0 : data.phone, 'phone', `phone-control-${id}`), enableEmail && !emailFirst && renderRow('Email', data == null ? void 0 : data.email, 'email', `email-control-${id}`), enableEmail && enablePhone && renderRow('Preferred contact method', (data == null ? void 0 : data.preferredContactMethod) || 'Email', 'preferredContactMethod', `preferred-contact-${id}`)]
11262
+ });
11263
+ };
11264
+ const GoAContractInfoControlReview = withJsonFormsAllOfProps(ContractInfoControlReview);
11265
+
11266
+ const isContactInformation = createSchemaMatchTester(['email', 'phone', 'preferredContactMethod']);
11267
+ const ContactInformationTester = rankWith(4, isContactInformation);
11268
+
11269
+ var $$5 = _export;
11270
+ var iterate = iterate$a;
11271
+ var createProperty$1 = createProperty$4;
11272
+
11273
+ // `Object.fromEntries` method
11274
+ // https://github.com/tc39/proposal-object-from-entries
11275
+ $$5({ target: 'Object', stat: true }, {
11276
+ fromEntries: function fromEntries(iterable) {
11277
+ var obj = {};
11278
+ iterate(iterable, function (k, v) {
11279
+ createProperty$1(obj, k, v);
11280
+ }, { AS_ENTRIES: true });
11281
+ return obj;
11282
+ }
11283
+ });
11284
+
11285
+ var global$3 = global$t;
11286
+ var fails$1 = fails$x;
11287
+ var uncurryThis$7 = functionUncurryThis;
11288
+ var toString$4 = toString$m;
11289
+ var trim = stringTrim.trim;
11290
+ var whitespaces = whitespaces$3;
11291
+
11292
+ var $parseInt$1 = global$3.parseInt;
11293
+ var Symbol$1 = global$3.Symbol;
11294
+ var ITERATOR$2 = Symbol$1 && Symbol$1.iterator;
11295
+ var hex = /^[+-]?0x/i;
11296
+ var exec$2 = uncurryThis$7(hex.exec);
11297
+ var FORCED = $parseInt$1(whitespaces + '08') !== 8 || $parseInt$1(whitespaces + '0x16') !== 22
11298
+ // MS Edge 18- broken with boxed symbols
11299
+ || (ITERATOR$2 && !fails$1(function () { $parseInt$1(Object(ITERATOR$2)); }));
11300
+
11301
+ // `parseInt` method
11302
+ // https://tc39.es/ecma262/#sec-parseint-string-radix
11303
+ var numberParseInt = FORCED ? function parseInt(string, radix) {
11304
+ var S = trim(toString$4(string));
11305
+ return $parseInt$1(S, (radix >>> 0) || (exec$2(hex, S) ? 16 : 10));
11306
+ } : $parseInt$1;
11307
+
11308
+ var $$4 = _export;
11309
+ var $parseInt = numberParseInt;
11310
+
11311
+ // `parseInt` method
11312
+ // https://tc39.es/ecma262/#sec-parseint-string-radix
11313
+ $$4({ global: true, forced: parseInt !== $parseInt }, {
11314
+ parseInt: $parseInt
11315
+ });
11316
+
11317
+ const ADD_DATA_ACTION = 'jsonforms/register/add_data_action';
11318
+ const SET_DATA_ACTION = 'jsonforms/register/set_data_action';
11319
+ const INCREMENT_ACTION = 'jsonforms/register/increment_action';
11320
+ const DELETE_ACTION = 'jsonforms/register/delete_action';
11321
+ const initialState = {
11322
+ categories: {}
11323
+ };
11324
+
11325
+ function objectListReducer(state, action) {
11326
+ switch (action.type) {
11327
+ case ADD_DATA_ACTION:
11328
+ {
11329
+ //ok so we're assuming we're already getting the updated category data
11330
+ const {
11331
+ categories
11332
+ } = state;
11333
+ const {
11334
+ name,
11335
+ category
11336
+ } = action.payload;
11337
+ const newCategories = Object.assign({}, categories);
11338
+ if (!newCategories[name]) {
11339
+ newCategories[name] = {
11340
+ data: category
11341
+ };
11342
+ } else {
11343
+ newCategories[name].data = category;
11344
+ }
11345
+ return Object.assign({}, state, {
11346
+ categories: newCategories
11347
+ });
11348
+ }
11349
+ case SET_DATA_ACTION:
11350
+ {
11351
+ const CategoriesStateData = action.payload;
11352
+ return Object.assign({}, state, {
11353
+ categories: CategoriesStateData
11354
+ });
11355
+ }
11356
+ case INCREMENT_ACTION:
11357
+ {
11358
+ const {
11359
+ categories
11360
+ } = state;
11361
+ const name = action.payload;
11362
+ const newCategories = Object.assign({}, categories);
10960
11363
  // Assuming you want to increment the count of a category:
10961
11364
  if (newCategories[name]) {
10962
11365
  const updatedCategory = Object.assign({}, categories[name], {
@@ -11960,115 +12363,28 @@ const ListWithDetailsControl = props => {
11960
12363
  }
11961
12364
  setOpen(false);
11962
12365
  // eslint-disable-next-line
11963
- }, [setOpen, path, rowData, rowData]);
11964
- return jsxs(Visible, {
11965
- visible: visible,
11966
- children: [jsx(ListWithDetailControl, Object.assign({}, props, {
11967
- openDeleteDialog: openDeleteDialog,
11968
- enabled: props.enabled,
11969
- currentTab: currentTab,
11970
- setCurrentTab: setCurrentTab
11971
- })), jsx(DeleteDialog, {
11972
- open: open,
11973
- onCancel: deleteCancel,
11974
- onConfirm: deleteConfirm,
11975
- title: 'Delete confirmation',
11976
- message: `Are you sure you wish to delete ${name}`
11977
- })]
11978
- });
11979
- };
11980
- const GoAListWithDetailsControlRenderer = withJsonFormsArrayLayoutProps(ListWithDetailsControl);
11981
- const GoAListWithDetailsTester = rankWith(3, and(uiTypeIs('ListWithDetail')));
11982
-
11983
- const isAddressLookup = createSchemaMatchTester(['addressLine2', 'municipality', 'addressLine1', 'subdivisionCode', 'postalCode']);
11984
- const AddressLookUpTester = rankWith(4, isAddressLookup);
11985
-
11986
- let _$4 = t => t,
11987
- _t$5,
11988
- _t2$2,
11989
- _t3$1,
11990
- _t4$1,
11991
- _t5,
11992
- _t6;
11993
- const SearchBox = styled.div(_t$5 || (_t$5 = _$4`
11994
- position: relative;
11995
-
11996
- .suggestions {
11997
- width: 100%;
11998
- margin-top: 3px;
11999
- border-top-width: 0;
12000
- list-style: none;
12001
- max-height: 15.5rem;
12002
- width: 100%;
12003
- position: absolute;
12004
-
12005
- background: var(--goa-color-greyscale-white);
12006
- box-shadow: 0 8px 8px rgb(0 0 0 / 20%), 0 4px 4px rgb(0 0 0 / 10%);
12007
- z-index: 99;
12008
- overflow: hidden auto;
12009
- padding-left: 0;
12010
- }
12011
- .suggestions li {
12012
- }
12013
- .suggestion-active,
12014
- .suggestions li:hover {
12015
- background-color: var(--goa-color-interactive-default);
12016
- color: var(--goa-color-greyscale-white);
12017
- cursor: pointer;
12018
- font-weight: 600;
12019
- }
12020
- .input-container {
12021
- position: relative;
12022
- display: inline-block;
12023
- width: 100%; /* Ensures it spans the parent container */
12024
- }
12366
+ }, [setOpen, path, rowData, rowData]);
12367
+ return jsxs(Visible, {
12368
+ visible: visible,
12369
+ children: [jsx(ListWithDetailControl, Object.assign({}, props, {
12370
+ openDeleteDialog: openDeleteDialog,
12371
+ enabled: props.enabled,
12372
+ currentTab: currentTab,
12373
+ setCurrentTab: setCurrentTab
12374
+ })), jsx(DeleteDialog, {
12375
+ open: open,
12376
+ onCancel: deleteCancel,
12377
+ onConfirm: deleteConfirm,
12378
+ title: 'Delete confirmation',
12379
+ message: `Are you sure you wish to delete ${name}`
12380
+ })]
12381
+ });
12382
+ };
12383
+ const GoAListWithDetailsControlRenderer = withJsonFormsArrayLayoutProps(ListWithDetailsControl);
12384
+ const GoAListWithDetailsTester = rankWith(3, and(uiTypeIs('ListWithDetail')));
12025
12385
 
12026
- .input-container .input-spinner {
12027
- position: absolute;
12028
- top: 50%;
12029
- right: 8px; /* Adjust based on padding or margin of the input field */
12030
- transform: translateY(-50%);
12031
- z-index: 1; /* Ensure it appears above the input */
12032
- pointer-events: none; /* Prevent spinner from interfering with clicks */
12033
- }
12034
- `));
12035
- const AddressIndent = styled.div(_t2$2 || (_t2$2 = _$4`
12036
- margin: 0 0 var(--goa-space-m) 0;
12037
- text-wrap: wrap;
12038
- word-break: break-word;
12039
- border: 1px solid var(--goa-color-greyscale-300);
12040
- border-radius: var(--goa-border-radius-xl);
12041
- padding: var(--goa-space-l);
12042
- `));
12043
- const TextWrap = styled.p(_t3$1 || (_t3$1 = _$4`
12044
- text-wrap: auto;
12045
- word-break: break-word;
12046
- `));
12047
- const TextWrapDiv = styled.div(_t4$1 || (_t4$1 = _$4`
12048
- text-wrap: auto;
12049
- word-break: break-word;
12050
- `));
12051
- const LabelDiv = styled.div(_t5 || (_t5 = _$4`
12052
- font-size: var(--goa-font-size-2);
12053
- padding-bottom: var(--goa-space-l);
12054
- `));
12055
- /* istanbul ignore next */
12056
- const ListItem = styled.li(_t6 || (_t6 = _$4`
12057
- background-color: ${0};
12058
- color: ${0};
12059
- font-weight: ${0};
12060
- padding: var(--goa-space-xs) var(--goa-space-2xs) var(--goa-space-xs) var(--goa-space-xs);
12061
- margin-left: 0.25rem;
12062
- `), ({
12063
- selected,
12064
- index
12065
- }) => selected === index ? 'var(--goa-color-interactive-default)' : '', ({
12066
- selected,
12067
- index
12068
- }) => selected === index ? 'var(--goa-color-greyscale-white) !important' : '', ({
12069
- selected,
12070
- index
12071
- }) => selected === index ? '600' : '');
12386
+ const isAddressLookup = createSchemaMatchTester(['addressLine2', 'municipality', 'addressLine1', 'subdivisionCode', 'postalCode']);
12387
+ const AddressLookUpTester = rankWith(4, isAddressLookup);
12072
12388
 
12073
12389
  const AddressViews = ({
12074
12390
  data,
@@ -12500,10 +12816,10 @@ const GoAGroupReviewControlComponent = props => {
12500
12816
  const GoAGroupReviewLayoutTester = rankWith(1, uiTypeIs('Group'));
12501
12817
  const GoAGroupReviewControl = withJsonFormsLayoutProps(GoAGroupReviewControlComponent, true);
12502
12818
 
12503
- let _$3 = t => t,
12504
- _t$4,
12819
+ let _$2 = t => t,
12820
+ _t$3,
12505
12821
  _t2$1;
12506
- const HelpContentDiv = styled.div(_t$4 || (_t$4 = _$3`
12822
+ const HelpContentDiv = styled.div(_t$3 || (_t$3 = _$2`
12507
12823
  .parent-label {
12508
12824
  font-size: 24px;
12509
12825
  margin-bottom: var(--goa-space-m);
@@ -12591,12 +12907,12 @@ const HelpContentDiv = styled.div(_t$4 || (_t$4 = _$3`
12591
12907
  text-decoration: underline;
12592
12908
  }
12593
12909
  `));
12594
- const InvalidMarkdown = styled.div(_t2$1 || (_t2$1 = _$3`
12910
+ const InvalidMarkdown = styled.div(_t2$1 || (_t2$1 = _$2`
12595
12911
  color: var(--goa-color-interactive-error);
12596
12912
  `));
12597
12913
 
12598
- let _$2 = t => t,
12599
- _t$3;
12914
+ let _$1 = t => t,
12915
+ _t$2;
12600
12916
  const GoAContextMenuIcon = props => {
12601
12917
  return jsx(GoabIconButton, {
12602
12918
  icon: props.type,
@@ -12607,7 +12923,7 @@ const GoAContextMenuIcon = props => {
12607
12923
  disabled: props.disabled
12608
12924
  });
12609
12925
  };
12610
- const GoAContextMenu = styled.div(_t$3 || (_t$3 = _$2`
12926
+ const GoAContextMenu = styled.div(_t$2 || (_t$2 = _$1`
12611
12927
  display: flex;
12612
12928
  align-items: center;
12613
12929
  background-color: #fff;
@@ -12986,6 +13302,9 @@ const GoABaseTableReviewRenderers$1 = [
12986
13302
  }, {
12987
13303
  tester: GoACalloutControlTester,
12988
13304
  renderer: CalloutReviewControl
13305
+ }, {
13306
+ tester: ContactInformationTester,
13307
+ renderer: withJsonFormsControlProps(ContractInfoControlReview)
12989
13308
  }];
12990
13309
  [
12991
13310
  // controls
@@ -13644,9 +13963,9 @@ const FormStepperPageReviewer = props => {
13644
13963
  };
13645
13964
  withAjvProps(withTranslateProps(withJsonFormsLayoutProps(FormStepperPageReviewer)));
13646
13965
 
13647
- let _$1 = t => t,
13648
- _t$2;
13649
- const BackButtonWrapper = styled.span(_t$2 || (_t$2 = _$1`
13966
+ let _ = t => t,
13967
+ _t$1;
13968
+ const BackButtonWrapper = styled.span(_t$1 || (_t$1 = _`
13650
13969
  .back-link::before {
13651
13970
  content: '';
13652
13971
  display: inline-block;
@@ -14038,7 +14357,7 @@ const DeleteFileModal = ({
14038
14357
  };
14039
14358
 
14040
14359
  let _2 = t => t,
14041
- _t$1,
14360
+ _t,
14042
14361
  _t2,
14043
14362
  _t3,
14044
14363
  _t4;
@@ -14239,7 +14558,7 @@ const FileUploader = _ref => {
14239
14558
  })
14240
14559
  });
14241
14560
  };
14242
- const HelpText = styled.div(_t$1 || (_t$1 = _2`
14561
+ const HelpText = styled.div(_t || (_t = _2`
14243
14562
  margin-top: var(--goa-space-xs);
14244
14563
  font-size: var(--goa-font-size-3);
14245
14564
  color: var(--goa-color-text-secondary);
@@ -17248,187 +17567,6 @@ const FullNameDobControl = props => {
17248
17567
  });
17249
17568
  };
17250
17569
 
17251
- let _ = t => t,
17252
- _t;
17253
- const PhoneGrid = styled.div(_t || (_t = _`
17254
- display: grid;
17255
- grid-template-columns: 1fr 2fr;
17256
- gap: 0.2rem;
17257
- align-items: start;
17258
- margin-bottom: var(--goa-space-l) !important;
17259
-
17260
- goa-form-item {
17261
- margin-right: 0 !important;
17262
- }
17263
- `));
17264
- const PHONE_REGEX = /^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$/;
17265
- const normalizePhoneData = value => ({
17266
- type: (value == null ? void 0 : value.type) || '',
17267
- number: (value == null ? void 0 : value.number) || ''
17268
- });
17269
- const PhoneNumberWithTypeControl = props => {
17270
- const {
17271
- data,
17272
- path,
17273
- handleChange,
17274
- enabled,
17275
- visible,
17276
- required
17277
- } = props;
17278
- const [formData, setFormData] = useState(normalizePhoneData(data));
17279
- const [error, setError] = useState(undefined);
17280
- useEffect(() => {
17281
- const nextData = normalizePhoneData(data);
17282
- setFormData(currentData => currentData.type === nextData.type && currentData.number === nextData.number ? currentData : nextData);
17283
- }, [data]);
17284
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
17285
- const updateFormData = updated => {
17286
- setFormData(updated);
17287
- if (updated.number && !PHONE_REGEX.test(updated.number)) {
17288
- setError('Enter a valid phone number (e.g., (780) 123-4567)');
17289
- } else {
17290
- setError(undefined);
17291
- }
17292
- handleChange(path, updated);
17293
- };
17294
- return jsx(Visible, {
17295
- visible: visible,
17296
- children: jsxs(PhoneGrid, {
17297
- children: [jsx(GoabFormItem, {
17298
- label: "Phone type",
17299
- requirement: required ? 'required' : undefined,
17300
- children: jsxs(GoabDropdown, {
17301
- name: "type",
17302
- value: formData.type || '',
17303
- disabled: !enabled,
17304
- onChange: detail => updateFormData(Object.assign({}, formData, {
17305
- type: detail.value
17306
- })),
17307
- children: [jsx(GoabDropdownItem, {
17308
- value: "Mobile"
17309
- }), jsx(GoabDropdownItem, {
17310
- value: "Landline"
17311
- })]
17312
- })
17313
- }), jsx(GoabFormItem, {
17314
- label: "Phone number",
17315
- error: error,
17316
- requirement: required ? 'required' : undefined,
17317
- children: jsx(GoabInput, {
17318
- type: "tel",
17319
- name: "number",
17320
- placeholder: "(000) 000-0000",
17321
- value: formData.number || '',
17322
- disabled: !enabled,
17323
- onChange: detail => updateFormData(Object.assign({}, formData, {
17324
- number: detail.value
17325
- }))
17326
- })
17327
- })]
17328
- })
17329
- });
17330
- };
17331
- const GoAPhoneNumberWithTypeControl = withJsonFormsControlProps(PhoneNumberWithTypeControl);
17332
-
17333
- const PhoneNumberControl = props => {
17334
- const {
17335
- data,
17336
- path,
17337
- schema,
17338
- handleChange,
17339
- enabled,
17340
- visible,
17341
- required
17342
- } = props;
17343
- const [error, setError] = useState('');
17344
- const handleInputChange = (name, value) => {
17345
- if (value && !PHONE_REGEX.test(value)) {
17346
- setError('Must be a valid 10-digit phone number in format (000) 000-0000');
17347
- } else {
17348
- setError('');
17349
- }
17350
- handleChange(path, value);
17351
- };
17352
- return jsx(Visible, {
17353
- visible: visible,
17354
- children: jsx(GoabFormItem, {
17355
- label: (schema == null ? void 0 : schema.title) || 'Phone number',
17356
- requirement: required ? 'required' : undefined,
17357
- error: error,
17358
- testId: `form-item-${path}`,
17359
- children: jsx(GoabInput, {
17360
- type: "tel",
17361
- name: path,
17362
- disabled: !enabled,
17363
- "aria-label": "phone number input",
17364
- testId: `phone-input-${path}`,
17365
- value: data || '',
17366
- onChange: detail => handleInputChange(detail.name, detail.value),
17367
- placeholder: "(000) 000-0000",
17368
- width: "100%"
17369
- })
17370
- })
17371
- });
17372
- };
17373
- const GoAPhoneNumberControl = withJsonFormsControlProps(PhoneNumberControl);
17374
-
17375
- const PhoneNumberTester = rankWith(4, and(isControl$1, schemaTypeIs('string'), formatIs('phone')));
17376
-
17377
- const PhoneNumberReviewControl = props => {
17378
- const {
17379
- data,
17380
- id,
17381
- required
17382
- } = props;
17383
- return jsx(GoabFormItem, {
17384
- label: "Phone number",
17385
- error: required && !data ? 'Phone number is required' : '',
17386
- requirement: required ? 'required' : undefined,
17387
- children: jsx(TextWrapDiv, {
17388
- children: jsx("div", {
17389
- "data-testid": `phone-control-${id}`,
17390
- children: data || ''
17391
- })
17392
- })
17393
- });
17394
- };
17395
- const GoabInputBasePhoneNumberReviewControl = withJsonFormsAllOfProps(PhoneNumberReviewControl);
17396
-
17397
- const isPhoneNumberWithType = createSchemaMatchTester(['number', 'type'], true);
17398
- const PhoneNumberWithTypeTester = rankWith(4, isPhoneNumberWithType);
17399
-
17400
- const PhoneNumberWithTypeReviewControl = props => {
17401
- const {
17402
- data,
17403
- id,
17404
- required
17405
- } = props;
17406
- return jsxs(PhoneGrid, {
17407
- children: [jsx(GoabFormItem, {
17408
- label: "Phone number",
17409
- error: required && !(data != null && data.number) ? 'Phone number is required' : '',
17410
- requirement: required ? 'required' : undefined,
17411
- children: jsx(TextWrapDiv, {
17412
- children: jsx("div", {
17413
- "data-testid": `phone-number-control-${id}`,
17414
- children: (data == null ? void 0 : data.number) || ''
17415
- })
17416
- })
17417
- }), jsx(GoabFormItem, {
17418
- label: "Phone type",
17419
- error: required && !(data != null && data.type) ? 'Phone type is required' : '',
17420
- requirement: required ? 'required' : undefined,
17421
- children: jsx(TextWrapDiv, {
17422
- children: jsx("div", {
17423
- "data-testid": `phone-type-control-${id}`,
17424
- children: (data == null ? void 0 : data.type) || ''
17425
- })
17426
- })
17427
- })]
17428
- });
17429
- };
17430
- const GoabInputBasePhoneNumberWithTypeReviewControl = withJsonFormsAllOfProps(PhoneNumberWithTypeReviewControl);
17431
-
17432
17570
  /**
17433
17571
  * Escape for use in RegExp
17434
17572
  */
@@ -18223,7 +18361,10 @@ const GoARenderers = [...GoABaseRenderers, {
18223
18361
  }, {
18224
18362
  tester: GoACalculationControlTester,
18225
18363
  renderer: GoACalculationControl
18364
+ }, {
18365
+ tester: ContactInformationTester,
18366
+ renderer: withJsonFormsControlProps(ContractInfoControl)
18226
18367
  }];
18227
18368
  const GoACells = [...InputCells];
18228
18369
 
18229
- export { ADD_DATALIST_ACTION, ADD_NO_ANONYMOUS_ACTION, ADD_REGISTER_DATA_ACTION, ADD_REGISTER_DATA_ERROR, ADD_USER_ACTION, AddressLookUpControl, AddressLookUpControlReview, AddressLookUpTester, AddressLoopUpControlTableReview, ArrayControl, ArrayControlBase, ArrayControlReview, BooleanComponent, BooleanControl, BooleanRadioComponent, BooleanRadioControl, CategorizationPagesRendererTester, CategorizationStepperRendererTester, CheckboxGroup, ContextProviderC, ContextProviderClass, ContextProviderFactory, EnumCheckboxControl, EnumRadioControl, EnumSelect, FileUploader, FileUploaderReview, FileUploaderTester, FormPageStepper, FormPagesView, FormStepper, FormStepperControl, FormStepperPagesControl, FormStepperReviewControl, FormStepperReviewer, FormStepperView, FullNameControl, FullNameControlReview, FullNameDobControl, FullNameDobReviewControl, FullNameDobTester, FullNameReviewControl, FullNameTester, GoAArrayControlRenderer, GoAArrayControlReviewRenderer, GoAArrayControlTester, GoABaseInputReviewComponent, GoABaseRenderers, GoABaseReviewRenderers, GoABaseTableReviewRenderers, GoABooleanControl, GoABooleanControlTester, GoABooleanRadioControl, GoABooleanRadioControlTester, GoACalculationControl, GoACalculationControlTester, GoACells, GoACheckoutGroupControlTester, GoADateControl, GoADateControlTester, GoADateInput, GoADateTimeControl, GoADateTimeControlTester, GoADateTimeInput, GoAEmailControl, GoAEmailControlTester, GoAEmailInput, GoAEnumCheckboxGroupControl, GoAEnumControl, GoAEnumControlTester, GoAEnumRadioGroupControl, GoAInputBaseControl, GoAInputBaseFullNameControlReview, GoAInputBaseFullNameDobControlReview, GoAInputBaseReviewControl, GoAInputBaseTableReview, GoAInputBaseTableReviewControl, GoAInputDateControl, GoAInputDateTimeControl, GoAInputEmailControl, GoAInputIntegerControl, GoAInputNumberControl, GoAInputText, GoAInputTextControl, GoAInputTimeControl, GoAIntegerControl, GoAIntegerControlTester, GoAListWithDetailsControlRenderer, GoAListWithDetailsTester, GoANumberControl, GoANumberControlTester, GoANumberInput, GoAPhoneNumberControl, GoAPhoneNumberWithTypeControl, GoAPrimitiveArrayRenderer, GoAPrimitiveArrayTester, GoARadioGroupControlTester, GoARenderers, GoAReviewRenderers, GoATextControl, GoATextControlTester, GoATimeControl, GoATimeControlTester, GoATimeInput, GoInputBaseReview, GoabInputBasePhoneNumberReviewControl, GoabInputBasePhoneNumberWithTypeReviewControl, GoabInputInteger, InnerGoAInputText, JsonFormContext, JsonFormRegisterProvider, JsonFormsRegisterContext, ListWithDetailsControl, MultiLineText, MultiLineTextControl, MultiLineTextControlInput, MultiLineTextControlTester, OPTION_DEFINITIONS, PHONE_REGEX, PhoneGrid, PhoneNumberControl, PhoneNumberReviewControl, PhoneNumberTester, PhoneNumberWithTypeControl, PhoneNumberWithTypeReviewControl, PhoneNumberWithTypeTester, PrimitiveArrayControl, RadioGroup, USER_FIELD_DEFINITIONS, autoPopulatePropertiesMonaco, autoPopulateValue, categoriesAreValid, createDefaultAjv, enumControl, errMalformedDate, fetchRegisterConfigFromOptions$1 as fetchRegisterConfigFromOptions, formatSin, getByJsonPointer, getCategoryScopes, hasDataInScopes, hasDataValue, isAddressLookup, isFullName, isFullNameDoB, isPhoneNumberWithType, predictiveOptionsMonaco, registerReducer, resolveRefs, tryResolveRefs, useRegisterUser };
18370
+ export { ADD_DATALIST_ACTION, ADD_NO_ANONYMOUS_ACTION, ADD_REGISTER_DATA_ACTION, ADD_REGISTER_DATA_ERROR, ADD_USER_ACTION, AddressLookUpControl, AddressLookUpControlReview, AddressLookUpTester, AddressLoopUpControlTableReview, ArrayControl, ArrayControlBase, ArrayControlReview, BooleanComponent, BooleanControl, BooleanRadioComponent, BooleanRadioControl, CategorizationPagesRendererTester, CategorizationStepperRendererTester, CheckboxGroup, ContactInformationTester, ContextProviderC, ContextProviderClass, ContextProviderFactory, ContractInfoControl, ContractInfoControlReview, EnumCheckboxControl, EnumRadioControl, EnumSelect, FileUploader, FileUploaderReview, FileUploaderTester, FormPageStepper, FormPagesView, FormStepper, FormStepperControl, FormStepperPagesControl, FormStepperReviewControl, FormStepperReviewer, FormStepperView, FullNameControl, FullNameControlReview, FullNameDobControl, FullNameDobReviewControl, FullNameDobTester, FullNameReviewControl, FullNameTester, GoAArrayControlRenderer, GoAArrayControlReviewRenderer, GoAArrayControlTester, GoABaseInputReviewComponent, GoABaseRenderers, GoABaseReviewRenderers, GoABaseTableReviewRenderers, GoABooleanControl, GoABooleanControlTester, GoABooleanRadioControl, GoABooleanRadioControlTester, GoACalculationControl, GoACalculationControlTester, GoACells, GoACheckoutGroupControlTester, GoAContractInfoControlReview, GoADateControl, GoADateControlTester, GoADateInput, GoADateTimeControl, GoADateTimeControlTester, GoADateTimeInput, GoAEmailControl, GoAEmailControlTester, GoAEmailInput, GoAEnumCheckboxGroupControl, GoAEnumControl, GoAEnumControlTester, GoAEnumRadioGroupControl, GoAInputBaseControl, GoAInputBaseFullNameControlReview, GoAInputBaseFullNameDobControlReview, GoAInputBaseReviewControl, GoAInputBaseTableReview, GoAInputBaseTableReviewControl, GoAInputDateControl, GoAInputDateTimeControl, GoAInputEmailControl, GoAInputIntegerControl, GoAInputNumberControl, GoAInputText, GoAInputTextControl, GoAInputTimeControl, GoAIntegerControl, GoAIntegerControlTester, GoAListWithDetailsControlRenderer, GoAListWithDetailsTester, GoANumberControl, GoANumberControlTester, GoANumberInput, GoAPhoneNumberControl, GoAPhoneNumberWithTypeControl, GoAPrimitiveArrayRenderer, GoAPrimitiveArrayTester, GoARadioGroupControlTester, GoARenderers, GoAReviewRenderers, GoATextControl, GoATextControlTester, GoATimeControl, GoATimeControlTester, GoATimeInput, GoInputBaseReview, GoabInputBasePhoneNumberReviewControl, GoabInputBasePhoneNumberWithTypeReviewControl, GoabInputInteger, InnerGoAInputText, JsonFormContext, JsonFormRegisterProvider, JsonFormsRegisterContext, ListWithDetailsControl, MultiLineText, MultiLineTextControl, MultiLineTextControlInput, MultiLineTextControlTester, OPTION_DEFINITIONS, PHONE_REGEX, PhoneGrid, PhoneNumberControl, PhoneNumberReviewControl, PhoneNumberTester, PhoneNumberWithTypeControl, PhoneNumberWithTypeReviewControl, PhoneNumberWithTypeTester, PrimitiveArrayControl, RadioGroup, USER_FIELD_DEFINITIONS, autoPopulatePropertiesMonaco, autoPopulateValue, categoriesAreValid, createDefaultAjv, enumControl, errMalformedDate, fetchRegisterConfigFromOptions$1 as fetchRegisterConfigFromOptions, formatSin, getByJsonPointer, getCategoryScopes, hasDataInScopes, hasDataValue, isAddressLookup, isContactInformation, isFullName, isFullNameDoB, isPhoneNumberWithType, predictiveOptionsMonaco, registerReducer, resolveRefs, tryResolveRefs, useRegisterUser };