@verdocs/web-sdk 2.3.24 → 2.3.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/cjs/{EnvelopeStore-efc35530.js → EnvelopeStore-7b1adebb.js} +0 -2
  2. package/dist/cjs/{TemplateFieldStore-40e85b9d.js → TemplateFieldStore-ecf695a7.js} +16 -8
  3. package/dist/cjs/{TemplateStore-079a1f85.js → TemplateStore-78b8944b.js} +20 -7
  4. package/dist/cjs/ipc-test.cjs.entry.js +2 -2
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/verdocs-build.cjs.entry.js +2 -2
  7. package/dist/cjs/verdocs-envelope-document-page.cjs.entry.js +1 -0
  8. package/dist/cjs/verdocs-envelope-recipient-link_2.cjs.entry.js +1 -1
  9. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +1 -1
  10. package/dist/cjs/verdocs-field-attachment.cjs.entry.js +2 -2
  11. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +2 -3
  12. package/dist/cjs/verdocs-field-date.cjs.entry.js +3 -3
  13. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +2 -3
  14. package/dist/cjs/verdocs-field-initial.cjs.entry.js +2 -3
  15. package/dist/cjs/verdocs-field-payment.cjs.entry.js +2 -52
  16. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +2 -3
  17. package/dist/cjs/verdocs-field-signature.cjs.entry.js +2 -3
  18. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +3 -4
  19. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +3 -3
  20. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +2 -3
  21. package/dist/cjs/verdocs-portal_2.cjs.entry.js +21 -37
  22. package/dist/cjs/verdocs-preview_8.cjs.entry.js +2 -2
  23. package/dist/cjs/verdocs-sign.cjs.entry.js +1 -1
  24. package/dist/cjs/verdocs-template-fields_4.cjs.entry.js +38 -66
  25. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  26. package/dist/collection/components/envelopes/verdocs-envelope-document-page/verdocs-envelope-document-page.js +1 -0
  27. package/dist/collection/components/fields/verdocs-field-attachment/verdocs-field-attachment.js +1 -1
  28. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js +1 -2
  29. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js +2 -2
  30. package/dist/collection/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.js +1 -2
  31. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js +1 -2
  32. package/dist/collection/components/fields/verdocs-field-payment/verdocs-field-payment.js +1 -51
  33. package/dist/collection/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.js +1 -2
  34. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js +1 -2
  35. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +2 -3
  36. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +2 -2
  37. package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.js +1 -2
  38. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.js +21 -37
  39. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js +12 -35
  40. package/dist/collection/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.js +7 -10
  41. package/dist/collection/components/templates/verdocs-template-roles/verdocs-template-roles.js +20 -22
  42. package/dist/collection/utils/EnvelopeStore.js +0 -3
  43. package/dist/collection/utils/TemplateFieldStore.js +19 -8
  44. package/dist/collection/utils/TemplateRoleStore.js +17 -4
  45. package/dist/collection/utils/TemplateStore.js +0 -2
  46. package/dist/components/EnvelopeStore.js +0 -2
  47. package/dist/components/TemplateFieldStore.js +16 -9
  48. package/dist/components/TemplateStore.js +18 -7
  49. package/dist/components/verdocs-envelope-document-page2.js +1 -0
  50. package/dist/components/verdocs-field-attachment.js +1 -1
  51. package/dist/components/verdocs-field-checkbox.js +1 -2
  52. package/dist/components/verdocs-field-date.js +2 -2
  53. package/dist/components/verdocs-field-dropdown.js +1 -2
  54. package/dist/components/verdocs-field-initial.js +1 -2
  55. package/dist/components/verdocs-field-payment.js +1 -51
  56. package/dist/components/verdocs-field-radio-button.js +1 -2
  57. package/dist/components/verdocs-field-signature.js +1 -2
  58. package/dist/components/verdocs-field-textarea.js +2 -3
  59. package/dist/components/verdocs-field-textbox.js +2 -2
  60. package/dist/components/verdocs-field-timestamp.js +1 -2
  61. package/dist/components/verdocs-template-field-properties2.js +21 -37
  62. package/dist/components/verdocs-template-fields2.js +12 -35
  63. package/dist/components/verdocs-template-role-properties2.js +7 -10
  64. package/dist/components/verdocs-template-roles2.js +20 -22
  65. package/dist/docs.json +2 -2
  66. package/dist/esm/{EnvelopeStore-17c0bc52.js → EnvelopeStore-24a1f38f.js} +0 -2
  67. package/dist/esm/{TemplateFieldStore-295f240e.js → TemplateFieldStore-0516a7ec.js} +16 -9
  68. package/dist/esm/{TemplateStore-1ee18675.js → TemplateStore-618fb47f.js} +19 -8
  69. package/dist/esm/ipc-test.entry.js +2 -2
  70. package/dist/esm/loader.js +1 -1
  71. package/dist/esm/verdocs-build.entry.js +2 -2
  72. package/dist/esm/verdocs-envelope-document-page.entry.js +1 -0
  73. package/dist/esm/verdocs-envelope-recipient-link_2.entry.js +1 -1
  74. package/dist/esm/verdocs-envelope-sidebar.entry.js +1 -1
  75. package/dist/esm/verdocs-field-attachment.entry.js +2 -2
  76. package/dist/esm/verdocs-field-checkbox.entry.js +2 -3
  77. package/dist/esm/verdocs-field-date.entry.js +3 -3
  78. package/dist/esm/verdocs-field-dropdown.entry.js +2 -3
  79. package/dist/esm/verdocs-field-initial.entry.js +2 -3
  80. package/dist/esm/verdocs-field-payment.entry.js +2 -52
  81. package/dist/esm/verdocs-field-radio-button.entry.js +2 -3
  82. package/dist/esm/verdocs-field-signature.entry.js +2 -3
  83. package/dist/esm/verdocs-field-textarea.entry.js +3 -4
  84. package/dist/esm/verdocs-field-textbox.entry.js +3 -3
  85. package/dist/esm/verdocs-field-timestamp.entry.js +2 -3
  86. package/dist/esm/verdocs-portal_2.entry.js +21 -37
  87. package/dist/esm/verdocs-preview_8.entry.js +2 -2
  88. package/dist/esm/verdocs-sign.entry.js +1 -1
  89. package/dist/esm/verdocs-template-fields_4.entry.js +38 -66
  90. package/dist/esm/verdocs-web-sdk.js +1 -1
  91. package/dist/esm-es5/{EnvelopeStore-17c0bc52.js → EnvelopeStore-24a1f38f.js} +1 -1
  92. package/dist/esm-es5/TemplateFieldStore-0516a7ec.js +1 -0
  93. package/dist/esm-es5/TemplateStore-618fb47f.js +1 -0
  94. package/dist/esm-es5/ipc-test.entry.js +1 -1
  95. package/dist/esm-es5/loader.js +1 -1
  96. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  97. package/dist/esm-es5/verdocs-envelope-document-page.entry.js +1 -1
  98. package/dist/esm-es5/verdocs-envelope-recipient-link_2.entry.js +1 -1
  99. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  100. package/dist/esm-es5/verdocs-field-attachment.entry.js +1 -1
  101. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  102. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  103. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  104. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  105. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  106. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  107. package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
  108. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  109. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  110. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  111. package/dist/esm-es5/verdocs-portal_2.entry.js +1 -1
  112. package/dist/esm-es5/verdocs-preview_8.entry.js +1 -1
  113. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  114. package/dist/esm-es5/verdocs-template-fields_4.entry.js +1 -1
  115. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  116. package/dist/types/components/fields/verdocs-field-payment/verdocs-field-payment.d.ts +0 -21
  117. package/dist/types/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.d.ts +0 -2
  118. package/dist/types/components/templates/verdocs-template-fields/verdocs-template-fields.d.ts +0 -1
  119. package/dist/types/utils/EnvelopeStore.d.ts +0 -2
  120. package/dist/types/utils/TemplateFieldStore.d.ts +6 -3
  121. package/dist/types/utils/TemplateRoleStore.d.ts +5 -2
  122. package/dist/types/utils/TemplateStore.d.ts +0 -1
  123. package/dist/verdocs-web-sdk/{p-d318d19b.system.entry.js → p-058f0e56.system.entry.js} +1 -1
  124. package/dist/verdocs-web-sdk/{p-0aec8a25.system.entry.js → p-093f593d.system.entry.js} +1 -1
  125. package/dist/verdocs-web-sdk/{p-2458bbc0.system.entry.js → p-09babc77.system.entry.js} +1 -1
  126. package/dist/verdocs-web-sdk/p-0a5b8a89.entry.js +1 -0
  127. package/dist/verdocs-web-sdk/{p-b648ab63.system.entry.js → p-151c33dd.system.entry.js} +1 -1
  128. package/dist/verdocs-web-sdk/{p-feb78cde.system.entry.js → p-18cb9ef7.system.entry.js} +1 -1
  129. package/dist/verdocs-web-sdk/p-1b661190.entry.js +1 -0
  130. package/dist/verdocs-web-sdk/p-321da456.js +1 -0
  131. package/dist/verdocs-web-sdk/{p-710d6928.system.entry.js → p-350f1ca4.system.entry.js} +1 -1
  132. package/dist/verdocs-web-sdk/p-35720475.entry.js +1 -0
  133. package/dist/verdocs-web-sdk/{p-a9b53e29.system.entry.js → p-371effb1.system.entry.js} +1 -1
  134. package/dist/verdocs-web-sdk/p-3930ee22.js +1 -0
  135. package/dist/verdocs-web-sdk/p-3989e584.entry.js +1 -0
  136. package/dist/verdocs-web-sdk/p-3b1711df.entry.js +1 -0
  137. package/dist/verdocs-web-sdk/{p-cb429454.entry.js → p-3d9adca7.entry.js} +1 -1
  138. package/dist/verdocs-web-sdk/p-3ec512a6.entry.js +1 -0
  139. package/dist/verdocs-web-sdk/{p-b276486c.system.entry.js → p-3f7aa186.system.entry.js} +1 -1
  140. package/dist/verdocs-web-sdk/{p-9615b087.system.js → p-4098a4a2.system.js} +1 -1
  141. package/dist/verdocs-web-sdk/{p-00e49c36.entry.js → p-413a5b21.entry.js} +1 -1
  142. package/dist/verdocs-web-sdk/p-591b695c.entry.js +1 -0
  143. package/dist/verdocs-web-sdk/p-5cd0b997.entry.js +1 -0
  144. package/dist/verdocs-web-sdk/p-62ec3db9.system.entry.js +1 -0
  145. package/dist/verdocs-web-sdk/p-6be44a1e.js +1 -0
  146. package/dist/verdocs-web-sdk/{p-9fe214d8.entry.js → p-6d42921b.entry.js} +1 -1
  147. package/dist/verdocs-web-sdk/{p-84a111b9.entry.js → p-6d81d774.entry.js} +1 -1
  148. package/dist/verdocs-web-sdk/{p-b86c345f.system.entry.js → p-6e45e610.system.entry.js} +1 -1
  149. package/dist/verdocs-web-sdk/p-71faa59f.entry.js +1 -0
  150. package/dist/verdocs-web-sdk/p-73abd3fc.system.entry.js +1 -0
  151. package/dist/verdocs-web-sdk/{p-82d4afbf.entry.js → p-77d3c570.entry.js} +1 -1
  152. package/dist/verdocs-web-sdk/p-79de397b.entry.js +1 -0
  153. package/dist/verdocs-web-sdk/p-7bdbce2d.system.entry.js +1 -0
  154. package/dist/verdocs-web-sdk/{p-f94e8672.system.entry.js → p-7c8419d7.system.entry.js} +1 -1
  155. package/dist/verdocs-web-sdk/{p-9f46a6a9.system.entry.js → p-9542e890.system.entry.js} +1 -1
  156. package/dist/verdocs-web-sdk/{p-d61fda4b.entry.js → p-997a4959.entry.js} +1 -1
  157. package/dist/verdocs-web-sdk/{p-e080e371.system.entry.js → p-a97512f6.system.entry.js} +1 -1
  158. package/dist/verdocs-web-sdk/{p-3f3e3347.system.entry.js → p-aa29c7ec.system.entry.js} +1 -1
  159. package/dist/verdocs-web-sdk/{p-6dd69d82.system.entry.js → p-c118d024.system.entry.js} +1 -1
  160. package/dist/verdocs-web-sdk/{p-e609b52c.system.entry.js → p-c11c841c.system.entry.js} +1 -1
  161. package/dist/verdocs-web-sdk/{p-6e847f1c.system.entry.js → p-c82a2a4e.system.entry.js} +1 -1
  162. package/dist/verdocs-web-sdk/{p-858f53bd.system.entry.js → p-d32278c8.system.entry.js} +1 -1
  163. package/dist/verdocs-web-sdk/p-df621f8d.system.js +1 -0
  164. package/dist/verdocs-web-sdk/p-ea4db7ae.system.js +1 -0
  165. package/dist/verdocs-web-sdk/p-ea52b891.entry.js +1 -0
  166. package/dist/verdocs-web-sdk/p-f04bf956.system.js +1 -1
  167. package/dist/verdocs-web-sdk/{p-6ada9427.entry.js → p-fda04bb0.entry.js} +1 -1
  168. package/dist/verdocs-web-sdk/p-ff473972.entry.js +1 -0
  169. package/dist/verdocs-web-sdk/p-ffa4091d.entry.js +1 -0
  170. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  171. package/package.json +1 -1
  172. package/dist/esm-es5/TemplateFieldStore-295f240e.js +0 -1
  173. package/dist/esm-es5/TemplateStore-1ee18675.js +0 -1
  174. package/dist/verdocs-web-sdk/p-0bfc239a.system.js +0 -1
  175. package/dist/verdocs-web-sdk/p-1f78be32.js +0 -1
  176. package/dist/verdocs-web-sdk/p-2720068f.system.entry.js +0 -1
  177. package/dist/verdocs-web-sdk/p-27b657be.entry.js +0 -1
  178. package/dist/verdocs-web-sdk/p-3819eb68.entry.js +0 -1
  179. package/dist/verdocs-web-sdk/p-3c277355.entry.js +0 -1
  180. package/dist/verdocs-web-sdk/p-48ad75db.entry.js +0 -1
  181. package/dist/verdocs-web-sdk/p-4fc74ab1.js +0 -1
  182. package/dist/verdocs-web-sdk/p-50ee8b2d.entry.js +0 -1
  183. package/dist/verdocs-web-sdk/p-5361ee8f.entry.js +0 -1
  184. package/dist/verdocs-web-sdk/p-6992b715.system.js +0 -1
  185. package/dist/verdocs-web-sdk/p-7f2f79fa.entry.js +0 -1
  186. package/dist/verdocs-web-sdk/p-8c5de079.entry.js +0 -1
  187. package/dist/verdocs-web-sdk/p-9574a874.entry.js +0 -1
  188. package/dist/verdocs-web-sdk/p-a2965966.system.entry.js +0 -1
  189. package/dist/verdocs-web-sdk/p-abd4e2e2.entry.js +0 -1
  190. package/dist/verdocs-web-sdk/p-af4755e8.entry.js +0 -1
  191. package/dist/verdocs-web-sdk/p-b54467df.system.entry.js +0 -1
  192. package/dist/verdocs-web-sdk/p-cc9a62c3.entry.js +0 -1
  193. package/dist/verdocs-web-sdk/p-e8fc7e30.entry.js +0 -1
  194. package/dist/verdocs-web-sdk/p-ffe39848.js +0 -1
@@ -3,7 +3,7 @@ import { c as commonjsGlobal } from './_commonjsHelpers.js';
3
3
  import './Types.js';
4
4
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
5
5
  import { u as updateField, d as deleteField } from './Fields.js';
6
- import { a as createTemplateFieldStore } from './TemplateFieldStore.js';
6
+ import { a as createTemplateFieldStore, u as updateStoreField } from './TemplateFieldStore.js';
7
7
  import { g as getTemplateStore } from './TemplateStore.js';
8
8
  import { S as SDKError } from './errors.js';
9
9
  import { d as defineCustomElement$6 } from './verdocs-button2.js';
@@ -217,7 +217,6 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
217
217
  this.sdkError = createEvent(this, "sdkError", 7);
218
218
  this.templateStore = null;
219
219
  this.fieldStore = null;
220
- this.watcher = null;
221
220
  this.endpoint = VerdocsEndpoint.getDefault();
222
221
  this.templateId = '';
223
222
  this.fieldName = '';
@@ -258,7 +257,7 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
258
257
  createTemplateFieldStore(this.templateStore.state);
259
258
  this.fieldStore = await createTemplateFieldStore(this.templateStore.state);
260
259
  // console.log('tfs', this.fieldStore?.state);
261
- const field = this.fieldStore.get(this.fieldName);
260
+ const field = this.fieldStore.get('fields').find(field => field.name === this.fieldName);
262
261
  // console.log('gf', field);
263
262
  if (!field) {
264
263
  console.log(`[FIELD PROPERTIES] Unable to find field "${this.fieldName}" in fields`);
@@ -266,25 +265,6 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
266
265
  else {
267
266
  console.log('props', field);
268
267
  }
269
- this.watcher = this.fieldStore.onChange(this.fieldName, (field) => {
270
- console.log('Field changed', field);
271
- // this.type = field.type;
272
- // this.name = field.name;
273
- // this.label = field.label;
274
- // this.group = field.name;
275
- // this.roleName = field.role_name;
276
- // this.required = field.required;
277
- // this.fieldType = field.type;
278
- // // TODO: Talk about how we want to handle labels/placeholders
279
- // this.placeholder = field.setting?.placeholder || '';
280
- // this.value = field.setting?.result || '';
281
- // this.leading = field.setting?.leading || 0;
282
- // this.setting = field.setting || {};
283
- // this.options = field.setting?.options || [];
284
- // this.dirty = false;
285
- // this.loading = false;
286
- });
287
- console.log('watcher', this.watcher);
288
268
  this.type = field.type;
289
269
  this.name = field.name;
290
270
  this.label = field.label;
@@ -311,7 +291,7 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
311
291
  handleCancel(e) {
312
292
  var _a, _b, _c, _d;
313
293
  e.stopPropagation();
314
- const field = this.fieldStore.get(this.fieldName);
294
+ const field = this.fieldStore.get('fields').find(field => field.name === this.fieldName);
315
295
  if (field) {
316
296
  this.name = field.name;
317
297
  this.label = field.label;
@@ -351,11 +331,19 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
351
331
  }
352
332
  console.log('FP: Will update', this.fieldName, newProperties);
353
333
  updateField(this.endpoint, this.templateId, this.fieldName, newProperties)
354
- .then(field => {
334
+ .then(updated => {
355
335
  var _a, _b;
356
336
  this.dirty = false;
357
- this.updateField(field);
358
- (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName, settings: newProperties, field });
337
+ const newFields = [
338
+ ...this.fieldStore.get('fields').map(field => {
339
+ if (field.name !== this.fieldName) {
340
+ return field;
341
+ }
342
+ return { ...field, ...updated };
343
+ }),
344
+ ];
345
+ this.fieldStore.set('fields', newFields);
346
+ (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName, settings: newProperties, field: updated });
359
347
  (_b = this.close) === null || _b === void 0 ? void 0 : _b.emit();
360
348
  })
361
349
  .catch(() => {
@@ -389,29 +377,25 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
389
377
  delete newProperties.setting.result;
390
378
  newProperties.setting.options = [...this.options];
391
379
  updateField(this.endpoint, this.templateId, this.fieldName, newProperties)
392
- .then(field => {
380
+ .then(updated => {
393
381
  var _a, _b;
394
382
  this.dirty = false;
395
- this.updateField(field);
396
- (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName, settings: newProperties, field });
383
+ updateStoreField(this.fieldStore, this.fieldName, updated);
384
+ this.fieldName = updated.name;
385
+ (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName, settings: newProperties, field: updated });
397
386
  (_b = this.close) === null || _b === void 0 ? void 0 : _b.emit();
398
387
  })
399
388
  .catch(() => {
400
389
  console.log('Field update failed', e);
401
390
  });
402
391
  }
403
- updateField(newField) {
404
- const oldField = this.fieldStore.get(this.fieldName) || {};
405
- console.log('Updating field', this.fieldName, newField);
406
- Object.assign(oldField, newField);
407
- }
408
392
  async handleDelete(e) {
409
393
  e.stopPropagation();
410
394
  if (window.confirm('Are you sure you wish to remove this field? This action cannot be undone.')) {
411
395
  deleteField(this.endpoint, this.templateId, this.fieldName)
412
396
  .then(() => {
413
397
  var _a;
414
- this.fieldStore.set(this.fieldName, undefined);
398
+ this.fieldStore.set('fields', this.fieldStore.get('fields').filter(field => field.name !== this.fieldName));
415
399
  (_a = this.delete) === null || _a === void 0 ? void 0 : _a.emit({ templateId: this.templateId, roleName: this.roleName });
416
400
  })
417
401
  .catch(e => {
@@ -426,7 +410,7 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
426
410
  return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
427
411
  }
428
412
  // This is meant to be a companion for larger visual experiences so we just go blank on errors for now.
429
- if (!this.endpoint.session || !this.fieldStore.get(this.fieldName)) {
413
+ if (!this.endpoint.session || !this.fieldStore.get('fields').some(field => field.name === this.fieldName)) {
430
414
  return h(Host, { class: "empty" });
431
415
  }
432
416
  if (this.helpText && this.showingHelp) {
@@ -486,7 +470,7 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
486
470
  }, [0, "verdocs-template-field-properties", {
487
471
  "endpoint": [16],
488
472
  "templateId": [1, "template-id"],
489
- "fieldName": [1, "field-name"],
473
+ "fieldName": [1025, "field-name"],
490
474
  "helpText": [1, "help-text"],
491
475
  "dirty": [32],
492
476
  "loading": [32],
@@ -6,7 +6,7 @@ import { u as updateField, c as createField } from './Fields.js';
6
6
  import { i as integerSequence } from './Primitives.js';
7
7
  import { b as getRoleIndex, r as renderDocumentField, f as updateCssTransform, h as defaultWidth, i as defaultHeight } from './utils.js';
8
8
  import { g as getTemplateStore, b as getTemplateRoleStore, a as getRoleNames } from './TemplateStore.js';
9
- import { g as getTemplateFieldStore } from './TemplateFieldStore.js';
9
+ import { g as getTemplateFieldStore, u as updateStoreField } from './TemplateFieldStore.js';
10
10
  import { S as SDKError } from './errors.js';
11
11
  import { d as defineCustomElement$7 } from './verdocs-button2.js';
12
12
  import { d as defineCustomElement$6 } from './verdocs-component-error2.js';
@@ -111,33 +111,12 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
111
111
  async handleFieldChange(field, e, optionId) {
112
112
  console.log('[FIELDS] handleFieldChange', field, e, optionId);
113
113
  }
114
- handleFieldSettingsChange(pageInfo, field, el, newFieldData, oldName) {
115
- var _a, _b;
116
- // handleFieldSettingsChange(pageInfo: any, field: any, roleIndex: number, el: any, newFieldData: any) {
117
- console.log('[FIELDS] Field settings changed', oldName, field.name, newFieldData);
118
- Object.assign(field, newFieldData);
119
- el.field = newFieldData;
120
- this.selectedRoleName = field.role_name;
121
- el.setAttribute('roleindex', getRoleIndex(getRoleNames(this.templateStore), field.role_name));
122
- el.field = this.fieldStore.get(field.name);
123
- (_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' });
124
- // We do this to avoid dupes if the field gets renamed.
125
- if (field.name !== oldName) {
126
- console.log('[FIELDS] Renaming field', oldName, field.name);
127
- el.remove();
128
- delete this.fieldStore.state[oldName];
129
- }
130
- else {
131
- console.log('[FIELDS] Updating existing field', field.name);
132
- }
133
- // REMINDER: Do not access el past this point! It may have been removed from the DOM.
134
- console.log('[FIELDS] Re-rendering field', field.name, pageInfo.pageNumber, field);
135
- this.fieldStore.set(field.name, field);
136
- this.reRenderField(field, pageInfo.pageNumber);
137
- }
138
114
  attachFieldAttributes(pageInfo, field, roleIndex, el) {
139
115
  el.addEventListener('input', e => this.handleFieldChange(field, e));
140
- el.addEventListener('settingsChanged', e => this.handleFieldSettingsChange(pageInfo, field, el, e.detail.field, e.detail.fieldName));
116
+ el.addEventListener('settingsChanged', () => {
117
+ var _a, _b;
118
+ (_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' });
119
+ });
141
120
  el.addEventListener('deleted', () => {
142
121
  var _a, _b;
143
122
  console.log('[FIELDS] Deleted', this, field);
@@ -157,9 +136,7 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
157
136
  // console.log('[FIELDS] Page rendered', pageInfo.pageNumber, pageInfo);
158
137
  this.cachedPageInfo[pageInfo.pageNumber] = pageInfo;
159
138
  this.pageHeights[pageInfo.pageNumber] = pageInfo.naturalHeight;
160
- // Entries can be undefined when deleted because Stencil has no remove() operator yet for stores.
161
- // See https://github.com/ionic-team/stencil-store/issues/23
162
- const fields = Object.values(this.fieldStore.state).filter((field) => field && field.page_sequence === pageInfo.pageNumber);
139
+ const fields = this.fieldStore.get('fields').filter(field => field && field.page_sequence === pageInfo.pageNumber);
163
140
  console.log('[FIELDS] Page rendered', pageInfo, fields);
164
141
  fields.forEach((field) => this.reRenderField(field, pageInfo.pageNumber));
165
142
  }
@@ -201,9 +178,10 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
201
178
  updateCssTransform(event.target, 'translate', `${newX}px, ${newY}px`);
202
179
  }
203
180
  async handleMoveEnd(event) {
181
+ var _a, _b;
204
182
  const name = event.target.getAttribute('name');
205
183
  const option = +(event.target.getAttribute('option') || '0');
206
- const field = this.fieldStore.get(name);
184
+ const field = this.fieldStore.get('fields').find(field => field.name === name);
207
185
  if (!field) {
208
186
  console.log('[FIELDS] Unable to find field', name);
209
187
  return;
@@ -246,10 +224,10 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
246
224
  }
247
225
  console.log('[FIELDS] Will update', name, y, option, field);
248
226
  const newFieldData = await updateField(this.endpoint, this.templateId, name, field);
249
- const pageInfo = this.cachedPageInfo[pageNumber];
250
- this.handleFieldSettingsChange(pageInfo, field, event.target, newFieldData, name);
227
+ updateStoreField(this.fieldStore, name, newFieldData);
251
228
  event.target.removeAttribute('posX');
252
229
  event.target.removeAttribute('posY');
230
+ (_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' });
253
231
  }
254
232
  generateFieldName(type, pageNumber) {
255
233
  let i = 1;
@@ -257,7 +235,7 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
257
235
  do {
258
236
  fieldName = `${type}P${pageNumber}-${i}`;
259
237
  i++;
260
- } while (Object.values(this.fieldStore.state).some(field => field && field.name === fieldName));
238
+ } while (this.fieldStore.get('fields').some(field => field && field.name === fieldName));
261
239
  return fieldName;
262
240
  }
263
241
  // Scale the X,Y clicks to the virtual page dimensions. Also ensure the field doesn't go off the page.
@@ -362,10 +340,9 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
362
340
  }
363
341
  const saved = await createField(this.endpoint, this.templateId, field);
364
342
  console.log('[FIELDS] Saved field', saved);
365
- this.fieldStore.set(saved.name, saved);
343
+ this.fieldStore.set('fields', [...this.fieldStore.state.fields, saved]);
366
344
  this.placing = null;
367
345
  (_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' });
368
- this.reRenderField(saved, pageNumber);
369
346
  }
370
347
  }
371
348
  render() {
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import './Types.js';
3
3
  import { V as VerdocsEndpoint, b as TemplateSenderTypes } from './VerdocsEndpoint.js';
4
- import { g as getTemplateStore, c as createTemplateRoleStore } from './TemplateStore.js';
4
+ import { g as getTemplateStore, c as createTemplateRoleStore, u as updateStoreRole, d as deleteStoreRole } from './TemplateStore.js';
5
5
  import { g as getTemplateFieldStore } from './TemplateFieldStore.js';
6
6
  import { S as SDKError } from './errors.js';
7
7
  import { d as defineCustomElement$5 } from './verdocs-button2.js';
@@ -74,7 +74,7 @@ const VerdocsTemplateRoleProperties = /*@__PURE__*/ proxyCustomElement(class ext
74
74
  this.templateStore = await getTemplateStore(this.endpoint, this.templateId, false);
75
75
  this.fieldStore = getTemplateFieldStore(this.templateId);
76
76
  this.roleStore = createTemplateRoleStore(this.templateStore.state);
77
- const editingRole = this.roleStore.get(this.roleName);
77
+ const editingRole = this.roleStore.state.roles.find(role => role.name === this.roleName);
78
78
  if (editingRole) {
79
79
  this.name = editingRole.name;
80
80
  this.type = editingRole.type;
@@ -93,7 +93,7 @@ const VerdocsTemplateRoleProperties = /*@__PURE__*/ proxyCustomElement(class ext
93
93
  handleCancel(e) {
94
94
  var _a;
95
95
  e.stopPropagation();
96
- const editingRole = this.roleStore.get(this.roleName);
96
+ const editingRole = this.roleStore.state.roles.find(role => role.name === this.roleName);
97
97
  if (editingRole) {
98
98
  this.name = editingRole.name;
99
99
  this.type = editingRole.type;
@@ -121,10 +121,7 @@ const VerdocsTemplateRoleProperties = /*@__PURE__*/ proxyCustomElement(class ext
121
121
  console.log('[ROLE_PROPERTIES] Update result', r);
122
122
  this.saving = false;
123
123
  this.dirty = false;
124
- this.roleStore.set(r.name, r);
125
- if (this.roleName !== r.name) {
126
- this.roleStore.set(this.roleName, undefined);
127
- }
124
+ updateStoreRole(this.roleStore, this.roleName, r);
128
125
  (_a = this.close) === null || _a === void 0 ? void 0 : _a.emit();
129
126
  })
130
127
  .catch(e => {
@@ -136,9 +133,9 @@ const VerdocsTemplateRoleProperties = /*@__PURE__*/ proxyCustomElement(class ext
136
133
  e.stopPropagation();
137
134
  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.')) {
138
135
  deleteRole(this.endpoint, this.templateId, this.roleName)
139
- .then(r => {
136
+ .then(() => {
140
137
  var _a;
141
- delete this.roleStore.state[r.name];
138
+ deleteStoreRole(this.roleStore, this.roleName);
142
139
  (_a = this.delete) === null || _a === void 0 ? void 0 : _a.emit({ templateId: this.templateId, roleName: this.roleName });
143
140
  })
144
141
  .catch(e => {
@@ -147,7 +144,7 @@ const VerdocsTemplateRoleProperties = /*@__PURE__*/ proxyCustomElement(class ext
147
144
  }
148
145
  }
149
146
  render() {
150
- const hasFields = Object.values(this.fieldStore).findIndex(field => field.role_name === this.roleName) !== -1;
147
+ const hasFields = this.fieldStore.get('fields').some(field => field.role_name === this.roleName);
151
148
  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
152
149
  ? 'This role has fields assigned and can no longer be renamed.'
153
150
  : 'A unique name to identify the role in the workflow. Submitted data will also be tagged with this value.', placeholder: "Role Name...", onInput: (e) => {
@@ -4,7 +4,7 @@ import './Types.js';
4
4
  import { V as VerdocsEndpoint, b as TemplateSenderTypes } from './VerdocsEndpoint.js';
5
5
  import { u as updateRole, c as createRole, d as defineCustomElement$3 } from './verdocs-template-role-properties2.js';
6
6
  import { g as getRGBA } from './Colors.js';
7
- import { g as getTemplateStore, b as getTemplateRoleStore } from './TemplateStore.js';
7
+ import { g as getTemplateStore, b as getTemplateRoleStore, u as updateStoreRole } from './TemplateStore.js';
8
8
  import { b as getRoleIndex } from './utils.js';
9
9
  import { S as SDKError } from './errors.js';
10
10
  import { d as defineCustomElement$a } from './verdocs-button2.js';
@@ -82,6 +82,7 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class extends HTML
82
82
  const oldX = +(e.target.getAttribute('dX') || 0);
83
83
  const oldY = +(e.target.getAttribute('dY') || 0);
84
84
  const sequence = +(e.target.dataset['sequence'] || 0);
85
+ const order = +(e.target.dataset['order'] || 0);
85
86
  const newX = e.dx + oldX;
86
87
  const newY = e.dy + oldY;
87
88
  e.target.setAttribute('dX', newX);
@@ -89,7 +90,8 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class extends HTML
89
90
  const rect = e.target.getBoundingClientRect();
90
91
  // Note: I never did figure out exactly why this is, but if we don't offset the transform
91
92
  // the dragged item is offset from the mouse cursor quite a bit.
92
- e.target.style.transform = `translate(${newX + 80}px, ${newY - rect.height * sequence}px)`;
93
+ console.log('w', rect.width);
94
+ e.target.style.transform = `translate(${newX + rect.width - (order + 1)}px, ${newY - rect.height * sequence}px)`;
93
95
  }.bind(this),
94
96
  end: function handleEnd(e) {
95
97
  e.target.classList.remove('dragging');
@@ -103,22 +105,17 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class extends HTML
103
105
  });
104
106
  interact_min('.dropzone').dropzone({
105
107
  overlap: 0.05,
106
- ondrop: async function handleDrop(event) {
108
+ ondrop: async function onDrop(event) {
107
109
  var _a;
110
+ console.log('dropped', event.target.classList);
108
111
  event.target.classList.remove('active');
109
112
  const roleName = event.relatedTarget.dataset.rolename;
110
113
  const targetSequence = +event.target.dataset.sequence;
111
114
  const targetOrder = +event.target.dataset.order;
112
- const changingRole = this.roleStore.get(roleName);
113
- if (changingRole) {
114
- // To handle the renumbering, we update the role being moved to the new values, which will be some half-interval e.g.
115
- // sequence 1.5 order 1. Then we sort/renumber the roles at each level to determine their final ordering values.
116
- const newRole = { ...changingRole, sequence: targetSequence, order: targetOrder };
117
- this.roleStore.set(changingRole.name, newRole);
118
- await this.renumberTemplateRoles();
119
- (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
120
- console.log('[ROLES] Updated roles', this.getSortedRoles());
121
- }
115
+ updateStoreRole(this.roleStore, roleName, { sequence: targetSequence, order: targetOrder });
116
+ await this.renumberTemplateRoles();
117
+ console.log('[ROLES] Updated roles', this.getSortedRoles());
118
+ (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
122
119
  }.bind(this),
123
120
  ondropactivate: e => {
124
121
  e.target.classList.add('visible');
@@ -143,9 +140,7 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class extends HTML
143
140
  (_a = this.next) === null || _a === void 0 ? void 0 : _a.emit();
144
141
  }
145
142
  getSortedRoles() {
146
- return Object.values(this.roleStore.state)
147
- .filter(role => role !== undefined)
148
- .sort((a, b) => {
143
+ return this.roleStore.state.roles.sort((a, b) => {
149
144
  return a.sequence === b.sequence ? a.order - b.order : a.sequence - b.sequence;
150
145
  });
151
146
  }
@@ -165,12 +160,13 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class extends HTML
165
160
  getRolesAtSequence(sequence) {
166
161
  // Entries can be undefined when deleted because Stencil has no remove() operator yet for stores.
167
162
  // See https://github.com/ionic-team/stencil-store/issues/23
168
- return Object.values(this.roleStore.state).filter(role => role && role.sequence === sequence);
163
+ return this.roleStore.state.roles.filter(role => role && role.sequence === sequence);
169
164
  }
170
165
  // When the user drags a role around, we handle placement "between" items by assigning it a half-order number
171
166
  // 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.
172
167
  // Then we re-sort the list of roles and renumber them.
173
168
  renumberTemplateRoles() {
169
+ console.log('Renumbering roles', this.getSequenceNumbers(), JSON.stringify(this.roleStore.state));
174
170
  // Avoid dupe renumber attempts
175
171
  const renumbered = [];
176
172
  // 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.
@@ -189,13 +185,13 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class extends HTML
189
185
  }
190
186
  // Look for name conflicts, because they're UGC and can be anything, regardless of order.
191
187
  getNextRoleName() {
192
- var _a;
188
+ console.log('Getting next role name', JSON.stringify(this.roleStore.state));
193
189
  let name = '';
194
- let nextNumber = Object.keys(this.roleStore).length;
190
+ let nextNumber = Object.keys(this.roleStore.state).length - 1;
195
191
  do {
196
192
  nextNumber++;
197
193
  name = `Recipient ${nextNumber}`;
198
- } while (!name || Object.values((_a = this.roleStore) === null || _a === void 0 ? void 0 : _a.state).some(role => role && role.name === name));
194
+ } while (!name || this.roleStore.state.roles.some(role => role && role.name === name));
199
195
  return name;
200
196
  }
201
197
  callCreateRole(name, sequence, order) {
@@ -214,7 +210,7 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class extends HTML
214
210
  .then(async (r) => {
215
211
  var _a;
216
212
  console.log('[ROLES] Created role', r);
217
- this.roleStore.set(r.name, r);
213
+ this.roleStore.set('roles', [...this.roleStore.state.roles, r]);
218
214
  await this.renumberTemplateRoles();
219
215
  (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'added', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
220
216
  })
@@ -242,11 +238,13 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class extends HTML
242
238
  if (!((_a = this.templateStore) === null || _a === void 0 ? void 0 : _a.state.isLoaded)) {
243
239
  return (h(Host, { class: "loading" }, h("verdocs-loader", null)));
244
240
  }
241
+ console.log('Rendering roles', this.roleStore.get('roles'));
245
242
  const roleNames = this.getRoleNames();
246
243
  const sequences = this.getSequenceNumbers();
244
+ console.log('Rendering', roleNames, sequences);
247
245
  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 => {
248
246
  const unknown = !role.email;
249
- 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 })));
247
+ 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 })));
250
248
  }), 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: () => {
251
249
  this.showingRoleDialog = null;
252
250
  }, onDelete: async () => {
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2024-01-15T05:11:36",
2
+ "timestamp": "2024-01-16T00:56:36",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "2.20.0",
@@ -8747,7 +8747,7 @@
8747
8747
  {
8748
8748
  "name": "fieldName",
8749
8749
  "type": "string",
8750
- "mutable": false,
8750
+ "mutable": true,
8751
8751
  "attr": "field-name",
8752
8752
  "reflectToAttr": false,
8753
8753
  "docs": "The field to configure.",
@@ -8,7 +8,6 @@ const createEnvelopeStore = (envelopeId) => {
8
8
  isLoaded: false,
9
9
  isError: false,
10
10
  error: null,
11
- updateCount: 0,
12
11
  roleNames: [],
13
12
  id: envelopeId,
14
13
  template_id: '',
@@ -73,7 +72,6 @@ const getEnvelopeStore = async (endpoint, envelopeId, forceReload = false) => {
73
72
  throw e;
74
73
  }
75
74
  store.state.isLoading = false;
76
- store.state.updateCount++;
77
75
  }
78
76
  return store;
79
77
  };
@@ -6,33 +6,40 @@ const createTemplateFieldStore = (template) => {
6
6
  let store = getTemplateFieldStore(template.id);
7
7
  if (!store) {
8
8
  console.log('Creating template field store for template', template.id);
9
- store = createStore({});
9
+ store = createStore({ fields: [] });
10
10
  templateFieldStores[template.id] = store;
11
11
  }
12
12
  else {
13
13
  console.log('Resetting template field store for template', template.id);
14
14
  store.reset();
15
15
  }
16
- template.fields.forEach(field => {
17
- store.set(field.name, field);
18
- });
16
+ store.set('fields', [...template.fields]);
19
17
  return store;
20
18
  };
21
19
  const createTemplateFieldStoreFromEnvelope = (envelope) => {
22
20
  let store = getTemplateFieldStore(envelope.template_id);
23
21
  if (!store) {
24
22
  console.log('Creating field store for envelope', envelope.id, envelope.template_id);
25
- store = createStore({});
23
+ store = createStore({ fields: [] });
26
24
  templateFieldStores[envelope.template_id] = store;
27
25
  }
28
26
  else {
29
27
  console.log('Resetting field store for envelope', envelope.id, envelope.template_id);
30
28
  store.reset();
31
29
  }
32
- envelope.fields.forEach(field => {
33
- store.set(field.name, field);
34
- });
30
+ store.set('fields', [...envelope.fields]);
35
31
  return store;
36
32
  };
33
+ const updateStoreField = (store, name, newFieldData) => {
34
+ const newFields = [
35
+ ...store.get('fields').map(field => {
36
+ if (field.name !== name) {
37
+ return field;
38
+ }
39
+ return { ...field, ...newFieldData };
40
+ }),
41
+ ];
42
+ store.set('fields', newFields);
43
+ };
37
44
 
38
- export { createTemplateFieldStoreFromEnvelope as a, createTemplateFieldStore as c, getTemplateFieldStore as g };
45
+ export { createTemplateFieldStoreFromEnvelope as a, createTemplateFieldStore as c, getTemplateFieldStore as g, updateStoreField as u };
@@ -1,6 +1,6 @@
1
1
  import { c as createStore } from './index-4439b0d1.js';
2
2
  import { g as getTemplate, T as TemplateSenderTypes } from './VerdocsEndpoint-56fa3371.js';
3
- import { c as createTemplateFieldStore } from './TemplateFieldStore-295f240e.js';
3
+ import { c as createTemplateFieldStore } from './TemplateFieldStore-0516a7ec.js';
4
4
 
5
5
  const templateRoleStores = {};
6
6
  const getTemplateRoleStore = (templateId) => templateRoleStores[templateId];
@@ -8,18 +8,31 @@ const createTemplateRoleStore = (template) => {
8
8
  let store = getTemplateRoleStore(template.id);
9
9
  if (!store) {
10
10
  console.log('Creating template role store for template', template.id);
11
- store = createStore({});
11
+ store = createStore({ roles: [] });
12
12
  templateRoleStores[template.id] = store;
13
13
  }
14
14
  else {
15
15
  console.log('Resetting template role store for template', template.id);
16
16
  store.reset();
17
17
  }
18
- template.roles.forEach(role => {
19
- store.set(role.name, role);
20
- });
18
+ store.set('roles', [...template.roles]);
21
19
  return store;
22
20
  };
21
+ const updateStoreRole = (store, name, newRoleData) => {
22
+ const newRoles = [
23
+ ...store.get('roles').map(role => {
24
+ if (role.name !== name) {
25
+ return role;
26
+ }
27
+ return { ...role, ...newRoleData };
28
+ }),
29
+ ];
30
+ store.set('roles', newRoles);
31
+ };
32
+ const deleteStoreRole = (store, name) => {
33
+ const newRoles = [...store.get('roles').filter(field => field.name !== name)];
34
+ store.set('roles', newRoles);
35
+ };
23
36
 
24
37
  const createTemplateStore = (templateId) => {
25
38
  const now = new Date().toISOString();
@@ -28,7 +41,6 @@ const createTemplateStore = (templateId) => {
28
41
  isLoaded: false,
29
42
  isError: false,
30
43
  error: null,
31
- updateCount: 0,
32
44
  roleNames: [],
33
45
  id: templateId,
34
46
  name: '',
@@ -99,10 +111,9 @@ const getTemplateStore = async (endpoint, templateId, forceReload = false) => {
99
111
  throw e;
100
112
  }
101
113
  store.state.isLoading = false;
102
- store.state.updateCount++;
103
114
  }
104
115
  return store;
105
116
  };
106
117
  const getRoleNames = (store) => { var _a; return (((_a = store === null || store === void 0 ? void 0 : store.state) === null || _a === void 0 ? void 0 : _a.roles) || []).map(role => role.name); };
107
118
 
108
- export { getRoleNames as a, getTemplateRoleStore as b, createTemplateRoleStore as c, getTemplateStore as g };
119
+ export { getRoleNames as a, getTemplateRoleStore as b, createTemplateRoleStore as c, deleteStoreRole as d, getTemplateStore as g, updateStoreRole as u };
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-172625c5.js';
2
2
  import './Types-5f31149e.js';
3
3
  import { V as VerdocsEndpoint } from './VerdocsEndpoint-56fa3371.js';
4
- import { g as getTemplateStore } from './TemplateStore-1ee18675.js';
4
+ import { g as getTemplateStore } from './TemplateStore-618fb47f.js';
5
5
  import './index-4439b0d1.js';
6
- import './TemplateFieldStore-295f240e.js';
6
+ import './TemplateFieldStore-0516a7ec.js';
7
7
 
8
8
  const ipcTestCss = "ipc-test{max-width:800px;display:block}";
9
9