survey-analytics 2.0.6 → 2.0.8

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,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - SurveyJS Dashboard library v2.0.6
2
+ * surveyjs - SurveyJS Dashboard library v2.0.8
3
3
  * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "lint": "eslint ./src --quiet",
18
18
  "pre-push-check": "npm run lint && npm run test"
19
19
  },
20
- "version": "2.0.6",
20
+ "version": "2.0.8",
21
21
  "name": "survey-analytics",
22
22
  "description": "SurveyJS analytics Library.",
23
23
  "main": "survey.analytics.js",
@@ -88,7 +88,7 @@
88
88
  "peerDependencies": {
89
89
  "@types/plotly.js-dist-min": "^2.3.0",
90
90
  "@types/tabulator-tables": "^6.2.3",
91
- "survey-core": "2.0.6"
91
+ "survey-core": "2.0.8"
92
92
  },
93
93
  "husky": {
94
94
  "hooks": {
@@ -5,7 +5,7 @@ declare type VisualizerConstructor = new (question: Question, data: Array<{
5
5
  /**
6
6
  * An object with methods used to register and unregister visualizers for individual question types.
7
7
  *
8
- * [View Demo](https://surveyjs.io/dashboard/examples/visualize-answers-from-text-entry-fields-with-charts/ (linkStyle))
8
+ * [View Demo](https://surveyjs.io/dashboard/examples/custom-survey-data-visualizer/ (linkStyle))
9
9
  */
10
10
  export declare class VisualizationManager {
11
11
  static alternativesVisualizer: any;
@@ -18,7 +18,7 @@ export declare class VisualizationManager {
18
18
  /**
19
19
  * Registers a visualizer for a specified question type.
20
20
  *
21
- * [View Demo](https://surveyjs.io/dashboard/examples/visualize-answers-from-text-entry-fields-with-charts/ (linkStyle))
21
+ * [View Demo](https://surveyjs.io/dashboard/examples/custom-survey-data-visualizer/ (linkStyle))
22
22
  * @param questionType A question [type](https://surveyjs.io/form-library/documentation/api-reference/question#getType).
23
23
  * @param constructor A function that returns a visualizer constructor to register.
24
24
  * @param index A zero-based index that specifies the visualizer's position in the visualizer list for the specified question type. Pass `0` to insert the visualizer at the beginning of the list and use it by default. If `index` is not specified, the visualizer is added to the end of the list.
@@ -20,6 +20,8 @@ export interface IVisualizerPanelRenderedElement extends IVisualizerPanelElement
20
20
  * vizPanelOptions
21
21
  * );
22
22
  * ```
23
+ *
24
+ * [View Demo](https://surveyjs.io/dashboard/examples/interactive-survey-data-dashboard/ (linkStyle))
23
25
  */
24
26
  export interface IVisualizationPanelOptions {
25
27
  /**
@@ -36,6 +38,8 @@ export interface IVisualizationPanelOptions {
36
38
  useValuesAsLabels?: boolean;
37
39
  /**
38
40
  * Pass a survey instance to use survey locales in the Visualization Panel.
41
+ *
42
+ * [View Demo](https://surveyjs.io/dashboard/examples/localize-survey-data-dashboard-ui/ (linkStyle))
39
43
  */
40
44
  survey?: SurveyModel;
41
45
  /**
@@ -421,6 +425,8 @@ export declare class VisualizationPanel extends VisualizerBase {
421
425
  getState(): IState;
422
426
  /**
423
427
  * The state of `VisualizationPanel`. Includes information about the visualized elements and current locale.
428
+ *
429
+ * [View Demo](https://surveyjs.io/dashboard/examples/save-dashboard-state-to-local-storage/ (linkStyle))
424
430
  * @see onStateChanged
425
431
  */
426
432
  get state(): IState;
@@ -102,7 +102,7 @@ export declare class VisualizerBase implements IDataInfo {
102
102
  * - `state`: `any`\
103
103
  * A new state of the visualizer. Includes information about the visualized elements and current locale.
104
104
  *
105
- * [View Demo](/dashboard/examples/save-dashboard-state-to-local-storage/ (linkStyle))
105
+ * [View Demo](https://surveyjs.io/dashboard/examples/save-dashboard-state-to-local-storage/ (linkStyle))
106
106
  * @see getState
107
107
  * @see setState
108
108
  */
@@ -302,6 +302,8 @@ export declare class VisualizerBase implements IDataInfo {
302
302
  /**
303
303
  * Sets the visualizer's state.
304
304
  *
305
+ * [View Demo](https://surveyjs.io/dashboard/examples/save-dashboard-state-to-local-storage/ (linkStyle))
306
+ *
305
307
  * > This method is overriden in classes descendant from `VisualizerBase`.
306
308
  * @see getState
307
309
  * @see onStateChanged
@@ -313,6 +315,8 @@ export declare class VisualizerBase implements IDataInfo {
313
315
  * If you want to inherit the locale from a visualized survey, assign a [`SurveyModel`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model) instance to the [`survey`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#survey) property of the `IVisualizationPanelOptions` object in the [`VisualizationPanel`](https://surveyjs.io/dashboard/documentation/api-reference/visualizationpanel) constructor.
314
316
  *
315
317
  * If the survey is [translated into more than one language](https://surveyjs.io/form-library/examples/survey-localization/), the toolbar displays a language selection drop-down menu.
318
+ *
319
+ * [View Demo](https://surveyjs.io/dashboard/examples/localize-survey-data-dashboard-ui/ (linkStyle))
316
320
  * @see onLocaleChanged
317
321
  */
318
322
  get locale(): string;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - SurveyJS Dashboard library v2.0.6
2
+ * surveyjs - SurveyJS Dashboard library v2.0.8
3
3
  * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -125,6 +125,10 @@
125
125
  background-image: url("data:image/svg+xml,%3Csvg version=%271.1%27 xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3E%3Cg%3E%3Cpolygon style=%27fill: %231ab394%27 points=%2713,5 12,6 13,7 9,7 9,3 10,4 11,3 8,0 5,3 6,4 7,3 7,7 3,7 4,6 3,5 0,8 3,11 4,10 3,9 7,9 7,13 6,12 5,13 8,16 11,13 10,12 9,13 9,9 13,9 12,10 13,11 16,8 %27/%3E%3C/g%3E%3C/svg%3E");
126
126
  }
127
127
 
128
+ [dir=rtl] .sa-question__title--draggable:after, [style*="direction: rtl"] .sa-question__title--draggable:after, [style*="direction:rtl"] .sa-question__title--draggable:after {
129
+ float: left;
130
+ }
131
+
128
132
  .sa-toolbar {
129
133
  font-family: var(--font-family, "Segoe UI", SegoeUI, Arial, sans-serif);
130
134
  font-size: var(--root-font-size, 14px);
@@ -246,12 +250,13 @@
246
250
 
247
251
  .sa-commercial {
248
252
  font-size: 12px;
249
- padding: 1em 0 0.5em 2em;
253
+ padding: 0.5em 0 0.5em 2em;
250
254
  }
251
255
  .sa-commercial svg {
252
256
  width: 20px;
253
257
  height: 20px;
254
258
  fill: var(--main-color, #1ab394);
259
+ vertical-align: middle;
255
260
  }
256
261
 
257
262
  .sa-commercial__text {
@@ -1 +1 @@
1
- {"version":3,"file":"survey.analytics.css","mappings":";;;;;;;;AAKA;EACE,qECsBsB;EDrBtB,sCCsBe;AD1BjB;;AAOA;EACE,uECgBY;EDfZ;EACA;EACA;AAJF;;AAOA;EACE;AAJF;;AAOA;EACE;EACA,qECKsB;EDJtB,sCCKe;EDJf;EACA;EACA;EACA;AAJF;;AAOA;EACE;AAJF;;AAOA;EACE;EACA;EACA;AAJF;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;AAJF;;AAOA;EACE;IACE;EAJF;EAMA;IACE;EAJF;AACF;;;;AElDA;EACE;AADF;;AAIA;EACE;AADF;;AAIA;EACE;EACA;AADF;AAEE;EAHF;IAII;EACF;AACF;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;AACF;;AAEA;EACE;AACF;AACE;EAHF;IAII;EAEF;AACF;;AACA;EACE,kDDpBiB;ECqBjB;AAEF;;AACA;EACE;EACA,qEDdsB;ECetB;EACA;EACA,iCDjCW;ECkCX;EACA;AAEF;;AACA;EACE;AAEF;AADE;EACE;EACA;EACA;EACA;EACA;EACA;AAGJ;;AACA;EACE,uEDpCY;ECqCZ,sCDnCe;ECoCf,iCDrDW;ECsDX;EACA;EACA;EACA;EACA;EACA;AAEF;;AAAA;EACE;EACA;AAGF;;AAAA;EACE,uEDpDY;ECqDZ,sCDnDe;ECoDf;EACA;EACA;EACA;EACA;EACA;AAGF;AADE;EACE,0CDrEW;ECsEX;AAGJ;AADE;EACE;AAGJ;AADE;EACE;AAGJ;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;AAEF;AADE;EACE,gDDrFQ;ACwFZ;AAAI;EACE,qCDxFY;AC0FlB;AACE;EACE;EACA;AACJ;;AAGA;EACE;AAAF;;AAIA;EACE;EACA;EACA;EACA;AADF;AAGE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,2CDlIiB;ECmIjB,0CD1HW;EC2HX,YDzHkB;EC0HlB;EACA;AADJ;AAGI;EACE;AADN;AAII;EACE;EACA;AAFN;AAKI;EACE,qCDxJW;ACqJjB;AAOE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AALJ;;AAUA;EACE;EACA;AAPF;;AAUA;EACE;EACA;EACA;AAPF;;AAUA;EACE;EACA;AAPF;AAQE;EACE;EACA;EACA,gCDpMS;AC8Lb;;AASA;EACE;EACA;EACA,iCD1MW;ACoMb;;AAQA;EACE;AALF;;AAQA;AACA;EACE;EACA;EACA;EACA,4IACE;EAGF;AARF;AAUA;AACA;EACE;EACA;EACA;EACA,0IACE;EAGF;AAXF;AAcA;AACA;EACE;EACA;EACA;EACA,kJACE;EAGF;AAfF;AAiBA;AACA;EACE;EACA;EACA;EACA,gJACE;EAGF;AAlBF;;;;ACvOA;EACE;EACA;EACA;EACA;AADF;;AAIA;EACE;EACA,uEFgBY;EEfZ,sCFiBe;EEhBf,iCFDW;EEEX;EACA;EACA;AADF;;AAIA;EACE;EACA;EACA;EACA,0CFHa;EEIb,kDFRiB;EESjB,gBFHoB;AEEtB;;AAIA;EACE;AADF;;AAIA;EACE;AADF;;;;AC9BA;EACE;EACA;EACA;EACA;AADF;;AAIA;EACE;EACA,uEHgBY;EGfZ,sCHiBe;EGhBf,iCHDW;EGGX,kDHCiB;AGHnB;;AAKA;EACE;EACA;EACA;EACA,0CHFa;EGGb,kDHPiB;EGQjB,gBHFoB;AGAtB;;AAKA;EACE;EACA;AAFF;;AAKA;EACE;AAFF;;AAKA;EACE;EACA;EACA;AAFF;;AAIA;EACE;EACA,4CH3CW;AG0Cb;;;;AC1CA;EACE;EACA;EACA;EACA;AACF;;AAEA;EACE;EACA;EACA;AACF;;AAEA;EACE;EACA;EACA;AACF;;AAEA;EACE;EACA;EACA;EACA;AACF;;AAEA;EACE;AACF;;AAEA;EACE;EACA;AACF","sources":["webpack://SurveyAnalytics/./src/visualizerBase.scss","webpack://SurveyAnalytics/./src/_globals.scss","webpack://SurveyAnalytics/./src/visualizationPanel.scss","webpack://SurveyAnalytics/./src/text.scss","webpack://SurveyAnalytics/./src/statistics-table.scss","webpack://SurveyAnalytics/./src/nps.scss"],"sourcesContent":["@use \"globals\" as *;\n\n.sa-visualizer__toolbar {\n}\n\n.sa-visualizer__header {\n font-family: $font-family-secondary;\n font-size: $root-font-size;\n}\n\n.sa-visualizer__content {\n font-family: $font-family;\n display: inline-block;\n overflow: hidden;\n width: 100%;\n}\n\n.sa-visualizer__footer {\n margin-top: 10px;\n}\n\n.sa-visualizer__footer-title {\n display: inline-block;\n font-family: $font-family-secondary;\n font-size: $root-font-size;\n color: #404040;\n line-height: 34px;\n vertical-align: middle;\n margin: 0;\n}\n\n.sa-visualizer__footer-content {\n margin-top: 10px;\n}\n\n.sa-data-loading-indicator-panel {\n width: 100%;\n min-height: 200px;\n position: relative;\n}\n\n.sa-data-loading-indicator {\n position: absolute;\n width: 64px;\n height: 64px;\n left: calc((100% - 64px) / 2);\n top: calc((100% - 64px) / 2);\n animation: sa-data-loading-indicator-spinner 1s infinite linear;\n}\n\n@keyframes sa-data-loading-indicator-spinner {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n}\n","$main-color: var(--main-color, #1ab394);\n$auxiliary-color: var(--auxiliary-color, #ff9814);\n$auxiliary-color-1: var(--auxiliary-color-1, #666666);\n$auxiliary-color-2: var(--auxiliary-color-2, #1948b3);\n$danger-color: var(--danger-color, #d9534f);\n$disabled-color: var(--disabled-color, #b0b0b0);\n\n$blue-color: var(--blue-color, #394cff);\n$purple-color: var(--purple-color, #aa42d0);\n$green-color: var(--green-color, #41c02c);\n\n$text-color-inverse: var(--text-color-inverse, #fff);\n$text-color: var(--text-color, #404040);\n\n$content-max-width: 1170px;\n\n$background-color: var(--background-color, #f7f7f7);\n$background-color-dark: var(--background-color-dark, #eeeeee);\n$background-disabled-color: var(--background-disabled-color, #b7b7b7);\n\n$border-color: var(--border-color, #e7e7e7);\n\n$form-element-height: 34px;\n\n$svg-color: var(--svg-color, rgba(#9f9f9f, 0.4));\n$svg-hover-color: var(--svg-hover-color, #9f9f9f);\n\n$font-family: var(--font-family, \"Segoe UI\", SegoeUI, Arial, sans-serif);\n$font-family-secondary: var(--font-family-secondary, Raleway, Arial, sans-serif);\n$root-font-size: var(--root-font-size, 14px);","@use \"globals\" as *;\n\n.sa-panel__header {\n margin: 0 1em;\n}\n\n.sa-grid {\n position: relative;\n}\n\n.sa-grid__grid-sizer {\n width: 100%;\n box-sizing: border-box;\n @media screen and (min-width: 1400px) {\n width: 50%;\n }\n}\n\n.sa-question {\n display: inline-block;\n width: 100%;\n vertical-align: top;\n box-sizing: border-box;\n overflow: hidden;\n padding: 1em;\n}\n\n.sa-question-layouted {\n position: absolute;\n\n @media screen and (min-width: 1400px) {\n width: calc(50% - 1px);\n }\n}\n\n.sa-question__content {\n background-color: $background-color;\n padding: 20px;\n}\n\n.sa-question__title {\n margin-left: 30px;\n font-family: $font-family-secondary;\n font-size: 18px;\n font-weight: bold;\n color: $text-color;\n margin: 0;\n margin-bottom: 1em;\n}\n\n.sa-question__title--draggable {\n cursor: move;\n &:after {\n content: \" \";\n display: block;\n float: right;\n width: 15px;\n height: 15px;\n background-image: url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg%3E%3Cpolygon style='fill: %231ab394' points='13,5 12,6 13,7 9,7 9,3 10,4 11,3 8,0 5,3 6,4 7,3 7,7 3,7 4,6 3,5 0,8 3,11 4,10 3,9 7,9 7,13 6,12 5,13 8,16 11,13 10,12 9,13 9,9 13,9 12,10 13,11 16,8 '/%3E%3C/g%3E%3C/svg%3E \");\n }\n}\n\n.sa-toolbar {\n font-family: $font-family;\n font-size: $root-font-size;\n color: $text-color;\n line-height: 34px;\n margin-bottom: 25px;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 10px;\n}\n.sa-toolbar.sa-toolbar > * {\n display: inline-flex;\n line-height: 1em;\n}\n\n.sa-toolbar__button {\n font-family: $font-family;\n font-size: $root-font-size;\n padding: 8px;\n vertical-align: middle;\n cursor: pointer;\n border: 1px solid transparent;\n white-space: nowrap;\n margin: 0 10px;\n\n &:hover {\n border-color: $border-color;\n background-blend-mode: darken;\n }\n &:first-child {\n margin-left: 0;\n }\n &:last-child {\n margin-right: 0;\n }\n}\n\n.sa-toolbar__svg-button {\n width: 15px;\n height: 15px;\n padding: 0;\n border: none;\n outline: none;\n background-color: inherit;\n cursor: pointer;\n use {\n fill: $svg-color;\n }\n &:hover {\n use {\n fill: $svg-hover-color;\n }\n }\n svg {\n width: 15px;\n height: 15px;\n }\n}\n\n.sa-toolbar__button--right {\n float: right;\n}\n\n// custom select\n.sa-question__select-wrapper {\n position: relative;\n display: inline-block;\n min-width: 100px;\n max-width: 300px;\n\n .sa-question__select {\n width: 100%;\n display: block;\n position: relative;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-radius: 2px;\n background: $text-color-inverse;\n border-color: $border-color;\n height: $form-element-height;\n padding: 5px 23px 5px 15px;\n line-height: initial;\n\n &::-ms-expand {\n display: none;\n }\n\n &:focus {\n outline: 0;\n box-shadow: none;\n }\n\n &:disabled {\n color: $disabled-color;\n }\n }\n\n &:before {\n margin-top: -4px;\n top: 50%;\n right: 10px;\n z-index: 1;\n content: \"\";\n position: absolute;\n width: 4px;\n height: 4px;\n border-right: 2px solid $text-color;\n border-bottom: 2px solid $text-color;\n transform: rotate(45deg);\n box-sizing: content-box;\n pointer-events: none;\n }\n}\n// EO custom select\n\n.sa-question__filter {\n display: inline-block;\n padding: 0 1em;\n}\n\n.sa-question__filter-text {\n vertical-align: middle;\n margin-top: 1px;\n line-height: 32px;\n}\n\n.sa-commercial {\n font-size: 12px;\n padding: 1em 0 0.5em 2em;\n svg {\n width: 20px;\n height: 20px;\n fill: $main-color;\n }\n}\n.sa-commercial__text {\n font-weight: bold;\n text-decoration: none;\n color: $main-color;\n}\n.sa-commercial__product {\n padding-left: 0.5em;\n}\n\n/* latin-ext */\n@font-face {\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 400;\n src:\n local(\"Raleway\"),\n local(\"Raleway-Regular\"),\n url(https://fonts.gstatic.com/s/raleway/v14/1Ptug8zYS_SKggPNyCMIT5lu.woff2) format(\"woff2\");\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 400;\n src:\n local(\"Raleway\"),\n local(\"Raleway-Regular\"),\n url(https://fonts.gstatic.com/s/raleway/v14/1Ptug8zYS_SKggPNyC0ITw.woff2) format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC,\n U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin-ext */\n@font-face {\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 700;\n src:\n local(\"Raleway Bold\"),\n local(\"Raleway-Bold\"),\n url(https://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwJYtWqhPAMif.woff2) format(\"woff2\");\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 700;\n src:\n local(\"Raleway Bold\"),\n local(\"Raleway-Bold\"),\n url(https://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwJYtWqZPAA.woff2) format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC,\n U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n","@use \"globals\" as *;\n\n.sa-text-table__container {\n width: 100%;\n min-height: 200px;\n max-height: 500px;\n overflow: auto;\n}\n\n.sa-text-table {\n width: 100%;\n font-family: $font-family;\n font-size: $root-font-size;\n color: $text-color;\n border-width: 1px;\n border-collapse: collapse;\n background-color: $background-color;\n}\n\n.sa-text-table__cell {\n border-width: 1px;\n padding: 8px;\n border-style: solid;\n border-color: $border-color;\n background-color: $background-color;\n min-height: $form-element-height;\n}\n\n.sa-text-table__cell--number {\n text-align: end;\n}\n\nth.sa-text-table__cell {\n font-weight: 600;\n}\n","@use \"globals\" as *;\n\n.sa-statistics-table__container {\n width: 100%;\n min-height: 200px;\n max-height: 500px;\n overflow: auto;\n}\n\n.sa-statistics-table {\n width: 100%;\n font-family: $font-family;\n font-size: $root-font-size;\n color: $text-color;\n // border-collapse: collapse;\n background-color: $background-color;\n}\n\n.sa-statistics-table__cell {\n border-width: 1px;\n padding: 8px;\n border-style: solid;\n border-color: $border-color;\n background-color: $background-color;\n min-height: $form-element-height;\n}\n\n.sa-statistics-table__cell-value {\n text-align: right;\n min-width: 30px;\n}\n\n.sa-statistics-table__cell-header {\n font-weight: bold;\n}\n\n.sa-choices-sparkline {\n min-width: 100px;\n height: 24px;\n border: 1px solid $main-color;\n}\n.sa-choices-sparkline-value {\n height: 100%;\n background-color: $main-color;\n}\n",".sa-visualizer-nps {\n display: flex;\n flex-direction: row;\n gap: 16px;\n overflow-x: auto;\n}\n\n.sa-visualizer-nps__score-part {\n display: flex;\n flex-direction: column;\n padding: 0 16px;\n}\n\n.sa-visualizer-nps__score-part-title {\n font-size: 32px;\n text-align: center;\n color: #909090;\n}\n\n.sa-visualizer-nps__score-part-values {\n display: flex;\n flex-direction: row;\n gap: 16px;\n align-items: baseline;\n}\n\n.sa-visualizer-nps__score-part-value {\n font-size: 48px;\n}\n\n.sa-visualizer-nps__score-part-percent {\n font-size: 24px;\n color: #606060;\n}"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"survey.analytics.css","mappings":";;;;;;;;AAKA;EACE,qECsBsB;EDrBtB,sCCsBe;AD1BjB;;AAOA;EACE,uECgBY;EDfZ;EACA;EACA;AAJF;;AAOA;EACE;AAJF;;AAOA;EACE;EACA,qECKsB;EDJtB,sCCKe;EDJf;EACA;EACA;EACA;AAJF;;AAOA;EACE;AAJF;;AAOA;EACE;EACA;EACA;AAJF;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;AAJF;;AAOA;EACE;IACE;EAJF;EAMA;IACE;EAJF;AACF;;;;AElDA;EACE;AADF;;AAIA;EACE;AADF;;AAIA;EACE;EACA;AADF;AAEE;EAHF;IAII;EACF;AACF;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;AACF;;AAEA;EACE;AACF;AACE;EAHF;IAII;EAEF;AACF;;AACA;EACE,kDDpBiB;ECqBjB;AAEF;;AACA;EACE;EACA,qEDdsB;ECetB;EACA;EACA,iCDjCW;ECkCX;EACA;AAEF;;AACA;EACE;AAEF;AADE;EACE;EACA;EACA;EACA;EACA;EACA;AAGJ;;AAEE;EACE;AACJ;;AAGA;EACE,uED1CY;EC2CZ,sCDzCe;EC0Cf,iCD3DW;EC4DX;EACA;EACA;EACA;EACA;EACA;AAAF;;AAEA;EACE;EACA;AACF;;AAEA;EACE,uED1DY;EC2DZ,sCDzDe;EC0Df;EACA;EACA;EACA;EACA;EACA;AACF;AACE;EACE,0CD3EW;EC4EX;AACJ;AACE;EACE;AACJ;AACE;EACE;AACJ;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;AAAF;AACE;EACE,gDD3FQ;AC4FZ;AAEI;EACE,qCD9FY;AC8FlB;AAGE;EACE;EACA;AADJ;;AAKA;EACE;AAFF;;AAMA;EACE;EACA;EACA;EACA;AAHF;AAKE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,2CDxIiB;ECyIjB,0CDhIW;ECiIX,YD/HkB;ECgIlB;EACA;AAHJ;AAKI;EACE;AAHN;AAMI;EACE;EACA;AAJN;AAOI;EACE,qCD9JW;ACyJjB;AASE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAPJ;;AAYA;EACE;EACA;AATF;;AAYA;EACE;EACA;EACA;AATF;;AAYA;EACE;EACA;AATF;AAUE;EACE;EACA;EACA,gCD1MS;EC2MT;AARJ;;AAWA;EACE;EACA;EACA,iCDjNW;ACyMb;;AAUA;EACE;AAPF;;AAUA;AACA;EACE;EACA;EACA;EACA,4IACE;EAGF;AAVF;AAYA;AACA;EACE;EACA;EACA;EACA,0IACE;EAGF;AAbF;AAgBA;AACA;EACE;EACA;EACA;EACA,kJACE;EAGF;AAjBF;AAmBA;AACA;EACE;EACA;EACA;EACA,gJACE;EAGF;AApBF;;;;AC5OA;EACE;EACA;EACA;EACA;AADF;;AAIA;EACE;EACA,uEFgBY;EEfZ,sCFiBe;EEhBf,iCFDW;EEEX;EACA;EACA;AADF;;AAIA;EACE;EACA;EACA;EACA,0CFHa;EEIb,kDFRiB;EESjB,gBFHoB;AEEtB;;AAIA;EACE;AADF;;AAIA;EACE;AADF;;;;AC9BA;EACE;EACA;EACA;EACA;AADF;;AAIA;EACE;EACA,uEHgBY;EGfZ,sCHiBe;EGhBf,iCHDW;EGGX,kDHCiB;AGHnB;;AAKA;EACE;EACA;EACA;EACA,0CHFa;EGGb,kDHPiB;EGQjB,gBHFoB;AGAtB;;AAKA;EACE;EACA;AAFF;;AAKA;EACE;AAFF;;AAKA;EACE;EACA;EACA;AAFF;;AAIA;EACE;EACA,4CH3CW;AG0Cb;;;;AC1CA;EACE;EACA;EACA;EACA;AACF;;AAEA;EACE;EACA;EACA;AACF;;AAEA;EACE;EACA;EACA;AACF;;AAEA;EACE;EACA;EACA;EACA;AACF;;AAEA;EACE;AACF;;AAEA;EACE;EACA;AACF","sources":["webpack://SurveyAnalytics/./src/visualizerBase.scss","webpack://SurveyAnalytics/./src/_globals.scss","webpack://SurveyAnalytics/./src/visualizationPanel.scss","webpack://SurveyAnalytics/./src/text.scss","webpack://SurveyAnalytics/./src/statistics-table.scss","webpack://SurveyAnalytics/./src/nps.scss"],"sourcesContent":["@use \"globals\" as *;\n\n.sa-visualizer__toolbar {\n}\n\n.sa-visualizer__header {\n font-family: $font-family-secondary;\n font-size: $root-font-size;\n}\n\n.sa-visualizer__content {\n font-family: $font-family;\n display: inline-block;\n overflow: hidden;\n width: 100%;\n}\n\n.sa-visualizer__footer {\n margin-top: 10px;\n}\n\n.sa-visualizer__footer-title {\n display: inline-block;\n font-family: $font-family-secondary;\n font-size: $root-font-size;\n color: #404040;\n line-height: 34px;\n vertical-align: middle;\n margin: 0;\n}\n\n.sa-visualizer__footer-content {\n margin-top: 10px;\n}\n\n.sa-data-loading-indicator-panel {\n width: 100%;\n min-height: 200px;\n position: relative;\n}\n\n.sa-data-loading-indicator {\n position: absolute;\n width: 64px;\n height: 64px;\n left: calc((100% - 64px) / 2);\n top: calc((100% - 64px) / 2);\n animation: sa-data-loading-indicator-spinner 1s infinite linear;\n}\n\n@keyframes sa-data-loading-indicator-spinner {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n}\n","$main-color: var(--main-color, #1ab394);\n$auxiliary-color: var(--auxiliary-color, #ff9814);\n$auxiliary-color-1: var(--auxiliary-color-1, #666666);\n$auxiliary-color-2: var(--auxiliary-color-2, #1948b3);\n$danger-color: var(--danger-color, #d9534f);\n$disabled-color: var(--disabled-color, #b0b0b0);\n\n$blue-color: var(--blue-color, #394cff);\n$purple-color: var(--purple-color, #aa42d0);\n$green-color: var(--green-color, #41c02c);\n\n$text-color-inverse: var(--text-color-inverse, #fff);\n$text-color: var(--text-color, #404040);\n\n$content-max-width: 1170px;\n\n$background-color: var(--background-color, #f7f7f7);\n$background-color-dark: var(--background-color-dark, #eeeeee);\n$background-disabled-color: var(--background-disabled-color, #b7b7b7);\n\n$border-color: var(--border-color, #e7e7e7);\n\n$form-element-height: 34px;\n\n$svg-color: var(--svg-color, rgba(#9f9f9f, 0.4));\n$svg-hover-color: var(--svg-hover-color, #9f9f9f);\n\n$font-family: var(--font-family, \"Segoe UI\", SegoeUI, Arial, sans-serif);\n$font-family-secondary: var(--font-family-secondary, Raleway, Arial, sans-serif);\n$root-font-size: var(--root-font-size, 14px);","@use \"globals\" as *;\n\n.sa-panel__header {\n margin: 0 1em;\n}\n\n.sa-grid {\n position: relative;\n}\n\n.sa-grid__grid-sizer {\n width: 100%;\n box-sizing: border-box;\n @media screen and (min-width: 1400px) {\n width: 50%;\n }\n}\n\n.sa-question {\n display: inline-block;\n width: 100%;\n vertical-align: top;\n box-sizing: border-box;\n overflow: hidden;\n padding: 1em;\n}\n\n.sa-question-layouted {\n position: absolute;\n\n @media screen and (min-width: 1400px) {\n width: calc(50% - 1px);\n }\n}\n\n.sa-question__content {\n background-color: $background-color;\n padding: 20px;\n}\n\n.sa-question__title {\n margin-left: 30px;\n font-family: $font-family-secondary;\n font-size: 18px;\n font-weight: bold;\n color: $text-color;\n margin: 0;\n margin-bottom: 1em;\n}\n\n.sa-question__title--draggable {\n cursor: move;\n &:after {\n content: \" \";\n display: block;\n float: right;\n width: 15px;\n height: 15px;\n background-image: url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg%3E%3Cpolygon style='fill: %231ab394' points='13,5 12,6 13,7 9,7 9,3 10,4 11,3 8,0 5,3 6,4 7,3 7,7 3,7 4,6 3,5 0,8 3,11 4,10 3,9 7,9 7,13 6,12 5,13 8,16 11,13 10,12 9,13 9,9 13,9 12,10 13,11 16,8 '/%3E%3C/g%3E%3C/svg%3E \");\n }\n}\n\n[dir=\"rtl\"] .sa-question__title--draggable, [style*=\"direction: rtl\"] .sa-question__title--draggable, [style*=\"direction:rtl\"] .sa-question__title--draggable {\n &:after {\n float: left;\n }\n}\n\n.sa-toolbar {\n font-family: $font-family;\n font-size: $root-font-size;\n color: $text-color;\n line-height: 34px;\n margin-bottom: 25px;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 10px;\n}\n.sa-toolbar.sa-toolbar > * {\n display: inline-flex;\n line-height: 1em;\n}\n\n.sa-toolbar__button {\n font-family: $font-family;\n font-size: $root-font-size;\n padding: 8px;\n vertical-align: middle;\n cursor: pointer;\n border: 1px solid transparent;\n white-space: nowrap;\n margin: 0 10px;\n\n &:hover {\n border-color: $border-color;\n background-blend-mode: darken;\n }\n &:first-child {\n margin-left: 0;\n }\n &:last-child {\n margin-right: 0;\n }\n}\n\n.sa-toolbar__svg-button {\n width: 15px;\n height: 15px;\n padding: 0;\n border: none;\n outline: none;\n background-color: inherit;\n cursor: pointer;\n use {\n fill: $svg-color;\n }\n &:hover {\n use {\n fill: $svg-hover-color;\n }\n }\n svg {\n width: 15px;\n height: 15px;\n }\n}\n\n.sa-toolbar__button--right {\n float: right;\n}\n\n// custom select\n.sa-question__select-wrapper {\n position: relative;\n display: inline-block;\n min-width: 100px;\n max-width: 300px;\n\n .sa-question__select {\n width: 100%;\n display: block;\n position: relative;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-radius: 2px;\n background: $text-color-inverse;\n border-color: $border-color;\n height: $form-element-height;\n padding: 5px 23px 5px 15px;\n line-height: initial;\n\n &::-ms-expand {\n display: none;\n }\n\n &:focus {\n outline: 0;\n box-shadow: none;\n }\n\n &:disabled {\n color: $disabled-color;\n }\n }\n\n &:before {\n margin-top: -4px;\n top: 50%;\n right: 10px;\n z-index: 1;\n content: \"\";\n position: absolute;\n width: 4px;\n height: 4px;\n border-right: 2px solid $text-color;\n border-bottom: 2px solid $text-color;\n transform: rotate(45deg);\n box-sizing: content-box;\n pointer-events: none;\n }\n}\n// EO custom select\n\n.sa-question__filter {\n display: inline-block;\n padding: 0 1em;\n}\n\n.sa-question__filter-text {\n vertical-align: middle;\n margin-top: 1px;\n line-height: 32px;\n}\n\n.sa-commercial {\n font-size: 12px;\n padding: 0.5em 0 0.5em 2em;\n svg {\n width: 20px;\n height: 20px;\n fill: $main-color;\n vertical-align: middle;\n }\n}\n.sa-commercial__text {\n font-weight: bold;\n text-decoration: none;\n color: $main-color;\n}\n.sa-commercial__product {\n padding-left: 0.5em;\n}\n\n/* latin-ext */\n@font-face {\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 400;\n src:\n local(\"Raleway\"),\n local(\"Raleway-Regular\"),\n url(https://fonts.gstatic.com/s/raleway/v14/1Ptug8zYS_SKggPNyCMIT5lu.woff2) format(\"woff2\");\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 400;\n src:\n local(\"Raleway\"),\n local(\"Raleway-Regular\"),\n url(https://fonts.gstatic.com/s/raleway/v14/1Ptug8zYS_SKggPNyC0ITw.woff2) format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC,\n U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin-ext */\n@font-face {\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 700;\n src:\n local(\"Raleway Bold\"),\n local(\"Raleway-Bold\"),\n url(https://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwJYtWqhPAMif.woff2) format(\"woff2\");\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 700;\n src:\n local(\"Raleway Bold\"),\n local(\"Raleway-Bold\"),\n url(https://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwJYtWqZPAA.woff2) format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC,\n U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n","@use \"globals\" as *;\n\n.sa-text-table__container {\n width: 100%;\n min-height: 200px;\n max-height: 500px;\n overflow: auto;\n}\n\n.sa-text-table {\n width: 100%;\n font-family: $font-family;\n font-size: $root-font-size;\n color: $text-color;\n border-width: 1px;\n border-collapse: collapse;\n background-color: $background-color;\n}\n\n.sa-text-table__cell {\n border-width: 1px;\n padding: 8px;\n border-style: solid;\n border-color: $border-color;\n background-color: $background-color;\n min-height: $form-element-height;\n}\n\n.sa-text-table__cell--number {\n text-align: end;\n}\n\nth.sa-text-table__cell {\n font-weight: 600;\n}\n","@use \"globals\" as *;\n\n.sa-statistics-table__container {\n width: 100%;\n min-height: 200px;\n max-height: 500px;\n overflow: auto;\n}\n\n.sa-statistics-table {\n width: 100%;\n font-family: $font-family;\n font-size: $root-font-size;\n color: $text-color;\n // border-collapse: collapse;\n background-color: $background-color;\n}\n\n.sa-statistics-table__cell {\n border-width: 1px;\n padding: 8px;\n border-style: solid;\n border-color: $border-color;\n background-color: $background-color;\n min-height: $form-element-height;\n}\n\n.sa-statistics-table__cell-value {\n text-align: right;\n min-width: 30px;\n}\n\n.sa-statistics-table__cell-header {\n font-weight: bold;\n}\n\n.sa-choices-sparkline {\n min-width: 100px;\n height: 24px;\n border: 1px solid $main-color;\n}\n.sa-choices-sparkline-value {\n height: 100%;\n background-color: $main-color;\n}\n",".sa-visualizer-nps {\n display: flex;\n flex-direction: row;\n gap: 16px;\n overflow-x: auto;\n}\n\n.sa-visualizer-nps__score-part {\n display: flex;\n flex-direction: column;\n padding: 0 16px;\n}\n\n.sa-visualizer-nps__score-part-title {\n font-size: 32px;\n text-align: center;\n color: #909090;\n}\n\n.sa-visualizer-nps__score-part-values {\n display: flex;\n flex-direction: row;\n gap: 16px;\n align-items: baseline;\n}\n\n.sa-visualizer-nps__score-part-value {\n font-size: 48px;\n}\n\n.sa-visualizer-nps__score-part-percent {\n font-size: 24px;\n color: #606060;\n}"],"names":[],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - SurveyJS Dashboard library v2.0.6
2
+ * surveyjs - SurveyJS Dashboard library v2.0.8
3
3
  * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -7061,11 +7061,11 @@ var arabicStrings = {
7061
7061
  chartType_bar: "شريط",
7062
7062
  chartType_vbar: "شريط عمودي",
7063
7063
  chartType_stackedbar: "شريط مكدس",
7064
- chartType_doughnut: "Doughnut",
7065
- chartType_pie: "Pie",
7066
- chartType_scatter: "Scatter",
7067
- chartType_gauge: "Gauge",
7068
- chartType_bullet: "Bullet",
7064
+ chartType_doughnut: "مخطط حلقي",
7065
+ chartType_pie: "مخطط دائري",
7066
+ chartType_scatter: "مخطط التشتت",
7067
+ chartType_gauge: "مخطط القياس",
7068
+ chartType_bullet: "مخطط نقطي",
7069
7069
  hideButton: "اخفاء",
7070
7070
  makePrivateButton: "أجعل خاص",
7071
7071
  makePublicButton: "أجعل عام",
@@ -10523,6 +10523,8 @@ __webpack_require__.r(__webpack_exports__);
10523
10523
  /* harmony export */ });
10524
10524
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ "survey-core");
10525
10525
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(survey_core__WEBPACK_IMPORTED_MODULE_0__);
10526
+ /* harmony import */ var _localizationManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../localizationManager */ "./src/localizationManager.ts");
10527
+
10526
10528
 
10527
10529
  var PlotlySetup = /** @class */ (function () {
10528
10530
  function PlotlySetup() {
@@ -10708,6 +10710,16 @@ var PlotlySetup = /** @class */ (function () {
10708
10710
  });
10709
10711
  });
10710
10712
  }
10713
+ if (["ar", "fa"].indexOf(_localizationManager__WEBPACK_IMPORTED_MODULE_1__.localization.currentLocale) !== -1) {
10714
+ layout.xaxis.autorange = "reversed";
10715
+ layout.yaxis.side = "right";
10716
+ layout.legend = {
10717
+ x: 0,
10718
+ y: 1,
10719
+ xanchor: "left",
10720
+ yanchor: "top"
10721
+ };
10722
+ }
10711
10723
  return { traces: traces, layout: layout, hasSeries: hasSeries };
10712
10724
  };
10713
10725
  PlotlySetup.setupVBar = function (model, answersData) {
@@ -12343,7 +12355,7 @@ __webpack_require__.r(__webpack_exports__);
12343
12355
  /**
12344
12356
  * An object with methods used to register and unregister visualizers for individual question types.
12345
12357
  *
12346
- * [View Demo](https://surveyjs.io/dashboard/examples/visualize-answers-from-text-entry-fields-with-charts/ (linkStyle))
12358
+ * [View Demo](https://surveyjs.io/dashboard/examples/custom-survey-data-visualizer/ (linkStyle))
12347
12359
  */
12348
12360
  var VisualizationManager = /** @class */ (function () {
12349
12361
  function VisualizationManager() {
@@ -12351,7 +12363,7 @@ var VisualizationManager = /** @class */ (function () {
12351
12363
  /**
12352
12364
  * Registers a visualizer for a specified question type.
12353
12365
  *
12354
- * [View Demo](https://surveyjs.io/dashboard/examples/visualize-answers-from-text-entry-fields-with-charts/ (linkStyle))
12366
+ * [View Demo](https://surveyjs.io/dashboard/examples/custom-survey-data-visualizer/ (linkStyle))
12355
12367
  * @param questionType A question [type](https://surveyjs.io/form-library/documentation/api-reference/question#getType).
12356
12368
  * @param constructor A function that returns a visualizer constructor to register.
12357
12369
  * @param index A zero-based index that specifies the visualizer's position in the visualizer list for the specified question type. Pass `0` to insert the visualizer at the beginning of the list and use it by default. If `index` is not specified, the visualizer is added to the end of the list.
@@ -13305,6 +13317,8 @@ var VisualizationPanel = /** @class */ (function (_super) {
13305
13317
  Object.defineProperty(VisualizationPanel.prototype, "state", {
13306
13318
  /**
13307
13319
  * The state of `VisualizationPanel`. Includes information about the visualized elements and current locale.
13320
+ *
13321
+ * [View Demo](https://surveyjs.io/dashboard/examples/save-dashboard-state-to-local-storage/ (linkStyle))
13308
13322
  * @see onStateChanged
13309
13323
  */
13310
13324
  get: function () {
@@ -13609,7 +13623,7 @@ var VisualizerBase = /** @class */ (function () {
13609
13623
  * - `state`: `any`\
13610
13624
  * A new state of the visualizer. Includes information about the visualized elements and current locale.
13611
13625
  *
13612
- * [View Demo](/dashboard/examples/save-dashboard-state-to-local-storage/ (linkStyle))
13626
+ * [View Demo](https://surveyjs.io/dashboard/examples/save-dashboard-state-to-local-storage/ (linkStyle))
13613
13627
  * @see getState
13614
13628
  * @see setState
13615
13629
  */
@@ -14194,6 +14208,8 @@ var VisualizerBase = /** @class */ (function () {
14194
14208
  /**
14195
14209
  * Sets the visualizer's state.
14196
14210
  *
14211
+ * [View Demo](https://surveyjs.io/dashboard/examples/save-dashboard-state-to-local-storage/ (linkStyle))
14212
+ *
14197
14213
  * > This method is overriden in classes descendant from `VisualizerBase`.
14198
14214
  * @see getState
14199
14215
  * @see onStateChanged
@@ -14207,6 +14223,8 @@ var VisualizerBase = /** @class */ (function () {
14207
14223
  * If you want to inherit the locale from a visualized survey, assign a [`SurveyModel`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model) instance to the [`survey`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#survey) property of the `IVisualizationPanelOptions` object in the [`VisualizationPanel`](https://surveyjs.io/dashboard/documentation/api-reference/visualizationpanel) constructor.
14208
14224
  *
14209
14225
  * If the survey is [translated into more than one language](https://surveyjs.io/form-library/examples/survey-localization/), the toolbar displays a language selection drop-down menu.
14226
+ *
14227
+ * [View Demo](https://surveyjs.io/dashboard/examples/localize-survey-data-dashboard-ui/ (linkStyle))
14210
14228
  * @see onLocaleChanged
14211
14229
  */
14212
14230
  get: function () {