@wise/dynamic-flow-client 3.3.2 → 3.4.0-experimental-9862ccf
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/build/common/httpClientContext/HttpClientContext.js +35 -0
- package/build/common/httpClientContext/index.js +1 -0
- package/build/common/makeHttpClient/index.js +1 -0
- package/build/common/makeHttpClient/makeHttpClient.js +34 -0
- package/build/common/messages/generic-error.messages.js +18 -0
- package/build/common/messages/help.messages.js +8 -0
- package/build/common/messages/multi-file-upload.messages.js +18 -0
- package/build/common/messages/paragraph.messages.js +13 -0
- package/build/common/messages/repeatable.messages.js +23 -0
- package/build/common/messages/validation.array.messages.js +13 -0
- package/build/common/messages/validation.messages.js +53 -0
- package/build/common/utils/api-utils.js +4 -0
- package/build/legacy/common/constants/DateMode.js +4 -0
- package/build/legacy/common/constants/FeatureName.js +4 -0
- package/build/legacy/common/constants/FormControlType.js +21 -0
- package/build/legacy/common/constants/MonthFormat.js +4 -0
- package/build/legacy/common/constants/Size.js +7 -0
- package/build/legacy/common/constants/index.js +4 -0
- package/build/legacy/common/contexts/dynamicFlowContexts/DynamicFlowContexts.js +36 -0
- package/build/legacy/common/contexts/dynamicFlowContexts/usePendingPromiseCounter.js +13 -0
- package/build/legacy/common/contexts/eventsContext/EventsContext.js +38 -0
- package/build/legacy/common/contexts/featureContext/FeatureContext.js +22 -0
- package/build/legacy/common/contexts/index.js +3 -0
- package/build/legacy/common/contexts/logContext/LogContext.js +44 -0
- package/build/legacy/common/hooks/index.js +7 -0
- package/build/legacy/common/hooks/useDebouncedFunction/useDebouncedFunction.js +9 -0
- package/build/legacy/common/hooks/useExternal/useExternal.js +15 -0
- package/build/legacy/common/hooks/useExternalStepPolling/useExternalStepPolling.js +70 -0
- package/build/legacy/common/hooks/usePersistAsync/usePersistAsync.js +172 -0
- package/build/legacy/common/hooks/usePolling/usePolling.js +51 -0
- package/build/legacy/common/hooks/usePrevious/usePrevious.js +8 -0
- package/build/legacy/common/hooks/useStepPolling/useStepPolling.js +43 -0
- package/build/legacy/common/messages.js +8 -0
- package/build/legacy/common/utils/api-utils.js +6 -0
- package/build/legacy/common/utils/date-utils.js +22 -0
- package/build/legacy/common/utils/debounce.js +38 -0
- package/build/legacy/common/utils/file-utils.js +45 -0
- package/build/legacy/common/utils/id-utils.js +5 -0
- package/build/legacy/common/utils/index.js +11 -0
- package/build/legacy/common/utils/is-equal.js +21 -0
- package/build/legacy/common/utils/misc-utils.js +4 -0
- package/build/legacy/common/utils/mobile-utils.js +23 -0
- package/build/legacy/common/utils/model-utils.js +33 -0
- package/build/legacy/common/utils/schema-utils.js +97 -0
- package/build/legacy/common/utils/step-utils.js +32 -0
- package/build/legacy/common/validators/index.js +5 -0
- package/build/legacy/common/validators/models/model-utils.js +119 -0
- package/build/legacy/common/validators/models/model-validators.js +62 -0
- package/build/legacy/common/validators/schemas/schema-validators.js +101 -0
- package/build/legacy/common/validators/types/type-validators.js +14 -0
- package/build/legacy/common/validators/validationFailures/validation-failures.js +139 -0
- package/build/legacy/common/validators/validationFailures/validation-failures.utils.js +40 -0
- package/build/legacy/common/validators/values/value-validators.js +6 -0
- package/build/legacy/dynamic-flow-types.js +1 -0
- package/build/legacy/dynamicFlow/BackButton.js +22 -0
- package/build/legacy/dynamicFlow/DynamicFlowStep.js +37 -0
- package/build/legacy/formControl/FormControl.js +266 -0
- package/build/legacy/formControl/index.js +1 -0
- package/build/legacy/formControl/utils/getAutocompleteString.js +80 -0
- package/build/legacy/formControl/utils/index.js +2 -0
- package/build/legacy/formControl/utils/value-utils.js +108 -0
- package/build/legacy/jsonSchemaForm/allOfSchema/AllOfSchema.js +50 -0
- package/build/legacy/jsonSchemaForm/allOfSchema/index.js +1 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/ArraySchema.js +25 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/ArrayListSchema.js +30 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/MultipleFileUploadSchema.js +141 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/index.js +1 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/utils/index.js +2 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/utils/upload-utils.js +79 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/utils/useFormattedDefaultErrorMessages.js +14 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/ItemSummary.js +7 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/RepeatableSchema.js +134 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/RepeatableSchemaStep.js +85 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/utils/summary-utils.js +135 -0
- package/build/legacy/jsonSchemaForm/arrayTypeSchema/index.js +1 -0
- package/build/legacy/jsonSchemaForm/basicTypeSchema/BasicTypeSchema.js +111 -0
- package/build/legacy/jsonSchemaForm/basicTypeSchema/index.js +1 -0
- package/build/legacy/jsonSchemaForm/controlFeedback/ControlFeedback.js +86 -0
- package/build/legacy/jsonSchemaForm/controlFeedback/index.js +1 -0
- package/build/legacy/jsonSchemaForm/help/Help.js +20 -0
- package/build/legacy/jsonSchemaForm/help/index.js +1 -0
- package/build/legacy/jsonSchemaForm/objectSchema/ObjectSchema.js +77 -0
- package/build/legacy/jsonSchemaForm/objectSchema/index.js +1 -0
- package/build/legacy/jsonSchemaForm/oneOfSchema/OneOfSchema.js +155 -0
- package/build/legacy/jsonSchemaForm/oneOfSchema/index.js +1 -0
- package/build/legacy/jsonSchemaForm/oneOfSchema/utils.js +68 -0
- package/build/legacy/jsonSchemaForm/persistAsyncSchema/PersistAsyncSchema.js +26 -0
- package/build/legacy/jsonSchemaForm/persistAsyncSchema/index.js +1 -0
- package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBasicSchema/PersistAsyncBasicSchema.js +165 -0
- package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBasicSchema/index.js +1 -0
- package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBlobSchema/PersistAsyncBlobSchema.js +131 -0
- package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBlobSchema/UploadInputAdapter.js +31 -0
- package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBlobSchema/index.js +1 -0
- package/build/legacy/jsonSchemaForm/promotedOneOfSchema/PromotedOneOfSchema.js +72 -0
- package/build/legacy/jsonSchemaForm/promotedOneOfSchema/index.js +1 -0
- package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promoted-one-of-utils.js +8 -0
- package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promotedOneOfControl/PromotedOneOfCheckboxControl.js +27 -0
- package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promotedOneOfControl/PromotedOneOfControl.js +31 -0
- package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promotedOneOfControl/PromotedOneOfRadioControl.js +32 -0
- package/build/legacy/jsonSchemaForm/readOnlySchema/ReadOnlySchema.js +54 -0
- package/build/legacy/jsonSchemaForm/readOnlySchema/ReadOnlySchema.messages.js +13 -0
- package/build/legacy/jsonSchemaForm/readOnlySchema/index.js +1 -0
- package/build/legacy/jsonSchemaForm/schemaFormControl/SchemaFormControl.js +133 -0
- package/build/legacy/jsonSchemaForm/schemaFormControl/index.js +1 -0
- package/build/legacy/jsonSchemaForm/schemaFormControl/utils/index.js +1 -0
- package/build/legacy/jsonSchemaForm/schemaFormControl/utils/mapping-utils.js +107 -0
- package/build/legacy/layout/DynamicLayout.js +68 -0
- package/build/legacy/layout/alert/DynamicAlert.js +29 -0
- package/build/legacy/layout/box/DynamicBox.js +41 -0
- package/build/legacy/layout/button/DynamicButton.js +27 -0
- package/build/legacy/layout/button/utils.js +45 -0
- package/build/legacy/layout/columns/DynamicColumns.js +38 -0
- package/build/legacy/layout/decision/DynamicDecision.js +21 -0
- package/build/legacy/layout/divider/DynamicDivider.js +9 -0
- package/build/legacy/layout/external/DynamicExternal.js +32 -0
- package/build/legacy/layout/external/DynamicExternal.messages.js +8 -0
- package/build/legacy/layout/form/DynamicForm.js +22 -0
- package/build/legacy/layout/heading/DynamicHeading.js +51 -0
- package/build/legacy/layout/icon/DynamicIcon.js +17 -0
- package/build/legacy/layout/icon/FlagIcon.js +198 -0
- package/build/legacy/layout/icon/NamedIcon.js +19 -0
- package/build/legacy/layout/image/DynamicImage.js +111 -0
- package/build/legacy/layout/index.js +20 -0
- package/build/legacy/layout/instructions/DynamicInstructions.js +30 -0
- package/build/legacy/layout/list/DynamicStatusList.js +37 -0
- package/build/legacy/layout/loadingIndicator/DynamicLoadingIndicator.js +11 -0
- package/build/legacy/layout/markdown/DynamicMarkdown.js +23 -0
- package/build/legacy/layout/modal/DynamicModal.js +26 -0
- package/build/legacy/layout/paragraph/DynamicParagraph.js +46 -0
- package/build/legacy/layout/paragraph/useSnackBarIfAvailable.js +9 -0
- package/build/legacy/layout/review/DynamicReview.js +58 -0
- package/build/legacy/layout/search/DynamicSearch.js +58 -0
- package/build/legacy/layout/search/SearchInput.js +17 -0
- package/build/legacy/layout/search/SearchResults.js +31 -0
- package/build/legacy/layout/search/useSearch.js +137 -0
- package/build/legacy/layout/utils/getNavigationOptionMedia.js +28 -0
- package/build/legacy/layout/utils/index.js +32 -0
- package/build/legacy/step/cameraStep/CameraStep.js +124 -0
- package/build/legacy/step/cameraStep/cameraCapture/CameraCapture.js +161 -0
- package/build/legacy/step/cameraStep/cameraCapture/CameraCapture.messages.js +58 -0
- package/build/legacy/step/cameraStep/cameraCapture/components/bottomBar/BottomBar.js +28 -0
- package/build/legacy/step/cameraStep/cameraCapture/components/index.js +3 -0
- package/build/legacy/step/cameraStep/cameraCapture/components/orientationLockOverlay/OrientationLockOverlay.js +19 -0
- package/build/legacy/step/cameraStep/cameraCapture/components/orientationLockOverlay/OrientationLockOverlay.messages.js +8 -0
- package/build/legacy/step/cameraStep/cameraCapture/hooks/useFullScreenOrientationLock.js +60 -0
- package/build/legacy/step/cameraStep/cameraCapture/hooks/useVideoConstraints.js +80 -0
- package/build/legacy/step/cameraStep/cameraCapture/index.js +1 -0
- package/build/legacy/step/cameraStep/cameraCapture/overlay/Overlay.js +77 -0
- package/build/legacy/step/cameraStep/cameraCapture/screens/cameraErrorScreen/CameraErrorScreen.js +18 -0
- package/build/legacy/step/cameraStep/cameraCapture/screens/index.js +1 -0
- package/build/legacy/step/cameraStep/cameraCapture/tracking/index.js +109 -0
- package/build/legacy/step/cameraStep/cameraCapture/types/index.js +7 -0
- package/build/legacy/step/cameraStep/cameraCapture/utils/index.js +107 -0
- package/build/legacy/step/cameraStep/index.js +1 -0
- package/build/legacy/step/externalConfirmationStep/ExternalConfirmationStep.js +64 -0
- package/build/legacy/step/externalConfirmationStep/ExternalConfirmationStep.messages.js +23 -0
- package/build/legacy/step/externalConfirmationStep/index.js +1 -0
- package/build/legacy/step/index.js +3 -0
- package/build/legacy/step/layoutStep/LayoutStep.js +33 -0
- package/build/legacy/step/layoutStep/index.js +1 -0
- package/build/legacy/step/layoutStep/utils/index.js +2 -0
- package/build/legacy/step/layoutStep/utils/inline-reference-utils.js +105 -0
- package/build/legacy/step/layoutStep/utils/layout-utils.js +212 -0
- package/build/main.js +13 -28
- package/build/main.min.js +1 -1
- package/build/main.mjs +13 -28
- package/build/types/revamp/domain/features/events.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
14
|
+
import { makeHttpClient } from '../makeHttpClient';
|
|
15
|
+
var HttpClientContext = createContext(undefined);
|
|
16
|
+
export function HttpClientProvider(_a) {
|
|
17
|
+
var httpClient = _a.httpClient, children = _a.children;
|
|
18
|
+
return _jsx(HttpClientContext.Provider, __assign({ value: httpClient }, { children: children }));
|
|
19
|
+
}
|
|
20
|
+
export function HttpClientProviderFromBaseUrl(_a) {
|
|
21
|
+
var baseUrl = _a.baseUrl, children = _a.children;
|
|
22
|
+
var httpClient = useMemo(function () { return makeHttpClient(baseUrl); }, [baseUrl]);
|
|
23
|
+
return _jsx(HttpClientContext.Provider, __assign({ value: httpClient }, { children: children }));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Provides the fetch(er) function for dynamic flows asynchronous operations.
|
|
27
|
+
*/
|
|
28
|
+
export var useHttpClient = function () {
|
|
29
|
+
var contextFetch = useContext(HttpClientContext);
|
|
30
|
+
return contextFetch !== null && contextFetch !== void 0 ? contextFetch : fetch;
|
|
31
|
+
};
|
|
32
|
+
export var useHasHttpClientProvider = function () {
|
|
33
|
+
var context = useContext(HttpClientContext);
|
|
34
|
+
return Boolean(context);
|
|
35
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './HttpClientContext';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './makeHttpClient';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { isRelativePath } from '../utils/api-utils';
|
|
13
|
+
export var makeHttpClient = function (baseUrl, additionalHeaders) {
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
15
|
+
return function (input, init) {
|
|
16
|
+
var resource = applyBaseUrl(input, baseUrl || '');
|
|
17
|
+
return fetch(resource, mergeRequestInit(init !== null && init !== void 0 ? init : {}, { headers: additionalHeaders }));
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
var applyBaseUrl = function (input, baseUrl) {
|
|
21
|
+
return typeof input === 'string' && isRelativePath(input) ? baseUrl + input : input;
|
|
22
|
+
};
|
|
23
|
+
export var mergeRequestInit = function (init, additionalInit) { return (__assign(__assign(__assign({}, init), additionalInit), { headers: mergeHeaders(init === null || init === void 0 ? void 0 : init.headers, additionalInit === null || additionalInit === void 0 ? void 0 : additionalInit.headers) })); };
|
|
24
|
+
var mergeHeaders = function (initHeaders, additionalHeaders) {
|
|
25
|
+
if (!initHeaders && !additionalHeaders) {
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
var headers = new Headers(initHeaders);
|
|
29
|
+
for (var _i = 0, _a = Object.entries(additionalHeaders !== null && additionalHeaders !== void 0 ? additionalHeaders : {}); _i < _a.length; _i++) {
|
|
30
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
31
|
+
headers.set(key, value);
|
|
32
|
+
}
|
|
33
|
+
return headers;
|
|
34
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
2
|
+
export default defineMessages({
|
|
3
|
+
genericErrorRetryHint: {
|
|
4
|
+
id: 'dynamicFlows.PersistAsyncSchema.genericError',
|
|
5
|
+
defaultMessage: 'Something went wrong, please try again.',
|
|
6
|
+
description: 'Generic error message for persist async schema'
|
|
7
|
+
},
|
|
8
|
+
genericError: {
|
|
9
|
+
id: 'dynamicFlows.ErrorBoundary.errorAlert',
|
|
10
|
+
defaultMessage: 'Something went wrong.',
|
|
11
|
+
description: 'Generic error message for when something has gone wrong.'
|
|
12
|
+
},
|
|
13
|
+
retry: {
|
|
14
|
+
id: 'dynamicFlows.ErrorBoundary.retry',
|
|
15
|
+
defaultMessage: 'Retry',
|
|
16
|
+
description: 'Usually this follows the generic error and contains a link.'
|
|
17
|
+
}
|
|
18
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
2
|
+
export default defineMessages({
|
|
3
|
+
minItemsError: {
|
|
4
|
+
id: 'dynamicFlows.MultipleFileUploadSchema.minItemsError',
|
|
5
|
+
defaultMessage: 'Please upload at least {minItems} file(s).',
|
|
6
|
+
description: 'Customer has uploaded not enough files. To fix: upload more files.'
|
|
7
|
+
},
|
|
8
|
+
maxItemsError: {
|
|
9
|
+
id: 'dynamicFlows.MultipleFileUploadSchema.maxItemsError',
|
|
10
|
+
defaultMessage: 'Please upload {maxItems} or fewer files.',
|
|
11
|
+
description: 'Customer has uploaded too many files. To fix: upload fewer files.'
|
|
12
|
+
},
|
|
13
|
+
maxFileSizeError: {
|
|
14
|
+
id: 'dynamicFlows.MultipleFileUploadSchema.maxFileSizeError',
|
|
15
|
+
defaultMessage: 'Sorry, that file is too big. Please upload a smaller file.',
|
|
16
|
+
description: "Customer has uploaded a file that's too big. To fix: upload a smaller file."
|
|
17
|
+
}
|
|
18
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
2
|
+
export default defineMessages({
|
|
3
|
+
copy: {
|
|
4
|
+
id: 'dynamicFlows.DynamicParagraph.copy',
|
|
5
|
+
defaultMessage: 'Copy',
|
|
6
|
+
description: 'Copy to clipboard button label.'
|
|
7
|
+
},
|
|
8
|
+
copied: {
|
|
9
|
+
id: 'dynamicFlows.DynamicParagraph.copied',
|
|
10
|
+
defaultMessage: 'Copied to clipboard',
|
|
11
|
+
description: 'Appears in a snackbar when the copy operation succeeds.'
|
|
12
|
+
}
|
|
13
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
2
|
+
export default defineMessages({
|
|
3
|
+
addItemTitle: {
|
|
4
|
+
id: 'dynamicFlows.ArraySchema.addItemTitle',
|
|
5
|
+
defaultMessage: 'Add Item',
|
|
6
|
+
description: 'Label on the button used to open a form to add an item'
|
|
7
|
+
},
|
|
8
|
+
addItem: {
|
|
9
|
+
id: 'dynamicFlows.ArraySchema.addItem',
|
|
10
|
+
defaultMessage: 'Save',
|
|
11
|
+
description: 'Label on the add button used to submit a form that adds an item'
|
|
12
|
+
},
|
|
13
|
+
editItem: {
|
|
14
|
+
id: 'dynamicFlows.ArraySchema.editItem',
|
|
15
|
+
defaultMessage: 'Save',
|
|
16
|
+
description: 'Label on the edit button used to submit a form that edits an item'
|
|
17
|
+
},
|
|
18
|
+
removeItem: {
|
|
19
|
+
id: 'dynamicFlows.ArraySchema.removeItem',
|
|
20
|
+
defaultMessage: 'Remove',
|
|
21
|
+
description: 'Label on the remove button used to confirm deletion of an item'
|
|
22
|
+
}
|
|
23
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
2
|
+
export default defineMessages({
|
|
3
|
+
minItemsError: {
|
|
4
|
+
id: 'dynamicFlows.ArraySchema.minItemsError',
|
|
5
|
+
defaultMessage: 'Please add at least {minItems}.',
|
|
6
|
+
description: 'Customer inputs less than the expected number of values'
|
|
7
|
+
},
|
|
8
|
+
maxItemsError: {
|
|
9
|
+
id: 'dynamicFlows.ArraySchema.maxItemsError',
|
|
10
|
+
defaultMessage: 'Please add {maxItems} or fewer.',
|
|
11
|
+
description: 'Customer inputs more than the allowed number of values'
|
|
12
|
+
}
|
|
13
|
+
});
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
2
|
+
export default defineMessages({
|
|
3
|
+
type: {
|
|
4
|
+
id: 'dynamicFlows.ControlFeedback.type',
|
|
5
|
+
defaultMessage: 'Incorrect type',
|
|
6
|
+
description: ''
|
|
7
|
+
},
|
|
8
|
+
minimum: {
|
|
9
|
+
id: 'dynamicFlows.ControlFeedback.minimum',
|
|
10
|
+
defaultMessage: "Please enter a number that's {minimum} or more.",
|
|
11
|
+
description: ''
|
|
12
|
+
},
|
|
13
|
+
maximum: {
|
|
14
|
+
id: 'dynamicFlows.ControlFeedback.maximum',
|
|
15
|
+
defaultMessage: "Please enter a number that's {maximum} or less.",
|
|
16
|
+
description: ''
|
|
17
|
+
},
|
|
18
|
+
minLength: {
|
|
19
|
+
id: 'dynamicFlows.ControlFeedback.minLength',
|
|
20
|
+
defaultMessage: 'Please enter at least {minLength} characters.',
|
|
21
|
+
description: ''
|
|
22
|
+
},
|
|
23
|
+
maxLength: {
|
|
24
|
+
id: 'dynamicFlows.ControlFeedback.maxLength',
|
|
25
|
+
defaultMessage: 'Please enter {maxLength} or fewer characters.',
|
|
26
|
+
description: ''
|
|
27
|
+
},
|
|
28
|
+
minimumDate: {
|
|
29
|
+
id: 'dynamicFlows.ControlFeedback.minimumDate',
|
|
30
|
+
defaultMessage: "Please enter a date that's on or after {minimum}.",
|
|
31
|
+
description: ''
|
|
32
|
+
},
|
|
33
|
+
maximumDate: {
|
|
34
|
+
id: 'dynamicFlows.ControlFeedback.maximumDate',
|
|
35
|
+
defaultMessage: "Please enter a date that's on or before {maximum}.",
|
|
36
|
+
description: ''
|
|
37
|
+
},
|
|
38
|
+
pattern: {
|
|
39
|
+
id: 'dynamicFlows.ControlFeedback.pattern',
|
|
40
|
+
defaultMessage: 'Please enter this in the correct format.',
|
|
41
|
+
description: ''
|
|
42
|
+
},
|
|
43
|
+
patternDate: {
|
|
44
|
+
id: 'dynamicFlows.ControlFeedback.patternDate',
|
|
45
|
+
defaultMessage: 'Please enter a date in the corrrect format.',
|
|
46
|
+
description: ''
|
|
47
|
+
},
|
|
48
|
+
required: {
|
|
49
|
+
id: 'dynamicFlows.ControlFeedback.required',
|
|
50
|
+
defaultMessage: 'Please fill out this field.',
|
|
51
|
+
description: ''
|
|
52
|
+
}
|
|
53
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export var FormControlType = {
|
|
2
|
+
RADIO: 'radio',
|
|
3
|
+
CHECKBOX: 'checkbox',
|
|
4
|
+
SELECT: 'select',
|
|
5
|
+
EMAIL: 'email',
|
|
6
|
+
FILE: 'file',
|
|
7
|
+
DATE: 'date',
|
|
8
|
+
DATETIME: 'date-time',
|
|
9
|
+
DATELOOKUP: 'date-lookup',
|
|
10
|
+
TEL: 'tel',
|
|
11
|
+
// For string schemas with number format
|
|
12
|
+
NUMERIC: 'numeric',
|
|
13
|
+
// For number schemas
|
|
14
|
+
NUMBER: 'number',
|
|
15
|
+
HIDDEN: 'hidden',
|
|
16
|
+
PASSWORD: 'password',
|
|
17
|
+
TEXT: 'text',
|
|
18
|
+
TEXTAREA: 'textarea',
|
|
19
|
+
UPLOAD: 'upload',
|
|
20
|
+
TAB: 'tab'
|
|
21
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
14
|
+
import { usePendingPromiseCounter } from './usePendingPromiseCounter';
|
|
15
|
+
var defaultContextValue = {
|
|
16
|
+
loading: false,
|
|
17
|
+
registerPersistAsyncPromise: function (promise) {
|
|
18
|
+
//
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
var DFContext = createContext(defaultContextValue);
|
|
22
|
+
export var DynamicFlowProvider = function (_a) {
|
|
23
|
+
var loading = _a.loading, children = _a.children;
|
|
24
|
+
var _b = usePendingPromiseCounter(), pendingPromises = _b.pendingPromises, addPendingPromise = _b.addPendingPromise;
|
|
25
|
+
var providerValue = useMemo(function () {
|
|
26
|
+
return {
|
|
27
|
+
loading: loading || pendingPromises > 0,
|
|
28
|
+
registerPersistAsyncPromise: addPendingPromise
|
|
29
|
+
};
|
|
30
|
+
}, [loading, pendingPromises, addPendingPromise]);
|
|
31
|
+
return _jsx(DFContext.Provider, __assign({ value: providerValue }, { children: children }));
|
|
32
|
+
};
|
|
33
|
+
export var useDynamicFlow = function () {
|
|
34
|
+
var context = useContext(DFContext);
|
|
35
|
+
return context || defaultContextValue;
|
|
36
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useCallback, useState } from 'react';
|
|
2
|
+
export function usePendingPromiseCounter() {
|
|
3
|
+
var _a = useState(0), count = _a[0], setCount = _a[1];
|
|
4
|
+
var addPendingPromise = useCallback(function (promise) {
|
|
5
|
+
setCount(function (c) { return c + 1; });
|
|
6
|
+
promise["catch"](noop)["finally"](function () { return delayUntilNextCycle(function () { return setCount(function (c) { return Math.max(0, c - 1); }); }); });
|
|
7
|
+
}, [setCount]);
|
|
8
|
+
return { addPendingPromise: addPendingPromise, pendingPromises: count };
|
|
9
|
+
}
|
|
10
|
+
var delayUntilNextCycle = function (fn) { return setTimeout(function () { return fn(); }, 0); };
|
|
11
|
+
var noop = function () {
|
|
12
|
+
// no-op
|
|
13
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
14
|
+
var EventsContext = createContext({
|
|
15
|
+
triggerEvent: function () {
|
|
16
|
+
// noop
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
export function EventsContextProvider(_a) {
|
|
20
|
+
var metadata = _a.metadata, children = _a.children, onEvent = _a.onEvent;
|
|
21
|
+
var value = useMemo(function () { return ({ triggerEvent: getEventDispatcher(onEvent, metadata) }); }, [onEvent, metadata]);
|
|
22
|
+
return _jsx(EventsContext.Provider, __assign({ value: value }, { children: children }));
|
|
23
|
+
}
|
|
24
|
+
export function useEventDispatcher() {
|
|
25
|
+
var triggerEvent = useContext(EventsContext).triggerEvent;
|
|
26
|
+
return triggerEvent;
|
|
27
|
+
}
|
|
28
|
+
export var getEventDispatcher = function (onEvent, metadata) {
|
|
29
|
+
return function (eventName, properties) {
|
|
30
|
+
if (properties === void 0) { properties = {}; }
|
|
31
|
+
try {
|
|
32
|
+
onEvent(eventName, __assign(__assign({}, metadata), properties));
|
|
33
|
+
}
|
|
34
|
+
catch (_a) {
|
|
35
|
+
// noop
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { createContext, useContext } from 'react';
|
|
14
|
+
var FeatureContext = createContext([]);
|
|
15
|
+
export function FeatureContextProvider(_a) {
|
|
16
|
+
var features = _a.features, children = _a.children;
|
|
17
|
+
return _jsx(FeatureContext.Provider, __assign({ value: features }, { children: children }));
|
|
18
|
+
}
|
|
19
|
+
export var useFeatureFlag = function (featureName) {
|
|
20
|
+
var features = useContext(FeatureContext);
|
|
21
|
+
return features === null || features === void 0 ? void 0 : features.find(function (feature) { return feature.featureName === featureName; });
|
|
22
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
14
|
+
export var getLogger = function (level, onLog, flowId, stepId) {
|
|
15
|
+
if (flowId === void 0) { flowId = 'UNKNOWN-FLOW-ID'; }
|
|
16
|
+
if (stepId === void 0) { stepId = 'UNKNOWN-FLOW-ID'; }
|
|
17
|
+
return function (title, description, extra) {
|
|
18
|
+
try {
|
|
19
|
+
onLog(level, "Dynamic Flow ".concat(level, " - ").concat(title, " - ").concat(description), __assign({ flowId: flowId, stepId: stepId }, extra));
|
|
20
|
+
}
|
|
21
|
+
catch (_a) {
|
|
22
|
+
// noop
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
var LogContext = createContext(null);
|
|
27
|
+
export function LogProvider(_a) {
|
|
28
|
+
var flowId = _a.flowId, stepId = _a.stepId, children = _a.children, onLog = _a.onLog;
|
|
29
|
+
var value = useMemo(function () { return ({
|
|
30
|
+
debug: getLogger('debug', onLog, flowId, stepId),
|
|
31
|
+
info: getLogger('info', onLog, flowId, stepId),
|
|
32
|
+
warning: getLogger('warning', onLog, flowId, stepId),
|
|
33
|
+
error: getLogger('error', onLog, flowId, stepId),
|
|
34
|
+
critical: getLogger('critical', onLog, flowId, stepId)
|
|
35
|
+
}); }, [onLog, flowId, stepId]);
|
|
36
|
+
return _jsx(LogContext.Provider, __assign({ value: value }, { children: children }));
|
|
37
|
+
}
|
|
38
|
+
export var useLogger = function () {
|
|
39
|
+
var logging = useContext(LogContext);
|
|
40
|
+
if (logging == null) {
|
|
41
|
+
throw new Error('Logging context not found. Did you forget to wrap your component in a <LogProvider />?');
|
|
42
|
+
}
|
|
43
|
+
return logging;
|
|
44
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './useDebouncedFunction/useDebouncedFunction';
|
|
2
|
+
export * from './useExternal/useExternal';
|
|
3
|
+
export * from './useExternalStepPolling/useExternalStepPolling';
|
|
4
|
+
export * from './usePersistAsync/usePersistAsync';
|
|
5
|
+
export * from './usePolling/usePolling';
|
|
6
|
+
export * from './usePrevious/usePrevious';
|
|
7
|
+
export * from './useStepPolling/useStepPolling';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/* References:
|
|
2
|
+
- https://github.com/gnbaron/use-lodash-debounce
|
|
3
|
+
- https://dmitripavlutin.com/react-throttle-debounce/
|
|
4
|
+
*/
|
|
5
|
+
import { useCallback } from 'react';
|
|
6
|
+
import { debounce } from '../../utils';
|
|
7
|
+
export function useDebouncedFunction(callback, waitMs) {
|
|
8
|
+
return useCallback(debounce(callback, waitMs), [callback, waitMs]);
|
|
9
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
export function useExternal(url) {
|
|
3
|
+
// If we fail to open the window, the user will need to open this on their own
|
|
4
|
+
var _a = useState(null), externalWindow = _a[0], setExternalWindow = _a[1];
|
|
5
|
+
var _b = useState(false), hasManuallyTriggered = _b[0], setHasManuallyTriggered = _b[1];
|
|
6
|
+
var dismissConfirmation = function () { return setHasManuallyTriggered(true); };
|
|
7
|
+
useEffect(function () {
|
|
8
|
+
if (url) {
|
|
9
|
+
setHasManuallyTriggered(false);
|
|
10
|
+
setExternalWindow(window.open(url, '_blank'));
|
|
11
|
+
}
|
|
12
|
+
}, [url]);
|
|
13
|
+
var requiresManualTrigger = Boolean(url && !externalWindow && !hasManuallyTriggered);
|
|
14
|
+
return { requiresManualTrigger: requiresManualTrigger, dismissConfirmation: dismissConfirmation };
|
|
15
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { useCallback, useMemo } from 'react';
|
|
13
|
+
import { usePolling } from '..';
|
|
14
|
+
import { useHttpClient } from '../../../../common/httpClientContext';
|
|
15
|
+
/** @deprecated External step is no longer supported */
|
|
16
|
+
export function useExternalStepPolling(polling, onAction) {
|
|
17
|
+
var httpClient = useHttpClient();
|
|
18
|
+
var asyncFn = useMemo(function () {
|
|
19
|
+
if (polling) {
|
|
20
|
+
return function () {
|
|
21
|
+
return httpClient(polling.url)
|
|
22
|
+
.then(function (response) {
|
|
23
|
+
if (response.ok) {
|
|
24
|
+
try {
|
|
25
|
+
return response.json();
|
|
26
|
+
}
|
|
27
|
+
catch (_a) {
|
|
28
|
+
throw new Error('failed');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
throw new Error('failed');
|
|
33
|
+
}
|
|
34
|
+
})["catch"](function (error) {
|
|
35
|
+
throw new Error(error.message === 'failed' ? 'failed' : 'network failed');
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}, [polling, httpClient]);
|
|
41
|
+
var onPollingResponse = useCallback(function (pollingResponse) {
|
|
42
|
+
var responseHandlers = (polling === null || polling === void 0 ? void 0 : polling.responseHandlers) || [];
|
|
43
|
+
var responseHandler = responseHandlers.find(function (handler) { return handler.result === pollingResponse.result; });
|
|
44
|
+
if (responseHandler === null || responseHandler === void 0 ? void 0 : responseHandler.action) {
|
|
45
|
+
var action = responseHandler.action;
|
|
46
|
+
if (action.exit) {
|
|
47
|
+
var mergedResult = __assign(__assign({}, (action.result || {})), (pollingResponse.data || {}));
|
|
48
|
+
onAction(__assign(__assign({}, action), { result: mergedResult }));
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
var mergedData = __assign(__assign({}, (action.data || {})), (pollingResponse.data || {}));
|
|
52
|
+
onAction(__assign(__assign({}, action), { data: mergedData }));
|
|
53
|
+
}
|
|
54
|
+
return false; // stop polling
|
|
55
|
+
}
|
|
56
|
+
return true; // continue polling
|
|
57
|
+
}, [polling === null || polling === void 0 ? void 0 : polling.responseHandlers, onAction]);
|
|
58
|
+
usePolling({
|
|
59
|
+
asyncFn: asyncFn,
|
|
60
|
+
interval: (polling === null || polling === void 0 ? void 0 : polling.interval) || 0,
|
|
61
|
+
maxAttempts: (polling === null || polling === void 0 ? void 0 : polling.maxAttempts) || 0,
|
|
62
|
+
maxConsecutiveFails: (polling === null || polling === void 0 ? void 0 : polling.maxConsecutiveFails) || 0,
|
|
63
|
+
onPollingResponse: onPollingResponse,
|
|
64
|
+
onFailure: useCallback(function () {
|
|
65
|
+
if (polling) {
|
|
66
|
+
onAction(polling.onError.action);
|
|
67
|
+
}
|
|
68
|
+
}, [onAction, polling])
|
|
69
|
+
});
|
|
70
|
+
}
|