UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

58 lines 2.12 kB
import { Injector, TemplateRef, Type } from '@angular/core'; import { ExtensionFactory } from '../common/extension-hooks'; /** * An action bar item is a action in scope of a * current route of the application. */ export type ActionBarItem = ActionBarItemWithTemplate | ActionBarItemWithComponent; interface ActionBarItemBase { /** * Ordering of the actions (high number first) */ priority?: number; /** * The placement of the item. `more` is a dropdown * on the right side. */ placement: 'left' | 'right' | 'more'; /** * The injector to use. If not set, the default root injector will be used. */ injector?: Injector; /** * Identifying this action bar item belongs to a certain group and should only be shown once. */ groupId?: string; /** * If action bar items has the same groupId, only one is displayed. * Action bar item with the same groupId that has highest inGroupPriority is displayed. */ inGroupPriority?: number; } export interface ActionBarItemWithTemplate extends ActionBarItemBase { /** * Angular template used for Content Projection. * @deprecated This is used for backwards compatibility with angularjs and allows * to content project DOM nodes and template refs. Use component instead. */ template: any; component?: never; } export interface ActionBarItemWithComponent extends ActionBarItemBase { /** * A component that should be rendered as the ActionBarItem. * Note: As a ActionBarItem is rendered in a <li> it is good practice * to remove the wrapper node to not run into CSS issues. You * can do so by defining the selector as a li: `li[customExtension]` * (see: https://stackoverflow.com/a/56887630/923270 or * https://stackoverflow.com/a/38716164/923270) */ component: Type<any> | TemplateRef<any>; template?: never; } /** * Factory to implement if used in a hook for Multi Provider extension. */ export type ActionBarFactory = ExtensionFactory<ActionBarItem>; export {}; //# sourceMappingURL=action-bar.model.d.ts.map