survey-creator-core 1.9.94 → 1.9.96

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 Creator v1.9.94
2
+ * SurveyJS Creator v1.9.96
3
3
  * (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * Github: https://github.com/surveyjs/survey-creator
5
5
  * License: https://surveyjs.io/Licenses#SurveyCreator
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * SurveyJS Creator v1.9.94
2
+ * SurveyJS Creator v1.9.96
3
3
  * (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * Github: https://github.com/surveyjs/survey-creator
5
5
  * License: https://surveyjs.io/Licenses#SurveyCreator
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * SurveyJS Creator v1.9.94
2
+ * SurveyJS Creator v1.9.96
3
3
  * (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * Github: https://github.com/surveyjs/survey-creator
5
5
  * License: https://surveyjs.io/Licenses#SurveyCreator
@@ -1133,6 +1133,7 @@ __webpack_require__(/*! ./matrix-cell.scss */ "./src/components/matrix-cell.scss
1133
1133
  var MatrixCellWrapperEditSurvey = /** @class */ (function () {
1134
1134
  function MatrixCellWrapperEditSurvey(creator, cellQuestion) {
1135
1135
  this.cellQuestion = cellQuestion;
1136
+ this.creator = creator;
1136
1137
  var questionJSON = cellQuestion.toJSON();
1137
1138
  questionJSON.type = cellQuestion.getType();
1138
1139
  this.surveyValue = creator.createSurvey({ questions: [questionJSON] }, "modal-question-editor");
@@ -1163,8 +1164,11 @@ var MatrixCellWrapperEditSurvey = /** @class */ (function () {
1163
1164
  if (!!prevCellType) {
1164
1165
  questionJSON.cellType = prevCellType;
1165
1166
  }
1167
+ if (survey_core__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isTwoValueEquals(questionJSON, columnJSON))
1168
+ return;
1166
1169
  column.fromJSON(questionJSON);
1167
1170
  matrix.onColumnCellTypeChanged(column);
1171
+ this.creator.setModified({ type: "MATRIX_CELL_EDITOR", column: column });
1168
1172
  };
1169
1173
  return MatrixCellWrapperEditSurvey;
1170
1174
  }());
@@ -9483,6 +9487,7 @@ var TestSurveyTabViewModel = /** @class */ (function (_super) {
9483
9487
  configurable: true
9484
9488
  });
9485
9489
  TestSurveyTabViewModel.prototype.updateSimulatorSurvey = function (json, theme) {
9490
+ var _this = this;
9486
9491
  var newSurvey = this.surveyProvider.createSurvey(json || {}, "test");
9487
9492
  if (this.surveyProvider.showThemeTab) {
9488
9493
  newSurvey.applyTheme(this.surveyProvider.theme);
@@ -9523,6 +9528,16 @@ var TestSurveyTabViewModel = /** @class */ (function (_super) {
9523
9528
  this.survey.onPageVisibleChanged.add(function (sender, options) {
9524
9529
  self.updatePageItem(options.page);
9525
9530
  });
9531
+ this.survey.onPopupVisibleChanged.add(function (_, options) {
9532
+ if (options.visible) {
9533
+ _this.onScrollCallback = function () {
9534
+ options.popup.toggleVisibility();
9535
+ };
9536
+ }
9537
+ else {
9538
+ _this.onScrollCallback = undefined;
9539
+ }
9540
+ });
9526
9541
  };
9527
9542
  TestSurveyTabViewModel.prototype.setJSON = function (json, currTheme) {
9528
9543
  this.json = json;
@@ -9704,6 +9719,11 @@ var TestSurveyTabViewModel = /** @class */ (function (_super) {
9704
9719
  this.nextPageAction.css = isNextEnabled ? "sv-action-bar-item--secondary" : "";
9705
9720
  this.nextPageAction.enabled = isNextEnabled;
9706
9721
  };
9722
+ TestSurveyTabViewModel.prototype.onScroll = function () {
9723
+ if (this.onScrollCallback)
9724
+ this.onScrollCallback();
9725
+ return true;
9726
+ };
9707
9727
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
9708
9728
  Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["property"])({
9709
9729
  defaultValue: false,
@@ -9835,7 +9855,7 @@ survey_core__WEBPACK_IMPORTED_MODULE_1__["ComponentCollection"].Instance.add({
9835
9855
  },
9836
9856
  });
9837
9857
  function createBoxShadow(value) {
9838
- return value.map((function (val) { return "" + (val.isInset == true ? "inset " : "") + val.x + "px " + val.y + "px " + val.blur + "px " + val.spread + "px " + val.color; })).join(", ");
9858
+ return value.map((function (val) { var _a, _b, _c, _d, _e; return "" + (val.isInset == true ? "inset " : "") + ((_a = val.x) !== null && _a !== void 0 ? _a : 0) + "px " + ((_b = val.y) !== null && _b !== void 0 ? _b : 0) + "px " + ((_c = val.blur) !== null && _c !== void 0 ? _c : 0) + "px " + ((_d = val.spread) !== null && _d !== void 0 ? _d : 0) + "px " + ((_e = val.color) !== null && _e !== void 0 ? _e : "#000000"); })).join(", ");
9839
9859
  }
9840
9860
  function parseBoxShadow(value) {
9841
9861
  return value.split(/,(?![^(]*\))/).map(function (value) {
@@ -9898,12 +9918,40 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["ComponentCollection"].Instance.add({
9898
9918
  titleLocation: "left"
9899
9919
  }
9900
9920
  ],
9921
+ onInit: function () {
9922
+ survey_core__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addProperty("colorsettings", {
9923
+ name: "choices:itemvalue[]"
9924
+ });
9925
+ },
9926
+ onLoaded: function (question) {
9927
+ syncPropertiesFromCompositeToColor(question, "titleLocation", question.titleLocation);
9928
+ syncPropertiesFromCompositeToColor(question, "choices", question.choices);
9929
+ },
9930
+ onPropertyChanged: function (question, propertyName, newValue) {
9931
+ syncPropertiesFromCompositeToColor(question, propertyName, newValue);
9932
+ },
9901
9933
  onCreated: function (question) {
9902
9934
  question.valueFromDataCallback = function (newValue) { return typeof newValue == "string" ? Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["parseColor"])(newValue) : newValue; };
9903
9935
  question.valueToDataCallback = function (newValue) { return !!newValue ? (typeof newValue == "string" ? newValue : createColor(newValue)) : ""; };
9904
9936
  question.contentPanel.questions.forEach(function (q) { return q.allowRootStyle = false; });
9905
9937
  }
9906
9938
  });
9939
+ function syncPropertiesFromCompositeToColor(question, propertyName, newValue) {
9940
+ var colorQuestion = question.contentPanel.questions[0];
9941
+ if (propertyName == "titleLocation") {
9942
+ if (newValue == "left") {
9943
+ question.titleLocation = "hidden";
9944
+ colorQuestion.title = question.title;
9945
+ colorQuestion.titleLocation = newValue;
9946
+ }
9947
+ else {
9948
+ colorQuestion.titleLocation = "hidden";
9949
+ }
9950
+ }
9951
+ if (propertyName == "choices") {
9952
+ colorQuestion.choices = newValue;
9953
+ }
9954
+ }
9907
9955
  function createColor(value) {
9908
9956
  return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["ingectAlpha"])(value.color, value.opacity / 100);
9909
9957
  }
@@ -9987,6 +10035,7 @@ __webpack_require__.r(__webpack_exports__);
9987
10035
 
9988
10036
 
9989
10037
  var DefaultFonts = [
10038
+ "Open Sans",
9990
10039
  "Arial, sans-serif",
9991
10040
  "Brush Script MT, cursive",
9992
10041
  "Courier New, monospace",
@@ -10248,7 +10297,7 @@ var TabThemePlugin = /** @class */ (function () {
10248
10297
  return (_this.creator.activeTab === "theme");
10249
10298
  }),
10250
10299
  action: function () {
10251
- _this.model.applySelectedTheme();
10300
+ _this.model.resetTheme();
10252
10301
  }
10253
10302
  });
10254
10303
  items.push(this.resetTheme);
@@ -10381,6 +10430,7 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
10381
10430
  _this.pages = new survey_core__WEBPACK_IMPORTED_MODULE_2__["ActionContainer"]();
10382
10431
  _this.themeChanges = {};
10383
10432
  _this.colorCalculator = new _utils_utils__WEBPACK_IMPORTED_MODULE_6__["ColorCalculator"]();
10433
+ _this.blockChanges = false;
10384
10434
  _this.simulator = new _simulator__WEBPACK_IMPORTED_MODULE_1__["SurveySimulatorModel"]();
10385
10435
  _this.loadTheme(_this.surveyProvider.theme);
10386
10436
  _this.themeEditorSurveyValue = _this.createThemeEditorSurvey();
@@ -10457,28 +10507,27 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
10457
10507
  enumerable: false,
10458
10508
  configurable: true
10459
10509
  });
10460
- ThemeSurveyTabViewModel.prototype.applySelectedTheme = function (saveChanges) {
10461
- if (saveChanges === void 0) { saveChanges = false; }
10510
+ ThemeSurveyTabViewModel.prototype.applySelectedTheme = function () {
10462
10511
  var newTheme = {};
10463
10512
  Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["assign"])(newTheme, Themes[this.getFullThemeName("default")], Themes[this.getFullThemeName()]);
10464
10513
  if (this.survey["isCompact"]) {
10465
10514
  Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["assign"])(newTheme, Themes[this.getFullThemeName() + "-lw"]);
10466
10515
  }
10467
- if (saveChanges) {
10468
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["assign"])(newTheme, this.themeChanges);
10469
- }
10470
- this.themeEditorSurvey.mergeData(newTheme);
10471
- this.surveyProvider.theme.cssVariables = newTheme;
10516
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["assign"])(newTheme, this.themeChanges);
10517
+ this.currentTheme.cssVariables = newTheme;
10518
+ this.loadThemeIntoPropertyGrid(this.themeEditorSurvey);
10472
10519
  this.setThemeToSurvey();
10473
10520
  };
10474
10521
  ThemeSurveyTabViewModel.prototype.loadTheme = function (theme) {
10475
10522
  this.themeName = theme["themeName"];
10476
10523
  this.themePalette = theme["themePalette"];
10477
10524
  this.themeMode = theme.isCompact ? "lightweight" : undefined;
10525
+ this.backgroundImage = theme.backgroundImage;
10526
+ this.backgroundImageFit = theme.backgroundImageFit;
10478
10527
  var fullThemeName = this.getFullThemeName();
10479
10528
  if (!Themes[fullThemeName]) {
10480
10529
  Themes[fullThemeName] = theme;
10481
- var themeSelector = this.themeEditorSurveyValue.getQuestionByName("themeName");
10530
+ var themeSelector = this.themeEditorSurvey.getQuestionByName("themeName");
10482
10531
  themeSelector.choices = themeSelector.choices.concat(new survey_core__WEBPACK_IMPORTED_MODULE_2__["ItemValue"](theme["themeName"]));
10483
10532
  }
10484
10533
  var themeVariables = {};
@@ -10545,13 +10594,17 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
10545
10594
  var fileReader = new FileReader();
10546
10595
  fileReader.onload = function (e) {
10547
10596
  var theme = JSON.parse(fileReader.result);
10548
- _this.surveyProvider.theme = theme;
10549
- _this.loadTheme(theme);
10550
- _this.loadThemeIntoPropertyGrid(_this.themeEditorSurvey);
10551
- _this.initializeColorCalculator();
10597
+ _this.setThemeFromFile(theme);
10552
10598
  };
10553
10599
  fileReader.readAsText(file);
10554
10600
  };
10601
+ ThemeSurveyTabViewModel.prototype.setThemeFromFile = function (theme) {
10602
+ this.surveyProvider.theme = theme;
10603
+ this.loadTheme(theme);
10604
+ this.loadThemeIntoPropertyGrid(this.themeEditorSurvey);
10605
+ this.initializeColorCalculator();
10606
+ this.setThemeToSurvey();
10607
+ };
10555
10608
  ThemeSurveyTabViewModel.prototype.setJSON = function (json, currTheme) {
10556
10609
  this.json = json;
10557
10610
  if (json != null) {
@@ -10605,6 +10658,10 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
10605
10658
  }
10606
10659
  this.pageListItems = pages;
10607
10660
  };
10661
+ ThemeSurveyTabViewModel.prototype.resetTheme = function () {
10662
+ this.themeChanges = {};
10663
+ this.applySelectedTheme();
10664
+ };
10608
10665
  ThemeSurveyTabViewModel.prototype.show = function () {
10609
10666
  this.showInvisibleElements = false;
10610
10667
  this.activePage = this.survey.activePage;
@@ -10733,6 +10790,11 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
10733
10790
  this.nextPageAction.enabled = isNextEnabled;
10734
10791
  };
10735
10792
  ThemeSurveyTabViewModel.prototype.initializeColorCalculator = function () {
10793
+ if (!this.currentTheme.cssVariables["--sjs-primary-backcolor"] ||
10794
+ !this.currentTheme.cssVariables["--sjs-primary-backcolor-light"] ||
10795
+ !this.currentTheme.cssVariables["--sjs-primary-backcolor-dark"]) {
10796
+ return;
10797
+ }
10736
10798
  this.colorCalculator.initialize(this.currentTheme.cssVariables["--sjs-primary-backcolor"], this.currentTheme.cssVariables["--sjs-primary-backcolor-light"], this.currentTheme.cssVariables["--sjs-primary-backcolor-dark"]);
10737
10799
  };
10738
10800
  ThemeSurveyTabViewModel.prototype.createThemeEditorSurvey = function () {
@@ -10748,29 +10810,31 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
10748
10810
  this.initializeColorCalculator();
10749
10811
  themeEditorSurvey.onValueChanged.add(function (sender, options) {
10750
10812
  var _a, _b;
10813
+ if (_this.blockChanges)
10814
+ return;
10751
10815
  _this.themeChanges[options.name] = options.value;
10752
10816
  if (["themeName", "themeMode", "themePalette"].indexOf(options.name) !== -1) {
10753
10817
  _this[options.name] = options.value;
10754
10818
  _this.initializeColorCalculator();
10755
10819
  if (options.name === "themeMode") {
10756
10820
  _this.survey["isCompact"] = options.value === "lightweight";
10757
- _this.surveyProvider.theme.isCompact = options.value === "lightweight";
10821
+ _this.currentTheme.isCompact = options.value === "lightweight";
10822
+ _this.applySelectedTheme();
10758
10823
  }
10759
10824
  else {
10760
- _this.surveyProvider.theme["themeName"] = _this.themeName;
10761
- _this.surveyProvider.theme["themePalette"] = _this.themePalette;
10825
+ _this.currentTheme["themeName"] = _this.themeName;
10826
+ _this.currentTheme["themePalette"] = _this.themePalette;
10827
+ _this.resetTheme();
10762
10828
  }
10763
- _this.applySelectedTheme(options.name === "themeMode");
10764
10829
  return;
10765
10830
  }
10766
10831
  if (["backgroundImage", "backgroundImageFit"].indexOf(options.name) !== -1) {
10767
- _this.survey[options.name] = options.value;
10768
- _this.surveyProvider.theme[options.name] = options.value;
10832
+ _this[options.name] = options.value;
10769
10833
  return;
10770
10834
  }
10771
10835
  if (options.name === "backgroundOpacity") {
10772
10836
  _this.survey.backgroundOpacity = options.value / 100;
10773
- _this.surveyProvider.theme.backgroundOpacity = options.value / 100;
10837
+ _this.currentTheme.backgroundOpacity = options.value / 100;
10774
10838
  return;
10775
10839
  }
10776
10840
  if (options.name === "--sjs-primary-backcolor") {
@@ -10806,8 +10870,8 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
10806
10870
  });
10807
10871
  }
10808
10872
  var newTheme = {};
10809
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["assign"])(newTheme, _this.surveyProvider.theme.cssVariables, _this.themeChanges);
10810
- _this.surveyProvider.theme.cssVariables = newTheme;
10873
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["assign"])(newTheme, _this.currentTheme.cssVariables, _this.themeChanges);
10874
+ _this.currentTheme.cssVariables = newTheme;
10811
10875
  _this.setThemeToSurvey();
10812
10876
  });
10813
10877
  themeEditorSurvey.getAllQuestions().forEach(function (q) { return q.allowRootStyle = false; });
@@ -10817,15 +10881,35 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
10817
10881
  return themeEditorSurvey;
10818
10882
  };
10819
10883
  ThemeSurveyTabViewModel.prototype.loadThemeIntoPropertyGrid = function (themeEditorSurvey) {
10884
+ this.blockChanges = true;
10885
+ try {
10886
+ themeEditorSurvey.clear(true);
10887
+ themeEditorSurvey.mergeData(this.currentTheme.cssVariables);
10888
+ themeEditorSurvey.setValue("themeName", this.themeName);
10889
+ themeEditorSurvey.setValue("themeMode", this.themeMode);
10890
+ themeEditorSurvey.setValue("themePalette", this.themePalette);
10891
+ this.updatePGEditors(themeEditorSurvey);
10892
+ }
10893
+ finally {
10894
+ this.blockChanges = false;
10895
+ }
10896
+ };
10897
+ ThemeSurveyTabViewModel.prototype.updatePGEditors = function (themeEditorSurvey) {
10820
10898
  var _this = this;
10821
- themeEditorSurvey.mergeData(this.surveyProvider.theme.cssVariables);
10822
- themeEditorSurvey.setValue("themeName", this.themeName);
10823
- themeEditorSurvey.setValue("themeMode", this.themeMode);
10824
- themeEditorSurvey.setValue("themePalette", this.themePalette);
10825
- themeEditorSurvey.getQuestionByName("questionPanel").contentPanel.getQuestionByName("backcolor").value = this.currentTheme.cssVariables["--sjs-general-backcolor"];
10826
- themeEditorSurvey.getQuestionByName("editorPanel").contentPanel.getQuestionByName("backcolor").value = this.currentTheme.cssVariables["--sjs-general-backcolor-dim-light"];
10899
+ var newCssVariables = {};
10900
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["assign"])(newCssVariables, this.currentTheme.cssVariables);
10901
+ themeEditorSurvey.getQuestionByName("backgroundImage").value = this.backgroundImage;
10902
+ themeEditorSurvey.getQuestionByName("backgroundImageFit").value = this.backgroundImageFit;
10903
+ themeEditorSurvey.getQuestionByName("questionPanel").contentPanel.getQuestionByName("backcolor").value = newCssVariables["--sjs-general-backcolor"];
10904
+ themeEditorSurvey.getQuestionByName("questionPanel").contentPanel.getQuestionByName("hovercolor").value = newCssVariables["--sjs-general-backcolor-dark"];
10905
+ themeEditorSurvey.getQuestionByName("editorPanel").contentPanel.getQuestionByName("backcolor").value = newCssVariables["--sjs-general-backcolor-dim-light"];
10906
+ themeEditorSurvey.getQuestionByName("editorPanel").contentPanel.getQuestionByName("hovercolor").value = newCssVariables["--sjs-general-backcolor-dim-dark"];
10907
+ themeEditorSurvey.getQuestionByName("pageTitle").contentPanel.getQuestionByName("color").value = newCssVariables["--sjs-general-dim-forecolor"];
10908
+ themeEditorSurvey.getQuestionByName("pageDescription").contentPanel.getQuestionByName("color").value = newCssVariables["--sjs-general-dim-forecolor-light"];
10909
+ themeEditorSurvey.getQuestionByName("questionTitle").contentPanel.getQuestionByName("color").value = newCssVariables["--sjs-general-forecolor"];
10910
+ themeEditorSurvey.getQuestionByName("questionDescription").contentPanel.getQuestionByName("color").value = newCssVariables["--sjs-general-forecolor-light"];
10827
10911
  themeEditorSurvey.getAllQuestions().forEach(function (question) {
10828
- if (["color"].indexOf(question.getType()) !== -1) {
10912
+ if (["color", "colorsettings"].indexOf(question.getType()) !== -1) {
10829
10913
  question.choices = Object.keys(PredefinedColors[_this.themePalette]).map(function (colorName) { return new survey_core__WEBPACK_IMPORTED_MODULE_2__["ItemValue"](PredefinedColors[_this.themePalette][colorName], Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.colors." + colorName)); });
10830
10914
  }
10831
10915
  });
@@ -10893,14 +10977,12 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
10893
10977
  name: "--sjs-primary-backcolor",
10894
10978
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.primaryColor"),
10895
10979
  descriptionLocation: "hidden",
10896
- defaultValue: "#19b394"
10897
10980
  },
10898
10981
  {
10899
10982
  type: "color",
10900
10983
  name: "--sjs-general-backcolor-dim",
10901
10984
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.backgroundDimColor"),
10902
10985
  descriptionLocation: "hidden",
10903
- defaultValue: "#f3f3f3"
10904
10986
  },
10905
10987
  {
10906
10988
  type: "panel",
@@ -11041,7 +11123,6 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11041
11123
  name: "--sjs-general-backcolor-dim",
11042
11124
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.backgroundDimColor"),
11043
11125
  descriptionLocation: "hidden",
11044
- defaultValue: "#f3f3f3"
11045
11126
  }, {
11046
11127
  type: "panel",
11047
11128
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.accentBackground"),
@@ -11052,7 +11133,6 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11052
11133
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.primaryDefaultColor"),
11053
11134
  titleLocation: "left",
11054
11135
  descriptionLocation: "hidden",
11055
- defaultValue: "#19B394"
11056
11136
  },
11057
11137
  {
11058
11138
  type: "color",
@@ -11060,7 +11140,6 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11060
11140
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.primaryDarkColor"),
11061
11141
  titleLocation: "left",
11062
11142
  descriptionLocation: "hidden",
11063
- defaultValue: "#14A48B"
11064
11143
  },
11065
11144
  {
11066
11145
  type: "color",
@@ -11068,7 +11147,6 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11068
11147
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.primaryLightColor"),
11069
11148
  titleLocation: "left",
11070
11149
  descriptionLocation: "hidden",
11071
- defaultValue: "#E8F7F4"
11072
11150
  }
11073
11151
  ]
11074
11152
  }, {
@@ -11081,7 +11159,6 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11081
11159
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.primaryForecolor"),
11082
11160
  titleLocation: "left",
11083
11161
  descriptionLocation: "hidden",
11084
- defaultValue: "#ffffff"
11085
11162
  },
11086
11163
  {
11087
11164
  type: "color",
@@ -11089,7 +11166,6 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11089
11166
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.primaryForecolorLight"),
11090
11167
  titleLocation: "left",
11091
11168
  descriptionLocation: "hidden",
11092
- defaultValue: "#ffffff"
11093
11169
  }
11094
11170
  ]
11095
11171
  }
@@ -11103,7 +11179,7 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11103
11179
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.surveyTitle"),
11104
11180
  descriptionLocation: "hidden",
11105
11181
  defaultValue: {
11106
- color: "#161616",
11182
+ color: "rgba(22, 22, 22, 1)",
11107
11183
  weight: "700",
11108
11184
  size: 32
11109
11185
  }
@@ -11113,7 +11189,7 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11113
11189
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.pageTitle"),
11114
11190
  descriptionLocation: "hidden",
11115
11191
  defaultValue: {
11116
- color: "#161616",
11192
+ color: "rgba(22, 22, 22, 1)",
11117
11193
  weight: "700",
11118
11194
  size: 24
11119
11195
  }
@@ -11123,7 +11199,7 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11123
11199
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.pageDescription"),
11124
11200
  descriptionLocation: "hidden",
11125
11201
  defaultValue: {
11126
- color: "#161616",
11202
+ color: "rgba(22, 22, 22, 1)",
11127
11203
  size: 16
11128
11204
  }
11129
11205
  }
@@ -11137,8 +11213,8 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11137
11213
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.questionPanel"),
11138
11214
  descriptionLocation: "hidden",
11139
11215
  defaultValue: {
11140
- backcolor: "#ffffff",
11141
- hovercolor: "#f8f8f8",
11216
+ backcolor: "rgba(255, 255, 255, 1)",
11217
+ hovercolor: "rgba(248, 248, 248, 1)",
11142
11218
  corner: 4
11143
11219
  }
11144
11220
  },
@@ -11167,7 +11243,7 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11167
11243
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.questionTitle"),
11168
11244
  descriptionLocation: "hidden",
11169
11245
  defaultValue: {
11170
- color: "#161616",
11246
+ color: "rgba(22, 22, 22, 1)",
11171
11247
  weight: "600",
11172
11248
  size: 16,
11173
11249
  }
@@ -11177,7 +11253,7 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11177
11253
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.questionDescription"),
11178
11254
  descriptionLocation: "hidden",
11179
11255
  defaultValue: {
11180
- color: "#161616",
11256
+ color: "rgba(22, 22, 22, 1)",
11181
11257
  size: 16
11182
11258
  }
11183
11259
  }
@@ -11191,8 +11267,8 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11191
11267
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.editorPanel"),
11192
11268
  descriptionLocation: "hidden",
11193
11269
  defaultValue: {
11194
- backcolor: "#ffffff",
11195
- hovercolor: "#f8f8f8",
11270
+ backcolor: "rgba(255, 255, 255, 1)",
11271
+ hovercolor: "rgba(248, 248, 248, 1)",
11196
11272
  corner: 4
11197
11273
  }
11198
11274
  },
@@ -11220,7 +11296,7 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11220
11296
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.editorFont"),
11221
11297
  descriptionLocation: "hidden",
11222
11298
  defaultValue: {
11223
- color: "#161616",
11299
+ color: "rgba(22, 22, 22, 1)",
11224
11300
  size: 16
11225
11301
  }
11226
11302
  }
@@ -11237,7 +11313,6 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11237
11313
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.borderDefault"),
11238
11314
  titleLocation: "left",
11239
11315
  descriptionLocation: "hidden",
11240
- defaultValue: "#d6d6d6"
11241
11316
  },
11242
11317
  {
11243
11318
  type: "color",
@@ -11245,7 +11320,6 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11245
11320
  title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_3__["getLocString"])("theme.borderLight"),
11246
11321
  titleLocation: "left",
11247
11322
  descriptionLocation: "hidden",
11248
- defaultValue: "#e8e8e8"
11249
11323
  }
11250
11324
  ]
11251
11325
  }]
@@ -11301,6 +11375,22 @@ var ThemeSurveyTabViewModel = /** @class */ (function (_super) {
11301
11375
  }
11302
11376
  })
11303
11377
  ], ThemeSurveyTabViewModel.prototype, "activePage", void 0);
11378
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
11379
+ Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["property"])({ onSet: function (newValue, _target) {
11380
+ if (!!_target.survey) {
11381
+ _target.survey.backgroundImage = newValue;
11382
+ }
11383
+ _target.currentTheme["backgroundImage"] = newValue;
11384
+ } })
11385
+ ], ThemeSurveyTabViewModel.prototype, "backgroundImage", void 0);
11386
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
11387
+ Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["property"])({ defaultValue: "cover", onSet: function (newValue, _target) {
11388
+ if (!!_target.survey) {
11389
+ _target.survey.backgroundImageFit = newValue;
11390
+ }
11391
+ _target.currentTheme["backgroundImageFit"] = newValue;
11392
+ } })
11393
+ ], ThemeSurveyTabViewModel.prototype, "backgroundImageFit", void 0);
11304
11394
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
11305
11395
  Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["property"])({ defaultValue: "default" })
11306
11396
  ], ThemeSurveyTabViewModel.prototype, "themeName", void 0);
@@ -17187,6 +17277,7 @@ __webpack_require__.r(__webpack_exports__);
17187
17277
 
17188
17278
 
17189
17279
 
17280
+ var DEFAULT_COLOR = "#000000";
17190
17281
  var QuestionColorModel = /** @class */ (function (_super) {
17191
17282
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(QuestionColorModel, _super);
17192
17283
  function QuestionColorModel(name) {
@@ -17198,8 +17289,10 @@ var QuestionColorModel = /** @class */ (function (_super) {
17198
17289
  return _this;
17199
17290
  }
17200
17291
  QuestionColorModel.prototype.getCorrectedValue = function (newValue) {
17292
+ if (newValue == undefined || newValue == null)
17293
+ return newValue;
17201
17294
  newValue = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["parseColor"])(newValue !== null && newValue !== void 0 ? newValue : "").color;
17202
- newValue = (newValue.match(/#(\d|\w){1,6}/) || ["#000000"])[0];
17295
+ newValue = (newValue.match(/#(\d|\w){1,6}/) || [DEFAULT_COLOR])[0];
17203
17296
  if (newValue.length === 4) {
17204
17297
  for (var i = 1; i < 4; i++) {
17205
17298
  newValue += newValue[i];
@@ -17219,7 +17312,7 @@ var QuestionColorModel = /** @class */ (function (_super) {
17219
17312
  this.updateRenderedValue();
17220
17313
  };
17221
17314
  QuestionColorModel.prototype.onBeforeInput = function (event) {
17222
- if (!!event.data && !/[\d\w#]/.test(event.data)) {
17315
+ if (!!event.data && !/[\d\w(),#]/.test(event.data)) {
17223
17316
  event.preventDefault();
17224
17317
  }
17225
17318
  };
@@ -17233,12 +17326,20 @@ var QuestionColorModel = /** @class */ (function (_super) {
17233
17326
  this._renderedValue = undefined;
17234
17327
  };
17235
17328
  QuestionColorModel.prototype.updateRenderedValue = function () {
17236
- this._renderedValue = this.value;
17329
+ if (this.value) {
17330
+ var color = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["parseColor"])(this.value || "");
17331
+ this._renderedValue = color.color;
17332
+ }
17333
+ else {
17334
+ this._renderedValue = DEFAULT_COLOR;
17335
+ }
17237
17336
  };
17238
17337
  Object.defineProperty(QuestionColorModel.prototype, "renderedValue", {
17239
17338
  get: function () {
17240
- var _a, _b;
17241
- return ((_b = (_a = this._renderedValue) !== null && _a !== void 0 ? _a : this.value) !== null && _b !== void 0 ? _b : "#000000").toUpperCase();
17339
+ if (!this._renderedValue) {
17340
+ this.updateRenderedValue();
17341
+ }
17342
+ return this._renderedValue.toUpperCase();
17242
17343
  },
17243
17344
  enumerable: false,
17244
17345
  configurable: true
@@ -17286,9 +17387,7 @@ var QuestionColorModel = /** @class */ (function (_super) {
17286
17387
  });
17287
17388
  QuestionColorModel.prototype.createDropdownAction = function () {
17288
17389
  var _this = this;
17289
- var action = Object(survey_core__WEBPACK_IMPORTED_MODULE_1__["createDropdownActionModelAdvanced"])({
17290
- iconName: this.cssClasses.colorDropdownIcon
17291
- }, {
17390
+ var action = Object(survey_core__WEBPACK_IMPORTED_MODULE_1__["createDropdownActionModelAdvanced"])({}, {
17292
17391
  onSelectionChanged: function (item) {
17293
17392
  _this.value = item.value;
17294
17393
  },
@@ -17300,15 +17399,23 @@ var QuestionColorModel = /** @class */ (function (_super) {
17300
17399
  });
17301
17400
  var popupModel = action.popupModel;
17302
17401
  var listModel = popupModel.contentComponentData.model;
17303
- listModel.cssClasses = {
17304
- itemBody: listModel.cssClasses.itemBody + " " + this.cssClasses.colorItem
17305
- };
17306
17402
  popupModel.setWidthByTarget = true;
17307
17403
  popupModel.positionMode = "fixed";
17308
17404
  listModel.isItemSelected = function (itemValue) { return itemValue.value == _this.value; };
17309
- action.cssClasses = { item: this.cssClasses.colorDropdown };
17310
17405
  return action;
17311
17406
  };
17407
+ QuestionColorModel.prototype.calcCssClasses = function (css) {
17408
+ var classes = _super.prototype.calcCssClasses.call(this, css);
17409
+ var dropdownAction = this.dropdownAction;
17410
+ dropdownAction.cssClasses = { item: classes.colorDropdown };
17411
+ dropdownAction.iconName = classes.colorDropdownIcon;
17412
+ var listModel = dropdownAction.popupModel.contentComponentData.model;
17413
+ listModel.cssClasses = {};
17414
+ listModel.cssClasses = {
17415
+ itemBody: listModel.cssClasses.itemBody + " " + classes.colorItem
17416
+ };
17417
+ return classes;
17418
+ };
17312
17419
  QuestionColorModel.prototype.updateChoices = function () {
17313
17420
  this.dropdownAction.popupModel.contentComponentData.model.setItems(this.choices);
17314
17421
  };
@@ -17323,7 +17430,7 @@ var QuestionColorModel = /** @class */ (function (_super) {
17323
17430
  Object(survey_core__WEBPACK_IMPORTED_MODULE_1__["property"])()
17324
17431
  ], QuestionColorModel.prototype, "unit", void 0);
17325
17432
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
17326
- Object(survey_core__WEBPACK_IMPORTED_MODULE_1__["property"])({})
17433
+ Object(survey_core__WEBPACK_IMPORTED_MODULE_1__["property"])()
17327
17434
  ], QuestionColorModel.prototype, "_renderedValue", void 0);
17328
17435
  return QuestionColorModel;
17329
17436
  }(survey_core__WEBPACK_IMPORTED_MODULE_1__["QuestionTextModel"]));
@@ -17526,6 +17633,8 @@ var QuestionSpinEditorModel = /** @class */ (function (_super) {
17526
17633
  configurable: true
17527
17634
  });
17528
17635
  QuestionSpinEditorModel.prototype.correctValue = function (newValue) {
17636
+ if (newValue == undefined || newValue == null)
17637
+ return newValue;
17529
17638
  var renderedMax = Number(this.renderedMax);
17530
17639
  var renderedMin = Number(this.renderedMin);
17531
17640
  newValue = typeof newValue === "string" ? parseFloat(newValue) : newValue;
@@ -18559,7 +18668,7 @@ __webpack_require__.r(__webpack_exports__);
18559
18668
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! survey-core */ "survey-core");
18560
18669
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_70___default = /*#__PURE__*/__webpack_require__.n(survey_core__WEBPACK_IMPORTED_MODULE_70__);
18561
18670
  var Version;
18562
- Version = "" + "1.9.94";
18671
+ Version = "" + "1.9.96";
18563
18672
  //should be loaded before other styles for easier override
18564
18673
  __webpack_require__(/*! ../utils/context-button.scss */ "./src/utils/context-button.scss");
18565
18674
 
@@ -18648,7 +18757,7 @@ __webpack_require__(/*! ../utils/design.scss */ "./src/utils/design.scss");
18648
18757
  __webpack_require__(/*! ../utils/layout.scss */ "./src/utils/layout.scss");
18649
18758
 
18650
18759
  survey_core__WEBPACK_IMPORTED_MODULE_70__["settings"].supportCreatorV2 = true;
18651
- Object(survey_core__WEBPACK_IMPORTED_MODULE_70__["checkLibraryVersion"])("" + "1.9.94", "survey-creator-core");
18760
+ Object(survey_core__WEBPACK_IMPORTED_MODULE_70__["checkLibraryVersion"])("" + "1.9.96", "survey-creator-core");
18652
18761
 
18653
18762
 
18654
18763
  /***/ }),
@@ -22186,7 +22295,7 @@ var UndoRedoManager = /** @class */ (function () {
22186
22295
  transaction.addAction(action);
22187
22296
  };
22188
22297
  UndoRedoManager.prototype.isCorrectProperty = function (sender, propertyName) {
22189
- var prop = survey_core__WEBPACK_IMPORTED_MODULE_0__["Serializer"].findProperty(sender.getType(), propertyName);
22298
+ var prop = survey_core__WEBPACK_IMPORTED_MODULE_0__["Serializer"].getOriginalProperty(sender, propertyName);
22190
22299
  return !!prop && prop.isSerializable;
22191
22300
  };
22192
22301
  UndoRedoManager.prototype.tryMergeTransaction = function (sender, propertyName, newValue) {
@@ -22374,7 +22483,7 @@ var UndoRedoAction = /** @class */ (function () {
22374
22483
  UndoRedoAction.prototype.tryMerge = function (sender, propertyName, newValue) {
22375
22484
  if (sender !== this._sender || propertyName !== this._propertyName || newValue == this._oldValue)
22376
22485
  return false;
22377
- var prop = survey_core__WEBPACK_IMPORTED_MODULE_0__["Serializer"].findProperty(sender.getType(), propertyName);
22486
+ var prop = survey_core__WEBPACK_IMPORTED_MODULE_0__["Serializer"].getOriginalProperty(sender, propertyName);
22378
22487
  if (!prop || (prop.type !== "string" && prop.type !== "text"))
22379
22488
  return false;
22380
22489
  if (new Date().getTime() - this.tickCount > UndoRedoAction.maximumMergeTime)