@feelflow/ffid-sdk 2.6.0 → 2.8.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.
- package/dist/{chunk-ZORI5YFR.cjs → chunk-GB5OHEVY.cjs} +533 -1
- package/dist/{chunk-7FEWA2P2.js → chunk-SR4UAQ3C.js} +532 -2
- package/dist/components/index.cjs +11 -7
- package/dist/components/index.d.cts +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +1 -1
- package/dist/{index-p4dJw3qR.d.cts → index-BBAzyBFG.d.cts} +58 -1
- package/dist/{index-p4dJw3qR.d.ts → index-BBAzyBFG.d.ts} +58 -1
- package/dist/index.cjs +34 -22
- package/dist/index.d.cts +126 -3
- package/dist/index.d.ts +126 -3
- package/dist/index.js +6 -3
- package/dist/server/index.cjs +176 -1
- package/dist/server/index.d.cts +98 -0
- package/dist/server/index.d.ts +98 -0
- package/dist/server/index.js +176 -1
- package/package.json +1 -1
|
@@ -621,7 +621,7 @@ function createMembersMethods(deps) {
|
|
|
621
621
|
}
|
|
622
622
|
|
|
623
623
|
// src/client/version-check.ts
|
|
624
|
-
var SDK_VERSION = "2.
|
|
624
|
+
var SDK_VERSION = "2.8.0";
|
|
625
625
|
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
626
626
|
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
627
627
|
function sdkHeaders() {
|
|
@@ -1565,6 +1565,168 @@ function createContractWizardMethods(deps) {
|
|
|
1565
1565
|
};
|
|
1566
1566
|
}
|
|
1567
1567
|
|
|
1568
|
+
// src/newsletter/ffid-newsletter-client.ts
|
|
1569
|
+
var EXT_SUBSCRIBE_ENDPOINT2 = "/api/v1/ext/newsletter/subscribe";
|
|
1570
|
+
var CONFIRM_ENDPOINT = "/api/newsletter/confirm";
|
|
1571
|
+
var UNSUBSCRIBE_ENDPOINT = "/api/newsletter/unsubscribe";
|
|
1572
|
+
function trimOrEmpty(s) {
|
|
1573
|
+
return typeof s === "string" ? s.trim() : "";
|
|
1574
|
+
}
|
|
1575
|
+
async function postPublic(url, init, opts) {
|
|
1576
|
+
let response;
|
|
1577
|
+
try {
|
|
1578
|
+
response = await fetch(url, init);
|
|
1579
|
+
} catch (err) {
|
|
1580
|
+
return {
|
|
1581
|
+
error: opts.createError(
|
|
1582
|
+
"NETWORK_ERROR",
|
|
1583
|
+
err instanceof Error ? err.message : "\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F"
|
|
1584
|
+
)
|
|
1585
|
+
};
|
|
1586
|
+
}
|
|
1587
|
+
if (!response.ok) {
|
|
1588
|
+
try {
|
|
1589
|
+
const body = await response.json();
|
|
1590
|
+
if (body?.error?.code || body?.error?.message) {
|
|
1591
|
+
return {
|
|
1592
|
+
error: opts.createError(
|
|
1593
|
+
body.error.code ?? "UNKNOWN_ERROR",
|
|
1594
|
+
body.error.message ?? `${opts.fallbackMessage} (status: ${response.status})`
|
|
1595
|
+
)
|
|
1596
|
+
};
|
|
1597
|
+
}
|
|
1598
|
+
} catch {
|
|
1599
|
+
}
|
|
1600
|
+
return {
|
|
1601
|
+
error: opts.createError(
|
|
1602
|
+
"NETWORK_ERROR",
|
|
1603
|
+
`${opts.fallbackMessage} (status: ${response.status})`
|
|
1604
|
+
)
|
|
1605
|
+
};
|
|
1606
|
+
}
|
|
1607
|
+
return { data: opts.success };
|
|
1608
|
+
}
|
|
1609
|
+
function createNewsletterMethods(deps) {
|
|
1610
|
+
const { fetchWithAuth, baseUrl, createError } = deps;
|
|
1611
|
+
async function subscribe(params) {
|
|
1612
|
+
const email = trimOrEmpty(params.email);
|
|
1613
|
+
const source = trimOrEmpty(params.source);
|
|
1614
|
+
if (!email) {
|
|
1615
|
+
return { error: createError("VALIDATION_ERROR", "email \u306F\u5FC5\u9808\u3067\u3059") };
|
|
1616
|
+
}
|
|
1617
|
+
if (!source) {
|
|
1618
|
+
return { error: createError("VALIDATION_ERROR", "source \u306F\u5FC5\u9808\u3067\u3059") };
|
|
1619
|
+
}
|
|
1620
|
+
if (!Array.isArray(params.types) || params.types.length === 0) {
|
|
1621
|
+
return {
|
|
1622
|
+
error: createError(
|
|
1623
|
+
"VALIDATION_ERROR",
|
|
1624
|
+
"types \u306B\u306F1\u3064\u4EE5\u4E0A\u306E newsletter \u7A2E\u5225\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"
|
|
1625
|
+
)
|
|
1626
|
+
};
|
|
1627
|
+
}
|
|
1628
|
+
return fetchWithAuth(
|
|
1629
|
+
EXT_SUBSCRIBE_ENDPOINT2,
|
|
1630
|
+
{
|
|
1631
|
+
method: "POST",
|
|
1632
|
+
body: JSON.stringify({
|
|
1633
|
+
email,
|
|
1634
|
+
types: params.types,
|
|
1635
|
+
source,
|
|
1636
|
+
locale: params.locale
|
|
1637
|
+
})
|
|
1638
|
+
}
|
|
1639
|
+
);
|
|
1640
|
+
}
|
|
1641
|
+
async function confirm(params) {
|
|
1642
|
+
const token = trimOrEmpty(params.token);
|
|
1643
|
+
if (!token) {
|
|
1644
|
+
return { error: createError("VALIDATION_ERROR", "token \u306F\u5FC5\u9808\u3067\u3059") };
|
|
1645
|
+
}
|
|
1646
|
+
return postPublic(
|
|
1647
|
+
`${baseUrl}${CONFIRM_ENDPOINT}`,
|
|
1648
|
+
{
|
|
1649
|
+
method: "POST",
|
|
1650
|
+
headers: { "Content-Type": "application/json" },
|
|
1651
|
+
body: JSON.stringify({ token })
|
|
1652
|
+
},
|
|
1653
|
+
{
|
|
1654
|
+
success: { ok: true },
|
|
1655
|
+
createError,
|
|
1656
|
+
fallbackMessage: "\u78BA\u8A8D\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u5931\u6557\u3057\u307E\u3057\u305F"
|
|
1657
|
+
}
|
|
1658
|
+
);
|
|
1659
|
+
}
|
|
1660
|
+
async function unsubscribe(params) {
|
|
1661
|
+
const token = trimOrEmpty(params.token);
|
|
1662
|
+
if (!token) {
|
|
1663
|
+
return { error: createError("VALIDATION_ERROR", "token \u306F\u5FC5\u9808\u3067\u3059") };
|
|
1664
|
+
}
|
|
1665
|
+
const url = new URL(`${baseUrl}${UNSUBSCRIBE_ENDPOINT}`);
|
|
1666
|
+
url.searchParams.set("token", token);
|
|
1667
|
+
return postPublic(
|
|
1668
|
+
url.toString(),
|
|
1669
|
+
{ method: "POST" },
|
|
1670
|
+
{
|
|
1671
|
+
success: { ok: true },
|
|
1672
|
+
createError,
|
|
1673
|
+
fallbackMessage: "\u89E3\u9664\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u5931\u6557\u3057\u307E\u3057\u305F"
|
|
1674
|
+
}
|
|
1675
|
+
);
|
|
1676
|
+
}
|
|
1677
|
+
return { subscribe, confirm, unsubscribe };
|
|
1678
|
+
}
|
|
1679
|
+
|
|
1680
|
+
// src/inquiry/ffid-inquiry-client.ts
|
|
1681
|
+
var EXT_INQUIRY_ENDPOINT = "/api/v1/ext/inquiry";
|
|
1682
|
+
function trimOrEmpty2(s) {
|
|
1683
|
+
return typeof s === "string" ? s.trim() : "";
|
|
1684
|
+
}
|
|
1685
|
+
function createInquiryMethods(deps) {
|
|
1686
|
+
const { fetchWithAuth, createError } = deps;
|
|
1687
|
+
async function create(params) {
|
|
1688
|
+
const email = trimOrEmpty2(params.email);
|
|
1689
|
+
const name = trimOrEmpty2(params.name);
|
|
1690
|
+
const message = trimOrEmpty2(params.message);
|
|
1691
|
+
const termsVersion = trimOrEmpty2(params.termsVersion);
|
|
1692
|
+
const privacyVersion = trimOrEmpty2(params.privacyVersion);
|
|
1693
|
+
if (!email) return { error: createError("VALIDATION_ERROR", "email \u306F\u5FC5\u9808\u3067\u3059") };
|
|
1694
|
+
if (!name) return { error: createError("VALIDATION_ERROR", "name \u306F\u5FC5\u9808\u3067\u3059") };
|
|
1695
|
+
if (!message) return { error: createError("VALIDATION_ERROR", "message \u306F\u5FC5\u9808\u3067\u3059") };
|
|
1696
|
+
if (!termsVersion) {
|
|
1697
|
+
return { error: createError("VALIDATION_ERROR", "termsVersion \u306F\u5FC5\u9808\u3067\u3059") };
|
|
1698
|
+
}
|
|
1699
|
+
if (!privacyVersion) {
|
|
1700
|
+
return { error: createError("VALIDATION_ERROR", "privacyVersion \u306F\u5FC5\u9808\u3067\u3059") };
|
|
1701
|
+
}
|
|
1702
|
+
const inquiryFollowupOptIn = params.inquiryFollowupOptIn === true;
|
|
1703
|
+
const generalNewsletterOptIn = params.generalNewsletterOptIn === true;
|
|
1704
|
+
return fetchWithAuth(EXT_INQUIRY_ENDPOINT, {
|
|
1705
|
+
method: "POST",
|
|
1706
|
+
body: JSON.stringify({
|
|
1707
|
+
email,
|
|
1708
|
+
name,
|
|
1709
|
+
message,
|
|
1710
|
+
category: params.category,
|
|
1711
|
+
company: params.company,
|
|
1712
|
+
phone: params.phone,
|
|
1713
|
+
locale: params.locale,
|
|
1714
|
+
termsVersion,
|
|
1715
|
+
privacyVersion,
|
|
1716
|
+
// The ext endpoint still accepts the legacy single-flag field, but
|
|
1717
|
+
// the SDK always submits the 2-layer model. `newsletterOptIn` is
|
|
1718
|
+
// passed as the union of the two new flags only to satisfy the
|
|
1719
|
+
// current schema's required bool — the server preferentially
|
|
1720
|
+
// reads `inquiryFollowupOptIn` / `generalNewsletterOptIn`.
|
|
1721
|
+
newsletterOptIn: inquiryFollowupOptIn || generalNewsletterOptIn,
|
|
1722
|
+
inquiryFollowupOptIn,
|
|
1723
|
+
generalNewsletterOptIn
|
|
1724
|
+
})
|
|
1725
|
+
});
|
|
1726
|
+
}
|
|
1727
|
+
return { create };
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1568
1730
|
// src/client/ffid-client.ts
|
|
1569
1731
|
var UNAUTHORIZED_STATUS2 = 401;
|
|
1570
1732
|
var SDK_LOG_PREFIX = "[FFID SDK]";
|
|
@@ -1840,6 +2002,15 @@ function createFFIDClient(config) {
|
|
|
1840
2002
|
createError,
|
|
1841
2003
|
errorCodes: FFID_ERROR_CODES
|
|
1842
2004
|
});
|
|
2005
|
+
const newsletter = createNewsletterMethods({
|
|
2006
|
+
fetchWithAuth,
|
|
2007
|
+
baseUrl,
|
|
2008
|
+
createError
|
|
2009
|
+
});
|
|
2010
|
+
const inquiry = createInquiryMethods({
|
|
2011
|
+
fetchWithAuth,
|
|
2012
|
+
createError
|
|
2013
|
+
});
|
|
1843
2014
|
const verifyAccessToken = createVerifyAccessToken({
|
|
1844
2015
|
authMode,
|
|
1845
2016
|
baseUrl,
|
|
@@ -1894,6 +2065,10 @@ function createFFIDClient(config) {
|
|
|
1894
2065
|
confirmPasswordReset,
|
|
1895
2066
|
sendOtp,
|
|
1896
2067
|
verifyOtp,
|
|
2068
|
+
/** Newsletter methods (subscribe / confirm / unsubscribe) */
|
|
2069
|
+
newsletter,
|
|
2070
|
+
/** Inquiry methods (create) */
|
|
2071
|
+
inquiry,
|
|
1897
2072
|
/** Token store (token mode only) */
|
|
1898
2073
|
tokenStore,
|
|
1899
2074
|
/** Resolved auth mode */
|
|
@@ -3238,15 +3413,372 @@ function FFIDAnnouncementList({
|
|
|
3238
3413
|
);
|
|
3239
3414
|
}
|
|
3240
3415
|
|
|
3416
|
+
// src/inquiry/types.ts
|
|
3417
|
+
var FFID_INQUIRY_CATEGORIES = [
|
|
3418
|
+
"general",
|
|
3419
|
+
"sales",
|
|
3420
|
+
"support",
|
|
3421
|
+
"partnership",
|
|
3422
|
+
"press",
|
|
3423
|
+
"other"
|
|
3424
|
+
];
|
|
3425
|
+
var DEFAULT_CATEGORY_LABELS_JA = {
|
|
3426
|
+
general: "\u4E00\u822C\u7684\u306A\u304A\u554F\u3044\u5408\u308F\u305B",
|
|
3427
|
+
sales: "\u3054\u5C0E\u5165\u30FB\u304A\u898B\u7A4D\u3082\u308A",
|
|
3428
|
+
support: "\u30B5\u30DD\u30FC\u30C8",
|
|
3429
|
+
partnership: "\u30D1\u30FC\u30C8\u30CA\u30FC\u30B7\u30C3\u30D7",
|
|
3430
|
+
press: "\u53D6\u6750\u30FB\u30D7\u30EC\u30B9",
|
|
3431
|
+
other: "\u305D\u306E\u4ED6"
|
|
3432
|
+
};
|
|
3433
|
+
function defaultCategories() {
|
|
3434
|
+
return FFID_INQUIRY_CATEGORIES.map((value) => ({
|
|
3435
|
+
value,
|
|
3436
|
+
label: DEFAULT_CATEGORY_LABELS_JA[value]
|
|
3437
|
+
}));
|
|
3438
|
+
}
|
|
3439
|
+
var labelStyle = {
|
|
3440
|
+
display: "block",
|
|
3441
|
+
fontSize: FONT_SIZE_SM,
|
|
3442
|
+
fontWeight: 500,
|
|
3443
|
+
marginBottom: SPACING_SM
|
|
3444
|
+
};
|
|
3445
|
+
var inputStyle = {
|
|
3446
|
+
width: "100%",
|
|
3447
|
+
padding: `${SPACING_SM}px ${SPACING_MD}px`,
|
|
3448
|
+
fontSize: FONT_SIZE_SM,
|
|
3449
|
+
border: BORDER_DEFAULT,
|
|
3450
|
+
borderRadius: BORDER_RADIUS_SM,
|
|
3451
|
+
background: COLOR_BG_WHITE,
|
|
3452
|
+
boxSizing: "border-box"
|
|
3453
|
+
};
|
|
3454
|
+
var readOnlyStyle = {
|
|
3455
|
+
...inputStyle,
|
|
3456
|
+
background: "#f9fafb",
|
|
3457
|
+
color: COLOR_TEXT_MUTED,
|
|
3458
|
+
cursor: "not-allowed"
|
|
3459
|
+
};
|
|
3460
|
+
var fieldsetStyle = {
|
|
3461
|
+
marginBottom: SPACING_LG
|
|
3462
|
+
};
|
|
3463
|
+
var errorTextStyle = {
|
|
3464
|
+
fontSize: FONT_SIZE_XS,
|
|
3465
|
+
color: COLOR_DANGER,
|
|
3466
|
+
marginTop: SPACING_XS
|
|
3467
|
+
};
|
|
3468
|
+
var submitButtonStyle = {
|
|
3469
|
+
padding: `${SPACING_MD}px ${SPACING_LG}px`,
|
|
3470
|
+
fontSize: FONT_SIZE_SM,
|
|
3471
|
+
fontWeight: 600,
|
|
3472
|
+
color: COLOR_BG_WHITE,
|
|
3473
|
+
background: COLOR_PRIMARY,
|
|
3474
|
+
border: "none",
|
|
3475
|
+
borderRadius: BORDER_RADIUS_MD,
|
|
3476
|
+
cursor: "pointer"
|
|
3477
|
+
};
|
|
3478
|
+
function FFIDInquiryForm({
|
|
3479
|
+
mode,
|
|
3480
|
+
prefill,
|
|
3481
|
+
organizations = [],
|
|
3482
|
+
preselectedOrganizationId,
|
|
3483
|
+
categories,
|
|
3484
|
+
termsVersion,
|
|
3485
|
+
privacyVersion,
|
|
3486
|
+
termsHref,
|
|
3487
|
+
privacyHref,
|
|
3488
|
+
turnstileToken = null,
|
|
3489
|
+
turnstileSlot,
|
|
3490
|
+
onSubmit,
|
|
3491
|
+
locale = "ja",
|
|
3492
|
+
className
|
|
3493
|
+
}) {
|
|
3494
|
+
const isAuth = mode === "authenticated";
|
|
3495
|
+
const categoryOptions = react.useMemo(
|
|
3496
|
+
() => categories ?? defaultCategories(),
|
|
3497
|
+
[categories]
|
|
3498
|
+
);
|
|
3499
|
+
const initialOrgId = react.useMemo(() => {
|
|
3500
|
+
if (!isAuth) return null;
|
|
3501
|
+
if (preselectedOrganizationId !== void 0) return preselectedOrganizationId;
|
|
3502
|
+
if (organizations.length === 1) return organizations[0].id;
|
|
3503
|
+
return null;
|
|
3504
|
+
}, [isAuth, organizations, preselectedOrganizationId]);
|
|
3505
|
+
const [name, setName] = react.useState(prefill?.name ?? "");
|
|
3506
|
+
const [email, setEmail] = react.useState(prefill?.email ?? "");
|
|
3507
|
+
const [company, setCompany] = react.useState("");
|
|
3508
|
+
const [phone, setPhone] = react.useState("");
|
|
3509
|
+
const [category, setCategory] = react.useState(categoryOptions[0]?.value ?? "general");
|
|
3510
|
+
const [message, setMessage] = react.useState("");
|
|
3511
|
+
const [organizationId, setOrganizationId] = react.useState(initialOrgId);
|
|
3512
|
+
const [inquiryFollowup, setInquiryFollowup] = react.useState(false);
|
|
3513
|
+
const [general, setGeneral] = react.useState(false);
|
|
3514
|
+
const [agreedLegal, setAgreedLegal] = react.useState(false);
|
|
3515
|
+
const [submitting, setSubmitting] = react.useState(false);
|
|
3516
|
+
const [formError, setFormError] = react.useState(null);
|
|
3517
|
+
const [successMessage, setSuccessMessage] = react.useState(null);
|
|
3518
|
+
async function handleSubmit(e) {
|
|
3519
|
+
e.preventDefault();
|
|
3520
|
+
setFormError(null);
|
|
3521
|
+
if (!agreedLegal) {
|
|
3522
|
+
setFormError("\u5229\u7528\u898F\u7D04\u3068\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC\u3078\u306E\u540C\u610F\u304C\u5FC5\u8981\u3067\u3059\u3002");
|
|
3523
|
+
return;
|
|
3524
|
+
}
|
|
3525
|
+
if (!message.trim()) {
|
|
3526
|
+
setFormError("\u304A\u554F\u3044\u5408\u308F\u305B\u5185\u5BB9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
|
|
3527
|
+
return;
|
|
3528
|
+
}
|
|
3529
|
+
if (!isAuth) {
|
|
3530
|
+
if (!name.trim() || !email.trim()) {
|
|
3531
|
+
setFormError("\u304A\u540D\u524D\u3068\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
|
|
3532
|
+
return;
|
|
3533
|
+
}
|
|
3534
|
+
}
|
|
3535
|
+
setSubmitting(true);
|
|
3536
|
+
try {
|
|
3537
|
+
const result = await onSubmit({
|
|
3538
|
+
name: name.trim(),
|
|
3539
|
+
email: email.trim(),
|
|
3540
|
+
company: company.trim() || null,
|
|
3541
|
+
phone: phone.trim() || null,
|
|
3542
|
+
category,
|
|
3543
|
+
message: message.trim(),
|
|
3544
|
+
organizationId,
|
|
3545
|
+
inquiryFollowupOptIn: inquiryFollowup,
|
|
3546
|
+
generalNewsletterOptIn: general,
|
|
3547
|
+
termsVersion,
|
|
3548
|
+
privacyVersion,
|
|
3549
|
+
turnstileToken: turnstileToken ?? null,
|
|
3550
|
+
locale
|
|
3551
|
+
});
|
|
3552
|
+
if (result.ok) {
|
|
3553
|
+
setSuccessMessage(
|
|
3554
|
+
result.message ?? (result.requiresDoubleOptIn ? "\u304A\u554F\u3044\u5408\u308F\u305B\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3057\u305F\u3002\u30E1\u30EB\u30DE\u30AC\u306E\u8CFC\u8AAD\u78BA\u8A8D\u30E1\u30FC\u30EB\u3092\u9001\u4FE1\u3057\u307E\u3057\u305F\u306E\u3067\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002" : "\u304A\u554F\u3044\u5408\u308F\u305B\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3057\u305F\u3002\u62C5\u5F53\u8005\u3088\u308A\u3054\u9023\u7D61\u3044\u305F\u3057\u307E\u3059\u3002")
|
|
3555
|
+
);
|
|
3556
|
+
setMessage("");
|
|
3557
|
+
} else {
|
|
3558
|
+
setFormError(result.message);
|
|
3559
|
+
}
|
|
3560
|
+
} catch (err) {
|
|
3561
|
+
setFormError(
|
|
3562
|
+
err instanceof Error ? err.message : "\u9001\u4FE1\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002"
|
|
3563
|
+
);
|
|
3564
|
+
} finally {
|
|
3565
|
+
setSubmitting(false);
|
|
3566
|
+
}
|
|
3567
|
+
}
|
|
3568
|
+
if (successMessage) {
|
|
3569
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3570
|
+
"div",
|
|
3571
|
+
{
|
|
3572
|
+
role: "status",
|
|
3573
|
+
className,
|
|
3574
|
+
style: {
|
|
3575
|
+
padding: SPACING_LG,
|
|
3576
|
+
border: BORDER_DEFAULT,
|
|
3577
|
+
borderRadius: BORDER_RADIUS_MD,
|
|
3578
|
+
background: "#f0fdf4",
|
|
3579
|
+
color: "#166534",
|
|
3580
|
+
fontSize: FONT_SIZE_SM
|
|
3581
|
+
},
|
|
3582
|
+
children: successMessage
|
|
3583
|
+
}
|
|
3584
|
+
);
|
|
3585
|
+
}
|
|
3586
|
+
const showOrgBlock = isAuth && organizations.length >= 1;
|
|
3587
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleSubmit, className, noValidate: true, children: [
|
|
3588
|
+
showOrgBlock && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: fieldsetStyle, children: [
|
|
3589
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-org", children: "\u554F\u3044\u5408\u308F\u305B\u308B\u7ACB\u5834" }),
|
|
3590
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3591
|
+
"select",
|
|
3592
|
+
{
|
|
3593
|
+
id: "ffid-inquiry-org",
|
|
3594
|
+
style: inputStyle,
|
|
3595
|
+
value: organizationId ?? "",
|
|
3596
|
+
onChange: (e) => setOrganizationId(e.target.value || null),
|
|
3597
|
+
children: [
|
|
3598
|
+
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: "\u500B\u4EBA\u3068\u3057\u3066\u554F\u3044\u5408\u308F\u305B\u308B" }),
|
|
3599
|
+
organizations.map((org) => /* @__PURE__ */ jsxRuntime.jsxs("option", { value: org.id, children: [
|
|
3600
|
+
org.name,
|
|
3601
|
+
" \u3068\u3057\u3066\u554F\u3044\u5408\u308F\u305B\u308B"
|
|
3602
|
+
] }, org.id))
|
|
3603
|
+
]
|
|
3604
|
+
}
|
|
3605
|
+
)
|
|
3606
|
+
] }),
|
|
3607
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: fieldsetStyle, children: [
|
|
3608
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-name", children: "\u304A\u540D\u524D" }),
|
|
3609
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3610
|
+
"input",
|
|
3611
|
+
{
|
|
3612
|
+
id: "ffid-inquiry-name",
|
|
3613
|
+
style: isAuth ? readOnlyStyle : inputStyle,
|
|
3614
|
+
type: "text",
|
|
3615
|
+
value: name,
|
|
3616
|
+
onChange: (e) => setName(e.target.value),
|
|
3617
|
+
readOnly: isAuth,
|
|
3618
|
+
required: true
|
|
3619
|
+
}
|
|
3620
|
+
)
|
|
3621
|
+
] }),
|
|
3622
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: fieldsetStyle, children: [
|
|
3623
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-email", children: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9" }),
|
|
3624
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3625
|
+
"input",
|
|
3626
|
+
{
|
|
3627
|
+
id: "ffid-inquiry-email",
|
|
3628
|
+
style: isAuth ? readOnlyStyle : inputStyle,
|
|
3629
|
+
type: "email",
|
|
3630
|
+
value: email,
|
|
3631
|
+
onChange: (e) => setEmail(e.target.value),
|
|
3632
|
+
readOnly: isAuth,
|
|
3633
|
+
required: true
|
|
3634
|
+
}
|
|
3635
|
+
)
|
|
3636
|
+
] }),
|
|
3637
|
+
!isAuth && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3638
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: fieldsetStyle, children: [
|
|
3639
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-company", children: "\u4F1A\u793E\u540D (\u4EFB\u610F)" }),
|
|
3640
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3641
|
+
"input",
|
|
3642
|
+
{
|
|
3643
|
+
id: "ffid-inquiry-company",
|
|
3644
|
+
style: inputStyle,
|
|
3645
|
+
type: "text",
|
|
3646
|
+
value: company,
|
|
3647
|
+
onChange: (e) => setCompany(e.target.value)
|
|
3648
|
+
}
|
|
3649
|
+
)
|
|
3650
|
+
] }),
|
|
3651
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: fieldsetStyle, children: [
|
|
3652
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-phone", children: "\u96FB\u8A71\u756A\u53F7 (\u4EFB\u610F)" }),
|
|
3653
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3654
|
+
"input",
|
|
3655
|
+
{
|
|
3656
|
+
id: "ffid-inquiry-phone",
|
|
3657
|
+
style: inputStyle,
|
|
3658
|
+
type: "tel",
|
|
3659
|
+
value: phone,
|
|
3660
|
+
onChange: (e) => setPhone(e.target.value)
|
|
3661
|
+
}
|
|
3662
|
+
)
|
|
3663
|
+
] })
|
|
3664
|
+
] }),
|
|
3665
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: fieldsetStyle, children: [
|
|
3666
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-category", children: "\u304A\u554F\u3044\u5408\u308F\u305B\u7A2E\u5225" }),
|
|
3667
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3668
|
+
"select",
|
|
3669
|
+
{
|
|
3670
|
+
id: "ffid-inquiry-category",
|
|
3671
|
+
style: inputStyle,
|
|
3672
|
+
value: category,
|
|
3673
|
+
onChange: (e) => setCategory(e.target.value),
|
|
3674
|
+
children: categoryOptions.map((opt) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: opt.value, children: opt.label }, opt.value))
|
|
3675
|
+
}
|
|
3676
|
+
)
|
|
3677
|
+
] }),
|
|
3678
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: fieldsetStyle, children: [
|
|
3679
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-message", children: "\u304A\u554F\u3044\u5408\u308F\u305B\u5185\u5BB9" }),
|
|
3680
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3681
|
+
"textarea",
|
|
3682
|
+
{
|
|
3683
|
+
id: "ffid-inquiry-message",
|
|
3684
|
+
style: { ...inputStyle, minHeight: 180, resize: "vertical" },
|
|
3685
|
+
value: message,
|
|
3686
|
+
onChange: (e) => setMessage(e.target.value),
|
|
3687
|
+
required: true,
|
|
3688
|
+
maxLength: 1e4
|
|
3689
|
+
}
|
|
3690
|
+
)
|
|
3691
|
+
] }),
|
|
3692
|
+
/* @__PURE__ */ jsxRuntime.jsxs("fieldset", { style: { ...fieldsetStyle, border: "none", padding: 0 }, children: [
|
|
3693
|
+
/* @__PURE__ */ jsxRuntime.jsx("legend", { style: { ...labelStyle, marginBottom: SPACING_SM }, children: "\u30CB\u30E5\u30FC\u30B9\u30EC\u30BF\u30FC\u8CFC\u8AAD (\u4EFB\u610F)" }),
|
|
3694
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { style: { display: "flex", alignItems: "center", gap: SPACING_SM, marginBottom: SPACING_SM }, children: [
|
|
3695
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3696
|
+
"input",
|
|
3697
|
+
{
|
|
3698
|
+
type: "checkbox",
|
|
3699
|
+
checked: inquiryFollowup,
|
|
3700
|
+
onChange: (e) => setInquiryFollowup(e.target.checked)
|
|
3701
|
+
}
|
|
3702
|
+
),
|
|
3703
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: FONT_SIZE_SM }, children: "\u304A\u554F\u3044\u5408\u308F\u305B\u306B\u95A2\u9023\u3059\u308B\u6848\u5185\u3092\u53D7\u3051\u53D6\u308B" })
|
|
3704
|
+
] }),
|
|
3705
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { style: { display: "flex", alignItems: "center", gap: SPACING_SM }, children: [
|
|
3706
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3707
|
+
"input",
|
|
3708
|
+
{
|
|
3709
|
+
type: "checkbox",
|
|
3710
|
+
checked: general,
|
|
3711
|
+
onChange: (e) => setGeneral(e.target.checked)
|
|
3712
|
+
}
|
|
3713
|
+
),
|
|
3714
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: FONT_SIZE_SM }, children: "\u5B9A\u671F\u30CB\u30E5\u30FC\u30B9\u30EC\u30BF\u30FC\u3092\u53D7\u3051\u53D6\u308B" })
|
|
3715
|
+
] })
|
|
3716
|
+
] }),
|
|
3717
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { style: fieldsetStyle, children: /* @__PURE__ */ jsxRuntime.jsxs("label", { style: { display: "flex", alignItems: "flex-start", gap: SPACING_SM }, children: [
|
|
3718
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3719
|
+
"input",
|
|
3720
|
+
{
|
|
3721
|
+
type: "checkbox",
|
|
3722
|
+
checked: agreedLegal,
|
|
3723
|
+
onChange: (e) => setAgreedLegal(e.target.checked),
|
|
3724
|
+
required: true
|
|
3725
|
+
}
|
|
3726
|
+
),
|
|
3727
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: FONT_SIZE_SM }, children: [
|
|
3728
|
+
termsHref ? /* @__PURE__ */ jsxRuntime.jsxs("a", { href: termsHref, target: "_blank", rel: "noopener noreferrer", children: [
|
|
3729
|
+
"\u5229\u7528\u898F\u7D04 (v",
|
|
3730
|
+
termsVersion,
|
|
3731
|
+
")"
|
|
3732
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3733
|
+
"\u5229\u7528\u898F\u7D04 (v",
|
|
3734
|
+
termsVersion,
|
|
3735
|
+
")"
|
|
3736
|
+
] }),
|
|
3737
|
+
" ",
|
|
3738
|
+
"\u3068",
|
|
3739
|
+
" ",
|
|
3740
|
+
privacyHref ? /* @__PURE__ */ jsxRuntime.jsxs("a", { href: privacyHref, target: "_blank", rel: "noopener noreferrer", children: [
|
|
3741
|
+
"\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC (v",
|
|
3742
|
+
privacyVersion,
|
|
3743
|
+
")"
|
|
3744
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3745
|
+
"\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC (v",
|
|
3746
|
+
privacyVersion,
|
|
3747
|
+
")"
|
|
3748
|
+
] }),
|
|
3749
|
+
" ",
|
|
3750
|
+
"\u306B\u540C\u610F\u3057\u307E\u3059\u3002"
|
|
3751
|
+
] })
|
|
3752
|
+
] }) }),
|
|
3753
|
+
!isAuth && turnstileSlot && /* @__PURE__ */ jsxRuntime.jsx("div", { style: fieldsetStyle, children: turnstileSlot }),
|
|
3754
|
+
formError && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", style: { ...errorTextStyle, marginBottom: SPACING_MD }, children: formError }),
|
|
3755
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3756
|
+
"button",
|
|
3757
|
+
{
|
|
3758
|
+
type: "submit",
|
|
3759
|
+
style: {
|
|
3760
|
+
...submitButtonStyle,
|
|
3761
|
+
opacity: submitting ? 0.6 : 1,
|
|
3762
|
+
cursor: submitting ? "not-allowed" : "pointer"
|
|
3763
|
+
},
|
|
3764
|
+
disabled: submitting,
|
|
3765
|
+
children: submitting ? "\u9001\u4FE1\u4E2D..." : "\u9001\u4FE1\u3059\u308B"
|
|
3766
|
+
}
|
|
3767
|
+
)
|
|
3768
|
+
] });
|
|
3769
|
+
}
|
|
3770
|
+
|
|
3241
3771
|
exports.DEFAULT_API_BASE_URL = DEFAULT_API_BASE_URL;
|
|
3242
3772
|
exports.FFIDAnnouncementBadge = FFIDAnnouncementBadge;
|
|
3243
3773
|
exports.FFIDAnnouncementList = FFIDAnnouncementList;
|
|
3774
|
+
exports.FFIDInquiryForm = FFIDInquiryForm;
|
|
3244
3775
|
exports.FFIDLoginButton = FFIDLoginButton;
|
|
3245
3776
|
exports.FFIDOrganizationSwitcher = FFIDOrganizationSwitcher;
|
|
3246
3777
|
exports.FFIDProvider = FFIDProvider;
|
|
3247
3778
|
exports.FFIDSubscriptionBadge = FFIDSubscriptionBadge;
|
|
3248
3779
|
exports.FFIDUserMenu = FFIDUserMenu;
|
|
3249
3780
|
exports.FFID_ANNOUNCEMENTS_ERROR_CODES = FFID_ANNOUNCEMENTS_ERROR_CODES;
|
|
3781
|
+
exports.FFID_INQUIRY_CATEGORIES = FFID_INQUIRY_CATEGORIES;
|
|
3250
3782
|
exports.createFFIDAnnouncementsClient = createFFIDAnnouncementsClient;
|
|
3251
3783
|
exports.createFFIDClient = createFFIDClient;
|
|
3252
3784
|
exports.createTokenStore = createTokenStore;
|