@socotra/ec-react-utils 0.0.0-alpha.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.
@@ -0,0 +1,110 @@
1
+ import { AccountRequest } from '@socotra/ec-react-schemas';
2
+ import { AccountResponse } from '@socotra/ec-react-schemas';
3
+ import { DataModel } from '@socotra/ec-react-schemas';
4
+ import { DataTypeConfigRecord } from '@socotra/ec-react-schemas';
5
+ import { ElementResponse } from '@socotra/ec-react-schemas';
6
+ import { FieldConfigRecord } from '@socotra/ec-react-schemas';
7
+ import { QuoteRequest } from '@socotra/ec-react-schemas';
8
+ import { QuoteResponse } from '@socotra/ec-react-schemas';
9
+ import { RJSFValidationError } from '@rjsf/utils';
10
+
11
+ export declare const dataModelToJSONSchema: (args: DataModelToJsonSchemaProps) => any;
12
+
13
+ declare interface DataModelToJsonSchemaProps {
14
+ data: FieldConfigRecord;
15
+ dataTypes?: DataTypeConfigRecord;
16
+ scope: 'P' | 'Q';
17
+ rootDisplayName: string;
18
+ account?: AccountResponse;
19
+ quote?: QuoteResponse;
20
+ element?: ElementResponse;
21
+ }
22
+
23
+ export declare const getAccountRequest: (formData: TODO) => AccountRequest;
24
+
25
+ export declare const getQuoteElementRequest: ({ formData, locator, }: GetQuoteElementRequestAttributes) => QuoteRequest;
26
+
27
+ declare type GetQuoteElementRequestAttributes = {
28
+ formData: {
29
+ [key: string]: unknown;
30
+ };
31
+ locator: string;
32
+ };
33
+
34
+ export declare const getQuoteRequest: ({ formData, hideDefaultFields, hideConfiguredFields, }: GetQuoteRequestAttributes) => AccountRequest;
35
+
36
+ declare type GetQuoteRequestAttributes = {
37
+ formData: object;
38
+ hideDefaultFields: true;
39
+ hideConfiguredFields: true;
40
+ } | {
41
+ formData: QuoteDefaultFields;
42
+ hideDefaultFields: false;
43
+ hideConfiguredFields: true;
44
+ } | {
45
+ formData: TODO;
46
+ hideDefaultFields: true;
47
+ hideConfiguredFields: false;
48
+ } | {
49
+ formData: QuoteDefaultFields & TODO;
50
+ hideDefaultFields: false;
51
+ hideConfiguredFields: false;
52
+ };
53
+
54
+ /**
55
+ * Takes an element type and splits the postfix scope from the base model name. E.g., 'PersonalAutoQuote' becomes ['PersonalAuto', 'Quote']
56
+ * @param elementType The element type to parse, e.g. `element.type` from an `ElementResponse`
57
+ * @returns [elementName: string, scope: 'Quote' | 'QuickQuote' | 'Policy' | null]
58
+ */
59
+ export declare const parseElementTypeAndScopeByElementType: (elementType: string) => [elementName: string, scope: 'Quote' | 'QuickQuote' | 'Policy' | null];
60
+
61
+ declare interface QuoteDefaultFields {
62
+ delinquencyPlanName: string;
63
+ startTime: string;
64
+ endTime: string;
65
+ currency: string;
66
+ expirationTime: string;
67
+ timezone: string;
68
+ }
69
+
70
+ /**
71
+ * Looks through a data model for a matching element type and returns the element model
72
+ * @param element The element to retrieve the data model for
73
+ * @param dataModel The full resolved data model to search
74
+ * @returns ElementConfig
75
+ */
76
+ export declare function retrieveDataModelFromElement(element: ElementResponse, dataModel: DataModel): {
77
+ displayName?: string | undefined;
78
+ abstract?: boolean | undefined;
79
+ extend?: string | undefined;
80
+ data?: Record<string, {
81
+ displayName?: string | undefined;
82
+ defaultValue?: string | undefined;
83
+ type?: string | undefined;
84
+ minLength?: number | undefined;
85
+ maxLength?: number | undefined;
86
+ regex?: string | undefined;
87
+ min?: string | undefined;
88
+ multiline?: boolean | undefined;
89
+ max?: string | undefined;
90
+ options?: string[] | undefined;
91
+ overrides?: string | undefined;
92
+ scope?: string | undefined;
93
+ inherited?: boolean | undefined;
94
+ precision?: number | undefined;
95
+ readOnly?: boolean | undefined;
96
+ }> | undefined;
97
+ contents?: string[] | undefined;
98
+ };
99
+
100
+ /**
101
+ * Takes the root element of a quote and a locator and returns the element with the matching locator
102
+ * @param quoteElement The root element from the QuoteResponse
103
+ * @param locator The locator of the element to retrieve
104
+ * @returns ElementResponse | undefined
105
+ */
106
+ export declare function retrieveElementFromQuoteByLocator(quoteElement: ElementResponse, locator: string): ElementResponse | undefined;
107
+
108
+ export declare function transformErrors(errors: RJSFValidationError[]): RJSFValidationError[];
109
+
110
+ export { }
@@ -0,0 +1,245 @@
1
+ const X = (i) => {
2
+ const { data: e, scope: a, dataTypes: n, rootDisplayName: c, account: r, quote: l, element: u } = i, V = [];
3
+ let Q = {};
4
+ const K = Object.fromEntries(
5
+ Object.entries(e ?? {}).filter(([, m]) => {
6
+ var o;
7
+ const s = (o = m.scope) == null ? void 0 : o.split(",").map((f) => f.trim());
8
+ return !!(!s || a === "P" && (s != null && s.includes("P")) || s != null && s.includes("Q") || a === "Q" && (s != null && s.includes("Q")));
9
+ }).map(([m, s]) => {
10
+ var I, O, P, j, F, A, N, R, B, C, D, w, G, z, U, Z, J;
11
+ let o = !1, f = !1, T = !1;
12
+ const y = s.displayName ?? m, H = (I = s.type) == null ? void 0 : I.slice(-1), h = s.maxLength, x = s.minLength, q = s.max, $ = s.min, E = s.regex;
13
+ let t = s.type ?? "", p;
14
+ switch (H) {
15
+ case "*":
16
+ f = !0, o = !0, t = t == null ? void 0 : t.split("*")[0];
17
+ break;
18
+ case "?":
19
+ t = t == null ? void 0 : t.split("?")[0], o = !0;
20
+ break;
21
+ case "+":
22
+ f = !0, t = t == null ? void 0 : t.split("+")[0];
23
+ break;
24
+ case "!":
25
+ t = t == null ? void 0 : t.split("!")[0];
26
+ break;
27
+ }
28
+ switch (t) {
29
+ case "string":
30
+ t = "string";
31
+ break;
32
+ case "int":
33
+ case "long":
34
+ t = "integer";
35
+ break;
36
+ case "decimal":
37
+ t = "number";
38
+ break;
39
+ case "dateTime":
40
+ t = "string", p = "date-time";
41
+ break;
42
+ case "date":
43
+ t = "string", p = "date";
44
+ break;
45
+ case "boolean":
46
+ case "bool":
47
+ t = "boolean";
48
+ break;
49
+ default:
50
+ T = !0;
51
+ break;
52
+ }
53
+ if (!o && !T && !f && V.push(m), T) {
54
+ const g = n == null ? void 0 : n[t];
55
+ if (g) {
56
+ let b = f ? [] : {};
57
+ const W = X({
58
+ data: g.data ?? {},
59
+ scope: a,
60
+ dataTypes: n,
61
+ rootDisplayName: m
62
+ });
63
+ return l && (P = (O = l.element) == null ? void 0 : O.data) != null && P[m] && (b = (F = (j = l.element) == null ? void 0 : j.data) == null ? void 0 : F[m]), u && (A = u == null ? void 0 : u.data) != null && A[m] && (b = (N = u == null ? void 0 : u.data) == null ? void 0 : N[m]), r && (R = r == null ? void 0 : r.data) != null && R[m] && (b = (B = r == null ? void 0 : r.data) == null ? void 0 : B[m]), Q = {
64
+ ...Q,
65
+ [`${t}`]: W
66
+ }, f ? [
67
+ m,
68
+ {
69
+ title: m.replace(/([A-Z])/g, " $1").replace(/^./, function(L) {
70
+ return L.toUpperCase();
71
+ }),
72
+ type: "array",
73
+ default: b,
74
+ items: {
75
+ $ref: `#/definitions/${t}`
76
+ },
77
+ ...!o && { minItems: 1 }
78
+ }
79
+ ] : [
80
+ m,
81
+ {
82
+ title: m.replace(/([A-Z])/g, " $1").replace(/^./, function(L) {
83
+ return L.toUpperCase();
84
+ }),
85
+ default: b,
86
+ $ref: `#/definitions/${t}`
87
+ }
88
+ ];
89
+ }
90
+ }
91
+ let d = "";
92
+ if (r) {
93
+ const g = (r == null ? void 0 : r.state) === "validated" ? m.charAt(0).toLowerCase() + m.slice(1) : m;
94
+ d = (C = r == null ? void 0 : r.data) != null && C[g] ? (D = r == null ? void 0 : r.data) == null ? void 0 : D[g] : t === "boolean" ? !!s.defaultValue : s.defaultValue;
95
+ }
96
+ return l && (d = (G = (w = l.element) == null ? void 0 : w.data) != null && G[m] ? (U = (z = l.element) == null ? void 0 : z.data) == null ? void 0 : U[m] : t === "boolean" ? !!s.defaultValue : s.defaultValue), u && (d = (Z = u == null ? void 0 : u.data) != null && Z[m] ? (J = u == null ? void 0 : u.data) == null ? void 0 : J[m] : t === "boolean" ? !!s.defaultValue : s.defaultValue), f ? [
97
+ m,
98
+ {
99
+ title: y,
100
+ type: "array",
101
+ default: d,
102
+ items: {
103
+ type: t,
104
+ ...h && { maxLength: h },
105
+ ...x && { minLength: x },
106
+ ...$ && { min: $ },
107
+ ...q && { max: q },
108
+ ...p && { format: p },
109
+ ...E && { pattern: s.regex }
110
+ },
111
+ ...!o && { minItems: 1 }
112
+ }
113
+ ] : [
114
+ m,
115
+ {
116
+ title: y,
117
+ type: t,
118
+ ...d && { default: d },
119
+ ...x && { minLength: x },
120
+ ...h && { maxLength: h },
121
+ ...$ && { minimum: parseInt($) },
122
+ ...q && { maximum: parseInt(q) },
123
+ ...p && { format: p },
124
+ ...s.options && { enum: s.options },
125
+ ...E && { pattern: s.regex }
126
+ }
127
+ ];
128
+ })
129
+ );
130
+ return {
131
+ title: c,
132
+ type: "object",
133
+ definitions: Q,
134
+ required: V,
135
+ properties: K
136
+ };
137
+ }, ee = (i) => {
138
+ const e = i.autoValidate, a = i.delinquencyPlanName, n = i.accountType, c = Object.keys(i).reduce(
139
+ (l, u) => (u !== "accountType" && u !== "autoValidate" && u !== "delinquencyPlanName" && (l[u] = i[u]), l),
140
+ {}
141
+ );
142
+ return {
143
+ autoValidate: e,
144
+ delinquencyPlanName: a,
145
+ type: n,
146
+ data: c
147
+ };
148
+ }, te = ({
149
+ formData: i,
150
+ locator: e
151
+ }) => ({
152
+ elements: [{
153
+ locator: e,
154
+ setData: i
155
+ }]
156
+ });
157
+ function Y(i) {
158
+ const {
159
+ delinquencyPlanName: e,
160
+ startTime: a,
161
+ endTime: n,
162
+ currency: c,
163
+ expirationTime: r,
164
+ timezone: l,
165
+ ...u
166
+ } = i;
167
+ return u;
168
+ }
169
+ function _(i) {
170
+ const {
171
+ delinquencyPlanName: e,
172
+ startTime: a,
173
+ endTime: n,
174
+ currency: c,
175
+ expirationTime: r,
176
+ timezone: l
177
+ } = i;
178
+ return {
179
+ delinquencyPlanName: e,
180
+ startTime: a,
181
+ endTime: n,
182
+ currency: c,
183
+ expirationTime: r,
184
+ timezone: l
185
+ };
186
+ }
187
+ const se = ({
188
+ formData: i,
189
+ hideDefaultFields: e,
190
+ hideConfiguredFields: a
191
+ }) => {
192
+ let n = {};
193
+ if (e || (n = {
194
+ ..._(i)
195
+ }), !a) {
196
+ const c = Y(i);
197
+ n = {
198
+ ...n,
199
+ setData: c
200
+ };
201
+ }
202
+ return n;
203
+ }, S = (i) => {
204
+ const e = /^(.*?)(Quote|QuickQuote|Policy)$/, a = i.match(e);
205
+ return a && (a[2] === "Quote" || a[2] === "QuickQuote" || a[2] === "Policy") ? [a[1], a[2]] : [i, null];
206
+ };
207
+ function v(i, e) {
208
+ if (i.locator === e)
209
+ return i;
210
+ if (i.elements)
211
+ for (const a of i.elements) {
212
+ const n = v(a, e);
213
+ if (n)
214
+ return n;
215
+ }
216
+ }
217
+ function ie(i, e) {
218
+ const [a] = S(
219
+ i.type ?? ""
220
+ );
221
+ let n = {};
222
+ return e.exposures && Object.keys(e.exposures).forEach((c) => {
223
+ c === a && e.exposures && (n = e.exposures[c]);
224
+ }), e.coverages && Object.keys(e.coverages).forEach((c) => {
225
+ c === a && e.coverages && (n = e.coverages[c]);
226
+ }), e.policyLines && Object.keys(e.policyLines).forEach((c) => {
227
+ c === a && e.policyLines && (n = e.policyLines[c]);
228
+ }), e.exposureGroups && Object.keys(e.exposureGroups).forEach((c) => {
229
+ c === a && e.exposureGroups && (n = e.exposureGroups[c]);
230
+ }), n;
231
+ }
232
+ function ae(i) {
233
+ return i.map((e) => (e.name === "pattern" && (e.message = `Invalid format, must match pattern ${e.params.pattern}`), e.name === "format" && (e.message = "Invalid format"), e.name === "required" && (e.message = "Required"), e.name === "minItems" && (e.message = `Must have at least ${e.params.limit} item${e.params.limit !== 1 ? "s" : ""}`), e.name === "maxItems" && (e.message = `Must have at most ${e.params.limit} item${e.params.limit !== 1 ? "s" : ""}`), e.name === "type" && (e.message = "Invalid format"), e.name === "maxLength" && (e.message = `Must be at most ${e.params.limit} character${e.params.limit !== 1 ? "s" : ""}`), e.name === "minLength" && (e.message = `Must be at least ${e.params.limit} character${e.params.limit !== 1 ? "s" : ""}`), e.name === "minimum" && (e.message = `Must be greater than or equal to ${e.params.limit}`), e.name === "maximum" && (e.message = `Must be less than or equal to ${e.params.limit}`), e));
234
+ }
235
+ export {
236
+ X as dataModelToJSONSchema,
237
+ ee as getAccountRequest,
238
+ te as getQuoteElementRequest,
239
+ se as getQuoteRequest,
240
+ S as parseElementTypeAndScopeByElementType,
241
+ ie as retrieveDataModelFromElement,
242
+ v as retrieveElementFromQuoteByLocator,
243
+ ae as transformErrors
244
+ };
245
+ //# sourceMappingURL=index.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":["../lib/utils/data-model-to-JSON-schema.ts","../lib/utils/get-account-request.ts","../lib/utils/get-quote-element-request.ts","../lib/utils/get-quote-request.ts","../lib/utils/parse-element-type-and-scope-by-element-type.ts","../lib/utils/retrieve-element-from-quote-by-locator.ts","../lib/utils/retrieve-data-model-from-element.ts","../lib/utils/transform-errors.ts"],"sourcesContent":["import type { RJSFSchema } from '@rjsf/utils';\nimport {\n\tAccountResponse,\n\tDataTypeConfigRecord,\n\tElementResponse,\n\tFieldConfigRecord,\n\tQuoteResponse,\n} from '@socotra/ec-react-schemas';\n\ninterface DataModelToJsonSchemaProps {\n\tdata: FieldConfigRecord;\n\tdataTypes?: DataTypeConfigRecord;\n\tscope: 'P' | 'Q';\n\trootDisplayName: string;\n\taccount?: AccountResponse;\n\tquote?: QuoteResponse;\n\telement?: ElementResponse;\n}\n\nexport const dataModelToJSONSchema = (args: DataModelToJsonSchemaProps) => {\n\tconst { data, scope, dataTypes, rootDisplayName, account, quote, element } =\n\t\targs;\n\n\tconst requiredFields: string[] = [];\n\tlet definitions = {};\n\tconst properties = Object.fromEntries(\n\t\tObject.entries(data ?? {})\n\t\t\t.filter(([, value]) => {\n\t\t\t\tconst dataScope = value.scope?.split(',').map((s) => s.trim());\n\n\t\t\t\tif (!dataScope) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t(scope === 'P' && dataScope?.includes('P')) ||\n\t\t\t\t\tdataScope?.includes('Q')\n\t\t\t\t) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (scope === 'Q' && dataScope?.includes('Q')) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t})\n\t\t\t.map(([key, value]) => {\n\t\t\t\tlet isOptional = false;\n\t\t\t\tlet isArray = false;\n\t\t\t\tlet isCustomDataType = false;\n\t\t\t\tconst displayName = value.displayName ?? key;\n\t\t\t\tconst quantifier = value.type?.slice(-1);\n\t\t\t\tconst maxLength = value.maxLength;\n\t\t\t\tconst minLength = value.minLength;\n\t\t\t\tconst max = value.max;\n\t\t\t\tconst min = value.min;\n\t\t\t\tconst regex = value.regex;\n\t\t\t\tlet type: string = value.type ?? '';\n\t\t\t\tlet format: string | undefined;\n\n\t\t\t\tswitch (quantifier) {\n\t\t\t\t\tcase '*':\n\t\t\t\t\t\tisArray = true;\n\t\t\t\t\t\tisOptional = true;\n\t\t\t\t\t\ttype = type?.split('*')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '?':\n\t\t\t\t\t\ttype = type?.split('?')[0];\n\t\t\t\t\t\tisOptional = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '+':\n\t\t\t\t\t\tisArray = true;\n\t\t\t\t\t\ttype = type?.split('+')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '!':\n\t\t\t\t\t\ttype = type?.split('!')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tswitch (type) {\n\t\t\t\t\t// fields can be either 'string', 'int', 'long', 'decimal', 'dateTime', 'date', 'boolean' in kernel\n\t\t\t\t\t// JSON schema supports 'string', 'integer', 'number', 'boolean', 'null'\n\t\t\t\t\tcase 'string':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'int':\n\t\t\t\t\tcase 'long':\n\t\t\t\t\t\ttype = 'integer';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'decimal':\n\t\t\t\t\t\ttype = 'number';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'dateTime':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tformat = 'date-time';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'date':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tformat = 'date';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\ttype = 'boolean';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tisCustomDataType = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (!isOptional && !isCustomDataType && !isArray) {\n\t\t\t\t\trequiredFields.push(key);\n\t\t\t\t}\n\n\t\t\t\tif (isCustomDataType) {\n\t\t\t\t\tconst customDataType = dataTypes?.[type];\n\t\t\t\t\tif (customDataType) {\n\t\t\t\t\t\tlet defaultValues = isArray ? [] : {};\n\t\t\t\t\t\tconst referenceSchema = dataModelToJSONSchema({\n\t\t\t\t\t\t\tdata: customDataType.data ?? {},\n\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\tdataTypes,\n\t\t\t\t\t\t\trootDisplayName: key,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// find any preset quote or account data for this custom data type\n\t\t\t\t\t\tif (quote) {\n\t\t\t\t\t\t\tif (quote.element?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = quote.element?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (element) {\n\t\t\t\t\t\t\tif (element?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = element?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (account) {\n\t\t\t\t\t\t\tif (account?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = account?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefinitions = {\n\t\t\t\t\t\t\t...definitions,\n\t\t\t\t\t\t\t[`${type}`]: referenceSchema,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (isArray) {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttitle: key\n\t\t\t\t\t\t\t\t\t\t.replace(/([A-Z])/g, ' $1')\n\t\t\t\t\t\t\t\t\t\t// uppercase the first character\n\t\t\t\t\t\t\t\t\t\t.replace(/^./, function (str) {\n\t\t\t\t\t\t\t\t\t\t\treturn str.toUpperCase();\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\t\t\t\tdefault: defaultValues,\n\t\t\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\t\t\t['$ref']: `#/definitions/${type}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t...(!isOptional && { minItems: 1 }),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: key\n\t\t\t\t\t\t\t\t\t.replace(/([A-Z])/g, ' $1')\n\t\t\t\t\t\t\t\t\t// uppercase the first character\n\t\t\t\t\t\t\t\t\t.replace(/^./, function (str) {\n\t\t\t\t\t\t\t\t\t\treturn str.toUpperCase();\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tdefault: defaultValues,\n\t\t\t\t\t\t\t\t['$ref']: `#/definitions/${type}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet defaultValue: string | boolean | object | undefined = '';\n\n\t\t\t\tif (account) {\n\t\t\t\t\t// An account in draft state will always have keys in the same casing as the data model\n\t\t\t\t\t// An account in validated state will have keys in camelCase, so we need to convert the keys to match the way the kernel sets them\n\t\t\t\t\tconst dataKey =\n\t\t\t\t\t\taccount?.state === 'validated'\n\t\t\t\t\t\t\t? key.charAt(0).toLowerCase() + key.slice(1)\n\t\t\t\t\t\t\t: key;\n\n\t\t\t\t\tdefaultValue = account?.data?.[dataKey]\n\t\t\t\t\t\t? account?.data?.[dataKey]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (quote) {\n\t\t\t\t\tdefaultValue = quote.element?.data?.[key]\n\t\t\t\t\t\t? quote.element?.data?.[key]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (element) {\n\t\t\t\t\tdefaultValue = element?.data?.[key]\n\t\t\t\t\t\t? element?.data?.[key]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (isArray) {\n\t\t\t\t\t// if the field is an array, we need to set the type to 'array' and set the items to the type of the array\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: displayName,\n\t\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\t\tdefault: defaultValue,\n\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t...(maxLength && { maxLength }),\n\t\t\t\t\t\t\t\t...(minLength && { minLength }),\n\t\t\t\t\t\t\t\t...(min && { min }),\n\t\t\t\t\t\t\t\t...(max && { max }),\n\t\t\t\t\t\t\t\t...(format && { format }),\n\t\t\t\t\t\t\t\t...(regex && { pattern: value.regex }),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...(!isOptional && { minItems: 1 }),\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\tconst property = [\n\t\t\t\t\tkey,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: displayName,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\t...(defaultValue && { default: defaultValue }),\n\t\t\t\t\t\t...(minLength && { minLength }),\n\t\t\t\t\t\t...(maxLength && { maxLength }),\n\t\t\t\t\t\t...(min && { minimum: parseInt(min) }),\n\t\t\t\t\t\t...(max && { maximum: parseInt(max) }),\n\t\t\t\t\t\t...(format && { format }),\n\t\t\t\t\t\t...(value.options && { enum: value.options }),\n\t\t\t\t\t\t...(regex && { pattern: value.regex }),\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t\treturn property;\n\t\t\t}),\n\t);\n\n\tconst schema: RJSFSchema = {\n\t\ttitle: rootDisplayName,\n\t\ttype: 'object',\n\t\tdefinitions,\n\t\trequired: requiredFields,\n\t\tproperties,\n\t};\n\n\treturn schema;\n};\n","import { AccountRequest } from '@socotra/ec-react-schemas';\n\nexport const getAccountRequest = (formData: TODO): AccountRequest => {\n\tconst autoValidate = formData.autoValidate;\n\tconst delinquencyPlanName = formData.delinquencyPlanName;\n\tconst type = formData.accountType;\n\n\t// filter out the accountType, autoValidate, and delinquencyPlanName\n\tconst data = Object.keys(formData).reduce(\n\t\t(acc, key) => {\n\t\t\tif (\n\t\t\t\tkey !== 'accountType' &&\n\t\t\t\tkey !== 'autoValidate' &&\n\t\t\t\tkey !== 'delinquencyPlanName'\n\t\t\t) {\n\t\t\t\tacc[key] = formData[key];\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t{} as { [key: string]: object },\n\t);\n\n\tconst request = {\n\t\tautoValidate,\n\t\tdelinquencyPlanName,\n\t\ttype,\n\t\tdata,\n\t};\n\n\treturn request;\n};\n","import { ElementRequest, QuoteRequest } from '@socotra/ec-react-schemas';\n\ntype GetQuoteElementRequestAttributes = {\n\tformData: { [key: string]: unknown };\n\tlocator: string;\n};\n\nexport const getQuoteElementRequest = ({\n\tformData,\n\tlocator,\n}: GetQuoteElementRequestAttributes): QuoteRequest => {\n\tconst elementRequest: ElementRequest = {\n\t\tlocator,\n\t\tsetData: formData,\n\t};\n\n\tconst request: QuoteRequest = {\n\t\telements: [elementRequest],\n\t};\n\n\treturn request;\n};\n","import { AccountRequest, QuoteRequest } from '@socotra/ec-react-schemas';\n\ninterface QuoteDefaultFields {\n\tdelinquencyPlanName: string;\n\tstartTime: string;\n\tendTime: string;\n\tcurrency: string;\n\texpirationTime: string;\n\ttimezone: string;\n}\n\ntype GetQuoteRequestAttributes =\n\t| {\n\t\t\tformData: object;\n\t\t\thideDefaultFields: true;\n\t\t\thideConfiguredFields: true;\n\t }\n\t| {\n\t\t\tformData: QuoteDefaultFields;\n\t\t\thideDefaultFields: false;\n\t\t\thideConfiguredFields: true;\n\t }\n\t| {\n\t\t\tformData: TODO;\n\t\t\thideDefaultFields: true;\n\t\t\thideConfiguredFields: false;\n\t }\n\t| {\n\t\t\tformData: QuoteDefaultFields & TODO;\n\t\t\thideDefaultFields: false;\n\t\t\thideConfiguredFields: false;\n\t };\n\nfunction removeQuoteDefaultFields(formData: QuoteDefaultFields & TODO): TODO {\n\tconst {\n\t\tdelinquencyPlanName,\n\t\tstartTime,\n\t\tendTime,\n\t\tcurrency,\n\t\texpirationTime,\n\t\ttimezone,\n\t\t...rest\n\t} = formData;\n\n\treturn rest;\n}\n\nfunction getQuoteDefaultFields(formData: TODO): QuoteDefaultFields {\n\tconst {\n\t\tdelinquencyPlanName,\n\t\tstartTime,\n\t\tendTime,\n\t\tcurrency,\n\t\texpirationTime,\n\t\ttimezone,\n\t} = formData;\n\n\treturn {\n\t\tdelinquencyPlanName,\n\t\tstartTime,\n\t\tendTime,\n\t\tcurrency,\n\t\texpirationTime,\n\t\ttimezone,\n\t};\n}\n\nexport const getQuoteRequest = ({\n\tformData,\n\thideDefaultFields,\n\thideConfiguredFields,\n}: GetQuoteRequestAttributes): AccountRequest => {\n\tlet request: QuoteRequest = {};\n\n\tif (!hideDefaultFields) {\n\t\tconst defaultFields = getQuoteDefaultFields(formData);\n\t\trequest = {\n\t\t\t...defaultFields,\n\t\t};\n\t}\n\n\tif (!hideConfiguredFields) {\n\t\tconst quoteFields = removeQuoteDefaultFields(formData);\n\t\trequest = {\n\t\t\t...request,\n\t\t\tsetData: quoteFields,\n\t\t};\n\t}\n\n\treturn request;\n};\n","/**\n * Takes an element type and splits the postfix scope from the base model name. E.g., 'PersonalAutoQuote' becomes ['PersonalAuto', 'Quote']\n * @param elementType The element type to parse, e.g. `element.type` from an `ElementResponse`\n * @returns [elementName: string, scope: 'Quote' | 'QuickQuote' | 'Policy' | null]\n */\nexport const parseElementTypeAndScopeByElementType = (\n\telementType: string,\n): [elementName: string, scope: 'Quote' | 'QuickQuote' | 'Policy' | null] => {\n\tconst regex = /^(.*?)(Quote|QuickQuote|Policy)$/;\n\tconst match = elementType.match(regex);\n\tif (\n\t\tmatch &&\n\t\t(match[2] === 'Quote' || match[2] === 'QuickQuote' || match[2] === 'Policy')\n\t) {\n\t\treturn [match[1], match[2]]; // match[1] is the base model name, match[2] is the scope\n\t}\n\n\t// Return the original key and null for the scope if no match found\n\treturn [elementType, null];\n};\n","import { ElementResponse } from '@socotra/ec-react-schemas';\n\n/**\n * Takes the root element of a quote and a locator and returns the element with the matching locator\n * @param quoteElement The root element from the QuoteResponse\n * @param locator The locator of the element to retrieve\n * @returns ElementResponse | undefined\n */\nexport function retrieveElementFromQuoteByLocator(\n\tquoteElement: ElementResponse,\n\tlocator: string,\n): ElementResponse | undefined {\n\tif (quoteElement.locator === locator) {\n\t\treturn quoteElement;\n\t}\n\n\tif (quoteElement.elements) {\n\t\tfor (const element of quoteElement.elements) {\n\t\t\tconst foundElement = retrieveElementFromQuoteByLocator(element, locator);\n\t\t\tif (foundElement) {\n\t\t\t\treturn foundElement;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn undefined;\n}\n","import {\n\tDataModel,\n\tElementConfig,\n\tElementResponse,\n} from '@socotra/ec-react-schemas';\n\nimport { parseElementTypeAndScopeByElementType } from './parse-element-type-and-scope-by-element-type';\n\n/**\n * Looks through a data model for a matching element type and returns the element model\n * @param element The element to retrieve the data model for\n * @param dataModel The full resolved data model to search\n * @returns ElementConfig\n */\nexport function retrieveDataModelFromElement(\n\telement: ElementResponse,\n\tdataModel: DataModel,\n) {\n\tconst [elementType] = parseElementTypeAndScopeByElementType(\n\t\telement.type ?? '',\n\t);\n\n\tlet elementModel: ElementConfig = {};\n\n\t// Look in exposures\n\tif (dataModel.exposures) {\n\t\tObject.keys(dataModel.exposures).forEach((exposureName) => {\n\t\t\tif (exposureName === elementType && dataModel.exposures) {\n\t\t\t\telementModel = dataModel.exposures[exposureName];\n\t\t\t}\n\t\t});\n\t}\n\n\t// Look in coverages\n\tif (dataModel.coverages) {\n\t\tObject.keys(dataModel.coverages).forEach((coverageName) => {\n\t\t\tif (coverageName === elementType && dataModel.coverages) {\n\t\t\t\telementModel = dataModel.coverages[coverageName];\n\t\t\t}\n\t\t});\n\t}\n\n\t// Look in policyLines\n\tif (dataModel.policyLines) {\n\t\tObject.keys(dataModel.policyLines).forEach((policyLineName) => {\n\t\t\tif (policyLineName === elementType && dataModel.policyLines) {\n\t\t\t\telementModel = dataModel.policyLines[policyLineName];\n\t\t\t}\n\t\t});\n\t}\n\n\t// look in ExposureGroups\n\tif (dataModel.exposureGroups) {\n\t\tObject.keys(dataModel.exposureGroups).forEach((exposureGroupName) => {\n\t\t\tif (exposureGroupName === elementType && dataModel.exposureGroups) {\n\t\t\t\telementModel = dataModel.exposureGroups[exposureGroupName];\n\t\t\t}\n\t\t});\n\t}\n\n\treturn elementModel;\n}\n","import { type RJSFValidationError } from '@rjsf/utils';\n\nexport function transformErrors(errors: RJSFValidationError[]) {\n\treturn errors.map((error) => {\n\t\tif (error.name === 'pattern') {\n\t\t\terror.message = `Invalid format, must match pattern ${error.params.pattern}`;\n\t\t}\n\t\tif (error.name === 'format') {\n\t\t\terror.message = 'Invalid format';\n\t\t}\n\t\tif (error.name === 'required') {\n\t\t\terror.message = 'Required';\n\t\t}\n\t\tif (error.name === 'minItems') {\n\t\t\terror.message = `Must have at least ${error.params.limit} item${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.name === 'maxItems') {\n\t\t\terror.message = `Must have at most ${error.params.limit} item${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.name === 'type') {\n\t\t\terror.message = 'Invalid format';\n\t\t}\n\t\tif (error.name === 'maxLength') {\n\t\t\terror.message = `Must be at most ${error.params.limit} character${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.name === 'minLength') {\n\t\t\terror.message = `Must be at least ${error.params.limit} character${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.name === 'minimum') {\n\t\t\terror.message = `Must be greater than or equal to ${error.params.limit}`;\n\t\t}\n\t\tif (error.name === 'maximum') {\n\t\t\terror.message = `Must be less than or equal to ${error.params.limit}`;\n\t\t}\n\t\treturn error;\n\t});\n}\n"],"names":["dataModelToJSONSchema","args","data","scope","dataTypes","rootDisplayName","account","quote","element","requiredFields","definitions","properties","value","_a","dataScope","s","key","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","isOptional","isArray","isCustomDataType","displayName","quantifier","maxLength","minLength","max","min","regex","type","format","customDataType","defaultValues","referenceSchema","str","defaultValue","dataKey","getAccountRequest","formData","autoValidate","delinquencyPlanName","acc","getQuoteElementRequest","locator","removeQuoteDefaultFields","startTime","endTime","currency","expirationTime","timezone","rest","getQuoteDefaultFields","getQuoteRequest","hideDefaultFields","hideConfiguredFields","request","quoteFields","parseElementTypeAndScopeByElementType","elementType","match","retrieveElementFromQuoteByLocator","quoteElement","foundElement","retrieveDataModelFromElement","dataModel","elementModel","exposureName","coverageName","policyLineName","exposureGroupName","transformErrors","errors","error"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ (function(o,d){typeof exports=="object"&&typeof module<"u"?d(exports):typeof define=="function"&&define.amd?define(["exports"],d):(o=typeof globalThis<"u"?globalThis:o||self,d(o.schemas={}))})(this,function(o){"use strict";const d=i=>{const{data:e,scope:n,dataTypes:a,rootDisplayName:l,account:c,quote:r,element:u}=i,j=[];let x={};const te=Object.fromEntries(Object.entries(e??{}).filter(([,m])=>{var f;const s=(f=m.scope)==null?void 0:f.split(",").map(p=>p.trim());return!!(!s||n==="P"&&(s!=null&&s.includes("P"))||s!=null&&s.includes("Q")||n==="Q"&&(s!=null&&s.includes("Q")))}).map(([m,s])=>{var I,R,A,B,N,D,C,S,w,G,z,J,U,Z,K,H,W;let f=!1,p=!1,E=!1;const F=s.displayName??m,se=(I=s.type)==null?void 0:I.slice(-1),T=s.maxLength,$=s.minLength,y=s.max,Q=s.min,P=s.regex;let t=s.type??"",g;switch(se){case"*":p=!0,f=!0,t=t==null?void 0:t.split("*")[0];break;case"?":t=t==null?void 0:t.split("?")[0],f=!0;break;case"+":p=!0,t=t==null?void 0:t.split("+")[0];break;case"!":t=t==null?void 0:t.split("!")[0];break}switch(t){case"string":t="string";break;case"int":case"long":t="integer";break;case"decimal":t="number";break;case"dateTime":t="string",g="date-time";break;case"date":t="string",g="date";break;case"boolean":case"bool":t="boolean";break;default:E=!0;break}if(!f&&!E&&!p&&j.push(m),E){const h=a==null?void 0:a[t];if(h){let q=p?[]:{};const ie=d({data:h.data??{},scope:n,dataTypes:a,rootDisplayName:m});return r&&(A=(R=r.element)==null?void 0:R.data)!=null&&A[m]&&(q=(N=(B=r.element)==null?void 0:B.data)==null?void 0:N[m]),u&&(D=u==null?void 0:u.data)!=null&&D[m]&&(q=(C=u==null?void 0:u.data)==null?void 0:C[m]),c&&(S=c==null?void 0:c.data)!=null&&S[m]&&(q=(w=c==null?void 0:c.data)==null?void 0:w[m]),x={...x,[`${t}`]:ie},p?[m,{title:m.replace(/([A-Z])/g," $1").replace(/^./,function(L){return L.toUpperCase()}),type:"array",default:q,items:{$ref:`#/definitions/${t}`},...!f&&{minItems:1}}]:[m,{title:m.replace(/([A-Z])/g," $1").replace(/^./,function(L){return L.toUpperCase()}),default:q,$ref:`#/definitions/${t}`}]}}let b="";if(c){const h=(c==null?void 0:c.state)==="validated"?m.charAt(0).toLowerCase()+m.slice(1):m;b=(G=c==null?void 0:c.data)!=null&&G[h]?(z=c==null?void 0:c.data)==null?void 0:z[h]:t==="boolean"?!!s.defaultValue:s.defaultValue}return r&&(b=(U=(J=r.element)==null?void 0:J.data)!=null&&U[m]?(K=(Z=r.element)==null?void 0:Z.data)==null?void 0:K[m]:t==="boolean"?!!s.defaultValue:s.defaultValue),u&&(b=(H=u==null?void 0:u.data)!=null&&H[m]?(W=u==null?void 0:u.data)==null?void 0:W[m]:t==="boolean"?!!s.defaultValue:s.defaultValue),p?[m,{title:F,type:"array",default:b,items:{type:t,...T&&{maxLength:T},...$&&{minLength:$},...Q&&{min:Q},...y&&{max:y},...g&&{format:g},...P&&{pattern:s.regex}},...!f&&{minItems:1}}]:[m,{title:F,type:t,...b&&{default:b},...$&&{minLength:$},...T&&{maxLength:T},...Q&&{minimum:parseInt(Q)},...y&&{maximum:parseInt(y)},...g&&{format:g},...s.options&&{enum:s.options},...P&&{pattern:s.regex}}]}));return{title:l,type:"object",definitions:x,required:j,properties:te}},X=i=>{const e=i.autoValidate,n=i.delinquencyPlanName,a=i.accountType,l=Object.keys(i).reduce((r,u)=>(u!=="accountType"&&u!=="autoValidate"&&u!=="delinquencyPlanName"&&(r[u]=i[u]),r),{});return{autoValidate:e,delinquencyPlanName:n,type:a,data:l}},Y=({formData:i,locator:e})=>({elements:[{locator:e,setData:i}]});function _(i){const{delinquencyPlanName:e,startTime:n,endTime:a,currency:l,expirationTime:c,timezone:r,...u}=i;return u}function v(i){const{delinquencyPlanName:e,startTime:n,endTime:a,currency:l,expirationTime:c,timezone:r}=i;return{delinquencyPlanName:e,startTime:n,endTime:a,currency:l,expirationTime:c,timezone:r}}const M=({formData:i,hideDefaultFields:e,hideConfiguredFields:n})=>{let a={};if(e||(a={...v(i)}),!n){const l=_(i);a={...a,setData:l}}return a},O=i=>{const e=/^(.*?)(Quote|QuickQuote|Policy)$/,n=i.match(e);return n&&(n[2]==="Quote"||n[2]==="QuickQuote"||n[2]==="Policy")?[n[1],n[2]]:[i,null]};function V(i,e){if(i.locator===e)return i;if(i.elements)for(const n of i.elements){const a=V(n,e);if(a)return a}}function k(i,e){const[n]=O(i.type??"");let a={};return e.exposures&&Object.keys(e.exposures).forEach(l=>{l===n&&e.exposures&&(a=e.exposures[l])}),e.coverages&&Object.keys(e.coverages).forEach(l=>{l===n&&e.coverages&&(a=e.coverages[l])}),e.policyLines&&Object.keys(e.policyLines).forEach(l=>{l===n&&e.policyLines&&(a=e.policyLines[l])}),e.exposureGroups&&Object.keys(e.exposureGroups).forEach(l=>{l===n&&e.exposureGroups&&(a=e.exposureGroups[l])}),a}function ee(i){return i.map(e=>(e.name==="pattern"&&(e.message=`Invalid format, must match pattern ${e.params.pattern}`),e.name==="format"&&(e.message="Invalid format"),e.name==="required"&&(e.message="Required"),e.name==="minItems"&&(e.message=`Must have at least ${e.params.limit} item${e.params.limit!==1?"s":""}`),e.name==="maxItems"&&(e.message=`Must have at most ${e.params.limit} item${e.params.limit!==1?"s":""}`),e.name==="type"&&(e.message="Invalid format"),e.name==="maxLength"&&(e.message=`Must be at most ${e.params.limit} character${e.params.limit!==1?"s":""}`),e.name==="minLength"&&(e.message=`Must be at least ${e.params.limit} character${e.params.limit!==1?"s":""}`),e.name==="minimum"&&(e.message=`Must be greater than or equal to ${e.params.limit}`),e.name==="maximum"&&(e.message=`Must be less than or equal to ${e.params.limit}`),e))}o.dataModelToJSONSchema=d,o.getAccountRequest=X,o.getQuoteElementRequest=Y,o.getQuoteRequest=M,o.parseElementTypeAndScopeByElementType=O,o.retrieveDataModelFromElement=k,o.retrieveElementFromQuoteByLocator=V,o.transformErrors=ee,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
2
+ //# sourceMappingURL=index.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.umd.js","sources":["../lib/utils/data-model-to-JSON-schema.ts","../lib/utils/get-account-request.ts","../lib/utils/get-quote-element-request.ts","../lib/utils/get-quote-request.ts","../lib/utils/parse-element-type-and-scope-by-element-type.ts","../lib/utils/retrieve-element-from-quote-by-locator.ts","../lib/utils/retrieve-data-model-from-element.ts","../lib/utils/transform-errors.ts"],"sourcesContent":["import type { RJSFSchema } from '@rjsf/utils';\nimport {\n\tAccountResponse,\n\tDataTypeConfigRecord,\n\tElementResponse,\n\tFieldConfigRecord,\n\tQuoteResponse,\n} from '@socotra/ec-react-schemas';\n\ninterface DataModelToJsonSchemaProps {\n\tdata: FieldConfigRecord;\n\tdataTypes?: DataTypeConfigRecord;\n\tscope: 'P' | 'Q';\n\trootDisplayName: string;\n\taccount?: AccountResponse;\n\tquote?: QuoteResponse;\n\telement?: ElementResponse;\n}\n\nexport const dataModelToJSONSchema = (args: DataModelToJsonSchemaProps) => {\n\tconst { data, scope, dataTypes, rootDisplayName, account, quote, element } =\n\t\targs;\n\n\tconst requiredFields: string[] = [];\n\tlet definitions = {};\n\tconst properties = Object.fromEntries(\n\t\tObject.entries(data ?? {})\n\t\t\t.filter(([, value]) => {\n\t\t\t\tconst dataScope = value.scope?.split(',').map((s) => s.trim());\n\n\t\t\t\tif (!dataScope) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t(scope === 'P' && dataScope?.includes('P')) ||\n\t\t\t\t\tdataScope?.includes('Q')\n\t\t\t\t) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (scope === 'Q' && dataScope?.includes('Q')) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t})\n\t\t\t.map(([key, value]) => {\n\t\t\t\tlet isOptional = false;\n\t\t\t\tlet isArray = false;\n\t\t\t\tlet isCustomDataType = false;\n\t\t\t\tconst displayName = value.displayName ?? key;\n\t\t\t\tconst quantifier = value.type?.slice(-1);\n\t\t\t\tconst maxLength = value.maxLength;\n\t\t\t\tconst minLength = value.minLength;\n\t\t\t\tconst max = value.max;\n\t\t\t\tconst min = value.min;\n\t\t\t\tconst regex = value.regex;\n\t\t\t\tlet type: string = value.type ?? '';\n\t\t\t\tlet format: string | undefined;\n\n\t\t\t\tswitch (quantifier) {\n\t\t\t\t\tcase '*':\n\t\t\t\t\t\tisArray = true;\n\t\t\t\t\t\tisOptional = true;\n\t\t\t\t\t\ttype = type?.split('*')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '?':\n\t\t\t\t\t\ttype = type?.split('?')[0];\n\t\t\t\t\t\tisOptional = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '+':\n\t\t\t\t\t\tisArray = true;\n\t\t\t\t\t\ttype = type?.split('+')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '!':\n\t\t\t\t\t\ttype = type?.split('!')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tswitch (type) {\n\t\t\t\t\t// fields can be either 'string', 'int', 'long', 'decimal', 'dateTime', 'date', 'boolean' in kernel\n\t\t\t\t\t// JSON schema supports 'string', 'integer', 'number', 'boolean', 'null'\n\t\t\t\t\tcase 'string':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'int':\n\t\t\t\t\tcase 'long':\n\t\t\t\t\t\ttype = 'integer';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'decimal':\n\t\t\t\t\t\ttype = 'number';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'dateTime':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tformat = 'date-time';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'date':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tformat = 'date';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\ttype = 'boolean';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tisCustomDataType = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (!isOptional && !isCustomDataType && !isArray) {\n\t\t\t\t\trequiredFields.push(key);\n\t\t\t\t}\n\n\t\t\t\tif (isCustomDataType) {\n\t\t\t\t\tconst customDataType = dataTypes?.[type];\n\t\t\t\t\tif (customDataType) {\n\t\t\t\t\t\tlet defaultValues = isArray ? [] : {};\n\t\t\t\t\t\tconst referenceSchema = dataModelToJSONSchema({\n\t\t\t\t\t\t\tdata: customDataType.data ?? {},\n\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\tdataTypes,\n\t\t\t\t\t\t\trootDisplayName: key,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// find any preset quote or account data for this custom data type\n\t\t\t\t\t\tif (quote) {\n\t\t\t\t\t\t\tif (quote.element?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = quote.element?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (element) {\n\t\t\t\t\t\t\tif (element?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = element?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (account) {\n\t\t\t\t\t\t\tif (account?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = account?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefinitions = {\n\t\t\t\t\t\t\t...definitions,\n\t\t\t\t\t\t\t[`${type}`]: referenceSchema,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (isArray) {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttitle: key\n\t\t\t\t\t\t\t\t\t\t.replace(/([A-Z])/g, ' $1')\n\t\t\t\t\t\t\t\t\t\t// uppercase the first character\n\t\t\t\t\t\t\t\t\t\t.replace(/^./, function (str) {\n\t\t\t\t\t\t\t\t\t\t\treturn str.toUpperCase();\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\t\t\t\tdefault: defaultValues,\n\t\t\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\t\t\t['$ref']: `#/definitions/${type}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t...(!isOptional && { minItems: 1 }),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: key\n\t\t\t\t\t\t\t\t\t.replace(/([A-Z])/g, ' $1')\n\t\t\t\t\t\t\t\t\t// uppercase the first character\n\t\t\t\t\t\t\t\t\t.replace(/^./, function (str) {\n\t\t\t\t\t\t\t\t\t\treturn str.toUpperCase();\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tdefault: defaultValues,\n\t\t\t\t\t\t\t\t['$ref']: `#/definitions/${type}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet defaultValue: string | boolean | object | undefined = '';\n\n\t\t\t\tif (account) {\n\t\t\t\t\t// An account in draft state will always have keys in the same casing as the data model\n\t\t\t\t\t// An account in validated state will have keys in camelCase, so we need to convert the keys to match the way the kernel sets them\n\t\t\t\t\tconst dataKey =\n\t\t\t\t\t\taccount?.state === 'validated'\n\t\t\t\t\t\t\t? key.charAt(0).toLowerCase() + key.slice(1)\n\t\t\t\t\t\t\t: key;\n\n\t\t\t\t\tdefaultValue = account?.data?.[dataKey]\n\t\t\t\t\t\t? account?.data?.[dataKey]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (quote) {\n\t\t\t\t\tdefaultValue = quote.element?.data?.[key]\n\t\t\t\t\t\t? quote.element?.data?.[key]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (element) {\n\t\t\t\t\tdefaultValue = element?.data?.[key]\n\t\t\t\t\t\t? element?.data?.[key]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (isArray) {\n\t\t\t\t\t// if the field is an array, we need to set the type to 'array' and set the items to the type of the array\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: displayName,\n\t\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\t\tdefault: defaultValue,\n\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t...(maxLength && { maxLength }),\n\t\t\t\t\t\t\t\t...(minLength && { minLength }),\n\t\t\t\t\t\t\t\t...(min && { min }),\n\t\t\t\t\t\t\t\t...(max && { max }),\n\t\t\t\t\t\t\t\t...(format && { format }),\n\t\t\t\t\t\t\t\t...(regex && { pattern: value.regex }),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...(!isOptional && { minItems: 1 }),\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\tconst property = [\n\t\t\t\t\tkey,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: displayName,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\t...(defaultValue && { default: defaultValue }),\n\t\t\t\t\t\t...(minLength && { minLength }),\n\t\t\t\t\t\t...(maxLength && { maxLength }),\n\t\t\t\t\t\t...(min && { minimum: parseInt(min) }),\n\t\t\t\t\t\t...(max && { maximum: parseInt(max) }),\n\t\t\t\t\t\t...(format && { format }),\n\t\t\t\t\t\t...(value.options && { enum: value.options }),\n\t\t\t\t\t\t...(regex && { pattern: value.regex }),\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t\treturn property;\n\t\t\t}),\n\t);\n\n\tconst schema: RJSFSchema = {\n\t\ttitle: rootDisplayName,\n\t\ttype: 'object',\n\t\tdefinitions,\n\t\trequired: requiredFields,\n\t\tproperties,\n\t};\n\n\treturn schema;\n};\n","import { AccountRequest } from '@socotra/ec-react-schemas';\n\nexport const getAccountRequest = (formData: TODO): AccountRequest => {\n\tconst autoValidate = formData.autoValidate;\n\tconst delinquencyPlanName = formData.delinquencyPlanName;\n\tconst type = formData.accountType;\n\n\t// filter out the accountType, autoValidate, and delinquencyPlanName\n\tconst data = Object.keys(formData).reduce(\n\t\t(acc, key) => {\n\t\t\tif (\n\t\t\t\tkey !== 'accountType' &&\n\t\t\t\tkey !== 'autoValidate' &&\n\t\t\t\tkey !== 'delinquencyPlanName'\n\t\t\t) {\n\t\t\t\tacc[key] = formData[key];\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t{} as { [key: string]: object },\n\t);\n\n\tconst request = {\n\t\tautoValidate,\n\t\tdelinquencyPlanName,\n\t\ttype,\n\t\tdata,\n\t};\n\n\treturn request;\n};\n","import { ElementRequest, QuoteRequest } from '@socotra/ec-react-schemas';\n\ntype GetQuoteElementRequestAttributes = {\n\tformData: { [key: string]: unknown };\n\tlocator: string;\n};\n\nexport const getQuoteElementRequest = ({\n\tformData,\n\tlocator,\n}: GetQuoteElementRequestAttributes): QuoteRequest => {\n\tconst elementRequest: ElementRequest = {\n\t\tlocator,\n\t\tsetData: formData,\n\t};\n\n\tconst request: QuoteRequest = {\n\t\telements: [elementRequest],\n\t};\n\n\treturn request;\n};\n","import { AccountRequest, QuoteRequest } from '@socotra/ec-react-schemas';\n\ninterface QuoteDefaultFields {\n\tdelinquencyPlanName: string;\n\tstartTime: string;\n\tendTime: string;\n\tcurrency: string;\n\texpirationTime: string;\n\ttimezone: string;\n}\n\ntype GetQuoteRequestAttributes =\n\t| {\n\t\t\tformData: object;\n\t\t\thideDefaultFields: true;\n\t\t\thideConfiguredFields: true;\n\t }\n\t| {\n\t\t\tformData: QuoteDefaultFields;\n\t\t\thideDefaultFields: false;\n\t\t\thideConfiguredFields: true;\n\t }\n\t| {\n\t\t\tformData: TODO;\n\t\t\thideDefaultFields: true;\n\t\t\thideConfiguredFields: false;\n\t }\n\t| {\n\t\t\tformData: QuoteDefaultFields & TODO;\n\t\t\thideDefaultFields: false;\n\t\t\thideConfiguredFields: false;\n\t };\n\nfunction removeQuoteDefaultFields(formData: QuoteDefaultFields & TODO): TODO {\n\tconst {\n\t\tdelinquencyPlanName,\n\t\tstartTime,\n\t\tendTime,\n\t\tcurrency,\n\t\texpirationTime,\n\t\ttimezone,\n\t\t...rest\n\t} = formData;\n\n\treturn rest;\n}\n\nfunction getQuoteDefaultFields(formData: TODO): QuoteDefaultFields {\n\tconst {\n\t\tdelinquencyPlanName,\n\t\tstartTime,\n\t\tendTime,\n\t\tcurrency,\n\t\texpirationTime,\n\t\ttimezone,\n\t} = formData;\n\n\treturn {\n\t\tdelinquencyPlanName,\n\t\tstartTime,\n\t\tendTime,\n\t\tcurrency,\n\t\texpirationTime,\n\t\ttimezone,\n\t};\n}\n\nexport const getQuoteRequest = ({\n\tformData,\n\thideDefaultFields,\n\thideConfiguredFields,\n}: GetQuoteRequestAttributes): AccountRequest => {\n\tlet request: QuoteRequest = {};\n\n\tif (!hideDefaultFields) {\n\t\tconst defaultFields = getQuoteDefaultFields(formData);\n\t\trequest = {\n\t\t\t...defaultFields,\n\t\t};\n\t}\n\n\tif (!hideConfiguredFields) {\n\t\tconst quoteFields = removeQuoteDefaultFields(formData);\n\t\trequest = {\n\t\t\t...request,\n\t\t\tsetData: quoteFields,\n\t\t};\n\t}\n\n\treturn request;\n};\n","/**\n * Takes an element type and splits the postfix scope from the base model name. E.g., 'PersonalAutoQuote' becomes ['PersonalAuto', 'Quote']\n * @param elementType The element type to parse, e.g. `element.type` from an `ElementResponse`\n * @returns [elementName: string, scope: 'Quote' | 'QuickQuote' | 'Policy' | null]\n */\nexport const parseElementTypeAndScopeByElementType = (\n\telementType: string,\n): [elementName: string, scope: 'Quote' | 'QuickQuote' | 'Policy' | null] => {\n\tconst regex = /^(.*?)(Quote|QuickQuote|Policy)$/;\n\tconst match = elementType.match(regex);\n\tif (\n\t\tmatch &&\n\t\t(match[2] === 'Quote' || match[2] === 'QuickQuote' || match[2] === 'Policy')\n\t) {\n\t\treturn [match[1], match[2]]; // match[1] is the base model name, match[2] is the scope\n\t}\n\n\t// Return the original key and null for the scope if no match found\n\treturn [elementType, null];\n};\n","import { ElementResponse } from '@socotra/ec-react-schemas';\n\n/**\n * Takes the root element of a quote and a locator and returns the element with the matching locator\n * @param quoteElement The root element from the QuoteResponse\n * @param locator The locator of the element to retrieve\n * @returns ElementResponse | undefined\n */\nexport function retrieveElementFromQuoteByLocator(\n\tquoteElement: ElementResponse,\n\tlocator: string,\n): ElementResponse | undefined {\n\tif (quoteElement.locator === locator) {\n\t\treturn quoteElement;\n\t}\n\n\tif (quoteElement.elements) {\n\t\tfor (const element of quoteElement.elements) {\n\t\t\tconst foundElement = retrieveElementFromQuoteByLocator(element, locator);\n\t\t\tif (foundElement) {\n\t\t\t\treturn foundElement;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn undefined;\n}\n","import {\n\tDataModel,\n\tElementConfig,\n\tElementResponse,\n} from '@socotra/ec-react-schemas';\n\nimport { parseElementTypeAndScopeByElementType } from './parse-element-type-and-scope-by-element-type';\n\n/**\n * Looks through a data model for a matching element type and returns the element model\n * @param element The element to retrieve the data model for\n * @param dataModel The full resolved data model to search\n * @returns ElementConfig\n */\nexport function retrieveDataModelFromElement(\n\telement: ElementResponse,\n\tdataModel: DataModel,\n) {\n\tconst [elementType] = parseElementTypeAndScopeByElementType(\n\t\telement.type ?? '',\n\t);\n\n\tlet elementModel: ElementConfig = {};\n\n\t// Look in exposures\n\tif (dataModel.exposures) {\n\t\tObject.keys(dataModel.exposures).forEach((exposureName) => {\n\t\t\tif (exposureName === elementType && dataModel.exposures) {\n\t\t\t\telementModel = dataModel.exposures[exposureName];\n\t\t\t}\n\t\t});\n\t}\n\n\t// Look in coverages\n\tif (dataModel.coverages) {\n\t\tObject.keys(dataModel.coverages).forEach((coverageName) => {\n\t\t\tif (coverageName === elementType && dataModel.coverages) {\n\t\t\t\telementModel = dataModel.coverages[coverageName];\n\t\t\t}\n\t\t});\n\t}\n\n\t// Look in policyLines\n\tif (dataModel.policyLines) {\n\t\tObject.keys(dataModel.policyLines).forEach((policyLineName) => {\n\t\t\tif (policyLineName === elementType && dataModel.policyLines) {\n\t\t\t\telementModel = dataModel.policyLines[policyLineName];\n\t\t\t}\n\t\t});\n\t}\n\n\t// look in ExposureGroups\n\tif (dataModel.exposureGroups) {\n\t\tObject.keys(dataModel.exposureGroups).forEach((exposureGroupName) => {\n\t\t\tif (exposureGroupName === elementType && dataModel.exposureGroups) {\n\t\t\t\telementModel = dataModel.exposureGroups[exposureGroupName];\n\t\t\t}\n\t\t});\n\t}\n\n\treturn elementModel;\n}\n","import { type RJSFValidationError } from '@rjsf/utils';\n\nexport function transformErrors(errors: RJSFValidationError[]) {\n\treturn errors.map((error) => {\n\t\tif (error.name === 'pattern') {\n\t\t\terror.message = `Invalid format, must match pattern ${error.params.pattern}`;\n\t\t}\n\t\tif (error.name === 'format') {\n\t\t\terror.message = 'Invalid format';\n\t\t}\n\t\tif (error.name === 'required') {\n\t\t\terror.message = 'Required';\n\t\t}\n\t\tif (error.name === 'minItems') {\n\t\t\terror.message = `Must have at least ${error.params.limit} item${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.name === 'maxItems') {\n\t\t\terror.message = `Must have at most ${error.params.limit} item${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.name === 'type') {\n\t\t\terror.message = 'Invalid format';\n\t\t}\n\t\tif (error.name === 'maxLength') {\n\t\t\terror.message = `Must be at most ${error.params.limit} character${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.name === 'minLength') {\n\t\t\terror.message = `Must be at least ${error.params.limit} character${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.name === 'minimum') {\n\t\t\terror.message = `Must be greater than or equal to ${error.params.limit}`;\n\t\t}\n\t\tif (error.name === 'maximum') {\n\t\t\terror.message = `Must be less than or equal to ${error.params.limit}`;\n\t\t}\n\t\treturn error;\n\t});\n}\n"],"names":["dataModelToJSONSchema","args","data","scope","dataTypes","rootDisplayName","account","quote","element","requiredFields","definitions","properties","value","dataScope","_a","s","key","isOptional","isArray","isCustomDataType","displayName","quantifier","maxLength","minLength","max","min","regex","type","format","customDataType","defaultValues","referenceSchema","_c","_b","_e","_d","_f","_g","_h","_i","str","defaultValue","dataKey","_j","_k","_m","_l","_o","_n","_p","_q","getAccountRequest","formData","autoValidate","delinquencyPlanName","acc","getQuoteElementRequest","locator","removeQuoteDefaultFields","startTime","endTime","currency","expirationTime","timezone","rest","getQuoteDefaultFields","getQuoteRequest","hideDefaultFields","hideConfiguredFields","request","quoteFields","parseElementTypeAndScopeByElementType","elementType","match","retrieveElementFromQuoteByLocator","quoteElement","foundElement","retrieveDataModelFromElement","dataModel","elementModel","exposureName","coverageName","policyLineName","exposureGroupName","transformErrors","errors","error"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@socotra/ec-react-utils",
3
+ "version": "0.0.0-alpha.0",
4
+ "type": "module",
5
+ "main": "./dist/index.umd.js",
6
+ "module": "./dist/index.es.js",
7
+ "types": "./dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.es.js",
14
+ "require": "./dist/index.umd.js",
15
+ "types": "./dist/index.d.ts"
16
+ }
17
+ },
18
+ "scripts": {
19
+ "dev": "vite",
20
+ "build": "tsc && vite build",
21
+ "preview": "vite preview"
22
+ },
23
+ "dependencies": {
24
+ "@rjsf/utils": "^5.18.4",
25
+ "@socotra/ec-react-schemas": "^0.0.0-alpha.0"
26
+ },
27
+ "gitHead": "60332163f501cba8e8a076cd0a366f7260087185"
28
+ }