@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/node/dev.js
CHANGED
|
@@ -2486,8 +2486,8 @@ var DEFAULT_INDEX = "default";
|
|
|
2486
2486
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
2487
2487
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
2488
2488
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
2489
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
2490
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
2489
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
2490
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
2491
2491
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
2492
2492
|
const hasVariants = variants && variants.length > 0;
|
|
2493
2493
|
if (TARGET === "reactNative")
|
|
@@ -2745,6 +2745,11 @@ var handleABTesting = async ({
|
|
|
2745
2745
|
};
|
|
2746
2746
|
};
|
|
2747
2747
|
|
|
2748
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
2749
|
+
function noSerializeWrapper(fn) {
|
|
2750
|
+
return fn;
|
|
2751
|
+
}
|
|
2752
|
+
|
|
2748
2753
|
// src/helpers/user-attributes.ts
|
|
2749
2754
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
2750
2755
|
function createUserAttributesService() {
|
|
@@ -2775,18 +2780,32 @@ function createUserAttributesService() {
|
|
|
2775
2780
|
canTrack
|
|
2776
2781
|
}) || "{}");
|
|
2777
2782
|
},
|
|
2778
|
-
subscribeOnUserAttributesChange(callback
|
|
2783
|
+
subscribeOnUserAttributesChange(callback, {
|
|
2784
|
+
fireImmediately
|
|
2785
|
+
} = {}) {
|
|
2779
2786
|
subscribers.add(callback);
|
|
2780
|
-
|
|
2787
|
+
if (fireImmediately) {
|
|
2788
|
+
callback(this.getUserAttributes());
|
|
2789
|
+
}
|
|
2790
|
+
return noSerializeWrapper(function() {
|
|
2781
2791
|
subscribers.delete(callback);
|
|
2782
|
-
};
|
|
2792
|
+
});
|
|
2783
2793
|
},
|
|
2784
2794
|
setCanTrack(value) {
|
|
2785
2795
|
canTrack = value;
|
|
2786
2796
|
}
|
|
2787
2797
|
};
|
|
2788
2798
|
}
|
|
2789
|
-
var
|
|
2799
|
+
var _userAttributesService;
|
|
2800
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
2801
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
2802
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
2803
|
+
}
|
|
2804
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
2805
|
+
} else {
|
|
2806
|
+
_userAttributesService = createUserAttributesService();
|
|
2807
|
+
}
|
|
2808
|
+
var userAttributesService = _userAttributesService;
|
|
2790
2809
|
var setClientUserAttributes = (attributes) => {
|
|
2791
2810
|
userAttributesService.setUserAttributes(attributes);
|
|
2792
2811
|
};
|
|
@@ -3642,6 +3661,8 @@ function PersonalizationContainer(props) {
|
|
|
3642
3661
|
setShouldResetVariants(true);
|
|
3643
3662
|
const unsub = userAttributesService.subscribeOnUserAttributesChange((attrs2) => {
|
|
3644
3663
|
setUserAttributes(attrs2);
|
|
3664
|
+
}, {
|
|
3665
|
+
fireImmediately: TARGET === "qwik"
|
|
3645
3666
|
});
|
|
3646
3667
|
if (!(isEditing() || isPreviewing())) {
|
|
3647
3668
|
const variant = filteredVariants()[0];
|
|
@@ -4659,9 +4680,9 @@ function logFetch(url) {
|
|
|
4659
4680
|
}
|
|
4660
4681
|
|
|
4661
4682
|
// src/blocks/form/form/form.tsx
|
|
4662
|
-
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-
|
|
4683
|
+
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-7430044e">`);
|
|
4663
4684
|
var _tmpl$26 = /* @__PURE__ */ template(`<form>`);
|
|
4664
|
-
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-
|
|
4685
|
+
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-7430044e {
|
|
4665
4686
|
padding: 10px;
|
|
4666
4687
|
color: red;
|
|
4667
4688
|
text-align: center;
|
|
@@ -4773,6 +4794,15 @@ function FormComponent(props) {
|
|
|
4773
4794
|
}
|
|
4774
4795
|
}
|
|
4775
4796
|
setFormState("sending");
|
|
4797
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
4798
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
4799
|
+
console.error(message);
|
|
4800
|
+
setFormState("error");
|
|
4801
|
+
mergeNewRootState({
|
|
4802
|
+
formErrorMessage: message
|
|
4803
|
+
});
|
|
4804
|
+
return;
|
|
4805
|
+
}
|
|
4776
4806
|
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 || "")}`;
|
|
4777
4807
|
const url = props.sendSubmissionsTo === "email" ? formUrl : props.action;
|
|
4778
4808
|
logFetch(url);
|
|
@@ -4788,17 +4818,30 @@ function FormComponent(props) {
|
|
|
4788
4818
|
} else {
|
|
4789
4819
|
body2 = await res.text();
|
|
4790
4820
|
}
|
|
4791
|
-
if (!res.ok
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4821
|
+
if (!res.ok) {
|
|
4822
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
4823
|
+
detail: {
|
|
4824
|
+
error: body2,
|
|
4825
|
+
status: res.status
|
|
4796
4826
|
}
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
-
|
|
4800
|
-
|
|
4827
|
+
});
|
|
4828
|
+
if (formRef?.nativeElement) {
|
|
4829
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
4830
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
4831
|
+
return;
|
|
4832
|
+
}
|
|
4833
|
+
}
|
|
4834
|
+
setResponseData(body2);
|
|
4835
|
+
setFormState("error");
|
|
4836
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
4837
|
+
if (typeof message !== "string") {
|
|
4838
|
+
message = JSON.stringify(message);
|
|
4801
4839
|
}
|
|
4840
|
+
setFormErrorMessage(message);
|
|
4841
|
+
mergeNewRootState({
|
|
4842
|
+
formErrorMessage: message
|
|
4843
|
+
});
|
|
4844
|
+
return;
|
|
4802
4845
|
}
|
|
4803
4846
|
setResponseData(body2);
|
|
4804
4847
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -5614,7 +5657,7 @@ function getPreviewContent(_searchParams) {
|
|
|
5614
5657
|
}
|
|
5615
5658
|
|
|
5616
5659
|
// src/constants/sdk-version.ts
|
|
5617
|
-
var SDK_VERSION = "4.0.
|
|
5660
|
+
var SDK_VERSION = "4.0.10";
|
|
5618
5661
|
|
|
5619
5662
|
// src/helpers/sdk-headers.ts
|
|
5620
5663
|
var getSdkHeaders = () => ({
|
package/lib/node/dev.jsx
CHANGED
|
@@ -2247,8 +2247,8 @@ var DEFAULT_INDEX = "default";
|
|
|
2247
2247
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
2248
2248
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
2249
2249
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
2250
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
2251
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
2250
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
2251
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
2252
2252
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
2253
2253
|
const hasVariants = variants && variants.length > 0;
|
|
2254
2254
|
if (TARGET === "reactNative")
|
|
@@ -2506,6 +2506,11 @@ var handleABTesting = async ({
|
|
|
2506
2506
|
};
|
|
2507
2507
|
};
|
|
2508
2508
|
|
|
2509
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
2510
|
+
function noSerializeWrapper(fn) {
|
|
2511
|
+
return fn;
|
|
2512
|
+
}
|
|
2513
|
+
|
|
2509
2514
|
// src/helpers/user-attributes.ts
|
|
2510
2515
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
2511
2516
|
function createUserAttributesService() {
|
|
@@ -2536,18 +2541,32 @@ function createUserAttributesService() {
|
|
|
2536
2541
|
canTrack
|
|
2537
2542
|
}) || "{}");
|
|
2538
2543
|
},
|
|
2539
|
-
subscribeOnUserAttributesChange(callback
|
|
2544
|
+
subscribeOnUserAttributesChange(callback, {
|
|
2545
|
+
fireImmediately
|
|
2546
|
+
} = {}) {
|
|
2540
2547
|
subscribers.add(callback);
|
|
2541
|
-
|
|
2548
|
+
if (fireImmediately) {
|
|
2549
|
+
callback(this.getUserAttributes());
|
|
2550
|
+
}
|
|
2551
|
+
return noSerializeWrapper(function() {
|
|
2542
2552
|
subscribers.delete(callback);
|
|
2543
|
-
};
|
|
2553
|
+
});
|
|
2544
2554
|
},
|
|
2545
2555
|
setCanTrack(value) {
|
|
2546
2556
|
canTrack = value;
|
|
2547
2557
|
}
|
|
2548
2558
|
};
|
|
2549
2559
|
}
|
|
2550
|
-
var
|
|
2560
|
+
var _userAttributesService;
|
|
2561
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
2562
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
2563
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
2564
|
+
}
|
|
2565
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
2566
|
+
} else {
|
|
2567
|
+
_userAttributesService = createUserAttributesService();
|
|
2568
|
+
}
|
|
2569
|
+
var userAttributesService = _userAttributesService;
|
|
2551
2570
|
var setClientUserAttributes = (attributes) => {
|
|
2552
2571
|
userAttributesService.setUserAttributes(attributes);
|
|
2553
2572
|
};
|
|
@@ -3390,6 +3409,9 @@ function PersonalizationContainer(props) {
|
|
|
3390
3409
|
const unsub = userAttributesService.subscribeOnUserAttributesChange(
|
|
3391
3410
|
(attrs2) => {
|
|
3392
3411
|
setUserAttributes(attrs2);
|
|
3412
|
+
},
|
|
3413
|
+
{
|
|
3414
|
+
fireImmediately: TARGET === "qwik"
|
|
3393
3415
|
}
|
|
3394
3416
|
);
|
|
3395
3417
|
if (!(isEditing() || isPreviewing())) {
|
|
@@ -4370,6 +4392,15 @@ function FormComponent(props) {
|
|
|
4370
4392
|
}
|
|
4371
4393
|
}
|
|
4372
4394
|
setFormState("sending");
|
|
4395
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
4396
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
4397
|
+
console.error(message);
|
|
4398
|
+
setFormState("error");
|
|
4399
|
+
mergeNewRootState({
|
|
4400
|
+
formErrorMessage: message
|
|
4401
|
+
});
|
|
4402
|
+
return;
|
|
4403
|
+
}
|
|
4373
4404
|
const formUrl = `${getEnv() === "dev" ? "http://localhost:5000" : "https://builder.io"}/api/v1/form-submit?apiKey=${props.builderContext.apiKey}&to=${btoa(
|
|
4374
4405
|
props.sendSubmissionsToEmail || ""
|
|
4375
4406
|
)}&name=${encodeURIComponent(props.name || "")}`;
|
|
@@ -4388,17 +4419,30 @@ function FormComponent(props) {
|
|
|
4388
4419
|
} else {
|
|
4389
4420
|
body2 = await res.text();
|
|
4390
4421
|
}
|
|
4391
|
-
if (!res.ok
|
|
4392
|
-
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4422
|
+
if (!res.ok) {
|
|
4423
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
4424
|
+
detail: {
|
|
4425
|
+
error: body2,
|
|
4426
|
+
status: res.status
|
|
4427
|
+
}
|
|
4428
|
+
});
|
|
4429
|
+
if (formRef?.nativeElement) {
|
|
4430
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
4431
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
4432
|
+
return;
|
|
4396
4433
|
}
|
|
4397
|
-
setFormErrorMessage(message);
|
|
4398
|
-
mergeNewRootState({
|
|
4399
|
-
formErrorMessage: message
|
|
4400
|
-
});
|
|
4401
4434
|
}
|
|
4435
|
+
setResponseData(body2);
|
|
4436
|
+
setFormState("error");
|
|
4437
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
4438
|
+
if (typeof message !== "string") {
|
|
4439
|
+
message = JSON.stringify(message);
|
|
4440
|
+
}
|
|
4441
|
+
setFormErrorMessage(message);
|
|
4442
|
+
mergeNewRootState({
|
|
4443
|
+
formErrorMessage: message
|
|
4444
|
+
});
|
|
4445
|
+
return;
|
|
4402
4446
|
}
|
|
4403
4447
|
setResponseData(body2);
|
|
4404
4448
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -4477,14 +4521,14 @@ function FormComponent(props) {
|
|
|
4477
4521
|
blocks={props.sendingMessage}
|
|
4478
4522
|
context={props.builderContext}
|
|
4479
4523
|
/></Show12>
|
|
4480
|
-
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-
|
|
4524
|
+
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-7430044e">{JSON.stringify(responseData(), null, 2)}</pre></Show12>
|
|
4481
4525
|
<Show12 when={submissionState() === "success"}><Blocks_default
|
|
4482
4526
|
path="successMessage"
|
|
4483
4527
|
blocks={props.successMessage}
|
|
4484
4528
|
context={props.builderContext}
|
|
4485
4529
|
/></Show12>
|
|
4486
4530
|
</form>
|
|
4487
|
-
<style>{`.pre-
|
|
4531
|
+
<style>{`.pre-7430044e {
|
|
4488
4532
|
padding: 10px;
|
|
4489
4533
|
color: red;
|
|
4490
4534
|
text-align: center;
|
|
@@ -5107,7 +5151,7 @@ function getPreviewContent(_searchParams) {
|
|
|
5107
5151
|
}
|
|
5108
5152
|
|
|
5109
5153
|
// src/constants/sdk-version.ts
|
|
5110
|
-
var SDK_VERSION = "4.0.
|
|
5154
|
+
var SDK_VERSION = "4.0.10";
|
|
5111
5155
|
|
|
5112
5156
|
// src/helpers/sdk-headers.ts
|
|
5113
5157
|
var getSdkHeaders = () => ({
|
package/lib/node/index.js
CHANGED
|
@@ -2476,8 +2476,8 @@ var DEFAULT_INDEX = "default";
|
|
|
2476
2476
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
2477
2477
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
2478
2478
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
2479
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
2480
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
2479
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
2480
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
2481
2481
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
2482
2482
|
const hasVariants = variants && variants.length > 0;
|
|
2483
2483
|
if (TARGET === "reactNative")
|
|
@@ -2735,6 +2735,11 @@ var handleABTesting = async ({
|
|
|
2735
2735
|
};
|
|
2736
2736
|
};
|
|
2737
2737
|
|
|
2738
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
2739
|
+
function noSerializeWrapper(fn) {
|
|
2740
|
+
return fn;
|
|
2741
|
+
}
|
|
2742
|
+
|
|
2738
2743
|
// src/helpers/user-attributes.ts
|
|
2739
2744
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
2740
2745
|
function createUserAttributesService() {
|
|
@@ -2765,18 +2770,32 @@ function createUserAttributesService() {
|
|
|
2765
2770
|
canTrack
|
|
2766
2771
|
}) || "{}");
|
|
2767
2772
|
},
|
|
2768
|
-
subscribeOnUserAttributesChange(callback
|
|
2773
|
+
subscribeOnUserAttributesChange(callback, {
|
|
2774
|
+
fireImmediately
|
|
2775
|
+
} = {}) {
|
|
2769
2776
|
subscribers.add(callback);
|
|
2770
|
-
|
|
2777
|
+
if (fireImmediately) {
|
|
2778
|
+
callback(this.getUserAttributes());
|
|
2779
|
+
}
|
|
2780
|
+
return noSerializeWrapper(function() {
|
|
2771
2781
|
subscribers.delete(callback);
|
|
2772
|
-
};
|
|
2782
|
+
});
|
|
2773
2783
|
},
|
|
2774
2784
|
setCanTrack(value) {
|
|
2775
2785
|
canTrack = value;
|
|
2776
2786
|
}
|
|
2777
2787
|
};
|
|
2778
2788
|
}
|
|
2779
|
-
var
|
|
2789
|
+
var _userAttributesService;
|
|
2790
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
2791
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
2792
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
2793
|
+
}
|
|
2794
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
2795
|
+
} else {
|
|
2796
|
+
_userAttributesService = createUserAttributesService();
|
|
2797
|
+
}
|
|
2798
|
+
var userAttributesService = _userAttributesService;
|
|
2780
2799
|
var setClientUserAttributes = (attributes) => {
|
|
2781
2800
|
userAttributesService.setUserAttributes(attributes);
|
|
2782
2801
|
};
|
|
@@ -3631,6 +3650,8 @@ function PersonalizationContainer(props) {
|
|
|
3631
3650
|
setShouldResetVariants(true);
|
|
3632
3651
|
const unsub = userAttributesService.subscribeOnUserAttributesChange((attrs2) => {
|
|
3633
3652
|
setUserAttributes(attrs2);
|
|
3653
|
+
}, {
|
|
3654
|
+
fireImmediately: TARGET === "qwik"
|
|
3634
3655
|
});
|
|
3635
3656
|
if (!(isEditing() || isPreviewing())) {
|
|
3636
3657
|
const variant = filteredVariants()[0];
|
|
@@ -4648,9 +4669,9 @@ function logFetch(url) {
|
|
|
4648
4669
|
}
|
|
4649
4670
|
|
|
4650
4671
|
// src/blocks/form/form/form.tsx
|
|
4651
|
-
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-
|
|
4672
|
+
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-7430044e">`);
|
|
4652
4673
|
var _tmpl$26 = /* @__PURE__ */ template(`<form>`);
|
|
4653
|
-
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-
|
|
4674
|
+
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-7430044e {
|
|
4654
4675
|
padding: 10px;
|
|
4655
4676
|
color: red;
|
|
4656
4677
|
text-align: center;
|
|
@@ -4762,6 +4783,14 @@ function FormComponent(props) {
|
|
|
4762
4783
|
}
|
|
4763
4784
|
}
|
|
4764
4785
|
setFormState("sending");
|
|
4786
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
4787
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
4788
|
+
setFormState("error");
|
|
4789
|
+
mergeNewRootState({
|
|
4790
|
+
formErrorMessage: message
|
|
4791
|
+
});
|
|
4792
|
+
return;
|
|
4793
|
+
}
|
|
4765
4794
|
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 || "")}`;
|
|
4766
4795
|
const url = props.sendSubmissionsTo === "email" ? formUrl : props.action;
|
|
4767
4796
|
logFetch(url);
|
|
@@ -4777,17 +4806,30 @@ function FormComponent(props) {
|
|
|
4777
4806
|
} else {
|
|
4778
4807
|
body2 = await res.text();
|
|
4779
4808
|
}
|
|
4780
|
-
if (!res.ok
|
|
4781
|
-
|
|
4782
|
-
|
|
4783
|
-
|
|
4784
|
-
|
|
4809
|
+
if (!res.ok) {
|
|
4810
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
4811
|
+
detail: {
|
|
4812
|
+
error: body2,
|
|
4813
|
+
status: res.status
|
|
4785
4814
|
}
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4815
|
+
});
|
|
4816
|
+
if (formRef?.nativeElement) {
|
|
4817
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
4818
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
4819
|
+
return;
|
|
4820
|
+
}
|
|
4821
|
+
}
|
|
4822
|
+
setResponseData(body2);
|
|
4823
|
+
setFormState("error");
|
|
4824
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
4825
|
+
if (typeof message !== "string") {
|
|
4826
|
+
message = JSON.stringify(message);
|
|
4790
4827
|
}
|
|
4828
|
+
setFormErrorMessage(message);
|
|
4829
|
+
mergeNewRootState({
|
|
4830
|
+
formErrorMessage: message
|
|
4831
|
+
});
|
|
4832
|
+
return;
|
|
4791
4833
|
}
|
|
4792
4834
|
setResponseData(body2);
|
|
4793
4835
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -5602,7 +5644,7 @@ function getPreviewContent(_searchParams) {
|
|
|
5602
5644
|
}
|
|
5603
5645
|
|
|
5604
5646
|
// src/constants/sdk-version.ts
|
|
5605
|
-
var SDK_VERSION = "4.0.
|
|
5647
|
+
var SDK_VERSION = "4.0.10";
|
|
5606
5648
|
|
|
5607
5649
|
// src/helpers/sdk-headers.ts
|
|
5608
5650
|
var getSdkHeaders = () => ({
|
package/lib/node/index.jsx
CHANGED
|
@@ -2239,8 +2239,8 @@ var DEFAULT_INDEX = "default";
|
|
|
2239
2239
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
2240
2240
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
2241
2241
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
2242
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
2243
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
2242
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
2243
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
2244
2244
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
2245
2245
|
const hasVariants = variants && variants.length > 0;
|
|
2246
2246
|
if (TARGET === "reactNative")
|
|
@@ -2498,6 +2498,11 @@ var handleABTesting = async ({
|
|
|
2498
2498
|
};
|
|
2499
2499
|
};
|
|
2500
2500
|
|
|
2501
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
2502
|
+
function noSerializeWrapper(fn) {
|
|
2503
|
+
return fn;
|
|
2504
|
+
}
|
|
2505
|
+
|
|
2501
2506
|
// src/helpers/user-attributes.ts
|
|
2502
2507
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
2503
2508
|
function createUserAttributesService() {
|
|
@@ -2528,18 +2533,32 @@ function createUserAttributesService() {
|
|
|
2528
2533
|
canTrack
|
|
2529
2534
|
}) || "{}");
|
|
2530
2535
|
},
|
|
2531
|
-
subscribeOnUserAttributesChange(callback
|
|
2536
|
+
subscribeOnUserAttributesChange(callback, {
|
|
2537
|
+
fireImmediately
|
|
2538
|
+
} = {}) {
|
|
2532
2539
|
subscribers.add(callback);
|
|
2533
|
-
|
|
2540
|
+
if (fireImmediately) {
|
|
2541
|
+
callback(this.getUserAttributes());
|
|
2542
|
+
}
|
|
2543
|
+
return noSerializeWrapper(function() {
|
|
2534
2544
|
subscribers.delete(callback);
|
|
2535
|
-
};
|
|
2545
|
+
});
|
|
2536
2546
|
},
|
|
2537
2547
|
setCanTrack(value) {
|
|
2538
2548
|
canTrack = value;
|
|
2539
2549
|
}
|
|
2540
2550
|
};
|
|
2541
2551
|
}
|
|
2542
|
-
var
|
|
2552
|
+
var _userAttributesService;
|
|
2553
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
2554
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
2555
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
2556
|
+
}
|
|
2557
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
2558
|
+
} else {
|
|
2559
|
+
_userAttributesService = createUserAttributesService();
|
|
2560
|
+
}
|
|
2561
|
+
var userAttributesService = _userAttributesService;
|
|
2543
2562
|
var setClientUserAttributes = (attributes) => {
|
|
2544
2563
|
userAttributesService.setUserAttributes(attributes);
|
|
2545
2564
|
};
|
|
@@ -3381,6 +3400,9 @@ function PersonalizationContainer(props) {
|
|
|
3381
3400
|
const unsub = userAttributesService.subscribeOnUserAttributesChange(
|
|
3382
3401
|
(attrs2) => {
|
|
3383
3402
|
setUserAttributes(attrs2);
|
|
3403
|
+
},
|
|
3404
|
+
{
|
|
3405
|
+
fireImmediately: TARGET === "qwik"
|
|
3384
3406
|
}
|
|
3385
3407
|
);
|
|
3386
3408
|
if (!(isEditing() || isPreviewing())) {
|
|
@@ -4361,6 +4383,14 @@ function FormComponent(props) {
|
|
|
4361
4383
|
}
|
|
4362
4384
|
}
|
|
4363
4385
|
setFormState("sending");
|
|
4386
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
4387
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
4388
|
+
setFormState("error");
|
|
4389
|
+
mergeNewRootState({
|
|
4390
|
+
formErrorMessage: message
|
|
4391
|
+
});
|
|
4392
|
+
return;
|
|
4393
|
+
}
|
|
4364
4394
|
const formUrl = `${getEnv() === "dev" ? "http://localhost:5000" : "https://builder.io"}/api/v1/form-submit?apiKey=${props.builderContext.apiKey}&to=${btoa(
|
|
4365
4395
|
props.sendSubmissionsToEmail || ""
|
|
4366
4396
|
)}&name=${encodeURIComponent(props.name || "")}`;
|
|
@@ -4379,17 +4409,30 @@ function FormComponent(props) {
|
|
|
4379
4409
|
} else {
|
|
4380
4410
|
body2 = await res.text();
|
|
4381
4411
|
}
|
|
4382
|
-
if (!res.ok
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4412
|
+
if (!res.ok) {
|
|
4413
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
4414
|
+
detail: {
|
|
4415
|
+
error: body2,
|
|
4416
|
+
status: res.status
|
|
4417
|
+
}
|
|
4418
|
+
});
|
|
4419
|
+
if (formRef?.nativeElement) {
|
|
4420
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
4421
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
4422
|
+
return;
|
|
4387
4423
|
}
|
|
4388
|
-
setFormErrorMessage(message);
|
|
4389
|
-
mergeNewRootState({
|
|
4390
|
-
formErrorMessage: message
|
|
4391
|
-
});
|
|
4392
4424
|
}
|
|
4425
|
+
setResponseData(body2);
|
|
4426
|
+
setFormState("error");
|
|
4427
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
4428
|
+
if (typeof message !== "string") {
|
|
4429
|
+
message = JSON.stringify(message);
|
|
4430
|
+
}
|
|
4431
|
+
setFormErrorMessage(message);
|
|
4432
|
+
mergeNewRootState({
|
|
4433
|
+
formErrorMessage: message
|
|
4434
|
+
});
|
|
4435
|
+
return;
|
|
4393
4436
|
}
|
|
4394
4437
|
setResponseData(body2);
|
|
4395
4438
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -4468,14 +4511,14 @@ function FormComponent(props) {
|
|
|
4468
4511
|
blocks={props.sendingMessage}
|
|
4469
4512
|
context={props.builderContext}
|
|
4470
4513
|
/></Show12>
|
|
4471
|
-
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-
|
|
4514
|
+
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-7430044e">{JSON.stringify(responseData(), null, 2)}</pre></Show12>
|
|
4472
4515
|
<Show12 when={submissionState() === "success"}><Blocks_default
|
|
4473
4516
|
path="successMessage"
|
|
4474
4517
|
blocks={props.successMessage}
|
|
4475
4518
|
context={props.builderContext}
|
|
4476
4519
|
/></Show12>
|
|
4477
4520
|
</form>
|
|
4478
|
-
<style>{`.pre-
|
|
4521
|
+
<style>{`.pre-7430044e {
|
|
4479
4522
|
padding: 10px;
|
|
4480
4523
|
color: red;
|
|
4481
4524
|
text-align: center;
|
|
@@ -5097,7 +5140,7 @@ function getPreviewContent(_searchParams) {
|
|
|
5097
5140
|
}
|
|
5098
5141
|
|
|
5099
5142
|
// src/constants/sdk-version.ts
|
|
5100
|
-
var SDK_VERSION = "4.0.
|
|
5143
|
+
var SDK_VERSION = "4.0.10";
|
|
5101
5144
|
|
|
5102
5145
|
// src/helpers/sdk-headers.ts
|
|
5103
5146
|
var getSdkHeaders = () => ({
|