@roqua/quby-frontend 0.12.2 → 0.12.4

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.
@@ -9,6 +9,7 @@ export interface Props {
9
9
  onSave: (response: Response) => void;
10
10
  onAbort?: (response: Response) => void;
11
11
  onPreviousQuestionnaire?: (response: Response) => void;
12
+ language?: string;
12
13
  newLayout?: boolean;
13
14
  darkMode?: boolean;
14
15
  }
@@ -343,5 +343,6 @@ export interface IDisplayOptions {
343
343
  darkMode: boolean;
344
344
  newLayout: boolean;
345
345
  dir: "ltr" | "rtl";
346
+ language: string;
346
347
  }
347
348
  export {};
@@ -13365,7 +13365,8 @@ const defaultDisplayOptions = {
13365
13365
  displayMode: "paged",
13366
13366
  darkMode: false,
13367
13367
  newLayout: true,
13368
- dir: "ltr"
13368
+ dir: "ltr",
13369
+ language: "nl"
13369
13370
  };
13370
13371
  const defaultSetQuestionRef = (_key, _ref) => null;
13371
13372
  const QubyContext = React__default.createContext({
@@ -18049,7 +18050,7 @@ const AnswerPage = ({ questionnaire, response, displayOptions, allowSkipValidati
18049
18050
  const [nextSavePressWillOnlyRunMinimalValidations, setNextSavePressWillOnlyRunMinimalValidations] = useNextSavePressWillOnlyRunMinimalValidations(response);
18050
18051
  const qubyRef = React__default.useRef(null);
18051
18052
  const questionRefs = React__default.useMemo(() => /* @__PURE__ */ new Map(), [questionnaire]);
18052
- const translationsCurlies = React__default.useMemo(() => new QuestionnaireTranslationsCurlies(response, questionnaire, questionnaire.defaultLanguage), [response, questionnaire, questionnaire.defaultLanguage]);
18053
+ const translationsCurlies = React__default.useMemo(() => new QuestionnaireTranslationsCurlies(response, questionnaire, displayOptions.language), [response, questionnaire, displayOptions.language]);
18053
18054
  useQuestionShortkeys(response, questionnaire, qubyRef);
18054
18055
  const displayMode = displayOptions.displayMode;
18055
18056
  const panelLogic = new PanelLogic(response, questionnaire.panels);
@@ -18096,7 +18097,7 @@ const AnswerPage = ({ questionnaire, response, displayOptions, allowSkipValidati
18096
18097
  const topClassName = classNames({
18097
18098
  dark: displayOptions.darkMode
18098
18099
  });
18099
- return /* @__PURE__ */ jsx(QubyContext.Provider, { value: { questionnaire, response, displayOptions, setQuestionRef, translationsCurlies }, children: /* @__PURE__ */ jsxs("div", { ref: qubyRef, className: topClassName, style: mapCssVars(questionnaire.cssVars), dir: displayOptions.dir, children: [
18100
+ return /* @__PURE__ */ jsx(QubyContext.Provider, { value: { questionnaire, response, displayOptions, setQuestionRef, translationsCurlies }, children: /* @__PURE__ */ jsxs("div", { ref: qubyRef, className: topClassName, style: mapCssVars(questionnaire.cssVars), lang: displayOptions.language, dir: displayOptions.dir, children: [
18100
18101
  /* @__PURE__ */ jsx("form", { className: "paged", onSubmit: (event) => event.preventDefault(), children: /* @__PURE__ */ jsx(
18101
18102
  Paginator,
18102
18103
  {
@@ -18153,11 +18154,13 @@ const Quby = (props) => {
18153
18154
  const leavePageNag = React__default.useRef(null);
18154
18155
  const newLayout = props.newLayout ?? questionnaire.layoutVersion === "v2";
18155
18156
  const darkMode = props.darkMode === void 0 ? (_a = window.matchMedia("(prefers-color-scheme: dark)")) == null ? void 0 : _a.matches : props.darkMode;
18157
+ const language = props.language && Object.keys(questionnaire.translations).includes(props.language) ? props.language : questionnaire.defaultLanguage;
18156
18158
  const displayOptions = {
18157
18159
  displayMode: props.displayMode,
18158
18160
  darkMode,
18159
18161
  newLayout,
18160
- dir: RTL_LANGUAGES.includes(props.questionnaireJson.language) ? "rtl" : "ltr"
18162
+ dir: RTL_LANGUAGES.includes(language) ? "rtl" : "ltr",
18163
+ language
18161
18164
  };
18162
18165
  const handleSave = () => {
18163
18166
  if (leavePageNag.current) {
@@ -18171,7 +18174,7 @@ const Quby = (props) => {
18171
18174
  }
18172
18175
  callback(response);
18173
18176
  } : void 0;
18174
- instance.changeLanguage(props.questionnaireJson.language);
18177
+ instance.changeLanguage(displayOptions.language);
18175
18178
  React__default.useEffect(() => {
18176
18179
  if (props.unsavedResponseWarning) {
18177
18180
  leavePageNag.current = (e2) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roqua/quby-frontend",
3
- "version": "0.12.2",
3
+ "version": "0.12.4",
4
4
  "main": "./dist/quby-frontend.umd.js",
5
5
  "module": "./dist/quby-frontend.es.js",
6
6
  "type": "module",