@vaadin/hilla-lit-form 24.5.0-beta3 → 24.5.0-beta5

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/Field.d.ts CHANGED
@@ -67,10 +67,6 @@ export declare class GenericFieldStrategy<T = any, E extends FieldElement<T> = F
67
67
  set required(value: boolean);
68
68
  set invalid(value: boolean);
69
69
  }
70
- export declare class GenericStringFieldStrategy extends GenericFieldStrategy<string> {
71
- get value(): string | undefined;
72
- set value(val: string | undefined);
73
- }
74
70
  type CheckedFieldElement<T> = FieldElement<T> & {
75
71
  checked: boolean;
76
72
  };
@@ -78,6 +74,10 @@ export declare class CheckedFieldStrategy<T = any, E extends CheckedFieldElement
78
74
  get value(): T | undefined;
79
75
  set value(val: T | undefined);
80
76
  }
77
+ export declare class CheckedGroupFieldStrategy<T = any, E extends FieldElement<T> = FieldElement<T>> extends GenericFieldStrategy<T, E> {
78
+ get value(): T | undefined;
79
+ set value(val: T | undefined);
80
+ }
81
81
  type ComboBoxFieldElement<T> = FieldElement<T> & {
82
82
  value: string;
83
83
  selectedItem: T | null;
package/Field.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["src/Field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["src/Field.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAqB,KAAK,YAAY,EAAE,MAAM,KAAK,CAAC;AAC7E,OAAO,EAAkD,KAAK,QAAQ,EAAY,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAEL,KAAK,aAAa,EAMnB,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC/C,QAAQ,EAAE,aAAa,CAAC;IACxB,aAAa,IAAI,OAAO,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAIxG,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,CAElF;AAED,UAAU,kBAAkB,CAAC,CAAC;IAC5B,IAAI,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAE/B;;;OAGG;IACH,IAAI,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE;CACvC;AAED,UAAU,KAAK,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CACnC;AAED,UAAU,UAAU,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAC5B;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,GAC3C,yBAAyB,GAAG;IAC1B,oBAAoB,IAAI,IAAI,CAAC;CAC9B,CAAC;AAEJ,8BAAsB,qBAAqB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAC9F,YAAW,aAAa,CAAC,CAAC,CAAC;;IAE3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;gBAUtB,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IAKhD,IAAI,OAAO,IAAI,CAAC,CAEf;IAED;;;OAGG;IACH,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,EAErB;IAED,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAEzB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,EAM7B;IAED,IAAI,YAAY,CAAC,CAAC,EAAE,MAAM,EAAI;IAE9B,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,aAAa,IAAI,OAAO;IAcxB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI;IAQzC,oBAAoB,IAAI,IAAI;CAqB7B;AAED,qBAAa,mBAAmB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAE,SAAQ,qBAAqB,CAClH,CAAC,EACD,CAAC,CACF;;gBAIa,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IAKhD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAGzB;IAED,IAAa,YAAY,CAAC,KAAK,EAAE,MAAM,EAEtC;IAEQ,oBAAoB,IAAI,IAAI;CAgBtC;AAED,qBAAa,oBAAoB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAE,SAAQ,qBAAqB,CACnH,CAAC,EACD,CAAC,CACF;IACC,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;CACF;AAED,KAAK,mBAAmB,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IAC9C,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,qBAAa,oBAAoB,CAC/B,CAAC,GAAG,GAAG,EACP,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CACzD,SAAQ,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAClC,IAAa,KAAK,IAAI,CAAC,GAAG,SAAS,CAMlC;IAED,IAAa,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,EAEpC;CACF;AAED,qBAAa,yBAAyB,CACpC,CAAC,GAAG,GAAG,EACP,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAC3C,SAAQ,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAClC,IAAa,KAAK,IAAI,CAAC,GAAG,SAAS,CAElC;IAED,IAAa,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,EAEpC;CACF;AAED,KAAK,oBAAoB,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,qBAAa,qBAAqB,CAChC,CAAC,EACD,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAC3D,SAAQ,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IACjC,IAAa,KAAK,IAAI,CAAC,GAAG,SAAS,CAOlC;IAED,IAAa,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,EAMpC;CACF;AAED,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,MAAM,CAAC;IACxE,IAAa,KAAK,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED,IAAa,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAIzC;CACF;AAED,KAAK,+BAA+B,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IAC1D,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,CAAC,CAAC;CAClB,CAAC;AAEF,qBAAa,gCAAgC,CAC3C,CAAC,EACD,CAAC,SAAS,+BAA+B,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC,CAAC,CACjF,SAAQ,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IACjC,IAAa,KAAK,IAAI,CAAC,CAEtB;IAED,IAAa,KAAK,CAAC,GAAG,EAAE,GAAG,EAE1B;CACF;AAED,KAAK,oBAAoB,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IAC/C,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,CAAC,CAAC;CACb,CAAC;AAEF,qBAAa,qBAAqB,CAChC,CAAC,EACD,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAC3D,SAAQ,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAClC,IAAa,KAAK,IAAI,CAAC,CAEtB;IAED,IAAa,KAAK,CAAC,GAAG,EAAE,CAAC,EAExB;CACF;AAMD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CA6BnH;AAMD;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,oDAakD,OAAO,KAAK,IAAI;mBAT1D,QAAQ;qBAFjB,UAAU,CAAC,GAAG,CAAC;uBAWJ,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;qBAI1D,WAAW,GAAG,YAAY,qEAJgB,OAAO,KAAK,IAAI;;;EA4FnF,CAAC"}
package/Field.js CHANGED
@@ -1,7 +1,14 @@
1
1
  import { noChange, nothing } from "lit";
2
2
  import { directive, Directive, PartType } from "lit/directive.js";
3
3
  import { getBinderNode } from "./BinderNode.js";
4
- import { _fromString, ArrayModel, BooleanModel, hasFromString, ObjectModel } from "./Models.js";
4
+ import {
5
+ _fromString,
6
+ ArrayModel,
7
+ BooleanModel,
8
+ hasFromString,
9
+ NumberModel,
10
+ ObjectModel
11
+ } from "./Models.js";
5
12
  import { StringModel } from "./Models.js";
6
13
  import { _validity, defaultValidity } from "./Validity.js";
7
14
  const props = ["required", "invalid", "errorMessage", "value", "validity", "checkValidity"];
@@ -34,6 +41,10 @@ class AbstractFieldStrategy {
34
41
  return this.#element.value;
35
42
  }
36
43
  set value(value) {
44
+ if (this.model instanceof StringModel || this.model instanceof NumberModel) {
45
+ this.#element.value = value ?? "";
46
+ return;
47
+ }
37
48
  this.#element.value = value;
38
49
  }
39
50
  set errorMessage(_) {
@@ -114,14 +125,6 @@ class GenericFieldStrategy extends AbstractFieldStrategy {
114
125
  this.setAttribute("invalid", value);
115
126
  }
116
127
  }
117
- class GenericStringFieldStrategy extends GenericFieldStrategy {
118
- get value() {
119
- return super.value;
120
- }
121
- set value(val) {
122
- super.value = val ?? "";
123
- }
124
- }
125
128
  class CheckedFieldStrategy extends GenericFieldStrategy {
126
129
  get value() {
127
130
  if (this.model instanceof BooleanModel) {
@@ -133,6 +136,14 @@ class CheckedFieldStrategy extends GenericFieldStrategy {
133
136
  this.element.checked = /^(true|on)$/iu.test(String(val));
134
137
  }
135
138
  }
139
+ class CheckedGroupFieldStrategy extends GenericFieldStrategy {
140
+ get value() {
141
+ return super.value;
142
+ }
143
+ set value(val) {
144
+ super.value = val ?? [];
145
+ }
146
+ }
136
147
  class ComboBoxFieldStrategy extends VaadinFieldStrategy {
137
148
  get value() {
138
149
  if (this.model && (this.model instanceof ObjectModel || this.model instanceof ArrayModel)) {
@@ -178,6 +189,8 @@ function getDefaultFieldStrategy(elm, model) {
178
189
  case "vaadin-checkbox":
179
190
  case "vaadin-radio-button":
180
191
  return new CheckedFieldStrategy(elm, model);
192
+ case "vaadin-checkbox-group":
193
+ return new CheckedGroupFieldStrategy(elm, model);
181
194
  case "vaadin-combo-box":
182
195
  return new ComboBoxFieldStrategy(elm, model);
183
196
  case "vaadin-list-box":
@@ -198,10 +211,7 @@ function getDefaultFieldStrategy(elm, model) {
198
211
  if (elm.constructor.version) {
199
212
  return new VaadinFieldStrategy(elm, model);
200
213
  }
201
- return model instanceof StringModel ? new GenericStringFieldStrategy(
202
- elm,
203
- model
204
- ) : new GenericFieldStrategy(elm, model);
214
+ return new GenericFieldStrategy(elm, model);
205
215
  }
206
216
  }
207
217
  function convertFieldValue(model, fieldValue) {
@@ -296,9 +306,9 @@ const field = directive(
296
306
  export {
297
307
  AbstractFieldStrategy,
298
308
  CheckedFieldStrategy,
309
+ CheckedGroupFieldStrategy,
299
310
  ComboBoxFieldStrategy,
300
311
  GenericFieldStrategy,
301
- GenericStringFieldStrategy,
302
312
  MultiSelectComboBoxFieldStrategy,
303
313
  SelectedFieldStrategy,
304
314
  VaadinFieldStrategy,
package/Field.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["src/Field.ts"],
4
- "sourcesContent": ["/* eslint-disable accessor-pairs,sort-keys */\nimport { type ElementPart, noChange, nothing, type PropertyPart } from 'lit';\nimport { directive, Directive, type DirectiveParameters, type PartInfo, PartType } from 'lit/directive.js';\nimport { getBinderNode } from './BinderNode.js';\nimport { _fromString, type AbstractModel, ArrayModel, BooleanModel, hasFromString, ObjectModel } from './Models.js';\nimport { StringModel } from './Models.js';\nimport type { ValueError } from './Validation.js';\nimport { _validity, defaultValidity } from './Validity.js';\n\nexport interface FieldBase<T> {\n required: boolean;\n invalid: boolean;\n errorMessage: string;\n value: T | undefined;\n}\n\n/**\n * Subset of the HTML constraint validation API with the `checkValidity()` method.\n */\nexport type FieldConstraintValidation = Readonly<{\n validity: ValidityState;\n checkValidity(): boolean;\n}>;\n\nexport type FieldElement<T = unknown> = FieldBase<T> & HTMLElement & Partial<FieldConstraintValidation>;\n\nconst props = ['required', 'invalid', 'errorMessage', 'value', 'validity', 'checkValidity'];\n\nexport function isFieldElement<T>(element: HTMLElement): element is FieldElement<T> {\n return props.some((prop) => prop in element);\n}\n\ninterface FieldElementHolder<T> {\n get element(): FieldElement<T>;\n\n /**\n * @param element - the new element value\n * @deprecated will be read-only in future\n */\n set element(element: FieldElement<T>);\n}\n\ninterface Field<T> extends FieldBase<T> {\n readonly model?: AbstractModel<T>;\n}\n\ninterface FieldState<T> extends Field<T>, FieldElementHolder<T> {\n name: string;\n validity: ValidityState;\n strategy: FieldStrategy<T>;\n}\n\nexport type FieldStrategy<T = any> = Field<T> &\n FieldConstraintValidation & {\n removeEventListeners(): void;\n };\n\nexport abstract class AbstractFieldStrategy<T = any, E extends FieldElement<T> = FieldElement<T>>\n implements FieldStrategy<T>\n{\n abstract required: boolean;\n\n abstract invalid: boolean;\n\n readonly model?: AbstractModel<T>;\n\n #element: E;\n\n /**\n * @privateRemarks\n * Fallback for missing .validity property API in Vaadin components.\n */\n #validityFallback: ValidityState = defaultValidity;\n\n constructor(element: E, model?: AbstractModel<T>) {\n this.#element = element;\n this.model = model;\n }\n\n get element(): E {\n return this.#element;\n }\n\n /**\n * @param element - the new element value\n * @deprecated will be read-only in future\n */\n set element(element: E) {\n this.#element = element;\n }\n\n get value(): T | undefined {\n return this.#element.value;\n }\n\n set value(value: T | undefined) {\n this.#element.value = value;\n }\n\n set errorMessage(_: string) {}\n\n get validity(): ValidityState {\n return this.#element.validity ?? this.#validityFallback;\n }\n\n checkValidity(): boolean {\n if (!this.#element.checkValidity) {\n return true;\n }\n\n const valid = this.#element.checkValidity();\n this.#validityFallback = {\n ...defaultValidity,\n valid,\n ...(valid ? {} : this.#detectValidityError()),\n };\n return valid;\n }\n\n setAttribute(key: string, val: any): void {\n if (val) {\n this.#element.setAttribute(key, '');\n } else {\n this.#element.removeAttribute(key);\n }\n }\n\n removeEventListeners(): void {}\n\n #detectValidityError(): Readonly<Partial<ValidityState>> {\n if (!('inputElement' in this.#element)) {\n // Not a Vaadin component field\n return { customError: true };\n }\n\n const inputElement = this.#element.inputElement as FieldElement<string>;\n\n if (this.#element.value === '') {\n if (inputElement.value === '') {\n return { valueMissing: true };\n }\n // Some value is entered, but not meaningful to the\n // web component \u2014 assume parse error.\n return { badInput: true };\n }\n // Unknown constraint violation\n return { customError: true };\n }\n}\n\nexport class VaadinFieldStrategy<T = any, E extends FieldElement<T> = FieldElement<T>> extends AbstractFieldStrategy<\n T,\n E\n> {\n #invalid = false;\n readonly #boundOnValidated = this.#onValidated.bind(this);\n\n constructor(element: E, model?: AbstractModel<T>) {\n super(element, model);\n element.addEventListener('validated', this.#boundOnValidated);\n }\n\n set required(value: boolean) {\n this.element.required = value;\n }\n\n set invalid(value: boolean) {\n this.#invalid = value;\n this.element.invalid = value;\n }\n\n override set errorMessage(value: string) {\n this.element.errorMessage = value;\n }\n\n override removeEventListeners(): void {\n this.element.removeEventListener('validated', this.#boundOnValidated);\n }\n\n #onValidated(e: Event): void {\n if (!(e instanceof CustomEvent) || typeof e.detail !== 'object') {\n return;\n }\n\n // Override built-in changes of the `invalid` flag in Vaadin components\n // to keep the `invalid` property state of the web component in sync.\n const invalid = !(e.detail satisfies Partial<ValidityState> as Partial<ValidityState>).valid;\n if (this.#invalid !== invalid) {\n this.element.invalid = this.#invalid;\n }\n }\n}\n\nexport class GenericFieldStrategy<T = any, E extends FieldElement<T> = FieldElement<T>> extends AbstractFieldStrategy<\n T,\n E\n> {\n set required(value: boolean) {\n this.setAttribute('required', value);\n }\n\n set invalid(value: boolean) {\n this.setAttribute('invalid', value);\n }\n}\n\nexport class GenericStringFieldStrategy extends GenericFieldStrategy<string> {\n override get value(): string | undefined {\n return super.value;\n }\n\n override set value(val: string | undefined) {\n super.value = val ?? '';\n }\n}\n\ntype CheckedFieldElement<T> = FieldElement<T> & {\n checked: boolean;\n};\n\nexport class CheckedFieldStrategy<\n T = any,\n E extends CheckedFieldElement<T> = CheckedFieldElement<T>,\n> extends GenericFieldStrategy<T, E> {\n override get value(): T | undefined {\n if (this.model instanceof BooleanModel) {\n return this.element.checked as T;\n }\n\n return this.element.checked ? this.element.value : undefined;\n }\n\n override set value(val: T | undefined) {\n (this.element as { checked: boolean }).checked = /^(true|on)$/iu.test(String(val));\n }\n}\n\ntype ComboBoxFieldElement<T> = FieldElement<T> & {\n value: string;\n selectedItem: T | null;\n};\n\nexport class ComboBoxFieldStrategy<\n T,\n E extends ComboBoxFieldElement<T> = ComboBoxFieldElement<T>,\n> extends VaadinFieldStrategy<T, E> {\n override get value(): T | undefined {\n if (this.model && (this.model instanceof ObjectModel || this.model instanceof ArrayModel)) {\n const { selectedItem } = this.element;\n return selectedItem ?? undefined;\n }\n\n return super.value;\n }\n\n override set value(val: T | undefined) {\n if (this.model instanceof ObjectModel || this.model instanceof ArrayModel) {\n this.element.selectedItem = val ?? null;\n } else {\n super.value = val;\n }\n }\n}\n\nexport class VaadinStringFieldStrategy extends VaadinFieldStrategy<string> {\n override get value(): string | undefined {\n return super.value;\n }\n\n override set value(val: string | undefined) {\n // Some Vaadin components (e.g. vaadin-time-picker) do not support setting\n // the value to `null` or `undefined`. Instead, set it to an empty string.\n super.value = val ?? '';\n }\n}\n\ntype MultiSelectComboBoxFieldElement<T> = FieldElement<T> & {\n value: never;\n selectedItems: T;\n};\n\nexport class MultiSelectComboBoxFieldStrategy<\n T,\n E extends MultiSelectComboBoxFieldElement<T> = MultiSelectComboBoxFieldElement<T>,\n> extends VaadinFieldStrategy<T, E> {\n override get value(): T {\n return this.element.selectedItems;\n }\n\n override set value(val: any) {\n this.element.selectedItems = val;\n }\n}\n\ntype SelectedFieldElement<T> = FieldElement<T> & {\n value: never;\n selected: T;\n};\n\nexport class SelectedFieldStrategy<\n T,\n E extends SelectedFieldElement<T> = SelectedFieldElement<T>,\n> extends GenericFieldStrategy<T, E> {\n override get value(): T {\n return this.element.selected;\n }\n\n override set value(val: T) {\n this.element.selected = val;\n }\n}\n\ntype MaybeVaadinElementConstructor = {\n readonly version?: string;\n};\n\nexport function getDefaultFieldStrategy<T>(elm: FieldElement<T>, model?: AbstractModel<T>): AbstractFieldStrategy<T> {\n switch (elm.localName) {\n case 'vaadin-checkbox':\n case 'vaadin-radio-button':\n return new CheckedFieldStrategy(elm as CheckedFieldElement<T>, model);\n case 'vaadin-combo-box':\n return new ComboBoxFieldStrategy(elm as ComboBoxFieldElement<T>, model);\n case 'vaadin-list-box':\n return new SelectedFieldStrategy(elm as SelectedFieldElement<T>, model);\n case 'vaadin-multi-select-combo-box':\n return new MultiSelectComboBoxFieldStrategy(elm as MultiSelectComboBoxFieldElement<T>, model);\n case 'vaadin-rich-text-editor':\n return new GenericFieldStrategy(elm, model);\n case 'vaadin-time-picker':\n return new VaadinStringFieldStrategy(\n elm as FieldElement<string>,\n model as AbstractModel<string>,\n ) as AbstractFieldStrategy<T>;\n default:\n if (elm.localName === 'input' && /^(checkbox|radio)$/u.test((elm as unknown as HTMLInputElement).type)) {\n return new CheckedFieldStrategy(elm as CheckedFieldElement<T>, model);\n }\n if ((elm.constructor as unknown as MaybeVaadinElementConstructor).version) {\n return new VaadinFieldStrategy(elm, model);\n }\n return model instanceof StringModel\n ? (new GenericStringFieldStrategy(\n elm as FieldElement<string>,\n model as AbstractModel<string>,\n ) as AbstractFieldStrategy<T>)\n : new GenericFieldStrategy(elm, model);\n }\n}\n\nfunction convertFieldValue<T extends AbstractModel>(model: T, fieldValue: unknown) {\n return typeof fieldValue === 'string' && hasFromString(model) ? model[_fromString](fieldValue) : fieldValue;\n}\n\n/**\n * Binds a form field component into a model.\n *\n * Example usage:\n *\n * ```\n * <vaadin-text-field ...=\"${field(model.name)}\">\n * </vaadin-text-field>\n * ```\n */\nexport const field = directive(\n class extends Directive {\n fieldState?: FieldState<any>;\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.PROPERTY && partInfo.type !== PartType.ELEMENT) {\n throw new Error('Use as \"<element {field(...)}\" or <element ...={field(...)}\"');\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n override render(_model: AbstractModel<any>, _effect?: (element: Element) => void) {\n return nothing;\n }\n\n override update(part: ElementPart | PropertyPart, [model, effect]: DirectiveParameters<this>) {\n const element = part.element as FieldElement & HTMLInputElement;\n\n const binderNode = getBinderNode(model);\n\n if (!this.fieldState) {\n const fieldState = {\n errorMessage: '',\n name: '',\n value: '',\n required: false,\n invalid: false,\n model,\n validity: defaultValidity,\n element,\n strategy: binderNode.binder.getFieldStrategy(element, model),\n };\n\n this.fieldState = fieldState;\n\n const updateValueFromElement = () => {\n fieldState.strategy.checkValidity();\n // When bad input is detected, skip reading new value in binder state\n if (!fieldState.strategy.validity.badInput) {\n fieldState.value = fieldState.strategy.value;\n }\n fieldState.validity = fieldState.strategy.validity;\n binderNode[_validity] = fieldState.validity;\n binderNode.value = convertFieldValue(model, fieldState.value);\n if (effect !== undefined) {\n effect.call(element, element);\n }\n };\n\n element.addEventListener('input', updateValueFromElement);\n\n const changeBlurHandler = () => {\n updateValueFromElement();\n binderNode.visited = true;\n };\n\n element.addEventListener('blur', changeBlurHandler);\n element.addEventListener('change', changeBlurHandler);\n }\n\n const { fieldState } = this;\n\n if (fieldState.element !== element || fieldState.model !== model) {\n fieldState.strategy = binderNode.binder.getFieldStrategy(element, model);\n }\n\n const { name } = binderNode;\n if (name !== fieldState.name) {\n fieldState.name = name;\n element.setAttribute('name', name);\n }\n\n const { value } = binderNode;\n const valueFromField = convertFieldValue(model, fieldState.value);\n if (value !== valueFromField && !(Number.isNaN(value) && Number.isNaN(valueFromField))) {\n const nonNanValue = Number.isNaN(value) ? '' : value;\n fieldState.value = nonNanValue;\n fieldState.strategy.value = nonNanValue;\n }\n\n const { required } = binderNode;\n if (required !== fieldState.required) {\n fieldState.required = required;\n fieldState.strategy.required = required;\n }\n\n const firstError: ValueError<any> | undefined = binderNode.ownErrors[0];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const errorMessage = firstError?.message || '';\n if (errorMessage !== fieldState.errorMessage) {\n fieldState.errorMessage = errorMessage;\n fieldState.strategy.errorMessage = errorMessage;\n }\n\n const { invalid } = binderNode;\n if (invalid !== fieldState.invalid) {\n fieldState.invalid = invalid;\n fieldState.strategy.invalid = invalid;\n }\n\n return noChange;\n }\n },\n);\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable accessor-pairs,sort-keys */\nimport { type ElementPart, noChange, nothing, type PropertyPart } from 'lit';\nimport { directive, Directive, type DirectiveParameters, type PartInfo, PartType } from 'lit/directive.js';\nimport { getBinderNode } from './BinderNode.js';\nimport {\n _fromString,\n type AbstractModel,\n ArrayModel,\n BooleanModel,\n hasFromString,\n NumberModel,\n ObjectModel,\n} from './Models.js';\nimport { StringModel } from './Models.js';\nimport type { ValueError } from './Validation.js';\nimport { _validity, defaultValidity } from './Validity.js';\n\nexport interface FieldBase<T> {\n required: boolean;\n invalid: boolean;\n errorMessage: string;\n value: T | undefined;\n}\n\n/**\n * Subset of the HTML constraint validation API with the `checkValidity()` method.\n */\nexport type FieldConstraintValidation = Readonly<{\n validity: ValidityState;\n checkValidity(): boolean;\n}>;\n\nexport type FieldElement<T = unknown> = FieldBase<T> & HTMLElement & Partial<FieldConstraintValidation>;\n\nconst props = ['required', 'invalid', 'errorMessage', 'value', 'validity', 'checkValidity'];\n\nexport function isFieldElement<T>(element: HTMLElement): element is FieldElement<T> {\n return props.some((prop) => prop in element);\n}\n\ninterface FieldElementHolder<T> {\n get element(): FieldElement<T>;\n\n /**\n * @param element - the new element value\n * @deprecated will be read-only in future\n */\n set element(element: FieldElement<T>);\n}\n\ninterface Field<T> extends FieldBase<T> {\n readonly model?: AbstractModel<T>;\n}\n\ninterface FieldState<T> extends Field<T>, FieldElementHolder<T> {\n name: string;\n validity: ValidityState;\n strategy: FieldStrategy<T>;\n}\n\nexport type FieldStrategy<T = any> = Field<T> &\n FieldConstraintValidation & {\n removeEventListeners(): void;\n };\n\nexport abstract class AbstractFieldStrategy<T = any, E extends FieldElement<T> = FieldElement<T>>\n implements FieldStrategy<T>\n{\n abstract required: boolean;\n\n abstract invalid: boolean;\n\n readonly model?: AbstractModel<T>;\n\n #element: E;\n\n /**\n * @privateRemarks\n * Fallback for missing .validity property API in Vaadin components.\n */\n #validityFallback: ValidityState = defaultValidity;\n\n constructor(element: E, model?: AbstractModel<T>) {\n this.#element = element;\n this.model = model;\n }\n\n get element(): E {\n return this.#element;\n }\n\n /**\n * @param element - the new element value\n * @deprecated will be read-only in future\n */\n set element(element: E) {\n this.#element = element;\n }\n\n get value(): T | undefined {\n return this.#element.value;\n }\n\n set value(value: T | undefined) {\n if (this.model instanceof StringModel || this.model instanceof NumberModel) {\n this.#element.value = value ?? ('' as T);\n return;\n }\n this.#element.value = value;\n }\n\n set errorMessage(_: string) {}\n\n get validity(): ValidityState {\n return this.#element.validity ?? this.#validityFallback;\n }\n\n checkValidity(): boolean {\n if (!this.#element.checkValidity) {\n return true;\n }\n\n const valid = this.#element.checkValidity();\n this.#validityFallback = {\n ...defaultValidity,\n valid,\n ...(valid ? {} : this.#detectValidityError()),\n };\n return valid;\n }\n\n setAttribute(key: string, val: any): void {\n if (val) {\n this.#element.setAttribute(key, '');\n } else {\n this.#element.removeAttribute(key);\n }\n }\n\n removeEventListeners(): void {}\n\n #detectValidityError(): Readonly<Partial<ValidityState>> {\n if (!('inputElement' in this.#element)) {\n // Not a Vaadin component field\n return { customError: true };\n }\n\n const inputElement = this.#element.inputElement as FieldElement<string>;\n\n if (this.#element.value === '') {\n if (inputElement.value === '') {\n return { valueMissing: true };\n }\n // Some value is entered, but not meaningful to the\n // web component \u2014 assume parse error.\n return { badInput: true };\n }\n // Unknown constraint violation\n return { customError: true };\n }\n}\n\nexport class VaadinFieldStrategy<T = any, E extends FieldElement<T> = FieldElement<T>> extends AbstractFieldStrategy<\n T,\n E\n> {\n #invalid = false;\n readonly #boundOnValidated = this.#onValidated.bind(this);\n\n constructor(element: E, model?: AbstractModel<T>) {\n super(element, model);\n element.addEventListener('validated', this.#boundOnValidated);\n }\n\n set required(value: boolean) {\n this.element.required = value;\n }\n\n set invalid(value: boolean) {\n this.#invalid = value;\n this.element.invalid = value;\n }\n\n override set errorMessage(value: string) {\n this.element.errorMessage = value;\n }\n\n override removeEventListeners(): void {\n this.element.removeEventListener('validated', this.#boundOnValidated);\n }\n\n #onValidated(e: Event): void {\n if (!(e instanceof CustomEvent) || typeof e.detail !== 'object') {\n return;\n }\n\n // Override built-in changes of the `invalid` flag in Vaadin components\n // to keep the `invalid` property state of the web component in sync.\n const invalid = !(e.detail satisfies Partial<ValidityState> as Partial<ValidityState>).valid;\n if (this.#invalid !== invalid) {\n this.element.invalid = this.#invalid;\n }\n }\n}\n\nexport class GenericFieldStrategy<T = any, E extends FieldElement<T> = FieldElement<T>> extends AbstractFieldStrategy<\n T,\n E\n> {\n set required(value: boolean) {\n this.setAttribute('required', value);\n }\n\n set invalid(value: boolean) {\n this.setAttribute('invalid', value);\n }\n}\n\ntype CheckedFieldElement<T> = FieldElement<T> & {\n checked: boolean;\n};\n\nexport class CheckedFieldStrategy<\n T = any,\n E extends CheckedFieldElement<T> = CheckedFieldElement<T>,\n> extends GenericFieldStrategy<T, E> {\n override get value(): T | undefined {\n if (this.model instanceof BooleanModel) {\n return this.element.checked as T;\n }\n\n return this.element.checked ? this.element.value : undefined;\n }\n\n override set value(val: T | undefined) {\n (this.element as { checked: boolean }).checked = /^(true|on)$/iu.test(String(val));\n }\n}\n\nexport class CheckedGroupFieldStrategy<\n T = any,\n E extends FieldElement<T> = FieldElement<T>,\n> extends GenericFieldStrategy<T, E> {\n override get value(): T | undefined {\n return super.value;\n }\n\n override set value(val: T | undefined) {\n super.value = val ?? ([] as T);\n }\n}\n\ntype ComboBoxFieldElement<T> = FieldElement<T> & {\n value: string;\n selectedItem: T | null;\n};\n\nexport class ComboBoxFieldStrategy<\n T,\n E extends ComboBoxFieldElement<T> = ComboBoxFieldElement<T>,\n> extends VaadinFieldStrategy<T, E> {\n override get value(): T | undefined {\n if (this.model && (this.model instanceof ObjectModel || this.model instanceof ArrayModel)) {\n const { selectedItem } = this.element;\n return selectedItem ?? undefined;\n }\n\n return super.value;\n }\n\n override set value(val: T | undefined) {\n if (this.model instanceof ObjectModel || this.model instanceof ArrayModel) {\n this.element.selectedItem = val ?? null;\n } else {\n super.value = val;\n }\n }\n}\n\nexport class VaadinStringFieldStrategy extends VaadinFieldStrategy<string> {\n override get value(): string | undefined {\n return super.value;\n }\n\n override set value(val: string | undefined) {\n // Some Vaadin components (e.g. vaadin-time-picker) do not support setting\n // the value to `null` or `undefined`. Instead, set it to an empty string.\n super.value = val ?? '';\n }\n}\n\ntype MultiSelectComboBoxFieldElement<T> = FieldElement<T> & {\n value: never;\n selectedItems: T;\n};\n\nexport class MultiSelectComboBoxFieldStrategy<\n T,\n E extends MultiSelectComboBoxFieldElement<T> = MultiSelectComboBoxFieldElement<T>,\n> extends VaadinFieldStrategy<T, E> {\n override get value(): T {\n return this.element.selectedItems;\n }\n\n override set value(val: any) {\n this.element.selectedItems = val;\n }\n}\n\ntype SelectedFieldElement<T> = FieldElement<T> & {\n value: never;\n selected: T;\n};\n\nexport class SelectedFieldStrategy<\n T,\n E extends SelectedFieldElement<T> = SelectedFieldElement<T>,\n> extends GenericFieldStrategy<T, E> {\n override get value(): T {\n return this.element.selected;\n }\n\n override set value(val: T) {\n this.element.selected = val;\n }\n}\n\ntype MaybeVaadinElementConstructor = {\n readonly version?: string;\n};\n\nexport function getDefaultFieldStrategy<T>(elm: FieldElement<T>, model?: AbstractModel<T>): AbstractFieldStrategy<T> {\n switch (elm.localName) {\n case 'vaadin-checkbox':\n case 'vaadin-radio-button':\n return new CheckedFieldStrategy(elm as CheckedFieldElement<T>, model);\n case 'vaadin-checkbox-group':\n return new CheckedGroupFieldStrategy(elm, model);\n case 'vaadin-combo-box':\n return new ComboBoxFieldStrategy(elm as ComboBoxFieldElement<T>, model);\n case 'vaadin-list-box':\n return new SelectedFieldStrategy(elm as SelectedFieldElement<T>, model);\n case 'vaadin-multi-select-combo-box':\n return new MultiSelectComboBoxFieldStrategy(elm as MultiSelectComboBoxFieldElement<T>, model);\n case 'vaadin-rich-text-editor':\n return new GenericFieldStrategy(elm, model);\n case 'vaadin-time-picker':\n return new VaadinStringFieldStrategy(\n elm as FieldElement<string>,\n model as AbstractModel<string>,\n ) as AbstractFieldStrategy<T>;\n default:\n if (elm.localName === 'input' && /^(checkbox|radio)$/u.test((elm as unknown as HTMLInputElement).type)) {\n return new CheckedFieldStrategy(elm as CheckedFieldElement<T>, model);\n }\n if ((elm.constructor as unknown as MaybeVaadinElementConstructor).version) {\n return new VaadinFieldStrategy(elm, model);\n }\n return new GenericFieldStrategy(elm, model);\n }\n}\n\nfunction convertFieldValue<T extends AbstractModel>(model: T, fieldValue: unknown) {\n return typeof fieldValue === 'string' && hasFromString(model) ? model[_fromString](fieldValue) : fieldValue;\n}\n\n/**\n * Binds a form field component into a model.\n *\n * Example usage:\n *\n * ```\n * <vaadin-text-field ...=\"${field(model.name)}\">\n * </vaadin-text-field>\n * ```\n */\nexport const field = directive(\n class extends Directive {\n fieldState?: FieldState<any>;\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.PROPERTY && partInfo.type !== PartType.ELEMENT) {\n throw new Error('Use as \"<element {field(...)}\" or <element ...={field(...)}\"');\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n override render(_model: AbstractModel<any>, _effect?: (element: Element) => void) {\n return nothing;\n }\n\n override update(part: ElementPart | PropertyPart, [model, effect]: DirectiveParameters<this>) {\n const element = part.element as FieldElement & HTMLInputElement;\n\n const binderNode = getBinderNode(model);\n\n if (!this.fieldState) {\n const fieldState = {\n errorMessage: '',\n name: '',\n value: '',\n required: false,\n invalid: false,\n model,\n validity: defaultValidity,\n element,\n strategy: binderNode.binder.getFieldStrategy(element, model),\n };\n\n this.fieldState = fieldState;\n\n const updateValueFromElement = () => {\n fieldState.strategy.checkValidity();\n // When bad input is detected, skip reading new value in binder state\n if (!fieldState.strategy.validity.badInput) {\n fieldState.value = fieldState.strategy.value;\n }\n fieldState.validity = fieldState.strategy.validity;\n binderNode[_validity] = fieldState.validity;\n binderNode.value = convertFieldValue(model, fieldState.value);\n if (effect !== undefined) {\n effect.call(element, element);\n }\n };\n\n element.addEventListener('input', updateValueFromElement);\n\n const changeBlurHandler = () => {\n updateValueFromElement();\n binderNode.visited = true;\n };\n\n element.addEventListener('blur', changeBlurHandler);\n element.addEventListener('change', changeBlurHandler);\n }\n\n const { fieldState } = this;\n\n if (fieldState.element !== element || fieldState.model !== model) {\n fieldState.strategy = binderNode.binder.getFieldStrategy(element, model);\n }\n\n const { name } = binderNode;\n if (name !== fieldState.name) {\n fieldState.name = name;\n element.setAttribute('name', name);\n }\n\n const { value } = binderNode;\n const valueFromField = convertFieldValue(model, fieldState.value);\n if (value !== valueFromField && !(Number.isNaN(value) && Number.isNaN(valueFromField))) {\n const nonNanValue = Number.isNaN(value) ? '' : value;\n fieldState.value = nonNanValue;\n fieldState.strategy.value = nonNanValue;\n }\n\n const { required } = binderNode;\n if (required !== fieldState.required) {\n fieldState.required = required;\n fieldState.strategy.required = required;\n }\n\n const firstError: ValueError<any> | undefined = binderNode.ownErrors[0];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const errorMessage = firstError?.message || '';\n if (errorMessage !== fieldState.errorMessage) {\n fieldState.errorMessage = errorMessage;\n fieldState.strategy.errorMessage = errorMessage;\n }\n\n const { invalid } = binderNode;\n if (invalid !== fieldState.invalid) {\n fieldState.invalid = invalid;\n fieldState.strategy.invalid = invalid;\n }\n\n return noChange;\n }\n },\n);\n"],
5
+ "mappings": "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",
6
6
  "names": ["fieldState"]
7
7
  }
package/index.js CHANGED
@@ -2,7 +2,7 @@ function __REGISTER__(feature, vaadinObj = window.Vaadin ??= {}) {
2
2
  vaadinObj.registrations ??= [];
3
3
  vaadinObj.registrations.push({
4
4
  is: feature ? `${"@vaadin/hilla-lit-form"}/${feature}` : "@vaadin/hilla-lit-form",
5
- version: "24.5.0-beta3"
5
+ version: "24.5.0-beta5"
6
6
  });
7
7
  }
8
8
  export * from "./Binder.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/hilla-lit-form",
3
- "version": "24.5.0-beta3",
3
+ "version": "24.5.0-beta5",
4
4
  "description": "Hilla form utils",
5
5
  "main": "index.js",
6
6
  "module": "index.js",
@@ -71,7 +71,7 @@
71
71
  "access": "public"
72
72
  },
73
73
  "dependencies": {
74
- "@vaadin/hilla-frontend": "24.5.0-beta3",
74
+ "@vaadin/hilla-frontend": "24.5.0-beta5",
75
75
  "validator": "^13.11.0"
76
76
  },
77
77
  "peerDependencies": {