Browse Source

Flex layout replacements. Switch to tailwind.css.

pull/11862/head
Igor Kulikov 2 years ago
parent
commit
6fbc7b6875
  1. 4
      ui-ngx/src/app/modules/home/components/widget/action/manage-widget-actions-dialog.component.html
  2. 19
      ui-ngx/src/app/modules/home/components/widget/action/manage-widget-actions.component.html
  3. 15
      ui-ngx/src/app/modules/home/components/widget/action/widget-action-dialog.component.html
  4. 2
      ui-ngx/src/app/modules/home/components/widget/config/basic/alarm/alarm-count-basic-config.component.html
  5. 8
      ui-ngx/src/app/modules/home/components/widget/config/basic/alarm/alarms-table-basic-config.component.html
  6. 6
      ui-ngx/src/app/modules/home/components/widget/config/basic/button/action-button-basic-config.component.html
  7. 4
      ui-ngx/src/app/modules/home/components/widget/config/basic/button/command-button-basic-config.component.html
  8. 32
      ui-ngx/src/app/modules/home/components/widget/config/basic/button/power-button-basic-config.component.html
  9. 25
      ui-ngx/src/app/modules/home/components/widget/config/basic/button/toggle-button-basic-config.component.html
  10. 4
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-data-key-row.component.html
  11. 5
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-data-keys-panel.component.html
  12. 16
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.html
  13. 6
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/label-card-basic-config.component.html
  14. 10
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/label-value-card-basic-config.component.html
  15. 2
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/mobile-app-qr-code-basic-config.component.html
  16. 14
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/progress-bar-basic-config.component.html
  17. 2
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/simple-card-basic-config.component.html
  18. 6
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/timeseries-table-basic-config.component.html
  19. 8
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/unread-notification-basic-config.component.html
  20. 18
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-card-basic-config.component.html
  21. 10
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-chart-card-basic-config.component.html
  22. 30
      ui-ngx/src/app/modules/home/components/widget/config/basic/chart/bar-chart-with-labels-basic-config.component.html
  23. 5
      ui-ngx/src/app/modules/home/components/widget/config/basic/chart/comparison-keys-table.component.html
  24. 11
      ui-ngx/src/app/modules/home/components/widget/config/basic/chart/flot-basic-config.component.html
  25. 54
      ui-ngx/src/app/modules/home/components/widget/config/basic/chart/latest-chart-basic-config.component.html
  26. 30
      ui-ngx/src/app/modules/home/components/widget/config/basic/chart/range-chart-basic-config.component.html
  27. 36
      ui-ngx/src/app/modules/home/components/widget/config/basic/chart/time-series-chart-basic-config.component.html
  28. 4
      ui-ngx/src/app/modules/home/components/widget/config/basic/common/data-key-row.component.html
  29. 11
      ui-ngx/src/app/modules/home/components/widget/config/basic/common/data-keys-panel.component.html
  30. 4
      ui-ngx/src/app/modules/home/components/widget/config/basic/common/widget-actions-panel.component.html
  31. 6
      ui-ngx/src/app/modules/home/components/widget/config/basic/entity/entities-table-basic-config.component.html
  32. 10
      ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.html
  33. 12
      ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.html
  34. 10
      ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/digital-simple-gauge-basic-config.component.html
  35. 4
      ui-ngx/src/app/modules/home/components/widget/config/data-key-config-dialog.component.html
  36. 15
      ui-ngx/src/app/modules/home/components/widget/config/data-key-config.component.html
  37. 8
      ui-ngx/src/app/modules/home/components/widget/config/data-keys.component.html
  38. 12
      ui-ngx/src/app/modules/home/components/widget/config/datasource.component.html
  39. 12
      ui-ngx/src/app/modules/home/components/widget/config/datasources.component.html
  40. 2
      ui-ngx/src/app/modules/home/components/widget/config/target-device.component.html
  41. 4
      ui-ngx/src/app/modules/home/components/widget/config/timewindow-config-panel.component.html
  42. 4
      ui-ngx/src/app/modules/home/components/widget/config/timewindow-style-panel.component.html
  43. 26
      ui-ngx/src/app/modules/home/components/widget/widget-config.component.html
  44. 6
      ui-ngx/src/app/modules/home/components/widget/widget-container.component.html
  45. 11
      ui-ngx/src/app/modules/home/components/widget/widget.component.html

4
ui-ngx/src/app/modules/home/components/widget/action/manage-widget-actions-dialog.component.html

@ -18,7 +18,7 @@
<form [formGroup]="actionsSettings" style="width: 900px;"> <form [formGroup]="actionsSettings" style="width: 900px;">
<mat-toolbar color="primary"> <mat-toolbar color="primary">
<h2>{{ data.widgetTitle }}: {{ 'widget-config.actions' | translate }}</h2> <h2>{{ data.widgetTitle }}: {{ 'widget-config.actions' | translate }}</h2>
<span fxFlex></span> <span class="flex-1"></span>
<button mat-icon-button <button mat-icon-button
(click)="cancel()" (click)="cancel()"
type="button"> type="button">
@ -36,7 +36,7 @@
formControlName="actions"> formControlName="actions">
</tb-manage-widget-actions> </tb-manage-widget-actions>
</div> </div>
<div mat-dialog-actions fxLayoutAlign="end center"> <div mat-dialog-actions class="flex justify-end items-center">
<button mat-button color="primary" <button mat-button color="primary"
type="button" type="button"
[disabled]="(isLoading$ | async)" [disabled]="(isLoading$ | async)"

19
ui-ngx/src/app/modules/home/components/widget/action/manage-widget-actions.component.html

@ -16,11 +16,11 @@
--> -->
<div class="tb-entity-table tb-absolute-fill"> <div class="tb-entity-table tb-absolute-fill">
<div fxFlex fxLayout="column" class="tb-entity-table-content"> <div class="tb-entity-table-content flex-1 flex flex-col">
<mat-toolbar class="mat-mdc-table-toolbar" [fxShow]="!textSearchMode"> <mat-toolbar class="mat-mdc-table-toolbar" [class.!hidden]="textSearchMode">
<div class="mat-toolbar-tools"> <div class="mat-toolbar-tools">
<span class="tb-entity-table-title" translate>widget-config.actions</span> <span class="tb-entity-table-title" translate>widget-config.actions</span>
<span fxFlex></span> <span class="flex-1"></span>
<button mat-icon-button [disabled]="isLoading$ | async" <button mat-icon-button [disabled]="isLoading$ | async"
type="button" type="button"
(click)="addAction($event)" (click)="addAction($event)"
@ -36,7 +36,7 @@
</button> </button>
</div> </div>
</mat-toolbar> </mat-toolbar>
<mat-toolbar class="mat-mdc-table-toolbar" [fxShow]="textSearchMode"> <mat-toolbar class="mat-mdc-table-toolbar" [class.!hidden]="!textSearchMode">
<div class="mat-toolbar-tools"> <div class="mat-toolbar-tools">
<button mat-icon-button <button mat-icon-button
type="button" type="button"
@ -44,7 +44,7 @@
matTooltipPosition="above"> matTooltipPosition="above">
<mat-icon>search</mat-icon> <mat-icon>search</mat-icon>
</button> </button>
<mat-form-field fxFlex> <mat-form-field class="flex-1">
<mat-label>&nbsp;</mat-label> <mat-label>&nbsp;</mat-label>
<input #searchInput matInput <input #searchInput matInput
[(ngModel)]="pageLink.textSearch" [(ngModel)]="pageLink.textSearch"
@ -58,7 +58,7 @@
</button> </button>
</div> </div>
</mat-toolbar> </mat-toolbar>
<div fxFlex class="table-container"> <div class="table-container flex-1">
<table mat-table <table mat-table
[dataSource]="dataSource" [dataSource]="dataSource"
matSort [matSortActive]="pageLink.sortOrder.property" [matSortDirection]="pageLink.sortDirection()" matSortDisableClear matSort [matSortActive]="pageLink.sortOrder.property" [matSortDirection]="pageLink.sortDirection()" matSortDisableClear
@ -109,7 +109,7 @@
<mat-header-cell *matHeaderCellDef style="min-width: 80px; max-width: 80px; width: 80px"> <mat-header-cell *matHeaderCellDef style="min-width: 80px; max-width: 80px; width: 80px">
</mat-header-cell> </mat-header-cell>
<mat-cell *matCellDef="let action"> <mat-cell *matCellDef="let action">
<div fxFlex fxLayout="row" fxLayoutAlign="end"> <div class="flex-1 flex flex-row justify-end items-stretch">
<button mat-icon-button [disabled]="isLoading$ | async" <button mat-icon-button [disabled]="isLoading$ | async"
type="button" type="button"
matTooltip="{{ 'widget-config.edit-action' | translate }}" matTooltip="{{ 'widget-config.edit-action' | translate }}"
@ -132,9 +132,8 @@
*matRowDef="let action; columns: displayedColumns;" *matRowDef="let action; columns: displayedColumns;"
cdkDrag [cdkDragData]="action"></mat-row> cdkDrag [cdkDragData]="action"></mat-row>
</table> </table>
<span [fxShow]="dataSource.isEmpty() | async" <span [class.!hidden]="(dataSource.isEmpty() | async) === false"
fxLayoutAlign="center center" class="no-data-found flex justify-center items-center" translate>{{ 'widget-config.no-actions-text' }}</span>
class="no-data-found" translate>{{ 'widget-config.no-actions-text' }}</span>
</div> </div>
<mat-divider></mat-divider> <mat-divider></mat-divider>
<mat-paginator [length]="dataSource.total() | async" <mat-paginator [length]="dataSource.total() | async"

15
ui-ngx/src/app/modules/home/components/widget/action/widget-action-dialog.component.html

@ -18,7 +18,7 @@
<form [formGroup]="widgetActionFormGroup" (ngSubmit)="save()" style="width: 900px;"> <form [formGroup]="widgetActionFormGroup" (ngSubmit)="save()" style="width: 900px;">
<mat-toolbar color="primary"> <mat-toolbar color="primary">
<h2>{{ (isAdd ? 'widget-config.add-action' : 'widget-config.edit-action' ) | translate }}</h2> <h2>{{ (isAdd ? 'widget-config.add-action' : 'widget-config.edit-action' ) | translate }}</h2>
<span fxFlex></span> <span class="flex-1"></span>
<button mat-icon-button <button mat-icon-button
(click)="cancel()" (click)="cancel()"
type="button"> type="button">
@ -33,7 +33,7 @@
<div class="tb-form-panel no-padding no-border"> <div class="tb-form-panel no-padding no-border">
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width">{{'widget-config.action-source' | translate}}*</div> <div class="fixed-title-width">{{'widget-config.action-source' | translate}}*</div>
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<mat-select required formControlName="actionSourceId" placeholder="{{ 'widget-config.select-action-source' | translate }}"> <mat-select required formControlName="actionSourceId" placeholder="{{ 'widget-config.select-action-source' | translate }}">
<mat-option *ngFor="let actionSourceItem of data.actionsData.actionSources | keyvalue" [value]="actionSourceItem.key"> <mat-option *ngFor="let actionSourceItem of data.actionsData.actionSources | keyvalue" [value]="actionSourceItem.key">
{{ actionSourceName(actionSourceItem.value) }} {{ actionSourceName(actionSourceItem.value) }}
@ -52,7 +52,7 @@
</div> </div>
<div class="tb-form-row" *ngIf="widgetActionFormGroup.get('actionSourceId').value === 'cellClick'"> <div class="tb-form-row" *ngIf="widgetActionFormGroup.get('actionSourceId').value === 'cellClick'">
<div class="fixed-title-width">{{'widget-config.column-index' | translate}}*</div> <div class="fixed-title-width">{{'widget-config.column-index' | translate}}*</div>
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<mat-select #columnIndexSelect formControlName="columnIndex" placeholder="{{ columnIndexPlaceholderText }}"> <mat-select #columnIndexSelect formControlName="columnIndex" placeholder="{{ columnIndexPlaceholderText }}">
<mat-option *ngFor="let column of configuredColumns; let $index = index" <mat-option *ngFor="let column of configuredColumns; let $index = index"
[value]="$index" [value]="$index"
@ -73,7 +73,7 @@
</div> </div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width">{{'widget-config.action-name' | translate}}*</div> <div class="fixed-title-width">{{'widget-config.action-name' | translate}}*</div>
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<input required matInput formControlName="name" placeholder="{{ 'widget-config.set' | translate }}"> <input required matInput formControlName="name" placeholder="{{ 'widget-config.set' | translate }}">
<mat-icon matSuffix <mat-icon matSuffix
matTooltipPosition="above" matTooltipPosition="above"
@ -97,10 +97,9 @@
<div class="tb-form-panel stroked tb-slide-toggle" *ngIf="displayShowWidgetActionForm()"> <div class="tb-form-panel stroked tb-slide-toggle" *ngIf="displayShowWidgetActionForm()">
<mat-expansion-panel class="tb-settings" [expanded]="widgetActionFormGroup.get('useShowWidgetActionFunction').value" <mat-expansion-panel class="tb-settings" [expanded]="widgetActionFormGroup.get('useShowWidgetActionFunction').value"
[disabled]="!widgetActionFormGroup.get('useShowWidgetActionFunction').value"> [disabled]="!widgetActionFormGroup.get('useShowWidgetActionFunction').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="useShowWidgetActionFunction" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="useShowWidgetActionFunction" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'widget-config.show-hide-action-using-function' | translate }} {{ 'widget-config.show-hide-action-using-function' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
@ -126,7 +125,7 @@
</div> </div>
</fieldset> </fieldset>
</div> </div>
<div mat-dialog-actions fxLayoutAlign="end center"> <div mat-dialog-actions class="flex justify-end items-center">
<button mat-button color="primary" <button mat-button color="primary"
type="button" type="button"
[disabled]="(isLoading$ | async)" [disabled]="(isLoading$ | async)"

2
ui-ngx/src/app/modules/home/components/widget/config/basic/alarm/alarm-count-basic-config.component.html

@ -17,7 +17,7 @@
--> -->
<ng-container [formGroup]="alarmCountWidgetConfigForm"> <ng-container [formGroup]="alarmCountWidgetConfigForm">
<div class="tb-form-panel"> <div class="tb-form-panel">
<div fxLayout="row" fxLayoutAlign="space-between center"> <div class="flex flex-row justify-between items-center">
<div class="tb-form-panel-title" translate>alarm.filter</div> <div class="tb-form-panel-title" translate>alarm.filter</div>
<button mat-button color="primary" <button mat-button color="primary"
(click)="alarmFilterConfig.reset()"> (click)="alarmFilterConfig.reset()">

8
ui-ngx/src/app/modules/home/components/widget/config/basic/alarm/alarms-table-basic-config.component.html

@ -24,7 +24,7 @@
formControlName="datasources"> formControlName="datasources">
</tb-datasources> </tb-datasources>
<div class="tb-form-panel"> <div class="tb-form-panel">
<div fxLayout="row" fxLayoutAlign="space-between center"> <div class="flex flex-row justify-between items-center">
<div class="tb-form-panel-title" translate>alarm.filter</div> <div class="tb-form-panel-title" translate>alarm.filter</div>
<button mat-button color="primary" <button mat-button color="primary"
(click)="alarmFilterConfig.reset()"> (click)="alarmFilterConfig.reset()">
@ -55,8 +55,8 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.card-title' | translate }} {{ 'widget-config.card-title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="titleFont" <tb-font-settings formControlName="titleFont"
@ -74,7 +74,7 @@
<mat-slide-toggle class="mat-slide" formControlName="showTitleIcon"> <mat-slide-toggle class="mat-slide" formControlName="showTitleIcon">
{{ 'widget-config.card-icon' | translate }} {{ 'widget-config.card-icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="alarmsTableWidgetConfigForm.get('iconColor').value" [color]="alarmsTableWidgetConfigForm.get('iconColor').value"

6
ui-ngx/src/app/modules/home/components/widget/config/basic/button/action-button-basic-config.component.html

@ -28,7 +28,7 @@
<div class="tb-form-panel-title" translate>widgets.action-button.behavior</div> <div class="tb-form-panel-title" translate>widgets.action-button.behavior</div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.action-button.on-click-hint' | translate}}" translate>widgets.action-button.on-click</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.action-button.on-click-hint' | translate}}" translate>widgets.action-button.on-click</div>
<tb-widget-action-settings fxFlex <tb-widget-action-settings class="flex-1"
panelTitle="{{ 'widgets.action-button.on-click' | translate }}" panelTitle="{{ 'widgets.action-button.on-click' | translate }}"
[callbacks]="callbacks" [callbacks]="callbacks"
[widgetType]="widgetType" [widgetType]="widgetType"
@ -37,7 +37,7 @@
</div> </div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.button-state.activated-state-hint' | translate}}" translate>widgets.button-state.activated-state</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.button-state.activated-state-hint' | translate}}" translate>widgets.button-state.activated-state</div>
<tb-get-value-action-settings fxFlex <tb-get-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.button-state.activated-state' | translate }}" panelTitle="{{ 'widgets.button-state.activated-state' | translate }}"
[valueType]="valueType.BOOLEAN" [valueType]="valueType.BOOLEAN"
stateLabel="{{ 'widgets.button-state.activated' | translate }}" stateLabel="{{ 'widgets.button-state.activated' | translate }}"
@ -48,7 +48,7 @@
</div> </div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.button-state.disabled-state-hint' | translate}}" translate>widgets.button-state.disabled-state</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.button-state.disabled-state-hint' | translate}}" translate>widgets.button-state.disabled-state</div>
<tb-get-value-action-settings fxFlex <tb-get-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.button-state.disabled-state' | translate }}" panelTitle="{{ 'widgets.button-state.disabled-state' | translate }}"
[valueType]="valueType.BOOLEAN" [valueType]="valueType.BOOLEAN"
stateLabel="{{ 'widgets.button-state.disabled' | translate }}" stateLabel="{{ 'widgets.button-state.disabled' | translate }}"

4
ui-ngx/src/app/modules/home/components/widget/config/basic/button/command-button-basic-config.component.html

@ -21,7 +21,7 @@
<div class="tb-form-panel-title" translate>widgets.command-button.behavior</div> <div class="tb-form-panel-title" translate>widgets.command-button.behavior</div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.command-button.on-click-hint' | translate}}" translate>widgets.command-button.on-click</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.command-button.on-click-hint' | translate}}" translate>widgets.command-button.on-click</div>
<tb-set-value-action-settings fxFlex <tb-set-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.command-button.on-click' | translate }}" panelTitle="{{ 'widgets.command-button.on-click' | translate }}"
[aliasController]="aliasController" [aliasController]="aliasController"
[targetDevice]="targetDevice" [targetDevice]="targetDevice"
@ -30,7 +30,7 @@
</div> </div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.button-state.disabled-state-hint' | translate}}" translate>widgets.button-state.disabled-state</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.button-state.disabled-state-hint' | translate}}" translate>widgets.button-state.disabled-state</div>
<tb-get-value-action-settings fxFlex <tb-get-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.button-state.disabled-state' | translate }}" panelTitle="{{ 'widgets.button-state.disabled-state' | translate }}"
[valueType]="valueType.BOOLEAN" [valueType]="valueType.BOOLEAN"
stateLabel="{{ 'widgets.button-state.disabled' | translate }}" stateLabel="{{ 'widgets.button-state.disabled' | translate }}"

32
ui-ngx/src/app/modules/home/components/widget/config/basic/button/power-button-basic-config.component.html

@ -21,7 +21,7 @@
<div class="tb-form-panel-title" translate>widgets.power-button.behavior</div> <div class="tb-form-panel-title" translate>widgets.power-button.behavior</div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.rpc-state.initial-state-hint' | translate}}" translate>widgets.rpc-state.initial-state</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.rpc-state.initial-state-hint' | translate}}" translate>widgets.rpc-state.initial-state</div>
<tb-get-value-action-settings fxFlex <tb-get-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.rpc-state.initial-state' | translate }}" panelTitle="{{ 'widgets.rpc-state.initial-state' | translate }}"
[valueType]="valueType.BOOLEAN" [valueType]="valueType.BOOLEAN"
trueLabel="{{ 'widgets.rpc-state.on' | translate }}" trueLabel="{{ 'widgets.rpc-state.on' | translate }}"
@ -34,7 +34,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.power-button.power-on-hint' | translate}}" translate>widgets.power-button.power-on</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.power-button.power-on-hint' | translate}}" translate>widgets.power-button.power-on</div>
<tb-set-value-action-settings fxFlex <tb-set-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.power-button.power-on' | translate }}" panelTitle="{{ 'widgets.power-button.power-on' | translate }}"
[aliasController]="aliasController" [aliasController]="aliasController"
[targetDevice]="targetDevice" [targetDevice]="targetDevice"
@ -43,7 +43,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.power-button.power-off-hint' | translate}}" translate>widgets.power-button.power-off</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.power-button.power-off-hint' | translate}}" translate>widgets.power-button.power-off</div>
<tb-set-value-action-settings fxFlex <tb-set-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.power-button.power-off' | translate }}" panelTitle="{{ 'widgets.power-button.power-off' | translate }}"
[aliasController]="aliasController" [aliasController]="aliasController"
[targetDevice]="targetDevice" [targetDevice]="targetDevice"
@ -52,7 +52,7 @@
</div> </div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.rpc-state.disabled-state-hint' | translate}}" translate>widgets.rpc-state.disabled-state</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.rpc-state.disabled-state-hint' | translate}}" translate>widgets.rpc-state.disabled-state</div>
<tb-get-value-action-settings fxFlex <tb-get-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.rpc-state.disabled-state' | translate }}" panelTitle="{{ 'widgets.rpc-state.disabled-state' | translate }}"
[valueType]="valueType.BOOLEAN" [valueType]="valueType.BOOLEAN"
stateLabel="{{ 'widgets.rpc-state.disabled' | translate }}" stateLabel="{{ 'widgets.rpc-state.disabled' | translate }}"
@ -81,7 +81,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.title' | translate }} {{ 'widget-config.title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -100,11 +100,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widget-config.card-icon' | translate }} {{ 'widget-config.card-icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="powerButtonWidgetConfigForm.get('iconColor').value" [color]="powerButtonWidgetConfigForm.get('iconColor').value"
@ -118,15 +118,15 @@
</div> </div>
<div class="tb-form-row space-between column-xs"> <div class="tb-form-row space-between column-xs">
<div>{{ 'widgets.power-button.power-on-colors' | translate }}</div> <div>{{ 'widgets.power-button.power-on-colors' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="12px"> <div class="flex flex-row justify-start items-center gap-3">
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<div translate>widgets.power-button.main</div> <div translate>widgets.power-button.main</div>
<tb-color-input asBoxInput <tb-color-input asBoxInput
formControlName="mainColorOn"> formControlName="mainColorOn">
</tb-color-input> </tb-color-input>
</div> </div>
<mat-divider vertical></mat-divider> <mat-divider vertical></mat-divider>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<div translate>widgets.power-button.background</div> <div translate>widgets.power-button.background</div>
<tb-color-input asBoxInput <tb-color-input asBoxInput
formControlName="backgroundColorOn"> formControlName="backgroundColorOn">
@ -136,15 +136,15 @@
</div> </div>
<div class="tb-form-row space-between column-xs"> <div class="tb-form-row space-between column-xs">
<div>{{ 'widgets.power-button.power-off-colors' | translate }}</div> <div>{{ 'widgets.power-button.power-off-colors' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="12px"> <div class="flex flex-row justify-start items-center gap-3">
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<div translate>widgets.power-button.main</div> <div translate>widgets.power-button.main</div>
<tb-color-input asBoxInput <tb-color-input asBoxInput
formControlName="mainColorOff"> formControlName="mainColorOff">
</tb-color-input> </tb-color-input>
</div> </div>
<mat-divider vertical></mat-divider> <mat-divider vertical></mat-divider>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<div translate>widgets.power-button.background</div> <div translate>widgets.power-button.background</div>
<tb-color-input asBoxInput <tb-color-input asBoxInput
formControlName="backgroundColorOff"> formControlName="backgroundColorOff">
@ -154,15 +154,15 @@
</div> </div>
<div class="tb-form-row space-between column-xs"> <div class="tb-form-row space-between column-xs">
<div>{{ 'widgets.power-button.disabled-colors' | translate }}</div> <div>{{ 'widgets.power-button.disabled-colors' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="12px"> <div class="flex flex-row justify-start items-center gap-3">
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<div translate>widgets.power-button.main</div> <div translate>widgets.power-button.main</div>
<tb-color-input asBoxInput <tb-color-input asBoxInput
formControlName="mainColorDisabled"> formControlName="mainColorDisabled">
</tb-color-input> </tb-color-input>
</div> </div>
<mat-divider vertical></mat-divider> <mat-divider vertical></mat-divider>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<div translate>widgets.power-button.background</div> <div translate>widgets.power-button.background</div>
<tb-color-input asBoxInput <tb-color-input asBoxInput
formControlName="backgroundColorDisabled"> formControlName="backgroundColorDisabled">

25
ui-ngx/src/app/modules/home/components/widget/config/basic/button/toggle-button-basic-config.component.html

@ -21,7 +21,7 @@
<div class="tb-form-panel-title" translate>widgets.toggle-button.behavior</div> <div class="tb-form-panel-title" translate>widgets.toggle-button.behavior</div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.rpc-state.initial-state-hint' | translate}}" translate>widgets.rpc-state.initial-state</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.rpc-state.initial-state-hint' | translate}}" translate>widgets.rpc-state.initial-state</div>
<tb-get-value-action-settings fxFlex <tb-get-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.rpc-state.initial-state' | translate }}" panelTitle="{{ 'widgets.rpc-state.initial-state' | translate }}"
[valueType]="valueType.BOOLEAN" [valueType]="valueType.BOOLEAN"
trueLabel="{{ 'widgets.toggle-button.checked' | translate }}" trueLabel="{{ 'widgets.toggle-button.checked' | translate }}"
@ -34,7 +34,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.toggle-button.check-hint' | translate}}" translate>widgets.toggle-button.check</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.toggle-button.check-hint' | translate}}" translate>widgets.toggle-button.check</div>
<tb-set-value-action-settings fxFlex <tb-set-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.toggle-button.check' | translate }}" panelTitle="{{ 'widgets.toggle-button.check' | translate }}"
[aliasController]="aliasController" [aliasController]="aliasController"
[targetDevice]="targetDevice" [targetDevice]="targetDevice"
@ -43,7 +43,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.toggle-button.uncheck-hint' | translate}}" translate>widgets.toggle-button.uncheck</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.toggle-button.uncheck-hint' | translate}}" translate>widgets.toggle-button.uncheck</div>
<tb-set-value-action-settings fxFlex <tb-set-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.toggle-button.uncheck' | translate }}" panelTitle="{{ 'widgets.toggle-button.uncheck' | translate }}"
[aliasController]="aliasController" [aliasController]="aliasController"
[targetDevice]="targetDevice" [targetDevice]="targetDevice"
@ -52,7 +52,7 @@
</div> </div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.rpc-state.disabled-state-hint' | translate}}" translate>widgets.rpc-state.disabled-state</div> <div class="fixed-title-width" tb-hint-tooltip-icon="{{'widgets.rpc-state.disabled-state-hint' | translate}}" translate>widgets.rpc-state.disabled-state</div>
<tb-get-value-action-settings fxFlex <tb-get-value-action-settings class="flex-1"
panelTitle="{{ 'widgets.rpc-state.disabled-state' | translate }}" panelTitle="{{ 'widgets.rpc-state.disabled-state' | translate }}"
[valueType]="valueType.BOOLEAN" [valueType]="valueType.BOOLEAN"
stateLabel="{{ 'widgets.rpc-state.disabled' | translate }}" stateLabel="{{ 'widgets.rpc-state.disabled' | translate }}"
@ -66,10 +66,9 @@
<div class="tb-form-panel-title" translate>widget-config.appearance</div> <div class="tb-form-panel-title" translate>widget-config.appearance</div>
<div class="tb-form-panel stroked tb-slide-toggle"> <div class="tb-form-panel stroked tb-slide-toggle">
<mat-expansion-panel class="tb-settings" [expanded]="!toggleButtonWidgetConfigForm.get('autoScale').value" disabled> <mat-expansion-panel class="tb-settings" [expanded]="!toggleButtonWidgetConfigForm.get('autoScale').value" disabled>
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="autoScale" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="autoScale" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'widgets.toggle-button.auto-scale' | translate }} {{ 'widgets.toggle-button.auto-scale' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
@ -92,7 +91,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.title' | translate }} {{ 'widget-config.title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -111,11 +110,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widget-config.card-icon' | translate }} {{ 'widget-config.card-icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="toggleButtonWidgetConfigForm.get('iconColor').value" [color]="toggleButtonWidgetConfigForm.get('iconColor').value"
@ -129,7 +128,7 @@
</div> </div>
</div> </div>
<div class="tb-form-panel"> <div class="tb-form-panel">
<div fxLayout="row" fxLayoutAlign="space-between center"> <div class="flex flex-row justify-between items-center">
<div class="tb-form-panel-title" translate>widgets.toggle-button.button-appearance</div> <div class="tb-form-panel-title" translate>widgets.toggle-button.button-appearance</div>
<tb-toggle-select [(ngModel)]="buttonAppearanceType" [ngModelOptions]="{standalone: true}"> <tb-toggle-select [(ngModel)]="buttonAppearanceType" [ngModelOptions]="{standalone: true}">
<tb-toggle-option value="checked">{{ 'widgets.toggle-button.checked' | translate }}</tb-toggle-option> <tb-toggle-option value="checked">{{ 'widgets.toggle-button.checked' | translate }}</tb-toggle-option>
@ -137,14 +136,14 @@
</tb-toggle-select> </tb-toggle-select>
</div> </div>
<tb-widget-button-appearance <tb-widget-button-appearance
[fxShow]="buttonAppearanceType === 'checked'" [class.!hidden]="buttonAppearanceType !== 'checked'"
withBorderRadius withBorderRadius
[withAutoScale]="false" [withAutoScale]="false"
[autoScale]="toggleButtonWidgetConfigForm.get('autoScale').value" [autoScale]="toggleButtonWidgetConfigForm.get('autoScale').value"
formControlName="checkedAppearance"> formControlName="checkedAppearance">
</tb-widget-button-appearance> </tb-widget-button-appearance>
<tb-widget-button-appearance <tb-widget-button-appearance
[fxShow]="buttonAppearanceType === 'unchecked'" [class.!hidden]="buttonAppearanceType !== 'unchecked'"
withBorderRadius withBorderRadius
[withAutoScale]="false" [withAutoScale]="false"
[autoScale]="toggleButtonWidgetConfigForm.get('autoScale').value" [autoScale]="toggleButtonWidgetConfigForm.get('autoScale').value"

4
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-data-key-row.component.html

@ -26,7 +26,7 @@
<mat-form-field class="tb-inline-field tb-aggregation-field" subscriptSizing="dynamic"> <mat-form-field class="tb-inline-field tb-aggregation-field" subscriptSizing="dynamic">
<mat-chip-grid #chipList> <mat-chip-grid #chipList>
<mat-chip-row class="tb-datakey-chip"> <mat-chip-row class="tb-datakey-chip">
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="4px" class="tb-attribute-chip"> <div class="tb-attribute-chip flex flex-row justify-start items-center gap-1">
<div class="tb-chip-labels"> <div class="tb-chip-labels">
<div class="tb-chip-label tb-chip-text"> <div class="tb-chip-label tb-chip-text">
<ng-container *ngTemplateOutlet="keyName"></ng-container> <ng-container *ngTemplateOutlet="keyName"></ng-container>
@ -41,7 +41,7 @@
</mat-chip-grid> </mat-chip-grid>
<input matInput <input matInput
type="text" type="text"
fxHide class="!hidden"
readonly readonly
[matChipInputFor]="chipList" [matChipInputFor]="chipList"
/> />

5
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-data-keys-panel.component.html

@ -30,7 +30,7 @@
</div> </div>
<div *ngIf="keysFormArray().controls.length; else noKeys" class="tb-form-table-body"> <div *ngIf="keysFormArray().controls.length; else noKeys" class="tb-form-table-body">
<div *ngFor="let keyControl of keysFormArray().controls; trackBy: trackByKey; let $index = index;"> <div *ngFor="let keyControl of keysFormArray().controls; trackBy: trackByKey; let $index = index;">
<tb-aggregated-data-key-row fxFlex <tb-aggregated-data-key-row class="flex-1"
[formControl]="keyControl" [formControl]="keyControl"
[index]="$index" [index]="$index"
[datasourceType]="datasourceType" [datasourceType]="datasourceType"
@ -47,6 +47,5 @@
</div> </div>
</div> </div>
<ng-template #noKeys> <ng-template #noKeys>
<span fxLayoutAlign="center center" <span class="tb-prompt flex justify-center items-center">{{ 'widgets.aggregated-value-card.no-values' | translate }}</span>
class="tb-prompt">{{ 'widgets.aggregated-value-card.no-values' | translate }}</span>
</ng-template> </ng-template>

16
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.html

@ -38,7 +38,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.title' | translate }} {{ 'widget-config.title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -57,11 +57,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widgets.value-card.icon' | translate }} {{ 'widgets.value-card.icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="aggregatedValueCardWidgetConfigForm.get('iconColor').value" [color]="aggregatedValueCardWidgetConfigForm.get('iconColor').value"
@ -77,7 +77,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showSubtitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showSubtitle">
{{ 'widgets.aggregated-value-card.subtitle' | translate }} {{ 'widgets.aggregated-value-card.subtitle' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="subtitle" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="subtitle" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -95,8 +95,8 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showDate"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showDate">
{{ 'widgets.value-card.date' | translate }} {{ 'widgets.value-card.date' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex.gt-xs fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="gt-xs:flex-1 flex flex-row justify-start items-center gap-2">
<tb-date-format-select fxFlex formControlName="dateFormat"></tb-date-format-select> <tb-date-format-select class="flex-1" formControlName="dateFormat"></tb-date-format-select>
<tb-font-settings formControlName="dateFont" <tb-font-settings formControlName="dateFont"
[previewText]="datePreviewFn"> [previewText]="datePreviewFn">
</tb-font-settings> </tb-font-settings>
@ -110,11 +110,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showChart"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showChart">
{{ 'widgets.aggregated-value-card.chart' | translate }} {{ 'widgets.aggregated-value-card.chart' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<tb-unit-input class="flex" formControlName="chartUnits"></tb-unit-input> <tb-unit-input class="flex" formControlName="chartUnits"></tb-unit-input>
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput formControlName="chartDecimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="chartDecimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}">
<div matSuffix fxHide.lt-md translate>widget-config.decimals-suffix</div> <div matSuffix class="lt-md:!hidden" translate>widget-config.decimals-suffix</div>
</mat-form-field> </mat-form-field>
<tb-color-input asBoxInput <tb-color-input asBoxInput
colorClearButton colorClearButton

6
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/label-card-basic-config.component.html

@ -25,7 +25,7 @@
</div> </div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" translate>widgets.label-card.label</div> <div class="fixed-title-width" translate>widgets.label-card.label</div>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="label" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="label" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -42,11 +42,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widgets.label-card.icon' | translate }} {{ 'widgets.label-card.icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="labelCardWidgetConfigForm.get('iconColor').value" [color]="labelCardWidgetConfigForm.get('iconColor').value"

10
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/label-value-card-basic-config.component.html

@ -40,7 +40,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showLabel"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showLabel">
{{ 'widgets.label-card.label' | translate }} {{ 'widgets.label-card.label' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="label" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="label" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -55,11 +55,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widgets.label-card.icon' | translate }} {{ 'widgets.label-card.icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="labelValueCardWidgetConfigForm.get('iconColor').value?.color" [color]="labelValueCardWidgetConfigForm.get('iconColor').value?.color"
@ -71,11 +71,11 @@
</div> </div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" translate>widgets.label-value-card.value</div> <div class="fixed-title-width" translate>widgets.label-value-card.value</div>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<tb-unit-input class="flex" formControlName="units"></tb-unit-input> <tb-unit-input class="flex" formControlName="units"></tb-unit-input>
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}">
<div matSuffix fxHide.lt-md translate>widget-config.decimals-suffix</div> <div matSuffix class="lt-md:!hidden" translate>widget-config.decimals-suffix</div>
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="valueFont" <tb-font-settings formControlName="valueFont"
[previewText]="valuePreviewFn"> [previewText]="valuePreviewFn">

2
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/mobile-app-qr-code-basic-config.component.html

@ -71,7 +71,7 @@
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="mobileAppQrCodeWidgetConfigForm.get('iconColor').value" [color]="mobileAppQrCodeWidgetConfigForm.get('iconColor').value"

14
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/progress-bar-basic-config.component.html

@ -51,7 +51,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.title' | translate }} {{ 'widget-config.title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -70,11 +70,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widgets.progress-bar.icon' | translate }} {{ 'widgets.progress-bar.icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="progressBarWidgetConfigForm.get('iconColor').value" [color]="progressBarWidgetConfigForm.get('iconColor').value"
@ -90,11 +90,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showValue"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showValue">
{{ 'widgets.progress-bar.value' | translate }} {{ 'widgets.progress-bar.value' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<tb-unit-input class="flex" formControlName="units"></tb-unit-input> <tb-unit-input class="flex" formControlName="units"></tb-unit-input>
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}">
<div matSuffix fxHide.lt-md translate>widget-config.decimals-suffix</div> <div matSuffix class="lt-md:!hidden" translate>widget-config.decimals-suffix</div>
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="valueFont" <tb-font-settings formControlName="valueFont"
[previewText]="valuePreviewFn"> [previewText]="valuePreviewFn">
@ -108,7 +108,7 @@
</div> </div>
<div class="tb-form-row space-between column-xs"> <div class="tb-form-row space-between column-xs">
<div>{{ 'widgets.progress-bar.range' | translate }}</div> <div>{{ 'widgets.progress-bar.range' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<div class="tb-small-label" translate>widgets.progress-bar.min</div> <div class="tb-small-label" translate>widgets.progress-bar.min</div>
<mat-form-field appearance="outline" class="number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="number" subscriptSizing="dynamic">
<input matInput formControlName="tickMin" type="number" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="tickMin" type="number" placeholder="{{ 'widget-config.set' | translate }}">
@ -123,7 +123,7 @@
<mat-slide-toggle class="mat-slide" formControlName="showTicks"> <mat-slide-toggle class="mat-slide" formControlName="showTicks">
{{ 'widgets.progress-bar.range-ticks' | translate }} {{ 'widgets.progress-bar.range-ticks' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="ticksFont" <tb-font-settings formControlName="ticksFont"
previewText="100"> previewText="100">
</tb-font-settings> </tb-font-settings>

2
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/simple-card-basic-config.component.html

@ -32,7 +32,7 @@
<div class="tb-form-panel-title" translate>widget-config.appearance</div> <div class="tb-form-panel-title" translate>widget-config.appearance</div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" translate>widgets.simple-card.label</div> <div class="fixed-title-width" translate>widgets.simple-card.label</div>
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="label" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="label" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
</div> </div>

6
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/timeseries-table-basic-config.component.html

@ -43,8 +43,8 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.card-title' | translate }} {{ 'widget-config.card-title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="titleFont" <tb-font-settings formControlName="titleFont"
@ -62,7 +62,7 @@
<mat-slide-toggle class="mat-slide" formControlName="showTitleIcon"> <mat-slide-toggle class="mat-slide" formControlName="showTitleIcon">
{{ 'widget-config.card-icon' | translate }} {{ 'widget-config.card-icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="timeseriesTableWidgetConfigForm.get('iconColor').value" [color]="timeseriesTableWidgetConfigForm.get('iconColor').value"

8
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/unread-notification-basic-config.component.html

@ -23,7 +23,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.title' | translate }} {{ 'widget-config.title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -42,11 +42,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widgets.notification.icon' | translate }} {{ 'widgets.notification.icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="unreadNotificationWidgetConfigForm.get('iconColor').value" [color]="unreadNotificationWidgetConfigForm.get('iconColor').value"
@ -74,7 +74,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'widgets.notification.counter-value' | translate }}</div> <div>{{ 'widgets.notification.counter-value' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="counterValueFont" <tb-font-settings formControlName="counterValueFont"
clearButton clearButton
[previewText]="countPreviewFn" [previewText]="countPreviewFn"

18
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-card-basic-config.component.html

@ -52,7 +52,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showLabel"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showLabel">
{{ 'widgets.value-card.label' | translate }} {{ 'widgets.value-card.label' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="label" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="label" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -63,15 +63,15 @@
</tb-color-settings> </tb-color-settings>
</div> </div>
</div> </div>
<div [fxShow]="iconEnabled" class="tb-form-row"> <div [class.!hidden]="!iconEnabled" class="tb-form-row">
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widgets.value-card.icon' | translate }} {{ 'widgets.value-card.icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="valueCardWidgetConfigForm.get('iconColor').value?.color" [color]="valueCardWidgetConfigForm.get('iconColor').value?.color"
@ -83,11 +83,11 @@
</div> </div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" translate>widgets.value-card.value</div> <div class="fixed-title-width" translate>widgets.value-card.value</div>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<tb-unit-input class="flex" formControlName="units"></tb-unit-input> <tb-unit-input class="flex" formControlName="units"></tb-unit-input>
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}">
<div matSuffix fxHide.lt-md translate>widget-config.decimals-suffix</div> <div matSuffix class="lt-md:!hidden" translate>widget-config.decimals-suffix</div>
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="valueFont" <tb-font-settings formControlName="valueFont"
[previewText]="valuePreviewFn"> [previewText]="valuePreviewFn">
@ -96,12 +96,12 @@
</tb-color-settings> </tb-color-settings>
</div> </div>
</div> </div>
<div [fxShow]="dateEnabled" class="tb-form-row column-xs"> <div [class.!hidden]="!dateEnabled" class="tb-form-row column-xs">
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showDate"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showDate">
{{ 'widgets.value-card.date' | translate }} {{ 'widgets.value-card.date' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex.gt-xs fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="gt-xs:flex-1 flex flex-row justify-start items-center gap-2">
<tb-date-format-select fxFlex formControlName="dateFormat"></tb-date-format-select> <tb-date-format-select class="flex-1" formControlName="dateFormat"></tb-date-format-select>
<tb-font-settings formControlName="dateFont" <tb-font-settings formControlName="dateFont"
[previewText]="datePreviewFn"> [previewText]="datePreviewFn">
</tb-font-settings> </tb-font-settings>

10
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-chart-card-basic-config.component.html

@ -50,7 +50,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.title' | translate }} {{ 'widget-config.title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -69,11 +69,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widgets.value-chart-card.icon' | translate }} {{ 'widgets.value-chart-card.icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="valueChartCardWidgetConfigForm.get('iconColor').value" [color]="valueChartCardWidgetConfigForm.get('iconColor').value"
@ -89,11 +89,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showValue"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showValue">
{{ 'widgets.value-chart-card.value' | translate }} {{ 'widgets.value-chart-card.value' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<tb-unit-input class="flex" formControlName="units"></tb-unit-input> <tb-unit-input class="flex" formControlName="units"></tb-unit-input>
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}">
<div matSuffix fxHide.lt-md translate>widget-config.decimals-suffix</div> <div matSuffix class="lt-md:!hidden" translate>widget-config.decimals-suffix</div>
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="valueFont" <tb-font-settings formControlName="valueFont"
[autoScale]="valueChartCardWidgetConfigForm.get('autoScale').value" [autoScale]="valueChartCardWidgetConfigForm.get('autoScale').value"

30
ui-ngx/src/app/modules/home/components/widget/config/basic/chart/bar-chart-with-labels-basic-config.component.html

@ -48,7 +48,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.title' | translate }} {{ 'widget-config.title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -67,11 +67,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widget-config.card-icon' | translate }} {{ 'widget-config.card-icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="barChartWidgetConfigForm.get('iconColor').value" [color]="barChartWidgetConfigForm.get('iconColor').value"
@ -113,7 +113,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showBarLabel"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showBarLabel">
{{ 'widgets.bar-chart.label-on-bar' | translate }} {{ 'widgets.bar-chart.label-on-bar' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="barLabelFont" <tb-font-settings formControlName="barLabelFont"
disabledLineHeight disabledLineHeight
forceSizeUnit="px" forceSizeUnit="px"
@ -129,7 +129,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showBarValue"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showBarValue">
{{ 'widgets.bar-chart.value-on-bar' | translate }} {{ 'widgets.bar-chart.value-on-bar' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="barValueFont" <tb-font-settings formControlName="barValueFont"
disabledLineHeight disabledLineHeight
forceSizeUnit="px" forceSizeUnit="px"
@ -194,10 +194,9 @@
</tb-time-series-chart-thresholds-panel> </tb-time-series-chart-thresholds-panel>
<div class="tb-form-panel tb-slide-toggle"> <div class="tb-form-panel tb-slide-toggle">
<mat-expansion-panel class="tb-settings" [expanded]="barChartWidgetConfigForm.get('showLegend').value" [disabled]="!barChartWidgetConfigForm.get('showLegend').value"> <mat-expansion-panel class="tb-settings" [expanded]="barChartWidgetConfigForm.get('showLegend').value" [disabled]="!barChartWidgetConfigForm.get('showLegend').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="showLegend" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="showLegend" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'widget-config.legend' | translate }} {{ 'widget-config.legend' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
@ -215,7 +214,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'legend.label' | translate }}</div> <div>{{ 'legend.label' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="legendLabelFont" <tb-font-settings formControlName="legendLabelFont"
previewText="Humidity"> previewText="Humidity">
</tb-font-settings> </tb-font-settings>
@ -230,10 +229,9 @@
</div> </div>
<div class="tb-form-panel tb-slide-toggle"> <div class="tb-form-panel tb-slide-toggle">
<mat-expansion-panel class="tb-settings" [expanded]="barChartWidgetConfigForm.get('showTooltip').value" [disabled]="!barChartWidgetConfigForm.get('showTooltip').value"> <mat-expansion-panel class="tb-settings" [expanded]="barChartWidgetConfigForm.get('showTooltip').value" [disabled]="!barChartWidgetConfigForm.get('showTooltip').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="showTooltip" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="showTooltip" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'widget-config.tooltip' | translate }} {{ 'widget-config.tooltip' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
@ -241,7 +239,7 @@
<ng-template matExpansionPanelContent> <ng-template matExpansionPanelContent>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'tooltip.label' | translate }}</div> <div>{{ 'tooltip.label' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="tooltipLabelFont" <tb-font-settings formControlName="tooltipLabelFont"
[initialPreviewStyle]="{ color: barChartWidgetConfigForm.get('tooltipLabelColor').value }" [initialPreviewStyle]="{ color: barChartWidgetConfigForm.get('tooltipLabelColor').value }"
previewText="Temperature"> previewText="Temperature">
@ -254,7 +252,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'tooltip.value' | translate }}</div> <div>{{ 'tooltip.value' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="tooltipValueFont" <tb-font-settings formControlName="tooltipValueFont"
[initialPreviewStyle]="{ color: barChartWidgetConfigForm.get('tooltipValueColor').value }" [initialPreviewStyle]="{ color: barChartWidgetConfigForm.get('tooltipValueColor').value }"
[previewText]="tooltipValuePreviewFn"> [previewText]="tooltipValuePreviewFn">
@ -269,8 +267,8 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="tooltipShowDate"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="tooltipShowDate">
{{ 'tooltip.date' | translate }} {{ 'tooltip.date' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex.gt-xs fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="gt-xs:flex-1 flex flex-row justify-start items-center gap-2">
<tb-date-format-select fxFlex excludeLastUpdateAgo includeAuto <tb-date-format-select class="flex-1" excludeLastUpdateAgo includeAuto
formControlName="tooltipDateFormat"></tb-date-format-select> formControlName="tooltipDateFormat"></tb-date-format-select>
<tb-font-settings formControlName="tooltipDateFont" <tb-font-settings formControlName="tooltipDateFont"
[initialPreviewStyle]="{ color: barChartWidgetConfigForm.get('tooltipDateColor').value }" [initialPreviewStyle]="{ color: barChartWidgetConfigForm.get('tooltipDateColor').value }"

5
ui-ngx/src/app/modules/home/components/widget/config/basic/chart/comparison-keys-table.component.html

@ -25,7 +25,7 @@
<div *ngIf="keysFormArray().controls.length; else noKeys" class="tb-form-table-body"> <div *ngIf="keysFormArray().controls.length; else noKeys" class="tb-form-table-body">
<div *ngFor="let keyControl of keysFormArray().controls; trackBy: trackByKey; let $index = index;"> <div *ngFor="let keyControl of keysFormArray().controls; trackBy: trackByKey; let $index = index;">
<tb-comparison-key-row <tb-comparison-key-row
fxFlex class="flex-1"
[datasourceType]="datasourceType" [datasourceType]="datasourceType"
[formControl]="keyControl"> [formControl]="keyControl">
</tb-comparison-key-row> </tb-comparison-key-row>
@ -33,6 +33,5 @@
</div> </div>
</div> </div>
<ng-template #noKeys> <ng-template #noKeys>
<span fxLayoutAlign="center center" <span class="tb-prompt flex justify-center items-center">{{ 'widgets.chart.no-series' | translate }}</span>
class="tb-prompt">{{ 'widgets.chart.no-series' | translate }}</span>
</ng-template> </ng-template>

11
ui-ngx/src/app/modules/home/components/widget/config/basic/chart/flot-basic-config.component.html

@ -43,8 +43,8 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.card-title' | translate }} {{ 'widget-config.card-title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="titleFont" <tb-font-settings formControlName="titleFont"
@ -62,7 +62,7 @@
<mat-slide-toggle class="mat-slide" formControlName="showTitleIcon"> <mat-slide-toggle class="mat-slide" formControlName="showTitleIcon">
{{ 'widget-config.card-icon' | translate }} {{ 'widget-config.card-icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="flotWidgetConfigForm.get('iconColor').value" [color]="flotWidgetConfigForm.get('iconColor').value"
@ -109,10 +109,9 @@
</div> </div>
<div class="tb-form-panel tb-slide-toggle"> <div class="tb-form-panel tb-slide-toggle">
<mat-expansion-panel class="tb-settings" [expanded]="flotWidgetConfigForm.get('showLegend').value" [disabled]="!flotWidgetConfigForm.get('showLegend').value"> <mat-expansion-panel class="tb-settings" [expanded]="flotWidgetConfigForm.get('showLegend').value" [disabled]="!flotWidgetConfigForm.get('showLegend').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="showLegend" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="showLegend" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'widget-config.legend' | translate }} {{ 'widget-config.legend' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>

54
ui-ngx/src/app/modules/home/components/widget/config/basic/chart/latest-chart-basic-config.component.html

@ -49,8 +49,8 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.card-title' | translate }} {{ 'widget-config.card-title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="titleFont" <tb-font-settings formControlName="titleFont"
@ -68,7 +68,7 @@
<mat-slide-toggle class="mat-slide" formControlName="showTitleIcon"> <mat-slide-toggle class="mat-slide" formControlName="showTitleIcon">
{{ 'widget-config.card-icon' | translate }} {{ 'widget-config.card-icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="latestChartWidgetConfigForm.get('iconColor').value" [color]="latestChartWidgetConfigForm.get('iconColor').value"
@ -101,10 +101,9 @@
<ng-container *ngTemplateOutlet="latestChartConfigTemplate()"></ng-container> <ng-container *ngTemplateOutlet="latestChartConfigTemplate()"></ng-container>
<div class="tb-form-panel tb-slide-toggle"> <div class="tb-form-panel tb-slide-toggle">
<mat-expansion-panel class="tb-settings" [expanded]="latestChartWidgetConfigForm.get('showLegend').value" [disabled]="!latestChartWidgetConfigForm.get('showLegend').value"> <mat-expansion-panel class="tb-settings" [expanded]="latestChartWidgetConfigForm.get('showLegend').value" [disabled]="!latestChartWidgetConfigForm.get('showLegend').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="showLegend" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="showLegend" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'widget-config.legend' | translate }} {{ 'widget-config.legend' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
@ -122,7 +121,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'legend.label' | translate }}</div> <div>{{ 'legend.label' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="legendLabelFont" <tb-font-settings formControlName="legendLabelFont"
previewText="Wind"> previewText="Wind">
</tb-font-settings> </tb-font-settings>
@ -134,7 +133,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'legend.value' | translate }}</div> <div>{{ 'legend.value' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="legendValueFont" <tb-font-settings formControlName="legendValueFont"
[previewText]="valuePreviewFn"> [previewText]="valuePreviewFn">
</tb-font-settings> </tb-font-settings>
@ -149,10 +148,9 @@
</div> </div>
<div class="tb-form-panel tb-slide-toggle"> <div class="tb-form-panel tb-slide-toggle">
<mat-expansion-panel class="tb-settings" [expanded]="latestChartWidgetConfigForm.get('showTooltip').value" [disabled]="!latestChartWidgetConfigForm.get('showTooltip').value"> <mat-expansion-panel class="tb-settings" [expanded]="latestChartWidgetConfigForm.get('showTooltip').value" [disabled]="!latestChartWidgetConfigForm.get('showTooltip').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="showTooltip" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="showTooltip" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'widget-config.tooltip' | translate }} {{ 'widget-config.tooltip' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
@ -160,7 +158,7 @@
<ng-template matExpansionPanelContent> <ng-template matExpansionPanelContent>
<div class="tb-form-row space-between column-xs"> <div class="tb-form-row space-between column-xs">
<div>{{ 'tooltip.value' | translate }}</div> <div>{{ 'tooltip.value' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<mat-form-field class="medium-width" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="medium-width" appearance="outline" subscriptSizing="dynamic">
<mat-select formControlName="tooltipValueType"> <mat-select formControlName="tooltipValueType">
<mat-option *ngFor="let type of latestChartTooltipValueTypes" [value]="type"> <mat-option *ngFor="let type of latestChartTooltipValueTypes" [value]="type">
@ -170,7 +168,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field appearance="outline" class="number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="number" subscriptSizing="dynamic">
<input matInput formControlName="tooltipValueDecimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="tooltipValueDecimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}">
<div matSuffix fxHide.lt-md translate>widget-config.decimals-suffix</div> <div matSuffix class="lt-md:!hidden" translate>widget-config.decimals-suffix</div>
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="tooltipValueFont" <tb-font-settings formControlName="tooltipValueFont"
[previewText]="tooltipValuePreviewFn"> [previewText]="tooltipValuePreviewFn">
@ -240,8 +238,8 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showLabel"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showLabel">
{{ 'widgets.pie-chart.label' | translate }} {{ 'widgets.pie-chart.label' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<mat-select formControlName="labelPosition"> <mat-select formControlName="labelPosition">
<mat-option *ngFor="let position of pieChartLabelPositions" [value]="position"> <mat-option *ngFor="let position of pieChartLabelPositions" [value]="position">
{{ pieChartLabelPositionTranslationMap.get(position) | translate }} {{ pieChartLabelPositionTranslationMap.get(position) | translate }}
@ -261,7 +259,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'widgets.pie-chart.border' | translate }}</div> <div>{{ 'widgets.pie-chart.border' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="number" subscriptSizing="dynamic">
<input matInput formControlName="borderWidth" type="number" min="0" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="borderWidth" type="number" min="0" step="1" placeholder="{{ 'widget-config.set' | translate }}">
<div matSuffix>px</div> <div matSuffix>px</div>
@ -274,7 +272,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'widgets.pie-chart.radius' | translate }}</div> <div>{{ 'widgets.pie-chart.radius' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="number" subscriptSizing="dynamic">
<input matInput formControlName="radius" type="number" min="0" max="100" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="radius" type="number" min="0" max="100" step="1" placeholder="{{ 'widget-config.set' | translate }}">
<div matSuffix>%</div> <div matSuffix>%</div>
@ -316,9 +314,9 @@
{{ 'widgets.latest-chart.clockwise-layout' | translate }} {{ 'widgets.latest-chart.clockwise-layout' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</div> </div>
<div [fxShow]="doughnutTotalEnabled" class="tb-form-row space-between"> <div [class.!hidden]="!doughnutTotalEnabled" class="tb-form-row space-between">
<div>{{ 'widgets.doughnut.central-total-value' | translate }}</div> <div>{{ 'widgets.doughnut.central-total-value' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="totalValueFont" <tb-font-settings formControlName="totalValueFont"
[previewText]="valuePreviewFn"> [previewText]="valuePreviewFn">
</tb-font-settings> </tb-font-settings>
@ -343,7 +341,7 @@
<div class="tb-form-panel-title" translate>widgets.bar-chart.bar-axis</div> <div class="tb-form-panel-title" translate>widgets.bar-chart.bar-axis</div>
<div class="tb-form-row space-between column-xs"> <div class="tb-form-row space-between column-xs">
<div translate>widgets.chart.chart-axis.scale</div> <div translate>widgets.chart.chart-axis.scale</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<div class="tb-small-label" translate>widgets.chart.chart-axis.scale-min</div> <div class="tb-small-label" translate>widgets.chart.chart-axis.scale-min</div>
<mat-form-field appearance="outline" class="number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="number" subscriptSizing="dynamic">
<input matInput formControlName="axisMin" <input matInput formControlName="axisMin"
@ -383,7 +381,7 @@
<div class="tb-form-panel-title" translate>widgets.polar-area-chart.polar-axis</div> <div class="tb-form-panel-title" translate>widgets.polar-area-chart.polar-axis</div>
<div class="tb-form-row space-between column-xs"> <div class="tb-form-row space-between column-xs">
<div translate>widgets.chart.chart-axis.scale</div> <div translate>widgets.chart.chart-axis.scale</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<div class="tb-small-label" translate>widgets.chart.chart-axis.scale-min</div> <div class="tb-small-label" translate>widgets.chart.chart-axis.scale-min</div>
<mat-form-field appearance="outline" class="number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="number" subscriptSizing="dynamic">
<input matInput formControlName="axisMin" <input matInput formControlName="axisMin"
@ -440,8 +438,8 @@
<mat-slide-toggle class="mat-slide" formControlName="showLine"> <mat-slide-toggle class="mat-slide" formControlName="showLine">
{{ 'widgets.radar-chart.line' | translate }} {{ 'widgets.radar-chart.line' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<mat-form-field class="medium-width" fxFlex.xs appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="medium-width xs:flex-1" appearance="outline" subscriptSizing="dynamic">
<mat-select formControlName="lineType"> <mat-select formControlName="lineType">
<mat-option *ngFor="let type of chartLineTypes" [value]="type"> <mat-option *ngFor="let type of chartLineTypes" [value]="type">
{{ chartLineTypeTranslations.get(type) | translate }} {{ chartLineTypeTranslations.get(type) | translate }}
@ -458,8 +456,8 @@
<mat-slide-toggle class="mat-slide" formControlName="showPoints"> <mat-slide-toggle class="mat-slide" formControlName="showPoints">
{{ 'widgets.radar-chart.points' | translate }} {{ 'widgets.radar-chart.points' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<mat-form-field class="medium-width" fxFlex.xs appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="medium-width xs:flex-1" appearance="outline" subscriptSizing="dynamic">
<mat-select formControlName="pointShape"> <mat-select formControlName="pointShape">
<mat-option *ngFor="let shape of chartShapes" [value]="shape"> <mat-option *ngFor="let shape of chartShapes" [value]="shape">
{{ chartShapeTranslations.get(shape) | translate }} {{ chartShapeTranslations.get(shape) | translate }}
@ -476,8 +474,8 @@
<mat-slide-toggle class="mat-slide" formControlName="showLabel"> <mat-slide-toggle class="mat-slide" formControlName="showLabel">
{{ 'widgets.radar-chart.points-label' | translate }} {{ 'widgets.radar-chart.points-label' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxFlex.lt-md fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="lt-md:flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="medium-width" fxFlex.lt-md appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="medium-width lt-md:flex-1" appearance="outline" subscriptSizing="dynamic">
<mat-select formControlName="labelPosition"> <mat-select formControlName="labelPosition">
<mat-option *ngFor="let position of chartLabelPositions" [value]="position"> <mat-option *ngFor="let position of chartLabelPositions" [value]="position">
{{ chartLabelPositionTranslations.get(position) | translate }} {{ chartLabelPositionTranslations.get(position) | translate }}
@ -517,7 +515,7 @@
<mat-slide-toggle class="mat-slide" formControlName="axisShowTickLabels"> <mat-slide-toggle class="mat-slide" formControlName="axisShowTickLabels">
{{ 'widgets.radar-chart.ticks-label' | translate }} {{ 'widgets.radar-chart.ticks-label' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="axisTickLabelFont" <tb-font-settings formControlName="axisTickLabelFont"
clearButton clearButton
disabledLineHeight disabledLineHeight

30
ui-ngx/src/app/modules/home/components/widget/config/basic/chart/range-chart-basic-config.component.html

@ -32,7 +32,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.title' | translate }} {{ 'widget-config.title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -51,11 +51,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widget-config.card-icon' | translate }} {{ 'widget-config.card-icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="rangeChartWidgetConfigForm.get('iconColor').value" [color]="rangeChartWidgetConfigForm.get('iconColor').value"
@ -183,8 +183,8 @@
{{ 'widgets.time-series-chart.series.point.point-label' | translate }} {{ 'widgets.time-series-chart.series.point.point-label' | translate }}
</div> </div>
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxFlex.lt-md fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="lt-md:flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="medium-width" fxFlex.lt-md appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="medium-width lt-md:flex-1" appearance="outline" subscriptSizing="dynamic">
<mat-select formControlName="pointLabelPosition"> <mat-select formControlName="pointLabelPosition">
<mat-option *ngFor="let position of chartLabelPositions" [value]="position"> <mat-option *ngFor="let position of chartLabelPositions" [value]="position">
{{ chartLabelPositionTranslations.get(position) | translate }} {{ chartLabelPositionTranslations.get(position) | translate }}
@ -256,10 +256,9 @@
</tb-time-series-chart-thresholds-panel> </tb-time-series-chart-thresholds-panel>
<div class="tb-form-panel tb-slide-toggle"> <div class="tb-form-panel tb-slide-toggle">
<mat-expansion-panel class="tb-settings" [expanded]="rangeChartWidgetConfigForm.get('showLegend').value" [disabled]="!rangeChartWidgetConfigForm.get('showLegend').value"> <mat-expansion-panel class="tb-settings" [expanded]="rangeChartWidgetConfigForm.get('showLegend').value" [disabled]="!rangeChartWidgetConfigForm.get('showLegend').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="showLegend" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="showLegend" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'widget-config.legend' | translate }} {{ 'widget-config.legend' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
@ -277,7 +276,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'legend.label' | translate }}</div> <div>{{ 'legend.label' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="legendLabelFont" <tb-font-settings formControlName="legendLabelFont"
previewText="20 - 30"> previewText="20 - 30">
</tb-font-settings> </tb-font-settings>
@ -292,10 +291,9 @@
</div> </div>
<div class="tb-form-panel tb-slide-toggle"> <div class="tb-form-panel tb-slide-toggle">
<mat-expansion-panel class="tb-settings" [expanded]="rangeChartWidgetConfigForm.get('showTooltip').value" [disabled]="!rangeChartWidgetConfigForm.get('showTooltip').value"> <mat-expansion-panel class="tb-settings" [expanded]="rangeChartWidgetConfigForm.get('showTooltip').value" [disabled]="!rangeChartWidgetConfigForm.get('showTooltip').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="showTooltip" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="showTooltip" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'widget-config.tooltip' | translate }} {{ 'widget-config.tooltip' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
@ -303,7 +301,7 @@
<ng-template matExpansionPanelContent> <ng-template matExpansionPanelContent>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'tooltip.label' | translate }}</div> <div>{{ 'tooltip.label' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="tooltipLabelFont" <tb-font-settings formControlName="tooltipLabelFont"
[initialPreviewStyle]="{ color: rangeChartWidgetConfigForm.get('tooltipLabelColor').value }" [initialPreviewStyle]="{ color: rangeChartWidgetConfigForm.get('tooltipLabelColor').value }"
previewText="Temperature"> previewText="Temperature">
@ -316,7 +314,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'tooltip.value' | translate }}</div> <div>{{ 'tooltip.value' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="tooltipValueFont" <tb-font-settings formControlName="tooltipValueFont"
[initialPreviewStyle]="{ color: rangeChartWidgetConfigForm.get('tooltipValueColor').value }" [initialPreviewStyle]="{ color: rangeChartWidgetConfigForm.get('tooltipValueColor').value }"
[previewText]="tooltipValuePreviewFn"> [previewText]="tooltipValuePreviewFn">
@ -330,8 +328,8 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="tooltipShowDate"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="tooltipShowDate">
{{ 'tooltip.date' | translate }} {{ 'tooltip.date' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex.gt-xs fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="gt-xs:flex-1 flex flex-row justify-start items-center gap-2">
<tb-date-format-select fxFlex excludeLastUpdateAgo includeAuto <tb-date-format-select class="flex-1" excludeLastUpdateAgo includeAuto
formControlName="tooltipDateFormat"></tb-date-format-select> formControlName="tooltipDateFormat"></tb-date-format-select>
<tb-font-settings formControlName="tooltipDateFont" <tb-font-settings formControlName="tooltipDateFont"
[initialPreviewStyle]="{ color: rangeChartWidgetConfigForm.get('tooltipDateColor').value }" [initialPreviewStyle]="{ color: rangeChartWidgetConfigForm.get('tooltipDateColor').value }"

36
ui-ngx/src/app/modules/home/components/widget/config/basic/chart/time-series-chart-basic-config.component.html

@ -26,7 +26,7 @@
formControlName="datasources"> formControlName="datasources">
</tb-datasources> </tb-datasources>
<div class="tb-form-panel"> <div class="tb-form-panel">
<div fxLayout="row" fxLayoutAlign="space-between center"> <div class="flex flex-row justify-between items-center">
<div class="tb-form-panel-title" tb-hint-tooltip-icon="{{ seriesMode === 'comparison' ? ('widgets.time-series-chart.comparison.comparison-hint' | translate) : null }}"> <div class="tb-form-panel-title" tb-hint-tooltip-icon="{{ seriesMode === 'comparison' ? ('widgets.time-series-chart.comparison.comparison-hint' | translate) : null }}">
{{ 'widgets.chart.series' | translate }} {{ 'widgets.chart.series' | translate }}
</div> </div>
@ -58,7 +58,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="comparisonEnabled"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="comparisonEnabled">
{{ 'widgets.time-series-chart.comparison.comparison' | translate }} {{ 'widgets.time-series-chart.comparison.comparison' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<mat-select formControlName="timeForComparison"> <mat-select formControlName="timeForComparison">
<mat-option [value]="'previousInterval'"> <mat-option [value]="'previousInterval'">
@ -81,7 +81,7 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field [fxShow]="timeSeriesChartWidgetConfigForm.get('timeForComparison').value === 'customInterval'" <mat-form-field [class.!hidden]="timeSeriesChartWidgetConfigForm.get('timeForComparison').value !== 'customInterval'"
appearance="outline" class="number flex-lt-md" subscriptSizing="dynamic"> appearance="outline" class="number flex-lt-md" subscriptSizing="dynamic">
<input matInput formControlName="comparisonCustomIntervalValue" type="number" min="0" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="comparisonCustomIntervalValue" type="number" min="0" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -120,7 +120,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.title' | translate }} {{ 'widget-config.title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -139,11 +139,11 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showIcon">
{{ 'widget-config.card-icon' | translate }} {{ 'widget-config.card-icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput type="number" min="0" formControlName="iconSize" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-css-unit-select fxFlex formControlName="iconSizeUnit"></tb-css-unit-select> <tb-css-unit-select class="flex-1" formControlName="iconSizeUnit"></tb-css-unit-select>
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="timeSeriesChartWidgetConfigForm.get('iconColor').value" [color]="timeSeriesChartWidgetConfigForm.get('iconColor').value"
@ -188,10 +188,9 @@
<div class="tb-form-panel tb-slide-toggle"> <div class="tb-form-panel tb-slide-toggle">
<mat-expansion-panel class="tb-settings" [expanded]="timeSeriesChartWidgetConfigForm.get('showLegend').value" <mat-expansion-panel class="tb-settings" [expanded]="timeSeriesChartWidgetConfigForm.get('showLegend').value"
[disabled]="!timeSeriesChartWidgetConfigForm.get('showLegend').value"> [disabled]="!timeSeriesChartWidgetConfigForm.get('showLegend').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="showLegend" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="showLegend" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'widget-config.legend' | translate }} {{ 'widget-config.legend' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
@ -199,7 +198,7 @@
<ng-template matExpansionPanelContent> <ng-template matExpansionPanelContent>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'legend.label' | translate }}</div> <div>{{ 'legend.label' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="legendLabelFont" <tb-font-settings formControlName="legendLabelFont"
[initialPreviewStyle]="{color: timeSeriesChartWidgetConfigForm.get('legendLabelColor').value}" [initialPreviewStyle]="{color: timeSeriesChartWidgetConfigForm.get('legendLabelColor').value}"
previewText="Temperature"> previewText="Temperature">
@ -212,7 +211,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'legend.value' | translate }}</div> <div>{{ 'legend.value' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="legendValueFont" <tb-font-settings formControlName="legendValueFont"
[initialPreviewStyle]="{color: timeSeriesChartWidgetConfigForm.get('legendValueColor').value}" [initialPreviewStyle]="{color: timeSeriesChartWidgetConfigForm.get('legendValueColor').value}"
previewText="22 °C"> previewText="22 °C">
@ -225,7 +224,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'legend.column-title' | translate }}</div> <div>{{ 'legend.column-title' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="legendColumnTitleFont" <tb-font-settings formControlName="legendColumnTitleFont"
[initialPreviewStyle]="{color: timeSeriesChartWidgetConfigForm.get('legendColumnTitleColor').value}" [initialPreviewStyle]="{color: timeSeriesChartWidgetConfigForm.get('legendColumnTitleColor').value}"
previewText="{{ 'legend.Avg' | translate }}"> previewText="{{ 'legend.Avg' | translate }}">
@ -245,10 +244,9 @@
<div class="tb-form-panel tb-slide-toggle"> <div class="tb-form-panel tb-slide-toggle">
<mat-expansion-panel class="tb-settings" [expanded]="timeSeriesChartWidgetConfigForm.get('showTooltip').value" <mat-expansion-panel class="tb-settings" [expanded]="timeSeriesChartWidgetConfigForm.get('showTooltip').value"
[disabled]="!timeSeriesChartWidgetConfigForm.get('showTooltip').value"> [disabled]="!timeSeriesChartWidgetConfigForm.get('showTooltip').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="showTooltip" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="showTooltip" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'widget-config.tooltip' | translate }} {{ 'widget-config.tooltip' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
@ -265,7 +263,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'tooltip.label' | translate }}</div> <div>{{ 'tooltip.label' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="tooltipLabelFont" <tb-font-settings formControlName="tooltipLabelFont"
[initialPreviewStyle]="{ color: timeSeriesChartWidgetConfigForm.get('tooltipLabelColor').value }" [initialPreviewStyle]="{ color: timeSeriesChartWidgetConfigForm.get('tooltipLabelColor').value }"
previewText="Temperature"> previewText="Temperature">
@ -278,7 +276,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div>{{ 'tooltip.value' | translate }}</div> <div>{{ 'tooltip.value' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="tooltipValueFont" <tb-font-settings formControlName="tooltipValueFont"
[initialPreviewStyle]="{ color: timeSeriesChartWidgetConfigForm.get('tooltipValueColor').value }" [initialPreviewStyle]="{ color: timeSeriesChartWidgetConfigForm.get('tooltipValueColor').value }"
[previewText]="tooltipValuePreviewFn"> [previewText]="tooltipValuePreviewFn">
@ -293,8 +291,8 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="tooltipShowDate"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="tooltipShowDate">
{{ 'tooltip.date' | translate }} {{ 'tooltip.date' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex.gt-xs fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="gt-xs:flex-1 flex flex-row justify-start items-center gap-2">
<tb-date-format-select fxFlex excludeLastUpdateAgo includeAuto <tb-date-format-select class="flex-1" excludeLastUpdateAgo includeAuto
formControlName="tooltipDateFormat"></tb-date-format-select> formControlName="tooltipDateFormat"></tb-date-format-select>
<tb-font-settings formControlName="tooltipDateFont" <tb-font-settings formControlName="tooltipDateFont"
[initialPreviewStyle]="{ color: timeSeriesChartWidgetConfigForm.get('tooltipDateColor').value }" [initialPreviewStyle]="{ color: timeSeriesChartWidgetConfigForm.get('tooltipDateColor').value }"

4
ui-ngx/src/app/modules/home/components/widget/config/basic/common/data-key-row.component.html

@ -75,11 +75,11 @@
<div *ngIf="!hideDecimals && !hideDataKeyDecimals && (!singleRow || displayUnitsOrDigits)" class="tb-decimals-field"> <div *ngIf="!hideDecimals && !hideDataKeyDecimals && (!singleRow || displayUnitsOrDigits)" class="tb-decimals-field">
<mat-form-field *ngIf="displayUnitsOrDigits" appearance="outline" class="tb-inline-field number" subscriptSizing="dynamic"> <mat-form-field *ngIf="displayUnitsOrDigits" appearance="outline" class="tb-inline-field number" subscriptSizing="dynamic">
<input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}">
<div *ngIf="singleRow" matSuffix fxHide.lt-md translate>widget-config.decimals-suffix</div> <div *ngIf="singleRow" matSuffix class="lt-md:!hidden" translate>widget-config.decimals-suffix</div>
</mat-form-field> </mat-form-field>
</div> </div>
<div *ngIf="!singleRow" class="tb-form-table-row-cell-buttons"> <div *ngIf="!singleRow" class="tb-form-table-row-cell-buttons">
<div fxHide.lt-lg class="tb-settings-button"> <div class="tb-settings-button lt-lg:!hidden">
<button *ngIf="modelValue" <button *ngIf="modelValue"
type="button" type="button"
mat-icon-button mat-icon-button

11
ui-ngx/src/app/modules/home/components/widget/config/basic/common/data-keys-panel.component.html

@ -38,7 +38,7 @@
<div cdkDrag [cdkDragDisabled]="!dragEnabled" <div cdkDrag [cdkDragDisabled]="!dragEnabled"
class="tb-draggable-form-table-row" class="tb-draggable-form-table-row"
*ngFor="let keyControl of keysFormArray().controls; trackBy: trackByKey; let $index = index;"> *ngFor="let keyControl of keysFormArray().controls; trackBy: trackByKey; let $index = index;">
<tb-data-key-row fxFlex <tb-data-key-row class="flex-1"
[formControl]="keyControl" [formControl]="keyControl"
required required
[datasourceType]="datasourceType" [datasourceType]="datasourceType"
@ -60,11 +60,11 @@
(keyRemoved)="removeKey($index)"> (keyRemoved)="removeKey($index)">
</tb-data-key-row> </tb-data-key-row>
<div class="tb-form-table-row-cell-buttons"> <div class="tb-form-table-row-cell-buttons">
<button fxHide.lt-lg <button mat-icon-button
mat-icon-button
type="button" type="button"
cdkDragHandle cdkDragHandle
[ngClass]="{'tb-hidden': !dragEnabled}" class="lt-lg:!hidden"
[class.tb-hidden]="!dragEnabled"
matTooltip="{{ 'action.drag' | translate }}" matTooltip="{{ 'action.drag' | translate }}"
matTooltipPosition="above"> matTooltipPosition="above">
<mat-icon>drag_indicator</mat-icon> <mat-icon>drag_indicator</mat-icon>
@ -81,6 +81,5 @@
</div> </div>
</div> </div>
<ng-template #noKeys> <ng-template #noKeys>
<span fxLayoutAlign="center center" <span class="tb-prompt flex justify-center items-center">{{ noKeysText }}</span>
class="tb-prompt">{{ noKeysText }}</span>
</ng-template> </ng-template>

4
ui-ngx/src/app/modules/home/components/widget/config/basic/common/widget-actions-panel.component.html

@ -16,9 +16,9 @@
--> -->
<div class="tb-form-panel" (click)="manageWidgetActions()" style="cursor: pointer;"> <div class="tb-form-panel" (click)="manageWidgetActions()" style="cursor: pointer;">
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="16px"> <div class="flex flex-row justify-start items-center gap-4">
<div class="tb-form-panel-title" translate style="padding-right: 48px;">widget-config.actions</div> <div class="tb-form-panel-title" translate style="padding-right: 48px;">widget-config.actions</div>
<mat-chip-listbox fxFlex> <mat-chip-listbox class="flex-1">
<ng-container *ngFor="let actionSourceId of widgetActionSourceIds"> <ng-container *ngFor="let actionSourceId of widgetActionSourceIds">
<mat-chip *ngFor="let widgetAction of widgetActionsByActionSourceId(actionSourceId)"> <mat-chip *ngFor="let widgetAction of widgetActionsByActionSourceId(actionSourceId)">
<tb-icon matChipAvatar>{{ widgetAction.icon }}</tb-icon> <tb-icon matChipAvatar>{{ widgetAction.icon }}</tb-icon>

6
ui-ngx/src/app/modules/home/components/widget/config/basic/entity/entities-table-basic-config.component.html

@ -43,8 +43,8 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.card-title' | translate }} {{ 'widget-config.card-title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="titleFont" <tb-font-settings formControlName="titleFont"
@ -62,7 +62,7 @@
<mat-slide-toggle class="mat-slide" formControlName="showTitleIcon"> <mat-slide-toggle class="mat-slide" formControlName="showTitleIcon">
{{ 'widget-config.card-icon' | translate }} {{ 'widget-config.card-icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="entitiesTableWidgetConfigForm.get('iconColor').value" [color]="entitiesTableWidgetConfigForm.get('iconColor').value"

10
ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.html

@ -34,7 +34,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showUnitTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showUnitTitle">
{{ 'widgets.gauge.units-title' | translate }} {{ 'widgets.gauge.units-title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="unitTitle" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="unitTitle" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
@ -51,7 +51,7 @@
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div translate>widget-config.units-short</div> <div translate>widget-config.units-short</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-unit-input <tb-unit-input
formControlName="units"> formControlName="units">
</tb-unit-input> </tb-unit-input>
@ -70,10 +70,10 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="valueBox"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="valueBox">
{{ 'widgets.gauge.value' | translate }} {{ 'widgets.gauge.value' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput formControlName="valueInt" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="valueInt" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}">
<div matSuffix fxHide.lt-md translate>widget-config.decimals-suffix</div> <div matSuffix class="lt-md:!hidden" translate>widget-config.decimals-suffix</div>
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="valueFont" <tb-font-settings formControlName="valueFont"
disabledLineHeight disabledLineHeight
@ -88,7 +88,7 @@
<div class="tb-form-row space-between column-xs"> <div class="tb-form-row space-between column-xs">
<div translate>widgets.gauge.ticks</div> <div translate>widgets.gauge.ticks</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<div class="tb-small-label" translate>widgets.gauge.min-value-short</div> <div class="tb-small-label" translate>widgets.gauge.min-value-short</div>
<mat-form-field appearance="outline" class="number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="number" subscriptSizing="dynamic">
<input matInput formControlName="minValue" type="number" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="minValue" type="number" step="1" placeholder="{{ 'widget-config.set' | translate }}">

12
ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.html

@ -35,8 +35,8 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widget-config.title' | translate }} {{ 'widget-config.title' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="titleFont" <tb-font-settings formControlName="titleFont"
@ -54,7 +54,7 @@
<mat-slide-toggle class="mat-slide" formControlName="showTitleIcon"> <mat-slide-toggle class="mat-slide" formControlName="showTitleIcon">
{{ 'widget-config.icon' | translate }} {{ 'widget-config.icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-material-icon-select asBoxInput <tb-material-icon-select asBoxInput
iconClearButton iconClearButton
[color]="compassGaugeWidgetConfigForm.get('iconColor').value" [color]="compassGaugeWidgetConfigForm.get('iconColor').value"
@ -72,10 +72,10 @@
<div class="tb-form-panel-title" translate>widgets.gauge.compass-appearance</div> <div class="tb-form-panel-title" translate>widgets.gauge.compass-appearance</div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" translate>widgets.gauge.labels</div> <div class="fixed-title-width" translate>widgets.gauge.labels</div>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<tb-string-items-list <tb-string-items-list
style="display: flex" style="display: flex"
fxFlex class="flex-1"
appearance="outline" appearance="outline"
subscriptSizing="dynamic" subscriptSizing="dynamic"
editable editable
@ -85,7 +85,7 @@
</div> </div>
<div class="tb-form-row space-between"> <div class="tb-form-row space-between">
<div translate>widgets.gauge.label-style</div> <div translate>widgets.gauge.label-style</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="majorTickFont" <tb-font-settings formControlName="majorTickFont"
disabledLineHeight> disabledLineHeight>
</tb-font-settings> </tb-font-settings>

10
ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/digital-simple-gauge-basic-config.component.html

@ -55,7 +55,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showMinMax"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showMinMax">
{{ 'widgets.gauge.min-and-max-label' | translate }} {{ 'widgets.gauge.min-and-max-label' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<tb-font-settings formControlName="minMaxFont" <tb-font-settings formControlName="minMaxFont"
disabledLineHeight disabledLineHeight
[previewText]="previewFn"> [previewText]="previewFn">
@ -68,7 +68,7 @@
</div> </div>
<div class="tb-form-row space-between column-xs"> <div class="tb-form-row space-between column-xs">
<div class="fixed-title-width">{{ 'widgets.gauge.min-and-max-value' | translate }}</div> <div class="fixed-title-width">{{ 'widgets.gauge.min-and-max-value' | translate }}</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<div class="tb-small-label" translate>widgets.gauge.min-value-short</div> <div class="tb-small-label" translate>widgets.gauge.min-value-short</div>
<mat-form-field appearance="outline" class="number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="number" subscriptSizing="dynamic">
<input matInput formControlName="minValue" type="number" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="minValue" type="number" step="1" placeholder="{{ 'widget-config.set' | translate }}">
@ -92,14 +92,14 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showValue"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showValue">
{{ 'widgets.gauge.value' | translate }} {{ 'widgets.gauge.value' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<tb-unit-input <tb-unit-input
class="flex" class="flex"
formControlName="units"> formControlName="units">
</tb-unit-input> </tb-unit-input>
<mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic"> <mat-form-field appearance="outline" class="flex number" subscriptSizing="dynamic">
<input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="decimals" type="number" min="0" max="15" step="1" placeholder="{{ 'widget-config.set' | translate }}">
<div matSuffix fxHide.lt-md translate>widget-config.decimals-suffix</div> <div matSuffix class="lt-md:!hidden" translate>widget-config.decimals-suffix</div>
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="valueFont" <tb-font-settings formControlName="valueFont"
disabledLineHeight disabledLineHeight
@ -116,7 +116,7 @@
<mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle"> <mat-slide-toggle class="mat-slide fixed-title-width" formControlName="showTitle">
{{ 'widgets.gauge.label' | translate }} {{ 'widgets.gauge.label' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>

4
ui-ngx/src/app/modules/home/components/widget/config/data-key-config-dialog.component.html

@ -18,7 +18,7 @@
<form [formGroup]="dataKeyFormGroup" (ngSubmit)="save()" style="width: 900px;"> <form [formGroup]="dataKeyFormGroup" (ngSubmit)="save()" style="width: 900px;">
<mat-toolbar color="primary"> <mat-toolbar color="primary">
<h2>{{ 'datakey.configuration' | translate }}</h2> <h2>{{ 'datakey.configuration' | translate }}</h2>
<span fxFlex></span> <span class="flex-1"></span>
<tb-toggle-select *ngIf="hasAdvanced" <tb-toggle-select *ngIf="hasAdvanced"
appearance="fill-invert" selectMediaBreakpoint="xs" [options]="dataKeyConfigHeaderOptions" appearance="fill-invert" selectMediaBreakpoint="xs" [options]="dataKeyConfigHeaderOptions"
[(ngModel)]="dataKeyConfigMode" [ngModelOptions]="{ standalone: true }"> [(ngModel)]="dataKeyConfigMode" [ngModelOptions]="{ standalone: true }">
@ -53,7 +53,7 @@
formControlName="dataKey"> formControlName="dataKey">
</tb-data-key-config> </tb-data-key-config>
</div> </div>
<div mat-dialog-actions fxLayoutAlign="end center"> <div mat-dialog-actions class="flex justify-end items-center">
<button mat-button color="primary" <button mat-button color="primary"
type="button" type="button"
[disabled]="(isLoading$ | async)" [disabled]="(isLoading$ | async)"

15
ui-ngx/src/app/modules/home/components/widget/config/data-key-config.component.html

@ -17,7 +17,7 @@
--> -->
<div *ngIf="dataKeyConfigMode === dataKeyConfigModes.general; else advanced" <div *ngIf="dataKeyConfigMode === dataKeyConfigModes.general; else advanced"
[formGroup]="dataKeyFormGroup"> [formGroup]="dataKeyFormGroup">
<div class="mat-padding" fxLayout="column" style="gap: 16px;"> <div class="mat-padding flex flex-col gap-4">
<div class="tb-form-panel"> <div class="tb-form-panel">
<div class="tb-form-panel-title" translate>datakey.general</div> <div class="tb-form-panel-title" translate>datakey.general</div>
<mat-form-field *ngIf="modelValue.type !== dataKeyTypes.function && !hideDataKeyName" subscriptSizing="dynamic"> <mat-form-field *ngIf="modelValue.type !== dataKeyTypes.function && !hideDataKeyName" subscriptSizing="dynamic">
@ -65,7 +65,7 @@
formControlName="color"> formControlName="color">
</tb-color-input> </tb-color-input>
</div> </div>
<section fxLayout="column" *ngIf="modelValue.type === dataKeyTypes.function"> <section class="flex flex-col" *ngIf="modelValue.type === dataKeyTypes.function">
<span translate>datakey.data-generation-func</span> <span translate>datakey.data-generation-func</span>
<br/> <br/>
<tb-js-func #funcBodyEdit <tb-js-func #funcBodyEdit
@ -103,8 +103,8 @@
<div class="tb-form-panel-title" translate>datakey.delta-calculation</div> <div class="tb-form-panel-title" translate>datakey.delta-calculation</div>
<div class="tb-form-panel stroked tb-slide-toggle"> <div class="tb-form-panel stroked tb-slide-toggle">
<mat-expansion-panel class="tb-settings" [expanded]="dataKeyFormGroup.get('comparisonEnabled').value" [disabled]="!dataKeyFormGroup.get('comparisonEnabled').value"> <mat-expansion-panel class="tb-settings" [expanded]="dataKeyFormGroup.get('comparisonEnabled').value" [disabled]="!dataKeyFormGroup.get('comparisonEnabled').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title fxLayout="column" fxLayoutAlign="center start" fxLayoutGap="8px"> <mat-panel-title class="flex flex-col justify-center items-start gap-2">
<mat-slide-toggle class="mat-slide" formControlName="comparisonEnabled" (click)="$event.stopPropagation()"> <mat-slide-toggle class="mat-slide" formControlName="comparisonEnabled" (click)="$event.stopPropagation()">
{{ 'datakey.enable-delta-calculation' | translate }} {{ 'datakey.enable-delta-calculation' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
@ -162,10 +162,9 @@
<div class="tb-form-panel tb-slide-toggle" <div class="tb-form-panel tb-slide-toggle"
*ngIf="(modelValue.type === dataKeyTypes.timeseries || modelValue.type === dataKeyTypes.attribute || modelValue.type === dataKeyTypes.count) && showPostProcessing"> *ngIf="(modelValue.type === dataKeyTypes.timeseries || modelValue.type === dataKeyTypes.attribute || modelValue.type === dataKeyTypes.count) && showPostProcessing">
<mat-expansion-panel class="tb-settings" [expanded]="dataKeyFormGroup.get('usePostProcessing').value" [disabled]="!dataKeyFormGroup.get('usePostProcessing').value"> <mat-expansion-panel class="tb-settings" [expanded]="dataKeyFormGroup.get('usePostProcessing').value" [disabled]="!dataKeyFormGroup.get('usePostProcessing').value">
<mat-expansion-panel-header fxLayout="row wrap"> <mat-expansion-panel-header class="flex flex-row flex-wrap">
<mat-panel-title> <mat-panel-title>
<mat-slide-toggle class="mat-slide" formControlName="usePostProcessing" (click)="$event.stopPropagation()" <mat-slide-toggle class="mat-slide flex justify-center items-stretch" formControlName="usePostProcessing" (click)="$event.stopPropagation()">
fxLayoutAlign="center">
{{ 'datakey.use-data-post-processing-func' | translate }} {{ 'datakey.use-data-post-processing-func' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
@ -192,7 +191,7 @@
</div> </div>
</div> </div>
<ng-template #advanced> <ng-template #advanced>
<div class="mat-padding" fxLayout="column" [formGroup]="dataKeySettingsFormGroup"> <div class="mat-padding flex flex-col" [formGroup]="dataKeySettingsFormGroup">
<tb-widget-settings <tb-widget-settings
[dashboard]="dashboard" [dashboard]="dashboard"
[aliasController]="aliasController" [aliasController]="aliasController"

8
ui-ngx/src/app/modules/home/components/widget/config/data-keys.component.html

@ -40,8 +40,8 @@
dndDraggingSourceClass="tb-chip-dragging" dndDraggingSourceClass="tb-chip-dragging"
[removable]="!disabled && !isCountDatasource" [removable]="!disabled && !isCountDatasource"
(removed)="remove(key)"> (removed)="remove(key)">
<div dndDragImageRef fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="4px" class="tb-attribute-chip" <div dndDragImageRef class="tb-attribute-chip flex flex-row justify-start items-center gap-1"
[ngClass]="{'tb-dragging-chip-image': $index === dragIndex}"> [class.tb-dragging-chip-image]="$index === dragIndex">
<div class="tb-absolute-fill tb-dragging-chip-image-fill"></div> <div class="tb-absolute-fill tb-dragging-chip-image-fill"></div>
<div dndHandle *ngIf="!disabled && !dragDisabled" class="tb-chip-drag-handle"> <div dndHandle *ngIf="!disabled && !dragDisabled" class="tb-chip-drag-handle">
<mat-icon class="tb-mat-18">drag_indicator</mat-icon> <mat-icon class="tb-mat-18">drag_indicator</mat-icon>
@ -71,7 +71,7 @@
</strong> </strong>
</div> </div>
</div> </div>
<div *ngIf="!hideDataKeyColor" fxHide.xs style="padding: 3px;"> <div *ngIf="!hideDataKeyColor" class="xs:!hidden" style="padding: 3px;">
<div #keyColorButton class="tb-color-preview small box" (click)="openColorPickerPopup(key, $event, keyColorButton)"> <div #keyColorButton class="tb-color-preview small box" (click)="openColorPickerPopup(key, $event, keyColorButton)">
<div class="tb-color-result" [style]="{background: key.color}"></div> <div class="tb-color-result" [style]="{background: key.color}"></div>
</div> </div>
@ -89,7 +89,7 @@
</div> </div>
</mat-chip-row> </mat-chip-row>
<input matInput type="text" placeholder="{{ !disabled && (!maxDataKeysSet || keys.length < maxDataKeys) ? secondaryPlaceholder : '' }}" <input matInput type="text" placeholder="{{ !disabled && (!maxDataKeysSet || keys.length < maxDataKeys) ? secondaryPlaceholder : '' }}"
[ngClass]="{'tb-dragging': dragIndex > -1}" [class.tb-dragging]="dragIndex > -1"
style="max-width: 200px;" style="max-width: 200px;"
#keyInput #keyInput
formControlName="key" formControlName="key"

12
ui-ngx/src/app/modules/home/components/widget/config/datasource.component.html

@ -24,9 +24,9 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<section fxLayout="column" [ngSwitch]="datasourceFormGroup.get('type').value"> <section class="flex flex-col" [ngSwitch]="datasourceFormGroup.get('type').value">
<ng-template [ngSwitchCase]="datasourceType.function"> <ng-template [ngSwitchCase]="datasourceType.function">
<mat-form-field *ngIf="!hideDatasourceLabel" fxFlex> <mat-form-field *ngIf="!hideDatasourceLabel" class="flex-1">
<mat-label translate>datasource.label</mat-label> <mat-label translate>datasource.label</mat-label>
<input matInput <input matInput
formControlName="name"> formControlName="name">
@ -55,15 +55,15 @@
[callbacks]="entityAliasSelectCallbacks"> [callbacks]="entityAliasSelectCallbacks">
</tb-entity-alias-select> </tb-entity-alias-select>
<mat-form-field *ngIf="!hideDatasourceLabel && [datasourceType.entityCount, datasourceType.alarmCount].includes(datasourceFormGroup.get('type').value)" <mat-form-field *ngIf="!hideDatasourceLabel && [datasourceType.entityCount, datasourceType.alarmCount].includes(datasourceFormGroup.get('type').value)"
fxFlex> class="flex-1">
<input matInput <input matInput
placeholder="{{ 'datasource.label' | translate }}" placeholder="{{ 'datasource.label' | translate }}"
formControlName="name"> formControlName="name">
</mat-form-field> </mat-form-field>
</ng-template> </ng-template>
</section> </section>
<section *ngIf="!hideDataKeys" fxLayout="column" fxLayoutAlign="stretch" fxFlex> <section *ngIf="!hideDataKeys" class="flex-1 flex flex-col justify-start items-stretch">
<tb-data-keys class="tb-data-keys" fxFlex <tb-data-keys class="tb-data-keys flex-1"
[widgetType]="widgetType" [widgetType]="widgetType"
[datasourceType]="datasourceFormGroup.get('type').value" [datasourceType]="datasourceFormGroup.get('type').value"
[maxDataKeys]="maxDataKeys" [maxDataKeys]="maxDataKeys"
@ -80,7 +80,7 @@
[deviceId]="datasourceFormGroup.get('deviceId').value" [deviceId]="datasourceFormGroup.get('deviceId').value"
formControlName="dataKeys"> formControlName="dataKeys">
</tb-data-keys> </tb-data-keys>
<tb-data-keys *ngIf="hasAdditionalLatestDataKeys" class="tb-data-keys" fxFlex <tb-data-keys *ngIf="hasAdditionalLatestDataKeys" class="tb-data-keys flex-1"
[widgetType]="widgetTypes.latest" [widgetType]="widgetTypes.latest"
[datasourceType]="datasourceFormGroup.get('type').value" [datasourceType]="datasourceFormGroup.get('type').value"
latestDataKeys latestDataKeys

12
ui-ngx/src/app/modules/home/components/widget/config/datasources.component.html

@ -15,11 +15,11 @@
limitations under the License. limitations under the License.
--> -->
<div [formGroup]="datasourcesFormGroup" class="tb-form-panel tb-datasources" [ngClass]="{'no-padding-bottom': !showAddDatasource}"> <div [formGroup]="datasourcesFormGroup" class="tb-form-panel tb-datasources" [class.no-padding-bottom]="!showAddDatasource">
<div fxLayout="column"> <div class="flex flex-col">
<div fxLayout="row" fxLayoutAlign="space-between center"> <div class="flex flex-row justify-between items-center">
<div class="tb-form-panel-title">{{ (singleDatasource ? (isAlarmSource ? 'widget-config.alarm-source' : 'widget-config.datasource') : 'widget-config.datasources') | translate }}</div> <div class="tb-form-panel-title">{{ (singleDatasource ? (isAlarmSource ? 'widget-config.alarm-source' : 'widget-config.datasource') : 'widget-config.datasources') | translate }}</div>
<div fxFlex fxLayout="row" fxLayoutAlign="center center" *ngIf="timeseriesKeyError"> <div class="flex-1 flex flex-row justify-center items-center" *ngIf="timeseriesKeyError">
<mat-error >{{ 'widget-config.timeseries-key-error' | translate }}</mat-error> <mat-error >{{ 'widget-config.timeseries-key-error' | translate }}</mat-error>
</div> </div>
<tb-toggle-select *ngIf="basicMode && !hideDatasourcesMode" [ngModel]="datasourcesMode" (ngModelChange)="datasourcesModeChange($event)" <tb-toggle-select *ngIf="basicMode && !hideDatasourcesMode" [ngModel]="datasourcesMode" (ngModelChange)="datasourcesModeChange($event)"
@ -32,8 +32,8 @@
class="tb-form-panel-hint">{{ 'widget-config.maximum-datasources' | translate:{count: maxDatasources} }}</div> class="tb-form-panel-hint">{{ 'widget-config.maximum-datasources' | translate:{count: maxDatasources} }}</div>
</div> </div>
<div *ngIf="datasourcesFormArray.length === 0; else datasourcesTemplate"> <div *ngIf="datasourcesFormArray.length === 0; else datasourcesTemplate">
<span translate fxLayoutAlign="center center" <span translate
class="tb-prompt">datasource.add-datasource-prompt</span> class="tb-prompt flex justify-center items-center">datasource.add-datasource-prompt</span>
</div> </div>
<ng-template #datasourcesTemplate> <ng-template #datasourcesTemplate>
<div style="overflow: auto;"> <div style="overflow: auto;">

2
ui-ngx/src/app/modules/home/components/widget/config/target-device.component.html

@ -16,7 +16,7 @@
--> -->
<div [formGroup]="targetDeviceFormGroup" class="tb-form-panel"> <div [formGroup]="targetDeviceFormGroup" class="tb-form-panel">
<div fxLayout="row" fxLayoutAlign="space-between center"> <div class="flex flex-row justify-between items-center">
<div class="tb-form-panel-title" translate>widget-config.target-device</div> <div class="tb-form-panel-title" translate>widget-config.target-device</div>
<tb-toggle-select formControlName="type"> <tb-toggle-select formControlName="type">
<tb-toggle-option [value]="targetDeviceType.device">{{ 'device.device' | translate }}</tb-toggle-option> <tb-toggle-option [value]="targetDeviceType.device">{{ 'device.device' | translate }}</tb-toggle-option>

4
ui-ngx/src/app/modules/home/components/widget/config/timewindow-config-panel.component.html

@ -16,7 +16,7 @@
--> -->
<div [formGroup]="timewindowConfig" class="tb-form-panel"> <div [formGroup]="timewindowConfig" class="tb-form-panel">
<div fxLayout="row" fxLayoutAlign="space-between center"> <div class="flex flex-row justify-between items-center">
<div class="tb-form-panel-title" translate>timewindow.timewindow</div> <div class="tb-form-panel-title" translate>timewindow.timewindow</div>
<tb-toggle-select formControlName="useDashboardTimewindow" selectMediaBreakpoint="xs"> <tb-toggle-select formControlName="useDashboardTimewindow" selectMediaBreakpoint="xs">
<tb-toggle-option [value]="true">{{ 'widget-config.use-dashboard-timewindow' | translate }}</tb-toggle-option> <tb-toggle-option [value]="true">{{ 'widget-config.use-dashboard-timewindow' | translate }}</tb-toggle-option>
@ -27,7 +27,7 @@
<mat-slide-toggle class="mat-slide" formControlName="displayTimewindow"> <mat-slide-toggle class="mat-slide" formControlName="displayTimewindow">
{{ 'widget-config.display-timewindow' | translate }} {{ 'widget-config.display-timewindow' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxFlex fxLayout="row" fxLayoutAlign="space-between center"> <div class="flex-1 flex flex-row justify-between items-center">
<tb-timewindow asButton="true" <tb-timewindow asButton="true"
strokedButton strokedButton
noMargin noMargin

4
ui-ngx/src/app/modules/home/components/widget/config/timewindow-style-panel.component.html

@ -21,7 +21,7 @@
<mat-slide-toggle class="mat-slide" formControlName="showIcon"> <mat-slide-toggle class="mat-slide" formControlName="showIcon">
{{ 'timewindow.icon' | translate }} {{ 'timewindow.icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex justify-start items-center gap-2">
<mat-form-field appearance="outline" subscriptSizing="dynamic"> <mat-form-field appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="iconSize"> <input matInput formControlName="iconSize">
</mat-form-field> </mat-form-field>
@ -33,7 +33,7 @@
</div> </div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" translate>timewindow.icon-position</div> <div class="fixed-title-width" translate>timewindow.icon-position</div>
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<mat-select formControlName="iconPosition" placeholder="{{ 'widget-config.set' | translate }}"> <mat-select formControlName="iconPosition" placeholder="{{ 'widget-config.set' | translate }}">
<mat-option [value]="'left'"> <mat-option [value]="'left'">
{{ 'timewindow.icon-position-left' | translate }} {{ 'timewindow.icon-position-left' | translate }}

26
ui-ngx/src/app/modules/home/components/widget/widget-config.component.html

@ -26,13 +26,13 @@
</div> </div>
</div> </div>
<div *ngIf="widgetConfigMode === widgetConfigModes.advanced; else basicMode" class="tb-widget-config-content"> <div *ngIf="widgetConfigMode === widgetConfigModes.advanced; else basicMode" class="tb-widget-config-content">
<div *ngIf="widgetType !== widgetTypes.static" [fxShow]="selectedOption === 'data'" class="mat-content"> <div *ngIf="widgetType !== widgetTypes.static" [class.!hidden]="selectedOption !== 'data'" class="mat-content">
<ng-container *ngTemplateOutlet="data"></ng-container> <ng-container *ngTemplateOutlet="data"></ng-container>
</div> </div>
<div [fxShow]="selectedOption === 'appearance'" class="mat-content"> <div [class.!hidden]="selectedOption !== 'appearance'" class="mat-content">
<ng-container *ngTemplateOutlet="appearance"></ng-container> <ng-container *ngTemplateOutlet="appearance"></ng-container>
</div> </div>
<div [fxShow]="selectedOption === 'card'" [formGroup]="widgetSettings" class="mat-content"> <div [class.!hidden]="selectedOption !== 'card'" [formGroup]="widgetSettings" class="mat-content">
<div class="tb-form-panel"> <div class="tb-form-panel">
<div class="tb-form-panel-title" translate>widget-config.card-title</div> <div class="tb-form-panel-title" translate>widget-config.card-title</div>
<mat-slide-toggle class="mat-slide" formControlName="showTitle"> <mat-slide-toggle class="mat-slide" formControlName="showTitle">
@ -40,8 +40,8 @@
</mat-slide-toggle> </mat-slide-toggle>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" translate>widget-config.title</div> <div class="fixed-title-width" translate>widget-config.title</div>
<div fxFlex fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex-1 flex flex-row justify-start items-center gap-2">
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="title" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
<tb-font-settings formControlName="titleFont" <tb-font-settings formControlName="titleFont"
@ -57,7 +57,7 @@
</div> </div>
<div class="tb-form-row"> <div class="tb-form-row">
<div class="fixed-title-width" translate>widget-config.title-tooltip</div> <div class="fixed-title-width" translate>widget-config.title-tooltip</div>
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="titleTooltip" placeholder="{{ 'widget-config.set' | translate }}"> <input matInput formControlName="titleTooltip" placeholder="{{ 'widget-config.set' | translate }}">
</mat-form-field> </mat-form-field>
</div> </div>
@ -65,7 +65,7 @@
<mat-slide-toggle class="mat-slide" formControlName="showTitleIcon"> <mat-slide-toggle class="mat-slide" formControlName="showTitleIcon">
{{ 'widget-config.display-icon' | translate }} {{ 'widget-config.display-icon' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px"> <div class="flex flex-row justify-start items-center gap-2">
<mat-form-field appearance="outline" subscriptSizing="dynamic"> <mat-form-field appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="iconSize"> <input matInput formControlName="iconSize">
</mat-form-field> </mat-form-field>
@ -82,7 +82,7 @@
</div> </div>
<mat-expansion-panel class="tb-settings"> <mat-expansion-panel class="tb-settings">
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-description fxLayoutAlign="start" translate> <mat-panel-description class="flex justify-start items-stretch" translate>
widget-config.advanced-title-style widget-config.advanced-title-style
</mat-panel-description> </mat-panel-description>
</mat-expansion-panel-header> </mat-expansion-panel-header>
@ -134,7 +134,7 @@
</mat-slide-toggle> </mat-slide-toggle>
<mat-expansion-panel class="tb-settings"> <mat-expansion-panel class="tb-settings">
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-description fxLayoutAlign="start" translate> <mat-panel-description class="flex justify-start items-stretch" translate>
widget-config.advanced-widget-style widget-config.advanced-widget-style
</mat-panel-description> </mat-panel-description>
</mat-expansion-panel-header> </mat-expansion-panel-header>
@ -158,7 +158,7 @@
</mat-slide-toggle> </mat-slide-toggle>
</div> </div>
</div> </div>
<div [fxShow]="selectedOption === 'actions'" [formGroup]="actionsSettings" class="mat-content" style="height: 100%;"> <div [class.!hidden]="selectedOption !== 'actions'" [formGroup]="actionsSettings" class="mat-content" style="height: 100%;">
<div class="tb-form-panel" style="height: 100%;"> <div class="tb-form-panel" style="height: 100%;">
<tb-manage-widget-actions <tb-manage-widget-actions
[callbacks]="widgetConfigCallbacks" [callbacks]="widgetConfigCallbacks"
@ -168,7 +168,7 @@
</tb-manage-widget-actions> </tb-manage-widget-actions>
</div> </div>
</div> </div>
<div [fxShow]="selectedOption === 'layout'" [formGroup]="layoutSettings" class="mat-content"> <div [class.!hidden]="selectedOption !== 'layout'" [formGroup]="layoutSettings" class="mat-content">
<div class="tb-form-panel" *ngIf="!showLayoutConfig || isDefaultBreakpoint"> <div class="tb-form-panel" *ngIf="!showLayoutConfig || isDefaultBreakpoint">
<div class="tb-form-panel-title" translate>widget-config.resize-options</div> <div class="tb-form-panel-title" translate>widget-config.resize-options</div>
<div class="tb-form-row"> <div class="tb-form-row">
@ -236,7 +236,7 @@
</tb-timewindow-config-panel> </tb-timewindow-config-panel>
</ng-container> </ng-container>
<div *ngIf="widgetType === widgetTypes.alarm" [formGroup]="dataSettings" class="tb-form-panel"> <div *ngIf="widgetType === widgetTypes.alarm" [formGroup]="dataSettings" class="tb-form-panel">
<div fxLayout="row" fxLayoutAlign="space-between center"> <div class="flex flex-row justify-between items-center">
<div class="tb-form-panel-title" translate>alarm.filter</div> <div class="tb-form-panel-title" translate>alarm.filter</div>
<button mat-button color="primary" <button mat-button color="primary"
(click)="alarmFilterConfig.reset()"> (click)="alarmFilterConfig.reset()">
@ -294,7 +294,7 @@
</div> </div>
<div *ngIf="displayNoDataDisplayMessageConfig" class="tb-form-row column-xs"> <div *ngIf="displayNoDataDisplayMessageConfig" class="tb-form-row column-xs">
<div class="fixed-title-width" translate>widget-config.no-data-display-message</div> <div class="fixed-title-width" translate>widget-config.no-data-display-message</div>
<mat-form-field fxFlex appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<input matInput formControlName="noDataDisplayMessage" placeholder="{{ 'widget-config.set-message' | translate }}"> <input matInput formControlName="noDataDisplayMessage" placeholder="{{ 'widget-config.set-message' | translate }}">
</mat-form-field> </mat-form-field>
</div> </div>

6
ui-ngx/src/app/modules/home/components/widget/widget-container.component.html

@ -40,21 +40,21 @@
[class]="{'tb-widget-actions-absolute': !(widget.showWidgetTitlePanel && !widgetComponent.widgetContext?.embedTitlePanel && (widget.showTitle||widget.hasAggregation))}" [class]="{'tb-widget-actions-absolute': !(widget.showWidgetTitlePanel && !widgetComponent.widgetContext?.embedTitlePanel && (widget.showTitle||widget.hasAggregation))}"
(mousedown)="$event.stopPropagation()"> (mousedown)="$event.stopPropagation()">
<button mat-icon-button *ngFor="let action of widget.customHeaderActions" <button mat-icon-button *ngFor="let action of widget.customHeaderActions"
[fxShow]="!isEdit" [class.!hidden]="isEdit"
(click)="action.onAction($event)" (click)="action.onAction($event)"
matTooltip="{{ action.displayName }}" matTooltip="{{ action.displayName }}"
matTooltipPosition="above"> matTooltipPosition="above">
<tb-icon>{{ action.icon }}</tb-icon> <tb-icon>{{ action.icon }}</tb-icon>
</button> </button>
<button mat-icon-button *ngFor="let action of widget.widgetActions" <button mat-icon-button *ngFor="let action of widget.widgetActions"
[fxShow]="!isEdit && action.show" [class.!hidden]="isEdit || !action.show"
(click)="action.onAction($event)" (click)="action.onAction($event)"
matTooltip="{{ action.name | translate }}" matTooltip="{{ action.name | translate }}"
matTooltipPosition="above"> matTooltipPosition="above">
<tb-icon>{{ action.icon }}</tb-icon> <tb-icon>{{ action.icon }}</tb-icon>
</button> </button>
<button mat-icon-button <button mat-icon-button
[fxShow]="!isEdit && widget.enableFullscreen" [class.!hidden]="isEdit || !widget.enableFullscreen"
(click)="$event.stopPropagation(); widget.isFullscreen = !widget.isFullscreen; updateEditWidgetActionsTooltipState()" (click)="$event.stopPropagation(); widget.isFullscreen = !widget.isFullscreen; updateEditWidgetActionsTooltipState()"
matTooltip="{{(widget.isFullscreen ? 'fullscreen.exit' : 'fullscreen.expand') | translate}}" matTooltip="{{(widget.isFullscreen ? 'fullscreen.exit' : 'fullscreen.expand') | translate}}"
matTooltipPosition="above"> matTooltipPosition="above">

11
ui-ngx/src/app/modules/home/components/widget/widget.component.html

@ -15,9 +15,9 @@
limitations under the License. limitations under the License.
--> -->
<div class="tb-absolute-fill" fxLayout="column" tb-toast <div class="tb-absolute-fill flex flex-col" tb-toast
toastTarget="{{ toastTargetId }}"> toastTarget="{{ toastTargetId }}">
<div fxFlex id="widget-container"> <div class="flex-1" id="widget-container">
<ng-container #widgetContent></ng-container> <ng-container #widgetContent></ng-container>
</div> </div>
</div> </div>
@ -25,10 +25,9 @@
<span [innerHtml]="('Widget Error:<br/><br/>' + widgetErrorData.message) | safe:'html'"></span> <span [innerHtml]="('Widget Error:<br/><br/>' + widgetErrorData.message) | safe:'html'"></span>
</div> </div>
<div class="tb-absolute-fill tb-widget-no-data" *ngIf="displayNoData"> <div class="tb-absolute-fill tb-widget-no-data" *ngIf="displayNoData">
<span fxLayoutAlign="center center" <span style="display: flex;"
style="display: flex;" class="tb-absolute-fill flex justify-center items-center">{{ noDataDisplayMessageText }}</span>
class="tb-absolute-fill">{{ noDataDisplayMessageText }}</span>
</div> </div>
<div class="tb-absolute-fill tb-widget-loading" [fxShow]="loadingData" fxLayout="column" fxLayoutAlign="center center"> <div class="tb-absolute-fill tb-widget-loading flex flex-col justify-center items-center" [class.!hidden]="!loadingData">
<mat-spinner color="accent" mode="indeterminate" diameter="40"></mat-spinner> <mat-spinner color="accent" mode="indeterminate" diameter="40"></mat-spinner>
</div> </div>

Loading…
Cancel
Save