@meshmakers/octo-meshboard 3.4.360 → 3.4.380

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": "@meshmakers/octo-meshboard",
3
- "version": "3.4.360",
3
+ "version": "3.4.380",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^22.0.0",
6
6
  "@angular/core": "^22.0.0",
@@ -312,8 +312,10 @@ interface PersistentQueryDataSource extends WidgetDataSource {
312
312
  /**
313
313
  * The canonical aggregation functions a resolution-aware series can be reduced with
314
314
  * (AB#4290). Values match the backend `CkRollupFunction` / `AggregationType` GraphQL enums.
315
+ * `TIME_WEIGHTED_AVG` (AB#4336) reduces an event-based rollup to its LOCF-weighted duty cycle;
316
+ * the series resolver matches TWA rollups (incl. cascades) the same way it matches the others.
315
317
  */
316
- type SeriesAggregationFunction = 'AVG' | 'MIN' | 'MAX' | 'SUM' | 'COUNT';
318
+ type SeriesAggregationFunction = 'AVG' | 'MIN' | 'MAX' | 'SUM' | 'COUNT' | 'TIME_WEIGHTED_AVG';
317
319
  /**
318
320
  * Aggregation types supported
319
321
  */
@@ -687,6 +689,12 @@ interface BarChartWidgetConfig extends WidgetConfig {
687
689
  filters?: WidgetFilterConfig[];
688
690
  /** Suffix appended to data labels (e.g. ' kW') */
689
691
  dataLabelSuffix?: string;
692
+ /**
693
+ * Factor every raw value is multiplied with before charting (default 1). Lets a widget render
694
+ * engine units in display units without a second query — e.g. 1/3600000 turns the
695
+ * millisecond StateDuration aggregation (AB#4336) into hours, 0.001 turns Wh into kWh.
696
+ */
697
+ valueScale?: number;
690
698
  /** Threshold-based per-bar coloring. Thresholds sorted ascending by value. */
691
699
  colorThresholds?: BarChartColorThreshold[];
692
700
  /** Default bar color when value exceeds all thresholds */
@@ -5882,6 +5890,27 @@ declare class EntitySelectorToolbarComponent implements OnChanges {
5882
5890
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntitySelectorToolbarComponent, "mm-entity-selector-toolbar", never, { "entitySelectors": { "alias": "entitySelectors"; "required": false; }; }, { "entitySelected": "entitySelected"; "entityCleared": "entityCleared"; }, never, never, true, never>;
5883
5891
  }
5884
5892
 
5893
+ /**
5894
+ * Presentation-side compact layout for the MeshBoard grid (AB#4353).
5895
+ *
5896
+ * The Kendo TileLayout renders its configured column count at any container
5897
+ * width — on a 390px phone a 6-column board yields ~42px columns and crushes
5898
+ * every widget. Below the breakpoints the board therefore re-renders with a
5899
+ * reduced column count and drops the persisted col/row anchors so CSS grid
5900
+ * auto-flow re-packs the widgets in the reading order of the configured
5901
+ * layout. The persisted board config is never modified; editing (drag/resize)
5902
+ * is only offered in the native tier.
5903
+ */
5904
+ type MeshBoardCompactTier = 'none' | 'tablet' | 'phone';
5905
+ /** Display placement for one grid widget; col/row are undefined in compact tiers (auto-flow). */
5906
+ interface WidgetPlacement {
5907
+ widget: AnyWidgetConfig;
5908
+ col?: number;
5909
+ row?: number;
5910
+ colSpan: number;
5911
+ rowSpan: number;
5912
+ }
5913
+
5885
5914
  interface WidgetPositionUpdate {
5886
5915
  id: string;
5887
5916
  title: string;
@@ -5977,6 +6006,15 @@ declare class MeshBoardViewComponent implements OnInit, OnDestroy, HasUnsavedCha
5977
6006
  protected readonly gridWidgets: _angular_core.Signal<AnyWidgetConfig[]>;
5978
6007
  protected readonly hasGridWidgets: _angular_core.Signal<boolean>;
5979
6008
  protected readonly canSave: _angular_core.Signal<boolean>;
6009
+ private readonly hostElement;
6010
+ private readonly ngZone;
6011
+ private resizeObserver?;
6012
+ private readonly containerWidth;
6013
+ protected readonly compactTier: _angular_core.Signal<MeshBoardCompactTier>;
6014
+ protected readonly displayColumns: _angular_core.Signal<number>;
6015
+ protected readonly displayAutoFlow: _angular_core.Signal<"column" | "row">;
6016
+ protected readonly canEditLayout: _angular_core.Signal<boolean>;
6017
+ protected readonly displayGridWidgets: _angular_core.Signal<WidgetPlacement[]>;
5980
6018
  protected readonly isTimeFilterEnabled: _angular_core.Signal<boolean>;
5981
6019
  protected readonly timeFilterConfig: _angular_core.Signal<_meshmakers_octo_meshboard.MeshBoardTimeFilterConfig | undefined>;
5982
6020
  private readonly _urlTimeSelection;