@roqua/quby-frontend 0.4.3 → 0.5.1
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/CHANGELOG.md +13 -0
- package/lib/components/AnswerPage.js +26 -49
- package/lib/components/AnswerPage.js.map +1 -1
- package/lib/components/MainLabel.js +6 -14
- package/lib/components/MainLabel.js.map +1 -1
- package/lib/components/Paginator.js +29 -53
- package/lib/components/Paginator.js.map +1 -1
- package/lib/components/PanelContent.js +8 -17
- package/lib/components/PanelContent.js.map +1 -1
- package/lib/components/PanelItem.js +8 -15
- package/lib/components/PanelItem.js.map +1 -1
- package/lib/components/ProgressBar.js +10 -18
- package/lib/components/ProgressBar.js.map +1 -1
- package/lib/components/Quby.d.ts +2 -2
- package/lib/components/Quby.d.ts.map +1 -1
- package/lib/components/Quby.js +9 -16
- package/lib/components/Quby.js.map +1 -1
- package/lib/components/QuestionDescription.js +3 -10
- package/lib/components/QuestionDescription.js.map +1 -1
- package/lib/components/QuestionWrapper.js +10 -28
- package/lib/components/QuestionWrapper.js.map +1 -1
- package/lib/components/ValidationErrors.js +10 -30
- package/lib/components/ValidationErrors.js.map +1 -1
- package/lib/components/index.js +2 -14
- package/lib/components/index.js.map +1 -1
- package/lib/components/items/HtmlItem.js +4 -12
- package/lib/components/items/HtmlItem.js.map +1 -1
- package/lib/components/items/QuestionItem.js +34 -42
- package/lib/components/items/QuestionItem.js.map +1 -1
- package/lib/components/items/UnknownItem.js +3 -11
- package/lib/components/items/UnknownItem.js.map +1 -1
- package/lib/components/questions/CheckBoxQuestion.js +33 -43
- package/lib/components/questions/CheckBoxQuestion.js.map +1 -1
- package/lib/components/questions/DatePartsQuestion.js +18 -26
- package/lib/components/questions/DatePartsQuestion.js.map +1 -1
- package/lib/components/questions/FloatQuestion.js +16 -24
- package/lib/components/questions/FloatQuestion.js.map +1 -1
- package/lib/components/questions/IntegerQuestion.js +16 -24
- package/lib/components/questions/IntegerQuestion.js.map +1 -1
- package/lib/components/questions/RadioQuestion.js +32 -42
- package/lib/components/questions/RadioQuestion.js.map +1 -1
- package/lib/components/questions/ScaleQuestion.js +31 -41
- package/lib/components/questions/ScaleQuestion.js.map +1 -1
- package/lib/components/questions/SelectQuestion.js +22 -31
- package/lib/components/questions/SelectQuestion.js.map +1 -1
- package/lib/components/questions/SliderQuestion.js +59 -67
- package/lib/components/questions/SliderQuestion.js.map +1 -1
- package/lib/components/questions/StringQuestion.js +16 -24
- package/lib/components/questions/StringQuestion.js.map +1 -1
- package/lib/components/questions/TextareaQuestion.js +15 -23
- package/lib/components/questions/TextareaQuestion.js.map +1 -1
- package/lib/core/index.d.ts +1 -0
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +5 -16
- package/lib/core/index.js.map +1 -1
- package/lib/core/mock_helpers.js +11 -17
- package/lib/core/mock_helpers.js.map +1 -1
- package/lib/core/questionnaire.js +8 -13
- package/lib/core/questionnaire.js.map +1 -1
- package/lib/core/questionnaire_json.d.ts +5 -3
- package/lib/core/questionnaire_json.d.ts.map +1 -1
- package/lib/core/questionnaire_json.js +2 -2
- package/lib/core/questionnaire_json.js.map +1 -1
- package/lib/core/response.d.ts +13 -5
- package/lib/core/response.d.ts.map +1 -1
- package/lib/core/response.js +72 -78
- package/lib/core/response.js.map +1 -1
- package/lib/core/response_json.d.ts +11 -0
- package/lib/core/response_json.d.ts.map +1 -0
- package/lib/core/response_json.js +68 -0
- package/lib/core/response_json.js.map +1 -0
- package/lib/core/validators.js +56 -169
- package/lib/core/validators.js.map +1 -1
- package/lib/core/visibility_rules.js +37 -90
- package/lib/core/visibility_rules.js.map +1 -1
- package/lib/i18n.js +7 -12
- package/lib/i18n.js.map +1 -1
- package/lib/index.js +3 -15
- package/lib/index.js.map +1 -1
- package/package.json +3 -2
|
@@ -1,32 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var classnames_1 = __importDefault(require("classnames"));
|
|
9
|
-
var MainLabel_1 = require("../MainLabel");
|
|
10
|
-
var QuestionWrapper_1 = require("../QuestionWrapper");
|
|
11
|
-
var QuestionDescription_1 = require("../QuestionDescription");
|
|
12
|
-
var TextareaQuestion = function (_a) {
|
|
13
|
-
var question = _a.question, fieldState = _a.fieldState, setQuestionRef = _a.setQuestionRef;
|
|
14
|
-
var handleChange = function (event) {
|
|
1
|
+
import React from "react";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { MainLabel } from "../MainLabel";
|
|
4
|
+
import { QuestionWrapper } from "../QuestionWrapper";
|
|
5
|
+
import { QuestionDescription } from "../QuestionDescription";
|
|
6
|
+
export const TextareaQuestion = ({ question, fieldState, setQuestionRef }) => {
|
|
7
|
+
const handleChange = (event) => {
|
|
15
8
|
fieldState.setValue(event.target.value);
|
|
16
9
|
};
|
|
17
|
-
|
|
10
|
+
const className = classNames(question.type, {
|
|
18
11
|
// sized: !!question.size,
|
|
19
12
|
subitem: false // TODO
|
|
20
13
|
});
|
|
21
|
-
return (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
return (React.createElement(QuestionWrapper, { question: question, fieldState: fieldState, setQuestionRef: setQuestionRef },
|
|
15
|
+
React.createElement(MainLabel, { question: question }),
|
|
16
|
+
React.createElement("div", { className: "description-and-fields" },
|
|
17
|
+
React.createElement(QuestionDescription, { question: question }),
|
|
18
|
+
React.createElement("div", { className: "fields", id: htmlId(question) },
|
|
19
|
+
React.createElement("textarea", { className: className, value: fieldState.value || "", rows: question.lines, onChange: handleChange, onFocus: fieldState.setAsActiveQuestion })))));
|
|
27
20
|
};
|
|
28
|
-
exports.TextareaQuestion = TextareaQuestion;
|
|
29
21
|
function htmlId(question) {
|
|
30
|
-
return
|
|
22
|
+
return `answer_${question.key}_input`;
|
|
31
23
|
}
|
|
32
24
|
//# sourceMappingURL=TextareaQuestion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextareaQuestion.js","sourceRoot":"","sources":["../../../src/components/questions/TextareaQuestion.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TextareaQuestion.js","sourceRoot":"","sources":["../../../src/components/questions/TextareaQuestion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAQ7D,MAAM,CAAC,MAAM,gBAAgB,GAAmC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE;IAC3G,MAAM,YAAY,GAAG,CAAC,KAA6C,EAAE,EAAE;QACrE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC1C,0BAA0B;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc;QACzF,oBAAC,SAAS,IAAC,QAAQ,EAAE,QAAQ,GAAI;QACjC,6BAAK,SAAS,EAAC,wBAAwB;YACrC,oBAAC,mBAAmB,IAAC,QAAQ,EAAE,QAAQ,GAAI;YAC3C,6BAAK,SAAS,EAAC,QAAQ,EAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;gBAE1C,kCACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,EAAE,EAC7B,IAAI,EAAE,QAAQ,CAAC,KAAK,EACpB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,UAAU,CAAC,mBAAmB,GACvC,CACE,CACF,CACU,CACnB,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,MAAM,CAAC,QAAmB;IACjC,OAAO,UAAU,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACxC,CAAC"}
|
package/lib/core/index.d.ts
CHANGED
package/lib/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
|
package/lib/core/index.js
CHANGED
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
exports.__esModule = true;
|
|
13
|
-
__exportStar(require("./questionnaire_json"), exports);
|
|
14
|
-
__exportStar(require("./questionnaire"), exports);
|
|
15
|
-
__exportStar(require("./response"), exports);
|
|
16
|
-
__exportStar(require("./validators"), exports);
|
|
1
|
+
export * from "./questionnaire_json";
|
|
2
|
+
export * from "./questionnaire";
|
|
3
|
+
export * from "./response";
|
|
4
|
+
export * from "./validators";
|
|
5
|
+
export * from "./response_json";
|
|
17
6
|
//# sourceMappingURL=index.js.map
|
package/lib/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
|
package/lib/core/mock_helpers.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
exports.__esModule = true;
|
|
3
|
-
exports.mockResponse = exports.mockValidationFieldState = exports.mockFieldState = void 0;
|
|
4
|
-
function mockFieldState(key, value) {
|
|
1
|
+
export function mockFieldState(key, value) {
|
|
5
2
|
return {
|
|
6
3
|
key: "",
|
|
7
4
|
hidden: false,
|
|
@@ -10,35 +7,32 @@ function mockFieldState(key, value) {
|
|
|
10
7
|
valid: true,
|
|
11
8
|
touched: false,
|
|
12
9
|
errors: [],
|
|
13
|
-
setValue:
|
|
10
|
+
setValue: (value) => { },
|
|
14
11
|
isActiveQuestion: false,
|
|
15
|
-
setAsActiveQuestion:
|
|
12
|
+
setAsActiveQuestion: () => { }
|
|
16
13
|
};
|
|
17
14
|
}
|
|
18
|
-
|
|
19
|
-
function mockValidationFieldState(key, value) {
|
|
15
|
+
export function mockValidationFieldState(key, value) {
|
|
20
16
|
return {
|
|
21
17
|
value: value,
|
|
22
18
|
addError: jest.fn()
|
|
23
19
|
};
|
|
24
20
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var value = values[key];
|
|
21
|
+
export function mockResponse(values) {
|
|
22
|
+
const fieldStates = {};
|
|
23
|
+
const validationFieldStates = {};
|
|
24
|
+
for (let key in values) {
|
|
25
|
+
const value = values[key];
|
|
31
26
|
fieldStates[key] = mockFieldState(key, values[key]);
|
|
32
27
|
validationFieldStates[key] = mockValidationFieldState(key, values[key]);
|
|
33
28
|
}
|
|
34
29
|
return {
|
|
35
|
-
getFieldState:
|
|
30
|
+
getFieldState: (key) => {
|
|
36
31
|
return fieldStates[key];
|
|
37
32
|
},
|
|
38
|
-
getValidationFieldState:
|
|
33
|
+
getValidationFieldState: (key) => {
|
|
39
34
|
return validationFieldStates[key];
|
|
40
35
|
}
|
|
41
36
|
};
|
|
42
37
|
}
|
|
43
|
-
exports.mockResponse = mockResponse;
|
|
44
38
|
//# sourceMappingURL=mock_helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_helpers.js","sourceRoot":"","sources":["../../src/core/mock_helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mock_helpers.js","sourceRoot":"","sources":["../../src/core/mock_helpers.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,cAAc,CAAmB,GAAW,EAAE,KAAQ;IACpE,OAAO;QACL,GAAG,EAAE,EAAE;QACP,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,KAAQ,EAAE,EAAE,GAAG,CAAC;QAC3B,gBAAgB,EAAE,KAAK;QACvB,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;KACZ,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAmB,GAAW,EAAE,KAAQ;IAC9E,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;KACQ,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,MAAe;IAC7C,MAAM,WAAW,GAAsC,EAAE,CAAC;IAC1D,MAAM,qBAAqB,GAAgD,EAAE,CAAC;IAE9E,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,WAAW,CAAC,GAAG,CAAC,GAAG,cAAc,CAAe,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,qBAAqB,CAAC,GAAG,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KACzE;IAED,OAAO;QACL,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE;YAC7B,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QACD,uBAAuB,EAAE,CAAC,GAAW,EAAE,EAAE;YACvC,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;KACqB,CAAC;AAC3B,CAAC"}
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var visibility_rules_1 = require("./visibility_rules");
|
|
5
|
-
var Questionnaire = /** @class */ (function () {
|
|
6
|
-
function Questionnaire(data) {
|
|
1
|
+
import { buildVisibilityRule } from "./visibility_rules";
|
|
2
|
+
export class Questionnaire {
|
|
3
|
+
constructor(data) {
|
|
7
4
|
this.key = data.key;
|
|
8
|
-
this.questions =
|
|
5
|
+
this.questions = data.questions;
|
|
9
6
|
this.panels = data.panels;
|
|
10
7
|
this.validations = data.validations;
|
|
11
|
-
this.visibilityRules = data.visibilityRules.map(
|
|
8
|
+
this.visibilityRules = data.visibilityRules.map(rule => buildVisibilityRule(rule));
|
|
12
9
|
}
|
|
13
|
-
|
|
10
|
+
getField(key) {
|
|
14
11
|
return this.questions[key];
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
}());
|
|
18
|
-
exports.Questionnaire = Questionnaire;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
19
14
|
//# sourceMappingURL=questionnaire.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questionnaire.js","sourceRoot":"","sources":["../../src/core/questionnaire.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"questionnaire.js","sourceRoot":"","sources":["../../src/core/questionnaire.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAkB,MAAM,oBAAoB,CAAC;AAEzE,MAAM,OAAO,aAAa;IAOxB,YAAY,IAAoB;QAC9B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
1
2
|
export interface ITranslatable {
|
|
2
3
|
t: string;
|
|
3
4
|
[interpolationKey: string]: string;
|
|
4
5
|
}
|
|
5
|
-
export declare
|
|
6
|
+
export declare const DatePartsComponentSchema: z.ZodEnum<["day", "month", "year", "hour", "minute"]>;
|
|
7
|
+
export declare type DatePartsComponent = z.infer<typeof DatePartsComponentSchema>;
|
|
6
8
|
export declare type IValidation = IRequiresAnswerValidation | IValidIntegerValidation | IValidFloatValidation | IValidDateValidation | IMinimumValidation | IMaximumValidation | IRegexpValidation | IAnswerGroupMinimumValidation | IAnswerGroupMaximumValidation | IMaximumCheckedAllowedValidation | IMinimumCheckedRequiredValidation;
|
|
7
9
|
export interface IRequiresAnswerValidation {
|
|
8
10
|
type: "requires_answer";
|
|
@@ -128,6 +130,7 @@ export interface IScaleQuestion extends IBaseField {
|
|
|
128
130
|
children: (IRadioOption)[];
|
|
129
131
|
deselectable: boolean;
|
|
130
132
|
}
|
|
133
|
+
export declare type ISingleSelectQuestion = IRadioQuestion | IScaleQuestion | ISelectQuestion;
|
|
131
134
|
export interface ICheckBoxQuestion extends IBaseField {
|
|
132
135
|
type: "check_box";
|
|
133
136
|
as: "check_box";
|
|
@@ -218,8 +221,7 @@ export interface IVisibilityRule {
|
|
|
218
221
|
export interface IQuestionnaire {
|
|
219
222
|
key: string;
|
|
220
223
|
panels: IPanel[];
|
|
221
|
-
|
|
222
|
-
questions?: IQuestions;
|
|
224
|
+
questions: IQuestions;
|
|
223
225
|
validations: IValidation[];
|
|
224
226
|
visibilityRules: IVisibilityRule[];
|
|
225
227
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questionnaire_json.d.ts","sourceRoot":"","sources":["../../src/core/questionnaire_json.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC;AAED,
|
|
1
|
+
{"version":3,"file":"questionnaire_json.d.ts","sourceRoot":"","sources":["../../src/core/questionnaire_json.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const DatePartsComponentSchema = z.enum(["day", "month", "year", "hour", "minute"]);
|
|
3
3
|
//# sourceMappingURL=questionnaire_json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questionnaire_json.js","sourceRoot":"","sources":["../../src/core/questionnaire_json.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"questionnaire_json.js","sourceRoot":"","sources":["../../src/core/questionnaire_json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC"}
|
package/lib/core/response.d.ts
CHANGED
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
import { Questionnaire } from "./questionnaire";
|
|
2
|
-
import {
|
|
2
|
+
import { IPanel, ITranslatable, IValidation } from "./questionnaire_json";
|
|
3
|
+
import { z } from "zod";
|
|
3
4
|
export interface IAnswerFromServer {
|
|
4
5
|
value: IValues;
|
|
5
6
|
flags: IFlags;
|
|
6
7
|
}
|
|
7
|
-
export declare
|
|
8
|
+
export declare const NumberAnswerSchema: z.ZodNumber;
|
|
9
|
+
export declare const StringAnswerSchema: z.ZodString;
|
|
10
|
+
export declare const MultiSelectAnswerSchema: z.ZodEffects<z.ZodSet<z.ZodString>, Set<string>, unknown>;
|
|
11
|
+
export declare const DatePartsAnswerSchema: z.ZodEffects<z.ZodMap<z.ZodEnum<["day", "month", "year", "hour", "minute"]>, z.ZodString>, Map<"day" | "month" | "year" | "hour" | "minute", string>, unknown>;
|
|
12
|
+
export declare type INumberAnswer = z.infer<typeof NumberAnswerSchema>;
|
|
13
|
+
export declare type IStringAnswer = z.infer<typeof StringAnswerSchema>;
|
|
14
|
+
export declare type IMultiSelectAnswer = z.infer<typeof MultiSelectAnswerSchema>;
|
|
15
|
+
export declare type IDatePartsAnswer = z.infer<typeof DatePartsAnswerSchema>;
|
|
16
|
+
export declare type IValue = IStringAnswer | INumberAnswer | IMultiSelectAnswer | IDatePartsAnswer | null | undefined;
|
|
8
17
|
export interface IValues {
|
|
9
18
|
[key: string]: IValue;
|
|
10
19
|
}
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
}
|
|
20
|
+
export declare const FlagsSchema: z.ZodRecord<z.ZodString, z.ZodBoolean>;
|
|
21
|
+
export declare type IFlags = z.infer<typeof FlagsSchema>;
|
|
14
22
|
export interface IError {
|
|
15
23
|
type: IValidation["type"];
|
|
16
24
|
message: ITranslatable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAgD,MAAM,EAAiB,aAAa,EAAE,WAAW,EAAmB,MAAM,sBAAsB,CAAC;AAExJ,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAID,eAAO,MAAM,kBAAkB,aAAoB,CAAC;AACpD,eAAO,MAAM,kBAAkB,aAAoB,CAAC;AACpD,eAAO,MAAM,uBAAuB,2DAA0F,CAAC;AAC/H,eAAO,MAAM,qBAAqB,gKAA4J,CAAC;AAC/L,oBAAY,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC/D,oBAAY,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC/D,oBAAY,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACzE,oBAAY,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACrE,oBAAY,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9G,MAAM,WAAW,OAAO;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,WAAW,wCAAwB,CAAC;AACjD,oBAAY,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEjD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,EAAE,aAAa,CAAA;CACvB;AACD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,UAAU;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM;IACrD,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,aAAK,eAAe,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;AAEpD,qBAAa,QAAQ;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,cAAc,EAAE,eAAe,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAErB,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB;IAanE,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAIlC,SAAS,CAAC,QAAQ,EAAE,eAAe;IAInC,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;IAc5D,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAOhF,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAOvD,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAUpC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IASnC,cAAc;IAMd,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAO9B,UAAU,CAAC,GAAG,EAAE,MAAM;IAQtB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAU1D,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAOtC,QAAQ;IAWR,mBAAmB;IAQnB,SAAS,CAAC,QAAQ,EAAE,MAAM;IAM1B,UAAU,CAAC,QAAQ,EAAE,MAAM;IAM3B,SAAS,CAAC,QAAQ,EAAE,MAAM;CAK3B"}
|
package/lib/core/response.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { buildValidator } from "./validators";
|
|
2
|
+
import { DatePartsComponentSchema } from "./questionnaire_json";
|
|
3
|
+
import { pull } from "lodash";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
// null or empty Set for touched, but answer removed
|
|
6
|
+
// Set for multi_select
|
|
7
|
+
export const NumberAnswerSchema = z.coerce.number();
|
|
8
|
+
export const StringAnswerSchema = z.coerce.string();
|
|
9
|
+
export const MultiSelectAnswerSchema = z.preprocess(((val) => (val instanceof Array) ? new Set(val) : val), z.set(z.string()));
|
|
10
|
+
export const DatePartsAnswerSchema = z.preprocess(((val) => !(val instanceof Map) && val instanceof Object ? new Map(Object.entries(val)) : val), z.map(DatePartsComponentSchema, z.string()));
|
|
11
|
+
export const FlagsSchema = z.record(z.boolean());
|
|
12
|
+
export class Response {
|
|
13
|
+
constructor(questionnaire, answer) {
|
|
8
14
|
this.questionnaire = questionnaire;
|
|
9
15
|
this.values = answer.value;
|
|
10
16
|
this.beenActives = new Set(); // TODO: initialize on questions with answers or just all on edit.
|
|
@@ -16,14 +22,13 @@ var Response = /** @class */ (function () {
|
|
|
16
22
|
this.validate(); // Have required errors on hand, in case the user starts tabbing through immediately
|
|
17
23
|
this.calculateVisibility();
|
|
18
24
|
}
|
|
19
|
-
|
|
25
|
+
onChange(callback) {
|
|
20
26
|
this.changeHandlers.push(callback);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
var _this = this;
|
|
27
|
+
}
|
|
28
|
+
offChange(callback) {
|
|
29
|
+
pull(this.changeHandlers, callback);
|
|
30
|
+
}
|
|
31
|
+
getFieldState(key) {
|
|
27
32
|
return {
|
|
28
33
|
key: key,
|
|
29
34
|
value: this.values[key],
|
|
@@ -32,114 +37,103 @@ var Response = /** @class */ (function () {
|
|
|
32
37
|
errors: this.errors.get(key) || [],
|
|
33
38
|
hidden: !this.isVisible(key),
|
|
34
39
|
isActiveQuestion: this.activeQuestionKey === key,
|
|
35
|
-
setAsActiveQuestion:
|
|
36
|
-
setValue:
|
|
40
|
+
setAsActiveQuestion: () => this.setActiveQuestion(key),
|
|
41
|
+
setValue: (newValue) => this.setValue(key, newValue),
|
|
37
42
|
};
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
var _this = this;
|
|
43
|
+
}
|
|
44
|
+
getValidationFieldState(key) {
|
|
41
45
|
return {
|
|
42
46
|
value: this.values[key],
|
|
43
|
-
addError:
|
|
47
|
+
addError: (error) => this.addError(key, error)
|
|
44
48
|
};
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
var _this = this;
|
|
49
|
+
}
|
|
50
|
+
setValue(key, value) {
|
|
48
51
|
this.values[key] = value;
|
|
49
52
|
this.validate();
|
|
50
53
|
this.calculateVisibility();
|
|
51
|
-
this.changeHandlers.forEach(
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
var _this = this;
|
|
54
|
+
this.changeHandlers.forEach(handler => handler(this));
|
|
55
|
+
}
|
|
56
|
+
setActiveQuestion(key) {
|
|
55
57
|
if (this.activeQuestionKey === key)
|
|
56
58
|
return;
|
|
57
59
|
if (this.activeQuestionKey) { // we set when made inactive
|
|
58
60
|
this.beenActives.add(this.activeQuestionKey);
|
|
59
61
|
}
|
|
60
62
|
this.activeQuestionKey = key;
|
|
61
|
-
this.changeHandlers.forEach(
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
this.changeHandlers.forEach(handler => handler(this));
|
|
64
|
+
}
|
|
65
|
+
addError(key, error) {
|
|
66
|
+
const questionErrors = this.errors.get(key) || [];
|
|
65
67
|
questionErrors.push(error);
|
|
66
68
|
this.errors.set(key, questionErrors); // for if it did not exist yet.
|
|
67
|
-
}
|
|
69
|
+
}
|
|
68
70
|
// Use to show errors for skipped answers
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
_this.touchField(question.key);
|
|
71
|
+
touchAllFields() {
|
|
72
|
+
Object.values(this.questionnaire.questions).forEach(question => {
|
|
73
|
+
this.touchField(question.key);
|
|
73
74
|
});
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
panel.items.forEach(function (item) {
|
|
75
|
+
}
|
|
76
|
+
touchPanelFields(panel) {
|
|
77
|
+
panel.items.forEach((item) => {
|
|
78
78
|
if (item.type !== "question")
|
|
79
79
|
return;
|
|
80
|
-
|
|
80
|
+
this.touchField(item.key);
|
|
81
81
|
});
|
|
82
|
-
}
|
|
83
|
-
|
|
82
|
+
}
|
|
83
|
+
touchField(key) {
|
|
84
84
|
this.beenActives.add(key);
|
|
85
85
|
if (this.values[key] === undefined) {
|
|
86
86
|
this.setValue(key, null);
|
|
87
87
|
}
|
|
88
|
-
}
|
|
88
|
+
}
|
|
89
89
|
// Returns null or the key of first visible question with an error.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
var firstError = panel.items.find(function (item) {
|
|
90
|
+
firstNotValidQuestionInPanel(panel) {
|
|
91
|
+
const firstError = panel.items.find((item) => {
|
|
93
92
|
if (item.type !== "question")
|
|
94
93
|
return false;
|
|
95
|
-
if (!
|
|
94
|
+
if (!this.isVisible(item.key))
|
|
96
95
|
return false;
|
|
97
|
-
if ((
|
|
96
|
+
if ((this.errors.get(item.key) || []).length > 0)
|
|
98
97
|
return true;
|
|
99
98
|
});
|
|
100
99
|
return (firstError === null || firstError === void 0 ? void 0 : firstError.key) || null;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
var errPanel = this.questionnaire.panels.find(function (panel) { return _this.firstNotValidQuestionInPanel(panel); });
|
|
100
|
+
}
|
|
101
|
+
firstNotValidQuestion() {
|
|
102
|
+
const errPanel = this.questionnaire.panels.find((panel) => this.firstNotValidQuestionInPanel(panel));
|
|
105
103
|
if (errPanel == null)
|
|
106
104
|
return null;
|
|
107
105
|
return this.firstNotValidQuestionInPanel(errPanel);
|
|
108
|
-
}
|
|
106
|
+
}
|
|
109
107
|
// We validate each question independent of visibility.
|
|
110
|
-
|
|
111
|
-
var _this = this;
|
|
108
|
+
validate() {
|
|
112
109
|
this.errors = new Map();
|
|
113
|
-
this.questionnaire.validations.forEach(
|
|
114
|
-
|
|
115
|
-
validator && validator.validate(
|
|
110
|
+
this.questionnaire.validations.forEach(validation => {
|
|
111
|
+
const validator = buildValidator(validation);
|
|
112
|
+
validator && validator.validate(this);
|
|
116
113
|
});
|
|
117
114
|
if (this.errors.size > 0)
|
|
118
115
|
console.log(this.errors);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
var _this = this;
|
|
116
|
+
}
|
|
117
|
+
calculateVisibility() {
|
|
122
118
|
this.visibility = new Map();
|
|
123
|
-
this.questionnaire.visibilityRules.forEach(
|
|
124
|
-
rule.runAgainst(
|
|
119
|
+
this.questionnaire.visibilityRules.forEach(rule => {
|
|
120
|
+
rule.runAgainst(this);
|
|
125
121
|
});
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
|
|
122
|
+
}
|
|
123
|
+
markShown(fieldKey) {
|
|
124
|
+
const visibility = this.visibility.get(fieldKey) || { shown: false, hidden: false };
|
|
129
125
|
visibility.shown = true;
|
|
130
126
|
this.visibility.set(fieldKey, visibility);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
127
|
+
}
|
|
128
|
+
markHidden(fieldKey) {
|
|
129
|
+
const visibility = this.visibility.get(fieldKey) || { shown: false, hidden: false };
|
|
134
130
|
visibility.hidden = true;
|
|
135
131
|
this.visibility.set(fieldKey, visibility);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
132
|
+
}
|
|
133
|
+
isVisible(fieldKey) {
|
|
134
|
+
const visibility = this.visibility.get(fieldKey) || { shown: false, hidden: false };
|
|
135
|
+
const defaultInvisible = this.questionnaire.getField(fieldKey).defaultInvisible;
|
|
140
136
|
return visibility.shown || (!visibility.hidden && !defaultInvisible);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
}());
|
|
144
|
-
exports.Response = Response;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
145
139
|
//# sourceMappingURL=response.js.map
|
package/lib/core/response.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Questionnaire } from "./questionnaire";
|
|
2
|
+
import { IAnswerFromServer } from "./response";
|
|
3
|
+
export declare class ResponseParseError extends Error {
|
|
4
|
+
}
|
|
5
|
+
export interface IResponseJson {
|
|
6
|
+
flags: unknown;
|
|
7
|
+
textvars: unknown;
|
|
8
|
+
value: unknown;
|
|
9
|
+
}
|
|
10
|
+
export declare const convertAndValidateResponseJson: (responseJson: IResponseJson, questionnaire: Questionnaire) => IAnswerFromServer;
|
|
11
|
+
//# sourceMappingURL=response_json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response_json.d.ts","sourceRoot":"","sources":["../../src/core/response_json.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EACuE,MAAM,YAAY,CAAC;AAEpH,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAGD,eAAO,MAAM,8BAA8B,iBAAkB,aAAa,iBAAiB,aAAa,KAAG,iBAK1G,CAAA"}
|