logitude-dashboard-library 3.2.65 → 3.2.67
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/assets/styles/dl-dashboard.scss +178 -8
- package/dist/features/Dashboard/ChartsComponents/CustomCharts/PivotAgGridSupport.d.ts +27 -0
- package/dist/index.js +289 -30
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +289 -30
- package/dist/index.modern.js.map +1 -1
- package/dist/styles/dl-dashboard.scss +178 -8
- package/package.json +1 -1
|
@@ -926,23 +926,71 @@ $dark-grey: #717585;
|
|
|
926
926
|
font-family: "Manrope", sans-serif;
|
|
927
927
|
}
|
|
928
928
|
|
|
929
|
+
/* Match DevExtreme pivot typography / colors (custom DX overrides above). */
|
|
930
|
+
.dl-ag-pivot-grid.ag-theme-balham {
|
|
931
|
+
font-family: "Manrope", sans-serif;
|
|
932
|
+
font-size: 12px;
|
|
933
|
+
color: #46494A;
|
|
934
|
+
--ag-font-family: "Manrope", sans-serif;
|
|
935
|
+
--ag-font-size: 12px;
|
|
936
|
+
--ag-foreground-color: #46494A;
|
|
937
|
+
--ag-secondary-foreground-color: #46494A;
|
|
938
|
+
--ag-disabled-foreground-color: #46494A;
|
|
939
|
+
--ag-header-foreground-color: #222222;
|
|
940
|
+
--ag-header-background-color: #ffffff;
|
|
941
|
+
--ag-background-color: #ffffff;
|
|
942
|
+
--ag-odd-row-background-color: #ffffff;
|
|
943
|
+
--ag-selected-row-background-color: rgba(221, 221, 221, 0.35);
|
|
944
|
+
--ag-row-hover-color: rgba(221, 221, 221, 0.15);
|
|
945
|
+
--ag-border-color: #DFE1E3;
|
|
946
|
+
--ag-row-border-color: #DFE1E3;
|
|
947
|
+
--ag-header-column-separator-color: #DFE1E3;
|
|
948
|
+
--ag-header-column-resize-handle-color: #DFE1E3;
|
|
949
|
+
}
|
|
950
|
+
|
|
929
951
|
.dl-ag-pivot-grid .ag-root-wrapper {
|
|
930
|
-
border: 1px solid #
|
|
952
|
+
border: 1px solid #DFE1E3;
|
|
953
|
+
font-family: "Manrope", sans-serif;
|
|
931
954
|
}
|
|
932
955
|
|
|
933
956
|
.dl-ag-pivot-grid {
|
|
934
|
-
--ag-border-color: #
|
|
935
|
-
--ag-row-border-color: #
|
|
957
|
+
--ag-border-color: #DFE1E3;
|
|
958
|
+
--ag-row-border-color: #DFE1E3;
|
|
959
|
+
--ag-header-column-separator-color: #DFE1E3;
|
|
960
|
+
--ag-header-column-resize-handle-color: #DFE1E3;
|
|
936
961
|
--ag-header-background-color: #ffffff;
|
|
937
962
|
}
|
|
938
963
|
|
|
964
|
+
/* Force every Ag Grid structural border to the same color. */
|
|
965
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-root-wrapper,
|
|
966
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-root,
|
|
967
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header,
|
|
968
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header-row,
|
|
969
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header-cell,
|
|
970
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header-group-cell,
|
|
971
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-pinned-left-header,
|
|
972
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-pinned-right-header,
|
|
973
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-row,
|
|
974
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-cell,
|
|
975
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-body-viewport,
|
|
976
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-center-cols-viewport,
|
|
977
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-center-cols-container,
|
|
978
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-floating-top,
|
|
979
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-floating-bottom,
|
|
980
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-side-bar,
|
|
981
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-status-bar {
|
|
982
|
+
border-color: #DFE1E3 !important;
|
|
983
|
+
}
|
|
984
|
+
|
|
939
985
|
.dl-ag-pivot-grid.ag-theme-balham .ag-header {
|
|
940
986
|
background-color: #ffffff !important;
|
|
987
|
+
font-family: "Manrope", sans-serif;
|
|
988
|
+
color: #222222;
|
|
941
989
|
}
|
|
942
990
|
|
|
943
991
|
.dl-ag-pivot-grid.ag-theme-balham .ag-header-cell,
|
|
944
992
|
.dl-ag-pivot-grid.ag-theme-balham .ag-header-group-cell {
|
|
945
|
-
font-family: "Manrope";
|
|
993
|
+
font-family: "Manrope", sans-serif;
|
|
946
994
|
font-size: 12px;
|
|
947
995
|
font-weight: 600;
|
|
948
996
|
text-align: center;
|
|
@@ -950,29 +998,88 @@ $dark-grey: #717585;
|
|
|
950
998
|
background-color: #ffffff !important;
|
|
951
999
|
}
|
|
952
1000
|
|
|
1001
|
+
/* Balham defaults height:50% / inset top — force full-height separators. */
|
|
1002
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header-cell::after,
|
|
1003
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header-group-cell::after {
|
|
1004
|
+
height: 100%;
|
|
1005
|
+
top: 0;
|
|
1006
|
+
background-color: #DFE1E3;
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header-cell-text,
|
|
1010
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header-group-text,
|
|
1011
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header-cell-label,
|
|
1012
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header-group-cell-label {
|
|
1013
|
+
font-family: "Manrope", sans-serif;
|
|
1014
|
+
font-size: 12px;
|
|
1015
|
+
font-weight: 600;
|
|
1016
|
+
color: #222222 !important;
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
/*
|
|
1020
|
+
* Header wrap only (Ag Grid 27 / pre-v28). Leaf headers also get white-space via
|
|
1021
|
+
* headerComponentParams.template; group headers have no wrapHeaderText until v32.1.
|
|
1022
|
+
* Do not touch body .ag-cell here.
|
|
1023
|
+
*/
|
|
1024
|
+
.dl-ag-pivot-grid .ag-header-cell-text,
|
|
1025
|
+
.dl-ag-pivot-grid .ag-header-group-text {
|
|
1026
|
+
white-space: normal !important;
|
|
1027
|
+
overflow: visible !important;
|
|
1028
|
+
text-overflow: clip !important;
|
|
1029
|
+
line-height: 1.25;
|
|
1030
|
+
}
|
|
1031
|
+
|
|
953
1032
|
.dl-ag-pivot-grid .ag-header-cell[col-id^="ag-Grid-AutoColumn"] {
|
|
954
1033
|
text-align: left;
|
|
955
1034
|
}
|
|
956
1035
|
|
|
1036
|
+
.dl-ag-pivot-grid .ag-header-cell[col-id^="ag-Grid-AutoColumn"] .ag-header-cell-text,
|
|
1037
|
+
.dl-ag-pivot-grid .ag-header-cell[col-id^="ag-Grid-AutoColumn"] .ag-header-cell-label {
|
|
1038
|
+
text-align: left;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
/* Column grand totals — match DevExtreme .dx-grandtotal */
|
|
957
1042
|
.dl-ag-pivot-grid .ag-header-cell[col-id^="PivotRowTotal_"],
|
|
958
1043
|
.dl-ag-pivot-grid .ag-header-group-cell.dl-pivot-row-grand-total-group-header,
|
|
959
1044
|
.dl-ag-pivot-grid .ag-header-group-cell.dl-pivot-row-grand-total-group-header-sibling {
|
|
960
1045
|
background-color: #f5f5f5 !important;
|
|
961
1046
|
}
|
|
962
1047
|
|
|
1048
|
+
.dl-ag-pivot-grid .ag-cell[col-id^="PivotRowTotal_"] {
|
|
1049
|
+
background-color: #f5f5f5 !important;
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
/* Column group totals (e.g. "Dtest Total") — match DX .dx-total / row-footer totals */
|
|
1053
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header-cell.dl-pivot-column-group-total-header,
|
|
1054
|
+
.dl-ag-pivot-grid.ag-theme-balham .ag-header-group-cell.dl-pivot-column-group-total-header,
|
|
1055
|
+
.dl-ag-pivot-grid .ag-header-cell.dl-pivot-column-group-total-header,
|
|
1056
|
+
.dl-ag-pivot-grid .ag-header-group-cell.dl-pivot-column-group-total-header {
|
|
1057
|
+
background-color: #dddddd33 !important;
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
.dl-ag-pivot-grid .ag-cell.dl-pivot-column-group-total-cell,
|
|
1061
|
+
.dl-ag-pivot-grid .dl-pivot-column-group-total-cell {
|
|
1062
|
+
background-color: #dddddd33 !important;
|
|
1063
|
+
}
|
|
1064
|
+
|
|
963
1065
|
.dl-ag-pivot-grid.ag-theme-balham .ag-cell {
|
|
964
1066
|
border: none !important;
|
|
965
|
-
border-right: 1px solid #
|
|
1067
|
+
border-right: 1px solid #DFE1E3 !important;
|
|
966
1068
|
}
|
|
967
1069
|
|
|
968
1070
|
.dl-ag-pivot-grid.ag-theme-balham .ag-row {
|
|
969
|
-
border-bottom: 1px solid #
|
|
1071
|
+
border-bottom: 1px solid #DFE1E3 !important;
|
|
1072
|
+
background-color: #ffffff;
|
|
970
1073
|
}
|
|
971
1074
|
|
|
972
1075
|
.dl-ag-pivot-grid .dl-ag-pivot-data-cell,
|
|
973
1076
|
.dl-ag-pivot-grid .ag-cell.dl-ag-pivot-data-cell {
|
|
974
1077
|
text-align: right !important;
|
|
975
1078
|
cursor: pointer;
|
|
1079
|
+
font-family: "Manrope", sans-serif;
|
|
1080
|
+
font-size: 12px;
|
|
1081
|
+
font-weight: 500;
|
|
1082
|
+
color: #46494A;
|
|
976
1083
|
}
|
|
977
1084
|
|
|
978
1085
|
.dl-ag-pivot-grid .dl-pivot-date-data-cell,
|
|
@@ -991,11 +1098,27 @@ $dark-grey: #717585;
|
|
|
991
1098
|
text-align: left !important;
|
|
992
1099
|
justify-content: flex-start;
|
|
993
1100
|
background-color: #ffffff;
|
|
1101
|
+
font-family: "Manrope", sans-serif;
|
|
1102
|
+
font-size: 12px;
|
|
1103
|
+
font-weight: 500;
|
|
1104
|
+
color: #46494A;
|
|
1105
|
+
}
|
|
1106
|
+
|
|
1107
|
+
/* Parent row headers — match DevExtreme vertical-headers td div>span (weight 600) */
|
|
1108
|
+
.dl-ag-pivot-grid .ag-row-group.ag-row-group-expanded .dl-ag-pivot-row-label-cell,
|
|
1109
|
+
.dl-ag-pivot-grid .ag-row-group.ag-row-group-contracted .dl-ag-pivot-row-label-cell,
|
|
1110
|
+
.dl-ag-pivot-grid .ag-row-group.ag-row-group-expanded .ag-cell.dl-ag-pivot-row-label-cell,
|
|
1111
|
+
.dl-ag-pivot-grid .ag-row-group.ag-row-group-contracted .ag-cell.dl-ag-pivot-row-label-cell {
|
|
1112
|
+
font-weight: 600 !important;
|
|
1113
|
+
color: #46494A !important;
|
|
994
1114
|
}
|
|
995
1115
|
|
|
996
1116
|
.dl-ag-pivot-grid .ag-row-footer .ag-cell,
|
|
997
1117
|
.dl-ag-pivot-grid .ag-row-group-footer .ag-cell {
|
|
1118
|
+
font-family: "Manrope", sans-serif;
|
|
1119
|
+
font-size: 12px;
|
|
998
1120
|
font-weight: 500;
|
|
1121
|
+
color: #46494A;
|
|
999
1122
|
}
|
|
1000
1123
|
|
|
1001
1124
|
.dl-ag-pivot-grid .ag-row-footer .dl-ag-pivot-row-label-cell,
|
|
@@ -1004,11 +1127,24 @@ $dark-grey: #717585;
|
|
|
1004
1127
|
}
|
|
1005
1128
|
|
|
1006
1129
|
.dl-ag-pivot-grid .ag-cell {
|
|
1007
|
-
font-family: "Manrope";
|
|
1130
|
+
font-family: "Manrope", sans-serif;
|
|
1008
1131
|
font-size: 12px;
|
|
1009
1132
|
font-weight: 500;
|
|
1010
1133
|
color: #46494A;
|
|
1011
|
-
|
|
1134
|
+
/*
|
|
1135
|
+
* Ag Grid autoHeight = wrapperHeight + paddingTop + paddingBottom (CellCtrl.setupAutoHeight).
|
|
1136
|
+
* Balham cell line-height is 26px; with old padding 6+5 the row measured ~37px and beat rowHeight 30.
|
|
1137
|
+
* Vertical padding 2+2 => 26+4 = 30 for single-line cells; wrapped content can still grow.
|
|
1138
|
+
*/
|
|
1139
|
+
padding: 2px 8px 2px 8px;
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
.dl-ag-pivot-grid .ag-cell-value,
|
|
1143
|
+
.dl-ag-pivot-grid .ag-group-value,
|
|
1144
|
+
.dl-ag-pivot-grid .ag-group-child-count {
|
|
1145
|
+
font-family: "Manrope", sans-serif;
|
|
1146
|
+
font-size: 12px;
|
|
1147
|
+
color: #46494A;
|
|
1012
1148
|
}
|
|
1013
1149
|
|
|
1014
1150
|
.dl-ag-pivot-grid .ag-row-group .ag-cell {
|
|
@@ -1020,8 +1156,38 @@ $dark-grey: #717585;
|
|
|
1020
1156
|
text-align: left;
|
|
1021
1157
|
}
|
|
1022
1158
|
|
|
1159
|
+
/*
|
|
1160
|
+
* Ag Grid paints cell backgrounds, not the row. Footer row bg alone is invisible.
|
|
1161
|
+
* Match DevExtreme totals across the full total row (row label + measure cells).
|
|
1162
|
+
*/
|
|
1023
1163
|
.dl-ag-pivot-grid .ag-row-footer,
|
|
1024
1164
|
.dl-ag-pivot-grid .ag-row-group-footer {
|
|
1165
|
+
background-color: #dddddd33 !important;
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
.dl-ag-pivot-grid .ag-row-footer .ag-cell,
|
|
1169
|
+
.dl-ag-pivot-grid .ag-row-group-footer .ag-cell,
|
|
1170
|
+
.dl-ag-pivot-grid .ag-row-footer .dl-ag-pivot-row-label-cell,
|
|
1171
|
+
.dl-ag-pivot-grid .ag-row-group-footer .dl-ag-pivot-row-label-cell,
|
|
1172
|
+
.dl-ag-pivot-grid .ag-row-footer .dl-ag-pivot-data-cell,
|
|
1173
|
+
.dl-ag-pivot-grid .ag-row-group-footer .dl-ag-pivot-data-cell,
|
|
1174
|
+
.dl-ag-pivot-grid .ag-row-footer .ag-cell.dl-ag-pivot-row-label-cell,
|
|
1175
|
+
.dl-ag-pivot-grid .ag-row-group-footer .ag-cell.dl-ag-pivot-row-label-cell,
|
|
1176
|
+
.dl-ag-pivot-grid .ag-row-footer .ag-cell.dl-ag-pivot-data-cell,
|
|
1177
|
+
.dl-ag-pivot-grid .ag-row-group-footer .ag-cell.dl-ag-pivot-data-cell {
|
|
1178
|
+
background-color: #dddddd33 !important;
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
/* Grand Total row */
|
|
1182
|
+
.dl-ag-pivot-grid .ag-row-footer.ag-row-level--1 {
|
|
1183
|
+
background-color: #f5f5f5 !important;
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
.dl-ag-pivot-grid .ag-row-footer.ag-row-level--1 .ag-cell,
|
|
1187
|
+
.dl-ag-pivot-grid .ag-row-footer.ag-row-level--1 .dl-ag-pivot-row-label-cell,
|
|
1188
|
+
.dl-ag-pivot-grid .ag-row-footer.ag-row-level--1 .dl-ag-pivot-data-cell,
|
|
1189
|
+
.dl-ag-pivot-grid .ag-row-footer.ag-row-level--1 .ag-cell.dl-ag-pivot-row-label-cell,
|
|
1190
|
+
.dl-ag-pivot-grid .ag-row-footer.ag-row-level--1 .ag-cell.dl-ag-pivot-data-cell {
|
|
1025
1191
|
background-color: #f5f5f5 !important;
|
|
1026
1192
|
}
|
|
1027
1193
|
|
|
@@ -1033,6 +1199,10 @@ $dark-grey: #717585;
|
|
|
1033
1199
|
visibility: hidden;
|
|
1034
1200
|
}
|
|
1035
1201
|
|
|
1202
|
+
.dl-ag-pivot-grid .ag-icon {
|
|
1203
|
+
color: #46494A;
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1036
1206
|
.dx-scrollbar-hoverable .dx-scrollable-scroll.dx-state-invisible .dx-scrollable-scroll-content {
|
|
1037
1207
|
background-color: rgba(191, 191, 191, .7);
|
|
1038
1208
|
}
|
|
@@ -42,6 +42,25 @@ export declare const getPivotDisplayName: (pivotData: any[], fieldName: string,
|
|
|
42
42
|
export declare const isPivotRowGrandTotalColumnDef: (colDef: any) => boolean;
|
|
43
43
|
export declare const isPivotRowGrandTotalGroupDef: (colGroupDef: any) => boolean;
|
|
44
44
|
export declare const resolvePivotGroupHeaderName: (colGroupDef: any, columnFields: PivotApiField[], lookupDisplayName: (field: PivotApiField, rawValue: any) => string) => string | null;
|
|
45
|
+
/**
|
|
46
|
+
* Ag Grid expandable pivot totals: leaf with pivotTotalColumnIds + columnGroupShow 'closed'.
|
|
47
|
+
* (Created by addExpandablePivotGroups — one column per measure.)
|
|
48
|
+
*/
|
|
49
|
+
export declare const isAgGridExpandablePivotColumnTotalLeaf: (colDef: any) => boolean;
|
|
50
|
+
/** After DX promote: per-measure column-group total leaf (still has pivotTotalColumnIds). */
|
|
51
|
+
export declare const isAgGridPivotColumnGroupTotalColumn: (colDef: any) => boolean;
|
|
52
|
+
export declare const setAllAgGridColumnGroupsOpened: (columnApi: any, opened: boolean) => void;
|
|
53
|
+
/**
|
|
54
|
+
* Choice 2 (DX parity) on top of Ag Grid expandable pivot totals:
|
|
55
|
+
* - Keeps native per-measure total leaves (same colIds → aggregation unchanged).
|
|
56
|
+
* - Clears columnGroupShow so totals stay visible when expanded AND collapsed
|
|
57
|
+
* (Ag Grid docs: undefined/null = always shown; open+always-shown still expandable).
|
|
58
|
+
* - Wraps them in a "{Value} Total" group for DX header layout.
|
|
59
|
+
*
|
|
60
|
+
* Requires: pivotColumnGroupTotals OFF (otherwise addExpandablePivotGroups is skipped)
|
|
61
|
+
* and suppressExpandablePivotGroups OFF when column totals are enabled.
|
|
62
|
+
*/
|
|
63
|
+
export declare const promoteExpandablePivotColumnTotalsForDx: (colGroupDef: any, columnFields: PivotApiField[], lookupDisplayName: (field: PivotApiField, rawValue: any) => string) => void;
|
|
45
64
|
export declare const getPivotValueColumnId: (pivotValueColumn: any) => string | null;
|
|
46
65
|
export declare const resolveMeasureFromPivotValueColumn: (colDef: any, measures: PivotApiMeasure[]) => PivotApiMeasure | undefined;
|
|
47
66
|
export declare const resolvePivotLeafHeaderName: (colDef: any, columnFields: PivotApiField[], lookupDisplayName: (field: PivotApiField, rawValue: any) => string, measureCount: number, measures: PivotApiMeasure[]) => string | null;
|
|
@@ -52,6 +71,14 @@ export declare const collectPivotRowPath: (startNode: any) => {
|
|
|
52
71
|
field: string;
|
|
53
72
|
key: any;
|
|
54
73
|
}[];
|
|
74
|
+
export declare const isAgGridPivotDrillDownMeasureColumn: (colDef: any, measures: PivotApiMeasure[]) => boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Map Ag Grid blank dimension keys to what DrillDownDataProvider expects for IS NULL.
|
|
77
|
+
* - Row groups in pivot mode: null/undefined → single space ' ' (GroupStage).
|
|
78
|
+
* - Pivot column buckets: missing → '' (PivotStage.bucketChildren).
|
|
79
|
+
* Backend: string.IsNullOrEmpty(value) → `{field} IS NULL`.
|
|
80
|
+
*/
|
|
81
|
+
export declare const normalizePivotDrillDownFieldValue: (value: any) => string | null;
|
|
55
82
|
export declare const buildPivotDrillDownPivotFields: (colDef: any, startNode: any, apiFields: PivotApiField[]) => any[];
|
|
56
83
|
export declare const getMeasureCaption: (measure: PivotApiMeasure) => string;
|
|
57
84
|
export declare const parseJsonArray: (json: string | null | undefined) => any[];
|