@oneblink/apps-react 2.8.0-beta.3 → 2.8.0-beta.5

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.
Files changed (105) hide show
  1. package/dist/OneBlinkAutoSaveForm.d.ts +1 -1
  2. package/dist/OneBlinkForm.d.ts +1 -1
  3. package/dist/OneBlinkFormBase.d.ts +3 -3
  4. package/dist/OneBlinkFormBase.js +0 -1
  5. package/dist/OneBlinkFormBase.js.map +1 -1
  6. package/dist/OneBlinkReadOnlyForm.d.ts +1 -1
  7. package/dist/components/CopyToClipboardIconButton.d.ts +1 -1
  8. package/dist/components/Lists.d.ts +2 -2
  9. package/dist/components/LoadingWithMessage.d.ts +1 -1
  10. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +1 -1
  11. package/dist/components/formStore/table/ColumnFilters.d.ts +1 -1
  12. package/dist/components/formStore/table/FormElementTableCell.d.ts +1 -1
  13. package/dist/components/formStore/table/RepeatableSetCell.d.ts +1 -1
  14. package/dist/components/formStore/table/RepeatableSetCellAccordion.d.ts +1 -1
  15. package/dist/components/formStore/useFormStoreTableContext.d.ts +1 -1
  16. package/dist/components/messages/ErrorMessage.d.ts +1 -1
  17. package/dist/components/messages/LargeIconMessage.d.ts +2 -2
  18. package/dist/components/messages/NoResourcesYet.d.ts +1 -1
  19. package/dist/components/pickers/V4CompatibleDatePicker.d.ts +4 -4
  20. package/dist/components/pickers/V4CompatibleDateTimePicker.d.ts +4 -4
  21. package/dist/components/pickers/V4CompatibleTimePicker.d.ts +4 -4
  22. package/dist/components/receipts/Receipt.d.ts +1 -1
  23. package/dist/components/receipts/ReceiptButton.d.ts +1 -1
  24. package/dist/components/receipts/ReceiptList.d.ts +1 -1
  25. package/dist/components/receipts/ReceiptListItem.d.ts +1 -1
  26. package/dist/components/renderer/AutocompleteDropdown.d.ts +2 -2
  27. package/dist/components/renderer/CopyToClipboardButton.d.ts +1 -1
  28. package/dist/components/renderer/CustomisableButtonInner.d.ts +1 -1
  29. package/dist/components/renderer/FormElementOptions.d.ts +1 -1
  30. package/dist/components/renderer/LookupButton.d.ts +1 -1
  31. package/dist/components/renderer/LookupNotification.d.ts +1 -1
  32. package/dist/components/renderer/Modal.d.ts +1 -1
  33. package/dist/components/renderer/OnLoading.d.ts +1 -1
  34. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +1 -1
  35. package/dist/components/renderer/OneBlinkFormElements.d.ts +1 -1
  36. package/dist/components/renderer/PageFormElements.d.ts +1 -1
  37. package/dist/components/renderer/PageFormElements.js +0 -2
  38. package/dist/components/renderer/PageFormElements.js.map +1 -1
  39. package/dist/components/renderer/attachments/FileCard.d.ts +1 -1
  40. package/dist/form-elements/FormElementABN.d.ts +1 -1
  41. package/dist/form-elements/FormElementABN.js +3 -1
  42. package/dist/form-elements/FormElementABN.js.map +1 -1
  43. package/dist/form-elements/FormElementAutocomplete.d.ts +3 -3
  44. package/dist/form-elements/FormElementBSB.d.ts +1 -1
  45. package/dist/form-elements/FormElementBSB.js +3 -1
  46. package/dist/form-elements/FormElementBSB.js.map +1 -1
  47. package/dist/form-elements/FormElementBarcodeScanner.d.ts +1 -1
  48. package/dist/form-elements/FormElementBoolean.d.ts +1 -1
  49. package/dist/form-elements/FormElementCalculation.d.ts +1 -1
  50. package/dist/form-elements/FormElementCamera.d.ts +1 -1
  51. package/dist/form-elements/FormElementCaptcha.d.ts +1 -1
  52. package/dist/form-elements/FormElementCheckBoxes.d.ts +1 -1
  53. package/dist/form-elements/FormElementCivicaStreetName.d.ts +1 -1
  54. package/dist/form-elements/FormElementDate.d.ts +1 -1
  55. package/dist/form-elements/FormElementDateTime.d.ts +1 -1
  56. package/dist/form-elements/FormElementEmail.d.ts +1 -1
  57. package/dist/form-elements/FormElementFile.d.ts +1 -1
  58. package/dist/form-elements/FormElementForm.d.ts +1 -1
  59. package/dist/form-elements/FormElementForm.js +0 -2
  60. package/dist/form-elements/FormElementForm.js.map +1 -1
  61. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +1 -1
  62. package/dist/form-elements/FormElementHTML.d.ts +1 -1
  63. package/dist/form-elements/FormElementHeading.d.ts +1 -1
  64. package/dist/form-elements/FormElementImage.d.ts +1 -1
  65. package/dist/form-elements/FormElementLocation.d.ts +2 -2
  66. package/dist/form-elements/FormElementNumber.d.ts +1 -1
  67. package/dist/form-elements/FormElementPointAddress.d.ts +1 -1
  68. package/dist/form-elements/FormElementRadio.d.ts +1 -1
  69. package/dist/form-elements/FormElementRepeatableSet.d.ts +1 -1
  70. package/dist/form-elements/FormElementSection.js +0 -2
  71. package/dist/form-elements/FormElementSection.js.map +1 -1
  72. package/dist/form-elements/FormElementSelect.d.ts +1 -1
  73. package/dist/form-elements/FormElementSignature.d.ts +1 -1
  74. package/dist/form-elements/FormElementSummary.d.ts +1 -1
  75. package/dist/form-elements/FormElementTelephone.d.ts +1 -1
  76. package/dist/form-elements/FormElementText.d.ts +1 -1
  77. package/dist/form-elements/FormElementTextarea.d.ts +1 -1
  78. package/dist/form-elements/FormElementTime.d.ts +1 -1
  79. package/dist/form-elements/OptionButton.d.ts +1 -1
  80. package/dist/hooks/attachments/useAttachment.d.ts +1 -1
  81. package/dist/hooks/attachments/useAttachmentBlobs.d.ts +4 -4
  82. package/dist/hooks/useAuth.d.ts +1 -1
  83. package/dist/hooks/useBooleanState.d.ts +3 -3
  84. package/dist/hooks/useExecutedLookupCallback.d.ts +2 -2
  85. package/dist/hooks/useFlatpickrGuid.d.ts +1 -1
  86. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +0 -2
  87. package/dist/hooks/useFormSubmissionAutoSaveState.js +5 -11
  88. package/dist/hooks/useFormSubmissionAutoSaveState.js.map +1 -1
  89. package/dist/hooks/useFormSubmissionModelContext.d.ts +1 -1
  90. package/dist/hooks/useFormSubmissionState.d.ts +1 -3
  91. package/dist/hooks/useFormSubmissionState.js +1 -2
  92. package/dist/hooks/useFormSubmissionState.js.map +1 -1
  93. package/dist/hooks/useInfiniteScrollDataLoad.d.ts +3 -3
  94. package/dist/hooks/useInjectPages.d.ts +1 -1
  95. package/dist/hooks/useIsPageVisible.d.ts +2 -2
  96. package/dist/hooks/useLoadDataState.d.ts +1 -1
  97. package/dist/hooks/useLookupNotification.d.ts +1 -1
  98. package/dist/hooks/useLookups.js +0 -1
  99. package/dist/hooks/useLookups.js.map +1 -1
  100. package/dist/services/form-validation.d.ts +1 -1
  101. package/dist/styles.css +437 -437
  102. package/dist/types/attachments.d.ts +1 -1
  103. package/dist/types/form.d.ts +11 -13
  104. package/dist/types/form.js.map +1 -1
  105. package/package.json +2 -2
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { FormTypes } from '@oneblink/types';
3
3
  import { FormElementBinaryStorageValue } from '../types/attachments';
4
4
  import { FormElementValueChangeHandler } from '../types/form';
5
- type Props = {
5
+ declare type Props = {
6
6
  id: string;
7
7
  element: FormTypes.DrawElement;
8
8
  value: FormElementBinaryStorageValue;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { FormTypes } from '@oneblink/types';
3
3
  import { FormElementValueChangeHandler } from '../types/form';
4
- type Props = {
4
+ declare type Props = {
5
5
  element: FormTypes.SummaryElement;
6
6
  onChange: FormElementValueChangeHandler;
7
7
  value: unknown;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { FormTypes } from '@oneblink/types';
3
3
  import { FormElementValueChangeHandler } from '../types/form';
4
- type Props = {
4
+ declare type Props = {
5
5
  id: string;
6
6
  element: FormTypes.TelephoneElement;
7
7
  value: unknown;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { FormTypes } from '@oneblink/types';
3
3
  import { FormElementValueChangeHandler } from '../types/form';
4
- type Props = {
4
+ declare type Props = {
5
5
  id: string;
6
6
  element: FormTypes.TextElement;
7
7
  value: unknown;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { FormTypes } from '@oneblink/types';
3
3
  import { FormElementValueChangeHandler } from '../types/form';
4
- type Props = {
4
+ declare type Props = {
5
5
  id: string;
6
6
  element: FormTypes.TextareaElement;
7
7
  value: unknown;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { FormTypes } from '@oneblink/types';
3
3
  import { FormElementValueChangeHandler } from '../types/form';
4
- type Props = {
4
+ declare type Props = {
5
5
  id: string;
6
6
  element: FormTypes.TimeElement;
7
7
  value: unknown | undefined;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { FormTypes } from '@oneblink/types';
3
- type Props = {
3
+ declare type Props = {
4
4
  element: FormTypes.RadioButtonElement | FormTypes.CheckboxElement | FormTypes.ComplianceElement;
5
5
  option: FormTypes.ChoiceElementOption;
6
6
  isSelected: boolean;
@@ -1,7 +1,7 @@
1
1
  import { attachmentsService } from '@oneblink/apps';
2
2
  import { FormTypes } from '@oneblink/types';
3
3
  import { FormElementBinaryStorageValue } from '../../types/attachments';
4
- export type OnChange = (id: string, attachment: attachmentsService.Attachment) => void;
4
+ export declare type OnChange = (id: string, attachment: attachmentsService.Attachment) => void;
5
5
  export default function useAttachment(value: FormElementBinaryStorageValue, element: FormTypes.FormElementBinaryStorage, onChange: OnChange, disableUpload?: boolean): {
6
6
  canDownload: boolean;
7
7
  progress: number | undefined;
@@ -1,17 +1,17 @@
1
1
  import * as React from 'react';
2
- type AttachmentObjectBlob = {
2
+ declare type AttachmentObjectBlob = {
3
3
  attachmentId: string;
4
4
  blob: Blob;
5
5
  };
6
- type RegisterAttachmentParam = {
6
+ declare type RegisterAttachmentParam = {
7
7
  blob: Blob;
8
8
  attachmentId: string;
9
9
  };
10
- type AttachmentBlobsContextValue = {
10
+ declare type AttachmentBlobsContextValue = {
11
11
  storeAttachmentBlobLocally: (options: RegisterAttachmentParam) => void;
12
12
  getAttachmentBlobLocally: (attachmentId: string) => AttachmentObjectBlob | undefined;
13
13
  };
14
- type Props = {
14
+ declare type Props = {
15
15
  children: React.ReactNode;
16
16
  };
17
17
  export declare const AttachmentBlobsProvider: ({ children }: Props) => JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { authService } from '@oneblink/apps';
3
- type AuthContextValue = {
3
+ declare type AuthContextValue = {
4
4
  isLoggedIn: ReturnType<typeof authService.isLoggedIn>;
5
5
  userProfile: ReturnType<typeof authService.getUserProfile>;
6
6
  userFriendlyName: ReturnType<typeof authService.getUserFriendlyName>;
@@ -1,5 +1,5 @@
1
- type setTrue = () => void;
2
- type setFalse = () => void;
3
- type toggle = () => void;
1
+ declare type setTrue = () => void;
2
+ declare type setFalse = () => void;
3
+ declare type toggle = () => void;
4
4
  export default function useBooleanState(defaultValue: boolean): [boolean, setTrue, setFalse, toggle];
5
5
  export {};
@@ -1,10 +1,10 @@
1
1
  import { FormTypes } from '@oneblink/types';
2
2
  import * as React from 'react';
3
- type ExecutedLookupContextValue = {
3
+ declare type ExecutedLookupContextValue = {
4
4
  executedLookup: (lookupFormElement: FormTypes.LookupFormElement) => void;
5
5
  executeLookupFailed: (lookupFormElement: FormTypes.LookupFormElement) => void;
6
6
  };
7
- type Props = ExecutedLookupContextValue & {
7
+ declare type Props = ExecutedLookupContextValue & {
8
8
  children: React.ReactNode;
9
9
  };
10
10
  export declare const ExecutedLookupProvider: React.NamedExoticComponent<Props>;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- type Props = {
2
+ declare type Props = {
3
3
  children: React.ReactNode;
4
4
  };
5
5
  export declare const FlatpickrGuidProvider: ({ children }: Props) => JSX.Element;
@@ -14,7 +14,6 @@ export default function useFormSubmissionAutoSaveState({ form, initialSubmission
14
14
  }): {
15
15
  definition: FormTypes.Form;
16
16
  submission: FormSubmissionModel;
17
- lastElementUpdated: FormTypes.FormElement | undefined;
18
17
  isLoadingAutoSaveSubmission: boolean;
19
18
  isAutoSaveSubmissionAvailable: boolean;
20
19
  startNewSubmission: () => void;
@@ -26,6 +25,5 @@ export default function useFormSubmissionAutoSaveState({ form, initialSubmission
26
25
  setFormSubmission: React.Dispatch<React.SetStateAction<{
27
26
  definition: FormTypes.Form;
28
27
  submission: FormSubmissionModel;
29
- lastElementUpdated: FormTypes.FormElement | undefined;
30
28
  }>>;
31
29
  };
@@ -3,19 +3,16 @@ import _throttle from 'lodash.throttle';
3
3
  import { autoSaveService, Sentry } from '@oneblink/apps';
4
4
  import useFormSubmissionState from './useFormSubmissionState';
5
5
  export default function useFormSubmissionAutoSaveState({ form, initialSubmission, removeAutoSaveDataBeforeSubmit, removeAutoSaveDataBeforeSaveDraft, autoSaveKey, onCancel, onSubmit, onSaveDraft, }) {
6
- const [{ definition, submission, lastElementUpdated }, setFormSubmission] = useFormSubmissionState(form, initialSubmission);
6
+ const [{ definition, submission }, setFormSubmission] = useFormSubmissionState(form, initialSubmission);
7
7
  const [{ isLoadingAutoSaveSubmission, autoSaveSubmission }, setAutoSaveState,] = React.useState({
8
8
  isLoadingAutoSaveSubmission: true,
9
9
  autoSaveSubmission: null,
10
10
  });
11
11
  const throttledAutoSave = React.useMemo(() => {
12
- return _throttle((model, lastElementUpdated) => {
12
+ return _throttle((model) => {
13
13
  console.log('Auto saving...');
14
14
  autoSaveService
15
- .upsertAutoSaveData(definition.id, autoSaveKey, {
16
- model,
17
- lastElementUpdated,
18
- })
15
+ .upsertAutoSaveData(definition.id, autoSaveKey, model)
19
16
  .catch((error) => {
20
17
  console.warn('Error while auto saving', error);
21
18
  Sentry.captureException(error);
@@ -79,7 +76,6 @@ export default function useFormSubmissionAutoSaveState({ form, initialSubmission
79
76
  let ignore = false;
80
77
  const loadAutoSaveData = async () => {
81
78
  try {
82
- // TODO Cater for autosave data without lastElementUpdated
83
79
  const autoSaveData = await autoSaveService.getAutoSaveData(definition.id, autoSaveKey);
84
80
  if (!ignore) {
85
81
  setAutoSaveState({
@@ -115,7 +111,7 @@ export default function useFormSubmissionAutoSaveState({ form, initialSubmission
115
111
  const newFormSubmission = typeof formSubmission === 'function'
116
112
  ? formSubmission(currentFormSubmission)
117
113
  : formSubmission;
118
- throttledAutoSave(newFormSubmission.submission, newFormSubmission.lastElementUpdated);
114
+ throttledAutoSave(newFormSubmission.submission);
119
115
  return newFormSubmission;
120
116
  });
121
117
  }, [setFormSubmission, throttledAutoSave]);
@@ -130,8 +126,7 @@ export default function useFormSubmissionAutoSaveState({ form, initialSubmission
130
126
  if (autoSaveSubmission) {
131
127
  setFormSubmission((currentFormSubmission) => ({
132
128
  ...currentFormSubmission,
133
- submission: autoSaveSubmission.model,
134
- lastElementUpdated: autoSaveSubmission.lastElementUpdated,
129
+ submission: autoSaveSubmission,
135
130
  }));
136
131
  }
137
132
  setAutoSaveState({
@@ -142,7 +137,6 @@ export default function useFormSubmissionAutoSaveState({ form, initialSubmission
142
137
  return {
143
138
  definition,
144
139
  submission,
145
- lastElementUpdated,
146
140
  isLoadingAutoSaveSubmission,
147
141
  isAutoSaveSubmissionAvailable: autoSaveSubmission !== null,
148
142
  startNewSubmission,
@@ -1 +1 @@
1
- {"version":3,"file":"useFormSubmissionAutoSaveState.js","sourceRoot":"","sources":["../../src/hooks/useFormSubmissionAutoSaveState.ts"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport _throttle from 'lodash.throttle'\nimport { autoSaveService, submissionService, Sentry } from '@oneblink/apps'\nimport { FormTypes } from '@oneblink/types'\nimport useFormSubmissionState from './useFormSubmissionState'\nimport { FormSubmissionModel } from '../types/form'\nimport { FormElement } from '@oneblink/types/typescript/forms'\n\nexport default function useFormSubmissionAutoSaveState({\n form,\n initialSubmission,\n removeAutoSaveDataBeforeSubmit,\n removeAutoSaveDataBeforeSaveDraft,\n autoSaveKey,\n onCancel,\n onSubmit,\n onSaveDraft,\n}: {\n form: FormTypes.Form\n removeAutoSaveDataBeforeSubmit?: boolean\n removeAutoSaveDataBeforeSaveDraft?: boolean\n autoSaveKey: string\n onCancel: () => unknown\n onSubmit: (newFormSubmission: submissionService.NewFormSubmission) => unknown\n initialSubmission?: FormSubmissionModel\n onSaveDraft?: (\n newDraftSubmission: submissionService.NewDraftSubmission,\n ) => unknown\n}) {\n const [{ definition, submission, lastElementUpdated }, setFormSubmission] =\n useFormSubmissionState(form, initialSubmission)\n\n const [\n { isLoadingAutoSaveSubmission, autoSaveSubmission },\n setAutoSaveState,\n ] = React.useState<{\n isLoadingAutoSaveSubmission: boolean\n autoSaveSubmission: {\n model: FormSubmissionModel\n lastElementUpdated: FormElement | undefined\n } | null\n }>({\n isLoadingAutoSaveSubmission: true,\n autoSaveSubmission: null,\n })\n\n const throttledAutoSave = React.useMemo(() => {\n return _throttle(\n (model: FormSubmissionModel, lastElementUpdated?: FormElement) => {\n console.log('Auto saving...')\n autoSaveService\n .upsertAutoSaveData(definition.id, autoSaveKey, {\n model,\n lastElementUpdated,\n })\n .catch((error) => {\n console.warn('Error while auto saving', error)\n Sentry.captureException(error)\n })\n },\n 9580, // https://en.wikipedia.org/wiki/100_metres\n { trailing: true, leading: false },\n )\n }, [autoSaveKey, definition.id])\n\n const cancelAutoSave = React.useCallback(() => {\n if (throttledAutoSave) {\n throttledAutoSave.cancel()\n }\n }, [throttledAutoSave])\n\n const deleteAutoSaveSubmission = React.useCallback(() => {\n return autoSaveService\n .deleteAutoSaveData(definition.id, autoSaveKey)\n .catch((error) => {\n console.warn('Error removing auto save data: ', error)\n Sentry.captureException(error)\n })\n }, [autoSaveKey, definition.id])\n\n const handleSubmit = React.useCallback(\n (submissionResult) => {\n cancelAutoSave()\n if (removeAutoSaveDataBeforeSubmit !== false) {\n deleteAutoSaveSubmission()\n }\n onSubmit(submissionResult)\n },\n [\n cancelAutoSave,\n deleteAutoSaveSubmission,\n onSubmit,\n removeAutoSaveDataBeforeSubmit,\n ],\n )\n\n const handleSaveDraft = React.useMemo(() => {\n if (onSaveDraft) {\n return (newDraftSubmission: submissionService.NewDraftSubmission) => {\n cancelAutoSave()\n if (removeAutoSaveDataBeforeSaveDraft !== false) {\n deleteAutoSaveSubmission()\n }\n if (onSaveDraft) {\n onSaveDraft(newDraftSubmission)\n }\n }\n }\n }, [\n cancelAutoSave,\n deleteAutoSaveSubmission,\n onSaveDraft,\n removeAutoSaveDataBeforeSaveDraft,\n ])\n\n const handleNavigateAway = React.useCallback(() => {\n cancelAutoSave()\n deleteAutoSaveSubmission()\n }, [cancelAutoSave, deleteAutoSaveSubmission])\n\n const handleCancel = React.useCallback(() => {\n cancelAutoSave()\n deleteAutoSaveSubmission()\n onCancel()\n }, [cancelAutoSave, deleteAutoSaveSubmission, onCancel])\n\n React.useEffect(() => {\n let ignore = false\n const loadAutoSaveData = async () => {\n try {\n // TODO Cater for autosave data without lastElementUpdated\n const autoSaveData = await autoSaveService.getAutoSaveData<{\n model: FormSubmissionModel\n lastElementUpdated: FormElement | undefined\n }>(definition.id, autoSaveKey)\n if (!ignore) {\n setAutoSaveState({\n isLoadingAutoSaveSubmission: false,\n autoSaveSubmission: autoSaveData,\n })\n }\n } catch (error) {\n console.warn('Error loading auto save data', error)\n Sentry.captureException(error)\n if (!ignore) {\n setAutoSaveState({\n isLoadingAutoSaveSubmission: false,\n autoSaveSubmission: null,\n })\n }\n }\n }\n loadAutoSaveData()\n return () => {\n ignore = true\n }\n }, [autoSaveKey, definition.id])\n\n // Clean up throttle function on unmount\n React.useEffect(() => {\n return () => {\n cancelAutoSave()\n }\n }, [cancelAutoSave])\n\n const setFormSubmissionAutoSave: typeof setFormSubmission = React.useCallback(\n (formSubmission) => {\n setFormSubmission((currentFormSubmission) => {\n const newFormSubmission =\n typeof formSubmission === 'function'\n ? formSubmission(currentFormSubmission)\n : formSubmission\n\n throttledAutoSave(\n newFormSubmission.submission,\n newFormSubmission.lastElementUpdated,\n )\n\n return newFormSubmission\n })\n },\n [setFormSubmission, throttledAutoSave],\n )\n\n const startNewSubmission = React.useCallback(() => {\n deleteAutoSaveSubmission()\n setAutoSaveState({\n isLoadingAutoSaveSubmission: false,\n autoSaveSubmission: null,\n })\n }, [deleteAutoSaveSubmission])\n\n const continueAutoSaveSubmission = React.useCallback(() => {\n if (autoSaveSubmission) {\n setFormSubmission((currentFormSubmission) => ({\n ...currentFormSubmission,\n submission: autoSaveSubmission.model,\n lastElementUpdated: autoSaveSubmission.lastElementUpdated,\n }))\n }\n setAutoSaveState({\n isLoadingAutoSaveSubmission: false,\n autoSaveSubmission: null,\n })\n }, [autoSaveSubmission, setFormSubmission])\n\n return {\n definition,\n submission,\n lastElementUpdated,\n isLoadingAutoSaveSubmission,\n isAutoSaveSubmissionAvailable: autoSaveSubmission !== null,\n startNewSubmission,\n continueAutoSaveSubmission,\n handleSubmit,\n handleCancel,\n handleSaveDraft,\n handleNavigateAway,\n setFormSubmission: setFormSubmissionAutoSave,\n }\n}\n"]}
1
+ {"version":3,"file":"useFormSubmissionAutoSaveState.js","sourceRoot":"","sources":["../../src/hooks/useFormSubmissionAutoSaveState.ts"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport _throttle from 'lodash.throttle'\nimport { autoSaveService, submissionService, Sentry } from '@oneblink/apps'\nimport { FormTypes } from '@oneblink/types'\nimport useFormSubmissionState from './useFormSubmissionState'\nimport { FormSubmissionModel } from '../types/form'\n\nexport default function useFormSubmissionAutoSaveState({\n form,\n initialSubmission,\n removeAutoSaveDataBeforeSubmit,\n removeAutoSaveDataBeforeSaveDraft,\n autoSaveKey,\n onCancel,\n onSubmit,\n onSaveDraft,\n}: {\n form: FormTypes.Form\n removeAutoSaveDataBeforeSubmit?: boolean\n removeAutoSaveDataBeforeSaveDraft?: boolean\n autoSaveKey: string\n onCancel: () => unknown\n onSubmit: (newFormSubmission: submissionService.NewFormSubmission) => unknown\n initialSubmission?: FormSubmissionModel\n onSaveDraft?: (\n newDraftSubmission: submissionService.NewDraftSubmission,\n ) => unknown\n}) {\n const [{ definition, submission }, setFormSubmission] =\n useFormSubmissionState(form, initialSubmission)\n\n const [\n { isLoadingAutoSaveSubmission, autoSaveSubmission },\n setAutoSaveState,\n ] = React.useState<{\n isLoadingAutoSaveSubmission: boolean\n autoSaveSubmission: FormSubmissionModel | null\n }>({\n isLoadingAutoSaveSubmission: true,\n autoSaveSubmission: null,\n })\n\n const throttledAutoSave = React.useMemo(() => {\n return _throttle(\n (model: FormSubmissionModel) => {\n console.log('Auto saving...')\n autoSaveService\n .upsertAutoSaveData(definition.id, autoSaveKey, model)\n .catch((error) => {\n console.warn('Error while auto saving', error)\n Sentry.captureException(error)\n })\n },\n 9580, // https://en.wikipedia.org/wiki/100_metres\n { trailing: true, leading: false },\n )\n }, [autoSaveKey, definition.id])\n\n const cancelAutoSave = React.useCallback(() => {\n if (throttledAutoSave) {\n throttledAutoSave.cancel()\n }\n }, [throttledAutoSave])\n\n const deleteAutoSaveSubmission = React.useCallback(() => {\n return autoSaveService\n .deleteAutoSaveData(definition.id, autoSaveKey)\n .catch((error) => {\n console.warn('Error removing auto save data: ', error)\n Sentry.captureException(error)\n })\n }, [autoSaveKey, definition.id])\n\n const handleSubmit = React.useCallback(\n (submissionResult) => {\n cancelAutoSave()\n if (removeAutoSaveDataBeforeSubmit !== false) {\n deleteAutoSaveSubmission()\n }\n onSubmit(submissionResult)\n },\n [\n cancelAutoSave,\n deleteAutoSaveSubmission,\n onSubmit,\n removeAutoSaveDataBeforeSubmit,\n ],\n )\n\n const handleSaveDraft = React.useMemo(() => {\n if (onSaveDraft) {\n return (newDraftSubmission: submissionService.NewDraftSubmission) => {\n cancelAutoSave()\n if (removeAutoSaveDataBeforeSaveDraft !== false) {\n deleteAutoSaveSubmission()\n }\n if (onSaveDraft) {\n onSaveDraft(newDraftSubmission)\n }\n }\n }\n }, [\n cancelAutoSave,\n deleteAutoSaveSubmission,\n onSaveDraft,\n removeAutoSaveDataBeforeSaveDraft,\n ])\n\n const handleNavigateAway = React.useCallback(() => {\n cancelAutoSave()\n deleteAutoSaveSubmission()\n }, [cancelAutoSave, deleteAutoSaveSubmission])\n\n const handleCancel = React.useCallback(() => {\n cancelAutoSave()\n deleteAutoSaveSubmission()\n onCancel()\n }, [cancelAutoSave, deleteAutoSaveSubmission, onCancel])\n\n React.useEffect(() => {\n let ignore = false\n const loadAutoSaveData = async () => {\n try {\n const autoSaveData =\n await autoSaveService.getAutoSaveData<FormSubmissionModel>(\n definition.id,\n autoSaveKey,\n )\n if (!ignore) {\n setAutoSaveState({\n isLoadingAutoSaveSubmission: false,\n autoSaveSubmission: autoSaveData,\n })\n }\n } catch (error) {\n console.warn('Error loading auto save data', error)\n Sentry.captureException(error)\n if (!ignore) {\n setAutoSaveState({\n isLoadingAutoSaveSubmission: false,\n autoSaveSubmission: null,\n })\n }\n }\n }\n loadAutoSaveData()\n return () => {\n ignore = true\n }\n }, [autoSaveKey, definition.id])\n\n // Clean up throttle function on unmount\n React.useEffect(() => {\n return () => {\n cancelAutoSave()\n }\n }, [cancelAutoSave])\n\n const setFormSubmissionAutoSave: typeof setFormSubmission = React.useCallback(\n (formSubmission) => {\n setFormSubmission((currentFormSubmission) => {\n const newFormSubmission =\n typeof formSubmission === 'function'\n ? formSubmission(currentFormSubmission)\n : formSubmission\n\n throttledAutoSave(newFormSubmission.submission)\n\n return newFormSubmission\n })\n },\n [setFormSubmission, throttledAutoSave],\n )\n\n const startNewSubmission = React.useCallback(() => {\n deleteAutoSaveSubmission()\n setAutoSaveState({\n isLoadingAutoSaveSubmission: false,\n autoSaveSubmission: null,\n })\n }, [deleteAutoSaveSubmission])\n\n const continueAutoSaveSubmission = React.useCallback(() => {\n if (autoSaveSubmission) {\n setFormSubmission((currentFormSubmission) => ({\n ...currentFormSubmission,\n submission: autoSaveSubmission,\n }))\n }\n setAutoSaveState({\n isLoadingAutoSaveSubmission: false,\n autoSaveSubmission: null,\n })\n }, [autoSaveSubmission, setFormSubmission])\n\n return {\n definition,\n submission,\n isLoadingAutoSaveSubmission,\n isAutoSaveSubmissionAvailable: autoSaveSubmission !== null,\n startNewSubmission,\n continueAutoSaveSubmission,\n handleSubmit,\n handleCancel,\n handleSaveDraft,\n handleNavigateAway,\n setFormSubmission: setFormSubmissionAutoSave,\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { FormTypes } from '@oneblink/types';
2
2
  import { FormElement } from '@oneblink/types/typescript/forms';
3
3
  import * as React from 'react';
4
4
  import { FormElementsConditionallyShown, FormSubmissionModel } from '../types/form';
5
- export type FormSubmissionModelContextValue = {
5
+ export declare type FormSubmissionModelContextValue = {
6
6
  formSubmissionModel: FormSubmissionModel;
7
7
  parent?: FormSubmissionModelContextValue;
8
8
  elements: FormElement[];
@@ -1,12 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { FormTypes } from '@oneblink/types';
3
3
  import { FormSubmissionModel } from '../types/form';
4
- export default function useFormSubmissionState(form: FormTypes.Form, initialSubmission?: FormSubmissionModel, lastElementUpdated?: FormTypes.FormElement): [{
4
+ export default function useFormSubmissionState(form: FormTypes.Form, initialSubmission?: FormSubmissionModel): [{
5
5
  definition: FormTypes.Form;
6
6
  submission: FormSubmissionModel;
7
- lastElementUpdated: FormTypes.FormElement | undefined;
8
7
  }, React.Dispatch<React.SetStateAction<{
9
8
  definition: FormTypes.Form;
10
9
  submission: FormSubmissionModel;
11
- lastElementUpdated: FormTypes.FormElement | undefined;
12
10
  }>>];
@@ -1,14 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import _cloneDeep from 'lodash.clonedeep';
3
3
  import generateDefaultData from '../services/generate-default-data';
4
- export default function useFormSubmissionState(form, initialSubmission, lastElementUpdated) {
4
+ export default function useFormSubmissionState(form, initialSubmission) {
5
5
  return React.useState(() => {
6
6
  const definition = _cloneDeep(form);
7
7
  const defaultData = generateDefaultData(definition.elements, initialSubmission || {});
8
8
  return {
9
9
  definition,
10
10
  submission: defaultData,
11
- lastElementUpdated,
12
11
  };
13
12
  });
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useFormSubmissionState.js","sourceRoot":"","sources":["../../src/hooks/useFormSubmissionState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC,OAAO,mBAAmB,MAAM,mCAAmC,CAAA;AAGnE,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,IAAoB,EACpB,iBAAuC,EACvC,kBAA0C;IAE1C,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QACzB,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,WAAW,GAAG,mBAAmB,CACrC,UAAU,CAAC,QAAQ,EACnB,iBAAiB,IAAI,EAAE,CACxB,CAAA;QACD,OAAO;YACL,UAAU;YACV,UAAU,EAAE,WAAW;YACvB,kBAAkB;SACnB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import * as React from 'react'\nimport _cloneDeep from 'lodash.clonedeep'\nimport { FormTypes } from '@oneblink/types'\nimport generateDefaultData from '../services/generate-default-data'\nimport { FormSubmissionModel } from '../types/form'\n\nexport default function useFormSubmissionState(\n form: FormTypes.Form,\n initialSubmission?: FormSubmissionModel,\n lastElementUpdated?: FormTypes.FormElement,\n) {\n return React.useState(() => {\n const definition = _cloneDeep(form)\n const defaultData = generateDefaultData(\n definition.elements,\n initialSubmission || {},\n )\n return {\n definition,\n submission: defaultData,\n lastElementUpdated,\n }\n })\n}\n"]}
1
+ {"version":3,"file":"useFormSubmissionState.js","sourceRoot":"","sources":["../../src/hooks/useFormSubmissionState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC,OAAO,mBAAmB,MAAM,mCAAmC,CAAA;AAGnE,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,IAAoB,EACpB,iBAAuC;IAEvC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QACzB,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,WAAW,GAAG,mBAAmB,CACrC,UAAU,CAAC,QAAQ,EACnB,iBAAiB,IAAI,EAAE,CACxB,CAAA;QACD,OAAO;YACL,UAAU;YACV,UAAU,EAAE,WAAW;SACxB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import * as React from 'react'\nimport _cloneDeep from 'lodash.clonedeep'\nimport { FormTypes } from '@oneblink/types'\nimport generateDefaultData from '../services/generate-default-data'\nimport { FormSubmissionModel } from '../types/form'\n\nexport default function useFormSubmissionState(\n form: FormTypes.Form,\n initialSubmission?: FormSubmissionModel,\n) {\n return React.useState(() => {\n const definition = _cloneDeep(form)\n const defaultData = generateDefaultData(\n definition.elements,\n initialSubmission || {},\n )\n return {\n definition,\n submission: defaultData,\n }\n })\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import useQuery from './useQuery';
2
- export type ChangeHandler<T> = (filters: T) => T;
3
- export type OnChangeFilters<T> = (changeHandler: ChangeHandler<T>, shouldDebounce: boolean) => void;
4
- export type LoadingType = 'INITIAL' | 'MORE' | null;
2
+ export declare type ChangeHandler<T> = (filters: T) => T;
3
+ export declare type OnChangeFilters<T> = (changeHandler: ChangeHandler<T>, shouldDebounce: boolean) => void;
4
+ export declare type LoadingType = 'INITIAL' | 'MORE' | null;
5
5
  export default function useInfiniteScrollDataLoad<Filters, T>({ limit, isManual, debounceSearchMs, onDefaultFilters, onSearch, onValidateFilters, }: {
6
6
  limit: number;
7
7
  isManual?: boolean;
@@ -1,7 +1,7 @@
1
1
  import { FormTypes } from '@oneblink/types';
2
2
  import * as React from 'react';
3
3
  import { FormSubmissionModel } from '../types/form';
4
- type InjectPagesContextValue = (lookupFormElement: FormTypes.LookupFormElement, pageElements: FormTypes.PageElement[], data?: FormSubmissionModel) => void;
4
+ declare type InjectPagesContextValue = (lookupFormElement: FormTypes.LookupFormElement, pageElements: FormTypes.PageElement[], data?: FormSubmissionModel) => void;
5
5
  export declare const InjectPagesContext: React.Context<InjectPagesContextValue>;
6
6
  export default function useInjectPages(): InjectPagesContextValue;
7
7
  export {};
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- type IsPageVisibleContextValue = boolean;
3
- type Props = {
2
+ declare type IsPageVisibleContextValue = boolean;
3
+ declare type Props = {
4
4
  isPageVisible: IsPageVisibleContextValue;
5
5
  children: React.ReactNode;
6
6
  };
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- export type LoadDataState<T> = {
2
+ export declare type LoadDataState<T> = {
3
3
  status: 'SUCCESS';
4
4
  result: T;
5
5
  } | {
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- type LookupNotificationContextValue = {
2
+ declare type LookupNotificationContextValue = {
3
3
  isLookup: boolean;
4
4
  isDisabled: boolean;
5
5
  onLookup: (value: unknown) => Promise<void>;
@@ -53,7 +53,6 @@ export default function useLookups(formId, setFormSubmission) {
53
53
  return {
54
54
  submission,
55
55
  definition,
56
- lastElementUpdated: currentFormSubmission.lastElementUpdated,
57
56
  };
58
57
  });
59
58
  }, [formId, setFormSubmission]);
@@ -1 +1 @@
1
- {"version":3,"file":"useLookups.js","sourceRoot":"","sources":["../../src/hooks/useLookups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,mBAAmB,MAAM,mCAAmC,CAAA;AAInE,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,MAAc,EACd,iBAAoC;IAEpC,MAAM,uBAAuB,GAAG,KAAK,CAAC,WAAW,CAC/C,CACE,OAAoC,EACpC,iBAA0C,EAC1C,gBAAsC,EACtC,EAAE;QACF,MAAM,eAAe,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,GAAG,CAAC;YACJ,mBAAmB,EAAE,OAAO,CAAC,EAAE;SAChC,CAAC,CAAC,CAAA;QACH,iBAAiB,CAAC,CAAC,qBAAqB,EAAE,EAAE;YAC1C,MAAM,UAAU,GAAmB;gBACjC,GAAG,qBAAqB,CAAC,UAAU;gBACnC,WAAW,EAAE,IAAI;aAClB,CAAA;YACD,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,WAAW,EAAE;gBACjD,UAAU,CAAC,QAAQ,GAAG;oBACpB;wBACE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE;wBACrB,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,QAAQ;wBACf,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC,QAAQ;wBACnD,iBAAiB,EAAE,KAAK;wBACxB,sCAAsC,EAAE,KAAK;qBAC9C;oBACD,GAAG,eAAe;iBACnB,CAAA;aACF;iBAAM;gBACL,MAAM,WAAW,GACf,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CACjD,CAAC,WAAkC,EAAE,EAAE;oBACrC,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;wBAC/B,OAAO,mBAAmB,CAAC,eAAe,CACxC,WAAW,CAAC,QAAQ,EACpB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAC7B,CAAA;qBACF;gBACH,CAAC,CACF,CAAA;gBACH,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;oBACtB,OAAO,qBAAqB,CAAA;iBAC7B;gBACD,UAAU,CAAC,QAAQ;oBACjB,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAC9C,CACE,mBAA4C,EAC5C,WAAkC,EAClC,KAAa,EACb,EAAE;wBACF,uFAAuF;wBACvF,IAAI,WAAW,CAAC,mBAAmB,KAAK,OAAO,CAAC,EAAE,EAAE;4BAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;yBACtC;wBACD,IAAI,KAAK,KAAK,WAAW,EAAE;4BACzB,mBAAmB,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAA;yBAC7C;wBACD,OAAO,mBAAmB,CAAA;oBAC5B,CAAC,EACD,EAAE,CACH,CAAA;aACJ;YAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE;gBAC1D,GAAG,qBAAqB,CAAC,UAAU;gBACnC,GAAG,gBAAgB;aACpB,CAAC,CAAA;YACF,OAAO;gBACL,UAAU;gBACV,UAAU;gBACV,kBAAkB,EAAE,qBAAqB,CAAC,kBAAkB;aAC7D,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAC5B,CAAA;IAED,OAAO;QACL,uBAAuB;KACxB,CAAA;AACH,CAAC","sourcesContent":["import * as React from 'react'\nimport { formElementsService } from '@oneblink/sdk-core'\n\nimport generateDefaultData from '../services/generate-default-data'\nimport { FormTypes } from '@oneblink/types'\nimport { FormSubmissionModel, SetFormSubmission } from '../types/form'\n\nexport default function useLookups(\n formId: number,\n setFormSubmission: SetFormSubmission,\n) {\n const handlePagesLookupResult = React.useCallback(\n (\n element: FormTypes.LookupFormElement,\n elementLookupData: FormTypes.PageElement[],\n dataLookupResult?: FormSubmissionModel,\n ) => {\n const newPageElements = elementLookupData.map((e) => ({\n ...e,\n injectedByElementId: element.id,\n }))\n setFormSubmission((currentFormSubmission) => {\n const definition: FormTypes.Form = {\n ...currentFormSubmission.definition,\n isMultiPage: true,\n }\n if (!currentFormSubmission.definition.isMultiPage) {\n definition.elements = [\n {\n id: formId.toString(),\n type: 'page',\n label: 'Page 1',\n elements: currentFormSubmission.definition.elements,\n conditionallyShow: false,\n requiresAllConditionallyShowPredicates: false,\n },\n ...newPageElements,\n ]\n } else {\n const indexOfPage =\n currentFormSubmission.definition.elements.findIndex(\n (pageElement: FormTypes.FormElement) => {\n if (pageElement.type === 'page') {\n return formElementsService.findFormElement(\n pageElement.elements,\n (el) => el.id === element.id,\n )\n }\n },\n )\n if (indexOfPage === -1) {\n return currentFormSubmission\n }\n definition.elements =\n currentFormSubmission.definition.elements.reduce(\n (\n partialPageElements: FormTypes.FormElement[],\n pageElement: FormTypes.FormElement,\n index: number,\n ) => {\n // @ts-expect-error Sorry typescript, we need to add a property you don't approve of :(\n if (pageElement.injectedByElementId !== element.id) {\n partialPageElements.push(pageElement)\n }\n if (index === indexOfPage) {\n partialPageElements.push(...newPageElements)\n }\n return partialPageElements\n },\n [],\n )\n }\n\n const submission = generateDefaultData(definition.elements, {\n ...currentFormSubmission.submission,\n ...dataLookupResult,\n })\n return {\n submission,\n definition,\n lastElementUpdated: currentFormSubmission.lastElementUpdated,\n }\n })\n },\n [formId, setFormSubmission],\n )\n\n return {\n handlePagesLookupResult,\n }\n}\n"]}
1
+ {"version":3,"file":"useLookups.js","sourceRoot":"","sources":["../../src/hooks/useLookups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,mBAAmB,MAAM,mCAAmC,CAAA;AAInE,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,MAAc,EACd,iBAAoC;IAEpC,MAAM,uBAAuB,GAAG,KAAK,CAAC,WAAW,CAC/C,CACE,OAAoC,EACpC,iBAA0C,EAC1C,gBAAsC,EACtC,EAAE;QACF,MAAM,eAAe,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,GAAG,CAAC;YACJ,mBAAmB,EAAE,OAAO,CAAC,EAAE;SAChC,CAAC,CAAC,CAAA;QACH,iBAAiB,CAAC,CAAC,qBAAqB,EAAE,EAAE;YAC1C,MAAM,UAAU,GAAmB;gBACjC,GAAG,qBAAqB,CAAC,UAAU;gBACnC,WAAW,EAAE,IAAI;aAClB,CAAA;YACD,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,WAAW,EAAE;gBACjD,UAAU,CAAC,QAAQ,GAAG;oBACpB;wBACE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE;wBACrB,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,QAAQ;wBACf,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC,QAAQ;wBACnD,iBAAiB,EAAE,KAAK;wBACxB,sCAAsC,EAAE,KAAK;qBAC9C;oBACD,GAAG,eAAe;iBACnB,CAAA;aACF;iBAAM;gBACL,MAAM,WAAW,GACf,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CACjD,CAAC,WAAkC,EAAE,EAAE;oBACrC,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;wBAC/B,OAAO,mBAAmB,CAAC,eAAe,CACxC,WAAW,CAAC,QAAQ,EACpB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAC7B,CAAA;qBACF;gBACH,CAAC,CACF,CAAA;gBACH,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;oBACtB,OAAO,qBAAqB,CAAA;iBAC7B;gBACD,UAAU,CAAC,QAAQ;oBACjB,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAC9C,CACE,mBAA4C,EAC5C,WAAkC,EAClC,KAAa,EACb,EAAE;wBACF,uFAAuF;wBACvF,IAAI,WAAW,CAAC,mBAAmB,KAAK,OAAO,CAAC,EAAE,EAAE;4BAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;yBACtC;wBACD,IAAI,KAAK,KAAK,WAAW,EAAE;4BACzB,mBAAmB,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAA;yBAC7C;wBACD,OAAO,mBAAmB,CAAA;oBAC5B,CAAC,EACD,EAAE,CACH,CAAA;aACJ;YAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE;gBAC1D,GAAG,qBAAqB,CAAC,UAAU;gBACnC,GAAG,gBAAgB;aACpB,CAAC,CAAA;YACF,OAAO;gBACL,UAAU;gBACV,UAAU;aACX,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAC5B,CAAA;IAED,OAAO;QACL,uBAAuB;KACxB,CAAA;AACH,CAAC","sourcesContent":["import * as React from 'react'\nimport { formElementsService } from '@oneblink/sdk-core'\n\nimport generateDefaultData from '../services/generate-default-data'\nimport { FormTypes } from '@oneblink/types'\nimport { FormSubmissionModel, SetFormSubmission } from '../types/form'\n\nexport default function useLookups(\n formId: number,\n setFormSubmission: SetFormSubmission,\n) {\n const handlePagesLookupResult = React.useCallback(\n (\n element: FormTypes.LookupFormElement,\n elementLookupData: FormTypes.PageElement[],\n dataLookupResult?: FormSubmissionModel,\n ) => {\n const newPageElements = elementLookupData.map((e) => ({\n ...e,\n injectedByElementId: element.id,\n }))\n setFormSubmission((currentFormSubmission) => {\n const definition: FormTypes.Form = {\n ...currentFormSubmission.definition,\n isMultiPage: true,\n }\n if (!currentFormSubmission.definition.isMultiPage) {\n definition.elements = [\n {\n id: formId.toString(),\n type: 'page',\n label: 'Page 1',\n elements: currentFormSubmission.definition.elements,\n conditionallyShow: false,\n requiresAllConditionallyShowPredicates: false,\n },\n ...newPageElements,\n ]\n } else {\n const indexOfPage =\n currentFormSubmission.definition.elements.findIndex(\n (pageElement: FormTypes.FormElement) => {\n if (pageElement.type === 'page') {\n return formElementsService.findFormElement(\n pageElement.elements,\n (el) => el.id === element.id,\n )\n }\n },\n )\n if (indexOfPage === -1) {\n return currentFormSubmission\n }\n definition.elements =\n currentFormSubmission.definition.elements.reduce(\n (\n partialPageElements: FormTypes.FormElement[],\n pageElement: FormTypes.FormElement,\n index: number,\n ) => {\n // @ts-expect-error Sorry typescript, we need to add a property you don't approve of :(\n if (pageElement.injectedByElementId !== element.id) {\n partialPageElements.push(pageElement)\n }\n if (index === indexOfPage) {\n partialPageElements.push(...newPageElements)\n }\n return partialPageElements\n },\n [],\n )\n }\n\n const submission = generateDefaultData(definition.elements, {\n ...currentFormSubmission.submission,\n ...dataLookupResult,\n })\n return {\n submission,\n definition,\n }\n })\n },\n [formId, setFormSubmission],\n )\n\n return {\n handlePagesLookupResult,\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { FormTypes } from '@oneblink/types';
2
2
  import { FormElementsConditionallyShown, FormElementsValidation, FormSubmissionModel } from '../types/form';
3
3
  export declare const lookupValidationMessage = "Lookup is required";
4
- type ValidateJSSchema = Record<string, unknown>;
4
+ declare type ValidateJSSchema = Record<string, unknown>;
5
5
  export declare function validateSubmission(schema: ValidateJSSchema, submission: FormSubmissionModel, formElementsConditionallyShown: FormElementsConditionallyShown): FormElementsValidation | undefined;
6
6
  export declare function generateValidationSchema(elements: FormTypes.FormElement[], elementIdsWithLookupsExecuted: string[]): ValidateJSSchema;
7
7
  export declare function checkFileNameIsValid(formElement: FormTypes.FilesElement, fileName: string): boolean;