@verdocs/web-sdk 2.3.25 → 2.3.27

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.
Files changed (165) hide show
  1. package/dist/cjs/{TemplateFieldStore-40e85b9d.js → TemplateFieldStore-ecf695a7.js} +16 -8
  2. package/dist/cjs/{TemplateStore-5620eee7.js → TemplateStore-78b8944b.js} +20 -5
  3. package/dist/cjs/ipc-test.cjs.entry.js +2 -2
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/verdocs-build.cjs.entry.js +2 -2
  6. package/dist/cjs/verdocs-field-attachment.cjs.entry.js +2 -2
  7. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +2 -2
  8. package/dist/cjs/verdocs-field-date.cjs.entry.js +3 -3
  9. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +2 -2
  10. package/dist/cjs/verdocs-field-initial.cjs.entry.js +2 -2
  11. package/dist/cjs/verdocs-field-payment.cjs.entry.js +2 -51
  12. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +2 -2
  13. package/dist/cjs/verdocs-field-signature.cjs.entry.js +2 -2
  14. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +3 -3
  15. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +3 -3
  16. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +2 -2
  17. package/dist/cjs/verdocs-portal_2.cjs.entry.js +25 -40
  18. package/dist/cjs/verdocs-preview_8.cjs.entry.js +2 -2
  19. package/dist/cjs/verdocs-sign.cjs.entry.js +1 -1
  20. package/dist/cjs/verdocs-template-fields_4.cjs.entry.js +38 -66
  21. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  22. package/dist/collection/components/fields/verdocs-field-attachment/verdocs-field-attachment.js +1 -1
  23. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js +1 -1
  24. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js +2 -2
  25. package/dist/collection/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.js +1 -1
  26. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js +1 -1
  27. package/dist/collection/components/fields/verdocs-field-payment/verdocs-field-payment.js +1 -50
  28. package/dist/collection/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.js +1 -1
  29. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js +1 -1
  30. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +2 -2
  31. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +2 -2
  32. package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.js +1 -1
  33. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.js +26 -40
  34. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js +12 -35
  35. package/dist/collection/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.js +7 -10
  36. package/dist/collection/components/templates/verdocs-template-roles/verdocs-template-roles.js +20 -22
  37. package/dist/collection/utils/TemplateFieldStore.js +19 -8
  38. package/dist/collection/utils/TemplateRoleStore.js +17 -4
  39. package/dist/components/TemplateFieldStore.js +16 -9
  40. package/dist/components/TemplateStore.js +18 -5
  41. package/dist/components/verdocs-field-attachment.js +1 -1
  42. package/dist/components/verdocs-field-checkbox.js +1 -1
  43. package/dist/components/verdocs-field-date.js +2 -2
  44. package/dist/components/verdocs-field-dropdown.js +1 -1
  45. package/dist/components/verdocs-field-initial.js +1 -1
  46. package/dist/components/verdocs-field-payment.js +1 -50
  47. package/dist/components/verdocs-field-radio-button.js +1 -1
  48. package/dist/components/verdocs-field-signature.js +1 -1
  49. package/dist/components/verdocs-field-textarea.js +2 -2
  50. package/dist/components/verdocs-field-textbox.js +2 -2
  51. package/dist/components/verdocs-field-timestamp.js +1 -1
  52. package/dist/components/verdocs-template-field-properties2.js +26 -41
  53. package/dist/components/verdocs-template-fields2.js +12 -35
  54. package/dist/components/verdocs-template-role-properties2.js +7 -10
  55. package/dist/components/verdocs-template-roles2.js +20 -22
  56. package/dist/docs.json +2 -2
  57. package/dist/esm/{TemplateFieldStore-295f240e.js → TemplateFieldStore-0516a7ec.js} +16 -9
  58. package/dist/esm/{TemplateStore-f188c963.js → TemplateStore-618fb47f.js} +19 -6
  59. package/dist/esm/ipc-test.entry.js +2 -2
  60. package/dist/esm/loader.js +1 -1
  61. package/dist/esm/verdocs-build.entry.js +2 -2
  62. package/dist/esm/verdocs-field-attachment.entry.js +2 -2
  63. package/dist/esm/verdocs-field-checkbox.entry.js +2 -2
  64. package/dist/esm/verdocs-field-date.entry.js +3 -3
  65. package/dist/esm/verdocs-field-dropdown.entry.js +2 -2
  66. package/dist/esm/verdocs-field-initial.entry.js +2 -2
  67. package/dist/esm/verdocs-field-payment.entry.js +2 -51
  68. package/dist/esm/verdocs-field-radio-button.entry.js +2 -2
  69. package/dist/esm/verdocs-field-signature.entry.js +2 -2
  70. package/dist/esm/verdocs-field-textarea.entry.js +3 -3
  71. package/dist/esm/verdocs-field-textbox.entry.js +3 -3
  72. package/dist/esm/verdocs-field-timestamp.entry.js +2 -2
  73. package/dist/esm/verdocs-portal_2.entry.js +25 -40
  74. package/dist/esm/verdocs-preview_8.entry.js +2 -2
  75. package/dist/esm/verdocs-sign.entry.js +1 -1
  76. package/dist/esm/verdocs-template-fields_4.entry.js +38 -66
  77. package/dist/esm/verdocs-web-sdk.js +1 -1
  78. package/dist/esm-es5/TemplateFieldStore-0516a7ec.js +1 -0
  79. package/dist/esm-es5/TemplateStore-618fb47f.js +1 -0
  80. package/dist/esm-es5/ipc-test.entry.js +1 -1
  81. package/dist/esm-es5/loader.js +1 -1
  82. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  83. package/dist/esm-es5/verdocs-field-attachment.entry.js +1 -1
  84. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  85. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  86. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  87. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  88. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  89. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  90. package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
  91. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  92. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  93. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  94. package/dist/esm-es5/verdocs-portal_2.entry.js +1 -1
  95. package/dist/esm-es5/verdocs-preview_8.entry.js +1 -1
  96. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  97. package/dist/esm-es5/verdocs-template-fields_4.entry.js +1 -1
  98. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  99. package/dist/types/components/fields/verdocs-field-payment/verdocs-field-payment.d.ts +0 -21
  100. package/dist/types/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.d.ts +2 -2
  101. package/dist/types/components/templates/verdocs-template-fields/verdocs-template-fields.d.ts +0 -1
  102. package/dist/types/utils/TemplateFieldStore.d.ts +6 -3
  103. package/dist/types/utils/TemplateRoleStore.d.ts +5 -2
  104. package/dist/verdocs-web-sdk/{p-d318d19b.system.entry.js → p-058f0e56.system.entry.js} +1 -1
  105. package/dist/verdocs-web-sdk/{p-0aec8a25.system.entry.js → p-093f593d.system.entry.js} +1 -1
  106. package/dist/verdocs-web-sdk/{p-2458bbc0.system.entry.js → p-09babc77.system.entry.js} +1 -1
  107. package/dist/verdocs-web-sdk/p-0a5b8a89.entry.js +1 -0
  108. package/dist/verdocs-web-sdk/{p-feb78cde.system.entry.js → p-18cb9ef7.system.entry.js} +1 -1
  109. package/dist/verdocs-web-sdk/p-1b661190.entry.js +1 -0
  110. package/dist/verdocs-web-sdk/{p-710d6928.system.entry.js → p-350f1ca4.system.entry.js} +1 -1
  111. package/dist/verdocs-web-sdk/p-35720475.entry.js +1 -0
  112. package/dist/verdocs-web-sdk/{p-a9b53e29.system.entry.js → p-371effb1.system.entry.js} +1 -1
  113. package/dist/verdocs-web-sdk/p-3930ee22.js +1 -0
  114. package/dist/verdocs-web-sdk/p-3989e584.entry.js +1 -0
  115. package/dist/verdocs-web-sdk/{p-a994e40e.entry.js → p-3d9adca7.entry.js} +1 -1
  116. package/dist/verdocs-web-sdk/{p-74651412.entry.js → p-413a5b21.entry.js} +1 -1
  117. package/dist/verdocs-web-sdk/p-591b695c.entry.js +1 -0
  118. package/dist/verdocs-web-sdk/p-5cd0b997.entry.js +1 -0
  119. package/dist/verdocs-web-sdk/p-62ec3db9.system.entry.js +1 -0
  120. package/dist/verdocs-web-sdk/p-6be44a1e.js +1 -0
  121. package/dist/verdocs-web-sdk/{p-9fe214d8.entry.js → p-6d42921b.entry.js} +1 -1
  122. package/dist/verdocs-web-sdk/{p-84a111b9.entry.js → p-6d81d774.entry.js} +1 -1
  123. package/dist/verdocs-web-sdk/{p-034c364e.system.entry.js → p-6e45e610.system.entry.js} +1 -1
  124. package/dist/verdocs-web-sdk/p-71faa59f.entry.js +1 -0
  125. package/dist/verdocs-web-sdk/p-73abd3fc.system.entry.js +1 -0
  126. package/dist/verdocs-web-sdk/p-79de397b.entry.js +1 -0
  127. package/dist/verdocs-web-sdk/{p-f94e8672.system.entry.js → p-7c8419d7.system.entry.js} +1 -1
  128. package/dist/verdocs-web-sdk/{p-77e66b03.system.entry.js → p-9542e890.system.entry.js} +1 -1
  129. package/dist/verdocs-web-sdk/p-961ee618.system.entry.js +1 -0
  130. package/dist/verdocs-web-sdk/{p-7c6a9967.system.entry.js → p-a97512f6.system.entry.js} +1 -1
  131. package/dist/verdocs-web-sdk/{p-3f3e3347.system.entry.js → p-aa29c7ec.system.entry.js} +1 -1
  132. package/dist/verdocs-web-sdk/{p-e609b52c.system.entry.js → p-c11c841c.system.entry.js} +1 -1
  133. package/dist/verdocs-web-sdk/{p-6e847f1c.system.entry.js → p-c82a2a4e.system.entry.js} +1 -1
  134. package/dist/verdocs-web-sdk/{p-858f53bd.system.entry.js → p-d32278c8.system.entry.js} +1 -1
  135. package/dist/verdocs-web-sdk/p-df621f8d.system.js +1 -0
  136. package/dist/verdocs-web-sdk/p-ea4db7ae.system.js +1 -0
  137. package/dist/verdocs-web-sdk/p-ea52b891.entry.js +1 -0
  138. package/dist/verdocs-web-sdk/p-ebc1c670.entry.js +1 -0
  139. package/dist/verdocs-web-sdk/p-f04bf956.system.js +1 -1
  140. package/dist/verdocs-web-sdk/{p-7db381bc.entry.js → p-fda04bb0.entry.js} +1 -1
  141. package/dist/verdocs-web-sdk/p-ff473972.entry.js +1 -0
  142. package/dist/verdocs-web-sdk/p-ffa4091d.entry.js +1 -0
  143. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  144. package/package.json +1 -1
  145. package/dist/esm-es5/TemplateFieldStore-295f240e.js +0 -1
  146. package/dist/esm-es5/TemplateStore-f188c963.js +0 -1
  147. package/dist/verdocs-web-sdk/p-10d43924.entry.js +0 -1
  148. package/dist/verdocs-web-sdk/p-27b657be.entry.js +0 -1
  149. package/dist/verdocs-web-sdk/p-3819eb68.entry.js +0 -1
  150. package/dist/verdocs-web-sdk/p-3c277355.entry.js +0 -1
  151. package/dist/verdocs-web-sdk/p-48ad75db.entry.js +0 -1
  152. package/dist/verdocs-web-sdk/p-50ee8b2d.entry.js +0 -1
  153. package/dist/verdocs-web-sdk/p-5e1cdb8d.system.entry.js +0 -1
  154. package/dist/verdocs-web-sdk/p-6992b715.system.js +0 -1
  155. package/dist/verdocs-web-sdk/p-8c5de079.entry.js +0 -1
  156. package/dist/verdocs-web-sdk/p-9574a874.entry.js +0 -1
  157. package/dist/verdocs-web-sdk/p-a2965966.system.entry.js +0 -1
  158. package/dist/verdocs-web-sdk/p-a2dacfe7.entry.js +0 -1
  159. package/dist/verdocs-web-sdk/p-abd4e2e2.entry.js +0 -1
  160. package/dist/verdocs-web-sdk/p-af4755e8.entry.js +0 -1
  161. package/dist/verdocs-web-sdk/p-b6ba0812.system.js +0 -1
  162. package/dist/verdocs-web-sdk/p-cc9a62c3.entry.js +0 -1
  163. package/dist/verdocs-web-sdk/p-d4219533.system.entry.js +0 -1
  164. package/dist/verdocs-web-sdk/p-f31a2fba.js +0 -1
  165. package/dist/verdocs-web-sdk/p-ffe39848.js +0 -1
@@ -5,7 +5,7 @@ import { V as VerdocsEndpoint } from './VerdocsEndpoint-56fa3371.js';
5
5
  import { u as updateField } from './Fields-c82e6df3.js';
6
6
  import { g as getRGBA } from './Colors-1b298092.js';
7
7
  import { g as getFieldSettings } from './utils-f76f3448.js';
8
- import { g as getTemplateFieldStore } from './TemplateFieldStore-295f240e.js';
8
+ import { g as getTemplateFieldStore } from './TemplateFieldStore-0516a7ec.js';
9
9
  import './_commonjsHelpers-8a9f3b18.js';
10
10
  import './Envelopes-627c5239.js';
11
11
  import './Files-70a192df.js';
@@ -84,7 +84,7 @@ const VerdocsFieldTextarea = class {
84
84
  Object.assign(e.target.dataset, { x, y, h });
85
85
  }
86
86
  handleResizeEnd(e) {
87
- const field = this.fieldStore.get(this.fieldname);
87
+ const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
88
88
  const newSettings = { ...getFieldSettings(field) };
89
89
  const [translateX, translateY] = e.target.style.transform.split('(')[1].split(')')[0].split(',').map(parseFloat);
90
90
  newSettings.width = Math.round(parseFloat(e.target.style.width) / this.xscale);
@@ -101,7 +101,7 @@ const VerdocsFieldTextarea = class {
101
101
  }
102
102
  render() {
103
103
  var _a, _b;
104
- const field = this.fieldStore.get(this.fieldname);
104
+ const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
105
105
  if (!field) {
106
106
  return h(Fragment, null);
107
107
  }
@@ -4,7 +4,7 @@ import './Types-5f31149e.js';
4
4
  import { V as VerdocsEndpoint } from './VerdocsEndpoint-56fa3371.js';
5
5
  import { u as updateField } from './Fields-c82e6df3.js';
6
6
  import { g as getRGBA } from './Colors-1b298092.js';
7
- import { g as getTemplateFieldStore } from './TemplateFieldStore-295f240e.js';
7
+ import { g as getTemplateFieldStore } from './TemplateFieldStore-0516a7ec.js';
8
8
  import { g as getFieldSettings } from './utils-f76f3448.js';
9
9
  import './_commonjsHelpers-8a9f3b18.js';
10
10
  import './index-4439b0d1.js';
@@ -84,7 +84,7 @@ const VerdocsFieldTextbox = class {
84
84
  Object.assign(e.target.dataset, { x, y, h });
85
85
  }
86
86
  handleResizeEnd(e) {
87
- const field = this.fieldStore.get(this.fieldname);
87
+ const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
88
88
  const newSettings = { ...getFieldSettings(field) };
89
89
  const [translateX, translateY] = e.target.style.transform.split('(')[1].split(')')[0].split(',').map(parseFloat);
90
90
  newSettings.width = Math.round(parseFloat(e.target.style.width) / this.xscale);
@@ -102,7 +102,7 @@ const VerdocsFieldTextbox = class {
102
102
  }
103
103
  render() {
104
104
  var _a, _b;
105
- const field = this.fieldStore.get(this.fieldname);
105
+ const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
106
106
  if (!field) {
107
107
  return h(Fragment, null);
108
108
  }
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host }
2
2
  import { g as getRGBA } from './Colors-1b298092.js';
3
3
  import { g as getFieldSettings } from './utils-f76f3448.js';
4
4
  import { F as FORMAT_TIMESTAMP } from './Types-1628dc71.js';
5
- import { g as getTemplateFieldStore } from './TemplateFieldStore-295f240e.js';
5
+ import { g as getTemplateFieldStore } from './TemplateFieldStore-0516a7ec.js';
6
6
  import { f as format } from './index-914ed6f7.js';
7
7
  import './_commonjsHelpers-8a9f3b18.js';
8
8
  import './Envelopes-627c5239.js';
@@ -51,7 +51,7 @@ const VerdocsFieldTimestamp = class {
51
51
  }
52
52
  render() {
53
53
  var _a, _b;
54
- const field = this.fieldStore.get(this.fieldname);
54
+ const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
55
55
  if (!field) {
56
56
  return h(Fragment, null);
57
57
  }
@@ -3,8 +3,8 @@ import { a as commonjsGlobal } from './_commonjsHelpers-8a9f3b18.js';
3
3
  import './Types-5f31149e.js';
4
4
  import { V as VerdocsEndpoint } from './VerdocsEndpoint-56fa3371.js';
5
5
  import { u as updateField, d as deleteField } from './Fields-c82e6df3.js';
6
- import { c as createTemplateFieldStore } from './TemplateFieldStore-295f240e.js';
7
- import { g as getTemplateStore } from './TemplateStore-f188c963.js';
6
+ import { g as getTemplateFieldStore, u as updateStoreField } from './TemplateFieldStore-0516a7ec.js';
7
+ import { g as getTemplateStore, b as getTemplateRoleStore } from './TemplateStore-618fb47f.js';
8
8
  import { S as SDKError } from './errors-9b5498c8.js';
9
9
  import './index-4439b0d1.js';
10
10
 
@@ -282,7 +282,7 @@ const VerdocsTemplateFieldProperties = class {
282
282
  this.sdkError = createEvent(this, "sdkError", 7);
283
283
  this.templateStore = null;
284
284
  this.fieldStore = null;
285
- this.watcher = null;
285
+ this.roleStore = null;
286
286
  this.endpoint = VerdocsEndpoint.getDefault();
287
287
  this.templateId = '';
288
288
  this.fieldName = '';
@@ -320,10 +320,10 @@ const VerdocsTemplateFieldProperties = class {
320
320
  return;
321
321
  }
322
322
  this.templateStore = await getTemplateStore(this.endpoint, this.templateId);
323
- createTemplateFieldStore(this.templateStore.state);
324
- this.fieldStore = await createTemplateFieldStore(this.templateStore.state);
323
+ this.fieldStore = await getTemplateFieldStore(this.templateId);
324
+ this.roleStore = await getTemplateRoleStore(this.templateId);
325
325
  // console.log('tfs', this.fieldStore?.state);
326
- const field = this.fieldStore.get(this.fieldName);
326
+ const field = this.fieldStore.get('fields').find(field => field.name === this.fieldName);
327
327
  // console.log('gf', field);
328
328
  if (!field) {
329
329
  console.log(`[FIELD PROPERTIES] Unable to find field "${this.fieldName}" in fields`);
@@ -331,25 +331,6 @@ const VerdocsTemplateFieldProperties = class {
331
331
  else {
332
332
  console.log('props', field);
333
333
  }
334
- this.watcher = this.fieldStore.onChange(this.fieldName, (field) => {
335
- console.log('Field changed', field);
336
- // this.type = field.type;
337
- // this.name = field.name;
338
- // this.label = field.label;
339
- // this.group = field.name;
340
- // this.roleName = field.role_name;
341
- // this.required = field.required;
342
- // this.fieldType = field.type;
343
- // // TODO: Talk about how we want to handle labels/placeholders
344
- // this.placeholder = field.setting?.placeholder || '';
345
- // this.value = field.setting?.result || '';
346
- // this.leading = field.setting?.leading || 0;
347
- // this.setting = field.setting || {};
348
- // this.options = field.setting?.options || [];
349
- // this.dirty = false;
350
- // this.loading = false;
351
- });
352
- console.log('watcher', this.watcher);
353
334
  this.type = field.type;
354
335
  this.name = field.name;
355
336
  this.label = field.label;
@@ -376,7 +357,7 @@ const VerdocsTemplateFieldProperties = class {
376
357
  handleCancel(e) {
377
358
  var _a, _b, _c, _d;
378
359
  e.stopPropagation();
379
- const field = this.fieldStore.get(this.fieldName);
360
+ const field = this.fieldStore.get('fields').find(field => field.name === this.fieldName);
380
361
  if (field) {
381
362
  this.name = field.name;
382
363
  this.label = field.label;
@@ -416,11 +397,19 @@ const VerdocsTemplateFieldProperties = class {
416
397
  }
417
398
  console.log('FP: Will update', this.fieldName, newProperties);
418
399
  updateField(this.endpoint, this.templateId, this.fieldName, newProperties)
419
- .then(field => {
400
+ .then(updated => {
420
401
  var _a, _b;
421
402
  this.dirty = false;
422
- this.updateField(field);
423
- (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName, settings: newProperties, field });
403
+ const newFields = [
404
+ ...this.fieldStore.get('fields').map(field => {
405
+ if (field.name !== this.fieldName) {
406
+ return field;
407
+ }
408
+ return { ...field, ...updated };
409
+ }),
410
+ ];
411
+ this.fieldStore.set('fields', newFields);
412
+ (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName, settings: newProperties, field: updated });
424
413
  (_b = this.close) === null || _b === void 0 ? void 0 : _b.emit();
425
414
  })
426
415
  .catch(() => {
@@ -454,29 +443,25 @@ const VerdocsTemplateFieldProperties = class {
454
443
  delete newProperties.setting.result;
455
444
  newProperties.setting.options = [...this.options];
456
445
  updateField(this.endpoint, this.templateId, this.fieldName, newProperties)
457
- .then(field => {
446
+ .then(updated => {
458
447
  var _a, _b;
459
448
  this.dirty = false;
460
- this.updateField(field);
461
- (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName, settings: newProperties, field });
449
+ updateStoreField(this.fieldStore, this.fieldName, updated);
450
+ this.fieldName = updated.name;
451
+ (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName, settings: newProperties, field: updated });
462
452
  (_b = this.close) === null || _b === void 0 ? void 0 : _b.emit();
463
453
  })
464
454
  .catch(() => {
465
455
  console.log('Field update failed', e);
466
456
  });
467
457
  }
468
- updateField(newField) {
469
- const oldField = this.fieldStore.get(this.fieldName) || {};
470
- console.log('Updating field', this.fieldName, newField);
471
- Object.assign(oldField, newField);
472
- }
473
458
  async handleDelete(e) {
474
459
  e.stopPropagation();
475
460
  if (window.confirm('Are you sure you wish to remove this field? This action cannot be undone.')) {
476
461
  deleteField(this.endpoint, this.templateId, this.fieldName)
477
462
  .then(() => {
478
463
  var _a;
479
- this.fieldStore.set(this.fieldName, undefined);
464
+ this.fieldStore.set('fields', this.fieldStore.get('fields').filter(field => field.name !== this.fieldName));
480
465
  (_a = this.delete) === null || _a === void 0 ? void 0 : _a.emit({ templateId: this.templateId, roleName: this.roleName });
481
466
  })
482
467
  .catch(e => {
@@ -491,7 +476,7 @@ const VerdocsTemplateFieldProperties = class {
491
476
  return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
492
477
  }
493
478
  // This is meant to be a companion for larger visual experiences so we just go blank on errors for now.
494
- if (!this.endpoint.session || !this.fieldStore.get(this.fieldName)) {
479
+ if (!this.endpoint.session || !this.fieldStore.get('fields').some(field => field.name === this.fieldName)) {
495
480
  return h(Host, { class: "empty" });
496
481
  }
497
482
  if (this.helpText && this.showingHelp) {
@@ -508,7 +493,7 @@ const VerdocsTemplateFieldProperties = class {
508
493
  placeholder: "Optional Label...", onInput: (e) => {
509
494
  this.label = e.target.value;
510
495
  this.dirty = true;
511
- } })), h("div", { class: "row" }, h("div", { class: "input-label" }, "Role:"), h("verdocs-select-input", { value: this.roleName, options: (_a = this.templateStore.state) === null || _a === void 0 ? void 0 : _a.roles.map(role => ({ label: role.name, value: role.name })), onInput: (e) => {
496
+ } })), h("div", { class: "row" }, h("div", { class: "input-label" }, "Role:"), h("verdocs-select-input", { value: this.roleName, options: (_a = this.roleStore.state) === null || _a === void 0 ? void 0 : _a.roles.map(role => ({ label: role.name, value: role.name })), onInput: (e) => {
512
497
  this.roleName = e.target.value;
513
498
  this.dirty = true;
514
499
  } })), ['textbox', 'textarea'].includes(this.type) && (h("div", { class: "row", style: { marginTop: '10px', marginBottom: '10px' } }, h("verdocs-text-input", { id: "verdocs-field-value", label: "Value", value: this.value, autocomplete: "off", placeholder: "Pre-defined value...", onInput: (e) => {
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h, H as Host } from './index-1
2
2
  import './Types-5f31149e.js';
3
3
  import { V as VerdocsEndpoint, b as createTemplatev2, u as updateTemplate } from './VerdocsEndpoint-56fa3371.js';
4
4
  import { r as renderDocumentField, b as getRoleIndex } from './utils-f76f3448.js';
5
- import { g as getTemplateStore, a as getRoleNames } from './TemplateStore-f188c963.js';
5
+ import { g as getTemplateStore, a as getRoleNames } from './TemplateStore-618fb47f.js';
6
6
  import { S as SDKError } from './errors-9b5498c8.js';
7
7
  import { j as createEnvelope } from './Envelopes-627c5239.js';
8
8
  import { a as isValidEmail, i as isValidPhone } from './Validators-16a2a43b.js';
@@ -15,7 +15,7 @@ import './Files-70a192df.js';
15
15
  import './Types-1628dc71.js';
16
16
  import './index-914ed6f7.js';
17
17
  import './index-4439b0d1.js';
18
- import './TemplateFieldStore-295f240e.js';
18
+ import './TemplateFieldStore-0516a7ec.js';
19
19
 
20
20
  /**
21
21
  * Enable automatic reminders. setup_time is the number of days after the envelope is sent that the first reminder
@@ -6,7 +6,7 @@ import { V as VerdocsEndpoint } from './VerdocsEndpoint-56fa3371.js';
6
6
  import { i as isValidPhone, a as isValidEmail } from './Validators-16a2a43b.js';
7
7
  import { f as fullNameToInitials, i as integerSequence } from './Primitives-8fe93caf.js';
8
8
  import { a as saveAttachment, u as updateDocumentFieldValue, b as getRoleIndex, r as renderDocumentField, c as getFieldId } from './utils-f76f3448.js';
9
- import { a as createTemplateFieldStoreFromEnvelope } from './TemplateFieldStore-295f240e.js';
9
+ import { a as createTemplateFieldStoreFromEnvelope } from './TemplateFieldStore-0516a7ec.js';
10
10
  import { a as FORMAT_DATE } from './Types-1628dc71.js';
11
11
  import { V as VerdocsToast } from './Toast-f3b8fd46.js';
12
12
  import { S as SDKError } from './errors-9b5498c8.js';
@@ -5,8 +5,8 @@ import { V as VerdocsEndpoint, T as TemplateSenderTypes, u as updateTemplate } f
5
5
  import { u as updateField, c as createField } from './Fields-c82e6df3.js';
6
6
  import { i as integerSequence } from './Primitives-8fe93caf.js';
7
7
  import { b as getRoleIndex, r as renderDocumentField, f as updateCssTransform, h as defaultWidth, i as defaultHeight } from './utils-f76f3448.js';
8
- import { g as getTemplateStore, b as getTemplateRoleStore, a as getRoleNames, c as createTemplateRoleStore } from './TemplateStore-f188c963.js';
9
- import { g as getTemplateFieldStore } from './TemplateFieldStore-295f240e.js';
8
+ import { g as getTemplateStore, b as getTemplateRoleStore, a as getRoleNames, c as createTemplateRoleStore, u as updateStoreRole, d as deleteStoreRole } from './TemplateStore-618fb47f.js';
9
+ import { g as getTemplateFieldStore, u as updateStoreField } from './TemplateFieldStore-0516a7ec.js';
10
10
  import { S as SDKError } from './errors-9b5498c8.js';
11
11
  import { g as getRGBA } from './Colors-1b298092.js';
12
12
  import './_commonjsHelpers-8a9f3b18.js';
@@ -133,33 +133,12 @@ const VerdocsTemplateFields = class {
133
133
  async handleFieldChange(field, e, optionId) {
134
134
  console.log('[FIELDS] handleFieldChange', field, e, optionId);
135
135
  }
136
- handleFieldSettingsChange(pageInfo, field, el, newFieldData, oldName) {
137
- var _a, _b;
138
- // handleFieldSettingsChange(pageInfo: any, field: any, roleIndex: number, el: any, newFieldData: any) {
139
- console.log('[FIELDS] Field settings changed', oldName, field.name, newFieldData);
140
- Object.assign(field, newFieldData);
141
- el.field = newFieldData;
142
- this.selectedRoleName = field.role_name;
143
- el.setAttribute('roleindex', getRoleIndex(getRoleNames(this.templateStore), field.role_name));
144
- el.field = this.fieldStore.get(field.name);
145
- (_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' });
146
- // We do this to avoid dupes if the field gets renamed.
147
- if (field.name !== oldName) {
148
- console.log('[FIELDS] Renaming field', oldName, field.name);
149
- el.remove();
150
- delete this.fieldStore.state[oldName];
151
- }
152
- else {
153
- console.log('[FIELDS] Updating existing field', field.name);
154
- }
155
- // REMINDER: Do not access el past this point! It may have been removed from the DOM.
156
- console.log('[FIELDS] Re-rendering field', field.name, pageInfo.pageNumber, field);
157
- this.fieldStore.set(field.name, field);
158
- this.reRenderField(field, pageInfo.pageNumber);
159
- }
160
136
  attachFieldAttributes(pageInfo, field, roleIndex, el) {
161
137
  el.addEventListener('input', e => this.handleFieldChange(field, e));
162
- el.addEventListener('settingsChanged', e => this.handleFieldSettingsChange(pageInfo, field, el, e.detail.field, e.detail.fieldName));
138
+ el.addEventListener('settingsChanged', () => {
139
+ var _a, _b;
140
+ (_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' });
141
+ });
163
142
  el.addEventListener('deleted', () => {
164
143
  var _a, _b;
165
144
  console.log('[FIELDS] Deleted', this, field);
@@ -179,9 +158,7 @@ const VerdocsTemplateFields = class {
179
158
  // console.log('[FIELDS] Page rendered', pageInfo.pageNumber, pageInfo);
180
159
  this.cachedPageInfo[pageInfo.pageNumber] = pageInfo;
181
160
  this.pageHeights[pageInfo.pageNumber] = pageInfo.naturalHeight;
182
- // Entries can be undefined when deleted because Stencil has no remove() operator yet for stores.
183
- // See https://github.com/ionic-team/stencil-store/issues/23
184
- const fields = Object.values(this.fieldStore.state).filter((field) => field && field.page_sequence === pageInfo.pageNumber);
161
+ const fields = this.fieldStore.get('fields').filter(field => field && field.page_sequence === pageInfo.pageNumber);
185
162
  console.log('[FIELDS] Page rendered', pageInfo, fields);
186
163
  fields.forEach((field) => this.reRenderField(field, pageInfo.pageNumber));
187
164
  }
@@ -223,9 +200,10 @@ const VerdocsTemplateFields = class {
223
200
  updateCssTransform(event.target, 'translate', `${newX}px, ${newY}px`);
224
201
  }
225
202
  async handleMoveEnd(event) {
203
+ var _a, _b;
226
204
  const name = event.target.getAttribute('name');
227
205
  const option = +(event.target.getAttribute('option') || '0');
228
- const field = this.fieldStore.get(name);
206
+ const field = this.fieldStore.get('fields').find(field => field.name === name);
229
207
  if (!field) {
230
208
  console.log('[FIELDS] Unable to find field', name);
231
209
  return;
@@ -268,10 +246,10 @@ const VerdocsTemplateFields = class {
268
246
  }
269
247
  console.log('[FIELDS] Will update', name, y, option, field);
270
248
  const newFieldData = await updateField(this.endpoint, this.templateId, name, field);
271
- const pageInfo = this.cachedPageInfo[pageNumber];
272
- this.handleFieldSettingsChange(pageInfo, field, event.target, newFieldData, name);
249
+ updateStoreField(this.fieldStore, name, newFieldData);
273
250
  event.target.removeAttribute('posX');
274
251
  event.target.removeAttribute('posY');
252
+ (_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' });
275
253
  }
276
254
  generateFieldName(type, pageNumber) {
277
255
  let i = 1;
@@ -279,7 +257,7 @@ const VerdocsTemplateFields = class {
279
257
  do {
280
258
  fieldName = `${type}P${pageNumber}-${i}`;
281
259
  i++;
282
- } while (Object.values(this.fieldStore.state).some(field => field && field.name === fieldName));
260
+ } while (this.fieldStore.get('fields').some(field => field && field.name === fieldName));
283
261
  return fieldName;
284
262
  }
285
263
  // Scale the X,Y clicks to the virtual page dimensions. Also ensure the field doesn't go off the page.
@@ -384,10 +362,9 @@ const VerdocsTemplateFields = class {
384
362
  }
385
363
  const saved = await createField(this.endpoint, this.templateId, field);
386
364
  console.log('[FIELDS] Saved field', saved);
387
- this.fieldStore.set(saved.name, saved);
365
+ this.fieldStore.set('fields', [...this.fieldStore.state.fields, saved]);
388
366
  this.placing = null;
389
367
  (_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' });
390
- this.reRenderField(saved, pageNumber);
391
368
  }
392
369
  }
393
370
  render() {
@@ -464,7 +441,7 @@ const VerdocsTemplateRoleProperties = class {
464
441
  this.templateStore = await getTemplateStore(this.endpoint, this.templateId, false);
465
442
  this.fieldStore = getTemplateFieldStore(this.templateId);
466
443
  this.roleStore = createTemplateRoleStore(this.templateStore.state);
467
- const editingRole = this.roleStore.get(this.roleName);
444
+ const editingRole = this.roleStore.state.roles.find(role => role.name === this.roleName);
468
445
  if (editingRole) {
469
446
  this.name = editingRole.name;
470
447
  this.type = editingRole.type;
@@ -483,7 +460,7 @@ const VerdocsTemplateRoleProperties = class {
483
460
  handleCancel(e) {
484
461
  var _a;
485
462
  e.stopPropagation();
486
- const editingRole = this.roleStore.get(this.roleName);
463
+ const editingRole = this.roleStore.state.roles.find(role => role.name === this.roleName);
487
464
  if (editingRole) {
488
465
  this.name = editingRole.name;
489
466
  this.type = editingRole.type;
@@ -511,10 +488,7 @@ const VerdocsTemplateRoleProperties = class {
511
488
  console.log('[ROLE_PROPERTIES] Update result', r);
512
489
  this.saving = false;
513
490
  this.dirty = false;
514
- this.roleStore.set(r.name, r);
515
- if (this.roleName !== r.name) {
516
- this.roleStore.set(this.roleName, undefined);
517
- }
491
+ updateStoreRole(this.roleStore, this.roleName, r);
518
492
  (_a = this.close) === null || _a === void 0 ? void 0 : _a.emit();
519
493
  })
520
494
  .catch(e => {
@@ -526,9 +500,9 @@ const VerdocsTemplateRoleProperties = class {
526
500
  e.stopPropagation();
527
501
  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.')) {
528
502
  deleteRole(this.endpoint, this.templateId, this.roleName)
529
- .then(r => {
503
+ .then(() => {
530
504
  var _a;
531
- delete this.roleStore.state[r.name];
505
+ deleteStoreRole(this.roleStore, this.roleName);
532
506
  (_a = this.delete) === null || _a === void 0 ? void 0 : _a.emit({ templateId: this.templateId, roleName: this.roleName });
533
507
  })
534
508
  .catch(e => {
@@ -537,7 +511,7 @@ const VerdocsTemplateRoleProperties = class {
537
511
  }
538
512
  }
539
513
  render() {
540
- const hasFields = Object.values(this.fieldStore).findIndex(field => field.role_name === this.roleName) !== -1;
514
+ const hasFields = this.fieldStore.get('fields').some(field => field.role_name === this.roleName);
541
515
  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
542
516
  ? 'This role has fields assigned and can no longer be renamed.'
543
517
  : 'A unique name to identify the role in the workflow. Submitted data will also be tagged with this value.', placeholder: "Role Name...", onInput: (e) => {
@@ -631,6 +605,7 @@ const VerdocsTemplateRoles = class {
631
605
  const oldX = +(e.target.getAttribute('dX') || 0);
632
606
  const oldY = +(e.target.getAttribute('dY') || 0);
633
607
  const sequence = +(e.target.dataset['sequence'] || 0);
608
+ const order = +(e.target.dataset['order'] || 0);
634
609
  const newX = e.dx + oldX;
635
610
  const newY = e.dy + oldY;
636
611
  e.target.setAttribute('dX', newX);
@@ -638,7 +613,8 @@ const VerdocsTemplateRoles = class {
638
613
  const rect = e.target.getBoundingClientRect();
639
614
  // Note: I never did figure out exactly why this is, but if we don't offset the transform
640
615
  // the dragged item is offset from the mouse cursor quite a bit.
641
- e.target.style.transform = `translate(${newX + 80}px, ${newY - rect.height * sequence}px)`;
616
+ console.log('w', rect.width);
617
+ e.target.style.transform = `translate(${newX + rect.width - (order + 1)}px, ${newY - rect.height * sequence}px)`;
642
618
  }.bind(this),
643
619
  end: function handleEnd(e) {
644
620
  e.target.classList.remove('dragging');
@@ -652,22 +628,17 @@ const VerdocsTemplateRoles = class {
652
628
  });
653
629
  interact_min('.dropzone').dropzone({
654
630
  overlap: 0.05,
655
- ondrop: async function handleDrop(event) {
631
+ ondrop: async function onDrop(event) {
656
632
  var _a;
633
+ console.log('dropped', event.target.classList);
657
634
  event.target.classList.remove('active');
658
635
  const roleName = event.relatedTarget.dataset.rolename;
659
636
  const targetSequence = +event.target.dataset.sequence;
660
637
  const targetOrder = +event.target.dataset.order;
661
- const changingRole = this.roleStore.get(roleName);
662
- if (changingRole) {
663
- // To handle the renumbering, we update the role being moved to the new values, which will be some half-interval e.g.
664
- // sequence 1.5 order 1. Then we sort/renumber the roles at each level to determine their final ordering values.
665
- const newRole = { ...changingRole, sequence: targetSequence, order: targetOrder };
666
- this.roleStore.set(changingRole.name, newRole);
667
- await this.renumberTemplateRoles();
668
- (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
669
- console.log('[ROLES] Updated roles', this.getSortedRoles());
670
- }
638
+ updateStoreRole(this.roleStore, roleName, { sequence: targetSequence, order: targetOrder });
639
+ await this.renumberTemplateRoles();
640
+ console.log('[ROLES] Updated roles', this.getSortedRoles());
641
+ (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
671
642
  }.bind(this),
672
643
  ondropactivate: e => {
673
644
  e.target.classList.add('visible');
@@ -692,9 +663,7 @@ const VerdocsTemplateRoles = class {
692
663
  (_a = this.next) === null || _a === void 0 ? void 0 : _a.emit();
693
664
  }
694
665
  getSortedRoles() {
695
- return Object.values(this.roleStore.state)
696
- .filter(role => role !== undefined)
697
- .sort((a, b) => {
666
+ return this.roleStore.state.roles.sort((a, b) => {
698
667
  return a.sequence === b.sequence ? a.order - b.order : a.sequence - b.sequence;
699
668
  });
700
669
  }
@@ -714,12 +683,13 @@ const VerdocsTemplateRoles = class {
714
683
  getRolesAtSequence(sequence) {
715
684
  // Entries can be undefined when deleted because Stencil has no remove() operator yet for stores.
716
685
  // See https://github.com/ionic-team/stencil-store/issues/23
717
- return Object.values(this.roleStore.state).filter(role => role && role.sequence === sequence);
686
+ return this.roleStore.state.roles.filter(role => role && role.sequence === sequence);
718
687
  }
719
688
  // When the user drags a role around, we handle placement "between" items by assigning it a half-order number
720
689
  // 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.
721
690
  // Then we re-sort the list of roles and renumber them.
722
691
  renumberTemplateRoles() {
692
+ console.log('Renumbering roles', this.getSequenceNumbers(), JSON.stringify(this.roleStore.state));
723
693
  // Avoid dupe renumber attempts
724
694
  const renumbered = [];
725
695
  // 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.
@@ -738,13 +708,13 @@ const VerdocsTemplateRoles = class {
738
708
  }
739
709
  // Look for name conflicts, because they're UGC and can be anything, regardless of order.
740
710
  getNextRoleName() {
741
- var _a;
711
+ console.log('Getting next role name', JSON.stringify(this.roleStore.state));
742
712
  let name = '';
743
- let nextNumber = Object.keys(this.roleStore).length;
713
+ let nextNumber = Object.keys(this.roleStore.state).length - 1;
744
714
  do {
745
715
  nextNumber++;
746
716
  name = `Recipient ${nextNumber}`;
747
- } while (!name || Object.values((_a = this.roleStore) === null || _a === void 0 ? void 0 : _a.state).some(role => role && role.name === name));
717
+ } while (!name || this.roleStore.state.roles.some(role => role && role.name === name));
748
718
  return name;
749
719
  }
750
720
  callCreateRole(name, sequence, order) {
@@ -763,7 +733,7 @@ const VerdocsTemplateRoles = class {
763
733
  .then(async (r) => {
764
734
  var _a;
765
735
  console.log('[ROLES] Created role', r);
766
- this.roleStore.set(r.name, r);
736
+ this.roleStore.set('roles', [...this.roleStore.state.roles, r]);
767
737
  await this.renumberTemplateRoles();
768
738
  (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'added', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
769
739
  })
@@ -791,11 +761,13 @@ const VerdocsTemplateRoles = class {
791
761
  if (!((_a = this.templateStore) === null || _a === void 0 ? void 0 : _a.state.isLoaded)) {
792
762
  return (h(Host, { class: "loading" }, h("verdocs-loader", null)));
793
763
  }
764
+ console.log('Rendering roles', this.roleStore.get('roles'));
794
765
  const roleNames = this.getRoleNames();
795
766
  const sequences = this.getSequenceNumbers();
767
+ console.log('Rendering', roleNames, sequences);
796
768
  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 => {
797
769
  const unknown = !role.email;
798
- 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 })));
770
+ 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 })));
799
771
  }), 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: () => {
800
772
  this.showingRoleDialog = null;
801
773
  }, onDelete: async () => {