survey-creator-js 2.3.3 → 2.3.5

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 UI v2.3.3
2
+ * SurveyJS Creator UI v2.3.5
3
3
  * (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * Github: https://github.com/surveyjs/survey-creator
5
5
  * License: https://surveyjs.io/Licenses#SurveyCreator
@@ -99,7 +99,7 @@ class TabbedMenuItemComponent extends SurveyElementBase {
99
99
  }
100
100
  render() {
101
101
  const item = this.item;
102
- return (attachKey2click(React.createElement("div", { role: "tab", id: "tab-" + item.id, "aria-selected": item.active, "aria-controls": "scrollableDiv-" + item.id, className: item.getRootCss(), onClick: () => item.action(item) },
102
+ return (attachKey2click(React.createElement("div", { role: "tab", id: "tab-" + item.id, "aria-selected": item.active, "aria-controls": "scrollableDiv-" + item.id, className: item.getRootCss(), onClick: () => item.doAction() },
103
103
  item.hasTitle ? React.createElement("span", { className: item.getTitleCss() }, item.title) : null,
104
104
  item.hasIcon ? React.createElement(SvgIcon, { iconName: item.iconName, className: item.getIconCss(), size: "auto", title: item.tooltip || item.title }) : null)));
105
105
  }
@@ -1410,7 +1410,7 @@ class SurveyCreatorToolboxItem extends CreatorModelElement {
1410
1410
  (this.props.isCompact ?
1411
1411
  null
1412
1412
  :
1413
- React.createElement("span", { className: "svc-toolbox__item-title" }, this.item.title))));
1413
+ React.createElement("span", { className: "svc-toolbox__item-title" }, this.item.title))), undefined, { disableTabStop: !this.model.toolboxItem.enabled });
1414
1414
  return (React.createElement(React.Fragment, null,
1415
1415
  item,
1416
1416
  banner));
@@ -1559,7 +1559,7 @@ class SearchComponent extends SurveyElementBase {
1559
1559
  return (React.createElement("div", { className: "svc-search" },
1560
1560
  React.createElement("div", { className: "svc-search__search-icon" },
1561
1561
  React.createElement(SvgIcon, { iconName: "icon-search", size: "auto" })),
1562
- React.createElement("input", { type: "text", className: "svc-search__input", "aria-label": this.model.filterStringPlaceholder, placeholder: this.model.filterStringPlaceholder, value: this.state.filterString, onChange: onChange }),
1562
+ React.createElement("input", { type: "text", className: "svc-search__input", "aria-label": this.model.filterStringPlaceholder, placeholder: this.model.filterStringPlaceholder, value: this.state.filterString, onChange: onChange, tabIndex: this.model.getTabIndex() }),
1563
1563
  React.createElement("div", { className: "svc-search__toolbar" },
1564
1564
  React.createElement("div", { className: "svc-search__toolbar-counter" }, this.model.matchCounterText),
1565
1565
  React.createElement(SurveyActionBar, { model: this.model.searchActionBar }))));
@@ -2232,26 +2232,19 @@ class TabDesignerComponent extends SurveyElementBase {
2232
2232
  if (this.creator.pageEditMode !== "bypage") {
2233
2233
  const pages = this.model.pages;
2234
2234
  pages.forEach((page) => {
2235
- renderedPages.push(this.createRenderedPage(page, page == this.model.newPage));
2235
+ renderedPages.push(this.createRenderedPage(page, "svc-page", page == this.model.newPage));
2236
2236
  });
2237
2237
  }
2238
2238
  else {
2239
2239
  const page2Display = this.model.pagesController.page2Display;
2240
2240
  if (!!page2Display) {
2241
- renderedPages.push(this.createRenderedPage(page2Display, this.model.newPage === page2Display));
2241
+ renderedPages.push(this.createRenderedPage(page2Display, "svc-page", this.model.newPage === page2Display));
2242
2242
  }
2243
2243
  }
2244
2244
  return renderedPages;
2245
2245
  }
2246
- createRenderedPage(page, isGhostPage) {
2247
- return (React.createElement("div", { className: "svc-page", "data-sv-drop-target-page": page.name, "data-sv-drop-target-survey-element": isGhostPage ? "newGhostPage" : page.name, key: page.id }, this.renderPage(page, isGhostPage)));
2248
- }
2249
- renderNewPage(className, key = "") {
2250
- return (React.createElement(React.Fragment, { key: key },
2251
- React.createElement("div", { className: className, "data-sv-drop-target-survey-element": "newGhostPage" }, !!this.model.newPage ? this.renderPage(this.model.newPage, true) : null)));
2252
- }
2253
- renderPage(pageV, isGhost) {
2254
- return ReactElementFactory.Instance.createElement("svc-page", { survey: this.creator.survey, page: pageV, creator: this.creator, isGhost });
2246
+ createRenderedPage(page, className, isGhostPage) {
2247
+ return React.createElement(PageWrapperComponent, { key: page === null || page === void 0 ? void 0 : page.id, page: page, isGhost: isGhostPage, creator: this.creator, className: className });
2255
2248
  }
2256
2249
  renderElement() {
2257
2250
  const designerTabClassName = "svc-tab-designer " + this.model.getRootCss();
@@ -2275,7 +2268,7 @@ class TabDesignerComponent extends SurveyElementBase {
2275
2268
  surveyHeader,
2276
2269
  React.createElement("div", { className: "svc-designer__placeholder-container", "data-sv-drop-target-survey-element": "newGhostPage" },
2277
2270
  this.renderPlaceHolderContent(),
2278
- this.renderNewPage("svc-designer-placeholder-page"))));
2271
+ this.createRenderedPage(this.model.newPage, "svc-designer-placeholder-page", true))));
2279
2272
  }
2280
2273
  renderPlaceHolderContent() {
2281
2274
  return React.createElement(SurfacePlaceholder, { name: "designer", placeholderTitleText: this.model.placeholderTitleText, placeholderDescriptionText: this.model.placeholderDescriptionText });
@@ -2310,6 +2303,43 @@ class TabDesignerComponent extends SurveyElementBase {
2310
2303
  ReactElementFactory.Instance.registerElement("svc-tab-designer", (props) => {
2311
2304
  return React.createElement(TabDesignerComponent, props);
2312
2305
  });
2306
+ class PageWrapperComponent extends React.Component {
2307
+ constructor(props) {
2308
+ super(props);
2309
+ this.id = `PageWrapperCallback_${++PageWrapperComponent.ID}`;
2310
+ this.state = { changed: 0 };
2311
+ }
2312
+ render() {
2313
+ var _a, _b;
2314
+ const pageContent = !!this.props.page ? ReactElementFactory.Instance.createElement("svc-page", { survey: this.props.creator.survey, page: this.props.page, creator: this.props.creator, isGhost: this.props.isGhost }) : null;
2315
+ return React.createElement("div", { className: this.props.className, "data-sv-drop-target-page": (_a = this.props.page) === null || _a === void 0 ? void 0 : _a.name, "data-sv-drop-target-survey-element": this.props.isGhost ? "newGhostPage" : (_b = this.props.page) === null || _b === void 0 ? void 0 : _b.name }, pageContent);
2316
+ }
2317
+ setupCallback(page) {
2318
+ if (!page)
2319
+ return;
2320
+ page.registerFunctionOnPropertyValueChanged("name", () => {
2321
+ this.setState({ changed: !!this.state && this.state.changed ? this.state.changed + 1 : 1 });
2322
+ }, this.id);
2323
+ }
2324
+ clearCallback(page) {
2325
+ if (!page)
2326
+ return;
2327
+ page.unRegisterFunctionOnPropertyValueChanged("name");
2328
+ }
2329
+ componentDidUpdate(prevProps, prevState) {
2330
+ if (prevProps.page !== this.props.page) {
2331
+ this.clearCallback(prevProps.page);
2332
+ this.setupCallback(this.props.page);
2333
+ }
2334
+ }
2335
+ componentDidMount() {
2336
+ this.setupCallback(this.props.page);
2337
+ }
2338
+ componentWillUnmount() {
2339
+ this.clearCallback(this.props.page);
2340
+ }
2341
+ }
2342
+ PageWrapperComponent.ID = 0;
2313
2343
 
2314
2344
  class TabJsonEditorErrorsComponent extends SurveyElementBase {
2315
2345
  getStateElement() {
@@ -2849,8 +2879,8 @@ ReactQuestionFactory.Instance.registerQuestion("sv-boolean-switch", (props) => {
2849
2879
  RendererFactory.Instance.registerRenderer("boolean", "switch", "sv-boolean-switch");
2850
2880
 
2851
2881
  let Version;
2852
- Version = `${"2.3.3"}`;
2853
- checkLibraryVersion(`${"2.3.3"}`, "survey-creator-react");
2882
+ Version = `${"2.3.5"}`;
2883
+ checkLibraryVersion(`${"2.3.5"}`, "survey-creator-react");
2854
2884
 
2855
2885
  function renderSurveyCreator(creator, element, props = {}) {
2856
2886
  let node = element;