@polyv/answer-card-ui-launch 2.2.0 → 2.4.0-rc-20260514.5

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.
Files changed (5) hide show
  1. package/index.cjs.js +496 -149
  2. package/index.es.d.ts +773 -83
  3. package/index.es.js +35213 -19200
  4. package/index.umd.js +495 -148
  5. package/package.json +1 -1
package/index.es.d.ts CHANGED
@@ -2,21 +2,40 @@ import { AnswerCard } from '@polyv/answer-card-sdk';
2
2
  import { ComponentOptionsMixin } from 'vue';
3
3
  import { ComputedRef } from 'vue';
4
4
  import { DefineComponent } from 'vue';
5
+ import { EmitFuncType } from '@polyv/vue-components';
5
6
  import { ExtractPropTypes } from 'vue';
7
+ import { PlatformQuestionnaireItemData } from '@polyv/ui-shared';
8
+ import { PlatformQuestionnaireItemData as PlatformQuestionnaireItemData_2 } from '@polyv/ui-shared/src/hooks/use-platform-questionnaire-popup';
9
+ import { PlatformQuestionnairePageContentData } from '@polyv/ui-shared';
10
+ import { PlatformQuestionnairePageContentData as PlatformQuestionnairePageContentData_2 } from '@polyv/ui-shared/src/hooks/use-platform-questionnaire-popup';
11
+ import { PlatformQuestionnairePreviewQuestionData } from '@polyv/ui-shared';
6
12
  import { QuestionAnswerType } from '@polyv/questionnaire-sdk';
7
13
  import { QuestionContent } from '@polyv/answer-card-sdk';
14
+ import { QuestionDocumentOption } from '@polyv/question-bank/shared';
8
15
  import { QuestionItem } from '@polyv/questionnaire-sdk';
16
+ import { QuestionNode } from '@polyv/question-bank/shared';
17
+ import { QuestionNode as QuestionNode_2 } from '@polyv/question-bank';
18
+ import { QuestionNodeTypeValue } from '@polyv/question-bank/shared';
9
19
  import { QuestionStatus } from '@polyv/answer-card-sdk';
10
20
  import { QuestionType } from '@polyv/answer-card-sdk';
11
21
  import { QuestionTypeEnum } from '@polyv/answer-card-sdk';
12
22
  import { Ref } from 'vue';
13
23
  import { Statistics } from '@polyv/answer-card-sdk';
14
24
  import { ValidatorFunction } from 'vue-types/dist/types';
25
+ import { VueEmit } from '@polyv/vue-components';
15
26
  import { VueProps } from '@polyv/vue-components';
16
27
  import { VueTypeValidableDef } from 'vue-types';
17
28
  import { VueTypeValidableDef as VueTypeValidableDef_2 } from 'vue-types';
18
29
  import { WritableComputedRef } from 'vue';
19
30
 
31
+ export declare interface AnswerCardLaunchBaseProps {
32
+ answerCardTarget: AnswerCard;
33
+ canStart?: boolean;
34
+ cantStartTips?: string;
35
+ defaultLimitTimeAnswer?: boolean;
36
+ defaultLimitDuration?: number;
37
+ }
38
+
20
39
  export declare const AnswerCardLaunchDetail: DefineComponent< {
21
40
  answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
22
41
  required: true;
@@ -65,10 +84,10 @@ default: number;
65
84
  }, {
66
85
  refreshDetail: () => Promise<void>;
67
86
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
68
- input: (_value: boolean) => void;
69
- stop: (_questionId: string) => void;
70
- close: () => void;
71
- start: (_questionId: string) => void;
87
+ input: (arg: boolean) => void;
88
+ stop: (arg: string) => void;
89
+ close: (arg?: void | undefined) => void;
90
+ start: (arg: string) => void;
72
91
  }, string, Readonly<ExtractPropTypes< {
73
92
  answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
74
93
  required: true;
@@ -117,26 +136,19 @@ default: number;
117
136
  }>>, {
118
137
  questionId: string;
119
138
  defaultLimitTimeAnswer: boolean;
139
+ value: boolean;
120
140
  canStart: boolean;
121
141
  cantStartTips: string;
122
142
  defaultLimitDuration: number;
123
- value: boolean;
124
143
  launchStatus: string;
125
144
  launchSubmittedCount: number;
126
145
  }>;
127
146
 
128
- declare type AnswerCardLaunchDetailEmit = {
129
- (event: "input", value: boolean): void;
130
- (event: "close"): void;
131
- (event: "stop", questionId: string): void;
132
- (event: "start", questionId: string): void;
133
- };
134
-
135
- export declare const answerCardLaunchDetailEmits: {
136
- input: (_value: boolean) => boolean;
137
- close: () => boolean;
138
- stop: (_questionId: string) => boolean;
139
- start: (_questionId: string) => boolean;
147
+ export declare const answerCardLaunchDetailEmits: () => {
148
+ input: EmitFuncType<boolean>;
149
+ close: EmitFuncType<void>;
150
+ stop: EmitFuncType<string>;
151
+ start: EmitFuncType<string>;
140
152
  };
141
153
 
142
154
  export declare const answerCardLaunchDetailProps: () => {
@@ -196,6 +208,26 @@ export declare const answerCardLaunchDetailProps: () => {
196
208
  };
197
209
  };
198
210
 
211
+ export declare interface AnswerCardLaunchEndPayload {
212
+ questionId: string;
213
+ question?: QuestionContent;
214
+ total: number;
215
+ optionCounts: number[];
216
+ }
217
+
218
+ export declare interface AnswerCardLaunchEventPayload {
219
+ source?: 'pc' | 'mobile' | 'external';
220
+ target?: 'pc' | 'mobile' | 'all';
221
+ reason?: AnswerCardLaunchRefreshReason;
222
+ questionId?: string;
223
+ templateId?: string;
224
+ }
225
+
226
+ export declare interface AnswerCardLaunchExportPayload {
227
+ questionId: string;
228
+ url?: string;
229
+ }
230
+
199
231
  export declare const AnswerCardLaunchList: DefineComponent< {
200
232
  answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
201
233
  required: true;
@@ -220,12 +252,22 @@ default: number;
220
252
  } & {
221
253
  default: number;
222
254
  };
255
+ answerContentBlankEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
256
+ default: boolean;
257
+ } & {
258
+ default: boolean;
259
+ };
260
+ checkDefaultBadwordEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
261
+ default: boolean;
262
+ } & {
263
+ default: boolean;
264
+ };
223
265
  }, {
224
266
  refreshList: () => Promise<void>;
225
267
  getCardById: typeof getCardById;
226
268
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
227
- "view-detail": (_card: LaunchCardItem) => void;
228
- refresh: (_list: LaunchCardItem[]) => void;
269
+ "view-detail": (arg: LaunchCardItem) => void;
270
+ refresh: (arg: LaunchCardItem[]) => void;
229
271
  }, string, Readonly<ExtractPropTypes< {
230
272
  answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
231
273
  required: true;
@@ -250,21 +292,28 @@ default: number;
250
292
  } & {
251
293
  default: number;
252
294
  };
295
+ answerContentBlankEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
296
+ default: boolean;
297
+ } & {
298
+ default: boolean;
299
+ };
300
+ checkDefaultBadwordEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
301
+ default: boolean;
302
+ } & {
303
+ default: boolean;
304
+ };
253
305
  }>>, {
254
306
  defaultLimitTimeAnswer: boolean;
255
307
  canStart: boolean;
256
308
  cantStartTips: string;
257
309
  defaultLimitDuration: number;
310
+ answerContentBlankEnabled: boolean;
311
+ checkDefaultBadwordEnabled: boolean;
258
312
  }>;
259
313
 
260
- declare type AnswerCardLaunchListEmit = {
261
- (event: 'view-detail', card: LaunchCardItem): void;
262
- (event: 'refresh', list: LaunchCardItem[]): void;
263
- };
264
-
265
- export declare const answerCardLaunchListEmits: {
266
- 'view-detail': (_card: LaunchCardItem) => boolean;
267
- refresh: (_list: LaunchCardItem[]) => boolean;
314
+ export declare const answerCardLaunchListEmits: () => {
315
+ 'view-detail': EmitFuncType<LaunchCardItem>;
316
+ refresh: EmitFuncType<LaunchCardItem[]>;
268
317
  };
269
318
 
270
319
  export declare const answerCardLaunchListProps: () => {
@@ -291,6 +340,16 @@ export declare const answerCardLaunchListProps: () => {
291
340
  } & {
292
341
  default: number;
293
342
  };
343
+ answerContentBlankEnabled: VueTypeValidableDef_2<boolean, ValidatorFunction<boolean>> & {
344
+ default: boolean;
345
+ } & {
346
+ default: boolean;
347
+ };
348
+ checkDefaultBadwordEnabled: VueTypeValidableDef_2<boolean, ValidatorFunction<boolean>> & {
349
+ default: boolean;
350
+ } & {
351
+ default: boolean;
352
+ };
294
353
  };
295
354
 
296
355
  export declare const AnswerCardLaunchPanel: DefineComponent< {
@@ -321,6 +380,16 @@ default: number;
321
380
  } & {
322
381
  default: number;
323
382
  };
383
+ answerContentBlankEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
384
+ default: boolean;
385
+ } & {
386
+ default: boolean;
387
+ };
388
+ checkDefaultBadwordEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
389
+ default: boolean;
390
+ } & {
391
+ default: boolean;
392
+ };
324
393
  }, {
325
394
  openPanel: () => void;
326
395
  refreshCardList: typeof refreshCardList;
@@ -329,8 +398,8 @@ openDetail: (question: LaunchCardItem | string, mode?: LaunchDetailMode) => void
329
398
  openQuick: () => void;
330
399
  closePanel: () => void;
331
400
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
332
- input: (_value: boolean) => void;
333
- close: () => void;
401
+ input: (arg: boolean) => void;
402
+ close: (arg?: void | undefined) => void;
334
403
  }, string, Readonly<ExtractPropTypes< {
335
404
  value: {
336
405
  type: BooleanConstructor;
@@ -359,23 +428,49 @@ default: number;
359
428
  } & {
360
429
  default: number;
361
430
  };
431
+ answerContentBlankEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
432
+ default: boolean;
433
+ } & {
434
+ default: boolean;
435
+ };
436
+ checkDefaultBadwordEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
437
+ default: boolean;
438
+ } & {
439
+ default: boolean;
440
+ };
362
441
  }>>, {
363
442
  defaultLimitTimeAnswer: boolean;
443
+ value: boolean;
364
444
  canStart: boolean;
365
445
  cantStartTips: string;
366
446
  defaultLimitDuration: number;
367
- value: boolean;
447
+ answerContentBlankEnabled: boolean;
448
+ checkDefaultBadwordEnabled: boolean;
368
449
  }>;
369
450
 
370
- declare type AnswerCardLaunchPanelEmit = {
371
- (event: 'input', value: boolean): void;
372
- (event: 'close'): void;
451
+ export declare const answerCardLaunchPanelEmits: () => {
452
+ input: EmitFuncType<boolean>;
453
+ close: EmitFuncType<void>;
373
454
  };
374
455
 
375
- export declare const answerCardLaunchPanelEmits: {
376
- input: (_value: boolean) => boolean;
377
- close: () => boolean;
378
- };
456
+ export declare interface AnswerCardLaunchPanelExpose {
457
+ openPanel(options?: {
458
+ questionId?: string;
459
+ }): void;
460
+ closePanel(): void;
461
+ refreshQuestionList(reason?: AnswerCardLaunchRefreshReason): Promise<void>;
462
+ refreshTemplateList(reason?: AnswerCardLaunchRefreshReason): Promise<void>;
463
+ openQuickAnswer(): void;
464
+ openTemplateManager(): void;
465
+ selectQuestion(questionId: string): void;
466
+ }
467
+
468
+ export declare interface AnswerCardLaunchPanelProps extends AnswerCardLaunchBaseProps {
469
+ value?: boolean;
470
+ initialQuestion?: QuestionContent | null;
471
+ answerContentBlankEnabled?: boolean;
472
+ checkDefaultBadwordEnabled?: boolean;
473
+ }
379
474
 
380
475
  export declare const answerCardLaunchPanelProps: () => {
381
476
  /** 面板显隐(v-model)。 */
@@ -406,6 +501,16 @@ export declare const answerCardLaunchPanelProps: () => {
406
501
  } & {
407
502
  default: number;
408
503
  };
504
+ answerContentBlankEnabled: VueTypeValidableDef_2<boolean, ValidatorFunction<boolean>> & {
505
+ default: boolean;
506
+ } & {
507
+ default: boolean;
508
+ };
509
+ checkDefaultBadwordEnabled: VueTypeValidableDef_2<boolean, ValidatorFunction<boolean>> & {
510
+ default: boolean;
511
+ } & {
512
+ default: boolean;
513
+ };
409
514
  };
410
515
 
411
516
  export declare const answerCardLaunchProps: () => {
@@ -437,6 +542,18 @@ export declare const answerCardLaunchProps: () => {
437
542
  } & {
438
543
  default: number;
439
544
  };
545
+ /** 是否启用旧数据空题干/空选项兼容。 */
546
+ answerContentBlankEnabled: VueTypeValidableDef_2<boolean, ValidatorFunction<boolean>> & {
547
+ default: boolean;
548
+ } & {
549
+ default: boolean;
550
+ };
551
+ /** 是否开启默认严禁词校验。 */
552
+ checkDefaultBadwordEnabled: VueTypeValidableDef_2<boolean, ValidatorFunction<boolean>> & {
553
+ default: boolean;
554
+ } & {
555
+ default: boolean;
556
+ };
440
557
  };
441
558
 
442
559
  export declare const AnswerCardLaunchQuick: DefineComponent< {
@@ -464,9 +581,9 @@ default: boolean;
464
581
  default: boolean;
465
582
  };
466
583
  }, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
467
- input: (_value: boolean) => void;
468
- close: () => void;
469
- sent: (_questionId: string) => void;
584
+ input: (arg: boolean) => void;
585
+ close: (arg?: void | undefined) => void;
586
+ sent: (arg: string) => void;
470
587
  }, string, Readonly<ExtractPropTypes< {
471
588
  answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
472
589
  required: true;
@@ -493,9 +610,9 @@ default: boolean;
493
610
  };
494
611
  }>>, {
495
612
  defaultLimitTimeAnswer: boolean;
613
+ value: boolean;
496
614
  canStart: boolean;
497
615
  cantStartTips: string;
498
- value: boolean;
499
616
  }>;
500
617
 
501
618
  export declare const AnswerCardLaunchQuickDetail: DefineComponent< {
@@ -541,10 +658,10 @@ default: boolean;
541
658
  }, {
542
659
  refreshDetail: () => Promise<void>;
543
660
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
544
- input: (_value: boolean) => void;
545
- stop: (_questionId: string) => void;
546
- close: () => void;
547
- start: (_questionId: string) => void;
661
+ input: (arg: boolean) => void;
662
+ stop: (arg: string) => void;
663
+ close: (arg?: void | undefined) => void;
664
+ start: (arg: string) => void;
548
665
  }, string, Readonly<ExtractPropTypes< {
549
666
  answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
550
667
  required: true;
@@ -588,25 +705,18 @@ default: boolean;
588
705
  }>>, {
589
706
  questionId: string;
590
707
  defaultLimitTimeAnswer: boolean;
708
+ value: boolean;
591
709
  canStart: boolean;
592
710
  cantStartTips: string;
593
- value: boolean;
594
711
  launchStatus: string;
595
712
  launchSubmittedCount: number;
596
713
  }>;
597
714
 
598
- declare type AnswerCardLaunchQuickDetailEmit = {
599
- (event: 'input', value: boolean): void;
600
- (event: 'close'): void;
601
- (event: 'stop', questionId: string): void;
602
- (event: 'start', questionId: string): void;
603
- };
604
-
605
- export declare const answerCardLaunchQuickDetailEmits: {
606
- input: (_value: boolean) => boolean;
607
- close: () => boolean;
608
- stop: (_questionId: string) => boolean;
609
- start: (_questionId: string) => boolean;
715
+ export declare const answerCardLaunchQuickDetailEmits: () => {
716
+ input: EmitFuncType<boolean>;
717
+ close: EmitFuncType<void>;
718
+ stop: EmitFuncType<string>;
719
+ start: EmitFuncType<string>;
610
720
  };
611
721
 
612
722
  export declare const answerCardLaunchQuickDetailProps: () => {
@@ -660,17 +770,16 @@ export declare const answerCardLaunchQuickDetailProps: () => {
660
770
  };
661
771
  };
662
772
 
663
- declare type AnswerCardLaunchQuickEmit = {
664
- (event: 'input', value: boolean): void;
665
- (event: 'sent', questionId: string): void;
666
- (event: 'close'): void;
773
+ export declare const answerCardLaunchQuickEmits: () => {
774
+ input: EmitFuncType<boolean>;
775
+ sent: EmitFuncType<string>;
776
+ close: EmitFuncType<void>;
667
777
  };
668
778
 
669
- export declare const answerCardLaunchQuickEmits: {
670
- input: (_value: boolean) => boolean;
671
- sent: (_questionId: string) => boolean;
672
- close: () => boolean;
673
- };
779
+ export declare interface AnswerCardLaunchQuickProps extends AnswerCardLaunchBaseProps {
780
+ value?: boolean;
781
+ checkDefaultBadwordEnabled?: boolean;
782
+ }
674
783
 
675
784
  export declare const answerCardLaunchQuickProps: () => {
676
785
  /** 答题卡 SDK 实例。 */
@@ -703,6 +812,47 @@ export declare const answerCardLaunchQuickProps: () => {
703
812
  };
704
813
  };
705
814
 
815
+ export declare type AnswerCardLaunchRefreshReason = 'import' | 'delete' | 'apply' | 'save' | 'socket' | 'manual';
816
+
817
+ export declare interface AnswerCardLaunchStartPayload {
818
+ questionId: string;
819
+ question: QuestionContent;
820
+ isAgain: boolean;
821
+ isQuickQuestion: boolean;
822
+ }
823
+
824
+ export declare interface AnswerCardLaunchStopPayload {
825
+ questionId: string;
826
+ question?: QuestionContent;
827
+ total: number;
828
+ optionCounts: number[];
829
+ }
830
+
831
+ declare interface AnswerCardQuestionOptionViewModel {
832
+ optionId: string;
833
+ content: string;
834
+ tips: string;
835
+ scoreValue: string;
836
+ }
837
+
838
+ declare interface AnswerCardQuestionViewModel {
839
+ questionId: string;
840
+ type: QuestionType;
841
+ stem: string;
842
+ options: AnswerCardQuestionOptionViewModel[];
843
+ answerOptionIds: string[];
844
+ isQuickQuestion: boolean;
845
+ status?: QuestionContent['status'];
846
+ }
847
+
848
+ export declare interface AnswerCardTemplateItemData {
849
+ templateId: string;
850
+ name: string;
851
+ status: 'error' | 'unused' | 'used';
852
+ isDefault: boolean;
853
+ questionCount?: number;
854
+ }
855
+
706
856
  export declare const AnswerCardTemplateList: DefineComponent< {
707
857
  answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
708
858
  required: true;
@@ -710,22 +860,17 @@ required: true;
710
860
  }, {
711
861
  refreshList: () => Promise<void>;
712
862
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
713
- refresh: () => void;
714
- applied: (_templateId: string) => void;
863
+ refresh: (arg?: void | undefined) => void;
864
+ applied: (arg: string) => void;
715
865
  }, string, Readonly<ExtractPropTypes< {
716
866
  answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
717
867
  required: true;
718
868
  };
719
869
  }>>, {}>;
720
870
 
721
- declare type AnswerCardTemplateListEmit = {
722
- (event: 'applied', templateId: string): void;
723
- (event: 'refresh'): void;
724
- };
725
-
726
- export declare const answerCardTemplateListEmits: {
727
- applied: (_templateId: string) => boolean;
728
- refresh: () => boolean;
871
+ export declare const answerCardTemplateListEmits: () => {
872
+ applied: EmitFuncType<string>;
873
+ refresh: EmitFuncType<void>;
729
874
  };
730
875
 
731
876
  export declare const answerCardTemplateListProps: () => {
@@ -788,6 +933,11 @@ isSentResult?: boolean | undefined;
788
933
  } | undefined;
789
934
  }[]>;
790
935
 
936
+ declare type EditorQuestionNode = Omit<QuestionNode, 'type' | 'options'> & {
937
+ type: QuestionNodeTypeValue;
938
+ options: QuestionDocumentOption[];
939
+ };
940
+
791
941
  export declare function formatQuestionTitle(question: Pick<QuestionContent, 'name' | 'type'>): string;
792
942
 
793
943
  declare function getCardById(questionId: string): LaunchCard | undefined;
@@ -796,6 +946,8 @@ export declare function getQuestionLaunchStatus(question: Pick<QuestionContent,
796
946
 
797
947
  export declare function getQuestionTypeLabel(type: QuestionType): string;
798
948
 
949
+ declare function isQuestionTypeWithRightAnswer(type: QuestionType): boolean;
950
+
799
951
  declare type LaunchCard = (typeof cardList.value)[number];
800
952
 
801
953
  export declare interface LaunchCardItem {
@@ -827,6 +979,8 @@ export declare const LaunchQuestionType: {
827
979
  readonly Radio: QuestionType;
828
980
  /** 多选题 */
829
981
  readonly CheckBox: QuestionType;
982
+ /** 评星题 */
983
+ readonly Star: QuestionType;
830
984
  /** 评分题 */
831
985
  readonly Score: QuestionType;
832
986
  /** 问答题 */
@@ -847,6 +1001,271 @@ export declare enum LaunchStatus {
847
1001
  Send = "send"
848
1002
  }
849
1003
 
1004
+ declare function openTemplateManager(): void;
1005
+
1006
+ export declare const PcAnswerCardLaunchPanel: DefineComponent< {
1007
+ value: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1008
+ default: boolean;
1009
+ } & {
1010
+ default: boolean;
1011
+ };
1012
+ initialQuestion: VueTypeValidableDef<QuestionContent, ValidatorFunction<QuestionContent>>;
1013
+ answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
1014
+ required: true;
1015
+ };
1016
+ canStart: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1017
+ default: boolean;
1018
+ } & {
1019
+ default: boolean;
1020
+ };
1021
+ cantStartTips: VueTypeValidableDef<string, ValidatorFunction<string>> & {
1022
+ default: string;
1023
+ } & {
1024
+ default: string;
1025
+ };
1026
+ defaultLimitTimeAnswer: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1027
+ default: boolean;
1028
+ } & {
1029
+ default: boolean;
1030
+ };
1031
+ defaultLimitDuration: VueTypeValidableDef<number, ValidatorFunction<number>> & {
1032
+ default: number;
1033
+ } & {
1034
+ default: number;
1035
+ };
1036
+ answerContentBlankEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1037
+ default: boolean;
1038
+ } & {
1039
+ default: boolean;
1040
+ };
1041
+ checkDefaultBadwordEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1042
+ default: boolean;
1043
+ } & {
1044
+ default: boolean;
1045
+ };
1046
+ }, {
1047
+ openPanel: (options?: {
1048
+ questionId?: string;
1049
+ }) => void;
1050
+ closePanel: () => void;
1051
+ refreshQuestionList: (reason?: AnswerCardLaunchRefreshReason) => Promise<void>;
1052
+ refreshTemplateList: (_reason?: AnswerCardLaunchRefreshReason) => Promise<void>;
1053
+ openQuickAnswer: () => void;
1054
+ openTemplateManager: typeof openTemplateManager;
1055
+ selectQuestion: (questionId: string) => Promise<void>;
1056
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1057
+ input: (arg: boolean) => void;
1058
+ stop: (arg: AnswerCardLaunchStopPayload) => void;
1059
+ close: (arg?: void | undefined) => void;
1060
+ start: (arg: AnswerCardLaunchStartPayload) => void;
1061
+ ended: (arg: AnswerCardLaunchEndPayload) => void;
1062
+ export: (arg: AnswerCardLaunchExportPayload) => void;
1063
+ }, string, Readonly<ExtractPropTypes< {
1064
+ value: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1065
+ default: boolean;
1066
+ } & {
1067
+ default: boolean;
1068
+ };
1069
+ initialQuestion: VueTypeValidableDef<QuestionContent, ValidatorFunction<QuestionContent>>;
1070
+ answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
1071
+ required: true;
1072
+ };
1073
+ canStart: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1074
+ default: boolean;
1075
+ } & {
1076
+ default: boolean;
1077
+ };
1078
+ cantStartTips: VueTypeValidableDef<string, ValidatorFunction<string>> & {
1079
+ default: string;
1080
+ } & {
1081
+ default: string;
1082
+ };
1083
+ defaultLimitTimeAnswer: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1084
+ default: boolean;
1085
+ } & {
1086
+ default: boolean;
1087
+ };
1088
+ defaultLimitDuration: VueTypeValidableDef<number, ValidatorFunction<number>> & {
1089
+ default: number;
1090
+ } & {
1091
+ default: number;
1092
+ };
1093
+ answerContentBlankEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1094
+ default: boolean;
1095
+ } & {
1096
+ default: boolean;
1097
+ };
1098
+ checkDefaultBadwordEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1099
+ default: boolean;
1100
+ } & {
1101
+ default: boolean;
1102
+ };
1103
+ }>>, {
1104
+ defaultLimitTimeAnswer: boolean;
1105
+ value: boolean;
1106
+ canStart: boolean;
1107
+ cantStartTips: string;
1108
+ defaultLimitDuration: number;
1109
+ answerContentBlankEnabled: boolean;
1110
+ checkDefaultBadwordEnabled: boolean;
1111
+ }>;
1112
+
1113
+ export declare const pcAnswerCardLaunchPanelEmits: () => {
1114
+ input: EmitFuncType<boolean>;
1115
+ close: EmitFuncType<void>;
1116
+ start: EmitFuncType<AnswerCardLaunchStartPayload>;
1117
+ stop: EmitFuncType<AnswerCardLaunchStopPayload>;
1118
+ ended: EmitFuncType<AnswerCardLaunchEndPayload>;
1119
+ export: EmitFuncType<AnswerCardLaunchExportPayload>;
1120
+ };
1121
+
1122
+ export declare const pcAnswerCardLaunchPanelProps: () => {
1123
+ /** 面板显隐(v-model)。 */
1124
+ value: VueTypeValidableDef_2<boolean, ValidatorFunction<boolean>> & {
1125
+ default: boolean;
1126
+ } & {
1127
+ default: boolean;
1128
+ };
1129
+ /** 打开时初始选中的题目。 */
1130
+ initialQuestion: VueTypeValidableDef_2<QuestionContent, ValidatorFunction<QuestionContent>>;
1131
+ answerCardTarget: VueTypeValidableDef_2<AnswerCard, ValidatorFunction<AnswerCard>> & {
1132
+ required: true;
1133
+ };
1134
+ canStart: VueTypeValidableDef_2<boolean, ValidatorFunction<boolean>> & {
1135
+ default: boolean;
1136
+ } & {
1137
+ default: boolean;
1138
+ };
1139
+ cantStartTips: VueTypeValidableDef_2<string, ValidatorFunction<string>> & {
1140
+ default: string;
1141
+ } & {
1142
+ default: string;
1143
+ };
1144
+ defaultLimitTimeAnswer: VueTypeValidableDef_2<boolean, ValidatorFunction<boolean>> & {
1145
+ default: boolean;
1146
+ } & {
1147
+ default: boolean;
1148
+ };
1149
+ defaultLimitDuration: VueTypeValidableDef_2<number, ValidatorFunction<number>> & {
1150
+ default: number;
1151
+ } & {
1152
+ default: number;
1153
+ };
1154
+ answerContentBlankEnabled: VueTypeValidableDef_2<boolean, ValidatorFunction<boolean>> & {
1155
+ default: boolean;
1156
+ } & {
1157
+ default: boolean;
1158
+ };
1159
+ checkDefaultBadwordEnabled: VueTypeValidableDef_2<boolean, ValidatorFunction<boolean>> & {
1160
+ default: boolean;
1161
+ } & {
1162
+ default: boolean;
1163
+ };
1164
+ };
1165
+
1166
+ export declare const PcAnswerCardQuickAnswer: DefineComponent< {
1167
+ value: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1168
+ default: boolean;
1169
+ } & {
1170
+ default: boolean;
1171
+ };
1172
+ answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
1173
+ required: true;
1174
+ };
1175
+ canStart: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1176
+ default: boolean;
1177
+ } & {
1178
+ default: boolean;
1179
+ };
1180
+ cantStartTips: VueTypeValidableDef<string, ValidatorFunction<string>> & {
1181
+ default: string;
1182
+ } & {
1183
+ default: string;
1184
+ };
1185
+ defaultLimitTimeAnswer: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1186
+ default: boolean;
1187
+ } & {
1188
+ default: boolean;
1189
+ };
1190
+ defaultLimitDuration: VueTypeValidableDef<number, ValidatorFunction<number>> & {
1191
+ default: number;
1192
+ } & {
1193
+ default: number;
1194
+ };
1195
+ answerContentBlankEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1196
+ default: boolean;
1197
+ } & {
1198
+ default: boolean;
1199
+ };
1200
+ checkDefaultBadwordEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1201
+ default: boolean;
1202
+ } & {
1203
+ default: boolean;
1204
+ };
1205
+ }, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1206
+ input: (arg: boolean) => void;
1207
+ stop: (arg: AnswerCardLaunchStopPayload) => void;
1208
+ close: (arg?: void | undefined) => void;
1209
+ start: (arg: AnswerCardLaunchStartPayload) => void;
1210
+ ended: (arg: AnswerCardLaunchEndPayload) => void;
1211
+ export: (arg: AnswerCardLaunchExportPayload) => void;
1212
+ }, string, Readonly<ExtractPropTypes< {
1213
+ value: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1214
+ default: boolean;
1215
+ } & {
1216
+ default: boolean;
1217
+ };
1218
+ answerCardTarget: VueTypeValidableDef<AnswerCard, ValidatorFunction<AnswerCard>> & {
1219
+ required: true;
1220
+ };
1221
+ canStart: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1222
+ default: boolean;
1223
+ } & {
1224
+ default: boolean;
1225
+ };
1226
+ cantStartTips: VueTypeValidableDef<string, ValidatorFunction<string>> & {
1227
+ default: string;
1228
+ } & {
1229
+ default: string;
1230
+ };
1231
+ defaultLimitTimeAnswer: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1232
+ default: boolean;
1233
+ } & {
1234
+ default: boolean;
1235
+ };
1236
+ defaultLimitDuration: VueTypeValidableDef<number, ValidatorFunction<number>> & {
1237
+ default: number;
1238
+ } & {
1239
+ default: number;
1240
+ };
1241
+ answerContentBlankEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1242
+ default: boolean;
1243
+ } & {
1244
+ default: boolean;
1245
+ };
1246
+ checkDefaultBadwordEnabled: VueTypeValidableDef<boolean, ValidatorFunction<boolean>> & {
1247
+ default: boolean;
1248
+ } & {
1249
+ default: boolean;
1250
+ };
1251
+ }>>, {
1252
+ defaultLimitTimeAnswer: boolean;
1253
+ value: boolean;
1254
+ canStart: boolean;
1255
+ cantStartTips: string;
1256
+ defaultLimitDuration: number;
1257
+ answerContentBlankEnabled: boolean;
1258
+ checkDefaultBadwordEnabled: boolean;
1259
+ }>;
1260
+
1261
+ export declare type PcAnswerCardViewState = 'idle' | 'preview' | 'creating' | 'editing' | 'saving' | 'starting' | 'running' | 'stopping' | 'ended' | 'managing-template' | 'importing' | 'exporting';
1262
+
1263
+ export { PlatformQuestionnaireItemData }
1264
+
1265
+ export { PlatformQuestionnairePageContentData }
1266
+
1267
+ export { PlatformQuestionnairePreviewQuestionData }
1268
+
850
1269
  export declare enum QuickDetailStatus {
851
1270
  Ongoing = "ongoing",
852
1271
  Ended = "ended"
@@ -882,11 +1301,13 @@ export declare function useAnswerCardLaunchBase(options: {
882
1301
  cantStartTips: string;
883
1302
  defaultLimitTimeAnswer: boolean;
884
1303
  defaultLimitDuration: number;
1304
+ answerContentBlankEnabled: boolean;
1305
+ checkDefaultBadwordEnabled: boolean;
885
1306
  };
886
1307
 
887
1308
  export declare const useAnswerCardLaunchDetail: (options: {
888
1309
  props: VueProps<typeof answerCardLaunchDetailProps>;
889
- emit: AnswerCardLaunchDetailEmit;
1310
+ emit: VueEmit<typeof answerCardLaunchDetailEmits>;
890
1311
  }) => {
891
1312
  visible: WritableComputedRef<boolean>;
892
1313
  loading: Ref<boolean>;
@@ -915,7 +1336,7 @@ export declare const useAnswerCardLaunchDetail: (options: {
915
1336
 
916
1337
  export declare const useAnswerCardLaunchList: (options: {
917
1338
  props: VueProps<typeof answerCardLaunchListProps>;
918
- emit: AnswerCardLaunchListEmit;
1339
+ emit: VueEmit<typeof answerCardLaunchListEmits>;
919
1340
  }) => {
920
1341
  loading: Ref<boolean>;
921
1342
  actionQuestionId: Ref<string>;
@@ -965,7 +1386,7 @@ export declare const useAnswerCardLaunchList: (options: {
965
1386
 
966
1387
  export declare const useAnswerCardLaunchPanel: (options: {
967
1388
  props: VueProps<typeof answerCardLaunchPanelProps>;
968
- emit: AnswerCardLaunchPanelEmit;
1389
+ emit: VueEmit<typeof answerCardLaunchPanelEmits>;
969
1390
  }) => {
970
1391
  visible: WritableComputedRef<boolean>;
971
1392
  activeTab: Ref<LaunchPanelTab>;
@@ -986,7 +1407,7 @@ export declare const useAnswerCardLaunchPanel: (options: {
986
1407
 
987
1408
  export declare const useAnswerCardLaunchQuick: (options: {
988
1409
  props: VueProps<typeof answerCardLaunchQuickProps>;
989
- emit: AnswerCardLaunchQuickEmit;
1410
+ emit: VueEmit<typeof answerCardLaunchQuickEmits>;
990
1411
  }) => {
991
1412
  visible: WritableComputedRef<boolean>;
992
1413
  sending: Ref<boolean>;
@@ -1001,7 +1422,7 @@ export declare const useAnswerCardLaunchQuick: (options: {
1001
1422
 
1002
1423
  export declare const useAnswerCardLaunchQuickDetail: (options: {
1003
1424
  props: VueProps<typeof answerCardLaunchQuickDetailProps>;
1004
- emit: AnswerCardLaunchQuickDetailEmit;
1425
+ emit: VueEmit<typeof answerCardLaunchQuickDetailEmits>;
1005
1426
  }) => {
1006
1427
  visible: WritableComputedRef<boolean>;
1007
1428
  loading: Ref<boolean>;
@@ -1019,7 +1440,7 @@ export declare const useAnswerCardLaunchQuickDetail: (options: {
1019
1440
 
1020
1441
  export declare const useAnswerCardTemplateList: (options: {
1021
1442
  props: VueProps<typeof answerCardTemplateListProps>;
1022
- emit: AnswerCardTemplateListEmit;
1443
+ emit: VueEmit<typeof answerCardTemplateListEmits>;
1023
1444
  }) => {
1024
1445
  loading: Ref<boolean>;
1025
1446
  applyingTemplateId: Ref<string>;
@@ -1038,4 +1459,273 @@ export declare const useAnswerCardTemplateList: (options: {
1038
1459
  applyTemplate: (template: TemplateItemData) => Promise<void>;
1039
1460
  };
1040
1461
 
1462
+ export declare const usePcAnswerCardLaunchPanel: (options: {
1463
+ props: VueProps<typeof pcAnswerCardLaunchPanelProps>;
1464
+ emit: VueEmit<typeof pcAnswerCardLaunchPanelEmits>;
1465
+ }) => {
1466
+ visible: WritableComputedRef<boolean>;
1467
+ viewState: Ref<PcAnswerCardViewState>;
1468
+ loadingQuestions: Ref<boolean>;
1469
+ loadingTemplates: Ref<boolean>;
1470
+ actionLoading: Ref<boolean>;
1471
+ questionList: Ref< {
1472
+ question: {
1473
+ status?: QuestionStatus | undefined;
1474
+ options: string[];
1475
+ tips?: string[] | undefined;
1476
+ questionId: string;
1477
+ name: string;
1478
+ type: QuestionType;
1479
+ isQuickQuestion: boolean;
1480
+ answer: string;
1481
+ };
1482
+ status: LaunchCardStatus;
1483
+ submittedCount: number;
1484
+ isSentResult: boolean;
1485
+ statistics?: {
1486
+ total: number;
1487
+ correctCount: number;
1488
+ faultUser: {
1489
+ avatar: string;
1490
+ nick: string;
1491
+ timestamp: number;
1492
+ userid: string;
1493
+ }[];
1494
+ rightUser: {
1495
+ avatar: string;
1496
+ nick: string;
1497
+ timestamp: number;
1498
+ userid: string;
1499
+ }[];
1500
+ options: {
1501
+ count: number;
1502
+ percent?: string | undefined;
1503
+ }[];
1504
+ isSentResult?: boolean | undefined;
1505
+ } | undefined;
1506
+ }[]>;
1507
+ templateListScrollRef: Ref<HTMLElement | undefined>;
1508
+ filteredQuestionList: ComputedRef< {
1509
+ question: {
1510
+ status?: QuestionStatus | undefined;
1511
+ options: string[];
1512
+ tips?: string[] | undefined;
1513
+ questionId: string;
1514
+ name: string;
1515
+ type: QuestionType;
1516
+ isQuickQuestion: boolean;
1517
+ answer: string;
1518
+ };
1519
+ status: LaunchCardStatus;
1520
+ submittedCount: number;
1521
+ isSentResult: boolean;
1522
+ statistics?: {
1523
+ total: number;
1524
+ correctCount: number;
1525
+ faultUser: {
1526
+ avatar: string;
1527
+ nick: string;
1528
+ timestamp: number;
1529
+ userid: string;
1530
+ }[];
1531
+ rightUser: {
1532
+ avatar: string;
1533
+ nick: string;
1534
+ timestamp: number;
1535
+ userid: string;
1536
+ }[];
1537
+ options: {
1538
+ count: number;
1539
+ percent?: string | undefined;
1540
+ }[];
1541
+ isSentResult?: boolean | undefined;
1542
+ } | undefined;
1543
+ }[]>;
1544
+ templateList: Ref<AnswerCardTemplateItemData[]>;
1545
+ currentTemplateId: Ref<string>;
1546
+ selectedQuestionId: Ref<string>;
1547
+ selectedQuestion: ComputedRef< {
1548
+ status?: QuestionStatus | undefined;
1549
+ options: string[];
1550
+ tips?: string[] | undefined;
1551
+ questionId: string;
1552
+ name: string;
1553
+ type: QuestionType;
1554
+ isQuickQuestion: boolean;
1555
+ answer: string;
1556
+ } | undefined>;
1557
+ selectedCard: ComputedRef< {
1558
+ question: {
1559
+ status?: QuestionStatus | undefined;
1560
+ options: string[];
1561
+ tips?: string[] | undefined;
1562
+ questionId: string;
1563
+ name: string;
1564
+ type: QuestionType;
1565
+ isQuickQuestion: boolean;
1566
+ answer: string;
1567
+ };
1568
+ status: LaunchCardStatus;
1569
+ submittedCount: number;
1570
+ isSentResult: boolean;
1571
+ statistics?: {
1572
+ total: number;
1573
+ correctCount: number;
1574
+ faultUser: {
1575
+ avatar: string;
1576
+ nick: string;
1577
+ timestamp: number;
1578
+ userid: string;
1579
+ }[];
1580
+ rightUser: {
1581
+ avatar: string;
1582
+ nick: string;
1583
+ timestamp: number;
1584
+ userid: string;
1585
+ }[];
1586
+ options: {
1587
+ count: number;
1588
+ percent?: string | undefined;
1589
+ }[];
1590
+ isSentResult?: boolean | undefined;
1591
+ } | undefined;
1592
+ } | undefined>;
1593
+ searchKeyword: Ref<string>;
1594
+ editorDraft: Ref<AnswerCardQuestionViewModel | undefined>;
1595
+ editorValidationMessage: ComputedRef<string>;
1596
+ editorQuestionFieldTips: ComputedRef< {
1597
+ [x: string]: {
1598
+ title: string;
1599
+ };
1600
+ } | {
1601
+ [x: string]: {
1602
+ options: {
1603
+ [x: string]: string;
1604
+ };
1605
+ };
1606
+ }>;
1607
+ editorQuestionNodes: WritableComputedRef<EditorQuestionNode[]>;
1608
+ questionValidationVersion: Ref<number>;
1609
+ selectedQuestionNodePreview: ComputedRef<QuestionNode_2 | undefined>;
1610
+ templateManagerVisible: Ref<boolean>;
1611
+ platformQuestionnaireVisible: Ref<boolean>;
1612
+ loadingPlatformQuestionnaires: Ref<boolean>;
1613
+ platformQuestionnaireKeyword: Ref<string>;
1614
+ platformQuestionnairePageContent: Ref< {
1615
+ pageNumber: number;
1616
+ pageSize: number;
1617
+ totalItems: number;
1618
+ totalPages: number;
1619
+ contents: {
1620
+ questionnaireId: string;
1621
+ userId: string;
1622
+ name: string;
1623
+ questionCount: number;
1624
+ createdAt?: string | undefined;
1625
+ creator?: string | undefined;
1626
+ questions: {
1627
+ questionId?: string | undefined;
1628
+ title: string;
1629
+ type?: string | undefined;
1630
+ typeName?: string | undefined;
1631
+ optionCount: number;
1632
+ }[];
1633
+ }[];
1634
+ }>;
1635
+ quickVisible: Ref<boolean>;
1636
+ downloadRecordsVisible: Ref<boolean>;
1637
+ limitTimeEnabled: Ref<boolean>;
1638
+ limitDuration: Ref<number>;
1639
+ hasOngoing: ComputedRef<boolean>;
1640
+ currentStatistics: ComputedRef< {
1641
+ total: number;
1642
+ correctCount: number;
1643
+ faultUser: {
1644
+ avatar: string;
1645
+ nick: string;
1646
+ timestamp: number;
1647
+ userid: string;
1648
+ }[];
1649
+ rightUser: {
1650
+ avatar: string;
1651
+ nick: string;
1652
+ timestamp: number;
1653
+ userid: string;
1654
+ }[];
1655
+ options: {
1656
+ count: number;
1657
+ percent?: string | undefined;
1658
+ }[];
1659
+ isSentResult?: boolean | undefined;
1660
+ } | undefined>;
1661
+ currentCorrectCount: ComputedRef<number>;
1662
+ timedOngoing: ComputedRef<boolean>;
1663
+ remainingSeconds: Ref<number>;
1664
+ averageScoreText: ComputedRef<string>;
1665
+ canEditSelectedQuestion: ComputedRef<boolean>;
1666
+ canAddOption: ComputedRef<boolean>;
1667
+ isQuestionTypeWithRightAnswer: typeof isQuestionTypeWithRightAnswer;
1668
+ formatQuestionTitle: typeof formatQuestionTitle;
1669
+ getQuestionTypeLabel: typeof getQuestionTypeLabel;
1670
+ openPanel: (options?: {
1671
+ questionId?: string;
1672
+ }) => void;
1673
+ closePanel: () => void;
1674
+ openQuickAnswer: () => void;
1675
+ closeQuickAnswer: () => void;
1676
+ openDownloadRecords: () => void;
1677
+ closeDownloadRecords: () => void;
1678
+ openTemplateManager: () => void;
1679
+ closeTemplateManager: () => void;
1680
+ openPlatformQuestionnairePopup: () => void;
1681
+ closePlatformQuestionnairePopup: () => void;
1682
+ changePlatformQuestionnairePage: (pageContent: PlatformQuestionnairePageContentData_2) => void;
1683
+ addPlatformQuestionnaire: (item: PlatformQuestionnaireItemData_2) => Promise<void>;
1684
+ refreshQuestionList: (reason?: AnswerCardLaunchRefreshReason) => Promise<void>;
1685
+ refreshTemplateList: (_reason?: AnswerCardLaunchRefreshReason) => Promise<void>;
1686
+ refreshPlatformQuestionnaireList: (pageContent?: {
1687
+ pageNumber: number;
1688
+ pageSize: number;
1689
+ totalItems: number;
1690
+ totalPages: number;
1691
+ contents: {
1692
+ questionnaireId: string;
1693
+ userId: string;
1694
+ name: string;
1695
+ questionCount: number;
1696
+ createdAt?: string | undefined;
1697
+ creator?: string | undefined;
1698
+ questions: {
1699
+ questionId?: string | undefined;
1700
+ title: string;
1701
+ type?: string | undefined;
1702
+ typeName?: string | undefined;
1703
+ optionCount: number;
1704
+ }[];
1705
+ }[];
1706
+ }) => Promise<void>;
1707
+ selectQuestion: (questionId: string) => Promise<void>;
1708
+ createQuestion: (type?: QuestionType) => Promise<void>;
1709
+ editSelectedQuestion: () => void;
1710
+ cancelEdit: () => void;
1711
+ updateDraftType: (type: QuestionType) => void;
1712
+ updateDraftStem: (value: string) => void;
1713
+ updateDraftOption: (optionId: string, patch: Partial<AnswerCardQuestionViewModel["options"][number]>) => void;
1714
+ addDraftOption: (afterIndex?: number) => void;
1715
+ removeDraftOption: (optionId: string) => void;
1716
+ toggleDraftAnswer: (optionId: string) => void;
1717
+ saveDraft: () => Promise<void>;
1718
+ deleteSelectedQuestion: () => Promise<void>;
1719
+ startSelectedQuestion: (isAgain?: boolean) => Promise<void>;
1720
+ stopSelectedQuestion: () => Promise<void>;
1721
+ sendSelectedResult: () => Promise<void>;
1722
+ exportSelectedResult: () => void;
1723
+ applyTemplate: (template: AnswerCardTemplateItemData) => Promise<void>;
1724
+ deleteTemplate: (template: AnswerCardTemplateItemData) => Promise<void>;
1725
+ downloadTemplate: (templateId?: string) => Promise<void>;
1726
+ uploadTemplate: (file: File, templateId?: string) => Promise<boolean>;
1727
+ getTemplateStatusText: (template: AnswerCardTemplateItemData) => string;
1728
+ getQuestionNodePreview: () => EditorQuestionNode | undefined;
1729
+ };
1730
+
1041
1731
  export { }