@gomusdev/web-components 1.27.1 → 1.28.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.
@@ -15,11 +15,10 @@ export declare class FormDetails {
15
15
  set apiErrors(errors: string[] | Record<string, string[]>);
16
16
  validateForm(): void;
17
17
  validateField(field: Field): void;
18
- addField(field: Field): void;
19
18
  /**
20
19
  * The list of fields associated with form in the config.
21
20
  */
22
- get fields(): readonly Field[];
21
+ get fields(): any[];
23
22
  constructor(formId: string, form: HTMLFormElement);
24
23
  }
25
24
  export declare const setDetails: (host: HTMLElement, details: FormDetails) => void;
@@ -15349,7 +15349,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
15349
15349
  }
15350
15350
  function errors(fields) {
15351
15351
  if (!fields) return 0;
15352
- const ret = fields.filter((f) => f.mounted && f.errors?.length).length;
15352
+ const ret = fields.filter((f) => f.mounted && (f.errors?.length || f.apiErrors?.length)).length;
15353
15353
  return ret;
15354
15354
  }
15355
15355
  function AnnualTicketPersonalizationForm($$anchor, $$props) {
@@ -15513,7 +15513,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
15513
15513
  }
15514
15514
  #fields = /* @__PURE__ */ state(proxy([]));
15515
15515
  #apiErrors = /* @__PURE__ */ state(proxy([]));
15516
- #isValid = /* @__PURE__ */ user_derived(() => errors(get$2(this.#fields)) == 0);
15516
+ #isValid = /* @__PURE__ */ user_derived(() => errors(this.fields) == 0);
15517
15517
  get isValid() {
15518
15518
  return get$2(this.#isValid);
15519
15519
  }
@@ -15534,7 +15534,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
15534
15534
  if (!Number.isNaN(+x) && x.trim() !== "") return +x;
15535
15535
  return x;
15536
15536
  }
15537
- const validFields = get$2(this.#fields).filter((f) => f !== void 0).filter((f) => f.value !== "");
15537
+ const validFields = this.fields.filter((f) => f !== void 0).filter((f) => f.value !== "");
15538
15538
  const ret = Object.fromEntries(validFields.map((f) => [f.apiKey, coerce2(f.value)]));
15539
15539
  return ret;
15540
15540
  }
@@ -15547,7 +15547,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
15547
15547
  * @param {string[] | Record<string, string[]>} errors - Errors passed as an array or an object where keys are API field keys and values are arrays of error messages. If an array is provided, it assigns the errors directly. If an object is provided, it maps the errors to the respective fields based on their API keys.
15548
15548
  */
15549
15549
  set apiErrors(errors2) {
15550
- get$2(this.#fields).forEach((f) => f.apiErrors = []);
15550
+ this.fields.forEach((f) => f.apiErrors = []);
15551
15551
  if (isArray(errors2)) {
15552
15552
  set(this.#apiErrors, errors2, true);
15553
15553
  return;
@@ -15557,6 +15557,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
15557
15557
  return;
15558
15558
  }
15559
15559
  for (const [key, value] of Object.entries(errors2)) {
15560
+ if (key === "full_messages ") continue;
15560
15561
  const field = this.fields.find((f) => f.apiKey === key);
15561
15562
  if (!field) {
15562
15563
  console.error(`(set apiErrors) Field with API key ${key} not found`);
@@ -15566,7 +15567,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
15566
15567
  }
15567
15568
  }
15568
15569
  validateForm() {
15569
- get$2(this.#fields).forEach((f) => this.validateField(f));
15570
+ this.fields.forEach((f) => this.validateField(f));
15570
15571
  }
15571
15572
  validateField(field) {
15572
15573
  field.validate();
@@ -15582,14 +15583,12 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
15582
15583
  }
15583
15584
  }
15584
15585
  }
15585
- addField(field) {
15586
- get$2(this.#fields).push(field);
15587
- }
15588
15586
  /**
15589
15587
  * The list of fields associated with form in the config.
15590
15588
  */
15591
15589
  get fields() {
15592
- return get$2(this.#fields);
15590
+ const parent = this.form.closest("go-form");
15591
+ return Array.from(this.form.querySelectorAll("go-field")).filter((fe) => fe.closest("go-form") === parent).map((fe) => fe.getField?.()).filter((f) => f);
15593
15592
  }
15594
15593
  }
15595
15594
  const KEY$3 = "go-form-details";
@@ -29495,12 +29494,6 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
29495
29494
  let field = /* @__PURE__ */ state(proxy(Forms.createField(key(), required())));
29496
29495
  const _details = getDetails$1($$props.$$host);
29497
29496
  const details = /* @__PURE__ */ user_derived(() => _details.value);
29498
- user_effect(() => {
29499
- if (!get$2(details)) return;
29500
- untrack(() => {
29501
- get$2(details).addField(get$2(field));
29502
- });
29503
- });
29504
29497
  const getField = () => get$2(field);
29505
29498
  let allErrors = /* @__PURE__ */ user_derived(() => get$2(field) ? [...get$2(field).errors, ...get$2(field).apiErrors].map((e) => shop.t(e)) : []);
29506
29499
  let descriptionId = /* @__PURE__ */ user_derived(() => `go-description-${Math.random().toString(36).substring(2, 9)}`);
@@ -29655,7 +29648,13 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
29655
29648
  set(errorsOnSubmit, errors(get$2(details)?.fields), true);
29656
29649
  });
29657
29650
  });
29658
- let errorsRealtime = /* @__PURE__ */ user_derived(() => errors(get$2(details)?.fields));
29651
+ let errorsRealtime = /* @__PURE__ */ state(void 0);
29652
+ setInterval(
29653
+ () => {
29654
+ set(errorsRealtime, errors(get$2(details)?.fields), true);
29655
+ },
29656
+ 100
29657
+ );
29659
29658
  let errorsOnSubmit = /* @__PURE__ */ state(-1);
29660
29659
  let generalApiErrors = /* @__PURE__ */ user_derived(() => get$2(details) && isArray(get$2(details).apiErrors) && get$2(details).apiErrors.length > 0 ? get$2(details).apiErrors : []);
29661
29660
  var fragment = comment();
@@ -15349,7 +15349,7 @@ function formFields(formId) {
15349
15349
  }
15350
15350
  function errors(fields) {
15351
15351
  if (!fields) return 0;
15352
- const ret = fields.filter((f) => f.mounted && f.errors?.length).length;
15352
+ const ret = fields.filter((f) => f.mounted && (f.errors?.length || f.apiErrors?.length)).length;
15353
15353
  return ret;
15354
15354
  }
15355
15355
  function AnnualTicketPersonalizationForm($$anchor, $$props) {
@@ -15513,7 +15513,7 @@ class FormDetails {
15513
15513
  }
15514
15514
  #fields = /* @__PURE__ */ state(proxy([]));
15515
15515
  #apiErrors = /* @__PURE__ */ state(proxy([]));
15516
- #isValid = /* @__PURE__ */ user_derived(() => errors(get$2(this.#fields)) == 0);
15516
+ #isValid = /* @__PURE__ */ user_derived(() => errors(this.fields) == 0);
15517
15517
  get isValid() {
15518
15518
  return get$2(this.#isValid);
15519
15519
  }
@@ -15534,7 +15534,7 @@ class FormDetails {
15534
15534
  if (!Number.isNaN(+x) && x.trim() !== "") return +x;
15535
15535
  return x;
15536
15536
  }
15537
- const validFields = get$2(this.#fields).filter((f) => f !== void 0).filter((f) => f.value !== "");
15537
+ const validFields = this.fields.filter((f) => f !== void 0).filter((f) => f.value !== "");
15538
15538
  const ret = Object.fromEntries(validFields.map((f) => [f.apiKey, coerce2(f.value)]));
15539
15539
  return ret;
15540
15540
  }
@@ -15547,7 +15547,7 @@ class FormDetails {
15547
15547
  * @param {string[] | Record<string, string[]>} errors - Errors passed as an array or an object where keys are API field keys and values are arrays of error messages. If an array is provided, it assigns the errors directly. If an object is provided, it maps the errors to the respective fields based on their API keys.
15548
15548
  */
15549
15549
  set apiErrors(errors2) {
15550
- get$2(this.#fields).forEach((f) => f.apiErrors = []);
15550
+ this.fields.forEach((f) => f.apiErrors = []);
15551
15551
  if (isArray(errors2)) {
15552
15552
  set(this.#apiErrors, errors2, true);
15553
15553
  return;
@@ -15557,6 +15557,7 @@ class FormDetails {
15557
15557
  return;
15558
15558
  }
15559
15559
  for (const [key, value] of Object.entries(errors2)) {
15560
+ if (key === "full_messages ") continue;
15560
15561
  const field = this.fields.find((f) => f.apiKey === key);
15561
15562
  if (!field) {
15562
15563
  console.error(`(set apiErrors) Field with API key ${key} not found`);
@@ -15566,7 +15567,7 @@ class FormDetails {
15566
15567
  }
15567
15568
  }
15568
15569
  validateForm() {
15569
- get$2(this.#fields).forEach((f) => this.validateField(f));
15570
+ this.fields.forEach((f) => this.validateField(f));
15570
15571
  }
15571
15572
  validateField(field) {
15572
15573
  field.validate();
@@ -15582,14 +15583,12 @@ class FormDetails {
15582
15583
  }
15583
15584
  }
15584
15585
  }
15585
- addField(field) {
15586
- get$2(this.#fields).push(field);
15587
- }
15588
15586
  /**
15589
15587
  * The list of fields associated with form in the config.
15590
15588
  */
15591
15589
  get fields() {
15592
- return get$2(this.#fields);
15590
+ const parent = this.form.closest("go-form");
15591
+ return Array.from(this.form.querySelectorAll("go-field")).filter((fe) => fe.closest("go-form") === parent).map((fe) => fe.getField?.()).filter((f) => f);
15593
15592
  }
15594
15593
  }
15595
15594
  const KEY$3 = "go-form-details";
@@ -29495,12 +29494,6 @@ function Field($$anchor, $$props) {
29495
29494
  let field = /* @__PURE__ */ state(proxy(Forms.createField(key(), required())));
29496
29495
  const _details = getDetails$1($$props.$$host);
29497
29496
  const details = /* @__PURE__ */ user_derived(() => _details.value);
29498
- user_effect(() => {
29499
- if (!get$2(details)) return;
29500
- untrack(() => {
29501
- get$2(details).addField(get$2(field));
29502
- });
29503
- });
29504
29497
  const getField = () => get$2(field);
29505
29498
  let allErrors = /* @__PURE__ */ user_derived(() => get$2(field) ? [...get$2(field).errors, ...get$2(field).apiErrors].map((e) => shop.t(e)) : []);
29506
29499
  let descriptionId = /* @__PURE__ */ user_derived(() => `go-description-${Math.random().toString(36).substring(2, 9)}`);
@@ -29655,7 +29648,13 @@ function ErrorsFeedback($$anchor, $$props) {
29655
29648
  set(errorsOnSubmit, errors(get$2(details)?.fields), true);
29656
29649
  });
29657
29650
  });
29658
- let errorsRealtime = /* @__PURE__ */ user_derived(() => errors(get$2(details)?.fields));
29651
+ let errorsRealtime = /* @__PURE__ */ state(void 0);
29652
+ setInterval(
29653
+ () => {
29654
+ set(errorsRealtime, errors(get$2(details)?.fields), true);
29655
+ },
29656
+ 100
29657
+ );
29659
29658
  let errorsOnSubmit = /* @__PURE__ */ state(-1);
29660
29659
  let generalApiErrors = /* @__PURE__ */ user_derived(() => get$2(details) && isArray(get$2(details).apiErrors) && get$2(details).apiErrors.length > 0 ? get$2(details).apiErrors : []);
29661
29660
  var fragment = comment();
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "name": "Giantmonkey GmbH"
5
5
  },
6
6
  "license": "MIT",
7
- "version": "1.27.1",
7
+ "version": "1.28.0",
8
8
  "type": "module",
9
9
  "main": "./dist-js/gomus-webcomponents.iife.js",
10
10
  "module": "./dist-js/gomus-webcomponents.iife.js",