@bigbinary/neeto-form-frontend 3.13.9 → 3.14.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/README.md +131 -81
- package/app/javascript/src/translations/ar.json +9 -1
- package/app/javascript/src/translations/bg.json +207 -0
- package/app/javascript/src/translations/ca.json +207 -0
- package/app/javascript/src/translations/cs.json +9 -1
- package/app/javascript/src/translations/da.json +207 -0
- package/app/javascript/src/translations/de.json +9 -1
- package/app/javascript/src/translations/en.json +10 -1
- package/app/javascript/src/translations/es-MX.json +207 -0
- package/app/javascript/src/translations/es.json +9 -1
- package/app/javascript/src/translations/et.json +207 -0
- package/app/javascript/src/translations/fi.json +207 -0
- package/app/javascript/src/translations/fil.json +207 -0
- package/app/javascript/src/translations/fr.json +9 -1
- package/app/javascript/src/translations/hi.json +207 -0
- package/app/javascript/src/translations/hr.json +207 -0
- package/app/javascript/src/translations/id.json +207 -0
- package/app/javascript/src/translations/it.json +9 -1
- package/app/javascript/src/translations/ja.json +207 -0
- package/app/javascript/src/translations/ko.json +207 -0
- package/app/javascript/src/translations/nl.json +9 -1
- package/app/javascript/src/translations/pl.json +9 -1
- package/app/javascript/src/translations/pt-BR.json +207 -0
- package/app/javascript/src/translations/pt.json +9 -1
- package/app/javascript/src/translations/ro.json +9 -1
- package/app/javascript/src/translations/ru.json +9 -1
- package/app/javascript/src/translations/sk.json +207 -0
- package/app/javascript/src/translations/sl.json +207 -0
- package/app/javascript/src/translations/sv.json +207 -0
- package/app/javascript/src/translations/th.json +207 -0
- package/app/javascript/src/translations/tr.json +207 -0
- package/app/javascript/src/translations/uk.json +207 -0
- package/app/javascript/src/translations/vi.json +207 -0
- package/app/javascript/src/translations/zh-CN.json +207 -0
- package/app/javascript/src/translations/zh-TW.json +207 -0
- package/dist/BuildForm.js +32 -7
- package/dist/BuildForm.js.map +1 -1
- package/dist/ExternalForm.js +39 -32
- package/dist/ExternalForm.js.map +1 -1
- package/dist/Submission.js +1 -1
- package/dist/UrlBuilder.js +10 -6
- package/dist/UrlBuilder.js.map +1 -1
- package/dist/{buildForm-miMj_S28.js → buildForm-CXy5L1RP.js} +2 -2
- package/dist/{buildForm-miMj_S28.js.map → buildForm-CXy5L1RP.js.map} +1 -1
- package/dist/{buildForm-DQ2wgwuW.js → buildForm-DNCW7prR.js} +2 -2
- package/dist/{buildForm-DQ2wgwuW.js.map → buildForm-DNCW7prR.js.map} +1 -1
- package/dist/cjs/BuildForm.js +32 -7
- package/dist/cjs/BuildForm.js.map +1 -1
- package/dist/cjs/ExternalForm.js +38 -31
- package/dist/cjs/ExternalForm.js.map +1 -1
- package/dist/cjs/Submission.js +1 -1
- package/dist/cjs/UrlBuilder.js +10 -6
- package/dist/cjs/UrlBuilder.js.map +1 -1
- package/dist/cjs/hooks.js +4 -4
- package/dist/cjs/index.js +8 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/{constants-Dq9-rvtB.js → constants-BVZZfXua.js} +5 -1
- package/dist/constants-BVZZfXua.js.map +1 -0
- package/dist/{constants-R6y-Scns.js → constants-Bw2NSI7-.js} +5 -4
- package/dist/constants-Bw2NSI7-.js.map +1 -0
- package/dist/{constants-CDhYxmSQ.js → constants-VzpftVgP.js} +5 -3
- package/dist/constants-VzpftVgP.js.map +1 -0
- package/dist/{constants-DBuFEVFA.js → constants-b1EQ6-AS.js} +4 -2
- package/dist/constants-b1EQ6-AS.js.map +1 -0
- package/dist/hooks.js +4 -4
- package/dist/{index-CAtNQTCZ.js → index-BARvqe7c.js} +2 -2
- package/dist/{index-CAtNQTCZ.js.map → index-BARvqe7c.js.map} +1 -1
- package/dist/{index-BGEdOqsc.js → index-BkNaYmLc.js} +2 -2
- package/dist/{index-BGEdOqsc.js.map → index-BkNaYmLc.js.map} +1 -1
- package/dist/index.js +8 -7
- package/dist/index.js.map +1 -1
- package/dist/{useFormSubmission-Bor3TuEO.js → useFormSubmission-CYqHLtkA.js} +2 -2
- package/dist/{useFormSubmission-Bor3TuEO.js.map → useFormSubmission-CYqHLtkA.js.map} +1 -1
- package/dist/{useFormSubmission-D3Bxhy6g.js → useFormSubmission-DMoyM44A.js} +2 -2
- package/dist/{useFormSubmission-D3Bxhy6g.js.map → useFormSubmission-DMoyM44A.js.map} +1 -1
- package/dist/{utils-BThu7JWp.js → utils-BjgmM0Qs.js} +521 -55
- package/dist/utils-BjgmM0Qs.js.map +1 -0
- package/dist/{utils-1blEk5zb.js → utils-DdrUdmyb.js} +512 -45
- package/dist/utils-DdrUdmyb.js.map +1 -0
- package/package.json +15 -15
- package/dist/constants-CDhYxmSQ.js.map +0 -1
- package/dist/constants-DBuFEVFA.js.map +0 -1
- package/dist/constants-Dq9-rvtB.js.map +0 -1
- package/dist/constants-R6y-Scns.js.map +0 -1
- package/dist/utils-1blEk5zb.js.map +0 -1
- package/dist/utils-BThu7JWp.js.map +0 -1
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
{
|
|
2
|
+
"neetoForm": {
|
|
3
|
+
"common": {
|
|
4
|
+
"fieldReq": "{{field}} 是必需的",
|
|
5
|
+
"thisFieldIsRequired": "该字段是必需的",
|
|
6
|
+
"somethingWentWrong": "出现问题!",
|
|
7
|
+
"edit": "编辑",
|
|
8
|
+
"clone": "克隆",
|
|
9
|
+
"delete": "删除",
|
|
10
|
+
"agreeTermsAndConditions": "我同意以下提到的条款和条件",
|
|
11
|
+
"agreeCondition": "我同意",
|
|
12
|
+
"mustAcceptTermsAndConditions": "您必须接受条款和条件",
|
|
13
|
+
"mustAcceptCondition": "您必须接受条件才能继续",
|
|
14
|
+
"email": "电子邮件",
|
|
15
|
+
"phone": "电话",
|
|
16
|
+
"phNo": "电话号码",
|
|
17
|
+
"name": "姓名",
|
|
18
|
+
"text": "文本",
|
|
19
|
+
"rate": "评分",
|
|
20
|
+
"submit": "提交",
|
|
21
|
+
"reset": "重置",
|
|
22
|
+
"cancel": "取消",
|
|
23
|
+
"singleChoice": "单选",
|
|
24
|
+
"company": "公司",
|
|
25
|
+
"select": "选择",
|
|
26
|
+
"selectOne": "选择一个",
|
|
27
|
+
"required": "必填",
|
|
28
|
+
"hideQuestion": "隐藏问题",
|
|
29
|
+
"readOnly": "只读",
|
|
30
|
+
"responseVisibleOnlyToHost": "响应仅对主持人可见",
|
|
31
|
+
"invalidURL": "无效的网址",
|
|
32
|
+
"generateLink": "生成链接",
|
|
33
|
+
"paragraphCantBeEmpty": "段落不能为空",
|
|
34
|
+
"fillTheFormToChat": "请填写表单以开始聊天。",
|
|
35
|
+
"phoneNumberValidation": "电话号码以国家代码开头",
|
|
36
|
+
"yes": "是",
|
|
37
|
+
"count": "计数",
|
|
38
|
+
"shape": "形状",
|
|
39
|
+
"good": "好",
|
|
40
|
+
"okay": "好的",
|
|
41
|
+
"bad": "坏",
|
|
42
|
+
"no": "否",
|
|
43
|
+
"addAdditionalGuests": "添加额外的客人",
|
|
44
|
+
"unanswered": "未回答",
|
|
45
|
+
"hobbies": "爱好",
|
|
46
|
+
"country": "国家",
|
|
47
|
+
"addGuests": "添加客人",
|
|
48
|
+
"addGuestsHelper": "输入以逗号分隔的电子邮件。",
|
|
49
|
+
"start": "开始",
|
|
50
|
+
"end": "结束",
|
|
51
|
+
"settings": "设置",
|
|
52
|
+
"advancedProperties": "高级属性",
|
|
53
|
+
"clonedElementLabel": "{{label, anyCase}} 的副本",
|
|
54
|
+
"option": "选项",
|
|
55
|
+
"rating": "评分",
|
|
56
|
+
"captchaType": "验证码类型",
|
|
57
|
+
"reCaptchaV2": "reCAPTCHA v2",
|
|
58
|
+
"mathCaptcha": "数学验证码",
|
|
59
|
+
"remainingItemsCount": "{{count}} 个更多",
|
|
60
|
+
"domain": "域名",
|
|
61
|
+
"domains": "域名",
|
|
62
|
+
"viewHelpArticle": "查看帮助文章",
|
|
63
|
+
"splitAsFirstAndLastNames": "拆分为 \"名\" 和 \"姓\""
|
|
64
|
+
},
|
|
65
|
+
"fields": {
|
|
66
|
+
"mcf": "多项选择",
|
|
67
|
+
"scf": "单项选择",
|
|
68
|
+
"def": "段落",
|
|
69
|
+
"drf": "下拉菜单",
|
|
70
|
+
"qif": "多行文本",
|
|
71
|
+
"nif": "姓名",
|
|
72
|
+
"tif": "单行文本",
|
|
73
|
+
"eif": "电子邮件",
|
|
74
|
+
"pif": "电话号码",
|
|
75
|
+
"rif": "评分",
|
|
76
|
+
"tcf": "条款和条件",
|
|
77
|
+
"date": "日期",
|
|
78
|
+
"fbf": "反馈",
|
|
79
|
+
"agif": "额外的客人",
|
|
80
|
+
"rtf": "富文本字段",
|
|
81
|
+
"cf": "条件",
|
|
82
|
+
"iif": "整数",
|
|
83
|
+
"dif": "小数",
|
|
84
|
+
"fileUpload": "文件上传",
|
|
85
|
+
"captcha": "验证码",
|
|
86
|
+
"smsReminder": "短信提醒"
|
|
87
|
+
},
|
|
88
|
+
"toasts": {
|
|
89
|
+
"formSubmitted": "表单已成功提交!"
|
|
90
|
+
},
|
|
91
|
+
"callouts": {
|
|
92
|
+
"submitError": "无法提交表单",
|
|
93
|
+
"hiddenQuestion": "这是一个隐藏字段。填写此表单的人不会看到此字段。",
|
|
94
|
+
"responseVisibleOnlyToHost": "该字段对所有人可见。但其响应仅对主持人可见。"
|
|
95
|
+
},
|
|
96
|
+
"successPage": {
|
|
97
|
+
"title1": "谢谢。",
|
|
98
|
+
"title2": "您的响应已被收到。"
|
|
99
|
+
},
|
|
100
|
+
"emptyState": {
|
|
101
|
+
"noData": "未找到数据。"
|
|
102
|
+
},
|
|
103
|
+
"questions": {
|
|
104
|
+
"deleteAlert": {
|
|
105
|
+
"title": "删除字段?",
|
|
106
|
+
"message_one": "您正在删除 <strong>{{label}}</strong> 字段。这也将删除与该字段关联的任何数据。",
|
|
107
|
+
"message_other": "您正在删除 <strong>{{label}}</strong> 所有语言的字段。这也将删除与该字段关联的任何数据。"
|
|
108
|
+
},
|
|
109
|
+
"common": {
|
|
110
|
+
"noData": "没有问题可显示。",
|
|
111
|
+
"helpText": {
|
|
112
|
+
"learnAbout": "了解关于",
|
|
113
|
+
"howToAddNewQuestions": "如何添加新问题"
|
|
114
|
+
},
|
|
115
|
+
"primaryPanel": {
|
|
116
|
+
"addQuestion": "添加问题",
|
|
117
|
+
"noQuestionLeft": "没有更多问题字段可添加"
|
|
118
|
+
},
|
|
119
|
+
"editQuestion": "编辑问题",
|
|
120
|
+
"cloneBtn": "克隆",
|
|
121
|
+
"questionFields": {
|
|
122
|
+
"field": {
|
|
123
|
+
"question": "问题",
|
|
124
|
+
"firstNameQuestion": "名字问题",
|
|
125
|
+
"lastNameQuestion": "姓氏问题",
|
|
126
|
+
"placeholder": "占位符文本",
|
|
127
|
+
"firstNamePlaceholder": "名字占位符",
|
|
128
|
+
"lastNamePlaceholder": "姓氏占位符",
|
|
129
|
+
"required": "必填",
|
|
130
|
+
"addOption": "添加新选项",
|
|
131
|
+
"option": "选项",
|
|
132
|
+
"numberedOption": "选项 {{number}}",
|
|
133
|
+
"options": "选项",
|
|
134
|
+
"labelExample": "例如:{{what}}",
|
|
135
|
+
"label": "标签",
|
|
136
|
+
"fieldCodeTitle": "高级设置",
|
|
137
|
+
"fieldCode": "字段代码",
|
|
138
|
+
"fieldCodeHelpDescription": "如果您更改字段代码,任何包含旧字段代码作为查询参数的共享链接将无法正确工作。 <Link>查看帮助文章</Link>以获取更多信息。",
|
|
139
|
+
"questionType": "问题类型",
|
|
140
|
+
"hideQuestionHelpDescription": "启用后,此问题在创建的表单中将不可见。可用于跟踪“引用ID”和UTM参数。",
|
|
141
|
+
"responseVisibleOnlyToHostHelpDescription": "启用后,此问题的响应仅对主持人可见。",
|
|
142
|
+
"readOnlyHelpDescription": "启用后,客户只能看到此问题的答案,但无法更改此问题的答案。由于您将此问题标记为“只读”,因此应预填该问题的答案。",
|
|
143
|
+
"verifyHuman": "验证您是人类"
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"changeLanguage": "更改语言"
|
|
148
|
+
},
|
|
149
|
+
"error": {
|
|
150
|
+
"invalidField": "请输入有效的 {{label}}",
|
|
151
|
+
"invalidFieldCode": "此字段代码无法使用",
|
|
152
|
+
"requiredField": "请输入 {{label}}",
|
|
153
|
+
"selectMin": "请至少选择 {{min}} {{entity}}",
|
|
154
|
+
"invalidType": "{{label}} 应为有效的 {{type}}",
|
|
155
|
+
"fieldCantBeEmpty": "{{field, anyCase}} 不能为空",
|
|
156
|
+
"incompleteCaptcha": "请完成验证码",
|
|
157
|
+
"captchaVerificationFailed": "验证码验证失败。请再试一次。",
|
|
158
|
+
"invalidDomain": "域名无效",
|
|
159
|
+
"minOneEntity": "请至少添加一个 {{entity}}",
|
|
160
|
+
"emailFromRestrictedDomain": "不接受域名为 {{domain}} 的电子邮件。"
|
|
161
|
+
},
|
|
162
|
+
"fileTypes": {
|
|
163
|
+
"documents": "文档",
|
|
164
|
+
"images": "图片",
|
|
165
|
+
"audioVideo": "音频/视频"
|
|
166
|
+
},
|
|
167
|
+
"fileUpload": {
|
|
168
|
+
"enableMultipleFilesUpload": "启用多个文件上传",
|
|
169
|
+
"fileTypes": "文件类型",
|
|
170
|
+
"validations": {
|
|
171
|
+
"waitForUpload": "请等待上传完成",
|
|
172
|
+
"atLeastOneFileRequired": "请至少上传一个文件",
|
|
173
|
+
"removeDuplicates": "请删除重复的条目",
|
|
174
|
+
"fileIsRequired": "请上传一个文件"
|
|
175
|
+
},
|
|
176
|
+
"dropzone": {
|
|
177
|
+
"errors": {
|
|
178
|
+
"fileTooLarge": "文件 '{{fileName, anyCase}}' 大于 {{maxSize}} MB",
|
|
179
|
+
"fileInvalidType": "文件类型 {{fileType}} 不被允许",
|
|
180
|
+
"tooManyFiles": "您只能上传一个文件",
|
|
181
|
+
"defaultError": "上传 {{fileName, anyCase}} 时出错"
|
|
182
|
+
},
|
|
183
|
+
"maxFileSize": "最大允许大小为 {{size}} {{unit, anyCase}}",
|
|
184
|
+
"allowedFileTypes": "允许的文件类型为 {{types}}",
|
|
185
|
+
"oneFileAllowed": "请仅上传一个文件",
|
|
186
|
+
"chooseOrDragFile": "<typography>选择文件 <span>或</span> 拖到这里。</typography>"
|
|
187
|
+
},
|
|
188
|
+
"fileSizeInMb": "{{fileSize}} MB",
|
|
189
|
+
"mb": "MB"
|
|
190
|
+
},
|
|
191
|
+
"domainRestriction": {
|
|
192
|
+
"whitelistedDomains": {
|
|
193
|
+
"label": "允许电子邮件域",
|
|
194
|
+
"description": "接受具有以下域的电子邮件。",
|
|
195
|
+
"popoverDescription": "输入应允许的域。只有具有这些域的电子邮件将被接受。"
|
|
196
|
+
},
|
|
197
|
+
"blacklistedDomains": {
|
|
198
|
+
"label": "拒绝电子邮件域",
|
|
199
|
+
"description": "拒绝具有以下域的电子邮件。",
|
|
200
|
+
"popoverDescription": "输入应限制的域。具有这些域的电子邮件将不被接受。"
|
|
201
|
+
},
|
|
202
|
+
"helpText": "添加域后按空格、制表符或回车键。",
|
|
203
|
+
"removeInvalidDomains": "点击这里删除无效域。",
|
|
204
|
+
"placeholder": "请输入电子邮件域"
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
{
|
|
2
|
+
"neetoForm": {
|
|
3
|
+
"common": {
|
|
4
|
+
"fieldReq": "{{field}} 為必填字段",
|
|
5
|
+
"thisFieldIsRequired": "此字段為必填",
|
|
6
|
+
"somethingWentWrong": "出錯了!",
|
|
7
|
+
"edit": "編輯",
|
|
8
|
+
"clone": "複製",
|
|
9
|
+
"delete": "刪除",
|
|
10
|
+
"agreeTermsAndConditions": "我同意以下條款與條件",
|
|
11
|
+
"agreeCondition": "我同意",
|
|
12
|
+
"mustAcceptTermsAndConditions": "您必須接受條款和條件",
|
|
13
|
+
"mustAcceptCondition": "您必須接受條件才能繼續",
|
|
14
|
+
"email": "電子郵件",
|
|
15
|
+
"phone": "電話",
|
|
16
|
+
"phNo": "電話號碼",
|
|
17
|
+
"name": "姓名",
|
|
18
|
+
"text": "文本",
|
|
19
|
+
"rate": "評價",
|
|
20
|
+
"submit": "提交",
|
|
21
|
+
"reset": "重置",
|
|
22
|
+
"cancel": "取消",
|
|
23
|
+
"singleChoice": "單選",
|
|
24
|
+
"company": "公司",
|
|
25
|
+
"select": "選擇",
|
|
26
|
+
"selectOne": "選擇一個",
|
|
27
|
+
"required": "必填",
|
|
28
|
+
"hideQuestion": "隱藏問題",
|
|
29
|
+
"readOnly": "唯讀",
|
|
30
|
+
"responseVisibleOnlyToHost": "僅主辦方可見響應",
|
|
31
|
+
"invalidURL": "無效的網址",
|
|
32
|
+
"generateLink": "生成鏈接",
|
|
33
|
+
"paragraphCantBeEmpty": "段落不能為空",
|
|
34
|
+
"fillTheFormToChat": "請填寫表單以開始聊天。",
|
|
35
|
+
"phoneNumberValidation": "電話號碼應以國碼開始",
|
|
36
|
+
"yes": "是",
|
|
37
|
+
"count": "計數",
|
|
38
|
+
"shape": "形狀",
|
|
39
|
+
"good": "好",
|
|
40
|
+
"okay": "好的",
|
|
41
|
+
"bad": "差",
|
|
42
|
+
"no": "否",
|
|
43
|
+
"addAdditionalGuests": "添加額外來賓",
|
|
44
|
+
"unanswered": "未回答",
|
|
45
|
+
"hobbies": "嗜好",
|
|
46
|
+
"country": "國家",
|
|
47
|
+
"addGuests": "添加來賓",
|
|
48
|
+
"addGuestsHelper": "請輸入用逗號分隔的電子郵件。",
|
|
49
|
+
"start": "開始",
|
|
50
|
+
"end": "結束",
|
|
51
|
+
"settings": "設置",
|
|
52
|
+
"advancedProperties": "高級屬性",
|
|
53
|
+
"clonedElementLabel": "{{label, anyCase}} 的副本",
|
|
54
|
+
"option": "選項",
|
|
55
|
+
"rating": "評等",
|
|
56
|
+
"captchaType": "驗證碼類型",
|
|
57
|
+
"reCaptchaV2": "reCAPTCHA v2",
|
|
58
|
+
"mathCaptcha": "數學驗證碼",
|
|
59
|
+
"remainingItemsCount": "{{count}} 個更多",
|
|
60
|
+
"domain": "域名",
|
|
61
|
+
"domains": "域名",
|
|
62
|
+
"viewHelpArticle": "查看幫助文章",
|
|
63
|
+
"splitAsFirstAndLastNames": "拆分為 \"名字\" 和 \"姓氏\""
|
|
64
|
+
},
|
|
65
|
+
"fields": {
|
|
66
|
+
"mcf": "多選",
|
|
67
|
+
"scf": "單選",
|
|
68
|
+
"def": "段落",
|
|
69
|
+
"drf": "下拉菜單",
|
|
70
|
+
"qif": "多行文本",
|
|
71
|
+
"nif": "姓名",
|
|
72
|
+
"tif": "單行文本",
|
|
73
|
+
"eif": "電子郵件",
|
|
74
|
+
"pif": "電話號碼",
|
|
75
|
+
"rif": "評等",
|
|
76
|
+
"tcf": "條款與條件",
|
|
77
|
+
"date": "日期",
|
|
78
|
+
"fbf": "反饋",
|
|
79
|
+
"agif": "額外來賓",
|
|
80
|
+
"rtf": "富文本字段",
|
|
81
|
+
"cf": "條件",
|
|
82
|
+
"iif": "整數",
|
|
83
|
+
"dif": "小數",
|
|
84
|
+
"fileUpload": "文件上傳",
|
|
85
|
+
"captcha": "驗證碼",
|
|
86
|
+
"smsReminder": "短信提醒"
|
|
87
|
+
},
|
|
88
|
+
"toasts": {
|
|
89
|
+
"formSubmitted": "表單已成功提交!"
|
|
90
|
+
},
|
|
91
|
+
"callouts": {
|
|
92
|
+
"submitError": "無法提交表單",
|
|
93
|
+
"hiddenQuestion": "這是一個隱藏字段。填寫此表單的人將不會看到此字段。",
|
|
94
|
+
"responseVisibleOnlyToHost": "此字段對所有人可見。但其回應僅對主辦方可見。"
|
|
95
|
+
},
|
|
96
|
+
"successPage": {
|
|
97
|
+
"title1": "謝謝您。",
|
|
98
|
+
"title2": "您的回應已收到。"
|
|
99
|
+
},
|
|
100
|
+
"emptyState": {
|
|
101
|
+
"noData": "未找到數據。"
|
|
102
|
+
},
|
|
103
|
+
"questions": {
|
|
104
|
+
"deleteAlert": {
|
|
105
|
+
"title": "刪除字段?",
|
|
106
|
+
"message_one": "您正在刪除 <strong>{{label}}</strong> 字段。這也會刪除與該字段相關的任何數據。",
|
|
107
|
+
"message_other": "您正在刪除所有語言的 <strong>{{label}}</strong> 字段。這也會刪除與該字段相關的任何數據。"
|
|
108
|
+
},
|
|
109
|
+
"common": {
|
|
110
|
+
"noData": "沒有問題可顯示。",
|
|
111
|
+
"helpText": {
|
|
112
|
+
"learnAbout": "了解關於",
|
|
113
|
+
"howToAddNewQuestions": "如何添加新問題"
|
|
114
|
+
},
|
|
115
|
+
"primaryPanel": {
|
|
116
|
+
"addQuestion": "添加問題",
|
|
117
|
+
"noQuestionLeft": "沒有更多的問題字段可添加"
|
|
118
|
+
},
|
|
119
|
+
"editQuestion": "編輯問題",
|
|
120
|
+
"cloneBtn": "複製",
|
|
121
|
+
"questionFields": {
|
|
122
|
+
"field": {
|
|
123
|
+
"question": "問題",
|
|
124
|
+
"firstNameQuestion": "名字問題",
|
|
125
|
+
"lastNameQuestion": "姓氏問題",
|
|
126
|
+
"placeholder": "佔位符文本",
|
|
127
|
+
"firstNamePlaceholder": "名字佔位符",
|
|
128
|
+
"lastNamePlaceholder": "姓氏佔位符",
|
|
129
|
+
"required": "必填",
|
|
130
|
+
"addOption": "添加新選項",
|
|
131
|
+
"option": "選項",
|
|
132
|
+
"numberedOption": "選項 {{number}}",
|
|
133
|
+
"options": "選項",
|
|
134
|
+
"labelExample": "例如: {{what}}",
|
|
135
|
+
"label": "標籤",
|
|
136
|
+
"fieldCodeTitle": "高級設置",
|
|
137
|
+
"fieldCode": "字段代碼",
|
|
138
|
+
"fieldCodeHelpDescription": "如果您更改字段代碼,則包含舊字段代碼的任何現有共享鏈接將無法正確工作。<Link>查看幫助文章</Link> 獲取更多信息。",
|
|
139
|
+
"questionType": "問題類型",
|
|
140
|
+
"hideQuestionHelpDescription": "啟用後,此問題將在創建的表單中不可見。它可以用來追踪 \"參考 ID\" 和 UTM 參數。",
|
|
141
|
+
"responseVisibleOnlyToHostHelpDescription": "啟用後,該問題的響應僅對主辦方可見",
|
|
142
|
+
"readOnlyHelpDescription": "啟用後,客戶將只能看到該問題的答案,但不能更改該問題的答案。由於您將此問題標記為 \"唯讀\",因此應預填此問題的答案。",
|
|
143
|
+
"verifyHuman": "驗證您是人類"
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"changeLanguage": "更改語言"
|
|
148
|
+
},
|
|
149
|
+
"error": {
|
|
150
|
+
"invalidField": "請輸入有效的 {{label}}",
|
|
151
|
+
"invalidFieldCode": "此字段代碼無法使用",
|
|
152
|
+
"requiredField": "請輸入 {{label}}",
|
|
153
|
+
"selectMin": "請至少選擇 {{min}} {{entity}}",
|
|
154
|
+
"invalidType": "{{label}} 應為有效的 {{type}}",
|
|
155
|
+
"fieldCantBeEmpty": "{{field, anyCase}} 不能為空",
|
|
156
|
+
"incompleteCaptcha": "請完成驗證碼",
|
|
157
|
+
"captchaVerificationFailed": "驗證碼驗證失敗。請再試一次。",
|
|
158
|
+
"invalidDomain": "域名無效",
|
|
159
|
+
"minOneEntity": "請至少添加一個 {{entity}}",
|
|
160
|
+
"emailFromRestrictedDomain": "不接受域名為 {{domain}} 的電子郵件。"
|
|
161
|
+
},
|
|
162
|
+
"fileTypes": {
|
|
163
|
+
"documents": "文件",
|
|
164
|
+
"images": "圖片",
|
|
165
|
+
"audioVideo": "音頻/視頻"
|
|
166
|
+
},
|
|
167
|
+
"fileUpload": {
|
|
168
|
+
"enableMultipleFilesUpload": "啟用多文件上傳",
|
|
169
|
+
"fileTypes": "文件類型",
|
|
170
|
+
"validations": {
|
|
171
|
+
"waitForUpload": "請等待上傳完成",
|
|
172
|
+
"atLeastOneFileRequired": "請上傳至少一個文件",
|
|
173
|
+
"removeDuplicates": "請移除重複條目",
|
|
174
|
+
"fileIsRequired": "請上傳文件"
|
|
175
|
+
},
|
|
176
|
+
"dropzone": {
|
|
177
|
+
"errors": {
|
|
178
|
+
"fileTooLarge": "文件 '{{fileName, anyCase}}' 大於 {{maxSize}} MB",
|
|
179
|
+
"fileInvalidType": "文件類型 {{fileType}} 不被允許",
|
|
180
|
+
"tooManyFiles": "您只能上傳一個文件",
|
|
181
|
+
"defaultError": "上傳 {{fileName, anyCase}} 時出錯"
|
|
182
|
+
},
|
|
183
|
+
"maxFileSize": "最大允許大小為 {{size}} {{unit, anyCase}}",
|
|
184
|
+
"allowedFileTypes": "允許的文件類型為 {{types}}",
|
|
185
|
+
"oneFileAllowed": "請僅上傳 1 個文件",
|
|
186
|
+
"chooseOrDragFile": "<typography>選擇文件 <span>或</span> 拖到這裡。</typography>"
|
|
187
|
+
},
|
|
188
|
+
"fileSizeInMb": "{{fileSize}} MB",
|
|
189
|
+
"mb": "MB"
|
|
190
|
+
},
|
|
191
|
+
"domainRestriction": {
|
|
192
|
+
"whitelistedDomains": {
|
|
193
|
+
"label": "允許的電子郵件域",
|
|
194
|
+
"description": "擁有以下域的電子郵件將被接受。",
|
|
195
|
+
"popoverDescription": "輸入應允許的域。僅接受這些域的電子郵件。"
|
|
196
|
+
},
|
|
197
|
+
"blacklistedDomains": {
|
|
198
|
+
"label": "拒絕的電子郵件域",
|
|
199
|
+
"description": "擁有以下域的電子郵件將被拒絕。",
|
|
200
|
+
"popoverDescription": "輸入應限制的域。擁有這些域的電子郵件將不被接受。"
|
|
201
|
+
},
|
|
202
|
+
"helpText": "添加域後按空格、標籤或回車鍵。",
|
|
203
|
+
"removeInvalidDomains": "點擊此處以刪除無效域。",
|
|
204
|
+
"placeholder": "請輸入電子郵件域"
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
package/dist/BuildForm.js
CHANGED
|
@@ -3,14 +3,14 @@ import classnames from 'classnames';
|
|
|
3
3
|
import { isPresent, truncate, findBy, isNotPresent, slugify, existsBy, hyphenate, noop, nullSafe, removeBy } from '@bigbinary/neeto-cist';
|
|
4
4
|
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
5
5
|
import { equals, path, curry, assoc, prop, dissoc, when, includes, isEmpty, reject, keys, pick, omit, evolve, map, mergeLeft, isNil, pipe, filter, isNotNil, uniq, join, pluck, test, paths, difference, split, last, either, T, F } from 'ramda';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { k as useDeleteQuestion, Q as QUESTION_TYPES, a as useForm, l as useCreateQuestion, m as useUpdateQuestion, C as CAPTCHA_TYPES, n as useReorderQuestions, i as QUERY_KEYS } from './constants-b1EQ6-AS.js';
|
|
7
|
+
import { e as buildDisplayLabel, f as INDEPENDENT_LABELS_MAP, h as QUESTION_ACTIONS, i as isElementOverflowing, D as Drag, j as SELECTABLE_KINDS, k as isAutoGeneratedQuestion, l as isRichTextQuestion, N as NON_BASIC_LATIN_CHARACTERS_REGEX, m as RESERVED_FIELD_CODES, L as LABEL_FIELDS, n as isDefaultLanguage, o as buildAddQuestionButtonProps, v as validateEditorContent, F as FIELD_CODES_REJECT_CHARS_REGEX, p as isImmutableField, Q as QUESTIONS_WITHOUT_FIELD_CODE, q as NON_HIDEABLE_FIELDS, r as NON_READ_ONLY_FIELDS, s as RICH_TEXT_QUESTIONS, t as FILE_TYPES_MAP, u as FILE_GROUPS, M as MINIMUM_OPTIONS, w as RATING_OPTIONS, x as STAR_RATING_MIN_VALUE_OPTIONS, y as STAR_RATING_MAX_VALUE_OPTIONS, z as STAR_RATING_ICONS_MAP, A as buildDisabledAddButtonHelpPopoverProps, B as buildReorderPayload, G as isMandatoryField, H as QUESTION_KINDS, a as QUESTION_KIND, J as getActiveQuestionKindDetails, K as DEFAULT_AVAILABLE_LANGUAGES, O as DEFAULT_ADVANCED_FEATURES, P as QUESTIONS_INITIAL_VALUE } from './constants-Bw2NSI7-.js';
|
|
8
8
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
9
9
|
import { useState, useRef, useEffect, createElement } from 'react';
|
|
10
10
|
import { Droppable, Draggable, DragDropContext } from '@hello-pangea/dnd';
|
|
11
11
|
import { withT, isMetaKeyPressed, useStateWithDependency, useFuncDebounce, useOnClickOutside } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
12
12
|
import { showThumbsUpToastr, withEventTargetValue, hyphenize } from '@bigbinary/neeto-commons-frontend/utils';
|
|
13
|
-
import { a as useBuildFormStore } from './buildForm-
|
|
13
|
+
import { a as useBuildFormStore } from './buildForm-DNCW7prR.js';
|
|
14
14
|
import { shallow } from 'zustand/shallow';
|
|
15
15
|
import Alert from '@bigbinary/neetoui/Alert';
|
|
16
16
|
import { useTranslation, Trans } from 'react-i18next';
|
|
@@ -21,7 +21,7 @@ import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
|
|
|
21
21
|
import Dropdown from '@bigbinary/neetoui/Dropdown';
|
|
22
22
|
import Tooltip from '@bigbinary/neetoui/Tooltip';
|
|
23
23
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
24
|
-
import { i as isFunction, f as fieldWithFallback, c as isNameQuestion } from './index-
|
|
24
|
+
import { i as isFunction, f as fieldWithFallback, c as isNameQuestion } from './index-BkNaYmLc.js';
|
|
25
25
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
26
26
|
import { t } from 'i18next';
|
|
27
27
|
import { v4 } from 'uuid';
|
|
@@ -1409,6 +1409,10 @@ var DOMAIN_RESTRICTION_TRANSLATIONS = {
|
|
|
1409
1409
|
popoverDescription: t("neetoForm.domainRestriction.blacklistedDomains.popoverDescription")
|
|
1410
1410
|
}
|
|
1411
1411
|
};
|
|
1412
|
+
var EMAIL_VERIFICATION_TRANSLATIONS = {
|
|
1413
|
+
title: t("neetoForm.emailVerification.label"),
|
|
1414
|
+
popoverDescription: t("neetoForm.emailVerification.popoverDescription")
|
|
1415
|
+
};
|
|
1412
1416
|
|
|
1413
1417
|
var _excluded$2 = ["children"];
|
|
1414
1418
|
function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -1712,7 +1716,6 @@ var RestrictDomainsBlock = function RestrictDomainsBlock(_ref) {
|
|
|
1712
1716
|
className: "flex flex-col space-y-4",
|
|
1713
1717
|
"data-cy": "".concat(hyphenate(switchName), "-container"),
|
|
1714
1718
|
children: [/*#__PURE__*/jsx(SwitchBlock, {
|
|
1715
|
-
className: "mt-4",
|
|
1716
1719
|
name: switchName,
|
|
1717
1720
|
title: /*#__PURE__*/jsx(TitleWithHelpPopover, {
|
|
1718
1721
|
helpLink: helpLink,
|
|
@@ -1726,6 +1729,28 @@ var RestrictDomainsBlock = function RestrictDomainsBlock(_ref) {
|
|
|
1726
1729
|
});
|
|
1727
1730
|
};
|
|
1728
1731
|
|
|
1732
|
+
var VerifyEmails = function VerifyEmails() {
|
|
1733
|
+
var _useBuildFormStore = useBuildFormStore(paths([["formState", "helpDocUrls", "emailVerification"], ["formState", "hostSpecificData", "emailVerification"]])),
|
|
1734
|
+
_useBuildFormStore2 = _slicedToArray(_useBuildFormStore, 2),
|
|
1735
|
+
helpLink = _useBuildFormStore2[0],
|
|
1736
|
+
hostSpecificTranslations = _useBuildFormStore2[1];
|
|
1737
|
+
var _mergeLeft = mergeLeft(hostSpecificTranslations, EMAIL_VERIFICATION_TRANSLATIONS),
|
|
1738
|
+
title = _mergeLeft.title,
|
|
1739
|
+
popoverDescription = _mergeLeft.popoverDescription;
|
|
1740
|
+
return /*#__PURE__*/jsx(Switch, {
|
|
1741
|
+
name: "isVerificationEnabled",
|
|
1742
|
+
label: /*#__PURE__*/jsx(Typography, {
|
|
1743
|
+
component: "span",
|
|
1744
|
+
style: "body1",
|
|
1745
|
+
children: /*#__PURE__*/jsx(TitleWithHelpPopover, {
|
|
1746
|
+
helpLink: helpLink,
|
|
1747
|
+
title: title,
|
|
1748
|
+
description: popoverDescription
|
|
1749
|
+
})
|
|
1750
|
+
})
|
|
1751
|
+
});
|
|
1752
|
+
};
|
|
1753
|
+
|
|
1729
1754
|
var Email = function Email(_ref) {
|
|
1730
1755
|
var usesCustomSubmissionComponent = _ref.usesCustomSubmissionComponent;
|
|
1731
1756
|
var _useFormikContext = useFormikContext(),
|
|
@@ -1735,7 +1760,7 @@ var Email = function Email(_ref) {
|
|
|
1735
1760
|
_useFormikContext$val3 = _useFormikContext$val.isDomainBlacklistingEnabled,
|
|
1736
1761
|
isDomainBlacklistingEnabled = _useFormikContext$val3 === void 0 ? false : _useFormikContext$val3;
|
|
1737
1762
|
return /*#__PURE__*/jsx("div", {
|
|
1738
|
-
className: "flex flex-col",
|
|
1763
|
+
className: "flex flex-col space-y-4",
|
|
1739
1764
|
children: !usesCustomSubmissionComponent && /*#__PURE__*/jsxs(Fragment, {
|
|
1740
1765
|
children: [/*#__PURE__*/jsx(RestrictDomainsBlock, {
|
|
1741
1766
|
domainName: "whitelistedDomains",
|
|
@@ -1745,7 +1770,7 @@ var Email = function Email(_ref) {
|
|
|
1745
1770
|
domainName: "blacklistedDomains",
|
|
1746
1771
|
isDomainRestrictionEnabled: isDomainBlacklistingEnabled,
|
|
1747
1772
|
switchName: "isDomainBlacklistingEnabled"
|
|
1748
|
-
})]
|
|
1773
|
+
}), /*#__PURE__*/jsx(VerifyEmails, {})]
|
|
1749
1774
|
})
|
|
1750
1775
|
});
|
|
1751
1776
|
};
|