-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmodal-config.ts
117 lines (104 loc) · 2.59 KB
/
modal-config.ts
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import { TemplateResult } from 'lit';
/**
* Configuration to show a modal
*
* @export
* @class ModalConfig
*/
export class ModalConfig {
/**
* The title that shows in the header
*
* @type {(TemplateResult | undefined)}
* @memberof ModalConfig
*/
title?: TemplateResult;
/**
* The subtitle shown in the header under the title
*
* @type {(TemplateResult | undefined)}
* @memberof ModalConfig
*/
subtitle?: TemplateResult;
/**
* The headline shown at the top of the content section
*
* @type {(TemplateResult | undefined)}
* @memberof ModalConfig
*/
headline?: TemplateResult;
/**
* The text shown below the headline in the content section
*
* @type {(TemplateResult | undefined)}
* @memberof ModalConfig
*/
message?: TemplateResult;
/**
* The background color of the header
*
* @memberof ModalConfig
*/
headerColor: string;
/**
* The background color of the body
*
* @memberof ModalConfig
*/
bodyColor: string;
/**
* Show or hide the processing indicator
*
* @memberof ModalConfig
*/
showProcessingIndicator: boolean;
/**
* Set the processing image mode, currently `processing` or `complete`
*
* @memberof ModalConfig
*/
processingImageMode: 'processing' | 'complete';
/**
* Show the close button
*
* @memberof ModalConfig
*/
showCloseButton: boolean;
/**
* Show the close button
*
* @memberof ModalConfig
*/
showHeaderLogo: boolean;
/**
* Close the modal if the user taps on the background
*
* @memberof ModalConfig
*/
closeOnBackdropClick: boolean;
constructor(options?: {
title?: TemplateResult;
subtitle?: TemplateResult;
headline?: TemplateResult;
message?: TemplateResult;
headerColor?: string;
bodyColor?: string;
showProcessingIndicator?: boolean;
processingImageMode?: 'processing' | 'complete';
showCloseButton?: boolean;
showHeaderLogo?: boolean;
closeOnBackdropClick?: boolean;
}) {
this.title = options?.title;
this.subtitle = options?.subtitle;
this.headline = options?.headline;
this.message = options?.message;
this.headerColor = options?.headerColor ?? '#55A183';
this.bodyColor = options?.bodyColor ?? '#f5f5f7';
this.showProcessingIndicator = options?.showProcessingIndicator ?? false;
this.processingImageMode = options?.processingImageMode ?? 'complete';
this.showCloseButton = options?.showCloseButton ?? true;
this.showHeaderLogo = options?.showHeaderLogo ?? true;
this.closeOnBackdropClick = options?.closeOnBackdropClick ?? true;
}
}