survey-analytics 1.9.32 → 1.9.35

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.
@@ -1,174 +1,694 @@
1
- /*Type definitions for SurveyJS Analytics library v1.9.32
2
- Copyright (c) 2015-2022 Devsoft Baltic OÜ - http://surveyjs.io/
3
- Definitions by: Devsoft Baltic OÜ <https://github.com/surveyjs/>
4
- */
5
- // Dependencies for this module:
6
- // ../../survey-core
7
- // ../../plotly.js-dist-min
8
-
9
- import { Event } from "survey-core";
10
- import { Question } from "survey-core";
11
- import { SurveyModel } from "survey-core";
12
- import { IQuestion } from "survey-core";
13
- import { QuestionMatrixDropdownModel } from "survey-core";
14
- import { ItemValue } from "survey-core";
15
- import Plotly from "plotly.js-dist-min";
16
- import { QuestionMatrixModel } from "survey-core";
17
- import { QuestionBooleanModel } from "survey-core";
18
-
19
- import "./localization/farsi";
20
- import "./localization/french";
21
- import "./localization/norwegian";
22
- import "./localization/portuguese";
23
- import "./localization/russian";
24
- import "./localization/dutch";
25
-
26
- export var localization: {
27
- currentLocaleValue: string;
28
- defaultLocaleValue: string;
29
- locales: {
30
- [index: string]: any;
1
+ declare module "localization/english" {
2
+ export var englishStrings: {
3
+ groupButton: string;
4
+ ungroupButton: string;
5
+ selectButton: string;
6
+ hideColumn: string;
7
+ showColumn: string;
8
+ makePrivateColumn: string;
9
+ makePublicColumn: string;
10
+ moveToDetail: string;
11
+ showAsColumn: string;
12
+ filterPlaceholder: string;
13
+ removeRows: string;
14
+ showLabel: string;
15
+ entriesLabel: string;
16
+ visualizer_text: string;
17
+ visualizer_wordcloud: string;
18
+ visualizer_histogram: string;
19
+ visualizer_number: string;
20
+ visualizer_choices: string;
21
+ visualizer_selectBase: string;
22
+ chartType_bar: string;
23
+ chartType_vbar: string;
24
+ chartType_stackedbar: string;
25
+ chartType_doughnut: string;
26
+ chartType_pie: string;
27
+ chartType_scatter: string;
28
+ chartType_gauge: string;
29
+ chartType_bullet: string;
30
+ hideButton: string;
31
+ makePrivateButton: string;
32
+ makePublicButton: string;
33
+ showButton: string;
34
+ filter: string;
35
+ resetFilter: string;
36
+ changeLocale: string;
37
+ en: string;
38
+ fr: string;
39
+ ru: string;
40
+ de: string;
41
+ clearButton: string;
42
+ addElement: string;
43
+ defaultOrder: string;
44
+ ascOrder: string;
45
+ descOrder: string;
46
+ showMinorColumns: string;
47
+ otherCommentTitle: string;
48
+ showPercentages: string;
49
+ hidePercentages: string;
50
+ pdfDownloadCaption: string;
51
+ xlsxDownloadCaption: string;
52
+ csvDownloadCaption: string;
53
+ saveDiagramAsPNG: string;
54
+ hideEmptyAnswers: string;
55
+ showEmptyAnswers: string;
56
+ "topNValueText-1": string;
57
+ topNValueText5: string;
58
+ topNValueText10: string;
59
+ topNValueText20: string;
60
+ hideMissingAnswers: string;
61
+ showMissingAnswers: string;
62
+ missingAnswersLabel: string;
63
+ noVisualizerForQuestion: string;
64
+ noResults: string;
65
+ showPerValues: string;
66
+ showPerColumns: string;
67
+ answer: string;
68
+ percent: string;
69
+ responses: string;
31
70
  };
32
- localeNames: {
33
- [index: string]: any;
71
+ }
72
+ declare module "localizationManager" {
73
+ export var localization: {
74
+ currentLocaleValue: string;
75
+ defaultLocaleValue: string;
76
+ locales: {
77
+ [index: string]: any;
78
+ };
79
+ localeNames: {
80
+ [index: string]: any;
81
+ };
82
+ supportedLocales: any[];
83
+ currentLocale: string;
84
+ defaultLocale: string;
85
+ getString: (strName: string) => any;
86
+ getLocales: () => Array<string>;
87
+ };
88
+ export var surveyStrings: {
89
+ groupButton: string;
90
+ ungroupButton: string;
91
+ selectButton: string;
92
+ hideColumn: string;
93
+ showColumn: string;
94
+ makePrivateColumn: string;
95
+ makePublicColumn: string;
96
+ moveToDetail: string;
97
+ showAsColumn: string;
98
+ filterPlaceholder: string;
99
+ removeRows: string;
100
+ showLabel: string;
101
+ entriesLabel: string;
102
+ visualizer_text: string;
103
+ visualizer_wordcloud: string;
104
+ visualizer_histogram: string;
105
+ visualizer_number: string;
106
+ visualizer_choices: string;
107
+ visualizer_selectBase: string;
108
+ chartType_bar: string;
109
+ chartType_vbar: string;
110
+ chartType_stackedbar: string;
111
+ chartType_doughnut: string;
112
+ chartType_pie: string;
113
+ chartType_scatter: string;
114
+ chartType_gauge: string;
115
+ chartType_bullet: string;
116
+ hideButton: string;
117
+ makePrivateButton: string;
118
+ makePublicButton: string;
119
+ showButton: string;
120
+ filter: string;
121
+ resetFilter: string;
122
+ changeLocale: string;
123
+ en: string;
124
+ fr: string;
125
+ ru: string;
126
+ de: string;
127
+ clearButton: string;
128
+ addElement: string;
129
+ defaultOrder: string;
130
+ ascOrder: string;
131
+ descOrder: string;
132
+ showMinorColumns: string;
133
+ otherCommentTitle: string;
134
+ showPercentages: string;
135
+ hidePercentages: string;
136
+ pdfDownloadCaption: string;
137
+ xlsxDownloadCaption: string;
138
+ csvDownloadCaption: string;
139
+ saveDiagramAsPNG: string;
140
+ hideEmptyAnswers: string;
141
+ showEmptyAnswers: string;
142
+ "topNValueText-1": string;
143
+ topNValueText5: string;
144
+ topNValueText10: string;
145
+ topNValueText20: string;
146
+ hideMissingAnswers: string;
147
+ showMissingAnswers: string;
148
+ missingAnswersLabel: string;
149
+ noVisualizerForQuestion: string;
150
+ noResults: string;
151
+ showPerValues: string;
152
+ showPerColumns: string;
153
+ answer: string;
154
+ percent: string;
155
+ responses: string;
156
+ };
157
+ }
158
+ declare module "localization/farsi" {
159
+ export var farsiStrings: {
160
+ groupButton: string;
161
+ ungroupButton: string;
162
+ selectButton: string;
163
+ hideColumn: string;
164
+ showColumn: string;
165
+ moveToDetail: string;
166
+ showAsColumn: string;
167
+ visualizer_text: string;
168
+ visualizer_wordcloud: string;
169
+ chartType_bar: string;
170
+ chartType_pie: string;
171
+ chartType_scatter: string;
172
+ chartType_gauge: string;
173
+ chartType_bullet: string;
174
+ hideButton: string;
175
+ resetFilter: string;
176
+ clearButton: string;
177
+ addElement: string;
178
+ };
179
+ }
180
+ declare module "localization/french" {
181
+ export var frenchStrings: {
182
+ groupButton: string;
183
+ ungroupButton: string;
184
+ selectButton: string;
185
+ hideColumn: string;
186
+ showColumn: string;
187
+ makePrivateColumn: string;
188
+ makePublicColumn: string;
189
+ moveToDetail: string;
190
+ showAsColumn: string;
191
+ visualizer_text: string;
192
+ visualizer_wordcloud: string;
193
+ chartType_bar: string;
194
+ chartType_stackedbar: string;
195
+ chartType_doughnut: string;
196
+ chartType_pie: string;
197
+ chartType_scatter: string;
198
+ chartType_gauge: string;
199
+ chartType_bullet: string;
200
+ filter: string;
201
+ hideButton: string;
202
+ resetFilter: string;
203
+ clearButton: string;
204
+ addElement: string;
205
+ defaultOrder: string;
206
+ ascOrder: string;
207
+ descOrder: string;
208
+ showMinorColumns: string;
209
+ otherCommentTitle: string;
210
+ noVisualizerForQuestion: string;
211
+ noResults: string;
212
+ };
213
+ }
214
+ declare module "localization/norwegian" {
215
+ export var norwegianStrings: {
216
+ groupButton: string;
217
+ ungroupButton: string;
218
+ selectButton: string;
219
+ hideColumn: string;
220
+ showColumn: string;
221
+ makePrivateColumn: string;
222
+ makePublicColumn: string;
223
+ moveToDetail: string;
224
+ showAsColumn: string;
225
+ filterPlaceholder: string;
226
+ removeRows: string;
227
+ showLabel: string;
228
+ entriesLabel: string;
229
+ visualizer_text: string;
230
+ visualizer_wordcloud: string;
231
+ chartType_bar: string;
232
+ chartType_stackedbar: string;
233
+ chartType_doughnut: string;
234
+ chartType_pie: string;
235
+ chartType_scatter: string;
236
+ chartType_gauge: string;
237
+ chartType_bullet: string;
238
+ hideButton: string;
239
+ makePrivateButton: string;
240
+ makePublicButton: string;
241
+ showButton: string;
242
+ resetFilter: string;
243
+ changeLocale: string;
244
+ clearButton: string;
245
+ addElement: string;
246
+ defaultOrder: string;
247
+ ascOrder: string;
248
+ descOrder: string;
249
+ showMinorColumns: string;
250
+ otherCommentTitle: string;
251
+ showPercentages: string;
252
+ hidePercentages: string;
253
+ };
254
+ }
255
+ declare module "localization/portuguese" {
256
+ export var portugueseStrings: {
257
+ groupButton: string;
258
+ ungroupButton: string;
259
+ selectButton: string;
260
+ hideColumn: string;
261
+ showColumn: string;
262
+ makePrivateColumn: string;
263
+ makePublicColumn: string;
264
+ moveToDetail: string;
265
+ showAsColumn: string;
266
+ filterPlaceholder: string;
267
+ removeRows: string;
268
+ showLabel: string;
269
+ entriesLabel: string;
270
+ visualizer_text: string;
271
+ chartType_bar: string;
272
+ chartType_stackedbar: string;
273
+ chartType_doughnut: string;
274
+ chartType_pie: string;
275
+ chartType_scatter: string;
276
+ chartType_gauge: string;
277
+ chartType_bullet: string;
278
+ hideButton: string;
279
+ makePrivateButton: string;
280
+ makePublicButton: string;
281
+ showButton: string;
282
+ filter: string;
283
+ resetFilter: string;
284
+ changeLocale: string;
285
+ clearButton: string;
286
+ addElement: string;
287
+ defaultOrder: string;
288
+ ascOrder: string;
289
+ descOrder: string;
290
+ showMinorColumns: string;
291
+ otherCommentTitle: string;
292
+ showPercentages: string;
293
+ hidePercentages: string;
294
+ saveDiagramAsPNG: string;
295
+ hideEmptyAnswers: string;
296
+ showEmptyAnswers: string;
297
+ "topNValueText-1": string;
298
+ topNValueText5: string;
299
+ topNValueText10: string;
300
+ topNValueText20: string;
301
+ noVisualizerForQuestion: string;
302
+ noResults: string;
303
+ };
304
+ }
305
+ declare module "localization/russian" {
306
+ export var russianStrings: {
307
+ groupButton: string;
308
+ ungroupButton: string;
309
+ selectButton: string;
310
+ hideColumn: string;
311
+ showColumn: string;
312
+ makePrivateColumn: string;
313
+ makePublicColumn: string;
314
+ moveToDetail: string;
315
+ filter: string;
316
+ showAsColumn: string;
317
+ visualizer_text: string;
318
+ visualizer_wordcloud: string;
319
+ chartType_bar: string;
320
+ chartType_stackedbar: string;
321
+ chartType_doughnut: string;
322
+ chartType_pie: string;
323
+ chartType_scatter: string;
324
+ chartType_gauge: string;
325
+ chartType_bullet: string;
326
+ hideButton: string;
327
+ showButton: string;
328
+ resetFilter: string;
329
+ changeLocale: string;
330
+ clearButton: string;
331
+ addElement: string;
332
+ defaultOrder: string;
333
+ ascOrder: string;
334
+ descOrder: string;
335
+ showMinorColumns: string;
336
+ otherCommentTitle: string;
337
+ noVisualizerForQuestion: string;
338
+ noResults: string;
339
+ };
340
+ }
341
+ declare module "localization/dutch" {
342
+ export var dutchStrings: {
343
+ groupButton: string;
344
+ ungroupButton: string;
345
+ selectButton: string;
346
+ hideColumn: string;
347
+ showColumn: string;
348
+ makePrivateColumn: string;
349
+ makePublicColumn: string;
350
+ moveToDetail: string;
351
+ showAsColumn: string;
352
+ filterPlaceholder: string;
353
+ removeRows: string;
354
+ showLabel: string;
355
+ entriesLabel: string;
356
+ visualizer_text: string;
357
+ visualizer_wordcloud: string;
358
+ chartType_bar: string;
359
+ chartType_stackedbar: string;
360
+ chartType_doughnut: string;
361
+ chartType_pie: string;
362
+ chartType_scatter: string;
363
+ chartType_gauge: string;
364
+ chartType_bullet: string;
365
+ hideButton: string;
366
+ makePrivateButton: string;
367
+ makePublicButton: string;
368
+ showButton: string;
369
+ resetFilter: string;
370
+ changeLocale: string;
371
+ clearButton: string;
372
+ addElement: string;
373
+ defaultOrder: string;
374
+ ascOrder: string;
375
+ descOrder: string;
376
+ showMinorColumns: string;
377
+ otherCommentTitle: string;
378
+ showPercentages: string;
379
+ hidePercentages: string;
380
+ pdfDownloadCaption: string;
381
+ xlsxDownloadCaption: string;
382
+ csvDownloadCaption: string;
383
+ saveDiagramAsPNG: string;
384
+ hideEmptyAnswers: string;
385
+ showEmptyAnswers: string;
386
+ "topNValueText-1": string;
387
+ topNValueText5: string;
388
+ topNValueText10: string;
389
+ topNValueText20: string;
390
+ };
391
+ }
392
+ declare module "localization/spanish" {
393
+ export var spanishStrings: {
394
+ ungroupButton: string;
395
+ selectButton: string;
396
+ hideColumn: string;
397
+ showColumn: string;
398
+ makePrivateColumn: string;
399
+ makePublicColumn: string;
400
+ moveToDetail: string;
401
+ showAsColumn: string;
402
+ filterPlaceholder: string;
403
+ removeRows: string;
404
+ showLabel: string;
405
+ entryLabel: string;
406
+ visualizer_text: string;
407
+ visualizer_wordcloud: string;
408
+ chartType_bar: string;
409
+ chartType_stackedbar: string;
410
+ chartType_doughnut: string;
411
+ chartType_pie: string;
412
+ chartType_scatter: string;
413
+ chartType_gauge: string;
414
+ chartType_bullet: string;
415
+ hideButton: string;
416
+ makePrivateButton: string;
417
+ makePublicButton: string;
418
+ showButton: string;
419
+ filter: string;
420
+ resetFilter: string;
421
+ changeLocale: string;
422
+ clearButton: string;
423
+ addElement: string;
424
+ defaultOrder: string;
425
+ ascOrder: string;
426
+ descOrder: string;
427
+ showMinorColumns: string;
428
+ otherCommentTitle: string;
429
+ showPercentages: string;
430
+ hidePercentages: string;
431
+ pdfDownloadCaption: string;
432
+ xlsxDownloadCaption: string;
433
+ csvDownloadCaption: string;
434
+ saveDiagramAsPNG: string;
435
+ hideEmptyAnswers: string;
436
+ showEmptyAnswers: string;
437
+ "topNValueText-1": string;
438
+ topNValueText5: string;
439
+ topNValueText10: string;
440
+ topNValueText20: string;
441
+ noVisualizerForQuestion: string;
442
+ noResults: string;
443
+ };
444
+ }
445
+ declare module "localization/italian" {
446
+ export var italianStrings: {
447
+ groupButton: string;
448
+ ungroupButton: string;
449
+ selectButton: string;
450
+ hideColumn: string;
451
+ showColumn: string;
452
+ makePrivateColumn: string;
453
+ makePublicColumn: string;
454
+ moveToDetail: string;
455
+ showAsColumn: string;
456
+ filterPlaceholder: string;
457
+ removeRows: string;
458
+ showLabel: string;
459
+ entriesLabel: string;
460
+ visualizer_text: string;
461
+ visualizer_wordcloud: string;
462
+ visualizer_histogram: string;
463
+ visualizer_number: string;
464
+ visualizer_choices: string;
465
+ visualizer_selectBase: string;
466
+ chartType_bar: string;
467
+ chartType_vbar: string;
468
+ chartType_stackedbar: string;
469
+ chartType_doughnut: string;
470
+ chartType_pie: string;
471
+ chartType_scatter: string;
472
+ chartType_gauge: string;
473
+ chartType_bullet: string;
474
+ hideButton: string;
475
+ makePrivateButton: string;
476
+ makePublicButton: string;
477
+ showButton: string;
478
+ filter: string;
479
+ resetFilter: string;
480
+ changeLocale: string;
481
+ en: string;
482
+ fr: string;
483
+ ru: string;
484
+ de: string;
485
+ clearButton: string;
486
+ addElement: string;
487
+ defaultOrder: string;
488
+ ascOrder: string;
489
+ descOrder: string;
490
+ showMinorColumns: string;
491
+ otherCommentTitle: string;
492
+ showPercentages: string;
493
+ hidePercentages: string;
494
+ pdfDownloadCaption: string;
495
+ xlsxDownloadCaption: string;
496
+ csvDownloadCaption: string;
497
+ saveDiagramAsPNG: string;
498
+ hideEmptyAnswers: string;
499
+ showEmptyAnswers: string;
500
+ "topNValueText-1": string;
501
+ topNValueText5: string;
502
+ topNValueText10: string;
503
+ topNValueText20: string;
504
+ hideMissingAnswers: string;
505
+ showMissingAnswers: string;
506
+ missingAnswersLabel: string;
507
+ noVisualizerForQuestion: string;
508
+ noResults: string;
509
+ showPerValues: string;
510
+ showPerColumns: string;
511
+ answer: string;
512
+ percent: string;
513
+ responses: string;
34
514
  };
35
- supportedLocales: any[];
36
- currentLocale: string;
37
- defaultLocale: string;
38
- getString: (strName: string) => any;
39
- getLocales: () => Array<string>;
40
- };
41
- export var surveyStrings: {
42
- groupButton: string;
43
- ungroupButton: string;
44
- selectButton: string;
45
- hideColumn: string;
46
- showColumn: string;
47
- makePrivateColumn: string;
48
- makePublicColumn: string;
49
- moveToDetail: string;
50
- showAsColumn: string;
51
- filterPlaceholder: string;
52
- removeRows: string;
53
- showLabel: string;
54
- entriesLabel: string;
55
- visualizer_text: string;
56
- visualizer_wordcloud: string;
57
- visualizer_histogram: string;
58
- visualizer_number: string;
59
- visualizer_choices: string;
60
- visualizer_selectBase: string;
61
- chartType_bar: string;
62
- chartType_vbar: string;
63
- chartType_stackedbar: string;
64
- chartType_doughnut: string;
65
- chartType_pie: string;
66
- chartType_scatter: string;
67
- chartType_gauge: string;
68
- chartType_bullet: string;
69
- hideButton: string;
70
- makePrivateButton: string;
71
- makePublicButton: string;
72
- showButton: string;
73
- filter: string;
74
- resetFilter: string;
75
- changeLocale: string;
76
- clearButton: string;
77
- addElement: string;
78
- defaultOrder: string;
79
- ascOrder: string;
80
- descOrder: string;
81
- showMinorColumns: string;
82
- otherCommentTitle: string;
83
- showPercentages: string;
84
- hidePercentages: string;
85
- pdfDownloadCaption: string;
86
- xlsxDownloadCaption: string;
87
- csvDownloadCaption: string;
88
- saveDiagramAsPNG: string;
89
- hideEmptyAnswers: string;
90
- showEmptyAnswers: string;
91
- "topNValueText-1": string;
92
- topNValueText5: string;
93
- topNValueText10: string;
94
- topNValueText20: string;
95
- hideMissingAnswers: string;
96
- showMissingAnswers: string;
97
- missingAnswersLabel: string;
98
- noVisualizerForQuestion: string;
99
- noResults: string;
100
- showPerValues: string;
101
- showPerColumns: string;
102
- answer: string;
103
- percent: string;
104
- responses: string;
105
- };
106
-
107
- /**
108
- * Describes data info:
109
- * dataName - question name, used as a key to obtain question data
110
- * getValues - function returning an array of all possible values
111
- * getLabels - function returning an array of human-friendly descriptions for values
112
- * getSeriesValues - function returning an array of all possible series values
113
- * getSeriesLabels - function returning an array of human-friendly descriptions for series values
114
- */
115
- export interface IDataInfo {
515
+ }
516
+ declare module "dataProvider" {
517
+ import { Event } from "survey-core";
518
+ /**
519
+ * Describes data info:
520
+ * dataName - question name, used as a key to obtain question data
521
+ * getValues - function returning an array of all possible values
522
+ * getLabels - function returning an array of human-friendly descriptions for values
523
+ * getSeriesValues - function returning an array of all possible series values
524
+ * getSeriesLabels - function returning an array of human-friendly descriptions for series values
525
+ */
526
+ export interface IDataInfo {
116
527
  dataName: string | Array<string>;
117
528
  getValues(): Array<any>;
118
529
  getLabels(): Array<string>;
119
530
  getSeriesValues(): Array<string>;
120
531
  getSeriesLabels(): Array<string>;
121
- }
122
- export class DataProvider {
532
+ }
533
+ export class DataProvider {
534
+ private _data;
535
+ private _getDataCore;
123
536
  static seriesMarkerKey: string;
537
+ private _filteredData;
538
+ private _statisticsCache;
124
539
  protected filterValues: {
125
- [index: string]: any;
540
+ [index: string]: any;
126
541
  };
542
+ private getStatisticsCacheKey;
127
543
  constructor(_data?: Array<any>, _getDataCore?: (dataInfo: IDataInfo) => number[][]);
128
544
  reset(dataInfo?: IDataInfo): void;
129
545
  get data(): Array<any>;
130
546
  set data(data: Array<any>);
131
547
  get filteredData(): {
132
- [index: string]: any;
548
+ [index: string]: any;
133
549
  }[];
134
550
  /**
135
- * Sets filter by question name and value.
136
- */
551
+ * Sets filter by question name and value.
552
+ */
137
553
  setFilter(questionName: string, selectedValue: any): void;
138
554
  protected getDataCore(dataInfo: IDataInfo): number[][] | number[][][];
139
555
  /**
140
- * Returns calculated statisctics for the IDataInfo object.
141
- */
556
+ * Returns calculated statisctics for the IDataInfo object.
557
+ */
142
558
  getData(dataInfo: IDataInfo): any[];
143
559
  /**
144
- * Fires when data has been changed.
145
- */
560
+ * Fires when data has been changed.
561
+ */
146
562
  onDataChanged: Event<(sender: DataProvider, options: any) => any, any>;
147
563
  protected raiseDataChanged(): void;
564
+ }
565
+ }
566
+ declare module "visualizationManager" {
567
+ import { Question } from "survey-core";
568
+ type VisualizerConstructor = new (question: Question, data: Array<{
569
+ [index: string]: any;
570
+ }>, options?: Object) => any;
571
+ /**
572
+ * Visualizers repository. You need to register a visualizer, link it to the question type name in order to visualize the question answers with the certain representation.
573
+ */
574
+ export class VisualizationManager {
575
+ static alternativesVisualizer: any;
576
+ static vizualizers: {
577
+ [index: string]: Array<VisualizerConstructor>;
578
+ };
579
+ /**
580
+ * Register visualizer (constructor) for question type.
581
+ */
582
+ static registerVisualizer(typeName: string, constructor: VisualizerConstructor): void;
583
+ /**
584
+ * Unregister visualizer (constructor) for question type.
585
+ */
586
+ static unregisterVisualizer(typeName: string, constructor: VisualizerConstructor): void;
587
+ /**
588
+ * Unregister visualizer (constructor) for all question types.
589
+ */
590
+ static unregisterVisualizerForAll(constructor: VisualizerConstructor): void;
591
+ /**
592
+ * Get visualizers (constructors) for question type.
593
+ */
594
+ static getVisualizersByType(typeName: string): VisualizerConstructor[];
595
+ /**
596
+ * Get visualizers (constructors) for question type.
597
+ */
598
+ static getAlternativesVisualizer(): any;
599
+ /**
600
+ * Register visualizer (constructor) for question type.
601
+ */
602
+ static registerAlternativesVisualizer(constructor: any): void;
603
+ }
604
+ }
605
+ declare module "visualizerFactory" {
606
+ import { Question } from "survey-core";
607
+ import { VisualizerBase } from "visualizerBase";
608
+ /**
609
+ * Visualizers factory. Creates visualizer for the given question.
610
+ */
611
+ export class VisualizerFactory {
612
+ /**
613
+ * Create visualizer by question. You can pass data and options to the created visualizer as well.
614
+ * If more then one visualizer are registered for the question, then they are combined using wrapper for showing alternative viaualizers.
615
+ */
616
+ static createVisualizer(question: Question, data: Array<{
617
+ [index: string]: any;
618
+ }>, options?: {
619
+ [index: string]: any;
620
+ }): VisualizerBase;
621
+ }
622
+ }
623
+ declare module "utils/index" {
624
+ export class DocumentHelper {
625
+ static createSelector(options: Array<{
626
+ value: string;
627
+ text: string;
628
+ }>, isSelected: (option: {
629
+ value: string;
630
+ text: string;
631
+ }) => boolean, handler: (e: any) => void): HTMLDivElement;
632
+ static createButton(handler: (e: any) => void, text?: string, className?: string): HTMLElement;
633
+ static createElement(tagName: string, className?: string, attrs?: any): HTMLElement;
634
+ static createSvgElement(path: string): SVGSVGElement;
635
+ static createSvgButton(path: string): HTMLButtonElement;
636
+ static createSvgToggleButton(svgPath1: string, svPpath2: string, text1: string, text2: string, handler1: (e: any) => any, handler2: (e: any) => any, state?: string, className?: string): HTMLElement;
637
+ static createInput(className: string, placeholder?: string, defaultValue?: string): HTMLInputElement;
638
+ }
639
+ export var options: {
640
+ runningInBrowser: boolean;
641
+ };
642
+ export function allowDomRendering(): boolean;
643
+ export function createCommercialLicenseLink(): HTMLElement;
644
+ export class DataHelper {
645
+ static zipArrays(...arrays: any[]): any[][];
646
+ static unzipArrays(zipArray: any[][]): any[][];
647
+ static sortDictionary(keys: any[], values: any[], desc: boolean): {
648
+ keys: any[];
649
+ values: any[];
650
+ };
651
+ static toPercentage(value: number, maxValue: number): number;
652
+ }
653
+ export function createLinksContainer(links: Array<{
654
+ name: string;
655
+ content: any;
656
+ }>): HTMLElement;
657
+ export function createImagesContainer(links: Array<{
658
+ name: string;
659
+ content: any;
660
+ }>): HTMLElement;
148
661
  }
149
-
150
- import "./visualizerBase.scss";
151
- /**
152
- * VisualizerBase is a base object for all visuzlizers. It responsible for the rendering and destroying visualizer.
153
- *
154
- * constructor parameters:
155
- * question - a survey question to visualize,
156
- * data - an array of answers in format of survey result,
157
- * options - object with the following options,
158
- * name - visualizer name
159
- *
160
- * options:
161
- * seriesValues - an array of series values in data to group data by series,
162
- * seriesLabels - labels for series to display, if not passed the seriesValues are used as labels,
163
- * survey - pass survey instance to use localses from the survey JSON,
164
- * dataProvider - dataProvider for this visualizer,
165
- *
166
- */
167
- export class VisualizerBase implements IDataInfo {
662
+ declare module "visualizerBase" {
663
+ import { Question } from "survey-core";
664
+ import { IDataInfo, DataProvider } from "dataProvider";
665
+ import { Event } from "survey-core";
666
+ import "./visualizerBase.scss";
667
+ /**
668
+ * VisualizerBase is a base object for all visuzlizers. It responsible for the rendering and destroying visualizer.
669
+ *
670
+ * constructor parameters:
671
+ * question - a survey question to visualize,
672
+ * data - an array of answers in format of survey result,
673
+ * options - object with the following options,
674
+ * name - visualizer name
675
+ *
676
+ * options:
677
+ * seriesValues - an array of series values in data to group data by series,
678
+ * seriesLabels - labels for series to display, if not passed the seriesValues are used as labels,
679
+ * survey - pass survey instance to use localses from the survey JSON,
680
+ * dataProvider - dataProvider for this visualizer,
681
+ *
682
+ */
683
+ export class VisualizerBase implements IDataInfo {
168
684
  question: Question;
169
685
  options: {
170
- [index: string]: any;
686
+ [index: string]: any;
171
687
  };
688
+ private _name?;
689
+ private _showHeader;
690
+ private _footerVisualizer;
691
+ private _dataProvider;
172
692
  protected labelTruncateLength: number;
173
693
  protected renderResult: HTMLElement;
174
694
  protected toolbarContainer: HTMLElement;
@@ -177,320 +697,655 @@ export class VisualizerBase implements IDataInfo {
177
697
  protected _supportSelection: boolean;
178
698
  static otherCommentCollapsed: boolean;
179
699
  /**
180
- * The event is fired right after a visualizer's content is rendered in DOM.
181
- **/
700
+ * The event is fired right after a visualizer's content is rendered in DOM.
701
+ **/
182
702
  onAfterRender: Event<(sender: VisualizerBase, options: any) => any, any>;
183
703
  protected afterRender(contentContainer: HTMLElement): void;
184
704
  protected toolbarItemCreators: {
185
- [name: string]: (toolbar?: HTMLDivElement) => HTMLElement;
705
+ [name: string]: (toolbar?: HTMLDivElement) => HTMLElement;
186
706
  };
187
707
  constructor(question: Question, data: Array<{
188
- [index: string]: any;
708
+ [index: string]: any;
189
709
  }>, options?: {
190
- [index: string]: any;
710
+ [index: string]: any;
191
711
  }, _name?: string);
192
712
  protected get questionOptions(): any;
193
713
  /**
194
- * This method is called then data has been changed for some reason, e.g. filter was set.
195
- * This method should be overriden if descendant computes own statistics or process data somehow.
196
- */
714
+ * This method is called then data has been changed for some reason, e.g. filter was set.
715
+ * This method should be overriden if descendant computes own statistics or process data somehow.
716
+ */
197
717
  protected onDataChanged(): void;
198
718
  /**
199
- * Name of the data field of data object from the data array.
200
- */
719
+ * Name of the data field of data object from the data array.
720
+ */
201
721
  get dataName(): string | Array<string>;
202
722
  /**
203
- * Indicates whether visualizer has footer. Usually it is true then a question has comment or choices question has other item.
204
- */
723
+ * Indicates whether visualizer has footer. Usually it is true then a question has comment or choices question has other item.
724
+ */
205
725
  get hasFooter(): boolean;
206
726
  protected createVisualizer(question: Question): VisualizerBase;
207
727
  /**
208
- * Footer visualizer getter.
209
- */
728
+ * Footer visualizer getter.
729
+ */
210
730
  get footerVisualizer(): VisualizerBase;
211
731
  /**
212
- * Indicates whether visualizer supports selection. Visualizers of questions with choices allow to select choice by clicking on the diagram bar and filter other data for the selected item.
213
- */
732
+ * Indicates whether visualizer supports selection. Visualizers of questions with choices allow to select choice by clicking on the diagram bar and filter other data for the selected item.
733
+ */
214
734
  get supportSelection(): boolean;
215
735
  /**
216
- * Series values getter. Some questions (used in matrices) should be grouped by matrix rows. This groups are called series.
217
- */
736
+ * Series values getter. Some questions (used in matrices) should be grouped by matrix rows. This groups are called series.
737
+ */
218
738
  getSeriesValues(): Array<string>;
219
739
  /**
220
- * Series labels getter. Some questions (used in matrices) should be grouped by matrix rows. This groups are called series.
221
- */
740
+ * Series labels getter. Some questions (used in matrices) should be grouped by matrix rows. This groups are called series.
741
+ */
222
742
  getSeriesLabels(): Array<string>;
223
743
  /**
224
- * Available values of question answers (available choices).
225
- */
744
+ * Available values of question answers (available choices).
745
+ */
226
746
  getValues(): Array<any>;
227
747
  /**
228
- * Available labels of question answers (human readable representation of available choices).
229
- */
748
+ * Available labels of question answers (human readable representation of available choices).
749
+ */
230
750
  getLabels(): Array<string>;
231
751
  /**
232
- * Registers creator of visualizer toolbar item.
233
- */
752
+ * Registers creator of visualizer toolbar item.
753
+ */
234
754
  registerToolbarItem(name: string, creator: (toolbar?: HTMLDivElement) => HTMLElement): void;
235
755
  /**
236
- * The name of the visaulizer.
237
- */
756
+ * The name of the visaulizer.
757
+ */
238
758
  get name(): string;
239
759
  /**
240
- * The actual data of the visaulizer.
241
- */
760
+ * The actual data of the visaulizer.
761
+ */
242
762
  protected get data(): {
243
- [index: string]: any;
763
+ [index: string]: any;
244
764
  }[];
245
765
  /**
246
- * The data provider is used by the visaulizer.
247
- */
766
+ * The data provider is used by the visaulizer.
767
+ */
248
768
  protected get dataProvider(): DataProvider;
249
769
  /**
250
- * Updates visualizer data.
251
- */
770
+ * Updates visualizer data.
771
+ */
252
772
  updateData(data: Array<{
253
- [index: string]: any;
773
+ [index: string]: any;
254
774
  }>): void;
255
775
  onUpdate: () => void;
256
776
  invokeOnUpdate(): void;
257
777
  /**
258
- * Destroys visualizer.
259
- */
778
+ * Destroys visualizer.
779
+ */
260
780
  destroy(): void;
261
781
  /**
262
- * Method for clearing all rendered elements from outside.
263
- */
782
+ * Method for clearing all rendered elements from outside.
783
+ */
264
784
  clear(): void;
265
785
  protected createToolbarItems(toolbar: HTMLDivElement): void;
266
786
  /**
267
- * Destroys visualizer toolbar.
268
- */
787
+ * Destroys visualizer toolbar.
788
+ */
269
789
  protected destroyToolbar(container: HTMLElement): void;
270
790
  /**
271
- * Renderss visualizer toolbar.
272
- */
791
+ * Renderss visualizer toolbar.
792
+ */
273
793
  protected renderToolbar(container: HTMLElement): void;
274
794
  /**
275
- * Destroys visualizer content.
276
- * Usually overriden in descendants.
277
- */
795
+ * Destroys visualizer content.
796
+ * Usually overriden in descendants.
797
+ */
278
798
  protected destroyContent(container: HTMLElement): void;
279
799
  /**
280
- * Renders visualizer content.
281
- * Usually overriden in descendants.
282
- */
800
+ * Renders visualizer content.
801
+ * Usually overriden in descendants.
802
+ */
283
803
  protected renderContent(container: HTMLElement): void;
284
804
  /**
285
- * Destroys visualizer footer.
286
- */
805
+ * Destroys visualizer footer.
806
+ */
287
807
  protected destroyFooter(container: HTMLElement): void;
288
808
  /**
289
- * Renders visualizer footer.
290
- */
809
+ * Renders visualizer footer.
810
+ */
291
811
  protected renderFooter(container: HTMLElement): void;
292
812
  /**
293
- * Renders visualizer in the given container.
294
- */
813
+ * Renders visualizer in the given container.
814
+ */
295
815
  render(targetElement: HTMLElement | string): void;
296
816
  /**
297
- * Redraws visualizer and all inner content.
298
- */
817
+ * Redraws visualizer and all inner content.
818
+ */
299
819
  refresh(): void;
300
820
  protected processText(text: string): string;
301
821
  getRandomColor(): any;
822
+ private _backgroundColor;
302
823
  get backgroundColor(): string;
303
824
  set backgroundColor(value: string);
304
825
  protected getBackgroundColorCore(): string;
305
826
  protected setBackgroundColorCore(color: string): void;
306
827
  static customColors: string[];
828
+ private static colors;
307
829
  getColors(count?: number): any;
308
830
  get showHeader(): boolean;
309
831
  set showHeader(newValue: boolean);
310
832
  /**
311
- * Returns data to be used in the visualizer.
312
- */
833
+ * Returns data to be used in the visualizer.
834
+ */
313
835
  getData(): any;
314
836
  getState(): any;
315
837
  setState(state: any): void;
838
+ }
316
839
  }
317
-
318
- type VisualizerConstructor = new (question: Question, data: Array<{
319
- [index: string]: any;
320
- }>, options?: Object) => any;
321
- /**
322
- * Visualizers repository. You need to register a visualizer, link it to the question type name in order to visualize the question answers with the certain representation.
323
- */
324
- export class VisualizationManager {
325
- static alternativesVisualizer: any;
326
- static vizualizers: {
327
- [index: string]: Array<VisualizerConstructor>;
328
- };
329
- /**
330
- * Register visualizer (constructor) for question type.
331
- */
332
- static registerVisualizer(typeName: string, constructor: VisualizerConstructor): void;
333
- /**
334
- * Unregister visualizer (constructor) for question type.
335
- */
336
- static unregisterVisualizer(typeName: string, constructor: VisualizerConstructor): void;
337
- /**
338
- * Unregister visualizer (constructor) for all question types.
339
- */
340
- static unregisterVisualizerForAll(constructor: VisualizerConstructor): void;
341
- /**
342
- * Get visualizers (constructors) for question type.
343
- */
344
- static getVisualizersByType(typeName: string): VisualizerConstructor[];
840
+ declare module "number" {
841
+ import { Question } from "survey-core";
842
+ import { VisualizerBase } from "visualizerBase";
843
+ export class NumberModel extends VisualizerBase {
844
+ private _resultAverage;
845
+ private _resultMin;
846
+ private _resultMax;
847
+ static stepsCount: number;
848
+ static generateTextsCallback: (question: Question, maxValue: number, minValue: number, stepsCount: number, texts: string[]) => string[];
849
+ protected chartTypes: Array<string>;
850
+ chartType: String;
851
+ static showAsPercentage: boolean;
852
+ constructor(question: Question, data: Array<{
853
+ [index: string]: any;
854
+ }>, options?: {
855
+ [index: string]: any;
856
+ }, name?: string);
857
+ protected onDataChanged(): void;
858
+ protected onChartTypeChanged(): void;
859
+ protected setChartType(chartType: string): void;
860
+ destroy(): void;
861
+ generateText(maxValue: number, minValue: number, stepsCount: number): any;
862
+ generateValues(maxValue: number, stepsCount: number): any[];
863
+ generateColors(maxValue: number, minValue: number, stepsCount: number): any[];
864
+ getData(): number[];
865
+ }
866
+ }
867
+ declare module "selectBase" {
868
+ import { Question, ItemValue, Event } from "survey-core";
869
+ import { VisualizerBase } from "visualizerBase";
870
+ export interface IVisualizerWithSelection {
871
+ selection: ItemValue;
872
+ onDataItemSelected: (selectedValue: any, selectedText: string) => void;
873
+ setSelection(item: ItemValue): void;
874
+ }
875
+ export interface IAnswersData {
876
+ datasets: Array<Array<any>>;
877
+ labels: Array<string>;
878
+ colors: Array<string>;
879
+ texts: Array<Array<any>>;
880
+ seriesLabels: Array<string>;
881
+ }
882
+ export class SelectBase extends VisualizerBase implements IVisualizerWithSelection {
883
+ protected selectedItem: ItemValue;
884
+ private choicesOrderSelector;
885
+ private showPercentageBtn;
886
+ private emptyAnswersBtn;
887
+ private transposeDataBtn;
888
+ private topNSelector;
889
+ private _showPercentages;
890
+ private _showOnlyPercentages;
891
+ private _percentagePrecision;
892
+ protected _answersOrder: string;
893
+ protected _supportSelection: boolean;
894
+ private _hideEmptyAnswers;
895
+ private _topN;
896
+ static topNValuesDefaults: number[];
897
+ topNValues: any[];
898
+ private _transposeData;
899
+ private _showMissingAnswers;
900
+ private missingAnswersBtn;
901
+ constructor(question: Question, data: Array<{
902
+ [index: string]: any;
903
+ }>, options?: any, name?: string);
904
+ protected chartTypes: string[];
905
+ chartType: string;
906
+ private updateEmptyAnswersBtn;
907
+ private updateTransposeDataBtn;
908
+ private updateOrderSelector;
909
+ private updateShowPercentageBtn;
910
+ private updateTopNSelector;
911
+ private updateMissingAnswersBtn;
912
+ protected onChartTypeChanged(): void;
913
+ protected setChartType(chartType: string): void;
914
+ getSelectedItemByText(itemText: string): any;
915
+ setSelection(item: ItemValue): void;
916
+ get selection(): ItemValue;
917
+ get showOnlyPercentages(): boolean;
918
+ set showOnlyPercentages(val: boolean);
919
+ get showPercentages(): boolean;
920
+ set showPercentages(val: boolean);
921
+ get answersOrder(): string;
922
+ set answersOrder(value: string);
923
+ get hideEmptyAnswers(): boolean;
924
+ set hideEmptyAnswers(value: boolean);
925
+ get transposeData(): boolean;
926
+ set transposeData(value: boolean);
927
+ get topN(): number;
928
+ set topN(value: number);
929
+ protected isSupportMissingAnswers(): boolean;
930
+ get showMissingAnswers(): boolean;
931
+ set showMissingAnswers(value: boolean);
932
+ refreshContent(): void;
933
+ onDataItemSelected: (selectedValue: any, selectedText: string) => void;
934
+ get showValuesInOriginalOrder(): boolean;
935
+ valuesSource(): Array<ItemValue>;
936
+ getValues(): Array<any>;
937
+ getLabels(): Array<string>;
938
+ getPercentages(): Array<Array<number>>;
939
+ protected hideEmptyAnswersInData(answersData: IAnswersData): IAnswersData;
940
+ protected answersDataReady(answersData: IAnswersData): any;
345
941
  /**
346
- * Get visualizers (constructors) for question type.
347
- */
348
- static getAlternativesVisualizer(): any;
942
+ * Fires when answer data has been combined before they passed to draw graph.
943
+ * options - the answers data object containing: datasets, labels, colors, additional texts (percentage).
944
+ * options fields can be modified
945
+ */
946
+ onAnswersDataReady: Event<(sender: SelectBase, options: any) => any, any>;
349
947
  /**
350
- * Register visualizer (constructor) for question type.
351
- */
352
- static registerAlternativesVisualizer(constructor: any): void;
948
+ * Returns object with all infotmation for data visualization: datasets, labels, colors, additional texts (percentage).
949
+ */
950
+ getAnswersData(): IAnswersData;
951
+ protected transpose(data: Array<Array<number>>): Array<Array<number>>;
952
+ private static _stateProperties;
953
+ getState(): any;
954
+ setState(state: any): void;
955
+ }
353
956
  }
354
- export {};
355
-
356
- import "./visualizationPanel.scss";
357
- export interface IVisualizerPanelRenderedElement extends IVisualizerPanelElement {
358
- renderedElement?: HTMLElement;
957
+ declare module "matrix" {
958
+ import { ItemValue, QuestionMatrixModel, Question } from "survey-core";
959
+ import { IAnswersData, SelectBase } from "selectBase";
960
+ export class Matrix extends SelectBase {
961
+ constructor(question: Question, data: Array<{
962
+ [index: string]: any;
963
+ }>, options?: Object, name?: string);
964
+ protected get matrixQuestion(): QuestionMatrixModel;
965
+ protected isSupportMissingAnswers(): boolean;
966
+ getSeriesValues(): Array<string>;
967
+ getSeriesLabels(): Array<string>;
968
+ getSelectedItemByText(itemText: string): any;
969
+ valuesSource(): Array<ItemValue>;
970
+ private getHasAnswersInAllSeriesArray;
971
+ private getHasAnswersInSeries;
972
+ protected hideEmptyAnswersInData(answersData: IAnswersData): IAnswersData;
973
+ getData(): any[];
974
+ }
359
975
  }
360
- /**
361
- * This interface contains all available options to setup a visualization panel
362
- */
363
- export interface IVisualizationPanelOptions {
364
- /**
365
- * Set the length of a label where the truncation starts. Set to -1 to disable truncate. Default is 27
366
- */
976
+ declare module "boolean" {
977
+ import { Question, QuestionBooleanModel } from "survey-core";
978
+ import { ItemValue } from "survey-core";
979
+ import { SelectBase } from "selectBase";
980
+ export class BooleanModel extends SelectBase {
981
+ protected chartTypes: string[];
982
+ chartType: string;
983
+ constructor(question: Question, data: Array<{
984
+ [index: string]: any;
985
+ }>, options?: Object, name?: string);
986
+ get booleanQuestion(): QuestionBooleanModel;
987
+ static trueColor: string;
988
+ static falseColor: string;
989
+ getSelectedItemByText(itemText: string): ItemValue;
990
+ getValues(): Array<any>;
991
+ getLabels(): Array<string>;
992
+ }
993
+ }
994
+ declare module "histogram" {
995
+ import { ItemValue, Question } from "survey-core";
996
+ import { SelectBase } from "selectBase";
997
+ export class HistogramModel extends SelectBase {
998
+ protected valueType: "date" | "number";
999
+ private _cachedValues;
1000
+ private _continiousData;
1001
+ private _cachedIntervals;
1002
+ protected chartTypes: string[];
1003
+ chartType: string;
1004
+ static IntervalsCount: number;
1005
+ static UseIntervalsFrom: number;
1006
+ constructor(question: Question, data: Array<{
1007
+ [index: string]: any;
1008
+ }>, options?: Object, name?: string);
1009
+ private reset;
1010
+ getContiniousValue(value: any): number;
1011
+ getString(value: number): string;
1012
+ getSelectedItemByText(itemText: string): ItemValue;
1013
+ /**
1014
+ * Updates visualizer data.
1015
+ */
1016
+ updateData(data: Array<{
1017
+ [index: string]: any;
1018
+ }>): void;
1019
+ protected onDataChanged(): void;
1020
+ protected getContiniousValues(): {
1021
+ original: any;
1022
+ continious: number;
1023
+ }[];
1024
+ protected isSupportMissingAnswers(): boolean;
1025
+ getValues(): Array<any>;
1026
+ getLabels(): Array<string>;
1027
+ get hasCustomIntervals(): boolean;
1028
+ get intervals(): any;
1029
+ getData(): any;
1030
+ }
1031
+ }
1032
+ declare module "alternativeVizualizersWrapper" {
1033
+ import { Question, ItemValue } from "survey-core";
1034
+ import { VisualizerBase } from "visualizerBase";
1035
+ import { IVisualizerWithSelection } from "selectBase";
1036
+ export class AlternativeVisualizersWrapper extends VisualizerBase implements IVisualizerWithSelection {
1037
+ private visualizers;
1038
+ constructor(visualizers: Array<VisualizerBase>, question: Question, data: Array<{
1039
+ [index: string]: any;
1040
+ }>, options?: Object);
1041
+ protected visualizerContainer: HTMLElement;
1042
+ get hasFooter(): boolean;
1043
+ getVisualizers(): VisualizerBase[];
1044
+ private visualizersWithSelection;
1045
+ private selectedItem;
1046
+ private visualizer;
1047
+ private onAfterVisualizerRenderCallback;
1048
+ private setVisualizer;
1049
+ updateData(data: Array<{
1050
+ [index: string]: any;
1051
+ }>): void;
1052
+ set onDataItemSelected(val: (selectedValue: any, selectedText: string) => void);
1053
+ setSelection(item: ItemValue): void;
1054
+ get selection(): any;
1055
+ protected renderContent(container: HTMLElement): void;
1056
+ protected setBackgroundColorCore(color: string): void;
1057
+ destroy(): void;
1058
+ }
1059
+ }
1060
+ declare module "config" {
1061
+ export interface IVisualizerPanelElement {
1062
+ name: string;
1063
+ displayName: string;
1064
+ isVisible: boolean;
1065
+ isPublic: boolean;
1066
+ type?: string;
1067
+ chartType?: string;
1068
+ answersOrder?: string;
1069
+ hideEmptyAnswers?: boolean;
1070
+ topN?: number;
1071
+ }
1072
+ export interface IState {
1073
+ locale?: string;
1074
+ elements?: IVisualizerPanelElement[];
1075
+ }
1076
+ export interface IPermission {
1077
+ name: string;
1078
+ isPublic: boolean;
1079
+ }
1080
+ }
1081
+ declare module "filterInfo" {
1082
+ import { IVisualizerWithSelection } from "selectBase";
1083
+ export class FilterInfo {
1084
+ private _htmlElement;
1085
+ private text;
1086
+ constructor(visualizer: IVisualizerWithSelection);
1087
+ get htmlElement(): HTMLDivElement;
1088
+ update(selection: {
1089
+ value: any;
1090
+ text: string;
1091
+ }): void;
1092
+ }
1093
+ }
1094
+ declare module "layoutEngine" {
1095
+ export class LayoutEngine {
1096
+ protected _allowed: boolean;
1097
+ constructor(_allowed: boolean);
1098
+ protected startCore(container: HTMLElement): void;
1099
+ protected stopCore(): void;
1100
+ protected updateCore(): void;
1101
+ get allowed(): boolean;
1102
+ start(container: HTMLElement): void;
1103
+ stop(): void;
1104
+ update(): void;
1105
+ add(elements: Array<HTMLElement>, options?: any): void;
1106
+ remove(elements: Array<HTMLElement>, options?: any): void;
1107
+ onMoveCallback: (fromIndex: number, toIndex: number) => void;
1108
+ destroy(): void;
1109
+ }
1110
+ export class MuuriLayoutEngine extends LayoutEngine {
1111
+ private _selector;
1112
+ private _muuri;
1113
+ private _layoutingTimer;
1114
+ constructor(allowed: boolean, _selector: string);
1115
+ protected startCore(container: HTMLElement): void;
1116
+ protected stopCore(): void;
1117
+ protected updateCore(): void;
1118
+ add(elements: Array<HTMLElement>, options?: any): void;
1119
+ remove(elements: Array<HTMLElement>, options?: any): void;
1120
+ }
1121
+ }
1122
+ declare module "visualizationPanel" {
1123
+ import { Event, SurveyModel } from "survey-core";
1124
+ import { VisualizerBase } from "visualizerBase";
1125
+ import { IVisualizerPanelElement, IState, IPermission } from "config";
1126
+ import { LayoutEngine } from "layoutEngine";
1127
+ import { DataProvider } from "dataProvider";
1128
+ import "./visualizationPanel.scss";
1129
+ export interface IVisualizerPanelRenderedElement extends IVisualizerPanelElement {
1130
+ renderedElement?: HTMLElement;
1131
+ }
1132
+ /**
1133
+ * Visualization Panel configuration. Pass it as the third argument to the `VisualizationPanel` constructor:
1134
+ *
1135
+ * ```js
1136
+ * const vizPanel = new SurveyAnalytics.VisualizationPanel(surveyQuestions, surveyResults, vizPanelOptions);
1137
+ * ```
1138
+ */
1139
+ export interface IVisualizationPanelOptions {
1140
+ /**
1141
+ * The number of label characters after which truncation starts.
1142
+ * Set this property to -1 to disable truncation.
1143
+ *
1144
+ * Default value: 27
1145
+ */
367
1146
  labelTruncateLength?: number;
368
- /**
369
- * Set it to true to allow make elements private/public also @see persmissions property
370
- */
371
1147
  allowMakeQuestionsPrivate?: boolean;
372
- /**
373
- * An array of series values in data to group data by series
374
- */
375
1148
  seriesValues?: string[];
376
- /**
377
- * Labels for series to display, if not passed the seriesValues are used as labels
378
- */
379
1149
  seriesLabels?: string[];
380
- /**
381
- * Set it to true to force use values as labels
382
- */
383
1150
  useValuesAsLabels?: boolean;
384
1151
  /**
385
- * Pass survey instance to use localses from the survey JSON
386
- */
1152
+ * Pass a survey instance to use survey locales in the Visualization Panel.
1153
+ */
387
1154
  survey?: SurveyModel;
388
1155
  /**
389
- * dataProvider instance for this visualizer
390
- */
1156
+ * A common data provider for all visualizers.
1157
+ */
391
1158
  dataProvider?: DataProvider;
392
1159
  /**
393
- * Set it to false to deny user to hide/show individual questions, this will hide the corresponding question toolbar button
394
- */
1160
+ * Allows users to change the visibility of individual charts.
1161
+ * This property adds a Hide button to each chart.
1162
+ *
1163
+ * Default value: `true`
1164
+ */
395
1165
  allowHideQuestions?: boolean;
396
1166
  /**
397
- * Set it to false to disable items drag/drop reordering and dynamic layouting
398
- */
1167
+ * Specifies whether to arrange charts based on the available screen space and allow users to reorder them via drag and drop.
1168
+ * If this property is disabled, charts are displayed one under the other, and users cannot reorder them.
1169
+ *
1170
+ * Default value: `true`
1171
+ *
1172
+ * [View the "Disable the Layout Engine" example](https://surveyjs.io/Examples/Analytics?id=custom-layout)
1173
+ *
1174
+ * @see layoutEngine
1175
+ */
399
1176
  allowDynamicLayout?: boolean;
400
1177
  /**
401
- * Layout engine to be used for layouting inner visualizers @see LayoutEngine
402
- */
1178
+ * A layout engine used to arrange charts on the Visualization Panel.
1179
+ * You can use this property to integrate a third-party layout engine with SurveyJS Analytics.
1180
+ *
1181
+ * @see allowDynamicLayout
1182
+ */
403
1183
  layoutEngine?: LayoutEngine;
404
1184
  /**
405
- * Set to true to allow to show percentages in bar charts, this will show the corresponding question toolbar button
406
- */
1185
+ * Allows users to switch between absolute and percentage values in bar charts.
1186
+ * This property adds a Show Percentages button to each bar chart.
1187
+ *
1188
+ * Default value: `false`
1189
+ *
1190
+ * @see showPercentages
1191
+ * @see showOnlyPercentages
1192
+ * @see percentagePrecision
1193
+ */
407
1194
  allowShowPercentages?: boolean;
408
1195
  /**
409
- * Set it to true to show percentages in bar charts
410
- */
1196
+ * Specifies whether bar charts display percentages in addition to absolute values.
1197
+ * Users can change this property value if you enable the `allowShowPercentages` property.
1198
+ *
1199
+ * Default value: `false`
1200
+ *
1201
+ * @see allowShowPercentages
1202
+ * @see showOnlyPercentages
1203
+ * @see percentagePrecision
1204
+ */
411
1205
  showPercentages?: boolean;
412
1206
  /**
413
- * Set it to true to show percentages only in bar charts (don't show values)
414
- */
1207
+ * Specifies whether bar charts display only percentages, without absolute values.
1208
+ * Applies only if the `allowShowPercentages` or `showPercentages` property is enables.
1209
+ *
1210
+ * Default value: `false`
1211
+ *
1212
+ * @see allowShowPercentages
1213
+ * @see showPercentages
1214
+ * @see percentagePrecision
1215
+ */
415
1216
  showOnlyPercentages?: boolean;
416
1217
  /**
417
- * Set percentage decimal presision
418
- */
1218
+ * Specifies percentage precision.
1219
+ *
1220
+ * Default value: 0
1221
+ *
1222
+ * @see allowShowPercentages
1223
+ * @see showPercentages
1224
+ * @see showOnlyPercentages
1225
+ */
419
1226
  percentagePrecision?: number;
420
1227
  /**
421
- *
422
- */
1228
+ * Removes the Free Trial bar.
1229
+ * **IMPORTANT**: You can enable this property only if you have a SurveyJS Analytics commercial license. It is illegal to enable this property without a license.
1230
+ */
423
1231
  haveCommercialLicense?: boolean;
424
1232
  /**
425
- * Set to true to allow change answers order, choices are ordered by answers count, this will show the corresponding question toolbar dropdown
426
- */
1233
+ * Allows users to sort answers by answer count. Applies only to bar and scatter charts.
1234
+ * This property adds a Sorting dropdown to each bar and scatter chart.
1235
+ *
1236
+ * Default value: `true`
1237
+ *
1238
+ * @see answersOrder
1239
+ */
427
1240
  allowChangeAnswersOrder?: boolean;
428
1241
  /**
429
- * Defauls answers order
430
- */
431
- answersOrder?: "default" | "desc" | "desc";
432
- /**
433
- * Set to true to allow hide empty answers, this will show the corresponding question toolbar button
434
- */
1242
+ * Specifies how to sort answers in bar and scatter charts.
1243
+ * Accepted values:
1244
+ *
1245
+ * - `"default"` (default) - Do not sort answers.
1246
+ * - `"asc"` - Sort answers by ascending answer count.
1247
+ * - `"desc"` - Sort answers by descending answer count.
1248
+ *
1249
+ * Users can change this property value if you enable the `allowChangeAnswersOrder` property.
1250
+ *
1251
+ * @see allowChangeAnswersOrder
1252
+ */
1253
+ answersOrder?: "default" | "asc" | "desc";
1254
+ /**
1255
+ * Allows users to hide answers with zero count in bar and scatter charts.
1256
+ * This property adds a Hide Empty Answers button to each bar and scatter chart.
1257
+ *
1258
+ * Default value: `false`
1259
+ */
435
1260
  allowHideEmptyAnswers?: boolean;
436
1261
  /**
437
- * Set to true to hide empty answers
438
- */
1262
+ * Hides answers with zero count in bar and scatter charts.
1263
+ * Users can change this property value if you enable the `allowHideEmptyAnswers` property.
1264
+ *
1265
+ * Default value: `false`
1266
+ *
1267
+ * @see allowHideEmptyAnswers
1268
+ */
439
1269
  hideEmptyAnswers?: boolean;
440
1270
  /**
441
- * Set to true to allow show top N answers, this will show the corresponding question toolbar dropdown
442
- */
1271
+ * Allows users to select whether to show top 5, 10, or 20 answers by answer count.
1272
+ * This property adds a Top N Answers dropdown to each chart.
1273
+ *
1274
+ * Default value: `false`
1275
+ */
443
1276
  allowTopNAnswers?: boolean;
444
1277
  /**
445
- * Set to true to allow show missing answers, this will show the corresponding question toolbar button
446
- */
1278
+ * Allows users to show the number of respondents who did not answer a particular question.
1279
+ * This property adds a Show Missing Answers button to each chart.
1280
+ *
1281
+ * Default value: `false`
1282
+ */
447
1283
  allowShowMissingAnswers?: boolean;
448
- /**
449
- * Set to true to allow to use experimental features: e.g. vertical bar chart configuration
450
- */
451
1284
  allowExperimentalFeatures?: boolean;
452
1285
  /**
453
- * Set default chart type
454
- */
1286
+ * Default chart type.
1287
+ *
1288
+ * Accepted values depend on the question type as follows:
1289
+ *
1290
+ * - Boolean: `"bar"` | `"pie"` | `"doughnut"`
1291
+ * - Date, Number: `"bar"` | `"scatter"`
1292
+ * - Matrix: `"bar"` | `"pie"` | `"doughnut"` | `"stackedbar"`
1293
+ * - Rating: `"bar"` | `"scatter"` | `"gauge"` | `"bullet"`
1294
+ * - Radiogroup, Checkbox, Dropdown, Image Picker: `"bar"` | `"pie"` | `"doughnut"` | `"scatter"`
1295
+ *
1296
+ * To set a type for an individual chart, access this chart in the `visualizers` array and set its `chartType` property to one of the values described above:
1297
+ *
1298
+ * ```js
1299
+ * const vizPanel = new SurveyAnalytics.VisualizationPanel( ... );
1300
+ * vizPanel.visualizers[0].chartType = "stackedbar";
1301
+ * ```
1302
+ *
1303
+ */
455
1304
  defaultChartType?: string;
456
1305
  /**
457
- * Set to true to allow transpose data: answers in matrix can be grouped by columns or by rows, this will show the corresponding question toolbar button
458
- */
1306
+ * Allows users to transpose a visualized matrix question.
1307
+ * This property adds a Transpose button to charts that visualize matrixes. When users select Per Values, matrix rows go to chart arguments, and matrix columns form chart series. When users select Per Columns, matrix rows form chart series, and matrix columns go to chart arguments.
1308
+ *
1309
+ * Default value: `false`
1310
+ */
459
1311
  allowTransposeData?: boolean;
460
1312
  /**
461
- * Set to false to disable selection and cross filtering in charts
462
- */
1313
+ * Allows users to cross-filter charts. The filter applies when users selects a series point.
1314
+ *
1315
+ * Default value: `true`
1316
+ */
463
1317
  allowSelection?: boolean;
464
- /**
465
- * Pass a function to render content of a visualizer
466
- */
467
1318
  renderContent?: Function;
468
- /**
469
- * Pass a function to destroy content of a visualizer
470
- */
471
1319
  destroyContent?: Function;
472
1320
  /**
473
- * Set to true to strip HTML tags from titles
474
- */
1321
+ * Removes HTML tags from survey element titles.
1322
+ * Survey element titles can contain HTML markup and are specified by users. An attacker can inject malicious code into the titles. To guard against it, keep this property set to `true`.
1323
+ *
1324
+ * Default value: `true`
1325
+ */
475
1326
  stripHtmlFromTitles?: boolean;
476
- }
477
- /**
478
- * VisualizationPanel is responsible for visualizing an array of survey questions
479
- * <br/>
480
- * <br/> constructor parameters:
481
- * <br/> questions - an array of survey questions to visualize,
482
- * <br/> data - an array of answers in format of survey result,
483
- * <br/> options - object of the IVisualizationPanelOptions type, @see IVisualizationPanelOptions
484
- * <br/> elements - list of visual element descriptions
485
- *
486
- */
487
- export class VisualizationPanel extends VisualizerBase {
1327
+ }
1328
+ /**
1329
+ * VisualizationPanel is responsible for visualizing an array of survey questions
1330
+ * <br/>
1331
+ * <br/> constructor parameters:
1332
+ * <br/> questions - an array of survey questions to visualize,
1333
+ * <br/> data - an array of answers in format of survey result,
1334
+ * <br/> options - object of the IVisualizationPanelOptions type, @see IVisualizationPanelOptions
1335
+ * <br/> elements - list of visual element descriptions
1336
+ *
1337
+ */
1338
+ export class VisualizationPanel extends VisualizerBase {
488
1339
  protected questions: Array<any>;
1340
+ private _elements;
489
1341
  static haveCommercialLicense: boolean;
490
1342
  visualizers: Array<VisualizerBase>;
1343
+ private haveCommercialLicense;
1344
+ private renderedQuestionsCount;
491
1345
  constructor(questions: Array<any>, data: Array<{
492
- [index: string]: any;
1346
+ [index: string]: any;
493
1347
  }>, options?: IVisualizationPanelOptions, _elements?: Array<IVisualizerPanelRenderedElement>);
1348
+ private onAfterRenderQuestionCallback;
494
1349
  protected showElement(elementName: string): void;
495
1350
  protected hideElement(elementName: string): void;
496
1351
  protected makeElementPrivate(element: IVisualizerPanelElement): void;
@@ -498,611 +1353,210 @@ export class VisualizationPanel extends VisualizerBase {
498
1353
  protected moveVisibleElement(fromVisibleIndex: number, toVisibleIndex: number): void;
499
1354
  protected moveElement(fromIndex: number, toIndex: number): void;
500
1355
  protected setBackgroundColorCore(color: string): void;
1356
+ private buildVisualizers;
1357
+ private destroyVisualizers;
501
1358
  /**
502
- * Returns current locale of the visualization panel.
503
- * If locales more than one, the language selection dropdown will be added in the toolbar
504
- * In order to use survey locales the survey instance object should be passed as 'survey' option for visualizer
505
- */
1359
+ * Returns current locale of the visualization panel.
1360
+ * If locales more than one, the language selection dropdown will be added in the toolbar
1361
+ * In order to use survey locales the survey instance object should be passed as 'survey' option for visualizer
1362
+ */
506
1363
  get locale(): string;
507
1364
  /**
508
- * Sets locale for visualization panel.
509
- */
1365
+ * Sets locale for visualization panel.
1366
+ */
510
1367
  set locale(newLocale: string);
1368
+ private setLocale;
511
1369
  /**
512
- * Returns whether the VisualizationPanel allows dynamic layouting - rearrange items via drap/drop. Set via options.
513
- */
1370
+ * Returns whether the VisualizationPanel allows dynamic layouting - rearrange items via drap/drop. Set via options.
1371
+ */
514
1372
  get allowDynamicLayout(): boolean;
515
1373
  /**
516
- * Returns whether the VisualizationPanel allows to hide/show individual inner visualizers.
517
- */
1374
+ * Returns whether the VisualizationPanel allows to hide/show individual inner visualizers.
1375
+ */
518
1376
  get allowHideQuestions(): boolean;
519
1377
  /**
520
- * Returns whether the VisualizationPanel allows to make private/public individual inner visualizers for work with permissions.
521
- */
1378
+ * Returns whether the VisualizationPanel allows to make private/public individual inner visualizers for work with permissions.
1379
+ */
522
1380
  get allowMakeQuestionsPrivate(): boolean;
1381
+ private _layoutEngine;
523
1382
  /**
524
- * Returns the layout engine instance if any.
525
- */
1383
+ * Returns the layout engine instance if any.
1384
+ */
526
1385
  get layoutEngine(): LayoutEngine;
527
1386
  protected buildElements(questions: any[]): IVisualizerPanelElement[];
528
1387
  /**
529
- * Returns panel elements descriptions array.
530
- * Inner visualizers are rendered in the order of this array and with titles from the displayName property
531
- */
1388
+ * Returns panel elements descriptions array.
1389
+ * Inner visualizers are rendered in the order of this array and with titles from the displayName property
1390
+ */
532
1391
  getElements(): IVisualizerPanelElement[];
533
1392
  /**
534
- * Returns panel's visible elements.
535
- */
1393
+ * Returns panel's visible elements.
1394
+ */
536
1395
  get visibleElements(): IVisualizerPanelRenderedElement[];
537
1396
  /**
538
- * Returns panel's hidden elements.
539
- */
1397
+ * Returns panel's hidden elements.
1398
+ */
540
1399
  get hiddenElements(): IVisualizerPanelRenderedElement[];
541
1400
  /**
542
- * Returns panel's public elements.
543
- */
1401
+ * Returns panel's public elements.
1402
+ */
544
1403
  get publicElements(): IVisualizerPanelRenderedElement[];
545
1404
  /**
546
- * Returns panel's private elements.
547
- */
1405
+ * Returns panel's private elements.
1406
+ */
548
1407
  get privateElements(): IVisualizerPanelRenderedElement[];
549
1408
  protected get locales(): any;
550
1409
  /**
551
- * Returns panel element description by the question name.
552
- */
1410
+ * Returns panel element description by the question name.
1411
+ */
553
1412
  getElement(name: string): IVisualizerPanelRenderedElement;
554
1413
  /**
555
- * Returns panel element visualizer by the question name.
556
- */
1414
+ * Returns panel element visualizer by the question name.
1415
+ */
557
1416
  getVisualizer(visualizerName: string): VisualizerBase;
558
1417
  /**
559
- * Fires when element visibility has been changed.
560
- * options:
561
- * elements - panel elements array
562
- * changed - changed element
563
- * reason - reason (string) why event fired: "ADDED", "MOVED" or "REMOVED"
564
- */
1418
+ * Fires when element visibility has been changed.
1419
+ * options:
1420
+ * elements - panel elements array
1421
+ * changed - changed element
1422
+ * reason - reason (string) why event fired: "ADDED", "MOVED" or "REMOVED"
1423
+ */
565
1424
  onVisibleElementsChanged: Event<(sender: VisualizationPanel, options: any) => any, any>;
566
1425
  protected visibleElementsChanged(element: IVisualizerPanelElement, reason: string): void;
567
1426
  /**
568
- * Fires when vizualization panel state changed.
569
- * sender - this panel
570
- * state - new state of the panel
571
- */
1427
+ * Fires when vizualization panel state changed.
1428
+ * sender - this panel
1429
+ * state - new state of the panel
1430
+ */
572
1431
  onStateChanged: Event<(sender: VisualizationPanel, state: IState) => any, any>;
573
1432
  /**
574
- * Fires when permissions changed
575
- */
1433
+ * Fires when permissions changed
1434
+ */
576
1435
  onPermissionsChangedCallback: any;
577
1436
  /**
578
- * Renders given panel element.
579
- */
1437
+ * Renders given panel element.
1438
+ */
580
1439
  protected renderPanelElement(element: IVisualizerPanelRenderedElement, container: HTMLElement): HTMLElement;
581
1440
  protected renderToolbar(container: HTMLElement): void;
582
1441
  /**
583
- * Renders all questions into given HTML container element.
584
- * container - HTML element to render the panel
585
- */
1442
+ * Renders all questions into given HTML container element.
1443
+ * container - HTML element to render the panel
1444
+ */
586
1445
  renderContent(container: HTMLElement): void;
587
1446
  /**
588
- * Destroys visualizer and all inner content.
589
- */
1447
+ * Destroys visualizer and all inner content.
1448
+ */
590
1449
  protected destroyContent(container: HTMLElement): void;
591
1450
  /**
592
- * Redraws visualizer toobar and all inner content.
593
- */
1451
+ * Redraws visualizer toobar and all inner content.
1452
+ */
594
1453
  refresh(): void;
595
1454
  /**
596
- * Updates layout of visualizer inner content.
597
- */
1455
+ * Updates layout of visualizer inner content.
1456
+ */
598
1457
  layout(): void;
599
1458
  /**
600
- * Sets filter by question name and value.
601
- */
1459
+ * Sets filter by question name and value.
1460
+ */
602
1461
  setFilter(questionName: string, selectedValue: any): void;
603
1462
  /**
604
- * Gets vizualization panel state.
605
- */
1463
+ * Gets vizualization panel state.
1464
+ */
606
1465
  get state(): IState;
607
1466
  /**
608
- * Sets vizualization panel state.
609
- */
1467
+ * Sets vizualization panel state.
1468
+ */
610
1469
  set state(newState: IState);
611
1470
  /**
612
- * Gets vizualization panel permissions.
613
- */
1471
+ * Gets vizualization panel permissions.
1472
+ */
614
1473
  get permissions(): IPermission[];
615
1474
  /**
616
- * Sets vizualization panel permissions.
617
- */
1475
+ * Sets vizualization panel permissions.
1476
+ */
618
1477
  set permissions(permissions: IPermission[]);
619
1478
  destroy(): void;
1479
+ }
620
1480
  }
621
-
622
- export class VisualizationPanelDynamic extends VisualizerBase {
623
- protected _panelVisualizer: VisualizationPanel;
624
- constructor(question: Question, data: Array<{
625
- [index: string]: any;
626
- }>, options?: {
627
- [index: string]: any;
628
- }, name?: string);
629
- get name(): string;
630
- updateData(data: Array<{
631
- [index: string]: any;
632
- }>): void;
633
- protected onDataChanged(): void;
634
- getQuestions(): IQuestion[];
635
- destroyContent(container: HTMLElement): void;
636
- renderContent(container: HTMLElement): void;
637
- destroy(): void;
638
- }
639
-
640
- export class VisualizationMatrixDynamic extends VisualizationPanelDynamic {
641
- constructor(question: Question, data: Array<{
642
- [index: string]: any;
643
- }>, options?: Object);
644
- get name(): string;
645
- getQuestions(): any;
646
- }
647
-
648
- export class VisualizationMatrixDropdown extends VisualizerBase {
649
- protected _matrixDropdownVisualizer: VisualizerBase;
650
- constructor(question: QuestionMatrixDropdownModel, data: Array<{
651
- [index: string]: any;
652
- }>, options?: {
653
- [index: string]: any;
654
- }, name?: string);
655
- get matrixDropdownVisualizer(): VisualizerBase;
656
- updateData(data: Array<{
657
- [index: string]: any;
658
- }>): void;
659
- protected onDataChanged(): void;
660
- getQuestions(): any;
661
- destroyContent(container: HTMLElement): void;
662
- renderContent(container: HTMLElement): void;
663
- destroy(): void;
664
- }
665
-
666
- export class AlternativeVisualizersWrapper extends VisualizerBase implements IVisualizerWithSelection {
667
- constructor(visualizers: Array<VisualizerBase>, question: Question, data: Array<{
668
- [index: string]: any;
669
- }>, options?: Object);
670
- protected visualizerContainer: HTMLElement;
671
- get hasFooter(): boolean;
672
- getVisualizers(): VisualizerBase[];
673
- updateData(data: Array<{
674
- [index: string]: any;
675
- }>): void;
676
- set onDataItemSelected(val: (selectedValue: any, selectedText: string) => void);
677
- setSelection(item: ItemValue): void;
678
- get selection(): any;
679
- protected renderContent(container: HTMLElement): void;
680
- protected setBackgroundColorCore(color: string): void;
681
- destroy(): void;
682
- }
683
-
684
- import "./datatables.scss";
685
- interface DataTablesOptions extends ITableOptions {
686
- buttons: boolean | string[] | any[] | any;
687
- dom: string;
688
- orderFixed: Array<number | string> | Array<Array<number | string>> | object;
689
- rowGroup: boolean | any;
690
- headerCallback: any;
691
- }
692
- export class DataTables extends Table {
693
- datatableApi: any;
694
- currentPageNumber: number;
695
- /**
696
- * The event is fired columns configuration has been changed.
697
- * <br/> sender the datatables adapter
698
- * <br/> options.survey current survey
699
- * @see getColumns
700
- */
701
- onColumnsReorder: Event<(sender: DataTables, options: any) => any, any>;
702
- static initJQuery($: any): void;
703
- static set haveCommercialLicense(val: boolean);
704
- constructor(survey: SurveyModel, data: Array<Object>, options: DataTablesOptions, _columns?: Array<ITableColumn>);
705
- destroy(): void;
706
- setColumnVisibility(columnName: string, isVisible: boolean): void;
707
- setColumnLocation(columnName: string, location: QuestionLocation): void;
708
- applyFilter(value: string): void;
709
- applyColumnFilter(columnName: string, value: string): void;
710
- sortByColumn(columnName: string, direction: string): void;
711
- setPageSize(value: number): void;
712
- setPageNumber(value: number): void;
713
- getPageNumber(): number;
714
- render(targetNode: HTMLElement | string): void;
715
- getColumns(): Array<any>;
716
- layout(): void;
717
- }
718
- export class DatatablesRow extends TableRow {
719
- protected table: Table;
720
- protected extensionsContainer: HTMLElement;
721
- protected detailsContainer: HTMLElement;
722
- constructor(table: Table, extensionsContainer: HTMLElement, detailsContainer: HTMLElement, _innerRow: any);
723
- get innerRow(): any;
724
- getElement(): HTMLElement;
725
- getRowData(): HTMLElement;
726
- getDataPosition(): number;
727
- remove(): void;
728
- }
729
- export {};
730
-
731
- import "./tabulator.scss";
732
- interface ITabulatorOptions extends ITableOptions {
733
- tabulatorOptions?: any;
734
- downloadHiddenColumns?: boolean;
735
- actionsColumnWidth?: number;
736
- downloadButtons: Array<string>;
737
- downloadOptions?: {
738
- [type: string]: any;
739
- };
740
- onDownloadCallbacks?: {
741
- [type: string]: (tabulator: Tabulator, options: any) => void;
742
- };
743
- }
744
- export class Tabulator extends Table {
745
- static set haveCommercialLicense(val: boolean);
746
- constructor(survey: SurveyModel, data: Array<Object>, options: ITabulatorOptions, _columns?: Array<any>);
747
- tabulatorTables: any;
748
- render(targetNode: HTMLElement | string): void;
749
- destroy: () => void;
750
- getColumns(): Array<any>;
751
- setColumnVisibility(columnName: string, isVisible: boolean): void;
752
- setColumnLocation(columnName: string, location: QuestionLocation): void;
753
- setColumnWidth(columnName: string, width: number | string): void;
754
- sortByColumn(columnName: string, direction: string): void;
755
- applyColumnFilter(columnName: string, value: string): void;
756
- applyFilter(value: string): void;
757
- getPageNumber(): number;
758
- setPageNumber(value: number): void;
759
- setPageSize(value: number): void;
760
- download(type: string): void;
761
- layout(hard?: boolean): void;
762
- }
763
- export class TabulatorRow extends TableRow {
764
- protected table: Table;
765
- protected extensionsContainer: HTMLElement;
766
- protected detailsContainer: HTMLElement;
767
- protected innerRow: any;
768
- constructor(table: Table, extensionsContainer: HTMLElement, detailsContainer: HTMLElement, innerRow: any);
769
- getElement(): HTMLElement;
770
- getRowData(): HTMLElement;
771
- getDataPosition(): number;
772
- remove(): void;
773
- }
774
- export {};
775
-
776
- export class WordCloudAdapter {
777
- static drawOutOfBound: boolean;
778
- static shrinkToFit: boolean;
779
- static abortThreshold: any;
780
- static weightFactor: number;
781
- constructor(model: WordCloud);
782
- get wordcloud(): any;
783
- create(node: HTMLElement): any;
784
- destroy(node: HTMLElement): void;
785
- }
786
- export class WordCloud extends VisualizerBase {
787
- constructor(question: Question, data: Array<{
788
- [index: string]: any;
789
- }>, options?: Object, name?: string);
790
- getData(): (string | number)[][];
791
- protected destroyContent(container: HTMLElement): void;
792
- protected renderContent(container: HTMLElement): void;
793
- destroy(): void;
794
- }
795
-
796
- export var textHelper: {
797
- getStopWords: (locale?: string) => string[];
798
- };
799
-
800
- import "./text.scss";
801
- export class TextTableAdapter {
802
- constructor(model: Text);
803
- create(container: HTMLElement): void;
804
- destroy(node: HTMLElement): void;
805
- }
806
- export class Text extends VisualizerBase {
807
- constructor(question: Question, data: Array<{
808
- [index: string]: any;
809
- }>, options?: Object, name?: string);
810
- getData(): {
811
- columnsCount: number;
812
- data: string[][];
813
- };
814
- protected destroyContent(container: HTMLElement): void;
815
- protected renderContent(container: HTMLElement): void;
816
- destroy(): void;
817
- }
818
-
819
- export interface IVisualizerPanelElement {
820
- name: string;
821
- displayName: string;
822
- isVisible: boolean;
823
- isPublic: boolean;
824
- type?: string;
825
- chartType?: string;
826
- answersOrder?: string;
827
- hideEmptyAnswers?: boolean;
828
- topN?: number;
829
- }
830
- export interface IState {
831
- locale?: string;
832
- elements?: IVisualizerPanelElement[];
833
- }
834
- export interface IPermission {
835
- name: string;
836
- isPublic: boolean;
837
- }
838
-
839
- export class LayoutEngine {
840
- protected _allowed: boolean;
841
- constructor(_allowed: boolean);
842
- protected startCore(container: HTMLElement): void;
843
- protected stopCore(): void;
844
- protected updateCore(): void;
845
- get allowed(): boolean;
846
- start(container: HTMLElement): void;
847
- stop(): void;
848
- update(): void;
849
- add(elements: Array<HTMLElement>, options?: any): void;
850
- remove(elements: Array<HTMLElement>, options?: any): void;
851
- onMoveCallback: (fromIndex: number, toIndex: number) => void;
852
- destroy(): void;
853
- }
854
- export class MuuriLayoutEngine extends LayoutEngine {
855
- constructor(allowed: boolean, _selector: string);
856
- protected startCore(container: HTMLElement): void;
857
- protected stopCore(): void;
858
- protected updateCore(): void;
859
- add(elements: Array<HTMLElement>, options?: any): void;
860
- remove(elements: Array<HTMLElement>, options?: any): void;
861
- }
862
-
863
- export interface IVisualizerWithSelection {
864
- selection: ItemValue;
865
- onDataItemSelected: (selectedValue: any, selectedText: string) => void;
866
- setSelection(item: ItemValue): void;
867
- }
868
- export interface IAnswersData {
869
- datasets: Array<Array<any>>;
870
- labels: Array<string>;
871
- colors: Array<string>;
872
- texts: Array<Array<any>>;
873
- seriesLabels: Array<string>;
874
- }
875
- export class SelectBase extends VisualizerBase implements IVisualizerWithSelection {
876
- protected selectedItem: ItemValue;
877
- protected _answersOrder: string;
878
- protected _supportSelection: boolean;
879
- static topNValuesDefaults: number[];
880
- topNValues: any[];
1481
+ declare module "visualizationPanelDynamic" {
1482
+ import { VisualizerBase } from "visualizerBase";
1483
+ import { VisualizationPanel } from "visualizationPanel";
1484
+ import { Question, IQuestion } from "survey-core";
1485
+ export class VisualizationPanelDynamic extends VisualizerBase {
1486
+ protected _panelVisualizer: VisualizationPanel;
881
1487
  constructor(question: Question, data: Array<{
882
- [index: string]: any;
883
- }>, options?: any, name?: string);
884
- protected chartTypes: string[];
885
- chartType: string;
886
- protected onChartTypeChanged(): void;
887
- protected setChartType(chartType: string): void;
888
- getSelectedItemByText(itemText: string): any;
889
- setSelection(item: ItemValue): void;
890
- get selection(): ItemValue;
891
- get showOnlyPercentages(): boolean;
892
- set showOnlyPercentages(val: boolean);
893
- get showPercentages(): boolean;
894
- set showPercentages(val: boolean);
895
- get answersOrder(): string;
896
- set answersOrder(value: string);
897
- get hideEmptyAnswers(): boolean;
898
- set hideEmptyAnswers(value: boolean);
899
- get transposeData(): boolean;
900
- set transposeData(value: boolean);
901
- get topN(): number;
902
- set topN(value: number);
903
- protected isSupportMissingAnswers(): boolean;
904
- get showMissingAnswers(): boolean;
905
- set showMissingAnswers(value: boolean);
906
- refreshContent(): void;
907
- onDataItemSelected: (selectedValue: any, selectedText: string) => void;
908
- valuesSource(): Array<ItemValue>;
909
- getValues(): Array<any>;
910
- getLabels(): Array<string>;
911
- getPercentages(): Array<Array<number>>;
912
- protected hideEmptyAnswersInData(answersData: IAnswersData): IAnswersData;
913
- protected answersDataReady(answersData: IAnswersData): any;
914
- /**
915
- * Fires when answer data has been combined before they passed to draw graph.
916
- * options - the answers data object containing: datasets, labels, colors, additional texts (percentage).
917
- * options fields can be modified
918
- */
919
- onAnswersDataReady: Event<(sender: SelectBase, options: any) => any, any>;
920
- /**
921
- * Returns object with all infotmation for data visualization: datasets, labels, colors, additional texts (percentage).
922
- */
923
- getAnswersData(): IAnswersData;
924
- protected transpose(data: Array<Array<number>>): Array<Array<number>>;
925
- getState(): any;
926
- setState(state: any): void;
927
- }
928
-
929
- export interface ITableOptions {
930
- [index: string]: any;
931
- /**
932
- * Set this property to true to render column headings using question names
933
- */
934
- useNamesAsTitles?: boolean;
935
- /**
936
- * Use this event to change the display value of question in table.
937
- * <br/> `sender` - the table object that fires the event.
938
- * <br/> `options.question` - the question obect for which event is fired.
939
- * <br/> `options.displayValue` - the question display value. You can change this option before it is displayed in the table.
940
- */
941
- onGetQuestionValue?: (options: {
942
- question: Question;
943
- displayValue: any;
944
- }) => void;
945
- }
946
- export abstract class Table {
947
- protected survey: SurveyModel;
948
- protected data: Array<Object>;
949
- protected options: ITableOptions;
950
- protected _columns: Array<ITableColumn>;
951
- static showFilesAsImages: boolean;
952
- static haveCommercialLicense: boolean;
953
- protected tableData: any;
954
- protected extensions: TableExtensions;
955
- constructor(survey: SurveyModel, data: Array<Object>, options?: ITableOptions, _columns?: Array<ITableColumn>);
956
- protected renderResult: HTMLElement;
957
- protected currentPageSize: number;
958
- protected currentPageNumber: number;
959
- protected _rows: TableRow[];
960
- protected isColumnReorderEnabled: boolean;
961
- onColumnsVisibilityChanged: Event<(sender: Table, options: any) => any, any>;
962
- onColumnsLocationChanged: Event<(sender: Table, options: any) => any, any>;
963
- onRowRemoved: Event<(sender: Table, options: any) => any, any>;
964
- renderDetailActions: (container: HTMLElement, row: TableRow) => HTMLElement;
965
- getData(): Object[];
966
- abstract applyFilter(value: string): void;
967
- abstract applyColumnFilter(columnName: string, value: string): void;
968
- abstract sortByColumn(columnName: string, direction: string): void;
969
- render(targetNode: HTMLElement | string): void;
970
- enableColumnReorder(): void;
971
- disableColumnReorder(): void;
972
- getPageNumber(): number;
973
- setPageNumber(value: number): void;
974
- getPageSize(): number;
975
- setPageSize(value: number): void;
976
- getCreatedRows(): TableRow[];
977
- clearCreatedRows(): void;
978
- protected get useNamesAsTitles(): boolean;
979
- protected buildColumns: (survey: SurveyModel) => ITableColumn[];
980
- isColumnVisible(column: ITableColumn): boolean;
981
- get columns(): Array<ITableColumn>;
982
- set columns(columns: Array<ITableColumn>);
983
- protected initTableData(data: Array<any>): void;
984
- moveColumn(from: number, to: number): void;
985
- setColumnLocation(columnName: string, location: QuestionLocation): void;
986
- getColumnByName(columnName: string): ITableColumn;
987
- setColumnVisibility(columnName: string, isVisible: boolean): void;
988
- setColumnWidth(columnName: string, width: string | number): void;
989
- removeRow(row: TableRow): void;
990
- /**
991
- * Returns current locale of the table.
992
- * If locales more than one, the language selection dropdown will be added in the toolbar
993
- */
994
- get locale(): string;
995
- /**
996
- * Sets locale for table.
997
- */
998
- set locale(newLocale: string);
999
- getLocales(): Array<string>;
1000
- refresh(hard?: boolean): void;
1001
- destroy(): void;
1002
- get isRendered(): boolean;
1003
- /**
1004
- * Vizualization panel state getter.
1005
- */
1006
- get state(): ITableState;
1007
- /**
1008
- * Vizualization panel state setter.
1009
- */
1010
- set state(newState: ITableState);
1011
- /**
1012
- * Fires when table state changed.
1013
- */
1014
- onStateChanged: Event<(sender: Table, options: any) => any, any>;
1015
- /**
1016
- * Gets table permissions.
1017
- */
1018
- get permissions(): IPermission[];
1019
- /**
1020
- * Sets table permissions.
1021
- */
1022
- set permissions(permissions: IPermission[]);
1023
- /**
1024
- * Fires when permissions changed
1025
- */
1026
- onPermissionsChangedCallback: any;
1027
- }
1028
- export abstract class TableRow {
1029
- protected table: Table;
1030
- protected extensionsContainer: HTMLElement;
1031
- protected detailsContainer: HTMLElement;
1032
- constructor(table: Table, extensionsContainer: HTMLElement, detailsContainer: HTMLElement);
1033
- details: Details;
1034
- extensions: TableExtensions;
1035
- onToggleDetails: Event<(sender: TableRow, options: any) => any, any>;
1036
- /**
1037
- * Returns row's html element
1038
- */
1039
- abstract getElement(): HTMLElement;
1040
- /**
1041
- * Returns data, which is displayed in the row.
1042
- */
1043
- abstract getRowData(): any;
1044
- /**
1045
- * Returns position of row in the table's data.
1046
- */
1047
- abstract getDataPosition(): number;
1048
- protected isSelected: boolean;
1049
- render(): void;
1050
- openDetails(): void;
1051
- closeDetails(): void;
1052
- toggleDetails(): void;
1053
- getIsSelected(): boolean;
1054
- toggleSelect(): void;
1055
- remove(): void;
1488
+ [index: string]: any;
1489
+ }>, options?: {
1490
+ [index: string]: any;
1491
+ }, name?: string);
1492
+ private onAfterRenderPanelCallback;
1493
+ get name(): string;
1494
+ private updatePanelVisualizerData;
1495
+ updateData(data: Array<{
1496
+ [index: string]: any;
1497
+ }>): void;
1498
+ protected onDataChanged(): void;
1499
+ getQuestions(): IQuestion[];
1500
+ destroyContent(container: HTMLElement): void;
1501
+ renderContent(container: HTMLElement): void;
1056
1502
  destroy(): void;
1503
+ }
1057
1504
  }
1058
-
1059
- export enum QuestionLocation {
1060
- Column = 0,
1061
- Row = 1
1062
- }
1063
- export enum ColumnDataType {
1064
- Text = 0,
1065
- FileLink = 1,
1066
- Image = 2
1067
- }
1068
- export interface ITableColumn {
1069
- name: string;
1070
- displayName: string;
1071
- dataType: ColumnDataType;
1072
- isVisible: boolean;
1073
- isPublic: boolean;
1074
- location: QuestionLocation;
1075
- width?: string | number;
1076
- isComment?: boolean;
1077
- }
1078
- export interface ITableState {
1079
- locale?: string;
1080
- elements?: ITableColumn[];
1081
- pageSize?: number;
1505
+ declare module "visualizationMatrixDynamic" {
1506
+ import { Question } from "survey-core";
1507
+ import { VisualizationPanelDynamic } from "visualizationPanelDynamic";
1508
+ export class VisualizationMatrixDynamic extends VisualizationPanelDynamic {
1509
+ constructor(question: Question, data: Array<{
1510
+ [index: string]: any;
1511
+ }>, options?: Object);
1512
+ get name(): string;
1513
+ getQuestions(): any;
1514
+ }
1082
1515
  }
1083
- export interface IPermission {
1084
- name: string;
1085
- isPublic: boolean;
1516
+ declare module "visualizationMatrixDropdown" {
1517
+ import { QuestionMatrixDropdownModel } from "survey-core";
1518
+ import { VisualizerBase } from "visualizerBase";
1519
+ export class VisualizationMatrixDropdown extends VisualizerBase {
1520
+ protected _matrixDropdownVisualizer: VisualizerBase;
1521
+ constructor(question: QuestionMatrixDropdownModel, data: Array<{
1522
+ [index: string]: any;
1523
+ }>, options?: {
1524
+ [index: string]: any;
1525
+ }, name?: string);
1526
+ get matrixDropdownVisualizer(): VisualizerBase;
1527
+ private onPanelAfterRenderCallback;
1528
+ private updateDropdownVisualizerData;
1529
+ updateData(data: Array<{
1530
+ [index: string]: any;
1531
+ }>): void;
1532
+ protected onDataChanged(): void;
1533
+ getQuestions(): any;
1534
+ destroyContent(container: HTMLElement): void;
1535
+ renderContent(container: HTMLElement): void;
1536
+ destroy(): void;
1537
+ }
1086
1538
  }
1087
-
1088
- export interface PlotlyOptions {
1539
+ declare module "plotly/setup" {
1540
+ import { Event } from "survey-core";
1541
+ import { SelectBase } from "selectBase";
1542
+ export interface PlotlyOptions {
1089
1543
  traces: Array<any>;
1090
1544
  layout: any;
1091
1545
  hasSeries: boolean;
1092
- }
1093
- export class PlotlySetup {
1546
+ }
1547
+ export class PlotlySetup {
1094
1548
  static imageExportFormat: string;
1095
1549
  /**
1096
- * Fires when end user clicks on the 'save as image' button.
1097
- */
1550
+ * Fires when end user clicks on the 'save as image' button.
1551
+ */
1098
1552
  static onImageSaving: Event<(sender: SelectBase, options: any) => any, any>;
1099
1553
  /**
1100
- * Fires before plot will be created. User can change traces, layout and config of the plot.
1101
- * Options is an object with the following fields: traces, layout and config of the plot.
1102
- */
1554
+ * Fires before plot will be created. User can change traces, layout and config of the plot.
1555
+ * Options is an object with the following fields: traces, layout and config of the plot.
1556
+ */
1103
1557
  static onPlotCreating: Event<(sender: SelectBase, options: any) => any, any>;
1104
1558
  static setups: {
1105
- [type: string]: (model: SelectBase) => PlotlyOptions;
1559
+ [type: string]: (model: SelectBase) => PlotlyOptions;
1106
1560
  };
1107
1561
  static setup(charType: string, model: SelectBase): PlotlyOptions;
1108
1562
  static getTruncatedLabel: (label: string, labelTruncateLength: number) => string;
@@ -1110,210 +1564,262 @@ export class PlotlySetup {
1110
1564
  static setupBar(model: SelectBase): PlotlyOptions;
1111
1565
  static setupVBar(model: SelectBase): PlotlyOptions;
1112
1566
  static setupScatter(model: SelectBase): PlotlyOptions;
1567
+ }
1113
1568
  }
1114
-
1115
- export class PlotlyChartAdapter {
1116
- protected model: SelectBase;
1117
- constructor(model: SelectBase);
1118
- protected patchConfigParameters(chartNode: object, traces: Array<object>, layout: object, config: object): void;
1119
- get chart(): Promise<Plotly.PlotlyHTMLElement>;
1120
- create(chartNode: HTMLElement): any;
1121
- destroy(node: HTMLElement): void;
1122
- }
1123
- export class SelectBasePlotly extends SelectBase {
1124
- static types: string[];
1125
- static displayModeBar: any;
1126
- constructor(question: Question, data: Array<{
1127
- [index: string]: any;
1128
- }>, options?: {
1129
- [index: string]: any;
1130
- }, name?: string);
1131
- protected destroyContent(container: HTMLElement): void;
1132
- protected renderContent(container: HTMLElement): void;
1133
- getData(): any[];
1569
+ declare module "plotly/selectBase" {
1570
+ import { Question } from "survey-core";
1571
+ import { SelectBase } from "selectBase";
1572
+ import Plotly from "plotly.js-dist-min";
1573
+ export class PlotlyChartAdapter {
1574
+ protected model: SelectBase;
1575
+ private _chart;
1576
+ constructor(model: SelectBase);
1577
+ protected patchConfigParameters(chartNode: object, traces: Array<object>, layout: object, config: object): void;
1578
+ get chart(): Promise<Plotly.PlotlyHTMLElement>;
1579
+ create(chartNode: HTMLElement): any;
1580
+ destroy(node: HTMLElement): void;
1581
+ }
1582
+ export class SelectBasePlotly extends SelectBase {
1583
+ private _chartAdapter;
1584
+ static types: string[];
1585
+ static displayModeBar: any;
1586
+ constructor(question: Question, data: Array<{
1587
+ [index: string]: any;
1588
+ }>, options?: {
1589
+ [index: string]: any;
1590
+ }, name?: string);
1591
+ protected destroyContent(container: HTMLElement): void;
1592
+ protected renderContent(container: HTMLElement): void;
1593
+ getData(): any[];
1594
+ }
1134
1595
  }
1135
-
1136
- export class MatrixPlotly extends Matrix {
1137
- static types: string[];
1138
- constructor(question: Question, data: Array<{
1139
- [index: string]: any;
1140
- }>, options?: Object, name?: string);
1141
- protected destroyContent(container: HTMLElement): void;
1142
- protected renderContent(container: HTMLElement): void;
1596
+ declare module "plotly/matrix" {
1597
+ import { Question } from "survey-core";
1598
+ import { Matrix } from "matrix";
1599
+ export class MatrixPlotly extends Matrix {
1600
+ private _chartAdapter;
1601
+ static types: string[];
1602
+ constructor(question: Question, data: Array<{
1603
+ [index: string]: any;
1604
+ }>, options?: Object, name?: string);
1605
+ protected destroyContent(container: HTMLElement): void;
1606
+ protected renderContent(container: HTMLElement): void;
1607
+ }
1143
1608
  }
1144
-
1145
- export class PlotlyBoolChartAdapter extends PlotlyChartAdapter {
1146
- constructor(model: BooleanPlotly);
1147
- protected patchConfigParameters(chartNode: object, traces: Array<object>, layout: object, config: object): void;
1609
+ declare module "plotly/boolean" {
1610
+ import { Question } from "survey-core";
1611
+ import { BooleanModel } from "boolean";
1612
+ import { PlotlyChartAdapter } from "plotly/selectBase";
1613
+ export class PlotlyBoolChartAdapter extends PlotlyChartAdapter {
1614
+ constructor(model: BooleanPlotly);
1615
+ protected patchConfigParameters(chartNode: object, traces: Array<object>, layout: object, config: object): void;
1616
+ }
1617
+ export class BooleanPlotly extends BooleanModel {
1618
+ private _chartAdapter;
1619
+ static types: string[];
1620
+ constructor(question: Question, data: Array<{
1621
+ [index: string]: any;
1622
+ }>, options?: Object, name?: string);
1623
+ protected destroyContent(container: HTMLElement): void;
1624
+ protected renderContent(container: HTMLElement): void;
1625
+ }
1148
1626
  }
1149
- export class BooleanPlotly extends BooleanModel {
1150
- static types: string[];
1151
- constructor(question: Question, data: Array<{
1152
- [index: string]: any;
1153
- }>, options?: Object, name?: string);
1154
- protected destroyContent(container: HTMLElement): void;
1155
- protected renderContent(container: HTMLElement): void;
1627
+ declare module "plotly/ranking" {
1628
+ import { SelectBasePlotly } from "plotly/selectBase";
1629
+ export class RankingPlotly extends SelectBasePlotly {
1630
+ getQuestionResults(): any[];
1631
+ getEmptyData(): any;
1632
+ getData(): any[];
1633
+ applyResultToPlotlyData(result: any[], plotlyData: any, choices: any): void;
1634
+ }
1156
1635
  }
1157
-
1158
- export class RankingPlotly extends SelectBasePlotly {
1159
- getQuestionResults(): any[];
1160
- getEmptyData(): any;
1161
- getData(): any[];
1162
- applyResultToPlotlyData(result: any[], plotlyData: any, choices: any): void;
1636
+ declare module "matrixDropdownGrouped" {
1637
+ import { ItemValue, QuestionMatrixDropdownModel, Question } from "survey-core";
1638
+ import { SelectBase } from "selectBase";
1639
+ export class MatrixDropdownGrouped extends SelectBase {
1640
+ constructor(question: Question, data: Array<{
1641
+ [index: string]: any;
1642
+ }>, options?: Object, name?: string);
1643
+ protected get matrixQuestion(): QuestionMatrixDropdownModel;
1644
+ get dataName(): string | Array<string>;
1645
+ getSeriesValues(): Array<string>;
1646
+ getSeriesLabels(): Array<string>;
1647
+ valuesSource(): Array<ItemValue>;
1648
+ protected isSupportMissingAnswers(): boolean;
1649
+ getData(): any[];
1650
+ }
1163
1651
  }
1164
-
1165
- export class MatrixDropdownGroupedPlotly extends MatrixDropdownGrouped {
1166
- static types: string[];
1167
- constructor(question: QuestionMatrixDropdownModel, data: Array<{
1168
- [index: string]: any;
1169
- }>, options?: Object, name?: string);
1170
- protected destroyContent(container: HTMLElement): void;
1171
- protected renderContent(container: HTMLElement): void;
1652
+ declare module "plotly/matrixdropdown-grouped" {
1653
+ import { QuestionMatrixDropdownModel } from "survey-core";
1654
+ import { MatrixDropdownGrouped } from "matrixDropdownGrouped";
1655
+ export class MatrixDropdownGroupedPlotly extends MatrixDropdownGrouped {
1656
+ private _chartAdapter;
1657
+ static types: string[];
1658
+ constructor(question: QuestionMatrixDropdownModel, data: Array<{
1659
+ [index: string]: any;
1660
+ }>, options?: Object, name?: string);
1661
+ protected destroyContent(container: HTMLElement): void;
1662
+ protected renderContent(container: HTMLElement): void;
1663
+ }
1172
1664
  }
1173
-
1174
- export class HistogramPlotly extends HistogramModel {
1175
- static types: string[];
1176
- constructor(question: Question, data: Array<{
1177
- [index: string]: any;
1178
- }>, options?: Object, name?: string);
1179
- protected destroyContent(container: HTMLElement): void;
1180
- protected renderContent(container: HTMLElement): void;
1181
- getData(): any[];
1665
+ declare module "plotly/histogram" {
1666
+ import { Question } from "survey-core";
1667
+ import { HistogramModel } from "histogram";
1668
+ export class HistogramPlotly extends HistogramModel {
1669
+ private _chartAdapter;
1670
+ static types: string[];
1671
+ constructor(question: Question, data: Array<{
1672
+ [index: string]: any;
1673
+ }>, options?: Object, name?: string);
1674
+ protected destroyContent(container: HTMLElement): void;
1675
+ protected renderContent(container: HTMLElement): void;
1676
+ getData(): any[];
1677
+ }
1182
1678
  }
1183
-
1184
- export class PlotlyGaugeAdapter {
1185
- constructor(model: GaugePlotly);
1186
- get chart(): Promise<Plotly.PlotlyHTMLElement>;
1187
- create(chartNode: HTMLElement): any;
1188
- destroy(node: HTMLElement): void;
1679
+ declare module "plotly/rating" {
1680
+ import { Question } from "survey-core";
1681
+ import { NumberModel } from "number";
1682
+ import Plotly from "plotly.js-dist-min";
1683
+ export class PlotlyGaugeAdapter {
1684
+ private model;
1685
+ private _chart;
1686
+ constructor(model: GaugePlotly);
1687
+ get chart(): Promise<Plotly.PlotlyHTMLElement>;
1688
+ create(chartNode: HTMLElement): any;
1689
+ destroy(node: HTMLElement): void;
1690
+ }
1691
+ export class GaugePlotly extends NumberModel {
1692
+ private _chartAdapter;
1693
+ static types: string[];
1694
+ constructor(question: Question, data: Array<{
1695
+ [index: string]: any;
1696
+ }>, options?: Object, name?: string);
1697
+ protected destroyContent(container: HTMLElement): void;
1698
+ protected renderContent(container: HTMLElement): void;
1699
+ }
1189
1700
  }
1190
- export class GaugePlotly extends NumberModel {
1191
- static types: string[];
1192
- constructor(question: Question, data: Array<{
1193
- [index: string]: any;
1194
- }>, options?: Object, name?: string);
1195
- protected destroyContent(container: HTMLElement): void;
1196
- protected renderContent(container: HTMLElement): void;
1701
+ declare module "plotly/index" {
1702
+ export * from "plotly/setup";
1703
+ export * from "plotly/selectBase";
1704
+ export * from "plotly/matrix";
1705
+ export * from "plotly/boolean";
1706
+ export * from "plotly/ranking";
1707
+ export * from "plotly/matrixdropdown-grouped";
1708
+ export * from "plotly/histogram";
1709
+ export * from "plotly/rating";
1197
1710
  }
1198
-
1199
- export class Details {
1200
- protected table: Table;
1201
- protected targetNode: HTMLElement;
1202
- constructor(table: Table, row: TableRow, targetNode: HTMLElement);
1203
- protected location: string;
1204
- open(): void;
1205
- protected createShowAsColumnButton: (columnName: string) => HTMLElement;
1206
- close(): void;
1711
+ declare module "wordcloud/stopwords/english" {
1712
+ export var stopWords: string[];
1207
1713
  }
1208
-
1209
- interface ITableExtension {
1210
- location: string;
1211
- name: string;
1212
- visibleIndex: number;
1213
- render: (table: Table, opt: any) => HTMLElement;
1214
- destroy?: () => void;
1714
+ declare module "wordcloud/stopwords/norwegian" {
1715
+ export var stopWords: string[];
1215
1716
  }
1216
- export class TableExtensions {
1217
- constructor(table: Table);
1218
- render(targetNode: HTMLElement, location: string, options?: any): void;
1219
- destroy(): void;
1220
- static registerExtension(extension: ITableExtension): void;
1221
- static unregisterExtension(location: string, actionName: string): void;
1222
- static findExtension(location: string, actionName: string): ITableExtension;
1717
+ declare module "wordcloud/stopwords/dutch" {
1718
+ export var stopWords: string[];
1223
1719
  }
1224
- export {};
1225
-
1226
- export class Matrix extends SelectBase {
1227
- constructor(question: Question, data: Array<{
1228
- [index: string]: any;
1229
- }>, options?: Object, name?: string);
1230
- protected get matrixQuestion(): QuestionMatrixModel;
1231
- protected isSupportMissingAnswers(): boolean;
1232
- getSeriesValues(): Array<string>;
1233
- getSeriesLabels(): Array<string>;
1234
- getSelectedItemByText(itemText: string): any;
1235
- valuesSource(): Array<ItemValue>;
1236
- protected hideEmptyAnswersInData(answersData: IAnswersData): IAnswersData;
1237
- getData(): any[];
1720
+ declare module "wordcloud/stopwords/index" {
1721
+ export var textHelper: {
1722
+ getStopWords: (locale?: string) => string[];
1723
+ };
1238
1724
  }
1239
-
1240
- export class BooleanModel extends SelectBase {
1241
- protected chartTypes: string[];
1242
- chartType: string;
1243
- constructor(question: Question, data: Array<{
1244
- [index: string]: any;
1245
- }>, options?: Object, name?: string);
1246
- get booleanQuestion(): QuestionBooleanModel;
1247
- static trueColor: string;
1248
- static falseColor: string;
1249
- getSelectedItemByText(itemText: string): ItemValue;
1250
- getValues(): Array<any>;
1251
- getLabels(): Array<string>;
1725
+ declare module "wordcloud/wordcloud" {
1726
+ import { Question } from "survey-core";
1727
+ import { VisualizerBase } from "visualizerBase";
1728
+ export class WordCloudAdapter {
1729
+ private model;
1730
+ private _wordcloud;
1731
+ static drawOutOfBound: boolean;
1732
+ static shrinkToFit: boolean;
1733
+ static abortThreshold: any;
1734
+ static weightFactor: number;
1735
+ constructor(model: WordCloud);
1736
+ get wordcloud(): any;
1737
+ create(node: HTMLElement): any;
1738
+ destroy(node: HTMLElement): void;
1739
+ }
1740
+ export class WordCloud extends VisualizerBase {
1741
+ private _wordcloudAdapter;
1742
+ constructor(question: Question, data: Array<{
1743
+ [index: string]: any;
1744
+ }>, options?: Object, name?: string);
1745
+ getData(): (string | number)[][];
1746
+ protected destroyContent(container: HTMLElement): void;
1747
+ protected renderContent(container: HTMLElement): void;
1748
+ destroy(): void;
1749
+ }
1252
1750
  }
1253
-
1254
- export class MatrixDropdownGrouped extends SelectBase {
1255
- constructor(question: Question, data: Array<{
1256
- [index: string]: any;
1257
- }>, options?: Object, name?: string);
1258
- protected get matrixQuestion(): QuestionMatrixDropdownModel;
1259
- get dataName(): string | Array<string>;
1260
- getSeriesValues(): Array<string>;
1261
- getSeriesLabels(): Array<string>;
1262
- valuesSource(): Array<ItemValue>;
1263
- protected isSupportMissingAnswers(): boolean;
1264
- getData(): any[];
1751
+ declare module "text" {
1752
+ import { Question } from "survey-core";
1753
+ import { VisualizerBase } from "visualizerBase";
1754
+ import "./text.scss";
1755
+ export class TextTableAdapter {
1756
+ private model;
1757
+ constructor(model: Text);
1758
+ create(container: HTMLElement): void;
1759
+ destroy(node: HTMLElement): void;
1760
+ }
1761
+ export class Text extends VisualizerBase {
1762
+ private _textTableAdapter;
1763
+ constructor(question: Question, data: Array<{
1764
+ [index: string]: any;
1765
+ }>, options?: Object, name?: string);
1766
+ getData(): {
1767
+ columnsCount: number;
1768
+ data: string[][];
1769
+ };
1770
+ protected destroyContent(container: HTMLElement): void;
1771
+ protected renderContent(container: HTMLElement): void;
1772
+ destroy(): void;
1773
+ }
1265
1774
  }
1266
-
1267
- export class HistogramModel extends SelectBase {
1268
- protected valueType: "date" | "number";
1269
- protected chartTypes: string[];
1270
- chartType: string;
1271
- static IntervalsCount: number;
1272
- static UseIntervalsFrom: number;
1273
- constructor(question: Question, data: Array<{
1274
- [index: string]: any;
1275
- }>, options?: Object, name?: string);
1276
- getContiniousValue(value: any): number;
1277
- getString(value: number): string;
1278
- getSelectedItemByText(itemText: string): ItemValue;
1279
- /**
1280
- * Updates visualizer data.
1281
- */
1282
- updateData(data: Array<{
1283
- [index: string]: any;
1284
- }>): void;
1285
- protected onDataChanged(): void;
1286
- protected getContiniousValues(): {
1287
- original: any;
1288
- continious: number;
1289
- }[];
1290
- protected isSupportMissingAnswers(): boolean;
1291
- getValues(): Array<any>;
1292
- getLabels(): Array<string>;
1293
- get hasCustomIntervals(): boolean;
1294
- get intervals(): any;
1295
- getData(): any;
1775
+ declare module "choices-table" {
1776
+ import { Question } from "survey-core";
1777
+ import { SelectBase } from "selectBase";
1778
+ import "./choices-table.scss";
1779
+ export class ChoicesTableAdapter {
1780
+ private model;
1781
+ constructor(model: ChoicesTable);
1782
+ create(container: HTMLElement): void;
1783
+ destroy(node: HTMLElement): void;
1784
+ }
1785
+ export class ChoicesTable extends SelectBase {
1786
+ private _choicesTableAdapter;
1787
+ constructor(question: Question, data: Array<{
1788
+ [index: string]: any;
1789
+ }>, options?: Object, name?: string);
1790
+ protected destroyContent(container: HTMLElement): void;
1791
+ protected renderContent(container: HTMLElement): void;
1792
+ destroy(): void;
1793
+ }
1296
1794
  }
1297
-
1298
- export class NumberModel extends VisualizerBase {
1299
- static stepsCount: number;
1300
- static generateTextsCallback: (question: Question, maxValue: number, minValue: number, stepsCount: number, texts: string[]) => string[];
1301
- protected chartTypes: Array<string>;
1302
- chartType: String;
1303
- static showAsPercentage: boolean;
1304
- constructor(question: Question, data: Array<{
1305
- [index: string]: any;
1306
- }>, options?: {
1307
- [index: string]: any;
1308
- }, name?: string);
1309
- protected onDataChanged(): void;
1310
- protected onChartTypeChanged(): void;
1311
- protected setChartType(chartType: string): void;
1312
- destroy(): void;
1313
- generateText(maxValue: number, minValue: number, stepsCount: number): any;
1314
- generateValues(maxValue: number, stepsCount: number): any[];
1315
- generateColors(maxValue: number, minValue: number, stepsCount: number): any[];
1316
- getData(): number[];
1795
+ declare module "entries/summary" {
1796
+ export * from "localizationManager";
1797
+ import "localization/farsi";
1798
+ import "localization/french";
1799
+ import "localization/norwegian";
1800
+ import "localization/portuguese";
1801
+ import "localization/russian";
1802
+ import "localization/dutch";
1803
+ import "localization/spanish";
1804
+ import "localization/italian";
1805
+ export * from "dataProvider";
1806
+ export * from "number";
1807
+ export * from "selectBase";
1808
+ export * from "matrix";
1809
+ export * from "boolean";
1810
+ export * from "histogram";
1811
+ export * from "visualizerBase";
1812
+ export * from "visualizationManager";
1813
+ export * from "visualizationPanel";
1814
+ export * from "visualizationPanelDynamic";
1815
+ export * from "visualizationMatrixDynamic";
1816
+ export * from "visualizationMatrixDropdown";
1817
+ export * from "alternativeVizualizersWrapper";
1818
+ export * from "plotly/index";
1819
+ export * from "wordcloud/wordcloud";
1820
+ export * from "wordcloud/stopwords/index";
1821
+ export * from "text";
1822
+ export * from "choices-table";
1823
+ export { DocumentHelper } from "utils/index";
1317
1824
  }
1318
-
1319
-
1825
+ declare module 'survey-analytics' { import main = require('entries/summary'); export = main; }