@quillsql/react 2.13.33 → 2.13.34

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.
@@ -3,18 +3,22 @@ interface BaseQuillProviderProps {
3
3
  publicKey: string;
4
4
  theme?: QuillTheme;
5
5
  children?: React.ReactNode;
6
- tenants: {
7
- tenantField: string;
8
- tenantIds: (string | number)[];
9
- }[] | (string | number)[] | (string | number)[];
10
6
  flags?: string[];
11
7
  }
12
8
  interface QuillCloudProviderProps extends BaseQuillProviderProps {
13
9
  queryEndpoint?: never;
10
+ tenants: {
11
+ tenantField: string;
12
+ tenantIds: (string | number)[];
13
+ }[] | (string | number)[] | (string | number)[];
14
14
  queryHeaders?: never;
15
15
  withCredentials?: never;
16
16
  }
17
17
  interface SelfHostedProviderProps extends BaseQuillProviderProps {
18
+ tenants?: {
19
+ tenantField: string;
20
+ tenantIds: (string | number)[];
21
+ }[] | (string | number)[] | (string | number)[];
18
22
  queryEndpoint: string;
19
23
  queryHeaders?: object;
20
24
  withCredentials?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"QuillProvider.d.ts","sourceRoot":"","sources":["../../src/QuillProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,sBAAsB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,uBAAwB,SAAQ,sBAAsB;IAC9D,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB;AAED,UAAU,uBAAwB,SAAQ,sBAAsB;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,MAAM,MAAM,kBAAkB,GAAG,uBAAuB,GAAG,uBAAuB,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAwB7B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,QAAA,MAAM,aAAa,kGAShB,kBAAkB,4CAcpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"QuillProvider.d.ts","sourceRoot":"","sources":["../../src/QuillProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,sBAAsB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,uBAAwB,SAAQ,sBAAsB;IAC9D,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB;AAED,UAAU,uBAAwB,SAAQ,sBAAsB;IAC9D,OAAO,CAAC,EACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,MAAM,MAAM,kBAAkB,GAAG,uBAAuB,GAAG,uBAAuB,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAwB7B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,QAAA,MAAM,aAAa,kGAShB,kBAAkB,4CAcpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -4,9 +4,9 @@ export declare const useExport: (reportId?: string, { CustomDocumentComponent, m
4
4
  maximumRowsPerPage?: number;
5
5
  sectionField?: string;
6
6
  }) => {
7
- downloadCSV: () => void;
8
- downloadPDF: () => void;
7
+ downloadPDF: () => Promise<void>;
9
8
  isPDFLoading: boolean;
9
+ downloadCSV: () => Promise<void>;
10
10
  isCSVLoading: boolean;
11
11
  };
12
12
  interface QuillPDFProps {
@@ -1 +1 @@
1
- {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAmE/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;;;CAqPF,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAmE/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA;IACD,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;CAqPvB,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -10,10 +10,8 @@ const react_1 = require("react");
10
10
  const dataFetcher_1 = require("../utils/dataFetcher");
11
11
  const Context_1 = require("../Context");
12
12
  const dashboard_1 = require("../utils/dashboard");
13
- const QuillProvider_1 = require("../QuillProvider");
14
13
  const client_1 = require("react-dom/client");
15
14
  const react_dom_1 = require("react-dom");
16
- const Chart_1 = require("../Chart");
17
15
  const report_1 = require("../utils/report");
18
16
  const jspdf_1 = __importDefault(require("jspdf"));
19
17
  const valueFormatter_1 = require("../utils/valueFormatter");
@@ -83,8 +81,8 @@ sectionField, } = {}) => {
83
81
  const [isPDFLoading, setIsPDFLoading] = (0, react_1.useState)(false);
84
82
  if (!reportId || !client) {
85
83
  return {
86
- downloadCSV: () => { },
87
- downloadPDF: () => { },
84
+ downloadCSV: async () => { },
85
+ downloadPDF: async () => { },
88
86
  isPDFLoading: false,
89
87
  isCSVLoading: false,
90
88
  };
@@ -254,25 +252,22 @@ function QuillCustomDocumentComponent({ report }) {
254
252
  textAlign: 'left',
255
253
  paddingLeft: 10,
256
254
  // color: theme?.primaryTextColor,
257
- }, children: report.name }) }), (0, jsx_runtime_1.jsxs)("div", { style: { paddingLeft: 20, paddingRight: 20 }, children: [report.chartType !== 'table' && ((0, jsx_runtime_1.jsx)(Chart_1.ChartDisplay, { overrideTheme: QuillProvider_1.defaultQuillTheme, config: chartReport, containerStyle: {
258
- display: 'flex',
259
- height: 400,
260
- }, loading: false, isAnimationActive: false })), (0, jsx_runtime_1.jsx)("div", { style: {
261
- border: '1px solid',
262
- borderRadius: '4px',
255
+ }, children: report.name }) }), (0, jsx_runtime_1.jsx)("div", { style: { paddingLeft: 20, paddingRight: 20 }, children: (0, jsx_runtime_1.jsx)("div", { style: {
256
+ border: '1px solid',
257
+ borderRadius: '4px',
258
+ borderStyle: 'none',
259
+ }, children: (0, jsx_runtime_1.jsxs)("table", { style: {
260
+ fontFamily: 'sans-serif',
261
+ width: '100%',
262
+ borderCollapse: 'collapse',
263
263
  borderStyle: 'none',
264
- }, children: (0, jsx_runtime_1.jsxs)("table", { style: {
265
- fontFamily: 'sans-serif',
266
- width: '100%',
267
- borderCollapse: 'collapse',
268
- borderStyle: 'none',
269
- }, children: [(0, jsx_runtime_1.jsx)("thead", { style: {
270
- textAlign: 'left',
271
- textOverflow: 'ellipsis',
272
- whiteSpace: 'nowrap',
273
- overflow: 'hidden',
274
- }, children: (0, jsx_runtime_1.jsx)("tr", { children: report.columns.map((col, colIndex) => ((0, jsx_runtime_1.jsx)("th", { style: { padding: '2px', paddingLeft: '3px' }, children: col.label }, 'head' + colIndex))) }) }), (0, jsx_runtime_1.jsx)("tbody", { children: report.rows.map((row, rowIndex) => ((0, jsx_runtime_1.jsx)("tr", { children: report.columns.map((col, colIndex) => ((0, jsx_runtime_1.jsx)("td", { style: { padding: '2px', paddingLeft: '3px' }, children: (0, valueFormatter_1.quillFormat)({
275
- value: row[col.field],
276
- format: col.format,
277
- }) }, 'cell' + col.field + colIndex + rowIndex))) }, 'row' + rowIndex))) })] }) })] })] }));
264
+ }, children: [(0, jsx_runtime_1.jsx)("thead", { style: {
265
+ textAlign: 'left',
266
+ textOverflow: 'ellipsis',
267
+ whiteSpace: 'nowrap',
268
+ overflow: 'hidden',
269
+ }, children: (0, jsx_runtime_1.jsx)("tr", { children: report.columns.map((col, colIndex) => ((0, jsx_runtime_1.jsx)("th", { style: { padding: '2px', paddingLeft: '3px' }, children: col.label }, 'head' + colIndex))) }) }), (0, jsx_runtime_1.jsx)("tbody", { children: report.rows.map((row, rowIndex) => ((0, jsx_runtime_1.jsx)("tr", { children: report.columns.map((col, colIndex) => ((0, jsx_runtime_1.jsx)("td", { style: { padding: '2px', paddingLeft: '3px' }, children: (0, valueFormatter_1.quillFormat)({
270
+ value: row[col.field],
271
+ format: col.format,
272
+ }) }, 'cell' + col.field + colIndex + rowIndex))) }, 'row' + rowIndex))) })] }) }) })] }));
278
273
  }
@@ -3,4 +3,16 @@ export declare const EMPTY_CLIENT: Client;
3
3
  export declare function fetchClient(publicKey: string, queryEndpoint: string, withCredentials?: boolean, queryHeaders?: HeadersInit): Promise<Client & {
4
4
  allTenantTypes?: QuillTenant[];
5
5
  }>;
6
+ export declare function getClientTenantIds({ queryEndpoint, queryHeaders, withCredentials, tenant, clientId, }: {
7
+ queryEndpoint: string;
8
+ queryHeaders?: HeadersInit;
9
+ withCredentials?: boolean;
10
+ tenant: QuillTenant & {
11
+ id: string;
12
+ };
13
+ clientId: string;
14
+ }): Promise<{
15
+ id: string;
16
+ tenantIds: any;
17
+ }>;
6
18
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,YAAY,EAAE,MAM1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,eAAe,UAAQ,EACvB,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CACR,MAAM,GAAG;IAAE,cAAc,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,CAC5C,CAwEA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,YAAY,EAAE,MAM1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,eAAe,UAAQ,EACvB,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,MAAM,GAAG;IAAE,cAAc,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAgDtD;AAED,wBAAsB,kBAAkB,CAAC,EACvC,aAAa,EACb,YAAY,EACZ,eAAe,EACf,MAAM,EACN,QAAQ,GACT,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,WAAW,GAAG;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;;;GAyCA"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EMPTY_CLIENT = void 0;
4
4
  exports.fetchClient = fetchClient;
5
+ exports.getClientTenantIds = getClientTenantIds;
5
6
  exports.EMPTY_CLIENT = {
6
7
  name: '',
7
8
  _id: '',
@@ -31,36 +32,13 @@ async function fetchClient(publicKey, queryEndpoint, withCredentials = false, qu
31
32
  const json = await response.json();
32
33
  result = json.data?.data?.client || json.data?.client;
33
34
  clientTenantIds = await Promise.all(result.allTenantTypes?.map(async (tenant) => {
34
- const tenantResponse = await fetch(queryEndpoint, {
35
- method: 'POST',
36
- headers: {
37
- ...queryHeaders,
38
- 'Content-Type': 'application/json',
39
- },
40
- body: JSON.stringify({
41
- metadata: {
42
- tenantId: tenant.id,
43
- task: 'tenant-query',
44
- clientId: result.id,
45
- },
46
- }),
47
- credentials: withCredentials ? 'include' : 'omit',
35
+ return await getClientTenantIds({
36
+ queryEndpoint,
37
+ queryHeaders,
38
+ withCredentials,
39
+ tenant,
40
+ clientId: publicKey,
48
41
  });
49
- const data = await tenantResponse.json();
50
- if (!data.data?.rows) {
51
- return {
52
- id: tenant.id,
53
- tenantIds: [],
54
- };
55
- }
56
- return {
57
- id: tenant.id,
58
- tenantIds: data.data.rows.map((row) => ({
59
- id: row[tenant.tenantField],
60
- flag: row['quill_flag'],
61
- label: row['quill_label'],
62
- })),
63
- };
64
42
  }));
65
43
  }
66
44
  catch (error) {
@@ -70,7 +48,48 @@ async function fetchClient(publicKey, queryEndpoint, withCredentials = false, qu
70
48
  ...result,
71
49
  allTenantTypes: result.allTenantTypes?.map((tenant) => ({
72
50
  ...tenant,
73
- tenantIds: clientTenantIds?.find((clientTenant) => clientTenant.id === tenant.id)?.tenantIds || [],
51
+ tenantIds: clientTenantIds?.find((clientTenant) => clientTenant.id === tenant.id)
52
+ ?.tenantIds || [],
53
+ })),
54
+ };
55
+ }
56
+ async function getClientTenantIds({ queryEndpoint, queryHeaders, withCredentials, tenant, clientId, }) {
57
+ if (tenant.scope === 'database') {
58
+ return {
59
+ id: tenant.id,
60
+ tenantIds: [],
61
+ };
62
+ }
63
+ const tenantResponse = await fetch(queryEndpoint, {
64
+ method: 'POST',
65
+ headers: {
66
+ ...queryHeaders,
67
+ 'Content-Type': 'application/json',
68
+ },
69
+ body: JSON.stringify({
70
+ metadata: {
71
+ tenantId: tenant.id,
72
+ task: 'tenant-query',
73
+ clientId: clientId,
74
+ },
75
+ }),
76
+ credentials: withCredentials ? 'include' : 'omit',
77
+ });
78
+ const data = await tenantResponse.json();
79
+ if (!data.data?.rows || !data.data?.fields) {
80
+ return {
81
+ id: tenant.id,
82
+ tenantIds: [],
83
+ };
84
+ }
85
+ const tenantFieldDataType = data.data.fields.find((field) => field.name === tenant.tenantField)?.dataTypeID;
86
+ const isNumber = [20, 21, 23, 700, 701, 1700].includes(tenantFieldDataType);
87
+ return {
88
+ id: tenant.id,
89
+ tenantIds: data.data.rows.map((row) => ({
90
+ id: isNumber ? Number(row[tenant.tenantField]) : row[tenant.tenantField],
91
+ flag: row['quill_flag'],
92
+ label: row['quill_label'],
74
93
  })),
75
94
  };
76
95
  }
@@ -3,18 +3,22 @@ interface BaseQuillProviderProps {
3
3
  publicKey: string;
4
4
  theme?: QuillTheme;
5
5
  children?: React.ReactNode;
6
- tenants: {
7
- tenantField: string;
8
- tenantIds: (string | number)[];
9
- }[] | (string | number)[] | (string | number)[];
10
6
  flags?: string[];
11
7
  }
12
8
  interface QuillCloudProviderProps extends BaseQuillProviderProps {
13
9
  queryEndpoint?: never;
10
+ tenants: {
11
+ tenantField: string;
12
+ tenantIds: (string | number)[];
13
+ }[] | (string | number)[] | (string | number)[];
14
14
  queryHeaders?: never;
15
15
  withCredentials?: never;
16
16
  }
17
17
  interface SelfHostedProviderProps extends BaseQuillProviderProps {
18
+ tenants?: {
19
+ tenantField: string;
20
+ tenantIds: (string | number)[];
21
+ }[] | (string | number)[] | (string | number)[];
18
22
  queryEndpoint: string;
19
23
  queryHeaders?: object;
20
24
  withCredentials?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"QuillProvider.d.ts","sourceRoot":"","sources":["../../src/QuillProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,sBAAsB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,uBAAwB,SAAQ,sBAAsB;IAC9D,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB;AAED,UAAU,uBAAwB,SAAQ,sBAAsB;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,MAAM,MAAM,kBAAkB,GAAG,uBAAuB,GAAG,uBAAuB,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAwB7B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,QAAA,MAAM,aAAa,kGAShB,kBAAkB,4CAcpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"QuillProvider.d.ts","sourceRoot":"","sources":["../../src/QuillProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,sBAAsB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,uBAAwB,SAAQ,sBAAsB;IAC9D,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB;AAED,UAAU,uBAAwB,SAAQ,sBAAsB;IAC9D,OAAO,CAAC,EACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,MAAM,MAAM,kBAAkB,GAAG,uBAAuB,GAAG,uBAAuB,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAwB7B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,QAAA,MAAM,aAAa,kGAShB,kBAAkB,4CAcpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -4,9 +4,9 @@ export declare const useExport: (reportId?: string, { CustomDocumentComponent, m
4
4
  maximumRowsPerPage?: number;
5
5
  sectionField?: string;
6
6
  }) => {
7
- downloadCSV: () => void;
8
- downloadPDF: () => void;
7
+ downloadPDF: () => Promise<void>;
9
8
  isPDFLoading: boolean;
9
+ downloadCSV: () => Promise<void>;
10
10
  isCSVLoading: boolean;
11
11
  };
12
12
  interface QuillPDFProps {
@@ -1 +1 @@
1
- {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAmE/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;;;CAqPF,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAmE/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA;IACD,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;CAqPvB,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -4,10 +4,8 @@ import { useContext, useMemo, useState } from 'react';
4
4
  import { getData } from '../utils/dataFetcher';
5
5
  import { ClientContext, DashboardContext, DashboardFiltersContext, ReportFiltersContext, TenantContext, } from '../Context';
6
6
  import { cleanDashboardItem } from '../utils/dashboard';
7
- import { defaultQuillTheme } from '../QuillProvider';
8
7
  import { createRoot } from 'react-dom/client';
9
8
  import { flushSync } from 'react-dom';
10
- import { ChartDisplay } from '../Chart';
11
9
  import { fetchReport } from '../utils/report';
12
10
  import jsPDF from 'jspdf';
13
11
  import { quillFormat } from '../utils/valueFormatter';
@@ -77,8 +75,8 @@ sectionField, } = {}) => {
77
75
  const [isPDFLoading, setIsPDFLoading] = useState(false);
78
76
  if (!reportId || !client) {
79
77
  return {
80
- downloadCSV: () => { },
81
- downloadPDF: () => { },
78
+ downloadCSV: async () => { },
79
+ downloadPDF: async () => { },
82
80
  isPDFLoading: false,
83
81
  isCSVLoading: false,
84
82
  };
@@ -247,25 +245,22 @@ function QuillCustomDocumentComponent({ report }) {
247
245
  textAlign: 'left',
248
246
  paddingLeft: 10,
249
247
  // color: theme?.primaryTextColor,
250
- }, children: report.name }) }), _jsxs("div", { style: { paddingLeft: 20, paddingRight: 20 }, children: [report.chartType !== 'table' && (_jsx(ChartDisplay, { overrideTheme: defaultQuillTheme, config: chartReport, containerStyle: {
251
- display: 'flex',
252
- height: 400,
253
- }, loading: false, isAnimationActive: false })), _jsx("div", { style: {
254
- border: '1px solid',
255
- borderRadius: '4px',
248
+ }, children: report.name }) }), _jsx("div", { style: { paddingLeft: 20, paddingRight: 20 }, children: _jsx("div", { style: {
249
+ border: '1px solid',
250
+ borderRadius: '4px',
251
+ borderStyle: 'none',
252
+ }, children: _jsxs("table", { style: {
253
+ fontFamily: 'sans-serif',
254
+ width: '100%',
255
+ borderCollapse: 'collapse',
256
256
  borderStyle: 'none',
257
- }, children: _jsxs("table", { style: {
258
- fontFamily: 'sans-serif',
259
- width: '100%',
260
- borderCollapse: 'collapse',
261
- borderStyle: 'none',
262
- }, children: [_jsx("thead", { style: {
263
- textAlign: 'left',
264
- textOverflow: 'ellipsis',
265
- whiteSpace: 'nowrap',
266
- overflow: 'hidden',
267
- }, children: _jsx("tr", { children: report.columns.map((col, colIndex) => (_jsx("th", { style: { padding: '2px', paddingLeft: '3px' }, children: col.label }, 'head' + colIndex))) }) }), _jsx("tbody", { children: report.rows.map((row, rowIndex) => (_jsx("tr", { children: report.columns.map((col, colIndex) => (_jsx("td", { style: { padding: '2px', paddingLeft: '3px' }, children: quillFormat({
268
- value: row[col.field],
269
- format: col.format,
270
- }) }, 'cell' + col.field + colIndex + rowIndex))) }, 'row' + rowIndex))) })] }) })] })] }));
257
+ }, children: [_jsx("thead", { style: {
258
+ textAlign: 'left',
259
+ textOverflow: 'ellipsis',
260
+ whiteSpace: 'nowrap',
261
+ overflow: 'hidden',
262
+ }, children: _jsx("tr", { children: report.columns.map((col, colIndex) => (_jsx("th", { style: { padding: '2px', paddingLeft: '3px' }, children: col.label }, 'head' + colIndex))) }) }), _jsx("tbody", { children: report.rows.map((row, rowIndex) => (_jsx("tr", { children: report.columns.map((col, colIndex) => (_jsx("td", { style: { padding: '2px', paddingLeft: '3px' }, children: quillFormat({
263
+ value: row[col.field],
264
+ format: col.format,
265
+ }) }, 'cell' + col.field + colIndex + rowIndex))) }, 'row' + rowIndex))) })] }) }) })] }));
271
266
  }
@@ -3,4 +3,16 @@ export declare const EMPTY_CLIENT: Client;
3
3
  export declare function fetchClient(publicKey: string, queryEndpoint: string, withCredentials?: boolean, queryHeaders?: HeadersInit): Promise<Client & {
4
4
  allTenantTypes?: QuillTenant[];
5
5
  }>;
6
+ export declare function getClientTenantIds({ queryEndpoint, queryHeaders, withCredentials, tenant, clientId, }: {
7
+ queryEndpoint: string;
8
+ queryHeaders?: HeadersInit;
9
+ withCredentials?: boolean;
10
+ tenant: QuillTenant & {
11
+ id: string;
12
+ };
13
+ clientId: string;
14
+ }): Promise<{
15
+ id: string;
16
+ tenantIds: any;
17
+ }>;
6
18
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,YAAY,EAAE,MAM1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,eAAe,UAAQ,EACvB,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CACR,MAAM,GAAG;IAAE,cAAc,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,CAC5C,CAwEA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,YAAY,EAAE,MAM1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,eAAe,UAAQ,EACvB,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,MAAM,GAAG;IAAE,cAAc,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAgDtD;AAED,wBAAsB,kBAAkB,CAAC,EACvC,aAAa,EACb,YAAY,EACZ,eAAe,EACf,MAAM,EACN,QAAQ,GACT,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,WAAW,GAAG;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;;;GAyCA"}
@@ -27,36 +27,13 @@ export async function fetchClient(publicKey, queryEndpoint, withCredentials = fa
27
27
  const json = await response.json();
28
28
  result = json.data?.data?.client || json.data?.client;
29
29
  clientTenantIds = await Promise.all(result.allTenantTypes?.map(async (tenant) => {
30
- const tenantResponse = await fetch(queryEndpoint, {
31
- method: 'POST',
32
- headers: {
33
- ...queryHeaders,
34
- 'Content-Type': 'application/json',
35
- },
36
- body: JSON.stringify({
37
- metadata: {
38
- tenantId: tenant.id,
39
- task: 'tenant-query',
40
- clientId: result.id,
41
- },
42
- }),
43
- credentials: withCredentials ? 'include' : 'omit',
30
+ return await getClientTenantIds({
31
+ queryEndpoint,
32
+ queryHeaders,
33
+ withCredentials,
34
+ tenant,
35
+ clientId: publicKey,
44
36
  });
45
- const data = await tenantResponse.json();
46
- if (!data.data?.rows) {
47
- return {
48
- id: tenant.id,
49
- tenantIds: [],
50
- };
51
- }
52
- return {
53
- id: tenant.id,
54
- tenantIds: data.data.rows.map((row) => ({
55
- id: row[tenant.tenantField],
56
- flag: row['quill_flag'],
57
- label: row['quill_label'],
58
- })),
59
- };
60
37
  }));
61
38
  }
62
39
  catch (error) {
@@ -66,7 +43,48 @@ export async function fetchClient(publicKey, queryEndpoint, withCredentials = fa
66
43
  ...result,
67
44
  allTenantTypes: result.allTenantTypes?.map((tenant) => ({
68
45
  ...tenant,
69
- tenantIds: clientTenantIds?.find((clientTenant) => clientTenant.id === tenant.id)?.tenantIds || [],
46
+ tenantIds: clientTenantIds?.find((clientTenant) => clientTenant.id === tenant.id)
47
+ ?.tenantIds || [],
48
+ })),
49
+ };
50
+ }
51
+ export async function getClientTenantIds({ queryEndpoint, queryHeaders, withCredentials, tenant, clientId, }) {
52
+ if (tenant.scope === 'database') {
53
+ return {
54
+ id: tenant.id,
55
+ tenantIds: [],
56
+ };
57
+ }
58
+ const tenantResponse = await fetch(queryEndpoint, {
59
+ method: 'POST',
60
+ headers: {
61
+ ...queryHeaders,
62
+ 'Content-Type': 'application/json',
63
+ },
64
+ body: JSON.stringify({
65
+ metadata: {
66
+ tenantId: tenant.id,
67
+ task: 'tenant-query',
68
+ clientId: clientId,
69
+ },
70
+ }),
71
+ credentials: withCredentials ? 'include' : 'omit',
72
+ });
73
+ const data = await tenantResponse.json();
74
+ if (!data.data?.rows || !data.data?.fields) {
75
+ return {
76
+ id: tenant.id,
77
+ tenantIds: [],
78
+ };
79
+ }
80
+ const tenantFieldDataType = data.data.fields.find((field) => field.name === tenant.tenantField)?.dataTypeID;
81
+ const isNumber = [20, 21, 23, 700, 701, 1700].includes(tenantFieldDataType);
82
+ return {
83
+ id: tenant.id,
84
+ tenantIds: data.data.rows.map((row) => ({
85
+ id: isNumber ? Number(row[tenant.tenantField]) : row[tenant.tenantField],
86
+ flag: row['quill_flag'],
87
+ label: row['quill_label'],
70
88
  })),
71
89
  };
72
90
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/react",
3
- "version": "2.13.33",
3
+ "version": "2.13.34",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/esm/index.js",