@oneblink/apps-react 1.0.0-beta.2 → 1.0.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 (79) hide show
  1. package/dist/components/CopyToClipboardIconButton.js +6 -15
  2. package/dist/components/CopyToClipboardIconButton.js.map +1 -1
  3. package/dist/components/CustomAccordion.d.ts +4 -4
  4. package/dist/components/CustomAccordion.js +29 -34
  5. package/dist/components/CustomAccordion.js.map +1 -1
  6. package/dist/components/ErrorSnackbar.d.ts +3 -3
  7. package/dist/components/ErrorSnackbar.js +22 -45
  8. package/dist/components/ErrorSnackbar.js.map +1 -1
  9. package/dist/components/Lists.d.ts +19 -4
  10. package/dist/components/Lists.js +40 -38
  11. package/dist/components/Lists.js.map +1 -1
  12. package/dist/components/formStore/FormStoreTableProvider.d.ts +6 -0
  13. package/dist/components/formStore/FormStoreTableProvider.js +86 -0
  14. package/dist/components/formStore/FormStoreTableProvider.js.map +1 -0
  15. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -0
  16. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +16 -0
  17. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -0
  18. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -0
  19. package/dist/components/formStore/{ColumnsConfigurationButton.js → OneBlinkFormStoreColumnsButton.js} +8 -4
  20. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js.map +1 -0
  21. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -0
  22. package/dist/components/formStore/{DownloadSubmissionDataButton.js → OneBlinkFormStoreDownloadButton.js} +8 -4
  23. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -0
  24. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +8 -0
  25. package/dist/components/formStore/OneBlinkFormStoreProvider.js +25 -0
  26. package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -0
  27. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -0
  28. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +12 -0
  29. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js.map +1 -0
  30. package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -0
  31. package/dist/components/formStore/OneBlinkFormStoreTable.js +184 -0
  32. package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -0
  33. package/dist/components/formStore/table/FormElementTableCell.js +28 -8
  34. package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
  35. package/dist/components/formStore/table/RepeatableSetCell.d.ts +0 -1
  36. package/dist/components/formStore/table/RepeatableSetCell.js +23 -25
  37. package/dist/components/formStore/table/RepeatableSetCell.js.map +1 -1
  38. package/dist/components/formStore/table/TableCellCopyButton.js +15 -18
  39. package/dist/components/formStore/table/TableCellCopyButton.js.map +1 -1
  40. package/dist/components/formStore/table/generateColumns.js.map +1 -1
  41. package/dist/components/formStore/table/useFormStoreTable.d.ts +43 -3
  42. package/dist/components/formStore/table/useFormStoreTable.js +11 -2
  43. package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
  44. package/dist/components/formStore/useFormStoreTableContext.d.ts +44 -0
  45. package/dist/components/formStore/useFormStoreTableContext.js +10 -0
  46. package/dist/components/formStore/useFormStoreTableContext.js.map +1 -0
  47. package/dist/components/{ErrorMessage.d.ts → messages/ErrorMessage.d.ts} +2 -3
  48. package/dist/components/{ErrorMessage.js → messages/ErrorMessage.js} +1 -1
  49. package/dist/components/messages/ErrorMessage.js.map +1 -0
  50. package/dist/components/messages/LargeIconMessage.d.ts +4 -3
  51. package/dist/components/messages/LargeIconMessage.js +31 -61
  52. package/dist/components/messages/LargeIconMessage.js.map +1 -1
  53. package/dist/components/{NoResourcesYet.d.ts → messages/NoResourcesYet.d.ts} +2 -3
  54. package/dist/components/{NoResourcesYet.js → messages/NoResourcesYet.js} +1 -1
  55. package/dist/components/messages/NoResourcesYet.js.map +1 -0
  56. package/dist/form-elements/FormElementDate.js +1 -1
  57. package/dist/form-elements/FormElementDate.js.map +1 -1
  58. package/dist/index.d.ts +6 -1
  59. package/dist/index.js +6 -1
  60. package/dist/index.js.map +1 -1
  61. package/package.json +7 -5
  62. package/dist/OneBlinkFormStoreView.d.ts +0 -8
  63. package/dist/OneBlinkFormStoreView.js +0 -55
  64. package/dist/OneBlinkFormStoreView.js.map +0 -1
  65. package/dist/components/ErrorMessage.js.map +0 -1
  66. package/dist/components/NoResourcesYet.js.map +0 -1
  67. package/dist/components/formStore/ColumnsConfigurationButton.d.ts +0 -10
  68. package/dist/components/formStore/ColumnsConfigurationButton.js.map +0 -1
  69. package/dist/components/formStore/DownloadSubmissionDataButton.d.ts +0 -13
  70. package/dist/components/formStore/DownloadSubmissionDataButton.js.map +0 -1
  71. package/dist/components/formStore/FormStore.d.ts +0 -9
  72. package/dist/components/formStore/FormStore.js +0 -103
  73. package/dist/components/formStore/FormStore.js.map +0 -1
  74. package/dist/components/formStore/table/index.d.ts +0 -17
  75. package/dist/components/formStore/table/index.js +0 -194
  76. package/dist/components/formStore/table/index.js.map +0 -1
  77. package/dist/hooks/useLegacyElements.d.ts +0 -16
  78. package/dist/hooks/useLegacyElements.js +0 -55
  79. package/dist/hooks/useLegacyElements.js.map +0 -1
@@ -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 { FormTypes, SubmissionTypes } 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'\n\ntype Props = {\n formElement: FormTypes.FormElement\n submission: SubmissionTypes.S3SubmissionData['submission'] | undefined\n allowCopy: boolean\n}\n\nconst {\n shortDate: shortDateFormat,\n time: timeFormat,\n shortDateTime: shortDateTimeFormat,\n} = localisationService.getDateFnsFormats()\n\nfunction FormElementTableCell({ formElement, submission, allowCopy }: Props) {\n if (formElement.type === 'page' || formElement.type === 'section') {\n return null\n }\n const value = submission?.[formElement.name]\n if (value === undefined || value === null) {\n return null\n }\n\n switch (formElement.type) {\n case 'repeatableSet': {\n return <RepeatableSetCell formElement={formElement} value={value} />\n }\n\n case 'location': {\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 <FileChip file={value} />\n }\n\n case 'textarea': {\n return (\n <>\n <span\n style={{\n whiteSpace: 'pre-line',\n }}\n >\n {value}\n </span>\n <TableCellCopyButton isHidden={!allowCopy} text={value} />\n </>\n )\n }\n\n case 'date': {\n const text = format(new Date(value), shortDateFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'time': {\n const text = format(new Date(value), timeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'datetime': {\n const text = format(new Date(value), shortDateTimeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'number': {\n const text = localisationService.formatNumber(value)\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 (!Array.isArray(value) || !value.length) {\n break\n }\n const text = value\n .map((selection) => getSelectedOptionLabel(formElement, selection))\n .join(', ')\n return (\n <>\n <MultiSelectFormElementTableCellContent\n value={value}\n formElement={formElement}\n />\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n } else {\n const text = getSelectedOptionLabel(formElement, value)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n }\n\n case 'email': {\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`mailto:${value}`}\n >\n {value}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={value} />\n </>\n )\n }\n case 'telephone': {\n return (\n <>\n <Link target=\"_blank\" rel=\"noopener noreferrer\" href={`tel:${value}`}>\n {value}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={value} />\n </>\n )\n }\n case 'text':\n case 'bsb':\n case 'barcodeScanner': {\n return (\n <>\n {value}\n <TableCellCopyButton isHidden={!allowCopy} text={value} />\n </>\n )\n }\n\n case 'files': {\n if (!Array.isArray(value) || !value.length) {\n break\n }\n return <FilesElementDataTableCellContent value={value} />\n }\n\n case 'calculation': {\n if (formElement.displayAsCurrency) {\n const text = localisationService.formatCurrency(value)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={value} />\n </>\n )\n } else {\n const text = localisationService.formatNumber(value)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={value} />\n </>\n )\n }\n }\n\n case 'civicaStreetName': {\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 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 fullAddress =\n value.addressDetails && value.addressDetails.formattedAddress ? (\n value.addressDetails.formattedAddress\n ) : (\n <>\n Geoscape Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton isHidden={!allowCopy} text={fullAddress} />\n </>\n )\n }\n\n case 'pointAddress': {\n const fullAddress =\n value.addressDetails && value.addressDetails.formattedAddress ? (\n value.addressDetails.formattedAddress\n ) : (\n <>\n NSW Point Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton isHidden={!allowCopy} text={fullAddress} />\n </>\n )\n }\n\n case 'boolean': {\n const text = value ? 'Yes' : 'No'\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'abn': {\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\n case 'html':\n case 'form':\n case 'infoPage':\n case 'captcha':\n case 'image':\n case 'heading':\n case 'summary': {\n break\n }\n\n default: {\n console.warn(\n 'Unsupported element type in Submission Data rendering',\n formElement,\n )\n }\n }\n\n return null\n}\n\nexport default React.memo(FormElementTableCell)\n"]}
1
+ {"version":3,"file":"FormElementTableCell.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/FormElementTableCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EACL,QAAQ,EACR,gCAAgC,EAChC,sCAAsC,EACtC,sBAAsB,GACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAWjC,MAAM,EACJ,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,mBAAmB,GACnC,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,CAAA;AAE3C,SAAS,oBAAoB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAS;;IACzE,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE;QACjE,OAAO,IAAI,CAAA;KACZ;IACD,MAAM,OAAO,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;QAC7C,OAAO,IAAI,CAAA;KACZ;IAED,QAAQ,WAAW,CAAC,IAAI,EAAE;QACxB,KAAK,eAAe,CAAC,CAAC;YACpB,OAAO,CACL,oBAAC,iBAAiB,IAChB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,OAAoC,GAC3C,CACH,CAAA;SACF;QAED,KAAK,UAAU,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,OAGb,CAAA;YACD,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACvC,MAAK;aACN;YAED,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAA;YACtD,OAAO,CACL;gBACE;oBACE,oBAAC,UAAU,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,GAAG;wBACzC,oBAAC,IAAI,IACH,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,IAAI,EAAE,8BAA8B,OAAO,EAAE,0BAGxC,CACI;oBACb,oBAAC,UAAU,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,GAAG,EAAC,KAAK,EAAC,eAAe;;wBACpD,KAAK,CAAC,QAAQ,CACd;oBACb,oBAAC,UAAU,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,GAAG,EAAC,KAAK,EAAC,eAAe;;wBACnD,KAAK,CAAC,SAAS,CAChB,CACT;gBACN,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,GAAI,CAC3D,CACJ,CAAA;SACF;QAED,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC,CAAC;YACX,OAAO,CACL,oBAAC,QAAQ,IACP,IAAI,EAAE,OAAwD,GAC9D,CACH,CAAA;SACF;QAED,KAAK,UAAU,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,OAAiB,CAAA;YAC/B,OAAO,CACL;gBACE,8BACE,KAAK,EAAE;wBACL,UAAU,EAAE,UAAU;qBACvB,IAEA,KAAK,CACD;gBACP,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,GAAI,CACzD,CACJ,CAAA;SACF;QAED,KAAK,MAAM,CAAC,CAAC;YACX,MAAM,KAAK,GAAG,OAAiB,CAAA;YAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,CAAA;YACrD,OAAO,CACL;gBACG,IAAI;gBACL,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,GAAI,CACxD,CACJ,CAAA;SACF;QAED,KAAK,MAAM,CAAC,CAAC;YACX,MAAM,KAAK,GAAG,OAAiB,CAAA;YAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAA;YAChD,OAAO,CACL;gBACG,IAAI;gBACL,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,GAAI,CACxD,CACJ,CAAA;SACF;QAED,KAAK,UAAU,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,OAAiB,CAAA;YAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,CAAA;YACzD,OAAO,CACL;gBACG,IAAI;gBACL,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,GAAI,CACxD,CACJ,CAAA;SACF;QAED,KAAK,QAAQ,CAAC,CAAC;YACb,MAAM,KAAK,GAAG,OAAiB,CAAA;YAC/B,MAAM,IAAI,GAAG,mBAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACpD,OAAO,CACL;gBACG,IAAI;gBACL,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,GAAI,CACxD,CACJ,CAAA;SACF;QAED,KAAK,OAAO,CAAC;QACb,KAAK,cAAc,CAAC;QACpB,KAAK,YAAY,CAAC;QAClB,KAAK,QAAQ,CAAC,CAAC;YACb,IACE,WAAW,CAAC,IAAI,KAAK,YAAY;gBACjC,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,EACpD;gBACA,MAAM,KAAK,GAAG,OAAiB,CAAA;gBAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBAC1C,MAAK;iBACN;gBACD,MAAM,IAAI,GAAG,KAAK;qBACf,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;qBAClE,IAAI,CAAC,IAAI,CAAC,CAAA;gBACb,OAAO,CACL;oBACE,oBAAC,sCAAsC,IACrC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,GACxB;oBACF,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,GAAI,CACxD,CACJ,CAAA;aACF;iBAAM;gBACL,MAAM,KAAK,GAAG,OAAiB,CAAA;gBAC/B,MAAM,IAAI,GAAG,sBAAsB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;gBACvD,OAAO,CACL;oBACG,IAAI;oBACL,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,GAAI,CACxD,CACJ,CAAA;aACF;SACF;QAED,KAAK,OAAO,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG,OAAiB,CAAA;YAC/B,OAAO,CACL;gBACE,oBAAC,IAAI,IACH,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,IAAI,EAAE,UAAU,KAAK,EAAE,IAEtB,KAAK,CACD;gBACP,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,GAAI,CACzD,CACJ,CAAA;SACF;QACD,KAAK,WAAW,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,OAAiB,CAAA;YAC/B,OAAO,CACL;gBACE,oBAAC,IAAI,IAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAC,IAAI,EAAE,OAAO,KAAK,EAAE,IACjE,KAAK,CACD;gBACP,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,GAAI,CACzD,CACJ,CAAA;SACF;QACD,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC;QACX,KAAK,gBAAgB,CAAC,CAAC;YACrB,MAAM,KAAK,GAAG,OAAiB,CAAA;YAC/B,OAAO,CACL;gBACG,KAAK;gBACN,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,GAAI,CACzD,CACJ,CAAA;SACF;QAED,KAAK,OAAO,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG,OAEJ,CAAA;YACV,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC1C,MAAK;aACN;YACD,OAAO,oBAAC,gCAAgC,IAAC,KAAK,EAAE,KAAK,GAAI,CAAA;SAC1D;QAED,KAAK,aAAa,CAAC,CAAC;YAClB,MAAM,KAAK,GAAG,OAAiB,CAAA;YAC/B,IAAI,WAAW,CAAC,iBAAiB,EAAE;gBACjC,MAAM,IAAI,GAAG,mBAAmB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;gBACtD,OAAO,CACL;oBACG,IAAI;oBACL,oBAAC,mBAAmB,IAClB,QAAQ,EAAE,CAAC,SAAS,EACpB,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,GACtB,CACD,CACJ,CAAA;aACF;iBAAM;gBACL,MAAM,IAAI,GAAG,mBAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;gBACpD,OAAO,CACL;oBACG,IAAI;oBACL,oBAAC,mBAAmB,IAClB,QAAQ,EAAE,CAAC,SAAS,EACpB,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,GACtB,CACD,CACJ,CAAA;aACF;SACF;QAED,KAAK,kBAAkB,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,OAEb,CAAA;YACD,OAAO,CACL;gBACG,KAAK,CAAC,eAAe;gBACtB,oBAAC,mBAAmB,IAClB,QAAQ,EAAE,CAAC,SAAS,EACpB,IAAI,EAAE,KAAK,CAAC,eAAe,GAC3B,CACD,CACJ,CAAA;SACF;QAED,KAAK,kBAAkB,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,OAKb,CAAA;YACD,MAAM,IAAI,GACR,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,CAAC;iBACjD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;iBAChB,IAAI,CAAC,GAAG,CAAC,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,CAAA,CAAA;YACrC,OAAO,CACL;gBACG,IAAI;gBACL,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,GAAI,CACxD,CACJ,CAAA;SACF;QAED,KAAK,iBAAiB,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,OAA0B,CAAA;YACxC,MAAM,WAAW,GAAG,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,0CAAE,gBAAgB,KAAI,CAC7D;;gBACuB,+BAAI,KAAK,CAAC,SAAS,CAAK,CAC5C,CACJ,CAAA;YACD,OAAO,CACL;gBACG,WAAW;gBACZ,oBAAC,mBAAmB,IAClB,QAAQ,EAAE,CAAC,SAAS,EACpB,IAAI,EAAE,WAAqB,GAC3B,CACD,CACJ,CAAA;SACF;QAED,KAAK,cAAc,CAAC,CAAC;YACnB,MAAM,KAAK,GAAG,OAAuB,CAAA;YACrC,MAAM,WAAW,GAAG,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,0CAAE,gBAAgB,KAAI,CAC7D;;gBACwB,+BAAI,KAAK,CAAC,SAAS,CAAK,CAC7C,CACJ,CAAA;YACD,OAAO,CACL;gBACG,WAAW;gBACZ,oBAAC,mBAAmB,IAClB,QAAQ,EAAE,CAAC,SAAS,EACpB,IAAI,EAAE,WAAqB,GAC3B,CACD,CACJ,CAAA;SACF;QAED,KAAK,SAAS,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,OAAkB,CAAA;YAChC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;YACjC,OAAO,CACL;gBACG,IAAI;gBACL,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,GAAI,CACxD,CACJ,CAAA;SACF;QAED,KAAK,KAAK,CAAC,CAAC;YACV,MAAM,KAAK,GAAG,OAAoB,CAAA;YAClC,MAAM,SAAS,GAAG,UAAU,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAA;YACjE,OAAO,CACL;gBACE,oBAAC,IAAI,IACH,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,IAAI,EAAE,4CAA4C,SAAS,EAAE;oBAE5D,SAAS;;oBAAI,GAAG;oBACjB,+BAAI,UAAU,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAK,CACtD;gBACP,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,GAAI,CAC7D,CACJ,CAAA;SACF;QAED,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC,CAAC;YACd,MAAK;SACN;QAED,OAAO,CAAC,CAAC;YACP,OAAO,CAAC,IAAI,CACV,uDAAuD,EACvD,WAAW,CACZ,CAAA;SACF;KACF;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { Link, Typography } from '@mui/material'\nimport { localisationService } from '@oneblink/apps'\nimport { FormTypes, SubmissionTypes } 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\nconst {\n shortDate: shortDateFormat,\n time: timeFormat,\n shortDateTime: shortDateTimeFormat,\n} = localisationService.getDateFnsFormats()\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 return (\n <RepeatableSetCell\n formElement={formElement}\n value={unknown as Record<string, unknown>[]}\n />\n )\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 const value = unknown as string\n return (\n <>\n <span\n style={{\n whiteSpace: 'pre-line',\n }}\n >\n {value}\n </span>\n <TableCellCopyButton isHidden={!allowCopy} text={value} />\n </>\n )\n }\n\n case 'date': {\n const value = unknown as string\n const text = format(new Date(value), shortDateFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'time': {\n const value = unknown as string\n const text = format(new Date(value), timeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'datetime': {\n const value = unknown as string\n const text = format(new Date(value), shortDateTimeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'number': {\n const value = unknown as number\n const text = localisationService.formatNumber(value)\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 const value = unknown as string\n if (!Array.isArray(value) || !value.length) {\n break\n }\n const text = value\n .map((selection) => getSelectedOptionLabel(formElement, selection))\n .join(', ')\n return (\n <>\n <MultiSelectFormElementTableCellContent\n value={value}\n formElement={formElement}\n />\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n } else {\n const value = unknown as string\n const text = getSelectedOptionLabel(formElement, value)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n }\n\n case 'email': {\n const value = unknown as string\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`mailto:${value}`}\n >\n {value}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={value} />\n </>\n )\n }\n case 'telephone': {\n const value = unknown as string\n return (\n <>\n <Link target=\"_blank\" rel=\"noopener noreferrer\" href={`tel:${value}`}>\n {value}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={value} />\n </>\n )\n }\n case 'text':\n case 'bsb':\n case 'barcodeScanner': {\n const value = unknown as string\n return (\n <>\n {value}\n <TableCellCopyButton isHidden={!allowCopy} text={value} />\n </>\n )\n }\n\n case 'files': {\n const value = unknown as React.ComponentProps<\n typeof FilesElementDataTableCellContent\n >['value']\n if (!Array.isArray(value) || !value.length) {\n break\n }\n return <FilesElementDataTableCellContent value={value} />\n }\n\n case 'calculation': {\n const value = unknown as number\n if (formElement.displayAsCurrency) {\n const text = localisationService.formatCurrency(value)\n return (\n <>\n {text}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={value.toString()}\n />\n </>\n )\n } else {\n const text = localisationService.formatNumber(value)\n return (\n <>\n {text}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={value.toString()}\n />\n </>\n )\n }\n }\n\n case 'civicaStreetName': {\n const value = unknown as {\n formattedStreet: string\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 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 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 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 'boolean': {\n const value = unknown as boolean\n const text = value ? '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 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\n case 'html':\n case 'form':\n case 'infoPage':\n case 'captcha':\n case 'image':\n case 'heading':\n case 'summary': {\n break\n }\n\n default: {\n console.warn(\n 'Unsupported element type in Submission Data rendering',\n formElement,\n )\n }\n }\n\n return null\n}\n\nexport default React.memo(FormElementTableCell)\n"]}
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
2
  import { FormTypes } from '@oneblink/types';
3
- export declare const useRepeatableSetCellStyles: (props?: any) => import("@mui/styles/withStyles").ClassNameMap<"divider" | "entriesWrapper" | "cellRowWrapper" | "cellValueWrapper">;
4
3
  declare type Props = {
5
4
  value: Array<Record<string, unknown>>;
6
5
  formElement: FormTypes.RepeatableSetElement;
@@ -1,31 +1,29 @@
1
1
  import * as React from 'react';
2
- import { Typography, Divider } from '@mui/material';
3
- import makeStyles from '@mui/styles/makeStyles';
2
+ import { Typography, Divider as MuiDivider, styled } from '@mui/material';
4
3
  import useBooleanState from '../../../hooks/useBooleanState';
5
4
  import generateColumns from './generateColumns';
6
5
  import { useTable } from 'react-table';
7
6
  import RepeatableSetCellAccordion from './RepeatableSetCellAccordion';
8
- export const useRepeatableSetCellStyles = makeStyles((theme) => {
9
- return {
10
- entriesWrapper: { width: '100%' },
11
- cellRowWrapper: {
12
- display: 'flex',
13
- alignItems: 'center',
14
- justifyContent: 'space-between',
15
- paddingBottom: theme.spacing(),
16
- width: '100%',
17
- },
18
- cellValueWrapper: {
19
- flex: 2,
20
- marginLeft: theme.spacing(),
21
- textAlign: 'right',
22
- width: '100%',
23
- },
24
- divider: { margin: theme.spacing(1, -2) },
25
- };
7
+ const Wrapper = styled('div')({
8
+ width: '100%',
26
9
  });
10
+ const CellRow = styled('div')(({ theme }) => ({
11
+ display: 'flex',
12
+ alignItems: 'center',
13
+ justifyContent: 'space-between',
14
+ paddingBottom: theme.spacing(),
15
+ width: '100%',
16
+ }));
17
+ const CellValue = styled('span')(({ theme }) => ({
18
+ flex: 2,
19
+ marginLeft: theme.spacing(),
20
+ textAlign: 'right',
21
+ width: '100%',
22
+ }));
23
+ const Divider = styled(MuiDivider)(({ theme }) => ({
24
+ margin: theme.spacing(1, -2),
25
+ }));
27
26
  const RepeatableSetCell = ({ formElement, value }) => {
28
- const classes = useRepeatableSetCellStyles();
29
27
  const [isVisible, , , toggleVisibility] = useBooleanState(false);
30
28
  const hasMultipleEntries = value.length > 1;
31
29
  const columns = React.useMemo(() => generateColumns({
@@ -41,7 +39,7 @@ const RepeatableSetCell = ({ formElement, value }) => {
41
39
  data: value.map((entry) => ({ submission: entry })),
42
40
  });
43
41
  return (React.createElement(RepeatableSetCellAccordion, { title: `${value.length} Entr${hasMultipleEntries ? 'ies' : 'y'}`, isOpen: isVisible, onChange: toggleVisibility },
44
- React.createElement("div", { className: classes.entriesWrapper }, rows.map((row, i) => {
42
+ React.createElement(Wrapper, null, rows.map((row, i) => {
45
43
  const isLast = i === rows.length - 1;
46
44
  prepareRow(row);
47
45
  return (React.createElement(React.Fragment, { key: row.id },
@@ -49,14 +47,14 @@ const RepeatableSetCell = ({ formElement, value }) => {
49
47
  const cellValue = cell.render('Cell');
50
48
  if (!cellValue)
51
49
  return null;
52
- return (React.createElement("div", { className: classes.cellRowWrapper, key: cell.column.id },
50
+ return (React.createElement(CellRow, { key: cell.column.id },
53
51
  React.createElement("span", null,
54
52
  React.createElement(Typography, { color: "textSecondary", variant: "body2" },
55
53
  cell.column.headerText,
56
54
  ":")),
57
- React.createElement("span", { className: classes.cellValueWrapper }, cellValue)));
55
+ React.createElement(CellValue, null, cellValue)));
58
56
  }),
59
- !isLast && React.createElement(Divider, { className: classes.divider })));
57
+ !isLast && React.createElement(Divider, null)));
60
58
  }))));
61
59
  };
62
60
  export default React.memo(RepeatableSetCell);
@@ -1 +1 @@
1
- {"version":3,"file":"RepeatableSetCell.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/RepeatableSetCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { Typography, Divider } from '@mui/material'\nimport makeStyles from '@mui/styles/makeStyles'\nimport { FormTypes } from '@oneblink/types'\nimport useBooleanState from '../../../hooks/useBooleanState'\nimport generateColumns from './generateColumns'\nimport { useTable } from 'react-table'\nimport RepeatableSetCellAccordion from './RepeatableSetCellAccordion'\n\nexport const useRepeatableSetCellStyles = makeStyles((theme) => {\n return {\n entriesWrapper: { width: '100%' },\n cellRowWrapper: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingBottom: theme.spacing(),\n width: '100%',\n },\n cellValueWrapper: {\n flex: 2,\n marginLeft: theme.spacing(),\n textAlign: 'right',\n width: '100%',\n },\n divider: { margin: theme.spacing(1, -2) },\n }\n})\n\ntype Props = {\n value: Array<Record<string, unknown>>\n formElement: FormTypes.RepeatableSetElement\n}\n\nconst RepeatableSetCell = ({ formElement, value }: Props) => {\n const classes = useRepeatableSetCellStyles()\n const [isVisible, , , toggleVisibility] = useBooleanState(false)\n const hasMultipleEntries = value.length > 1\n const columns = React.useMemo(\n () =>\n generateColumns({\n onChangeFilters: () => {},\n formElements: formElement.elements,\n parentElementNames: [],\n initialColumns: [],\n allowCopy: false,\n filters: {},\n }),\n [formElement.elements],\n )\n const { rows, prepareRow } = useTable({\n columns,\n data: value.map((entry) => ({ submission: entry })),\n })\n\n return (\n <RepeatableSetCellAccordion\n title={`${value.length} Entr${hasMultipleEntries ? 'ies' : 'y'}`}\n isOpen={isVisible}\n onChange={toggleVisibility}\n >\n <div className={classes.entriesWrapper}>\n {rows.map((row, i) => {\n const isLast = i === rows.length - 1\n prepareRow(row)\n return (\n <React.Fragment key={row.id}>\n {row.cells.map((cell) => {\n const cellValue = cell.render('Cell')\n if (!cellValue) return null\n return (\n <div className={classes.cellRowWrapper} key={cell.column.id}>\n <span>\n <Typography color=\"textSecondary\" variant=\"body2\">\n {cell.column.headerText}:\n </Typography>\n </span>\n <span className={classes.cellValueWrapper}>\n {cellValue}\n </span>\n </div>\n )\n })}\n {!isLast && <Divider className={classes.divider} />}\n </React.Fragment>\n )\n })}\n </div>\n </RepeatableSetCellAccordion>\n )\n}\n\nexport default React.memo<Props>(RepeatableSetCell)\n"]}
1
+ {"version":3,"file":"RepeatableSetCell.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/RepeatableSetCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { Typography, Divider as MuiDivider, styled } from '@mui/material'\nimport { FormTypes } from '@oneblink/types'\nimport useBooleanState from '../../../hooks/useBooleanState'\nimport generateColumns from './generateColumns'\nimport { useTable } from 'react-table'\nimport RepeatableSetCellAccordion from './RepeatableSetCellAccordion'\n\nconst Wrapper = styled('div')({\n width: '100%',\n})\nconst CellRow = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingBottom: theme.spacing(),\n width: '100%',\n}))\n\nconst CellValue = styled('span')(({ theme }) => ({\n flex: 2,\n marginLeft: theme.spacing(),\n textAlign: 'right',\n width: '100%',\n}))\n\nconst Divider = styled(MuiDivider)(({ theme }) => ({\n margin: theme.spacing(1, -2),\n}))\n\ntype Props = {\n value: Array<Record<string, unknown>>\n formElement: FormTypes.RepeatableSetElement\n}\n\nconst RepeatableSetCell = ({ formElement, value }: Props) => {\n const [isVisible, , , toggleVisibility] = useBooleanState(false)\n const hasMultipleEntries = value.length > 1\n const columns = React.useMemo(\n () =>\n generateColumns({\n onChangeFilters: () => {},\n formElements: formElement.elements,\n parentElementNames: [],\n initialColumns: [],\n allowCopy: false,\n filters: {},\n }),\n [formElement.elements],\n )\n const { rows, prepareRow } = useTable({\n columns,\n data: value.map((entry) => ({ submission: entry })),\n })\n\n return (\n <RepeatableSetCellAccordion\n title={`${value.length} Entr${hasMultipleEntries ? 'ies' : 'y'}`}\n isOpen={isVisible}\n onChange={toggleVisibility}\n >\n <Wrapper>\n {rows.map((row, i) => {\n const isLast = i === rows.length - 1\n prepareRow(row)\n return (\n <React.Fragment key={row.id}>\n {row.cells.map((cell) => {\n const cellValue = cell.render('Cell')\n if (!cellValue) return null\n return (\n <CellRow key={cell.column.id}>\n <span>\n <Typography color=\"textSecondary\" variant=\"body2\">\n {cell.column.headerText}:\n </Typography>\n </span>\n <CellValue>{cellValue}</CellValue>\n </CellRow>\n )\n })}\n {!isLast && <Divider />}\n </React.Fragment>\n )\n })}\n </Wrapper>\n </RepeatableSetCellAccordion>\n )\n}\n\nexport default React.memo<Props>(RepeatableSetCell)\n"]}
@@ -1,31 +1,28 @@
1
1
  import * as React from 'react';
2
2
  import { Zoom } from '@mui/material';
3
- import makeStyles from '@mui/styles/makeStyles';
4
3
  import CopyToClipboardIconButton from '../../CopyToClipboardIconButton';
5
4
  import { useIsHovering } from '../../../hooks/useIsHovering';
6
- const useStyles = makeStyles((theme) => ({
7
- iconButton: {
8
- backgroundColor: theme.palette.background.paper,
9
- '&:hover': {
10
- // Rough equivalent of the color created by transparency `rgba(0,0,0,0.04)` on white
11
- backgroundColor: '#f3f3f3',
12
- },
13
- },
14
- wrapper: {
15
- position: 'absolute',
16
- top: 0,
17
- right: 0,
18
- },
19
- }));
5
+ import { styled } from '@mui/material/styles';
20
6
  function TableCellCopyButton({ text, isHidden, }) {
21
- const classes = useStyles();
22
7
  const isHovering = useIsHovering();
23
8
  if (isHidden) {
24
9
  return null;
25
10
  }
26
11
  return (React.createElement(Zoom, { in: isHovering },
27
- React.createElement("span", { className: classes.wrapper },
28
- React.createElement(CopyToClipboardIconButton, { text: text, className: classes.iconButton }))));
12
+ React.createElement(StyledSpan, null,
13
+ React.createElement(StyledCopyToClipbaordButton, { text: text }))));
29
14
  }
15
+ const StyledSpan = styled('span')(() => ({
16
+ position: 'absolute',
17
+ top: 0,
18
+ right: 0,
19
+ }));
20
+ const StyledCopyToClipbaordButton = styled(CopyToClipboardIconButton)(({ theme }) => ({
21
+ backgroundColor: theme.palette.background.paper,
22
+ '&:hover': {
23
+ // Rough equivalent of the color created by transparency `rgba(0,0,0,0.04)` on white
24
+ backgroundColor: '#f3f3f3',
25
+ },
26
+ }));
30
27
  export default React.memo(TableCellCopyButton);
31
28
  //# sourceMappingURL=TableCellCopyButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableCellCopyButton.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/TableCellCopyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,yBAAyB,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvC,UAAU,EAAE;QACV,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;QAC/C,SAAS,EAAE;YACT,oFAAoF;YACpF,eAAe,EAAE,SAAS;SAC3B;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;KACT;CACF,CAAC,CAAC,CAAA;AAEH,SAAS,mBAAmB,CAAC,EAC3B,IAAI,EACJ,QAAQ,GAIT;IACC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,IAAI,QAAQ,EAAE;QACZ,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,CACL,oBAAC,IAAI,IAAC,EAAE,EAAE,UAAU;QAClB,8BAAM,SAAS,EAAE,OAAO,CAAC,OAAO;YAC9B,oBAAC,yBAAyB,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,GAAI,CACnE,CACF,CACR,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { Zoom } from '@mui/material'\nimport makeStyles from '@mui/styles/makeStyles'\nimport CopyToClipboardIconButton from '../../CopyToClipboardIconButton'\nimport { useIsHovering } from '../../../hooks/useIsHovering'\n\nconst useStyles = makeStyles((theme) => ({\n iconButton: {\n backgroundColor: theme.palette.background.paper,\n '&:hover': {\n // Rough equivalent of the color created by transparency `rgba(0,0,0,0.04)` on white\n backgroundColor: '#f3f3f3',\n },\n },\n wrapper: {\n position: 'absolute',\n top: 0,\n right: 0,\n },\n}))\n\nfunction TableCellCopyButton({\n text,\n isHidden,\n}: {\n text: string\n isHidden?: boolean\n}) {\n const classes = useStyles()\n const isHovering = useIsHovering()\n if (isHidden) {\n return null\n }\n return (\n <Zoom in={isHovering}>\n <span className={classes.wrapper}>\n <CopyToClipboardIconButton text={text} className={classes.iconButton} />\n </span>\n </Zoom>\n )\n}\n\nexport default React.memo(TableCellCopyButton)\n"]}
1
+ {"version":3,"file":"TableCellCopyButton.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/TableCellCopyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,yBAAyB,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,SAAS,mBAAmB,CAAC,EAC3B,IAAI,EACJ,QAAQ,GAIT;IACC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,IAAI,QAAQ,EAAE;QACZ,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,CACL,oBAAC,IAAI,IAAC,EAAE,EAAE,UAAU;QAClB,oBAAC,UAAU;YACT,oBAAC,2BAA2B,IAAC,IAAI,EAAE,IAAI,GAAI,CAChC,CACR,CACR,CAAA;AACH,CAAC;AAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACvC,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;CACT,CAAC,CAAC,CAAA;AAEH,MAAM,2BAA2B,GAAG,MAAM,CAAC,yBAAyB,CAAC,CACnE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACd,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;IAC/C,SAAS,EAAE;QACT,oFAAoF;QACpF,eAAe,EAAE,SAAS;KAC3B;CACF,CAAC,CACH,CAAA;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { Zoom } from '@mui/material'\nimport CopyToClipboardIconButton from '../../CopyToClipboardIconButton'\nimport { useIsHovering } from '../../../hooks/useIsHovering'\nimport { styled } from '@mui/material/styles'\n\nfunction TableCellCopyButton({\n text,\n isHidden,\n}: {\n text: string\n isHidden?: boolean\n}) {\n const isHovering = useIsHovering()\n if (isHidden) {\n return null\n }\n return (\n <Zoom in={isHovering}>\n <StyledSpan>\n <StyledCopyToClipbaordButton text={text} />\n </StyledSpan>\n </Zoom>\n )\n}\n\nconst StyledSpan = styled('span')(() => ({\n position: 'absolute',\n top: 0,\n right: 0,\n}))\n\nconst StyledCopyToClipbaordButton = styled(CopyToClipboardIconButton)(\n ({ theme }) => ({\n backgroundColor: theme.palette.background.paper,\n '&:hover': {\n // Rough equivalent of the color created by transparency `rgba(0,0,0,0.04)` on white\n backgroundColor: '#f3f3f3',\n },\n }),\n)\n\nexport default React.memo(TableCellCopyButton)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"generateColumns.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/generateColumns.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { FormStoreRecord } from '@oneblink/types/typescript/submissions'\nimport { Column as ColumnWithCell, CellProps } from 'react-table'\nimport { FormTypes, SubmissionTypes } from '@oneblink/types'\nimport FormElementTableCell from './FormElementTableCell'\nimport { formStoreService } from '@oneblink/apps'\nimport { OnChangeFilters } from '../../../hooks/useInfiniteScrollDataLoad'\n\nfunction generateSorting({\n formElement,\n parentElementNames,\n filters,\n}: {\n formElement: FormTypes.FormElementWithName\n parentElementNames: string[]\n filters: formStoreService.FormStoreFilters\n}) {\n switch (formElement.type) {\n case 'text':\n case 'textarea':\n case 'number':\n case 'email':\n case 'telephone':\n case 'barcodeScanner':\n case 'date':\n case 'datetime':\n case 'time':\n case 'calculation': {\n const sortProperty = [\n 'submission',\n ...parentElementNames,\n formElement.name,\n ].join('.')\n return {\n property: sortProperty,\n direction: filters.sorting?.find(\n ({ property }) => property === sortProperty,\n )?.direction,\n }\n }\n }\n}\n\nfunction generateFilter({\n formElement,\n onChangeFilters,\n rootSubmissionFilters,\n parentElementNames,\n}: {\n formElement: FormTypes.FormElementWithName\n onChangeFilters: OnChangeFilters<formStoreService.FormStoreFilters>\n rootSubmissionFilters: formStoreService.FormStoreFilters['submission']\n parentElementNames: string[]\n}): ColumnWithCell<Record<string, unknown>>['filter'] {\n function onChange<T>(\n newValue: formStoreService.FormStoreFilter<T> | undefined,\n shouldDebounce: boolean,\n ) {\n onChangeFilters((currentFilters) => {\n let newSubmission = {\n [formElement.name]: newValue,\n }\n\n if (parentElementNames.length) {\n const copy = [...parentElementNames]\n while (copy.length) {\n const nestedSubmission = copy.reduce<\n formStoreService.FormStoreFilters['submission']\n >(\n (memo, elementName) =>\n memo?.[\n elementName\n ] as formStoreService.FormStoreFilters['submission'],\n rootSubmissionFilters,\n )\n const elementName = copy.pop()\n if (elementName) {\n newSubmission = {\n [elementName]: {\n ...nestedSubmission,\n ...newSubmission,\n },\n }\n }\n }\n }\n\n return {\n ...currentFilters,\n submission: {\n ...currentFilters.submission,\n ...newSubmission,\n },\n } as formStoreService.FormStoreFilters\n }, shouldDebounce)\n }\n\n const submissionFilters = parentElementNames.reduce<\n formStoreService.FormStoreFilters['submission']\n >(\n (memo, elementName) =>\n memo?.[elementName] as formStoreService.FormStoreFilters['submission'],\n rootSubmissionFilters,\n )\n switch (formElement.type) {\n case 'text':\n case 'textarea':\n case 'email':\n case 'telephone':\n case 'barcodeScanner': {\n return {\n type: 'TEXT',\n value: submissionFilters?.[formElement.name] as\n | { $regex: string; $options?: string }\n | undefined,\n onChange,\n }\n }\n case 'number':\n case 'calculation': {\n return {\n type: 'NUMBER',\n value: submissionFilters?.[formElement.name] as\n | { $gte?: number; $lte?: number }\n | undefined,\n onChange,\n }\n }\n case 'checkboxes':\n case 'select':\n case 'radio':\n case 'autocomplete': {\n const value = submissionFilters?.[formElement.name]\n if (Array.isArray(formElement.options)) {\n if (\n (formElement.type === 'select' && formElement.multi) ||\n formElement.type === 'checkboxes'\n ) {\n return {\n type: 'OPTIONS_MULTIPLE',\n value: value as { $elemMatch: { $in: string[] } } | undefined,\n options: formElement.options,\n onChange,\n }\n } else {\n return {\n type: 'OPTIONS_SINGLE',\n value: value as { $in: string[] } | undefined,\n options: formElement.options,\n onChange,\n }\n }\n } else {\n return {\n type: 'TEXT',\n value: value as { $regex: string } | undefined,\n onChange,\n }\n }\n }\n case 'boolean':\n return {\n type: 'BOOLEAN',\n value: submissionFilters?.[formElement.name] as\n | { $eq: boolean }\n | undefined,\n onChange,\n }\n case 'date': {\n return {\n type: 'DATE',\n value: submissionFilters?.[formElement.name] as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange,\n }\n }\n case 'datetime':\n return {\n type: 'DATETIME',\n value: submissionFilters?.[formElement.name] as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange,\n }\n default: {\n return undefined\n }\n }\n}\n\nconst generateColumns = <\n T extends { submission: FormStoreRecord['submission'] },\n>({\n formElements,\n onChangeFilters,\n filters,\n parentElementNames,\n initialColumns,\n allowCopy,\n}: {\n formElements: (FormTypes.FormElement & { tooltip?: string })[]\n onChangeFilters: OnChangeFilters<formStoreService.FormStoreFilters>\n filters: formStoreService.FormStoreFilters\n parentElementNames: string[]\n initialColumns: Array<ColumnWithCell<T>>\n allowCopy: boolean\n}) => {\n return formElements.reduce<Array<ColumnWithCell<T>>>(\n (columns, formElement) => {\n switch (formElement.type) {\n case 'page':\n case 'section': {\n generateColumns({\n onChangeFilters,\n formElements: formElement.elements,\n parentElementNames,\n filters,\n initialColumns: columns,\n allowCopy,\n })\n break\n }\n case 'form': {\n if (formElement.elements) {\n generateColumns({\n onChangeFilters,\n formElements: formElement.elements,\n parentElementNames: [...parentElementNames, formElement.name],\n initialColumns: columns,\n filters,\n allowCopy,\n })\n }\n break\n }\n case 'compliance': {\n generateColumns({\n onChangeFilters,\n formElements: [\n {\n ...formElement,\n tooltip: formElement.name,\n type: 'radio',\n name: 'value',\n buttons: false,\n },\n {\n ...formElement,\n tooltip: `${formElement.name}_notes`,\n type: 'textarea',\n name: 'notes',\n label: `${formElement.label} (Notes)`,\n },\n {\n ...formElement,\n tooltip: `${formElement.name}_media`,\n type: 'files',\n restrictFileTypes: false,\n name: 'files',\n label: `${formElement.label} (Media)`,\n },\n ],\n parentElementNames: [...parentElementNames, formElement.name],\n initialColumns: columns,\n filters,\n allowCopy,\n })\n break\n }\n case 'summary':\n case 'captcha':\n case 'html':\n case 'heading':\n case 'infoPage':\n case 'image': {\n break\n }\n default: {\n columns.push({\n id: ['FORM_ELEMENT', ...parentElementNames, formElement.name].join(\n '_',\n ),\n sorting: generateSorting({\n formElement,\n filters,\n parentElementNames,\n }),\n headerText: formElement.label,\n tooltip: formElement.tooltip || formElement.name,\n filter: generateFilter({\n parentElementNames,\n formElement,\n onChangeFilters,\n rootSubmissionFilters: filters.submission,\n }),\n Cell: ({ row: { original: formStoreRecord } }: CellProps<T>) => {\n const submission = parentElementNames.reduce<\n SubmissionTypes.S3SubmissionData['submission']\n >(\n (memo, elementName) => memo?.[elementName],\n formStoreRecord.submission,\n )\n return (\n <FormElementTableCell\n formElement={formElement}\n submission={submission}\n allowCopy={allowCopy}\n />\n )\n },\n })\n break\n }\n }\n return columns\n },\n initialColumns,\n )\n}\n\nexport default generateColumns\n"]}
1
+ {"version":3,"file":"generateColumns.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/generateColumns.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { FormStoreRecord } from '@oneblink/types/typescript/submissions'\nimport { Column as ColumnWithCell, CellProps } from 'react-table'\nimport { FormTypes, SubmissionTypes } from '@oneblink/types'\nimport FormElementTableCell from './FormElementTableCell'\nimport { formStoreService } from '@oneblink/apps'\nimport { OnChangeFilters } from '../../../hooks/useInfiniteScrollDataLoad'\n\nfunction generateSorting({\n formElement,\n parentElementNames,\n filters,\n}: {\n formElement: FormTypes.FormElementWithName\n parentElementNames: string[]\n filters: formStoreService.FormStoreFilters\n}) {\n switch (formElement.type) {\n case 'text':\n case 'textarea':\n case 'number':\n case 'email':\n case 'telephone':\n case 'barcodeScanner':\n case 'date':\n case 'datetime':\n case 'time':\n case 'calculation': {\n const sortProperty = [\n 'submission',\n ...parentElementNames,\n formElement.name,\n ].join('.')\n return {\n property: sortProperty,\n direction: filters.sorting?.find(\n ({ property }) => property === sortProperty,\n )?.direction,\n }\n }\n }\n}\n\nfunction generateFilter({\n formElement,\n onChangeFilters,\n rootSubmissionFilters,\n parentElementNames,\n}: {\n formElement: FormTypes.FormElementWithName\n onChangeFilters: OnChangeFilters<formStoreService.FormStoreFilters>\n rootSubmissionFilters: formStoreService.FormStoreFilters['submission']\n parentElementNames: string[]\n}): ColumnWithCell<Record<string, unknown>>['filter'] {\n function onChange<T>(\n newValue: formStoreService.FormStoreFilter<T> | undefined,\n shouldDebounce: boolean,\n ) {\n onChangeFilters((currentFilters) => {\n let newSubmission = {\n [formElement.name]: newValue,\n }\n\n if (parentElementNames.length) {\n const copy = [...parentElementNames]\n while (copy.length) {\n const nestedSubmission = copy.reduce<\n formStoreService.FormStoreFilters['submission']\n >(\n (memo, elementName) =>\n memo?.[\n elementName\n ] as formStoreService.FormStoreFilters['submission'],\n rootSubmissionFilters,\n )\n const elementName = copy.pop()\n if (elementName) {\n newSubmission = {\n [elementName]: {\n ...nestedSubmission,\n ...newSubmission,\n },\n }\n }\n }\n }\n\n return {\n ...currentFilters,\n submission: {\n ...currentFilters.submission,\n ...newSubmission,\n },\n } as formStoreService.FormStoreFilters\n }, shouldDebounce)\n }\n\n const submissionFilters = parentElementNames.reduce<\n formStoreService.FormStoreFilters['submission']\n >(\n (memo, elementName) =>\n memo?.[elementName] as formStoreService.FormStoreFilters['submission'],\n rootSubmissionFilters,\n )\n switch (formElement.type) {\n case 'text':\n case 'textarea':\n case 'email':\n case 'telephone':\n case 'barcodeScanner': {\n return {\n type: 'TEXT',\n value: submissionFilters?.[formElement.name] as\n | { $regex: string; $options?: string }\n | undefined,\n onChange,\n }\n }\n case 'number':\n case 'calculation': {\n return {\n type: 'NUMBER',\n value: submissionFilters?.[formElement.name] as\n | { $gte?: number; $lte?: number }\n | undefined,\n onChange,\n }\n }\n case 'checkboxes':\n case 'select':\n case 'radio':\n case 'autocomplete': {\n const value = submissionFilters?.[formElement.name]\n if (Array.isArray(formElement.options)) {\n if (\n (formElement.type === 'select' && formElement.multi) ||\n formElement.type === 'checkboxes'\n ) {\n return {\n type: 'OPTIONS_MULTIPLE',\n value: value as { $elemMatch: { $in: string[] } } | undefined,\n options: formElement.options,\n onChange,\n }\n } else {\n return {\n type: 'OPTIONS_SINGLE',\n value: value as { $in: string[] } | undefined,\n options: formElement.options,\n onChange,\n }\n }\n } else {\n return {\n type: 'TEXT',\n value: value as { $regex: string } | undefined,\n onChange,\n }\n }\n }\n case 'boolean':\n return {\n type: 'BOOLEAN',\n value: submissionFilters?.[formElement.name] as\n | { $eq: boolean }\n | undefined,\n onChange,\n }\n case 'date': {\n return {\n type: 'DATE',\n value: submissionFilters?.[formElement.name] as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange,\n }\n }\n case 'datetime':\n return {\n type: 'DATETIME',\n value: submissionFilters?.[formElement.name] as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange,\n }\n default: {\n return undefined\n }\n }\n}\n\nconst generateColumns = <\n T extends { submission: FormStoreRecord['submission'] },\n>({\n formElements,\n onChangeFilters,\n filters,\n parentElementNames,\n initialColumns,\n allowCopy,\n}: {\n formElements: (FormTypes.FormElement & { tooltip?: string })[]\n onChangeFilters: OnChangeFilters<formStoreService.FormStoreFilters>\n filters: formStoreService.FormStoreFilters\n parentElementNames: string[]\n initialColumns: Array<ColumnWithCell<T>>\n allowCopy: boolean\n}) => {\n return formElements.reduce<Array<ColumnWithCell<T>>>(\n (columns, formElement) => {\n switch (formElement.type) {\n case 'page':\n case 'section': {\n generateColumns({\n onChangeFilters,\n formElements: formElement.elements,\n parentElementNames,\n filters,\n initialColumns: columns,\n allowCopy,\n })\n break\n }\n case 'form': {\n if (formElement.elements) {\n generateColumns({\n onChangeFilters,\n formElements: formElement.elements,\n parentElementNames: [...parentElementNames, formElement.name],\n initialColumns: columns,\n filters,\n allowCopy,\n })\n }\n break\n }\n case 'compliance': {\n generateColumns({\n onChangeFilters,\n formElements: [\n {\n ...formElement,\n tooltip: formElement.name,\n type: 'radio',\n name: 'value',\n buttons: false,\n },\n {\n ...formElement,\n tooltip: `${formElement.name}_notes`,\n type: 'textarea',\n name: 'notes',\n label: `${formElement.label} (Notes)`,\n },\n {\n ...formElement,\n tooltip: `${formElement.name}_media`,\n type: 'files',\n restrictFileTypes: false,\n name: 'files',\n label: `${formElement.label} (Media)`,\n },\n ],\n parentElementNames: [...parentElementNames, formElement.name],\n initialColumns: columns,\n filters,\n allowCopy,\n })\n break\n }\n case 'summary':\n case 'captcha':\n case 'html':\n case 'heading':\n case 'infoPage':\n case 'image': {\n break\n }\n default: {\n columns.push({\n id: ['FORM_ELEMENT', ...parentElementNames, formElement.name].join(\n '_',\n ),\n sorting: generateSorting({\n formElement,\n filters,\n parentElementNames,\n }),\n headerText: formElement.label,\n tooltip: formElement.tooltip || formElement.name,\n filter: generateFilter({\n parentElementNames,\n formElement,\n onChangeFilters,\n rootSubmissionFilters: filters.submission,\n }),\n Cell: ({ row: { original: formStoreRecord } }: CellProps<T>) => {\n const submission = parentElementNames.reduce<\n SubmissionTypes.S3SubmissionData['submission']\n >(\n (memo, elementName) =>\n memo?.[elementName] as FormStoreRecord['submission'],\n formStoreRecord.submission,\n )\n return (\n <FormElementTableCell\n formElement={formElement}\n submission={submission}\n allowCopy={allowCopy}\n />\n )\n },\n })\n break\n }\n }\n return columns\n },\n initialColumns,\n )\n}\n\nexport default generateColumns\n"]}
@@ -1,12 +1,52 @@
1
1
  import { FormStoreRecord } from '@oneblink/types/typescript/submissions';
2
+ import { TableState } from 'react-table';
2
3
  import { FormTypes } from '@oneblink/types';
3
4
  import { OnChangeFilters } from '../../../hooks/useInfiniteScrollDataLoad';
4
5
  import { formStoreService } from '@oneblink/apps';
5
- export default function FormStoreTable({ form, formElements, formStoreRecords, filters, onChangeFilters, submissionIdValidationMessage, }: {
6
+ export default function useFormStoreTable({ form, formStoreRecords, filters, onChangeFilters, onRefresh, submissionIdValidationMessage, }: {
6
7
  formStoreRecords: FormStoreRecord[];
7
8
  form: FormTypes.Form;
8
- formElements: FormTypes.FormElementWithName[];
9
9
  filters: formStoreService.FormStoreFilters;
10
10
  onChangeFilters: OnChangeFilters<formStoreService.FormStoreFilters>;
11
+ onRefresh: () => void;
11
12
  submissionIdValidationMessage?: string;
12
- }): import("react-table").TableInstance<FormStoreRecord>;
13
+ }): {
14
+ form: FormTypes.Form;
15
+ filters: formStoreService.FormStoreFilters;
16
+ onChangeFilters: OnChangeFilters<formStoreService.FormStoreFilters>;
17
+ onRefresh: () => void;
18
+ submissionIdValidationMessage: string | undefined;
19
+ data: readonly FormStoreRecord[];
20
+ initialState?: Partial<TableState<FormStoreRecord>> | undefined;
21
+ stateReducer?: ((newState: TableState<FormStoreRecord>, action: import("react-table").ActionType, previousState: TableState<FormStoreRecord>, instance?: import("react-table").TableInstance<FormStoreRecord> | undefined) => TableState<FormStoreRecord>) | undefined;
22
+ useControlledState?: ((state: TableState<FormStoreRecord>, meta: import("react-table").MetaBase<FormStoreRecord>) => TableState<FormStoreRecord>) | undefined;
23
+ defaultColumn?: Partial<import("react-table").Column<FormStoreRecord>> | undefined;
24
+ getSubRows?: ((originalRow: FormStoreRecord, relativeIndex: number) => FormStoreRecord[]) | undefined;
25
+ getRowId?: ((originalRow: FormStoreRecord, relativeIndex: number, parent?: import("react-table").Row<FormStoreRecord> | undefined) => string) | undefined;
26
+ autoResetHiddenColumns?: boolean | undefined;
27
+ disableResizing?: boolean | undefined;
28
+ autoResetResize?: boolean | undefined;
29
+ state: TableState<FormStoreRecord>;
30
+ plugins: import("react-table").PluginHook<FormStoreRecord>[];
31
+ dispatch: import("react-table").TableDispatch<any>;
32
+ columns: import("react-table").ColumnInstance<FormStoreRecord>[];
33
+ allColumns: import("react-table").ColumnInstance<FormStoreRecord>[];
34
+ visibleColumns: import("react-table").ColumnInstance<FormStoreRecord>[];
35
+ headerGroups: import("react-table").HeaderGroup<FormStoreRecord>[];
36
+ footerGroups: import("react-table").HeaderGroup<FormStoreRecord>[];
37
+ headers: import("react-table").ColumnInstance<FormStoreRecord>[];
38
+ flatHeaders: import("react-table").ColumnInstance<FormStoreRecord>[];
39
+ rows: import("react-table").Row<FormStoreRecord>[];
40
+ rowsById: Record<string, import("react-table").Row<FormStoreRecord>>;
41
+ getTableProps: (propGetter?: import("react-table").TablePropGetter<FormStoreRecord> | undefined) => import("react-table").TableProps;
42
+ getTableBodyProps: (propGetter?: import("react-table").TableBodyPropGetter<FormStoreRecord> | undefined) => import("react-table").TableBodyProps;
43
+ prepareRow: (row: import("react-table").Row<FormStoreRecord>) => void;
44
+ flatRows: import("react-table").Row<FormStoreRecord>[];
45
+ totalColumnsWidth: number;
46
+ allColumnsHidden: boolean;
47
+ toggleHideColumn: (columnId: string, value?: boolean | undefined) => void;
48
+ setHiddenColumns: (param: string[] | ((oldHidden: string[]) => string[])) => void;
49
+ toggleHideAllColumns: (value?: boolean | undefined) => void;
50
+ getToggleHideAllColumnsProps: (props?: Partial<import("react-table").TableToggleHideAllColumnProps> | undefined) => import("react-table").TableToggleHideAllColumnProps;
51
+ getHooks: () => import("react-table").Hooks<FormStoreRecord>;
52
+ };
@@ -5,12 +5,14 @@ import generateColumns from './generateColumns';
5
5
  import ActionedByTableCell from './ActionedByTableCell';
6
6
  import TableCellCopyButton from './TableCellCopyButton';
7
7
  import { localisationService } from '@oneblink/apps';
8
+ import { FormStoreElementsContext } from '../OneBlinkFormStoreProvider';
8
9
  const defaultColumn = {
9
10
  minWidth: 150,
10
11
  width: 225,
11
12
  };
12
13
  const localStorageKey = (formId) => `REACT_TABLE_STATE_FORM_STORE_${formId}`;
13
- export default function FormStoreTable({ form, formElements, formStoreRecords, filters, onChangeFilters, submissionIdValidationMessage, }) {
14
+ export default function useFormStoreTable({ form, formStoreRecords, filters, onChangeFilters, onRefresh, submissionIdValidationMessage, }) {
15
+ const formElements = React.useContext(FormStoreElementsContext);
14
16
  const columns = React.useMemo(() => {
15
17
  var _a, _b, _c, _d;
16
18
  return generateColumns({
@@ -125,6 +127,13 @@ export default function FormStoreTable({ form, formElements, formStoreRecords, f
125
127
  localStorage.setItem(localStorageKey(form.id), JSON.stringify(table.state));
126
128
  }
127
129
  }, [form.id, table.state]);
128
- return table;
130
+ return {
131
+ ...table,
132
+ form,
133
+ filters,
134
+ onChangeFilters,
135
+ onRefresh,
136
+ submissionIdValidationMessage,
137
+ };
129
138
  }
130
139
  //# sourceMappingURL=useFormStoreTable.js.map
@@ -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'\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 FormStoreTable({\n form,\n formElements,\n formStoreRecords,\n filters,\n onChangeFilters,\n submissionIdValidationMessage,\n}: {\n formStoreRecords: FormStoreRecord[]\n form: FormTypes.Form\n formElements: FormTypes.FormElementWithName[]\n filters: formStoreService.FormStoreFilters\n onChangeFilters: OnChangeFilters<formStoreService.FormStoreFilters>\n submissionIdValidationMessage?: string\n}) {\n const columns = React.useMemo(() => {\n return generateColumns({\n formElements,\n filters,\n parentElementNames: [],\n onChangeFilters,\n allowCopy: true,\n initialColumns: [\n {\n id: 'SUBMITTED_AT',\n headerText: 'Submission Date Time',\n sorting: {\n property: 'dateTimeSubmitted',\n direction: filters.sorting?.find(\n ({ property }) => property === 'dateTimeSubmitted',\n )?.direction,\n },\n filter: {\n type: 'DATETIME',\n value: filters.dateTimeSubmitted as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange: (newValue) => {\n onChangeFilters(\n (currentFilters) => ({\n ...currentFilters,\n dateTimeSubmitted: newValue,\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: filters.submittedBy as { $regex: string } | undefined,\n onChange: (newValue) => {\n onChangeFilters(\n (currentFilters) => ({\n ...currentFilters,\n submittedBy: newValue,\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: filters.submissionId as { $eq: string } | undefined,\n validationMessage: submissionIdValidationMessage,\n isInvalid: !!submissionIdValidationMessage,\n onChange: (newValue) => {\n onChangeFilters(\n (currentFilters) => ({\n ...currentFilters,\n submissionId: newValue,\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: filters.sorting?.find(\n ({ property }) => property === 'externalId',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: filters.externalId as { $regex: string } | undefined,\n onChange: (newValue) => {\n onChangeFilters(\n (currentFilters) => ({\n ...currentFilters,\n externalId: newValue,\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 })\n }, [filters, formElements, onChangeFilters, submissionIdValidationMessage])\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 : { hiddenColumns: ['SUBMISSION_ID', 'EXTERNAL_ID'] },\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 table\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 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 filters,\n onChangeFilters,\n onRefresh,\n submissionIdValidationMessage,\n}: {\n formStoreRecords: FormStoreRecord[]\n form: FormTypes.Form\n filters: formStoreService.FormStoreFilters\n onChangeFilters: OnChangeFilters<formStoreService.FormStoreFilters>\n onRefresh: () => void\n submissionIdValidationMessage?: string\n}) {\n const formElements = React.useContext(FormStoreElementsContext)\n const columns = React.useMemo(() => {\n return generateColumns({\n formElements,\n filters,\n parentElementNames: [],\n onChangeFilters,\n allowCopy: true,\n initialColumns: [\n {\n id: 'SUBMITTED_AT',\n headerText: 'Submission Date Time',\n sorting: {\n property: 'dateTimeSubmitted',\n direction: filters.sorting?.find(\n ({ property }) => property === 'dateTimeSubmitted',\n )?.direction,\n },\n filter: {\n type: 'DATETIME',\n value: filters.dateTimeSubmitted as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange: (newValue) => {\n onChangeFilters(\n (currentFilters) => ({\n ...currentFilters,\n dateTimeSubmitted: newValue,\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: filters.submittedBy as { $regex: string } | undefined,\n onChange: (newValue) => {\n onChangeFilters(\n (currentFilters) => ({\n ...currentFilters,\n submittedBy: newValue,\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: filters.submissionId as { $eq: string } | undefined,\n validationMessage: submissionIdValidationMessage,\n isInvalid: !!submissionIdValidationMessage,\n onChange: (newValue) => {\n onChangeFilters(\n (currentFilters) => ({\n ...currentFilters,\n submissionId: newValue,\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: filters.sorting?.find(\n ({ property }) => property === 'externalId',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: filters.externalId as { $regex: string } | undefined,\n onChange: (newValue) => {\n onChangeFilters(\n (currentFilters) => ({\n ...currentFilters,\n externalId: newValue,\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 })\n }, [filters, formElements, onChangeFilters, submissionIdValidationMessage])\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 : { hiddenColumns: ['SUBMISSION_ID', 'EXTERNAL_ID'] },\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 filters,\n onChangeFilters,\n onRefresh,\n submissionIdValidationMessage,\n }\n}\n"]}
@@ -0,0 +1,44 @@
1
+ import * as React from 'react';
2
+ import useFormStoreTable from './table/useFormStoreTable';
3
+ export declare type FormStoreTableContextValue = ReturnType<typeof useFormStoreTable> | undefined;
4
+ export declare const FormStoreTableContext: React.Context<FormStoreTableContextValue>;
5
+ export default function useFormStoreTableContext(): {
6
+ form: import("@oneblink/types/typescript/forms").Form;
7
+ filters: import("@oneblink/apps/dist/form-store-service").FormStoreFilters;
8
+ onChangeFilters: import("../../hooks/useInfiniteScrollDataLoad").OnChangeFilters<import("@oneblink/apps/dist/form-store-service").FormStoreFilters>;
9
+ onRefresh: () => void;
10
+ submissionIdValidationMessage: string | undefined;
11
+ data: readonly import("@oneblink/types/typescript/submissions").FormStoreRecord[];
12
+ initialState?: Partial<import("react-table").TableState<import("@oneblink/types/typescript/submissions").FormStoreRecord>> | undefined;
13
+ stateReducer?: ((newState: import("react-table").TableState<import("@oneblink/types/typescript/submissions").FormStoreRecord>, action: import("react-table").ActionType, previousState: import("react-table").TableState<import("@oneblink/types/typescript/submissions").FormStoreRecord>, instance?: import("react-table").TableInstance<import("@oneblink/types/typescript/submissions").FormStoreRecord> | undefined) => import("react-table").TableState<import("@oneblink/types/typescript/submissions").FormStoreRecord>) | undefined;
14
+ useControlledState?: ((state: import("react-table").TableState<import("@oneblink/types/typescript/submissions").FormStoreRecord>, meta: import("react-table").MetaBase<import("@oneblink/types/typescript/submissions").FormStoreRecord>) => import("react-table").TableState<import("@oneblink/types/typescript/submissions").FormStoreRecord>) | undefined;
15
+ defaultColumn?: Partial<import("react-table").Column<import("@oneblink/types/typescript/submissions").FormStoreRecord>> | undefined;
16
+ getSubRows?: ((originalRow: import("@oneblink/types/typescript/submissions").FormStoreRecord, relativeIndex: number) => import("@oneblink/types/typescript/submissions").FormStoreRecord[]) | undefined;
17
+ getRowId?: ((originalRow: import("@oneblink/types/typescript/submissions").FormStoreRecord, relativeIndex: number, parent?: import("react-table").Row<import("@oneblink/types/typescript/submissions").FormStoreRecord> | undefined) => string) | undefined;
18
+ autoResetHiddenColumns?: boolean | undefined;
19
+ disableResizing?: boolean | undefined;
20
+ autoResetResize?: boolean | undefined;
21
+ state: import("react-table").TableState<import("@oneblink/types/typescript/submissions").FormStoreRecord>;
22
+ plugins: import("react-table").PluginHook<import("@oneblink/types/typescript/submissions").FormStoreRecord>[];
23
+ dispatch: import("react-table").TableDispatch<any>;
24
+ columns: import("react-table").ColumnInstance<import("@oneblink/types/typescript/submissions").FormStoreRecord>[];
25
+ allColumns: import("react-table").ColumnInstance<import("@oneblink/types/typescript/submissions").FormStoreRecord>[];
26
+ visibleColumns: import("react-table").ColumnInstance<import("@oneblink/types/typescript/submissions").FormStoreRecord>[];
27
+ headerGroups: import("react-table").HeaderGroup<import("@oneblink/types/typescript/submissions").FormStoreRecord>[];
28
+ footerGroups: import("react-table").HeaderGroup<import("@oneblink/types/typescript/submissions").FormStoreRecord>[];
29
+ headers: import("react-table").ColumnInstance<import("@oneblink/types/typescript/submissions").FormStoreRecord>[];
30
+ flatHeaders: import("react-table").ColumnInstance<import("@oneblink/types/typescript/submissions").FormStoreRecord>[];
31
+ rows: import("react-table").Row<import("@oneblink/types/typescript/submissions").FormStoreRecord>[];
32
+ rowsById: Record<string, import("react-table").Row<import("@oneblink/types/typescript/submissions").FormStoreRecord>>;
33
+ getTableProps: (propGetter?: import("react-table").TablePropGetter<import("@oneblink/types/typescript/submissions").FormStoreRecord> | undefined) => import("react-table").TableProps;
34
+ getTableBodyProps: (propGetter?: import("react-table").TableBodyPropGetter<import("@oneblink/types/typescript/submissions").FormStoreRecord> | undefined) => import("react-table").TableBodyProps;
35
+ prepareRow: (row: import("react-table").Row<import("@oneblink/types/typescript/submissions").FormStoreRecord>) => void;
36
+ flatRows: import("react-table").Row<import("@oneblink/types/typescript/submissions").FormStoreRecord>[];
37
+ totalColumnsWidth: number;
38
+ allColumnsHidden: boolean;
39
+ toggleHideColumn: (columnId: string, value?: boolean | undefined) => void;
40
+ setHiddenColumns: (param: string[] | ((oldHidden: string[]) => string[])) => void;
41
+ toggleHideAllColumns: (value?: boolean | undefined) => void;
42
+ getToggleHideAllColumnsProps: (props?: Partial<import("react-table").TableToggleHideAllColumnProps> | undefined) => import("react-table").TableToggleHideAllColumnProps;
43
+ getHooks: () => import("react-table").Hooks<import("@oneblink/types/typescript/submissions").FormStoreRecord>;
44
+ };
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ export const FormStoreTableContext = React.createContext(undefined);
3
+ export default function useFormStoreTableContext() {
4
+ const formStoreTableContext = React.useContext(FormStoreTableContext);
5
+ if (!formStoreTableContext) {
6
+ throw new TypeError('You have attempted to run the hook "useFormStoreTableContext()" outside of the "FormStoreTableContext" context.');
7
+ }
8
+ return formStoreTableContext;
9
+ }
10
+ //# sourceMappingURL=useFormStoreTableContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormStoreTableContext.js","sourceRoot":"","sources":["../../../src/components/formStore/useFormStoreTableContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,MAAM,CAAC,MAAM,qBAAqB,GAChC,KAAK,CAAC,aAAa,CAA6B,SAAS,CAAC,CAAA;AAE5D,MAAM,CAAC,OAAO,UAAU,wBAAwB;IAC9C,MAAM,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAA;IACrE,IAAI,CAAC,qBAAqB,EAAE;QAC1B,MAAM,IAAI,SAAS,CACjB,iHAAiH,CAClH,CAAA;KACF;IACD,OAAO,qBAAqB,CAAA;AAC9B,CAAC","sourcesContent":["import * as React from 'react'\nimport useFormStoreTable from './table/useFormStoreTable'\nexport type FormStoreTableContextValue =\n | ReturnType<typeof useFormStoreTable>\n | undefined\n\nexport const FormStoreTableContext =\n React.createContext<FormStoreTableContextValue>(undefined)\n\nexport default function useFormStoreTableContext() {\n const formStoreTableContext = React.useContext(FormStoreTableContext)\n if (!formStoreTableContext) {\n throw new TypeError(\n 'You have attempted to run the hook \"useFormStoreTableContext()\" outside of the \"FormStoreTableContext\" context.',\n )\n }\n return formStoreTableContext\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  import * as React from 'react';
2
+ import { Props as LargeIconMessageProps } from './LargeIconMessage';
2
3
  declare type Props = {
3
- IconComponent?: React.ComponentType<{
4
- className: string;
5
- }>;
4
+ IconComponent?: LargeIconMessageProps['IconComponent'];
6
5
  title: string;
7
6
  gutterTop?: boolean;
8
7
  gutterBottom?: boolean;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import ErrorIcon from '@mui/icons-material/Error';
3
- import LargeIconMessage from './messages/LargeIconMessage';
3
+ import LargeIconMessage from './LargeIconMessage';
4
4
  import { Button } from '@mui/material';
5
5
  function ErrorMessage({ title, children, gutterTop, gutterBottom, IconComponent, onTryAgain, }) {
6
6
  if (!IconComponent) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorMessage.js","sourceRoot":"","sources":["../../../src/components/messages/ErrorMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,SAAS,MAAM,2BAA2B,CAAA;AACjD,OAAO,gBAEN,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAUtC,SAAS,YAAY,CAAC,EACpB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,GACJ;IACN,IAAI,CAAC,aAAa,EAAE;QAClB,aAAa,GAAG,SAAS,CAAA;KAC1B;IAED,OAAO,CACL;QACE,oBAAC,gBAAgB,IACf,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAC,OAAO,EACf,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,MAAM,EACJ,UAAU,IAAI,CACZ,oBAAC,MAAM,IACL,OAAO,EAAC,UAAU,EAClB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,gBAGpB,CACV,IAGF,QAAQ,CACQ,CAClB,CACJ,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAQ,YAAY,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport ErrorIcon from '@mui/icons-material/Error'\nimport LargeIconMessage, {\n Props as LargeIconMessageProps,\n} from './LargeIconMessage'\nimport { Button } from '@mui/material'\ntype Props = {\n IconComponent?: LargeIconMessageProps['IconComponent']\n title: string\n gutterTop?: boolean\n gutterBottom?: boolean\n children?: React.ReactNode\n onTryAgain?: () => void\n}\n\nfunction ErrorMessage({\n title,\n children,\n gutterTop,\n gutterBottom,\n IconComponent,\n onTryAgain,\n}: Props) {\n if (!IconComponent) {\n IconComponent = ErrorIcon\n }\n\n return (\n <>\n <LargeIconMessage\n IconComponent={IconComponent}\n title={title}\n variant=\"error\"\n gutterTop={gutterTop}\n gutterBottom={gutterBottom}\n action={\n onTryAgain && (\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => onTryAgain()}\n >\n Try Again\n </Button>\n )\n }\n >\n {children}\n </LargeIconMessage>\n </>\n )\n}\n\nexport default React.memo<Props>(ErrorMessage)\n"]}