@quillsql/react 2.11.25 → 2.11.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +15 -12
  3. package/dist/cjs/ChartBuilder.d.ts +7 -20
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +25 -25
  6. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  7. package/dist/cjs/ChartEditor.js +3 -3
  8. package/dist/cjs/Dashboard.d.ts +2 -1
  9. package/dist/cjs/Dashboard.d.ts.map +1 -1
  10. package/dist/cjs/ReportBuilder.d.ts +6 -4
  11. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  12. package/dist/cjs/ReportBuilder.js +208 -126
  13. package/dist/cjs/SQLEditor.d.ts +4 -11
  14. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  15. package/dist/cjs/SQLEditor.js +31 -97
  16. package/dist/cjs/components/Dashboard/DashboardFilter.js +1 -1
  17. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  18. package/dist/cjs/components/Dashboard/MetricComponent.js +9 -12
  19. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  20. package/dist/cjs/components/Dashboard/TableComponent.js +12 -10
  21. package/dist/cjs/components/QuillTable.d.ts +4 -1
  22. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  23. package/dist/cjs/components/QuillTable.js +1 -1
  24. package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -2
  25. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +27 -24
  26. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  27. package/dist/cjs/internals/ReportBuilder/PivotList.js +9 -7
  28. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +9 -2
  29. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  30. package/dist/cjs/internals/ReportBuilder/PivotModal.js +46 -41
  31. package/dist/cjs/models/Columns.d.ts +11 -0
  32. package/dist/cjs/models/Columns.d.ts.map +1 -0
  33. package/dist/cjs/models/Columns.js +2 -0
  34. package/dist/cjs/models/Tables.d.ts +0 -8
  35. package/dist/cjs/models/Tables.d.ts.map +1 -1
  36. package/dist/cjs/utils/astProcessing.d.ts +3 -0
  37. package/dist/cjs/utils/astProcessing.d.ts.map +1 -0
  38. package/dist/cjs/utils/astProcessing.js +20 -0
  39. package/dist/cjs/utils/columnProcessing.d.ts +9 -0
  40. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -0
  41. package/dist/cjs/utils/columnProcessing.js +207 -0
  42. package/dist/cjs/utils/dashboard.js +9 -9
  43. package/dist/cjs/utils/pivotProcessing.d.ts +2 -1
  44. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  45. package/dist/cjs/utils/pivotProcessing.js +3 -8
  46. package/dist/cjs/utils/tableProcessing.d.ts +2 -2
  47. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  48. package/dist/cjs/utils/tableProcessing.js +1 -3
  49. package/dist/cjs/utils/valueFormatter.d.ts +2 -1
  50. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  51. package/dist/cjs/utils/valueFormatter.js +12 -1
  52. package/dist/esm/Chart.d.ts.map +1 -1
  53. package/dist/esm/Chart.js +15 -12
  54. package/dist/esm/ChartBuilder.d.ts +7 -20
  55. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  56. package/dist/esm/ChartBuilder.js +25 -25
  57. package/dist/esm/ChartEditor.d.ts.map +1 -1
  58. package/dist/esm/ChartEditor.js +3 -3
  59. package/dist/esm/Dashboard.d.ts +2 -1
  60. package/dist/esm/Dashboard.d.ts.map +1 -1
  61. package/dist/esm/ReportBuilder.d.ts +6 -4
  62. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  63. package/dist/esm/ReportBuilder.js +204 -122
  64. package/dist/esm/SQLEditor.d.ts +4 -11
  65. package/dist/esm/SQLEditor.d.ts.map +1 -1
  66. package/dist/esm/SQLEditor.js +30 -95
  67. package/dist/esm/components/Dashboard/DashboardFilter.js +1 -1
  68. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  69. package/dist/esm/components/Dashboard/MetricComponent.js +9 -12
  70. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  71. package/dist/esm/components/Dashboard/TableComponent.js +12 -10
  72. package/dist/esm/components/QuillTable.d.ts +4 -1
  73. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  74. package/dist/esm/components/QuillTable.js +1 -1
  75. package/dist/esm/components/ReportBuilder/convert.d.ts +2 -2
  76. package/dist/esm/internals/ReportBuilder/PivotList.d.ts +27 -24
  77. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  78. package/dist/esm/internals/ReportBuilder/PivotList.js +9 -7
  79. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +9 -2
  80. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  81. package/dist/esm/internals/ReportBuilder/PivotModal.js +48 -43
  82. package/dist/esm/models/Columns.d.ts +11 -0
  83. package/dist/esm/models/Columns.d.ts.map +1 -0
  84. package/dist/esm/models/Columns.js +1 -0
  85. package/dist/esm/models/Tables.d.ts +0 -8
  86. package/dist/esm/models/Tables.d.ts.map +1 -1
  87. package/dist/esm/utils/astProcessing.d.ts +3 -0
  88. package/dist/esm/utils/astProcessing.d.ts.map +1 -0
  89. package/dist/esm/utils/astProcessing.js +16 -0
  90. package/dist/esm/utils/columnProcessing.d.ts +9 -0
  91. package/dist/esm/utils/columnProcessing.d.ts.map +1 -0
  92. package/dist/esm/utils/columnProcessing.js +201 -0
  93. package/dist/esm/utils/dashboard.js +9 -9
  94. package/dist/esm/utils/pivotProcessing.d.ts +2 -1
  95. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  96. package/dist/esm/utils/pivotProcessing.js +3 -8
  97. package/dist/esm/utils/tableProcessing.d.ts +2 -2
  98. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  99. package/dist/esm/utils/tableProcessing.js +1 -3
  100. package/dist/esm/utils/valueFormatter.d.ts +2 -1
  101. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  102. package/dist/esm/utils/valueFormatter.js +11 -0
  103. package/package.json +1 -1
  104. package/dist/cjs/utils/types.d.ts +0 -4
  105. package/dist/cjs/utils/types.d.ts.map +0 -1
  106. package/dist/cjs/utils/types.js +0 -52
  107. package/dist/cjs/utils/valueFormatterCSV.d.ts +0 -17
  108. package/dist/cjs/utils/valueFormatterCSV.d.ts.map +0 -1
  109. package/dist/cjs/utils/valueFormatterCSV.js +0 -99
  110. package/dist/esm/utils/types.d.ts +0 -4
  111. package/dist/esm/utils/types.d.ts.map +0 -1
  112. package/dist/esm/utils/types.js +0 -48
  113. package/dist/esm/utils/valueFormatterCSV.d.ts +0 -17
  114. package/dist/esm/utils/valueFormatterCSV.d.ts.map +0 -1
  115. package/dist/esm/utils/valueFormatterCSV.js +0 -95
@@ -46,7 +46,7 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
46
46
  const getDistinctValues = async () => {
47
47
  if (columns) {
48
48
  const stringColumns = columns.filter((column) => {
49
- return (0, ast_1.isTextColumnType)(column.fieldType || column.format);
49
+ return column.format === 'string';
50
50
  });
51
51
  if (stringColumns.length === 0) {
52
52
  const possibleColumns = (0, pivotProcessing_1.getPossiblePivotFieldOptions)(columns, {});
@@ -156,15 +156,6 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
156
156
  pivotValueField,
157
157
  pivotAggregation,
158
158
  ]);
159
- (0, react_1.useEffect)(() => {
160
- setSelectedPivotIndex(-1);
161
- setSelectedPivotType('');
162
- setPivotRowField(undefined);
163
- setPivotColumnField(undefined);
164
- setPivotValueField(undefined);
165
- setPivotAggregation(undefined);
166
- setErrors([]);
167
- }, [selectedTable]);
168
159
  (0, react_1.useEffect)(() => {
169
160
  if (!initialUniqueValues) {
170
161
  return;
@@ -445,7 +436,7 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
445
436
  }), width: 200 }), (0, jsx_runtime_1.jsx)(SelectComponent, { id: "pivot-row-field", label: "Aggregation type", value: pivotAggregation, onChange: (e) => {
446
437
  if (e.target.value !== 'count' &&
447
438
  pivotValueField &&
448
- !ChartBuilder_1.numberFormatOptions.includes(columns.find((col) => col.field === pivotValueField)?.format)) {
439
+ !ChartBuilder_1.numberFormatOptions.includes(columns.find((col) => col.field === pivotValueField).format)) {
449
440
  setPivotValueField(null);
450
441
  }
451
442
  pivotFieldChange('aggregationType', e.target.value);
@@ -569,7 +560,7 @@ function castValueToDate(value) {
569
560
  }
570
561
  return new Date(value);
571
562
  }
572
- function getRecentDate(a, b) {
563
+ function getLatestDate(a, b) {
573
564
  return a > b ? a : b;
574
565
  }
575
566
  function getEarliestDate(a, b) {
@@ -580,7 +571,7 @@ function getDateRange(dateRange, column, data) {
580
571
  const ONE_CENTURY_IN_MILLISECONDS = 100 * 365 * 24 * 60 * 60 * 1000;
581
572
  const maxDate = new Date(currentTime + ONE_CENTURY_IN_MILLISECONDS);
582
573
  const minDate = new Date(0);
583
- if (!dateRange || !dateRange[0]) {
574
+ if (!dateRange) {
584
575
  if (data.length == 0 || !data[0][column]) {
585
576
  return { start: new Date(), end: new Date() };
586
577
  }
@@ -591,22 +582,30 @@ function getDateRange(dateRange, column, data) {
591
582
  end: firstDate || new Date(),
592
583
  };
593
584
  }
594
- let earliestDate = firstDate;
595
- let lastestDate = firstDate;
585
+ let earliestDate = undefined;
586
+ let latestDate = undefined;
587
+ for (let i = 0; i < data.length; i++) {
588
+ if (earliestDate && latestDate) {
589
+ break;
590
+ }
591
+ const value = castValueToDate(data[i][column]);
592
+ earliestDate = value && value > minDate ? value : null;
593
+ latestDate = value && value < maxDate ? value : null;
594
+ }
595
+ if (!earliestDate || !latestDate) {
596
+ return {
597
+ start: earliestDate || new Date(),
598
+ end: latestDate || new Date(),
599
+ };
600
+ }
596
601
  for (let i = 0; i < data.length; i++) {
597
602
  if (data[i][column]) {
598
603
  const value = castValueToDate(data[i][column]);
599
- if (lastestDate && lastestDate > minDate) {
600
- lastestDate = value;
601
- }
602
604
  if (value && value < maxDate) {
603
- lastestDate =
604
- lastestDate === null ? value : getRecentDate(lastestDate, value);
605
+ latestDate =
606
+ latestDate === null ? value : getLatestDate(latestDate, value);
605
607
  }
606
608
  if (value && value > minDate) {
607
- if (earliestDate && earliestDate < minDate) {
608
- earliestDate = value;
609
- }
610
609
  earliestDate =
611
610
  earliestDate === null
612
611
  ? value
@@ -615,40 +614,40 @@ function getDateRange(dateRange, column, data) {
615
614
  }
616
615
  }
617
616
  return {
618
- start: earliestDate,
619
- end: lastestDate,
617
+ start: earliestDate || new Date(),
618
+ end: latestDate || new Date(),
620
619
  };
621
620
  }
622
621
  else {
623
- return { start: dateRange[0], end: dateRange[1] };
622
+ return dateRange;
624
623
  }
625
624
  }
626
625
  function getDateBuckets(dateRange, column, data) {
627
- if (!dateRange || !dateRange[0]) {
626
+ if (!dateRange) {
628
627
  return (0, date_fns_1.eachMonthOfInterval)(getDateRange(dateRange, column, data));
629
628
  }
630
- const dayDifference = (0, date_fns_1.differenceInDays)(new Date(dateRange[1]), new Date(dateRange[0]));
629
+ const dayDifference = (0, date_fns_1.differenceInDays)(dateRange.end, dateRange.start);
631
630
  return dayDifferenceToInterval(dayDifference, dateRange);
632
631
  }
633
632
  function getCompDateBuckets(dateRange, compDateRange, column, data) {
634
- if (!dateRange || !dateRange[0]) {
635
- return (0, date_fns_1.eachMonthOfInterval)(getDateRange(dateRange, column, data));
633
+ if (!dateRange) {
634
+ return (0, date_fns_1.eachMonthOfInterval)(getDateRange(undefined, column, data));
636
635
  }
637
- const dayDifference = (0, date_fns_1.differenceInDays)(new Date(dateRange[1]), new Date(dateRange[0]));
636
+ const dayDifference = (0, date_fns_1.differenceInDays)(dateRange.end, dateRange.start);
638
637
  return dayDifferenceToInterval(dayDifference, compDateRange);
639
638
  }
640
639
  function dayDifferenceToInterval(dayDifference, dateRange) {
641
640
  if (dayDifference < 14) {
642
- return (0, date_fns_1.eachDayOfInterval)({ start: dateRange[0], end: dateRange[1] });
641
+ return (0, date_fns_1.eachDayOfInterval)(dateRange);
643
642
  }
644
643
  else if (dayDifference < 60) {
645
- return (0, date_fns_1.eachWeekOfInterval)({ start: dateRange[0], end: dateRange[1] }, { weekStartsOn: 1 });
644
+ return (0, date_fns_1.eachWeekOfInterval)(dateRange, { weekStartsOn: 1 });
646
645
  }
647
646
  else if (dayDifference < 365 * 3) {
648
- return (0, date_fns_1.eachMonthOfInterval)({ start: dateRange[0], end: dateRange[1] });
647
+ return (0, date_fns_1.eachMonthOfInterval)(dateRange);
649
648
  }
650
649
  else {
651
- return (0, date_fns_1.eachYearOfInterval)({ start: dateRange[0], end: dateRange[1] });
650
+ return (0, date_fns_1.eachYearOfInterval)(dateRange);
652
651
  }
653
652
  }
654
653
  function getDateString(value, dateRange) {
@@ -714,23 +713,22 @@ const fixBigQueryData = (data = []) => {
714
713
  }
715
714
  return newData;
716
715
  };
717
- function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1, compRange = null) {
716
+ function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1, compRange = undefined) {
718
717
  // If there is no rowField, aggregate on the valueField
719
718
  if (!pivot.rowField) {
720
719
  return valueFieldAggregation(data, pivot.valueField, pivot.aggregationType, isComparison);
721
720
  }
722
721
  // Handle edge-case for BigQuery objects.
723
722
  data = fixBigQueryData(data);
724
- if (dateRange[0] === null && dateRange[1] === null) {
725
- dateRange = [new Date(0), (0, date_fns_1.add)(new Date(), { years: 5 })];
723
+ if (!dateRange) {
726
724
  if (isDateField(pivot.rowFieldType)) {
727
725
  dateRange = getDateRange(dateRange, pivot.rowField, data);
728
726
  }
729
727
  }
730
728
  if (!compRange ||
731
- isNullUndefinedOrInvalidDate(compRange[0]) ||
732
- isNullUndefinedOrInvalidDate(compRange[1])) {
733
- compRange = null;
729
+ isNullUndefinedOrInvalidDate(compRange.start) ||
730
+ isNullUndefinedOrInvalidDate(compRange.end)) {
731
+ compRange = undefined;
734
732
  }
735
733
  const pivotRows = [];
736
734
  const uniqueRows = (isDateField(pivot.rowFieldType)
@@ -987,6 +985,13 @@ function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1,
987
985
  }
988
986
  }
989
987
  });
988
+ if (pivot.aggregationType === 'max' || pivot.aggregationType === 'min') {
989
+ for (const [key, value] of Object.entries(row)) {
990
+ if (value === '-Infinity' || value === 'Infinity') {
991
+ row[key] = null;
992
+ }
993
+ }
994
+ }
990
995
  pivotRows.push(row);
991
996
  });
992
997
  const columns = [
@@ -0,0 +1,11 @@
1
+ export interface Column {
2
+ field: string;
3
+ label: string;
4
+ format: string;
5
+ }
6
+ export interface ColumnInternal extends Column {
7
+ fieldType: string;
8
+ dataTypeID: number;
9
+ jsType: string;
10
+ }
11
+ //# sourceMappingURL=Columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Columns.d.ts","sourceRoot":"","sources":["../../../src/models/Columns.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,11 +1,3 @@
1
- export interface Column {
2
- label: string;
3
- field: string;
4
- name: string;
5
- displayName: string;
6
- fieldType: string;
7
- format: string;
8
- }
9
1
  export interface Table {
10
2
  }
11
3
  export interface YAxisField {
@@ -1 +1 @@
1
- {"version":3,"file":"Tables.d.ts","sourceRoot":"","sources":["../../../src/models/Tables.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;CAAG;AAEzB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"Tables.d.ts","sourceRoot":"","sources":["../../../src/models/Tables.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;CAAG;AAEzB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,3 @@
1
+ import { Column } from '../models/Columns';
2
+ export declare function processStarColumn(ast: any, columns: Column[]): any;
3
+ //# sourceMappingURL=astProcessing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAe5D"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processStarColumn = void 0;
4
+ function processStarColumn(ast, columns) {
5
+ if (ast.columns === '*') {
6
+ ast.columns = columns.map((column) => {
7
+ return {
8
+ type: 'expr',
9
+ expr: {
10
+ type: 'column_ref',
11
+ table: null,
12
+ column: column.field,
13
+ },
14
+ as: null,
15
+ };
16
+ });
17
+ }
18
+ return ast;
19
+ }
20
+ exports.processStarColumn = processStarColumn;
@@ -0,0 +1,9 @@
1
+ import { ColumnInfo } from '../components/ReportBuilder/schema';
2
+ import { Column, ColumnInternal } from '../models/Columns';
3
+ export declare function convertPostgresColumn(field: {
4
+ name: string;
5
+ dataTypeID: number;
6
+ }): ColumnInternal;
7
+ export declare function convertColumnInfoToColumnInternal(columnInfo: ColumnInfo): ColumnInternal;
8
+ export declare function convertFormatToJsType(column: Column): string;
9
+ //# sourceMappingURL=columnProcessing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/columnProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE3D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,cAAc,CAyGjB;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,UAAU,GACrB,cAAc,CAShB;AAiFD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY5D"}
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertFormatToJsType = exports.convertColumnInfoToColumnInternal = exports.convertPostgresColumn = void 0;
4
+ function convertPostgresColumn(field) {
5
+ let format;
6
+ let fieldType;
7
+ let jsType;
8
+ switch (field.dataTypeID) {
9
+ case 16: // bool
10
+ format = 'string';
11
+ break;
12
+ case 20: // int8
13
+ case 21: // int2
14
+ case 23: // int4
15
+ format = 'whole_number';
16
+ break;
17
+ case 700: // float4
18
+ case 701: // float8
19
+ case 1700: // numeric
20
+ format = 'two_decimal_places';
21
+ break;
22
+ case 1082: // date
23
+ case 1083: // time
24
+ case 1184: // timestamptz
25
+ case 1114: // timestamp
26
+ format = 'MMM_dd_yyyy';
27
+ break;
28
+ case 1186: // interval
29
+ case 1043: // varchar
30
+ default:
31
+ format = 'string';
32
+ }
33
+ switch (field.dataTypeID) {
34
+ case 16: // boolean
35
+ fieldType = 'bool';
36
+ break;
37
+ case 20: // int8
38
+ fieldType = 'int8';
39
+ break;
40
+ case 21: // int2
41
+ fieldType = 'int2';
42
+ break;
43
+ case 23: // int4
44
+ fieldType = 'int4';
45
+ break;
46
+ case 700: // float4
47
+ fieldType = 'float4';
48
+ break;
49
+ case 701: // float8
50
+ fieldType = 'float8';
51
+ break;
52
+ case 1700: // numeric
53
+ fieldType = 'numeric';
54
+ break;
55
+ case 1082: // date
56
+ fieldType = 'date';
57
+ break;
58
+ case 1083: // time
59
+ fieldType = 'time';
60
+ break;
61
+ case 1184: // timestamptz
62
+ fieldType = 'timestamptz';
63
+ break;
64
+ case 1186: // interval
65
+ fieldType = 'interval';
66
+ break;
67
+ case 1114: // timestamp
68
+ fieldType = 'timestamp';
69
+ break;
70
+ case 1043: // varchar
71
+ default:
72
+ fieldType = 'varchar';
73
+ }
74
+ switch (field.dataTypeID) {
75
+ case 16: // boolean
76
+ jsType = 'bool';
77
+ break;
78
+ case 20: // int8
79
+ case 21: // int2
80
+ case 23: // int4
81
+ case 700: // float4
82
+ case 701: // float8
83
+ case 1700: // numeric
84
+ jsType = 'number';
85
+ break;
86
+ case 1082: // date
87
+ case 1083: // time
88
+ case 1184: // timestamptz
89
+ case 1186: // interval
90
+ case 1114: // timestamp
91
+ jsType = 'date';
92
+ break;
93
+ case 1043: // varchar
94
+ default:
95
+ jsType = 'string';
96
+ }
97
+ return {
98
+ label: field.name,
99
+ field: field.name,
100
+ format,
101
+ fieldType,
102
+ dataTypeID: field.dataTypeID,
103
+ jsType: jsType,
104
+ };
105
+ }
106
+ exports.convertPostgresColumn = convertPostgresColumn;
107
+ function convertColumnInfoToColumnInternal(columnInfo) {
108
+ return {
109
+ label: columnInfo.name,
110
+ field: columnInfo.name,
111
+ format: fieldTypeToFormat(columnInfo.fieldType),
112
+ fieldType: columnInfo.fieldType,
113
+ dataTypeID: fieldTypeToDataTypeID(columnInfo.fieldType),
114
+ jsType: convertFieldTypeToJSType(columnInfo.fieldType),
115
+ };
116
+ }
117
+ exports.convertColumnInfoToColumnInternal = convertColumnInfoToColumnInternal;
118
+ function fieldTypeToFormat(fieldType) {
119
+ switch (fieldType) {
120
+ case 'bool':
121
+ return 'string';
122
+ case 'int8':
123
+ case 'int2':
124
+ case 'int4':
125
+ return 'whole_number';
126
+ case 'float4':
127
+ case 'float8':
128
+ case 'numeric':
129
+ return 'two_decimal_places';
130
+ case 'date':
131
+ case 'time':
132
+ case 'timestamptz':
133
+ case 'timestamp':
134
+ return 'MMM_dd_yyyy';
135
+ case 'interval':
136
+ case 'varchar':
137
+ default:
138
+ return 'string';
139
+ }
140
+ }
141
+ function fieldTypeToDataTypeID(fieldType) {
142
+ switch (fieldType) {
143
+ case 'bool':
144
+ return 16;
145
+ case 'int8':
146
+ return 20;
147
+ case 'int2':
148
+ return 21;
149
+ case 'int4':
150
+ return 23;
151
+ case 'float4':
152
+ return 700;
153
+ case 'float8':
154
+ return 701;
155
+ case 'numeric':
156
+ return 1700;
157
+ case 'date':
158
+ return 1082;
159
+ case 'time':
160
+ return 1083;
161
+ case 'timestamptz':
162
+ return 1184;
163
+ case 'timestamp':
164
+ return 1114;
165
+ case 'interval':
166
+ return 1186;
167
+ case 'varchar':
168
+ default:
169
+ return 1043;
170
+ }
171
+ }
172
+ function convertFieldTypeToJSType(fieldType) {
173
+ switch (fieldType) {
174
+ case 'bool':
175
+ return 'bool';
176
+ case 'int8':
177
+ case 'int2':
178
+ case 'int4':
179
+ case 'float4':
180
+ case 'float8':
181
+ case 'numeric':
182
+ return 'number';
183
+ case 'date':
184
+ case 'time':
185
+ case 'timestamptz':
186
+ case 'timestamp':
187
+ return 'date';
188
+ case 'interval':
189
+ case 'varchar':
190
+ default:
191
+ return 'string';
192
+ }
193
+ }
194
+ function convertFormatToJsType(column) {
195
+ switch (column.format) {
196
+ case 'string':
197
+ return 'string';
198
+ case 'whole_number':
199
+ case 'two_decimal_places':
200
+ return 'number';
201
+ case 'MMM_dd_yyyy':
202
+ return 'date';
203
+ default:
204
+ return 'string';
205
+ }
206
+ }
207
+ exports.convertFormatToJsType = convertFormatToJsType;
@@ -121,15 +121,15 @@ function getPivotTable(itemInfo, dashboardFilters, config = undefined) {
121
121
  const data = itemInfo ? itemInfo : config;
122
122
  return pivot && data?.rows
123
123
  ? (0, PivotModal_1.generatePivotTable)(pivot, JSON.parse(JSON.stringify(data.rows)), // deep copy
124
- dateFilter?.startDate
125
- ? [dateFilter?.startDate, dateFilter?.endDate, null]
126
- : [null, null, null], Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate
127
- ? [
128
- dateFilter?.comparisonRange.startDate,
129
- dateFilter?.comparisonRange.endDate,
130
- null,
131
- ]
132
- : [null, null, null])
124
+ dateFilter?.startDate && dateFilter?.endDate
125
+ ? { start: dateFilter.startDate, end: dateFilter.endDate }
126
+ : undefined, Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate &&
127
+ dateFilter?.comparisonRange?.endDate
128
+ ? {
129
+ start: dateFilter.comparisonRange.startDate,
130
+ end: dateFilter.comparisonRange.endDate,
131
+ }
132
+ : undefined)
133
133
  : null;
134
134
  }
135
135
  /**
@@ -1,11 +1,12 @@
1
1
  import { Pivot } from '../internals/ReportBuilder/PivotModal';
2
+ import { Column } from '../models/Columns';
2
3
  export declare function pivotToSql(pivot: Pivot, query: string, client: any): {
3
4
  query: string;
4
5
  preQueries?: string[];
5
6
  runQueryConfig?: any;
6
7
  } | undefined;
7
8
  export declare function isValidPivot(pivot: Pivot): boolean;
8
- export declare function getPossiblePivotFieldOptions(columns: any, uniqueValues: {
9
+ export declare function getPossiblePivotFieldOptions(columns: Column[], uniqueValues: {
9
10
  [field: string]: any;
10
11
  }): {
11
12
  rowFields: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"pivotProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotProcessing.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAG9D,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,GAAG,GACV;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,SAAS,CAgD5E;AAmDD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,WAgBxC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,GAAG,EACZ,YAAY,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE;;;;EA8CvC;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE;IACf,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,GAAG,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC;CAClB,GACA,KAAK,CAqCP"}
1
+ {"version":3,"file":"pivotProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotProcessing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAG3D,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,GAAG,GACV;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,SAAS,CAgD5E;AAmDD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,WAgBxC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE;;;;EAsCvC;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE;IACf,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,GAAG,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC;CAClB,GACA,KAAK,CAqCP"}
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cleanPivot = exports.getPossiblePivotFieldOptions = exports.isValidPivot = exports.pivotToSql = void 0;
4
- const ChartBuilder_1 = require("../ChartBuilder");
5
- const ast_1 = require("../components/ReportBuilder/ast");
6
4
  const util_1 = require("../components/ReportBuilder/util");
5
+ const valueFormatter_1 = require("./valueFormatter");
7
6
  function pivotToSql(pivot, query, client) {
8
7
  const processedAggType = pivot.aggregationType?.toLowerCase() === 'average'
9
8
  ? 'avg'
@@ -110,9 +109,7 @@ function getPossiblePivotFieldOptions(columns, uniqueValues) {
110
109
  let valueFields = [];
111
110
  for (let column of columns) {
112
111
  // row fields can be dates or strings
113
- if (column.format === 'date' ||
114
- column.fieldType === 'date' ||
115
- ChartBuilder_1.dateFormatOptions.includes(column.format)) {
112
+ if (valueFormatter_1.DATE_FORMAT_TYPES.includes(column.format)) {
116
113
  rowFields.push(column.field);
117
114
  }
118
115
  // column fields can be strings
@@ -129,9 +126,7 @@ function getPossiblePivotFieldOptions(columns, uniqueValues) {
129
126
  }
130
127
  }
131
128
  // value fields can be numbers
132
- if (column.format === 'whole_number' ||
133
- ChartBuilder_1.numberFormatOptions.includes(column.format) ||
134
- (0, ast_1.isNumericColumnType)(column.fieldType)) {
129
+ if (valueFormatter_1.NUMBER_FORMAT_TYPES.includes(column.format)) {
135
130
  if (!(0, util_1.isIdColumn)(column.field)) {
136
131
  valueFields.push(column.field);
137
132
  }
@@ -1,5 +1,5 @@
1
- import { ColumnInfo } from '../components/ReportBuilder/schema';
2
- export declare const getUniqueValuesByColumns: (columns: ColumnInfo[], query: string, rows: any, client: any) => Promise<{
1
+ import { Column } from '../models/Columns';
2
+ export declare const getUniqueValuesByColumns: (columns: Column[], query: string, rows: any, client: any) => Promise<{
3
3
  [column: string]: {
4
4
  [value: string]: boolean;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAa,MAAM,oCAAoC,CAAC;AAI3E,eAAO,MAAM,wBAAwB,YAC1B,UAAU,EAAE,SACd,MAAM,QACP,GAAG,UACD,GAAG;;;;SA2DZ,CAAC"}
1
+ {"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,eAAO,MAAM,wBAAwB,YAC1B,MAAM,EAAE,SACV,MAAM,QACP,GAAG,UACD,GAAG;;;;SAwDZ,CAAC"}
@@ -4,9 +4,7 @@ exports.getUniqueValuesByColumns = void 0;
4
4
  const dataFetcher_1 = require("./dataFetcher");
5
5
  const queryConstructor_1 = require("./queryConstructor");
6
6
  const getUniqueValuesByColumns = async (columns, query, rows, client) => {
7
- const stringNames = columns.map(
8
- // @ts-ignore
9
- (column) => column.name || column.field);
7
+ const stringNames = columns.map((column) => column.field);
10
8
  const uniqueValues = {};
11
9
  if (!client.databaseType ||
12
10
  client.databaseType.toLowerCase() === 'bigquery') {
@@ -1,5 +1,5 @@
1
1
  import { type AxisFormat } from '../Dashboard';
2
- type Field = {
2
+ export type Field = {
3
3
  _id: string;
4
4
  label: string;
5
5
  field: string;
@@ -11,6 +11,7 @@ type Props = {
11
11
  fields: Field[];
12
12
  };
13
13
  export declare const DATE_FORMAT_TYPES: string[];
14
+ export declare const NUMBER_FORMAT_TYPES: string[];
14
15
  /**
15
16
  * Pretty-prints the given values to their nice-looking string form.
16
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"valueFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatter.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAQ7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,6BAA8B,KAAK,KAAG,MAwChE,CAAC;AAEF,eAAO,MAAM,WAAW;WAIf,GAAG;YACF,MAAM;MACZ,MAoCH,CAAC;AAoMF,eAAO,MAAM,aAAa;;;;WAGhB,MAAM,KACb,MA6CF,CAAC"}
1
+ {"version":3,"file":"valueFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatter.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAQ7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAM/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,6BAA8B,KAAK,KAAG,MAwChE,CAAC;AAEF,eAAO,MAAM,WAAW;WAIf,GAAG;YACF,MAAM;MACZ,MAwCH,CAAC;AAoMF,eAAO,MAAM,aAAa;;;;WAGhB,MAAM,KACb,MA6CF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.compareValues = exports.quillFormat = exports.valueFormatter = exports.DATE_FORMAT_TYPES = void 0;
3
+ exports.compareValues = exports.quillFormat = exports.valueFormatter = exports.NUMBER_FORMAT_TYPES = exports.DATE_FORMAT_TYPES = void 0;
4
4
  const date_fns_1 = require("date-fns");
5
5
  const date_fns_tz_1 = require("date-fns-tz");
6
6
  exports.DATE_FORMAT_TYPES = [
@@ -12,6 +12,13 @@ exports.DATE_FORMAT_TYPES = [
12
12
  'MMM_dd_hh:mm_ap_pm',
13
13
  'wo, yyyy',
14
14
  ];
15
+ exports.NUMBER_FORMAT_TYPES = [
16
+ 'whole_number',
17
+ 'one_decimal_place',
18
+ 'two_decimal_places',
19
+ 'dollar_amount',
20
+ 'dollar_cents',
21
+ ];
15
22
  /**
16
23
  * Pretty-prints the given values to their nice-looking string form.
17
24
  */
@@ -54,6 +61,10 @@ const valueFormatter = ({ value, field, fields }) => {
54
61
  };
55
62
  exports.valueFormatter = valueFormatter;
56
63
  const quillFormat = ({ value, format, }) => {
64
+ // Handle special case, if value is null and format is numeric display '-'
65
+ if (value === null && exports.NUMBER_FORMAT_TYPES.includes(format)) {
66
+ return '-';
67
+ }
57
68
  const HANDLERS = {
58
69
  percent: formatPercent,
59
70
  dollar_amount: formatDollarAmount,
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgB7C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAsGjD,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAQhE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAeF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,aAAa,GAAG,GAAG,CAAC;IAE7B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEzC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,iBAAiB,CAAC,EAAE,CAClB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,UAAU,KACd,YAAY,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CA2C/B,CAAC;AAulBF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgB7C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAsGjD,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAQhE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAeF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,aAAa,GAAG,GAAG,CAAC;IAE7B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEzC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,iBAAiB,CAAC,EAAE,CAClB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,UAAU,KACd,YAAY,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CA2C/B,CAAC;AA4lBF,eAAe,KAAK,CAAC"}