@progressive-development/pd-forms 0.6.5 → 0.6.8
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/locales/be.d.ts +6 -1
- package/dist/generated/locales/be.d.ts.map +1 -1
- package/dist/generated/locales/de.d.ts +7 -2
- package/dist/generated/locales/de.d.ts.map +1 -1
- package/dist/generated/locales/en.d.ts +6 -1
- package/dist/generated/locales/en.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/locales/be.js +8 -2
- package/dist/locales/de.js +9 -3
- package/dist/locales/en.js +8 -2
- package/dist/pd-base-input-element.d.ts +4 -1
- package/dist/pd-base-input-element.d.ts.map +1 -1
- package/dist/pd-base-input-element.js +31 -5
- package/dist/pd-base-ui-input.d.ts +31 -7
- package/dist/pd-base-ui-input.d.ts.map +1 -1
- package/dist/pd-base-ui-input.js +226 -50
- package/dist/pd-checkbox.d.ts +4 -3
- package/dist/pd-checkbox.d.ts.map +1 -1
- package/dist/pd-checkbox.js +91 -62
- package/dist/pd-form-container.d.ts +12 -8
- package/dist/pd-form-container.d.ts.map +1 -1
- package/dist/pd-form-container.js +121 -88
- package/dist/pd-icon-panel-button.d.ts.map +1 -1
- package/dist/pd-icon-panel-button.js +3 -1
- package/dist/pd-input-area.d.ts +3 -1
- package/dist/pd-input-area.d.ts.map +1 -1
- package/dist/pd-input-area.js +28 -1
- package/dist/pd-input-file.d.ts +3 -2
- package/dist/pd-input-file.d.ts.map +1 -1
- package/dist/pd-input-file.js +21 -16
- package/dist/pd-input-time.d.ts +2 -1
- package/dist/pd-input-time.d.ts.map +1 -1
- package/dist/pd-input-time.js +19 -6
- package/dist/pd-input.d.ts +3 -1
- package/dist/pd-input.d.ts.map +1 -1
- package/dist/pd-input.js +32 -5
- package/dist/pd-radio-group.d.ts +4 -1
- package/dist/pd-radio-group.d.ts.map +1 -1
- package/dist/pd-radio-group.js +54 -34
- package/dist/pd-range.d.ts +8 -2
- package/dist/pd-range.d.ts.map +1 -1
- package/dist/pd-range.js +59 -5
- package/dist/pd-select.d.ts +6 -2
- package/dist/pd-select.d.ts.map +1 -1
- package/dist/pd-select.js +27 -3
- package/dist/stories/01_index.stories.d.ts.map +1 -1
- package/dist/stories/checkbox.stories.d.ts +1 -0
- package/dist/stories/checkbox.stories.d.ts.map +1 -1
- package/dist/stories/form-container2.stories.d.ts +8 -0
- package/dist/stories/form-container2.stories.d.ts.map +1 -0
- package/dist/stories/form-container3.stories.d.ts +8 -0
- package/dist/stories/form-container3.stories.d.ts.map +1 -0
- package/dist/stories/input.stories.d.ts.map +1 -1
- package/dist/stories/pd-hover-box.stories.d.ts +8 -0
- package/dist/stories/pd-hover-box.stories.d.ts.map +1 -0
- package/dist/styles/shared-input-field-styles.d.ts.map +1 -1
- package/dist/styles/shared-input-field-styles.js +21 -9
- package/dist/types.d.ts +15 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -0
- package/dist/validators.d.ts +10 -0
- package/dist/validators.d.ts.map +1 -0
- package/dist/validators.js +41 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-form-container.d.ts","sourceRoot":"","sources":["../src/pd-form-container.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"pd-form-container.d.ts","sourceRoot":"","sources":["../src/pd-form-container.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,qBACa,eAAgB,SAAQ,QAAQ;IAC3C;;OAEG;IAEH,iBAAiB,UAAS;IAE1B;;OAEG;IAEH,WAAW,SAAM;IAGjB,OAAO,CAAC,OAAO,CAA+C;IAE9D,OAAgB,MAAM,EAAE,cAAc,CAwCpC;IAEO,iBAAiB,IAAI,IAAI;IAoBzB,oBAAoB,IAAI,IAAI;IAoB5B,MAAM,IAAI,cAAc;IASjC,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,WAAW,CAiBjB;IAEF,OAAO,CAAC,SAAS,CAaf;IAEF,OAAO,CAAC,OAAO,CAOb;IAEF,OAAO,CAAC,QAAQ,CAMd;IAEF,OAAO,CAAC,mBAAmB;IASd,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAQhC,KAAK,IAAI,IAAI;IAMb,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;CAGrD"}
|
|
@@ -2,7 +2,6 @@ import { css, html } from "lit";
|
|
|
2
2
|
import { property, state, customElement } from "lit/decorators.js";
|
|
3
3
|
import { msg } from "@lit/localize";
|
|
4
4
|
import { PdBaseUI } from "./pd-base-ui.js";
|
|
5
|
-
import { INPUT_TYPE_RANGE, INPUT_TYPE_SELECT } from "./pd-base-ui-input.js";
|
|
6
5
|
var __defProp = Object.defineProperty;
|
|
7
6
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
7
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -18,112 +17,145 @@ let PdFormContainer = class extends PdBaseUI {
|
|
|
18
17
|
super(...arguments);
|
|
19
18
|
this.requiredFieldInfo = false;
|
|
20
19
|
this.commonError = "";
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
el.errorMsg = err;
|
|
37
|
-
errorMap.set(el.id, err);
|
|
38
|
-
} else {
|
|
39
|
-
el.errorMsg = "";
|
|
40
|
-
}
|
|
41
|
-
} else if (isTarget) {
|
|
42
|
-
el.errorMsg = "";
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
const validateByType = (type, validator, errMsg) => {
|
|
46
|
-
const targets = (singleElement == null ? void 0 : singleElement.getAttribute("field-type")) === type ? [singleElement] : Array.from(this.querySelectorAll(`[field-type="${type}"]`));
|
|
47
|
-
targets.forEach((el) => {
|
|
48
|
-
var _a;
|
|
49
|
-
if (!errorMap.has(el.id) && ((_a = el.value) == null ? void 0 : _a.length)) {
|
|
50
|
-
if (!validator(el.value)) {
|
|
51
|
-
el.errorMsg = errMsg;
|
|
52
|
-
errorMap.set(el.id, errMsg);
|
|
53
|
-
} else {
|
|
54
|
-
el.errorMsg = "";
|
|
55
|
-
}
|
|
56
|
-
}
|
|
20
|
+
this._fields = /* @__PURE__ */ new Map();
|
|
21
|
+
this._onRegister = (e) => {
|
|
22
|
+
const { name, value, state: state2 } = e.detail;
|
|
23
|
+
if (!this._fields.has(name)) {
|
|
24
|
+
this._fields.set(name, {
|
|
25
|
+
name,
|
|
26
|
+
value,
|
|
27
|
+
valid: state2.valid,
|
|
28
|
+
invalid: state2.invalid,
|
|
29
|
+
pristine: state2.pristine,
|
|
30
|
+
dirty: state2.dirty,
|
|
31
|
+
touched: state2.touched,
|
|
32
|
+
focused: state2.focus,
|
|
33
|
+
errors: {},
|
|
34
|
+
element: e.target
|
|
57
35
|
});
|
|
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
|
-
|
|
36
|
+
this.requestUpdate();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
this._onChange = (e) => {
|
|
40
|
+
const { name, value, state: state2 } = e.detail;
|
|
41
|
+
const field = this._fields.get(name);
|
|
42
|
+
if (field) {
|
|
43
|
+
field.value = value;
|
|
44
|
+
field.pristine = state2.pristine;
|
|
45
|
+
field.dirty = state2.dirty;
|
|
46
|
+
field.touched = state2.touched;
|
|
47
|
+
field.focused = state2.focused;
|
|
48
|
+
field.valid = state2.valid;
|
|
49
|
+
field.invalid = state2.invalid;
|
|
50
|
+
this.requestUpdate();
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
this._onBlur = (e) => {
|
|
54
|
+
const { name } = e.detail;
|
|
55
|
+
const field = this._fields.get(name);
|
|
56
|
+
if (field) {
|
|
57
|
+
field.touched = true;
|
|
58
|
+
field.focused = false;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
this._onFocus = (e) => {
|
|
62
|
+
const { name } = e.detail;
|
|
63
|
+
const field = this._fields.get(name);
|
|
64
|
+
if (field) {
|
|
65
|
+
field.focused = true;
|
|
86
66
|
}
|
|
87
67
|
};
|
|
88
68
|
}
|
|
89
69
|
connectedCallback() {
|
|
90
70
|
super.connectedCallback();
|
|
91
|
-
this.addEventListener(
|
|
71
|
+
this.addEventListener(
|
|
72
|
+
"pd-form-element-register",
|
|
73
|
+
this._onRegister
|
|
74
|
+
);
|
|
75
|
+
this.addEventListener(
|
|
76
|
+
"pd-form-element-change",
|
|
77
|
+
this._onChange
|
|
78
|
+
);
|
|
79
|
+
this.addEventListener(
|
|
80
|
+
"pd-form-element-blur",
|
|
81
|
+
this._onBlur
|
|
82
|
+
);
|
|
83
|
+
this.addEventListener(
|
|
84
|
+
"pd-form-element-focus",
|
|
85
|
+
this._onFocus
|
|
86
|
+
);
|
|
92
87
|
}
|
|
93
88
|
disconnectedCallback() {
|
|
94
89
|
super.disconnectedCallback();
|
|
95
90
|
this.removeEventListener(
|
|
96
|
-
"
|
|
97
|
-
this.
|
|
91
|
+
"pd-form-element-register",
|
|
92
|
+
this._onRegister
|
|
93
|
+
);
|
|
94
|
+
this.removeEventListener(
|
|
95
|
+
"pd-form-element-change",
|
|
96
|
+
this._onChange
|
|
97
|
+
);
|
|
98
|
+
this.removeEventListener(
|
|
99
|
+
"pd-form-element-blur",
|
|
100
|
+
this._onBlur
|
|
101
|
+
);
|
|
102
|
+
this.removeEventListener(
|
|
103
|
+
"pd-form-element-focus",
|
|
104
|
+
this._onFocus
|
|
98
105
|
);
|
|
99
106
|
}
|
|
100
107
|
render() {
|
|
101
|
-
const showValidState = this._requiredFieldsValid && !this.commonError;
|
|
102
108
|
return html`
|
|
103
109
|
<form>
|
|
104
110
|
<slot></slot>
|
|
105
|
-
${
|
|
106
|
-
<div class="validation-info-container">
|
|
107
|
-
<p
|
|
108
|
-
class="validation-info ${showValidState ? "filled" : "unfilled"}"
|
|
109
|
-
>
|
|
110
|
-
${this.commonError || (this._requiredFieldsValid ? msg("* Pflichtfelder ausgefüllt", {
|
|
111
|
-
id: "pd.form.required.valid"
|
|
112
|
-
}) : msg("* Pflichtfeld", { id: "pd.form.required.info" }))}
|
|
113
|
-
</p>
|
|
114
|
-
</div>
|
|
115
|
-
`}
|
|
111
|
+
${this.requiredFieldInfo ? this._renderValidationInfo() : ""}
|
|
116
112
|
</form>
|
|
117
113
|
`;
|
|
118
114
|
}
|
|
119
|
-
|
|
120
|
-
|
|
115
|
+
_renderValidationInfo() {
|
|
116
|
+
const allValid = this._getOverallValidity();
|
|
117
|
+
return html`
|
|
118
|
+
<p class="${allValid ? "valid" : "invalid"}">
|
|
119
|
+
${allValid ? msg("* Pflichtfelder ausgefüllt", { id: "pd.form.required.valid" }) : msg("* Pflichtfeld fehlt oder fehlerhaft", {
|
|
120
|
+
id: "pd.form.required.missing"
|
|
121
|
+
})}
|
|
122
|
+
</p>
|
|
123
|
+
`;
|
|
124
|
+
}
|
|
125
|
+
_getOverallValidity() {
|
|
126
|
+
for (const field of this._fields.values()) {
|
|
127
|
+
if (field.invalid) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
async triggerValidate() {
|
|
134
|
+
const validations = [];
|
|
135
|
+
this._fields.forEach((field) => {
|
|
136
|
+
var _a;
|
|
137
|
+
const result = (_a = field.element) == null ? void 0 : _a.runValidators();
|
|
138
|
+
if (result instanceof Promise) {
|
|
139
|
+
validations.push(result);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
await Promise.all(validations);
|
|
143
|
+
}
|
|
144
|
+
getValues() {
|
|
145
|
+
const result = {};
|
|
146
|
+
this._fields.forEach((field, key) => {
|
|
147
|
+
result[key] = field.value;
|
|
148
|
+
});
|
|
149
|
+
return result;
|
|
121
150
|
}
|
|
122
|
-
|
|
123
|
-
|
|
151
|
+
reset() {
|
|
152
|
+
this._fields.forEach((field) => {
|
|
153
|
+
var _a;
|
|
154
|
+
(_a = field.element) == null ? void 0 : _a.reset();
|
|
155
|
+
});
|
|
124
156
|
}
|
|
125
|
-
|
|
126
|
-
return
|
|
157
|
+
getStatus() {
|
|
158
|
+
return this._fields;
|
|
127
159
|
}
|
|
128
160
|
};
|
|
129
161
|
PdFormContainer.styles = [
|
|
@@ -133,9 +165,10 @@ PdFormContainer.styles = [
|
|
|
133
165
|
display: flex;
|
|
134
166
|
flex-direction: column;
|
|
135
167
|
align-items: flex-start;
|
|
136
|
-
gap: 20px;
|
|
137
168
|
}
|
|
138
169
|
|
|
170
|
+
/* Not activated, working state */
|
|
171
|
+
|
|
139
172
|
.validation-info-container {
|
|
140
173
|
padding-top: var(--pd-form-row-padding-top, 10px);
|
|
141
174
|
}
|
|
@@ -174,7 +207,7 @@ __decorateClass([
|
|
|
174
207
|
], PdFormContainer.prototype, "commonError", 2);
|
|
175
208
|
__decorateClass([
|
|
176
209
|
state()
|
|
177
|
-
], PdFormContainer.prototype, "
|
|
210
|
+
], PdFormContainer.prototype, "_fields", 2);
|
|
178
211
|
PdFormContainer = __decorateClass([
|
|
179
212
|
customElement("pd-form-container")
|
|
180
213
|
], PdFormContainer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-icon-panel-button.d.ts","sourceRoot":"","sources":["../src/pd-icon-panel-button.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAGhD,OAAO,0CAA0C,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,qBACa,iBAAkB,SAAQ,QAAQ;IAE7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,UAAU,EAAE,MAAM,CAAQ;IAG1B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,OAAO,CAAS;IAG7B,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAgB,MAAM,EAAE,cAAc,CAuIpC;IAEF,iBAAiB;IAKjB,oBAAoB;IAKpB,OAAO,CAAC,WAAW,CAEjB;IAGF,MAAM;IAgCN,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"pd-icon-panel-button.d.ts","sourceRoot":"","sources":["../src/pd-icon-panel-button.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAGhD,OAAO,0CAA0C,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,qBACa,iBAAkB,SAAQ,QAAQ;IAE7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,UAAU,EAAE,MAAM,CAAQ;IAG1B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,OAAO,CAAS;IAG7B,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAgB,MAAM,EAAE,cAAc,CAuIpC;IAEF,iBAAiB;IAKjB,oBAAoB;IAKpB,OAAO,CAAC,WAAW,CAEjB;IAGF,MAAM;IAgCN,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,YAAY;CAQrB"}
|
package/dist/pd-input-area.d.ts
CHANGED
|
@@ -11,8 +11,10 @@ export declare class PdInputArea extends PdBaseInputElement {
|
|
|
11
11
|
* Maximum length constraint
|
|
12
12
|
*/
|
|
13
13
|
maxlength?: number;
|
|
14
|
-
constructor();
|
|
15
14
|
static styles: CSSResultGroup;
|
|
15
|
+
constructor();
|
|
16
|
+
connectedCallback(): void;
|
|
17
|
+
private _setupValidators;
|
|
16
18
|
render(): import('lit-html').TemplateResult<1>;
|
|
17
19
|
}
|
|
18
20
|
//# sourceMappingURL=pd-input-area.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-input-area.d.ts","sourceRoot":"","sources":["../src/pd-input-area.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"pd-input-area.d.ts","sourceRoot":"","sources":["../src/pd-input-area.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAKhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAIhE,qBACa,WAAY,SAAQ,kBAAkB;IAEjD,IAAI,SAAK;IAGT,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAO;IAEzB,OAAgB,MAAM,EAAE,cAAc,CAQpC;;IAOO,iBAAiB,IAAI,IAAI;IAKlC,OAAO,CAAC,gBAAgB;IAsBf,MAAM;CAgChB"}
|
package/dist/pd-input-area.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { css, html } from "lit";
|
|
2
|
+
import { msg, str } from "@lit/localize";
|
|
2
3
|
import { property, customElement } from "lit/decorators.js";
|
|
4
|
+
import { classMap } from "lit/directives/class-map.js";
|
|
3
5
|
import { PdBaseInputElement } from "./pd-base-input-element.js";
|
|
4
6
|
import { INPUT_TYPE_AREA } from "./pd-base-ui-input.js";
|
|
5
7
|
var __defProp = Object.defineProperty;
|
|
@@ -19,11 +21,35 @@ let PdInputArea = class extends PdBaseInputElement {
|
|
|
19
21
|
this.maxlength = 500;
|
|
20
22
|
this._inputType = INPUT_TYPE_AREA;
|
|
21
23
|
}
|
|
24
|
+
connectedCallback() {
|
|
25
|
+
this._setupValidators();
|
|
26
|
+
super.connectedCallback();
|
|
27
|
+
}
|
|
28
|
+
_setupValidators() {
|
|
29
|
+
const validators = [];
|
|
30
|
+
if (this.minlength !== void 0) {
|
|
31
|
+
validators.push(
|
|
32
|
+
(value) => value.length < this.minlength ? msg(str`Mindestens ${this.minlength} Zeichen`) : null
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
if (this.maxlength !== void 0) {
|
|
36
|
+
validators.push(
|
|
37
|
+
(value) => value.length > this.maxlength ? msg(str`Maximal ${this.maxlength} Zeichen`) : null
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
this._validators = validators;
|
|
41
|
+
}
|
|
22
42
|
render() {
|
|
23
43
|
const inputAreaId = `${this.id}InputArea`;
|
|
24
44
|
return html`
|
|
25
45
|
${this._renderLabel(inputAreaId)}
|
|
26
|
-
<div
|
|
46
|
+
<div
|
|
47
|
+
class="${classMap(
|
|
48
|
+
this.getClassmap({
|
|
49
|
+
input: true
|
|
50
|
+
})
|
|
51
|
+
)}"
|
|
52
|
+
>
|
|
27
53
|
<textarea
|
|
28
54
|
id=${inputAreaId}
|
|
29
55
|
name=${this.name || this.valueName || this.autoCompleteName}
|
|
@@ -39,6 +65,7 @@ let PdInputArea = class extends PdBaseInputElement {
|
|
|
39
65
|
.value=${this.value}
|
|
40
66
|
@keyup=${this._onKeyUp}
|
|
41
67
|
@blur=${this._onBlur}
|
|
68
|
+
@focus=${this._onFocus}
|
|
42
69
|
></textarea>
|
|
43
70
|
</div>
|
|
44
71
|
${this._renderErrorMsg()}
|
package/dist/pd-input-file.d.ts
CHANGED
|
@@ -4,12 +4,13 @@ export declare class PdInputFile extends PdBaseInputElement {
|
|
|
4
4
|
icon?: string;
|
|
5
5
|
accept?: string;
|
|
6
6
|
maxlength?: number;
|
|
7
|
-
constructor();
|
|
8
7
|
static styles: CSSResultGroup;
|
|
8
|
+
constructor();
|
|
9
9
|
render(): import('lit-html').TemplateResult<1>;
|
|
10
|
-
_onKeyUp(e: KeyboardEvent): void;
|
|
11
10
|
private _iconClicked;
|
|
12
11
|
private _onChange;
|
|
13
12
|
get files(): FileList | null | undefined;
|
|
13
|
+
reset(): void;
|
|
14
|
+
clear(): void;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=pd-input-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-input-file.d.ts","sourceRoot":"","sources":["../src/pd-input-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"pd-input-file.d.ts","sourceRoot":"","sources":["../src/pd-input-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhD,OAAO,0CAA0C,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,qBACa,WAAY,SAAQ,kBAAkB;IAEjD,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,OAAgB,MAAM,EAAE,cAAc,CAOpC;;IAOO,MAAM;IAqCf,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAKjB,IAAI,KAAK,IAAI,QAAQ,GAAG,IAAI,GAAG,SAAS,CAEvC;IAEM,KAAK;IAKL,KAAK,IAAI,IAAI;CAGrB"}
|
package/dist/pd-input-file.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { css, html } from "lit";
|
|
2
2
|
import { property, customElement } from "lit/decorators.js";
|
|
3
|
+
import { classMap } from "lit/directives/class-map.js";
|
|
3
4
|
import "@progressive-development/pd-icon/pd-icon";
|
|
4
5
|
import { PdBaseInputElement } from "./pd-base-input-element.js";
|
|
5
6
|
import { INPUT_TYPE_FILE } from "./pd-base-ui-input.js";
|
|
@@ -22,11 +23,18 @@ let PdInputFile = class extends PdBaseInputElement {
|
|
|
22
23
|
const inputId = `${this.id}Input`;
|
|
23
24
|
return html`
|
|
24
25
|
${this._renderLabel(inputId)}
|
|
25
|
-
<div
|
|
26
|
+
<div
|
|
27
|
+
class="${classMap(
|
|
28
|
+
this.getClassmap({
|
|
29
|
+
input: true
|
|
30
|
+
})
|
|
31
|
+
)}"
|
|
32
|
+
>
|
|
26
33
|
${this.icon ? html`<pd-icon
|
|
27
34
|
icon=${this.icon}
|
|
28
35
|
activeIcon
|
|
29
36
|
@click=${this._iconClicked}
|
|
37
|
+
class="infield-icon"
|
|
30
38
|
></pd-icon>` : ""}
|
|
31
39
|
<input
|
|
32
40
|
id=${inputId}
|
|
@@ -38,32 +46,29 @@ let PdInputFile = class extends PdBaseInputElement {
|
|
|
38
46
|
?disabled=${this.disabled}
|
|
39
47
|
@keyup=${this._onKeyUp}
|
|
40
48
|
@blur=${this._onBlur}
|
|
49
|
+
@focus=${this._onFocus}
|
|
41
50
|
@change=${this._onChange}
|
|
42
51
|
/>
|
|
43
52
|
</div>
|
|
44
53
|
${this._renderErrorMsg()}
|
|
45
54
|
`;
|
|
46
55
|
}
|
|
47
|
-
_onKeyUp(e) {
|
|
48
|
-
super._onKeyUp(e);
|
|
49
|
-
}
|
|
50
56
|
_iconClicked() {
|
|
51
57
|
this.dispatchEvent(new CustomEvent("input-icon-click"));
|
|
52
58
|
}
|
|
53
|
-
_onChange() {
|
|
54
|
-
this.
|
|
55
|
-
new CustomEvent("file-change", {
|
|
56
|
-
detail: {
|
|
57
|
-
files: this.files
|
|
58
|
-
},
|
|
59
|
-
bubbles: true,
|
|
60
|
-
composed: true
|
|
61
|
-
})
|
|
62
|
-
);
|
|
59
|
+
_onChange(e) {
|
|
60
|
+
this._handleChangedValue(this._input.value, e, true);
|
|
63
61
|
}
|
|
64
62
|
get files() {
|
|
65
|
-
var _a
|
|
66
|
-
return (
|
|
63
|
+
var _a;
|
|
64
|
+
return (_a = this._input) == null ? void 0 : _a.files;
|
|
65
|
+
}
|
|
66
|
+
reset() {
|
|
67
|
+
this._input.value = "";
|
|
68
|
+
super.reset();
|
|
69
|
+
}
|
|
70
|
+
clear() {
|
|
71
|
+
this.reset();
|
|
67
72
|
}
|
|
68
73
|
};
|
|
69
74
|
PdInputFile.styles = [
|
package/dist/pd-input-time.d.ts
CHANGED
|
@@ -2,9 +2,10 @@ import { CSSResultGroup } from 'lit';
|
|
|
2
2
|
import { PdBaseInputElement } from './pd-base-input-element.js';
|
|
3
3
|
export declare class PdInputTime extends PdBaseInputElement {
|
|
4
4
|
icon?: string;
|
|
5
|
-
constructor();
|
|
6
5
|
static get styles(): CSSResultGroup;
|
|
6
|
+
constructor();
|
|
7
7
|
render(): import('lit-html').TemplateResult<1>;
|
|
8
|
+
private _onChange;
|
|
8
9
|
private _iconClicked;
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=pd-input-time.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-input-time.d.ts","sourceRoot":"","sources":["../src/pd-input-time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"pd-input-time.d.ts","sourceRoot":"","sources":["../src/pd-input-time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhD,OAAO,0CAA0C,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,qBACa,WAAY,SAAQ,kBAAkB;IAEjD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,WAAoB,MAAM,IAAI,cAAc,CAS3C;;IAOQ,MAAM;IAqCf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,YAAY;CAGrB"}
|
package/dist/pd-input-time.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { css, html } from "lit";
|
|
2
2
|
import { property, customElement } from "lit/decorators.js";
|
|
3
|
+
import { classMap } from "lit/directives/class-map.js";
|
|
3
4
|
import "@progressive-development/pd-icon/pd-icon";
|
|
4
5
|
import { PdBaseInputElement } from "./pd-base-input-element.js";
|
|
5
6
|
import { INPUT_TYPE_TIME } from "./pd-base-ui-input.js";
|
|
@@ -14,10 +15,6 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
14
15
|
return result;
|
|
15
16
|
};
|
|
16
17
|
let PdInputTime = class extends PdBaseInputElement {
|
|
17
|
-
constructor() {
|
|
18
|
-
super();
|
|
19
|
-
this._inputType = INPUT_TYPE_TIME;
|
|
20
|
-
}
|
|
21
18
|
static get styles() {
|
|
22
19
|
return [
|
|
23
20
|
PdBaseInputElement.styles,
|
|
@@ -28,31 +25,47 @@ let PdInputTime = class extends PdBaseInputElement {
|
|
|
28
25
|
`
|
|
29
26
|
];
|
|
30
27
|
}
|
|
28
|
+
constructor() {
|
|
29
|
+
super();
|
|
30
|
+
this._inputType = INPUT_TYPE_TIME;
|
|
31
|
+
}
|
|
31
32
|
render() {
|
|
32
33
|
const inputId = `${this.id}Input`;
|
|
33
34
|
return html`
|
|
34
35
|
${this._renderLabel(inputId)}
|
|
35
|
-
<div
|
|
36
|
+
<div
|
|
37
|
+
class="${classMap(
|
|
38
|
+
this.getClassmap({
|
|
39
|
+
input: true
|
|
40
|
+
})
|
|
41
|
+
)}"
|
|
42
|
+
>
|
|
36
43
|
${this.icon ? html`<pd-icon
|
|
37
44
|
icon=${this.icon}
|
|
38
45
|
activeIcon
|
|
39
46
|
@click=${this._iconClicked}
|
|
47
|
+
class="infield-icon"
|
|
40
48
|
></pd-icon>` : ""}
|
|
41
49
|
<input
|
|
42
50
|
id=${inputId}
|
|
43
51
|
name=${this.name || this.valueName || this.autoCompleteName}
|
|
44
52
|
class="input-style ${this.gradient ? "gradient" : ""}"
|
|
45
53
|
type="time"
|
|
46
|
-
.value=${this.
|
|
54
|
+
.value=${this._value}
|
|
47
55
|
?readonly=${this.readonly}
|
|
48
56
|
?disabled=${this.disabled}
|
|
49
57
|
@keyup=${this._onKeyUp}
|
|
58
|
+
@change=${this._onChange}
|
|
50
59
|
@blur=${this._onBlur}
|
|
60
|
+
@focus=${this._onFocus}
|
|
51
61
|
/>
|
|
52
62
|
</div>
|
|
53
63
|
${this._renderErrorMsg()}
|
|
54
64
|
`;
|
|
55
65
|
}
|
|
66
|
+
_onChange(e) {
|
|
67
|
+
this._handleChangedValue(this._input.value, e, true);
|
|
68
|
+
}
|
|
56
69
|
_iconClicked() {
|
|
57
70
|
this.dispatchEvent(new CustomEvent("input-icon-click"));
|
|
58
71
|
}
|
package/dist/pd-input.d.ts
CHANGED
|
@@ -21,8 +21,10 @@ export declare class PdInput extends PdBaseInputElement {
|
|
|
21
21
|
* If true, restricts input to numbers only (legacy, use type="number" langfristig)
|
|
22
22
|
*/
|
|
23
23
|
onlyNumbers: boolean;
|
|
24
|
-
constructor();
|
|
25
24
|
static styles: CSSResultGroup;
|
|
25
|
+
constructor();
|
|
26
|
+
connectedCallback(): void;
|
|
27
|
+
private _setupValidators;
|
|
26
28
|
render(): TemplateResult;
|
|
27
29
|
protected _onKeyUp(e: KeyboardEvent): void;
|
|
28
30
|
private _iconClicked;
|
package/dist/pd-input.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-input.d.ts","sourceRoot":"","sources":["../src/pd-input.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAa,KAAK,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"pd-input.d.ts","sourceRoot":"","sources":["../src/pd-input.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAa,KAAK,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAKrE,OAAO,0CAA0C,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAKhE,qBACa,OAAQ,SAAQ,kBAAkB;IAC7C;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,MAAM,UAAS;IAEf;;OAEG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAO;IAEzB;;OAEG;IAEH,WAAW,UAAS;IAEpB,OAAgB,MAAM,EAAE,cAAc,CAOpC;;IAOO,iBAAiB,IAAI,IAAI;IAMlC,OAAO,CAAC,gBAAgB;IAsBf,MAAM,IAAI,cAAc;cA0Cd,QAAQ,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAWnD,OAAO,CAAC,YAAY;CAKrB"}
|
package/dist/pd-input.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { css, html } from "lit";
|
|
2
|
+
import { msg, str } from "@lit/localize";
|
|
2
3
|
import { property, customElement } from "lit/decorators.js";
|
|
4
|
+
import { classMap } from "lit/directives/class-map.js";
|
|
3
5
|
import "@progressive-development/pd-icon/pd-icon";
|
|
4
6
|
import { INPUT_TYPE_TEXT } from "./pd-base-ui-input.js";
|
|
5
7
|
import { PdBaseInputElement } from "./pd-base-input-element.js";
|
|
@@ -13,7 +15,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
13
15
|
if (kind && result) __defProp(target, key, result);
|
|
14
16
|
return result;
|
|
15
17
|
};
|
|
16
|
-
const onlyContainsNumbers = (
|
|
18
|
+
const onlyContainsNumbers = (str2) => /^\d+$/.test(str2);
|
|
17
19
|
let PdInput = class extends PdBaseInputElement {
|
|
18
20
|
constructor() {
|
|
19
21
|
super();
|
|
@@ -23,16 +25,41 @@ let PdInput = class extends PdBaseInputElement {
|
|
|
23
25
|
this.onlyNumbers = false;
|
|
24
26
|
this._inputType = INPUT_TYPE_TEXT;
|
|
25
27
|
}
|
|
28
|
+
connectedCallback() {
|
|
29
|
+
this._setupValidators();
|
|
30
|
+
super.connectedCallback();
|
|
31
|
+
}
|
|
32
|
+
_setupValidators() {
|
|
33
|
+
const validators = [];
|
|
34
|
+
if (this.minlength !== void 0) {
|
|
35
|
+
validators.push(
|
|
36
|
+
(value) => value.length < this.minlength ? msg(str`Mindestens ${this.minlength} Zeichen`) : null
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
if (this.maxlength !== void 0) {
|
|
40
|
+
validators.push(
|
|
41
|
+
(value) => value.length > this.maxlength ? msg(str`Maximal ${this.maxlength} Zeichen`) : null
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
this._validators = validators;
|
|
45
|
+
}
|
|
26
46
|
render() {
|
|
27
47
|
const inputId = `${this.id}Input`;
|
|
28
48
|
return html`
|
|
29
49
|
${this._renderLabel(inputId)}
|
|
30
|
-
<div
|
|
50
|
+
<div
|
|
51
|
+
class="${classMap(
|
|
52
|
+
this.getClassmap({
|
|
53
|
+
input: true
|
|
54
|
+
})
|
|
55
|
+
)}"
|
|
56
|
+
>
|
|
31
57
|
${this.icon ? html`
|
|
32
58
|
<pd-icon
|
|
33
59
|
icon=${this.icon}
|
|
34
60
|
activeIcon
|
|
35
61
|
@click=${this._iconClicked}
|
|
62
|
+
class="infield-icon"
|
|
36
63
|
></pd-icon>
|
|
37
64
|
` : ""}
|
|
38
65
|
<input
|
|
@@ -42,13 +69,14 @@ let PdInput = class extends PdBaseInputElement {
|
|
|
42
69
|
class="input-style ${this.gradient ? "gradient" : ""}"
|
|
43
70
|
type=${this.secret ? "password" : "text"}
|
|
44
71
|
placeholder=${this.placeHolder}
|
|
45
|
-
.value=${this.
|
|
72
|
+
.value=${this._value}
|
|
46
73
|
minlength=${this.minlength ?? ""}
|
|
47
74
|
maxlength=${this.maxlength ?? ""}
|
|
48
75
|
?readonly=${this.readonly}
|
|
49
76
|
?disabled=${this.disabled}
|
|
50
77
|
@keyup=${this._onKeyUp}
|
|
51
78
|
@blur=${this._onBlur}
|
|
79
|
+
@focus=${this._onFocus}
|
|
52
80
|
/>
|
|
53
81
|
</div>
|
|
54
82
|
${this._renderErrorMsg()}
|
|
@@ -58,9 +86,8 @@ let PdInput = class extends PdBaseInputElement {
|
|
|
58
86
|
var _a;
|
|
59
87
|
if (this.onlyNumbers && ((_a = this._input) == null ? void 0 : _a.value) && !onlyContainsNumbers(this._input.value)) {
|
|
60
88
|
this._input.value = this._input.value.replace(/\D/g, "");
|
|
61
|
-
} else {
|
|
62
|
-
super._onKeyUp(e);
|
|
63
89
|
}
|
|
90
|
+
super._onKeyUp(e);
|
|
64
91
|
}
|
|
65
92
|
_iconClicked() {
|
|
66
93
|
this.dispatchEvent(
|
package/dist/pd-radio-group.d.ts
CHANGED
|
@@ -4,6 +4,9 @@ export declare class PdRadioGroup extends PdBaseUIInput {
|
|
|
4
4
|
static styles: CSSResultGroup;
|
|
5
5
|
firstUpdated(): void;
|
|
6
6
|
render(): import('lit-html').TemplateResult<1>;
|
|
7
|
-
private
|
|
7
|
+
private _onInternalBlur;
|
|
8
|
+
private _onInternalFocus;
|
|
9
|
+
private _onInternalChange;
|
|
10
|
+
private _onInternalRegister;
|
|
8
11
|
}
|
|
9
12
|
//# sourceMappingURL=pd-radio-group.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-radio-group.d.ts","sourceRoot":"","sources":["../src/pd-radio-group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,qBACa,YAAa,SAAQ,aAAa;IAC7C,OAAgB,MAAM,EAAE,cAAc,CAmBpC;IAEO,YAAY,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"pd-radio-group.d.ts","sourceRoot":"","sources":["../src/pd-radio-group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,qBACa,YAAa,SAAQ,aAAa;IAC7C,OAAgB,MAAM,EAAE,cAAc,CAmBpC;IAEO,YAAY,IAAI,IAAI;IAuBpB,MAAM;IAmBf,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,mBAAmB;CAsB5B"}
|