blob: 250e2c1fa45005c8cd958d1859e80b9f04358e09 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
import {VnfMember} from "../../../models/VnfMember";
import {Observable} from "rxjs";
import {CustomTableColumnDefinition} from "./elements-table.component";
export class ElementTableRowModel extends VnfMember {
isSelected: boolean = false;
}
/*******************************************************************************************************************************
ModalInformation
* @type: popup type (VPN, NETWORK, VNFGROUP)
* @title: popup title
* @description: popup upper message
* @topButtonText: (optional)
* @text: button text
* @action: button action
* @backAction : arrow back button action (can close the modal/move to next step)
* @uniqObjectField: uniq object field that we can find in O(1)
* @maxSelectRow: max number of row that user can select (default = no limit)(optional)
* @getElements: function that should return Observable<any[]> of collection of elements to show in the table
* @noElementsMsg : when there are no element some message should shown
* @searchFields : extra information in the left section
* @criteria: extra criteria on table content (optional)
* @tableHeaders : table headers
* @tableContent: table td's information.
******************************************************************************************************************************/
export class ModalInformation {
type : string;
currentCriteriaInfo? : Object;
title ?: string;
description ?: string;
topButton?: {
text ?: string,
action ?: (...args) => any
};
searchButton?: {
text ?: string,
action ?: (...args)=> any
};
backAction? : (...args) => any;
uniqObjectField : string;
maxSelectRow ?: number;
getElements : (...args) => Observable<any[]>;
noElementsMsg : string;
searchFields: ISearchField[];
criteria ?: ICriteria[];
tableHeaders : CustomTableColumnDefinition[];
tableContent : ITableContent[];
serviceModelId: string;
}
export interface ISearchField {
title: string;
value: any;
dataTestId: string;
type : string;
}
export interface ICriteria {
label: string;
defaultValue: any;
onInit?: (...args) => Observable<string>;
onChange? : (...arg) => void;
type : string;
dataTestId : string;
isRequired ?: boolean;
currentValue ?: any;
}
export interface ITableContent {
id : string;
contents : {id : string[], value : string[], prefix ?: string, type? : string}[];
}
export enum SearchFieldItemType {
LABEL = 'LABEL',
DROPDOWN = 'DROPDOWN'
}
|