survey-analytics 1.9.32 → 1.9.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,8 +1,5 @@
1
- ![SurveyJS Analytics](https://raw.githubusercontent.com/surveyjs/survey-analytics/master/docs/images/survey-analytics-note.png)
2
-
3
1
  # SurveyJS Analytics
4
2
 
5
-
6
3
  [![Build Status](https://dev.azure.com/SurveyJS/SurveyJS%20Integration%20Tests/_apis/build/status/SurveyJS%20Library?branchName=master)](https://dev.azure.com/SurveyJS/SurveyJS%20Integration%20Tests/_build/latest?definitionId=7&branchName=master)
7
4
  <a href="https://github.com/DevExpress/testcafe">
8
5
  <img alt="Tested with TestCafe" src="https://img.shields.io/badge/tested%20with-TestCafe-2fa4cf.svg">
@@ -14,83 +11,77 @@
14
11
  <img alt="Closed issues" title="Closed issues" src="https://img.shields.io/github/issues-closed/surveyjs/survey-analytics.svg">
15
12
  </a>
16
13
 
17
- SurveyJS Analytics library allows to render survey results as charts or tables
18
-
19
- ## Main Features
14
+ SurveyJS Analytics visualizes survey results and allows users to analyze them.
20
15
 
21
- - Count answers and render results as charts for the select type questions
22
- - Count answers and render results as gauge for range type question
23
- - Three different types of charts: bar, pie and line
24
- - Wordcloud for text questions representation
25
- - Interactive filtering for the select type questions
26
- - Flexible layout and customizable colors
16
+ ![SurveyJS Analytics](docs/images/survey-analytics-note.png)
27
17
 
28
- ## Examples
18
+ ## Features
29
19
 
30
- You may review the [analytics example](https://surveyjstest.azurewebsites.net/Examples/Library/?id=analytics-nps) or check this standalone plnkr [example](https://plnkr.co/edit/bCk64wdvOLShXkPyvGfk?p=preview).
20
+ - Supported chart types:
21
+ - Bar
22
+ - Pie
23
+ - Line
24
+ - Gauge
25
+ - Bullet
26
+ - Scatter
27
+ - Word cloud
28
+ - Interactive filtering
29
+ - Customizable colors
30
+ - Dynamic layout
31
+ - Chart reordering via drag and drop
31
32
 
32
- Other live examples:
33
-
34
- - [how to show chanrt for the one question](https://next.plnkr.co/edit/3yIIFnbcn8RMJQHY?preview).
35
-
36
- ## Licensing
33
+ ## Get Started
37
34
 
38
- Unlike SurveyJS Library itself, this library is distributed under commercial license. Please read more about licensing on our [license page](https://surveyjstest.azurewebsites.net/Licenses#Analytics).
35
+ - [Angular](https://surveyjs.io/Documentation/Analytics?id=get-started-angular)
36
+ - [Vue](https://surveyjs.io/Documentation/Analytics?id=get-started-vue)
37
+ - [React](https://surveyjs.io/Documentation/Analytics?id=get-started-react)
38
+ - [Knockout / jQuery](https://surveyjs.io/Documentation/Analytics?id=get-started-knockout-jquery)
39
39
 
40
- ## Support
40
+ ## Resources
41
41
 
42
- If you feel that we have missed some important functionality or found a bug, please write us [here](https://github.com/surveyjs/survey-analytics/issues) on our [support desk](https://surveyjs.answerdesk.io/).
42
+ - [Website](https://surveyjs.io/)
43
+ - [Documentation](https://surveyjs.io/Documentation/Analytics)
44
+ - [Live Examples](https://surveyjs.io/Examples/Analytics)
45
+ - [What's New](https://surveyjs.io/WhatsNew)
43
46
 
44
- ## Building survey-analytics from sources
47
+ ## Build SurveyJS Analytics from Sources
45
48
 
46
- To build library yourself:
47
-
48
- 1. **Clone the repo from GitHub**
49
+ 1. **Clone the repo**
49
50
 
50
51
  ```
51
52
  git clone https://github.com/surveyjs/survey-analytics.git
52
53
  cd survey-analytics
53
54
  ```
54
55
 
55
- 2. **Acquire build dependencies.** Make sure you have [Node.js](http://nodejs.org/) installed on your workstation. You need a version of Node.js greater than 6.0.0 and npm greater than 2.7.0. This is only needed to _build_ surveyjs from sources.
56
+ 1. **Install dependencies**
57
+ Make sure that you have Node.js v6.0.0 or later and npm v2.7.0 or later installed.
56
58
 
57
59
  ```
58
60
  npm install
59
61
  ```
60
62
 
61
- 3. **Build the library**
63
+ 1. **Build the library**
62
64
 
63
65
  ```
64
66
  npm run build_prod
65
67
  ```
66
68
 
67
- After that you should have the library at 'packages' directory.
69
+ You can find the built scripts and style sheets in the `packages` folder.
68
70
 
69
- 4. **Run samples**
71
+ 1. **Run test examples**
70
72
 
71
73
  ```
72
74
  npm start
73
75
  ```
74
76
 
75
- This command will run local http server at the http://localhost:7777
77
+ This command runs a local HTTP server at http://localhost:8080/.
76
78
 
77
- You can open http://localhost:7777/examples/examples
79
+ 1. **Run unit tests**
78
80
 
79
- 5. **Run unit tests**
80
81
  ```
81
82
  npm test
82
83
  ```
83
- This command will run unit tests
84
-
85
- ## Nearest plans
86
-
87
- Our task list of Survey Analytics pack:
88
84
 
89
- - Implement data providing server side prototype
90
- - Introduce (or use 3rd party) data processing engine for survey analytics
91
- - Support high load scenario - process at least billion records
92
-
93
- ## Limitations
85
+ ## Licensing
94
86
 
95
- - SurveyJS Analytics doesn't support objects as values (e.g. of dropdown, radiogroup and other select question items)
96
- - WordCloud visualizer is too slow for large texts and significant answers count
87
+ SurveyJS Analytics is **not available for free commercial usage**. If you want to integrate it into your application, you must purchase a [commercial license](/Licenses#SurveyCreator).
package/package.json CHANGED
@@ -16,7 +16,7 @@
16
16
  "lint": "eslint ./src --quiet",
17
17
  "pre-push-check": "npm run lint && npm run test"
18
18
  },
19
- "version": "1.9.32",
19
+ "version": "1.9.33",
20
20
  "name": "survey-analytics",
21
21
  "description": "SurveyJS analytics Library.",
22
22
  "main": "survey.analytics.js",
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - SurveyJS Analytics library v1.9.32
2
+ * surveyjs - SurveyJS Analytics library v1.9.33
3
3
  * Copyright (c) 2015-2022 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -90,6 +90,7 @@
90
90
  vertical-align: middle;
91
91
  cursor: pointer;
92
92
  border: 1px solid transparent;
93
+ white-space: nowrap;
93
94
  margin: 0 10px; }
94
95
  .sa-toolbar__button:hover {
95
96
  border-color: #e7e7e7;
@@ -274,4 +275,4 @@
274
275
  background-color: #1ab394; }
275
276
 
276
277
 
277
- /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bcGMtbmFtZV0vLi9zcmMvdmlzdWFsaXplckJhc2Uuc2NzcyIsIndlYnBhY2s6Ly9bcGMtbmFtZV0vLi9zcmMvdmlzdWFsaXphdGlvblBhbmVsLnNjc3MiLCJ3ZWJwYWNrOi8vW3BjLW5hbWVdLy4vc3JjL19nbG9iYWxzLnNjc3MiLCJ3ZWJwYWNrOi8vW3BjLW5hbWVdLy4vc3JjL3RleHQuc2NzcyIsIndlYnBhY2s6Ly9bcGMtbmFtZV0vLi9zcmMvY2hvaWNlcy10YWJsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0E7RUFDRSx1Q0FBdUM7RUFDdkMscUJBQXFCO0VBQ3JCLGdCQUFnQjtFQUNoQixXQUFXOztBQUdiO0VBQ0UsZ0JBQWdCOztBQUdsQjtFQUNFLHFCQUFxQjtFQUNyQixvQkFBb0I7RUFDcEIsZUFBZTtFQUNmLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsc0JBQXNCO0VBQ3RCLFNBQVM7O0FBR1g7RUFDRSxnQkFBZ0I7O0FDekJsQjtFQUNFLGFBQWE7O0FBR2Y7RUFDRSxrQkFBa0I7O0FBR3BCO0VBQ0UsV0FBVztFQUNYLHNCQUFzQjtFQUN0QjtJQUhGO01BSUksVUFBVSxJQUViOztBQUVEO0VBQ0UscUJBQXFCO0VBQ3JCLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixZQUFZOztBQUdkO0VBQ0Usa0JBQWtCO0VBRWxCO0lBSEY7TUFJSSxzQkFBc0IsSUFFekI7O0FBRUQ7RUFDRSx5QkNwQndCO0VEcUJ4QixhQUFhOztBQUdmO0VBQ0UsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLGNDakNrQjtFRGtDbEIsU0FBUztFQUNULGtCQUFrQjs7QUFHcEI7RUFDRSxZQUFZO0VBRGQ7SUFHSSxZQUFZO0lBQ1osY0FBYztJQUNkLFlBQVk7SUFDWixXQUFXO0lBQ1gsWUFBWTtJQUNaLDBWQUEwVjs7QUFJOVY7RUFDRSx1Q0FBdUM7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QkFBZ0I7RUFDaEIsWUFBWTtFQUNaLHlCRnZDa0I7O0FFeUNwQjtFQUNFLFlBQVk7RUFDWix5QkYzQ2tCIiwiZmlsZSI6InN1cnZleS5hbmFseXRpY3MuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcImdsb2JhbHNcIjtcblxuLnNhLXZpc3VhbGl6ZXJfX3Rvb2xiYXIge1xufVxuXG4uc2EtdmlzdWFsaXplcl9fY29udGVudCB7XG4gIGZvbnQtZmFtaWx5OiBTZWdvZVVJLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnNhLXZpc3VhbGl6ZXJfX2Zvb3RlciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5zYS12aXN1YWxpemVyX19mb290ZXItdGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBSYWxld2F5O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjNDA0MDQwO1xuICBsaW5lLWhlaWdodDogMzRweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uc2EtdmlzdWFsaXplcl9fZm9vdGVyLWNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiQGltcG9ydCBcImdsb2JhbHNcIjtcblxuLnNhLXBhbmVsX19oZWFkZXIge1xuICBtYXJnaW46IDAgMWVtO1xufVxuXG4uc2EtZ3JpZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNhLWdyaWRfX2dyaWQtc2l6ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxufVxuXG4uc2EtcXVlc3Rpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAxZW07XG59XG5cbi5zYS1xdWVzdGlvbi1sYXlvdXRlZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxcHgpO1xuICB9XG59XG5cbi5zYS1xdWVzdGlvbl9fY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG4uc2EtcXVlc3Rpb25fX3RpdGxlIHtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIGZvbnQtZmFtaWx5OiBSYWxld2F5O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHRleHQtY29sb3I7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4uc2EtcXVlc3Rpb25fX3RpdGxlLS1kcmFnZ2FibGUge1xuICBjdXJzb3I6IG1vdmU7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzRSUzQ2clM0UlM0Nwb2x5Z29uIHN0eWxlPSdmaWxsOiAlMjMxYWIzOTQnIHBvaW50cz0nMTMsNSAxMiw2IDEzLDcgOSw3IDksMyAxMCw0IDExLDMgOCwwIDUsMyA2LDQgNywzIDcsNyAzLDcgNCw2IDMsNSAwLDggMywxMSA0LDEwIDMsOSA3LDkgNywxMyA2LDEyIDUsMTMgOCwxNiAxMSwxMyAxMCwxMiA5LDEzIDksOSAxMyw5IDEyLDEwIDEzLDExIDE2LDggJy8lM0UlM0MvZyUzRSUzQy9zdmclM0UgXCIpO1xuICB9XG59XG5cbi5zYS10b29sYmFyIHtcbiAgZm9udC1mYW1pbHk6IFNlZ29lVUksIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICYgPiAqOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxufVxuXG4uc2EtdG9vbGJhcl9fYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFNlZ29lVUksIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgJjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtYmxlbmQtbW9kZTogZGFya2VuO1xuICB9XG4gIG1hcmdpbjogMCAxMHB4O1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4uc2EtdG9vbGJhcl9fc3ZnLWJ1dHRvbiB7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2Uge1xuICAgIGZpbGw6ICRzdmctY29sb3I7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgdXNlIHtcbiAgICAgIGZpbGw6ICRzdmctaG92ZXItY29sb3I7XG4gICAgfVxuICB9XG4gIHN2ZyB7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4O1xuICB9XG59XG5cbi5zYS10b29sYmFyX19idXR0b24tLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4vLyBjdXN0b20gc2VsZWN0XG4uc2EtcXVlc3Rpb25fX3NlbGVjdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIG1heC13aWR0aDogMzAwcHg7XG5cbiAgLnNhLXF1ZXN0aW9uX19zZWxlY3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJhY2tncm91bmQ6ICR0ZXh0LWNvbG9yLWludmVyc2U7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgIGhlaWdodDogJGZvcm0tZWxlbWVudC1oZWlnaHQ7XG4gICAgcGFkZGluZzogNXB4IDIzcHggNXB4IDE1cHg7XG4gICAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XG5cbiAgICAmOjotbXMtZXhwYW5kIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgei1pbmRleDogMTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogNHB4O1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR0ZXh0LWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkdGV4dC1jb2xvcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIH1cbn1cbi8vIEVPIGN1c3RvbSBzZWxlY3RcblxuLnNhLXF1ZXN0aW9uX19maWx0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAgMWVtO1xufVxuXG4uc2EtcXVlc3Rpb25fX2ZpbHRlci10ZXh0IHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuXG4uc2EtY29tbWVyY2lhbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogMWVtIDAgMC41ZW0gMmVtO1xuICBzdmcge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBmaWxsOiAkbWFpbi1jb2xvcjtcbiAgfVxufVxuLnNhLWNvbW1lcmNpYWxfX3RleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogJG1haW4tY29sb3I7XG59XG4uc2EtY29tbWVyY2lhbF9fcHJvZHVjdCB7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG59XG5cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IGxvY2FsKFwiUmFsZXdheVwiKSwgbG9jYWwoXCJSYWxld2F5LVJlZ3VsYXJcIiksXG4gICAgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9yYWxld2F5L3YxNC8xUHR1Zzh6WVNfU0tnZ1BOeUNNSVQ1bHUud29mZjIpXG4gICAgICBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMDI1OSwgVSsxRTAwLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsXG4gICAgVSsyMEFELTIwQ0YsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGO1xufVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiBsb2NhbChcIlJhbGV3YXlcIiksIGxvY2FsKFwiUmFsZXdheS1SZWd1bGFyXCIpLFxuICAgIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcmFsZXdheS92MTQvMVB0dWc4ellTX1NLZ2dQTnlDMElUdy53b2ZmMilcbiAgICAgIGZvcm1hdChcIndvZmYyXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLFxuICAgIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSxcbiAgICBVK0ZFRkYsIFUrRkZGRDtcbn1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IGxvY2FsKFwiUmFsZXdheSBCb2xkXCIpLCBsb2NhbChcIlJhbGV3YXktQm9sZFwiKSxcbiAgICB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3JhbGV3YXkvdjE0LzFQdHJnOHpZU19TS2dnUE53Sll0V3FoUEFNaWYud29mZjIpXG4gICAgICBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMDI1OSwgVSsxRTAwLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsXG4gICAgVSsyMEFELTIwQ0YsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGO1xufVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiBsb2NhbChcIlJhbGV3YXkgQm9sZFwiKSwgbG9jYWwoXCJSYWxld2F5LUJvbGRcIiksXG4gICAgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9yYWxld2F5L3YxNC8xUHRyZzh6WVNfU0tnZ1BOd0pZdFdxWlBBQS53b2ZmMilcbiAgICAgIGZvcm1hdChcIndvZmYyXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLFxuICAgIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSxcbiAgICBVK0ZFRkYsIFUrRkZGRDtcbn1cbiIsIiRtYWluLWNvbG9yOiAjMWFiMzk0O1xuJGF1eGlsaWFyeS1jb2xvcjogI2ZmOTgxNDtcbiRhdXhpbGlhcnktY29sb3ItMTogIzY2NjY2NjtcbiRhdXhpbGlhcnktY29sb3ItMjogIzE5NDhiMztcbiRkYW5nZXItY29sb3I6ICNkOTUzNGY7XG4kZGlzYWJsZWQtY29sb3I6ICNiMGIwYjA7XG5cbiRibHVlLWNvbG9yOiAjMzk0Y2ZmO1xuJHB1cnBsZS1jb2xvcjogI2FhNDJkMDtcbiRncmVlbi1jb2xvcjogIzQxYzAyYztcblxuJHRleHQtY29sb3ItaW52ZXJzZTogI2ZmZjtcbiR0ZXh0LWNvbG9yOiAjNDA0MDQwO1xuXG4kY29udGVudC1tYXgtd2lkdGg6IDExNzBweDtcblxuJGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4kYmFja2dyb3VuZC1jb2xvci1kYXJrOiAjZWVlZWVlO1xuJGJhY2tncm91bmQtZGlzYWJsZWQtY29sb3I6ICNiN2I3Yjc7XG5cbiRib3JkZXItY29sb3I6ICNlN2U3ZTc7XG5cbiRmb3JtLWVsZW1lbnQtaGVpZ2h0OiAzNHB4O1xuXG4kc3ZnLWNvbG9yOiByZ2JhKCM5ZjlmOWYsIDAuNCk7XG4kc3ZnLWhvdmVyLWNvbG9yOiAjOWY5ZjlmO1xuIiwiQGltcG9ydCBcImdsb2JhbHNcIjtcblxuLnNhLXRleHQtdGFibGVfX2NvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgbWF4LWhlaWdodDogNTAwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4uc2EtdGV4dC10YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogU2Vnb2VVSSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICBib3JkZXItd2lkdGg6IDFweDtcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG59XG5cbi5zYS10ZXh0LXRhYmxlX19jZWxsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdHBhZGRpbmc6IDhweDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgbWluLWhlaWdodDogJGZvcm0tZWxlbWVudC1oZWlnaHQ7XG59XG4iLCJAaW1wb3J0IFwiZ2xvYmFsc1wiO1xuXG4uc2EtY2hvaWNlcy10YWJsZV9fY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5zYS1jaG9pY2VzLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiBTZWdvZVVJLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogJHRleHQtY29sb3I7XG5cdC8vIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xufVxuXG4uc2EtY2hvaWNlcy10YWJsZV9fY2VsbCB7XG5cdGJvcmRlci13aWR0aDogMXB4O1xuXHRwYWRkaW5nOiA4cHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIG1pbi1oZWlnaHQ6ICRmb3JtLWVsZW1lbnQtaGVpZ2h0O1xufVxuXG4uc2EtY2hvaWNlcy10YWJsZV9fY2VsbC12YWx1ZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtaW4td2lkdGg6IDMwcHg7XG59XG5cbi5zYS1jaG9pY2VzLXRhYmxlX19jZWxsLWhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uc2EtY2hvaWNlcy1zcGFya2xpbmUge1xuICBtaW4td2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRtYWluLWNvbG9yO1xufVxuLnNhLWNob2ljZXMtc3BhcmtsaW5lLXZhbHVlIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcbn0iXSwic291cmNlUm9vdCI6IiJ9*/
278
+ /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bcGMtbmFtZV0vLi9zcmMvdmlzdWFsaXplckJhc2Uuc2NzcyIsIndlYnBhY2s6Ly9bcGMtbmFtZV0vLi9zcmMvdmlzdWFsaXphdGlvblBhbmVsLnNjc3MiLCJ3ZWJwYWNrOi8vW3BjLW5hbWVdLy4vc3JjL19nbG9iYWxzLnNjc3MiLCJ3ZWJwYWNrOi8vW3BjLW5hbWVdLy4vc3JjL3RleHQuc2NzcyIsIndlYnBhY2s6Ly9bcGMtbmFtZV0vLi9zcmMvY2hvaWNlcy10YWJsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0E7RUFDRSx1Q0FBdUM7RUFDdkMscUJBQXFCO0VBQ3JCLGdCQUFnQjtFQUNoQixXQUFXOztBQUdiO0VBQ0UsZ0JBQWdCOztBQUdsQjtFQUNFLHFCQUFxQjtFQUNyQixvQkFBb0I7RUFDcEIsZUFBZTtFQUNmLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsc0JBQXNCO0VBQ3RCLFNBQVM7O0FBR1g7RUFDRSxnQkFBZ0I7O0FDekJsQjtFQUNFLGFBQWE7O0FBR2Y7RUFDRSxrQkFBa0I7O0FBR3BCO0VBQ0UsV0FBVztFQUNYLHNCQUFzQjtFQUN0QjtJQUhGO01BSUksVUFBVSxJQUViOztBQUVEO0VBQ0UscUJBQXFCO0VBQ3JCLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixZQUFZOztBQUdkO0VBQ0Usa0JBQWtCO0VBRWxCO0lBSEY7TUFJSSxzQkFBc0IsSUFFekI7O0FBRUQ7RUFDRSx5QkNwQndCO0VEcUJ4QixhQUFhOztBQUdmO0VBQ0UsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLGNDakNrQjtFRGtDbEIsU0FBUztFQUNULGtCQUFrQjs7QUFHcEI7RUFDRSxZQUFZO0VBRGQ7SUFHSSxZQUFZO0lBQ1osY0FBYztJQUNkLFlBQVk7SUFDWixXQUFXO0lBQ1gsWUFBWTtJQUNaLDBWQUEwVjs7QUFJOVY7RUFDRSx1Q0FBdUM7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O0FBR25CO0VBQ0UsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWix5QkZ2Q2tCOztBRXlDcEI7RUFDRSxZQUFZO0VBQ1oseUJGM0NrQiIsImZpbGUiOiJzdXJ2ZXkuYW5hbHl0aWNzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJnbG9iYWxzXCI7XG5cbi5zYS12aXN1YWxpemVyX190b29sYmFyIHtcbn1cblxuLnNhLXZpc3VhbGl6ZXJfX2NvbnRlbnQge1xuICBmb250LWZhbWlseTogU2Vnb2VVSSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zYS12aXN1YWxpemVyX19mb290ZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uc2EtdmlzdWFsaXplcl9fZm9vdGVyLXRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogUmFsZXdheTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzQwNDA0MDtcbiAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMDtcbn1cblxuLnNhLXZpc3VhbGl6ZXJfX2Zvb3Rlci1jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbiIsIkBpbXBvcnQgXCJnbG9iYWxzXCI7XG5cbi5zYS1wYW5lbF9faGVhZGVyIHtcbiAgbWFyZ2luOiAwIDFlbTtcbn1cblxuLnNhLWdyaWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zYS1ncmlkX19ncmlkLXNpemVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDBweCkge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbn1cblxuLnNhLXF1ZXN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMWVtO1xufVxuXG4uc2EtcXVlc3Rpb24tbGF5b3V0ZWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMXB4KTtcbiAgfVxufVxuXG4uc2EtcXVlc3Rpb25fX2NvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgcGFkZGluZzogMjBweDtcbn1cblxuLnNhLXF1ZXN0aW9uX190aXRsZSB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICBmb250LWZhbWlseTogUmFsZXdheTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuLnNhLXF1ZXN0aW9uX190aXRsZS0tZHJhZ2dhYmxlIHtcbiAgY3Vyc29yOiBtb3ZlO1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNiclM0UlM0NnJTNFJTNDcG9seWdvbiBzdHlsZT0nZmlsbDogJTIzMWFiMzk0JyBwb2ludHM9JzEzLDUgMTIsNiAxMyw3IDksNyA5LDMgMTAsNCAxMSwzIDgsMCA1LDMgNiw0IDcsMyA3LDcgMyw3IDQsNiAzLDUgMCw4IDMsMTEgNCwxMCAzLDkgNyw5IDcsMTMgNiwxMiA1LDEzIDgsMTYgMTEsMTMgMTAsMTIgOSwxMyA5LDkgMTMsOSAxMiwxMCAxMywxMSAxNiw4ICcvJTNFJTNDL2clM0UlM0Mvc3ZnJTNFIFwiKTtcbiAgfVxufVxuXG4uc2EtdG9vbGJhciB7XG4gIGZvbnQtZmFtaWx5OiBTZWdvZVVJLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogJHRleHQtY29sb3I7XG4gIGxpbmUtaGVpZ2h0OiAzNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAmID4gKjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cbn1cblxuLnNhLXRvb2xiYXJfX2J1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBTZWdvZVVJLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgJjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtYmxlbmQtbW9kZTogZGFya2VuO1xuICB9XG4gIG1hcmdpbjogMCAxMHB4O1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4uc2EtdG9vbGJhcl9fc3ZnLWJ1dHRvbiB7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2Uge1xuICAgIGZpbGw6ICRzdmctY29sb3I7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgdXNlIHtcbiAgICAgIGZpbGw6ICRzdmctaG92ZXItY29sb3I7XG4gICAgfVxuICB9XG4gIHN2ZyB7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4O1xuICB9XG59XG5cbi5zYS10b29sYmFyX19idXR0b24tLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4vLyBjdXN0b20gc2VsZWN0XG4uc2EtcXVlc3Rpb25fX3NlbGVjdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIG1heC13aWR0aDogMzAwcHg7XG5cbiAgLnNhLXF1ZXN0aW9uX19zZWxlY3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJhY2tncm91bmQ6ICR0ZXh0LWNvbG9yLWludmVyc2U7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgIGhlaWdodDogJGZvcm0tZWxlbWVudC1oZWlnaHQ7XG4gICAgcGFkZGluZzogNXB4IDIzcHggNXB4IDE1cHg7XG4gICAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XG5cbiAgICAmOjotbXMtZXhwYW5kIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgei1pbmRleDogMTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogNHB4O1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR0ZXh0LWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkdGV4dC1jb2xvcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIH1cbn1cbi8vIEVPIGN1c3RvbSBzZWxlY3RcblxuLnNhLXF1ZXN0aW9uX19maWx0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAgMWVtO1xufVxuXG4uc2EtcXVlc3Rpb25fX2ZpbHRlci10ZXh0IHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuXG4uc2EtY29tbWVyY2lhbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogMWVtIDAgMC41ZW0gMmVtO1xuICBzdmcge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBmaWxsOiAkbWFpbi1jb2xvcjtcbiAgfVxufVxuLnNhLWNvbW1lcmNpYWxfX3RleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogJG1haW4tY29sb3I7XG59XG4uc2EtY29tbWVyY2lhbF9fcHJvZHVjdCB7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG59XG5cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IGxvY2FsKFwiUmFsZXdheVwiKSwgbG9jYWwoXCJSYWxld2F5LVJlZ3VsYXJcIiksXG4gICAgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9yYWxld2F5L3YxNC8xUHR1Zzh6WVNfU0tnZ1BOeUNNSVQ1bHUud29mZjIpXG4gICAgICBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMDI1OSwgVSsxRTAwLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsXG4gICAgVSsyMEFELTIwQ0YsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGO1xufVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiBsb2NhbChcIlJhbGV3YXlcIiksIGxvY2FsKFwiUmFsZXdheS1SZWd1bGFyXCIpLFxuICAgIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcmFsZXdheS92MTQvMVB0dWc4ellTX1NLZ2dQTnlDMElUdy53b2ZmMilcbiAgICAgIGZvcm1hdChcIndvZmYyXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLFxuICAgIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSxcbiAgICBVK0ZFRkYsIFUrRkZGRDtcbn1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IGxvY2FsKFwiUmFsZXdheSBCb2xkXCIpLCBsb2NhbChcIlJhbGV3YXktQm9sZFwiKSxcbiAgICB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3JhbGV3YXkvdjE0LzFQdHJnOHpZU19TS2dnUE53Sll0V3FoUEFNaWYud29mZjIpXG4gICAgICBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMDI1OSwgVSsxRTAwLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsXG4gICAgVSsyMEFELTIwQ0YsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGO1xufVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiBsb2NhbChcIlJhbGV3YXkgQm9sZFwiKSwgbG9jYWwoXCJSYWxld2F5LUJvbGRcIiksXG4gICAgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9yYWxld2F5L3YxNC8xUHRyZzh6WVNfU0tnZ1BOd0pZdFdxWlBBQS53b2ZmMilcbiAgICAgIGZvcm1hdChcIndvZmYyXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLFxuICAgIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSxcbiAgICBVK0ZFRkYsIFUrRkZGRDtcbn1cbiIsIiRtYWluLWNvbG9yOiAjMWFiMzk0O1xuJGF1eGlsaWFyeS1jb2xvcjogI2ZmOTgxNDtcbiRhdXhpbGlhcnktY29sb3ItMTogIzY2NjY2NjtcbiRhdXhpbGlhcnktY29sb3ItMjogIzE5NDhiMztcbiRkYW5nZXItY29sb3I6ICNkOTUzNGY7XG4kZGlzYWJsZWQtY29sb3I6ICNiMGIwYjA7XG5cbiRibHVlLWNvbG9yOiAjMzk0Y2ZmO1xuJHB1cnBsZS1jb2xvcjogI2FhNDJkMDtcbiRncmVlbi1jb2xvcjogIzQxYzAyYztcblxuJHRleHQtY29sb3ItaW52ZXJzZTogI2ZmZjtcbiR0ZXh0LWNvbG9yOiAjNDA0MDQwO1xuXG4kY29udGVudC1tYXgtd2lkdGg6IDExNzBweDtcblxuJGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4kYmFja2dyb3VuZC1jb2xvci1kYXJrOiAjZWVlZWVlO1xuJGJhY2tncm91bmQtZGlzYWJsZWQtY29sb3I6ICNiN2I3Yjc7XG5cbiRib3JkZXItY29sb3I6ICNlN2U3ZTc7XG5cbiRmb3JtLWVsZW1lbnQtaGVpZ2h0OiAzNHB4O1xuXG4kc3ZnLWNvbG9yOiByZ2JhKCM5ZjlmOWYsIDAuNCk7XG4kc3ZnLWhvdmVyLWNvbG9yOiAjOWY5ZjlmO1xuIiwiQGltcG9ydCBcImdsb2JhbHNcIjtcblxuLnNhLXRleHQtdGFibGVfX2NvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgbWF4LWhlaWdodDogNTAwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4uc2EtdGV4dC10YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogU2Vnb2VVSSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICBib3JkZXItd2lkdGg6IDFweDtcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG59XG5cbi5zYS10ZXh0LXRhYmxlX19jZWxsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdHBhZGRpbmc6IDhweDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgbWluLWhlaWdodDogJGZvcm0tZWxlbWVudC1oZWlnaHQ7XG59XG4iLCJAaW1wb3J0IFwiZ2xvYmFsc1wiO1xuXG4uc2EtY2hvaWNlcy10YWJsZV9fY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5zYS1jaG9pY2VzLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiBTZWdvZVVJLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogJHRleHQtY29sb3I7XG5cdC8vIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xufVxuXG4uc2EtY2hvaWNlcy10YWJsZV9fY2VsbCB7XG5cdGJvcmRlci13aWR0aDogMXB4O1xuXHRwYWRkaW5nOiA4cHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIG1pbi1oZWlnaHQ6ICRmb3JtLWVsZW1lbnQtaGVpZ2h0O1xufVxuXG4uc2EtY2hvaWNlcy10YWJsZV9fY2VsbC12YWx1ZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtaW4td2lkdGg6IDMwcHg7XG59XG5cbi5zYS1jaG9pY2VzLXRhYmxlX19jZWxsLWhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uc2EtY2hvaWNlcy1zcGFya2xpbmUge1xuICBtaW4td2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRtYWluLWNvbG9yO1xufVxuLnNhLWNob2ljZXMtc3BhcmtsaW5lLXZhbHVlIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcbn0iXSwic291cmNlUm9vdCI6IiJ9*/
@@ -1,4 +1,4 @@
1
- /*Type definitions for SurveyJS Analytics library v1.9.32
1
+ /*Type definitions for SurveyJS Analytics library v1.9.33
2
2
  Copyright (c) 2015-2022 Devsoft Baltic OÜ - http://surveyjs.io/
3
3
  Definitions by: Devsoft Baltic OÜ <https://github.com/surveyjs/>
4
4
  */
@@ -73,6 +73,10 @@ export var surveyStrings: {
73
73
  filter: string;
74
74
  resetFilter: string;
75
75
  changeLocale: string;
76
+ en: string;
77
+ fr: string;
78
+ ru: string;
79
+ de: string;
76
80
  clearButton: string;
77
81
  addElement: string;
78
82
  defaultOrder: string;
@@ -358,119 +362,198 @@ export interface IVisualizerPanelRenderedElement extends IVisualizerPanelElement
358
362
  renderedElement?: HTMLElement;
359
363
  }
360
364
  /**
361
- * This interface contains all available options to setup a visualization panel
365
+ * Visualization Panel configuration. Pass it as the third argument to the `VisualizationPanel` constructor:
366
+ *
367
+ * ```js
368
+ * const vizPanel = new SurveyAnalytics.VisualizationPanel(surveyQuestions, surveyResults, vizPanelOptions);
369
+ * ```
362
370
  */
363
371
  export interface IVisualizationPanelOptions {
364
372
  /**
365
- * Set the length of a label where the truncation starts. Set to -1 to disable truncate. Default is 27
373
+ * The number of label characters after which truncation starts.
374
+ * Set this property to -1 to disable truncation.
375
+ *
376
+ * Default value: 27
366
377
  */
367
378
  labelTruncateLength?: number;
368
- /**
369
- * Set it to true to allow make elements private/public also @see persmissions property
370
- */
371
379
  allowMakeQuestionsPrivate?: boolean;
372
- /**
373
- * An array of series values in data to group data by series
374
- */
375
380
  seriesValues?: string[];
376
- /**
377
- * Labels for series to display, if not passed the seriesValues are used as labels
378
- */
379
381
  seriesLabels?: string[];
380
- /**
381
- * Set it to true to force use values as labels
382
- */
383
382
  useValuesAsLabels?: boolean;
384
383
  /**
385
- * Pass survey instance to use localses from the survey JSON
384
+ * Pass a survey instance to use survey locales in the Visualization Panel.
386
385
  */
387
386
  survey?: SurveyModel;
388
387
  /**
389
- * dataProvider instance for this visualizer
388
+ * A common data provider for all visualizers.
390
389
  */
391
390
  dataProvider?: DataProvider;
392
391
  /**
393
- * Set it to false to deny user to hide/show individual questions, this will hide the corresponding question toolbar button
392
+ * Allows users to change the visibility of individual charts.
393
+ * This property adds a Hide button to each chart.
394
+ *
395
+ * Default value: `true`
394
396
  */
395
397
  allowHideQuestions?: boolean;
396
398
  /**
397
- * Set it to false to disable items drag/drop reordering and dynamic layouting
399
+ * Specifies whether to arrange charts based on the available screen space and allow users to reorder them via drag and drop.
400
+ * If this property is disabled, charts are displayed one under the other, and users cannot reorder them.
401
+ *
402
+ * Default value: `true`
403
+ *
404
+ * [View the "Disable the Layout Engine" example](https://surveyjs.io/Examples/Analytics?id=custom-layout)
405
+ *
406
+ * @see layoutEngine
398
407
  */
399
408
  allowDynamicLayout?: boolean;
400
409
  /**
401
- * Layout engine to be used for layouting inner visualizers @see LayoutEngine
410
+ * A layout engine used to arrange charts on the Visualization Panel.
411
+ * You can use this property to integrate a third-party layout engine with SurveyJS Analytics.
412
+ *
413
+ * @see allowDynamicLayout
402
414
  */
403
415
  layoutEngine?: LayoutEngine;
404
416
  /**
405
- * Set to true to allow to show percentages in bar charts, this will show the corresponding question toolbar button
417
+ * Allows users to switch between absolute and percentage values in bar charts.
418
+ * This property adds a Show Percentages button to each bar chart.
419
+ *
420
+ * Default value: `false`
421
+ *
422
+ * @see showPercentages
423
+ * @see showOnlyPercentages
424
+ * @see percentagePrecision
406
425
  */
407
426
  allowShowPercentages?: boolean;
408
427
  /**
409
- * Set it to true to show percentages in bar charts
428
+ * Specifies whether bar charts display percentages in addition to absolute values.
429
+ * Users can change this property value if you enable the `allowShowPercentages` property.
430
+ *
431
+ * Default value: `false`
432
+ *
433
+ * @see allowShowPercentages
434
+ * @see showOnlyPercentages
435
+ * @see percentagePrecision
410
436
  */
411
437
  showPercentages?: boolean;
412
438
  /**
413
- * Set it to true to show percentages only in bar charts (don't show values)
439
+ * Specifies whether bar charts display only percentages, without absolute values.
440
+ * Applies only if the `allowShowPercentages` or `showPercentages` property is enables.
441
+ *
442
+ * Default value: `false`
443
+ *
444
+ * @see allowShowPercentages
445
+ * @see showPercentages
446
+ * @see percentagePrecision
414
447
  */
415
448
  showOnlyPercentages?: boolean;
416
449
  /**
417
- * Set percentage decimal presision
450
+ * Specifies percentage precision.
451
+ *
452
+ * Default value: 0
453
+ *
454
+ * @see allowShowPercentages
455
+ * @see showPercentages
456
+ * @see showOnlyPercentages
418
457
  */
419
458
  percentagePrecision?: number;
420
459
  /**
421
- *
460
+ * Removes the Free Trial bar.
461
+ * **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.
422
462
  */
423
463
  haveCommercialLicense?: boolean;
424
464
  /**
425
- * Set to true to allow change answers order, choices are ordered by answers count, this will show the corresponding question toolbar dropdown
465
+ * Allows users to sort answers by answer count. Applies only to bar and scatter charts.
466
+ * This property adds a Sorting dropdown to each bar and scatter chart.
467
+ *
468
+ * Default value: `true`
469
+ *
470
+ * @see answersOrder
426
471
  */
427
472
  allowChangeAnswersOrder?: boolean;
428
473
  /**
429
- * Defauls answers order
474
+ * Specifies how to sort answers in bar and scatter charts.
475
+ * Accepted values:
476
+ *
477
+ * - `"default"` (default) - Do not sort answers.
478
+ * - `"asc"` - Sort answers by ascending answer count.
479
+ * - `"desc"` - Sort answers by descending answer count.
480
+ *
481
+ * Users can change this property value if you enable the `allowChangeAnswersOrder` property.
482
+ *
483
+ * @see allowChangeAnswersOrder
430
484
  */
431
- answersOrder?: "default" | "desc" | "desc";
485
+ answersOrder?: "default" | "asc" | "desc";
432
486
  /**
433
- * Set to true to allow hide empty answers, this will show the corresponding question toolbar button
487
+ * Allows users to hide answers with zero count in bar and scatter charts.
488
+ * This property adds a Hide Empty Answers button to each bar and scatter chart.
489
+ *
490
+ * Default value: `false`
434
491
  */
435
492
  allowHideEmptyAnswers?: boolean;
436
493
  /**
437
- * Set to true to hide empty answers
494
+ * Hides answers with zero count in bar and scatter charts.
495
+ * Users can change this property value if you enable the `allowHideEmptyAnswers` property.
496
+ *
497
+ * Default value: `false`
498
+ *
499
+ * @see allowHideEmptyAnswers
438
500
  */
439
501
  hideEmptyAnswers?: boolean;
440
502
  /**
441
- * Set to true to allow show top N answers, this will show the corresponding question toolbar dropdown
503
+ * Allows users to select whether to show top 5, 10, or 20 answers by answer count.
504
+ * This property adds a Top N Answers dropdown to each chart.
505
+ *
506
+ * Default value: `false`
442
507
  */
443
508
  allowTopNAnswers?: boolean;
444
509
  /**
445
- * Set to true to allow show missing answers, this will show the corresponding question toolbar button
510
+ * Allows users to show the number of respondents who did not answer a particular question.
511
+ * This property adds a Show Missing Answers button to each chart.
512
+ *
513
+ * Default value: `false`
446
514
  */
447
515
  allowShowMissingAnswers?: boolean;
448
- /**
449
- * Set to true to allow to use experimental features: e.g. vertical bar chart configuration
450
- */
451
516
  allowExperimentalFeatures?: boolean;
452
517
  /**
453
- * Set default chart type
518
+ * Default chart type.
519
+ *
520
+ * Accepted values depend on the question type as follows:
521
+ *
522
+ * - Boolean: `"bar"` | `"pie"` | `"doughnut"`
523
+ * - Date, Number: `"bar"` | `"scatter"`
524
+ * - Matrix: `"bar"` | `"pie"` | `"doughnut"` | `"stackedbar"`
525
+ * - Rating: `"bar"` | `"scatter"` | `"gauge"` | `"bullet"`
526
+ * - Radiogroup, Checkbox, Dropdown, Image Picker: `"bar"` | `"pie"` | `"doughnut"` | `"scatter"`
527
+ *
528
+ * 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:
529
+ *
530
+ * ```js
531
+ * const vizPanel = new SurveyAnalytics.VisualizationPanel( ... );
532
+ * vizPanel.visualizers[0].chartType = "stackedbar";
533
+ * ```
534
+ *
454
535
  */
455
536
  defaultChartType?: string;
456
537
  /**
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
538
+ * Allows users to transpose a visualized matrix question.
539
+ * 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.
540
+ *
541
+ * Default value: `false`
458
542
  */
459
543
  allowTransposeData?: boolean;
460
544
  /**
461
- * Set to false to disable selection and cross filtering in charts
545
+ * Allows users to cross-filter charts. The filter applies when users selects a series point.
546
+ *
547
+ * Default value: `true`
462
548
  */
463
549
  allowSelection?: boolean;
464
- /**
465
- * Pass a function to render content of a visualizer
466
- */
467
550
  renderContent?: Function;
468
- /**
469
- * Pass a function to destroy content of a visualizer
470
- */
471
551
  destroyContent?: Function;
472
552
  /**
473
- * Set to true to strip HTML tags from titles
553
+ * Removes HTML tags from survey element titles.
554
+ * 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`.
555
+ *
556
+ * Default value: `true`
474
557
  */
475
558
  stripHtmlFromTitles?: boolean;
476
559
  }
@@ -701,7 +784,7 @@ export class DataTables extends Table {
701
784
  onColumnsReorder: Event<(sender: DataTables, options: any) => any, any>;
702
785
  static initJQuery($: any): void;
703
786
  static set haveCommercialLicense(val: boolean);
704
- constructor(survey: SurveyModel, data: Array<Object>, options: DataTablesOptions, _columns?: Array<ITableColumn>);
787
+ constructor(survey: SurveyModel, data: Array<Object>, options: DataTablesOptions, _columnsData?: Array<IColumnData>);
705
788
  destroy(): void;
706
789
  setColumnVisibility(columnName: string, isVisible: boolean): void;
707
790
  setColumnLocation(columnName: string, location: QuestionLocation): void;
@@ -743,7 +826,7 @@ interface ITabulatorOptions extends ITableOptions {
743
826
  }
744
827
  export class Tabulator extends Table {
745
828
  static set haveCommercialLicense(val: boolean);
746
- constructor(survey: SurveyModel, data: Array<Object>, options: ITabulatorOptions, _columns?: Array<any>);
829
+ constructor(survey: SurveyModel, data: Array<Object>, options: ITabulatorOptions, _columnsData?: Array<IColumnData>);
747
830
  tabulatorTables: any;
748
831
  render(targetNode: HTMLElement | string): void;
749
832
  destroy: () => void;
@@ -905,6 +988,7 @@ export class SelectBase extends VisualizerBase implements IVisualizerWithSelecti
905
988
  set showMissingAnswers(value: boolean);
906
989
  refreshContent(): void;
907
990
  onDataItemSelected: (selectedValue: any, selectedText: string) => void;
991
+ get showValuesInOriginalOrder(): boolean;
908
992
  valuesSource(): Array<ItemValue>;
909
993
  getValues(): Array<any>;
910
994
  getLabels(): Array<string>;
@@ -944,15 +1028,16 @@ export interface ITableOptions {
944
1028
  }) => void;
945
1029
  }
946
1030
  export abstract class Table {
947
- protected survey: SurveyModel;
1031
+ protected _survey: SurveyModel;
948
1032
  protected data: Array<Object>;
949
- protected options: ITableOptions;
950
- protected _columns: Array<ITableColumn>;
1033
+ protected _options: ITableOptions;
1034
+ protected _columnsData: Array<IColumnData>;
951
1035
  static showFilesAsImages: boolean;
952
1036
  static haveCommercialLicense: boolean;
953
1037
  protected tableData: any;
954
1038
  protected extensions: TableExtensions;
955
- constructor(survey: SurveyModel, data: Array<Object>, options?: ITableOptions, _columns?: Array<ITableColumn>);
1039
+ protected _columns: Array<IColumn>;
1040
+ constructor(_survey: SurveyModel, data: Array<Object>, _options?: ITableOptions, _columnsData?: Array<IColumnData>);
956
1041
  protected renderResult: HTMLElement;
957
1042
  protected currentPageSize: number;
958
1043
  protected currentPageNumber: number;
@@ -963,6 +1048,8 @@ export abstract class Table {
963
1048
  onRowRemoved: Event<(sender: Table, options: any) => any, any>;
964
1049
  renderDetailActions: (container: HTMLElement, row: TableRow) => HTMLElement;
965
1050
  getData(): Object[];
1051
+ get survey(): SurveyModel;
1052
+ get options(): ITableOptions;
966
1053
  abstract applyFilter(value: string): void;
967
1054
  abstract applyColumnFilter(columnName: string, value: string): void;
968
1055
  abstract sortByColumn(columnName: string, direction: string): void;
@@ -975,15 +1062,15 @@ export abstract class Table {
975
1062
  setPageSize(value: number): void;
976
1063
  getCreatedRows(): TableRow[];
977
1064
  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>);
1065
+ get useNamesAsTitles(): boolean;
1066
+ protected buildColumns: (survey: SurveyModel) => IColumn[];
1067
+ isColumnVisible(column: IColumn): boolean;
1068
+ get columns(): Array<IColumn>;
1069
+ set columns(columns: Array<IColumn>);
983
1070
  protected initTableData(data: Array<any>): void;
984
1071
  moveColumn(from: number, to: number): void;
985
1072
  setColumnLocation(columnName: string, location: QuestionLocation): void;
986
- getColumnByName(columnName: string): ITableColumn;
1073
+ getColumnByName(columnName: string): IColumn;
987
1074
  setColumnVisibility(columnName: string, isVisible: boolean): void;
988
1075
  setColumnWidth(columnName: string, width: string | number): void;
989
1076
  removeRow(row: TableRow): void;
@@ -1065,7 +1152,11 @@ export enum ColumnDataType {
1065
1152
  FileLink = 1,
1066
1153
  Image = 2
1067
1154
  }
1068
- export interface ITableColumn {
1155
+ export interface ICellData {
1156
+ question: Question;
1157
+ displayValue: any;
1158
+ }
1159
+ export interface IColumnData {
1069
1160
  name: string;
1070
1161
  displayName: string;
1071
1162
  dataType: ColumnDataType;
@@ -1075,9 +1166,14 @@ export interface ITableColumn {
1075
1166
  width?: string | number;
1076
1167
  isComment?: boolean;
1077
1168
  }
1169
+ export interface IColumn extends IColumnData {
1170
+ visibleIndex?: number;
1171
+ fromJSON(json: any): void;
1172
+ getCellData(table: Table, data: any): ICellData;
1173
+ }
1078
1174
  export interface ITableState {
1079
1175
  locale?: string;
1080
- elements?: ITableColumn[];
1176
+ elements?: IColumnData[];
1081
1177
  pageSize?: number;
1082
1178
  }
1083
1179
  export interface IPermission {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - SurveyJS Analytics library v1.9.32
2
+ * surveyjs - SurveyJS Analytics library v1.9.33
3
3
  * Copyright (c) 2015-2022 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */