@choiceform/os-client-core 3.4.55 → 3.5.1-ssr-beta

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/index.d.ts CHANGED
@@ -600,6 +600,10 @@ interface CFEnvOptions {
600
600
  * 服务配置信息
601
601
  */
602
602
  interface CFHostConfig {
603
+ /**
604
+ * logo名称
605
+ */
606
+ LOGO_NAME: string;
603
607
  /**
604
608
  * 操作记录接口地址
605
609
  */
@@ -900,6 +904,32 @@ interface CFUtil {
900
904
  * @param question 题目
901
905
  */
902
906
  getAnswer(question: CFQuestion): ICFAnswer;
907
+ /**
908
+ * 初始化变量依赖信息
909
+ * @param depends
910
+ */
911
+ initVarDepends(depends: IVarRelatedDependency): void;
912
+ /**
913
+ * 为开始状态中添加动态内容
914
+ */
915
+ addStartStateDynamics(state: CFStartState): void;
916
+ /**
917
+ * 为问卷状态中的添加态内容
918
+ */
919
+ addSurveyStateDynamics(state: CFSurveyState): void;
920
+ /**
921
+ * 为题目状态添加动态内容
922
+ */
923
+ addNodeDynamics(node: CFQuestion): void;
924
+ /**
925
+ * 为选项状态添加动态内容
926
+ */
927
+ addOptionDynamics(option: CFOption): void;
928
+ /**
929
+ * 为图片列表粘附变量解析能力
930
+ * @param imageList
931
+ */
932
+ extendImageListGetter(imageList: ICFImage[]): void;
903
933
  }
904
934
 
905
935
  /**
@@ -6311,8 +6341,7 @@ interface ICFSurveyMeta {
6311
6341
  * @ignore
6312
6342
  * todo 这里面只要包含一个cfpd对象就可以,不要把cfpd的每个属性都解开重新放到这里
6313
6343
  */
6314
- interface ICFParsedStartMeta {
6315
- imageList: ICFImage[];
6344
+ interface ICFParsedStartMeta extends IVarRelatedDependency {
6316
6345
  videoList: CFVideo[];
6317
6346
  nodeList: ICFNode[];
6318
6347
  /**
@@ -6320,11 +6349,9 @@ interface ICFParsedStartMeta {
6320
6349
  */
6321
6350
  surveyId: string;
6322
6351
  theme: ICFThemeConfig;
6323
- variables: ICFVarRaw[];
6324
6352
  surveyMeta: ICFSurveyMeta;
6325
6353
  nodeGroups: CFPDNodeGroup[];
6326
6354
  embedApis: ICFEmbedApi[];
6327
- varStyles: CFVarStyleGroup;
6328
6355
  langs: ICFLang[];
6329
6356
  language: string;
6330
6357
  langTable: CFLangTableItem[];
@@ -6718,6 +6745,7 @@ interface ICFRealtimeGlobalSetting extends CFPDCustomLogo {
6718
6745
  varStyles: CFVarStyleGroup;
6719
6746
  embedApis: ICFEmbedApi[];
6720
6747
  presetRichStyles: CFPDPresetRichStyle[];
6748
+ nodeGroups: ICFNodeGroup[];
6721
6749
  }
6722
6750
 
6723
6751
  /**
@@ -6749,7 +6777,7 @@ interface CFRealtime {
6749
6777
  * + 当[[CFRealtimeState.isGift]]为true,就可以当成[[CFRewardState]]来渲染奖励页面
6750
6778
  * + 否则,就当成[[CFSurveyState]]来渲染答题页面
6751
6779
  */
6752
- interface CFRealtimeState extends CFSurveyState, CFStartState {
6780
+ interface CFRealtimeState extends CFSurveyState, CFStartState, IVarRelatedDependency {
6753
6781
  /**
6754
6782
  * 奖励类型,预览奖励页面时才存在
6755
6783
  */
@@ -7096,7 +7124,8 @@ interface ICFStartMiniState extends ICFCustomLogo {
7096
7124
  * 以及一个开始答题的开始按钮.
7097
7125
  * 开始按钮点击后应该调用[[CFUIEventHandler.handleNextClick]]方法
7098
7126
  */
7099
- interface CFStartState extends ICFTranMiniState, ICFMiniState, CFStateBase, ICFCustomLogo {
7127
+ interface CFStartState extends ICFTranMiniState, ICFMiniState, CFStateBase, ICFCustomLogo, IVarRelatedDependency {
7128
+ nodeGroups: ICFNodeGroup[];
7100
7129
  core?: CFCore;
7101
7130
  /**
7102
7131
  * 开始节点的类型
@@ -7233,12 +7262,28 @@ interface ICFContext {
7233
7262
  question?: CFQuestion;
7234
7263
  }
7235
7264
 
7265
+ interface IVarRelatedDependency {
7266
+ /**
7267
+ * 样式组__
7268
+ */
7269
+ varStyles: CFVarStyleGroup;
7270
+ /**
7271
+ * 图片列表__
7272
+ */
7273
+ imageList: ICFImage[];
7274
+ /**
7275
+ * 选项列表__
7276
+ */
7277
+ variables: ICFVarRaw[];
7278
+ }
7279
+
7236
7280
  /**
7237
7281
  * 答题总状态
7238
7282
  * 答题页面数据
7239
7283
  * 使用[[CFSurveyState.nodes]]来渲染当前需要渲染的题目
7240
7284
  */
7241
- interface CFSurveyState extends ICFTranMiniState, ICFStartMiniState, ICFMiniState, CFStateBase {
7285
+ interface CFSurveyState extends ICFTranMiniState, ICFStartMiniState, ICFMiniState, CFStateBase, IVarRelatedDependency {
7286
+ nodeGroups: ICFNodeGroup[];
7242
7287
  /**
7243
7288
  * 进入问卷的模式
7244
7289
  */
@@ -8965,16 +9010,6 @@ interface CFImageInNode extends CFPDNodeImage {
8965
9010
  */
8966
9011
  // type?: IMG_REF_TYPE;
8967
9012
  }
8968
-
8969
- /**
8970
- * @todo 确认一下这个类型真的正确??? 怎么感觉好像已经不对了
8971
- */
8972
- declare const enum IMG_REF_TYPE {
8973
- /**
8974
- * 新增媒体这个类型
8975
- */
8976
- MEDIA = 'media',
8977
- }
8978
9013
  /**
8979
9014
  * 图片信息
8980
9015
  * @ignore
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@choiceform/os-client-core",
3
- "version": "3.4.55",
3
+ "version": "3.5.1-ssr-beta",
4
4
  "description": "choiceform survey client core",
5
5
  "main": "./dist/core.js",
6
6
  "repository": "https://github.com/choice-form/os-client-core",
@@ -9,6 +9,7 @@
9
9
  "scripts": {
10
10
  "test": "node_modules/.bin/cf-auto --watch",
11
11
  "start": "webpack-dev-server --env NODE_ENV=local --mode=development",
12
+ "start-node": "webpack-dev-server --config ./ssr.webpack.config.js --env NODE_ENV=local --mode=development",
12
13
  "prod": "webpack --env NODE_ENV=prod --mode=production",
13
14
  "staging": "webpack --env NODE_ENV=staging --mode=production",
14
15
  "local": "webpack --env NODE_ENV=local --mode=development",
@@ -47,7 +48,7 @@
47
48
  "@typescript-eslint/eslint-plugin": "^4.31.0",
48
49
  "@typescript-eslint/parser": "^4.31.0",
49
50
  "babel-loader": "^8.1.0",
50
- "cf-auto": "^1.98.0",
51
+ "cf-auto": "^1.100.0",
51
52
  "chokidar": "^3.0.2",
52
53
  "clean-webpack-plugin": "^3.0.0",
53
54
  "copy-webpack-plugin": "^6.0.3",
package/changelog.md DELETED
@@ -1,478 +0,0 @@
1
- # 置顶说明
2
-
3
- 最新的格式规范,具体规则参照[os-service-umbrella 的变更日志](https://github.com/choice-form/os-service-umbrella/blob/develop/CHANGELOG.md)。
4
-
5
- 每次发布新版本时,需要更改 package.json 的版本号,同时需要将 changelog 中的[Unreleased]改为版本号和发布日期,并且会更改代码包中的版本名和发布日期,操作比较繁琐,所以写了个脚本来自动更改,运行`yarn release [version] [commit]`就会自动做这些更改(不填入版本号则自动递增,填入版本号时版本号不能变低,否则会报错),输入 commit 参数则会自动 git commit 版本更新的更改。
6
-
7
- > 更改代码包中的版本名是为了在答题端调试时在控制台中打印`cfState.core`能快速看到当前使用的核心包的版本号,便于定位问题。
8
-
9
- 一般来说,发起 pr 的提交中,只需要在 changelog 中标注更改即可,不需要升级版本号的提交,因为我们可能需要将多个 pr 都合并完后再发包,如果每个 pr 中都升级版本号,就会导致操作历史混乱。
10
-
11
- 我们等到各个 pr 都合并进来 staging 分支以后,确定了要发包时,才升级版本号并做出一个 chores:release vx.x.xx 的提交,这样,这个提交总是代表确实在这个提交处发布了一个包。
12
-
13
- # changelog
14
-
15
- ## [Unreleased]
16
-
17
- ### Added
18
-
19
- ### Changed
20
-
21
- ### Fixed
22
-
23
- ### Removed
24
-
25
- ## 3.4.55 - 2022-3-31
26
-
27
- ### Changed
28
-
29
- - 纯粹为了升级 cfpd 发包
30
-
31
- ## 3.4.54 - 2022-3-31
32
-
33
- ### Changed
34
-
35
- - 循环单页组中的题目总是不显示问题头内容的
36
-
37
- ### Fixed
38
-
39
- - 修复完整答题时间的 bug
40
-
41
- ## 3.4.53 - 2022-3-30
42
-
43
- ### Changed
44
-
45
- - 更改答题客户端规则
46
-
47
- ## 3.4.52 - 2022-3-28
48
-
49
- ### Added
50
-
51
- - 选项组标题支持富文本解析
52
-
53
- ### Changed
54
-
55
- - 图片选择题,上传题,菜单题,级联题的选项可以显示富文本内容
56
-
57
- ### Fixed
58
-
59
- - 字符验证时允许小数点
60
-
61
- ## 3.4.51 - 2022-3-20
62
-
63
- ### Removed
64
-
65
- - 移除了媒体转化成图片名的措施,以后:在显示内容中总是##围绕的 URL 地址,在参数中总是纯 URL 地址
66
-
67
- ## 3.4.50 - 2022-3-19
68
-
69
- ### Changed
70
-
71
- - 增加自动 logo 显示控制属性
72
- - 修改自定义 logo 属性总是存在于全局 state 上,不在存在结束节点上。
73
-
74
- ## 3.4.49 - 2022-3-16
75
-
76
- ### Fixed
77
-
78
- - 修复授权与奖励授权 code 冲突问题
79
-
80
- ## 3.4.48 - 2022-3-16
81
-
82
- ### Changed
83
-
84
- - 移除日志
85
- - 主进程不等待微信分享完成。
86
-
87
- ### Fixed
88
-
89
- - 修正一些翻译内容
90
- - 微信授权 code 冲突
91
- - 回复链接跳转后的错误中断处理
92
-
93
- ## 3.4.47 - 2022-3-16
94
-
95
- ### Changed
96
-
97
- - 使用 cfpd 类型系统替换 core 中的现有类型
98
-
99
- ## 3.4.46 - 2022-3-15
100
-
101
- ### Added
102
-
103
- - 增加日志
104
-
105
- ## 3.4.45 - 2022-3-15
106
-
107
- ### Changed
108
-
109
- - 短化预设样式的选择器
110
-
111
- ## 3.4.43 - 2022-3-12
112
-
113
- ### Fixed
114
-
115
- - 紧急修复因配置更改导致图片不显示的问题
116
-
117
- ## 3.4.42 - 2022-3-11
118
-
119
- ### Fixed
120
-
121
- - 紧急修复随机、循环中的题目出现的未完成答案中提交 null 的 bug
122
-
123
- ## 3.4.41 - 2022-3-11
124
-
125
- ### Added
126
-
127
- - 增加对预设富文本样式的处理
128
- - 更改图标获取路径
129
-
130
- ### Fixed
131
-
132
- - 书签下载 bug
133
-
134
- ## 3.4.40 - 2022-3-1
135
-
136
- ### Fixed
137
-
138
- - 选项组展示顺序调整,第一层的选项组们的位置由它包含的最靠前的选项决定,而不是直接放在未进入选项组的选项前面
139
- - 修复点击语言切换的时候,页面发生闪烁的问题
140
-
141
- ## 3.4.39 - 2022-2-28
142
-
143
- ### Fixed
144
-
145
- - 修正单页显示只有一题的时候,点击下一题没有反应
146
-
147
- ## 3.4.38 - 2022-2-28
148
-
149
- ### Added
150
-
151
- - 支持解析在初始页使用语言切换设置
152
- - 支持在预览模式下禁用快速答题按钮
153
-
154
- ## 3.4.34 - 2022-1-24
155
-
156
- ### Added
157
-
158
- - 自定义的 url 参数支持
159
-
160
- ### Changed
161
-
162
- - utils 暴露获取单个答案的方法
163
- - 验证题目时尝试验证所有的选项并标记错误
164
-
165
- ## 3.4.33 - 2022-1-18
166
-
167
- ### Changed
168
-
169
- - 特殊处理页面跳转类型的第三方对接,如果准备打开跳转页面,则不显示内置的结束页面或配额失败错误弹框等内容,避免跳转前的闪烁问题。
170
-
171
- ## 3.4.32 - 2022-1-17
172
-
173
- ### Changed
174
-
175
- - 支持从纯变量中解析出第三方对接 url
176
-
177
- ### Fixed
178
-
179
- - 修复正式提交中没有处理配额满和收集器满的边缘情况
180
-
181
- ## 3.4.31 - 2022-1-13
182
-
183
- ### Fixed
184
-
185
- - 修复奖励节点没有图片时的渲染问题
186
-
187
- ## 3.4.30 - 2022-1-13
188
-
189
- ### Added
190
-
191
- - 创建 responses 是提交全部的 url 查询参数
192
-
193
- ### Changed
194
-
195
- - 调整级联回调中 index 的规则为总是遵循原始索引
196
- - 减少 SET_PROPS 的时间的 debounce 时间
197
-
198
- ### Fixed
199
-
200
- - 奖励页面图片和视频数据缺失
201
-
202
- ## 3.4.21 - 2022-1-10
203
-
204
- ### Fixed
205
-
206
- - 修复多语言翻译错误
207
-
208
- ## 3.4.20 - 2022-1-10
209
-
210
- ### Removed
211
-
212
- - 不再为发布的类型和文档中前置 readonly
213
-
214
- ## 3.4.19 - 2022-1-10
215
-
216
- ### Changed
217
-
218
- - 更新地域字典内容和类型规范
219
- - 引入 os-cfpd,解压方法和枚举类型改为使用 os-cfpd 中的,其他类型暂未变动。
220
- - 简化引用选项追随流程
221
- - 移除 BEFORE_NEXT_OK,新增 beforeGotoNext 的 hook
222
- - 修复部分 bug
223
-
224
- ## 3.4.18 - 2021-12-31
225
-
226
- ### Fixed
227
-
228
- - 修复变量个节点组内容没有成功加载多语言翻译的 bug
229
-
230
- ## 3.4.17 - 2021-12-17
231
-
232
- ### Fixed
233
-
234
- - 修复提交结果中的 hookParams 问题
235
-
236
- ## 3.4.16 - 2021-12-17
237
-
238
- ### Fixed
239
-
240
- - 修复第三方对接时的参数解析 bug
241
-
242
- ## 3.4.14 - 2021-12-17
243
-
244
- ### Fixed
245
-
246
- - 修复图片地址转换时未考虑绝对路径(离线场合使用)的问题
247
- - 修复视频地址在离线端没有被转成本地地址的 bug
248
- - 修复一些没有被接住的 Promise 返回值
249
-
250
- ## 3.4.11 - 2021-12-9
251
-
252
- ### Added
253
-
254
- - 限制自定义奖励不能被分享,分享出去后提示错误
255
-
256
- ### Changed
257
-
258
- - 借助后台新加的接口支持重写奖励页面的数据源
259
-
260
- ### Fixed
261
-
262
- - 修复奖励页面主题、layout、多语言等数据的缺失问题
263
-
264
- ## 3.4.10 - 2021-12-8
265
-
266
- ### Fixed
267
-
268
- - 修复选项过滤器比较基准选项组 bug
269
-
270
- ## 3.4.9 - 2021-12-7
271
-
272
- ### Added
273
-
274
- - 首页数据中新增了 publishedAt 属性
275
-
276
- ### Changed
277
-
278
- - 更改微信分享时的图标
279
-
280
- ## 3.4.8 - 2021-12-4
281
-
282
- ### Changed
283
-
284
- - 移除一些错误日志,优化跳转链接后的错误处理
285
-
286
- ## 3.4.7 - 2021-12-1
287
-
288
- ### Changed
289
-
290
- - 优化减少开始页面的加载资源
291
- - 开始页面初始渲染完成后,会启动预加载
292
- - 资源不再在点击开始时一起加载,而是结合预加载程序按需加载。
293
-
294
- ## 3.4.6 - 2021-11-29
295
-
296
- ### Added
297
-
298
- - 增加开始按钮点击后的资源加载时间监控
299
- - 新增对接后台支持的 socket 未完成答案提交
300
-
301
- ### Removed
302
-
303
- - 移除了老方案的未完成题目的答案提交
304
-
305
- ## 3.4.5 - 2021-11-27
306
-
307
- ### Fixed
308
-
309
- - 避免多次加载同一本脚本
310
-
311
- ## 3.4.4 - 2021-11-25
312
-
313
- ### Added
314
-
315
- - 增加短信验证倒计时拦截保护
316
-
317
- ### Changed
318
-
319
- - 提取验证码获取模块
320
- - 更改短信验证返回值类型
321
-
322
- ## 3.4.3 - 2021-11-24
323
-
324
- ### Fixed
325
-
326
- - 修复 HTML 标签 tagName 大小写问题
327
- - 修复吸收选项引用组时节点不存在的情况
328
-
329
- ## 3.4.1 - 2021-11-23
330
-
331
- ### Added
332
-
333
- - 新增问题区隐藏属性 node.headHidden
334
- - 新增循环圈单页组规则
335
- - 支持循环回挖变量,节点运行时名称变量。
336
- - 使用新方案实现未完成题目的答案提交
337
-
338
- ### Changed
339
-
340
- - 适应新规则修正一些测试案例
341
- - 图片热点题支持多个热点
342
-
343
- ### Removed
344
-
345
- - 移除了选项索引相关属性
346
-
347
- ## 3.3.3 - 2021-11-8
348
-
349
- ### Fixed
350
-
351
- - 修复奖励节点中 layout 信息缺失问题
352
-
353
- ### 3.3.2 - 2021-11-6
354
-
355
- ### Changed
356
-
357
- - 重构了选项排他功能
358
- - 简化了级联题回调,以配合统一的选项排他处理。
359
-
360
- ### Fixed
361
-
362
- - 修复奖励节点显示语言 bug
363
- - 修复 v-config 深层嵌套解析失败 bug
364
-
365
- ### 3.3.1 - 2021-11-2
366
-
367
- ### Added
368
-
369
- - 为给 UI 用的选项组增加当前级别属性
370
-
371
- ### Fixed
372
-
373
- - 节点回溯单页中不能回溯的 bug
374
- - 选项分组变量拼接 bug
375
-
376
- ### 3.3.0 - 2021-10-30
377
-
378
- ### Added
379
-
380
- - 为填空题选项增加前缀和后缀属性的类型描述
381
- - 支持使用逻辑反转
382
- - 当前矩阵的行列选项高度或者宽度是`hidden` 的时候,标记选项的`visiable` 为 `false`
383
- - 增加选项分组支持
384
- - 连续评价题和 maxdiff 的翻页控制回调函数
385
- - 支持 cfpd 内置多语言
386
- - 节点回溯
387
-
388
- ### Changed
389
-
390
- - 重做通用的排序题回调方法
391
- - 重做变量解析
392
-
393
- ### Fixed
394
-
395
- - 移除排序题排序方式属性
396
-
397
- ### Removed
398
-
399
- - 移除老式选项分组处理
400
-
401
- ## 3.2.0 - 2021-9-29
402
-
403
- ### Added
404
-
405
- - 超时未完成答题时的答案提交
406
- - 使用 beacon api 在关闭页面之前提交未完成的答案
407
- - 解析新增变量:选项已被选中
408
-
409
- ### Changed
410
-
411
- - 超时的时候移除答案缓存
412
- - 更改答案中答题总时间的属性名 cost_time => time_comsuming,且单位有毫秒改成秒
413
- - 离线模式下的偏好语言按问卷存储,在线模式下的仍然按全局存储
414
- - 调整离线 taskInfo 的推送时机,改成到验证通过后,尝试提交之前。
415
- - 移除 promisify 模式,改成 async/await
416
- - 连续评价题和 maxdiff 的翻页控制数据改有核心包管理。
417
- - 离线端上传的图片直接使用地址,不用 base64 渲染
418
- - 标准化 taskInfo 的数据结构和测试
419
-
420
- ### Fixed
421
-
422
- - 预览模式下切换语言后的答案回复 bug
423
- - 排序题答案回复 bug
424
- - 数值分配题权重指示答案回复 bug
425
- - 矩阵行列单选自动推导数据 bug
426
- - 随机组组内挑选答案回复 bug
427
- - 离线 end_survey 在配额提交的触发时机错误 bug
428
-
429
- ### Removed
430
-
431
- - 移除了防止的 html parser,改用有环境提供的 parser
432
-
433
- ## 3.1.2 - 2021-9-23
434
-
435
- ### Changed
436
-
437
- - 预览数据改用强缓存策略
438
- - 统一选项 value 为 string 类型
439
- - 更改文档部署方式:直接放到本仓库内
440
-
441
- ### Fixed
442
-
443
- - 修复级联题断点续答答案恢复 bug
444
- - 后台 api 错误码翻译 bug
445
- - 数据节点自动选中 bug
446
-
447
- ### Removed
448
-
449
- - 移除数据节点老数据兼容处理
450
- - 移除级联菜单题 tabs 模式支持
451
-
452
- ## 3.1.1 - 2021-9-18
453
-
454
- ### Added
455
-
456
- - [增加了离线对接方案](https://github.com/choice-form/os-client-offline/issues/208):于 App 通讯,api 拦截,静态资源地址篡改等。
457
-
458
- ### Changed
459
-
460
- - 更改上传题的文件路径属性名
461
- - 只在微信环境中加载 wxsdk,并且加载失败后不中断系统运行
462
- - 更改默认后退语言和语言有限度选择机制
463
- - 多语言内容改为内置
464
- - 升级了构建工具
465
-
466
- - 配合新 UI 调整了部分不合理的属性名:normalIconUrl、activeIconUrl
467
-
468
- ### Fixed
469
-
470
- - 其他选项排他没有排除掉另一个其他纯备注选项的输入框的问题。
471
-
472
- ### Removed
473
-
474
- - 移除了所有 deprecated 的属性,不在支持老 UI
475
- - 移除针对 RN 的定制事件
476
- - 移除针对 lite 版问卷预览的特殊处理功能
477
-
478
- 2021 年 9 月份之前的 changelog 没有被记录