@progressive-development/pd-dialog 0.5.8 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/locale-codes.d.ts +14 -0
- package/dist/generated/locale-codes.d.ts.map +1 -0
- package/dist/generated/locales/be.d.ts +5 -0
- package/dist/generated/locales/be.d.ts.map +1 -0
- package/dist/generated/locales/de.d.ts +5 -0
- package/dist/generated/locales/de.d.ts.map +1 -0
- package/dist/generated/locales/en.d.ts +5 -0
- package/dist/generated/locales/en.d.ts.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -6
- package/dist/locales/be.d.ts +2 -0
- package/dist/locales/de.d.ts +2 -0
- package/dist/locales/en.d.ts +2 -0
- package/dist/pd-popup-dialog.d.ts +30 -0
- package/dist/pd-popup-dialog.d.ts.map +1 -0
- package/dist/pd-popup-dialog.js +210 -4
- package/dist/pd-popup.d.ts +25 -0
- package/dist/pd-popup.d.ts.map +1 -0
- package/dist/pd-popup.js +117 -4
- package/dist/pd-submit-dialog.d.ts +30 -0
- package/dist/pd-submit-dialog.d.ts.map +1 -0
- package/dist/pd-submit-dialog.js +202 -4
- package/dist/stories/pd-popup-dialog.stories.d.ts +20 -0
- package/dist/stories/pd-popup-dialog.stories.d.ts.map +1 -0
- package/dist/stories/pd-popup.stories.d.ts +24 -0
- package/dist/stories/pd-popup.stories.d.ts.map +1 -0
- package/dist/stories/pd-submit-dialog.stories.d.ts +33 -0
- package/dist/stories/pd-submit-dialog.stories.d.ts.map +1 -0
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/package.json +81 -95
- package/dist/src/PdPopup.js +0 -112
- package/dist/src/PdPopupDialog.js +0 -188
- package/dist/src/PdSubmitDialog.js +0 -185
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { LitElement, css, html } from "lit";
|
|
2
|
-
import "@progressive-development/pd-forms/pd-button";
|
|
3
|
-
import { PDColorStyles, PDFontStyles } from "@progressive-development/pd-shared-styles";
|
|
4
|
-
/**
|
|
5
|
-
* @license
|
|
6
|
-
* Copyright (c) 2021 PD Progressive Development UG. All rights reserved.
|
|
7
|
-
*/
|
|
8
|
-
class PdPopupDialog extends LitElement {
|
|
9
|
-
/**
|
|
10
|
-
* @event submit-button-clicked - fired if one of the configured buttons was clicked.
|
|
11
|
-
*/
|
|
12
|
-
static get styles() {
|
|
13
|
-
return [
|
|
14
|
-
PDColorStyles,
|
|
15
|
-
PDFontStyles,
|
|
16
|
-
css`
|
|
17
|
-
:host {
|
|
18
|
-
display: block;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/* The Modal (background) */
|
|
22
|
-
.modal {
|
|
23
|
-
position: fixed; /* Stay in place */
|
|
24
|
-
z-index: 100; /* Sit on top */
|
|
25
|
-
left: 0;
|
|
26
|
-
top: 0;
|
|
27
|
-
width: 100%; /* Full width */
|
|
28
|
-
height: 100%; /* Full height */
|
|
29
|
-
overflow: auto; /* Enable scroll if needed */
|
|
30
|
-
/* RGBA Wert muss hier verwendet werden #AFC1D2 to rgba for opacity */
|
|
31
|
-
background-color: var(--pd-popup-modal-bg-rgba, rgba(175, 193, 210, 0.8));
|
|
32
|
-
|
|
33
|
-
display: block;
|
|
34
|
-
padding-top: 150px; /* Location of the box */
|
|
35
|
-
padding-left: 10px;
|
|
36
|
-
padding-right: 10px;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.modal-content {
|
|
40
|
-
margin: auto;
|
|
41
|
-
border: 1px solid var(--pd-default-light-col);
|
|
42
|
-
box-shadow: -4px 4px 10px var(--pd-default-dark-col);
|
|
43
|
-
max-width: var(--pd-popup-max-width, 700px);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.header {
|
|
47
|
-
display: flex;
|
|
48
|
-
gap: 0.5em;
|
|
49
|
-
align-items: center;
|
|
50
|
-
background-color: var(--pd-popup-header-col, var(--pd-default-col));
|
|
51
|
-
height: var(--pd-popup-header-height, 45px);
|
|
52
|
-
padding-left: 0.5em;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.header-txt {
|
|
56
|
-
font-family: var(--pd-default-font-title-family);
|
|
57
|
-
font-size: var(--pd-popup-header-font-size, 1.3em);
|
|
58
|
-
color: var(--pd-popup-header-font-col, var(--pd-default-bg-col));
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.info-logo {
|
|
62
|
-
width: 2em;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.error {
|
|
66
|
-
--pd-icon-col: #FF3232;
|
|
67
|
-
--pd-icon-stroke-width: 0;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.info, .help {
|
|
71
|
-
--pd-icon-col: #6B86FF;
|
|
72
|
-
--pd-icon-stroke-width: 0;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.warn {
|
|
76
|
-
--pd-icon-col: #FFBF00;
|
|
77
|
-
--pd-icon-stroke-width: 0;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.content {
|
|
81
|
-
padding: 0.5rem 1rem 1rem 1rem;
|
|
82
|
-
background-color: var(--pd-popup-header-font-col, var(--pd-default-bg-col));
|
|
83
|
-
height: 100%;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.footer {
|
|
87
|
-
display: flex;
|
|
88
|
-
|
|
89
|
-
background: linear-gradient(to right,
|
|
90
|
-
var(--pd-popup-footer-col, var(--pd-default-light-col)) 0%, var(--pd-default-disabled-light-col) 100%);
|
|
91
|
-
|
|
92
|
-
height: 70px;
|
|
93
|
-
align-items: center;
|
|
94
|
-
justify-content: space-around;
|
|
95
|
-
}
|
|
96
|
-
`
|
|
97
|
-
];
|
|
98
|
-
}
|
|
99
|
-
static get properties() {
|
|
100
|
-
return {
|
|
101
|
-
type: { type: String },
|
|
102
|
-
title: { type: String },
|
|
103
|
-
buttons: { type: Array }
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
constructor() {
|
|
107
|
-
super();
|
|
108
|
-
this.type = "info";
|
|
109
|
-
this.title = "Popup Title";
|
|
110
|
-
this.buttons = [];
|
|
111
|
-
}
|
|
112
|
-
render() {
|
|
113
|
-
return html`
|
|
114
|
-
<!-- The Modal -->
|
|
115
|
-
<div id="modalId" class="modal">
|
|
116
|
-
<!-- Modal content -->
|
|
117
|
-
<div class="modal-content">
|
|
118
|
-
<div class="header">
|
|
119
|
-
${this._getIconForType()}
|
|
120
|
-
<span class="header-txt">${this.title}</span>
|
|
121
|
-
</div>
|
|
122
|
-
<div class="content">
|
|
123
|
-
<slot name="content"></slot>
|
|
124
|
-
</div>
|
|
125
|
-
<div class="footer">
|
|
126
|
-
${this.buttons.map(
|
|
127
|
-
(bt) => html`
|
|
128
|
-
<pd-button
|
|
129
|
-
data-key="${bt.key}"
|
|
130
|
-
@button-clicked="${this._handleButtonEvent}"
|
|
131
|
-
?disabled="${bt.disabled}"
|
|
132
|
-
?primary="${bt.primary}"
|
|
133
|
-
text="${bt.name}"
|
|
134
|
-
></pd-button>
|
|
135
|
-
`
|
|
136
|
-
)}
|
|
137
|
-
</div>
|
|
138
|
-
</div>
|
|
139
|
-
</div>
|
|
140
|
-
`;
|
|
141
|
-
}
|
|
142
|
-
_handleButtonEvent(e) {
|
|
143
|
-
this.dispatchEvent(
|
|
144
|
-
new CustomEvent("submit-button-clicked", {
|
|
145
|
-
detail: {
|
|
146
|
-
button: e.target.dataset.key
|
|
147
|
-
}
|
|
148
|
-
})
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
_getIconForType() {
|
|
152
|
-
if (!this.type || this.type === "") {
|
|
153
|
-
return "";
|
|
154
|
-
}
|
|
155
|
-
switch (this.type) {
|
|
156
|
-
case "warn":
|
|
157
|
-
return html`<pd-icon icon="warningIconFld" class="info-logo warn"></pd-icon>`;
|
|
158
|
-
case "error":
|
|
159
|
-
return html`<pd-icon icon="errorIconFld" class="info-logo error"></pd-icon>`;
|
|
160
|
-
case "help":
|
|
161
|
-
return html`<pd-icon icon="helpIconFld" class="info-logo help"></pd-icon>`;
|
|
162
|
-
default:
|
|
163
|
-
return html`<pd-icon icon="infoIconFld" class="info-logo info"></pd-icon>`;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
showPopup() {
|
|
167
|
-
this._activatePopup();
|
|
168
|
-
}
|
|
169
|
-
_activatePopup() {
|
|
170
|
-
const modal = this.shadowRoot.getElementById("modalId");
|
|
171
|
-
modal.style.display = "block";
|
|
172
|
-
}
|
|
173
|
-
_closePopup() {
|
|
174
|
-
const modal = this.shadowRoot.getElementById("modalId");
|
|
175
|
-
modal.style.display = "none";
|
|
176
|
-
}
|
|
177
|
-
/*
|
|
178
|
-
// When the user clicks anywhere outside of the modal, close it
|
|
179
|
-
window.onclick = function(event) {
|
|
180
|
-
if (event.target == modal) {
|
|
181
|
-
modal.style.display = "none";
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
*/
|
|
185
|
-
}
|
|
186
|
-
export {
|
|
187
|
-
PdPopupDialog
|
|
188
|
-
};
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { LitElement, css, html } from "lit";
|
|
2
|
-
import { msg } from "@lit/localize";
|
|
3
|
-
import "@progressive-development/pd-icon/pd-icon";
|
|
4
|
-
import { PDColorStyles } from "@progressive-development/pd-shared-styles";
|
|
5
|
-
import "../pd-popup-dialog.js";
|
|
6
|
-
/**
|
|
7
|
-
* @license
|
|
8
|
-
* Copyright (c) 2021 PD Progressive Development UG. All rights reserved.
|
|
9
|
-
*/
|
|
10
|
-
const STATUS_SEND = 1;
|
|
11
|
-
const STATUS_SEND_SUCCESS = 2;
|
|
12
|
-
const STATUS_SEND_FAILED = 3;
|
|
13
|
-
class PdSubmitDialog extends LitElement {
|
|
14
|
-
/**
|
|
15
|
-
* @event button-clicked - navigate to start page or close popup (failure case).
|
|
16
|
-
*/
|
|
17
|
-
static get styles() {
|
|
18
|
-
return [
|
|
19
|
-
PDColorStyles,
|
|
20
|
-
css`
|
|
21
|
-
:host {
|
|
22
|
-
display: block;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.progress-container {
|
|
26
|
-
padding: 20px;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.progress-row {
|
|
30
|
-
display: flex;
|
|
31
|
-
justify-content: start;
|
|
32
|
-
align-items: center;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.first-row-tmp {
|
|
36
|
-
width: 80px;
|
|
37
|
-
height: 40px;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.loader {
|
|
41
|
-
border: 16px solid var(--pd-default-disabled-light-col);
|
|
42
|
-
border-top: 16px solid var(--pd-default-col); /* Blue */
|
|
43
|
-
border-radius: 50%;
|
|
44
|
-
width: 10px;
|
|
45
|
-
height: 10px;
|
|
46
|
-
animation: spin 2s linear infinite;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.success-icon {
|
|
50
|
-
padding-top: 5px;
|
|
51
|
-
--pd-icon-col-active: var(--pd-default-success-light-col);
|
|
52
|
-
--pd-icon-stroke-col-active: var(--pd-default-success-col);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.error-icon {
|
|
56
|
-
padding-top: 5px;
|
|
57
|
-
--pd-icon-col: var(--pd-default-error-light-col);
|
|
58
|
-
--pd-icon-stroke-col: var(--pd-default-error-col);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.progress-txt {
|
|
62
|
-
font-size: 1em;
|
|
63
|
-
color: var(--pd-default-dark-col);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
@keyframes spin {
|
|
67
|
-
0% {
|
|
68
|
-
transform: rotate(0deg);
|
|
69
|
-
}
|
|
70
|
-
100% {
|
|
71
|
-
transform: rotate(360deg);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
`
|
|
75
|
-
];
|
|
76
|
-
}
|
|
77
|
-
static get properties() {
|
|
78
|
-
return {
|
|
79
|
-
title: { type: String },
|
|
80
|
-
type: { type: String },
|
|
81
|
-
// mail, editDate, order (default)
|
|
82
|
-
status: { type: Number },
|
|
83
|
-
statusMsg: { type: String },
|
|
84
|
-
confirmMail: { type: String },
|
|
85
|
-
progressTxtMap: { type: Object },
|
|
86
|
-
_buttons: { type: Array }
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
constructor() {
|
|
90
|
-
super();
|
|
91
|
-
this.title = "Order Submit Title";
|
|
92
|
-
this.type = "order";
|
|
93
|
-
this.status = 0;
|
|
94
|
-
this.statusMsg = "";
|
|
95
|
-
this.confirmMail = "";
|
|
96
|
-
this._buttons = [];
|
|
97
|
-
}
|
|
98
|
-
updated(changedProps) {
|
|
99
|
-
if (changedProps.has("status")) {
|
|
100
|
-
if (this.status === STATUS_SEND_SUCCESS) {
|
|
101
|
-
this._buttons = [
|
|
102
|
-
{ name: "Close", key: 2 }
|
|
103
|
-
];
|
|
104
|
-
} else if (this.status === STATUS_SEND_FAILED) {
|
|
105
|
-
this._buttons = [];
|
|
106
|
-
if (this.type === "mail") {
|
|
107
|
-
this._buttons = [{ name: "Close" }];
|
|
108
|
-
} else {
|
|
109
|
-
this._buttons = [
|
|
110
|
-
{ name: msg("Daten bearbeiten", { id: "pd.submit.dialog.closeStay" }), key: 2 },
|
|
111
|
-
{ name: msg("Zur Startseite", { id: "pd.submit.dialog.startPage" }) }
|
|
112
|
-
];
|
|
113
|
-
}
|
|
114
|
-
} else {
|
|
115
|
-
this._buttons = [];
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
render() {
|
|
120
|
-
return html`
|
|
121
|
-
<pd-popup-dialog
|
|
122
|
-
class="popup-dialog"
|
|
123
|
-
title="${this.title}"
|
|
124
|
-
.buttons="${this._buttons}"
|
|
125
|
-
@submit-button-clicked="${this._goToStartpage}"
|
|
126
|
-
>
|
|
127
|
-
<div slot="content">
|
|
128
|
-
<slot name="submit-content"></slot>
|
|
129
|
-
<div class="progress-container">
|
|
130
|
-
<div class="progress-row">${this._renderProgressRow()}</div>
|
|
131
|
-
</div>
|
|
132
|
-
<p>${this.statusMsg}</p>
|
|
133
|
-
</div>
|
|
134
|
-
</pd-popup-dialog>
|
|
135
|
-
`;
|
|
136
|
-
}
|
|
137
|
-
_renderProgressRow() {
|
|
138
|
-
let value;
|
|
139
|
-
switch (this.status) {
|
|
140
|
-
case STATUS_SEND:
|
|
141
|
-
value = html`
|
|
142
|
-
<div class="first-row-tmp">
|
|
143
|
-
<div class="loader"></div>
|
|
144
|
-
</div>
|
|
145
|
-
<span class="progress-txt">${this.progressTxtMap.get(STATUS_SEND)}</span>`;
|
|
146
|
-
break;
|
|
147
|
-
case STATUS_SEND_SUCCESS:
|
|
148
|
-
value = html`
|
|
149
|
-
<div class="first-row-tmp">
|
|
150
|
-
<pd-icon
|
|
151
|
-
class="success-icon"
|
|
152
|
-
icon="checkBox"
|
|
153
|
-
activeIcon
|
|
154
|
-
></pd-icon>
|
|
155
|
-
</div>
|
|
156
|
-
<span class="progress-txt">${this.progressTxtMap.get(STATUS_SEND_SUCCESS)}</span>`;
|
|
157
|
-
break;
|
|
158
|
-
case STATUS_SEND_FAILED:
|
|
159
|
-
value = html` <div class="first-row-tmp">
|
|
160
|
-
<pd-icon class="error-icon" icon="checkBox"></pd-icon>
|
|
161
|
-
</div>
|
|
162
|
-
<span class="progress-txt">${this.progressTxtMap.get(STATUS_SEND_FAILED)}</span>`;
|
|
163
|
-
break;
|
|
164
|
-
default:
|
|
165
|
-
console.warn("Unexpected value");
|
|
166
|
-
}
|
|
167
|
-
return value;
|
|
168
|
-
}
|
|
169
|
-
_goToStartpage() {
|
|
170
|
-
this.dispatchEvent(
|
|
171
|
-
new CustomEvent("submit-button-clicked", {
|
|
172
|
-
detail: {
|
|
173
|
-
// TODO: Get index from event
|
|
174
|
-
button: this._buttons[0].key
|
|
175
|
-
}
|
|
176
|
-
})
|
|
177
|
-
);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
export {
|
|
181
|
-
PdSubmitDialog,
|
|
182
|
-
STATUS_SEND,
|
|
183
|
-
STATUS_SEND_FAILED,
|
|
184
|
-
STATUS_SEND_SUCCESS
|
|
185
|
-
};
|