@builder.io/sdk-solid 4.0.9 → 4.0.10
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/lib/browser/dev.js +61 -18
- package/lib/browser/dev.jsx +62 -18
- package/lib/browser/index.js +60 -18
- package/lib/browser/index.jsx +61 -18
- package/lib/edge/dev.js +61 -18
- package/lib/edge/dev.jsx +62 -18
- package/lib/edge/index.js +60 -18
- package/lib/edge/index.jsx +61 -18
- package/lib/node/dev.js +61 -18
- package/lib/node/dev.jsx +62 -18
- package/lib/node/index.js +60 -18
- package/lib/node/index.jsx +61 -18
- package/package.json +1 -1
package/lib/edge/dev.js
CHANGED
|
@@ -5498,8 +5498,8 @@ var DEFAULT_INDEX = "default";
|
|
|
5498
5498
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
5499
5499
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
5500
5500
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
5501
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
5502
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
5501
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
5502
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
5503
5503
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
5504
5504
|
const hasVariants = variants && variants.length > 0;
|
|
5505
5505
|
if (TARGET === "reactNative")
|
|
@@ -5757,6 +5757,11 @@ var handleABTesting = async ({
|
|
|
5757
5757
|
};
|
|
5758
5758
|
};
|
|
5759
5759
|
|
|
5760
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
5761
|
+
function noSerializeWrapper(fn) {
|
|
5762
|
+
return fn;
|
|
5763
|
+
}
|
|
5764
|
+
|
|
5760
5765
|
// src/helpers/user-attributes.ts
|
|
5761
5766
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
5762
5767
|
function createUserAttributesService() {
|
|
@@ -5787,18 +5792,32 @@ function createUserAttributesService() {
|
|
|
5787
5792
|
canTrack
|
|
5788
5793
|
}) || "{}");
|
|
5789
5794
|
},
|
|
5790
|
-
subscribeOnUserAttributesChange(callback
|
|
5795
|
+
subscribeOnUserAttributesChange(callback, {
|
|
5796
|
+
fireImmediately
|
|
5797
|
+
} = {}) {
|
|
5791
5798
|
subscribers.add(callback);
|
|
5792
|
-
|
|
5799
|
+
if (fireImmediately) {
|
|
5800
|
+
callback(this.getUserAttributes());
|
|
5801
|
+
}
|
|
5802
|
+
return noSerializeWrapper(function() {
|
|
5793
5803
|
subscribers.delete(callback);
|
|
5794
|
-
};
|
|
5804
|
+
});
|
|
5795
5805
|
},
|
|
5796
5806
|
setCanTrack(value) {
|
|
5797
5807
|
canTrack = value;
|
|
5798
5808
|
}
|
|
5799
5809
|
};
|
|
5800
5810
|
}
|
|
5801
|
-
var
|
|
5811
|
+
var _userAttributesService;
|
|
5812
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
5813
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
5814
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
5815
|
+
}
|
|
5816
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
5817
|
+
} else {
|
|
5818
|
+
_userAttributesService = createUserAttributesService();
|
|
5819
|
+
}
|
|
5820
|
+
var userAttributesService = _userAttributesService;
|
|
5802
5821
|
var setClientUserAttributes = (attributes) => {
|
|
5803
5822
|
userAttributesService.setUserAttributes(attributes);
|
|
5804
5823
|
};
|
|
@@ -6654,6 +6673,8 @@ function PersonalizationContainer(props) {
|
|
|
6654
6673
|
setShouldResetVariants(true);
|
|
6655
6674
|
const unsub = userAttributesService.subscribeOnUserAttributesChange((attrs2) => {
|
|
6656
6675
|
setUserAttributes(attrs2);
|
|
6676
|
+
}, {
|
|
6677
|
+
fireImmediately: TARGET === "qwik"
|
|
6657
6678
|
});
|
|
6658
6679
|
if (!(isEditing() || isPreviewing())) {
|
|
6659
6680
|
const variant = filteredVariants()[0];
|
|
@@ -7671,9 +7692,9 @@ function logFetch(url) {
|
|
|
7671
7692
|
}
|
|
7672
7693
|
|
|
7673
7694
|
// src/blocks/form/form/form.tsx
|
|
7674
|
-
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-
|
|
7695
|
+
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-7430044e">`);
|
|
7675
7696
|
var _tmpl$26 = /* @__PURE__ */ template(`<form>`);
|
|
7676
|
-
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-
|
|
7697
|
+
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-7430044e {
|
|
7677
7698
|
padding: 10px;
|
|
7678
7699
|
color: red;
|
|
7679
7700
|
text-align: center;
|
|
@@ -7785,6 +7806,15 @@ function FormComponent(props) {
|
|
|
7785
7806
|
}
|
|
7786
7807
|
}
|
|
7787
7808
|
setFormState("sending");
|
|
7809
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
7810
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
7811
|
+
console.error(message);
|
|
7812
|
+
setFormState("error");
|
|
7813
|
+
mergeNewRootState({
|
|
7814
|
+
formErrorMessage: message
|
|
7815
|
+
});
|
|
7816
|
+
return;
|
|
7817
|
+
}
|
|
7788
7818
|
const formUrl = `${getEnv() === "dev" ? "http://localhost:5000" : "https://builder.io"}/api/v1/form-submit?apiKey=${props.builderContext.apiKey}&to=${btoa(props.sendSubmissionsToEmail || "")}&name=${encodeURIComponent(props.name || "")}`;
|
|
7789
7819
|
const url = props.sendSubmissionsTo === "email" ? formUrl : props.action;
|
|
7790
7820
|
logFetch(url);
|
|
@@ -7800,17 +7830,30 @@ function FormComponent(props) {
|
|
|
7800
7830
|
} else {
|
|
7801
7831
|
body2 = await res.text();
|
|
7802
7832
|
}
|
|
7803
|
-
if (!res.ok
|
|
7804
|
-
|
|
7805
|
-
|
|
7806
|
-
|
|
7807
|
-
|
|
7833
|
+
if (!res.ok) {
|
|
7834
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
7835
|
+
detail: {
|
|
7836
|
+
error: body2,
|
|
7837
|
+
status: res.status
|
|
7808
7838
|
}
|
|
7809
|
-
|
|
7810
|
-
|
|
7811
|
-
|
|
7812
|
-
|
|
7839
|
+
});
|
|
7840
|
+
if (formRef?.nativeElement) {
|
|
7841
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
7842
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
7843
|
+
return;
|
|
7844
|
+
}
|
|
7845
|
+
}
|
|
7846
|
+
setResponseData(body2);
|
|
7847
|
+
setFormState("error");
|
|
7848
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
7849
|
+
if (typeof message !== "string") {
|
|
7850
|
+
message = JSON.stringify(message);
|
|
7813
7851
|
}
|
|
7852
|
+
setFormErrorMessage(message);
|
|
7853
|
+
mergeNewRootState({
|
|
7854
|
+
formErrorMessage: message
|
|
7855
|
+
});
|
|
7856
|
+
return;
|
|
7814
7857
|
}
|
|
7815
7858
|
setResponseData(body2);
|
|
7816
7859
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -8626,7 +8669,7 @@ function getPreviewContent(_searchParams) {
|
|
|
8626
8669
|
}
|
|
8627
8670
|
|
|
8628
8671
|
// src/constants/sdk-version.ts
|
|
8629
|
-
var SDK_VERSION = "4.0.
|
|
8672
|
+
var SDK_VERSION = "4.0.10";
|
|
8630
8673
|
|
|
8631
8674
|
// src/helpers/sdk-headers.ts
|
|
8632
8675
|
var getSdkHeaders = () => ({
|
package/lib/edge/dev.jsx
CHANGED
|
@@ -5259,8 +5259,8 @@ var DEFAULT_INDEX = "default";
|
|
|
5259
5259
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
5260
5260
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
5261
5261
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
5262
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
5263
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
5262
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
5263
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
5264
5264
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
5265
5265
|
const hasVariants = variants && variants.length > 0;
|
|
5266
5266
|
if (TARGET === "reactNative")
|
|
@@ -5518,6 +5518,11 @@ var handleABTesting = async ({
|
|
|
5518
5518
|
};
|
|
5519
5519
|
};
|
|
5520
5520
|
|
|
5521
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
5522
|
+
function noSerializeWrapper(fn) {
|
|
5523
|
+
return fn;
|
|
5524
|
+
}
|
|
5525
|
+
|
|
5521
5526
|
// src/helpers/user-attributes.ts
|
|
5522
5527
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
5523
5528
|
function createUserAttributesService() {
|
|
@@ -5548,18 +5553,32 @@ function createUserAttributesService() {
|
|
|
5548
5553
|
canTrack
|
|
5549
5554
|
}) || "{}");
|
|
5550
5555
|
},
|
|
5551
|
-
subscribeOnUserAttributesChange(callback
|
|
5556
|
+
subscribeOnUserAttributesChange(callback, {
|
|
5557
|
+
fireImmediately
|
|
5558
|
+
} = {}) {
|
|
5552
5559
|
subscribers.add(callback);
|
|
5553
|
-
|
|
5560
|
+
if (fireImmediately) {
|
|
5561
|
+
callback(this.getUserAttributes());
|
|
5562
|
+
}
|
|
5563
|
+
return noSerializeWrapper(function() {
|
|
5554
5564
|
subscribers.delete(callback);
|
|
5555
|
-
};
|
|
5565
|
+
});
|
|
5556
5566
|
},
|
|
5557
5567
|
setCanTrack(value) {
|
|
5558
5568
|
canTrack = value;
|
|
5559
5569
|
}
|
|
5560
5570
|
};
|
|
5561
5571
|
}
|
|
5562
|
-
var
|
|
5572
|
+
var _userAttributesService;
|
|
5573
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
5574
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
5575
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
5576
|
+
}
|
|
5577
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
5578
|
+
} else {
|
|
5579
|
+
_userAttributesService = createUserAttributesService();
|
|
5580
|
+
}
|
|
5581
|
+
var userAttributesService = _userAttributesService;
|
|
5563
5582
|
var setClientUserAttributes = (attributes) => {
|
|
5564
5583
|
userAttributesService.setUserAttributes(attributes);
|
|
5565
5584
|
};
|
|
@@ -6402,6 +6421,9 @@ function PersonalizationContainer(props) {
|
|
|
6402
6421
|
const unsub = userAttributesService.subscribeOnUserAttributesChange(
|
|
6403
6422
|
(attrs2) => {
|
|
6404
6423
|
setUserAttributes(attrs2);
|
|
6424
|
+
},
|
|
6425
|
+
{
|
|
6426
|
+
fireImmediately: TARGET === "qwik"
|
|
6405
6427
|
}
|
|
6406
6428
|
);
|
|
6407
6429
|
if (!(isEditing() || isPreviewing())) {
|
|
@@ -7382,6 +7404,15 @@ function FormComponent(props) {
|
|
|
7382
7404
|
}
|
|
7383
7405
|
}
|
|
7384
7406
|
setFormState("sending");
|
|
7407
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
7408
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
7409
|
+
console.error(message);
|
|
7410
|
+
setFormState("error");
|
|
7411
|
+
mergeNewRootState({
|
|
7412
|
+
formErrorMessage: message
|
|
7413
|
+
});
|
|
7414
|
+
return;
|
|
7415
|
+
}
|
|
7385
7416
|
const formUrl = `${getEnv() === "dev" ? "http://localhost:5000" : "https://builder.io"}/api/v1/form-submit?apiKey=${props.builderContext.apiKey}&to=${btoa(
|
|
7386
7417
|
props.sendSubmissionsToEmail || ""
|
|
7387
7418
|
)}&name=${encodeURIComponent(props.name || "")}`;
|
|
@@ -7400,17 +7431,30 @@ function FormComponent(props) {
|
|
|
7400
7431
|
} else {
|
|
7401
7432
|
body2 = await res.text();
|
|
7402
7433
|
}
|
|
7403
|
-
if (!res.ok
|
|
7404
|
-
|
|
7405
|
-
|
|
7406
|
-
|
|
7407
|
-
|
|
7434
|
+
if (!res.ok) {
|
|
7435
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
7436
|
+
detail: {
|
|
7437
|
+
error: body2,
|
|
7438
|
+
status: res.status
|
|
7408
7439
|
}
|
|
7409
|
-
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7440
|
+
});
|
|
7441
|
+
if (formRef?.nativeElement) {
|
|
7442
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
7443
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
7444
|
+
return;
|
|
7445
|
+
}
|
|
7446
|
+
}
|
|
7447
|
+
setResponseData(body2);
|
|
7448
|
+
setFormState("error");
|
|
7449
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
7450
|
+
if (typeof message !== "string") {
|
|
7451
|
+
message = JSON.stringify(message);
|
|
7413
7452
|
}
|
|
7453
|
+
setFormErrorMessage(message);
|
|
7454
|
+
mergeNewRootState({
|
|
7455
|
+
formErrorMessage: message
|
|
7456
|
+
});
|
|
7457
|
+
return;
|
|
7414
7458
|
}
|
|
7415
7459
|
setResponseData(body2);
|
|
7416
7460
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -7489,14 +7533,14 @@ function FormComponent(props) {
|
|
|
7489
7533
|
blocks={props.sendingMessage}
|
|
7490
7534
|
context={props.builderContext}
|
|
7491
7535
|
/></Show12>
|
|
7492
|
-
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-
|
|
7536
|
+
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-7430044e">{JSON.stringify(responseData(), null, 2)}</pre></Show12>
|
|
7493
7537
|
<Show12 when={submissionState() === "success"}><Blocks_default
|
|
7494
7538
|
path="successMessage"
|
|
7495
7539
|
blocks={props.successMessage}
|
|
7496
7540
|
context={props.builderContext}
|
|
7497
7541
|
/></Show12>
|
|
7498
7542
|
</form>
|
|
7499
|
-
<style>{`.pre-
|
|
7543
|
+
<style>{`.pre-7430044e {
|
|
7500
7544
|
padding: 10px;
|
|
7501
7545
|
color: red;
|
|
7502
7546
|
text-align: center;
|
|
@@ -8119,7 +8163,7 @@ function getPreviewContent(_searchParams) {
|
|
|
8119
8163
|
}
|
|
8120
8164
|
|
|
8121
8165
|
// src/constants/sdk-version.ts
|
|
8122
|
-
var SDK_VERSION = "4.0.
|
|
8166
|
+
var SDK_VERSION = "4.0.10";
|
|
8123
8167
|
|
|
8124
8168
|
// src/helpers/sdk-headers.ts
|
|
8125
8169
|
var getSdkHeaders = () => ({
|
package/lib/edge/index.js
CHANGED
|
@@ -5488,8 +5488,8 @@ var DEFAULT_INDEX = "default";
|
|
|
5488
5488
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
5489
5489
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
5490
5490
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
5491
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
5492
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
5491
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
5492
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
5493
5493
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
5494
5494
|
const hasVariants = variants && variants.length > 0;
|
|
5495
5495
|
if (TARGET === "reactNative")
|
|
@@ -5747,6 +5747,11 @@ var handleABTesting = async ({
|
|
|
5747
5747
|
};
|
|
5748
5748
|
};
|
|
5749
5749
|
|
|
5750
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
5751
|
+
function noSerializeWrapper(fn) {
|
|
5752
|
+
return fn;
|
|
5753
|
+
}
|
|
5754
|
+
|
|
5750
5755
|
// src/helpers/user-attributes.ts
|
|
5751
5756
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
5752
5757
|
function createUserAttributesService() {
|
|
@@ -5777,18 +5782,32 @@ function createUserAttributesService() {
|
|
|
5777
5782
|
canTrack
|
|
5778
5783
|
}) || "{}");
|
|
5779
5784
|
},
|
|
5780
|
-
subscribeOnUserAttributesChange(callback
|
|
5785
|
+
subscribeOnUserAttributesChange(callback, {
|
|
5786
|
+
fireImmediately
|
|
5787
|
+
} = {}) {
|
|
5781
5788
|
subscribers.add(callback);
|
|
5782
|
-
|
|
5789
|
+
if (fireImmediately) {
|
|
5790
|
+
callback(this.getUserAttributes());
|
|
5791
|
+
}
|
|
5792
|
+
return noSerializeWrapper(function() {
|
|
5783
5793
|
subscribers.delete(callback);
|
|
5784
|
-
};
|
|
5794
|
+
});
|
|
5785
5795
|
},
|
|
5786
5796
|
setCanTrack(value) {
|
|
5787
5797
|
canTrack = value;
|
|
5788
5798
|
}
|
|
5789
5799
|
};
|
|
5790
5800
|
}
|
|
5791
|
-
var
|
|
5801
|
+
var _userAttributesService;
|
|
5802
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
5803
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
5804
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
5805
|
+
}
|
|
5806
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
5807
|
+
} else {
|
|
5808
|
+
_userAttributesService = createUserAttributesService();
|
|
5809
|
+
}
|
|
5810
|
+
var userAttributesService = _userAttributesService;
|
|
5792
5811
|
var setClientUserAttributes = (attributes) => {
|
|
5793
5812
|
userAttributesService.setUserAttributes(attributes);
|
|
5794
5813
|
};
|
|
@@ -6643,6 +6662,8 @@ function PersonalizationContainer(props) {
|
|
|
6643
6662
|
setShouldResetVariants(true);
|
|
6644
6663
|
const unsub = userAttributesService.subscribeOnUserAttributesChange((attrs2) => {
|
|
6645
6664
|
setUserAttributes(attrs2);
|
|
6665
|
+
}, {
|
|
6666
|
+
fireImmediately: TARGET === "qwik"
|
|
6646
6667
|
});
|
|
6647
6668
|
if (!(isEditing() || isPreviewing())) {
|
|
6648
6669
|
const variant = filteredVariants()[0];
|
|
@@ -7660,9 +7681,9 @@ function logFetch(url) {
|
|
|
7660
7681
|
}
|
|
7661
7682
|
|
|
7662
7683
|
// src/blocks/form/form/form.tsx
|
|
7663
|
-
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-
|
|
7684
|
+
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-7430044e">`);
|
|
7664
7685
|
var _tmpl$26 = /* @__PURE__ */ template(`<form>`);
|
|
7665
|
-
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-
|
|
7686
|
+
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-7430044e {
|
|
7666
7687
|
padding: 10px;
|
|
7667
7688
|
color: red;
|
|
7668
7689
|
text-align: center;
|
|
@@ -7774,6 +7795,14 @@ function FormComponent(props) {
|
|
|
7774
7795
|
}
|
|
7775
7796
|
}
|
|
7776
7797
|
setFormState("sending");
|
|
7798
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
7799
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
7800
|
+
setFormState("error");
|
|
7801
|
+
mergeNewRootState({
|
|
7802
|
+
formErrorMessage: message
|
|
7803
|
+
});
|
|
7804
|
+
return;
|
|
7805
|
+
}
|
|
7777
7806
|
const formUrl = `${getEnv() === "dev" ? "http://localhost:5000" : "https://builder.io"}/api/v1/form-submit?apiKey=${props.builderContext.apiKey}&to=${btoa(props.sendSubmissionsToEmail || "")}&name=${encodeURIComponent(props.name || "")}`;
|
|
7778
7807
|
const url = props.sendSubmissionsTo === "email" ? formUrl : props.action;
|
|
7779
7808
|
logFetch(url);
|
|
@@ -7789,17 +7818,30 @@ function FormComponent(props) {
|
|
|
7789
7818
|
} else {
|
|
7790
7819
|
body2 = await res.text();
|
|
7791
7820
|
}
|
|
7792
|
-
if (!res.ok
|
|
7793
|
-
|
|
7794
|
-
|
|
7795
|
-
|
|
7796
|
-
|
|
7821
|
+
if (!res.ok) {
|
|
7822
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
7823
|
+
detail: {
|
|
7824
|
+
error: body2,
|
|
7825
|
+
status: res.status
|
|
7797
7826
|
}
|
|
7798
|
-
|
|
7799
|
-
|
|
7800
|
-
|
|
7801
|
-
|
|
7827
|
+
});
|
|
7828
|
+
if (formRef?.nativeElement) {
|
|
7829
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
7830
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
7831
|
+
return;
|
|
7832
|
+
}
|
|
7833
|
+
}
|
|
7834
|
+
setResponseData(body2);
|
|
7835
|
+
setFormState("error");
|
|
7836
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
7837
|
+
if (typeof message !== "string") {
|
|
7838
|
+
message = JSON.stringify(message);
|
|
7802
7839
|
}
|
|
7840
|
+
setFormErrorMessage(message);
|
|
7841
|
+
mergeNewRootState({
|
|
7842
|
+
formErrorMessage: message
|
|
7843
|
+
});
|
|
7844
|
+
return;
|
|
7803
7845
|
}
|
|
7804
7846
|
setResponseData(body2);
|
|
7805
7847
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -8614,7 +8656,7 @@ function getPreviewContent(_searchParams) {
|
|
|
8614
8656
|
}
|
|
8615
8657
|
|
|
8616
8658
|
// src/constants/sdk-version.ts
|
|
8617
|
-
var SDK_VERSION = "4.0.
|
|
8659
|
+
var SDK_VERSION = "4.0.10";
|
|
8618
8660
|
|
|
8619
8661
|
// src/helpers/sdk-headers.ts
|
|
8620
8662
|
var getSdkHeaders = () => ({
|
package/lib/edge/index.jsx
CHANGED
|
@@ -5251,8 +5251,8 @@ var DEFAULT_INDEX = "default";
|
|
|
5251
5251
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
5252
5252
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
5253
5253
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
5254
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
5255
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
5254
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
5255
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
5256
5256
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
5257
5257
|
const hasVariants = variants && variants.length > 0;
|
|
5258
5258
|
if (TARGET === "reactNative")
|
|
@@ -5510,6 +5510,11 @@ var handleABTesting = async ({
|
|
|
5510
5510
|
};
|
|
5511
5511
|
};
|
|
5512
5512
|
|
|
5513
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
5514
|
+
function noSerializeWrapper(fn) {
|
|
5515
|
+
return fn;
|
|
5516
|
+
}
|
|
5517
|
+
|
|
5513
5518
|
// src/helpers/user-attributes.ts
|
|
5514
5519
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
5515
5520
|
function createUserAttributesService() {
|
|
@@ -5540,18 +5545,32 @@ function createUserAttributesService() {
|
|
|
5540
5545
|
canTrack
|
|
5541
5546
|
}) || "{}");
|
|
5542
5547
|
},
|
|
5543
|
-
subscribeOnUserAttributesChange(callback
|
|
5548
|
+
subscribeOnUserAttributesChange(callback, {
|
|
5549
|
+
fireImmediately
|
|
5550
|
+
} = {}) {
|
|
5544
5551
|
subscribers.add(callback);
|
|
5545
|
-
|
|
5552
|
+
if (fireImmediately) {
|
|
5553
|
+
callback(this.getUserAttributes());
|
|
5554
|
+
}
|
|
5555
|
+
return noSerializeWrapper(function() {
|
|
5546
5556
|
subscribers.delete(callback);
|
|
5547
|
-
};
|
|
5557
|
+
});
|
|
5548
5558
|
},
|
|
5549
5559
|
setCanTrack(value) {
|
|
5550
5560
|
canTrack = value;
|
|
5551
5561
|
}
|
|
5552
5562
|
};
|
|
5553
5563
|
}
|
|
5554
|
-
var
|
|
5564
|
+
var _userAttributesService;
|
|
5565
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
5566
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
5567
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
5568
|
+
}
|
|
5569
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
5570
|
+
} else {
|
|
5571
|
+
_userAttributesService = createUserAttributesService();
|
|
5572
|
+
}
|
|
5573
|
+
var userAttributesService = _userAttributesService;
|
|
5555
5574
|
var setClientUserAttributes = (attributes) => {
|
|
5556
5575
|
userAttributesService.setUserAttributes(attributes);
|
|
5557
5576
|
};
|
|
@@ -6393,6 +6412,9 @@ function PersonalizationContainer(props) {
|
|
|
6393
6412
|
const unsub = userAttributesService.subscribeOnUserAttributesChange(
|
|
6394
6413
|
(attrs2) => {
|
|
6395
6414
|
setUserAttributes(attrs2);
|
|
6415
|
+
},
|
|
6416
|
+
{
|
|
6417
|
+
fireImmediately: TARGET === "qwik"
|
|
6396
6418
|
}
|
|
6397
6419
|
);
|
|
6398
6420
|
if (!(isEditing() || isPreviewing())) {
|
|
@@ -7373,6 +7395,14 @@ function FormComponent(props) {
|
|
|
7373
7395
|
}
|
|
7374
7396
|
}
|
|
7375
7397
|
setFormState("sending");
|
|
7398
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
7399
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
7400
|
+
setFormState("error");
|
|
7401
|
+
mergeNewRootState({
|
|
7402
|
+
formErrorMessage: message
|
|
7403
|
+
});
|
|
7404
|
+
return;
|
|
7405
|
+
}
|
|
7376
7406
|
const formUrl = `${getEnv() === "dev" ? "http://localhost:5000" : "https://builder.io"}/api/v1/form-submit?apiKey=${props.builderContext.apiKey}&to=${btoa(
|
|
7377
7407
|
props.sendSubmissionsToEmail || ""
|
|
7378
7408
|
)}&name=${encodeURIComponent(props.name || "")}`;
|
|
@@ -7391,17 +7421,30 @@ function FormComponent(props) {
|
|
|
7391
7421
|
} else {
|
|
7392
7422
|
body2 = await res.text();
|
|
7393
7423
|
}
|
|
7394
|
-
if (!res.ok
|
|
7395
|
-
|
|
7396
|
-
|
|
7397
|
-
|
|
7398
|
-
|
|
7424
|
+
if (!res.ok) {
|
|
7425
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
7426
|
+
detail: {
|
|
7427
|
+
error: body2,
|
|
7428
|
+
status: res.status
|
|
7399
7429
|
}
|
|
7400
|
-
|
|
7401
|
-
|
|
7402
|
-
|
|
7403
|
-
|
|
7430
|
+
});
|
|
7431
|
+
if (formRef?.nativeElement) {
|
|
7432
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
7433
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
7434
|
+
return;
|
|
7435
|
+
}
|
|
7436
|
+
}
|
|
7437
|
+
setResponseData(body2);
|
|
7438
|
+
setFormState("error");
|
|
7439
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
7440
|
+
if (typeof message !== "string") {
|
|
7441
|
+
message = JSON.stringify(message);
|
|
7404
7442
|
}
|
|
7443
|
+
setFormErrorMessage(message);
|
|
7444
|
+
mergeNewRootState({
|
|
7445
|
+
formErrorMessage: message
|
|
7446
|
+
});
|
|
7447
|
+
return;
|
|
7405
7448
|
}
|
|
7406
7449
|
setResponseData(body2);
|
|
7407
7450
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -7480,14 +7523,14 @@ function FormComponent(props) {
|
|
|
7480
7523
|
blocks={props.sendingMessage}
|
|
7481
7524
|
context={props.builderContext}
|
|
7482
7525
|
/></Show12>
|
|
7483
|
-
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-
|
|
7526
|
+
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-7430044e">{JSON.stringify(responseData(), null, 2)}</pre></Show12>
|
|
7484
7527
|
<Show12 when={submissionState() === "success"}><Blocks_default
|
|
7485
7528
|
path="successMessage"
|
|
7486
7529
|
blocks={props.successMessage}
|
|
7487
7530
|
context={props.builderContext}
|
|
7488
7531
|
/></Show12>
|
|
7489
7532
|
</form>
|
|
7490
|
-
<style>{`.pre-
|
|
7533
|
+
<style>{`.pre-7430044e {
|
|
7491
7534
|
padding: 10px;
|
|
7492
7535
|
color: red;
|
|
7493
7536
|
text-align: center;
|
|
@@ -8109,7 +8152,7 @@ function getPreviewContent(_searchParams) {
|
|
|
8109
8152
|
}
|
|
8110
8153
|
|
|
8111
8154
|
// src/constants/sdk-version.ts
|
|
8112
|
-
var SDK_VERSION = "4.0.
|
|
8155
|
+
var SDK_VERSION = "4.0.10";
|
|
8113
8156
|
|
|
8114
8157
|
// src/helpers/sdk-headers.ts
|
|
8115
8158
|
var getSdkHeaders = () => ({
|