diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index 893df98..8dbc812 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@design.estate/dees-catalog', - version: '1.0.221', + version: '1.0.222', description: 'website for lossless.com' } diff --git a/ts_web/elements/dees-form.ts b/ts_web/elements/dees-form.ts index 8f07698..c0e8a2f 100644 --- a/ts_web/elements/dees-form.ts +++ b/ts_web/elements/dees-form.ts @@ -6,16 +6,18 @@ import { DeesInputText } from './dees-input-text.js'; import { DeesInputQuantitySelector } from './dees-input-quantityselector.js'; import { DeesInputRadio } from './dees-input-radio.js'; import { DeesFormSubmit } from './dees-form-submit.js'; +import { DeesTable } from './dees-table.js'; // Unified set for form input types const FORM_INPUT_TYPES = [ DeesInputCheckbox, DeesInputText, DeesInputQuantitySelector, - DeesInputRadio + DeesInputRadio, + DeesTable, ]; -export type TFormInputElement = DeesInputCheckbox | DeesInputText | DeesInputQuantitySelector | DeesInputRadio; +export type TFormInputElement = DeesInputCheckbox | DeesInputText | DeesInputQuantitySelector | DeesInputRadio | DeesTable; declare global { interface HTMLElementTagNameMap { @@ -102,7 +104,7 @@ export class DeesForm extends DeesElement { public async collectFormData() { const children = this.getFormElements(); - const valueObject: { [key: string]: string | number | boolean } = {}; + const valueObject: { [key: string]: string | number | boolean | any [] } = {}; for (const child of children) { if (!child.key) { console.log(`form element with label "${child.label}" has no key. skipping.`); diff --git a/ts_web/elements/dees-input-text.ts b/ts_web/elements/dees-input-text.ts index e8b6f8e..b3a3d1b 100644 --- a/ts_web/elements/dees-input-text.ts +++ b/ts_web/elements/dees-input-text.ts @@ -16,7 +16,6 @@ export class DeesInputText extends DeesElement { // INSTANCE public changeSubject = new domtools.rxjs.Subject(); - public valueChangeSubject = new domtools.rxjs.Subject(); @property({ type: String @@ -143,7 +142,6 @@ export class DeesInputText extends DeesElement { const target: any = eventArg.target; this.value = target.value; this.changeSubject.next(this); - this.valueChangeSubject.next(this.value); } public async freeze() { diff --git a/ts_web/elements/dees-table.ts b/ts_web/elements/dees-table.ts index dfe21ea..ad01533 100644 --- a/ts_web/elements/dees-table.ts +++ b/ts_web/elements/dees-table.ts @@ -88,6 +88,34 @@ export class DeesTable extends DeesElement { }) public data: T[] = []; + // dees-form compatibility ----------------------------------------- + @property({ + type: String, + }) + public key: string; + + @property({ + type: String, + }) + public label: string; + + @property({ + type: Boolean, + }) + public disabled: boolean = false; + + @property({ + type: Boolean, + }) + public required: boolean = false; + + get value() { + return this.data; + } + set value(valueArg) {} + public changeSubject = new domtools.rxjs.Subject>(); + // end dees-form compatibility ----------------------------------------- + @property({ type: String, reflect: true, @@ -335,7 +363,7 @@ export class DeesTable extends DeesElement {
-
${this.heading1}
+
${this.label || this.heading1}
${this.heading2}