@verdocs/web-sdk 2.3.24 → 2.3.26
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/cjs/{EnvelopeStore-efc35530.js → EnvelopeStore-7b1adebb.js} +0 -2
- package/dist/cjs/{TemplateFieldStore-40e85b9d.js → TemplateFieldStore-ecf695a7.js} +16 -8
- package/dist/cjs/{TemplateStore-079a1f85.js → TemplateStore-78b8944b.js} +20 -7
- package/dist/cjs/ipc-test.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/verdocs-build.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-envelope-document-page.cjs.entry.js +1 -0
- package/dist/cjs/verdocs-envelope-recipient-link_2.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-field-attachment.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-field-date.cjs.entry.js +3 -3
- package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-field-initial.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-field-payment.cjs.entry.js +2 -52
- package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-field-signature.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-field-textarea.cjs.entry.js +3 -4
- package/dist/cjs/verdocs-field-textbox.cjs.entry.js +3 -3
- package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-portal_2.cjs.entry.js +21 -37
- package/dist/cjs/verdocs-preview_8.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-sign.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-template-fields_4.cjs.entry.js +38 -66
- package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
- package/dist/collection/components/envelopes/verdocs-envelope-document-page/verdocs-envelope-document-page.js +1 -0
- package/dist/collection/components/fields/verdocs-field-attachment/verdocs-field-attachment.js +1 -1
- package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js +1 -2
- package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js +2 -2
- package/dist/collection/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.js +1 -2
- package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js +1 -2
- package/dist/collection/components/fields/verdocs-field-payment/verdocs-field-payment.js +1 -51
- package/dist/collection/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.js +1 -2
- package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js +1 -2
- package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +2 -3
- package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +2 -2
- package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.js +1 -2
- package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.js +21 -37
- package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js +12 -35
- package/dist/collection/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.js +7 -10
- package/dist/collection/components/templates/verdocs-template-roles/verdocs-template-roles.js +20 -22
- package/dist/collection/utils/EnvelopeStore.js +0 -3
- package/dist/collection/utils/TemplateFieldStore.js +19 -8
- package/dist/collection/utils/TemplateRoleStore.js +17 -4
- package/dist/collection/utils/TemplateStore.js +0 -2
- package/dist/components/EnvelopeStore.js +0 -2
- package/dist/components/TemplateFieldStore.js +16 -9
- package/dist/components/TemplateStore.js +18 -7
- package/dist/components/verdocs-envelope-document-page2.js +1 -0
- package/dist/components/verdocs-field-attachment.js +1 -1
- package/dist/components/verdocs-field-checkbox.js +1 -2
- package/dist/components/verdocs-field-date.js +2 -2
- package/dist/components/verdocs-field-dropdown.js +1 -2
- package/dist/components/verdocs-field-initial.js +1 -2
- package/dist/components/verdocs-field-payment.js +1 -51
- package/dist/components/verdocs-field-radio-button.js +1 -2
- package/dist/components/verdocs-field-signature.js +1 -2
- package/dist/components/verdocs-field-textarea.js +2 -3
- package/dist/components/verdocs-field-textbox.js +2 -2
- package/dist/components/verdocs-field-timestamp.js +1 -2
- package/dist/components/verdocs-template-field-properties2.js +21 -37
- package/dist/components/verdocs-template-fields2.js +12 -35
- package/dist/components/verdocs-template-role-properties2.js +7 -10
- package/dist/components/verdocs-template-roles2.js +20 -22
- package/dist/docs.json +2 -2
- package/dist/esm/{EnvelopeStore-17c0bc52.js → EnvelopeStore-24a1f38f.js} +0 -2
- package/dist/esm/{TemplateFieldStore-295f240e.js → TemplateFieldStore-0516a7ec.js} +16 -9
- package/dist/esm/{TemplateStore-1ee18675.js → TemplateStore-618fb47f.js} +19 -8
- package/dist/esm/ipc-test.entry.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/verdocs-build.entry.js +2 -2
- package/dist/esm/verdocs-envelope-document-page.entry.js +1 -0
- package/dist/esm/verdocs-envelope-recipient-link_2.entry.js +1 -1
- package/dist/esm/verdocs-envelope-sidebar.entry.js +1 -1
- package/dist/esm/verdocs-field-attachment.entry.js +2 -2
- package/dist/esm/verdocs-field-checkbox.entry.js +2 -3
- package/dist/esm/verdocs-field-date.entry.js +3 -3
- package/dist/esm/verdocs-field-dropdown.entry.js +2 -3
- package/dist/esm/verdocs-field-initial.entry.js +2 -3
- package/dist/esm/verdocs-field-payment.entry.js +2 -52
- package/dist/esm/verdocs-field-radio-button.entry.js +2 -3
- package/dist/esm/verdocs-field-signature.entry.js +2 -3
- package/dist/esm/verdocs-field-textarea.entry.js +3 -4
- package/dist/esm/verdocs-field-textbox.entry.js +3 -3
- package/dist/esm/verdocs-field-timestamp.entry.js +2 -3
- package/dist/esm/verdocs-portal_2.entry.js +21 -37
- package/dist/esm/verdocs-preview_8.entry.js +2 -2
- package/dist/esm/verdocs-sign.entry.js +1 -1
- package/dist/esm/verdocs-template-fields_4.entry.js +38 -66
- package/dist/esm/verdocs-web-sdk.js +1 -1
- package/dist/esm-es5/{EnvelopeStore-17c0bc52.js → EnvelopeStore-24a1f38f.js} +1 -1
- package/dist/esm-es5/TemplateFieldStore-0516a7ec.js +1 -0
- package/dist/esm-es5/TemplateStore-618fb47f.js +1 -0
- package/dist/esm-es5/ipc-test.entry.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/verdocs-build.entry.js +1 -1
- package/dist/esm-es5/verdocs-envelope-document-page.entry.js +1 -1
- package/dist/esm-es5/verdocs-envelope-recipient-link_2.entry.js +1 -1
- package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-attachment.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
- package/dist/esm-es5/verdocs-portal_2.entry.js +1 -1
- package/dist/esm-es5/verdocs-preview_8.entry.js +1 -1
- package/dist/esm-es5/verdocs-sign.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-fields_4.entry.js +1 -1
- package/dist/esm-es5/verdocs-web-sdk.js +1 -1
- package/dist/types/components/fields/verdocs-field-payment/verdocs-field-payment.d.ts +0 -21
- package/dist/types/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.d.ts +0 -2
- package/dist/types/components/templates/verdocs-template-fields/verdocs-template-fields.d.ts +0 -1
- package/dist/types/utils/EnvelopeStore.d.ts +0 -2
- package/dist/types/utils/TemplateFieldStore.d.ts +6 -3
- package/dist/types/utils/TemplateRoleStore.d.ts +5 -2
- package/dist/types/utils/TemplateStore.d.ts +0 -1
- package/dist/verdocs-web-sdk/{p-d318d19b.system.entry.js → p-058f0e56.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-0aec8a25.system.entry.js → p-093f593d.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-2458bbc0.system.entry.js → p-09babc77.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-0a5b8a89.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-b648ab63.system.entry.js → p-151c33dd.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-feb78cde.system.entry.js → p-18cb9ef7.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-1b661190.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-321da456.js +1 -0
- package/dist/verdocs-web-sdk/{p-710d6928.system.entry.js → p-350f1ca4.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-35720475.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-a9b53e29.system.entry.js → p-371effb1.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-3930ee22.js +1 -0
- package/dist/verdocs-web-sdk/p-3989e584.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-3b1711df.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-cb429454.entry.js → p-3d9adca7.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-3ec512a6.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-b276486c.system.entry.js → p-3f7aa186.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-9615b087.system.js → p-4098a4a2.system.js} +1 -1
- package/dist/verdocs-web-sdk/{p-00e49c36.entry.js → p-413a5b21.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-591b695c.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-5cd0b997.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-62ec3db9.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-6be44a1e.js +1 -0
- package/dist/verdocs-web-sdk/{p-9fe214d8.entry.js → p-6d42921b.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-84a111b9.entry.js → p-6d81d774.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-b86c345f.system.entry.js → p-6e45e610.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-71faa59f.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-73abd3fc.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-82d4afbf.entry.js → p-77d3c570.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-79de397b.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-7bdbce2d.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-f94e8672.system.entry.js → p-7c8419d7.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-9f46a6a9.system.entry.js → p-9542e890.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-d61fda4b.entry.js → p-997a4959.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-e080e371.system.entry.js → p-a97512f6.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-3f3e3347.system.entry.js → p-aa29c7ec.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-6dd69d82.system.entry.js → p-c118d024.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-e609b52c.system.entry.js → p-c11c841c.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-6e847f1c.system.entry.js → p-c82a2a4e.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-858f53bd.system.entry.js → p-d32278c8.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-df621f8d.system.js +1 -0
- package/dist/verdocs-web-sdk/p-ea4db7ae.system.js +1 -0
- package/dist/verdocs-web-sdk/p-ea52b891.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-f04bf956.system.js +1 -1
- package/dist/verdocs-web-sdk/{p-6ada9427.entry.js → p-fda04bb0.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-ff473972.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-ffa4091d.entry.js +1 -0
- package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
- package/package.json +1 -1
- package/dist/esm-es5/TemplateFieldStore-295f240e.js +0 -1
- package/dist/esm-es5/TemplateStore-1ee18675.js +0 -1
- package/dist/verdocs-web-sdk/p-0bfc239a.system.js +0 -1
- package/dist/verdocs-web-sdk/p-1f78be32.js +0 -1
- package/dist/verdocs-web-sdk/p-2720068f.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-27b657be.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-3819eb68.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-3c277355.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-48ad75db.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-4fc74ab1.js +0 -1
- package/dist/verdocs-web-sdk/p-50ee8b2d.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-5361ee8f.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-6992b715.system.js +0 -1
- package/dist/verdocs-web-sdk/p-7f2f79fa.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-8c5de079.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-9574a874.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-a2965966.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-abd4e2e2.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-af4755e8.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-b54467df.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-cc9a62c3.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-e8fc7e30.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-ffe39848.js +0 -1
@@ -32,7 +32,7 @@ export class VerdocsFieldDate {
|
|
32
32
|
this.fieldStore = getTemplateFieldStore(this.templateid);
|
33
33
|
}
|
34
34
|
componentDidLoad() {
|
35
|
-
const field = this.fieldStore.get(this.fieldname);
|
35
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
36
36
|
const { result } = getFieldSettings(field);
|
37
37
|
flatpickr('#' + this.containerId, {
|
38
38
|
positionElement: this.el,
|
@@ -66,7 +66,7 @@ export class VerdocsFieldDate {
|
|
66
66
|
// NOTE: We don't use a "date" field here because browsers vary widely in their formatting of it.
|
67
67
|
render() {
|
68
68
|
var _a, _b;
|
69
|
-
const field = this.fieldStore.get(this.fieldname);
|
69
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
70
70
|
if (!field) {
|
71
71
|
return h(Fragment, null);
|
72
72
|
}
|
@@ -39,14 +39,13 @@ export class VerdocsFieldDropdown {
|
|
39
39
|
if (settingsPanel && settingsPanel.hidePanel) {
|
40
40
|
settingsPanel.hidePanel();
|
41
41
|
}
|
42
|
-
// TemplateStore.updateCount++;
|
43
42
|
}
|
44
43
|
async componentWillLoad() {
|
45
44
|
this.fieldStore = getTemplateFieldStore(this.templateid);
|
46
45
|
}
|
47
46
|
render() {
|
48
47
|
var _a, _b;
|
49
|
-
const field = this.fieldStore.get(this.fieldname);
|
48
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
50
49
|
if (!field) {
|
51
50
|
return h(Fragment, null);
|
52
51
|
}
|
@@ -61,11 +61,10 @@ export class VerdocsFieldInitial {
|
|
61
61
|
if (settingsPanel && settingsPanel.hidePanel) {
|
62
62
|
settingsPanel.hidePanel();
|
63
63
|
}
|
64
|
-
// TemplateStore.updateCount++;
|
65
64
|
}
|
66
65
|
render() {
|
67
66
|
var _a, _b;
|
68
|
-
const field = this.fieldStore.get(this.fieldname);
|
67
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
69
68
|
if (!field) {
|
70
69
|
return h(Fragment, null);
|
71
70
|
}
|
@@ -8,25 +8,6 @@ import { getFieldSettings } from '../../../utils/utils';
|
|
8
8
|
*/
|
9
9
|
export class VerdocsFieldPayment {
|
10
10
|
constructor() {
|
11
|
-
this._fields = [];
|
12
|
-
// envelopeFieldsFormGroup: FormGroup;
|
13
|
-
this.signatureFile = null;
|
14
|
-
this.initialFile = null;
|
15
|
-
this.focusOrderNumber = -1;
|
16
|
-
this.focusFieldName = '';
|
17
|
-
this.activeElement = null;
|
18
|
-
this.showError = {
|
19
|
-
pageNum: -1,
|
20
|
-
fieldIndex: -1,
|
21
|
-
type: null,
|
22
|
-
};
|
23
|
-
this.dialogOpened = false;
|
24
|
-
this.closeAllErrors = false;
|
25
|
-
this.fieldsMap = {};
|
26
|
-
this.fieldsForCurrentSigner = [];
|
27
|
-
this.fontSize = 11;
|
28
|
-
this.averageFontWidth = 5;
|
29
|
-
this.requiredFields = [];
|
30
11
|
this.fieldStore = null;
|
31
12
|
this.templateid = '';
|
32
13
|
this.fieldname = '';
|
@@ -65,36 +46,6 @@ export class VerdocsFieldPayment {
|
|
65
46
|
}
|
66
47
|
}
|
67
48
|
}
|
68
|
-
// [tabIndex]="field.role !== roleName ? -1 : 1"
|
69
|
-
// [ngStyle]="field.element_style"
|
70
|
-
// [value]="field.value"
|
71
|
-
// (click)="initiateSign(field)"
|
72
|
-
// (blur)="validateChanges(field)"
|
73
|
-
// [disabled]="field.role!==roleName"
|
74
|
-
// [id]="field.key"
|
75
|
-
// <button _ngcontent-app-root-c342="" class="envelope__field" tabindex="1" ng-reflect-ng-style="[object Object]"
|
76
|
-
// ng-reflect-ng-class="[object Object]" value="" id="signatureP5-1"
|
77
|
-
// style="height: 100%; width: 100%; background: none; font-size: 11px; border: 1px solid rgb(204, 0, 0);"> Signature </button>
|
78
|
-
// bottom: 229.333
|
79
|
-
// px
|
80
|
-
// ;
|
81
|
-
// left: 169.333
|
82
|
-
// px
|
83
|
-
// ;
|
84
|
-
// height: 41
|
85
|
-
// px
|
86
|
-
// ;
|
87
|
-
// width: 82
|
88
|
-
// px
|
89
|
-
// ;
|
90
|
-
// background-color: rgba(156, 39, 176, 0.4);
|
91
|
-
// transform: scale(1.33333, 1.33333);
|
92
|
-
// }
|
93
|
-
// <style>
|
94
|
-
// .envelope__item[_ngcontent-app-root-c342] {
|
95
|
-
// position: absolute;
|
96
|
-
// transform-origin: bottom left;
|
97
|
-
// opacity: 1;
|
98
49
|
async showSettingsPanel() {
|
99
50
|
const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`);
|
100
51
|
if (settingsPanel && settingsPanel.showPanel) {
|
@@ -106,11 +57,10 @@ export class VerdocsFieldPayment {
|
|
106
57
|
if (settingsPanel && settingsPanel.hidePanel) {
|
107
58
|
settingsPanel.hidePanel();
|
108
59
|
}
|
109
|
-
// TemplateStore.updateCount++;
|
110
60
|
}
|
111
61
|
render() {
|
112
62
|
var _a, _b;
|
113
|
-
const field = this.fieldStore.get(this.fieldname);
|
63
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
114
64
|
if (!field) {
|
115
65
|
return h(Fragment, null);
|
116
66
|
}
|
@@ -35,14 +35,13 @@ export class VerdocsFieldRadioButton {
|
|
35
35
|
if (settingsPanel && settingsPanel.hidePanel) {
|
36
36
|
settingsPanel.hidePanel();
|
37
37
|
}
|
38
|
-
// TemplateStore.updateCount++;
|
39
38
|
}
|
40
39
|
async componentWillLoad() {
|
41
40
|
this.fieldStore = getTemplateFieldStore(this.templateid);
|
42
41
|
}
|
43
42
|
render() {
|
44
43
|
var _a, _b;
|
45
|
-
const field = this.fieldStore.get(this.fieldname);
|
44
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
46
45
|
if (!field) {
|
47
46
|
return h(Fragment, null);
|
48
47
|
}
|
package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js
CHANGED
@@ -59,14 +59,13 @@ export class VerdocsFieldSignature {
|
|
59
59
|
if (settingsPanel && settingsPanel.hidePanel) {
|
60
60
|
settingsPanel.hidePanel();
|
61
61
|
}
|
62
|
-
// TemplateStore.updateCount++;
|
63
62
|
}
|
64
63
|
async componentWillLoad() {
|
65
64
|
this.fieldStore = getTemplateFieldStore(this.templateid);
|
66
65
|
}
|
67
66
|
render() {
|
68
67
|
var _a, _b;
|
69
|
-
const field = this.fieldStore.get(this.fieldname);
|
68
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
70
69
|
if (!field) {
|
71
70
|
return h(Fragment, null);
|
72
71
|
}
|
@@ -39,7 +39,6 @@ export class VerdocsFieldTextarea {
|
|
39
39
|
if (settingsPanel && settingsPanel.hidePanel) {
|
40
40
|
settingsPanel.hidePanel();
|
41
41
|
}
|
42
|
-
// TemplateStore.updateCount++;
|
43
42
|
}
|
44
43
|
async componentWillLoad() {
|
45
44
|
this.fieldStore = getTemplateFieldStore(this.templateid);
|
@@ -75,7 +74,7 @@ export class VerdocsFieldTextarea {
|
|
75
74
|
Object.assign(e.target.dataset, { x, y, h });
|
76
75
|
}
|
77
76
|
handleResizeEnd(e) {
|
78
|
-
const field = this.fieldStore.get(this.fieldname);
|
77
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
79
78
|
const newSettings = { ...getFieldSettings(field) };
|
80
79
|
const [translateX, translateY] = e.target.style.transform.split('(')[1].split(')')[0].split(',').map(parseFloat);
|
81
80
|
newSettings.width = Math.round(parseFloat(e.target.style.width) / this.xscale);
|
@@ -92,7 +91,7 @@ export class VerdocsFieldTextarea {
|
|
92
91
|
}
|
93
92
|
render() {
|
94
93
|
var _a, _b;
|
95
|
-
const field = this.fieldStore.get(this.fieldname);
|
94
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
96
95
|
if (!field) {
|
97
96
|
return h(Fragment, null);
|
98
97
|
}
|
@@ -74,7 +74,7 @@ export class VerdocsFieldTextbox {
|
|
74
74
|
Object.assign(e.target.dataset, { x, y, h });
|
75
75
|
}
|
76
76
|
handleResizeEnd(e) {
|
77
|
-
const field = this.fieldStore.get(this.fieldname);
|
77
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
78
78
|
const newSettings = { ...getFieldSettings(field) };
|
79
79
|
const [translateX, translateY] = e.target.style.transform.split('(')[1].split(')')[0].split(',').map(parseFloat);
|
80
80
|
newSettings.width = Math.round(parseFloat(e.target.style.width) / this.xscale);
|
@@ -92,7 +92,7 @@ export class VerdocsFieldTextbox {
|
|
92
92
|
}
|
93
93
|
render() {
|
94
94
|
var _a, _b;
|
95
|
-
const field = this.fieldStore.get(this.fieldname);
|
95
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
96
96
|
if (!field) {
|
97
97
|
return h(Fragment, null);
|
98
98
|
}
|
package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.js
CHANGED
@@ -37,14 +37,13 @@ export class VerdocsFieldTimestamp {
|
|
37
37
|
if (settingsPanel && settingsPanel.hidePanel) {
|
38
38
|
settingsPanel.hidePanel();
|
39
39
|
}
|
40
|
-
// TemplateStore.updateCount++;
|
41
40
|
}
|
42
41
|
async componentWillLoad() {
|
43
42
|
this.fieldStore = getTemplateFieldStore(this.templateid);
|
44
43
|
}
|
45
44
|
render() {
|
46
45
|
var _a, _b;
|
47
|
-
const field = this.fieldStore.get(this.fieldname);
|
46
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
48
47
|
if (!field) {
|
49
48
|
return h(Fragment, null);
|
50
49
|
}
|
@@ -2,7 +2,7 @@ import uuidv4 from 'uuid-browser';
|
|
2
2
|
import { VerdocsEndpoint } from '@verdocs/js-sdk';
|
3
3
|
import { deleteField, updateField } from '@verdocs/js-sdk/Templates/Fields';
|
4
4
|
import { h, Host } from '@stencil/core';
|
5
|
-
import { createTemplateFieldStore } from '../../../utils/TemplateFieldStore';
|
5
|
+
import { createTemplateFieldStore, updateStoreField } from '../../../utils/TemplateFieldStore';
|
6
6
|
import { getTemplateStore } from '../../../utils/TemplateStore';
|
7
7
|
import { SDKError } from '../../../utils/errors';
|
8
8
|
const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
@@ -15,7 +15,6 @@ export class VerdocsTemplateFieldProperties {
|
|
15
15
|
constructor() {
|
16
16
|
this.templateStore = null;
|
17
17
|
this.fieldStore = null;
|
18
|
-
this.watcher = null;
|
19
18
|
this.endpoint = VerdocsEndpoint.getDefault();
|
20
19
|
this.templateId = '';
|
21
20
|
this.fieldName = '';
|
@@ -56,7 +55,7 @@ export class VerdocsTemplateFieldProperties {
|
|
56
55
|
createTemplateFieldStore(this.templateStore.state);
|
57
56
|
this.fieldStore = await createTemplateFieldStore(this.templateStore.state);
|
58
57
|
// console.log('tfs', this.fieldStore?.state);
|
59
|
-
const field = this.fieldStore.get(this.fieldName);
|
58
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldName);
|
60
59
|
// console.log('gf', field);
|
61
60
|
if (!field) {
|
62
61
|
console.log(`[FIELD PROPERTIES] Unable to find field "${this.fieldName}" in fields`);
|
@@ -64,25 +63,6 @@ export class VerdocsTemplateFieldProperties {
|
|
64
63
|
else {
|
65
64
|
console.log('props', field);
|
66
65
|
}
|
67
|
-
this.watcher = this.fieldStore.onChange(this.fieldName, (field) => {
|
68
|
-
console.log('Field changed', field);
|
69
|
-
// this.type = field.type;
|
70
|
-
// this.name = field.name;
|
71
|
-
// this.label = field.label;
|
72
|
-
// this.group = field.name;
|
73
|
-
// this.roleName = field.role_name;
|
74
|
-
// this.required = field.required;
|
75
|
-
// this.fieldType = field.type;
|
76
|
-
// // TODO: Talk about how we want to handle labels/placeholders
|
77
|
-
// this.placeholder = field.setting?.placeholder || '';
|
78
|
-
// this.value = field.setting?.result || '';
|
79
|
-
// this.leading = field.setting?.leading || 0;
|
80
|
-
// this.setting = field.setting || {};
|
81
|
-
// this.options = field.setting?.options || [];
|
82
|
-
// this.dirty = false;
|
83
|
-
// this.loading = false;
|
84
|
-
});
|
85
|
-
console.log('watcher', this.watcher);
|
86
66
|
this.type = field.type;
|
87
67
|
this.name = field.name;
|
88
68
|
this.label = field.label;
|
@@ -109,7 +89,7 @@ export class VerdocsTemplateFieldProperties {
|
|
109
89
|
handleCancel(e) {
|
110
90
|
var _a, _b, _c, _d;
|
111
91
|
e.stopPropagation();
|
112
|
-
const field = this.fieldStore.get(this.fieldName);
|
92
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldName);
|
113
93
|
if (field) {
|
114
94
|
this.name = field.name;
|
115
95
|
this.label = field.label;
|
@@ -149,11 +129,19 @@ export class VerdocsTemplateFieldProperties {
|
|
149
129
|
}
|
150
130
|
console.log('FP: Will update', this.fieldName, newProperties);
|
151
131
|
updateField(this.endpoint, this.templateId, this.fieldName, newProperties)
|
152
|
-
.then(
|
132
|
+
.then(updated => {
|
153
133
|
var _a, _b;
|
154
134
|
this.dirty = false;
|
155
|
-
|
156
|
-
|
135
|
+
const newFields = [
|
136
|
+
...this.fieldStore.get('fields').map(field => {
|
137
|
+
if (field.name !== this.fieldName) {
|
138
|
+
return field;
|
139
|
+
}
|
140
|
+
return { ...field, ...updated };
|
141
|
+
}),
|
142
|
+
];
|
143
|
+
this.fieldStore.set('fields', newFields);
|
144
|
+
(_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName, settings: newProperties, field: updated });
|
157
145
|
(_b = this.close) === null || _b === void 0 ? void 0 : _b.emit();
|
158
146
|
})
|
159
147
|
.catch(() => {
|
@@ -187,29 +175,25 @@ export class VerdocsTemplateFieldProperties {
|
|
187
175
|
delete newProperties.setting.result;
|
188
176
|
newProperties.setting.options = [...this.options];
|
189
177
|
updateField(this.endpoint, this.templateId, this.fieldName, newProperties)
|
190
|
-
.then(
|
178
|
+
.then(updated => {
|
191
179
|
var _a, _b;
|
192
180
|
this.dirty = false;
|
193
|
-
this.
|
194
|
-
|
181
|
+
updateStoreField(this.fieldStore, this.fieldName, updated);
|
182
|
+
this.fieldName = updated.name;
|
183
|
+
(_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName, settings: newProperties, field: updated });
|
195
184
|
(_b = this.close) === null || _b === void 0 ? void 0 : _b.emit();
|
196
185
|
})
|
197
186
|
.catch(() => {
|
198
187
|
console.log('Field update failed', e);
|
199
188
|
});
|
200
189
|
}
|
201
|
-
updateField(newField) {
|
202
|
-
const oldField = this.fieldStore.get(this.fieldName) || {};
|
203
|
-
console.log('Updating field', this.fieldName, newField);
|
204
|
-
Object.assign(oldField, newField);
|
205
|
-
}
|
206
190
|
async handleDelete(e) {
|
207
191
|
e.stopPropagation();
|
208
192
|
if (window.confirm('Are you sure you wish to remove this field? This action cannot be undone.')) {
|
209
193
|
deleteField(this.endpoint, this.templateId, this.fieldName)
|
210
194
|
.then(() => {
|
211
195
|
var _a;
|
212
|
-
this.fieldStore.set(this.fieldName
|
196
|
+
this.fieldStore.set('fields', this.fieldStore.get('fields').filter(field => field.name !== this.fieldName));
|
213
197
|
(_a = this.delete) === null || _a === void 0 ? void 0 : _a.emit({ templateId: this.templateId, roleName: this.roleName });
|
214
198
|
})
|
215
199
|
.catch(e => {
|
@@ -224,7 +208,7 @@ export class VerdocsTemplateFieldProperties {
|
|
224
208
|
return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
|
225
209
|
}
|
226
210
|
// This is meant to be a companion for larger visual experiences so we just go blank on errors for now.
|
227
|
-
if (!this.endpoint.session || !this.fieldStore.get(this.fieldName)) {
|
211
|
+
if (!this.endpoint.session || !this.fieldStore.get('fields').some(field => field.name === this.fieldName)) {
|
228
212
|
return h(Host, { class: "empty" });
|
229
213
|
}
|
230
214
|
if (this.helpText && this.showingHelp) {
|
@@ -333,7 +317,7 @@ export class VerdocsTemplateFieldProperties {
|
|
333
317
|
},
|
334
318
|
"fieldName": {
|
335
319
|
"type": "string",
|
336
|
-
"mutable":
|
320
|
+
"mutable": true,
|
337
321
|
"complexType": {
|
338
322
|
"original": "string",
|
339
323
|
"resolved": "string",
|
package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js
CHANGED
@@ -5,7 +5,7 @@ import { createField, updateField } from '@verdocs/js-sdk/Templates/Fields';
|
|
5
5
|
import { h, Host } from '@stencil/core';
|
6
6
|
import { defaultHeight, defaultWidth, getRoleIndex, renderDocumentField, updateCssTransform } from '../../../utils/utils';
|
7
7
|
import { getRoleNames, getTemplateStore } from '../../../utils/TemplateStore';
|
8
|
-
import { getTemplateFieldStore } from '../../../utils/TemplateFieldStore';
|
8
|
+
import { getTemplateFieldStore, updateStoreField } from '../../../utils/TemplateFieldStore';
|
9
9
|
import { getTemplateRoleStore } from '../../../utils/TemplateRoleStore';
|
10
10
|
import { SDKError } from '../../../utils/errors';
|
11
11
|
const iconTextbox = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path fill="#ffffff" d="M3.425 16.15V13h11.15v3.15Zm0-5.15V7.85h17.15V11Z"/></svg>';
|
@@ -101,33 +101,12 @@ export class VerdocsTemplateFields {
|
|
101
101
|
async handleFieldChange(field, e, optionId) {
|
102
102
|
console.log('[FIELDS] handleFieldChange', field, e, optionId);
|
103
103
|
}
|
104
|
-
handleFieldSettingsChange(pageInfo, field, el, newFieldData, oldName) {
|
105
|
-
var _a, _b;
|
106
|
-
// handleFieldSettingsChange(pageInfo: any, field: any, roleIndex: number, el: any, newFieldData: any) {
|
107
|
-
console.log('[FIELDS] Field settings changed', oldName, field.name, newFieldData);
|
108
|
-
Object.assign(field, newFieldData);
|
109
|
-
el.field = newFieldData;
|
110
|
-
this.selectedRoleName = field.role_name;
|
111
|
-
el.setAttribute('roleindex', getRoleIndex(getRoleNames(this.templateStore), field.role_name));
|
112
|
-
el.field = this.fieldStore.get(field.name);
|
113
|
-
(_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state, event: 'updated-field' });
|
114
|
-
// We do this to avoid dupes if the field gets renamed.
|
115
|
-
if (field.name !== oldName) {
|
116
|
-
console.log('[FIELDS] Renaming field', oldName, field.name);
|
117
|
-
el.remove();
|
118
|
-
delete this.fieldStore.state[oldName];
|
119
|
-
}
|
120
|
-
else {
|
121
|
-
console.log('[FIELDS] Updating existing field', field.name);
|
122
|
-
}
|
123
|
-
// REMINDER: Do not access el past this point! It may have been removed from the DOM.
|
124
|
-
console.log('[FIELDS] Re-rendering field', field.name, pageInfo.pageNumber, field);
|
125
|
-
this.fieldStore.set(field.name, field);
|
126
|
-
this.reRenderField(field, pageInfo.pageNumber);
|
127
|
-
}
|
128
104
|
attachFieldAttributes(pageInfo, field, roleIndex, el) {
|
129
105
|
el.addEventListener('input', e => this.handleFieldChange(field, e));
|
130
|
-
el.addEventListener('settingsChanged',
|
106
|
+
el.addEventListener('settingsChanged', () => {
|
107
|
+
var _a, _b;
|
108
|
+
(_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state, event: 'added-field' });
|
109
|
+
});
|
131
110
|
el.addEventListener('deleted', () => {
|
132
111
|
var _a, _b;
|
133
112
|
console.log('[FIELDS] Deleted', this, field);
|
@@ -147,9 +126,7 @@ export class VerdocsTemplateFields {
|
|
147
126
|
// console.log('[FIELDS] Page rendered', pageInfo.pageNumber, pageInfo);
|
148
127
|
this.cachedPageInfo[pageInfo.pageNumber] = pageInfo;
|
149
128
|
this.pageHeights[pageInfo.pageNumber] = pageInfo.naturalHeight;
|
150
|
-
|
151
|
-
// See https://github.com/ionic-team/stencil-store/issues/23
|
152
|
-
const fields = Object.values(this.fieldStore.state).filter((field) => field && field.page_sequence === pageInfo.pageNumber);
|
129
|
+
const fields = this.fieldStore.get('fields').filter(field => field && field.page_sequence === pageInfo.pageNumber);
|
153
130
|
console.log('[FIELDS] Page rendered', pageInfo, fields);
|
154
131
|
fields.forEach((field) => this.reRenderField(field, pageInfo.pageNumber));
|
155
132
|
}
|
@@ -191,9 +168,10 @@ export class VerdocsTemplateFields {
|
|
191
168
|
updateCssTransform(event.target, 'translate', `${newX}px, ${newY}px`);
|
192
169
|
}
|
193
170
|
async handleMoveEnd(event) {
|
171
|
+
var _a, _b;
|
194
172
|
const name = event.target.getAttribute('name');
|
195
173
|
const option = +(event.target.getAttribute('option') || '0');
|
196
|
-
const field = this.fieldStore.get(name);
|
174
|
+
const field = this.fieldStore.get('fields').find(field => field.name === name);
|
197
175
|
if (!field) {
|
198
176
|
console.log('[FIELDS] Unable to find field', name);
|
199
177
|
return;
|
@@ -236,10 +214,10 @@ export class VerdocsTemplateFields {
|
|
236
214
|
}
|
237
215
|
console.log('[FIELDS] Will update', name, y, option, field);
|
238
216
|
const newFieldData = await updateField(this.endpoint, this.templateId, name, field);
|
239
|
-
|
240
|
-
this.handleFieldSettingsChange(pageInfo, field, event.target, newFieldData, name);
|
217
|
+
updateStoreField(this.fieldStore, name, newFieldData);
|
241
218
|
event.target.removeAttribute('posX');
|
242
219
|
event.target.removeAttribute('posY');
|
220
|
+
(_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state, event: 'updated-field' });
|
243
221
|
}
|
244
222
|
generateFieldName(type, pageNumber) {
|
245
223
|
let i = 1;
|
@@ -247,7 +225,7 @@ export class VerdocsTemplateFields {
|
|
247
225
|
do {
|
248
226
|
fieldName = `${type}P${pageNumber}-${i}`;
|
249
227
|
i++;
|
250
|
-
} while (
|
228
|
+
} while (this.fieldStore.get('fields').some(field => field && field.name === fieldName));
|
251
229
|
return fieldName;
|
252
230
|
}
|
253
231
|
// Scale the X,Y clicks to the virtual page dimensions. Also ensure the field doesn't go off the page.
|
@@ -352,10 +330,9 @@ export class VerdocsTemplateFields {
|
|
352
330
|
}
|
353
331
|
const saved = await createField(this.endpoint, this.templateId, field);
|
354
332
|
console.log('[FIELDS] Saved field', saved);
|
355
|
-
this.fieldStore.set(
|
333
|
+
this.fieldStore.set('fields', [...this.fieldStore.state.fields, saved]);
|
356
334
|
this.placing = null;
|
357
335
|
(_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state, event: 'added-field' });
|
358
|
-
this.reRenderField(saved, pageNumber);
|
359
336
|
}
|
360
337
|
}
|
361
338
|
render() {
|
@@ -2,7 +2,7 @@ import { VerdocsEndpoint } from '@verdocs/js-sdk';
|
|
2
2
|
import { deleteRole, updateRole } from '@verdocs/js-sdk/Templates/Roles';
|
3
3
|
import { h, Host } from '@stencil/core';
|
4
4
|
import { TemplateSenderTypes } from '@verdocs/js-sdk/Templates/Types';
|
5
|
-
import { createTemplateRoleStore } from '../../../utils/TemplateRoleStore';
|
5
|
+
import { createTemplateRoleStore, deleteStoreRole, updateStoreRole } from '../../../utils/TemplateRoleStore';
|
6
6
|
import { getTemplateFieldStore } from '../../../utils/TemplateFieldStore';
|
7
7
|
import { getTemplateStore } from '../../../utils/TemplateStore';
|
8
8
|
import { SDKError } from '../../../utils/errors';
|
@@ -43,7 +43,7 @@ export class VerdocsTemplateRoleProperties {
|
|
43
43
|
this.templateStore = await getTemplateStore(this.endpoint, this.templateId, false);
|
44
44
|
this.fieldStore = getTemplateFieldStore(this.templateId);
|
45
45
|
this.roleStore = createTemplateRoleStore(this.templateStore.state);
|
46
|
-
const editingRole = this.roleStore.
|
46
|
+
const editingRole = this.roleStore.state.roles.find(role => role.name === this.roleName);
|
47
47
|
if (editingRole) {
|
48
48
|
this.name = editingRole.name;
|
49
49
|
this.type = editingRole.type;
|
@@ -62,7 +62,7 @@ export class VerdocsTemplateRoleProperties {
|
|
62
62
|
handleCancel(e) {
|
63
63
|
var _a;
|
64
64
|
e.stopPropagation();
|
65
|
-
const editingRole = this.roleStore.
|
65
|
+
const editingRole = this.roleStore.state.roles.find(role => role.name === this.roleName);
|
66
66
|
if (editingRole) {
|
67
67
|
this.name = editingRole.name;
|
68
68
|
this.type = editingRole.type;
|
@@ -90,10 +90,7 @@ export class VerdocsTemplateRoleProperties {
|
|
90
90
|
console.log('[ROLE_PROPERTIES] Update result', r);
|
91
91
|
this.saving = false;
|
92
92
|
this.dirty = false;
|
93
|
-
this.roleStore.
|
94
|
-
if (this.roleName !== r.name) {
|
95
|
-
this.roleStore.set(this.roleName, undefined);
|
96
|
-
}
|
93
|
+
updateStoreRole(this.roleStore, this.roleName, r);
|
97
94
|
(_a = this.close) === null || _a === void 0 ? void 0 : _a.emit();
|
98
95
|
})
|
99
96
|
.catch(e => {
|
@@ -105,9 +102,9 @@ export class VerdocsTemplateRoleProperties {
|
|
105
102
|
e.stopPropagation();
|
106
103
|
if (window.confirm('Are you sure you wish to remove this role? All associated fields will be removed as well. This action cannot be undone.')) {
|
107
104
|
deleteRole(this.endpoint, this.templateId, this.roleName)
|
108
|
-
.then(
|
105
|
+
.then(() => {
|
109
106
|
var _a;
|
110
|
-
|
107
|
+
deleteStoreRole(this.roleStore, this.roleName);
|
111
108
|
(_a = this.delete) === null || _a === void 0 ? void 0 : _a.emit({ templateId: this.templateId, roleName: this.roleName });
|
112
109
|
})
|
113
110
|
.catch(e => {
|
@@ -116,7 +113,7 @@ export class VerdocsTemplateRoleProperties {
|
|
116
113
|
}
|
117
114
|
}
|
118
115
|
render() {
|
119
|
-
const hasFields =
|
116
|
+
const hasFields = this.fieldStore.get('fields').some(field => field.role_name === this.roleName);
|
120
117
|
return (h(Host, null, h("div", { class: "background-overlay", onClick: e => this.handleCancel(e) }, h("div", { class: "dialog" }, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("verdocs-text-input", { id: "verdocs-role-name", label: "Role Name", value: this.name, autocomplete: "off", disabled: hasFields, helpText: hasFields
|
121
118
|
? 'This role has fields assigned and can no longer be renamed.'
|
122
119
|
: 'A unique name to identify the role in the workflow. Submitted data will also be tagged with this value.', placeholder: "Role Name...", onInput: (e) => {
|