@vizzly/dashboard 0.15.0-dev-c2e1069059b99dca4fa8e9a6598dad3e94a0539e → 0.15.0-dev-230b082ee8c6044131909984ccbd1d9f26373bdf

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.
@@ -2,6 +2,7 @@ import React__default, { Fragment, useEffect, useState, useContext, createContex
2
2
  import isEmpty$3 from 'lodash-es/isEmpty';
3
3
  import _, { isArray, capitalize, isEmpty as isEmpty$2, isFunction, replace, isObject, isNumber, every, some, mergeWith, remove as remove$2, cloneDeep, findIndex, reduce, merge, sumBy, mapValues, zipObject, isDate, omit as omit$1, maxBy, reject, defaultsDeep, isString, flatMap, filter, uniq, uniqBy, debounce as debounce$1, orderBy, minBy, throttle, get as get$1, min, max, groupBy, isEqual, intersection } from 'lodash-es';
4
4
  import { QueryEngineConfig } from '@vizzly/semantic-layer-public';
5
+ import pino from 'pino';
5
6
  import moment from 'moment-timezone';
6
7
  import Joi from '@vizzly/joi';
7
8
  import { v4 } from 'uuid';
@@ -764,6 +765,43 @@ var snakeCaseToHumanReadable = function snakeCaseToHumanReadable(str) {
764
765
  return capitalise(_replaceAll(str, '_', ' '));
765
766
  };
766
767
 
768
+ var enableBrowserLogging = function enableBrowserLogging() {
769
+ if (typeof window !== 'undefined' && typeof document !== 'undefined') return true;
770
+ return false;
771
+ };
772
+ var getOptions = function getOptions() {
773
+ if (enableBrowserLogging()) {
774
+ return {
775
+ browser: {
776
+ asObject: true
777
+ }
778
+ };
779
+ } else {
780
+ var _process$env, _process$env2, _process$env3, _process$env4;
781
+ var otelExporter = (_process$env = process.env) == null ? void 0 : _process$env['OTEL_EXPORTER_OTLP_ENDPOINT'];
782
+ var otelLogsExporter = (_process$env2 = process.env) == null ? void 0 : _process$env2['OTEL_EXPORTER_OTLP_LOGS_ENDPOINT'];
783
+ var enableTerminalLogging = !!((_process$env3 = process.env) != null && _process$env3['TERMINAL_LOGGING']);
784
+ var enableOTEL = !!otelExporter || !!otelLogsExporter;
785
+ var logLevel = ((_process$env4 = process.env) == null ? void 0 : _process$env4['LOG_LEVEL']) || 'info';
786
+ var targets = [];
787
+ if (!!process.stdout.isTTY || !enableOTEL || !!enableTerminalLogging) {
788
+ targets.push({
789
+ target: 'pino-pretty',
790
+ level: logLevel,
791
+ customPrettifiers: {},
792
+ options: {
793
+ colorize: true,
794
+ singleLine: false
795
+ }
796
+ });
797
+ }
798
+ return pino.transport({
799
+ targets: targets
800
+ });
801
+ }
802
+ };
803
+ var logger = /*#__PURE__*/pino( /*#__PURE__*/getOptions());
804
+
767
805
  var LOG_LEVELS = ['debug', 'info', 'warning', 'error', 'properties'];
768
806
 
769
807
  // Singleton.
@@ -798,46 +836,55 @@ var shouldLog = function shouldLog(level) {
798
836
  });
799
837
  return currentLogLevelIndex <= logLevelIndex;
800
838
  };
801
- var format = function format(value) {
802
- if (value instanceof Error) return value;
803
- if (isObject(value)) return JSON.stringify(value);
804
- if (isArray(value)) return JSON.stringify(value);
805
- return value;
806
- };
807
839
  var logDebug = function logDebug() {
808
- var _console;
809
840
  for (var _len = arguments.length, message = new Array(_len), _key = 0; _key < _len; _key++) {
810
841
  message[_key] = arguments[_key];
811
842
  }
812
843
  // Actually log as info because then it shows in browsers without making another change...
813
- if (shouldLog('debug')) (_console = console).info.apply(_console, ["[VIZZLY DEBUG]"].concat(message.map(format)));
844
+ if (shouldLog('debug')) logger.info.apply(logger, parseToPino("[VIZZLY DEBUG]", message));
814
845
  };
815
846
  var logInfo = function logInfo() {
816
- var _console2;
817
847
  for (var _len2 = arguments.length, message = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
818
848
  message[_key2] = arguments[_key2];
819
849
  }
820
- if (shouldLog('info')) (_console2 = console).info.apply(_console2, ["[VIZZLY INFO]"].concat(message.map(format)));
850
+ if (shouldLog('info')) logger.info.apply(logger, parseToPino("[VIZZLY INFO]", message));
821
851
  };
822
852
  var logProperties = function logProperties() {
823
853
  for (var _len3 = arguments.length, message = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
824
854
  message[_key3] = arguments[_key3];
825
855
  }
826
- if (shouldLog('properties')) console.info("[VIZZLY Dashboard Properties]", message);
856
+ if (shouldLog('properties')) logger.info.apply(logger, parseToPino("[VIZZLY Dashboard Properties]", message));
827
857
  };
828
858
  var logWarning = function logWarning() {
829
- var _console3;
830
859
  for (var _len4 = arguments.length, message = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
831
860
  message[_key4] = arguments[_key4];
832
861
  }
833
- if (shouldLog('warning')) (_console3 = console).warn.apply(_console3, ["[VIZZLY WARNING]"].concat(message.map(format)));
862
+ if (shouldLog('warning')) logger.warn.apply(logger, parseToPino("[VIZZLY WARNING]", message));
834
863
  };
835
864
  var logError = function logError() {
836
- var _console4;
837
865
  for (var _len5 = arguments.length, message = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
838
866
  message[_key5] = arguments[_key5];
839
867
  }
840
- if (shouldLog('error')) (_console4 = console).error.apply(_console4, ["[VIZZLY ERROR]"].concat(message.map(format)));
868
+ if (shouldLog('error')) logger.error.apply(logger, parseToPino("[VIZZLY ERROR]", message));
869
+ };
870
+ var parseToPino = function parseToPino(prefix, args) {
871
+ var inputs = isArray(args) ? args : [args];
872
+ var err;
873
+ var parts = [];
874
+ for (var _iterator = _createForOfIteratorHelperLoose(inputs), _step; !(_step = _iterator()).done;) {
875
+ var val = _step.value;
876
+ if (!err && val instanceof Error) {
877
+ err = val;
878
+ continue;
879
+ }
880
+ if (isObject(val) || isArray(val)) {
881
+ parts.push(JSON.stringify(val));
882
+ } else if (val !== undefined && val !== null) {
883
+ parts.push(String(val));
884
+ }
885
+ }
886
+ var msg = parts.length ? prefix + " " + parts.join(' ') : prefix;
887
+ return err ? [err, msg] : [msg];
841
888
  };
842
889
 
843
890
  var NULL_REPLACEMENT = 'No value';
@@ -13020,7 +13067,7 @@ var formatShortDateAndTime = function formatShortDateAndTime(date) {
13020
13067
  });
13021
13068
  return date.toLocaleTimeString(EN_GB_LOCALE, options);
13022
13069
  };
13023
- var format$1 = function format(value, _format) {
13070
+ var format = function format(value, _format) {
13024
13071
  if (_format === 'day_of_month' && (typeof value === 'number' || typeof value === 'string')) {
13025
13072
  return "" + value + numberPostfix(typeof value === 'string' ? parseInt(value) : value);
13026
13073
  }
@@ -13410,7 +13457,7 @@ var defaultNumberFormatOptions = function defaultNumberFormatOptions(textOverrid
13410
13457
  noValueReplacement = noValue;
13411
13458
  }
13412
13459
  if (value === null || value === undefined) return noValueReplacement;
13413
- return format$1(value, 'hour_of_day');
13460
+ return format(value, 'hour_of_day');
13414
13461
  }
13415
13462
  },
13416
13463
  _vizzly_month_of_year: {
@@ -13420,7 +13467,7 @@ var defaultNumberFormatOptions = function defaultNumberFormatOptions(textOverrid
13420
13467
  noValueReplacement = noValue;
13421
13468
  }
13422
13469
  if (value === null || value === undefined) return noValueReplacement;
13423
- return format$1(value, 'month_of_year');
13470
+ return format(value, 'month_of_year');
13424
13471
  }
13425
13472
  },
13426
13473
  _vizzly_day_of_month: {
@@ -13430,7 +13477,7 @@ var defaultNumberFormatOptions = function defaultNumberFormatOptions(textOverrid
13430
13477
  noValueReplacement = noValue;
13431
13478
  }
13432
13479
  if (value === null || value === undefined) return noValueReplacement;
13433
- return format$1(value, 'day_of_month');
13480
+ return format(value, 'day_of_month');
13434
13481
  }
13435
13482
  },
13436
13483
  _vizzly_day_of_week_iso: {
@@ -13440,7 +13487,7 @@ var defaultNumberFormatOptions = function defaultNumberFormatOptions(textOverrid
13440
13487
  noValueReplacement = noValue;
13441
13488
  }
13442
13489
  if (value === null || value === undefined) return noValueReplacement;
13443
- return format$1(value, 'day_of_week_iso');
13490
+ return format(value, 'day_of_week_iso');
13444
13491
  }
13445
13492
  },
13446
13493
  _vizzly_week_of_year: {
@@ -13450,7 +13497,7 @@ var defaultNumberFormatOptions = function defaultNumberFormatOptions(textOverrid
13450
13497
  noValueReplacement = noValue;
13451
13498
  }
13452
13499
  if (value === null || value === undefined) return noValueReplacement;
13453
- return format$1(value, 'week_of_year');
13500
+ return format(value, 'week_of_year');
13454
13501
  }
13455
13502
  }
13456
13503
  };
@@ -13822,7 +13869,7 @@ function formattedFallbackDateTime(value) {
13822
13869
  var formattedDate;
13823
13870
  try {
13824
13871
  // Attempt to format using your custom DateTime functions
13825
- formattedDate = format$1(date, 'DD MMMM YYYY, hh:mm') || '';
13872
+ formattedDate = format(date, 'DD MMMM YYYY, hh:mm') || '';
13826
13873
  if (!formattedDate) throw new Error('Invalid format');
13827
13874
  } catch (e) {
13828
13875
  // Fallback to native Date handling if custom format fails
@@ -16176,119 +16223,119 @@ var defaultDateTimeFormatOptions = {
16176
16223
  hour_of_day: {
16177
16224
  description: 'Hour of the day',
16178
16225
  formatter: function formatter(date) {
16179
- return format$1(date, 'hour_of_day');
16226
+ return format(date, 'hour_of_day');
16180
16227
  }
16181
16228
  },
16182
16229
  /** @deprecated - moved to number formatting option */
16183
16230
  month_of_year: {
16184
16231
  description: 'Month of the year',
16185
16232
  formatter: function formatter(date) {
16186
- return format$1(date, 'month_of_year');
16233
+ return format(date, 'month_of_year');
16187
16234
  }
16188
16235
  },
16189
16236
  /** @deprecated - moved to number formatting option */
16190
16237
  day_of_month: {
16191
16238
  description: 'Day of month',
16192
16239
  formatter: function formatter(date) {
16193
- return format$1(date, 'day_of_month');
16240
+ return format(date, 'day_of_month');
16194
16241
  }
16195
16242
  },
16196
16243
  /** @deprecated - moved to number formatting option */
16197
16244
  day_of_week_iso: {
16198
16245
  description: 'Day of week',
16199
16246
  formatter: function formatter(date) {
16200
- return format$1(date, 'day_of_week_iso');
16247
+ return format(date, 'day_of_week_iso');
16201
16248
  }
16202
16249
  },
16203
16250
  /** @deprecated - moved to number formatting option */
16204
16251
  week_of_year: {
16205
16252
  description: 'Week of year',
16206
16253
  formatter: function formatter(date) {
16207
- return format$1(date, 'week_of_year');
16254
+ return format(date, 'week_of_year');
16208
16255
  }
16209
16256
  },
16210
16257
  'DD/MM/YYYY': {
16211
16258
  description: 'DD/MM/YYYY',
16212
16259
  formatter: function formatter(date) {
16213
- return format$1(date, 'DD/MM/YYYY');
16260
+ return format(date, 'DD/MM/YYYY');
16214
16261
  }
16215
16262
  },
16216
16263
  'MM/DD/YYYY': {
16217
16264
  description: 'MM/DD/YYYY',
16218
16265
  formatter: function formatter(date) {
16219
- return format$1(date, 'MM/DD/YYYY');
16266
+ return format(date, 'MM/DD/YYYY');
16220
16267
  }
16221
16268
  },
16222
16269
  'DD-MM-YYYY': {
16223
16270
  description: 'DD-MM-YYYY',
16224
16271
  formatter: function formatter(date) {
16225
- return format$1(date, 'DD-MM-YYYY');
16272
+ return format(date, 'DD-MM-YYYY');
16226
16273
  }
16227
16274
  },
16228
16275
  'MM-DD-YYYY': {
16229
16276
  description: 'MM-DD-YYYY',
16230
16277
  formatter: function formatter(date) {
16231
- return format$1(date, 'MM-DD-YYYY');
16278
+ return format(date, 'MM-DD-YYYY');
16232
16279
  }
16233
16280
  },
16234
16281
  'DD MMMM YYYY, hh:mm': {
16235
16282
  description: 'DD MMMM YYYY, hh:mm',
16236
16283
  formatter: function formatter(date) {
16237
- return format$1(date, 'DD MMMM YYYY, hh:mm');
16284
+ return format(date, 'DD MMMM YYYY, hh:mm');
16238
16285
  }
16239
16286
  },
16240
16287
  'dddd DD MMMM YYYY, hh:mm': {
16241
16288
  description: 'dddd DD MMMM YYYY, hh:mm',
16242
16289
  formatter: function formatter(date) {
16243
- return format$1(date, 'dddd DD MMMM YYYY, hh:mm');
16290
+ return format(date, 'dddd DD MMMM YYYY, hh:mm');
16244
16291
  }
16245
16292
  },
16246
16293
  'hh:mm': {
16247
16294
  description: 'hh:mm',
16248
16295
  formatter: function formatter(date) {
16249
- return format$1(date, 'hh:mm');
16296
+ return format(date, 'hh:mm');
16250
16297
  }
16251
16298
  },
16252
16299
  'hh:mm:ss': {
16253
16300
  description: 'hh:mm:ss',
16254
16301
  formatter: function formatter(date) {
16255
- return format$1(date, 'hh:mm:ss');
16302
+ return format(date, 'hh:mm:ss');
16256
16303
  }
16257
16304
  },
16258
16305
  'DD MMMM YYYY': {
16259
16306
  description: 'DD MMMM YYYY',
16260
16307
  formatter: function formatter(date) {
16261
- return format$1(date, 'DD MMMM YYYY');
16308
+ return format(date, 'DD MMMM YYYY');
16262
16309
  }
16263
16310
  },
16264
16311
  'MMMM YYYY': {
16265
16312
  description: 'MMMM YYYY',
16266
16313
  formatter: function formatter(date) {
16267
- return format$1(date, 'MMMM YYYY');
16314
+ return format(date, 'MMMM YYYY');
16268
16315
  }
16269
16316
  },
16270
16317
  YYYY: {
16271
16318
  description: 'YYYY',
16272
16319
  formatter: function formatter(date) {
16273
- return format$1(date, 'YYYY');
16320
+ return format(date, 'YYYY');
16274
16321
  }
16275
16322
  },
16276
16323
  'YYYY-MM-DD[T]HH:mm:ss': {
16277
16324
  description: 'YYYY-MM-DD[T]HH:mm:ss',
16278
16325
  formatter: function formatter(date) {
16279
- return format$1(date, 'YYYY-MM-DD[T]HH:mm:ss');
16326
+ return format(date, 'YYYY-MM-DD[T]HH:mm:ss');
16280
16327
  }
16281
16328
  },
16282
16329
  quarter: {
16283
16330
  description: 'Quarter',
16284
16331
  formatter: function formatter(date) {
16285
- return format$1(date, 'quarter');
16332
+ return format(date, 'quarter');
16286
16333
  }
16287
16334
  },
16288
16335
  week: {
16289
16336
  description: 'Week',
16290
16337
  formatter: function formatter(date) {
16291
- return format$1(date, 'week');
16338
+ return format(date, 'week');
16292
16339
  }
16293
16340
  }
16294
16341
  };
@@ -28793,7 +28840,7 @@ function DateFilter(props) {
28793
28840
  gap: "0.25rem",
28794
28841
  children: [jsxs(Flex, {
28795
28842
  children: [dateType === DateType.Fixed && jsx(DateTimeInput, {
28796
- value: value ? format$1(new Date(value), 'YYYY-MM-DD[T]HH:mm:ss') : undefined,
28843
+ value: value ? format(new Date(value), 'YYYY-MM-DD[T]HH:mm:ss') : undefined,
28797
28844
  onChange: function onChange(date) {
28798
28845
  var value = date ? date.toISOString() : null;
28799
28846
  setFilter({
@@ -65389,7 +65436,7 @@ var SortSection = function SortSection(props) {
65389
65436
  var attributes = props.attributes;
65390
65437
  var dimension = [];
65391
65438
  var measure = [];
65392
- if (attributes.type === 'comboChart') {
65439
+ if (attributes.type === 'comboChart' || attributes.type === 'comboChartV2') {
65393
65440
  if (!('barDimension' in attributes) || !('lineDimension' in attributes) || !('barMeasure' in attributes) || !('lineMeasure' in attributes)) {
65394
65441
  return null;
65395
65442
  }
@@ -69211,7 +69258,7 @@ function available(dashboard) {
69211
69258
  return Array.from(tagSet);
69212
69259
  }
69213
69260
 
69214
- function getOptions(allAvailableTags) {
69261
+ function getOptions$1(allAvailableTags) {
69215
69262
  var seenKeys = new Set();
69216
69263
  var tagOptions = [];
69217
69264
  allAvailableTags.forEach(function (tag) {
@@ -69248,7 +69295,7 @@ var TagsForm = function TagsForm(props) {
69248
69295
  dashboard = _useDashboardContext.dashboard;
69249
69296
  var allAvailableTags = available(dashboard);
69250
69297
  var getTagOptions = function getTagOptions() {
69251
- return getOptions(allAvailableTags);
69298
+ return getOptions$1(allAvailableTags);
69252
69299
  };
69253
69300
  var selectedTags = function selectedTags() {
69254
69301
  var options = getTagOptions();
@@ -1,16 +1,16 @@
1
1
  import { LogLevel } from './types';
2
2
  export declare const LOG_LEVELS: Array<LogLevel>;
3
3
  export declare const setupLogger: (newLogLevel: LogLevel, onLogLevelChange?: ((newLogLevel: LogLevel) => void) | undefined) => {
4
- logDebug: (...message: any) => void;
5
- logError: (...message: any) => void;
6
- logInfo: (...message: any) => void;
7
- logWarning: (...message: any) => void;
8
- logProperties: (...message: any) => void;
4
+ logDebug: (...message: unknown[]) => void;
5
+ logError: (...message: unknown[]) => void;
6
+ logInfo: (...message: unknown[]) => void;
7
+ logWarning: (...message: unknown[]) => void;
8
+ logProperties: (...message: unknown[]) => void;
9
9
  getCurrentLogLevel: () => LogLevel;
10
10
  updateLogLevel: (newLevel: LogLevel) => void;
11
11
  };
12
- export declare const logDebug: (...message: any) => void;
13
- export declare const logInfo: (...message: any) => void;
14
- export declare const logProperties: (...message: any) => void;
15
- export declare const logWarning: (...message: any) => void;
16
- export declare const logError: (...message: any) => void;
12
+ export declare const logDebug: (...message: unknown[]) => void;
13
+ export declare const logInfo: (...message: unknown[]) => void;
14
+ export declare const logProperties: (...message: unknown[]) => void;
15
+ export declare const logWarning: (...message: unknown[]) => void;
16
+ export declare const logError: (...message: unknown[]) => void;
@@ -0,0 +1 @@
1
+ export declare const logger: any;
@@ -4,7 +4,7 @@ import { VizzlyComponents } from '../../../types';
4
4
  import { Component } from '../../../../../shared-logic/src/Component/types';
5
5
  declare type Props = VizzlyComponents.ComponentOverrides.Props.SectionProps;
6
6
  export declare const SortSection: (props: Props) => JSX.Element | null;
7
- export declare function getComboMeasuresAndDimensions(attributes: Component.ComboChartAttributes): {
7
+ export declare function getComboMeasuresAndDimensions(attributes: Component.ComboChartAttributes | Component.ComboChartV2Attributes): {
8
8
  dimension: QueryAttributes.Dimension[];
9
9
  measure: QueryAttributes.Measure[];
10
10
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vizzly/dashboard",
3
3
  "author": "james@vizzly.co",
4
- "version": "0.15.0-dev-c2e1069059b99dca4fa8e9a6598dad3e94a0539e",
4
+ "version": "0.15.0-dev-230b082ee8c6044131909984ccbd1d9f26373bdf",
5
5
  "source": "src/index.tsx",
6
6
  "types": "./dist/dashboard/src/index.d.ts",
7
7
  "module": "./dist/dashboard.esm.js",