@oneblink/apps-react 8.0.0-beta.1 → 8.0.0-beta.11

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 (34) hide show
  1. package/dist/PaymentReceipt.js +5 -3
  2. package/dist/PaymentReceipt.js.map +1 -1
  3. package/dist/components/formStore/table/FormElementTableCell.js +0 -1
  4. package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
  5. package/dist/components/formStore/table/Pickers.d.ts +1 -21
  6. package/dist/components/formStore/table/Pickers.js +1 -1
  7. package/dist/components/formStore/table/Pickers.js.map +1 -1
  8. package/dist/components/formStore/table/getVersionedState.d.ts +8 -0
  9. package/dist/components/formStore/table/getVersionedState.js +36 -0
  10. package/dist/components/formStore/table/getVersionedState.js.map +1 -0
  11. package/dist/components/formStore/table/useFormStoreTable.d.ts +4 -5
  12. package/dist/components/formStore/table/useFormStoreTable.js +3 -9
  13. package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
  14. package/dist/components/renderer/OneBlinkFormElements.js +3 -3
  15. package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
  16. package/dist/form-elements/FormElementCalculation.js +0 -2
  17. package/dist/form-elements/FormElementCalculation.js.map +1 -1
  18. package/dist/form-elements/FormElementDate.d.ts +1 -2
  19. package/dist/form-elements/FormElementDate.js +23 -22
  20. package/dist/form-elements/FormElementDate.js.map +1 -1
  21. package/dist/form-elements/FormElementDateTime.d.ts +1 -2
  22. package/dist/form-elements/FormElementDateTime.js +27 -23
  23. package/dist/form-elements/FormElementDateTime.js.map +1 -1
  24. package/dist/form-elements/FormElementSummary.js +0 -1
  25. package/dist/form-elements/FormElementSummary.js.map +1 -1
  26. package/dist/form-elements/FormElementTime.d.ts +1 -2
  27. package/dist/form-elements/FormElementTime.js +13 -15
  28. package/dist/form-elements/FormElementTime.js.map +1 -1
  29. package/dist/hooks/form-date-picker/useFormDatePickerProps.d.ts +34 -15
  30. package/dist/hooks/form-date-picker/useFormDatePickerProps.js +66 -46
  31. package/dist/hooks/form-date-picker/useFormDatePickerProps.js.map +1 -1
  32. package/dist/services/generate-default-data.js +1 -1
  33. package/dist/services/generate-default-data.js.map +1 -1
  34. package/package.json +5 -5
@@ -161,9 +161,11 @@ function PaymentReceipt({ onDone, onCancel, }) {
161
161
  React.createElement(ReceiptListItem, { className: "ob-scheduling-receipt__start-time", valueClassName: "cypress-scheduling-receipt-start-time", icon: "schedule", label: "Start Time", value: localisationService.formatDatetimeLong(schedulingBooking.startTime) }),
162
162
  React.createElement(ReceiptListItem, { className: "ob-scheduling-receipt__end-time", valueClassName: "cypress-scheduling-receipt-end-time", icon: "schedule", label: "End Time", value: localisationService.formatDatetimeLong(schedulingBooking.endTime) }))),
163
163
  React.createElement(ReceiptListItem, { className: "ob-payment-receipt__warning", valueClassName: "cypress-payment-receipt-warning", label: "Warning", value: "Please do not click back in your browser, doing so will cause issues with your payment." })),
164
- React.createElement("div", { className: "buttons" }, transaction.isSuccess ? (React.createElement(ReceiptButton, { className: "is-primary ob-payment-receipt__button ob-payment-receipt__okay-button cypress-payment-receipt-okay-button", label: "Done", isLoading: isRunningPostSubmissionAction, onClick: handleDone })) : (React.createElement(React.Fragment, null,
165
- React.createElement(ReceiptButton, { className: "ob-payment-receipt__button ob-payment-receipt__cancel-button cypress-payment-receipt-cancel-button", label: "Cancel", isDisabled: isRetrying, isLoading: isRunningPostSubmissionAction, onClick: handleCancel }),
166
- React.createElement(ReceiptButton, { className: "is-primary ob-payment-receipt__button ob-payment-receipt__try-again-button cypress-payment-receipt-try-again-button", label: "Try Again", isDisabled: isRunningPostSubmissionAction, isLoading: isRetrying, onClick: handleTryAgain })))))),
164
+ React.createElement("div", { className: "buttons" },
165
+ submissionResult && submissionResult.downloadSubmissionPdfUrl && (React.createElement("a", { className: "button ob-button ob-receipt__button ob-payment-receipt__button ob-button__download-pdf ob-payment-receipt__pdf-button cypress-receipt-download-pdf-button", href: submissionResult.downloadSubmissionPdfUrl, target: "_blank", rel: "noreferrer" }, "Download PDF")),
166
+ transaction.isSuccess ? (React.createElement(ReceiptButton, { className: "is-primary ob-payment-receipt__button ob-payment-receipt__okay-button cypress-payment-receipt-okay-button", label: "Done", isLoading: isRunningPostSubmissionAction, onClick: handleDone })) : (React.createElement(React.Fragment, null,
167
+ React.createElement(ReceiptButton, { className: "ob-payment-receipt__button ob-payment-receipt__cancel-button cypress-payment-receipt-cancel-button", label: "Cancel", isDisabled: isRetrying, isLoading: isRunningPostSubmissionAction, onClick: handleCancel }),
168
+ React.createElement(ReceiptButton, { className: "is-primary ob-payment-receipt__button ob-payment-receipt__try-again-button cypress-payment-receipt-try-again-button", label: "Try Again", isDisabled: isRunningPostSubmissionAction, isLoading: isRetrying, onClick: handleTryAgain })))))),
167
169
  loadError && (React.createElement("section", { className: "cypress-payment-receipt-loading-error-message" },
168
170
  React.createElement("div", { className: "ob-payment-receipt__error-icon-container has-text-centered has-margin-bottom-8" },
169
171
  React.createElement(MaterialIcon, { className: "ob-payment-receipt__error-icon has-text-danger icon-x-large" }, "error")),
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentReceipt.js","sourceRoot":"","sources":["../src/PaymentReceipt.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { useHistory } from 'react-router-dom'\nimport {\n paymentService,\n submissionService,\n OneBlinkAppsError,\n schedulingService,\n localisationService,\n} from '@oneblink/apps'\nimport useIsMounted from './hooks/useIsMounted'\n\nimport useQuery from './hooks/useQuery'\nimport Modal from './components/renderer/Modal'\nimport OnLoading from './components/renderer/OnLoading'\nimport {\n Receipt,\n ReceiptList,\n ReceiptListItem,\n ReceiptButton,\n} from './components/receipts'\nimport MaterialIcon from './components/MaterialIcon'\n\nconst { handlePaymentQuerystring, handlePaymentSubmissionEvent } =\n paymentService\n\nfunction PaymentReceipt({\n onDone,\n onCancel,\n}: {\n /**\n * The function to call when the user clicks 'Done'. See\n * [FormSubmissionResult](https://oneblink.github.io/apps/modules/submissionService.html#FormSubmissionResult)\n * for the structure of the argument.\n */\n onDone: (\n submissionResult: submissionService.FormSubmissionResult,\n ) => Promise<void>\n /**\n * The function to call when the user clicks 'Cancel'. See\n * [FormSubmissionResult](https://oneblink.github.io/apps/modules/submissionService.html#FormSubmissionResult)\n * for the structure of the argument.\n */\n onCancel: (\n submissionResult: submissionService.FormSubmissionResult,\n ) => Promise<void>\n}) {\n const isMounted = useIsMounted()\n const query = useQuery()\n const history = useHistory()\n\n const [\n {\n isLoading,\n loadError,\n transaction,\n submissionResult,\n receiptItems,\n schedulingBooking,\n },\n setLoadState,\n ] = React.useState<{\n isLoading: boolean\n loadError: Error | null\n transaction: paymentService.HandlePaymentResult['transaction'] | null\n submissionResult: submissionService.FormSubmissionResult | null\n receiptItems: paymentService.PaymentReceiptItem[] | null\n schedulingBooking: schedulingService.SchedulingBooking | null\n }>({\n isLoading: true,\n loadError: null,\n transaction: null,\n submissionResult: null,\n receiptItems: null,\n schedulingBooking: null,\n })\n const [\n { isRunningPostSubmissionAction, postSubmissionError },\n setPostSubmissionState,\n ] = React.useState<{\n isRunningPostSubmissionAction: boolean\n postSubmissionError: OneBlinkAppsError | null\n }>({\n isRunningPostSubmissionAction: false,\n postSubmissionError: null,\n })\n const clearPostSubmissionError = React.useCallback(() => {\n setPostSubmissionState((currentState) => ({\n ...currentState,\n postSubmissionError: null,\n }))\n }, [])\n const [{ isRetrying, retryError }, setRetryState] = React.useState<{\n isRetrying: boolean\n retryError: OneBlinkAppsError | null\n }>({\n isRetrying: false,\n retryError: null,\n })\n const clearRetryError = React.useCallback(() => {\n setRetryState((currentState) => ({\n ...currentState,\n retryError: null,\n }))\n }, [])\n\n React.useEffect(() => {\n let ignore = false\n\n const getTransaction = async () => {\n let newError = null\n let newTransaction = null\n let newSubmissionResult = null\n let newReceiptItems = null\n let newSchedulingBooking = null\n try {\n const result = await handlePaymentQuerystring(query)\n newTransaction = result.transaction\n newSubmissionResult = result.submissionResult\n newReceiptItems = result.receiptItems\n newSchedulingBooking = result.schedulingBooking ?? null\n } catch (error) {\n console.warn('Error while attempting to load transaction', error)\n newError = error as Error\n }\n\n if (!ignore) {\n setLoadState({\n isLoading: false,\n loadError: newError,\n transaction: newTransaction,\n submissionResult: newSubmissionResult,\n receiptItems: newReceiptItems,\n schedulingBooking: newSchedulingBooking,\n })\n }\n }\n getTransaction()\n\n return () => {\n ignore = true\n }\n }, [query])\n\n const executePostSubmissionAction = React.useCallback(\n async (\n action: (\n submissionRresult: submissionService.FormSubmissionResult,\n ) => Promise<void>,\n ) => {\n if (!submissionResult || !isMounted.current) {\n return\n }\n\n setPostSubmissionState({\n isRunningPostSubmissionAction: true,\n postSubmissionError: null,\n })\n\n let newError = null\n try {\n await action({ ...submissionResult, payment: null })\n } catch (error) {\n console.warn('Error while running post submission action', error)\n newError = error as OneBlinkAppsError\n }\n\n if (isMounted.current) {\n setPostSubmissionState({\n isRunningPostSubmissionAction: false,\n postSubmissionError: newError,\n })\n }\n },\n [isMounted, submissionResult],\n )\n\n const handleDone = React.useCallback(async () => {\n executePostSubmissionAction(onDone)\n }, [executePostSubmissionAction, onDone])\n\n const handleCancel = React.useCallback(() => {\n executePostSubmissionAction(onCancel)\n }, [executePostSubmissionAction, onCancel])\n\n const handleTryAgain = React.useCallback(async () => {\n if (!submissionResult || !submissionResult.payment) {\n return\n }\n const paymentSubmissionEvent = submissionResult.payment.submissionEvent\n\n if (isMounted.current) {\n setRetryState({\n isRetrying: true,\n retryError: null,\n })\n }\n\n let newError = null\n try {\n submissionResult.payment = await handlePaymentSubmissionEvent({\n amount: submissionResult.payment.amount,\n formSubmissionResult: submissionResult,\n paymentSubmissionEvent,\n paymentReceiptUrl: submissionResult.payment.paymentReceiptUrl,\n paymentFormUrl: submissionResult.payment.paymentFormUrl,\n })\n await submissionService.executePostSubmissionAction(submissionResult, {\n onRedirectToRelativeUrl: (url) => history.push(url),\n onRedirectToAbsoluteUrl: (url) => window.location.assign(url),\n })\n } catch (error) {\n console.warn('Error while attempting to retry transaction', error)\n newError = error as OneBlinkAppsError\n }\n\n if (isMounted.current) {\n setRetryState({\n isRetrying: false,\n retryError: newError,\n })\n }\n }, [history, isMounted, submissionResult])\n\n return (\n <div>\n {isLoading && (\n <section>\n <div className=\"cypress-loading has-text-centered\">\n <OnLoading className=\"has-text-centered\"></OnLoading>\n <span>Retrieving transaction details...</span>\n </div>\n </section>\n )}\n\n {transaction && (\n <Receipt\n className=\"ob-payment-receipt\"\n containerClassName=\"ob-payment-receipt__container\"\n >\n <ReceiptList\n successIconClassName=\"ob-payment-receipt__success-icon\"\n warningIconClassName=\"ob-payment-receipt__warning-icon\"\n warningMessageClassName=\"ob-payment-receipt__warning-message cypress-payment-receipt-warning-message\"\n warningMessage={\n transaction.isSuccess\n ? undefined\n : transaction.errorMessage || undefined\n }\n >\n {receiptItems &&\n receiptItems.length &&\n receiptItems.map((receiptItem, i) => {\n return (\n <ReceiptListItem\n key={i}\n className={receiptItem.className ?? ''}\n valueClassName={receiptItem.valueClassName ?? ''}\n icon={receiptItem.icon}\n label={receiptItem.label}\n value={receiptItem.value}\n allowCopyToClipboard={receiptItem.allowCopyToClipboard}\n />\n )\n })}\n {schedulingBooking && transaction.isSuccess && (\n <>\n {schedulingBooking.location && (\n <ReceiptListItem\n className=\"ob-scheduling-receipt__location\"\n valueClassName=\"cypress-scheduling-receipt-location\"\n icon=\"location_on\"\n label=\"Location\"\n value={schedulingBooking.location}\n />\n )}\n\n <ReceiptListItem\n className=\"ob-scheduling-receipt__start-time\"\n valueClassName=\"cypress-scheduling-receipt-start-time\"\n icon=\"schedule\"\n label=\"Start Time\"\n value={localisationService.formatDatetimeLong(\n schedulingBooking.startTime,\n )}\n />\n\n <ReceiptListItem\n className=\"ob-scheduling-receipt__end-time\"\n valueClassName=\"cypress-scheduling-receipt-end-time\"\n icon=\"schedule\"\n label=\"End Time\"\n value={localisationService.formatDatetimeLong(\n schedulingBooking.endTime,\n )}\n />\n </>\n )}\n <ReceiptListItem\n className=\"ob-payment-receipt__warning\"\n valueClassName=\"cypress-payment-receipt-warning\"\n label=\"Warning\"\n value=\"Please do not click back in your browser, doing so will cause issues with your payment.\"\n />\n </ReceiptList>\n\n <div className=\"buttons\">\n {transaction.isSuccess ? (\n <ReceiptButton\n className=\"is-primary ob-payment-receipt__button ob-payment-receipt__okay-button cypress-payment-receipt-okay-button\"\n label=\"Done\"\n isLoading={isRunningPostSubmissionAction}\n onClick={handleDone}\n />\n ) : (\n <>\n <ReceiptButton\n className=\"ob-payment-receipt__button ob-payment-receipt__cancel-button cypress-payment-receipt-cancel-button\"\n label=\"Cancel\"\n isDisabled={isRetrying}\n isLoading={isRunningPostSubmissionAction}\n onClick={handleCancel}\n />\n <ReceiptButton\n className=\"is-primary ob-payment-receipt__button ob-payment-receipt__try-again-button cypress-payment-receipt-try-again-button\"\n label=\"Try Again\"\n isDisabled={isRunningPostSubmissionAction}\n isLoading={isRetrying}\n onClick={handleTryAgain}\n />\n </>\n )}\n </div>\n </Receipt>\n )}\n\n {loadError && (\n <section className=\"cypress-payment-receipt-loading-error-message\">\n <div className=\"ob-payment-receipt__error-icon-container has-text-centered has-margin-bottom-8\">\n <MaterialIcon className=\"ob-payment-receipt__error-icon has-text-danger icon-x-large\">\n error\n </MaterialIcon>\n </div>\n <p className=\"ob-payment-receipt__error-message has-text-centered has-margin-bottom-4\">\n {loadError.message}\n </p>\n </section>\n )}\n\n {retryError && (\n <Modal\n isOpen\n title={retryError.title || 'Whoops...'}\n bodyClassName=\"cypress-payment-receipt-retry-error-message\"\n actions={\n <button\n type=\"button\"\n className=\"button ob-button is-primary cypress-payment-receipt-retry-error-okay-button\"\n onClick={clearRetryError}\n autoFocus\n >\n Okay\n </button>\n }\n >\n {retryError.message}\n </Modal>\n )}\n\n {postSubmissionError && (\n <Modal\n isOpen\n title={postSubmissionError.title || 'Whoops...'}\n bodyClassName=\"cypress-payment-receipt-retry-error-message\"\n actions={\n <button\n type=\"button\"\n className=\"button ob-button is-primary cypress-payment-receipt-retry-error-okay-button\"\n onClick={clearPostSubmissionError}\n autoFocus\n >\n Okay\n </button>\n }\n >\n {postSubmissionError.message}\n </Modal>\n )}\n </div>\n )\n}\n\n/**\n * Component for rendering a OneBlink Form Payment Receipt. This component will\n * payment receipt but it is up to the developer to implement what happens when\n * the user clicks 'Done'.\n *\n * It is also recommended to import the `css` from this library as well.\n *\n * ```js\n * import { PaymentReceipt } from '@oneblink/apps-react'\n * import '@oneblink/apps-react/dist/styles.css'\n * ```\n *\n * #### Example\n *\n * ```tsx\n * import React from 'react'\n * import ReactDOM from 'react-dom'\n * import { PaymentReceipt } from '@oneblink/apps-react'\n * import '@oneblink/apps-react/dist/styles.css'\n *\n * function ReceiptContainer() {\n * const handleDone = React.useCallback(async () => {\n * console.log('All done!')\n * }, [])\n * const handleCancel = React.useCallback(async () => {\n * console.log('Cancelled!')\n * }, [])\n *\n * return <PaymentReceipt onDone={handleDone} onCancel={handleCancel} />\n * }\n *\n * function App() {\n * return (\n * <IsOfflineContextProvider>\n * <ReceiptContainer />\n * </IsOfflineContextProvider>\n * )\n * }\n *\n * const root = document.getElementById('root')\n * if (root) {\n * ReactDOM.render(<App />, root)\n * }\n * ```\n *\n * @param props\n * @returns\n * @group Components\n */\nexport default React.memo(PaymentReceipt)\n"]}
1
+ {"version":3,"file":"PaymentReceipt.js","sourceRoot":"","sources":["../src/PaymentReceipt.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { useHistory } from 'react-router-dom'\nimport {\n paymentService,\n submissionService,\n OneBlinkAppsError,\n schedulingService,\n localisationService,\n} from '@oneblink/apps'\nimport useIsMounted from './hooks/useIsMounted'\n\nimport useQuery from './hooks/useQuery'\nimport Modal from './components/renderer/Modal'\nimport OnLoading from './components/renderer/OnLoading'\nimport {\n Receipt,\n ReceiptList,\n ReceiptListItem,\n ReceiptButton,\n} from './components/receipts'\nimport MaterialIcon from './components/MaterialIcon'\n\nconst { handlePaymentQuerystring, handlePaymentSubmissionEvent } =\n paymentService\n\nfunction PaymentReceipt({\n onDone,\n onCancel,\n}: {\n /**\n * The function to call when the user clicks 'Done'. See\n * [FormSubmissionResult](https://oneblink.github.io/apps/modules/submissionService.html#FormSubmissionResult)\n * for the structure of the argument.\n */\n onDone: (\n submissionResult: submissionService.FormSubmissionResult,\n ) => Promise<void>\n /**\n * The function to call when the user clicks 'Cancel'. See\n * [FormSubmissionResult](https://oneblink.github.io/apps/modules/submissionService.html#FormSubmissionResult)\n * for the structure of the argument.\n */\n onCancel: (\n submissionResult: submissionService.FormSubmissionResult,\n ) => Promise<void>\n}) {\n const isMounted = useIsMounted()\n const query = useQuery()\n const history = useHistory()\n\n const [\n {\n isLoading,\n loadError,\n transaction,\n submissionResult,\n receiptItems,\n schedulingBooking,\n },\n setLoadState,\n ] = React.useState<{\n isLoading: boolean\n loadError: Error | null\n transaction: paymentService.HandlePaymentResult['transaction'] | null\n submissionResult: submissionService.FormSubmissionResult | null\n receiptItems: paymentService.PaymentReceiptItem[] | null\n schedulingBooking: schedulingService.SchedulingBooking | null\n }>({\n isLoading: true,\n loadError: null,\n transaction: null,\n submissionResult: null,\n receiptItems: null,\n schedulingBooking: null,\n })\n const [\n { isRunningPostSubmissionAction, postSubmissionError },\n setPostSubmissionState,\n ] = React.useState<{\n isRunningPostSubmissionAction: boolean\n postSubmissionError: OneBlinkAppsError | null\n }>({\n isRunningPostSubmissionAction: false,\n postSubmissionError: null,\n })\n const clearPostSubmissionError = React.useCallback(() => {\n setPostSubmissionState((currentState) => ({\n ...currentState,\n postSubmissionError: null,\n }))\n }, [])\n const [{ isRetrying, retryError }, setRetryState] = React.useState<{\n isRetrying: boolean\n retryError: OneBlinkAppsError | null\n }>({\n isRetrying: false,\n retryError: null,\n })\n const clearRetryError = React.useCallback(() => {\n setRetryState((currentState) => ({\n ...currentState,\n retryError: null,\n }))\n }, [])\n\n React.useEffect(() => {\n let ignore = false\n\n const getTransaction = async () => {\n let newError = null\n let newTransaction = null\n let newSubmissionResult = null\n let newReceiptItems = null\n let newSchedulingBooking = null\n try {\n const result = await handlePaymentQuerystring(query)\n newTransaction = result.transaction\n newSubmissionResult = result.submissionResult\n newReceiptItems = result.receiptItems\n newSchedulingBooking = result.schedulingBooking ?? null\n } catch (error) {\n console.warn('Error while attempting to load transaction', error)\n newError = error as Error\n }\n\n if (!ignore) {\n setLoadState({\n isLoading: false,\n loadError: newError,\n transaction: newTransaction,\n submissionResult: newSubmissionResult,\n receiptItems: newReceiptItems,\n schedulingBooking: newSchedulingBooking,\n })\n }\n }\n getTransaction()\n\n return () => {\n ignore = true\n }\n }, [query])\n\n const executePostSubmissionAction = React.useCallback(\n async (\n action: (\n submissionRresult: submissionService.FormSubmissionResult,\n ) => Promise<void>,\n ) => {\n if (!submissionResult || !isMounted.current) {\n return\n }\n\n setPostSubmissionState({\n isRunningPostSubmissionAction: true,\n postSubmissionError: null,\n })\n\n let newError = null\n try {\n await action({ ...submissionResult, payment: null })\n } catch (error) {\n console.warn('Error while running post submission action', error)\n newError = error as OneBlinkAppsError\n }\n\n if (isMounted.current) {\n setPostSubmissionState({\n isRunningPostSubmissionAction: false,\n postSubmissionError: newError,\n })\n }\n },\n [isMounted, submissionResult],\n )\n\n const handleDone = React.useCallback(async () => {\n executePostSubmissionAction(onDone)\n }, [executePostSubmissionAction, onDone])\n\n const handleCancel = React.useCallback(() => {\n executePostSubmissionAction(onCancel)\n }, [executePostSubmissionAction, onCancel])\n\n const handleTryAgain = React.useCallback(async () => {\n if (!submissionResult || !submissionResult.payment) {\n return\n }\n const paymentSubmissionEvent = submissionResult.payment.submissionEvent\n\n if (isMounted.current) {\n setRetryState({\n isRetrying: true,\n retryError: null,\n })\n }\n\n let newError = null\n try {\n submissionResult.payment = await handlePaymentSubmissionEvent({\n amount: submissionResult.payment.amount,\n formSubmissionResult: submissionResult,\n paymentSubmissionEvent,\n paymentReceiptUrl: submissionResult.payment.paymentReceiptUrl,\n paymentFormUrl: submissionResult.payment.paymentFormUrl,\n })\n await submissionService.executePostSubmissionAction(submissionResult, {\n onRedirectToRelativeUrl: (url) => history.push(url),\n onRedirectToAbsoluteUrl: (url) => window.location.assign(url),\n })\n } catch (error) {\n console.warn('Error while attempting to retry transaction', error)\n newError = error as OneBlinkAppsError\n }\n\n if (isMounted.current) {\n setRetryState({\n isRetrying: false,\n retryError: newError,\n })\n }\n }, [history, isMounted, submissionResult])\n\n return (\n <div>\n {isLoading && (\n <section>\n <div className=\"cypress-loading has-text-centered\">\n <OnLoading className=\"has-text-centered\"></OnLoading>\n <span>Retrieving transaction details...</span>\n </div>\n </section>\n )}\n\n {transaction && (\n <Receipt\n className=\"ob-payment-receipt\"\n containerClassName=\"ob-payment-receipt__container\"\n >\n <ReceiptList\n successIconClassName=\"ob-payment-receipt__success-icon\"\n warningIconClassName=\"ob-payment-receipt__warning-icon\"\n warningMessageClassName=\"ob-payment-receipt__warning-message cypress-payment-receipt-warning-message\"\n warningMessage={\n transaction.isSuccess\n ? undefined\n : transaction.errorMessage || undefined\n }\n >\n {receiptItems &&\n receiptItems.length &&\n receiptItems.map((receiptItem, i) => {\n return (\n <ReceiptListItem\n key={i}\n className={receiptItem.className ?? ''}\n valueClassName={receiptItem.valueClassName ?? ''}\n icon={receiptItem.icon}\n label={receiptItem.label}\n value={receiptItem.value}\n allowCopyToClipboard={receiptItem.allowCopyToClipboard}\n />\n )\n })}\n {schedulingBooking && transaction.isSuccess && (\n <>\n {schedulingBooking.location && (\n <ReceiptListItem\n className=\"ob-scheduling-receipt__location\"\n valueClassName=\"cypress-scheduling-receipt-location\"\n icon=\"location_on\"\n label=\"Location\"\n value={schedulingBooking.location}\n />\n )}\n\n <ReceiptListItem\n className=\"ob-scheduling-receipt__start-time\"\n valueClassName=\"cypress-scheduling-receipt-start-time\"\n icon=\"schedule\"\n label=\"Start Time\"\n value={localisationService.formatDatetimeLong(\n schedulingBooking.startTime,\n )}\n />\n\n <ReceiptListItem\n className=\"ob-scheduling-receipt__end-time\"\n valueClassName=\"cypress-scheduling-receipt-end-time\"\n icon=\"schedule\"\n label=\"End Time\"\n value={localisationService.formatDatetimeLong(\n schedulingBooking.endTime,\n )}\n />\n </>\n )}\n <ReceiptListItem\n className=\"ob-payment-receipt__warning\"\n valueClassName=\"cypress-payment-receipt-warning\"\n label=\"Warning\"\n value=\"Please do not click back in your browser, doing so will cause issues with your payment.\"\n />\n </ReceiptList>\n\n <div className=\"buttons\">\n {submissionResult && submissionResult.downloadSubmissionPdfUrl && (\n <a\n className=\"button ob-button ob-receipt__button ob-payment-receipt__button ob-button__download-pdf ob-payment-receipt__pdf-button cypress-receipt-download-pdf-button\"\n href={submissionResult.downloadSubmissionPdfUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Download PDF\n </a>\n )}\n {transaction.isSuccess ? (\n <ReceiptButton\n className=\"is-primary ob-payment-receipt__button ob-payment-receipt__okay-button cypress-payment-receipt-okay-button\"\n label=\"Done\"\n isLoading={isRunningPostSubmissionAction}\n onClick={handleDone}\n />\n ) : (\n <>\n <ReceiptButton\n className=\"ob-payment-receipt__button ob-payment-receipt__cancel-button cypress-payment-receipt-cancel-button\"\n label=\"Cancel\"\n isDisabled={isRetrying}\n isLoading={isRunningPostSubmissionAction}\n onClick={handleCancel}\n />\n <ReceiptButton\n className=\"is-primary ob-payment-receipt__button ob-payment-receipt__try-again-button cypress-payment-receipt-try-again-button\"\n label=\"Try Again\"\n isDisabled={isRunningPostSubmissionAction}\n isLoading={isRetrying}\n onClick={handleTryAgain}\n />\n </>\n )}\n </div>\n </Receipt>\n )}\n\n {loadError && (\n <section className=\"cypress-payment-receipt-loading-error-message\">\n <div className=\"ob-payment-receipt__error-icon-container has-text-centered has-margin-bottom-8\">\n <MaterialIcon className=\"ob-payment-receipt__error-icon has-text-danger icon-x-large\">\n error\n </MaterialIcon>\n </div>\n <p className=\"ob-payment-receipt__error-message has-text-centered has-margin-bottom-4\">\n {loadError.message}\n </p>\n </section>\n )}\n\n {retryError && (\n <Modal\n isOpen\n title={retryError.title || 'Whoops...'}\n bodyClassName=\"cypress-payment-receipt-retry-error-message\"\n actions={\n <button\n type=\"button\"\n className=\"button ob-button is-primary cypress-payment-receipt-retry-error-okay-button\"\n onClick={clearRetryError}\n autoFocus\n >\n Okay\n </button>\n }\n >\n {retryError.message}\n </Modal>\n )}\n\n {postSubmissionError && (\n <Modal\n isOpen\n title={postSubmissionError.title || 'Whoops...'}\n bodyClassName=\"cypress-payment-receipt-retry-error-message\"\n actions={\n <button\n type=\"button\"\n className=\"button ob-button is-primary cypress-payment-receipt-retry-error-okay-button\"\n onClick={clearPostSubmissionError}\n autoFocus\n >\n Okay\n </button>\n }\n >\n {postSubmissionError.message}\n </Modal>\n )}\n </div>\n )\n}\n\n/**\n * Component for rendering a OneBlink Form Payment Receipt. This component will\n * payment receipt but it is up to the developer to implement what happens when\n * the user clicks 'Done'.\n *\n * It is also recommended to import the `css` from this library as well.\n *\n * ```js\n * import { PaymentReceipt } from '@oneblink/apps-react'\n * import '@oneblink/apps-react/dist/styles.css'\n * ```\n *\n * #### Example\n *\n * ```tsx\n * import React from 'react'\n * import ReactDOM from 'react-dom'\n * import { PaymentReceipt } from '@oneblink/apps-react'\n * import '@oneblink/apps-react/dist/styles.css'\n *\n * function ReceiptContainer() {\n * const handleDone = React.useCallback(async () => {\n * console.log('All done!')\n * }, [])\n * const handleCancel = React.useCallback(async () => {\n * console.log('Cancelled!')\n * }, [])\n *\n * return <PaymentReceipt onDone={handleDone} onCancel={handleCancel} />\n * }\n *\n * function App() {\n * return (\n * <IsOfflineContextProvider>\n * <ReceiptContainer />\n * </IsOfflineContextProvider>\n * )\n * }\n *\n * const root = document.getElementById('root')\n * if (root) {\n * ReactDOM.render(<App />, root)\n * }\n * ```\n *\n * @param props\n * @returns\n * @group Components\n */\nexport default React.memo(PaymentReceipt)\n"]}
@@ -61,7 +61,6 @@ function FormElementTableCell({ formElement, submission, allowCopy }) {
61
61
  const date = localisationService.generateDate({
62
62
  daysOffset: undefined,
63
63
  value: unknown,
64
- dateOnly: true,
65
64
  });
66
65
  if (!date) {
67
66
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementTableCell.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/FormElementTableCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { Link, Typography } from '@mui/material'\nimport { localisationService } from '@oneblink/apps'\nimport {\n APINSWTypes,\n FormTypes,\n GoogleTypes,\n SubmissionTypes,\n} from '@oneblink/types'\nimport { abnService } from '@oneblink/sdk-core'\nimport {\n FileChip,\n FilesElementDataTableCellContent,\n MultiSelectFormElementTableCellContent,\n getSelectedOptionLabel,\n} from '../display/ElementDisplay'\nimport RepeatableSetCell from './RepeatableSetCell'\nimport TableCellCopyButton from './TableCellCopyButton'\nimport { format } from 'date-fns'\nimport { ABNRecord } from '@oneblink/types/typescript/misc'\nimport { GeoscapeAddress } from '@oneblink/types/typescript/geoscape'\nimport { PointAddress } from '@oneblink/types/typescript/point'\n\ntype Props = {\n formElement: FormTypes.FormElement\n submission: SubmissionTypes.S3SubmissionData['submission'] | undefined\n allowCopy: boolean\n}\n\nfunction FormElementTableCell({ formElement, submission, allowCopy }: Props) {\n if (formElement.type === 'page' || formElement.type === 'section') {\n return null\n }\n const unknown = submission?.[formElement.name]\n if (unknown === undefined || unknown === null) {\n return null\n }\n\n switch (formElement.type) {\n case 'repeatableSet': {\n if (!Array.isArray(unknown)) {\n break\n }\n return <RepeatableSetCell formElement={formElement} value={unknown} />\n }\n\n case 'location': {\n const value = unknown as {\n latitude: number\n longitude: number\n }\n if (!value.latitude || !value.longitude) {\n break\n }\n\n const latLong = `${value.latitude},${value.longitude}`\n return (\n <>\n <div>\n <Typography variant=\"inherit\" component=\"p\">\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://maps.google.com/?q=${latLong}`}\n >\n View in Google Maps\n </Link>\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Latitude: {value.latitude}\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Longitude: {value.longitude}\n </Typography>\n </div>\n <TableCellCopyButton isHidden={!allowCopy} text={latLong} />\n </>\n )\n }\n\n case 'camera':\n case 'draw': {\n return (\n <FileChip\n file={unknown as React.ComponentProps<typeof FileChip>['file']}\n />\n )\n }\n\n case 'textarea': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <span\n style={{\n whiteSpace: 'pre-line',\n }}\n >\n {unknown}\n </span>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'date': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = localisationService.generateDate({\n daysOffset: undefined,\n value: unknown,\n dateOnly: true,\n })\n if (!date) {\n break\n }\n const text = localisationService.formatDate(date)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'time': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { time: timeFormat } = localisationService.getDateFnsFormats()\n const text = format(date, timeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'datetime': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { shortDateTime: shortDateTimeFormat } =\n localisationService.getDateFnsFormats()\n const text = format(date, shortDateTimeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'number': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'radio':\n case 'autocomplete':\n case 'checkboxes':\n case 'select': {\n if (\n formElement.type === 'checkboxes' ||\n (formElement.type === 'select' && formElement.multi)\n ) {\n if (\n !Array.isArray(unknown) ||\n !unknown.length ||\n typeof unknown[0] !== 'string'\n ) {\n break\n }\n const text = (unknown as string[])\n .map((selection) => getSelectedOptionLabel(formElement, selection))\n .join(', ')\n return (\n <>\n <MultiSelectFormElementTableCellContent\n value={unknown}\n formElement={formElement}\n />\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n } else {\n if (typeof unknown !== 'string') {\n break\n }\n const text = getSelectedOptionLabel(formElement, unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n }\n\n case 'email': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`mailto:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'telephone': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`tel:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'text':\n case 'bsb':\n case 'barcodeScanner': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n {unknown}\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'files': {\n const value = unknown as React.ComponentProps<\n typeof FilesElementDataTableCellContent\n >['value']\n if (\n !Array.isArray(value) ||\n !value.length ||\n typeof value[0]?.fileName !== 'string'\n ) {\n break\n }\n return <FilesElementDataTableCellContent value={value} />\n }\n\n case 'calculation': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = formElement.displayAsCurrency\n ? localisationService.formatCurrency(unknown)\n : localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={unknown.toString()}\n />\n </>\n )\n }\n\n case 'civicaStreetName': {\n const value = unknown as {\n formattedStreet: string\n }\n if (typeof value?.formattedStreet !== 'string') {\n break\n }\n return (\n <>\n {value.formattedStreet}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={value.formattedStreet}\n />\n </>\n )\n }\n\n case 'civicaNameRecord': {\n const value = unknown as {\n title?: string\n givenName1?: string\n familyName?: string\n emailAddress: string\n }\n if (typeof value?.emailAddress !== 'string') {\n break\n }\n const text =\n [value?.title, value?.givenName1, value?.familyName]\n .filter((t) => t)\n .join(' ') || value?.emailAddress\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'geoscapeAddress': {\n const value = unknown as GeoscapeAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n Geoscape Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'pointAddress': {\n const value = unknown as PointAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n NSW Point Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'googleAddress': {\n const value = unknown as GoogleTypes.GoogleMapsAddress\n const fullAddress = value?.formatted_address || (\n <>\n Google Address: <i>{value?.place_id}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'boolean': {\n if (typeof unknown !== 'boolean') {\n break\n }\n const text = unknown ? 'Yes' : 'No'\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'abn': {\n const value = unknown as ABNRecord\n if (!value.ABN || !value.entityType) {\n break\n }\n const abnNumber = abnService.displayABNNumberFromABNRecord(value)\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://www.abr.business.gov.au/ABN/View/${abnNumber}`}\n >\n {abnNumber} |{' '}\n <i>{abnService.displayBusinessNameFromABNRecord(value)}</i>\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={abnNumber} />\n </>\n )\n }\n case 'apiNSWLiquorLicence': {\n const value = unknown as APINSWTypes.LiquorLicenceDetails\n const licenceNumber =\n `${value.licenceDetail?.licenceNumber} | ${value.licenceDetail?.licenceName}`.trim()\n if (!licenceNumber) {\n break\n }\n return (\n <>\n {licenceNumber}\n <TableCellCopyButton isHidden={!allowCopy} text={licenceNumber} />\n </>\n )\n }\n\n case 'html':\n case 'form':\n case 'infoPage':\n case 'captcha':\n case 'image':\n case 'heading':\n case 'arcGISWebMap':\n case 'summary': {\n return null\n }\n\n default: {\n console.warn(\n 'Unsupported element type in Submission Data rendering',\n formElement,\n )\n return null\n }\n }\n\n return <>{JSON.stringify(unknown)}</>\n}\n\nexport default React.memo(FormElementTableCell)\n"]}
1
+ {"version":3,"file":"FormElementTableCell.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/FormElementTableCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { Link, Typography } from '@mui/material'\nimport { localisationService } from '@oneblink/apps'\nimport {\n APINSWTypes,\n FormTypes,\n GoogleTypes,\n SubmissionTypes,\n} from '@oneblink/types'\nimport { abnService } from '@oneblink/sdk-core'\nimport {\n FileChip,\n FilesElementDataTableCellContent,\n MultiSelectFormElementTableCellContent,\n getSelectedOptionLabel,\n} from '../display/ElementDisplay'\nimport RepeatableSetCell from './RepeatableSetCell'\nimport TableCellCopyButton from './TableCellCopyButton'\nimport { format } from 'date-fns'\nimport { ABNRecord } from '@oneblink/types/typescript/misc'\nimport { GeoscapeAddress } from '@oneblink/types/typescript/geoscape'\nimport { PointAddress } from '@oneblink/types/typescript/point'\n\ntype Props = {\n formElement: FormTypes.FormElement\n submission: SubmissionTypes.S3SubmissionData['submission'] | undefined\n allowCopy: boolean\n}\n\nfunction FormElementTableCell({ formElement, submission, allowCopy }: Props) {\n if (formElement.type === 'page' || formElement.type === 'section') {\n return null\n }\n const unknown = submission?.[formElement.name]\n if (unknown === undefined || unknown === null) {\n return null\n }\n\n switch (formElement.type) {\n case 'repeatableSet': {\n if (!Array.isArray(unknown)) {\n break\n }\n return <RepeatableSetCell formElement={formElement} value={unknown} />\n }\n\n case 'location': {\n const value = unknown as {\n latitude: number\n longitude: number\n }\n if (!value.latitude || !value.longitude) {\n break\n }\n\n const latLong = `${value.latitude},${value.longitude}`\n return (\n <>\n <div>\n <Typography variant=\"inherit\" component=\"p\">\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://maps.google.com/?q=${latLong}`}\n >\n View in Google Maps\n </Link>\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Latitude: {value.latitude}\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Longitude: {value.longitude}\n </Typography>\n </div>\n <TableCellCopyButton isHidden={!allowCopy} text={latLong} />\n </>\n )\n }\n\n case 'camera':\n case 'draw': {\n return (\n <FileChip\n file={unknown as React.ComponentProps<typeof FileChip>['file']}\n />\n )\n }\n\n case 'textarea': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <span\n style={{\n whiteSpace: 'pre-line',\n }}\n >\n {unknown}\n </span>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'date': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = localisationService.generateDate({\n daysOffset: undefined,\n value: unknown,\n })\n if (!date) {\n break\n }\n const text = localisationService.formatDate(date)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'time': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { time: timeFormat } = localisationService.getDateFnsFormats()\n const text = format(date, timeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'datetime': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { shortDateTime: shortDateTimeFormat } =\n localisationService.getDateFnsFormats()\n const text = format(date, shortDateTimeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'number': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'radio':\n case 'autocomplete':\n case 'checkboxes':\n case 'select': {\n if (\n formElement.type === 'checkboxes' ||\n (formElement.type === 'select' && formElement.multi)\n ) {\n if (\n !Array.isArray(unknown) ||\n !unknown.length ||\n typeof unknown[0] !== 'string'\n ) {\n break\n }\n const text = (unknown as string[])\n .map((selection) => getSelectedOptionLabel(formElement, selection))\n .join(', ')\n return (\n <>\n <MultiSelectFormElementTableCellContent\n value={unknown}\n formElement={formElement}\n />\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n } else {\n if (typeof unknown !== 'string') {\n break\n }\n const text = getSelectedOptionLabel(formElement, unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n }\n\n case 'email': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`mailto:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'telephone': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`tel:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'text':\n case 'bsb':\n case 'barcodeScanner': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n {unknown}\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'files': {\n const value = unknown as React.ComponentProps<\n typeof FilesElementDataTableCellContent\n >['value']\n if (\n !Array.isArray(value) ||\n !value.length ||\n typeof value[0]?.fileName !== 'string'\n ) {\n break\n }\n return <FilesElementDataTableCellContent value={value} />\n }\n\n case 'calculation': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = formElement.displayAsCurrency\n ? localisationService.formatCurrency(unknown)\n : localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={unknown.toString()}\n />\n </>\n )\n }\n\n case 'civicaStreetName': {\n const value = unknown as {\n formattedStreet: string\n }\n if (typeof value?.formattedStreet !== 'string') {\n break\n }\n return (\n <>\n {value.formattedStreet}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={value.formattedStreet}\n />\n </>\n )\n }\n\n case 'civicaNameRecord': {\n const value = unknown as {\n title?: string\n givenName1?: string\n familyName?: string\n emailAddress: string\n }\n if (typeof value?.emailAddress !== 'string') {\n break\n }\n const text =\n [value?.title, value?.givenName1, value?.familyName]\n .filter((t) => t)\n .join(' ') || value?.emailAddress\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'geoscapeAddress': {\n const value = unknown as GeoscapeAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n Geoscape Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'pointAddress': {\n const value = unknown as PointAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n NSW Point Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'googleAddress': {\n const value = unknown as GoogleTypes.GoogleMapsAddress\n const fullAddress = value?.formatted_address || (\n <>\n Google Address: <i>{value?.place_id}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'boolean': {\n if (typeof unknown !== 'boolean') {\n break\n }\n const text = unknown ? 'Yes' : 'No'\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'abn': {\n const value = unknown as ABNRecord\n if (!value.ABN || !value.entityType) {\n break\n }\n const abnNumber = abnService.displayABNNumberFromABNRecord(value)\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://www.abr.business.gov.au/ABN/View/${abnNumber}`}\n >\n {abnNumber} |{' '}\n <i>{abnService.displayBusinessNameFromABNRecord(value)}</i>\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={abnNumber} />\n </>\n )\n }\n case 'apiNSWLiquorLicence': {\n const value = unknown as APINSWTypes.LiquorLicenceDetails\n const licenceNumber =\n `${value.licenceDetail?.licenceNumber} | ${value.licenceDetail?.licenceName}`.trim()\n if (!licenceNumber) {\n break\n }\n return (\n <>\n {licenceNumber}\n <TableCellCopyButton isHidden={!allowCopy} text={licenceNumber} />\n </>\n )\n }\n\n case 'html':\n case 'form':\n case 'infoPage':\n case 'captcha':\n case 'image':\n case 'heading':\n case 'arcGISWebMap':\n case 'summary': {\n return null\n }\n\n default: {\n console.warn(\n 'Unsupported element type in Submission Data rendering',\n formElement,\n )\n return null\n }\n }\n\n return <>{JSON.stringify(unknown)}</>\n}\n\nexport default React.memo(FormElementTableCell)\n"]}
@@ -1,5 +1,4 @@
1
- import { TextFieldProps } from '@mui/material';
2
- import { DateValidationError, DateTimeValidationError, PickersActionBarAction } from '@mui/x-date-pickers';
1
+ import { DateValidationError, DateTimeValidationError } from '@mui/x-date-pickers';
3
2
  import * as React from 'react';
4
3
  type DatePickersProps = {
5
4
  label: string;
@@ -14,23 +13,4 @@ type DateTimePickersProps = DatePickersProps & {
14
13
  renderHelperText: (errorType: DateTimeValidationError) => void;
15
14
  };
16
15
  export declare const FiltersDateTimePicker: (props: DateTimePickersProps) => React.JSX.Element;
17
- export declare const useCommonPickerProps: <T>({ renderHelperText, value, maxDate, minDate, }: {
18
- renderHelperText: (errorType: T | null) => void;
19
- value: string | undefined;
20
- maxDate?: string;
21
- minDate?: string;
22
- }) => {
23
- slots: {
24
- textField: (params: React.PropsWithChildren<TextFieldProps>) => React.JSX.Element;
25
- };
26
- slotProps: {
27
- actionBar: {
28
- actions: PickersActionBarAction[];
29
- };
30
- };
31
- maxDate: Date | null;
32
- minDate: Date | null;
33
- value: Date | null;
34
- onError: React.Dispatch<React.SetStateAction<T | null>>;
35
- };
36
16
  export {};
@@ -25,7 +25,7 @@ export const FiltersDateTimePicker = (props) => {
25
25
  onChange(newDate.toISOString());
26
26
  } }));
27
27
  };
28
- export const useCommonPickerProps = ({ renderHelperText, value, maxDate, minDate, }) => {
28
+ const useCommonPickerProps = ({ renderHelperText, value, maxDate, minDate, }) => {
29
29
  const [errorType, setErrorType] = useNullableState(null);
30
30
  const valueMemo = React.useMemo(() => {
31
31
  return value ? new Date(value) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"Pickers.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/Pickers.tsx"],"names":[],"mappings":"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","sourcesContent":["import { IconButton, TextField, TextFieldProps } from '@mui/material'\nimport {\n MobileDatePicker,\n DateValidationError,\n DateTimeValidationError,\n CalendarIcon,\n MobileDateTimePicker,\n PickersActionBarAction,\n} from '@mui/x-date-pickers'\nimport * as React from 'react'\nimport useNullableState from '../../../hooks/useNullableState'\nimport { format } from 'date-fns'\nimport { localisationService } from '@oneblink/apps'\n\nconst shortDateFormat = localisationService.getDateFnsFormats().shortDate\nconst shortDateTimeFormat =\n localisationService.getDateFnsFormats().shortDateTime\n\ntype DatePickersProps = {\n label: string\n value: string | undefined\n onChange: (newDate: string | undefined) => void\n renderHelperText: (errorType: DateValidationError) => void\n maxDate?: string\n minDate?: string\n}\nexport const FiltersDatePicker = (props: DatePickersProps) => {\n const { label, onChange } = props\n const commonProps = useCommonPickerProps(props)\n\n return (\n <MobileDatePicker\n label={label}\n format={shortDateFormat}\n {...commonProps}\n onAccept={(newDate) => {\n if (!newDate) return onChange(undefined)\n\n const formattedDate = format(newDate, 'yyyy-MM-dd')\n onChange(formattedDate)\n }}\n />\n )\n}\n\ntype DateTimePickersProps = DatePickersProps & {\n renderHelperText: (errorType: DateTimeValidationError) => void\n}\nexport const FiltersDateTimePicker = (props: DateTimePickersProps) => {\n const { label, onChange } = props\n const commonProps = useCommonPickerProps(props)\n\n return (\n <MobileDateTimePicker\n label={label}\n format={shortDateTimeFormat}\n {...commonProps}\n onAccept={(newDate) => {\n if (!newDate) return onChange(undefined)\n onChange(newDate.toISOString())\n }}\n />\n )\n}\n\nexport const useCommonPickerProps = <T,>({\n renderHelperText,\n value,\n maxDate,\n minDate,\n}: {\n renderHelperText: (errorType: T | null) => void\n value: string | undefined\n maxDate?: string\n minDate?: string\n}) => {\n const [errorType, setErrorType] = useNullableState<T>(null)\n\n const valueMemo = React.useMemo(() => {\n return value ? new Date(value) : null\n }, [value])\n\n const maxDateMemo = React.useMemo(\n () => (maxDate ? new Date(maxDate) : null),\n [maxDate],\n )\n const minDateMemo = React.useMemo(\n () => (minDate ? new Date(minDate) : null),\n [minDate],\n )\n\n return {\n slots: {\n textField: (params: React.PropsWithChildren<TextFieldProps>) => (\n <TextField\n {...params}\n variant=\"outlined\"\n margin=\"dense\"\n size=\"small\"\n helperText={renderHelperText(errorType)}\n InputProps={{\n endAdornment: (\n <IconButton edge=\"end\">\n <CalendarIcon />\n </IconButton>\n ),\n }}\n />\n ),\n },\n slotProps: {\n actionBar: {\n actions: [\n 'clear',\n 'today',\n 'cancel',\n 'accept',\n ] as PickersActionBarAction[],\n },\n },\n maxDate: maxDateMemo,\n minDate: minDateMemo,\n value: valueMemo,\n onError: setErrorType,\n }\n}\n"]}
1
+ {"version":3,"file":"Pickers.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/Pickers.tsx"],"names":[],"mappings":"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","sourcesContent":["import { IconButton, TextField, TextFieldProps } from '@mui/material'\nimport {\n MobileDatePicker,\n DateValidationError,\n DateTimeValidationError,\n CalendarIcon,\n MobileDateTimePicker,\n PickersActionBarAction,\n} from '@mui/x-date-pickers'\nimport * as React from 'react'\nimport useNullableState from '../../../hooks/useNullableState'\nimport { format } from 'date-fns'\nimport { localisationService } from '@oneblink/apps'\n\nconst shortDateFormat = localisationService.getDateFnsFormats().shortDate\nconst shortDateTimeFormat =\n localisationService.getDateFnsFormats().shortDateTime\n\ntype DatePickersProps = {\n label: string\n value: string | undefined\n onChange: (newDate: string | undefined) => void\n renderHelperText: (errorType: DateValidationError) => void\n maxDate?: string\n minDate?: string\n}\nexport const FiltersDatePicker = (props: DatePickersProps) => {\n const { label, onChange } = props\n const commonProps = useCommonPickerProps(props)\n\n return (\n <MobileDatePicker\n label={label}\n format={shortDateFormat}\n {...commonProps}\n onAccept={(newDate) => {\n if (!newDate) return onChange(undefined)\n\n const formattedDate = format(newDate, 'yyyy-MM-dd')\n onChange(formattedDate)\n }}\n />\n )\n}\n\ntype DateTimePickersProps = DatePickersProps & {\n renderHelperText: (errorType: DateTimeValidationError) => void\n}\nexport const FiltersDateTimePicker = (props: DateTimePickersProps) => {\n const { label, onChange } = props\n const commonProps = useCommonPickerProps(props)\n\n return (\n <MobileDateTimePicker\n label={label}\n format={shortDateTimeFormat}\n {...commonProps}\n onAccept={(newDate) => {\n if (!newDate) return onChange(undefined)\n onChange(newDate.toISOString())\n }}\n />\n )\n}\n\nconst useCommonPickerProps = <T,>({\n renderHelperText,\n value,\n maxDate,\n minDate,\n}: {\n renderHelperText: (errorType: T | null) => void\n value: string | undefined\n maxDate?: string\n minDate?: string\n}) => {\n const [errorType, setErrorType] = useNullableState<T>(null)\n\n const valueMemo = React.useMemo(() => {\n return value ? new Date(value) : null\n }, [value])\n\n const maxDateMemo = React.useMemo(\n () => (maxDate ? new Date(maxDate) : null),\n [maxDate],\n )\n const minDateMemo = React.useMemo(\n () => (minDate ? new Date(minDate) : null),\n [minDate],\n )\n\n return {\n slots: {\n textField: (params: React.PropsWithChildren<TextFieldProps>) => (\n <TextField\n {...params}\n variant=\"outlined\"\n margin=\"dense\"\n size=\"small\"\n helperText={renderHelperText(errorType)}\n InputProps={{\n endAdornment: (\n <IconButton edge=\"end\">\n <CalendarIcon />\n </IconButton>\n ),\n }}\n />\n ),\n },\n slotProps: {\n actionBar: {\n actions: [\n 'clear',\n 'today',\n 'cancel',\n 'accept',\n ] as PickersActionBarAction[],\n },\n },\n maxDate: maxDateMemo,\n minDate: minDateMemo,\n value: valueMemo,\n onError: setErrorType,\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { FormStoreRecord } from '@oneblink/types/typescript/submissions';
2
+ import { TableState } from 'react-table';
3
+ export declare const defaultHiddenColumns: string[];
4
+ export type FormTableState = Partial<TableState<FormStoreRecord>> & {
5
+ defaultHiddenColumnsVersion?: string;
6
+ };
7
+ export declare const getVersionedFormTableState: (initialState: FormTableState) => FormTableState | undefined;
8
+ export default getVersionedFormTableState;
@@ -0,0 +1,36 @@
1
+ export const defaultHiddenColumns = [
2
+ 'SUBMISSION_ID',
3
+ 'EXTERNAL_ID',
4
+ 'TASK',
5
+ 'TASK_ACTION',
6
+ 'TASK_GROUP',
7
+ 'TASK_GROUP_INSTANCE',
8
+ ];
9
+ const removeUnhiddenDefaultColumns = (state, columnsSet) => {
10
+ if (!Array.isArray(state.hiddenColumns)) {
11
+ return;
12
+ }
13
+ // Indices of the old default hidden columns array, update when creating new version
14
+ for (let i = 0; i < 2; i++) {
15
+ if (!state.hiddenColumns.includes(defaultHiddenColumns[i])) {
16
+ columnsSet.delete(defaultHiddenColumns[i]);
17
+ }
18
+ }
19
+ return columnsSet;
20
+ };
21
+ export const getVersionedFormTableState = (initialState) => {
22
+ const state = { ...initialState };
23
+ if (state &&
24
+ Array.isArray(state.hiddenColumns) &&
25
+ state.defaultHiddenColumnsVersion !== 'V1') {
26
+ const columnsSet = removeUnhiddenDefaultColumns(state, new Set([...defaultHiddenColumns, ...state.hiddenColumns]));
27
+ if (!columnsSet) {
28
+ return;
29
+ }
30
+ state.hiddenColumns = Array.from(columnsSet);
31
+ state.defaultHiddenColumnsVersion = 'V1';
32
+ }
33
+ return state;
34
+ };
35
+ export default getVersionedFormTableState;
36
+ //# sourceMappingURL=getVersionedState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVersionedState.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/getVersionedState.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,eAAe;IACf,aAAa;IACb,MAAM;IACN,aAAa;IACb,YAAY;IACZ,qBAAqB;CACtB,CAAA;AAMD,MAAM,4BAA4B,GAAG,CACnC,KAA8B,EAC9B,UAAuB,EACvB,EAAE;IACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACxC,OAAM;IACR,CAAC;IAED,oFAAoF;IACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,YAA4B,EACA,EAAE;IAC9B,MAAM,KAAK,GAAG,EAAE,GAAG,YAAY,EAAE,CAAA;IACjC,IACE,KAAK;QACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;QAClC,KAAK,CAAC,2BAA2B,KAAK,IAAI,EAC1C,CAAC;QACD,MAAM,UAAU,GAAG,4BAA4B,CAC7C,KAAK,EACL,IAAI,GAAG,CAAC,CAAC,GAAG,oBAAoB,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAC3D,CAAA;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAM;QACR,CAAC;QAED,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC5C,KAAK,CAAC,2BAA2B,GAAG,IAAI,CAAA;IAC1C,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,eAAe,0BAA0B,CAAA","sourcesContent":["import { FormStoreRecord } from '@oneblink/types/typescript/submissions'\nimport { TableState } from 'react-table'\n\nexport const defaultHiddenColumns = [\n 'SUBMISSION_ID',\n 'EXTERNAL_ID',\n 'TASK',\n 'TASK_ACTION',\n 'TASK_GROUP',\n 'TASK_GROUP_INSTANCE',\n]\n\nexport type FormTableState = Partial<TableState<FormStoreRecord>> & {\n defaultHiddenColumnsVersion?: string\n}\n\nconst removeUnhiddenDefaultColumns = (\n state: Record<string, unknown>,\n columnsSet: Set<string>,\n) => {\n if (!Array.isArray(state.hiddenColumns)) {\n return\n }\n\n // Indices of the old default hidden columns array, update when creating new version\n for (let i = 0; i < 2; i++) {\n if (!state.hiddenColumns.includes(defaultHiddenColumns[i])) {\n columnsSet.delete(defaultHiddenColumns[i])\n }\n }\n\n return columnsSet\n}\n\nexport const getVersionedFormTableState = (\n initialState: FormTableState,\n): FormTableState | undefined => {\n const state = { ...initialState }\n if (\n state &&\n Array.isArray(state.hiddenColumns) &&\n state.defaultHiddenColumnsVersion !== 'V1'\n ) {\n const columnsSet = removeUnhiddenDefaultColumns(\n state,\n new Set([...defaultHiddenColumns, ...state.hiddenColumns]),\n )\n\n if (!columnsSet) {\n return\n }\n\n state.hiddenColumns = Array.from(columnsSet)\n state.defaultHiddenColumnsVersion = 'V1'\n }\n return state\n}\n\nexport default getVersionedFormTableState\n"]}
@@ -1,5 +1,4 @@
1
1
  import { FormStoreRecord } from '@oneblink/types/typescript/submissions';
2
- import { TableState } from 'react-table';
3
2
  import { FormTypes } from '@oneblink/types';
4
3
  import { OnChangeFilters } from '../../../hooks/useInfiniteScrollDataLoad';
5
4
  import { formStoreService } from '@oneblink/apps';
@@ -17,16 +16,16 @@ export default function useFormStoreTable({ form, formStoreRecords, parameters,
17
16
  readonly onRefresh: () => void;
18
17
  readonly submissionIdValidationMessage: string | undefined;
19
18
  readonly data: readonly FormStoreRecord[];
20
- readonly initialState?: Partial<TableState<FormStoreRecord>> | undefined;
21
- readonly stateReducer?: ((newState: TableState<FormStoreRecord>, action: import("react-table").ActionType, previousState: TableState<FormStoreRecord>, instance?: import("react-table").TableInstance<FormStoreRecord> | undefined) => TableState<FormStoreRecord>) | undefined;
22
- readonly useControlledState?: ((state: TableState<FormStoreRecord>, meta: import("react-table").MetaBase<FormStoreRecord>) => TableState<FormStoreRecord>) | undefined;
19
+ readonly initialState?: Partial<import("react-table").TableState<FormStoreRecord>> | undefined;
20
+ readonly stateReducer?: ((newState: import("react-table").TableState<FormStoreRecord>, action: import("react-table").ActionType, previousState: import("react-table").TableState<FormStoreRecord>, instance?: import("react-table").TableInstance<FormStoreRecord> | undefined) => import("react-table").TableState<FormStoreRecord>) | undefined;
21
+ readonly useControlledState?: ((state: import("react-table").TableState<FormStoreRecord>, meta: import("react-table").MetaBase<FormStoreRecord>) => import("react-table").TableState<FormStoreRecord>) | undefined;
23
22
  readonly defaultColumn?: Partial<import("react-table").Column<FormStoreRecord>> | undefined;
24
23
  readonly getSubRows?: ((originalRow: FormStoreRecord, relativeIndex: number) => FormStoreRecord[]) | undefined;
25
24
  readonly getRowId?: ((originalRow: FormStoreRecord, relativeIndex: number, parent?: import("react-table").Row<FormStoreRecord> | undefined) => string) | undefined;
26
25
  readonly autoResetHiddenColumns?: boolean | undefined;
27
26
  readonly disableResizing?: boolean | undefined;
28
27
  readonly autoResetResize?: boolean | undefined;
29
- readonly state: TableState<FormStoreRecord>;
28
+ readonly state: import("react-table").TableState<FormStoreRecord>;
30
29
  readonly plugins: import("react-table").PluginHook<FormStoreRecord>[];
31
30
  readonly dispatch: import("react-table").TableDispatch;
32
31
  readonly columns: import("react-table").ColumnInstance<FormStoreRecord>[];
@@ -6,6 +6,7 @@ import ActionedByTableCell from './ActionedByTableCell';
6
6
  import TableCellCopyButton from './TableCellCopyButton';
7
7
  import { localisationService } from '@oneblink/apps';
8
8
  import { FormStoreElementsContext } from '../OneBlinkFormStoreProvider';
9
+ import getVersionedFormTableState, { defaultHiddenColumns, } from './getVersionedState';
9
10
  const defaultColumn = {
10
11
  minWidth: 150,
11
12
  width: 225,
@@ -265,7 +266,7 @@ export default function useFormStoreTable({ form, formStoreRecords, parameters,
265
266
  const [initialState] = React.useState(() => {
266
267
  const text = localStorage.getItem(localStorageKey(form.id));
267
268
  if (text) {
268
- return JSON.parse(text);
269
+ return getVersionedFormTableState(JSON.parse(text));
269
270
  }
270
271
  });
271
272
  const table = useTable({
@@ -277,14 +278,7 @@ export default function useFormStoreTable({ form, formStoreRecords, parameters,
277
278
  initialState: initialState
278
279
  ? initialState
279
280
  : {
280
- hiddenColumns: [
281
- 'SUBMISSION_ID',
282
- 'EXTERNAL_ID',
283
- 'TASK',
284
- 'TASK_ACTION',
285
- 'TASK_GROUP',
286
- 'TASK_GROUP_INSTANCE',
287
- ],
281
+ hiddenColumns: defaultHiddenColumns,
288
282
  },
289
283
  }, useFlexLayout, useResizeColumns);
290
284
  React.useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"useFormStoreTable.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/useFormStoreTable.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { FormStoreRecord } from '@oneblink/types/typescript/submissions'\nimport {\n CellProps,\n useFlexLayout,\n useResizeColumns,\n useTable,\n TableState,\n} from 'react-table'\nimport { format } from 'date-fns'\nimport generateColumns from './generateColumns'\nimport ActionedByTableCell from './ActionedByTableCell'\nimport TableCellCopyButton from './TableCellCopyButton'\nimport { FormTypes } from '@oneblink/types'\nimport { OnChangeFilters } from '../../../hooks/useInfiniteScrollDataLoad'\nimport { formStoreService, localisationService } from '@oneblink/apps'\nimport { FormStoreElementsContext } from '../OneBlinkFormStoreProvider'\n\nconst defaultColumn = {\n minWidth: 150,\n width: 225,\n}\n\nconst localStorageKey = (formId: number) =>\n `REACT_TABLE_STATE_FORM_STORE_${formId}`\n\nexport default function useFormStoreTable({\n form,\n formStoreRecords,\n parameters,\n onChangeParameters,\n onRefresh,\n submissionIdValidationMessage,\n}: {\n formStoreRecords: FormStoreRecord[]\n form: FormTypes.Form\n parameters: formStoreService.FormStoreParameters\n onChangeParameters: OnChangeFilters<formStoreService.FormStoreParameters>\n onRefresh: () => void\n submissionIdValidationMessage?: string\n}) {\n // Resets parameters on form change\n React.useEffect(() => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: undefined,\n sorting: [\n {\n property: 'dateTimeSubmitted',\n direction: 'descending',\n },\n ],\n }),\n false,\n )\n }, [form, onChangeParameters])\n\n const formElements = React.useContext(FormStoreElementsContext)\n const columns = React.useMemo(() => {\n return generateColumns({\n sorting: parameters.sorting,\n filters: parameters.filters,\n unwindRepeatableSets: parameters.unwindRepeatableSets,\n formElements,\n parentElementNames: [],\n onChangeParameters,\n allowCopy: true,\n initialColumns: [\n {\n id: 'SUBMITTED_AT',\n headerText: 'Submission Date Time',\n sorting: {\n property: 'dateTimeSubmitted',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'dateTimeSubmitted',\n )?.direction,\n },\n filter: {\n type: 'DATETIME',\n value: parameters.filters?.dateTimeSubmitted as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n dateTimeSubmitted: newValue,\n },\n }),\n false,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => {\n const text = format(\n new Date(formStoreRecord.dateTimeSubmitted),\n localisationService.getDateFnsFormats().longDateTime,\n )\n return (\n <>\n {text}\n <TableCellCopyButton text={text} />\n </>\n )\n },\n },\n {\n id: 'SUBMITTED_BY',\n headerText: 'Submitted By',\n sorting: undefined,\n filter: {\n type: 'TEXT',\n value: parameters.filters?.submittedBy as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n submittedBy: newValue,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <ActionedByTableCell\n userProfile={formStoreRecord.user}\n developerKey={formStoreRecord.key}\n variant=\"outlined\"\n />\n ),\n },\n {\n id: 'SUBMISSION_ID',\n headerText: 'Submission Id',\n sorting: undefined,\n filter: {\n type: 'SUBMISSION_ID',\n value: parameters.filters?.submissionId as\n | { $eq: string }\n | undefined,\n validationMessage: submissionIdValidationMessage,\n isInvalid: !!submissionIdValidationMessage,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n submissionId: newValue,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.submissionId}\n <TableCellCopyButton text={formStoreRecord.submissionId} />\n </>\n ),\n },\n {\n id: 'EXTERNAL_ID',\n headerText: 'External Id',\n sorting: {\n property: 'externalId',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'externalId',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.externalId as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n externalId: newValue,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.externalId}\n {formStoreRecord.externalId && (\n <TableCellCopyButton text={formStoreRecord.externalId} />\n )}\n </>\n ),\n },\n {\n id: 'TASK_GROUP',\n headerText: 'Task Group',\n sorting: {\n property: 'taskGroup.name',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'taskGroup.name',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.taskGroup?.name as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n taskGroup: newValue\n ? {\n name: newValue,\n }\n : undefined,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.taskGroup?.name}\n {formStoreRecord.taskGroup?.name && (\n <TableCellCopyButton text={formStoreRecord.taskGroup?.name} />\n )}\n </>\n ),\n },\n {\n id: 'TASK_GROUP_INSTANCE',\n headerText: 'Task Group Instance',\n sorting: {\n property: 'taskGroupInstance.label',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'taskGroupInstance.label',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.taskGroupInstance?.label as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n taskGroupInstance: newValue\n ? {\n label: newValue,\n }\n : undefined,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.taskGroupInstance?.label}\n {formStoreRecord.taskGroupInstance?.label && (\n <TableCellCopyButton\n text={formStoreRecord.taskGroupInstance?.label}\n />\n )}\n </>\n ),\n },\n {\n id: 'TASK',\n headerText: 'Task',\n sorting: {\n property: 'task.name',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'task.name',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.task?.name as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n task: newValue\n ? {\n name: newValue,\n }\n : undefined,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.task?.name}\n {formStoreRecord.task?.name && (\n <TableCellCopyButton text={formStoreRecord.task?.name} />\n )}\n </>\n ),\n },\n {\n id: 'TASK_ACTION',\n headerText: 'Task Action',\n sorting: {\n property: 'taskAction.label',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'taskAction.label',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.taskAction?.label as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n taskAction: newValue\n ? {\n label: newValue,\n }\n : undefined,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.taskAction?.label}\n {formStoreRecord.taskAction?.label && (\n <TableCellCopyButton text={formStoreRecord.taskAction?.label} />\n )}\n </>\n ),\n },\n ],\n })\n }, [\n formElements,\n onChangeParameters,\n parameters,\n submissionIdValidationMessage,\n ])\n\n const [initialState] = React.useState<Partial<TableState<FormStoreRecord>>>(\n () => {\n const text = localStorage.getItem(localStorageKey(form.id))\n if (text) {\n return JSON.parse(text)\n }\n },\n )\n\n const table = useTable(\n {\n columns,\n data: formStoreRecords,\n defaultColumn,\n autoResetHiddenColumns: false,\n autoResetResize: false,\n initialState: initialState\n ? initialState\n : {\n hiddenColumns: [\n 'SUBMISSION_ID',\n 'EXTERNAL_ID',\n 'TASK',\n 'TASK_ACTION',\n 'TASK_GROUP',\n 'TASK_GROUP_INSTANCE',\n ],\n },\n },\n useFlexLayout,\n useResizeColumns,\n )\n\n React.useEffect(() => {\n if (!table.state.columnResizing.isResizingColumn) {\n localStorage.setItem(\n localStorageKey(form.id),\n JSON.stringify(table.state),\n )\n }\n }, [form.id, table.state])\n\n return {\n ...table,\n form,\n parameters,\n onChangeParameters,\n onRefresh,\n submissionIdValidationMessage,\n } as const\n}\n"]}
1
+ {"version":3,"file":"useFormStoreTable.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/useFormStoreTable.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { FormStoreRecord } from '@oneblink/types/typescript/submissions'\nimport {\n CellProps,\n useFlexLayout,\n useResizeColumns,\n useTable,\n} from 'react-table'\nimport { format } from 'date-fns'\nimport generateColumns from './generateColumns'\nimport ActionedByTableCell from './ActionedByTableCell'\nimport TableCellCopyButton from './TableCellCopyButton'\nimport { FormTypes } from '@oneblink/types'\nimport { OnChangeFilters } from '../../../hooks/useInfiniteScrollDataLoad'\nimport { formStoreService, localisationService } from '@oneblink/apps'\nimport { FormStoreElementsContext } from '../OneBlinkFormStoreProvider'\nimport getVersionedFormTableState, {\n defaultHiddenColumns,\n FormTableState,\n} from './getVersionedState'\n\nconst defaultColumn = {\n minWidth: 150,\n width: 225,\n}\n\nconst localStorageKey = (formId: number) =>\n `REACT_TABLE_STATE_FORM_STORE_${formId}`\n\nexport default function useFormStoreTable({\n form,\n formStoreRecords,\n parameters,\n onChangeParameters,\n onRefresh,\n submissionIdValidationMessage,\n}: {\n formStoreRecords: FormStoreRecord[]\n form: FormTypes.Form\n parameters: formStoreService.FormStoreParameters\n onChangeParameters: OnChangeFilters<formStoreService.FormStoreParameters>\n onRefresh: () => void\n submissionIdValidationMessage?: string\n}) {\n // Resets parameters on form change\n React.useEffect(() => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: undefined,\n sorting: [\n {\n property: 'dateTimeSubmitted',\n direction: 'descending',\n },\n ],\n }),\n false,\n )\n }, [form, onChangeParameters])\n\n const formElements = React.useContext(FormStoreElementsContext)\n const columns = React.useMemo(() => {\n return generateColumns({\n sorting: parameters.sorting,\n filters: parameters.filters,\n unwindRepeatableSets: parameters.unwindRepeatableSets,\n formElements,\n parentElementNames: [],\n onChangeParameters,\n allowCopy: true,\n initialColumns: [\n {\n id: 'SUBMITTED_AT',\n headerText: 'Submission Date Time',\n sorting: {\n property: 'dateTimeSubmitted',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'dateTimeSubmitted',\n )?.direction,\n },\n filter: {\n type: 'DATETIME',\n value: parameters.filters?.dateTimeSubmitted as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n dateTimeSubmitted: newValue,\n },\n }),\n false,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => {\n const text = format(\n new Date(formStoreRecord.dateTimeSubmitted),\n localisationService.getDateFnsFormats().longDateTime,\n )\n return (\n <>\n {text}\n <TableCellCopyButton text={text} />\n </>\n )\n },\n },\n {\n id: 'SUBMITTED_BY',\n headerText: 'Submitted By',\n sorting: undefined,\n filter: {\n type: 'TEXT',\n value: parameters.filters?.submittedBy as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n submittedBy: newValue,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <ActionedByTableCell\n userProfile={formStoreRecord.user}\n developerKey={formStoreRecord.key}\n variant=\"outlined\"\n />\n ),\n },\n {\n id: 'SUBMISSION_ID',\n headerText: 'Submission Id',\n sorting: undefined,\n filter: {\n type: 'SUBMISSION_ID',\n value: parameters.filters?.submissionId as\n | { $eq: string }\n | undefined,\n validationMessage: submissionIdValidationMessage,\n isInvalid: !!submissionIdValidationMessage,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n submissionId: newValue,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.submissionId}\n <TableCellCopyButton text={formStoreRecord.submissionId} />\n </>\n ),\n },\n {\n id: 'EXTERNAL_ID',\n headerText: 'External Id',\n sorting: {\n property: 'externalId',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'externalId',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.externalId as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n externalId: newValue,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.externalId}\n {formStoreRecord.externalId && (\n <TableCellCopyButton text={formStoreRecord.externalId} />\n )}\n </>\n ),\n },\n {\n id: 'TASK_GROUP',\n headerText: 'Task Group',\n sorting: {\n property: 'taskGroup.name',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'taskGroup.name',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.taskGroup?.name as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n taskGroup: newValue\n ? {\n name: newValue,\n }\n : undefined,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.taskGroup?.name}\n {formStoreRecord.taskGroup?.name && (\n <TableCellCopyButton text={formStoreRecord.taskGroup?.name} />\n )}\n </>\n ),\n },\n {\n id: 'TASK_GROUP_INSTANCE',\n headerText: 'Task Group Instance',\n sorting: {\n property: 'taskGroupInstance.label',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'taskGroupInstance.label',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.taskGroupInstance?.label as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n taskGroupInstance: newValue\n ? {\n label: newValue,\n }\n : undefined,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.taskGroupInstance?.label}\n {formStoreRecord.taskGroupInstance?.label && (\n <TableCellCopyButton\n text={formStoreRecord.taskGroupInstance?.label}\n />\n )}\n </>\n ),\n },\n {\n id: 'TASK',\n headerText: 'Task',\n sorting: {\n property: 'task.name',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'task.name',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.task?.name as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n task: newValue\n ? {\n name: newValue,\n }\n : undefined,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.task?.name}\n {formStoreRecord.task?.name && (\n <TableCellCopyButton text={formStoreRecord.task?.name} />\n )}\n </>\n ),\n },\n {\n id: 'TASK_ACTION',\n headerText: 'Task Action',\n sorting: {\n property: 'taskAction.label',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'taskAction.label',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.taskAction?.label as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n taskAction: newValue\n ? {\n label: newValue,\n }\n : undefined,\n },\n }),\n true,\n )\n },\n },\n Cell: ({\n row: { original: formStoreRecord },\n }: CellProps<FormStoreRecord>) => (\n <>\n {formStoreRecord.taskAction?.label}\n {formStoreRecord.taskAction?.label && (\n <TableCellCopyButton text={formStoreRecord.taskAction?.label} />\n )}\n </>\n ),\n },\n ],\n })\n }, [\n formElements,\n onChangeParameters,\n parameters,\n submissionIdValidationMessage,\n ])\n\n const [initialState] = React.useState<FormTableState | undefined>(() => {\n const text = localStorage.getItem(localStorageKey(form.id))\n if (text) {\n return getVersionedFormTableState(JSON.parse(text))\n }\n })\n\n const table = useTable(\n {\n columns,\n data: formStoreRecords,\n defaultColumn,\n autoResetHiddenColumns: false,\n autoResetResize: false,\n initialState: initialState\n ? initialState\n : {\n hiddenColumns: defaultHiddenColumns,\n },\n },\n useFlexLayout,\n useResizeColumns,\n )\n\n React.useEffect(() => {\n if (!table.state.columnResizing.isResizingColumn) {\n localStorage.setItem(\n localStorageKey(form.id),\n JSON.stringify(table.state),\n )\n }\n }, [form.id, table.state])\n\n return {\n ...table,\n form,\n parameters,\n onChangeParameters,\n onRefresh,\n submissionIdValidationMessage,\n } as const\n}\n"]}
@@ -111,7 +111,7 @@ const FormElementSwitch = React.memo(function OneBlinkFormElement({ formId, elem
111
111
  }
112
112
  case 'date': {
113
113
  return (React.createElement(LookupNotification, { element: element, onLookup: onLookup },
114
- React.createElement(FormElementDate, { id: id, element: element, value: value, onChange: onChange, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, autocompleteAttributes: autocompleteAttributes, ...dirtyProps })));
114
+ React.createElement(FormElementDate, { id: id, element: element, value: value, onChange: onChange, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, ...dirtyProps })));
115
115
  }
116
116
  case 'email': {
117
117
  return (React.createElement(LookupNotification, { element: element, onLookup: onLookup },
@@ -171,11 +171,11 @@ const FormElementSwitch = React.memo(function OneBlinkFormElement({ formId, elem
171
171
  }
172
172
  case 'datetime': {
173
173
  return (React.createElement(LookupNotification, { element: element, onLookup: onLookup },
174
- React.createElement(FormElementDateTime, { id: id, element: element, value: value, onChange: onChange, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, autocompleteAttributes: autocompleteAttributes, ...dirtyProps })));
174
+ React.createElement(FormElementDateTime, { id: id, element: element, value: value, onChange: onChange, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, ...dirtyProps })));
175
175
  }
176
176
  case 'time': {
177
177
  return (React.createElement(LookupNotification, { element: element, onLookup: onLookup },
178
- React.createElement(FormElementTime, { id: id, element: element, value: value, onChange: onChange, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, autocompleteAttributes: autocompleteAttributes, ...dirtyProps })));
178
+ React.createElement(FormElementTime, { id: id, element: element, value: value, onChange: onChange, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, ...dirtyProps })));
179
179
  }
180
180
  case 'checkboxes': {
181
181
  return (React.createElement(LookupNotification, { element: element, onLookup: onLookup },