@abgov/jsonforms-components 2.47.6 → 2.47.7

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
@@ -5,7 +5,7 @@ import { GoabFormItem, GoabInput, GoabTextArea, GoabCallout, GoabRadioGroup, Goa
5
5
  import styled from 'styled-components';
6
6
  import axios from 'axios';
7
7
  import get$1 from 'lodash/get';
8
- import { isVisible, isEnabled, deriveLabelForUISchemaElement, rankWith, isStringControl, and, optionIs, isDateControl, isNumberControl, isIntegerControl, isDateTimeControl, isTimeControl, uiTypeIs, isControl as isControl$1, isEnumControl, isBooleanControl, createDefaultValue, Paths, toDataPath, Resolve, schemaMatches, getAjv, or, isObjectArrayControl, isPrimitiveArrayControl, schemaTypeIs, formatIs, hasType, isCategorization, isLayout } from '@jsonforms/core';
8
+ import { isVisible, isEnabled, deriveLabelForUISchemaElement, rankWith, isStringControl, and, optionIs, isDateControl, isNumberControl, isIntegerControl, isDateTimeControl, isTimeControl, uiTypeIs, isControl as isControl$1, isEnumControl, isBooleanControl, createDefaultValue, Paths, toDataPath, Resolve, schemaMatches, getAjv, or, isObjectArrayControl, isPrimitiveArrayControl, composePaths, schemaTypeIs, formatIs, hasType, isCategorization, isLayout } from '@jsonforms/core';
9
9
  import * as _$c from 'lodash';
10
10
  import ___default, { isEqual, isObject as isObject$i, isEmpty as isEmpty$1 } from 'lodash';
11
11
  import { useJsonForms, withJsonFormsControlProps, withJsonFormsEnumProps, withTranslateProps, JsonFormsDispatch, withJsonFormsAllOfProps, withJsonFormsArrayLayoutProps, withJsonFormsLayoutProps, withJsonFormsCellProps } from '@jsonforms/react';
@@ -11596,7 +11596,8 @@ const ArrayControl = props => {
11596
11596
  }))
11597
11597
  });
11598
11598
  };
11599
- const GoAArrayControlTester = rankWith(3, or(isObjectArrayControl, isPrimitiveArrayControl));
11599
+ const GoAArrayControlTester = rankWith(3, or(isObjectArrayControl));
11600
+ const GoAPrimitiveArrayTester = rankWith(2, isPrimitiveArrayControl);
11600
11601
  const ArrayControlBase = props => {
11601
11602
  const {
11602
11603
  visible
@@ -11625,6 +11626,70 @@ const ArrayControlReview = props => {
11625
11626
  };
11626
11627
  const GoAArrayControlRenderer = withJsonFormsControlProps(ArrayControlBase);
11627
11628
  const GoAArrayControlReviewRenderer = withJsonFormsControlProps(ArrayControlReview);
11629
+ const PrimitiveArrayControl = props => {
11630
+ const {
11631
+ data,
11632
+ path,
11633
+ handleChange,
11634
+ visible,
11635
+ enabled,
11636
+ uischema,
11637
+ schema,
11638
+ renderers,
11639
+ cells
11640
+ } = props;
11641
+ const items = Array.isArray(data) ? data : [];
11642
+ const addItem = () => {
11643
+ handleChange(path, [...items, '']);
11644
+ };
11645
+ const removeItem = index => {
11646
+ const copy = [...items];
11647
+ copy.splice(index, 1);
11648
+ handleChange(path, copy);
11649
+ };
11650
+ const itemUiSchema = Object.assign({}, uischema, {
11651
+ scope: '#'
11652
+ });
11653
+ const label = (uischema == null ? void 0 : uischema.label) || (schema == null ? void 0 : schema.title) || 'Item';
11654
+ const arrayLabel = getLabelText(uischema.scope, label);
11655
+ const prettyLabel = pluralize.singular(arrayLabel.charAt(0).toLocaleUpperCase() + arrayLabel.slice(1));
11656
+ return jsxs(Visible, {
11657
+ visible: visible,
11658
+ children: [jsx("div", {
11659
+ style: {
11660
+ marginBottom: '8px'
11661
+ },
11662
+ children: jsxs(GoabButton, {
11663
+ disabled: !enabled,
11664
+ onClick: () => addItem(),
11665
+ children: ["Add ", prettyLabel]
11666
+ })
11667
+ }), items.length === 0 && jsxs("p", {
11668
+ style: {
11669
+ opacity: 0.7
11670
+ },
11671
+ children: ["No ", arrayLabel.toLowerCase(), " added"]
11672
+ }), items.map((item, index) => jsxs("div", {
11673
+ style: {
11674
+ display: 'flex',
11675
+ gap: 8
11676
+ },
11677
+ children: [jsx(JsonFormsDispatch, {
11678
+ schema: schema.items,
11679
+ uischema: itemUiSchema,
11680
+ path: composePaths(path, `${index}`),
11681
+ enabled: enabled,
11682
+ renderers: renderers,
11683
+ cells: cells
11684
+ }, index), jsx(GoabIconButton, {
11685
+ icon: "trash",
11686
+ "aria-label": `remove-${index}`,
11687
+ onClick: () => removeItem(index)
11688
+ })]
11689
+ }, index))]
11690
+ });
11691
+ };
11692
+ const GoAPrimitiveArrayRenderer = withJsonFormsControlProps(PrimitiveArrayControl);
11628
11693
 
11629
11694
  const ListWithDetailsControl = props => {
11630
11695
  const [open, setOpen] = useState(false);
@@ -13678,14 +13743,14 @@ const RenderPages = props => {
13678
13743
  });
13679
13744
  };
13680
13745
 
13681
- const isRecord = v => typeof v === 'object' && v !== null && !Array.isArray(v);
13746
+ const isRecord$1 = v => typeof v === 'object' && v !== null && !Array.isArray(v);
13682
13747
  function getByJsonPointer(obj, pointer) {
13683
- if (!isRecord(obj) || !pointer || pointer[0] !== '#') return undefined;
13748
+ if (!isRecord$1(obj) || !pointer || pointer[0] !== '#') return undefined;
13684
13749
  const parts = pointer.replace(/^#\//, '').split('/').filter(Boolean);
13685
13750
  let cur = obj;
13686
13751
  for (const part of parts) {
13687
13752
  if (part === 'properties') continue;
13688
- if (!isRecord(cur)) return undefined;
13753
+ if (!isRecord$1(cur)) return undefined;
13689
13754
  cur = cur[part];
13690
13755
  if (cur === undefined) return undefined;
13691
13756
  }
@@ -13701,7 +13766,7 @@ function hasDataValue(v, key) {
13701
13766
  if (t === 'string') return v.trim().length > 0;
13702
13767
  if (t === 'number' || t === 'boolean') return true;
13703
13768
  if (Array.isArray(v)) return v.length > 0;
13704
- if (isRecord(v)) {
13769
+ if (isRecord$1(v)) {
13705
13770
  for (const k of Object.keys(v)) {
13706
13771
  if (hasDataValue(v[k], k)) return true;
13707
13772
  }
@@ -13710,7 +13775,7 @@ function hasDataValue(v, key) {
13710
13775
  return false;
13711
13776
  }
13712
13777
  function getCategoryScopes(cat) {
13713
- if (!isRecord(cat)) return [];
13778
+ if (!isRecord$1(cat)) return [];
13714
13779
  const scopes = cat.scopes;
13715
13780
  return Array.isArray(scopes) && scopes.every(s => typeof s === 'string') ? scopes : [];
13716
13781
  }
@@ -13848,7 +13913,7 @@ const FileUploaderReview = props => {
13848
13913
  }));
13849
13914
  };
13850
13915
  const FileUploader = _ref => {
13851
- var _enumerators$function, _enumerators$function2, _enumerators$function3, _uischema$options, _uischema$options2, _uischema$options3, _uischema$options4, _fileList$props$i18nK, _uischema$options$com, _uischema$options5, _uischema$options7, _uischema$options$com3, _uischema$options8, _uischema$options$com4, _uischema$options9, _uischema$options0;
13916
+ var _enumerators$function, _enumerators$function2, _enumerators$function3, _uischema$options, _uischema$options2, _uischema$options3, _uischema$options4, _fileList$path, _uischema$options$com, _uischema$options5, _uischema$options6, _uischema$options$com2, _uischema$options7, _uischema$options$com3, _uischema$options8, _uischema$options9;
13852
13917
  let {
13853
13918
  path,
13854
13919
  handleChange,
@@ -13882,13 +13947,12 @@ const FileUploader = _ref => {
13882
13947
  const noDownloadButtonInReview = uischema == null || (_uischema$options3 = uischema.options) == null || (_uischema$options3 = _uischema$options3.format) == null || (_uischema$options3 = _uischema$options3.review) == null ? void 0 : _uischema$options3.noDownloadButton;
13883
13948
  const noDeleteButton = uischema == null || (_uischema$options4 = uischema.options) == null || (_uischema$options4 = _uischema$options4.format) == null || (_uischema$options4 = _uischema$options4.review) == null ? void 0 : _uischema$options4.noDeleteButton;
13884
13949
  const [deleteHide, setDeleteHide] = useState(false);
13885
- const fileListLength = fileList && ((_fileList$props$i18nK = fileList[props.i18nKeyPrefix]) == null ? void 0 : _fileList$props$i18nK.length) || 0;
13950
+ const fileListLength = fileList && ((_fileList$path = fileList[path]) == null ? void 0 : _fileList$path.length) || 0;
13886
13951
  const maxFiles = (_uischema$options$com = uischema == null || (_uischema$options5 = uischema.options) == null || (_uischema$options5 = _uischema$options5.componentProps) == null ? void 0 : _uischema$options5.maximum) != null ? _uischema$options$com : 1;
13887
13952
  const isMultiFile = maxFiles > 1;
13888
13953
  function uploadFile(file) {
13889
- var _uischema$options$com2, _uischema$options6, _fileList$propertyId;
13954
+ var _fileList$propertyId;
13890
13955
  if (!uploadTrigger) return;
13891
- const maxFiles = (_uischema$options$com2 = uischema == null || (_uischema$options6 = uischema.options) == null || (_uischema$options6 = _uischema$options6.componentProps) == null ? void 0 : _uischema$options6.maximum) != null ? _uischema$options$com2 : 1;
13892
13956
  const fileListLength = fileList && ((_fileList$propertyId = fileList[propertyId]) == null ? void 0 : _fileList$propertyId.length) || 0;
13893
13957
  if (fileListLength >= maxFiles) {
13894
13958
  setUploadError(`You can only upload up to ${maxFiles} file${maxFiles > 1 ? 's' : ''}.`);
@@ -13896,7 +13960,7 @@ const FileUploader = _ref => {
13896
13960
  }
13897
13961
  setUploadError(undefined);
13898
13962
  setLoadingFileName(file == null ? void 0 : file.name);
13899
- uploadTrigger(file, `${propertyId}.${fileListLength}`);
13963
+ uploadTrigger(file, path);
13900
13964
  setDeleteHide(false);
13901
13965
  }
13902
13966
  function downloadFile(file) {
@@ -13914,41 +13978,37 @@ const FileUploader = _ref => {
13914
13978
  return (_getFile = getFile(index)) == null ? void 0 : _getFile.filename;
13915
13979
  }
13916
13980
  function getFile(index) {
13917
- var _fileList$props$i18nK2;
13918
- return fileList == null || (_fileList$props$i18nK2 = fileList[props.i18nKeyPrefix]) == null ? void 0 : _fileList$props$i18nK2[index];
13981
+ var _fileList$path2;
13982
+ return fileList == null || (_fileList$path2 = fileList[path]) == null ? void 0 : _fileList$path2[index];
13919
13983
  }
13920
13984
  useEffect(() => {
13921
13985
  if (loadingFileName !== undefined) {
13922
13986
  setLoadingFileName(undefined);
13923
13987
  }
13924
- // UseEffect is required because not having it causes a react update error, but
13925
- // it doesn't function correctly within jsonforms unless there is a minor delay here
13926
13988
  const delayedFunction = () => {
13927
- const files = [];
13928
- for (let i = 0; i < fileListLength; i++) {
13929
- files.push(getFile(i));
13930
- }
13931
- if (fileList) {
13932
- const data = files.map(f => f.urn).join(';');
13933
- if (data === '') {
13934
- handleChange(path, undefined);
13935
- } else {
13936
- handleChange(path, data);
13937
- }
13989
+ if (!fileList) return;
13990
+ const filesForControl = (fileList == null ? void 0 : fileList[path]) || [];
13991
+ const urns = filesForControl.map(f => f.urn);
13992
+ if (urns.length === 0) {
13993
+ handleChange(path, undefined);
13994
+ } else if (isMultiFile) {
13995
+ handleChange(path, urns);
13996
+ } else {
13997
+ handleChange(path, urns[0]);
13938
13998
  }
13939
13999
  };
13940
14000
  const timeoutId = setTimeout(delayedFunction, 1);
13941
14001
  return () => clearTimeout(timeoutId);
13942
14002
  //eslint-disable-next-line
13943
- }, [handleChange, fileList, propertyId]);
13944
- const readOnly = (uischema == null || (_uischema$options7 = uischema.options) == null || (_uischema$options7 = _uischema$options7.componentProps) == null ? void 0 : _uischema$options7.readOnly) === true || (props == null ? void 0 : props.isStepperReview) === true || user === null;
13945
- const maxFileSize = (_uischema$options$com3 = uischema == null || (_uischema$options8 = uischema.options) == null || (_uischema$options8 = _uischema$options8.componentProps) == null ? void 0 : _uischema$options8.maxFileSize) != null ? _uischema$options$com3 : '';
13946
- const accept = (_uischema$options$com4 = uischema == null || (_uischema$options9 = uischema.options) == null || (_uischema$options9 = _uischema$options9.componentProps) == null ? void 0 : _uischema$options9.accept) != null ? _uischema$options$com4 : '';
14003
+ }, [fileList, propertyId]);
14004
+ const readOnly = (uischema == null || (_uischema$options6 = uischema.options) == null || (_uischema$options6 = _uischema$options6.componentProps) == null ? void 0 : _uischema$options6.readOnly) === true || (props == null ? void 0 : props.isStepperReview) === true || user === null;
14005
+ const maxFileSize = (_uischema$options$com2 = uischema == null || (_uischema$options7 = uischema.options) == null || (_uischema$options7 = _uischema$options7.componentProps) == null ? void 0 : _uischema$options7.maxFileSize) != null ? _uischema$options$com2 : '';
14006
+ const accept = (_uischema$options$com3 = uischema == null || (_uischema$options8 = uischema.options) == null || (_uischema$options8 = _uischema$options8.componentProps) == null ? void 0 : _uischema$options8.accept) != null ? _uischema$options$com3 : '';
13947
14007
  if (!enumerators) {
13948
14008
  //eslint-disable-next-line
13949
14009
  return jsx(Fragment, {});
13950
14010
  }
13951
- const helpText = uischema == null || (_uischema$options0 = uischema.options) == null ? void 0 : _uischema$options0.help;
14011
+ const helpText = uischema == null || (_uischema$options9 = uischema.options) == null ? void 0 : _uischema$options9.help;
13952
14012
  const sentenceCaseLabel = label;
13953
14013
  const DownloadFileWidget = ({
13954
14014
  index
@@ -14032,7 +14092,7 @@ const FileUploader = _ref => {
14032
14092
  })
14033
14093
  })
14034
14094
  }) : jsx("div", {
14035
- children: fileList && isMultiFile ? (fileList[props.i18nKeyPrefix] || []).map((_, index) => jsx(DownloadFileWidget, {
14095
+ children: fileList && isMultiFile ? (fileList[path] || []).map((_, index) => jsx(DownloadFileWidget, {
14036
14096
  index: index
14037
14097
  }, index)) : !deleteHide && getFile(fileListLength - 1) && fileListLength >= 0 && jsx(DownloadFileWidget, {
14038
14098
  index: fileListLength - 1
@@ -17507,24 +17567,25 @@ const isNullSchema = schema => {
17507
17567
  return schema === undefined || schema === null;
17508
17568
  };
17509
17569
  const isValidScope = (uiSchema, schema) => {
17510
- if (!('scope' in uiSchema)) {
17570
+ if (!('scope' in uiSchema) || typeof uiSchema.scope !== 'string') {
17511
17571
  return false;
17512
17572
  }
17513
- const scopeComponents = uiSchema.scope.split('/');
17514
- // get rid of the '#' at the beginning of scope
17515
- scopeComponents.shift();
17516
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
17573
+ const scopeStr = uiSchema.scope;
17574
+ if (scopeStr === '#') return true;
17575
+ const scopeComponents = scopeStr.split('/');
17576
+ if (scopeComponents[0] === '#') scopeComponents.shift();
17517
17577
  let obj = schema;
17518
- // iterate through the schema to ensure each property exists
17519
17578
  for (const key of scopeComponents) {
17520
- if (obj && typeof obj === 'object' && key in obj) {
17521
- obj = obj[key];
17522
- } else {
17579
+ if (!isRecord(obj) || !(key in obj)) {
17523
17580
  return false;
17524
17581
  }
17582
+ obj = obj[key];
17525
17583
  }
17526
17584
  return true;
17527
17585
  };
17586
+ function isRecord(value) {
17587
+ return value !== null && typeof value === 'object';
17588
+ }
17528
17589
  const isLayoutType = schema => {
17529
17590
  return hasType(schema, 'VerticalLayout') || hasType(schema, 'HorizontalLayout') || hasType(schema, 'Categorization') || hasType(schema, 'Group');
17530
17591
  };
@@ -17535,8 +17596,7 @@ const isListWithDetail = schema => {
17535
17596
  return hasType(schema, 'ListWithDetail');
17536
17597
  };
17537
17598
  const isScopedPrefixed = scope => {
17538
- const scopeComponents = scope.split('/');
17539
- return scopeComponents.length > 1 && scopeComponents[0] === '#';
17599
+ return scope.startsWith('#');
17540
17600
  };
17541
17601
  const isEmptyObject = schema => {
17542
17602
  return Object.keys(schema).length === 0;
@@ -17812,6 +17872,9 @@ const GoABaseRenderers = [
17812
17872
  }, {
17813
17873
  tester: MultiLineTextControlTester,
17814
17874
  renderer: MultiLineTextControl
17875
+ }, {
17876
+ tester: GoAPrimitiveArrayTester,
17877
+ renderer: GoAPrimitiveArrayRenderer
17815
17878
  }, {
17816
17879
  tester: HelpContentTester,
17817
17880
  renderer: HelpContent
@@ -18000,4 +18063,4 @@ const GoARenderers = [...GoABaseRenderers, {
18000
18063
  }];
18001
18064
  const GoACells = [...InputCells];
18002
18065
 
18003
- export { ADD_DATALIST_ACTION, ADD_NO_ANONYMOUS_ACTION, ADD_REGISTER_DATA_ACTION, ADD_REGISTER_DATA_ERROR, 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, GoARadioGroupControlTester, GoARenderers, GoAReviewRenderers, GoATextControl, GoATextControlTester, GoATimeControl, GoATimeControlTester, GoATimeInput, GoInputBaseReview, GoabInputBasePhoneNumberReviewControl, GoabInputBasePhoneNumberWithTypeReviewControl, GoabInputInteger, JsonFormContext, JsonFormRegisterProvider, JsonFormsRegisterContext, ListWithDetailsControl, MultiLineText, MultiLineTextControl, MultiLineTextControlInput, MultiLineTextControlTester, PHONE_REGEX, PhoneGrid, PhoneNumberControl, PhoneNumberReviewControl, PhoneNumberTester, PhoneNumberWithTypeControl, PhoneNumberWithTypeReviewControl, PhoneNumberWithTypeTester, RadioGroup, categoriesAreValid, createDefaultAjv, enumControl, errMalformedDate, formatSin, getByJsonPointer, getCategoryScopes, hasDataInScopes, hasDataValue, isAddressLookup, isFullName, isFullNameDoB, isPhoneNumber, isPhoneNumberWithType, registerReducer, resolveRefs, tryResolveRefs };
18066
+ export { ADD_DATALIST_ACTION, ADD_NO_ANONYMOUS_ACTION, ADD_REGISTER_DATA_ACTION, ADD_REGISTER_DATA_ERROR, 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, JsonFormContext, JsonFormRegisterProvider, JsonFormsRegisterContext, ListWithDetailsControl, MultiLineText, MultiLineTextControl, MultiLineTextControlInput, MultiLineTextControlTester, PHONE_REGEX, PhoneGrid, PhoneNumberControl, PhoneNumberReviewControl, PhoneNumberTester, PhoneNumberWithTypeControl, PhoneNumberWithTypeReviewControl, PhoneNumberWithTypeTester, PrimitiveArrayControl, RadioGroup, categoriesAreValid, createDefaultAjv, enumControl, errMalformedDate, formatSin, getByJsonPointer, getCategoryScopes, hasDataInScopes, hasDataValue, isAddressLookup, isFullName, isFullNameDoB, isPhoneNumber, isPhoneNumberWithType, registerReducer, resolveRefs, tryResolveRefs };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abgov/jsonforms-components",
3
- "version": "2.47.6",
3
+ "version": "2.47.7",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Government of Alberta - React renderers for JSON Forms based on the design system.",
6
6
  "repository": "https://github.com/GovAlta/adsp-monorepo",
@@ -3,7 +3,10 @@ import { ArrayLayoutProps, RankedTester, ControlProps } from '@jsonforms/core';
3
3
  export type CombinedProps = ControlProps & ArrayLayoutProps;
4
4
  export declare const ArrayControl: (props: CombinedProps) => import("react/jsx-runtime").JSX.Element;
5
5
  export declare const GoAArrayControlTester: RankedTester;
6
+ export declare const GoAPrimitiveArrayTester: RankedTester;
6
7
  export declare const ArrayControlBase: (props: ControlProps) => import("react/jsx-runtime").JSX.Element;
7
8
  export declare const ArrayControlReview: (props: ControlProps) => import("react/jsx-runtime").JSX.Element | null;
8
9
  export declare const GoAArrayControlRenderer: React.ComponentType<import("@jsonforms/core").OwnPropsOfControl>;
9
10
  export declare const GoAArrayControlReviewRenderer: React.ComponentType<import("@jsonforms/core").OwnPropsOfControl>;
11
+ export declare const PrimitiveArrayControl: (props: ControlProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const GoAPrimitiveArrayRenderer: React.ComponentType<import("@jsonforms/core").OwnPropsOfControl>;