@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/browser/dev.js
CHANGED
|
@@ -2317,8 +2317,8 @@ var DEFAULT_INDEX = "default";
|
|
|
2317
2317
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
2318
2318
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
2319
2319
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
2320
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
2321
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
2320
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
2321
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
2322
2322
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
2323
2323
|
const hasVariants = variants && variants.length > 0;
|
|
2324
2324
|
if (TARGET === "reactNative")
|
|
@@ -2576,6 +2576,11 @@ var handleABTesting = async ({
|
|
|
2576
2576
|
};
|
|
2577
2577
|
};
|
|
2578
2578
|
|
|
2579
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
2580
|
+
function noSerializeWrapper(fn) {
|
|
2581
|
+
return fn;
|
|
2582
|
+
}
|
|
2583
|
+
|
|
2579
2584
|
// src/helpers/user-attributes.ts
|
|
2580
2585
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
2581
2586
|
function createUserAttributesService() {
|
|
@@ -2606,18 +2611,32 @@ function createUserAttributesService() {
|
|
|
2606
2611
|
canTrack
|
|
2607
2612
|
}) || "{}");
|
|
2608
2613
|
},
|
|
2609
|
-
subscribeOnUserAttributesChange(callback
|
|
2614
|
+
subscribeOnUserAttributesChange(callback, {
|
|
2615
|
+
fireImmediately
|
|
2616
|
+
} = {}) {
|
|
2610
2617
|
subscribers.add(callback);
|
|
2611
|
-
|
|
2618
|
+
if (fireImmediately) {
|
|
2619
|
+
callback(this.getUserAttributes());
|
|
2620
|
+
}
|
|
2621
|
+
return noSerializeWrapper(function() {
|
|
2612
2622
|
subscribers.delete(callback);
|
|
2613
|
-
};
|
|
2623
|
+
});
|
|
2614
2624
|
},
|
|
2615
2625
|
setCanTrack(value) {
|
|
2616
2626
|
canTrack = value;
|
|
2617
2627
|
}
|
|
2618
2628
|
};
|
|
2619
2629
|
}
|
|
2620
|
-
var
|
|
2630
|
+
var _userAttributesService;
|
|
2631
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
2632
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
2633
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
2634
|
+
}
|
|
2635
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
2636
|
+
} else {
|
|
2637
|
+
_userAttributesService = createUserAttributesService();
|
|
2638
|
+
}
|
|
2639
|
+
var userAttributesService = _userAttributesService;
|
|
2621
2640
|
var setClientUserAttributes = (attributes) => {
|
|
2622
2641
|
userAttributesService.setUserAttributes(attributes);
|
|
2623
2642
|
};
|
|
@@ -3473,6 +3492,8 @@ function PersonalizationContainer(props) {
|
|
|
3473
3492
|
setShouldResetVariants(true);
|
|
3474
3493
|
const unsub = userAttributesService.subscribeOnUserAttributesChange((attrs2) => {
|
|
3475
3494
|
setUserAttributes(attrs2);
|
|
3495
|
+
}, {
|
|
3496
|
+
fireImmediately: TARGET === "qwik"
|
|
3476
3497
|
});
|
|
3477
3498
|
if (!(isEditing() || isPreviewing())) {
|
|
3478
3499
|
const variant = filteredVariants()[0];
|
|
@@ -4490,9 +4511,9 @@ function logFetch(url) {
|
|
|
4490
4511
|
}
|
|
4491
4512
|
|
|
4492
4513
|
// src/blocks/form/form/form.tsx
|
|
4493
|
-
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-
|
|
4514
|
+
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-7430044e">`);
|
|
4494
4515
|
var _tmpl$26 = /* @__PURE__ */ template(`<form>`);
|
|
4495
|
-
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-
|
|
4516
|
+
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-7430044e {
|
|
4496
4517
|
padding: 10px;
|
|
4497
4518
|
color: red;
|
|
4498
4519
|
text-align: center;
|
|
@@ -4604,6 +4625,15 @@ function FormComponent(props) {
|
|
|
4604
4625
|
}
|
|
4605
4626
|
}
|
|
4606
4627
|
setFormState("sending");
|
|
4628
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
4629
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
4630
|
+
console.error(message);
|
|
4631
|
+
setFormState("error");
|
|
4632
|
+
mergeNewRootState({
|
|
4633
|
+
formErrorMessage: message
|
|
4634
|
+
});
|
|
4635
|
+
return;
|
|
4636
|
+
}
|
|
4607
4637
|
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 || "")}`;
|
|
4608
4638
|
const url = props.sendSubmissionsTo === "email" ? formUrl : props.action;
|
|
4609
4639
|
logFetch(url);
|
|
@@ -4619,17 +4649,30 @@ function FormComponent(props) {
|
|
|
4619
4649
|
} else {
|
|
4620
4650
|
body2 = await res.text();
|
|
4621
4651
|
}
|
|
4622
|
-
if (!res.ok
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
|
|
4626
|
-
|
|
4652
|
+
if (!res.ok) {
|
|
4653
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
4654
|
+
detail: {
|
|
4655
|
+
error: body2,
|
|
4656
|
+
status: res.status
|
|
4627
4657
|
}
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
|
|
4658
|
+
});
|
|
4659
|
+
if (formRef?.nativeElement) {
|
|
4660
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
4661
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
4662
|
+
return;
|
|
4663
|
+
}
|
|
4664
|
+
}
|
|
4665
|
+
setResponseData(body2);
|
|
4666
|
+
setFormState("error");
|
|
4667
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
4668
|
+
if (typeof message !== "string") {
|
|
4669
|
+
message = JSON.stringify(message);
|
|
4632
4670
|
}
|
|
4671
|
+
setFormErrorMessage(message);
|
|
4672
|
+
mergeNewRootState({
|
|
4673
|
+
formErrorMessage: message
|
|
4674
|
+
});
|
|
4675
|
+
return;
|
|
4633
4676
|
}
|
|
4634
4677
|
setResponseData(body2);
|
|
4635
4678
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -5445,7 +5488,7 @@ function getPreviewContent(_searchParams) {
|
|
|
5445
5488
|
}
|
|
5446
5489
|
|
|
5447
5490
|
// src/constants/sdk-version.ts
|
|
5448
|
-
var SDK_VERSION = "4.0.
|
|
5491
|
+
var SDK_VERSION = "4.0.10";
|
|
5449
5492
|
|
|
5450
5493
|
// src/helpers/sdk-headers.ts
|
|
5451
5494
|
var getSdkHeaders = () => ({
|
package/lib/browser/dev.jsx
CHANGED
|
@@ -2076,8 +2076,8 @@ var DEFAULT_INDEX = "default";
|
|
|
2076
2076
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
2077
2077
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
2078
2078
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
2079
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
2080
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
2079
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
2080
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
2081
2081
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
2082
2082
|
const hasVariants = variants && variants.length > 0;
|
|
2083
2083
|
if (TARGET === "reactNative")
|
|
@@ -2335,6 +2335,11 @@ var handleABTesting = async ({
|
|
|
2335
2335
|
};
|
|
2336
2336
|
};
|
|
2337
2337
|
|
|
2338
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
2339
|
+
function noSerializeWrapper(fn) {
|
|
2340
|
+
return fn;
|
|
2341
|
+
}
|
|
2342
|
+
|
|
2338
2343
|
// src/helpers/user-attributes.ts
|
|
2339
2344
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
2340
2345
|
function createUserAttributesService() {
|
|
@@ -2365,18 +2370,32 @@ function createUserAttributesService() {
|
|
|
2365
2370
|
canTrack
|
|
2366
2371
|
}) || "{}");
|
|
2367
2372
|
},
|
|
2368
|
-
subscribeOnUserAttributesChange(callback
|
|
2373
|
+
subscribeOnUserAttributesChange(callback, {
|
|
2374
|
+
fireImmediately
|
|
2375
|
+
} = {}) {
|
|
2369
2376
|
subscribers.add(callback);
|
|
2370
|
-
|
|
2377
|
+
if (fireImmediately) {
|
|
2378
|
+
callback(this.getUserAttributes());
|
|
2379
|
+
}
|
|
2380
|
+
return noSerializeWrapper(function() {
|
|
2371
2381
|
subscribers.delete(callback);
|
|
2372
|
-
};
|
|
2382
|
+
});
|
|
2373
2383
|
},
|
|
2374
2384
|
setCanTrack(value) {
|
|
2375
2385
|
canTrack = value;
|
|
2376
2386
|
}
|
|
2377
2387
|
};
|
|
2378
2388
|
}
|
|
2379
|
-
var
|
|
2389
|
+
var _userAttributesService;
|
|
2390
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
2391
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
2392
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
2393
|
+
}
|
|
2394
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
2395
|
+
} else {
|
|
2396
|
+
_userAttributesService = createUserAttributesService();
|
|
2397
|
+
}
|
|
2398
|
+
var userAttributesService = _userAttributesService;
|
|
2380
2399
|
var setClientUserAttributes = (attributes) => {
|
|
2381
2400
|
userAttributesService.setUserAttributes(attributes);
|
|
2382
2401
|
};
|
|
@@ -3219,6 +3238,9 @@ function PersonalizationContainer(props) {
|
|
|
3219
3238
|
const unsub = userAttributesService.subscribeOnUserAttributesChange(
|
|
3220
3239
|
(attrs2) => {
|
|
3221
3240
|
setUserAttributes(attrs2);
|
|
3241
|
+
},
|
|
3242
|
+
{
|
|
3243
|
+
fireImmediately: TARGET === "qwik"
|
|
3222
3244
|
}
|
|
3223
3245
|
);
|
|
3224
3246
|
if (!(isEditing() || isPreviewing())) {
|
|
@@ -4199,6 +4221,15 @@ function FormComponent(props) {
|
|
|
4199
4221
|
}
|
|
4200
4222
|
}
|
|
4201
4223
|
setFormState("sending");
|
|
4224
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
4225
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
4226
|
+
console.error(message);
|
|
4227
|
+
setFormState("error");
|
|
4228
|
+
mergeNewRootState({
|
|
4229
|
+
formErrorMessage: message
|
|
4230
|
+
});
|
|
4231
|
+
return;
|
|
4232
|
+
}
|
|
4202
4233
|
const formUrl = `${getEnv() === "dev" ? "http://localhost:5000" : "https://builder.io"}/api/v1/form-submit?apiKey=${props.builderContext.apiKey}&to=${btoa(
|
|
4203
4234
|
props.sendSubmissionsToEmail || ""
|
|
4204
4235
|
)}&name=${encodeURIComponent(props.name || "")}`;
|
|
@@ -4217,17 +4248,30 @@ function FormComponent(props) {
|
|
|
4217
4248
|
} else {
|
|
4218
4249
|
body2 = await res.text();
|
|
4219
4250
|
}
|
|
4220
|
-
if (!res.ok
|
|
4221
|
-
|
|
4222
|
-
|
|
4223
|
-
|
|
4224
|
-
|
|
4251
|
+
if (!res.ok) {
|
|
4252
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
4253
|
+
detail: {
|
|
4254
|
+
error: body2,
|
|
4255
|
+
status: res.status
|
|
4225
4256
|
}
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4257
|
+
});
|
|
4258
|
+
if (formRef?.nativeElement) {
|
|
4259
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
4260
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
4261
|
+
return;
|
|
4262
|
+
}
|
|
4263
|
+
}
|
|
4264
|
+
setResponseData(body2);
|
|
4265
|
+
setFormState("error");
|
|
4266
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
4267
|
+
if (typeof message !== "string") {
|
|
4268
|
+
message = JSON.stringify(message);
|
|
4230
4269
|
}
|
|
4270
|
+
setFormErrorMessage(message);
|
|
4271
|
+
mergeNewRootState({
|
|
4272
|
+
formErrorMessage: message
|
|
4273
|
+
});
|
|
4274
|
+
return;
|
|
4231
4275
|
}
|
|
4232
4276
|
setResponseData(body2);
|
|
4233
4277
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -4306,14 +4350,14 @@ function FormComponent(props) {
|
|
|
4306
4350
|
blocks={props.sendingMessage}
|
|
4307
4351
|
context={props.builderContext}
|
|
4308
4352
|
/></Show12>
|
|
4309
|
-
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-
|
|
4353
|
+
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-7430044e">{JSON.stringify(responseData(), null, 2)}</pre></Show12>
|
|
4310
4354
|
<Show12 when={submissionState() === "success"}><Blocks_default
|
|
4311
4355
|
path="successMessage"
|
|
4312
4356
|
blocks={props.successMessage}
|
|
4313
4357
|
context={props.builderContext}
|
|
4314
4358
|
/></Show12>
|
|
4315
4359
|
</form>
|
|
4316
|
-
<style>{`.pre-
|
|
4360
|
+
<style>{`.pre-7430044e {
|
|
4317
4361
|
padding: 10px;
|
|
4318
4362
|
color: red;
|
|
4319
4363
|
text-align: center;
|
|
@@ -4936,7 +4980,7 @@ function getPreviewContent(_searchParams) {
|
|
|
4936
4980
|
}
|
|
4937
4981
|
|
|
4938
4982
|
// src/constants/sdk-version.ts
|
|
4939
|
-
var SDK_VERSION = "4.0.
|
|
4983
|
+
var SDK_VERSION = "4.0.10";
|
|
4940
4984
|
|
|
4941
4985
|
// src/helpers/sdk-headers.ts
|
|
4942
4986
|
var getSdkHeaders = () => ({
|
package/lib/browser/index.js
CHANGED
|
@@ -2307,8 +2307,8 @@ var DEFAULT_INDEX = "default";
|
|
|
2307
2307
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
2308
2308
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
2309
2309
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
2310
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
2311
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
2310
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
2311
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
2312
2312
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
2313
2313
|
const hasVariants = variants && variants.length > 0;
|
|
2314
2314
|
if (TARGET === "reactNative")
|
|
@@ -2566,6 +2566,11 @@ var handleABTesting = async ({
|
|
|
2566
2566
|
};
|
|
2567
2567
|
};
|
|
2568
2568
|
|
|
2569
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
2570
|
+
function noSerializeWrapper(fn) {
|
|
2571
|
+
return fn;
|
|
2572
|
+
}
|
|
2573
|
+
|
|
2569
2574
|
// src/helpers/user-attributes.ts
|
|
2570
2575
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
2571
2576
|
function createUserAttributesService() {
|
|
@@ -2596,18 +2601,32 @@ function createUserAttributesService() {
|
|
|
2596
2601
|
canTrack
|
|
2597
2602
|
}) || "{}");
|
|
2598
2603
|
},
|
|
2599
|
-
subscribeOnUserAttributesChange(callback
|
|
2604
|
+
subscribeOnUserAttributesChange(callback, {
|
|
2605
|
+
fireImmediately
|
|
2606
|
+
} = {}) {
|
|
2600
2607
|
subscribers.add(callback);
|
|
2601
|
-
|
|
2608
|
+
if (fireImmediately) {
|
|
2609
|
+
callback(this.getUserAttributes());
|
|
2610
|
+
}
|
|
2611
|
+
return noSerializeWrapper(function() {
|
|
2602
2612
|
subscribers.delete(callback);
|
|
2603
|
-
};
|
|
2613
|
+
});
|
|
2604
2614
|
},
|
|
2605
2615
|
setCanTrack(value) {
|
|
2606
2616
|
canTrack = value;
|
|
2607
2617
|
}
|
|
2608
2618
|
};
|
|
2609
2619
|
}
|
|
2610
|
-
var
|
|
2620
|
+
var _userAttributesService;
|
|
2621
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
2622
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
2623
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
2624
|
+
}
|
|
2625
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
2626
|
+
} else {
|
|
2627
|
+
_userAttributesService = createUserAttributesService();
|
|
2628
|
+
}
|
|
2629
|
+
var userAttributesService = _userAttributesService;
|
|
2611
2630
|
var setClientUserAttributes = (attributes) => {
|
|
2612
2631
|
userAttributesService.setUserAttributes(attributes);
|
|
2613
2632
|
};
|
|
@@ -3462,6 +3481,8 @@ function PersonalizationContainer(props) {
|
|
|
3462
3481
|
setShouldResetVariants(true);
|
|
3463
3482
|
const unsub = userAttributesService.subscribeOnUserAttributesChange((attrs2) => {
|
|
3464
3483
|
setUserAttributes(attrs2);
|
|
3484
|
+
}, {
|
|
3485
|
+
fireImmediately: TARGET === "qwik"
|
|
3465
3486
|
});
|
|
3466
3487
|
if (!(isEditing() || isPreviewing())) {
|
|
3467
3488
|
const variant = filteredVariants()[0];
|
|
@@ -4479,9 +4500,9 @@ function logFetch(url) {
|
|
|
4479
4500
|
}
|
|
4480
4501
|
|
|
4481
4502
|
// src/blocks/form/form/form.tsx
|
|
4482
|
-
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-
|
|
4503
|
+
var _tmpl$15 = /* @__PURE__ */ template(`<pre class="builder-form-error-text pre-7430044e">`);
|
|
4483
4504
|
var _tmpl$26 = /* @__PURE__ */ template(`<form>`);
|
|
4484
|
-
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-
|
|
4505
|
+
var _tmpl$34 = /* @__PURE__ */ template(`<style>.pre-7430044e {
|
|
4485
4506
|
padding: 10px;
|
|
4486
4507
|
color: red;
|
|
4487
4508
|
text-align: center;
|
|
@@ -4593,6 +4614,14 @@ function FormComponent(props) {
|
|
|
4593
4614
|
}
|
|
4594
4615
|
}
|
|
4595
4616
|
setFormState("sending");
|
|
4617
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
4618
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
4619
|
+
setFormState("error");
|
|
4620
|
+
mergeNewRootState({
|
|
4621
|
+
formErrorMessage: message
|
|
4622
|
+
});
|
|
4623
|
+
return;
|
|
4624
|
+
}
|
|
4596
4625
|
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 || "")}`;
|
|
4597
4626
|
const url = props.sendSubmissionsTo === "email" ? formUrl : props.action;
|
|
4598
4627
|
logFetch(url);
|
|
@@ -4608,17 +4637,30 @@ function FormComponent(props) {
|
|
|
4608
4637
|
} else {
|
|
4609
4638
|
body2 = await res.text();
|
|
4610
4639
|
}
|
|
4611
|
-
if (!res.ok
|
|
4612
|
-
|
|
4613
|
-
|
|
4614
|
-
|
|
4615
|
-
|
|
4640
|
+
if (!res.ok) {
|
|
4641
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
4642
|
+
detail: {
|
|
4643
|
+
error: body2,
|
|
4644
|
+
status: res.status
|
|
4616
4645
|
}
|
|
4617
|
-
|
|
4618
|
-
|
|
4619
|
-
|
|
4620
|
-
|
|
4646
|
+
});
|
|
4647
|
+
if (formRef?.nativeElement) {
|
|
4648
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
4649
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
4650
|
+
return;
|
|
4651
|
+
}
|
|
4652
|
+
}
|
|
4653
|
+
setResponseData(body2);
|
|
4654
|
+
setFormState("error");
|
|
4655
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
4656
|
+
if (typeof message !== "string") {
|
|
4657
|
+
message = JSON.stringify(message);
|
|
4621
4658
|
}
|
|
4659
|
+
setFormErrorMessage(message);
|
|
4660
|
+
mergeNewRootState({
|
|
4661
|
+
formErrorMessage: message
|
|
4662
|
+
});
|
|
4663
|
+
return;
|
|
4622
4664
|
}
|
|
4623
4665
|
setResponseData(body2);
|
|
4624
4666
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -5433,7 +5475,7 @@ function getPreviewContent(_searchParams) {
|
|
|
5433
5475
|
}
|
|
5434
5476
|
|
|
5435
5477
|
// src/constants/sdk-version.ts
|
|
5436
|
-
var SDK_VERSION = "4.0.
|
|
5478
|
+
var SDK_VERSION = "4.0.10";
|
|
5437
5479
|
|
|
5438
5480
|
// src/helpers/sdk-headers.ts
|
|
5439
5481
|
var getSdkHeaders = () => ({
|
package/lib/browser/index.jsx
CHANGED
|
@@ -2068,8 +2068,8 @@ var DEFAULT_INDEX = "default";
|
|
|
2068
2068
|
var FILTER_WITH_CUSTOM_TARGETING_SCRIPT_FN_NAME = "filterWithCustomTargeting";
|
|
2069
2069
|
var BUILDER_IO_PERSONALIZATION_SCRIPT_FN_NAME = "builderIoPersonalization";
|
|
2070
2070
|
var UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = "updateVisibilityStylesScript";
|
|
2071
|
-
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte"];
|
|
2072
|
-
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte"];
|
|
2071
|
+
var SDKS_SUPPORTING_PERSONALIZATION = ["react", "vue", "svelte", "qwik"];
|
|
2072
|
+
var SDKS_REQUIRING_RESET_APPROACH = ["vue", "svelte", "qwik"];
|
|
2073
2073
|
function checkShouldRenderVariants(variants, canTrack) {
|
|
2074
2074
|
const hasVariants = variants && variants.length > 0;
|
|
2075
2075
|
if (TARGET === "reactNative")
|
|
@@ -2327,6 +2327,11 @@ var handleABTesting = async ({
|
|
|
2327
2327
|
};
|
|
2328
2328
|
};
|
|
2329
2329
|
|
|
2330
|
+
// src/helpers/no-serialize-wrapper.ts
|
|
2331
|
+
function noSerializeWrapper(fn) {
|
|
2332
|
+
return fn;
|
|
2333
|
+
}
|
|
2334
|
+
|
|
2330
2335
|
// src/helpers/user-attributes.ts
|
|
2331
2336
|
var USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
|
|
2332
2337
|
function createUserAttributesService() {
|
|
@@ -2357,18 +2362,32 @@ function createUserAttributesService() {
|
|
|
2357
2362
|
canTrack
|
|
2358
2363
|
}) || "{}");
|
|
2359
2364
|
},
|
|
2360
|
-
subscribeOnUserAttributesChange(callback
|
|
2365
|
+
subscribeOnUserAttributesChange(callback, {
|
|
2366
|
+
fireImmediately
|
|
2367
|
+
} = {}) {
|
|
2361
2368
|
subscribers.add(callback);
|
|
2362
|
-
|
|
2369
|
+
if (fireImmediately) {
|
|
2370
|
+
callback(this.getUserAttributes());
|
|
2371
|
+
}
|
|
2372
|
+
return noSerializeWrapper(function() {
|
|
2363
2373
|
subscribers.delete(callback);
|
|
2364
|
-
};
|
|
2374
|
+
});
|
|
2365
2375
|
},
|
|
2366
2376
|
setCanTrack(value) {
|
|
2367
2377
|
canTrack = value;
|
|
2368
2378
|
}
|
|
2369
2379
|
};
|
|
2370
2380
|
}
|
|
2371
|
-
var
|
|
2381
|
+
var _userAttributesService;
|
|
2382
|
+
if (isBrowser() && TARGET === "qwik") {
|
|
2383
|
+
if (!window.__BUILDER_USER_ATTRIBUTES_SERVICE__) {
|
|
2384
|
+
window.__BUILDER_USER_ATTRIBUTES_SERVICE__ = createUserAttributesService();
|
|
2385
|
+
}
|
|
2386
|
+
_userAttributesService = window.__BUILDER_USER_ATTRIBUTES_SERVICE__;
|
|
2387
|
+
} else {
|
|
2388
|
+
_userAttributesService = createUserAttributesService();
|
|
2389
|
+
}
|
|
2390
|
+
var userAttributesService = _userAttributesService;
|
|
2372
2391
|
var setClientUserAttributes = (attributes) => {
|
|
2373
2392
|
userAttributesService.setUserAttributes(attributes);
|
|
2374
2393
|
};
|
|
@@ -3210,6 +3229,9 @@ function PersonalizationContainer(props) {
|
|
|
3210
3229
|
const unsub = userAttributesService.subscribeOnUserAttributesChange(
|
|
3211
3230
|
(attrs2) => {
|
|
3212
3231
|
setUserAttributes(attrs2);
|
|
3232
|
+
},
|
|
3233
|
+
{
|
|
3234
|
+
fireImmediately: TARGET === "qwik"
|
|
3213
3235
|
}
|
|
3214
3236
|
);
|
|
3215
3237
|
if (!(isEditing() || isPreviewing())) {
|
|
@@ -4190,6 +4212,14 @@ function FormComponent(props) {
|
|
|
4190
4212
|
}
|
|
4191
4213
|
}
|
|
4192
4214
|
setFormState("sending");
|
|
4215
|
+
if (props.sendSubmissionsTo === "email" && (props.sendSubmissionsToEmail === "your@email.com" || !props.sendSubmissionsToEmail)) {
|
|
4216
|
+
const message = "SubmissionsToEmail is required when sendSubmissionsTo is set to email";
|
|
4217
|
+
setFormState("error");
|
|
4218
|
+
mergeNewRootState({
|
|
4219
|
+
formErrorMessage: message
|
|
4220
|
+
});
|
|
4221
|
+
return;
|
|
4222
|
+
}
|
|
4193
4223
|
const formUrl = `${getEnv() === "dev" ? "http://localhost:5000" : "https://builder.io"}/api/v1/form-submit?apiKey=${props.builderContext.apiKey}&to=${btoa(
|
|
4194
4224
|
props.sendSubmissionsToEmail || ""
|
|
4195
4225
|
)}&name=${encodeURIComponent(props.name || "")}`;
|
|
@@ -4208,17 +4238,30 @@ function FormComponent(props) {
|
|
|
4208
4238
|
} else {
|
|
4209
4239
|
body2 = await res.text();
|
|
4210
4240
|
}
|
|
4211
|
-
if (!res.ok
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4241
|
+
if (!res.ok) {
|
|
4242
|
+
const submitErrorEvent = new CustomEvent("submit:error", {
|
|
4243
|
+
detail: {
|
|
4244
|
+
error: body2,
|
|
4245
|
+
status: res.status
|
|
4216
4246
|
}
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4247
|
+
});
|
|
4248
|
+
if (formRef?.nativeElement) {
|
|
4249
|
+
formRef?.nativeElement.dispatchEvent(submitErrorEvent);
|
|
4250
|
+
if (submitErrorEvent.defaultPrevented) {
|
|
4251
|
+
return;
|
|
4252
|
+
}
|
|
4253
|
+
}
|
|
4254
|
+
setResponseData(body2);
|
|
4255
|
+
setFormState("error");
|
|
4256
|
+
let message = props.errorMessagePath ? get(body2, props.errorMessagePath) : body2.message || body2.error || body2;
|
|
4257
|
+
if (typeof message !== "string") {
|
|
4258
|
+
message = JSON.stringify(message);
|
|
4221
4259
|
}
|
|
4260
|
+
setFormErrorMessage(message);
|
|
4261
|
+
mergeNewRootState({
|
|
4262
|
+
formErrorMessage: message
|
|
4263
|
+
});
|
|
4264
|
+
return;
|
|
4222
4265
|
}
|
|
4223
4266
|
setResponseData(body2);
|
|
4224
4267
|
setFormState(res.ok ? "success" : "error");
|
|
@@ -4297,14 +4340,14 @@ function FormComponent(props) {
|
|
|
4297
4340
|
blocks={props.sendingMessage}
|
|
4298
4341
|
context={props.builderContext}
|
|
4299
4342
|
/></Show12>
|
|
4300
|
-
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-
|
|
4343
|
+
<Show12 when={submissionState() === "error" && responseData()}><pre class="builder-form-error-text pre-7430044e">{JSON.stringify(responseData(), null, 2)}</pre></Show12>
|
|
4301
4344
|
<Show12 when={submissionState() === "success"}><Blocks_default
|
|
4302
4345
|
path="successMessage"
|
|
4303
4346
|
blocks={props.successMessage}
|
|
4304
4347
|
context={props.builderContext}
|
|
4305
4348
|
/></Show12>
|
|
4306
4349
|
</form>
|
|
4307
|
-
<style>{`.pre-
|
|
4350
|
+
<style>{`.pre-7430044e {
|
|
4308
4351
|
padding: 10px;
|
|
4309
4352
|
color: red;
|
|
4310
4353
|
text-align: center;
|
|
@@ -4926,7 +4969,7 @@ function getPreviewContent(_searchParams) {
|
|
|
4926
4969
|
}
|
|
4927
4970
|
|
|
4928
4971
|
// src/constants/sdk-version.ts
|
|
4929
|
-
var SDK_VERSION = "4.0.
|
|
4972
|
+
var SDK_VERSION = "4.0.10";
|
|
4930
4973
|
|
|
4931
4974
|
// src/helpers/sdk-headers.ts
|
|
4932
4975
|
var getSdkHeaders = () => ({
|