@betterinternship/core 1.2.42 → 1.2.44
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/dist/lib/forms/fields.client.d.ts +14 -14
- package/dist/lib/forms/fields.client.js +24 -24
- package/dist/lib/forms/form-metadata.d.ts +60 -58
- package/dist/lib/forms/form-metadata.js +152 -123
- package/dist/lib/forms/form-metadata.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { ZodType } from 'zod';
|
|
2
|
-
import { IFormField, IFormFieldPrefiller, IFormFieldValidator } from './form-metadata';
|
|
3
|
-
import { EnumValue } from 'zod/v4/core/util.cjs';
|
|
4
|
-
export declare const getSchemaClientType: (s: ZodType) => ClientFieldType;
|
|
5
|
-
export type ClientFieldType = 'text' | 'number' | 'date' | 'dropdown' | 'checkbox' | 'textarea' | 'multiselect' | 'time' | 'signature';
|
|
6
|
-
export type ClientFieldSection = 'student' | 'internship' | 'entity' | 'university' | 'report' | 'feedback';
|
|
7
|
-
export type ClientField<SourceDomains extends any[]> = Omit<IFormField, 'x' | 'y' | 'w' | 'h' | 'page' | 'type' | 'validator' | 'prefiller'> & {
|
|
8
|
-
type: ClientFieldType;
|
|
9
|
-
validator: IFormFieldValidator | null;
|
|
10
|
-
prefiller: IFormFieldPrefiller<SourceDomains> | null;
|
|
11
|
-
section: ClientFieldSection;
|
|
12
|
-
options?: EnumValue[];
|
|
13
|
-
coerce: (s: string) => string | number | boolean | Date | Array<string>;
|
|
14
|
-
};
|
|
1
|
+
import { ZodType } from 'zod';
|
|
2
|
+
import { IFormField, IFormFieldPrefiller, IFormFieldValidator } from './form-metadata';
|
|
3
|
+
import { EnumValue } from 'zod/v4/core/util.cjs';
|
|
4
|
+
export declare const getSchemaClientType: (s: ZodType) => ClientFieldType;
|
|
5
|
+
export type ClientFieldType = 'text' | 'number' | 'date' | 'dropdown' | 'checkbox' | 'textarea' | 'multiselect' | 'time' | 'signature';
|
|
6
|
+
export type ClientFieldSection = 'student' | 'internship' | 'entity' | 'university' | 'report' | 'feedback';
|
|
7
|
+
export type ClientField<SourceDomains extends any[]> = Omit<IFormField, 'x' | 'y' | 'w' | 'h' | 'page' | 'type' | 'validator' | 'prefiller'> & {
|
|
8
|
+
type: ClientFieldType;
|
|
9
|
+
validator: IFormFieldValidator | null;
|
|
10
|
+
prefiller: IFormFieldPrefiller<SourceDomains> | null;
|
|
11
|
+
section: ClientFieldSection;
|
|
12
|
+
options?: EnumValue[];
|
|
13
|
+
coerce: (s: string) => string | number | boolean | Date | Array<string>;
|
|
14
|
+
};
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSchemaClientType = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const getSchemaClientType = (s) => {
|
|
6
|
-
const infer = s.type;
|
|
7
|
-
const desc = s.description;
|
|
8
|
-
if (infer === 'date' || desc === 'date')
|
|
9
|
-
return 'date';
|
|
10
|
-
if (infer === 'number' || desc === 'number')
|
|
11
|
-
return 'number';
|
|
12
|
-
if (infer === 'enum' || desc === 'dropdown')
|
|
13
|
-
return 'dropdown';
|
|
14
|
-
if (infer === 'boolean' || desc === 'checkbox')
|
|
15
|
-
return 'checkbox';
|
|
16
|
-
if (s instanceof zod_1.default.ZodArray && desc === 'multiselect')
|
|
17
|
-
return 'multiselect';
|
|
18
|
-
if (desc === 'textarea')
|
|
19
|
-
return 'textarea';
|
|
20
|
-
if (desc === 'time')
|
|
21
|
-
return 'time';
|
|
22
|
-
return 'text';
|
|
23
|
-
};
|
|
24
|
-
exports.getSchemaClientType = getSchemaClientType;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSchemaClientType = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const getSchemaClientType = (s) => {
|
|
6
|
+
const infer = s.type;
|
|
7
|
+
const desc = s.description;
|
|
8
|
+
if (infer === 'date' || desc === 'date')
|
|
9
|
+
return 'date';
|
|
10
|
+
if (infer === 'number' || desc === 'number')
|
|
11
|
+
return 'number';
|
|
12
|
+
if (infer === 'enum' || desc === 'dropdown')
|
|
13
|
+
return 'dropdown';
|
|
14
|
+
if (infer === 'boolean' || desc === 'checkbox')
|
|
15
|
+
return 'checkbox';
|
|
16
|
+
if (s instanceof zod_1.default.ZodArray && desc === 'multiselect')
|
|
17
|
+
return 'multiselect';
|
|
18
|
+
if (desc === 'textarea')
|
|
19
|
+
return 'textarea';
|
|
20
|
+
if (desc === 'time')
|
|
21
|
+
return 'time';
|
|
22
|
+
return 'text';
|
|
23
|
+
};
|
|
24
|
+
exports.getSchemaClientType = getSchemaClientType;
|
|
25
25
|
//# sourceMappingURL=fields.client.js.map
|
|
@@ -1,58 +1,60 @@
|
|
|
1
|
-
import { ZodType } from 'zod';
|
|
2
|
-
import { ClientField } from './fields.client';
|
|
3
|
-
import { ServerField } from './fields.server';
|
|
4
|
-
export declare const SCHEMA_VERSION = 0;
|
|
5
|
-
export interface IFormMetadata {
|
|
6
|
-
name: string;
|
|
7
|
-
label: string;
|
|
8
|
-
schema_version: number;
|
|
9
|
-
schema: IFormField[];
|
|
10
|
-
subscribers: IFormSubscriber[];
|
|
11
|
-
signatories: IFormSignatory[];
|
|
12
|
-
required_parties: ('university' | 'entity' | 'student' | 'student-guardian')[];
|
|
13
|
-
params?: IFormParams;
|
|
14
|
-
}
|
|
15
|
-
export interface IFormParams {
|
|
16
|
-
[key: string]: string | IFormParams;
|
|
17
|
-
}
|
|
18
|
-
interface IFormContact {
|
|
19
|
-
name: string;
|
|
20
|
-
honorific: string;
|
|
21
|
-
title: string;
|
|
22
|
-
email: string;
|
|
23
|
-
}
|
|
24
|
-
export type IFormSubscriber = IFormContact;
|
|
25
|
-
export interface IFormSignatory extends IFormContact {
|
|
26
|
-
field: string;
|
|
27
|
-
}
|
|
28
|
-
export interface IFormField {
|
|
29
|
-
field: string;
|
|
30
|
-
type: 'text' | 'signature';
|
|
31
|
-
x: number;
|
|
32
|
-
y: number;
|
|
33
|
-
w: number;
|
|
34
|
-
h: number;
|
|
35
|
-
page: number;
|
|
36
|
-
label: string;
|
|
37
|
-
source: 'university' | 'entity' | 'student' | 'student-guardian' | 'auto' | 'prefill';
|
|
38
|
-
tooltip_label: string;
|
|
39
|
-
validator: string;
|
|
40
|
-
prefiller: string;
|
|
41
|
-
}
|
|
42
|
-
export type IFormSourceDomains<SourceDomains extends any[]> = Record<string, SourceDomains[number]>;
|
|
43
|
-
export type IFormFieldValidator = ZodType;
|
|
44
|
-
export type IFormFieldPrefiller<SourceDomains extends any[]> = (sourceDomains: IFormSourceDomains<SourceDomains>) => string;
|
|
45
|
-
export declare class FormMetadata<SourceDomains extends any[]> {
|
|
46
|
-
private readonly formMetadata;
|
|
47
|
-
private readonly fields;
|
|
48
|
-
constructor(formMetadata: IFormMetadata);
|
|
49
|
-
encodeAsJSON(): string;
|
|
50
|
-
static decodeFromJSON<SourceDomains extends any[]>(json: string): FormMetadata<SourceDomains>;
|
|
51
|
-
getFieldForClient(index: number, sourceDomains?: IFormSourceDomains<SourceDomains>): ClientField<SourceDomains>;
|
|
52
|
-
getFieldsForClient(sourceDomains?: IFormSourceDomains<SourceDomains>): ClientField<SourceDomains>[];
|
|
53
|
-
getFieldsForServer(): ServerField[];
|
|
54
|
-
getSignatoryAsValues(): Record<string, string>;
|
|
55
|
-
private parseValidator;
|
|
56
|
-
private parsePrefiller;
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
import { ZodType } from 'zod';
|
|
2
|
+
import { ClientField } from './fields.client';
|
|
3
|
+
import { ServerField } from './fields.server';
|
|
4
|
+
export declare const SCHEMA_VERSION = 0;
|
|
5
|
+
export interface IFormMetadata {
|
|
6
|
+
name: string;
|
|
7
|
+
label: string;
|
|
8
|
+
schema_version: number;
|
|
9
|
+
schema: IFormField[];
|
|
10
|
+
subscribers: IFormSubscriber[];
|
|
11
|
+
signatories: IFormSignatory[];
|
|
12
|
+
required_parties: ('university' | 'entity' | 'student' | 'student-guardian')[];
|
|
13
|
+
params?: IFormParams;
|
|
14
|
+
}
|
|
15
|
+
export interface IFormParams {
|
|
16
|
+
[key: string]: string | IFormParams;
|
|
17
|
+
}
|
|
18
|
+
interface IFormContact {
|
|
19
|
+
name: string;
|
|
20
|
+
honorific: string;
|
|
21
|
+
title: string;
|
|
22
|
+
email: string;
|
|
23
|
+
}
|
|
24
|
+
export type IFormSubscriber = IFormContact;
|
|
25
|
+
export interface IFormSignatory extends IFormContact {
|
|
26
|
+
field: string;
|
|
27
|
+
}
|
|
28
|
+
export interface IFormField {
|
|
29
|
+
field: string;
|
|
30
|
+
type: 'text' | 'signature';
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
w: number;
|
|
34
|
+
h: number;
|
|
35
|
+
page: number;
|
|
36
|
+
label: string;
|
|
37
|
+
source: 'university' | 'entity' | 'student' | 'student-guardian' | 'auto' | 'prefill';
|
|
38
|
+
tooltip_label: string;
|
|
39
|
+
validator: string;
|
|
40
|
+
prefiller: string;
|
|
41
|
+
}
|
|
42
|
+
export type IFormSourceDomains<SourceDomains extends any[]> = Record<string, SourceDomains[number]>;
|
|
43
|
+
export type IFormFieldValidator = ZodType;
|
|
44
|
+
export type IFormFieldPrefiller<SourceDomains extends any[]> = (sourceDomains: IFormSourceDomains<SourceDomains>) => string;
|
|
45
|
+
export declare class FormMetadata<SourceDomains extends any[]> {
|
|
46
|
+
private readonly formMetadata;
|
|
47
|
+
private readonly fields;
|
|
48
|
+
constructor(formMetadata: IFormMetadata);
|
|
49
|
+
encodeAsJSON(): string;
|
|
50
|
+
static decodeFromJSON<SourceDomains extends any[]>(json: string): FormMetadata<SourceDomains>;
|
|
51
|
+
getFieldForClient(index: number, sourceDomains?: IFormSourceDomains<SourceDomains>): ClientField<SourceDomains>;
|
|
52
|
+
getFieldsForClient(sourceDomains?: IFormSourceDomains<SourceDomains>): ClientField<SourceDomains>[];
|
|
53
|
+
getFieldsForServer(): ServerField[];
|
|
54
|
+
getSignatoryAsValues(): Record<string, string>;
|
|
55
|
+
private parseValidator;
|
|
56
|
+
private parsePrefiller;
|
|
57
|
+
private enumerateParams;
|
|
58
|
+
private populateParams;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
@@ -1,124 +1,153 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FormMetadata = exports.SCHEMA_VERSION = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const fields_client_1 = require("./fields.client");
|
|
6
|
-
exports.SCHEMA_VERSION = 0;
|
|
7
|
-
class FormMetadata {
|
|
8
|
-
formMetadata;
|
|
9
|
-
fields;
|
|
10
|
-
constructor(formMetadata) {
|
|
11
|
-
this.formMetadata = formMetadata;
|
|
12
|
-
this.fields = formMetadata.schema;
|
|
13
|
-
}
|
|
14
|
-
encodeAsJSON() {
|
|
15
|
-
return JSON.stringify(this.formMetadata);
|
|
16
|
-
}
|
|
17
|
-
static decodeFromJSON(json) {
|
|
18
|
-
return JSON.parse(json);
|
|
19
|
-
}
|
|
20
|
-
getFieldForClient(index, sourceDomains) {
|
|
21
|
-
const field = this.fields[index];
|
|
22
|
-
if (!field)
|
|
23
|
-
throw new Error('Field does not exist');
|
|
24
|
-
const finalParams = { ...sourceDomains, ...this.formMetadata.params };
|
|
25
|
-
const validator = this.parseValidator(field.field, finalParams);
|
|
26
|
-
const prefiller = this.parsePrefiller(field.field, finalParams);
|
|
27
|
-
const section = field.field.split('.')[0];
|
|
28
|
-
let options = undefined;
|
|
29
|
-
if (validator?.type === 'enum')
|
|
30
|
-
options = validator.options;
|
|
31
|
-
if (validator?.type === 'array') {
|
|
32
|
-
const element = validator.element;
|
|
33
|
-
if (element?.options)
|
|
34
|
-
options = element.options;
|
|
35
|
-
}
|
|
36
|
-
const type = field.type === 'signature'
|
|
37
|
-
? 'signature'
|
|
38
|
-
: validator
|
|
39
|
-
? (0, fields_client_1.getSchemaClientType)(validator)
|
|
40
|
-
: 'text';
|
|
41
|
-
const coerce = (value) => {
|
|
42
|
-
switch (type) {
|
|
43
|
-
case 'number': {
|
|
44
|
-
const n = parseInt(value);
|
|
45
|
-
return isNaN(n) ? 0 : n;
|
|
46
|
-
}
|
|
47
|
-
case 'date': {
|
|
48
|
-
const n = parseInt(value);
|
|
49
|
-
return isNaN(n) ? new Date() : new Date(n);
|
|
50
|
-
}
|
|
51
|
-
case 'checkbox': {
|
|
52
|
-
return !!value?.trim();
|
|
53
|
-
}
|
|
54
|
-
case 'multiselect': {
|
|
55
|
-
return value.split('\n');
|
|
56
|
-
}
|
|
57
|
-
default:
|
|
58
|
-
return value;
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
return {
|
|
62
|
-
field: field.field,
|
|
63
|
-
label: field.label,
|
|
64
|
-
source: field.source,
|
|
65
|
-
tooltip_label: field.tooltip_label,
|
|
66
|
-
coerce,
|
|
67
|
-
type,
|
|
68
|
-
section,
|
|
69
|
-
validator,
|
|
70
|
-
prefiller,
|
|
71
|
-
options,
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
getFieldsForClient(sourceDomains) {
|
|
75
|
-
return this.fields
|
|
76
|
-
.map((field, i) => this.getFieldForClient(i, sourceDomains))
|
|
77
|
-
.filter((field) => field !== null);
|
|
78
|
-
}
|
|
79
|
-
getFieldsForServer() {
|
|
80
|
-
return this.fields
|
|
81
|
-
.map((field) => ({
|
|
82
|
-
field: field.field,
|
|
83
|
-
type: field.type,
|
|
84
|
-
x: field.x,
|
|
85
|
-
y: field.y,
|
|
86
|
-
w: field.w,
|
|
87
|
-
h: field.h,
|
|
88
|
-
page: field.page,
|
|
89
|
-
}))
|
|
90
|
-
.filter((field) => field !== null);
|
|
91
|
-
}
|
|
92
|
-
getSignatoryAsValues() {
|
|
93
|
-
const signatories = this.formMetadata.signatories;
|
|
94
|
-
const values = {};
|
|
95
|
-
for (const signatory of signatories)
|
|
96
|
-
values[signatory.field] = signatory.name;
|
|
97
|
-
return values;
|
|
98
|
-
}
|
|
99
|
-
parseValidator(fieldname, params = {}) {
|
|
100
|
-
const field = this.fields.find((f) => f.field === fieldname);
|
|
101
|
-
if (!field)
|
|
102
|
-
return null;
|
|
103
|
-
const d = new Date();
|
|
104
|
-
const defaults = {
|
|
105
|
-
currentDate: d,
|
|
106
|
-
currentDateTimestamp: d.getTime(),
|
|
107
|
-
};
|
|
108
|
-
const
|
|
109
|
-
const
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
const
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormMetadata = exports.SCHEMA_VERSION = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const fields_client_1 = require("./fields.client");
|
|
6
|
+
exports.SCHEMA_VERSION = 0;
|
|
7
|
+
class FormMetadata {
|
|
8
|
+
formMetadata;
|
|
9
|
+
fields;
|
|
10
|
+
constructor(formMetadata) {
|
|
11
|
+
this.formMetadata = formMetadata;
|
|
12
|
+
this.fields = formMetadata.schema;
|
|
13
|
+
}
|
|
14
|
+
encodeAsJSON() {
|
|
15
|
+
return JSON.stringify(this.formMetadata);
|
|
16
|
+
}
|
|
17
|
+
static decodeFromJSON(json) {
|
|
18
|
+
return JSON.parse(json);
|
|
19
|
+
}
|
|
20
|
+
getFieldForClient(index, sourceDomains) {
|
|
21
|
+
const field = this.fields[index];
|
|
22
|
+
if (!field)
|
|
23
|
+
throw new Error('Field does not exist');
|
|
24
|
+
const finalParams = { ...sourceDomains, ...this.formMetadata.params };
|
|
25
|
+
const validator = this.parseValidator(field.field, finalParams);
|
|
26
|
+
const prefiller = this.parsePrefiller(field.field, finalParams);
|
|
27
|
+
const section = field.field.split('.')[0];
|
|
28
|
+
let options = undefined;
|
|
29
|
+
if (validator?.type === 'enum')
|
|
30
|
+
options = validator.options;
|
|
31
|
+
if (validator?.type === 'array') {
|
|
32
|
+
const element = validator.element;
|
|
33
|
+
if (element?.options)
|
|
34
|
+
options = element.options;
|
|
35
|
+
}
|
|
36
|
+
const type = field.type === 'signature'
|
|
37
|
+
? 'signature'
|
|
38
|
+
: validator
|
|
39
|
+
? (0, fields_client_1.getSchemaClientType)(validator)
|
|
40
|
+
: 'text';
|
|
41
|
+
const coerce = (value) => {
|
|
42
|
+
switch (type) {
|
|
43
|
+
case 'number': {
|
|
44
|
+
const n = parseInt(value);
|
|
45
|
+
return isNaN(n) ? 0 : n;
|
|
46
|
+
}
|
|
47
|
+
case 'date': {
|
|
48
|
+
const n = parseInt(value);
|
|
49
|
+
return isNaN(n) ? new Date() : new Date(n);
|
|
50
|
+
}
|
|
51
|
+
case 'checkbox': {
|
|
52
|
+
return !!value?.trim();
|
|
53
|
+
}
|
|
54
|
+
case 'multiselect': {
|
|
55
|
+
return value.split('\n');
|
|
56
|
+
}
|
|
57
|
+
default:
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
return {
|
|
62
|
+
field: field.field,
|
|
63
|
+
label: field.label,
|
|
64
|
+
source: field.source,
|
|
65
|
+
tooltip_label: field.tooltip_label,
|
|
66
|
+
coerce,
|
|
67
|
+
type,
|
|
68
|
+
section,
|
|
69
|
+
validator,
|
|
70
|
+
prefiller,
|
|
71
|
+
options,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
getFieldsForClient(sourceDomains) {
|
|
75
|
+
return this.fields
|
|
76
|
+
.map((field, i) => this.getFieldForClient(i, sourceDomains))
|
|
77
|
+
.filter((field) => field !== null);
|
|
78
|
+
}
|
|
79
|
+
getFieldsForServer() {
|
|
80
|
+
return this.fields
|
|
81
|
+
.map((field) => ({
|
|
82
|
+
field: field.field,
|
|
83
|
+
type: field.type,
|
|
84
|
+
x: field.x,
|
|
85
|
+
y: field.y,
|
|
86
|
+
w: field.w,
|
|
87
|
+
h: field.h,
|
|
88
|
+
page: field.page,
|
|
89
|
+
}))
|
|
90
|
+
.filter((field) => field !== null);
|
|
91
|
+
}
|
|
92
|
+
getSignatoryAsValues() {
|
|
93
|
+
const signatories = this.formMetadata.signatories;
|
|
94
|
+
const values = {};
|
|
95
|
+
for (const signatory of signatories)
|
|
96
|
+
values[signatory.field] = signatory.name;
|
|
97
|
+
return values;
|
|
98
|
+
}
|
|
99
|
+
parseValidator(fieldname, params = {}) {
|
|
100
|
+
const field = this.fields.find((f) => f.field === fieldname);
|
|
101
|
+
if (!field)
|
|
102
|
+
return null;
|
|
103
|
+
const d = new Date();
|
|
104
|
+
const defaults = {
|
|
105
|
+
currentDate: d,
|
|
106
|
+
currentDateTimestamp: d.getTime(),
|
|
107
|
+
};
|
|
108
|
+
const internalParams = this.formMetadata.params ?? {};
|
|
109
|
+
const validator = this.populateParams(field.validator, internalParams);
|
|
110
|
+
const ret = `return ${validator}`;
|
|
111
|
+
const evaluator = new Function('z', 'params', ret);
|
|
112
|
+
return evaluator(zod_1.default, { ...params, ...defaults });
|
|
113
|
+
}
|
|
114
|
+
parsePrefiller(fieldname, params = {}) {
|
|
115
|
+
const field = this.fields.find((f) => f.field === fieldname);
|
|
116
|
+
if (!field)
|
|
117
|
+
return null;
|
|
118
|
+
const internalParams = this.formMetadata.params ?? {};
|
|
119
|
+
const prefiller = this.populateParams(field.prefiller, internalParams);
|
|
120
|
+
const ret = `return ${prefiller}`;
|
|
121
|
+
const evaluator = new Function('params', ret);
|
|
122
|
+
return evaluator(params ?? {});
|
|
123
|
+
}
|
|
124
|
+
enumerateParams(s) {
|
|
125
|
+
const detectedParams = s.match(/#\{[^}]*\}/g) ?? [];
|
|
126
|
+
const params = detectedParams.map((dp) => {
|
|
127
|
+
const [fieldName, propertyTree] = dp
|
|
128
|
+
.replaceAll('#{', '')
|
|
129
|
+
.replaceAll('}', '')
|
|
130
|
+
.replaceAll(')', '')
|
|
131
|
+
.split('(');
|
|
132
|
+
const properties = propertyTree?.split('.') ?? [];
|
|
133
|
+
return [fieldName, ...properties];
|
|
134
|
+
});
|
|
135
|
+
return params?.reduce((acc, cur, i) => ((acc[detectedParams[i]] = cur), acc), {});
|
|
136
|
+
}
|
|
137
|
+
populateParams(s, params) {
|
|
138
|
+
const paramsReflection = this.enumerateParams(s);
|
|
139
|
+
const paramsValues = {};
|
|
140
|
+
for (const match in paramsReflection) {
|
|
141
|
+
const path = paramsReflection[match];
|
|
142
|
+
paramsValues[match] = path.reduce((acc, cur) => acc?.[cur], params) ?? '';
|
|
143
|
+
}
|
|
144
|
+
let out = s;
|
|
145
|
+
for (const match in paramsValues) {
|
|
146
|
+
const replacement = JSON.stringify(paramsValues[match]);
|
|
147
|
+
out = out.replaceAll(match, replacement);
|
|
148
|
+
}
|
|
149
|
+
return out;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.FormMetadata = FormMetadata;
|
|
124
153
|
//# sourceMappingURL=form-metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-metadata.js","sourceRoot":"","sources":["../../../lib/forms/form-metadata.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"form-metadata.js","sourceRoot":"","sources":["../../../lib/forms/form-metadata.ts"],"names":[],"mappings":"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"}
|