56 lines
1.5 KiB
TypeScript
Raw Normal View History

///
/// Copyright © 2016-2019 The Thingsboard Authors
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
/// You may obtain a copy of the License at
///
/// http://www.apache.org/licenses/LICENSE-2.0
///
/// Unless required by applicable law or agreed to in writing, software
/// distributed under the License is distributed on an "AS IS" BASIS,
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
///
import { EntityId } from '@shared/models/id/entity-id';
import { DataKey } from '@shared/models/widget.models';
export interface EntityData {
id: EntityId;
entityName: string;
entityType?: string;
[key: string]: any;
}
export interface EntityColumn extends DataKey {
title: string;
}
export interface DisplayColumn {
title: string;
label: string;
display: boolean;
}
export interface CellContentInfo {
useCellContentFunction: boolean;
cellContentFunction?: Function;
units?: string;
decimals?: number;
}
export interface CellStyleInfo {
useCellStyleFunction: boolean;
cellStyleFunction?: Function;
}
export function getEntityValue(entity: any, key: DataKey): any {
return getDescendantProp(entity, key.label);
}
export function getDescendantProp(obj: any, path: string): any {
return path.split('.').reduce((acc, part) => acc && acc[part], obj)
}