@design.estate/dees-catalog 3.83.0 → 3.84.0
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_bundle/bundle.js +39 -11
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-form/dees-form/dees-form.d.ts +21 -8
- package/dist_ts_web/elements/00group-form/dees-form/dees-form.js +37 -11
- package/package.json +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-form/dees-form/dees-form.ts +75 -13
package/dist_bundle/bundle.js
CHANGED
|
@@ -164713,6 +164713,37 @@ var FORM_INPUT_TYPES = [
|
|
|
164713
164713
|
DeesInputRichtext,
|
|
164714
164714
|
DeesTable
|
|
164715
164715
|
];
|
|
164716
|
+
function isBuiltInFormInputElement(child) {
|
|
164717
|
+
return FORM_INPUT_TYPES.includes(child.constructor);
|
|
164718
|
+
}
|
|
164719
|
+
__name(isBuiltInFormInputElement, "isBuiltInFormInputElement");
|
|
164720
|
+
function isExternalFormCompatibleElement(child) {
|
|
164721
|
+
if (isBuiltInFormInputElement(child)) {
|
|
164722
|
+
return false;
|
|
164723
|
+
}
|
|
164724
|
+
const candidate = child;
|
|
164725
|
+
return typeof candidate.key === "string" && typeof candidate.changeSubject?.subscribe === "function" && typeof candidate.getValue === "function" && typeof candidate.setValue === "function";
|
|
164726
|
+
}
|
|
164727
|
+
__name(isExternalFormCompatibleElement, "isExternalFormCompatibleElement");
|
|
164728
|
+
function isFormInputElement(child) {
|
|
164729
|
+
return isBuiltInFormInputElement(child) || isExternalFormCompatibleElement(child);
|
|
164730
|
+
}
|
|
164731
|
+
__name(isFormInputElement, "isFormInputElement");
|
|
164732
|
+
function getFormElementValue(child) {
|
|
164733
|
+
if (isExternalFormCompatibleElement(child)) {
|
|
164734
|
+
return child.getValue();
|
|
164735
|
+
}
|
|
164736
|
+
return child.value;
|
|
164737
|
+
}
|
|
164738
|
+
__name(getFormElementValue, "getFormElementValue");
|
|
164739
|
+
function setFormElementValue(child, value2) {
|
|
164740
|
+
if (isExternalFormCompatibleElement(child)) {
|
|
164741
|
+
child.setValue(value2);
|
|
164742
|
+
return;
|
|
164743
|
+
}
|
|
164744
|
+
child.value = value2;
|
|
164745
|
+
}
|
|
164746
|
+
__name(setFormElementValue, "setFormElementValue");
|
|
164716
164747
|
_DeesForm_decorators = [customElement("dees-form")];
|
|
164717
164748
|
var _DeesForm = class _DeesForm extends (_a43 = DeesElement, _horizontalLayout_dec = [n5({ type: Boolean, reflect: true, attribute: "horizontal-layout" })], _a43) {
|
|
164718
164749
|
constructor() {
|
|
@@ -164732,19 +164763,19 @@ var _DeesForm = class _DeesForm extends (_a43 = DeesElement, _horizontalLayout_d
|
|
|
164732
164763
|
this.updateRequiredStatus();
|
|
164733
164764
|
this.updateChildrenLayoutMode();
|
|
164734
164765
|
for (const child of formChildren) {
|
|
164735
|
-
child.changeSubject.subscribe(async () => {
|
|
164766
|
+
const childSubscription = child.changeSubject.subscribe(async () => {
|
|
164736
164767
|
const valueObject = await this.collectFormData();
|
|
164737
164768
|
this.changeSubject.next(valueObject);
|
|
164738
|
-
console.log(valueObject);
|
|
164739
164769
|
this.updateRequiredStatus();
|
|
164740
164770
|
});
|
|
164771
|
+
this.rxSubscriptions.push(childSubscription);
|
|
164741
164772
|
}
|
|
164742
164773
|
await this.addBehaviours();
|
|
164743
164774
|
this.readyDeferred.resolve();
|
|
164744
164775
|
}
|
|
164745
164776
|
getFormElements() {
|
|
164746
164777
|
return Array.from(this.querySelectorAll("*")).filter(
|
|
164747
|
-
(child) =>
|
|
164778
|
+
(child) => isFormInputElement(child)
|
|
164748
164779
|
);
|
|
164749
164780
|
}
|
|
164750
164781
|
getSubmitButton() {
|
|
@@ -164753,10 +164784,9 @@ var _DeesForm = class _DeesForm extends (_a43 = DeesElement, _horizontalLayout_d
|
|
|
164753
164784
|
);
|
|
164754
164785
|
}
|
|
164755
164786
|
async updateRequiredStatus() {
|
|
164756
|
-
console.log("checking the required status.");
|
|
164757
164787
|
let requiredOK = true;
|
|
164758
164788
|
for (const childArg of this.getFormElements()) {
|
|
164759
|
-
if (childArg.required && !childArg
|
|
164789
|
+
if (childArg.required && !getFormElementValue(childArg)) {
|
|
164760
164790
|
requiredOK = false;
|
|
164761
164791
|
}
|
|
164762
164792
|
}
|
|
@@ -164777,7 +164807,7 @@ var _DeesForm = class _DeesForm extends (_a43 = DeesElement, _horizontalLayout_d
|
|
|
164777
164807
|
console.log(`form element with label "${child.label}" has no key. skipping.`);
|
|
164778
164808
|
continue;
|
|
164779
164809
|
}
|
|
164780
|
-
valueObject[child.key] = child
|
|
164810
|
+
valueObject[child.key] = getFormElementValue(child);
|
|
164781
164811
|
}
|
|
164782
164812
|
return valueObject;
|
|
164783
164813
|
}
|
|
@@ -164790,8 +164820,6 @@ var _DeesForm = class _DeesForm extends (_a43 = DeesElement, _horizontalLayout_d
|
|
|
164790
164820
|
bubbles: true
|
|
164791
164821
|
});
|
|
164792
164822
|
this.dispatchEvent(formDataEvent);
|
|
164793
|
-
console.log("dispatched data:");
|
|
164794
|
-
console.log(valueObject);
|
|
164795
164823
|
}
|
|
164796
164824
|
setStatus(visualStateArg, textStateArg) {
|
|
164797
164825
|
const inputChildren = this.getFormElements();
|
|
@@ -164835,14 +164863,14 @@ var _DeesForm = class _DeesForm extends (_a43 = DeesElement, _horizontalLayout_d
|
|
|
164835
164863
|
reset() {
|
|
164836
164864
|
const inputChildren = this.getFormElements();
|
|
164837
164865
|
for (const inputChild of inputChildren) {
|
|
164838
|
-
inputChild
|
|
164866
|
+
setFormElementValue(inputChild, null);
|
|
164839
164867
|
}
|
|
164840
164868
|
this.setStatus("normal", "Submit");
|
|
164841
164869
|
}
|
|
164842
164870
|
async addBehaviours() {
|
|
164843
164871
|
this.addEventListener("keydown", (event) => {
|
|
164844
164872
|
const target = event.target;
|
|
164845
|
-
if (!
|
|
164873
|
+
if (!isFormInputElement(target)) return;
|
|
164846
164874
|
if (event.key === "Enter") {
|
|
164847
164875
|
const children2 = this.getFormElements();
|
|
164848
164876
|
const currentIndex = children2.indexOf(target);
|
|
@@ -200528,7 +200556,7 @@ init_group_runtime();
|
|
|
200528
200556
|
// ts_web/00_commitinfo_data.ts
|
|
200529
200557
|
var commitinfo = {
|
|
200530
200558
|
name: "@design.estate/dees-catalog",
|
|
200531
|
-
version: "3.
|
|
200559
|
+
version: "3.84.0",
|
|
200532
200560
|
description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
|
|
200533
200561
|
};
|
|
200534
200562
|
export {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-catalog',
|
|
6
|
-
version: '3.
|
|
6
|
+
version: '3.84.0',
|
|
7
7
|
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSxzSkFBc0o7Q0FDcEssQ0FBQSJ9
|
|
@@ -19,7 +19,26 @@ import { DeesInputWysiwyg } from '../../00group-input/dees-input-wysiwyg/dees-in
|
|
|
19
19
|
import { DeesInputRichtext } from '../../00group-input/dees-input-richtext/component.js';
|
|
20
20
|
import { DeesFormSubmit } from '../dees-form-submit/dees-form-submit.js';
|
|
21
21
|
import { DeesTable } from '../../00group-dataview/dees-table/index.js';
|
|
22
|
-
export
|
|
22
|
+
export interface IFormCompatibleElement extends HTMLElement {
|
|
23
|
+
key?: string;
|
|
24
|
+
label?: string;
|
|
25
|
+
value?: unknown;
|
|
26
|
+
required?: boolean;
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
layoutMode?: 'vertical' | 'horizontal' | 'auto';
|
|
29
|
+
changeSubject?: {
|
|
30
|
+
subscribe: (callback: (...args: unknown[]) => unknown) => domtools.plugins.smartrx.rxjs.Subscription;
|
|
31
|
+
};
|
|
32
|
+
getValue?: () => unknown;
|
|
33
|
+
setValue?: (value: unknown) => void;
|
|
34
|
+
}
|
|
35
|
+
export type TFormDataValue = string | number | boolean | null | undefined | unknown[] | File[] | {
|
|
36
|
+
option: string;
|
|
37
|
+
key: string;
|
|
38
|
+
payload?: unknown;
|
|
39
|
+
} | Record<string, unknown>;
|
|
40
|
+
export type TFormData = Record<string, TFormDataValue>;
|
|
41
|
+
export type TFormInputElement = DeesInputCheckbox | DeesInputCode | DeesInputDatepicker | DeesInputDropdown | DeesInputFileupload | DeesInputIban | DeesInputMultitoggle | DeesInputPhone | DeesInputQuantitySelector | DeesInputRadiogroup | DeesInputText | DeesInputToggle | DeesInputTypelist | DeesInputTags | DeesInputList | DeesInputWysiwyg | DeesInputRichtext | DeesTable<any> | IFormCompatibleElement;
|
|
23
42
|
declare global {
|
|
24
43
|
interface HTMLElementTagNameMap {
|
|
25
44
|
'dees-form': DeesForm;
|
|
@@ -46,13 +65,7 @@ export declare class DeesForm extends DeesElement {
|
|
|
46
65
|
* collects the form data
|
|
47
66
|
* @returns
|
|
48
67
|
*/
|
|
49
|
-
collectFormData(): Promise<
|
|
50
|
-
[key: string]: string | number | boolean | any[] | File[] | {
|
|
51
|
-
option: string;
|
|
52
|
-
key: string;
|
|
53
|
-
payload?: any;
|
|
54
|
-
};
|
|
55
|
-
}>;
|
|
68
|
+
collectFormData(): Promise<TFormData>;
|
|
56
69
|
gatherAndDispatch(): Promise<void>;
|
|
57
70
|
setStatus(visualStateArg: 'normal' | 'pending' | 'error' | 'success', textStateArg: string): void;
|
|
58
71
|
/**
|
|
@@ -75,6 +75,35 @@ const FORM_INPUT_TYPES = [
|
|
|
75
75
|
DeesInputRichtext,
|
|
76
76
|
DeesTable,
|
|
77
77
|
];
|
|
78
|
+
function isBuiltInFormInputElement(child) {
|
|
79
|
+
return FORM_INPUT_TYPES.includes(child.constructor);
|
|
80
|
+
}
|
|
81
|
+
function isExternalFormCompatibleElement(child) {
|
|
82
|
+
if (isBuiltInFormInputElement(child)) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
const candidate = child;
|
|
86
|
+
return typeof candidate.key === 'string'
|
|
87
|
+
&& typeof candidate.changeSubject?.subscribe === 'function'
|
|
88
|
+
&& typeof candidate.getValue === 'function'
|
|
89
|
+
&& typeof candidate.setValue === 'function';
|
|
90
|
+
}
|
|
91
|
+
function isFormInputElement(child) {
|
|
92
|
+
return isBuiltInFormInputElement(child) || isExternalFormCompatibleElement(child);
|
|
93
|
+
}
|
|
94
|
+
function getFormElementValue(child) {
|
|
95
|
+
if (isExternalFormCompatibleElement(child)) {
|
|
96
|
+
return child.getValue();
|
|
97
|
+
}
|
|
98
|
+
return child.value;
|
|
99
|
+
}
|
|
100
|
+
function setFormElementValue(child, value) {
|
|
101
|
+
if (isExternalFormCompatibleElement(child)) {
|
|
102
|
+
child.setValue(value);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
child.value = value;
|
|
106
|
+
}
|
|
78
107
|
let DeesForm = (() => {
|
|
79
108
|
let _classDecorators = [customElement('dees-form')];
|
|
80
109
|
let _classDescriptor;
|
|
@@ -132,28 +161,27 @@ let DeesForm = (() => {
|
|
|
132
161
|
this.updateRequiredStatus();
|
|
133
162
|
this.updateChildrenLayoutMode();
|
|
134
163
|
for (const child of formChildren) {
|
|
135
|
-
child.changeSubject.subscribe(async () => {
|
|
164
|
+
const childSubscription = child.changeSubject.subscribe(async () => {
|
|
136
165
|
const valueObject = await this.collectFormData();
|
|
137
166
|
this.changeSubject.next(valueObject);
|
|
138
|
-
console.log(valueObject);
|
|
139
167
|
this.updateRequiredStatus();
|
|
140
168
|
});
|
|
169
|
+
this.rxSubscriptions.push(childSubscription);
|
|
141
170
|
}
|
|
142
171
|
await this.addBehaviours();
|
|
143
172
|
this.readyDeferred.resolve();
|
|
144
173
|
}
|
|
145
174
|
getFormElements() {
|
|
146
175
|
// Use querySelectorAll('*') to find form inputs nested inside wrapper elements (e.g. <div>)
|
|
147
|
-
return Array.from(this.querySelectorAll('*')).filter((child) =>
|
|
176
|
+
return Array.from(this.querySelectorAll('*')).filter((child) => isFormInputElement(child));
|
|
148
177
|
}
|
|
149
178
|
getSubmitButton() {
|
|
150
179
|
return Array.from(this.querySelectorAll('*')).find((child) => child instanceof DeesFormSubmit);
|
|
151
180
|
}
|
|
152
181
|
async updateRequiredStatus() {
|
|
153
|
-
console.log('checking the required status.');
|
|
154
182
|
let requiredOK = true;
|
|
155
183
|
for (const childArg of this.getFormElements()) {
|
|
156
|
-
if (childArg.required && !childArg
|
|
184
|
+
if (childArg.required && !getFormElementValue(childArg)) {
|
|
157
185
|
requiredOK = false;
|
|
158
186
|
}
|
|
159
187
|
}
|
|
@@ -174,7 +202,7 @@ let DeesForm = (() => {
|
|
|
174
202
|
console.log(`form element with label "${child.label}" has no key. skipping.`);
|
|
175
203
|
continue;
|
|
176
204
|
}
|
|
177
|
-
valueObject[child.key] = child
|
|
205
|
+
valueObject[child.key] = getFormElementValue(child);
|
|
178
206
|
}
|
|
179
207
|
return valueObject;
|
|
180
208
|
}
|
|
@@ -187,8 +215,6 @@ let DeesForm = (() => {
|
|
|
187
215
|
bubbles: true,
|
|
188
216
|
});
|
|
189
217
|
this.dispatchEvent(formDataEvent);
|
|
190
|
-
console.log('dispatched data:');
|
|
191
|
-
console.log(valueObject);
|
|
192
218
|
}
|
|
193
219
|
setStatus(visualStateArg, textStateArg) {
|
|
194
220
|
const inputChildren = this.getFormElements();
|
|
@@ -233,7 +259,7 @@ let DeesForm = (() => {
|
|
|
233
259
|
reset() {
|
|
234
260
|
const inputChildren = this.getFormElements();
|
|
235
261
|
for (const inputChild of inputChildren) {
|
|
236
|
-
inputChild
|
|
262
|
+
setFormElementValue(inputChild, null);
|
|
237
263
|
}
|
|
238
264
|
this.setStatus('normal', 'Submit');
|
|
239
265
|
}
|
|
@@ -241,7 +267,7 @@ let DeesForm = (() => {
|
|
|
241
267
|
// Use event delegation
|
|
242
268
|
this.addEventListener('keydown', (event) => {
|
|
243
269
|
const target = event.target;
|
|
244
|
-
if (!
|
|
270
|
+
if (!isFormInputElement(target))
|
|
245
271
|
return;
|
|
246
272
|
if (event.key === 'Enter') {
|
|
247
273
|
const children = this.getFormElements();
|
|
@@ -288,4 +314,4 @@ let DeesForm = (() => {
|
|
|
288
314
|
return DeesForm = _classThis;
|
|
289
315
|
})();
|
|
290
316
|
export { DeesForm };
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtZm9ybS9kZWVzLWZvcm0vZGVlcy1mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsYUFBYSxFQUNiLElBQUksRUFDSixHQUFHLEVBRUgsV0FBVyxFQUVYLFFBQVEsR0FDVCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxRQUFRLE1BQU0sOEJBQThCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDbkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUN2RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUMzSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUN6RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDdkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDNUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNuRyxPQUFPLEVBQUUsYUFB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design.estate/dees-catalog",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.84.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.",
|
|
6
6
|
"main": "dist_ts_web/index.js",
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-catalog',
|
|
6
|
-
version: '3.
|
|
6
|
+
version: '3.84.0',
|
|
7
7
|
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
|
|
8
8
|
}
|
|
@@ -52,6 +52,37 @@ const FORM_INPUT_TYPES = [
|
|
|
52
52
|
DeesTable,
|
|
53
53
|
];
|
|
54
54
|
|
|
55
|
+
export interface IFormCompatibleElement extends HTMLElement {
|
|
56
|
+
key?: string;
|
|
57
|
+
label?: string;
|
|
58
|
+
value?: unknown;
|
|
59
|
+
required?: boolean;
|
|
60
|
+
disabled?: boolean;
|
|
61
|
+
layoutMode?: 'vertical' | 'horizontal' | 'auto';
|
|
62
|
+
changeSubject?: {
|
|
63
|
+
subscribe: (callback: (...args: unknown[]) => unknown) => domtools.plugins.smartrx.rxjs.Subscription;
|
|
64
|
+
};
|
|
65
|
+
getValue?: () => unknown;
|
|
66
|
+
setValue?: (value: unknown) => void;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export type TFormDataValue =
|
|
70
|
+
| string
|
|
71
|
+
| number
|
|
72
|
+
| boolean
|
|
73
|
+
| null
|
|
74
|
+
| undefined
|
|
75
|
+
| unknown[]
|
|
76
|
+
| File[]
|
|
77
|
+
| { option: string; key: string; payload?: unknown }
|
|
78
|
+
| Record<string, unknown>;
|
|
79
|
+
|
|
80
|
+
export type TFormData = Record<string, TFormDataValue>;
|
|
81
|
+
|
|
82
|
+
type TFormElementChangeSubject = {
|
|
83
|
+
subscribe: (callback: () => Promise<void>) => domtools.plugins.smartrx.rxjs.Subscription;
|
|
84
|
+
};
|
|
85
|
+
|
|
55
86
|
export type TFormInputElement =
|
|
56
87
|
| DeesInputCheckbox
|
|
57
88
|
| DeesInputCode
|
|
@@ -70,7 +101,42 @@ export type TFormInputElement =
|
|
|
70
101
|
| DeesInputList
|
|
71
102
|
| DeesInputWysiwyg
|
|
72
103
|
| DeesInputRichtext
|
|
73
|
-
| DeesTable<any
|
|
104
|
+
| DeesTable<any>
|
|
105
|
+
| IFormCompatibleElement;
|
|
106
|
+
|
|
107
|
+
function isBuiltInFormInputElement(child: Element): boolean {
|
|
108
|
+
return FORM_INPUT_TYPES.includes(child.constructor as any);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function isExternalFormCompatibleElement(child: Element): child is IFormCompatibleElement {
|
|
112
|
+
if (isBuiltInFormInputElement(child)) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
const candidate = child as IFormCompatibleElement;
|
|
116
|
+
return typeof candidate.key === 'string'
|
|
117
|
+
&& typeof candidate.changeSubject?.subscribe === 'function'
|
|
118
|
+
&& typeof candidate.getValue === 'function'
|
|
119
|
+
&& typeof candidate.setValue === 'function';
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
function isFormInputElement(child: Element): child is TFormInputElement {
|
|
123
|
+
return isBuiltInFormInputElement(child) || isExternalFormCompatibleElement(child);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function getFormElementValue(child: TFormInputElement): TFormDataValue {
|
|
127
|
+
if (isExternalFormCompatibleElement(child as Element)) {
|
|
128
|
+
return (child as IFormCompatibleElement).getValue!() as TFormDataValue;
|
|
129
|
+
}
|
|
130
|
+
return (child as { value: TFormDataValue }).value;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function setFormElementValue(child: TFormInputElement, value: TFormDataValue): void {
|
|
134
|
+
if (isExternalFormCompatibleElement(child as Element)) {
|
|
135
|
+
(child as IFormCompatibleElement).setValue!(value);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
(child as { value: TFormDataValue }).value = value;
|
|
139
|
+
}
|
|
74
140
|
|
|
75
141
|
declare global {
|
|
76
142
|
interface HTMLElementTagNameMap {
|
|
@@ -123,12 +189,12 @@ export class DeesForm extends DeesElement {
|
|
|
123
189
|
this.updateChildrenLayoutMode();
|
|
124
190
|
|
|
125
191
|
for (const child of formChildren) {
|
|
126
|
-
child.changeSubject.subscribe(async () => {
|
|
192
|
+
const childSubscription = (child.changeSubject as TFormElementChangeSubject).subscribe(async () => {
|
|
127
193
|
const valueObject = await this.collectFormData();
|
|
128
194
|
this.changeSubject.next(valueObject);
|
|
129
|
-
console.log(valueObject);
|
|
130
195
|
this.updateRequiredStatus();
|
|
131
196
|
});
|
|
197
|
+
this.rxSubscriptions.push(childSubscription);
|
|
132
198
|
}
|
|
133
199
|
await this.addBehaviours();
|
|
134
200
|
this.readyDeferred.resolve();
|
|
@@ -137,7 +203,7 @@ export class DeesForm extends DeesElement {
|
|
|
137
203
|
public getFormElements(): Array<TFormInputElement> {
|
|
138
204
|
// Use querySelectorAll('*') to find form inputs nested inside wrapper elements (e.g. <div>)
|
|
139
205
|
return Array.from(this.querySelectorAll('*')).filter((child) =>
|
|
140
|
-
|
|
206
|
+
isFormInputElement(child)
|
|
141
207
|
) as unknown as TFormInputElement[];
|
|
142
208
|
}
|
|
143
209
|
|
|
@@ -148,11 +214,9 @@ export class DeesForm extends DeesElement {
|
|
|
148
214
|
}
|
|
149
215
|
|
|
150
216
|
public async updateRequiredStatus() {
|
|
151
|
-
console.log('checking the required status.');
|
|
152
|
-
|
|
153
217
|
let requiredOK = true;
|
|
154
218
|
for (const childArg of this.getFormElements()) {
|
|
155
|
-
if (childArg.required && !childArg
|
|
219
|
+
if (childArg.required && !getFormElementValue(childArg)) {
|
|
156
220
|
requiredOK = false;
|
|
157
221
|
}
|
|
158
222
|
}
|
|
@@ -168,7 +232,7 @@ export class DeesForm extends DeesElement {
|
|
|
168
232
|
*/
|
|
169
233
|
public async collectFormData() {
|
|
170
234
|
const children = this.getFormElements();
|
|
171
|
-
const valueObject:
|
|
235
|
+
const valueObject: TFormData = {};
|
|
172
236
|
|
|
173
237
|
for (const child of children) {
|
|
174
238
|
if (!child.key) {
|
|
@@ -176,7 +240,7 @@ export class DeesForm extends DeesElement {
|
|
|
176
240
|
continue;
|
|
177
241
|
}
|
|
178
242
|
|
|
179
|
-
valueObject[child.key] = child
|
|
243
|
+
valueObject[child.key] = getFormElementValue(child);
|
|
180
244
|
}
|
|
181
245
|
|
|
182
246
|
return valueObject;
|
|
@@ -191,8 +255,6 @@ export class DeesForm extends DeesElement {
|
|
|
191
255
|
bubbles: true,
|
|
192
256
|
});
|
|
193
257
|
this.dispatchEvent(formDataEvent);
|
|
194
|
-
console.log('dispatched data:');
|
|
195
|
-
console.log(valueObject);
|
|
196
258
|
}
|
|
197
259
|
|
|
198
260
|
public setStatus(
|
|
@@ -244,7 +306,7 @@ export class DeesForm extends DeesElement {
|
|
|
244
306
|
const inputChildren = this.getFormElements();
|
|
245
307
|
|
|
246
308
|
for (const inputChild of inputChildren) {
|
|
247
|
-
inputChild
|
|
309
|
+
setFormElementValue(inputChild, null);
|
|
248
310
|
}
|
|
249
311
|
this.setStatus('normal', 'Submit');
|
|
250
312
|
}
|
|
@@ -253,7 +315,7 @@ export class DeesForm extends DeesElement {
|
|
|
253
315
|
// Use event delegation
|
|
254
316
|
this.addEventListener('keydown', (event: KeyboardEvent) => {
|
|
255
317
|
const target = event.target as DeesElement;
|
|
256
|
-
if (!
|
|
318
|
+
if (!isFormInputElement(target)) return;
|
|
257
319
|
|
|
258
320
|
if (event.key === 'Enter') {
|
|
259
321
|
const children = this.getFormElements();
|