@quillsql/react 2.16.74 → 2.16.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -63264,7 +63264,7 @@ async function loadReportForUseForm({
63264
63264
  draftSessionId
63265
63265
  });
63266
63266
  const pivotRows = pivotResult.report?.pivotRows;
63267
- const rowField = effectivePivot?.rowField;
63267
+ const rowField = pivotResult.report?.pivotResultRowField ?? effectivePivot?.rowField;
63268
63268
  const rowFieldTrimmed = String(rowField ?? "").trim();
63269
63269
  const hasRowBucketKey = !rowFieldTrimmed || Array.isArray(pivotRows) && pivotRows.some(
63270
63270
  (row) => row && typeof row === "object" && Object.prototype.hasOwnProperty.call(row, rowFieldTrimmed)
@@ -63671,6 +63671,31 @@ function useReport(reportIdArg, options = {}) {
63671
63671
  () => getSchemaForeignKeyMapping(schemaForReportBuilderState),
63672
63672
  [schemaForReportBuilderState]
63673
63673
  );
63674
+ const datasourceJoinOptionsByTable = (0, import_react61.useMemo)(() => {
63675
+ const tableNames = new Set(
63676
+ schemaForReportBuilderState.map((table2) => String(table2.name ?? "").trim()).filter(Boolean)
63677
+ );
63678
+ const compatibleByTable = new Map(
63679
+ Array.from(tableNames, (tableName) => [tableName, /* @__PURE__ */ new Set()])
63680
+ );
63681
+ for (const [tableName, mappings] of Object.entries(schemaForeignKeyMap)) {
63682
+ if (!tableNames.has(tableName)) continue;
63683
+ for (const mapping of mappings) {
63684
+ const foreignTableName = String(mapping.foreignTable ?? "").trim();
63685
+ if (!foreignTableName || foreignTableName === tableName || !tableNames.has(foreignTableName)) {
63686
+ continue;
63687
+ }
63688
+ compatibleByTable.get(tableName)?.add(foreignTableName);
63689
+ compatibleByTable.get(foreignTableName)?.add(tableName);
63690
+ }
63691
+ }
63692
+ return new Map(
63693
+ Array.from(compatibleByTable, ([tableName, compatibleTables]) => [
63694
+ tableName,
63695
+ Array.from(compatibleTables)
63696
+ ])
63697
+ );
63698
+ }, [schemaForReportBuilderState, schemaForeignKeyMap]);
63674
63699
  const reportBuilderBaseTableNamesKey = (sourceReport?.reportBuilderState?.tables ?? []).map((t) => String(t?.name ?? "").trim()).filter(Boolean).join("\0") ?? "";
63675
63700
  const selectedBaseTableNamesForFieldOptions = (0, import_react61.useMemo)(() => {
63676
63701
  const fromPicker = schemaDatasourceIds?.map((id) => String(id ?? "").trim()).filter(Boolean) ?? [];
@@ -63757,9 +63782,6 @@ function useReport(reportIdArg, options = {}) {
63757
63782
  queryColumnsBootstrapKey
63758
63783
  ]);
63759
63784
  const datasourceOptions = (0, import_react61.useMemo)(() => {
63760
- const tableNames = new Set(
63761
- schemaForReportBuilderState.map((table2) => String(table2.name ?? "").trim()).filter(Boolean)
63762
- );
63763
63785
  const seen = /* @__PURE__ */ new Set();
63764
63786
  const result = [];
63765
63787
  for (const table2 of schemaForReportBuilderState) {
@@ -63769,16 +63791,11 @@ function useReport(reportIdArg, options = {}) {
63769
63791
  result.push({
63770
63792
  value: name2,
63771
63793
  label: toTitleCaseLabel(name2),
63772
- joinOptions: getJoinCompatibleTableNames(
63773
- [name2],
63774
- schemaForeignKeyMap
63775
- ).filter(
63776
- (candidate) => candidate !== name2 && tableNames.has(candidate)
63777
- )
63794
+ joinOptions: datasourceJoinOptionsByTable.get(name2) ?? []
63778
63795
  });
63779
63796
  }
63780
63797
  return result;
63781
- }, [schemaForReportBuilderState, schemaForeignKeyMap]);
63798
+ }, [schemaForReportBuilderState, datasourceJoinOptionsByTable]);
63782
63799
  const queryBuilderFieldConfigByName = (0, import_react61.useMemo)(() => {
63783
63800
  const configByName = buildQueryBuilderFieldConfigByName(
63784
63801
  schemaForReportBuilderState
package/dist/index.js CHANGED
@@ -63476,7 +63476,7 @@ async function loadReportForUseForm({
63476
63476
  draftSessionId
63477
63477
  });
63478
63478
  const pivotRows = pivotResult.report?.pivotRows;
63479
- const rowField = effectivePivot?.rowField;
63479
+ const rowField = pivotResult.report?.pivotResultRowField ?? effectivePivot?.rowField;
63480
63480
  const rowFieldTrimmed = String(rowField ?? "").trim();
63481
63481
  const hasRowBucketKey = !rowFieldTrimmed || Array.isArray(pivotRows) && pivotRows.some(
63482
63482
  (row) => row && typeof row === "object" && Object.prototype.hasOwnProperty.call(row, rowFieldTrimmed)
@@ -63883,6 +63883,31 @@ function useReport(reportIdArg, options = {}) {
63883
63883
  () => getSchemaForeignKeyMapping(schemaForReportBuilderState),
63884
63884
  [schemaForReportBuilderState]
63885
63885
  );
63886
+ const datasourceJoinOptionsByTable = useMemo33(() => {
63887
+ const tableNames = new Set(
63888
+ schemaForReportBuilderState.map((table2) => String(table2.name ?? "").trim()).filter(Boolean)
63889
+ );
63890
+ const compatibleByTable = new Map(
63891
+ Array.from(tableNames, (tableName) => [tableName, /* @__PURE__ */ new Set()])
63892
+ );
63893
+ for (const [tableName, mappings] of Object.entries(schemaForeignKeyMap)) {
63894
+ if (!tableNames.has(tableName)) continue;
63895
+ for (const mapping of mappings) {
63896
+ const foreignTableName = String(mapping.foreignTable ?? "").trim();
63897
+ if (!foreignTableName || foreignTableName === tableName || !tableNames.has(foreignTableName)) {
63898
+ continue;
63899
+ }
63900
+ compatibleByTable.get(tableName)?.add(foreignTableName);
63901
+ compatibleByTable.get(foreignTableName)?.add(tableName);
63902
+ }
63903
+ }
63904
+ return new Map(
63905
+ Array.from(compatibleByTable, ([tableName, compatibleTables]) => [
63906
+ tableName,
63907
+ Array.from(compatibleTables)
63908
+ ])
63909
+ );
63910
+ }, [schemaForReportBuilderState, schemaForeignKeyMap]);
63886
63911
  const reportBuilderBaseTableNamesKey = (sourceReport?.reportBuilderState?.tables ?? []).map((t) => String(t?.name ?? "").trim()).filter(Boolean).join("\0") ?? "";
63887
63912
  const selectedBaseTableNamesForFieldOptions = useMemo33(() => {
63888
63913
  const fromPicker = schemaDatasourceIds?.map((id) => String(id ?? "").trim()).filter(Boolean) ?? [];
@@ -63969,9 +63994,6 @@ function useReport(reportIdArg, options = {}) {
63969
63994
  queryColumnsBootstrapKey
63970
63995
  ]);
63971
63996
  const datasourceOptions = useMemo33(() => {
63972
- const tableNames = new Set(
63973
- schemaForReportBuilderState.map((table2) => String(table2.name ?? "").trim()).filter(Boolean)
63974
- );
63975
63997
  const seen = /* @__PURE__ */ new Set();
63976
63998
  const result = [];
63977
63999
  for (const table2 of schemaForReportBuilderState) {
@@ -63981,16 +64003,11 @@ function useReport(reportIdArg, options = {}) {
63981
64003
  result.push({
63982
64004
  value: name2,
63983
64005
  label: toTitleCaseLabel(name2),
63984
- joinOptions: getJoinCompatibleTableNames(
63985
- [name2],
63986
- schemaForeignKeyMap
63987
- ).filter(
63988
- (candidate) => candidate !== name2 && tableNames.has(candidate)
63989
- )
64006
+ joinOptions: datasourceJoinOptionsByTable.get(name2) ?? []
63990
64007
  });
63991
64008
  }
63992
64009
  return result;
63993
- }, [schemaForReportBuilderState, schemaForeignKeyMap]);
64010
+ }, [schemaForReportBuilderState, datasourceJoinOptionsByTable]);
63994
64011
  const queryBuilderFieldConfigByName = useMemo33(() => {
63995
64012
  const configByName = buildQueryBuilderFieldConfigByName(
63996
64013
  schemaForReportBuilderState
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/react",
3
- "version": "2.16.74",
3
+ "version": "2.16.76",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {