kcommons 18.23.2 → 18.24.0

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.
@@ -16,6 +16,11 @@ export declare enum EXTRA_FORM_ANSWERS_INLCUDE {
16
16
  company_vendor = "company_vendor",
17
17
  company_customer = "company_customer"
18
18
  }
19
+ export declare enum CONDITIONAL_QUESTION_ANS {
20
+ YES = "YES",
21
+ NO = "NO",
22
+ NOT_APPLICABLE = "NOT_APPLICABLE"
23
+ }
19
24
  export interface IEXtraFormAnswers {
20
25
  id: string;
21
26
  parent_que_id: string;
@@ -36,6 +41,7 @@ export interface IEXtraFormAnswers {
36
41
  deleted_at: string | null;
37
42
  created_at: string;
38
43
  updated_at: string;
44
+ conditional_ans: CONDITIONAL_QUESTION_ANS | null;
39
45
  parent_que: INestedExtraFormQuestions | null;
40
46
  company: INestedCompany | null;
41
47
  user: INestedUser | null;
@@ -48,6 +54,7 @@ export interface IEXtraFormAnswers {
48
54
  export interface INestedExtraFormAnswer extends Omit<IEXtraFormAnswers, "parent_que" | "company" | "user" | "vendor" | "vendor_onboarding_request" | "scores" | "company_vendor" | "company_customer"> {
49
55
  }
50
56
  export interface IExtraFormAnswerInput extends Pick<IEXtraFormAnswers, "parent_que_id" | "date_ans" | "text_ans" | "yes_no_ans" | "keywords_ans" | "selected_opts_ans" | "upload_link" | "metadata"> {
57
+ conditional_ans?: CONDITIONAL_QUESTION_ANS | null;
51
58
  }
52
59
  /** @description This is the type of response which will include all the core question related answers */
53
60
  export interface IExtraCoreFormAnswers {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EXTRA_FORM_ANSWERS_INLCUDE = void 0;
3
+ exports.CONDITIONAL_QUESTION_ANS = exports.EXTRA_FORM_ANSWERS_INLCUDE = void 0;
4
4
  var EXTRA_FORM_ANSWERS_INLCUDE;
5
5
  (function (EXTRA_FORM_ANSWERS_INLCUDE) {
6
6
  EXTRA_FORM_ANSWERS_INLCUDE["parent_que"] = "parent_que";
@@ -12,3 +12,9 @@ var EXTRA_FORM_ANSWERS_INLCUDE;
12
12
  EXTRA_FORM_ANSWERS_INLCUDE["company_vendor"] = "company_vendor";
13
13
  EXTRA_FORM_ANSWERS_INLCUDE["company_customer"] = "company_customer";
14
14
  })(EXTRA_FORM_ANSWERS_INLCUDE || (exports.EXTRA_FORM_ANSWERS_INLCUDE = EXTRA_FORM_ANSWERS_INLCUDE = {}));
15
+ var CONDITIONAL_QUESTION_ANS;
16
+ (function (CONDITIONAL_QUESTION_ANS) {
17
+ CONDITIONAL_QUESTION_ANS["YES"] = "YES";
18
+ CONDITIONAL_QUESTION_ANS["NO"] = "NO";
19
+ CONDITIONAL_QUESTION_ANS["NOT_APPLICABLE"] = "NOT_APPLICABLE";
20
+ })(CONDITIONAL_QUESTION_ANS || (exports.CONDITIONAL_QUESTION_ANS = CONDITIONAL_QUESTION_ANS = {}));
@@ -8,6 +8,8 @@ export type TExtraQueAnsType = string | string[] | boolean;
8
8
  export type TExtraFormSubmitVals = Record<string, {
9
9
  ans: TExtraQueAnsType;
10
10
  metadata: string | null;
11
+ /** Attachment for CONDITIONAL questions (required when ans is YES) */
12
+ upload_link?: string | null;
11
13
  }>;
12
14
  export interface IExtraFormFieldState {
13
15
  validationSchema: z.ZodTypeAny;
@@ -29,7 +31,8 @@ export declare enum CONFIGURABLE_FORM_QUESTION_TYPES {
29
31
  UPLOAD = "UPLOAD",
30
32
  KEYWORDS = "KEYWORDS",
31
33
  DATEPICKER = "DATEPICKER",
32
- FSSAI_VERIFICATION = "FSSAI_VERIFICATION"
34
+ FSSAI_VERIFICATION = "FSSAI_VERIFICATION",
35
+ CONDITIONAL = "CONDITIONAL"
33
36
  }
34
37
  export declare enum EXTRA_FORM_QUESTIONS_INCLUDE {
35
38
  company = "company",
@@ -19,6 +19,7 @@ var CONFIGURABLE_FORM_QUESTION_TYPES;
19
19
  CONFIGURABLE_FORM_QUESTION_TYPES["KEYWORDS"] = "KEYWORDS";
20
20
  CONFIGURABLE_FORM_QUESTION_TYPES["DATEPICKER"] = "DATEPICKER";
21
21
  CONFIGURABLE_FORM_QUESTION_TYPES["FSSAI_VERIFICATION"] = "FSSAI_VERIFICATION";
22
+ CONFIGURABLE_FORM_QUESTION_TYPES["CONDITIONAL"] = "CONDITIONAL";
22
23
  // CONTACT_NUMBER = "CONTACT_NUMBER",
23
24
  // CIN_VERIFICATION = "CIN_VERIFICATION",
24
25
  // GST_VERIFICATION = "GST_VERIFICATION",
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { INestedExtraFormQuestions } from "../../typings/settings/form/extraFormQues.typings";
3
+ import { CONDITIONAL_QUESTION_ANS } from "../../typings/settings/form/extraFormAns.typings";
3
4
  export declare function formatValidationSchema(que: INestedExtraFormQuestions): z.ZodObject<{
4
5
  ans: z.ZodString | z.ZodNullable<z.ZodString>;
5
6
  metadata: z.ZodNullable<z.ZodString>;
@@ -27,4 +28,24 @@ export declare function formatValidationSchema(que: INestedExtraFormQuestions):
27
28
  }, {
28
29
  metadata: string | null;
29
30
  ans: boolean | null;
31
+ }> | z.ZodEffects<z.ZodObject<{
32
+ ans: z.ZodNativeEnum<typeof CONDITIONAL_QUESTION_ANS> | z.ZodNullable<z.ZodNativeEnum<typeof CONDITIONAL_QUESTION_ANS>>;
33
+ upload_link: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
+ metadata: z.ZodNullable<z.ZodString>;
35
+ }, "strip", z.ZodTypeAny, {
36
+ metadata: string | null;
37
+ ans: CONDITIONAL_QUESTION_ANS | null;
38
+ upload_link?: string | null | undefined;
39
+ }, {
40
+ metadata: string | null;
41
+ ans: CONDITIONAL_QUESTION_ANS | null;
42
+ upload_link?: string | null | undefined;
43
+ }>, {
44
+ metadata: string | null;
45
+ ans: CONDITIONAL_QUESTION_ANS | null;
46
+ upload_link?: string | null | undefined;
47
+ }, {
48
+ metadata: string | null;
49
+ ans: CONDITIONAL_QUESTION_ANS | null;
50
+ upload_link?: string | null | undefined;
30
51
  }> | z.ZodAny;
@@ -4,6 +4,7 @@ exports.formatValidationSchema = formatValidationSchema;
4
4
  const zod_1 = require("zod");
5
5
  const extraFormQues_typings_1 = require("../../typings/settings/form/extraFormQues.typings");
6
6
  const zod_constant_1 = require("../../constants/zod.constant");
7
+ const extraFormAns_typings_1 = require("../../typings/settings/form/extraFormAns.typings");
7
8
  function formatValidationSchema(que) {
8
9
  switch (que.que_type) {
9
10
  case extraFormQues_typings_1.CONFIGURABLE_FORM_QUESTION_TYPES.TEXT:
@@ -85,6 +86,28 @@ function formatValidationSchema(que) {
85
86
  : zod_1.z.string().nullable(),
86
87
  metadata: zod_1.z.string().nullable(),
87
88
  });
89
+ case extraFormQues_typings_1.CONFIGURABLE_FORM_QUESTION_TYPES.CONDITIONAL:
90
+ // An answer is needed only when the question is required; YES makes the attachment mandatory
91
+ return zod_1.z
92
+ .object({
93
+ ans: que.required
94
+ ? zod_1.z.nativeEnum(extraFormAns_typings_1.CONDITIONAL_QUESTION_ANS, {
95
+ message: zod_constant_1.ZOD_ERR_MESSAGES.REQUIRED,
96
+ })
97
+ : zod_1.z.nativeEnum(extraFormAns_typings_1.CONDITIONAL_QUESTION_ANS).nullable(),
98
+ upload_link: zod_1.z.string().nullable().optional(),
99
+ metadata: zod_1.z.string().nullable(),
100
+ })
101
+ .superRefine((val, ctx) => {
102
+ var _a;
103
+ if (val.ans === extraFormAns_typings_1.CONDITIONAL_QUESTION_ANS.YES &&
104
+ !((_a = val.upload_link) === null || _a === void 0 ? void 0 : _a.trim()))
105
+ ctx.addIssue({
106
+ code: zod_1.z.ZodIssueCode.custom,
107
+ path: ["upload_link"],
108
+ message: zod_constant_1.ZOD_ERR_MESSAGES.REQUIRED,
109
+ });
110
+ });
88
111
  // case CONFIGURABLE_FORM_QUESTION_TYPES.PAN_VERIFICATION:
89
112
  // // return z.string().nullable();
90
113
  // return z.object({
@@ -3,10 +3,17 @@ import { INestedExtraFormQuestions } from "../../typings/settings/form/extraForm
3
3
  export declare function getDefaultValue(quesData: INestedExtraFormQuestions, answers: INestedExtraFormAnswer[]): {
4
4
  ans: string | null;
5
5
  metadata: string;
6
+ upload_link?: undefined;
6
7
  } | {
7
8
  ans: string[];
8
9
  metadata: string;
10
+ upload_link?: undefined;
9
11
  } | {
10
12
  ans: boolean;
11
13
  metadata: string;
14
+ upload_link?: undefined;
15
+ } | {
16
+ ans: import("../../typings/settings/form/extraFormAns.typings").CONDITIONAL_QUESTION_ANS | null;
17
+ upload_link: string | null;
18
+ metadata: string;
12
19
  } | undefined;
@@ -47,6 +47,13 @@ function getDefaultValue(quesData, answers) {
47
47
  ans: (targetAns === null || targetAns === void 0 ? void 0 : targetAns.text_ans) || null,
48
48
  metadata: (targetAns === null || targetAns === void 0 ? void 0 : targetAns.metadata) || "{}",
49
49
  };
50
+ case extraFormQues_typings_1.CONFIGURABLE_FORM_QUESTION_TYPES.CONDITIONAL:
51
+ // No option is pre-selected by default
52
+ return {
53
+ ans: (targetAns === null || targetAns === void 0 ? void 0 : targetAns.conditional_ans) || null,
54
+ upload_link: (targetAns === null || targetAns === void 0 ? void 0 : targetAns.upload_link) || null,
55
+ metadata: (targetAns === null || targetAns === void 0 ? void 0 : targetAns.metadata) || "{}",
56
+ };
50
57
  // case CONFIGURABLE_FORM_QUESTION_TYPES.PAN_VERIFICATION:
51
58
  // return {
52
59
  // ans: targetAns?.text_ans || null,
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseExtraFormSubmitVals = parseExtraFormSubmitVals;
4
+ const extraFormAns_typings_1 = require("../../typings/settings/form/extraFormAns.typings");
4
5
  const extraFormQues_typings_1 = require("../../typings/settings/form/extraFormQues.typings");
5
6
  function parseExtraFormSubmitVals(question, ans) {
6
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
7
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
7
8
  const resObj = {
8
9
  parent_que_id: question.id,
9
10
  date_ans: null,
@@ -13,6 +14,7 @@ function parseExtraFormSubmitVals(question, ans) {
13
14
  selected_opts_ans: [],
14
15
  upload_link: null,
15
16
  metadata: null,
17
+ conditional_ans: null,
16
18
  };
17
19
  switch (question.que_type) {
18
20
  case extraFormQues_typings_1.CONFIGURABLE_FORM_QUESTION_TYPES.TEXT:
@@ -47,6 +49,17 @@ function parseExtraFormSubmitVals(question, ans) {
47
49
  resObj.text_ans = (_q = ans[question.id]) === null || _q === void 0 ? void 0 : _q.ans;
48
50
  resObj.metadata = ((_r = ans[question.id]) === null || _r === void 0 ? void 0 : _r.metadata) || null;
49
51
  break;
52
+ case extraFormQues_typings_1.CONFIGURABLE_FORM_QUESTION_TYPES.CONDITIONAL: {
53
+ const conditionalAns = (_s = ans[question.id]) === null || _s === void 0 ? void 0 : _s.ans;
54
+ resObj.conditional_ans = conditionalAns;
55
+ // Attachment only goes with YES; No / Not Applicable drop it
56
+ resObj.upload_link =
57
+ conditionalAns === extraFormAns_typings_1.CONDITIONAL_QUESTION_ANS.YES
58
+ ? ((_t = ans[question.id]) === null || _t === void 0 ? void 0 : _t.upload_link) || null
59
+ : null;
60
+ resObj.metadata = ((_u = ans[question.id]) === null || _u === void 0 ? void 0 : _u.metadata) || null;
61
+ break;
62
+ }
50
63
  // case CONFIGURABLE_FORM_QUESTION_TYPES.PAN_VERIFICATION:
51
64
  // resObj.text_ans = ans[question.id]?.ans as string | null;
52
65
  // resObj.metadata = ans[question.id]?.metadata || null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kcommons",
3
- "version": "18.23.2",
3
+ "version": "18.24.0",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",