@verdocs/web-sdk 2.3.25 → 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/{TemplateFieldStore-40e85b9d.js → TemplateFieldStore-ecf695a7.js} +16 -8
- package/dist/cjs/{TemplateStore-5620eee7.js → TemplateStore-78b8944b.js} +20 -5
- 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-field-attachment.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-date.cjs.entry.js +3 -3
- package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-initial.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-payment.cjs.entry.js +2 -51
- package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-signature.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-textarea.cjs.entry.js +3 -3
- package/dist/cjs/verdocs-field-textbox.cjs.entry.js +3 -3
- package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +2 -2
- 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/fields/verdocs-field-attachment/verdocs-field-attachment.js +1 -1
- package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js +1 -1
- 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 -1
- package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js +1 -1
- package/dist/collection/components/fields/verdocs-field-payment/verdocs-field-payment.js +1 -50
- package/dist/collection/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.js +1 -1
- package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js +1 -1
- package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +2 -2
- 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 -1
- 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/TemplateFieldStore.js +19 -8
- package/dist/collection/utils/TemplateRoleStore.js +17 -4
- package/dist/components/TemplateFieldStore.js +16 -9
- package/dist/components/TemplateStore.js +18 -5
- package/dist/components/verdocs-field-attachment.js +1 -1
- package/dist/components/verdocs-field-checkbox.js +1 -1
- package/dist/components/verdocs-field-date.js +2 -2
- package/dist/components/verdocs-field-dropdown.js +1 -1
- package/dist/components/verdocs-field-initial.js +1 -1
- package/dist/components/verdocs-field-payment.js +1 -50
- package/dist/components/verdocs-field-radio-button.js +1 -1
- package/dist/components/verdocs-field-signature.js +1 -1
- package/dist/components/verdocs-field-textarea.js +2 -2
- package/dist/components/verdocs-field-textbox.js +2 -2
- package/dist/components/verdocs-field-timestamp.js +1 -1
- 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/custom-elements.json +2175 -0
- package/dist/docs.json +2 -2
- package/dist/esm/{TemplateFieldStore-295f240e.js → TemplateFieldStore-0516a7ec.js} +16 -9
- package/dist/esm/{TemplateStore-f188c963.js → TemplateStore-618fb47f.js} +19 -6
- 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-field-attachment.entry.js +2 -2
- package/dist/esm/verdocs-field-checkbox.entry.js +2 -2
- package/dist/esm/verdocs-field-date.entry.js +3 -3
- package/dist/esm/verdocs-field-dropdown.entry.js +2 -2
- package/dist/esm/verdocs-field-initial.entry.js +2 -2
- package/dist/esm/verdocs-field-payment.entry.js +2 -51
- package/dist/esm/verdocs-field-radio-button.entry.js +2 -2
- package/dist/esm/verdocs-field-signature.entry.js +2 -2
- package/dist/esm/verdocs-field-textarea.entry.js +3 -3
- package/dist/esm/verdocs-field-textbox.entry.js +3 -3
- package/dist/esm/verdocs-field-timestamp.entry.js +2 -2
- 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/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-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/TemplateFieldStore.d.ts +6 -3
- package/dist/types/utils/TemplateRoleStore.d.ts +5 -2
- 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-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-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-a994e40e.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-74651412.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-034c364e.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-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-77e66b03.system.entry.js → p-9542e890.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-7c6a9967.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-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-7db381bc.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-f188c963.js +0 -1
- package/dist/verdocs-web-sdk/p-10d43924.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-50ee8b2d.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-5e1cdb8d.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-6992b715.system.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-a2dacfe7.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-b6ba0812.system.js +0 -1
- package/dist/verdocs-web-sdk/p-cc9a62c3.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-d4219533.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-f31a2fba.js +0 -1
- package/dist/verdocs-web-sdk/p-ffe39848.js +0 -1
@@ -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) {
|
@@ -109,7 +60,7 @@ export class VerdocsFieldPayment {
|
|
109
60
|
}
|
110
61
|
render() {
|
111
62
|
var _a, _b;
|
112
|
-
const field = this.fieldStore.get(this.fieldname);
|
63
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
113
64
|
if (!field) {
|
114
65
|
return h(Fragment, null);
|
115
66
|
}
|
@@ -41,7 +41,7 @@ export class VerdocsFieldRadioButton {
|
|
41
41
|
}
|
42
42
|
render() {
|
43
43
|
var _a, _b;
|
44
|
-
const field = this.fieldStore.get(this.fieldname);
|
44
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
45
45
|
if (!field) {
|
46
46
|
return h(Fragment, null);
|
47
47
|
}
|
package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js
CHANGED
@@ -65,7 +65,7 @@ export class VerdocsFieldSignature {
|
|
65
65
|
}
|
66
66
|
render() {
|
67
67
|
var _a, _b;
|
68
|
-
const field = this.fieldStore.get(this.fieldname);
|
68
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
69
69
|
if (!field) {
|
70
70
|
return h(Fragment, null);
|
71
71
|
}
|
@@ -74,7 +74,7 @@ export class VerdocsFieldTextarea {
|
|
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);
|
@@ -91,7 +91,7 @@ export class VerdocsFieldTextarea {
|
|
91
91
|
}
|
92
92
|
render() {
|
93
93
|
var _a, _b;
|
94
|
-
const field = this.fieldStore.get(this.fieldname);
|
94
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
95
95
|
if (!field) {
|
96
96
|
return h(Fragment, null);
|
97
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
@@ -43,7 +43,7 @@ export class VerdocsFieldTimestamp {
|
|
43
43
|
}
|
44
44
|
render() {
|
45
45
|
var _a, _b;
|
46
|
-
const field = this.fieldStore.get(this.fieldname);
|
46
|
+
const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
|
47
47
|
if (!field) {
|
48
48
|
return h(Fragment, null);
|
49
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) => {
|
package/dist/collection/components/templates/verdocs-template-roles/verdocs-template-roles.js
CHANGED
@@ -4,7 +4,7 @@ import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
|
|
4
4
|
import { createRole, updateRole } from '@verdocs/js-sdk/Templates/Roles';
|
5
5
|
import { TemplateSenderTypes } from '@verdocs/js-sdk/Templates/Types';
|
6
6
|
import { h, Fragment, Host } from '@stencil/core';
|
7
|
-
import { getTemplateRoleStore } from '../../../utils/TemplateRoleStore';
|
7
|
+
import { getTemplateRoleStore, updateStoreRole } from '../../../utils/TemplateRoleStore';
|
8
8
|
import { getTemplateStore } from '../../../utils/TemplateStore';
|
9
9
|
import { getRoleIndex } from '../../../utils/utils';
|
10
10
|
import { SDKError } from '../../../utils/errors';
|
@@ -68,6 +68,7 @@ export class VerdocsTemplateRoles {
|
|
68
68
|
const oldX = +(e.target.getAttribute('dX') || 0);
|
69
69
|
const oldY = +(e.target.getAttribute('dY') || 0);
|
70
70
|
const sequence = +(e.target.dataset['sequence'] || 0);
|
71
|
+
const order = +(e.target.dataset['order'] || 0);
|
71
72
|
const newX = e.dx + oldX;
|
72
73
|
const newY = e.dy + oldY;
|
73
74
|
e.target.setAttribute('dX', newX);
|
@@ -75,7 +76,8 @@ export class VerdocsTemplateRoles {
|
|
75
76
|
const rect = e.target.getBoundingClientRect();
|
76
77
|
// Note: I never did figure out exactly why this is, but if we don't offset the transform
|
77
78
|
// the dragged item is offset from the mouse cursor quite a bit.
|
78
|
-
|
79
|
+
console.log('w', rect.width);
|
80
|
+
e.target.style.transform = `translate(${newX + rect.width - (order + 1)}px, ${newY - rect.height * sequence}px)`;
|
79
81
|
}.bind(this),
|
80
82
|
end: function handleEnd(e) {
|
81
83
|
e.target.classList.remove('dragging');
|
@@ -89,22 +91,17 @@ export class VerdocsTemplateRoles {
|
|
89
91
|
});
|
90
92
|
interact('.dropzone').dropzone({
|
91
93
|
overlap: 0.05,
|
92
|
-
ondrop: async function
|
94
|
+
ondrop: async function onDrop(event) {
|
93
95
|
var _a;
|
96
|
+
console.log('dropped', event.target.classList);
|
94
97
|
event.target.classList.remove('active');
|
95
98
|
const roleName = event.relatedTarget.dataset.rolename;
|
96
99
|
const targetSequence = +event.target.dataset.sequence;
|
97
100
|
const targetOrder = +event.target.dataset.order;
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
const newRole = { ...changingRole, sequence: targetSequence, order: targetOrder };
|
103
|
-
this.roleStore.set(changingRole.name, newRole);
|
104
|
-
await this.renumberTemplateRoles();
|
105
|
-
(_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
|
106
|
-
console.log('[ROLES] Updated roles', this.getSortedRoles());
|
107
|
-
}
|
101
|
+
updateStoreRole(this.roleStore, roleName, { sequence: targetSequence, order: targetOrder });
|
102
|
+
await this.renumberTemplateRoles();
|
103
|
+
console.log('[ROLES] Updated roles', this.getSortedRoles());
|
104
|
+
(_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
|
108
105
|
}.bind(this),
|
109
106
|
ondropactivate: e => {
|
110
107
|
e.target.classList.add('visible');
|
@@ -129,9 +126,7 @@ export class VerdocsTemplateRoles {
|
|
129
126
|
(_a = this.next) === null || _a === void 0 ? void 0 : _a.emit();
|
130
127
|
}
|
131
128
|
getSortedRoles() {
|
132
|
-
return
|
133
|
-
.filter(role => role !== undefined)
|
134
|
-
.sort((a, b) => {
|
129
|
+
return this.roleStore.state.roles.sort((a, b) => {
|
135
130
|
return a.sequence === b.sequence ? a.order - b.order : a.sequence - b.sequence;
|
136
131
|
});
|
137
132
|
}
|
@@ -151,12 +146,13 @@ export class VerdocsTemplateRoles {
|
|
151
146
|
getRolesAtSequence(sequence) {
|
152
147
|
// Entries can be undefined when deleted because Stencil has no remove() operator yet for stores.
|
153
148
|
// See https://github.com/ionic-team/stencil-store/issues/23
|
154
|
-
return
|
149
|
+
return this.roleStore.state.roles.filter(role => role && role.sequence === sequence);
|
155
150
|
}
|
156
151
|
// When the user drags a role around, we handle placement "between" items by assigning it a half-order number
|
157
152
|
// e.g. 1.5 to place it between items 1 and 2, 0.5 to place it at the beginning, or last+0.5 to place it at the end.
|
158
153
|
// Then we re-sort the list of roles and renumber them.
|
159
154
|
renumberTemplateRoles() {
|
155
|
+
console.log('Renumbering roles', this.getSequenceNumbers(), JSON.stringify(this.roleStore.state));
|
160
156
|
// Avoid dupe renumber attempts
|
161
157
|
const renumbered = [];
|
162
158
|
// If the user dragged an entry from below a row to above it, we end up here like [1,0]. Make sure it's [0,1] for the next operation.
|
@@ -175,13 +171,13 @@ export class VerdocsTemplateRoles {
|
|
175
171
|
}
|
176
172
|
// Look for name conflicts, because they're UGC and can be anything, regardless of order.
|
177
173
|
getNextRoleName() {
|
178
|
-
|
174
|
+
console.log('Getting next role name', JSON.stringify(this.roleStore.state));
|
179
175
|
let name = '';
|
180
|
-
let nextNumber = Object.keys(this.roleStore).length;
|
176
|
+
let nextNumber = Object.keys(this.roleStore.state).length - 1;
|
181
177
|
do {
|
182
178
|
nextNumber++;
|
183
179
|
name = `Recipient ${nextNumber}`;
|
184
|
-
} while (!name ||
|
180
|
+
} while (!name || this.roleStore.state.roles.some(role => role && role.name === name));
|
185
181
|
return name;
|
186
182
|
}
|
187
183
|
callCreateRole(name, sequence, order) {
|
@@ -200,7 +196,7 @@ export class VerdocsTemplateRoles {
|
|
200
196
|
.then(async (r) => {
|
201
197
|
var _a;
|
202
198
|
console.log('[ROLES] Created role', r);
|
203
|
-
this.roleStore.set(
|
199
|
+
this.roleStore.set('roles', [...this.roleStore.state.roles, r]);
|
204
200
|
await this.renumberTemplateRoles();
|
205
201
|
(_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'added', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
|
206
202
|
})
|
@@ -228,11 +224,13 @@ export class VerdocsTemplateRoles {
|
|
228
224
|
if (!((_a = this.templateStore) === null || _a === void 0 ? void 0 : _a.state.isLoaded)) {
|
229
225
|
return (h(Host, { class: "loading" }, h("verdocs-loader", null)));
|
230
226
|
}
|
227
|
+
console.log('Rendering roles', this.roleStore.get('roles'));
|
231
228
|
const roleNames = this.getRoleNames();
|
232
229
|
const sequences = this.getSequenceNumbers();
|
230
|
+
console.log('Rendering', roleNames, sequences);
|
233
231
|
return (h(Host, null, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("h5", null, "Roles and Workflow"), h("div", { class: "participants" }, h("div", { class: "left-line" }), h("div", { class: "row" }, h("div", { class: "icon", innerHTML: startIcon }), h("div", { class: "row-roles" }, h("div", { class: "sender" }, h("span", { class: "label" }, "Sender:"), " ", senderLabels[(_c = (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state) === null || _c === void 0 ? void 0 : _c.sender], ' ', h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingSenderDialog = true), "aria-role": "button" })))), h("div", { class: "row add-sequence", "data-sequence": 0 }, h("div", { class: "icon", innerHTML: plusIcon }), h("div", { class: "row-roles" }, h("div", { class: "dropzone", "data-sequence": 0, "data-order": 1 }, "Add Step"))), sequences.map(sequence => (h(Fragment, null, h("div", { class: "row" }, h("div", { class: "icon", innerHTML: stepIcon }), h("div", { class: "row-roles" }, h("div", { class: "dropzone", "data-order": 0.5, "data-sequence": sequence }), this.getRolesAtSequence(sequence).map(role => {
|
234
232
|
const unknown = !role.email;
|
235
|
-
return unknown ? (h(Fragment, null, h("div", { class: "recipient", style: { backgroundColor: getRGBA(getRoleIndex(roleNames, role.name)) }, "data-rolename": role.name, "data-sequence": sequence }, h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }), role.name, " ", h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" })), h("div", { class: "dropzone", "data-order": role.order + 0.5, "data-sequence": sequence }))) : (h(Fragment, null, h("div", { class: "recipient", style: { borderColor: getRGBA(getRoleIndex(roleNames, role.name)) }, "data-rolename": role.name, "data-sequence": sequence }, h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }), role.full_name, " ", h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" })), h("div", { class: "dropzone", "data-order": role.order + 0.5, "data-sequence": sequence })));
|
233
|
+
return unknown ? (h(Fragment, null, h("div", { class: "recipient", style: { backgroundColor: getRGBA(getRoleIndex(roleNames, role.name)) }, "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }), role.name, " ", h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" })), h("div", { class: "dropzone", "data-order": role.order + 0.5, "data-sequence": sequence }))) : (h(Fragment, null, h("div", { class: "recipient", style: { borderColor: getRGBA(getRoleIndex(roleNames, role.name)) }, "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }), role.full_name, " ", h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" })), h("div", { class: "dropzone", "data-order": role.order + 0.5, "data-sequence": sequence })));
|
236
234
|
}), h("button", { class: "add-role", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) }))), sequences.length > 0 && (h("div", { class: "row add-sequence", "data-sequence": sequence }, h("div", { class: "row-roles" }, h("div", { class: "icon", innerHTML: plusIcon }), h("div", { class: "dropzone", "data-sequence": sequence + 1, "data-order": 1 }, "Add Step"))))))), h("div", { class: "row", "data-sequence": sequences.length + 1 }, h("div", { class: "row-roles" }, h("div", { class: "icon", innerHTML: plusIcon }), h("button", { class: "add-step", innerHTML: plusIcon, onClick: e => this.handleAddStep(e, sequences.length + 1) }))), h("div", { class: "row" }, h("div", { class: "icon", innerHTML: doneIcon }), h("div", { class: "row-roles" }, h("div", { class: "complete" }, "Document Complete")))), roleNames.length < 1 && (h("div", { class: "empty" }, "You must add at least one Role before proceeding.", h("br", null), " Click the ", h("span", { innerHTML: plusIcon }), " Add button above to get started.")), h("div", { class: "buttons" }, h("div", { class: "flex-fill" }), h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: () => this.handleCancel() }), h("verdocs-button", { label: "OK", size: "small", onClick: () => this.handleSubmit(), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
|
237
235
|
this.showingRoleDialog = null;
|
238
236
|
}, onDelete: async () => {
|
@@ -5,31 +5,42 @@ export const createTemplateFieldStore = (template) => {
|
|
5
5
|
let store = getTemplateFieldStore(template.id);
|
6
6
|
if (!store) {
|
7
7
|
console.log('Creating template field store for template', template.id);
|
8
|
-
store = createStore({});
|
8
|
+
store = createStore({ fields: [] });
|
9
9
|
templateFieldStores[template.id] = store;
|
10
10
|
}
|
11
11
|
else {
|
12
12
|
console.log('Resetting template field store for template', template.id);
|
13
13
|
store.reset();
|
14
14
|
}
|
15
|
-
template.fields
|
16
|
-
store.set(field.name, field);
|
17
|
-
});
|
15
|
+
store.set('fields', [...template.fields]);
|
18
16
|
return store;
|
19
17
|
};
|
20
18
|
export const createTemplateFieldStoreFromEnvelope = (envelope) => {
|
21
19
|
let store = getTemplateFieldStore(envelope.template_id);
|
22
20
|
if (!store) {
|
23
21
|
console.log('Creating field store for envelope', envelope.id, envelope.template_id);
|
24
|
-
store = createStore({});
|
22
|
+
store = createStore({ fields: [] });
|
25
23
|
templateFieldStores[envelope.template_id] = store;
|
26
24
|
}
|
27
25
|
else {
|
28
26
|
console.log('Resetting field store for envelope', envelope.id, envelope.template_id);
|
29
27
|
store.reset();
|
30
28
|
}
|
31
|
-
envelope.fields
|
32
|
-
store.set(field.name, field);
|
33
|
-
});
|
29
|
+
store.set('fields', [...envelope.fields]);
|
34
30
|
return store;
|
35
31
|
};
|
32
|
+
export const updateStoreField = (store, name, newFieldData) => {
|
33
|
+
const newFields = [
|
34
|
+
...store.get('fields').map(field => {
|
35
|
+
if (field.name !== name) {
|
36
|
+
return field;
|
37
|
+
}
|
38
|
+
return { ...field, ...newFieldData };
|
39
|
+
}),
|
40
|
+
];
|
41
|
+
store.set('fields', newFields);
|
42
|
+
};
|
43
|
+
export const deleteStoreField = (store, name) => {
|
44
|
+
const newFields = [...store.get('fields').filter(field => field.name !== name)];
|
45
|
+
store.set('fields', newFields);
|
46
|
+
};
|