@choiceform/os-client-core 3.0.1 → 3.1.2

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
@@ -196,16 +196,6 @@ interface CFEnvUi {
196
196
  * @param styleGroup 样式信息:JSON形式
197
197
  */
198
198
  setVarStyle?(style: string, styleGroup: CFVarStyleGroup): void;
199
- /**
200
- * 获取某个url地址的图片的高宽信息的方法,有些答题端需要对图片进行布局控制,
201
- * 需要事先知道图片的尺寸,核心在生成图片对象的时候会尝试调用这个方法添加尺寸信息。
202
- * 无此需要的终端可以不配置这个方法。
203
- * 如果不配置则使用默认值:无论什么图片都返回固定大小100*100
204
- * @deprecated 这个方法目前只有老UI在使用,只为兼容性暂时保留,不要使用,后续将移除,
205
- * 这个信息应该由UI自主获取并使用,无需核心包插手
206
- * @param url 图片地址
207
- */
208
- getImageSize?(url: string): Promise<CFImageSize>;
209
199
  /**
210
200
  * 初始化一个节点动态模板的方法,该方法去动态获取设计端指定的自定义组件模板来渲染节点。
211
201
  * 只有实现了动态模板机制的答题端需要配置这个方法
@@ -265,10 +255,22 @@ interface CFApiReqResult {
265
255
  readonly response: string | object;
266
256
  }
267
257
 
258
+
259
+ interface CFUploadBaseConfig {
260
+ /**
261
+ * 关联的节点id
262
+ */
263
+ readonly nodeId: string;
264
+ /**
265
+ * 关联的选项id
266
+ */
267
+ readonly optionId: string;
268
+ }
269
+
268
270
  /**
269
271
  * 图片上传参数
270
272
  */
271
- interface CFUploadConfig {
273
+ interface CFUploadConfig extends CFUploadBaseConfig {
272
274
  /**
273
275
  * 上传进度回调方法
274
276
  * @param e 进度
@@ -284,6 +286,11 @@ interface CFUploadConfig {
284
286
  * 环境配置:网络连接与资源加载
285
287
  */
286
288
  interface CFEnvNetWork {
289
+ /**
290
+ * 移除上传文件时的处理
291
+ * @param config 配置信息
292
+ */
293
+ removeUpload(config: CFUploadBaseConfig): Promise<void>;
287
294
  /**
288
295
  * 上传文件的方法,答题端的上传题需要上传文件,在不同的平台上上传机制不同
289
296
  * 需要独立实现这个方法将文件正确上传到服务器
@@ -476,6 +483,27 @@ interface CFEnvHook {
476
483
  * @param title 标题内容
477
484
  */
478
485
  onTitleChange?(title: string): void;
486
+ /**
487
+ * 开始一个新回复时的回调,
488
+ * 非断点续答询问后选择断点续答或重新开始的时候不算做这种情况之内
489
+ * @param state
490
+ */
491
+ onStartNewSurvey?(state: CFSurveyState): Promise<void>;
492
+ /**
493
+ * 断点续答询问后后选择重新开始时的回调
494
+ * @param state
495
+ */
496
+ onRestartSurvey?(state: CFSurveyState): Promise<void>;
497
+ /**
498
+ * 断点续答询问后选择续答时的回调
499
+ * @param state
500
+ */
501
+ onResumeSurvey?(state: CFSurveyState): Promise<void>;
502
+ /**
503
+ * 当一个回复完成走到结束节点时的回调,此时数据已经提交了。
504
+ * @param state
505
+ */
506
+ onEndSurvey?(state: CFSurveyState): Promise<void>;
479
507
  }
480
508
 
481
509
  /**
@@ -583,17 +611,6 @@ interface CFHostConfig {
583
611
  readonly qStaticHost?: string;
584
612
  }
585
613
 
586
- /**
587
- * 属性设置方法,将fromObj身上的的属性值设置到toObj身上(同Object.assign方法)
588
- * 并可以做一些附加的操作
589
- */
590
- type CFPropSetFn =
591
- /**
592
- * @param toObj 接受设置属性的对象
593
- * @param fromObj 提供设置属性的对象
594
- */
595
- <T>(toObj: T, fromObj: Partial<T>) => void;
596
-
597
614
  /**
598
615
  * 客户端初始化配置信息
599
616
  */
@@ -619,31 +636,6 @@ interface CFSetupOptions {
619
636
  *
620
637
  */
621
638
  clientName?: string; // anti-readonly
622
- /**
623
- * @deprecated 该属性仅为兼容老版UI中使用的emberjs的setProperties暂时保留,即将移除,不要使用这个属性
624
- *
625
- * 该属性已废除,请使用最新标准:使用[[CFEventHub]]来监听`SET_PROPS`来监听变化重新更新UI
626
- * 属性设置辅助方法
627
- * 由于UI中绑定了核心提供的数据结构的某些值,UI中进行操作后回调了核心提供的回调函数
628
- * 核心中的逻辑会更改数据结构中的这些值,核心逻辑中默认是直接更改这些值的。
629
- * 这样的话,大部分框架的UI模板引擎是无法觉察到这个更改的,从而UI上的内容不会正常更新。
630
- * 这时候可以通过设置该方法来使得模板引擎觉察到内容的更改达到更新页面的目的。
631
- *
632
- * 举例:UI中渲染选项时背景颜色绑定了[[CFOption.selected]]属性,
633
- * 选中的选项(option.selected为true)渲染成红色,
634
- * 未选中的选项(option.selected为false)渲染成灰色,
635
- * 现在某个选项初始时是未选中的,根据绑定规则,渲染成了灰色,现在点击该选项,会回调核心
636
- * 逻辑中提供的选项点击回调函数,在该函数中会将option.selected改为true,
637
- * 但是UI模板并不知道这个属性发生了变化,所以依然渲染成了灰色,这时就需要用的这个配置方法。
638
- * 如使用emberjs的时候我们将该方法配置为EmberObject的setProperties方法,如果不配置则
639
- * UI不会得到更新.
640
- * ```typescript
641
- * import {setProperties} from '@ember/object';
642
- * options.setter = setProperties
643
- * ```
644
- * 默认行为:只更新数据,不做其他任何行为。
645
- */
646
- setter?: CFPropSetFn; // anti-readonly
647
639
  /**
648
640
  * 指定该客户端是不是动态加载模板的
649
641
  * 对支持动态加载的客户端,核心会尝试去动态模板服务器上加载动态的模板。
@@ -661,12 +653,12 @@ interface CFSetupOptions {
661
653
  */
662
654
  templatePath?: string; // anti-readonly
663
655
  /**
664
- * 模板树所在地址
656
+ * 模板树所在地址,如果指定一定要指定根目录开始的绝对路径。
665
657
  * 如果是动态加载的,则一定要准备好该属性
666
658
  * 核心会去获取这个文件来了解动态模板的依赖情况,
667
659
  * 如果dynamic属性指定为true,而不提供这个路径,初始化时会报错。
668
660
  * 当前只有web版客户端有可能支持动态模板功能,小程序和本地应用不支持该功能,所以无需配置。
669
- * 默认:空字符串
661
+ * 默认:/tree.json
670
662
  */
671
663
  treeUrl?: string; // anti-readonly
672
664
  /**
@@ -732,30 +724,29 @@ interface CFSetupOptions {
732
724
  /**
733
725
  * 如果觉得核心包中逻辑相关的提示文字多语言翻译不满足你的要求,或者支持的语言不够多
734
726
  * 你可以配置该属性指定使用自己准备的翻译文本,这个配置的每个属性的属性名是语言代号,
735
- * 其属性值是该语言翻译文本(json格式)所在的网络地址
736
- * 比如,核心模块当前仅提供了中文(zh_cn)和英文(en_us)的多语言文本
727
+ * 其属性值是该语言翻译文本对象
728
+ * 比如,核心模块当前仅提供了中文(zh_cn)和英文(en_us)的多语言
737
729
  * 现在你对核心模块的中文翻译是满意的但是对核心模块的英文的翻译内容不满意,
738
730
  * 这样你就可以配置该属性如下内容
739
731
  *
740
- * (我们假设你将多语言文本放到了下面这个网址中)
741
732
  * ```
742
733
  * {
743
- * "en_us": 'https://yousite.com/your-os-client/es_us.json'
734
+ * en_us: {...}
744
735
  * }
745
736
  * ```
746
- * 以上配置会覆盖掉默认的英文翻译,当进行英文翻译时,会只用你提供的这本json作为翻译依据,
737
+ * 以上配置会覆盖掉默认的英文翻译,当进行英文翻译时,会只用你提供的这个对象作为翻译依据,
747
738
  * 核心模块提供的英文翻译会被丢弃
748
739
  *
749
740
  * 如果在此基础上,同时你希望有日文版的多语言翻译,这时你可以添加配置日文翻译文本
750
741
  * ```
751
742
  * {
752
- * "en_us": 'https://yousite.com/your-os-client/es_us.json'
753
- * "ja_jp": 'https://yousite.com/your-os-client/ja_jp.json'
743
+ * en_us: {...}
744
+ * ja_jp: {...}
754
745
  * }
755
746
  * ```
756
747
  * 以上的配置覆盖了英文翻译,同时新增了日文翻译。
757
748
  *
758
- * 每本json要准备的数据格式在[[LANG_ZH_CN]]和[[LANG_EN_US]]中做出了示范.
749
+ * 每个json对象要准备的数据格式在[[LANG_ZH_CN]]中做出了示范.
759
750
  *
760
751
  * 各种语言的代号可参照[百科全书](https://en.wikipedia.org/wiki/Language_localisation)
761
752
  *
@@ -763,7 +754,7 @@ interface CFSetupOptions {
763
754
  *
764
755
  * 默认值:空
765
756
  */
766
- langSrcMap?: { [key: string]: string }; // anti-readonly
757
+ langSrcMap?: { [key: string]: any }; // anti-readonly
767
758
 
768
759
  /**
769
760
  * 设置该方法来监听核心包的多语言变化,当核心包多语言切换时,会调用该方法
@@ -899,6 +890,14 @@ interface CFUtil {
899
890
  * 核心对象
900
891
  */
901
892
  interface CFCore extends CFSetupOptions {
893
+ /**
894
+ * 发布的版本号
895
+ */
896
+ readonly releaseVersion: string;
897
+ /**
898
+ * 发布日期
899
+ */
900
+ readonly releaseDate: string;
902
901
  /**
903
902
  * 主题是否已经更新为何服务器上的一致,还未更新好时,APP页面渲染但是不要显示,可以控制透明度或display。
904
903
  * 等稍后改属性准备好后再显示出来。
@@ -994,10 +993,6 @@ interface CFCore extends CFSetupOptions {
994
993
  * 是否为实时预览
995
994
  */
996
995
  readonly realTimePreview: boolean;
997
- /**
998
- * 是否为轻量版模板预览
999
- */
1000
- readonly liteTemplate: boolean;
1001
996
  /**
1002
997
  * 提示消息是否已挂起,挂起后不会发出提示消息
1003
998
  */
@@ -1592,10 +1587,6 @@ declare const enum EVENT_NAME {
1592
1587
  * 数据发生变更
1593
1588
  */
1594
1589
  SET_PROPS = 'SET_PROPS',
1595
- /**
1596
- * 更新UI事件,跟新UI一般监听SET_PROPS后驱动更新即可,但是RN中有问题,所以RN中使用UPDATE_UI
1597
- */
1598
- UPDATE_UI = 'UPDATE_UI',
1599
1590
  /**
1600
1591
  * 切换节点
1601
1592
  */
@@ -1678,10 +1669,6 @@ declare const enum OPT_MARK {
1678
1669
  * 块状选项
1679
1670
  */
1680
1671
  BLOCK = 'block',
1681
- /**
1682
- * 只有级联题使用,展示成tab嵌套选择
1683
- */
1684
- TABS = 'tabs',
1685
1672
  /**
1686
1673
  * 只有级联题使用,
1687
1674
  * 展示成下拉列表嵌套选择
@@ -2143,37 +2130,6 @@ declare const enum OPTION_TYPE {
2143
2130
  OPTION_COMMENT = 'option_comment',
2144
2131
  }
2145
2132
 
2146
- /**
2147
- * 问题渲染类型集合,下面说明每个类型字符代表的题型
2148
- * @deprecated 即将移除,仅为老UI暂时存在
2149
- */
2150
- declare const enum QUES_TYPE {
2151
- CHOICE = 'choice',
2152
- REGION = 'region',
2153
- INTRO_PAGE = 'intro-page',
2154
- END_PAGE = 'end-page',
2155
- SHORT_TEXT = 'short-text',
2156
- REWARD = 'reward',
2157
- ICON = 'icon',
2158
- LOCATION = 'location',
2159
- LOTTERY = 'lottery',
2160
- RATING = 'rating',
2161
- RANGE = 'range',
2162
- MATRIX = 'matrix',
2163
- DROPDOWN = 'dropdown',
2164
- PICTURE_CHOICE = 'picture-choice',
2165
- RANKING = 'ranking',
2166
- FILE_UPLOAD = 'file-upload',
2167
- VERIFICATION = 'verification',
2168
- WEIGHT = 'weight',
2169
- CASCADE = 'cascade',
2170
- HOT_SPOT = 'hot-spot',
2171
- HEAT_MAP = 'heat-map',
2172
- SLIDE_RATE = 'slide-rate',
2173
- MAX_DIFF = 'max-diff',
2174
- NO_VIEW = 'no-view',
2175
- }
2176
-
2177
2133
  /**
2178
2134
  * 变量解析文字是的图片保留模式
2179
2135
  */
@@ -2289,73 +2245,6 @@ declare const enum RESPONSE_STATUS {
2289
2245
  TEST = 'test',
2290
2246
  }
2291
2247
 
2292
- /**
2293
- * 输入内容控制类型枚举
2294
- * @deprecated 不要使用,即将移除,仅为老UI暂时存在
2295
- */
2296
- declare const enum INPUT_RULE {
2297
- /**
2298
- * 字符数量控制
2299
- */
2300
- COUNT = 'count',
2301
- /**
2302
- * 日期
2303
- */
2304
- DATE = 'date',
2305
- /**
2306
- * 日期范围
2307
- */
2308
- DATE_RANGE = 'dateRange',
2309
- /**
2310
- * 邮箱
2311
- */
2312
- EMAIL = 'email',
2313
- /**
2314
- * 小数
2315
- */
2316
- FLOAT = 'float',
2317
- /**
2318
- * 整数
2319
- */
2320
- INT = 'int',
2321
- /**
2322
- * 时间
2323
- */
2324
- TIME = 'time',
2325
- /**
2326
- * 手机号码
2327
- */
2328
- MOBILE = 'mobile',
2329
- /**
2330
- * 邮编
2331
- */
2332
- POSTCODE = 'postCode',
2333
- /**
2334
- * 时间范围
2335
- */
2336
- TIME_RANGE = 'timeRange',
2337
- /**
2338
- * 时间间隔
2339
- */
2340
- TIME_SPAN = 'timeSpan',
2341
- /**
2342
- * 网址
2343
- */
2344
- LINK = 'link',
2345
- /**
2346
- * 自动提示填充内容
2347
- */
2348
- AUTO_COMPLETE = 'autoComplete',
2349
- /**
2350
- * 下拉列表选择内容
2351
- */
2352
- DROPDOWN = 'dropdown',
2353
- /**
2354
- * 不要求
2355
- */
2356
- NO_VALIDATION = 'noValidation',
2357
- }
2358
-
2359
2248
  /**
2360
2249
  * 选项输入与验证类型
2361
2250
  */
@@ -2824,7 +2713,7 @@ interface ICFOptDisplayInfo {
2824
2713
  readonly option_ids: string[];
2825
2714
  }
2826
2715
 
2827
- type IOptionValue = number | string | ICoords | CFMaxDiffRecord[];
2716
+ type IOptionAnswerValue = number | string | ICoords | CFMaxDiffRecord[];
2828
2717
 
2829
2718
  /**
2830
2719
  * 一般与选项一一对应答案项数据结构
@@ -2834,7 +2723,7 @@ interface ICFAnswerItem {
2834
2723
  /**
2835
2724
  * 输入值
2836
2725
  */
2837
- readonly value: IOptionValue;
2726
+ readonly value: IOptionAnswerValue;
2838
2727
  /**
2839
2728
  * 是否为其他选项
2840
2729
  */
@@ -3145,12 +3034,12 @@ interface CFI18n {
3145
3034
  /**
3146
3035
  * 获取多语言资源配置
3147
3036
  */
3148
- getLangSrcMap(): SignStrStr;
3037
+ getLangSrcMap(): SignStrAny;
3149
3038
  /**
3150
3039
  * 合并多言翻译资源配置
3151
3040
  * @ignore
3152
3041
  */
3153
- mergeLangSrcMap(map: SignStrStr): void;
3042
+ mergeLangSrcMap(map: SignStrAny): void;
3154
3043
  /**
3155
3044
  * messageformat类型,参考https://github.com/messageformat/messageformat
3156
3045
  * 这是核心包中使用的多语言翻译工具
@@ -3237,56 +3126,31 @@ interface CFClient {
3237
3126
  * 2. web核心包:`@choiceform/os-client-core/dist/web-core`, 自带了web端运行环境配置,方便web端直接使用
3238
3127
  * 携带了ts类型包。
3239
3128
  *
3240
- * 古董版纯核心包,经babel处理过能支持到ie10
3129
+ * 纯核心包
3241
3130
  */
3242
3131
  declare module '@choiceform/os-client-core' {
3243
3132
  const CFClient: CFClient;
3244
3133
  export = CFClient;
3245
3134
  }
3246
- /**
3247
- * 现代版纯核心包,未经过babel处理
3248
- */
3249
- declare module '@choiceform/os-client-core/dist/modern/core' {
3250
- const CFClient: CFClient;
3251
- export = CFClient;
3252
- }
3253
3135
 
3254
3136
  /**
3255
3137
  * 自带了web端运行环境配置web核心包
3256
- * 古董版web核心包,经babel处理过能支持到ie10
3138
+ * web核心包
3257
3139
  */
3258
3140
  declare module '@choiceform/os-client-core/dist/web-core' {
3259
3141
  const CFClient: CFClient;
3260
3142
  export = CFClient;
3261
3143
  }
3262
3144
 
3263
- /**
3264
- * 自带了web端运行环境配置web核心包
3265
- * 现代版web核心包,未经babel处理
3266
- */
3267
- declare module '@choiceform/os-client-core/dist/modern/web-core' {
3268
- const CFClient: CFClient;
3269
- export = CFClient;
3270
- }
3271
3145
 
3272
3146
  /**
3273
3147
  * 分离的辅助包:填空自动提示查询功能包
3274
- * 古董版,经babel处理过能支持到ie10
3275
3148
  */
3276
3149
  declare module '@choiceform/os-client-core/dist/support/atcp' {
3277
3150
  const CFAtcp: CFAtcp;
3278
3151
  export = CFAtcp;
3279
3152
  }
3280
3153
 
3281
- /**
3282
- * 分离的辅助包:填空自动提示查询功能包
3283
- * 古董版,经babel处理过能支持到ie10
3284
- */
3285
- declare module '@choiceform/os-client-core/dist/modern/support/atcp' {
3286
- const CFAtcp: CFAtcp;
3287
- export = CFAtcp;
3288
- }
3289
-
3290
3154
  //#endregion
3291
3155
 
3292
3156
 
@@ -3600,14 +3464,6 @@ interface ICFNode {
3600
3464
  * 强制自动跳过的原因
3601
3465
  */
3602
3466
  readonly forceSkipReason?: SKIP_REASON;
3603
- /**
3604
- * 仅在预览时显示
3605
- * 替身节点题目是在正式答题的时候不要显示的题目
3606
- * 但是如果该属性为true,则在预览的时候仍然要显示,但是不可以被更改.
3607
- * @deprecated 不要使用,仅老UI使用,不久后将废除,新UI转为使用readonly属性
3608
- * @ignore
3609
- */
3610
- readonly shadowNodes: boolean;
3611
3467
  /**
3612
3468
  * 该题目只需要显示,不能更改答案
3613
3469
  * UI上要禁用用户操作
@@ -3766,7 +3622,7 @@ interface ICFOutputNodeMixin extends ICFNode {
3766
3622
  * 主输入输出类型节点
3767
3623
  * @ignore
3768
3624
  */
3769
- interface ICFInOutNodeMixin extends ICFInputNodeMixin, ICFOutputNodeMixin {}
3625
+ interface ICFInOutNodeMixin extends ICFInputNodeMixin, ICFOutputNodeMixin { }
3770
3626
 
3771
3627
  /**
3772
3628
  * 选项类型节点掺元
@@ -3866,9 +3722,9 @@ interface ICFValidationNodeMixin extends ICFNode {
3866
3722
  */
3867
3723
  interface ICFSubjectNode
3868
3724
  extends ICFInOutNodeMixin,
3869
- ICFOptNodeMixin,
3870
- CFMediaNodeMixin,
3871
- ICFValidationNodeMixin {
3725
+ ICFOptNodeMixin,
3726
+ CFMediaNodeMixin,
3727
+ ICFValidationNodeMixin {
3872
3728
  /**
3873
3729
  * 是否为必答题
3874
3730
  * @ignore
@@ -4088,7 +3944,7 @@ interface ICFHeatMapNode extends ICFSubjectNode, ICFImageMapBase {
4088
3944
  * 填空节点
4089
3945
  * @ignore
4090
3946
  */
4091
- interface ICFFillNode extends ICFSubjectNode, ICFFillNodeMixin {}
3947
+ interface ICFFillNode extends ICFSubjectNode, ICFFillNodeMixin { }
4092
3948
 
4093
3949
  /**
4094
3950
  * 级联节点
@@ -4174,11 +4030,6 @@ interface ICFMenuNode extends ICFSubjectNode, ICFMultiSelectNodeMixin {
4174
4030
  * UI需要渲染,选中后的值
4175
4031
  */
4176
4032
  readonly value: string;
4177
- /**
4178
- * 展示图标
4179
- * @deprecated 仅兼容老UI使用,后续会移除,新UI不要使用
4180
- */
4181
- readonly icon: string;
4182
4033
  }
4183
4034
 
4184
4035
  /**
@@ -4186,32 +4037,40 @@ interface ICFMenuNode extends ICFSubjectNode, ICFMultiSelectNodeMixin {
4186
4037
  * typescript会进行类型合并,这样在UI端就可以自己随意往其中塞数据,
4187
4038
  * 并且可以获得类型辨析功能
4188
4039
  */
4189
- interface IRateItemCustomData {}
4040
+ interface IRateItemCustomData { }
4190
4041
 
4191
4042
  /**
4192
- * 评分项标准
4043
+ * 拥有自定义图标的对象规范
4193
4044
  */
4194
- interface CFRateItem {
4045
+ interface CFCustomIconOwner {
4195
4046
  /**
4196
- * 由于UI端不可以更改任何核心包提供的数据
4197
- * 但是有时候可能需要放一些自定的数据在评分项上
4198
- * 这个属性就是专门给UI端放置自定义数据的地方
4199
- * 默认为一个空对象
4047
+ * 自定义图标原始对象
4200
4048
  */
4201
- customData: IRateItemCustomData; // anti-readonly
4049
+ readonly icon: ICFNodeIcon;
4202
4050
  /**
4203
- * 图标地址
4051
+ * 解析后的未激活或未选中时的图标地址
4204
4052
  */
4205
- readonly url: string;
4053
+ readonly normalIconUrl: string;
4206
4054
  /**
4207
- * 激活时的图标地址
4055
+ * 解析后的被激活或者被选中时的图标url
4056
+ * 未激活或者未选中时展示[[CFCustomIconOwner.normalIconUrl]]
4057
+ *
4058
+ * 激活或者选中时选中时展示[[CFCustomIconOwner.activeIconUrl]]
4208
4059
  */
4209
- readonly urlActive: string;
4060
+ readonly activeIconUrl: string;
4061
+ }
4062
+
4063
+ /**
4064
+ * 评分项标准
4065
+ */
4066
+ interface CFRateItem extends CFCustomIconOwner {
4210
4067
  /**
4211
- * 展示的图标
4212
- * @ignore
4068
+ * 由于UI端不可以更改任何核心包提供的数据
4069
+ * 但是有时候可能需要放一些自定的数据在评分项上
4070
+ * 这个属性就是专门给UI端放置自定义数据的地方
4071
+ * 默认为一个空对象
4213
4072
  */
4214
- readonly icon: ICFNodeIcon;
4073
+ customData: IRateItemCustomData; // anti-readonly
4215
4074
  /**
4216
4075
  * 展示的文本
4217
4076
  */
@@ -4618,11 +4477,6 @@ interface CFNodeLayout extends CFThemeBase {
4618
4477
  * 选项标记与展示方式
4619
4478
  */
4620
4479
  readonly optMark: OPT_MARK;
4621
- /**
4622
- * 选项标记与展示方式
4623
- * @deprecated 为老UI准备的别名,不要使用
4624
- */
4625
- readonly optMarkOld: string;
4626
4480
  /**
4627
4481
  * 选项数值方式对齐规则
4628
4482
  */
@@ -4777,7 +4631,7 @@ interface ICFAutoInputConfig {
4777
4631
  /**
4778
4632
  * 验证选项数据
4779
4633
  */
4780
- interface ICFValidateOptBase {
4634
+ interface CFValidateOptBase {
4781
4635
  /**
4782
4636
  * 日期级别
4783
4637
  * 1: 年
@@ -4833,7 +4687,7 @@ interface ICFValidateOptBase {
4833
4687
  readonly timeGrade?: number;
4834
4688
  /**
4835
4689
  * 供以选择的文字列表
4836
- * 当[[CFOption.inputRule]]是`dropdown`需要提供一个下拉列表选择空间
4690
+ * 当[[CFValidateOptBase.fillType]]是`list_select`需要提供一个下拉列表选择空间
4837
4691
  * 空间中药展示的项目列表文字,就使用该属性的文字列表
4838
4692
  * 当选中某一个项时,就将该项的文字当做输入内容
4839
4693
  * 可以选择多项,每项之间用半角逗号分隔.
@@ -4858,7 +4712,7 @@ interface ICFValidateOptBase {
4858
4712
  readonly simpleCplt?: boolean;
4859
4713
  /**
4860
4714
  * 自动提示数据
4861
- * 当[[CFOption.inputRule]]是`autoComplete`需要提供一个自动提示输入控件
4715
+ * 当[[CFValidateOptBase.fillType]]是`auto_complete`需要提供一个自动提示输入控件
4862
4716
  * 该控件在输入任何字符内容时,这些字符并不是答案,而是搜索字符
4863
4717
  * 需要使用从@choiceform/os-client-core/dist/support/atcp中提供的[[CFAtcp.getAutoCompleteData]]方法
4864
4718
  * 来搜索能匹配的提示项目,然后这些项目的name和icon属性显示为一个个标签到一个自动提示列表中供用户选择
@@ -4902,7 +4756,7 @@ interface ICFValidateOptBase {
4902
4756
  /**
4903
4757
  * 验证选项类型
4904
4758
  */
4905
- interface CFValidateOpt extends CFOption, ICFValidateOptBase {}
4759
+ interface CFValidateOpt extends CFOption, CFValidateOptBase { }
4906
4760
 
4907
4761
  /**
4908
4762
  * 级联信息
@@ -4964,7 +4818,7 @@ interface CFCascade {
4964
4818
  * typescript会进行类型合并,这样在UI端就可以自己随意往其中塞数据,
4965
4819
  * 并且可以获得类型辨析功能
4966
4820
  */
4967
- interface IOptionCustomData {}
4821
+ interface IOptionCustomData { }
4968
4822
 
4969
4823
  /**
4970
4824
  * 通用选项类
@@ -4987,11 +4841,6 @@ interface CFOption extends ICFPort {
4987
4841
  * 辅助输入数据
4988
4842
  */
4989
4843
  readonly assistValue: CFAssistProps;
4990
- /**
4991
- * 图标,代表不同选项的形象的图标,UI中可照此渲染
4992
- * @deprecated 仅为了兼容老UI暂时保留,新UI不要使用,在新的规则中,新UI可以自己判断情况,自由渲染
4993
- */
4994
- readonly icon: string;
4995
4844
  /**
4996
4845
  * @ignore
4997
4846
  */
@@ -5018,7 +4867,7 @@ interface CFOption extends ICFPort {
5018
4867
  * 内容根据用户的输入变化而变化
5019
4868
  * 对于包含输入内容的选项,UI需要渲染该项
5020
4869
  */
5021
- readonly value: string | number;
4870
+ readonly value: string;
5022
4871
  /**
5023
4872
  * @ignore
5024
4873
  */
@@ -5074,7 +4923,7 @@ interface CFOption extends ICFPort {
5074
4923
  /**
5075
4924
  * @ignore
5076
4925
  */
5077
- readonly cachedValue: number | string;
4926
+ readonly cachedValue: string;
5078
4927
  /**
5079
4928
  * 是否为其他选项
5080
4929
  */
@@ -5088,42 +4937,6 @@ interface CFOption extends ICFPort {
5088
4937
  * @ignore
5089
4938
  */
5090
4939
  readonly optComment: string;
5091
- /**
5092
- * @deprecated 不要使用,仅为老UI暂时保留,后续会移除, 新UI改用[[ICFValidateOptBase.fillType]]
5093
- * 填空选项的输入规则,有些输入方式需要提供输入控件支持
5094
- * 有些则只需要提供普通输入框
5095
- * 所有方式都可以根据类型显示对应的提示(图标?,文字? UI自己决定)
5096
- * 参照[[INPUT_RULE]],有以下几中方式:
5097
- *
5098
- * + 输入字符,UI提供普通的输入框即可
5099
- *
5100
- * + 输入日期,UI需要提供日期输入控件
5101
- *
5102
- * + 输入日期范围,UI需要提供日期输入范围控件
5103
- *
5104
- * + 输入邮箱地址,UI提供普通输入框即可
5105
- *
5106
- * + 输入小数,UI需要提供数值输入控件
5107
- *
5108
- * + 输入整数,UI需要提供数值输入控件,且仅允许输入整数
5109
- *
5110
- * + 输入手机号码,UI仅需提供普通输入框
5111
- *
5112
- * + 输入邮政编码,UI仅需提供普通输入框
5113
- *
5114
- * + 输入时间范围,UI需要提供输入时间范围的控件
5115
- *
5116
- * + 输入时间间隔,UI需要提供输入时间间隔的控件
5117
- *
5118
- * + 输入网址,UI提供普通输入框即可
5119
- *
5120
- * + 自动提示输入模式,UI需要提供自动提示输入控件,提示内容参照[[ICFValidateOptBase.completeGroups]]
5121
- *
5122
- * + 下拉列表方式输入,UI需要提供一个下拉列表选择空间,列表中要展示的项目参照[[ICFValidateOptBase.selectList]]
5123
- *
5124
- * + 无要求,UI提供简单的输入框即可
5125
- */
5126
- readonly inputRule: INPUT_RULE;
5127
4940
 
5128
4941
  /**
5129
4942
  * @ignore
@@ -5193,19 +5006,8 @@ interface CFOption extends ICFPort {
5193
5006
  /**
5194
5007
  * 图标题选项
5195
5008
  */
5196
- interface CFIconOption extends CFOption {
5197
- /**
5198
- * 选项未被选中时的图标url
5199
- */
5200
- readonly icon: string;
5201
- /**
5202
- * 选项被选中时的图标url
5203
- * 图标题选项的在选中和未选中时展示的图标不同
5204
- * 未选中是展示[[CFIconOption.icon]]
5205
- *
5206
- * 选中时展示[[CFIconOption.iconActive]]
5207
- */
5208
- readonly iconActive: string;
5009
+ interface CFSelectIconOption extends CFOption, CFCustomIconOwner {
5010
+
5209
5011
  }
5210
5012
 
5211
5013
  /**
@@ -5225,7 +5027,11 @@ interface CFIconMarkOption extends CFOption {
5225
5027
  /**
5226
5028
  * 图形数量
5227
5029
  */
5228
- readonly count: number;
5030
+ readonly iconCount: number;
5031
+ /**
5032
+ * 图形名称
5033
+ */
5034
+ readonly iconName: string;
5229
5035
  }
5230
5036
 
5231
5037
  /**
@@ -5261,7 +5067,7 @@ interface CFValueMarkOption extends CFOption {
5261
5067
  /**
5262
5068
  * 演示评价选项
5263
5069
  */
5264
- interface CFSlideRateOption extends CFOption, CFSelectImageOption {}
5070
+ interface CFSlideRateOption extends CFOption, CFSelectImageOption { }
5265
5071
 
5266
5072
  /**
5267
5073
  * 权重选项
@@ -5343,16 +5149,16 @@ interface CFSelectImageOption extends CFOption {
5343
5149
  */
5344
5150
  interface ICFUploadResult {
5345
5151
  /**
5346
- * 上传后的在服务器上的文件名
5152
+ * 上传后的在服务器上的文件路径
5347
5153
  */
5348
- readonly name: string;
5154
+ readonly filePath: string;
5349
5155
  /**
5350
5156
  * 上传后的文件内容
5351
5157
  * 如果是图片则是图片的base64内容
5352
5158
  * 如果是其他文件,则是原始文件名绘制成canvas后的base64内容
5353
5159
  * UI需要渲染该内容为一个图片
5354
5160
  */
5355
- readonly value: string | number;
5161
+ readonly value: string;
5356
5162
  /**
5357
5163
  * 被压缩后的内容,适用于缓存,
5358
5164
  * 因为原始内容可能非常大会撑爆浏览器缓存,
@@ -5577,7 +5383,7 @@ interface ICFOptionRefer {
5577
5383
  /**
5578
5384
  * @ignore
5579
5385
  */
5580
- interface ICFDataOption extends CFOption, CFIconOption, CFSelectImageOption {}
5386
+ interface ICFDataOption extends CFOption, CFSelectIconOption, CFSelectImageOption { }
5581
5387
 
5582
5388
 
5583
5389
  // -------------- types/outer/option/mapping.d.ts ---------------
@@ -5674,13 +5480,6 @@ interface CFQuestion extends ICFNode, ICFTypeInfo {
5674
5480
  * @ignore
5675
5481
  */
5676
5482
  readonly origin: ICFNode;
5677
- /**
5678
- * 自动提供好的题目渲染类型
5679
- * 你可以根据这个属性来决定渲染不同题目的模板
5680
- * 如choice的时候渲染选择题,short-text的时候渲染成填空题
5681
- * @deprecated 即将移除,仅为老UI暂时存在,不要使用
5682
- */
5683
- readonly quesType: QUES_TYPE;
5684
5483
  /**
5685
5484
  * 选择类型
5686
5485
  * 对于选择类型的题目有效,用于确定这是单选模式和多选模式
@@ -5875,14 +5674,14 @@ interface ICFMatrixResult {
5875
5674
  * 图标题
5876
5675
  * 渲染规则和选择题一样,参考[[CFSelectQuestion]]
5877
5676
  * 特殊点:
5878
- * 图标题的选项是[[CFIconOption]]类型,可能包含图标.
5879
- * 需要根据[[CFIconOption.icon]]和[[CFIconOption.iconActive]]渲染
5677
+ * 图标题的选项是[[CFSelectIconOption]]类型,可能包含图标.
5678
+ * 需要根据[[CFSelectIconOption.normalIconUrl]]和[[CFSelectIconOption.activeIconUrl]]渲染
5880
5679
  */
5881
5680
  interface CFSelectIconQuestion extends CFSubjectQuestion {
5882
5681
  /**
5883
5682
  * 图标选项列表
5884
5683
  */
5885
- readonly options: CFIconOption[];
5684
+ readonly options: CFSelectIconOption[];
5886
5685
  }
5887
5686
 
5888
5687
  /**
@@ -6125,7 +5924,7 @@ interface CFHeatMapQuestion extends ICFHeatMapNode, CFSubjectQuestion {
6125
5924
  * 基本内容请参考选择题[[CFSelectQuestion]]
6126
5925
  * 特殊点,填空题的普通选项,都是输入型的选项[[CFValidateOpt.inputType]]为`input`
6127
5926
  *
6128
- * 关注[[CFValidateOpt.inputRule]]的值,它定义了很多输入方式,在该属性上说明了每种方式应该渲染成什么样子
5927
+ * 关注[[CFValidateOpt.fillType]]的值,它定义了很多输入方式,在该属性上说明了每种方式应该渲染成什么样子
6129
5928
  *
6130
5929
  * 选项被输入后,需要调用[[CFUIEventHandler.handleOptionInput]]方法
6131
5930
  *
@@ -6562,7 +6361,7 @@ interface CFLotteryPage extends ICFLotteryNode, CFQuestion {
6562
6361
  *
6563
6362
  * 而是,渲染出[[CFRegionQuestion.regions]]中的省市县下拉列表,让答题者选择省市区.
6564
6363
  *
6565
- * 要考虑[[CFRegionQuestion.grade]]属性,它决定询问地区的级别,则只渲染到该级别的列表.
6364
+ * 要考虑[[CFRegionQuestion.infoRange]]属性,它决定询问地区的级别,则只渲染到该级别的列表.
6566
6365
  *
6567
6366
  * 答题者选择地区列表后,需要回调[[CFUIEventHandler.handleManualLocate]]方法
6568
6367
  */
@@ -6581,14 +6380,6 @@ interface CFRegionQuestion extends CFSubjectQuestion {
6581
6380
  * 地域列表,需要将这几层地域信息渲染成一个多层列表供答题者选择
6582
6381
  */
6583
6382
  readonly regions: CFRegionProvince[];
6584
- /**
6585
- * 手动定位时的省市区选择级数,用于决定下拉列表渲染到多少级.
6586
- * 1: 只收集省级信息
6587
- * 2: 收集省-市信息
6588
- * 3: 收集省-市-县信息
6589
- * @deprecated 不要使用,老UI兼容保留,新版使用infoRange
6590
- */
6591
- readonly grade: number;
6592
6383
  /**
6593
6384
  * 定位结果
6594
6385
  * @ignore
@@ -7376,11 +7167,6 @@ interface CFRealtimeState extends CFSurveyState, CFStartState {
7376
7167
  * 中奖时间,预览奖励页面时才存在
7377
7168
  */
7378
7169
  readonly rewardTime?: string;
7379
- /**
7380
- * @deprecated
7381
- * 兼容老数据专用,即将移除,新UI不要使用
7382
- */
7383
- readonly quesType: 'reward';
7384
7170
  }
7385
7171
 
7386
7172
 
@@ -7482,11 +7268,6 @@ interface ICFRewardInfo extends ICFGiftNode, ICFLotteryResult, ICFCustomLogo {
7482
7268
  * @ignore
7483
7269
  */
7484
7270
  readonly quesTitle: string;
7485
- /**
7486
- * 问题渲染类型
7487
- * @deprecated 兼容老UI而存在,后续会被移除,不要使用
7488
- */
7489
- readonly quesType: string;
7490
7271
  /**
7491
7272
  * 图片列表
7492
7273
  */
@@ -7579,17 +7360,6 @@ interface CFRewardState extends ICFRewardInfo, CFStateBase {
7579
7360
  * 同description
7580
7361
  */
7581
7362
  readonly summary: string;
7582
- /**
7583
- * 用于渲染的图标
7584
- * @deprecated 即将移除,新UI不要使用
7585
- */
7586
- readonly icon: string;
7587
- /**
7588
- * 节点类渲染类型
7589
- * 兼容老UI
7590
- * @deprecated 即将移除,新UI不要使用
7591
- */
7592
- readonly nodeType: 'reward';
7593
7363
  /**
7594
7364
  * 奖励时间
7595
7365
  */
@@ -8074,13 +7844,6 @@ interface CFSurveyState
8074
7844
  * 预览工具信息
8075
7845
  */
8076
7846
  readonly previewTool?: CFPreviewTool;
8077
- /**
8078
- * 答案断点续答工具
8079
- * answerResumer的别名
8080
- * @deprecated 即将移除,新UI不要使用, 该属性是老UI使用.新产品中请使用answerResumer
8081
- * @ignore
8082
- */
8083
- readonly memoryTool?: CFAnswerResumer;
8084
7847
  /**
8085
7848
  * 答案断点续答工具
8086
7849
  */
@@ -8707,12 +8470,12 @@ interface CFPreviewBookmark {
8707
8470
  * @param item 预览历史项
8708
8471
  * @param event 时间参数
8709
8472
  */
8710
- deleteBookmark(item: CFPreviewBookmarkData): void;
8473
+ deleteBookmark(item: CFPreviewBookmarkData): Promise<void>;
8711
8474
  /**
8712
8475
  * 点击保存当前预览记录为历史项的按钮时的回调
8713
8476
  * @param name 用户填入的项目名
8714
8477
  */
8715
- saveBookmarks(name: string): void;
8478
+ saveBookmarks(name: string): Promise<void>;
8716
8479
  /**
8717
8480
  * 选择从文件系统上传导入书签
8718
8481
  */
@@ -8720,7 +8483,7 @@ interface CFPreviewBookmark {
8720
8483
  /**
8721
8484
  * 导出某个书签下载到为文件系统
8722
8485
  */
8723
- downloadBookmark(item: CFPreviewBookmarkData): void;
8486
+ downloadBookmark(item: CFPreviewBookmarkData): Promise<void>;
8724
8487
  }
8725
8488
 
8726
8489
  /**
@@ -8868,6 +8631,32 @@ interface CFQueryParams {
8868
8631
  * 预览模式下会无视该参数
8869
8632
  */
8870
8633
  readonly offline_task_id?: string;
8634
+ /**
8635
+ * 离线问卷id,只有离线模式的时候会传入。
8636
+ * 正式答题的时候,url是没有携带问卷id的,而是携带的收集器代码
8637
+ * 问卷id都是获取问卷数据以后才能获取到的。
8638
+ *
8639
+ * 而离线的时候要很早就访问本地离线专属资源,这时候还没有问卷id。
8640
+ *
8641
+ * 所以依赖url参数上传输一个过来
8642
+ *
8643
+ * 离线模式下核心包需要
8644
+ *
8645
+ * 1. 拦截api通过通讯转发给app
8646
+ *
8647
+ * 2. 有些资源是写死的地址,编程模块中会直接通过ajax去请求这些资源,如多语言文本等,
8648
+ * 可以在发起ajax请求的时候去拦截这些url,然后转成本地地址,在发出请求。
8649
+ *
8650
+ * 3. cfpd中有些资源,如图片,视频,图标等保存的是一个缺少主机名的路径,后续通过配置中的cdn主机名拼接这些路径形成一个完成的url,
8651
+ * 这些资源一般不是通过ajax变成方式去请求的,而是浏览器直接发起请求的,所以无法在发出请求的时候去拦截,而是应该事先就把地址纠正掉。
8652
+ * 需要篡改主机配置中的cdn主机地址,使得通过cdn主机地址拼接起来的cfpd中提供的url地址直接是指向本地的。
8653
+ *
8654
+ * 4. cfpd中还有些资源是写死的的地址,如自动提示图标,也是直接有浏览器请求的,需要在解析cfpd的时候去篡改掉这些地址。
8655
+ *
8656
+ * 5. 还有fake接口,是通过addScript添加到头部的,这个可以在addScript中拦截
8657
+ *
8658
+ */
8659
+ readonly offline_survey_id?: string;
8871
8660
  /**
8872
8661
  * key1的别名
8873
8662
  */
@@ -8937,14 +8726,10 @@ interface CFQueryParams {
8937
8726
  */
8938
8727
  readonly infer_collector_id?: string;
8939
8728
  /**
8940
- * 收集器id,这个参数是必须的,如果是预览的时候则同问卷id一样
8941
- * 正式答题的时候则是一个收集器短id
8729
+ * 收集器代码,这个参数是必须的,如果是预览的时候则同问卷id一样
8730
+ * 正式答题的时候则是一个收集器代码
8942
8731
  */
8943
8732
  readonly sid: string;
8944
- /**
8945
- * 轻量版模板查看模式
8946
- */
8947
- readonly lite_template: string;
8948
8733
  /**
8949
8734
  * @ignore
8950
8735
  */
@@ -9170,8 +8955,8 @@ interface ICFOptionCache {
9170
8955
  readonly point: ICoords;
9171
8956
  readonly records: CFMaxDiffRecord[];
9172
8957
  readonly sortNo: number;
9173
- readonly value: string | number;
9174
- readonly name: string;
8958
+ readonly value: string;
8959
+ readonly filePath: string;
9175
8960
  readonly fileName: string;
9176
8961
  readonly isImage: boolean;
9177
8962
  readonly fileType: string;