@abgov/jsonforms-components 1.15.6 → 1.15.8

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/README.md CHANGED
@@ -63,7 +63,7 @@ import { JsonFormContextInstance } from '@abgov/jsonforms-components';
63
63
  processCarBrands
64
64
  );
65
65
 
66
- JsonFormContextInstance.addData(
66
+ JsonFormContextInstance.addFormContextData(
67
67
  'countries',
68
68
  Countries.map((country) => country.country)
69
69
  );
package/index.esm.js CHANGED
@@ -3756,144 +3756,160 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
3756
3756
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
3757
3757
  };
3758
3758
 
3759
- const getAxiosInterceptorConfig = axios => {
3760
- const requestId = axios.interceptors.request.use(req => {
3761
- if (req.data === undefined) {
3762
- throw new Error(`The URL: ${req.url} encountered a CORS error.`);
3763
- }
3764
- return req;
3765
- });
3766
- return [requestId, axios];
3767
- };
3768
- const addDataByUrl = (key, url, processDataFunction, token) => __awaiter(void 0, void 0, void 0, function* () {
3769
- let header = {};
3770
- const [requestId, axiosWithConfig] = getAxiosInterceptorConfig(axios);
3771
- if (token) {
3772
- header = Object.assign(Object.assign({}, header), {
3773
- Authorization: `Bearer ${token}`
3759
+ class ContextProviderClass {
3760
+ addDataByUrl(key, url, processDataFunction, token) {
3761
+ return __awaiter(this, void 0, void 0, function* () {
3762
+ let header = {};
3763
+ const [requestId, axiosWithConfig] = this.getAxiosInterceptorConfig(axios);
3764
+ if (token) {
3765
+ header = Object.assign(Object.assign({}, header), {
3766
+ Authorization: `Bearer ${token}`
3767
+ });
3768
+ }
3769
+ yield axiosWithConfig.get(url, header).then(response => {
3770
+ const processedData = processDataFunction(response.data);
3771
+ this.enumValues.set(key, () => processedData);
3772
+ }).catch(err => {
3773
+ if (err.message.includes('CORS')) {
3774
+ console.warn(err.message);
3775
+ } else {
3776
+ console.warn(`addDataByUrl: ${err.message}`);
3777
+ }
3778
+ });
3779
+ axiosWithConfig.interceptors.request.eject(requestId);
3774
3780
  });
3775
3781
  }
3776
- yield axiosWithConfig.get(url, header).then(response => {
3777
- const processedData = processDataFunction(response.data);
3778
- enumValues.set(key, () => processedData);
3779
- }).catch(err => {
3780
- if (err.message.includes('CORS')) {
3781
- console.warn(err.message);
3782
- } else {
3783
- console.warn(`addDataByUrl: ${err.message}`);
3784
- }
3785
- });
3786
- axiosWithConfig.interceptors.request.eject(requestId);
3787
- });
3788
- function addDataByOptions(key, url, location, type, values = ['']) {
3789
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3790
- const dataFunction = data => {
3791
- let dataLink = data;
3792
- let returnData = [''];
3793
- const locationArray = location && Array.isArray(location) ? location : [location];
3794
- const locationArrayTyped = locationArray;
3795
- locationArrayTyped === null || locationArrayTyped === void 0 ? void 0 : locationArrayTyped.forEach(attribute => {
3796
- dataLink = dataLink[attribute];
3797
- });
3798
- const valuesArray = Array.isArray(values) ? values : [values];
3799
- if (type === 'keys') {
3800
- returnData = Object.keys(dataLink);
3801
- } else {
3782
+ constructor() {
3783
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3784
+ this.enumValues = new Map();
3785
+ this.enumFunctions = new Map();
3786
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3787
+ this.enumSubmitFunctions = new Map();
3788
+ this.addFormContextData = (key, data) => {
3789
+ this.enumValues.set(key, () => data);
3790
+ };
3791
+ this.setup = props => {
3792
+ var _a, _b;
3793
+ this.selfProps = props;
3794
+ if (props.fileManagement) {
3795
+ const {
3796
+ fileList,
3797
+ uploadFile,
3798
+ downloadFile,
3799
+ deleteFile
3800
+ } = props.fileManagement;
3801
+ this.enumValues.set('file-list', () => fileList);
3802
+ this.enumFunctions.set('upload-file', () => uploadFile);
3803
+ this.enumFunctions.set('download-file', () => downloadFile);
3804
+ this.enumFunctions.set('delete-file', () => deleteFile);
3805
+ }
3806
+ if (props.submit) {
3807
+ const {
3808
+ submitForm
3809
+ } = props.submit;
3810
+ const submitFunction = submitForm;
3811
+ this.enumSubmitFunctions.set('submit-form', () => submitFunction);
3812
+ }
3813
+ if (props.data) {
3814
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3815
+ (_a = props.data) === null || _a === void 0 ? void 0 : _a.forEach(item => {
3816
+ this.enumValues.set(Object.keys(item)[0], () => item);
3817
+ });
3818
+ }
3819
+ if (!props.children) {
3820
+ return null;
3821
+ }
3822
+ return jsx(JsonFormContext.Provider, {
3823
+ value: this.baseEnumerator,
3824
+ children: (_b = this.selfProps) === null || _b === void 0 ? void 0 : _b.children
3825
+ });
3826
+ };
3827
+ this.getContextProvider = () => {
3828
+ var _a;
3829
+ return jsx(JsonFormContext.Provider, {
3830
+ value: this.baseEnumerator,
3831
+ children: (_a = this.selfProps) === null || _a === void 0 ? void 0 : _a.children
3832
+ });
3833
+ };
3834
+ this.getAxiosInterceptorConfig = axios => {
3835
+ const requestId = axios.interceptors.request.use(req => {
3836
+ if (req.data === undefined) {
3837
+ throw new Error(`The URL: ${req.url} encountered a CORS error.`);
3838
+ }
3839
+ return req;
3840
+ });
3841
+ return [requestId, axios];
3842
+ };
3843
+ this.addDataByOptions = (key, url, location, type, values = ['']) => {
3802
3844
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3803
- returnData = dataLink.map(entry => {
3804
- let parse = '';
3805
- valuesArray.forEach((v, index) => {
3806
- parse += `${entry[v]}`;
3807
- if (index < valuesArray.length - 1) {
3808
- parse += ' ';
3809
- }
3845
+ const dataFunction = data => {
3846
+ let dataLink = data;
3847
+ let returnData = [''];
3848
+ const locationArray = location && Array.isArray(location) ? location : [location];
3849
+ const locationArrayTyped = locationArray;
3850
+ locationArrayTyped === null || locationArrayTyped === void 0 ? void 0 : locationArrayTyped.forEach(attribute => {
3851
+ dataLink = dataLink[attribute];
3852
+ });
3853
+ const valuesArray = Array.isArray(values) ? values : [values];
3854
+ if (type === 'keys') {
3855
+ returnData = Object.keys(dataLink);
3856
+ } else {
3857
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3858
+ returnData = dataLink.map(entry => {
3859
+ let parse = '';
3860
+ valuesArray.forEach((v, index) => {
3861
+ parse += `${entry[v]}`;
3862
+ if (index < valuesArray.length - 1) {
3863
+ parse += ' ';
3864
+ }
3865
+ });
3866
+ return parse;
3867
+ });
3868
+ }
3869
+ return returnData;
3870
+ };
3871
+ this.addDataByUrl(key, url, dataFunction);
3872
+ };
3873
+ /**
3874
+ * Grabs data stored under a given key
3875
+ *
3876
+ */
3877
+ // FIXME give some clue as to what data is being fetched.
3878
+ // e.g.is it getFormContextData?
3879
+ this.getFormContextData = key => {
3880
+ const dataFunction = this.baseEnumerator.data.get(key);
3881
+ return dataFunction && dataFunction();
3882
+ };
3883
+ /**
3884
+ * Grabs all data
3885
+ *
3886
+ */
3887
+ this.getAllFormContextData = () => {
3888
+ const allData = [];
3889
+ this.baseEnumerator.data.forEach((d, key) => {
3890
+ allData.push({
3891
+ [key]: d()
3810
3892
  });
3811
- return parse;
3812
3893
  });
3813
- }
3814
- return returnData;
3815
- };
3816
- addDataByUrl(key, url, dataFunction);
3817
- }
3818
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3819
- const enumValues = new Map();
3820
- const enumFunctions = new Map();
3821
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3822
- const enumSubmitFunctions = new Map();
3823
- const baseEnumerator = {
3824
- data: enumValues,
3825
- functions: enumFunctions,
3826
- submitFunction: enumSubmitFunctions,
3827
- isFormSubmitted: false
3828
- };
3829
- const JsonFormContext = /*#__PURE__*/createContext(baseEnumerator);
3830
- function ContextProvider(props) {
3831
- var _a, _b;
3832
- baseEnumerator.isFormSubmitted = (_a = props.isFormSubmitted) !== null && _a !== void 0 ? _a : false;
3833
- if (props.fileManagement) {
3834
- const {
3835
- fileList,
3836
- uploadFile,
3837
- downloadFile,
3838
- deleteFile
3839
- } = props.fileManagement;
3840
- enumValues.set('file-list', () => fileList);
3841
- enumFunctions.set('upload-file', () => uploadFile);
3842
- enumFunctions.set('download-file', () => downloadFile);
3843
- enumFunctions.set('delete-file', () => deleteFile);
3844
- }
3845
- if (props.submit) {
3846
- const {
3847
- submitForm
3848
- } = props.submit;
3849
- const submitFunction = submitForm;
3850
- enumSubmitFunctions.set('submit-form', () => submitFunction);
3851
- }
3852
- if (props.data) {
3853
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3854
- (_b = props.data) === null || _b === void 0 ? void 0 : _b.forEach(item => {
3855
- enumValues.set(Object.keys(item)[0], () => item);
3856
- });
3857
- }
3858
- if (!props.children) {
3859
- return null;
3894
+ return allData;
3895
+ };
3896
+ this.baseEnumerator = {
3897
+ data: this.enumValues,
3898
+ functions: this.enumFunctions,
3899
+ submitFunction: this.enumSubmitFunctions,
3900
+ addFormContextData: this.addFormContextData,
3901
+ addDataByOptions: this.addDataByOptions,
3902
+ addDataByUrl: this.addDataByUrl,
3903
+ getFormContextData: this.getFormContextData,
3904
+ getAllFormContextData: this.getAllFormContextData
3905
+ };
3906
+ this.selfProps = {};
3860
3907
  }
3861
- return jsx(JsonFormContext.Provider, {
3862
- value: baseEnumerator,
3863
- children: props.children
3864
- });
3865
- }
3866
- /**
3867
- * Grabs data stored under a given key
3868
- *
3869
- */
3870
- // FIXME give some clue as to what data is being fetched.
3871
- // e.g.is it getFormContextData?
3872
- function getData(key) {
3873
- const dataFunction = baseEnumerator.data.get(key);
3874
- return dataFunction && dataFunction();
3875
- }
3876
- /**
3877
- * Grabs all data
3878
- *
3879
- */
3880
- function getAllData() {
3881
- const allData = [];
3882
- baseEnumerator.data.forEach((d, key) => {
3883
- allData.push({
3884
- [key]: d()
3885
- });
3886
- });
3887
- return allData;
3888
- }
3889
- /**
3890
- * Allows additional data to be added under a given key
3891
- *
3892
- * This data will then be available inside the context
3893
- */
3894
- function addData(key, data) {
3895
- enumValues.set(key, () => data);
3896
3908
  }
3909
+ const ContextProviderC = new ContextProviderClass();
3910
+ const ContextProvider = ContextProviderC.setup;
3911
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3912
+ const JsonFormContext = /*#__PURE__*/createContext(null);
3897
3913
 
3898
3914
  const EnumSelect = props => {
3899
3915
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
@@ -3910,6 +3926,7 @@ const EnumSelect = props => {
3910
3926
  label,
3911
3927
  uischema
3912
3928
  } = props;
3929
+ const enumerators = useContext(JsonFormContext);
3913
3930
  let enumData = (schema === null || schema === void 0 ? void 0 : schema.enum) || [];
3914
3931
  const appliedUiSchemaOptions = merge({}, config, props.uischema.options, options);
3915
3932
  const dataKey = (_b = (_a = uischema === null || uischema === void 0 ? void 0 : uischema.options) === null || _a === void 0 ? void 0 : _a.enumContext) === null || _b === void 0 ? void 0 : _b.key;
@@ -3920,11 +3937,11 @@ const EnumSelect = props => {
3920
3937
  const errorsFormInput = checkFieldValidity(props);
3921
3938
  useEffect(() => {
3922
3939
  if (dataKey && url) {
3923
- addDataByOptions(dataKey, url, location, type, values);
3940
+ enumerators.addDataByOptions(dataKey, url, location, type, values);
3924
3941
  }
3925
- }, [url, location, type, values, dataKey]);
3926
- if (dataKey && getData(dataKey)) {
3927
- const newData = getData(dataKey);
3942
+ }, [url, location, type, values, dataKey, enumerators]);
3943
+ if (dataKey && enumerators.getFormContextData(dataKey)) {
3944
+ const newData = enumerators.getFormContextData(dataKey);
3928
3945
  enumData = newData;
3929
3946
  }
3930
3947
  return jsx(GoADropdown, Object.assign({
@@ -3967,6 +3984,7 @@ const EnumSelectAutoComplete = props => {
3967
3984
  label
3968
3985
  } = props;
3969
3986
  let enumData = (schema === null || schema === void 0 ? void 0 : schema.enum) || [];
3987
+ const enumerators = useContext(JsonFormContext);
3970
3988
  const dataKey = (_b = (_a = uischema === null || uischema === void 0 ? void 0 : uischema.options) === null || _a === void 0 ? void 0 : _a.enumContext) === null || _b === void 0 ? void 0 : _b.key;
3971
3989
  const url = (_d = (_c = uischema === null || uischema === void 0 ? void 0 : uischema.options) === null || _c === void 0 ? void 0 : _c.enumContext) === null || _d === void 0 ? void 0 : _d.url;
3972
3990
  const location = (_f = (_e = uischema === null || uischema === void 0 ? void 0 : uischema.options) === null || _e === void 0 ? void 0 : _e.enumContext) === null || _f === void 0 ? void 0 : _f.location;
@@ -3974,11 +3992,11 @@ const EnumSelectAutoComplete = props => {
3974
3992
  const values = (_k = (_j = uischema === null || uischema === void 0 ? void 0 : uischema.options) === null || _j === void 0 ? void 0 : _j.enumContext) === null || _k === void 0 ? void 0 : _k.values;
3975
3993
  useEffect(() => {
3976
3994
  if (dataKey && url) {
3977
- addDataByOptions(dataKey, url, location, type, values);
3995
+ enumerators.addDataByOptions(dataKey, url, location, type, values);
3978
3996
  }
3979
- }, [url, location, type, values, dataKey]);
3980
- if (dataKey && getData(dataKey)) {
3981
- const newData = getData(dataKey);
3997
+ }, [url, location, type, values, dataKey, enumerators]);
3998
+ if (dataKey && enumerators.getFormContextData(dataKey)) {
3999
+ const newData = enumerators.getFormContextData(dataKey);
3982
4000
  // eslint-disable-next-line
3983
4001
  enumData = newData;
3984
4002
  }
@@ -4040,7 +4058,7 @@ const RadioGroup = props => {
4040
4058
  return jsx(GoARadioGroup, Object.assign({
4041
4059
  error: errorsFormInput.length > 0,
4042
4060
  name: `${options || appliedUiSchemaOptions.label}`,
4043
- testId: `${id || label}-jsonform-dropdown`,
4061
+ testId: `${label || id}-jsonforms-radio`,
4044
4062
  value: data,
4045
4063
  disabled: !enabled
4046
4064
  }, appliedUiSchemaOptions, {
@@ -4548,10 +4566,12 @@ const RenderStepElements = props => {
4548
4566
  const validateData = (jsonSchema, data, ajv) => {
4549
4567
  const newSchema = JSON.parse(JSON.stringify(jsonSchema));
4550
4568
  Object.keys(newSchema.properties || {}).forEach(propertyName => {
4551
- var _a;
4569
+ var _a, _b, _c, _d;
4552
4570
  const property = newSchema.properties || {};
4553
- property[propertyName].enum = getData(propertyName);
4554
- if (((_a = property[propertyName]) === null || _a === void 0 ? void 0 : _a.format) === 'file-urn') {
4571
+ if (((_a = property[propertyName]) === null || _a === void 0 ? void 0 : _a.enum) && ((_b = property[propertyName]) === null || _b === void 0 ? void 0 : _b.enum[0]) === '') {
4572
+ (_c = property[propertyName]) === null || _c === void 0 ? true : delete _c.enum;
4573
+ }
4574
+ if (((_d = property[propertyName]) === null || _d === void 0 ? void 0 : _d.format) === 'file-urn') {
4555
4575
  delete property[propertyName].format;
4556
4576
  }
4557
4577
  });
@@ -4603,7 +4623,7 @@ const FormStepper = props => {
4603
4623
  t
4604
4624
  } = props;
4605
4625
  const enumerators = useContext(JsonFormContext);
4606
- const submitFormFunction = enumerators.submitFunction.get('submit-form');
4626
+ const submitFormFunction = enumerators === null || enumerators === void 0 ? void 0 : enumerators.submitFunction.get('submit-form');
4607
4627
  const submitForm = submitFormFunction && submitFormFunction();
4608
4628
  const categorization = uischema;
4609
4629
  const allCategories = JSON.parse(JSON.stringify(categorization));
@@ -4926,6 +4946,8 @@ const FileUploader = _a => {
4926
4946
  const deleteTriggerFunction = enumerators.functions.get('delete-file');
4927
4947
  const deleteTrigger = deleteTriggerFunction && deleteTriggerFunction();
4928
4948
  const fileListValue = enumerators.data.get('file-list');
4949
+ const countries = ['Argentina', 'Brazil', 'Canada', 'Denmark', 'Egypt', 'France', 'Greece', 'India', 'Japan', 'Kenya'];
4950
+ enumerators.addFormContextData('countries', countries);
4929
4951
  // eslint-disable-next-line
4930
4952
  const fileList = fileListValue && fileListValue();
4931
4953
  const {
@@ -5883,8 +5905,6 @@ const ajv = new Ajv({
5883
5905
  //Example format: urn:ads:platform:file-service:v1:/files/f6de737e-c5fc-42fe-963b-28bfe14597c4
5884
5906
  ajv.addFormat('file-urn', /^urn:ads:platform:file-service:v[0-9]:\/files\/[a-zA-Z0-9.-]*$/);
5885
5907
 
5886
- const countries = ['Argentina', 'Brazil', 'Canada', 'Denmark', 'Egypt', 'France', 'Greece', 'India', 'Japan', 'Kenya'];
5887
- addData('countries', countries);
5888
5908
  const GoABaseRenderers = [
5889
5909
  // controls
5890
5910
  {
@@ -5961,4 +5981,4 @@ const GoARenderers = [...GoABaseRenderers, {
5961
5981
  }];
5962
5982
  const GoACells = [...InputCells];
5963
5983
 
5964
- export { ContextProvider, GoABaseRenderers, GoACells, GoARenderers, JsonFormContext, addData, addDataByOptions, addDataByUrl, ajv, getAllData, getAxiosInterceptorConfig, getData };
5984
+ export { ContextProvider, ContextProviderC, GoABaseRenderers, GoACells, GoARenderers, JsonFormContext, ajv };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abgov/jsonforms-components",
3
- "version": "1.15.6",
3
+ "version": "1.15.8",
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",
@@ -0,0 +1,69 @@
1
+ import React from 'react';
2
+ import { AxiosStatic } from 'axios';
3
+ interface AllData {
4
+ [x: string]: any;
5
+ }
6
+ export interface enumerators {
7
+ data: Map<string, () => any>;
8
+ functions: Map<string, () => (file: File, propertyId: string) => void | undefined>;
9
+ submitFunction: Map<string, () => (id: string) => void | undefined>;
10
+ addFormContextData: (key: string, data: Record<string, unknown> | unknown[]) => void;
11
+ addDataByOptions: (key: string, url: string, location: string[] | string, type: string, values?: string[] | string) => string[];
12
+ addDataByUrl: (key: string, url: string, processDataFunction: (data: object) => string[], token?: string) => void;
13
+ getFormContextData: (key: string) => Record<string, any>;
14
+ getAllFormContextData: () => AllData;
15
+ }
16
+ interface FileManagement {
17
+ fileList?: any;
18
+ uploadFile?: (file: File, propertyId: string) => void;
19
+ downloadFile?: (file: File) => void;
20
+ deleteFile?: (file: File) => void;
21
+ }
22
+ interface SubmitManagement {
23
+ submitForm?: (any: any) => void;
24
+ }
25
+ type Props = {
26
+ children?: React.ReactNode;
27
+ fileManagement?: FileManagement;
28
+ submit?: SubmitManagement;
29
+ isFormSubmitted?: boolean;
30
+ data?: any;
31
+ };
32
+ declare class ContextProviderClass {
33
+ selfProps: Props | undefined;
34
+ enumValues: Map<string, () => Record<string, any>>;
35
+ enumFunctions: Map<string, () => ((file: File, propertyId: string) => void) | undefined>;
36
+ enumSubmitFunctions: Map<string, () => ((data: any) => void) | undefined>;
37
+ baseEnumerator: {
38
+ data: Map<string, () => Record<string, any>>;
39
+ functions: Map<string, () => ((file: File, propertyId: string) => void) | undefined>;
40
+ submitFunction: Map<string, () => ((data: any) => void) | undefined>;
41
+ addFormContextData: (key: string, data: Record<string, unknown> | unknown[]) => void;
42
+ addDataByOptions: (key: string, url: string, location: string[] | string, type: string, values?: string[] | string) => void;
43
+ addDataByUrl: (key: string, url: string, processDataFunction: (data: object) => string[], token?: string) => void;
44
+ getFormContextData: (key: string) => Record<string, any> | undefined;
45
+ getAllFormContextData: () => AllData;
46
+ isFormSubmitted?: boolean;
47
+ };
48
+ addFormContextData: (key: string, data: Record<string, unknown> | unknown[]) => void;
49
+ addDataByUrl(key: string, url: string, processDataFunction: (data: object) => string[], token?: string): Promise<void>;
50
+ constructor();
51
+ setup: (props: Props) => import("react/jsx-runtime").JSX.Element | null;
52
+ getContextProvider: () => import("react/jsx-runtime").JSX.Element;
53
+ getAxiosInterceptorConfig: (axios: AxiosStatic) => [number, AxiosStatic];
54
+ addDataByOptions: (key: string, url: string, location: string[] | string, type: string, values?: string[] | string) => void;
55
+ /**
56
+ * Grabs data stored under a given key
57
+ *
58
+ */
59
+ getFormContextData: (key: string) => Record<string, any> | undefined;
60
+ /**
61
+ * Grabs all data
62
+ *
63
+ */
64
+ getAllFormContextData: () => AllData;
65
+ }
66
+ export declare const ContextProviderC: ContextProviderClass;
67
+ export declare const ContextProvider: (props: Props) => import("react/jsx-runtime").JSX.Element | null;
68
+ export declare const JsonFormContext: React.Context<any>;
69
+ export {};
@@ -1,48 +1 @@
1
- import React from 'react';
2
- import { AxiosStatic } from 'axios';
3
- export interface AllData {
4
- [x: string]: any;
5
- }
6
- export declare const getAxiosInterceptorConfig: (axios: AxiosStatic) => [number, AxiosStatic];
7
- export declare const addDataByUrl: (key: string, url: string, processDataFunction: (data: object) => string[], token?: string) => Promise<void>;
8
- export declare function addDataByOptions(key: string, url: string, location: string[] | string, type: string, values?: string[] | string): void;
9
- interface FileManagement {
10
- fileList?: any;
11
- uploadFile?: (file: File, propertyId: string) => void;
12
- downloadFile?: (file: File) => void;
13
- deleteFile?: (file: File) => void;
14
- }
15
- interface SubmitManagement {
16
- submitForm?: (any: any) => void;
17
- }
18
- type Props = {
19
- children?: React.ReactNode;
20
- fileManagement?: FileManagement;
21
- submit?: SubmitManagement;
22
- isFormSubmitted?: boolean;
23
- data?: any;
24
- };
25
- export declare const JsonFormContext: React.Context<{
26
- data: Map<string, () => Record<string, any>>;
27
- functions: Map<string, () => ((file: File, propertyId: string) => void) | undefined>;
28
- submitFunction: Map<string, () => ((data: any) => void) | undefined>;
29
- isFormSubmitted: boolean;
30
- }>;
31
- export declare function ContextProvider(props: Props): JSX.Element | null;
32
- /**
33
- * Grabs data stored under a given key
34
- *
35
- */
36
- export declare function getData(key: string): Record<string, any> | undefined;
37
- /**
38
- * Grabs all data
39
- *
40
- */
41
- export declare function getAllData(): AllData;
42
- /**
43
- * Allows additional data to be added under a given key
44
- *
45
- * This data will then be available inside the context
46
- */
47
- export declare function addData(key: string, data: Record<string, unknown> | unknown[]): void;
48
- export {};
1
+ export * from './ContextProvider';