@betterinternship/core 2.22.1 → 2.23.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.
- package/README.md +26 -26
- package/dist/lib/forms/field-preset-templates.js +8 -8
- package/dist/lib/forms/index.js.map +1 -1
- package/dist/lib/partners/forms/index.d.ts +1 -0
- package/dist/lib/partners/forms/index.js +2 -0
- package/dist/lib/partners/forms/index.js.map +1 -0
- package/dist/lib/partners/forms/signer-fields.d.ts +20 -0
- package/dist/lib/partners/forms/signer-fields.js +62 -0
- package/dist/lib/partners/forms/signer-fields.js.map +1 -0
- package/dist/lib/pdf-viewer/form-previewer-rendering.js +7 -7
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +86 -81
package/README.md
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
# Package.Core
|
|
2
|
-
|
|
3
|
-
Contains dependencies shared between the different services of the site.
|
|
4
|
-
|
|
5
|
-
## How to update
|
|
6
|
-
|
|
7
|
-
1. Build the package:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npm run build
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
2. Commit the build:
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
git add .
|
|
17
|
-
git commit -m "<follow conventional commits, k thanks>"
|
|
18
|
-
git push
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
3. Update the version and publish the package to NPM:
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
npm version <patch|minor|major>
|
|
25
|
-
npm publish
|
|
26
|
-
```
|
|
1
|
+
# Package.Core
|
|
2
|
+
|
|
3
|
+
Contains dependencies shared between the different services of the site.
|
|
4
|
+
|
|
5
|
+
## How to update
|
|
6
|
+
|
|
7
|
+
1. Build the package:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm run build
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
2. Commit the build:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
git add .
|
|
17
|
+
git commit -m "<follow conventional commits, k thanks>"
|
|
18
|
+
git push
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
3. Update the version and publish the package to NPM:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm version <patch|minor|major>
|
|
25
|
+
npm publish
|
|
26
|
+
```
|
|
@@ -5,14 +5,14 @@ const LONG_TEXT_VALIDATOR = `${TEXT_PREPROCESS}z.string().describe("textarea"))`
|
|
|
5
5
|
const NUMBER_VALIDATOR = 'z.number()';
|
|
6
6
|
const SIGNATURE_VALIDATOR = `${TEXT_PREPROCESS}z.string().nonempty({ message: "This field is required." }))`;
|
|
7
7
|
const DROPDOWN_VALIDATOR = `z.enum(["Option 1", "Option 2"], {message:"This field is required."})`;
|
|
8
|
-
const MULTISELECT_VALIDATOR = `z.array(
|
|
9
|
-
z.enum(
|
|
10
|
-
[
|
|
11
|
-
"Option 1",
|
|
12
|
-
"Option 2"
|
|
13
|
-
],
|
|
14
|
-
{ message: "This field is required." }
|
|
15
|
-
)
|
|
8
|
+
const MULTISELECT_VALIDATOR = `z.array(
|
|
9
|
+
z.enum(
|
|
10
|
+
[
|
|
11
|
+
"Option 1",
|
|
12
|
+
"Option 2"
|
|
13
|
+
],
|
|
14
|
+
{ message: "This field is required." }
|
|
15
|
+
)
|
|
16
16
|
).describe("multiselect")`;
|
|
17
17
|
const DATE_VALIDATOR = 'z.coerce.date()';
|
|
18
18
|
const TIME_VALIDATOR = 'z.string().describe("time")';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/forms/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/forms/index.ts"],"names":[],"mappings":"AASA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './signer-fields.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/partners/forms/index.ts"],"names":[],"mappings":"AASA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const MAX_COMPANY_SIGNATORIES = 2;
|
|
2
|
+
export declare const MAX_UNIVERSITY_SIGNATORIES = 5;
|
|
3
|
+
export type SignerParty = 'company' | 'university';
|
|
4
|
+
export type SignerProp = 'name' | 'title' | 'signature';
|
|
5
|
+
export declare const signerFieldPrefix: (party: SignerParty, index: number) => string;
|
|
6
|
+
export declare const signerFieldAliases: (party: SignerParty, index: number) => string[];
|
|
7
|
+
export declare const signerFieldKeys: (party: SignerParty, index: number, prop: SignerProp) => string[];
|
|
8
|
+
export declare const signatureFieldIdentity: (fieldKey: string) => string | null;
|
|
9
|
+
export interface CompanySignerRequirements {
|
|
10
|
+
name: boolean;
|
|
11
|
+
title: boolean;
|
|
12
|
+
signature: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface CompanySignatoryRequirements {
|
|
15
|
+
signer1: CompanySignerRequirements;
|
|
16
|
+
signer2: CompanySignerRequirements;
|
|
17
|
+
}
|
|
18
|
+
export declare const deriveCompanySignatoryRequirements: (fieldSchema: unknown) => CompanySignatoryRequirements;
|
|
19
|
+
export declare const requiresSigner1: (req: CompanySignatoryRequirements) => boolean;
|
|
20
|
+
export declare const requiresSigner2: (req: CompanySignatoryRequirements) => boolean;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export const MAX_COMPANY_SIGNATORIES = 2;
|
|
2
|
+
export const MAX_UNIVERSITY_SIGNATORIES = 5;
|
|
3
|
+
export const signerFieldPrefix = (party, index) => {
|
|
4
|
+
const base = party === 'company' ? 'company_signatory' : 'university_signatory';
|
|
5
|
+
return index === 0 ? base : `${base}_${index + 1}`;
|
|
6
|
+
};
|
|
7
|
+
export const signerFieldAliases = (party, index) => {
|
|
8
|
+
if (party === 'company' && index === 0)
|
|
9
|
+
return ['company_rep'];
|
|
10
|
+
return [];
|
|
11
|
+
};
|
|
12
|
+
export const signerFieldKeys = (party, index, prop) => [
|
|
13
|
+
signerFieldPrefix(party, index),
|
|
14
|
+
...signerFieldAliases(party, index),
|
|
15
|
+
].map((prefix) => `${prefix}_${prop}`);
|
|
16
|
+
const SIGNATURE_IDENTITY = {};
|
|
17
|
+
for (let index = 0; index < MAX_COMPANY_SIGNATORIES; index++) {
|
|
18
|
+
for (const key of signerFieldKeys('company', index, 'signature')) {
|
|
19
|
+
SIGNATURE_IDENTITY[key] = `company:${index}`;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
for (let index = 0; index < MAX_UNIVERSITY_SIGNATORIES; index++) {
|
|
23
|
+
for (const key of signerFieldKeys('university', index, 'signature')) {
|
|
24
|
+
SIGNATURE_IDENTITY[key] = `university:${index}`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export const signatureFieldIdentity = (fieldKey) => SIGNATURE_IDENTITY[fieldKey] ?? null;
|
|
28
|
+
const NONE = {
|
|
29
|
+
signer1: { name: false, title: false, signature: false },
|
|
30
|
+
signer2: { name: false, title: false, signature: false },
|
|
31
|
+
};
|
|
32
|
+
export const deriveCompanySignatoryRequirements = (fieldSchema) => {
|
|
33
|
+
if (!Array.isArray(fieldSchema))
|
|
34
|
+
return NONE;
|
|
35
|
+
const fields = new Set(fieldSchema
|
|
36
|
+
.filter((e) => !!e && typeof e === 'object')
|
|
37
|
+
.map((e) => e.field)
|
|
38
|
+
.filter((f) => typeof f === 'string'));
|
|
39
|
+
const has = (keys) => keys.some((k) => fields.has(k));
|
|
40
|
+
const signer1 = {
|
|
41
|
+
name: has(signerFieldKeys('company', 0, 'name')),
|
|
42
|
+
title: has(signerFieldKeys('company', 0, 'title')),
|
|
43
|
+
signature: has(signerFieldKeys('company', 0, 'signature')),
|
|
44
|
+
};
|
|
45
|
+
const signer2 = {
|
|
46
|
+
name: has(signerFieldKeys('company', 1, 'name')),
|
|
47
|
+
title: has(signerFieldKeys('company', 1, 'title')),
|
|
48
|
+
signature: has(signerFieldKeys('company', 1, 'signature')),
|
|
49
|
+
};
|
|
50
|
+
if (signer1.name ||
|
|
51
|
+
signer1.title ||
|
|
52
|
+
signer1.signature ||
|
|
53
|
+
signer2.name ||
|
|
54
|
+
signer2.title ||
|
|
55
|
+
signer2.signature) {
|
|
56
|
+
return { signer1, signer2 };
|
|
57
|
+
}
|
|
58
|
+
return NONE;
|
|
59
|
+
};
|
|
60
|
+
export const requiresSigner1 = (req) => req.signer1.name || req.signer1.title || req.signer1.signature;
|
|
61
|
+
export const requiresSigner2 = (req) => req.signer2.name || req.signer2.title || req.signer2.signature;
|
|
62
|
+
//# sourceMappingURL=signer-fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer-fields.js","sourceRoot":"","sources":["../../../../lib/partners/forms/signer-fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,13 +77,13 @@ export const ensurePreviewFontsLoaded = () => {
|
|
|
77
77
|
if (!document.getElementById(PREVIEW_FONT_STYLE_ID)) {
|
|
78
78
|
const style = document.createElement("style");
|
|
79
79
|
style.id = PREVIEW_FONT_STYLE_ID;
|
|
80
|
-
style.textContent = `
|
|
81
|
-
@font-face {
|
|
82
|
-
font-family: "MegastinaPreview";
|
|
83
|
-
src: url("/fonts/megastina.regular.ttf") format("truetype");
|
|
84
|
-
font-weight: 400;
|
|
85
|
-
font-style: normal;
|
|
86
|
-
font-display: block;
|
|
80
|
+
style.textContent = `
|
|
81
|
+
@font-face {
|
|
82
|
+
font-family: "MegastinaPreview";
|
|
83
|
+
src: url("/fonts/megastina.regular.ttf") format("truetype");
|
|
84
|
+
font-weight: 400;
|
|
85
|
+
font-style: normal;
|
|
86
|
+
font-display: block;
|
|
87
87
|
}`;
|
|
88
88
|
document.head.appendChild(style);
|
|
89
89
|
}
|