survey-core 2.3.1 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm/i18n/arabic.mjs +1 -1
- package/fesm/i18n/basque.mjs +1 -1
- package/fesm/i18n/bulgarian.mjs +1 -1
- package/fesm/i18n/burmese.mjs +1 -1
- package/fesm/i18n/catalan.mjs +1 -1
- package/fesm/i18n/croatian.mjs +1 -1
- package/fesm/i18n/czech.mjs +1 -1
- package/fesm/i18n/danish.mjs +1 -1
- package/fesm/i18n/dutch.mjs +1 -1
- package/fesm/i18n/english.mjs +1 -1
- package/fesm/i18n/estonian.mjs +1 -1
- package/fesm/i18n/finnish.mjs +1 -1
- package/fesm/i18n/french.mjs +1 -1
- package/fesm/i18n/georgian.mjs +1 -1
- package/fesm/i18n/german.mjs +1 -1
- package/fesm/i18n/greek.mjs +1 -1
- package/fesm/i18n/haitian-creole.mjs +1 -1
- package/fesm/i18n/hebrew.mjs +1 -1
- package/fesm/i18n/hindi.mjs +1 -1
- package/fesm/i18n/hungarian.mjs +1 -1
- package/fesm/i18n/icelandic.mjs +1 -1
- package/fesm/i18n/index.mjs +1 -1
- package/fesm/i18n/indonesian.mjs +1 -1
- package/fesm/i18n/italian.mjs +1 -1
- package/fesm/i18n/japanese.mjs +1 -1
- package/fesm/i18n/kazakh.mjs +1 -1
- package/fesm/i18n/korean.mjs +1 -1
- package/fesm/i18n/latvian.mjs +1 -1
- package/fesm/i18n/lithuanian.mjs +1 -1
- package/fesm/i18n/macedonian.mjs +1 -1
- package/fesm/i18n/malay.mjs +1 -1
- package/fesm/i18n/nl-BE.mjs +1 -1
- package/fesm/i18n/norwegian.mjs +1 -1
- package/fesm/i18n/persian.mjs +1 -1
- package/fesm/i18n/philippines.mjs +1 -1
- package/fesm/i18n/polish.mjs +1 -1
- package/fesm/i18n/portuguese-br.mjs +1 -1
- package/fesm/i18n/portuguese.mjs +1 -1
- package/fesm/i18n/romanian.mjs +1 -1
- package/fesm/i18n/russian.mjs +1 -1
- package/fesm/i18n/serbian.mjs +1 -1
- package/fesm/i18n/simplified-chinese.mjs +1 -1
- package/fesm/i18n/slovak.mjs +1 -1
- package/fesm/i18n/slovenian.mjs +1 -1
- package/fesm/i18n/spanish.mjs +1 -1
- package/fesm/i18n/swahili.mjs +1 -1
- package/fesm/i18n/swedish.mjs +1 -1
- package/fesm/i18n/tajik.mjs +1 -1
- package/fesm/i18n/telugu.mjs +1 -1
- package/fesm/i18n/thai.mjs +1 -1
- package/fesm/i18n/traditional-chinese.mjs +1 -1
- package/fesm/i18n/turkish.mjs +1 -1
- package/fesm/i18n/ukrainian.mjs +1 -1
- package/fesm/i18n/urdu.mjs +1 -1
- package/fesm/i18n/vietnamese.mjs +1 -1
- package/fesm/i18n/welsh.mjs +1 -1
- package/fesm/icons/iconsV1.mjs +1 -1
- package/fesm/icons/iconsV2.mjs +1 -1
- package/fesm/survey-core.mjs +104 -49
- package/fesm/survey-core.mjs.map +1 -1
- package/fesm/survey.i18n.mjs +1 -1
- package/fesm/themes/index.mjs +1 -1
- package/i18n/arabic.js +1 -1
- package/i18n/arabic.min.js.LICENSE.txt +1 -1
- package/i18n/basque.js +1 -1
- package/i18n/basque.min.js.LICENSE.txt +1 -1
- package/i18n/bulgarian.js +1 -1
- package/i18n/bulgarian.min.js.LICENSE.txt +1 -1
- package/i18n/burmese.js +1 -1
- package/i18n/burmese.min.js.LICENSE.txt +1 -1
- package/i18n/catalan.js +1 -1
- package/i18n/catalan.min.js.LICENSE.txt +1 -1
- package/i18n/croatian.js +1 -1
- package/i18n/croatian.min.js.LICENSE.txt +1 -1
- package/i18n/czech.js +1 -1
- package/i18n/czech.min.js.LICENSE.txt +1 -1
- package/i18n/danish.js +1 -1
- package/i18n/danish.min.js.LICENSE.txt +1 -1
- package/i18n/dutch.js +1 -1
- package/i18n/dutch.min.js.LICENSE.txt +1 -1
- package/i18n/english.js +1 -1
- package/i18n/english.min.js.LICENSE.txt +1 -1
- package/i18n/estonian.js +1 -1
- package/i18n/estonian.min.js.LICENSE.txt +1 -1
- package/i18n/finnish.js +1 -1
- package/i18n/finnish.min.js.LICENSE.txt +1 -1
- package/i18n/french.js +1 -1
- package/i18n/french.min.js.LICENSE.txt +1 -1
- package/i18n/georgian.js +1 -1
- package/i18n/georgian.min.js.LICENSE.txt +1 -1
- package/i18n/german.js +1 -1
- package/i18n/german.min.js.LICENSE.txt +1 -1
- package/i18n/greek.js +1 -1
- package/i18n/greek.min.js.LICENSE.txt +1 -1
- package/i18n/haitian-creole.js +1 -1
- package/i18n/haitian-creole.min.js.LICENSE.txt +1 -1
- package/i18n/hebrew.js +1 -1
- package/i18n/hebrew.min.js.LICENSE.txt +1 -1
- package/i18n/hindi.js +1 -1
- package/i18n/hindi.min.js.LICENSE.txt +1 -1
- package/i18n/hungarian.js +1 -1
- package/i18n/hungarian.min.js.LICENSE.txt +1 -1
- package/i18n/icelandic.js +1 -1
- package/i18n/icelandic.min.js.LICENSE.txt +1 -1
- package/i18n/index.js +1 -1
- package/i18n/index.min.js.LICENSE.txt +1 -1
- package/i18n/indonesian.js +1 -1
- package/i18n/indonesian.min.js.LICENSE.txt +1 -1
- package/i18n/italian.js +1 -1
- package/i18n/italian.min.js.LICENSE.txt +1 -1
- package/i18n/japanese.js +1 -1
- package/i18n/japanese.min.js.LICENSE.txt +1 -1
- package/i18n/kazakh.js +1 -1
- package/i18n/kazakh.min.js.LICENSE.txt +1 -1
- package/i18n/korean.js +1 -1
- package/i18n/korean.min.js.LICENSE.txt +1 -1
- package/i18n/latvian.js +1 -1
- package/i18n/latvian.min.js.LICENSE.txt +1 -1
- package/i18n/lithuanian.js +1 -1
- package/i18n/lithuanian.min.js.LICENSE.txt +1 -1
- package/i18n/macedonian.js +1 -1
- package/i18n/macedonian.min.js.LICENSE.txt +1 -1
- package/i18n/malay.js +1 -1
- package/i18n/malay.min.js.LICENSE.txt +1 -1
- package/i18n/nl-BE.js +1 -1
- package/i18n/nl-BE.min.js.LICENSE.txt +1 -1
- package/i18n/norwegian.js +1 -1
- package/i18n/norwegian.min.js.LICENSE.txt +1 -1
- package/i18n/persian.js +1 -1
- package/i18n/persian.min.js.LICENSE.txt +1 -1
- package/i18n/philippines.js +1 -1
- package/i18n/philippines.min.js.LICENSE.txt +1 -1
- package/i18n/polish.js +1 -1
- package/i18n/polish.min.js.LICENSE.txt +1 -1
- package/i18n/portuguese-br.js +1 -1
- package/i18n/portuguese-br.min.js.LICENSE.txt +1 -1
- package/i18n/portuguese.js +1 -1
- package/i18n/portuguese.min.js.LICENSE.txt +1 -1
- package/i18n/romanian.js +1 -1
- package/i18n/romanian.min.js.LICENSE.txt +1 -1
- package/i18n/russian.js +1 -1
- package/i18n/russian.min.js.LICENSE.txt +1 -1
- package/i18n/serbian.js +1 -1
- package/i18n/serbian.min.js.LICENSE.txt +1 -1
- package/i18n/simplified-chinese.js +1 -1
- package/i18n/simplified-chinese.min.js.LICENSE.txt +1 -1
- package/i18n/slovak.js +1 -1
- package/i18n/slovak.min.js.LICENSE.txt +1 -1
- package/i18n/slovenian.js +1 -1
- package/i18n/slovenian.min.js.LICENSE.txt +1 -1
- package/i18n/spanish.js +1 -1
- package/i18n/spanish.min.js.LICENSE.txt +1 -1
- package/i18n/swahili.js +1 -1
- package/i18n/swahili.min.js.LICENSE.txt +1 -1
- package/i18n/swedish.js +1 -1
- package/i18n/swedish.min.js.LICENSE.txt +1 -1
- package/i18n/tajik.js +1 -1
- package/i18n/tajik.min.js.LICENSE.txt +1 -1
- package/i18n/telugu.js +1 -1
- package/i18n/telugu.min.js.LICENSE.txt +1 -1
- package/i18n/thai.js +1 -1
- package/i18n/thai.min.js.LICENSE.txt +1 -1
- package/i18n/traditional-chinese.js +1 -1
- package/i18n/traditional-chinese.min.js.LICENSE.txt +1 -1
- package/i18n/turkish.js +1 -1
- package/i18n/turkish.min.js.LICENSE.txt +1 -1
- package/i18n/ukrainian.js +1 -1
- package/i18n/ukrainian.min.js.LICENSE.txt +1 -1
- package/i18n/urdu.js +1 -1
- package/i18n/urdu.min.js.LICENSE.txt +1 -1
- package/i18n/vietnamese.js +1 -1
- package/i18n/vietnamese.min.js.LICENSE.txt +1 -1
- package/i18n/welsh.js +1 -1
- package/i18n/welsh.min.js.LICENSE.txt +1 -1
- package/icons/iconsV1.js +1 -1
- package/icons/iconsV1.min.js.LICENSE.txt +1 -1
- package/icons/iconsV2.js +1 -1
- package/icons/iconsV2.min.js.LICENSE.txt +1 -1
- package/package.json +1 -1
- package/survey-core.css +1 -1
- package/survey-core.fontless.css +1 -1
- package/survey-core.fontless.min.css +1 -1
- package/survey-core.min.css +1 -1
- package/survey.core.js +106 -54
- package/survey.core.js.map +1 -1
- package/survey.core.min.js +1 -1
- package/survey.core.min.js.LICENSE.txt +1 -1
- package/survey.i18n.js +1 -1
- package/survey.i18n.min.js.LICENSE.txt +1 -1
- package/themes/borderless-dark-panelless.js +1 -1
- package/themes/borderless-dark-panelless.min.js.LICENSE.txt +1 -1
- package/themes/borderless-dark.js +1 -1
- package/themes/borderless-dark.min.js.LICENSE.txt +1 -1
- package/themes/borderless-light-panelless.js +1 -1
- package/themes/borderless-light-panelless.min.js.LICENSE.txt +1 -1
- package/themes/borderless-light.js +1 -1
- package/themes/borderless-light.min.js.LICENSE.txt +1 -1
- package/themes/contrast-dark-panelless.js +1 -1
- package/themes/contrast-dark-panelless.min.js.LICENSE.txt +1 -1
- package/themes/contrast-dark.js +1 -1
- package/themes/contrast-dark.min.js.LICENSE.txt +1 -1
- package/themes/contrast-light-panelless.js +1 -1
- package/themes/contrast-light-panelless.min.js.LICENSE.txt +1 -1
- package/themes/contrast-light.js +1 -1
- package/themes/contrast-light.min.js.LICENSE.txt +1 -1
- package/themes/default-dark-panelless.js +1 -1
- package/themes/default-dark-panelless.min.js.LICENSE.txt +1 -1
- package/themes/default-dark.js +1 -1
- package/themes/default-dark.min.js.LICENSE.txt +1 -1
- package/themes/default-light-panelless.js +1 -1
- package/themes/default-light-panelless.min.js.LICENSE.txt +1 -1
- package/themes/default-light.js +1 -1
- package/themes/default-light.min.js.LICENSE.txt +1 -1
- package/themes/doubleborder-dark-panelless.js +1 -1
- package/themes/doubleborder-dark-panelless.min.js.LICENSE.txt +1 -1
- package/themes/doubleborder-dark.js +1 -1
- package/themes/doubleborder-dark.min.js.LICENSE.txt +1 -1
- package/themes/doubleborder-light-panelles.js +1 -1
- package/themes/doubleborder-light-panelles.min.js.LICENSE.txt +1 -1
- package/themes/doubleborder-light.js +1 -1
- package/themes/doubleborder-light.min.js.LICENSE.txt +1 -1
- package/themes/flat-dark-panelless.js +1 -1
- package/themes/flat-dark-panelless.min.js.LICENSE.txt +1 -1
- package/themes/flat-dark.js +1 -1
- package/themes/flat-dark.min.js.LICENSE.txt +1 -1
- package/themes/flat-light-panelless.js +1 -1
- package/themes/flat-light-panelless.min.js.LICENSE.txt +1 -1
- package/themes/flat-light.js +1 -1
- package/themes/flat-light.min.js.LICENSE.txt +1 -1
- package/themes/index.js +1 -1
- package/themes/index.min.js.LICENSE.txt +1 -1
- package/themes/layered-dark-panelless.js +1 -1
- package/themes/layered-dark-panelless.min.js.LICENSE.txt +1 -1
- package/themes/layered-dark.js +1 -1
- package/themes/layered-dark.min.js.LICENSE.txt +1 -1
- package/themes/layered-light-panelless.js +1 -1
- package/themes/layered-light-panelless.min.js.LICENSE.txt +1 -1
- package/themes/layered-light.js +1 -1
- package/themes/layered-light.min.js.LICENSE.txt +1 -1
- package/themes/plain-dark-panelless.js +1 -1
- package/themes/plain-dark-panelless.min.js.LICENSE.txt +1 -1
- package/themes/plain-dark.js +1 -1
- package/themes/plain-dark.min.js.LICENSE.txt +1 -1
- package/themes/plain-light-panelless.js +1 -1
- package/themes/plain-light-panelless.min.js.LICENSE.txt +1 -1
- package/themes/plain-light.js +1 -1
- package/themes/plain-light.min.js.LICENSE.txt +1 -1
- package/themes/sharp-dark-panelless.js +1 -1
- package/themes/sharp-dark-panelless.min.js.LICENSE.txt +1 -1
- package/themes/sharp-dark.js +1 -1
- package/themes/sharp-dark.min.js.LICENSE.txt +1 -1
- package/themes/sharp-light-panelless.js +1 -1
- package/themes/sharp-light-panelless.min.js.LICENSE.txt +1 -1
- package/themes/sharp-light.js +1 -1
- package/themes/sharp-light.min.js.LICENSE.txt +1 -1
- package/themes/solid-dark-panelless.js +1 -1
- package/themes/solid-dark-panelless.min.js.LICENSE.txt +1 -1
- package/themes/solid-dark.js +1 -1
- package/themes/solid-dark.min.js.LICENSE.txt +1 -1
- package/themes/solid-light-panelless.js +1 -1
- package/themes/solid-light-panelless.min.js.LICENSE.txt +1 -1
- package/themes/solid-light.js +1 -1
- package/themes/solid-light.min.js.LICENSE.txt +1 -1
- package/themes/three-dimensional-dark-panelless.js +1 -1
- package/themes/three-dimensional-dark-panelless.min.js.LICENSE.txt +1 -1
- package/themes/three-dimensional-dark.js +1 -1
- package/themes/three-dimensional-dark.min.js.LICENSE.txt +1 -1
- package/themes/three-dimensional-light-panelless.js +1 -1
- package/themes/three-dimensional-light-panelless.min.js.LICENSE.txt +1 -1
- package/themes/three-dimensional-light.js +1 -1
- package/themes/three-dimensional-light.min.js.LICENSE.txt +1 -1
- package/typings/src/dropdownMultiSelectListModel.d.ts +0 -1
- package/typings/src/list.d.ts +2 -0
- package/typings/src/panel.d.ts +2 -0
- package/typings/src/question.d.ts +1 -0
- package/typings/src/question_baseselect.d.ts +1 -0
- package/typings/src/question_boolean.d.ts +0 -3
- package/typings/src/question_paneldynamic.d.ts +1 -0
- package/typings/src/survey.d.ts +1 -0
package/fesm/survey-core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* surveyjs - Survey JavaScript library v2.3.
|
|
2
|
+
* surveyjs - Survey JavaScript library v2.3.2
|
|
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
|
*/
|
|
@@ -9337,6 +9337,8 @@ class ListModel extends ActionContainer {
|
|
|
9337
9337
|
isItemVisible(item) {
|
|
9338
9338
|
if (item.id === this.loadingIndicator.id)
|
|
9339
9339
|
return item.visible;
|
|
9340
|
+
if (this.disableSearch)
|
|
9341
|
+
return item.visible;
|
|
9340
9342
|
return item.visible && this.hasText(item, this.filterString);
|
|
9341
9343
|
}
|
|
9342
9344
|
getRenderedActions() {
|
|
@@ -9573,10 +9575,7 @@ class ListModel extends ActionContainer {
|
|
|
9573
9575
|
}
|
|
9574
9576
|
onPointerDown(event, item) { }
|
|
9575
9577
|
refresh() {
|
|
9576
|
-
if (this.filterString
|
|
9577
|
-
this.filterString = "";
|
|
9578
|
-
}
|
|
9579
|
-
else {
|
|
9578
|
+
if (this.filterString == "") {
|
|
9580
9579
|
this.raiseUpdate({ needUpdateIsEmpty: true });
|
|
9581
9580
|
}
|
|
9582
9581
|
this.resetFocusedItem();
|
|
@@ -9739,6 +9738,9 @@ __decorate([
|
|
|
9739
9738
|
__decorate([
|
|
9740
9739
|
property()
|
|
9741
9740
|
], ListModel.prototype, "listAriaLabel", void 0);
|
|
9741
|
+
__decorate([
|
|
9742
|
+
property({ defaultValue: false })
|
|
9743
|
+
], ListModel.prototype, "disableSearch", void 0);
|
|
9742
9744
|
|
|
9743
9745
|
class PopupModel extends Base {
|
|
9744
9746
|
refreshInnerModel() {
|
|
@@ -9967,6 +9969,11 @@ function createPopupModelWithListModel(listOptions, popupOptions) {
|
|
|
9967
9969
|
_popupOptions.onShow();
|
|
9968
9970
|
listModel.scrollToSelectedItem();
|
|
9969
9971
|
};
|
|
9972
|
+
popupModel.onHide = () => {
|
|
9973
|
+
if (!!_popupOptions.onHide)
|
|
9974
|
+
_popupOptions.onHide();
|
|
9975
|
+
listModel.filterString = "";
|
|
9976
|
+
};
|
|
9970
9977
|
return popupModel;
|
|
9971
9978
|
}
|
|
9972
9979
|
function getActionDropdownButtonTarget(container) {
|
|
@@ -17639,6 +17646,9 @@ class Question extends SurveyElement {
|
|
|
17639
17646
|
set value(newValue) {
|
|
17640
17647
|
this.setNewValue(newValue);
|
|
17641
17648
|
}
|
|
17649
|
+
getStructuredValue(level = -1) {
|
|
17650
|
+
return this.value;
|
|
17651
|
+
}
|
|
17642
17652
|
get hasFilteredValue() { return false; }
|
|
17643
17653
|
getFilteredValue(isUnwrapped) { return this.value; }
|
|
17644
17654
|
getFilteredName() { return this.getValueName(); }
|
|
@@ -19679,8 +19689,10 @@ class CalculatedValue extends Base {
|
|
|
19679
19689
|
}
|
|
19680
19690
|
}
|
|
19681
19691
|
ensureExpression() {
|
|
19682
|
-
if (!!this.expressionRunner)
|
|
19692
|
+
if (!!this.expressionRunner) {
|
|
19693
|
+
this.expressionRunner.expression = this.expression;
|
|
19683
19694
|
return;
|
|
19695
|
+
}
|
|
19684
19696
|
this.expressionRunner = new ExpressionRunner(this.expression);
|
|
19685
19697
|
this.expressionRunner.onRunComplete = newValue => {
|
|
19686
19698
|
if (!Helpers.isTwoValueEquals(newValue, this.value, false, true, false)) {
|
|
@@ -20538,7 +20550,6 @@ class QuestionMatrixBaseModel extends Question {
|
|
|
20538
20550
|
super(name);
|
|
20539
20551
|
this.generatedVisibleRows = null;
|
|
20540
20552
|
this.generatedTotalRow = null;
|
|
20541
|
-
this.filteredRows = null;
|
|
20542
20553
|
this.columns = this.createColumnValues();
|
|
20543
20554
|
this.rows = this.createItemValues("rows");
|
|
20544
20555
|
}
|
|
@@ -20717,6 +20728,9 @@ class QuestionMatrixBaseModel extends Question {
|
|
|
20717
20728
|
ItemValue.runEnabledConditionsForItems(this.rows, undefined, properties);
|
|
20718
20729
|
if (this.filteredRows.length === this.rows.length) {
|
|
20719
20730
|
this.filteredRows = null;
|
|
20731
|
+
if (!!this.generatedVisibleRows && this.generatedVisibleRows.length !== this.rows.length) {
|
|
20732
|
+
this.generatedVisibleRows = null;
|
|
20733
|
+
}
|
|
20720
20734
|
}
|
|
20721
20735
|
return hasChanged;
|
|
20722
20736
|
}
|
|
@@ -21817,7 +21831,9 @@ class QuestionCompositeModel extends QuestionCustomModelBase {
|
|
|
21817
21831
|
json.createElements(res, this);
|
|
21818
21832
|
}
|
|
21819
21833
|
this.initElement(res);
|
|
21834
|
+
this.setIsContentElement(res);
|
|
21820
21835
|
res.readOnly = this.isReadOnly;
|
|
21836
|
+
res.onGetNoCallback = (no) => { return this.no; };
|
|
21821
21837
|
res.questions.forEach(q => {
|
|
21822
21838
|
q.setParentQuestion(this);
|
|
21823
21839
|
q.onUpdateCssClassesCallback = (css) => { this.onUpdateQuestionCssClasses(q, css); };
|
|
@@ -32140,7 +32156,7 @@ class PanelModelBase extends SurveyElement {
|
|
|
32140
32156
|
const q = el;
|
|
32141
32157
|
if (!q.isEmpty()) {
|
|
32142
32158
|
var valueName = q.getValueName();
|
|
32143
|
-
data[valueName] = q.
|
|
32159
|
+
data[valueName] = q.getStructuredValue(level - 1);
|
|
32144
32160
|
if (!!this.data) {
|
|
32145
32161
|
var comment = this.data.getComment(valueName);
|
|
32146
32162
|
if (!!comment) {
|
|
@@ -32702,6 +32718,8 @@ class PanelModelBase extends SurveyElement {
|
|
|
32702
32718
|
return res;
|
|
32703
32719
|
}
|
|
32704
32720
|
childVisibilityChanged() {
|
|
32721
|
+
if (this.isRunningConditions)
|
|
32722
|
+
return;
|
|
32705
32723
|
var newIsVisibleValue = this.getIsPageVisible(null);
|
|
32706
32724
|
var oldIsVisibleValue = this.getPropertyValue("isVisible", true);
|
|
32707
32725
|
if (newIsVisibleValue !== oldIsVisibleValue) {
|
|
@@ -33352,10 +33370,17 @@ class PanelModelBase extends SurveyElement {
|
|
|
33352
33370
|
if (this.isDesignMode || this.isLoadingFromJson)
|
|
33353
33371
|
return;
|
|
33354
33372
|
var elements = this.elements.slice();
|
|
33373
|
+
const prevContentVisibility = this.getIsPageVisible();
|
|
33374
|
+
this.isRunningConditions = true;
|
|
33355
33375
|
for (var i = 0; i < elements.length; i++) {
|
|
33356
33376
|
elements[i].runCondition(properties);
|
|
33357
33377
|
}
|
|
33358
33378
|
this.runConditionCore(properties);
|
|
33379
|
+
const newContentVisibility = this.getIsPageVisible();
|
|
33380
|
+
this.isRunningConditions = false;
|
|
33381
|
+
if (prevContentVisibility !== newContentVisibility) {
|
|
33382
|
+
this.childVisibilityChanged();
|
|
33383
|
+
}
|
|
33359
33384
|
}
|
|
33360
33385
|
onAnyValueChanged(name, questionName) {
|
|
33361
33386
|
var els = this.elements;
|
|
@@ -33608,6 +33633,9 @@ class PanelModel extends PanelModelBase {
|
|
|
33608
33633
|
}
|
|
33609
33634
|
calcNo() {
|
|
33610
33635
|
let no = Helpers.getNumberByIndex(this.visibleIndex, this.getStartIndex());
|
|
33636
|
+
if (this.onGetNoCallback) {
|
|
33637
|
+
no = this.onGetNoCallback(no);
|
|
33638
|
+
}
|
|
33611
33639
|
if (!!this.parent) {
|
|
33612
33640
|
no = this.parent.addNoFromChild(no);
|
|
33613
33641
|
}
|
|
@@ -37815,7 +37843,7 @@ class SurveyModel extends SurveyElementCore {
|
|
|
37815
37843
|
const opt = options || { includePages: false, includePanels: false };
|
|
37816
37844
|
if (!opt.includePages && !opt.includePanels)
|
|
37817
37845
|
return this.data;
|
|
37818
|
-
return this.getStructuredData(!!opt.includePages, !opt.includePanels ? (opt.includePages ? 1 : 0) :
|
|
37846
|
+
return this.getStructuredData(!!opt.includePages, !opt.includePanels ? (opt.includePages ? 1 : 0) : 100);
|
|
37819
37847
|
}
|
|
37820
37848
|
getStructuredData(includePages = true, level = -1) {
|
|
37821
37849
|
if (level === 0)
|
|
@@ -40898,6 +40926,9 @@ class SurveyModel extends SurveyElementCore {
|
|
|
40898
40926
|
this.onValueChanging.fire(this, options);
|
|
40899
40927
|
return options.value;
|
|
40900
40928
|
}
|
|
40929
|
+
getLocNotification(loc, value, oldValue) {
|
|
40930
|
+
return loc || Helpers.isTwoValueEquals(value, oldValue, false, true, false);
|
|
40931
|
+
}
|
|
40901
40932
|
updateQuestionValue(valueName, newValue) {
|
|
40902
40933
|
if (this.isLoadingFromJson)
|
|
40903
40934
|
return;
|
|
@@ -41576,6 +41607,7 @@ class SurveyModel extends SurveyElementCore {
|
|
|
41576
41607
|
newValue = this.getUnbindValue(newValue);
|
|
41577
41608
|
this.setDataValueCore(this.valuesHash, name, newValue);
|
|
41578
41609
|
}
|
|
41610
|
+
locNotification = this.getLocNotification(locNotification, newValue, oldValue);
|
|
41579
41611
|
this.updateOnSetValue(name, newValue, oldValue, locNotification, allowNotifyValueChanged, questionName);
|
|
41580
41612
|
}
|
|
41581
41613
|
isValueEmpyOnSetValue(name, val) {
|
|
@@ -41732,6 +41764,7 @@ class SurveyModel extends SurveyElementCore {
|
|
|
41732
41764
|
return;
|
|
41733
41765
|
const commentName = name + this.commentSuffix;
|
|
41734
41766
|
newValue = this.questionOnValueChanging(commentName, newValue, name);
|
|
41767
|
+
locNotification = this.getLocNotification(locNotification, newValue, this.getComment(name));
|
|
41735
41768
|
if (this.isValueEmpty(newValue)) {
|
|
41736
41769
|
this.deleteDataValueCore(this.valuesHash, commentName);
|
|
41737
41770
|
}
|
|
@@ -44225,12 +44258,22 @@ class QuestionSelectBase extends Question {
|
|
|
44225
44258
|
valueFromData(val) {
|
|
44226
44259
|
let item = this.getItemByValue(val, this.activeChoices);
|
|
44227
44260
|
if (!!item) {
|
|
44228
|
-
|
|
44229
|
-
return { value: item.value, [this.commentPropertyValue]: val[this.commentPropertyValue] };
|
|
44230
|
-
return item.value;
|
|
44261
|
+
return this.getChoiceValue(item, val, false);
|
|
44231
44262
|
}
|
|
44232
44263
|
return super.valueFromData(val);
|
|
44233
44264
|
}
|
|
44265
|
+
getChoiceValue(choice, val, objOnComment) {
|
|
44266
|
+
const isObj = typeof val === "object";
|
|
44267
|
+
const comment = isObj ? val[this.commentPropertyValue] : "";
|
|
44268
|
+
const hasComment = !Helpers.isValueEmpty(comment);
|
|
44269
|
+
if (isObj && choice.showCommentArea && (objOnComment || hasComment)) {
|
|
44270
|
+
const res = { value: choice.value };
|
|
44271
|
+
if (hasComment)
|
|
44272
|
+
res[this.commentPropertyValue] = comment;
|
|
44273
|
+
return res;
|
|
44274
|
+
}
|
|
44275
|
+
return choice.value;
|
|
44276
|
+
}
|
|
44234
44277
|
getItemByValue(val, choices) {
|
|
44235
44278
|
const chs = choices || this.visibleChoices;
|
|
44236
44279
|
if (!!val && typeof val === "object" && !Helpers.isValueEmpty(val.value)) {
|
|
@@ -46105,7 +46148,6 @@ class DropdownListModel extends Base {
|
|
|
46105
46148
|
}, 1);
|
|
46106
46149
|
}
|
|
46107
46150
|
onHidePopup() {
|
|
46108
|
-
this.resetFilterString();
|
|
46109
46151
|
this.question.suggestedItem = null;
|
|
46110
46152
|
if (this.choicesLazyLoadEnabled) {
|
|
46111
46153
|
this.resetItemsSettings();
|
|
@@ -46157,17 +46199,17 @@ class DropdownListModel extends Base {
|
|
|
46157
46199
|
return res;
|
|
46158
46200
|
}
|
|
46159
46201
|
setQuestionValue(item) {
|
|
46202
|
+
let selectedItem = item;
|
|
46160
46203
|
if (this.allowCustomChoices && item.id === this.customItemValue.id) {
|
|
46161
46204
|
const newChoice = this.createCustomItem();
|
|
46162
|
-
|
|
46163
|
-
this.question.selectItem(newChoice);
|
|
46164
|
-
this.hintString = "";
|
|
46165
|
-
}
|
|
46205
|
+
selectedItem = newChoice;
|
|
46166
46206
|
}
|
|
46167
|
-
|
|
46168
|
-
this.
|
|
46169
|
-
|
|
46170
|
-
|
|
46207
|
+
if (!!selectedItem) {
|
|
46208
|
+
this.resetFilterString();
|
|
46209
|
+
this.question.selectItem(selectedItem);
|
|
46210
|
+
if (this.searchEnabled) {
|
|
46211
|
+
this.applyInputString(selectedItem);
|
|
46212
|
+
}
|
|
46171
46213
|
}
|
|
46172
46214
|
}
|
|
46173
46215
|
createCustomItem() {
|
|
@@ -46195,6 +46237,7 @@ class DropdownListModel extends Base {
|
|
|
46195
46237
|
}
|
|
46196
46238
|
});
|
|
46197
46239
|
model.isAllDataLoaded = !this.choicesLazyLoadEnabled;
|
|
46240
|
+
model.disableSearch = this.choicesLazyLoadEnabled;
|
|
46198
46241
|
model.actions.forEach(a => a.disableTabStop = true);
|
|
46199
46242
|
model.setOnFilterStringChangedCallback(this.listModelFilterStringChanged);
|
|
46200
46243
|
}
|
|
@@ -46206,12 +46249,13 @@ class DropdownListModel extends Base {
|
|
|
46206
46249
|
resetFilterString() {
|
|
46207
46250
|
if (!!this.filterString) {
|
|
46208
46251
|
this.filterString = undefined;
|
|
46252
|
+
this.listModel.filterString = "";
|
|
46209
46253
|
}
|
|
46254
|
+
this.inputString = null;
|
|
46255
|
+
this.hintString = "";
|
|
46210
46256
|
}
|
|
46211
46257
|
clear() {
|
|
46212
46258
|
this.customValue = undefined;
|
|
46213
|
-
this.inputString = null;
|
|
46214
|
-
this.hintString = "";
|
|
46215
46259
|
this.resetFilterString();
|
|
46216
46260
|
}
|
|
46217
46261
|
onSetFilterString() {
|
|
@@ -46471,6 +46515,8 @@ class DropdownListModel extends Base {
|
|
|
46471
46515
|
}
|
|
46472
46516
|
setChoicesLazyLoadEnabled(newValue) {
|
|
46473
46517
|
this.choicesLazyLoadEnabled = newValue;
|
|
46518
|
+
this.listModel.disableSearch = newValue;
|
|
46519
|
+
this.listModel.isAllDataLoaded = !newValue;
|
|
46474
46520
|
}
|
|
46475
46521
|
setInputPlaceholder(newValue) {
|
|
46476
46522
|
this.inputPlaceholder = newValue;
|
|
@@ -46628,8 +46674,6 @@ class DropdownListModel extends Base {
|
|
|
46628
46674
|
doKey2ClickBlur(event);
|
|
46629
46675
|
this._popupModel.hide();
|
|
46630
46676
|
this.resetFilterString();
|
|
46631
|
-
this.inputString = null;
|
|
46632
|
-
this.hintString = "";
|
|
46633
46677
|
event.stopPropagation();
|
|
46634
46678
|
}
|
|
46635
46679
|
onFocus(event) {
|
|
@@ -46642,9 +46686,6 @@ class DropdownListModel extends Base {
|
|
|
46642
46686
|
if (this.searchEnabled && !!newValue) {
|
|
46643
46687
|
this.applyInputString(newValue);
|
|
46644
46688
|
}
|
|
46645
|
-
else {
|
|
46646
|
-
this.inputString = null;
|
|
46647
|
-
}
|
|
46648
46689
|
}
|
|
46649
46690
|
dispose() {
|
|
46650
46691
|
super.dispose();
|
|
@@ -50815,7 +50856,13 @@ class QuestionCheckboxModel extends QuestionCheckboxBase {
|
|
|
50815
50856
|
const index = this.getItemValIndexByItemValue(item.value);
|
|
50816
50857
|
if (index > -1) {
|
|
50817
50858
|
const val = this.createValueCopy();
|
|
50818
|
-
val[index]
|
|
50859
|
+
const itemVal = val[index];
|
|
50860
|
+
if (newValue) {
|
|
50861
|
+
itemVal[this.commentPropertyValue] = newValue;
|
|
50862
|
+
}
|
|
50863
|
+
else {
|
|
50864
|
+
delete itemVal[this.commentPropertyValue];
|
|
50865
|
+
}
|
|
50819
50866
|
this.value = val;
|
|
50820
50867
|
}
|
|
50821
50868
|
}
|
|
@@ -51117,6 +51164,9 @@ class QuestionCheckboxModel extends QuestionCheckboxBase {
|
|
|
51117
51164
|
return -1;
|
|
51118
51165
|
}
|
|
51119
51166
|
removeNoneItemsValues(value, newValue) {
|
|
51167
|
+
if (value.length === 1 && newValue.length === 1
|
|
51168
|
+
&& this.getRealValue(value[0]) === this.getRealValue(newValue[0]))
|
|
51169
|
+
return;
|
|
51120
51170
|
const noneValues = this.getNoneItems().map(item => item.value);
|
|
51121
51171
|
if (noneValues.length > 0) {
|
|
51122
51172
|
const prevNone = this.noneIndexInArray(value, noneValues);
|
|
@@ -51285,9 +51335,9 @@ class QuestionCheckboxModel extends QuestionCheckboxBase {
|
|
|
51285
51335
|
return [super.valueFromData(val)];
|
|
51286
51336
|
let value = [];
|
|
51287
51337
|
for (let i = 0; i < val.length; i++) {
|
|
51288
|
-
|
|
51338
|
+
const choiceitem = this.getItemByValue(val[i], this.visibleChoices);
|
|
51289
51339
|
if (!!choiceitem) {
|
|
51290
|
-
value.push(choiceitem
|
|
51340
|
+
value.push(this.getChoiceValue(choiceitem, val[i], true));
|
|
51291
51341
|
}
|
|
51292
51342
|
else {
|
|
51293
51343
|
value.push(val[i]);
|
|
@@ -51301,9 +51351,13 @@ class QuestionCheckboxModel extends QuestionCheckboxBase {
|
|
|
51301
51351
|
}
|
|
51302
51352
|
convertValueFromObject(val) {
|
|
51303
51353
|
const valProp = this.getValuePropertyName();
|
|
51304
|
-
if (!valProp)
|
|
51354
|
+
if (!valProp || !Array.isArray(val))
|
|
51305
51355
|
return val;
|
|
51306
|
-
|
|
51356
|
+
const res = [];
|
|
51357
|
+
for (let i = 0; i < val.length; i++) {
|
|
51358
|
+
res.push(this.getRealValue(val[i]));
|
|
51359
|
+
}
|
|
51360
|
+
return res;
|
|
51307
51361
|
}
|
|
51308
51362
|
renderedValueFromDataCore(val) {
|
|
51309
51363
|
if (!val || !Array.isArray(val))
|
|
@@ -51556,11 +51610,6 @@ class DropdownMultiSelectListModel extends DropdownListModel {
|
|
|
51556
51610
|
res.forceShowFilter = this.question.choicesLazyLoadEnabled;
|
|
51557
51611
|
return res;
|
|
51558
51612
|
}
|
|
51559
|
-
resetFilterString() {
|
|
51560
|
-
super.resetFilterString();
|
|
51561
|
-
this.inputString = null;
|
|
51562
|
-
this.hintString = "";
|
|
51563
|
-
}
|
|
51564
51613
|
get shouldResetAfterCancel() {
|
|
51565
51614
|
return IsTouch && !this.closeOnSelect;
|
|
51566
51615
|
}
|
|
@@ -56856,16 +56905,12 @@ class QuestionBooleanModel extends Question {
|
|
|
56856
56905
|
}
|
|
56857
56906
|
this.setBooleanValue(val);
|
|
56858
56907
|
}
|
|
56859
|
-
get checkedValue() { return this.booleanValue; }
|
|
56860
|
-
set checkedValue(val) { this.booleanValue = val; }
|
|
56861
56908
|
setBooleanValue(val) {
|
|
56862
56909
|
if (this.isValueEmpty(val)) {
|
|
56863
56910
|
this.value = undefined;
|
|
56864
|
-
this.booleanValueRendered = undefined;
|
|
56865
56911
|
}
|
|
56866
56912
|
else {
|
|
56867
56913
|
this.value = val == true ? this.getValueTrue() : this.getValueFalse();
|
|
56868
|
-
this.booleanValueRendered = val;
|
|
56869
56914
|
}
|
|
56870
56915
|
}
|
|
56871
56916
|
get defaultValue() {
|
|
@@ -57088,7 +57133,7 @@ class QuestionBooleanModel extends Question {
|
|
|
57088
57133
|
if (css.radioItem) {
|
|
57089
57134
|
className = css.radioItem;
|
|
57090
57135
|
}
|
|
57091
|
-
if (css.radioItemChecked && value === this.
|
|
57136
|
+
if (css.radioItemChecked && value === this.value) {
|
|
57092
57137
|
className = (className ? className + " " : "") + css.radioItemChecked;
|
|
57093
57138
|
}
|
|
57094
57139
|
if (this.isDisabledStyle) {
|
|
@@ -57119,9 +57164,6 @@ class QuestionBooleanModel extends Question {
|
|
|
57119
57164
|
return "switch";
|
|
57120
57165
|
}
|
|
57121
57166
|
}
|
|
57122
|
-
__decorate([
|
|
57123
|
-
property()
|
|
57124
|
-
], QuestionBooleanModel.prototype, "booleanValueRendered", void 0);
|
|
57125
57167
|
__decorate([
|
|
57126
57168
|
property({ localizable: true })
|
|
57127
57169
|
], QuestionBooleanModel.prototype, "label", void 0);
|
|
@@ -59020,7 +59062,7 @@ class PanelDynamicItemGetterContext extends QuestionItemValueGetterContext {
|
|
|
59020
59062
|
}
|
|
59021
59063
|
const expVar = settings.expressionVariables;
|
|
59022
59064
|
const panelPrefix = expVar.panel;
|
|
59023
|
-
if (path.length > 1 && path[0].name === expVar.parentPanel.toLocaleLowerCase()) {
|
|
59065
|
+
if (path.length > 1 && path[0].name.toLocaleLowerCase() === expVar.parentPanel.toLocaleLowerCase()) {
|
|
59024
59066
|
const q = this.item.data;
|
|
59025
59067
|
if (!!q && !!q.parentQuestion && !!q.parent && !!q.parent.data) {
|
|
59026
59068
|
path[0].name = panelPrefix;
|
|
@@ -59981,6 +60023,19 @@ class QuestionPanelDynamicModel extends Question {
|
|
|
59981
60023
|
set panelsState(val) {
|
|
59982
60024
|
this.setPropertyValue("panelsState", val);
|
|
59983
60025
|
}
|
|
60026
|
+
getStructuredValue(level = -1) {
|
|
60027
|
+
if (level < 0 || this.isEmpty() || !Array.isArray(this.value))
|
|
60028
|
+
return this.value;
|
|
60029
|
+
const data = new Array();
|
|
60030
|
+
const valCount = Math.min(this.visiblePanelCount, this.value.length);
|
|
60031
|
+
for (let i = 0; i < valCount; i++) {
|
|
60032
|
+
const panel = this.visiblePanels[i];
|
|
60033
|
+
const panelData = {};
|
|
60034
|
+
panel.collectValues(panelData, level);
|
|
60035
|
+
data.push(panelData);
|
|
60036
|
+
}
|
|
60037
|
+
return data;
|
|
60038
|
+
}
|
|
59984
60039
|
setTemplatePanelSurveyImpl() {
|
|
59985
60040
|
this.template.setSurveyImpl(this.useTemplatePanel
|
|
59986
60041
|
? this.surveyImpl
|
|
@@ -65138,11 +65193,11 @@ var Version;
|
|
|
65138
65193
|
var ReleaseDate;
|
|
65139
65194
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
65140
65195
|
//@ts-ignore
|
|
65141
|
-
Version = `${"2.3.
|
|
65196
|
+
Version = `${"2.3.2"}`;
|
|
65142
65197
|
settings.version = Version;
|
|
65143
65198
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
65144
65199
|
//@ts-ignore
|
|
65145
|
-
ReleaseDate = `${"2025-08-
|
|
65200
|
+
ReleaseDate = `${"2025-08-13"}`;
|
|
65146
65201
|
function checkLibraryVersion(ver, libraryName) {
|
|
65147
65202
|
if (Version != ver) {
|
|
65148
65203
|
const str = "survey-core has version '" + Version + "' and " + libraryName
|