@oneblink/apps-react 13.0.0 → 13.1.0-beta.2

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.
@@ -1,4 +1,5 @@
1
1
  import { TableState } from '@tanstack/react-table';
2
+ import { FormTypes } from '@oneblink/types';
2
3
  export declare const latestStateVersion: string | undefined;
3
4
  export type FormTableState = Partial<TableState> & {
4
5
  /** @deprecated The table state now uses columnVisibility instead */
@@ -6,5 +7,8 @@ export type FormTableState = Partial<TableState> & {
6
7
  defaultHiddenColumnsVersion?: string;
7
8
  formId: number;
8
9
  };
9
- export declare const getVersionedFormTableState: (initialState: FormTableState) => FormTableState;
10
+ export declare const getVersionedFormTableState: ({ form, initialState, }: {
11
+ form: FormTypes.Form;
12
+ initialState: FormTableState;
13
+ }) => FormTableState;
10
14
  export default getVersionedFormTableState;
@@ -11,9 +11,23 @@ const defaultHiddenColumns = [
11
11
  version: 'V2',
12
12
  hiddenColumns: ['COMPLETED_AT'],
13
13
  },
14
+ {
15
+ version: 'V3',
16
+ hiddenColumns: (form) => {
17
+ var _a, _b;
18
+ const columns = [];
19
+ if (!((_a = form.schedulingEvents) === null || _a === void 0 ? void 0 : _a.length)) {
20
+ columns.push('CALENDAR_EVENT_TITLE', 'CALENDAR_EVENT_CALENDAR_NAME', 'CALENDAR_EVENT_DATE_TIME', 'CALENDAR_EVENT_CANCELLED_REASON');
21
+ }
22
+ if (!((_b = form.paymentEvents) === null || _b === void 0 ? void 0 : _b.length)) {
23
+ columns.push('PAYMENT_STATUS', 'PAYMENT_PROVIDER_TRANSACTION_ID', 'PAYMENT_PROVIDER_RECEIPT_NUMBER');
24
+ }
25
+ return columns;
26
+ },
27
+ },
14
28
  ];
15
29
  export const latestStateVersion = defaultHiddenColumns[defaultHiddenColumns.length - 1].version;
16
- export const getVersionedFormTableState = (initialState) => {
30
+ export const getVersionedFormTableState = ({ form, initialState, }) => {
17
31
  var _a;
18
32
  const state = { ...initialState };
19
33
  // carry over deprecated hiddenColumns to columnVisibility
@@ -28,7 +42,10 @@ export const getVersionedFormTableState = (initialState) => {
28
42
  // brand new state, hide all default columns.
29
43
  if (!state.columnVisibility) {
30
44
  state.columnVisibility = defaultHiddenColumns.reduce((memo, defaultHiddenColumn) => {
31
- defaultHiddenColumn.hiddenColumns.forEach((column) => {
45
+ const hiddenColumns = typeof defaultHiddenColumn.hiddenColumns === 'function'
46
+ ? defaultHiddenColumn.hiddenColumns(form)
47
+ : defaultHiddenColumn.hiddenColumns;
48
+ hiddenColumns.forEach((column) => {
32
49
  memo[column] = false;
33
50
  });
34
51
  return memo;
@@ -44,8 +61,11 @@ export const getVersionedFormTableState = (initialState) => {
44
61
  foundVersion = true;
45
62
  continue;
46
63
  }
64
+ const hiddenColumns = typeof defaultHiddenColumn.hiddenColumns === 'function'
65
+ ? defaultHiddenColumn.hiddenColumns(form)
66
+ : defaultHiddenColumn.hiddenColumns;
47
67
  if (foundVersion) {
48
- for (const hiddenColumn of defaultHiddenColumn.hiddenColumns) {
68
+ for (const hiddenColumn of hiddenColumns) {
49
69
  columnsSet.add(hiddenColumn);
50
70
  }
51
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getVersionedState.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/getVersionedState.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG;IAC3B;QACE,OAAO,EAAE,SAAS;QAClB,aAAa,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC;KAChD;IACD;QACE,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,CAAC;KAC5E;IACD;QACE,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,CAAC,cAAc,CAAC;KAChC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAC7B,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAA;AAS/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,YAA4B,EACZ,EAAE;;IAClB,MAAM,KAAK,GAAG,EAAE,GAAG,YAAY,EAAE,CAAA;IAEjC,0DAA0D;IAC1D,IAAI,MAAA,KAAK,CAAC,aAAa,0CAAE,MAAM,EAAE,CAAC;QAChC,MAAM,gBAAgB,GAA4B,EAAE,CAAA;QACpD,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACrC,gBAAgB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;QAClC,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;IAC3C,CAAC;IAED,sDAAsD;IACtD,6CAA6C;IAC7C,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC5B,KAAK,CAAC,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAClD,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE;YAC5B,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnD,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;YACtB,CAAC,CAAC,CAAA;YACF,OAAO,IAAI,CAAA;QACb,CAAC,EACD,EAAE,CACH,CAAA;IACH,CAAC;SAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,kBAAkB,EAAE,CAAC;QACpE,sEAAsE;QACtE,2BAA2B;QAC3B,IAAI,YAAY,GAAG,KAAK,CAAA;QACxB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;QACvE,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE,CAAC;YACvD,IAAI,mBAAmB,CAAC,OAAO,KAAK,KAAK,CAAC,2BAA2B,EAAE,CAAC;gBACtE,YAAY,GAAG,IAAI,CAAA;gBACnB,SAAQ;YACV,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,KAAK,MAAM,YAAY,IAAI,mBAAmB,CAAC,aAAa,EAAE,CAAC;oBAC7D,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACpD,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACf,OAAO;gBACL,GAAG,IAAI;gBACP,CAAC,MAAM,CAAC,EAAE,KAAK;aAChB,CAAA;QACH,CAAC,EACD,EAAE,CACH,CAAA;IACH,CAAC;IAED,KAAK,CAAC,2BAA2B,GAAG,kBAAkB,CAAA;IAEtD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,eAAe,0BAA0B,CAAA","sourcesContent":["import { TableState, VisibilityState } from '@tanstack/react-table'\n\nconst defaultHiddenColumns = [\n {\n version: undefined,\n hiddenColumns: ['SUBMISSION_ID', 'EXTERNAL_ID'],\n },\n {\n version: 'V1',\n hiddenColumns: ['TASK', 'TASK_ACTION', 'TASK_GROUP', 'TASK_GROUP_INSTANCE'],\n },\n {\n version: 'V2',\n hiddenColumns: ['COMPLETED_AT'],\n },\n]\n\nexport const latestStateVersion =\n defaultHiddenColumns[defaultHiddenColumns.length - 1].version\n\nexport type FormTableState = Partial<TableState> & {\n /** @deprecated The table state now uses columnVisibility instead */\n hiddenColumns?: string[]\n defaultHiddenColumnsVersion?: string\n formId: number\n}\n\nexport const getVersionedFormTableState = (\n initialState: FormTableState,\n): FormTableState => {\n const state = { ...initialState }\n\n // carry over deprecated hiddenColumns to columnVisibility\n if (state.hiddenColumns?.length) {\n const columnVisibility: Record<string, boolean> = {}\n state.hiddenColumns.forEach((column) => {\n columnVisibility[column] = false\n })\n state.columnVisibility = columnVisibility\n }\n\n // If there are no hidden columns yet, meaning it is a\n // brand new state, hide all default columns.\n if (!state.columnVisibility) {\n state.columnVisibility = defaultHiddenColumns.reduce<VisibilityState>(\n (memo, defaultHiddenColumn) => {\n defaultHiddenColumn.hiddenColumns.forEach((column) => {\n memo[column] = false\n })\n return memo\n },\n {},\n )\n } else if (state.defaultHiddenColumnsVersion !== latestStateVersion) {\n // If the state is not up to the latest version, find the next version\n // and add the new defaults\n let foundVersion = false\n const columnsSet = new Set<string>(Object.keys(state.columnVisibility))\n for (const defaultHiddenColumn of defaultHiddenColumns) {\n if (defaultHiddenColumn.version === state.defaultHiddenColumnsVersion) {\n foundVersion = true\n continue\n }\n\n if (foundVersion) {\n for (const hiddenColumn of defaultHiddenColumn.hiddenColumns) {\n columnsSet.add(hiddenColumn)\n }\n }\n }\n\n state.columnVisibility = Array.from(columnsSet).reduce<VisibilityState>(\n (memo, column) => {\n return {\n ...memo,\n [column]: false,\n }\n },\n {},\n )\n }\n\n state.defaultHiddenColumnsVersion = latestStateVersion\n\n return state\n}\n\nexport default getVersionedFormTableState\n"]}
1
+ {"version":3,"file":"getVersionedState.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/getVersionedState.ts"],"names":[],"mappings":"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","sourcesContent":["import { TableState, VisibilityState } from '@tanstack/react-table'\nimport { FormTypes } from '@oneblink/types'\n\nconst defaultHiddenColumns = [\n {\n version: undefined,\n hiddenColumns: ['SUBMISSION_ID', 'EXTERNAL_ID'],\n },\n {\n version: 'V1',\n hiddenColumns: ['TASK', 'TASK_ACTION', 'TASK_GROUP', 'TASK_GROUP_INSTANCE'],\n },\n {\n version: 'V2',\n hiddenColumns: ['COMPLETED_AT'],\n },\n {\n version: 'V3',\n hiddenColumns: (form: FormTypes.Form) => {\n const columns = []\n if (!form.schedulingEvents?.length) {\n columns.push(\n 'CALENDAR_EVENT_TITLE',\n 'CALENDAR_EVENT_CALENDAR_NAME',\n 'CALENDAR_EVENT_DATE_TIME',\n 'CALENDAR_EVENT_CANCELLED_REASON',\n )\n }\n if (!form.paymentEvents?.length) {\n columns.push(\n 'PAYMENT_STATUS',\n 'PAYMENT_PROVIDER_TRANSACTION_ID',\n 'PAYMENT_PROVIDER_RECEIPT_NUMBER',\n )\n }\n return columns\n },\n },\n]\n\nexport const latestStateVersion =\n defaultHiddenColumns[defaultHiddenColumns.length - 1].version\n\nexport type FormTableState = Partial<TableState> & {\n /** @deprecated The table state now uses columnVisibility instead */\n hiddenColumns?: string[]\n defaultHiddenColumnsVersion?: string\n formId: number\n}\n\nexport const getVersionedFormTableState = ({\n form,\n initialState,\n}: {\n form: FormTypes.Form\n initialState: FormTableState\n}): FormTableState => {\n const state = { ...initialState }\n\n // carry over deprecated hiddenColumns to columnVisibility\n if (state.hiddenColumns?.length) {\n const columnVisibility: Record<string, boolean> = {}\n state.hiddenColumns.forEach((column) => {\n columnVisibility[column] = false\n })\n state.columnVisibility = columnVisibility\n }\n\n // If there are no hidden columns yet, meaning it is a\n // brand new state, hide all default columns.\n if (!state.columnVisibility) {\n state.columnVisibility = defaultHiddenColumns.reduce<VisibilityState>(\n (memo, defaultHiddenColumn) => {\n const hiddenColumns =\n typeof defaultHiddenColumn.hiddenColumns === 'function'\n ? defaultHiddenColumn.hiddenColumns(form)\n : defaultHiddenColumn.hiddenColumns\n\n hiddenColumns.forEach((column) => {\n memo[column] = false\n })\n return memo\n },\n {},\n )\n } else if (state.defaultHiddenColumnsVersion !== latestStateVersion) {\n // If the state is not up to the latest version, find the next version\n // and add the new defaults\n let foundVersion = false\n const columnsSet = new Set<string>(Object.keys(state.columnVisibility))\n for (const defaultHiddenColumn of defaultHiddenColumns) {\n if (defaultHiddenColumn.version === state.defaultHiddenColumnsVersion) {\n foundVersion = true\n continue\n }\n\n const hiddenColumns =\n typeof defaultHiddenColumn.hiddenColumns === 'function'\n ? defaultHiddenColumn.hiddenColumns(form)\n : defaultHiddenColumn.hiddenColumns\n\n if (foundVersion) {\n for (const hiddenColumn of hiddenColumns) {\n columnsSet.add(hiddenColumn)\n }\n }\n }\n\n state.columnVisibility = Array.from(columnsSet).reduce<VisibilityState>(\n (memo, column) => {\n return {\n ...memo,\n [column]: false,\n }\n },\n {},\n )\n }\n\n state.defaultHiddenColumnsVersion = latestStateVersion\n\n return state\n}\n\nexport default getVersionedFormTableState\n"]}
@@ -587,11 +587,12 @@ export default function useFormStoreTable({ form, formStoreRecords, parameters,
587
587
  ]);
588
588
  const [initialState] = React.useState(() => {
589
589
  const text = localStorage.getItem(localStorageKey(form.id));
590
- return getVersionedFormTableState(text
590
+ const initialState = text
591
591
  ? JSON.parse(text)
592
592
  : {
593
593
  formId: form.id,
594
- });
594
+ };
595
+ return getVersionedFormTableState({ form, initialState });
595
596
  });
596
597
  const transformedSorting = React.useMemo(() => {
597
598
  var _a;
@@ -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 { FormTypes, SubmissionTypes } from '@oneblink/types'\nimport { isValid } from 'date-fns'\nimport { formStoreService, localisationService } from '../../../apps'\nimport {\n useReactTable,\n getCoreRowModel,\n OnChangeFn,\n SortingState,\n VisibilityState,\n} from '@tanstack/react-table'\nimport { format } from 'date-fns'\nimport generateColumns from './generateColumns'\nimport ActionedByTableCell from './ActionedByTableCell'\nimport TableCellCopyButton from './TableCellCopyButton'\nimport { OnChangeFilters } from '../../../hooks/useInfiniteScrollDataLoad'\nimport { FormStoreElementsContext } from '../OneBlinkFormStoreProvider'\nimport getVersionedFormTableState, { FormTableState } from './getVersionedState'\n\nconst defaultColumn = {\n minSize: 150,\n size: 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 getFormsAppLabel,\n}: {\n formStoreRecords: SubmissionTypes.FormStoreRecord[]\n form: FormTypes.Form\n parameters: formStoreService.FormStoreParameters\n onChangeParameters: OnChangeFilters<formStoreService.FormStoreParameters>\n onRefresh: () => void\n submissionIdValidationMessage?: string\n getFormsAppLabel?: (formsAppId: number | null) => 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\n const formsAppOptions = React.useMemo(() => {\n if (!getFormsAppLabel) return undefined\n return [\n ...form.formsAppIds.map((id) => ({\n value: id,\n label: getFormsAppLabel(id),\n })),\n { value: null, label: getFormsAppLabel(null) },\n ]\n }, [form.formsAppIds, getFormsAppLabel])\n\n const columns = React.useMemo(() => {\n return generateColumns<SubmissionTypes.FormStoreRecord>({\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: 'COMPLETED_AT',\n header: 'Completion Date Time',\n meta: {\n sorting: {\n property: 'dateTimeCompleted',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'dateTimeCompleted',\n )?.direction,\n },\n filter: {\n type: 'DATETIME',\n value: parameters.filters?.dateTimeCompleted as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n dateTimeCompleted: newValue,\n },\n }),\n false,\n )\n },\n },\n },\n\n cell: ({ row: { original: formStoreRecord } }) => {\n if (!formStoreRecord.dateTimeCompleted) {\n return null\n }\n const text = format(\n new Date(formStoreRecord.dateTimeCompleted),\n localisationService.getDateFnsFormats().longDateTime,\n )\n return (\n <>\n {text}\n <TableCellCopyButton text={text} />\n </>\n )\n },\n },\n {\n id: 'SUBMITTED_AT',\n header: 'Submission Date Time',\n meta: {\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 },\n cell: ({ row: { original: 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 header: 'Submitted By',\n meta: {\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 },\n cell: ({ row: { original: formStoreRecord } }) => (\n <ActionedByTableCell\n userProfile={formStoreRecord.user}\n developerKey={formStoreRecord.key}\n variant=\"outlined\"\n />\n ),\n },\n {\n id: 'SUBMISSION_ID',\n header: 'Submission Id',\n meta: {\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 },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.submissionId}\n <TableCellCopyButton text={formStoreRecord.submissionId} />\n </>\n ),\n },\n {\n id: 'EXTERNAL_ID',\n header: 'External Id',\n meta: {\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 },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.externalId}\n {formStoreRecord.externalId && (\n <TableCellCopyButton text={formStoreRecord.externalId} />\n )}\n </>\n ),\n },\n ...(formsAppOptions && getFormsAppLabel\n ? [\n {\n id: 'FORMS_APP_ID',\n header: 'App',\n meta: {\n sorting: undefined,\n filter: {\n type: 'FORMS_APP_ID' as const,\n options: formsAppOptions,\n value: parameters.filters?.formsAppId as\n | { $in: (number | null)[] }\n | undefined,\n onChange: (\n newValue?: formStoreService.FormStoreFilter<unknown>,\n shouldDebounce?: boolean,\n ) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n formsAppId: newValue as\n | { $in: (number | null)[] }\n | undefined,\n },\n }),\n shouldDebounce ?? false,\n )\n },\n },\n },\n cell: ({\n row: { original: formStoreRecord },\n }: {\n row: { original: SubmissionTypes.FormStoreRecord }\n }) => {\n const text = getFormsAppLabel(\n formStoreRecord.formsAppId ?? null,\n )\n return (\n <>\n {text}\n <TableCellCopyButton text={text} />\n </>\n )\n },\n },\n ]\n : []),\n {\n id: 'TASK_GROUP',\n header: 'Task Group',\n meta: {\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 },\n cell: ({ row: { original: 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 header: 'Task Group Instance',\n meta: {\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 },\n cell: ({ row: { original: 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 header: 'Task',\n meta: {\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 },\n cell: ({ row: { original: 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 header: 'Task Action',\n meta: {\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 },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.taskAction?.label}\n {formStoreRecord.taskAction?.label && (\n <TableCellCopyButton text={formStoreRecord.taskAction?.label} />\n )}\n </>\n ),\n },\n {\n id: 'CALENDAR_EVENT_TITLE',\n header: 'Calendar Booking - Event Title',\n meta: {\n sorting: {\n property: 'calendarEvent.name',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'calendarEvent.name',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.calendarEvent?.name as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n calendarEvent: {\n ...currentParameters.filters?.calendarEvent,\n name: newValue,\n },\n },\n }),\n true,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.calendarEvent?.name}\n {formStoreRecord.calendarEvent?.name && (\n <TableCellCopyButton\n text={formStoreRecord.calendarEvent?.name}\n />\n )}\n </>\n ),\n },\n {\n id: 'CALENDAR_EVENT_CALENDAR_NAME',\n header: 'Calendar Booking - Calendar Name',\n meta: {\n sorting: {\n property: 'calendarEvent.calendarName',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'calendarEvent.calendarName',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.calendarEvent?.calendarName as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n calendarEvent: {\n ...currentParameters.filters?.calendarEvent,\n calendarName: newValue,\n },\n },\n }),\n true,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.calendarEvent?.calendarName}\n {formStoreRecord.calendarEvent?.calendarName && (\n <TableCellCopyButton\n text={formStoreRecord.calendarEvent?.calendarName}\n />\n )}\n </>\n ),\n },\n {\n id: 'CALENDAR_EVENT_DATE_TIME',\n header: 'Calendar Booking - Event Date Time',\n meta: {\n sorting: {\n property: 'calendarEvent.dateTime',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'calendarEvent.dateTime',\n )?.direction,\n },\n filter: {\n type: 'DATETIME',\n value: parameters.filters?.calendarEvent?.dateTime as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n calendarEvent: {\n ...currentParameters.filters?.calendarEvent,\n dateTime: newValue,\n },\n },\n }),\n false,\n )\n },\n },\n },\n\n cell: ({ row: { original: formStoreRecord } }) => {\n if (!formStoreRecord.calendarEvent?.dateTime) {\n return null\n }\n const calendarEventDate = new Date(\n formStoreRecord.calendarEvent?.dateTime,\n )\n if (!isValid(calendarEventDate)) {\n return null\n }\n const text = format(\n calendarEventDate,\n localisationService.getDateFnsFormats().longDateTime,\n )\n return (\n <>\n {text}\n <TableCellCopyButton text={text} />\n </>\n )\n },\n },\n {\n id: 'CALENDAR_EVENT_CANCELLED_REASON',\n header: 'Calendar Booking - Cancelled Reason',\n meta: {\n sorting: {\n property: 'calendarEvent.cancelledReason',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'calendarEvent.cancelledReason',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.calendarEvent?.cancelledReason as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n calendarEvent: {\n ...currentParameters.filters?.calendarEvent,\n cancelledReason: newValue,\n },\n },\n }),\n true,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.calendarEvent?.cancelledReason}\n {formStoreRecord.calendarEvent?.cancelledReason && (\n <TableCellCopyButton\n text={formStoreRecord.calendarEvent?.cancelledReason}\n />\n )}\n </>\n ),\n },\n {\n id: 'PAYMENT_STATUS',\n header: 'Payment - Status',\n meta: {\n sorting: {\n property: 'payment.status',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'payment.status',\n )?.direction,\n },\n filter: {\n type: 'OPTIONS_SINGLE',\n options: [\n { id: 'PENDING', value: 'PENDING', label: 'Pending' },\n { id: 'SUCCEEDED', value: 'SUCCEEDED', label: 'Succeeded' },\n { id: 'FAILED', value: 'FAILED', label: 'Failed' },\n ],\n value: parameters.filters?.payment?.status as\n | { $in: string[] }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n payment: {\n ...currentParameters.filters?.payment,\n status: newValue,\n },\n },\n }),\n false,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.payment?.status}\n {formStoreRecord.payment?.status && (\n <TableCellCopyButton text={formStoreRecord.payment.status} />\n )}\n </>\n ),\n },\n {\n id: 'PAYMENT_PROVIDER_TRANSACTION_ID',\n header: 'Payment - Provider Transaction Id',\n meta: {\n sorting: {\n property: 'payment.providerTransactionId',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'payment.providerTransactionId',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.payment?.providerTransactionId as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n payment: {\n ...currentParameters.filters?.payment,\n providerTransactionId: newValue,\n },\n },\n }),\n true,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.payment?.providerTransactionId}\n {formStoreRecord.payment?.providerTransactionId && (\n <TableCellCopyButton\n text={formStoreRecord.payment.providerTransactionId}\n />\n )}\n </>\n ),\n },\n {\n id: 'PAYMENT_PROVIDER_RECEIPT_NUMBER',\n header: 'Payment - Provider Receipt Number',\n meta: {\n sorting: {\n property: 'payment.providerReceiptNumber',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'payment.providerReceiptNumber',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.payment?.providerReceiptNumber as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n payment: {\n ...currentParameters.filters?.payment,\n providerReceiptNumber: newValue,\n },\n },\n }),\n true,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.payment?.providerReceiptNumber}\n {formStoreRecord.payment?.providerReceiptNumber && (\n <TableCellCopyButton\n text={formStoreRecord.payment.providerReceiptNumber}\n />\n )}\n </>\n ),\n },\n ],\n })\n }, [\n formElements,\n formsAppOptions,\n getFormsAppLabel,\n onChangeParameters,\n parameters,\n submissionIdValidationMessage,\n ])\n\n const [initialState] = React.useState<FormTableState | undefined>(() => {\n const text = localStorage.getItem(localStorageKey(form.id))\n return getVersionedFormTableState(\n text\n ? JSON.parse(text)\n : {\n formId: form.id,\n },\n )\n })\n\n const transformedSorting = React.useMemo(() => {\n return parameters.sorting?.reduce<SortingState>(\n (memo, { property, direction }) => {\n const column = columns.find(\n (column) => column.meta?.sorting?.property === property,\n )\n if (column?.id) {\n memo.push({\n id: column.id,\n desc: direction === 'descending',\n })\n }\n return memo\n },\n [],\n )\n }, [parameters.sorting, columns])\n\n const onSortingChange: OnChangeFn<SortingState> = React.useCallback(\n (updaterOrValue) => {\n const sortingState =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(\n // transform the parameters sorting state to the tanstack sorting state\n parameters.sorting?.reduce<SortingState>(\n (memo, { property, direction }) => {\n const column = columns.find(\n (column) => column.meta?.sorting?.property === property,\n )\n if (column?.id) {\n memo.push({\n id: column.id,\n desc: direction === 'descending',\n })\n }\n return memo\n },\n [],\n ) ?? [],\n )\n : updaterOrValue\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n // transform the tanstack sorting state to the parameters sorting state\n sorting: sortingState.reduce<\n NonNullable<formStoreService.FormStoreParameters['sorting']>\n >((memo, { id, desc }) => {\n const column = columns.find((column) => column.id === id)\n if (column?.meta?.sorting?.property) {\n memo.push({\n property: column.meta.sorting.property,\n direction: desc ? 'descending' : 'ascending',\n })\n }\n return memo\n }, []),\n }),\n false,\n )\n },\n [onChangeParameters, parameters.sorting, columns],\n )\n\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>(initialState?.columnVisibility || {})\n\n // eslint-disable-next-line react-hooks/incompatible-library\n const table = useReactTable({\n meta: {\n defaultHiddenColumnsVersion: initialState?.defaultHiddenColumnsVersion,\n formId: form.id,\n },\n columns,\n columnResizeMode: 'onChange',\n data: formStoreRecords,\n defaultColumn,\n state: {\n sorting: transformedSorting,\n columnVisibility,\n },\n onColumnVisibilityChange: setColumnVisibility,\n onSortingChange,\n manualFiltering: true,\n initialState,\n getCoreRowModel: getCoreRowModel<SubmissionTypes.FormStoreRecord>(),\n })\n\n const state = table.getState()\n\n React.useEffect(() => {\n if (table.options.meta?.formId !== form.id) {\n // If the form id changes, do not save the state from the previous form over the that of the new form\n return\n }\n if (!state.columnSizing.isResizingColumn) {\n const storageKey = localStorageKey(form.id)\n const augmentedState = {\n ...state,\n hiddenColumns: Object.entries(state.columnVisibility)\n .filter(([, isVisible]) => !isVisible)\n .map(([column]) => column),\n formId: table.options.meta?.formId,\n }\n localStorage.setItem(storageKey, JSON.stringify(augmentedState))\n }\n }, [form.id, state, table.options.meta?.formId])\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 { FormTypes, SubmissionTypes } from '@oneblink/types'\nimport { isValid } from 'date-fns'\nimport { formStoreService, localisationService } from '../../../apps'\nimport {\n useReactTable,\n getCoreRowModel,\n OnChangeFn,\n SortingState,\n VisibilityState,\n} from '@tanstack/react-table'\nimport { format } from 'date-fns'\nimport generateColumns from './generateColumns'\nimport ActionedByTableCell from './ActionedByTableCell'\nimport TableCellCopyButton from './TableCellCopyButton'\nimport { OnChangeFilters } from '../../../hooks/useInfiniteScrollDataLoad'\nimport { FormStoreElementsContext } from '../OneBlinkFormStoreProvider'\nimport getVersionedFormTableState, { FormTableState } from './getVersionedState'\n\nconst defaultColumn = {\n minSize: 150,\n size: 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 getFormsAppLabel,\n}: {\n formStoreRecords: SubmissionTypes.FormStoreRecord[]\n form: FormTypes.Form\n parameters: formStoreService.FormStoreParameters\n onChangeParameters: OnChangeFilters<formStoreService.FormStoreParameters>\n onRefresh: () => void\n submissionIdValidationMessage?: string\n getFormsAppLabel?: (formsAppId: number | null) => 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\n const formsAppOptions = React.useMemo(() => {\n if (!getFormsAppLabel) return undefined\n return [\n ...form.formsAppIds.map((id) => ({\n value: id,\n label: getFormsAppLabel(id),\n })),\n { value: null, label: getFormsAppLabel(null) },\n ]\n }, [form.formsAppIds, getFormsAppLabel])\n\n const columns = React.useMemo(() => {\n return generateColumns<SubmissionTypes.FormStoreRecord>({\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: 'COMPLETED_AT',\n header: 'Completion Date Time',\n meta: {\n sorting: {\n property: 'dateTimeCompleted',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'dateTimeCompleted',\n )?.direction,\n },\n filter: {\n type: 'DATETIME',\n value: parameters.filters?.dateTimeCompleted as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n dateTimeCompleted: newValue,\n },\n }),\n false,\n )\n },\n },\n },\n\n cell: ({ row: { original: formStoreRecord } }) => {\n if (!formStoreRecord.dateTimeCompleted) {\n return null\n }\n const text = format(\n new Date(formStoreRecord.dateTimeCompleted),\n localisationService.getDateFnsFormats().longDateTime,\n )\n return (\n <>\n {text}\n <TableCellCopyButton text={text} />\n </>\n )\n },\n },\n {\n id: 'SUBMITTED_AT',\n header: 'Submission Date Time',\n meta: {\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 },\n cell: ({ row: { original: 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 header: 'Submitted By',\n meta: {\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 },\n cell: ({ row: { original: formStoreRecord } }) => (\n <ActionedByTableCell\n userProfile={formStoreRecord.user}\n developerKey={formStoreRecord.key}\n variant=\"outlined\"\n />\n ),\n },\n {\n id: 'SUBMISSION_ID',\n header: 'Submission Id',\n meta: {\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 },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.submissionId}\n <TableCellCopyButton text={formStoreRecord.submissionId} />\n </>\n ),\n },\n {\n id: 'EXTERNAL_ID',\n header: 'External Id',\n meta: {\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 },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.externalId}\n {formStoreRecord.externalId && (\n <TableCellCopyButton text={formStoreRecord.externalId} />\n )}\n </>\n ),\n },\n ...(formsAppOptions && getFormsAppLabel\n ? [\n {\n id: 'FORMS_APP_ID',\n header: 'App',\n meta: {\n sorting: undefined,\n filter: {\n type: 'FORMS_APP_ID' as const,\n options: formsAppOptions,\n value: parameters.filters?.formsAppId as\n | { $in: (number | null)[] }\n | undefined,\n onChange: (\n newValue?: formStoreService.FormStoreFilter<unknown>,\n shouldDebounce?: boolean,\n ) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n formsAppId: newValue as\n | { $in: (number | null)[] }\n | undefined,\n },\n }),\n shouldDebounce ?? false,\n )\n },\n },\n },\n cell: ({\n row: { original: formStoreRecord },\n }: {\n row: { original: SubmissionTypes.FormStoreRecord }\n }) => {\n const text = getFormsAppLabel(\n formStoreRecord.formsAppId ?? null,\n )\n return (\n <>\n {text}\n <TableCellCopyButton text={text} />\n </>\n )\n },\n },\n ]\n : []),\n {\n id: 'TASK_GROUP',\n header: 'Task Group',\n meta: {\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 },\n cell: ({ row: { original: 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 header: 'Task Group Instance',\n meta: {\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 },\n cell: ({ row: { original: 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 header: 'Task',\n meta: {\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 },\n cell: ({ row: { original: 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 header: 'Task Action',\n meta: {\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 },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.taskAction?.label}\n {formStoreRecord.taskAction?.label && (\n <TableCellCopyButton text={formStoreRecord.taskAction?.label} />\n )}\n </>\n ),\n },\n {\n id: 'CALENDAR_EVENT_TITLE',\n header: 'Calendar Booking - Event Title',\n meta: {\n sorting: {\n property: 'calendarEvent.name',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'calendarEvent.name',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.calendarEvent?.name as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n calendarEvent: {\n ...currentParameters.filters?.calendarEvent,\n name: newValue,\n },\n },\n }),\n true,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.calendarEvent?.name}\n {formStoreRecord.calendarEvent?.name && (\n <TableCellCopyButton\n text={formStoreRecord.calendarEvent?.name}\n />\n )}\n </>\n ),\n },\n {\n id: 'CALENDAR_EVENT_CALENDAR_NAME',\n header: 'Calendar Booking - Calendar Name',\n meta: {\n sorting: {\n property: 'calendarEvent.calendarName',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'calendarEvent.calendarName',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.calendarEvent?.calendarName as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n calendarEvent: {\n ...currentParameters.filters?.calendarEvent,\n calendarName: newValue,\n },\n },\n }),\n true,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.calendarEvent?.calendarName}\n {formStoreRecord.calendarEvent?.calendarName && (\n <TableCellCopyButton\n text={formStoreRecord.calendarEvent?.calendarName}\n />\n )}\n </>\n ),\n },\n {\n id: 'CALENDAR_EVENT_DATE_TIME',\n header: 'Calendar Booking - Event Date Time',\n meta: {\n sorting: {\n property: 'calendarEvent.dateTime',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'calendarEvent.dateTime',\n )?.direction,\n },\n filter: {\n type: 'DATETIME',\n value: parameters.filters?.calendarEvent?.dateTime as\n | { $gte?: string; $lte?: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n calendarEvent: {\n ...currentParameters.filters?.calendarEvent,\n dateTime: newValue,\n },\n },\n }),\n false,\n )\n },\n },\n },\n\n cell: ({ row: { original: formStoreRecord } }) => {\n if (!formStoreRecord.calendarEvent?.dateTime) {\n return null\n }\n const calendarEventDate = new Date(\n formStoreRecord.calendarEvent?.dateTime,\n )\n if (!isValid(calendarEventDate)) {\n return null\n }\n const text = format(\n calendarEventDate,\n localisationService.getDateFnsFormats().longDateTime,\n )\n return (\n <>\n {text}\n <TableCellCopyButton text={text} />\n </>\n )\n },\n },\n {\n id: 'CALENDAR_EVENT_CANCELLED_REASON',\n header: 'Calendar Booking - Cancelled Reason',\n meta: {\n sorting: {\n property: 'calendarEvent.cancelledReason',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'calendarEvent.cancelledReason',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.calendarEvent?.cancelledReason as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n calendarEvent: {\n ...currentParameters.filters?.calendarEvent,\n cancelledReason: newValue,\n },\n },\n }),\n true,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.calendarEvent?.cancelledReason}\n {formStoreRecord.calendarEvent?.cancelledReason && (\n <TableCellCopyButton\n text={formStoreRecord.calendarEvent?.cancelledReason}\n />\n )}\n </>\n ),\n },\n {\n id: 'PAYMENT_STATUS',\n header: 'Payment - Status',\n meta: {\n sorting: {\n property: 'payment.status',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'payment.status',\n )?.direction,\n },\n filter: {\n type: 'OPTIONS_SINGLE',\n options: [\n { id: 'PENDING', value: 'PENDING', label: 'Pending' },\n { id: 'SUCCEEDED', value: 'SUCCEEDED', label: 'Succeeded' },\n { id: 'FAILED', value: 'FAILED', label: 'Failed' },\n ],\n value: parameters.filters?.payment?.status as\n | { $in: string[] }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n payment: {\n ...currentParameters.filters?.payment,\n status: newValue,\n },\n },\n }),\n false,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.payment?.status}\n {formStoreRecord.payment?.status && (\n <TableCellCopyButton text={formStoreRecord.payment.status} />\n )}\n </>\n ),\n },\n {\n id: 'PAYMENT_PROVIDER_TRANSACTION_ID',\n header: 'Payment - Provider Transaction Id',\n meta: {\n sorting: {\n property: 'payment.providerTransactionId',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'payment.providerTransactionId',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.payment?.providerTransactionId as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n payment: {\n ...currentParameters.filters?.payment,\n providerTransactionId: newValue,\n },\n },\n }),\n true,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.payment?.providerTransactionId}\n {formStoreRecord.payment?.providerTransactionId && (\n <TableCellCopyButton\n text={formStoreRecord.payment.providerTransactionId}\n />\n )}\n </>\n ),\n },\n {\n id: 'PAYMENT_PROVIDER_RECEIPT_NUMBER',\n header: 'Payment - Provider Receipt Number',\n meta: {\n sorting: {\n property: 'payment.providerReceiptNumber',\n direction: parameters.sorting?.find(\n ({ property }) => property === 'payment.providerReceiptNumber',\n )?.direction,\n },\n filter: {\n type: 'TEXT',\n value: parameters.filters?.payment?.providerReceiptNumber as\n | { $regex: string }\n | undefined,\n onChange: (newValue) => {\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n filters: {\n ...currentParameters.filters,\n payment: {\n ...currentParameters.filters?.payment,\n providerReceiptNumber: newValue,\n },\n },\n }),\n true,\n )\n },\n },\n },\n cell: ({ row: { original: formStoreRecord } }) => (\n <>\n {formStoreRecord.payment?.providerReceiptNumber}\n {formStoreRecord.payment?.providerReceiptNumber && (\n <TableCellCopyButton\n text={formStoreRecord.payment.providerReceiptNumber}\n />\n )}\n </>\n ),\n },\n ],\n })\n }, [\n formElements,\n formsAppOptions,\n getFormsAppLabel,\n onChangeParameters,\n parameters,\n submissionIdValidationMessage,\n ])\n\n const [initialState] = React.useState<FormTableState | undefined>(() => {\n const text = localStorage.getItem(localStorageKey(form.id))\n const initialState = text\n ? JSON.parse(text)\n : {\n formId: form.id,\n }\n return getVersionedFormTableState({ form, initialState })\n })\n\n const transformedSorting = React.useMemo(() => {\n return parameters.sorting?.reduce<SortingState>(\n (memo, { property, direction }) => {\n const column = columns.find(\n (column) => column.meta?.sorting?.property === property,\n )\n if (column?.id) {\n memo.push({\n id: column.id,\n desc: direction === 'descending',\n })\n }\n return memo\n },\n [],\n )\n }, [parameters.sorting, columns])\n\n const onSortingChange: OnChangeFn<SortingState> = React.useCallback(\n (updaterOrValue) => {\n const sortingState =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(\n // transform the parameters sorting state to the tanstack sorting state\n parameters.sorting?.reduce<SortingState>(\n (memo, { property, direction }) => {\n const column = columns.find(\n (column) => column.meta?.sorting?.property === property,\n )\n if (column?.id) {\n memo.push({\n id: column.id,\n desc: direction === 'descending',\n })\n }\n return memo\n },\n [],\n ) ?? [],\n )\n : updaterOrValue\n onChangeParameters(\n (currentParameters) => ({\n ...currentParameters,\n // transform the tanstack sorting state to the parameters sorting state\n sorting: sortingState.reduce<\n NonNullable<formStoreService.FormStoreParameters['sorting']>\n >((memo, { id, desc }) => {\n const column = columns.find((column) => column.id === id)\n if (column?.meta?.sorting?.property) {\n memo.push({\n property: column.meta.sorting.property,\n direction: desc ? 'descending' : 'ascending',\n })\n }\n return memo\n }, []),\n }),\n false,\n )\n },\n [onChangeParameters, parameters.sorting, columns],\n )\n\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>(initialState?.columnVisibility || {})\n\n // eslint-disable-next-line react-hooks/incompatible-library\n const table = useReactTable({\n meta: {\n defaultHiddenColumnsVersion: initialState?.defaultHiddenColumnsVersion,\n formId: form.id,\n },\n columns,\n columnResizeMode: 'onChange',\n data: formStoreRecords,\n defaultColumn,\n state: {\n sorting: transformedSorting,\n columnVisibility,\n },\n onColumnVisibilityChange: setColumnVisibility,\n onSortingChange,\n manualFiltering: true,\n initialState,\n getCoreRowModel: getCoreRowModel<SubmissionTypes.FormStoreRecord>(),\n })\n\n const state = table.getState()\n\n React.useEffect(() => {\n if (table.options.meta?.formId !== form.id) {\n // If the form id changes, do not save the state from the previous form over the that of the new form\n return\n }\n if (!state.columnSizing.isResizingColumn) {\n const storageKey = localStorageKey(form.id)\n const augmentedState = {\n ...state,\n hiddenColumns: Object.entries(state.columnVisibility)\n .filter(([, isVisible]) => !isVisible)\n .map(([column]) => column),\n formId: table.options.meta?.formId,\n }\n localStorage.setItem(storageKey, JSON.stringify(augmentedState))\n }\n }, [form.id, state, table.options.meta?.formId])\n\n return {\n ...table,\n form,\n parameters,\n onChangeParameters,\n onRefresh,\n submissionIdValidationMessage,\n } as const\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@oneblink/apps-react",
3
3
  "description": "Helper functions for OneBlink apps in ReactJS.",
4
- "version": "13.0.0",
4
+ "version": "13.1.0-beta.2",
5
5
  "author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",
6
6
  "bugs": {
7
7
  "url": "https://github.com/oneblink/apps-react/issues"
@@ -39,14 +39,14 @@
39
39
  "lodash.orderby": "^4.6.0",
40
40
  "lodash.throttle": "^4.1.1",
41
41
  "qrcode.react": "^4.2.0",
42
- "query-string": "^8.2.0",
42
+ "query-string": "^9.5.1",
43
43
  "react-google-recaptcha": "^3.1.0",
44
44
  "react-image-crop": "^11.0.10",
45
45
  "react-signature-canvas": "^1.1.0-alpha.2",
46
46
  "sanitize-html": "^2.17.0",
47
47
  "ua-parser-js": "^1.0.41",
48
48
  "usehooks-ts": "^3.1.1",
49
- "uuid": "^9.0.1",
49
+ "uuid": "^14.0.2",
50
50
  "xml2js": "^0.6.2"
51
51
  },
52
52
  "devDependencies": {
@@ -74,7 +74,6 @@
74
74
  "@types/react-signature-canvas": "^1.0.7",
75
75
  "@types/sanitize-html": "^2.16.0",
76
76
  "@types/ua-parser-js": "^0.7.39",
77
- "@types/uuid": "^9.0.8",
78
77
  "@types/xml2js": "^0.4.14",
79
78
  "@typescript-eslint/eslint-plugin": "^8.55.0",
80
79
  "@typescript-eslint/parser": "^8.55.0",