@datarailsshared/dr_renderer 1.2.428 → 1.2.429

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datarailsshared/dr_renderer",
3
- "version": "1.2.428",
3
+ "version": "1.2.429",
4
4
  "description": "DataRails charts and tables renderer",
5
5
  "keywords": [
6
6
  "datarails",
@@ -449,6 +449,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
449
449
  }
450
450
  filtOb.show_in_graph = value.show_in_graph || false;
451
451
  filtOb.override_global_filter = value.override_global_filter || false;
452
+ filtOb.allow_nulls = value.allow_nulls || false;
452
453
  filtOb.field = value.id;
453
454
  filtOb.name = highchartsRenderer.decodeFunc(value.name);
454
455
  return filtOb;
@@ -491,6 +492,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
491
492
  filtOb.id = value.id;
492
493
  filtOb.type = value.type;
493
494
  filtOb.name = value.name;
495
+ filtOb.allow_nulls = value.allow_nulls;
494
496
  return filtOb;
495
497
  };
496
498
 
@@ -5506,6 +5508,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5506
5508
  fieldOb.includes = filterObj.values;
5507
5509
  }
5508
5510
  }
5511
+ if (filterObj.allow_nulls && fieldOb) {
5512
+ fieldOb.allow_nulls = filterObj.allow_nulls;
5513
+ }
5509
5514
  });
5510
5515
 
5511
5516
  // // fill selected fields
@@ -5557,6 +5562,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5557
5562
  fieldOb.includes = filterObj.values;
5558
5563
  }
5559
5564
  }
5565
+ if (filterObj.allow_nulls && fieldOb) {
5566
+ fieldOb.allow_nulls = filterObj.allow_nulls;
5567
+ }
5560
5568
  });
5561
5569
 
5562
5570
  // fill selected fields
@@ -5754,6 +5762,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5754
5762
  if (filterObj.override_global_filter && fieldOb) {
5755
5763
  fieldOb.override_global_filter = filterObj.override_global_filter;
5756
5764
  }
5765
+
5766
+ if (filterObj.allow_nulls && fieldOb) {
5767
+ fieldOb.allow_nulls = filterObj.allow_nulls;
5768
+ }
5757
5769
  });
5758
5770
 
5759
5771
  // // fill calculated values
@@ -5808,6 +5820,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5808
5820
  var otherFields = [];
5809
5821
  var includes = {};
5810
5822
  var date_aggregation_configs = lodash.get(options, "date_aggregation_configs");
5823
+ var fields_allow_null_in_filters = lodash.get(options, "fields_allow_null_in_filters");
5824
+ //var tempIncludeExcludeOb;
5825
+ //var needSort = [];
5811
5826
  var sorters = function () {
5812
5827
  };
5813
5828
 
@@ -5848,6 +5863,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5848
5863
  if (temp_date_aggregation_config) {
5849
5864
  fieldOb.date_aggregation_config = temp_date_aggregation_config;
5850
5865
  }
5866
+ fieldOb.allow_nulls = lodash.includes(fields_allow_null_in_filters, fieldOb.id);
5851
5867
  lodash.remove(fields, {id: fieldOb.id});
5852
5868
  }
5853
5869
  });
@@ -5861,6 +5877,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5861
5877
  if (temp_date_aggregation_config) {
5862
5878
  fieldOb.date_aggregation_config = temp_date_aggregation_config;
5863
5879
  }
5880
+ fieldOb.allow_nulls = lodash.includes(fields_allow_null_in_filters, fieldOb.id);
5864
5881
  lodash.remove(fields, {id: fieldOb.id});
5865
5882
  }
5866
5883
  });
@@ -5874,6 +5891,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5874
5891
  if (temp_date_aggregation_config) {
5875
5892
  fieldOb.date_aggregation_config = temp_date_aggregation_config;
5876
5893
  }
5894
+ fieldOb.allow_nulls = lodash.includes(fields_allow_null_in_filters, fieldOb.id);
5877
5895
  if (!doNotRemoveFilters)
5878
5896
  lodash.remove(fields, {id: fieldOb.id});
5879
5897
  }
@@ -5932,6 +5950,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5932
5950
  if (filterObj.override_global_filter && fieldOb) {
5933
5951
  fieldOb.override_global_filter = filterObj.override_global_filter;
5934
5952
  }
5953
+
5954
+ if (filterObj.allow_nulls && fieldOb) {
5955
+ fieldOb.allow_nulls = filterObj.allow_nulls;
5956
+ }
5935
5957
  }
5936
5958
 
5937
5959
  highchartsRenderer.getChartOptionsBySubType = function (subTypeChart) {
@@ -8136,6 +8158,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8136
8158
  all_vals = lodash.clone(fieldFilter.includes);
8137
8159
  }
8138
8160
  if (all_vals) {
8161
+ if (fieldFilter.allow_nulls && all_vals.length > 1) {
8162
+ all_vals = all_vals.filter(x => x !== '[null]')
8163
+ }
8139
8164
  all_vals = all_vals.join(', ');
8140
8165
  tooltip = ' (' + all_vals + ')';
8141
8166
  if (all_vals.split(',').length > highchartsRenderer.MAX_SELECTED_ITEMS_BEFORE_COLLAPSING && isGlobalFilter
@@ -8177,6 +8202,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8177
8202
  }
8178
8203
 
8179
8204
  if (all_vals) {
8205
+ if (fieldFilter.allow_nulls && all_vals.length > 1) {
8206
+ all_vals = all_vals.filter(x => x !== '[null]')
8207
+ }
8180
8208
  all_vals = all_vals.join(', ');
8181
8209
  tooltip = ' (Exclusions: ' + all_vals + ')';
8182
8210
  if (all_vals.split(',').length > highchartsRenderer.MAX_SELECTED_ITEMS_BEFORE_COLLAPSING && isGlobalFilter
@@ -8326,6 +8354,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8326
8354
  }) : ret['values'];
8327
8355
  }
8328
8356
  ret['is_excluded'] = element.hasOwnProperty('excludes') && element.excludes != null;
8357
+ ret['allow_nulls'] = element.hasOwnProperty('allow_nulls') ? element.allow_nulls : false;
8329
8358
  ret['inject_only'] = element.hasOwnProperty('inject_only') ? element.inject_only : false;
8330
8359
  return ret;
8331
8360
  });
@@ -8395,6 +8424,16 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8395
8424
  dashboardsFilters = dashboardsFilters.concat(highchartsRenderer.getRelevantFilters(local_current_dashboard.filters));
8396
8425
  }
8397
8426
 
8427
+ lodash.forEach(dashboardsFilters, function (filter) {
8428
+ if (filter.allow_nulls) {
8429
+ if (filter.values && Array.isArray(filter.values)) {
8430
+ if (!lodash.includes(filter.values, "[null]")) {
8431
+ filter.values.push("[null]");
8432
+ }
8433
+ }
8434
+ }
8435
+ });
8436
+
8398
8437
  if (remove_filters_from_global) {
8399
8438
  dashboardsFilters = highchartsRenderer.objectCopyJsonMethod(dashboardsFilters);
8400
8439
  lodash.forEach(remove_filters_from_global, function (field) {
@@ -8669,6 +8708,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8669
8708
  "includes": null,
8670
8709
  "show_in_graph": false,
8671
8710
  "override_global_filter": false,
8711
+ "allow_nulls": false,
8672
8712
  });
8673
8713
  temp.values = [row_value];
8674
8714
  temp.values.label = row_value;
@@ -8792,6 +8832,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8792
8832
  filtOb.is_excluded = false;
8793
8833
  filtOb.values = [value] || null;
8794
8834
  filtOb.show_in_graph = field.show_in_graph || false;
8835
+ filtOb.allow_nulls = field.allow_nulls || false;
8795
8836
  filtOb.override_global_filter = false;
8796
8837
  filtOb.field = field.id;
8797
8838
  filtOb.name = highchartsRenderer.decodeFunc(field.name);
@@ -106,12 +106,14 @@ describe('highcharts_renderer', () => {
106
106
  includes: ['test'],
107
107
  show_in_graph: true,
108
108
  override_global_filter: true,
109
+ allow_nulls: true,
109
110
  };
110
111
  expect(highchartsRenderer.createFilterObject(field)).toEqual({
111
112
  is_excluded: false,
112
113
  values: ['test'],
113
114
  show_in_graph: true,
114
115
  override_global_filter: true,
116
+ allow_nulls: true,
115
117
  field: 1,
116
118
  name: 'name',
117
119
  });
@@ -128,6 +130,7 @@ describe('highcharts_renderer', () => {
128
130
  values: null,
129
131
  show_in_graph: false,
130
132
  override_global_filter: false,
133
+ allow_nulls: false,
131
134
  field: 1,
132
135
  name: 'name',
133
136
  });
@@ -144,6 +147,7 @@ describe('highcharts_renderer', () => {
144
147
  values: ['test'],
145
148
  show_in_graph: false,
146
149
  override_global_filter: false,
150
+ allow_nulls: false,
147
151
  field: 1,
148
152
  name: 'name',
149
153
  });
@@ -162,6 +166,7 @@ describe('highcharts_renderer', () => {
162
166
  values: field.values,
163
167
  show_in_graph: false,
164
168
  override_global_filter: false,
169
+ allow_nulls: false,
165
170
  field: 1,
166
171
  name: 'name',
167
172
  });
@@ -180,6 +185,7 @@ describe('highcharts_renderer', () => {
180
185
  values: field.datetypevalues,
181
186
  show_in_graph: false,
182
187
  override_global_filter: false,
188
+ allow_nulls: false,
183
189
  field: 1,
184
190
  name: 'name',
185
191
  });
@@ -198,6 +204,7 @@ describe('highcharts_renderer', () => {
198
204
  values: field.values,
199
205
  show_in_graph: false,
200
206
  override_global_filter: false,
207
+ allow_nulls: false,
201
208
  field: 1,
202
209
  name: 'name',
203
210
  });
@@ -266,6 +273,7 @@ describe('highcharts_renderer', () => {
266
273
  type: 'Float',
267
274
  name: 'name',
268
275
  fields: [1,3,4],
276
+ allow_nulls: true,
269
277
  }
270
278
  });
271
279
 
@@ -1654,6 +1662,7 @@ describe('highcharts_renderer', () => {
1654
1662
  is_excluded: false,
1655
1663
  show_in_graph: true,
1656
1664
  override_global_filter: true,
1665
+ allow_nulls: true
1657
1666
  };
1658
1667
  fieldOb = {
1659
1668
  name: 'fieldName',
@@ -1672,6 +1681,7 @@ describe('highcharts_renderer', () => {
1672
1681
  });
1673
1682
  expect(fieldOb.show_in_graph).toBe(true);
1674
1683
  expect(fieldOb.override_global_filter).toBe(true);
1684
+ expect(fieldOb.allow_nulls).toBe(true);
1675
1685
  });
1676
1686
 
1677
1687
  it('should set excludes array for field when filter is excluded', () => {
@@ -1686,6 +1696,7 @@ describe('highcharts_renderer', () => {
1686
1696
  });
1687
1697
  expect(fieldOb.show_in_graph).toBe(true);
1688
1698
  expect(fieldOb.override_global_filter).toBe(true);
1699
+ expect(fieldOb.allow_nulls).toBe(true);
1689
1700
  });
1690
1701
 
1691
1702
  it('should set values on field when datetype is not list', () => {
@@ -1702,6 +1713,7 @@ describe('highcharts_renderer', () => {
1702
1713
  expect(fieldOb.values).toEqual(filterObj.values);
1703
1714
  expect(fieldOb.show_in_graph).toBe(true);
1704
1715
  expect(fieldOb.override_global_filter).toBe(true);
1716
+ expect(fieldOb.allow_nulls).toBe(true);
1705
1717
  });
1706
1718
 
1707
1719
  it('should set values.val on filterObj when datetype is list', () => {
@@ -1718,6 +1730,7 @@ describe('highcharts_renderer', () => {
1718
1730
  expect(filterObj.values).toEqual(values);
1719
1731
  expect(fieldOb.show_in_graph).toBe(true);
1720
1732
  expect(fieldOb.override_global_filter).toBe(true);
1733
+ expect(fieldOb.allow_nulls).toBe(true);
1721
1734
  });
1722
1735
 
1723
1736
  it('should set values on field when type is advanced', () => {
@@ -1733,6 +1746,7 @@ describe('highcharts_renderer', () => {
1733
1746
  expect(fieldOb.values).toEqual(filterObj.values);
1734
1747
  expect(fieldOb.show_in_graph).toBe(true);
1735
1748
  expect(fieldOb.override_global_filter).toBe(true);
1749
+ expect(fieldOb.allow_nulls).toBe(true);
1736
1750
  });
1737
1751
 
1738
1752
  it('should set show_in_graph to false on field when filterObj.show_in_graph is false', () => {
@@ -1741,6 +1755,7 @@ describe('highcharts_renderer', () => {
1741
1755
 
1742
1756
  expect(fieldOb.show_in_graph).toBeUndefined();
1743
1757
  expect(fieldOb.override_global_filter).toBe(true);
1758
+ expect(fieldOb.allow_nulls).toBe(true);
1744
1759
  });
1745
1760
 
1746
1761
  it('should set override_global_filter to false on field when filterObj.override_global_filter is false', () => {
@@ -1750,6 +1765,17 @@ describe('highcharts_renderer', () => {
1750
1765
 
1751
1766
  expect(fieldOb.show_in_graph).toBe(true);
1752
1767
  expect(fieldOb.override_global_filter).toBeUndefined();
1768
+ expect(fieldOb.allow_nulls).toBe(true);
1769
+ });
1770
+
1771
+
1772
+ it('should set allow_nulls to false on field when filterObj.allow_nulls is false', () => {
1773
+ filterObj.allow_nulls = false;
1774
+ highchartsRenderer.addFilterDataToField(filterObj, fieldOb, includes);
1775
+
1776
+ expect(fieldOb.show_in_graph).toBe(true);
1777
+ expect(fieldOb.override_global_filter).toBe(true);
1778
+ expect(fieldOb.allow_nulls).toBeUndefined();
1753
1779
  });
1754
1780
  });
1755
1781
 
@@ -3581,6 +3607,22 @@ describe('highcharts_renderer', () => {
3581
3607
  expect(res.tooltip).toEqual('test: (Exclusions: ' + fieldFilter.excludes.join(', ') + ')');
3582
3608
  });
3583
3609
 
3610
+ it('Should exclude "[null]" from includes if allow_nulls enabled', () => {
3611
+ fieldFilter.allow_nulls = true;
3612
+ fieldFilter.includes = ['value 1', '[null]'];
3613
+ let res = highchartsRenderer.getFilterLabel(fieldFilter, false);
3614
+ expect(res.label).toEqual('test (value 1)');
3615
+ expect(res.tooltip).toEqual('test (' + fieldFilter.includes[0] + ')');
3616
+ });
3617
+
3618
+ it('Should exclude "[null]" from excludes if allow_nulls enabled', () => {
3619
+ fieldFilter.allow_nulls = true;
3620
+ fieldFilter.excludes = ['value 1', '[null]'];
3621
+ let res = highchartsRenderer.getFilterLabel(fieldFilter, false);
3622
+ expect(res.label).toEqual('test (Exclusions: value 1)');
3623
+ expect(res.tooltip).toEqual('test (Exclusions: ' + fieldFilter.excludes[0] + ')');
3624
+ });
3625
+
3584
3626
  it('Should present formatted dates in includes. Get formatted value from invertValueFormatMap object if exist ', () => {
3585
3627
  fieldFilter.includes = [1682063884, 1682060884, 1682013884];
3586
3628
  fieldFilter.type = 'Date';
@@ -3745,18 +3787,21 @@ describe('highcharts_renderer', () => {
3745
3787
  fields: ['field2'],
3746
3788
  values: [1, 2, 3],
3747
3789
  is_excluded: false,
3790
+ allow_nulls: false,
3748
3791
  inject_only: false
3749
3792
  });
3750
3793
  expect(relevantFilters).toContainEqual({
3751
3794
  fields: ['field3'],
3752
3795
  values: ['abc'],
3753
3796
  is_excluded: true,
3797
+ allow_nulls: false,
3754
3798
  inject_only: false
3755
3799
  });
3756
3800
  expect(relevantFilters).toContainEqual({
3757
3801
  fields: ['field4'],
3758
3802
  values: {datetype: 'date', start: '2022-01-01', end: '2022-01-31'},
3759
3803
  is_excluded: false,
3804
+ allow_nulls: false,
3760
3805
  inject_only: false
3761
3806
  });
3762
3807
  });
@@ -3808,6 +3853,7 @@ describe('highcharts_renderer', () => {
3808
3853
  to: null
3809
3854
  },
3810
3855
  is_excluded: false,
3856
+ allow_nulls: false,
3811
3857
  inject_only: false
3812
3858
  }
3813
3859
  ];
@@ -3987,6 +4033,36 @@ describe('highcharts_renderer', () => {
3987
4033
  const result = highchartsRenderer.getDashboardFilters(data_model, remove_filters_from_global, data_model.current_dashboard);
3988
4034
  expect(result.length).toEqual(1);
3989
4035
  });
4036
+
4037
+ it('should add "[null]" to values array for filters with "allow_nulls" flag', () => {
4038
+ const currentDashboardWithNull = {
4039
+ filters: [
4040
+ {
4041
+ fields: [{ id: 'field1', name: 'Field 1' }],
4042
+ includes: ['value1', 'value2'],
4043
+ allow_nulls: false,
4044
+ },
4045
+ ],
4046
+ };
4047
+ const dataModelWithNull = { current_dashboard: currentDashboardWithNull };
4048
+ const result = highchartsRenderer.getDashboardFilters(dataModelWithNull);
4049
+ expect(result[0].values).toEqual(['value1', 'value2']);
4050
+ });
4051
+
4052
+ it('should not add "[null]" to values array if it is already present', () => {
4053
+ const currentDashboardWithNull = {
4054
+ filters: [
4055
+ {
4056
+ fields: [{ id: 'field1', name: 'Field 1' }],
4057
+ includes: ['value1'],
4058
+ allow_nulls: true,
4059
+ },
4060
+ ],
4061
+ };
4062
+ const dataModelWithNull = { current_dashboard: currentDashboardWithNull };
4063
+ const result = highchartsRenderer.getDashboardFilters(dataModelWithNull);
4064
+ expect(result[0].values).toEqual(['value1', '[null]']);
4065
+ });
3990
4066
  });
3991
4067
 
3992
4068
  describe('function getPresentationTagType', () => {
@@ -5753,6 +5829,7 @@ describe('highcharts_renderer', () => {
5753
5829
  name: "Month",
5754
5830
  values: [1682812800, 1680220800, "[null]"],
5755
5831
  is_excluded: false,
5832
+ allow_nulls: false,
5756
5833
  show_in_graph: true,
5757
5834
  type: "Date",
5758
5835
  override_global_filter: false,
@@ -5762,6 +5839,7 @@ describe('highcharts_renderer', () => {
5762
5839
  name: "AccountCode",
5763
5840
  values: null,
5764
5841
  is_excluded: false,
5842
+ allow_nulls: false,
5765
5843
  show_in_graph: true,
5766
5844
  type: "Text",
5767
5845
  override_global_filter: false,
@@ -5780,6 +5858,7 @@ describe('highcharts_renderer', () => {
5780
5858
  name: "Data Type",
5781
5859
  values: ["Activity"],
5782
5860
  is_excluded: false,
5861
+ allow_nulls: false,
5783
5862
  show_in_graph: false,
5784
5863
  type: "Text",
5785
5864
  override_global_filter: false,
@@ -5796,6 +5875,7 @@ describe('highcharts_renderer', () => {
5796
5875
  }, ],
5797
5876
  },
5798
5877
  is_excluded: false,
5878
+ allow_nulls: false,
5799
5879
  show_in_graph: false,
5800
5880
  type: "Text",
5801
5881
  override_global_filter: false,
@@ -6062,6 +6142,7 @@ describe('highcharts_renderer', () => {
6062
6142
  name: "Month",
6063
6143
  values: [1682812800, 1680220800, "[null]", null, 0, "", 1680220800],
6064
6144
  is_excluded: false,
6145
+ allow_nulls: false,
6065
6146
  show_in_graph: true,
6066
6147
  type: "Date",
6067
6148
  override_global_filter: false,
@@ -6077,6 +6158,7 @@ describe('highcharts_renderer', () => {
6077
6158
  name: "VT_Month",
6078
6159
  values: [1682812800, 1680220800, "[null]", null, 0, "", 1680220800],
6079
6160
  is_excluded: false,
6161
+ allow_nulls: false,
6080
6162
  show_in_graph: true,
6081
6163
  type: "Date",
6082
6164
  override_global_filter: false,
@@ -6092,6 +6174,7 @@ describe('highcharts_renderer', () => {
6092
6174
  name: "Month",
6093
6175
  values: [100, 200, "[null]", null, "Text", 0],
6094
6176
  is_excluded: false,
6177
+ allow_nulls: false,
6095
6178
  show_in_graph: true,
6096
6179
  type: "Number",
6097
6180
  override_global_filter: false,
@@ -54,6 +54,7 @@
54
54
  "Income"
55
55
  ],
56
56
  "is_excluded": false,
57
+ "allow_nulls": true,
57
58
  "type": "Text",
58
59
  "override_global_filter": false
59
60
  },
@@ -64,6 +65,7 @@
64
65
  "Auto"
65
66
  ],
66
67
  "is_excluded": true,
68
+ "allow_nulls": false,
67
69
  "type": "Text",
68
70
  "override_global_filter": false
69
71
  },
@@ -81,6 +83,7 @@
81
83
  ]
82
84
  },
83
85
  "is_excluded": false,
86
+ "allow_nulls": false,
84
87
  "type": "Text",
85
88
  "override_global_filter": false
86
89
  },
@@ -92,6 +95,7 @@
92
95
  1643587200
93
96
  ],
94
97
  "is_excluded": false,
98
+ "allow_nulls": false,
95
99
  "type": "Date",
96
100
  "override_global_filter": false
97
101
  },
@@ -105,6 +109,7 @@
105
109
  ]
106
110
  },
107
111
  "is_excluded": true,
112
+ "allow_nulls": false,
108
113
  "type": "Date",
109
114
  "override_global_filter": false
110
115
  },
@@ -119,6 +124,7 @@
119
124
  }
120
125
  },
121
126
  "is_excluded": false,
127
+ "allow_nulls": false,
122
128
  "type": "Date",
123
129
  "override_global_filter": false
124
130
  }
@@ -15,6 +15,7 @@
15
15
  ],
16
16
  "is_excluded": false,
17
17
  "show_in_graph": true,
18
+ "allow_nulls ": true,
18
19
  "type": "Text",
19
20
  "override_global_filter": true
20
21
  },
@@ -85,6 +86,7 @@
85
86
  ]
86
87
  },
87
88
  "is_excluded": true,
89
+ "allow_nulls": true,
88
90
  "type": "Date",
89
91
  "override_global_filter": false
90
92
  }
@@ -21,6 +21,7 @@
21
21
  ],
22
22
  "is_excluded": false,
23
23
  "show_in_graph": false,
24
+ "allow_nulls": true,
24
25
  "type": "Text",
25
26
  "override_global_filter": false
26
27
  },
@@ -166,6 +166,7 @@
166
166
  "Other Income"
167
167
  ],
168
168
  "is_excluded": false,
169
+ "allow_nulls": true,
169
170
  "show_in_graph": true,
170
171
  "type": "Text",
171
172
  "override_global_filter": true
@@ -181,6 +182,7 @@
181
182
  }
182
183
  },
183
184
  "is_excluded": false,
185
+ "allow_nulls": false,
184
186
  "show_in_graph": false,
185
187
  "type": "Date",
186
188
  "override_global_filter": false
@@ -193,6 +195,7 @@
193
195
  1643587200
194
196
  ],
195
197
  "is_excluded": false,
198
+ "allow_nulls": true,
196
199
  "show_in_graph": true,
197
200
  "type": "Date",
198
201
  "override_global_filter": true
@@ -372,6 +375,10 @@
372
375
  "is_formatting_by_aggregation_method": true
373
376
  }
374
377
  ],
378
+ "fields_allow_null_in_filters": [
379
+ 161918,
380
+ 161924
381
+ ],
375
382
  "error_has_occurred": false
376
383
  },
377
384
  "vals": [