@verdocs/web-sdk 5.0.25 → 5.0.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. package/dist/cjs/{Datastore-931fd77e.js → Datastore-e39f8315.js} +29 -24
  2. package/dist/cjs/Datastore-e39f8315.js.map +1 -0
  3. package/dist/cjs/verdocs-build.cjs.entry.js +1 -1
  4. package/dist/cjs/verdocs-checkbox_6.cjs.entry.js +1 -1
  5. package/dist/cjs/verdocs-envelope-recipient-link_2.cjs.entry.js +1 -1
  6. package/dist/cjs/verdocs-envelope-recipient-summary.cjs.entry.js +1 -1
  7. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +1 -1
  8. package/dist/cjs/verdocs-field-attachment_13.cjs.entry.js +1 -1
  9. package/dist/cjs/verdocs-field-payment.cjs.entry.js +1 -1
  10. package/dist/cjs/verdocs-kba-dialog_2.cjs.entry.js +1 -1
  11. package/dist/cjs/verdocs-menu-panel_2.cjs.entry.js +1 -1
  12. package/dist/cjs/verdocs-preview_6.cjs.entry.js +6 -4
  13. package/dist/cjs/verdocs-preview_6.cjs.entry.js.map +1 -1
  14. package/dist/cjs/verdocs-sign.cjs.entry.js +1 -1
  15. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +1 -1
  16. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js +4 -1
  17. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js.map +1 -1
  18. package/dist/collection/components/templates/verdocs-template-roles/verdocs-template-roles.js +1 -2
  19. package/dist/collection/components/templates/verdocs-template-roles/verdocs-template-roles.js.map +1 -1
  20. package/dist/components/{p-e4a97ad5.js → p-143a763f.js} +3 -3
  21. package/dist/components/{p-e4a97ad5.js.map → p-143a763f.js.map} +1 -1
  22. package/dist/components/{p-2d8b46e5.js → p-16b073b8.js} +2 -2
  23. package/dist/components/{p-2d8b46e5.js.map → p-16b073b8.js.map} +1 -1
  24. package/dist/components/{p-e9528d9f.js → p-1d4829fb.js} +3 -3
  25. package/dist/components/{p-e9528d9f.js.map → p-1d4829fb.js.map} +1 -1
  26. package/dist/components/{p-ca3e45f3.js → p-27a8eef0.js} +2 -2
  27. package/dist/components/{p-ca3e45f3.js.map → p-27a8eef0.js.map} +1 -1
  28. package/dist/components/{p-fcf13666.js → p-550377ba.js} +13 -13
  29. package/dist/components/{p-fcf13666.js.map → p-550377ba.js.map} +1 -1
  30. package/dist/components/{p-1ce18a42.js → p-619747d7.js} +2 -2
  31. package/dist/components/{p-1ce18a42.js.map → p-619747d7.js.map} +1 -1
  32. package/dist/components/{p-e95ded6b.js → p-631808d5.js} +18 -15
  33. package/dist/components/p-631808d5.js.map +1 -0
  34. package/dist/components/{p-e4799d51.js → p-7bd7baa6.js} +3 -3
  35. package/dist/components/{p-e4799d51.js.map → p-7bd7baa6.js.map} +1 -1
  36. package/dist/components/{p-1ab01232.js → p-813ed998.js} +3 -3
  37. package/dist/components/{p-1ab01232.js.map → p-813ed998.js.map} +1 -1
  38. package/dist/components/{p-a415ce22.js → p-8c965486.js} +3 -3
  39. package/dist/components/{p-a415ce22.js.map → p-8c965486.js.map} +1 -1
  40. package/dist/components/{p-78de9e65.js → p-90e3fae6.js} +4 -5
  41. package/dist/components/p-90e3fae6.js.map +1 -0
  42. package/dist/components/{p-681e7dd4.js → p-99128b47.js} +3 -3
  43. package/dist/components/{p-681e7dd4.js.map → p-99128b47.js.map} +1 -1
  44. package/dist/components/{p-53168eec.js → p-ac7694c0.js} +2 -2
  45. package/dist/components/{p-53168eec.js.map → p-ac7694c0.js.map} +1 -1
  46. package/dist/components/{p-ecfc85ae.js → p-b5e479db.js} +3 -3
  47. package/dist/components/{p-ecfc85ae.js.map → p-b5e479db.js.map} +1 -1
  48. package/dist/components/{p-f6156f7a.js → p-c422d9a0.js} +3 -3
  49. package/dist/components/{p-f6156f7a.js.map → p-c422d9a0.js.map} +1 -1
  50. package/dist/components/{p-c4c9feda.js → p-c4310332.js} +3 -3
  51. package/dist/components/{p-c4c9feda.js.map → p-c4310332.js.map} +1 -1
  52. package/dist/components/{p-91d65fde.js → p-c5045788.js} +3 -3
  53. package/dist/components/{p-91d65fde.js.map → p-c5045788.js.map} +1 -1
  54. package/dist/components/{p-3828cb31.js → p-d4be87ef.js} +29 -24
  55. package/dist/components/p-d4be87ef.js.map +1 -0
  56. package/dist/components/{p-28e3b2e3.js → p-d54466ed.js} +14 -14
  57. package/dist/components/{p-28e3b2e3.js.map → p-d54466ed.js.map} +1 -1
  58. package/dist/components/{p-eb2ad8d0.js → p-e39c327c.js} +2 -2
  59. package/dist/components/{p-eb2ad8d0.js.map → p-e39c327c.js.map} +1 -1
  60. package/dist/components/{p-eb12a71c.js → p-f238b25b.js} +2 -2
  61. package/dist/components/{p-eb12a71c.js.map → p-f238b25b.js.map} +1 -1
  62. package/dist/components/{p-bfed2f8d.js → p-f7cf2401.js} +2 -2
  63. package/dist/components/{p-bfed2f8d.js.map → p-f7cf2401.js.map} +1 -1
  64. package/dist/components/verdocs-build.js +20 -20
  65. package/dist/components/verdocs-envelope-recipient-link.js +1 -1
  66. package/dist/components/verdocs-envelope-recipient-summary.js +1 -1
  67. package/dist/components/verdocs-envelope-sidebar.js +2 -2
  68. package/dist/components/verdocs-field-attachment.js +1 -1
  69. package/dist/components/verdocs-field-checkbox.js +1 -1
  70. package/dist/components/verdocs-field-date.js +1 -1
  71. package/dist/components/verdocs-field-dropdown.js +1 -1
  72. package/dist/components/verdocs-field-initial.js +1 -1
  73. package/dist/components/verdocs-field-payment.js +2 -2
  74. package/dist/components/verdocs-field-radio.js +1 -1
  75. package/dist/components/verdocs-field-signature.js +1 -1
  76. package/dist/components/verdocs-field-textarea.js +1 -1
  77. package/dist/components/verdocs-field-textbox.js +1 -1
  78. package/dist/components/verdocs-field-timestamp.js +1 -1
  79. package/dist/components/verdocs-preview.js +1 -1
  80. package/dist/components/verdocs-send.js +1 -1
  81. package/dist/components/verdocs-sign.js +2 -2
  82. package/dist/components/verdocs-template-attachments.js +1 -1
  83. package/dist/components/verdocs-template-build-tabs.js +1 -1
  84. package/dist/components/verdocs-template-document-page.js +1 -1
  85. package/dist/components/verdocs-template-field-properties.js +1 -1
  86. package/dist/components/verdocs-template-fields.js +1 -1
  87. package/dist/components/verdocs-template-role-properties.js +1 -1
  88. package/dist/components/verdocs-template-roles.js +1 -1
  89. package/dist/components/verdocs-view.js +1 -1
  90. package/dist/esm/{Datastore-3f924d94.js → Datastore-77cb8d9c.js} +29 -24
  91. package/dist/esm/Datastore-77cb8d9c.js.map +1 -0
  92. package/dist/esm/verdocs-build.entry.js +1 -1
  93. package/dist/esm/verdocs-checkbox_6.entry.js +1 -1
  94. package/dist/esm/verdocs-envelope-recipient-link_2.entry.js +1 -1
  95. package/dist/esm/verdocs-envelope-recipient-summary.entry.js +1 -1
  96. package/dist/esm/verdocs-envelope-sidebar.entry.js +1 -1
  97. package/dist/esm/verdocs-field-attachment_13.entry.js +1 -1
  98. package/dist/esm/verdocs-field-payment.entry.js +1 -1
  99. package/dist/esm/verdocs-kba-dialog_2.entry.js +1 -1
  100. package/dist/esm/verdocs-menu-panel_2.entry.js +1 -1
  101. package/dist/esm/verdocs-preview_6.entry.js +6 -4
  102. package/dist/esm/verdocs-preview_6.entry.js.map +1 -1
  103. package/dist/esm/verdocs-sign.entry.js +1 -1
  104. package/dist/esm/verdocs-template-document-page_2.entry.js +1 -1
  105. package/dist/esm-es5/Datastore-77cb8d9c.js +2 -0
  106. package/dist/esm-es5/Datastore-77cb8d9c.js.map +1 -0
  107. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  108. package/dist/esm-es5/verdocs-checkbox_6.entry.js +1 -1
  109. package/dist/esm-es5/verdocs-envelope-recipient-link_2.entry.js +1 -1
  110. package/dist/esm-es5/verdocs-envelope-recipient-summary.entry.js +1 -1
  111. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  112. package/dist/esm-es5/verdocs-field-attachment_13.entry.js +1 -1
  113. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  114. package/dist/esm-es5/verdocs-kba-dialog_2.entry.js +1 -1
  115. package/dist/esm-es5/verdocs-menu-panel_2.entry.js +1 -1
  116. package/dist/esm-es5/verdocs-preview_6.entry.js +2 -2
  117. package/dist/esm-es5/verdocs-preview_6.entry.js.map +1 -1
  118. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  119. package/dist/esm-es5/verdocs-template-document-page_2.entry.js +1 -1
  120. package/dist/verdocs-web-sdk/{p-f6ed768d.entry.js → p-00063a35.entry.js} +2 -2
  121. package/dist/verdocs-web-sdk/{p-b1a9dc79.entry.js → p-0a745e87.entry.js} +3 -3
  122. package/dist/verdocs-web-sdk/p-0a745e87.entry.js.map +1 -0
  123. package/dist/verdocs-web-sdk/{p-1902bf04.entry.js → p-104863b5.entry.js} +2 -2
  124. package/dist/verdocs-web-sdk/{p-9ab8bcaa.system.entry.js → p-1f2c019d.system.entry.js} +2 -2
  125. package/dist/verdocs-web-sdk/{p-fc29a754.entry.js → p-25aa3bd3.entry.js} +2 -2
  126. package/dist/verdocs-web-sdk/p-52c3e8b0.system.js +2 -0
  127. package/dist/verdocs-web-sdk/p-52c3e8b0.system.js.map +1 -0
  128. package/dist/verdocs-web-sdk/{p-7975ec40.system.entry.js → p-578e65d4.system.entry.js} +2 -2
  129. package/dist/verdocs-web-sdk/{p-407c0725.system.entry.js → p-5bcf921b.system.entry.js} +2 -2
  130. package/dist/verdocs-web-sdk/{p-26106576.system.entry.js → p-5c065719.system.entry.js} +2 -2
  131. package/dist/verdocs-web-sdk/{p-7ffebea3.entry.js → p-5ebfe76c.entry.js} +2 -2
  132. package/dist/verdocs-web-sdk/{p-086ee7f1.system.entry.js → p-6eee289a.system.entry.js} +2 -2
  133. package/dist/verdocs-web-sdk/{p-cc230abf.entry.js → p-6f1e2f2f.entry.js} +2 -2
  134. package/dist/verdocs-web-sdk/{p-4e3790db.system.entry.js → p-70247599.system.entry.js} +2 -2
  135. package/dist/verdocs-web-sdk/{p-e84cf41e.entry.js → p-8369273d.entry.js} +2 -2
  136. package/dist/verdocs-web-sdk/{p-f84ba101.entry.js → p-a285560f.entry.js} +2 -2
  137. package/dist/verdocs-web-sdk/{p-80952d72.system.entry.js → p-a41e6f04.system.entry.js} +3 -3
  138. package/dist/verdocs-web-sdk/p-a41e6f04.system.entry.js.map +1 -0
  139. package/dist/verdocs-web-sdk/{p-75e53ae1.entry.js → p-b7799ec0.entry.js} +2 -2
  140. package/dist/verdocs-web-sdk/{p-a4d94e2e.entry.js → p-b8945173.entry.js} +2 -2
  141. package/dist/verdocs-web-sdk/{p-d4aff253.entry.js → p-b9fee1a7.entry.js} +2 -2
  142. package/dist/verdocs-web-sdk/{p-34c2298e.system.entry.js → p-cabfdb9d.system.entry.js} +2 -2
  143. package/dist/verdocs-web-sdk/{p-90690dde.system.entry.js → p-d1d95df4.system.entry.js} +2 -2
  144. package/dist/verdocs-web-sdk/{p-60da8e6b.entry.js → p-d3a8c6b8.entry.js} +2 -2
  145. package/dist/verdocs-web-sdk/p-d4be87ef.js +2 -0
  146. package/dist/verdocs-web-sdk/p-d4be87ef.js.map +1 -0
  147. package/dist/verdocs-web-sdk/p-e2b70dfb.system.js +1 -1
  148. package/dist/verdocs-web-sdk/{p-208a8b41.system.entry.js → p-e3efeb57.system.entry.js} +2 -2
  149. package/dist/verdocs-web-sdk/{p-dc5c275f.system.entry.js → p-e83d06d4.system.entry.js} +2 -2
  150. package/dist/verdocs-web-sdk/{p-32cf09f0.system.entry.js → p-ecfe8987.system.entry.js} +2 -2
  151. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  152. package/package.json +3 -3
  153. package/dist/cjs/Datastore-931fd77e.js.map +0 -1
  154. package/dist/components/p-3828cb31.js.map +0 -1
  155. package/dist/components/p-78de9e65.js.map +0 -1
  156. package/dist/components/p-e95ded6b.js.map +0 -1
  157. package/dist/esm/Datastore-3f924d94.js.map +0 -1
  158. package/dist/esm-es5/Datastore-3f924d94.js +0 -2
  159. package/dist/esm-es5/Datastore-3f924d94.js.map +0 -1
  160. package/dist/verdocs-web-sdk/p-3828cb31.js +0 -2
  161. package/dist/verdocs-web-sdk/p-3828cb31.js.map +0 -1
  162. package/dist/verdocs-web-sdk/p-65be7617.system.js +0 -2
  163. package/dist/verdocs-web-sdk/p-65be7617.system.js.map +0 -1
  164. package/dist/verdocs-web-sdk/p-80952d72.system.entry.js.map +0 -1
  165. package/dist/verdocs-web-sdk/p-b1a9dc79.entry.js.map +0 -1
  166. /package/dist/verdocs-web-sdk/{p-f6ed768d.entry.js.map → p-00063a35.entry.js.map} +0 -0
  167. /package/dist/verdocs-web-sdk/{p-1902bf04.entry.js.map → p-104863b5.entry.js.map} +0 -0
  168. /package/dist/verdocs-web-sdk/{p-9ab8bcaa.system.entry.js.map → p-1f2c019d.system.entry.js.map} +0 -0
  169. /package/dist/verdocs-web-sdk/{p-fc29a754.entry.js.map → p-25aa3bd3.entry.js.map} +0 -0
  170. /package/dist/verdocs-web-sdk/{p-7975ec40.system.entry.js.map → p-578e65d4.system.entry.js.map} +0 -0
  171. /package/dist/verdocs-web-sdk/{p-407c0725.system.entry.js.map → p-5bcf921b.system.entry.js.map} +0 -0
  172. /package/dist/verdocs-web-sdk/{p-26106576.system.entry.js.map → p-5c065719.system.entry.js.map} +0 -0
  173. /package/dist/verdocs-web-sdk/{p-7ffebea3.entry.js.map → p-5ebfe76c.entry.js.map} +0 -0
  174. /package/dist/verdocs-web-sdk/{p-086ee7f1.system.entry.js.map → p-6eee289a.system.entry.js.map} +0 -0
  175. /package/dist/verdocs-web-sdk/{p-cc230abf.entry.js.map → p-6f1e2f2f.entry.js.map} +0 -0
  176. /package/dist/verdocs-web-sdk/{p-4e3790db.system.entry.js.map → p-70247599.system.entry.js.map} +0 -0
  177. /package/dist/verdocs-web-sdk/{p-e84cf41e.entry.js.map → p-8369273d.entry.js.map} +0 -0
  178. /package/dist/verdocs-web-sdk/{p-f84ba101.entry.js.map → p-a285560f.entry.js.map} +0 -0
  179. /package/dist/verdocs-web-sdk/{p-75e53ae1.entry.js.map → p-b7799ec0.entry.js.map} +0 -0
  180. /package/dist/verdocs-web-sdk/{p-a4d94e2e.entry.js.map → p-b8945173.entry.js.map} +0 -0
  181. /package/dist/verdocs-web-sdk/{p-d4aff253.entry.js.map → p-b9fee1a7.entry.js.map} +0 -0
  182. /package/dist/verdocs-web-sdk/{p-34c2298e.system.entry.js.map → p-cabfdb9d.system.entry.js.map} +0 -0
  183. /package/dist/verdocs-web-sdk/{p-90690dde.system.entry.js.map → p-d1d95df4.system.entry.js.map} +0 -0
  184. /package/dist/verdocs-web-sdk/{p-60da8e6b.entry.js.map → p-d3a8c6b8.entry.js.map} +0 -0
  185. /package/dist/verdocs-web-sdk/{p-208a8b41.system.entry.js.map → p-e3efeb57.system.entry.js.map} +0 -0
  186. /package/dist/verdocs-web-sdk/{p-dc5c275f.system.entry.js.map → p-e83d06d4.system.entry.js.map} +0 -0
  187. /package/dist/verdocs-web-sdk/{p-32cf09f0.system.entry.js.map → p-ecfe8987.system.entry.js.map} +0 -0
@@ -3,7 +3,7 @@ import { VerdocsEndpoint, startSigningSession, getKbaStep, envelopeRecipientAgre
3
3
  import { a as saveAttachment, u as updateDocumentFieldValue, r as renderDocumentField, g as getFieldId } from './utils-bd656c37.js';
4
4
  import { V as VerdocsToast } from './Toast-c4843828.js';
5
5
  import { S as SDKError } from './errors-887f1e88.js';
6
- import { S as Store } from './Datastore-3f924d94.js';
6
+ import { S as Store } from './Datastore-77cb8d9c.js';
7
7
  import './_commonjsHelpers-bdec4bbd.js';
8
8
  import './Types-95d86a44.js';
9
9
  import './format-b8602175.js';
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, F as Fragment, g as getElement } from './index-272d51a4.js';
2
2
  import { VerdocsEndpoint, getTemplateDocumentPageDisplayUri, getTemplate } from '@verdocs/js-sdk';
3
3
  import { t as throttle, j as getControlStyles, g as getFieldId } from './utils-bd656c37.js';
4
- import { S as Store } from './Datastore-3f924d94.js';
4
+ import { S as Store } from './Datastore-77cb8d9c.js';
5
5
  import { c as createPopper } from './popper-0fbeff6d.js';
6
6
  import './_commonjsHelpers-bdec4bbd.js';
7
7
  import './Types-95d86a44.js';
@@ -0,0 +1,2 @@
1
+ var __awaiter=this&&this.__awaiter||function(r,n,e,t){function a(r){return r instanceof e?r:new e((function(n){n(r)}))}return new(e||(e=Promise))((function(e,o){function i(r){try{c(t.next(r))}catch(r){o(r)}}function u(r){try{c(t["throw"](r))}catch(r){o(r)}}function c(r){r.done?e(r.value):a(r.value).then(i,u)}c((t=t.apply(r,n||[])).next())}))};var __generator=this&&this.__generator||function(r,n){var e={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},t,a,o,i;return i={next:u(0),throw:u(1),return:u(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function u(r){return function(n){return c([r,n])}}function c(u){if(t)throw new TypeError("Generator is already executing.");while(i&&(i=0,u[0]&&(e=0)),e)try{if(t=1,a&&(o=u[0]&2?a["return"]:u[0]?a["throw"]||((o=a["return"])&&o.call(a),0):a.next)&&!(o=o.call(a,u[1])).done)return o;if(a=0,o)u=[u[0]&2,o.value];switch(u[0]){case 0:case 1:o=u;break;case 4:e.label++;return{value:u[1],done:false};case 5:e.label++;a=u[1];u=[0];continue;case 7:u=e.ops.pop();e.trys.pop();continue;default:if(!(o=e.trys,o=o.length>0&&o[o.length-1])&&(u[0]===6||u[0]===2)){e=0;continue}if(u[0]===3&&(!o||u[1]>o[0]&&u[1]<o[3])){e.label=u[1];break}if(u[0]===6&&e.label<o[1]){e.label=o[1];o=u;break}if(o&&e.label<o[2]){e.label=o[2];e.ops.push(u);break}if(o[2])e.ops.pop();e.trys.pop();continue}u=n.call(r,e)}catch(r){u=[6,r];a=0}finally{t=o=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(r,n,e){if(e||arguments.length===2)for(var t=0,a=n.length,o;t<a;t++){if(o||!(t in n)){if(!o)o=Array.prototype.slice.call(n,0,t);o[t]=n[t]}}return r.concat(o||Array.prototype.slice.call(n))};import{getTemplate}from"@verdocs/js-sdk";var getTypeOf=function(r){return typeof r};var EMPTY_STRING="";var STRING=getTypeOf(EMPTY_STRING);var BOOLEAN=getTypeOf(true);var NUMBER=getTypeOf(0);var FUNCTION=getTypeOf(getTypeOf);var TYPE="type";var DEFAULT="default";var LISTENER="Listener";var ADD="add";var HAS="Has";var IDS="Ids";var TABLE="Table";var TABLES=TABLE+"s";var TABLE_IDS=TABLE+IDS;var ROW="Row";var ROW_COUNT=ROW+"Count";var ROW_IDS=ROW+IDS;var CELL="Cell";var CELL_IDS=CELL+IDS;var VALUE="Value";var VALUES=VALUE+"s";var VALUE_IDS=VALUE+IDS;var id=function(r){return EMPTY_STRING+r};var isFiniteNumber=isFinite;var isInstanceOf=function(r,n){return r instanceof n};var isUndefined=function(r){return r==undefined};var ifNotUndefined=function(r,n,e){return isUndefined(r)?e===null||e===void 0?void 0:e():n(r)};var isTypeStringOrBoolean=function(r){return r==STRING||r==BOOLEAN};var isFunction=function(r){return getTypeOf(r)==FUNCTION};var isArray=function(r){return Array.isArray(r)};var slice=function(r,n,e){return r.slice(n,e)};var size=function(r){return r.length};var test=function(r,n){return r.test(n)};var arrayHas=function(r,n){return r.includes(n)};var arrayEvery=function(r,n){return r.every(n)};var arrayIsEqual=function(r,n){return size(r)===size(n)&&arrayEvery(r,(function(r,e){return n[e]===r}))};var arraySort=function(r,n){return r.sort(n)};var arrayForEach=function(r,n){return r.forEach(n)};var arrayMap=function(r,n){return r.map(n)};var arrayReduce=function(r,n,e){return r.reduce(n,e)};var arrayPush=function(r){var n=[];for(var e=1;e<arguments.length;e++){n[e-1]=arguments[e]}return r.push.apply(r,n)};var arrayShift=function(r){return r.shift()};var object=Object;var getPrototypeOf=function(r){return object.getPrototypeOf(r)};var objEntries=object.entries;var objFrozen=object.isFrozen;var isObject=function(r){return!isUndefined(r)&&ifNotUndefined(getPrototypeOf(r),(function(r){return r==object.prototype||isUndefined(getPrototypeOf(r))}),(function(){return true}))};var objIds=object.keys;var objFreeze=object.freeze;var objNew=function(r){if(r===void 0){r=[]}return object.fromEntries(r)};var objHas=function(r,n){return n in r};var objDel=function(r,n){delete r[n];return r};var objForEach=function(r,n){return arrayForEach(objEntries(r),(function(r){var e=r[0],t=r[1];return n(t,e)}))};var objToArray=function(r,n){return arrayMap(objEntries(r),(function(r){var e=r[0],t=r[1];return n(t,e)}))};var objMap=function(r,n){return objNew(objToArray(r,(function(r,e){return[e,n(r,e)]})))};var objSize=function(r){return size(objIds(r))};var objIsEmpty=function(r){return isObject(r)&&objSize(r)==0};var objValidate=function(r,n,e,t){if(t===void 0){t=0}if(isUndefined(r)||!isObject(r)||!t&&objIsEmpty(r)||objFrozen(r)){e===null||e===void 0?void 0:e();return false}objForEach(r,(function(e,t){if(!n(e,t)){objDel(r,t)}}));return t?true:!objIsEmpty(r)};var collSizeN=function(r){return function(n){return arrayReduce(collValues(n),(function(n,e){return n+r(e)}),0)}};var collSize=function(r){var n;return(n=r===null||r===void 0?void 0:r.size)!==null&&n!==void 0?n:0};var collSize2=collSizeN(collSize);var collSize3=collSizeN(collSize2);var collSize4=collSizeN(collSize3);var collHas=function(r,n){var e;return(e=r===null||r===void 0?void 0:r.has(n))!==null&&e!==void 0?e:false};var collIsEmpty=function(r){return isUndefined(r)||collSize(r)==0};var collValues=function(r){var n;return __spreadArray([],(n=r===null||r===void 0?void 0:r.values())!==null&&n!==void 0?n:[],true)};var collClear=function(r){return r.clear()};var collForEach=function(r,n){return r===null||r===void 0?void 0:r.forEach(n)};var collDel=function(r,n){return r===null||r===void 0?void 0:r.delete(n)};var mapNew=function(r){return new Map(r)};var mapKeys=function(r){var n;return __spreadArray([],(n=r===null||r===void 0?void 0:r.keys())!==null&&n!==void 0?n:[],true)};var mapGet=function(r,n){return r===null||r===void 0?void 0:r.get(n)};var mapForEach=function(r,n){return collForEach(r,(function(r,e){return n(e,r)}))};var mapMap=function(r,n){var e;return arrayMap(__spreadArray([],(e=r===null||r===void 0?void 0:r.entries())!==null&&e!==void 0?e:[],true),(function(r){var e=r[0],t=r[1];return n(t,e)}))};var mapSet=function(r,n,e){return isUndefined(e)?(collDel(r,n),r):r===null||r===void 0?void 0:r.set(n,e)};var mapEnsure=function(r,n,e,t){if(!collHas(r,n)){mapSet(r,n,e())}else{t===null||t===void 0?void 0:t(mapGet(r,n))}return mapGet(r,n)};var mapMatch=function(r,n,e,t){if(t===void 0){t=mapSet}objMap(n,(function(n,t){return e(r,t,n)}));mapForEach(r,(function(e){return objHas(n,e)?0:t(r,e)}));return r};var mapToObj=function(r,n,e,t){var a={};collForEach(r,(function(r,o){if(!(e===null||e===void 0?void 0:e(r,o))){var i=n?n(r,o):r;if(!(t===null||t===void 0?void 0:t(i))){a[o]=i}}}));return a};var mapToObj2=function(r,n,e){return mapToObj(r,(function(r){return mapToObj(r,n,e)}),collIsEmpty,objIsEmpty)};var mapToObj3=function(r,n,e){return mapToObj(r,(function(r){return mapToObj2(r,n,e)}),collIsEmpty,objIsEmpty)};var mapClone=function(r,n){var e=mapNew();collForEach(r,(function(r,t){var a;return e.set(t,(a=n===null||n===void 0?void 0:n(r))!==null&&a!==void 0?a:r)}));return e};var mapClone2=function(r){return mapClone(r,mapClone)};var mapClone3=function(r){return mapClone(r,mapClone2)};var visitTree=function(r,n,e,t,a){if(a===void 0){a=0}return ifNotUndefined((e?mapEnsure:mapGet)(r,n[a],a>size(n)-2?e:mapNew),(function(o){if(a>size(n)-2){if(t===null||t===void 0?void 0:t(o)){mapSet(r,n[a])}return o}var i=visitTree(o,n,e,t,a+1);if(collIsEmpty(o)){mapSet(r,n[a])}return i}))};var getCellOrValueType=function(r){var n=getTypeOf(r);return isTypeStringOrBoolean(n)||n==NUMBER&&isFiniteNumber(r)?n:undefined};var setOrDelCell=function(r,n,e,t,a){return isUndefined(a)?r.delCell(n,e,t,true):r.setCell(n,e,t,a)};var setOrDelValue=function(r,n,e){return isUndefined(e)?r.delValue(n):r.setValue(n,e)};var setNew=function(r){return new Set(isArray(r)||isUndefined(r)?r:[r])};var setAdd=function(r,n){return r===null||r===void 0?void 0:r.add(n)};var INTEGER=/^\d+$/;var getPoolFunctions=function(){var r=[];var n=0;return[function(e){var t;return(t=e?arrayShift(r):null)!==null&&t!==void 0?t:EMPTY_STRING+n++},function(n){if(test(INTEGER,n)&&size(r)<1e3){arrayPush(r,n)}}]};var getWildcardedLeaves=function(r,n){if(n===void 0){n=[EMPTY_STRING]}var e=[];var t=function(r,a){return a==size(n)?arrayPush(e,r):n[a]===null?collForEach(r,(function(r){return t(r,a+1)})):arrayForEach([n[a],null],(function(n){return t(mapGet(r,n),a+1)}))};t(r,0);return e};var getListenerFunctions=function(r){var n;var e=getPoolFunctions(),t=e[0],a=e[1];var o=mapNew();var i=function(e,a,i,u,c){if(u===void 0){u=[]}if(c===void 0){c=function(){return[]}}n!==null&&n!==void 0?n:n=r();var l=t(1);mapSet(o,l,[e,a,i,u,c]);setAdd(visitTree(a,i!==null&&i!==void 0?i:[EMPTY_STRING],setNew),l);return l};var u=function(r,e){var t=[];for(var a=2;a<arguments.length;a++){t[a-2]=arguments[a]}return arrayForEach(getWildcardedLeaves(r,e),(function(r){return collForEach(r,(function(r){var a;return(a=mapGet(o,r))[0].apply(a,__spreadArray(__spreadArray([n],e!==null&&e!==void 0?e:[],false),t,false))}))}))};var c=function(r){return ifNotUndefined(mapGet(o,r),(function(n){var e=n[1],t=n[2];visitTree(e,t!==null&&t!==void 0?t:[EMPTY_STRING],undefined,(function(n){collDel(n,r);return collIsEmpty(n)?1:0}));mapSet(o,r);a(r);return t}))};var l=function(r){return ifNotUndefined(mapGet(o,r),(function(r){var e=r[0],t=r[2],a=t===void 0?[]:t,o=r[3],i=r[4];var u=function(){var r,t;var c=[];for(var l=0;l<arguments.length;l++){c[l]=arguments[l]}var f=size(c);if(f==size(a)){e.apply(void 0,__spreadArray(__spreadArray([n],c,false),i(c),false))}else if(isUndefined(a[f])){arrayForEach((t=(r=o[f])===null||r===void 0?void 0:r.call.apply(r,__spreadArray([o],c,false)))!==null&&t!==void 0?t:[],(function(r){return u.apply(void 0,__spreadArray(__spreadArray([],c,false),[r],false))}))}else{u.apply(void 0,__spreadArray(__spreadArray([],c,false),[a[f]],false))}};u()}))};return[i,u,c,l]};var defaultSorter=function(r,n){return(r!==null&&r!==void 0?r:0)<(n!==null&&n!==void 0?n:0)?-1:1};var pairNew=function(r){return[r,r]};var pairCollSize2=function(r,n){if(n===void 0){n=collSize2}return n(r[0])+n(r[1])};var pairNewMap=function(){return[mapNew(),mapNew()]};var pairClone=function(r){return __spreadArray([],r,true)};var pairIsEqual=function(r){var n=r[0],e=r[1];return n===e};var jsonString=JSON.stringify;var jsonParse=JSON.parse;var jsonStringWithMap=function(r){return jsonString(r,(function(r,n){return isInstanceOf(n,Map)?object.fromEntries(__spreadArray([],n,true)):n}))};var idsChanged=function(r,n,e){return mapSet(r,n,mapGet(r,n)==-e?undefined:e)};var createStore=function(){var r;var n;var e;var t=false;var a=false;var o=0;var i=[];var u=mapNew();var c=mapNew();var l=mapNew();var f=mapNew();var v=mapNew();var s=mapNew();var p=mapNew();var d=mapNew();var m=mapNew();var E=mapNew();var S=mapNew();var y=mapNew();var b=mapNew();var T=mapNew();var h=setNew();var N=mapNew();var w=mapNew();var j=mapNew();var I=mapNew();var _=pairNewMap();var C=pairNewMap();var O=pairNewMap();var g=pairNewMap();var F=pairNewMap();var A=pairNewMap();var G=pairNewMap();var M=pairNewMap();var L=pairNewMap();var U=pairNewMap();var z=pairNewMap();var R=pairNewMap();var V=pairNewMap();var D=pairNewMap();var H=pairNewMap();var P=pairNewMap();var B=pairNewMap();var W=pairNewMap();var J=pairNewMap();var Y=pairNewMap();var q=pairNewMap();var K=pairNewMap();var k=mapNew();var x=pairNewMap();var $=getListenerFunctions((function(){return ve})),Q=$[0],X=$[1],Z=$[2],rr=$[3];var nr=function(r){return objValidate(r,(function(r){return objValidate(r,tr)}))};var er=function(r){return objValidate(r,tr)};var tr=function(r){if(!objValidate(r,(function(r,n){return arrayHas([TYPE,DEFAULT],n)}))){return false}var n=r[TYPE];if(!isTypeStringOrBoolean(n)&&n!=NUMBER){return false}if(getCellOrValueType(r[DEFAULT])!=n){objDel(r,DEFAULT)}return true};var ar=isArray;var or=function(r){return objValidate(r,ir,Rr)};var ir=function(r,e){return(!n||collHas(S,e)||Rr(e))&&objValidate(r,(function(r,n){return ur(e,n,r)}),(function(){return Rr(e)}))};var ur=function(r,n,e,t){return objValidate(t?e:vr(e,r,n),(function(t,a){return ifNotUndefined(cr(r,n,a,t),(function(r){e[a]=r;return true}),(function(){return false}))}),(function(){return Rr(r,n)}))};var cr=function(r,e,t,a){return n?ifNotUndefined(mapGet(mapGet(S,r),t),(function(n){return getCellOrValueType(a)!=n[TYPE]?Rr(r,e,t,a,n[DEFAULT]):a}),(function(){return Rr(r,e,t,a)})):isUndefined(getCellOrValueType(a))?Rr(r,e,t,a):a};var lr=function(r,n){return objValidate(n?r:sr(r),(function(n,e){return ifNotUndefined(fr(e,n),(function(n){r[e]=n;return true}),(function(){return false}))}),(function(){return Vr()}))};var fr=function(r,n){return e?ifNotUndefined(mapGet(b,r),(function(e){return getCellOrValueType(n)!=e[TYPE]?Vr(r,n,e[DEFAULT]):n}),(function(){return Vr(r,n)})):isUndefined(getCellOrValueType(n))?Vr(r,n):n};var vr=function(r,n,e){ifNotUndefined(mapGet(y,n),(function(t){var a=t[0],o=t[1];collForEach(a,(function(n,e){if(!objHas(r,e)){r[e]=n}}));collForEach(o,(function(t){if(!objHas(r,t)){Rr(n,e,t)}}))}));return r};var sr=function(r){if(e){collForEach(T,(function(n,e){if(!objHas(r,e)){r[e]=n}}));collForEach(h,(function(n){if(!objHas(r,n)){Vr(n)}}))}return r};var pr=function(r){return mapMatch(S,r,(function(r,n,e){var t=mapNew();var a=setNew();mapMatch(mapEnsure(S,n,mapNew),e,(function(r,n,e){mapSet(r,n,e);ifNotUndefined(e[DEFAULT],(function(r){return mapSet(t,n,r)}),(function(){return setAdd(a,n)}))}));mapSet(y,n,[t,a])}),(function(r,n){mapSet(S,n);mapSet(y,n)}))};var dr=function(r){return mapMatch(b,r,(function(r,n,e){mapSet(b,n,e);ifNotUndefined(e[DEFAULT],(function(r){return mapSet(T,n,r)}),(function(){return setAdd(h,n)}))}),(function(r,n){mapSet(b,n);mapSet(T,n);collDel(h,n)}))};var mr=function(r){return objIsEmpty(r)?Vn():Nn(r)};var Er=function(r){var n=r[0],e=r[1];(objIsEmpty(n)?Vn:Nn)(n);(objIsEmpty(e)?Bn:On)(e)};var Sr=function(r){return mapMatch(j,r,(function(r,n,e){return yr(n,e)}),(function(r,n){return Cr(n)}))};var yr=function(r,n){return mapMatch(mapEnsure(j,r,(function(){Ar(r,1);mapSet(N,r,getPoolFunctions());mapSet(w,r,mapNew());return mapNew()})),n,(function(n,e,t){return br(r,n,e,t)}),(function(n,e){return Or(r,n,e)}))};var br=function(r,n,e,t,a){return mapMatch(mapEnsure(n,e,(function(){Gr(r,e,1);return mapNew()})),t,(function(n,t,a){return Tr(r,e,n,t,a)}),(function(t,o){return gr(r,n,e,t,o,a)}))};var Tr=function(r,n,e,t,a){if(!collHas(e,t)){Mr(r,n,t,1)}var o=mapGet(e,t);if(a!==o){Lr(r,n,t,o,a);mapSet(e,t,a)}};var hr=function(r,n,e,t,a){return ifNotUndefined(mapGet(n,e),(function(n){return Tr(r,e,n,t,a)}),(function(){var o;return br(r,n,e,vr((o={},o[t]=a,o),r,e))}))};var Nr=function(r){return objIsEmpty(r)?Bn():On(r)};var wr=function(r){return mapMatch(I,r,(function(r,n,e){return jr(n,e)}),(function(r,n){return Fr(n)}))};var jr=function(r,n){if(!collHas(I,r)){Ur(r,1)}var e=mapGet(I,r);if(n!==e){zr(r,e,n);mapSet(I,r,n)}};var Ir=function(r,n){var e=mapGet(N,r)[0];var t;do{t=e(n)}while(collHas(mapGet(j,r),t));return t};var _r=function(r){var n;return(n=mapGet(j,r))!==null&&n!==void 0?n:yr(r,{})};var Cr=function(r){return yr(r,{})};var Or=function(r,n,e){var t=mapGet(N,r),a=t[1];a(e);br(r,n,e,{},true)};var gr=function(r,n,e,t,a,o){var i;var u=mapGet((i=mapGet(y,r))===null||i===void 0?void 0:i[0],a);if(!isUndefined(u)&&!o){return Tr(r,e,t,a,u)}var c=function(n){Lr(r,e,n,mapGet(t,n));Mr(r,e,n,-1);mapSet(t,n)};if(isUndefined(u)){c(a)}else{mapForEach(t,c)}if(collIsEmpty(t)){Gr(r,e,-1);if(collIsEmpty(mapSet(n,e))){Ar(r,-1);mapSet(j,r);mapSet(N,r);mapSet(w,r)}}};var Fr=function(r){var n=mapGet(T,r);if(!isUndefined(n)){return jr(r,n)}zr(r,mapGet(I,r));Ur(r,-1);mapSet(I,r)};var Ar=function(r,n){return idsChanged(u,r,n)};var Gr=function(r,n,e){return idsChanged(mapEnsure(f,r,mapNew),n,e)&&mapSet(l,r,mapEnsure(l,r,(function(){return 0}))+e)};var Mr=function(r,n,e,t){var a;var o=mapGet(w,r);var i=(a=mapGet(o,e))!==null&&a!==void 0?a:0;if(i==0&&t==1||i==1&&t==-1){idsChanged(mapEnsure(c,r,mapNew),e,t)}mapSet(o,e,i!=-t?i+t:null);idsChanged(mapEnsure(mapEnsure(v,r,mapNew),n,mapNew),e,t)};var Lr=function(r,n,e,t,a){var o;mapEnsure(mapEnsure(mapEnsure(s,r,mapNew),n,mapNew),e,(function(){return[t,0]}))[1]=a;(o=i[3])===null||o===void 0?void 0:o.call(i,r,n,e,a)};var Ur=function(r,n){return idsChanged(p,r,n)};var zr=function(r,n,e){var t;mapEnsure(d,r,(function(){return[n,0]}))[1]=e;(t=i[4])===null||t===void 0?void 0:t.call(i,r,e)};var Rr=function(r,n,e,t,a){arrayPush(mapEnsure(mapEnsure(mapEnsure(m,r,mapNew),n,mapNew),e,(function(){return[]})),t);return a};var Vr=function(r,n,e){arrayPush(mapEnsure(E,r,(function(){return[]})),n);return e};var Dr=function(r,n,e){return ifNotUndefined(mapGet(mapGet(mapGet(s,r),n),e),(function(r){var n=r[0],e=r[1];return[true,n,e]}),(function(){return __spreadArray([false],pairNew(tn(r,n,e)),true)}))};var Hr=function(r){return ifNotUndefined(mapGet(d,r),(function(r){var n=r[0],e=r[1];return[true,n,e]}),(function(){return __spreadArray([false],pairNew(un(r)),true)}))};var Pr=function(r){return!collIsEmpty(m)&&!collIsEmpty(P[r])?collForEach(r?mapClone3(m):m,(function(n,e){return collForEach(n,(function(n,t){return collForEach(n,(function(n,a){return X(P[r],[e,t,a],n)}))}))})):0};var Br=function(r){return!collIsEmpty(E)&&!collIsEmpty(B[r])?collForEach(r?mapClone(E):E,(function(n,e){return X(B[r],[e],n)})):0};var Wr=function(r,n,e,t){if(!collIsEmpty(r)){X(n,t,(function(){return mapToObj(r)}));mapForEach(r,(function(r,n){return X(e,__spreadArray(__spreadArray([],t!==null&&t!==void 0?t:[],true),[r],false),n==1)}));return 1}};var Jr=function(r){var n=cn();if(n!=t){X(_[r],undefined,n)}var e=collIsEmpty(U[r]);var a=collIsEmpty(V[r])&&collIsEmpty(D[r])&&collIsEmpty(L[r])&&collIsEmpty(z[r])&&collIsEmpty(A[r])&&collIsEmpty(G[r])&&collIsEmpty(M[r])&&e&&collIsEmpty(O[r])&&collIsEmpty(g[r]);var o=collIsEmpty(H[r])&&collIsEmpty(R[r])&&collIsEmpty(F[r])&&collIsEmpty(C[r]);if(!a||!o){var i=r?[mapClone(u),mapClone2(c),mapClone(l),mapClone2(f),mapClone3(v),mapClone3(s)]:[u,c,l,f,v,s];if(!a){Wr(i[0],O[r],g[r]);collForEach(i[1],(function(n,e){return Wr(n,A[r],G[r],[e])}));collForEach(i[2],(function(n,e){if(n!=0){X(M[r],[e],Xr(e))}}));var p=setNew();collForEach(i[3],(function(n,t){if(Wr(n,L[r],z[r],[t])&&!e){X(U[r],[t,null]);setAdd(p,t)}}));if(!e){collForEach(i[5],(function(n,e){if(!collHas(p,e)){var t=setNew();collForEach(n,(function(r){return collForEach(r,(function(n,e){var a=n[0],o=n[1];return o!==a?setAdd(t,e):collDel(r,e)}))}));collForEach(t,(function(n){return X(U[r],[e,n])}))}}))}collForEach(i[4],(function(n,e){return collForEach(n,(function(n,t){return Wr(n,V[r],D[r],[e,t])}))}))}if(!o){var d;collForEach(i[5],(function(n,e){var t;collForEach(n,(function(n,a){var o;collForEach(n,(function(n,i){var u=n[0],c=n[1];if(c!==u){X(H[r],[e,a,i],c,u,Dr);d=t=o=1}}));if(o){X(R[r],[e,a],Dr)}}));if(t){X(F[r],[e],Dr)}}));if(d){X(C[r],undefined,Dr)}}}};var Yr=function(r){var n=pn();if(n!=a){X(W[r],undefined,n)}var e=collIsEmpty(Y[r])&&collIsEmpty(q[r]);var t=collIsEmpty(K[r])&&collIsEmpty(J[r]);if(!e||!t){var o=r?[mapClone(p),mapClone(d)]:[p,d];if(!e){Wr(o[0],Y[r],q[r])}if(!t){var i;collForEach(o[1],(function(n,e){var t=n[0],a=n[1];if(a!==t){X(K[r],[e],a,t,Hr);i=1}}));if(i){X(J[r],undefined,Hr)}}}};var qr=function(r){var n=[];for(var e=1;e<arguments.length;e++){n[e-1]=arguments[e]}Kn((function(){return r.apply(void 0,arrayMap(n,id))}));return ve};var Kr=function(){return[kr(),an()]};var kr=function(){return mapToObj3(j)};var xr=function(){return mapKeys(j)};var $r=function(r){return mapToObj2(mapGet(j,id(r)))};var Qr=function(r){return mapKeys(mapGet(w,id(r)))};var Xr=function(r){return collSize(mapGet(j,id(r)))};var Zr=function(r){return mapKeys(mapGet(j,id(r)))};var rn=function(r,n,e,t,a){if(t===void 0){t=0}return arrayMap(slice(arraySort(mapMap(mapGet(j,id(r)),(function(r,e){return[isUndefined(n)?e:mapGet(r,id(n)),e]})),(function(r,n){var t=r[0];var a=n[0];return defaultSorter(t,a)*(e?-1:1)})),t,isUndefined(a)?a:t+a),(function(r){var n=r[1];return n}))};var nn=function(r,n){return mapToObj(mapGet(mapGet(j,id(r)),id(n)))};var en=function(r,n){return mapKeys(mapGet(mapGet(j,id(r)),id(n)))};var tn=function(r,n,e){return mapGet(mapGet(mapGet(j,id(r)),id(n)),id(e))};var an=function(){return mapToObj(I)};var on=function(){return mapKeys(I)};var un=function(r){return mapGet(I,id(r))};var cn=function(){return!collIsEmpty(j)};var ln=function(r){return collHas(j,id(r))};var fn=function(r,n){return collHas(mapGet(w,id(r)),id(n))};var vn=function(r,n){return collHas(mapGet(j,id(r)),id(n))};var sn=function(r,n,e){return collHas(mapGet(mapGet(j,id(r)),id(n)),id(e))};var pn=function(){return!collIsEmpty(I)};var dn=function(r){return collHas(I,id(r))};var mn=function(){return jsonStringWithMap(j)};var En=function(){return jsonStringWithMap(I)};var Sn=function(){return jsonStringWithMap([j,I])};var yn=function(){return jsonStringWithMap(S)};var bn=function(){return jsonStringWithMap(b)};var Tn=function(){return jsonStringWithMap([S,b])};var hn=function(r){return qr((function(){var n=isFunction(r)?r():r;if(ar(n)){Er(n)}}))};var Nn=function(r){return qr((function(){return or(r)?Sr(r):0}))};var wn=function(r,n){return qr((function(r){return ir(n,r)?yr(r,n):0}),r)};var jn=function(r,n,e){return qr((function(r,n){return ur(r,n,e)?br(r,_r(r),n,e):0}),r,n)};var In=function(r,n,e){if(e===void 0){e=true}return Kn((function(){var t=undefined;if(ur(r,t,n)){r=id(r);br(r,_r(r),t=Ir(r,e?1:0),n)}return t}))};var _n=function(r,n,e){return qr((function(r,n){if(ur(r,n,e,1)){var t=_r(r);objMap(e,(function(e,a){return hr(r,t,n,a,e)}))}}),r,n)};var Cn=function(r,n,e,t){return qr((function(r,n,e){return ifNotUndefined(cr(r,n,e,isFunction(t)?t(tn(r,n,e)):t),(function(t){return hr(r,_r(r),n,e,t)}))}),r,n,e)};var On=function(r){return qr((function(){return lr(r)?wr(r):0}))};var gn=function(r){return qr((function(){return lr(r,1)?objMap(r,(function(r,n){return jr(n,r)})):0}))};var Fn=function(r,n){return qr((function(r){return ifNotUndefined(fr(r,isFunction(n)?n(un(r)):n),(function(n){return jr(r,n)}))}),r)};var An=function(r){return qr((function(){objMap(r[0],(function(r,n){return isUndefined(r)?Dn(n):objMap(r,(function(r,e){return isUndefined(r)?Hn(n,e):objMap(r,(function(r,t){return setOrDelCell(ve,n,e,t,r)}))}))}));objMap(r[1],(function(r,n){return setOrDelValue(ve,n,r)}))}))};var Gn=function(r){try{mr(jsonParse(r))}catch(r){}return ve};var Mn=function(r){try{Nr(jsonParse(r))}catch(r){}return ve};var Ln=function(r){return qr((function(){try{var n=jsonParse(r),e=n[0],t=n[1];mr(e);Nr(t)}catch(n){Gn(r)}}))};var Un=function(r){return qr((function(){if(n=nr(r)){pr(r);if(!collIsEmpty(j)){var e=kr();Vn();Nn(e)}}}))};var zn=function(r){return qr((function(){if(e=er(r)){var n=an();Yn();Bn();e=true;dr(r);On(n)}}))};var Rn=function(r,n){return qr((function(){Un(r);zn(n)}))};var Vn=function(){return qr((function(){return Sr({})}))};var Dn=function(r){return qr((function(r){return collHas(j,r)?Cr(r):0}),r)};var Hn=function(r,n){return qr((function(r,n){return ifNotUndefined(mapGet(j,r),(function(e){return collHas(e,n)?Or(r,e,n):0}))}),r,n)};var Pn=function(r,n,e,t){return qr((function(r,n,e){return ifNotUndefined(mapGet(j,r),(function(a){return ifNotUndefined(mapGet(a,n),(function(o){return collHas(o,e)?gr(r,a,n,o,e,t):0}))}))}),r,n,e)};var Bn=function(){return qr((function(){return wr({})}))};var Wn=function(r){return qr((function(r){return collHas(I,r)?Fr(r):0}),r)};var Jn=function(){return qr((function(){pr({});n=false}))};var Yn=function(){return qr((function(){dr({});e=false}))};var qn=function(){return qr((function(){Jn();Yn()}))};var Kn=function(r,n){if(o!=-1){kn();var e=r();Qn(n);return e}};var kn=function(){var r;if(o!=-1){o++}if(o==1){(r=i[0])===null||r===void 0?void 0:r.call(i);X(k)}return ve};var xn=function(){return[mapToObj(s,(function(r,n){return mapGet(u,n)===-1?undefined:mapToObj(r,(function(r,e){return mapGet(mapGet(f,n),e)===-1?undefined:mapToObj(r,(function(r){var n=r[1];return n}),(function(r){return pairIsEqual(r)}))}),collIsEmpty,objIsEmpty)}),collIsEmpty,objIsEmpty),mapToObj(d,(function(r){var n=r[1];return n}),(function(r){return pairIsEqual(r)})),1]};var $n=function(){return[!collIsEmpty(s),!collIsEmpty(d),mapToObj3(s,pairClone,pairIsEqual),mapToObj3(m),mapToObj(d,pairClone,pairIsEqual),mapToObj(E),mapToObj(u),mapToObj2(f),mapToObj3(v),mapToObj(p)]};var Qn=function(r){var n,e;if(o>0){o--;if(o==0){o=1;Pr(1);if(!collIsEmpty(s)){Jr(1)}Br(1);if(!collIsEmpty(d)){Yr(1)}if(r===null||r===void 0?void 0:r(ve)){collForEach(s,(function(r,n){return collForEach(r,(function(r,e){return collForEach(r,(function(r,t){var a=r[0];return setOrDelCell(ve,n,e,t,a)}))}))}));collClear(s);collForEach(d,(function(r,n){var e=r[0];return setOrDelValue(ve,n,e)}));collClear(d)}X(x[0],undefined);o=-1;Pr(0);if(!collIsEmpty(s)){Jr(0)}Br(0);if(!collIsEmpty(d)){Yr(0)}(n=i[1])===null||n===void 0?void 0:n.call(i);X(x[1],undefined);(e=i[2])===null||e===void 0?void 0:e.call(i);o=0;t=cn();a=pn();arrayForEach([u,c,l,f,v,s,m,p,d,E],collClear)}}return ve};var Xn=function(r){return collForEach(j,(function(n,e){return r(e,(function(r){return collForEach(n,(function(n,e){return r(e,(function(r){return mapForEach(n,r)}))}))}))}))};var Zn=function(r,n){return mapForEach(mapGet(w,id(r)),n)};var re=function(r,n){return collForEach(mapGet(j,id(r)),(function(r,e){return n(e,(function(n){return mapForEach(r,n)}))}))};var ne=function(r,n,e){return mapForEach(mapGet(mapGet(j,id(r)),id(n)),e)};var ee=function(r){return mapForEach(I,r)};var te=function(r,n,e,t,a,o,i){var u=rn(r,n,e,t,a);return Q((function(){var i=rn(r,n,e,t,a);if(!arrayIsEqual(i,u)){u=i;o(ve,r,n,e,t,a,u)}}),U[i?1:0],[r,n],[xr])};var ae=function(r){return Q(r,k)};var oe=function(r){return Q(r,x[0])};var ie=function(r){return Q(r,x[1])};var ue=function(r){rr(r);return ve};var ce=function(r){Z(r);return ve};var le=function(){return{hasTables:pairCollSize2(_),tables:pairCollSize2(C),tableIds:pairCollSize2(O),hasTable:pairCollSize2(g),table:pairCollSize2(F),tableCellIds:pairCollSize2(A),hasTableCell:pairCollSize2(G,collSize3),rowCount:pairCollSize2(M),rowIds:pairCollSize2(L),sortedRowIds:pairCollSize2(U),hasRow:pairCollSize2(z,collSize3),row:pairCollSize2(R,collSize3),cellIds:pairCollSize2(V,collSize3),hasCell:pairCollSize2(D,collSize4),cell:pairCollSize2(H,collSize4),invalidCell:pairCollSize2(P,collSize4),hasValues:pairCollSize2(W),values:pairCollSize2(J),valueIds:pairCollSize2(Y),hasValue:pairCollSize2(q),value:pairCollSize2(K),invalidValue:pairCollSize2(B),transaction:collSize2(k)+pairCollSize2(x)}};var fe=function(r,n,e,t,a){return i=[r,n,e,t,a]};var ve={getContent:Kr,getTables:kr,getTableIds:xr,getTable:$r,getTableCellIds:Qr,getRowCount:Xr,getRowIds:Zr,getSortedRowIds:rn,getRow:nn,getCellIds:en,getCell:tn,getValues:an,getValueIds:on,getValue:un,hasTables:cn,hasTable:ln,hasTableCell:fn,hasRow:vn,hasCell:sn,hasValues:pn,hasValue:dn,getTablesJson:mn,getValuesJson:En,getJson:Sn,getTablesSchemaJson:yn,getValuesSchemaJson:bn,getSchemaJson:Tn,hasTablesSchema:function(){return n},hasValuesSchema:function(){return e},setContent:hn,setTables:Nn,setTable:wn,setRow:jn,addRow:In,setPartialRow:_n,setCell:Cn,setValues:On,setPartialValues:gn,setValue:Fn,applyChanges:An,setTablesJson:Gn,setValuesJson:Mn,setJson:Ln,setTablesSchema:Un,setValuesSchema:zn,setSchema:Rn,delTables:Vn,delTable:Dn,delRow:Hn,delCell:Pn,delValues:Bn,delValue:Wn,delTablesSchema:Jn,delValuesSchema:Yn,delSchema:qn,transaction:Kn,startTransaction:kn,getTransactionChanges:xn,getTransactionLog:$n,finishTransaction:Qn,forEachTable:Xn,forEachTableCell:Zn,forEachRow:re,forEachCell:ne,forEachValue:ee,addSortedRowIdsListener:te,addStartTransactionListener:ae,addWillFinishTransactionListener:oe,addDidFinishTransactionListener:ie,callListener:ue,delListener:ce,getListenerStats:le,isMergeable:function(){return false},createStore:createStore,addListener:Q,callListeners:X,setInternalListeners:fe};objMap((r={},r[HAS+TABLES]=[0,_,[],function(){return[cn()]}],r[TABLES]=[0,C],r[TABLE_IDS]=[0,O],r[HAS+TABLE]=[1,g,[xr],function(r){return[ln.apply(void 0,r)]}],r[TABLE]=[1,F,[xr]],r[TABLE+CELL_IDS]=[1,A,[xr]],r[HAS+TABLE+CELL]=[2,G,[xr,Qr],function(r){return[fn.apply(void 0,r)]}],r[ROW_COUNT]=[1,M,[xr]],r[ROW_IDS]=[1,L,[xr]],r[HAS+ROW]=[2,z,[xr,Zr],function(r){return[vn.apply(void 0,r)]}],r[ROW]=[2,R,[xr,Zr]],r[CELL_IDS]=[2,V,[xr,Zr]],r[HAS+CELL]=[3,D,[xr,Zr,en],function(r){return[sn.apply(void 0,r)]}],r[CELL]=[3,H,[xr,Zr,en],function(r){return pairNew(tn.apply(void 0,r))}],r.InvalidCell=[3,P],r[HAS+VALUES]=[0,W,[],function(){return[pn()]}],r[VALUES]=[0,J],r[VALUE_IDS]=[0,Y],r[HAS+VALUE]=[1,q,[on],function(r){return[dn.apply(void 0,r)]}],r[VALUE]=[1,K,[on],function(r){return pairNew(un(r[0]))}],r.InvalidValue=[1,B],r),(function(r,n){var e=r[0],t=r[1],a=r[2],o=r[3];ve[ADD+n+LISTENER]=function(){var r=[];for(var n=0;n<arguments.length;n++){r[n]=arguments[n]}return Q(r[e],t[r[e+1]?1:0],e>0?slice(r,0,e):undefined,a,o)}}));return objFreeze(ve)};var store=createStore();store.delTables();store.delValues();console.log("[STORE] Data store initialized.");var safeJsonParse=function(r,n){try{return JSON.parse(r)}catch(r){return n||null}};var objectToRow=function(r){var n={};for(var e in r){if(typeof r[e]==="string"||typeof r[e]==="number"||typeof r[e]==="boolean"){n[e]=r[e]}else if(r[e]===null){n["__null__".concat(e)]=""}else if(Array.isArray(r[e])){n["__array__".concat(e)]=JSON.stringify(r[e])}else if(typeof r[e]==="object"){n["__object__".concat(e)]=JSON.stringify(r[e])}}return n};var rowToObject=function(r){var n={};for(var e in r){if(e.startsWith("__null__")){n[e.replace("__null__","")]=null}else if(typeof r[e]==="string"&&e.startsWith("__array__")){n[e.replace("__array__","")]=safeJsonParse(r[e])}else if(typeof r[e]==="string"&&e.startsWith("__object__")){n[e.replace("__object__","")]=safeJsonParse(r[e])}else{n[e]=r[e]}}return n};var Store={store:store,subscribe:function(r,n,e,t,a){if(store.hasRow(r,n)){a(rowToObject(store.getRow(r,n)))}var o=store.addRowListener(r,n,(function(){var e=store.getRow(r,n);a(rowToObject(e))}));if(!store.hasRow(r,n)||t){console.log("[STORE] Loading/reloading",{tableId:r,rowId:n});e().then((function(e){store.setRow(r,n,objectToRow(e))})).catch((function(e){console.error("[STORE] Error getting row",{tableId:r,rowId:n,forceReload:t},e)}))}return o},unsubscribe:function(r){store.delListener(r)},getTemplate:function(r,n){return __awaiter(this,arguments,void 0,(function(r,n,e){var t,a;if(e===void 0){e=false}return __generator(this,(function(o){switch(o.label){case 0:if(!e){if(!store.hasRow("templates",n)){return[2,null]}t=store.getRow("templates",n);return[2,rowToObject(t)]}return[4,getTemplate(r,n)];case 1:a=o.sent();console.log("[STORE] Reloading template",a);store.setRow("templates",n,objectToRow(a));return[2,a]}}))}))},updateTemplate:function(r,n){store.setRow("templates",r,objectToRow(n));return n},getEnvelope:function(r,n){return __awaiter(this,arguments,void 0,(function(r,n,e){var t,a;if(e===void 0){e=false}return __generator(this,(function(o){switch(o.label){case 0:if(!e){if(!store.hasRow("envelopes",n)){return[2,null]}t=store.getRow("envelopes",n);return[2,rowToObject(t)]}return[4,getTemplate(r,n)];case 1:a=o.sent();store.setRow("envelopes",n,objectToRow(a));return[2,a]}}))}))},updateEnvelope:function(r,n){store.setRow("envelopes",r,objectToRow(n));return n},getField:function(r,n,e,t){if(r==="template"){var a=store.getRow("templates",n);var o=rowToObject(a);var i=(o.fields||[]).find((function(r){return r.name===e}));var u=(o.roles||[]).map((function(r){return r.name}));var c=u.findIndex((function(r){return r===i.role_name}));return{index:Math.max(c,0),field:t||i}}else{var a=store.getRow("envelopes",n);var l=rowToObject(a);var f=(l.fields||[]).find((function(r){return r.name===e}));var u=(l.recipients||[]).map((function(r){return r.role_name}));var c=u.findIndex((function(r){return r===f.role_name}));return{index:c,field:t||f}}}};export{Store as S};
2
+ //# sourceMappingURL=Datastore-77cb8d9c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getTypeOf","thing","EMPTY_STRING","STRING","BOOLEAN","NUMBER","FUNCTION","TYPE","DEFAULT","LISTENER","ADD","HAS","IDS","TABLE","TABLES","TABLE_IDS","ROW","ROW_COUNT","ROW_IDS","CELL","CELL_IDS","VALUE","VALUES","VALUE_IDS","id","key","isFiniteNumber","isFinite","isInstanceOf","cls","isUndefined","undefined","ifNotUndefined","value","then","otherwise","isTypeStringOrBoolean","type","isFunction","isArray","Array","slice","arrayOrString","start","end","size","length","test","regex","subject","arrayHas","array","includes","arrayEvery","cb","every","arrayIsEqual","array1","array2","value1","index","arraySort","sorter","sort","arrayForEach","forEach","arrayMap","map","arrayReduce","initial","reduce","arrayPush","values","_i","arguments","push","apply","arrayShift","shift","object","Object","getPrototypeOf","obj","objEntries","entries","objFrozen","isFrozen","isObject","objPrototype","prototype","objIds","keys","objFreeze","freeze","objNew","fromEntries","objHas","objDel","objForEach","_a","objToArray","objMap","objSize","objIsEmpty","objValidate","validateChild","onInvalidObj","emptyIsValid","child","collSizeN","collSizer","coll","collValues","total","coll2","collSize","collSize2","collSize3","collSize4","collHas","keyOrValue","has","collIsEmpty","__spreadArray","collClear","clear","collForEach","collDel","delete","mapNew","Map","mapKeys","mapGet","get","mapForEach","mapMap","mapSet","set","mapEnsure","getDefaultValue","hadExistingValue","mapMatch","del","mapToObj","valueMapper","excludeMapValue","excludeObjValue","mapValue","objValue","mapToObj2","childMap","mapToObj3","mapClone","map2","mapClone2","mapClone3","visitTree","node","path","ensureLeaf","pruneLeaf","p","nodeOrLeaf","leaf","getCellOrValueType","cellOrValue","setOrDelCell","store","tableId","rowId","cellId","cell","delCell","setCell","setOrDelValue","valueId","delValue","setValue","setNew","entryOrEntries","Set","setAdd","add","INTEGER","getPoolFunctions","pool","nextId","reuse","getWildcardedLeaves","deepIdSet","leaves","deep","node2","getListenerFunctions","getThing","getId","releaseId","allListeners","addListener","listener","idSetNode","pathGetters","extraArgsGetter","callListeners","ids","extraArgs","delListener","idOrNulls","idSet","callListener","_b","callWithIds","call","id2","defaultSorter","sortKey1","sortKey2","pairNew","pairCollSize2","pair","func","pairNewMap","pairClone","pairIsEqual","entry1","entry2","jsonString","JSON","stringify","jsonParse","parse","jsonStringWithMap","_key","idsChanged","changedIds","addedOrRemoved","createStore","hasTablesSchema","hasValuesSchema","hadTables","hadValues","transactions","internalListeners","changedTableIds","changedTableCellIds","changedRowCount","changedRowIds","changedCellIds","changedCells","changedValueIds","changedValues","invalidCells","invalidValues","tablesSchemaMap","tablesSchemaRowCache","valuesSchemaMap","valuesDefaulted","valuesNonDefaulted","tablePoolFunctions","tableCellIds","tablesMap","valuesMap","hasTablesListeners","tablesListeners","tableIdsListeners","hasTableListeners","tableListeners","tableCellIdsListeners","hasTableCellListeners","rowCountListeners","rowIdsListeners","sortedRowIdsListeners","hasRowListeners","rowListeners","cellIdsListeners","hasCellListeners","cellListeners","invalidCellListeners","invalidValueListeners","hasValuesListeners","valuesListeners","valueIdsListeners","hasValueListeners","valueListeners","startTransactionListeners","finishTransactionListeners","delListenerImpl","callListenerImpl","validateTablesSchema","tableSchema","tableSchema2","validateCellOrValueSchema","validateValuesSchema","valuesSchema","schema","_child","validateContent","validateTables","tables","validateTable","cellInvalid","table","row","validateRow","skipDefaults","addDefaultsToRow","getValidatedCell","validCell","cellSchema","validateValues","addDefaultsToValues","getValidatedValue","validValue","valueInvalid","valueSchema","rowDefaulted","rowNonDefaulted","setValidTablesSchema","tablesSchema","_tablesSchema","tableSchemaMap","def","setValidValuesSchema","_valuesSchema","setOrDelTables","delTables","setTables","setValidContent","delValues","setValues","setValidTables","_tables","setValidTable","delValidTable","tableIdsChanged","tableMap","setValidRow","delValidRow","forceDel","rowIdsChanged","rowMap","setValidCell","delValidCell","cellIdsChanged","oldCell","cellChanged","setCellIntoDefaultRow","setOrDelValues","setValidValues","_valuesMap","setValidValue","delValidValue","valueIdsChanged","oldValue","valueChanged","getNewRowId","getOrCreateTable","defaultCell","delCell2","cellId2","defaultValue","cellIds","count","newCell","newValue","invalidCell","defaultedCell","invalidValue","defaultedValue","getCellChange","getCell","getValueChange","getValue","callInvalidCellListeners","mutator","rows","cells","callInvalidValueListeners","callIdsAndHasListenersIfChanged","idListeners","hasListeners","changedId","changed","callTabularListenersForChanges","hasTablesNow","hasTables","emptySortedRowIdListeners","emptyIdAndHasListeners","emptyOtherListeners","changes","changedCount","getRowCount","calledSortableTableIds_1","sortableCellIds_1","rowCellIds","tablesChanged_1","tableChanged","rowChanged","callValuesListenersForChanges","hasValuesNow","hasValues","valuesChanged_1","fluentTransaction","actions","args","transaction","getContent","getTables","getValues","getTableIds","getTable","getTableCellIds","getRowIds","getSortedRowIds","descending","offset","limit","cell1","cell2","getRow","getCellIds","getValueIds","hasTable","hasTableCell","hasRow","hasCell","hasValue","getTablesJson","getValuesJson","getJson","getTablesSchemaJson","getValuesSchemaJson","getSchemaJson","setContent","content","content2","setTable","tableId2","setRow","rowId2","addRow","reuseRowIds","setPartialRow","partialRow","table_1","setPartialValues","partialValues","valueId2","applyChanges","delTable","delRow","setTablesJson","tablesJson","setValuesJson","valuesJson","setJson","tablesAndValuesJson","setTablesSchema","setValuesSchema","delValuesSchema","setSchema","delTablesSchema","delSchema","doRollback","startTransaction","result","finishTransaction","getTransactionChanges","changedCell","changedValue","getTransactionLog","forEachTable","tableCallback","rowCallback","cellCallback","forEachTableCell","tableCellCallback","forEachRow","forEachCell","forEachValue","valueCallback","addSortedRowIdsListener","sortedRowIds","newSortedRowIds","addStartTransactionListener","addWillFinishTransactionListener","addDidFinishTransactionListener","listenerId","getListenerStats","tableIds","rowCount","rowIds","valueIds","setInternalListeners","preStartTransaction","preFinishTransaction","postFinishTransaction","cellChanged2","valueChanged2","isMergeable","InvalidCell","InvalidValue","listenable","argumentCount","console","log","safeJsonParse","val","fallback","e","objectToRow","concat","rowToObject","startsWith","replace","Store","subscribe","getter","forceReload","callback","addRowListener","catch","error","unsubscribe","getTemplate","endpoint_1","templateId_1","endpoint","templateId","reload","template","sent","updateTemplate","getEnvelope","envelopeId_1","envelopeId","envelope","updateEnvelope","getField","source","sourceId","fieldName","fieldOverride","field_1","fields","find","field","name","roleNames","roles","role","findIndex","role_name","Math","max","field_2","recipients","recipient"],"sources":["node_modules/tinybase/index.js","src/utils/Datastore.ts"],"sourcesContent":["const getTypeOf = (thing) => typeof thing;\nconst EMPTY_STRING = '';\nconst STRING = getTypeOf(EMPTY_STRING);\nconst BOOLEAN = getTypeOf(true);\nconst NUMBER = getTypeOf(0);\nconst FUNCTION = getTypeOf(getTypeOf);\nconst TYPE = 'type';\nconst DEFAULT = 'default';\nconst SUM = 'sum';\nconst AVG = 'avg';\nconst MIN = 'min';\nconst MAX = 'max';\nconst LISTENER = 'Listener';\nconst RESULT = 'Result';\nconst GET = 'get';\nconst SET = 'set';\nconst ADD = 'add';\nconst DEL = 'del';\nconst HAS = 'Has';\nconst IDS = 'Ids';\nconst TABLE = 'Table';\nconst TABLES = TABLE + 's';\nconst TABLE_IDS = TABLE + IDS;\nconst ROW = 'Row';\nconst ROW_COUNT = ROW + 'Count';\nconst ROW_IDS = ROW + IDS;\nconst SORTED_ROW_IDS = 'Sorted' + ROW + IDS;\nconst CELL = 'Cell';\nconst CELL_IDS = CELL + IDS;\nconst VALUE = 'Value';\nconst VALUES = VALUE + 's';\nconst VALUE_IDS = VALUE + IDS;\nconst TRANSACTION = 'Transaction';\nconst id = (key) => EMPTY_STRING + key;\nconst strStartsWith = (str, prefix) => str.startsWith(prefix);\nconst strEndsWith = (str, suffix) => str.endsWith(suffix);\nconst strSplit = (str, separator = EMPTY_STRING, limit) =>\n str.split(separator, limit);\n\nconst GLOBAL = globalThis;\nconst math = Math;\nconst mathMax = math.max;\nconst mathMin = math.min;\nconst mathFloor = math.floor;\nconst isFiniteNumber = isFinite;\nconst isInstanceOf = (thing, cls) => thing instanceof cls;\nconst isUndefined = (thing) => thing == undefined;\nconst ifNotUndefined = (value, then, otherwise) =>\n isUndefined(value) ? otherwise?.() : then(value);\nconst isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;\nconst isString = (thing) => getTypeOf(thing) == STRING;\nconst isFunction = (thing) => getTypeOf(thing) == FUNCTION;\nconst isArray = (thing) => Array.isArray(thing);\nconst slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);\nconst size = (arrayOrString) => arrayOrString.length;\nconst test = (regex, subject) => regex.test(subject);\nconst getUndefined = () => undefined;\n\nconst arrayHas = (array, value) => array.includes(value);\nconst arrayEvery = (array, cb) => array.every(cb);\nconst arrayIsEqual = (array1, array2) =>\n size(array1) === size(array2) &&\n arrayEvery(array1, (value1, index) => array2[index] === value1);\nconst arrayIsSorted = (array, sorter) =>\n arrayEvery(\n array,\n (value, index) => index == 0 || sorter(array[index - 1], value) <= 0,\n );\nconst arraySort = (array, sorter) => array.sort(sorter);\nconst arrayForEach = (array, cb) => array.forEach(cb);\nconst arrayMap = (array, cb) => array.map(cb);\nconst arraySum = (array) => arrayReduce(array, (i, j) => i + j, 0);\nconst arrayIsEmpty = (array) => size(array) == 0;\nconst arrayReduce = (array, cb, initial) => array.reduce(cb, initial);\nconst arrayClear = (array, to) => array.splice(0, to);\nconst arrayPush = (array, ...values) => array.push(...values);\nconst arrayPop = (array) => array.pop();\nconst arrayUnshift = (array, ...values) => array.unshift(...values);\nconst arrayShift = (array) => array.shift();\n\nconst object = Object;\nconst getPrototypeOf = (obj) => object.getPrototypeOf(obj);\nconst objEntries = object.entries;\nconst objFrozen = object.isFrozen;\nconst isObject = (obj) =>\n !isUndefined(obj) &&\n ifNotUndefined(\n getPrototypeOf(obj),\n (objPrototype) =>\n objPrototype == object.prototype ||\n isUndefined(getPrototypeOf(objPrototype)),\n\n /* istanbul ignore next */\n () => true,\n );\nconst objIds = object.keys;\nconst objFreeze = object.freeze;\nconst objNew = (entries = []) => object.fromEntries(entries);\nconst objHas = (obj, id) => id in obj;\nconst objDel = (obj, id) => {\n delete obj[id];\n return obj;\n};\nconst objForEach = (obj, cb) =>\n arrayForEach(objEntries(obj), ([id, value]) => cb(value, id));\nconst objToArray = (obj, cb) =>\n arrayMap(objEntries(obj), ([id, value]) => cb(value, id));\nconst objMap = (obj, cb) =>\n objNew(objToArray(obj, (value, id) => [id, cb(value, id)]));\nconst objSize = (obj) => size(objIds(obj));\nconst objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;\nconst objEnsure = (obj, id, getDefaultValue) => {\n if (!objHas(obj, id)) {\n obj[id] = getDefaultValue();\n }\n return obj[id];\n};\nconst objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {\n if (\n isUndefined(obj) ||\n !isObject(obj) ||\n (!emptyIsValid && objIsEmpty(obj)) ||\n objFrozen(obj)\n ) {\n onInvalidObj?.();\n return false;\n }\n objForEach(obj, (child, id) => {\n if (!validateChild(child, id)) {\n objDel(obj, id);\n }\n });\n return emptyIsValid ? true : !objIsEmpty(obj);\n};\n\nconst collSizeN = (collSizer) => (coll) =>\n arrayReduce(collValues(coll), (total, coll2) => total + collSizer(coll2), 0);\nconst collSize = (coll) => coll?.size ?? 0;\nconst collSize2 = collSizeN(collSize);\nconst collSize3 = collSizeN(collSize2);\nconst collSize4 = collSizeN(collSize3);\nconst collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;\nconst collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;\nconst collValues = (coll) => [...(coll?.values() ?? [])];\nconst collClear = (coll) => coll.clear();\nconst collForEach = (coll, cb) => coll?.forEach(cb);\nconst collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);\n\nconst mapNew = (entries) => new Map(entries);\nconst mapKeys = (map) => [...(map?.keys() ?? [])];\nconst mapGet = (map, key) => map?.get(key);\nconst mapForEach = (map, cb) =>\n collForEach(map, (value, key) => cb(key, value));\nconst mapMap = (coll, cb) =>\n arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));\nconst mapSet = (map, key, value) =>\n isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);\nconst mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {\n if (!collHas(map, key)) {\n mapSet(map, key, getDefaultValue());\n } else {\n hadExistingValue?.(mapGet(map, key));\n }\n return mapGet(map, key);\n};\nconst mapMatch = (map, obj, set, del = mapSet) => {\n objMap(obj, (value, id) => set(map, id, value));\n mapForEach(map, (id) => (objHas(obj, id) ? 0 : del(map, id)));\n return map;\n};\nconst mapToObj = (map, valueMapper, excludeMapValue, excludeObjValue) => {\n const obj = {};\n collForEach(map, (mapValue, id) => {\n if (!excludeMapValue?.(mapValue, id)) {\n const objValue = valueMapper ? valueMapper(mapValue, id) : mapValue;\n if (!excludeObjValue?.(objValue)) {\n obj[id] = objValue;\n }\n }\n });\n return obj;\n};\nconst mapToObj2 = (map, valueMapper, excludeMapValue) =>\n mapToObj(\n map,\n (childMap) => mapToObj(childMap, valueMapper, excludeMapValue),\n collIsEmpty,\n objIsEmpty,\n );\nconst mapToObj3 = (map, valueMapper, excludeMapValue) =>\n mapToObj(\n map,\n (childMap) => mapToObj2(childMap, valueMapper, excludeMapValue),\n collIsEmpty,\n objIsEmpty,\n );\nconst mapClone = (map, mapValue) => {\n const map2 = mapNew();\n collForEach(map, (value, key) => map2.set(key, mapValue?.(value) ?? value));\n return map2;\n};\nconst mapClone2 = (map) => mapClone(map, mapClone);\nconst mapClone3 = (map) => mapClone(map, mapClone2);\nconst visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>\n ifNotUndefined(\n (ensureLeaf ? mapEnsure : mapGet)(\n node,\n path[p],\n p > size(path) - 2 ? ensureLeaf : mapNew,\n ),\n (nodeOrLeaf) => {\n if (p > size(path) - 2) {\n if (pruneLeaf?.(nodeOrLeaf)) {\n mapSet(node, path[p]);\n }\n return nodeOrLeaf;\n }\n const leaf = visitTree(nodeOrLeaf, path, ensureLeaf, pruneLeaf, p + 1);\n if (collIsEmpty(nodeOrLeaf)) {\n mapSet(node, path[p]);\n }\n return leaf;\n },\n );\n\nconst getCellOrValueType = (cellOrValue) => {\n const type = getTypeOf(cellOrValue);\n return isTypeStringOrBoolean(type) ||\n (type == NUMBER && isFiniteNumber(cellOrValue))\n ? type\n : undefined;\n};\nconst isCellOrValueOrNullOrUndefined = (cellOrValue) =>\n isUndefined(cellOrValue) || !isUndefined(getCellOrValueType(cellOrValue));\nconst setOrDelCell = (store, tableId, rowId, cellId, cell) =>\n isUndefined(cell)\n ? store.delCell(tableId, rowId, cellId, true)\n : store.setCell(tableId, rowId, cellId, cell);\nconst setOrDelValue = (store, valueId, value) =>\n isUndefined(value) ? store.delValue(valueId) : store.setValue(valueId, value);\n\nconst setNew = (entryOrEntries) =>\n new Set(\n isArray(entryOrEntries) || isUndefined(entryOrEntries)\n ? entryOrEntries\n : [entryOrEntries],\n );\nconst setAdd = (set, value) => set?.add(value);\n\nconst getDefinableFunctions = (\n store,\n getDefaultThing,\n validateRowValue,\n addListener,\n callListeners,\n) => {\n const hasRow = store.hasRow;\n const tableIds = mapNew();\n const things = mapNew();\n const thingIdListeners = mapNew();\n const allRowValues = mapNew();\n const allSortKeys = mapNew();\n const storeListenerIds = mapNew();\n const getStore = () => store;\n const getThingIds = () => mapKeys(tableIds);\n const forEachThing = (cb) => mapForEach(things, cb);\n const hasThing = (id) => collHas(things, id);\n const getTableId = (id) => mapGet(tableIds, id);\n const getThing = (id) => mapGet(things, id);\n const setThing = (id, thing) => mapSet(things, id, thing);\n const addStoreListeners = (id, andCall, ...listenerIds) => {\n const set = mapEnsure(storeListenerIds, id, setNew);\n arrayForEach(\n listenerIds,\n (listenerId) =>\n setAdd(set, listenerId) && andCall && store.callListener(listenerId),\n );\n return listenerIds;\n };\n const delStoreListeners = (id, ...listenerIds) =>\n ifNotUndefined(mapGet(storeListenerIds, id), (allListenerIds) => {\n arrayForEach(\n arrayIsEmpty(listenerIds) ? collValues(allListenerIds) : listenerIds,\n (listenerId) => {\n store.delListener(listenerId);\n collDel(allListenerIds, listenerId);\n },\n );\n if (collIsEmpty(allListenerIds)) {\n mapSet(storeListenerIds, id);\n }\n });\n const setDefinition = (id, tableId) => {\n mapSet(tableIds, id, tableId);\n if (!collHas(things, id)) {\n mapSet(things, id, getDefaultThing());\n mapSet(allRowValues, id, mapNew());\n mapSet(allSortKeys, id, mapNew());\n callListeners(thingIdListeners);\n }\n };\n const setDefinitionAndListen = (\n id,\n tableId,\n onChanged,\n getRowValue,\n getSortKey,\n ) => {\n setDefinition(id, tableId);\n const changedRowValues = mapNew();\n const changedSortKeys = mapNew();\n const rowValues = mapGet(allRowValues, id);\n const sortKeys = mapGet(allSortKeys, id);\n const processRow = (rowId) => {\n const getCell = (cellId) => store.getCell(tableId, rowId, cellId);\n const oldRowValue = mapGet(rowValues, rowId);\n const newRowValue = hasRow(tableId, rowId)\n ? validateRowValue(getRowValue(getCell, rowId))\n : undefined;\n if (\n !(\n oldRowValue === newRowValue ||\n (isArray(oldRowValue) &&\n isArray(newRowValue) &&\n arrayIsEqual(oldRowValue, newRowValue))\n )\n ) {\n mapSet(changedRowValues, rowId, [oldRowValue, newRowValue]);\n }\n if (!isUndefined(getSortKey)) {\n const oldSortKey = mapGet(sortKeys, rowId);\n const newSortKey = hasRow(tableId, rowId)\n ? getSortKey(getCell, rowId)\n : undefined;\n if (oldSortKey != newSortKey) {\n mapSet(changedSortKeys, rowId, newSortKey);\n }\n }\n };\n const processTable = (force) => {\n onChanged(\n () => {\n collForEach(changedRowValues, ([, newRowValue], rowId) =>\n mapSet(rowValues, rowId, newRowValue),\n );\n collForEach(changedSortKeys, (newSortKey, rowId) =>\n mapSet(sortKeys, rowId, newSortKey),\n );\n },\n changedRowValues,\n changedSortKeys,\n rowValues,\n sortKeys,\n force,\n );\n collClear(changedRowValues);\n collClear(changedSortKeys);\n };\n mapForEach(rowValues, processRow);\n if (store.hasTable(tableId)) {\n arrayForEach(store.getRowIds(tableId), (rowId) => {\n if (!collHas(rowValues, rowId)) {\n processRow(rowId);\n }\n });\n }\n processTable(true);\n delStoreListeners(id);\n addStoreListeners(\n id,\n 0,\n store.addRowListener(tableId, null, (_store, _tableId, rowId) =>\n processRow(rowId),\n ),\n store.addTableListener(tableId, () => processTable()),\n );\n };\n const delDefinition = (id) => {\n mapSet(tableIds, id);\n mapSet(things, id);\n mapSet(allRowValues, id);\n mapSet(allSortKeys, id);\n delStoreListeners(id);\n callListeners(thingIdListeners);\n };\n const addThingIdsListener = (listener) =>\n addListener(listener, thingIdListeners);\n const destroy = () => mapForEach(storeListenerIds, delDefinition);\n return [\n getStore,\n getThingIds,\n forEachThing,\n hasThing,\n getTableId,\n getThing,\n setThing,\n setDefinition,\n setDefinitionAndListen,\n delDefinition,\n addThingIdsListener,\n destroy,\n addStoreListeners,\n delStoreListeners,\n ];\n};\nconst getRowCellFunction = (getRowCell, defaultCellValue) =>\n isString(getRowCell)\n ? (getCell) => getCell(getRowCell)\n : (getRowCell ?? (() => defaultCellValue ?? EMPTY_STRING));\nconst getCreateFunction = (getFunction, initFunction) => {\n const thingsByStore = /* @__PURE__ */ new WeakMap();\n return (store) => {\n if (!thingsByStore.has(store)) {\n thingsByStore.set(store, getFunction(store));\n }\n const thing = thingsByStore.get(store);\n initFunction?.(thing);\n return thing;\n };\n};\n\nconst INTEGER = /^\\d+$/;\nconst getPoolFunctions = () => {\n const pool = [];\n let nextId = 0;\n return [\n (reuse) => (reuse ? arrayShift(pool) : null) ?? EMPTY_STRING + nextId++,\n (id) => {\n if (test(INTEGER, id) && size(pool) < 1e3) {\n arrayPush(pool, id);\n }\n },\n ];\n};\n\nconst getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {\n const leaves = [];\n const deep = (node, p) =>\n p == size(path)\n ? arrayPush(leaves, node)\n : path[p] === null\n ? collForEach(node, (node2) => deep(node2, p + 1))\n : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));\n deep(deepIdSet, 0);\n return leaves;\n};\nconst getListenerFunctions = (getThing) => {\n let thing;\n const [getId, releaseId] = getPoolFunctions();\n const allListeners = mapNew();\n const addListener = (\n listener,\n idSetNode,\n path,\n pathGetters = [],\n extraArgsGetter = () => [],\n ) => {\n thing ??= getThing();\n const id = getId(1);\n mapSet(allListeners, id, [\n listener,\n idSetNode,\n path,\n pathGetters,\n extraArgsGetter,\n ]);\n setAdd(visitTree(idSetNode, path ?? [EMPTY_STRING], setNew), id);\n return id;\n };\n const callListeners = (idSetNode, ids, ...extraArgs) =>\n arrayForEach(getWildcardedLeaves(idSetNode, ids), (set) =>\n collForEach(set, (id) =>\n mapGet(allListeners, id)[0](thing, ...(ids ?? []), ...extraArgs),\n ),\n );\n const delListener = (id) =>\n ifNotUndefined(mapGet(allListeners, id), ([, idSetNode, idOrNulls]) => {\n visitTree(idSetNode, idOrNulls ?? [EMPTY_STRING], undefined, (idSet) => {\n collDel(idSet, id);\n return collIsEmpty(idSet) ? 1 : 0;\n });\n mapSet(allListeners, id);\n releaseId(id);\n return idOrNulls;\n });\n const callListener = (id) =>\n ifNotUndefined(\n mapGet(allListeners, id),\n ([listener, , path = [], pathGetters, extraArgsGetter]) => {\n const callWithIds = (...ids) => {\n const index = size(ids);\n if (index == size(path)) {\n listener(thing, ...ids, ...extraArgsGetter(ids));\n } else if (isUndefined(path[index])) {\n arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>\n callWithIds(...ids, id2),\n );\n } else {\n callWithIds(...ids, path[index]);\n }\n };\n callWithIds();\n },\n );\n return [addListener, callListeners, delListener, callListener];\n};\n\nconst createCheckpoints = getCreateFunction(\n (store) => {\n let backwardIdsSize = 100;\n let currentId;\n let cellsDelta = mapNew();\n let valuesDelta = mapNew();\n let listening = 1;\n let nextCheckpointId;\n let checkpointsChanged;\n const checkpointIdsListeners = mapNew();\n const checkpointListeners = mapNew();\n const [addListener, callListeners, delListenerImpl] = getListenerFunctions(\n () => checkpoints,\n );\n const deltas = mapNew();\n const labels = mapNew();\n const backwardIds = [];\n const forwardIds = [];\n const updateStore = (oldOrNew, checkpointId) => {\n listening = 0;\n store.transaction(() => {\n const [cellsDelta2, valuesDelta2] = mapGet(deltas, checkpointId);\n collForEach(cellsDelta2, (table, tableId) =>\n collForEach(table, (row, rowId) =>\n collForEach(row, (oldNew, cellId) =>\n setOrDelCell(store, tableId, rowId, cellId, oldNew[oldOrNew]),\n ),\n ),\n );\n collForEach(valuesDelta2, (oldNew, valueId) =>\n setOrDelValue(store, valueId, oldNew[oldOrNew]),\n );\n });\n listening = 1;\n };\n const clearCheckpointId = (checkpointId) => {\n mapSet(deltas, checkpointId);\n mapSet(labels, checkpointId);\n callListeners(checkpointListeners, [checkpointId]);\n };\n const clearCheckpointIds = (checkpointIds, to) =>\n arrayForEach(\n arrayClear(checkpointIds, to ?? size(checkpointIds)),\n clearCheckpointId,\n );\n const trimBackwardsIds = () =>\n clearCheckpointIds(backwardIds, size(backwardIds) - backwardIdsSize);\n const storeChanged = () =>\n ifNotUndefined(currentId, () => {\n arrayPush(backwardIds, currentId);\n trimBackwardsIds();\n clearCheckpointIds(forwardIds);\n currentId = undefined;\n checkpointsChanged = 1;\n });\n const storeUnchanged = () => {\n currentId = arrayPop(backwardIds);\n checkpointsChanged = 1;\n };\n let cellListenerId;\n let valueListenerId;\n const addCheckpointImpl = (label = EMPTY_STRING) => {\n if (isUndefined(currentId)) {\n currentId = EMPTY_STRING + nextCheckpointId++;\n mapSet(deltas, currentId, [cellsDelta, valuesDelta]);\n setCheckpoint(currentId, label);\n cellsDelta = mapNew();\n valuesDelta = mapNew();\n checkpointsChanged = 1;\n }\n return currentId;\n };\n const goBackwardImpl = () => {\n if (!arrayIsEmpty(backwardIds)) {\n arrayUnshift(forwardIds, addCheckpointImpl());\n updateStore(0, currentId);\n currentId = arrayPop(backwardIds);\n checkpointsChanged = 1;\n }\n };\n const goForwardImpl = () => {\n if (!arrayIsEmpty(forwardIds)) {\n arrayPush(backwardIds, currentId);\n currentId = arrayShift(forwardIds);\n updateStore(1, currentId);\n checkpointsChanged = 1;\n }\n };\n const callListenersIfChanged = () => {\n if (checkpointsChanged) {\n callListeners(checkpointIdsListeners);\n checkpointsChanged = 0;\n }\n };\n const setSize = (size2) => {\n backwardIdsSize = size2;\n trimBackwardsIds();\n return checkpoints;\n };\n const addCheckpoint = (label) => {\n const id = addCheckpointImpl(label);\n callListenersIfChanged();\n return id;\n };\n const setCheckpoint = (checkpointId, label) => {\n if (\n hasCheckpoint(checkpointId) &&\n mapGet(labels, checkpointId) !== label\n ) {\n mapSet(labels, checkpointId, label);\n callListeners(checkpointListeners, [checkpointId]);\n }\n return checkpoints;\n };\n const getStore = () => store;\n const getCheckpointIds = () => [\n [...backwardIds],\n currentId,\n [...forwardIds],\n ];\n const forEachCheckpoint = (checkpointCallback) =>\n mapForEach(labels, checkpointCallback);\n const hasCheckpoint = (checkpointId) => collHas(deltas, checkpointId);\n const getCheckpoint = (checkpointId) => mapGet(labels, checkpointId);\n const goBackward = () => {\n goBackwardImpl();\n callListenersIfChanged();\n return checkpoints;\n };\n const goForward = () => {\n goForwardImpl();\n callListenersIfChanged();\n return checkpoints;\n };\n const goTo = (checkpointId) => {\n const action = arrayHas(backwardIds, checkpointId)\n ? goBackwardImpl\n : arrayHas(forwardIds, checkpointId)\n ? goForwardImpl\n : null;\n while (!isUndefined(action) && checkpointId != currentId) {\n action();\n }\n callListenersIfChanged();\n return checkpoints;\n };\n const addCheckpointIdsListener = (listener) =>\n addListener(listener, checkpointIdsListeners);\n const addCheckpointListener = (checkpointId, listener) =>\n addListener(listener, checkpointListeners, [checkpointId]);\n const delListener = (listenerId) => {\n delListenerImpl(listenerId);\n return checkpoints;\n };\n const clear = () => {\n clearCheckpointIds(backwardIds);\n clearCheckpointIds(forwardIds);\n if (!isUndefined(currentId)) {\n clearCheckpointId(currentId);\n }\n currentId = undefined;\n nextCheckpointId = 0;\n addCheckpoint();\n return checkpoints;\n };\n const clearForward = () => {\n if (!arrayIsEmpty(forwardIds)) {\n clearCheckpointIds(forwardIds);\n callListeners(checkpointIdsListeners);\n }\n return checkpoints;\n };\n const destroy = () => {\n store.delListener(cellListenerId);\n store.delListener(valueListenerId);\n };\n const getListenerStats = () => ({\n checkpointIds: collSize2(checkpointIdsListeners),\n checkpoint: collSize2(checkpointListeners),\n });\n const _registerListeners = () => {\n cellListenerId = store.addCellListener(\n null,\n null,\n null,\n (_store, tableId, rowId, cellId, newCell, oldCell) => {\n if (listening) {\n storeChanged();\n const table = mapEnsure(cellsDelta, tableId, mapNew);\n const row = mapEnsure(table, rowId, mapNew);\n const oldNew = mapEnsure(row, cellId, () => [oldCell, undefined]);\n oldNew[1] = newCell;\n if (\n oldNew[0] === newCell &&\n collIsEmpty(mapSet(row, cellId)) &&\n collIsEmpty(mapSet(table, rowId)) &&\n collIsEmpty(mapSet(cellsDelta, tableId))\n ) {\n storeUnchanged();\n }\n callListenersIfChanged();\n }\n },\n );\n valueListenerId = store.addValueListener(\n null,\n (_store, valueId, newValue, oldValue) => {\n if (listening) {\n storeChanged();\n const oldNew = mapEnsure(valuesDelta, valueId, () => [\n oldValue,\n undefined,\n ]);\n oldNew[1] = newValue;\n if (\n oldNew[0] === newValue &&\n collIsEmpty(mapSet(valuesDelta, valueId))\n ) {\n storeUnchanged();\n }\n callListenersIfChanged();\n }\n },\n );\n };\n const checkpoints = {\n setSize,\n addCheckpoint,\n setCheckpoint,\n getStore,\n getCheckpointIds,\n forEachCheckpoint,\n hasCheckpoint,\n getCheckpoint,\n goBackward,\n goForward,\n goTo,\n addCheckpointIdsListener,\n addCheckpointListener,\n delListener,\n clear,\n clearForward,\n destroy,\n getListenerStats,\n _registerListeners,\n };\n return objFreeze(checkpoints.clear());\n },\n (checkpoints) => checkpoints._registerListeners(),\n);\n\nconst MASK6 = 63;\nconst ENCODE = /* @__PURE__ */ strSplit(\n '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',\n);\nconst DECODE = /* @__PURE__ */ mapNew(\n /* @__PURE__ */ arrayMap(ENCODE, (char, index) => [char, index]),\n);\nconst encode = (num) => ENCODE[num & MASK6];\nconst decode = (str, pos) => mapGet(DECODE, str[pos]) ?? 0;\n\nconst getRandomValues = GLOBAL.crypto\n ? (array) => GLOBAL.crypto.getRandomValues(array)\n : /* istanbul ignore next */\n (array) => arrayMap(array, () => mathFloor(math.random() * 256));\nconst defaultSorter = (sortKey1, sortKey2) =>\n (sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;\nconst getUniqueId = (length = 16) =>\n arrayReduce(\n getRandomValues(new Uint8Array(length)),\n (uniqueId, number) => uniqueId + encode(number),\n '',\n );\n\nconst createIndexes = getCreateFunction((store) => {\n const sliceIdsListeners = mapNew();\n const sliceRowIdsListeners = mapNew();\n const [addListener, callListeners, delListenerImpl] = getListenerFunctions(\n () => indexes,\n );\n const [\n getStore,\n getIndexIds,\n forEachIndexImpl,\n hasIndex,\n getTableId,\n getIndex,\n setIndex,\n ,\n setDefinitionAndListen,\n delDefinition,\n addIndexIdsListener,\n destroy,\n ] = getDefinableFunctions(\n store,\n mapNew,\n (value) =>\n isUndefined(value)\n ? EMPTY_STRING\n : isArray(value)\n ? arrayMap(value, id)\n : id(value),\n addListener,\n callListeners,\n );\n const hasSlice = (indexId, sliceId) => collHas(getIndex(indexId), sliceId);\n const setIndexDefinition = (\n indexId,\n tableId,\n getSliceIdOrIds,\n getSortKey,\n sliceIdSorter,\n rowIdSorter = defaultSorter,\n ) => {\n const sliceIdArraySorter = isUndefined(sliceIdSorter)\n ? undefined\n : ([id1], [id2]) => sliceIdSorter(id1, id2);\n setDefinitionAndListen(\n indexId,\n tableId,\n (change, changedSliceIds, changedSortKeys, sliceIds, sortKeys, force) => {\n let sliceIdsChanged = 0;\n const changedSlices = setNew();\n const unsortedSlices = setNew();\n const index = getIndex(indexId);\n collForEach(\n changedSliceIds,\n ([oldSliceIdOrIds, newSliceIdOrIds], rowId) => {\n const oldSliceIds = setNew(oldSliceIdOrIds);\n const newSliceIds = setNew(newSliceIdOrIds);\n collForEach(oldSliceIds, (oldSliceId) =>\n collDel(newSliceIds, oldSliceId)\n ? collDel(oldSliceIds, oldSliceId)\n : 0,\n );\n collForEach(oldSliceIds, (oldSliceId) => {\n setAdd(changedSlices, oldSliceId);\n ifNotUndefined(mapGet(index, oldSliceId), (oldSlice) => {\n collDel(oldSlice, rowId);\n if (collIsEmpty(oldSlice)) {\n mapSet(index, oldSliceId);\n sliceIdsChanged = 1;\n }\n });\n });\n collForEach(newSliceIds, (newSliceId) => {\n setAdd(changedSlices, newSliceId);\n if (!collHas(index, newSliceId)) {\n mapSet(index, newSliceId, setNew());\n sliceIdsChanged = 1;\n }\n setAdd(mapGet(index, newSliceId), rowId);\n if (!isUndefined(getSortKey)) {\n setAdd(unsortedSlices, newSliceId);\n }\n });\n },\n );\n change();\n if (!collIsEmpty(sortKeys)) {\n if (force) {\n mapForEach(index, (sliceId) => setAdd(unsortedSlices, sliceId));\n } else {\n mapForEach(changedSortKeys, (rowId) =>\n ifNotUndefined(mapGet(sliceIds, rowId), (sliceId) =>\n setAdd(unsortedSlices, sliceId),\n ),\n );\n }\n collForEach(unsortedSlices, (sliceId) => {\n const rowIdArraySorter = (rowId1, rowId2) =>\n rowIdSorter(\n mapGet(sortKeys, rowId1),\n mapGet(sortKeys, rowId2),\n sliceId,\n );\n const sliceArray = [...mapGet(index, sliceId)];\n if (!arrayIsSorted(sliceArray, rowIdArraySorter)) {\n mapSet(\n index,\n sliceId,\n setNew(arraySort(sliceArray, rowIdArraySorter)),\n );\n setAdd(changedSlices, sliceId);\n }\n });\n }\n if (sliceIdsChanged || force) {\n if (!isUndefined(sliceIdArraySorter)) {\n const indexArray = [...index];\n if (!arrayIsSorted(indexArray, sliceIdArraySorter)) {\n setIndex(\n indexId,\n mapNew(arraySort(indexArray, sliceIdArraySorter)),\n );\n sliceIdsChanged = 1;\n }\n }\n }\n if (sliceIdsChanged) {\n callListeners(sliceIdsListeners, [indexId]);\n }\n collForEach(changedSlices, (sliceId) =>\n callListeners(sliceRowIdsListeners, [indexId, sliceId]),\n );\n },\n getRowCellFunction(getSliceIdOrIds),\n ifNotUndefined(getSortKey, getRowCellFunction),\n );\n return indexes;\n };\n const forEachIndex = (indexCallback) =>\n forEachIndexImpl((indexId, slices) =>\n indexCallback(indexId, (sliceCallback) =>\n forEachSliceImpl(indexId, sliceCallback, slices),\n ),\n );\n const forEachSlice = (indexId, sliceCallback) =>\n forEachSliceImpl(indexId, sliceCallback, getIndex(indexId));\n const forEachSliceImpl = (indexId, sliceCallback, slices) => {\n const tableId = getTableId(indexId);\n collForEach(slices, (rowIds, sliceId) =>\n sliceCallback(sliceId, (rowCallback) =>\n collForEach(rowIds, (rowId) =>\n rowCallback(rowId, (cellCallback) =>\n store.forEachCell(tableId, rowId, cellCallback),\n ),\n ),\n ),\n );\n };\n const delIndexDefinition = (indexId) => {\n delDefinition(indexId);\n return indexes;\n };\n const getSliceIds = (indexId) => mapKeys(getIndex(indexId));\n const getSliceRowIds = (indexId, sliceId) =>\n collValues(mapGet(getIndex(indexId), sliceId));\n const addSliceIdsListener = (indexId, listener) =>\n addListener(listener, sliceIdsListeners, [indexId]);\n const addSliceRowIdsListener = (indexId, sliceId, listener) =>\n addListener(listener, sliceRowIdsListeners, [indexId, sliceId]);\n const delListener = (listenerId) => {\n delListenerImpl(listenerId);\n return indexes;\n };\n const getListenerStats = () => ({\n sliceIds: collSize2(sliceIdsListeners),\n sliceRowIds: collSize3(sliceRowIdsListeners),\n });\n const indexes = {\n setIndexDefinition,\n delIndexDefinition,\n getStore,\n getIndexIds,\n forEachIndex,\n forEachSlice,\n hasIndex,\n hasSlice,\n getTableId,\n getSliceIds,\n getSliceRowIds,\n addIndexIdsListener,\n addSliceIdsListener,\n addSliceRowIdsListener,\n delListener,\n destroy,\n getListenerStats,\n };\n return objFreeze(indexes);\n});\n\nconst numericAggregators = /* @__PURE__ */ mapNew([\n [\n AVG,\n [\n (numbers, length) => arraySum(numbers) / length,\n (metric, add, length) => metric + (add - metric) / (length + 1),\n (metric, remove, length) => metric + (metric - remove) / (length - 1),\n (metric, add, remove, length) => metric + (add - remove) / length,\n ],\n ],\n [\n MAX,\n [\n (numbers) => mathMax(...numbers),\n (metric, add) => mathMax(add, metric),\n (metric, remove) => (remove == metric ? undefined : metric),\n (metric, add, remove) =>\n remove == metric ? undefined : mathMax(add, metric),\n ],\n ],\n [\n MIN,\n [\n (numbers) => mathMin(...numbers),\n (metric, add) => mathMin(add, metric),\n (metric, remove) => (remove == metric ? undefined : metric),\n (metric, add, remove) =>\n remove == metric ? undefined : mathMin(add, metric),\n ],\n ],\n [\n SUM,\n [\n (numbers) => arraySum(numbers),\n (metric, add) => metric + add,\n (metric, remove) => metric - remove,\n (metric, add, remove) => metric - remove + add,\n ],\n ],\n]);\nconst getAggregateValue = (\n aggregateValue,\n oldLength,\n newValues,\n changedValues,\n aggregators,\n force = false,\n) => {\n if (collIsEmpty(newValues)) {\n return undefined;\n }\n const [aggregate, aggregateAdd, aggregateRemove, aggregateReplace] =\n aggregators;\n force ||= isUndefined(aggregateValue);\n collForEach(changedValues, ([oldValue, newValue]) => {\n if (!force) {\n aggregateValue = isUndefined(oldValue)\n ? aggregateAdd?.(aggregateValue, newValue, oldLength++)\n : isUndefined(newValue)\n ? aggregateRemove?.(aggregateValue, oldValue, oldLength--)\n : aggregateReplace?.(aggregateValue, newValue, oldValue, oldLength);\n force ||= isUndefined(aggregateValue);\n }\n });\n return force\n ? aggregate(collValues(newValues), collSize(newValues))\n : aggregateValue;\n};\n\nconst createMetrics = getCreateFunction((store) => {\n const metricListeners = mapNew();\n const [addListener, callListeners, delListenerImpl] = getListenerFunctions(\n () => metrics,\n );\n const [\n getStore,\n getMetricIds,\n forEachMetric,\n hasMetric,\n getTableId,\n getMetric,\n setMetric,\n ,\n setDefinitionAndListen,\n delDefinition,\n addMetricIdsListener,\n destroy,\n ] = getDefinableFunctions(\n store,\n getUndefined,\n (value) =>\n isNaN(value) ||\n isUndefined(value) ||\n value === true ||\n value === false ||\n value === EMPTY_STRING\n ? undefined\n : value * 1,\n addListener,\n callListeners,\n );\n const setMetricDefinition = (\n metricId,\n tableId,\n aggregate,\n getNumber,\n aggregateAdd,\n aggregateRemove,\n aggregateReplace,\n ) => {\n const aggregators = isFunction(aggregate)\n ? [aggregate, aggregateAdd, aggregateRemove, aggregateReplace]\n : (mapGet(numericAggregators, aggregate) ??\n mapGet(numericAggregators, SUM));\n setDefinitionAndListen(\n metricId,\n tableId,\n (change, changedNumbers, _changedSortKeys, numbers, _sortKeys, force) => {\n const oldMetric = getMetric(metricId);\n const oldLength = collSize(numbers);\n force ||= isUndefined(oldMetric);\n change();\n let newMetric = getAggregateValue(\n oldMetric,\n oldLength,\n numbers,\n changedNumbers,\n aggregators,\n force,\n );\n if (!isFiniteNumber(newMetric)) {\n newMetric = undefined;\n }\n if (newMetric != oldMetric) {\n setMetric(metricId, newMetric);\n callListeners(metricListeners, [metricId], newMetric, oldMetric);\n }\n },\n getRowCellFunction(getNumber, 1),\n );\n return metrics;\n };\n const delMetricDefinition = (metricId) => {\n delDefinition(metricId);\n return metrics;\n };\n const addMetricListener = (metricId, listener) =>\n addListener(listener, metricListeners, [metricId]);\n const delListener = (listenerId) => {\n delListenerImpl(listenerId);\n return metrics;\n };\n const getListenerStats = () => ({\n metric: collSize2(metricListeners),\n });\n const metrics = {\n setMetricDefinition,\n delMetricDefinition,\n getStore,\n getMetricIds,\n forEachMetric,\n hasMetric,\n getTableId,\n getMetric,\n addMetricIdsListener,\n addMetricListener,\n delListener,\n destroy,\n getListenerStats,\n };\n return objFreeze(metrics);\n});\n\nconst createQueries = getCreateFunction((store) => {\n const createStore = store.createStore;\n const preStore = createStore();\n const resultStore = createStore();\n const preStoreListenerIds = mapNew();\n const {\n addListener,\n callListeners,\n delListener: delListenerImpl,\n } = resultStore;\n const [\n getStore,\n getQueryIds,\n forEachQuery,\n hasQuery,\n getTableId,\n ,\n ,\n setDefinition,\n ,\n delDefinition,\n addQueryIdsListenerImpl,\n destroy,\n addStoreListeners,\n delStoreListeners,\n ] = getDefinableFunctions(\n store,\n () => true,\n getUndefined,\n addListener,\n callListeners,\n );\n const addPreStoreListener = (preStore2, queryId, ...listenerIds) =>\n arrayForEach(listenerIds, (listenerId) =>\n setAdd(\n mapEnsure(\n mapEnsure(preStoreListenerIds, queryId, mapNew),\n preStore2,\n setNew,\n ),\n listenerId,\n ),\n );\n const resetPreStores = (queryId) => {\n ifNotUndefined(\n mapGet(preStoreListenerIds, queryId),\n (queryPreStoreListenerIds) => {\n mapForEach(queryPreStoreListenerIds, (preStore2, listenerIds) =>\n collForEach(listenerIds, (listenerId) =>\n preStore2.delListener(listenerId),\n ),\n );\n collClear(queryPreStoreListenerIds);\n },\n );\n arrayForEach([resultStore, preStore], (store2) => store2.delTable(queryId));\n };\n const synchronizeTransactions = (queryId, fromStore, toStore) =>\n addPreStoreListener(\n fromStore,\n queryId,\n fromStore.addStartTransactionListener(toStore.startTransaction),\n fromStore.addDidFinishTransactionListener(() =>\n toStore.finishTransaction(),\n ),\n );\n const setQueryDefinition = (queryId, tableId, build) => {\n setDefinition(queryId, tableId);\n resetPreStores(queryId);\n const selectEntries = [];\n const joinEntries = [[null, [tableId, null, null, [], mapNew()]]];\n const wheres = [];\n const groupEntries = [];\n const havings = [];\n const select = (arg1, arg2) => {\n const selectEntry = isFunction(arg1)\n ? [size(selectEntries) + EMPTY_STRING, arg1]\n : [\n isUndefined(arg2) ? arg1 : arg2,\n (getTableCell) => getTableCell(arg1, arg2),\n ];\n arrayPush(selectEntries, selectEntry);\n return {as: (selectedCellId) => (selectEntry[0] = selectedCellId)};\n };\n const join = (joinedTableId, arg1, arg2) => {\n const fromIntermediateJoinedTableId =\n isUndefined(arg2) || isFunction(arg1) ? null : arg1;\n const onArg = isUndefined(fromIntermediateJoinedTableId) ? arg1 : arg2;\n const joinEntry = [\n joinedTableId,\n [\n joinedTableId,\n fromIntermediateJoinedTableId,\n isFunction(onArg) ? onArg : (getCell) => getCell(onArg),\n [],\n mapNew(),\n ],\n ];\n arrayPush(joinEntries, joinEntry);\n return {as: (joinedTableId2) => (joinEntry[0] = joinedTableId2)};\n };\n const where = (arg1, arg2, arg3) =>\n arrayPush(\n wheres,\n isFunction(arg1)\n ? arg1\n : isUndefined(arg3)\n ? (getTableCell) => getTableCell(arg1) === arg2\n : (getTableCell) => getTableCell(arg1, arg2) === arg3,\n );\n const group = (\n selectedCellId,\n aggregate,\n aggregateAdd,\n aggregateRemove,\n aggregateReplace,\n ) => {\n const groupEntry = [\n selectedCellId,\n [\n selectedCellId,\n isFunction(aggregate)\n ? [aggregate, aggregateAdd, aggregateRemove, aggregateReplace]\n : (mapGet(numericAggregators, aggregate) ?? [\n (_cells, length) => length,\n ]),\n ],\n ];\n arrayPush(groupEntries, groupEntry);\n return {as: (groupedCellId) => (groupEntry[0] = groupedCellId)};\n };\n const having = (arg1, arg2) =>\n arrayPush(\n havings,\n isFunction(arg1)\n ? arg1\n : (getSelectedOrGroupedCell) =>\n getSelectedOrGroupedCell(arg1) === arg2,\n );\n build({select, join, where, group, having});\n const selects = mapNew(selectEntries);\n if (collIsEmpty(selects)) {\n return queries;\n }\n const joins = mapNew(joinEntries);\n mapForEach(joins, (asTableId, [, fromAsTableId]) =>\n ifNotUndefined(mapGet(joins, fromAsTableId), ({3: toAsTableIds}) =>\n isUndefined(asTableId) ? 0 : arrayPush(toAsTableIds, asTableId),\n ),\n );\n const groups = mapNew(groupEntries);\n let selectJoinWhereStore = preStore;\n if (collIsEmpty(groups) && arrayIsEmpty(havings)) {\n selectJoinWhereStore = resultStore;\n } else {\n synchronizeTransactions(queryId, selectJoinWhereStore, resultStore);\n const groupedSelectedCellIds = mapNew();\n mapForEach(groups, (groupedCellId, [selectedCellId, aggregators]) =>\n setAdd(mapEnsure(groupedSelectedCellIds, selectedCellId, setNew), [\n groupedCellId,\n aggregators,\n ]),\n );\n const groupBySelectedCellIds = setNew();\n mapForEach(selects, (selectedCellId) =>\n collHas(groupedSelectedCellIds, selectedCellId)\n ? 0\n : setAdd(groupBySelectedCellIds, selectedCellId),\n );\n const tree = mapNew();\n const writeGroupRow = (\n leaf,\n changedGroupedSelectedCells,\n selectedRowId,\n forceRemove,\n ) =>\n ifNotUndefined(\n leaf,\n ([selectedCells, selectedRowIds, groupRowId, groupRow]) => {\n mapForEach(\n changedGroupedSelectedCells,\n (selectedCellId, [newCell]) => {\n const selectedCell = mapEnsure(\n selectedCells,\n selectedCellId,\n mapNew,\n );\n const oldLeafCell = mapGet(selectedCell, selectedRowId);\n const newLeafCell = forceRemove ? undefined : newCell;\n if (oldLeafCell !== newLeafCell) {\n const oldNewSet = setNew([[oldLeafCell, newLeafCell]]);\n const oldLength = collSize(selectedCell);\n mapSet(selectedCell, selectedRowId, newLeafCell);\n collForEach(\n mapGet(groupedSelectedCellIds, selectedCellId),\n ([groupedCellId, aggregators]) => {\n const aggregateValue = getAggregateValue(\n groupRow[groupedCellId],\n oldLength,\n selectedCell,\n oldNewSet,\n aggregators,\n );\n groupRow[groupedCellId] = isUndefined(\n getCellOrValueType(aggregateValue),\n )\n ? null\n : aggregateValue;\n },\n );\n }\n },\n );\n if (\n collIsEmpty(selectedRowIds) ||\n !arrayEvery(havings, (having2) =>\n having2((cellId) => groupRow[cellId]),\n )\n ) {\n resultStore.delRow(queryId, groupRowId);\n } else if (isUndefined(groupRowId)) {\n leaf[2] = resultStore.addRow(queryId, groupRow);\n } else {\n resultStore.setRow(queryId, groupRowId, groupRow);\n }\n },\n );\n addPreStoreListener(\n selectJoinWhereStore,\n queryId,\n selectJoinWhereStore.addRowListener(\n queryId,\n null,\n (_store, _tableId, selectedRowId, getCellChange) => {\n const oldPath = [];\n const newPath = [];\n const changedGroupedSelectedCells = mapNew();\n const rowExists = selectJoinWhereStore.hasRow(\n queryId,\n selectedRowId,\n );\n let changedLeaf = !rowExists;\n collForEach(groupBySelectedCellIds, (selectedCellId) => {\n const [changed, oldCell, newCell] = getCellChange(\n queryId,\n selectedRowId,\n selectedCellId,\n );\n arrayPush(oldPath, oldCell);\n arrayPush(newPath, newCell);\n changedLeaf ||= changed;\n });\n mapForEach(groupedSelectedCellIds, (selectedCellId) => {\n const [changed, , newCell] = getCellChange(\n queryId,\n selectedRowId,\n selectedCellId,\n );\n if (changedLeaf || changed) {\n mapSet(changedGroupedSelectedCells, selectedCellId, [newCell]);\n }\n });\n if (changedLeaf) {\n writeGroupRow(\n visitTree(tree, oldPath, undefined, ([, selectedRowIds]) => {\n collDel(selectedRowIds, selectedRowId);\n return collIsEmpty(selectedRowIds);\n }),\n changedGroupedSelectedCells,\n selectedRowId,\n 1,\n );\n }\n if (rowExists) {\n writeGroupRow(\n visitTree(\n tree,\n newPath,\n () => {\n const groupRow = {};\n collForEach(\n groupBySelectedCellIds,\n (selectedCellId) =>\n (groupRow[selectedCellId] =\n selectJoinWhereStore.getCell(\n queryId,\n selectedRowId,\n selectedCellId,\n )),\n );\n return [mapNew(), setNew(), undefined, groupRow];\n },\n ([, selectedRowIds]) => {\n setAdd(selectedRowIds, selectedRowId);\n },\n ),\n changedGroupedSelectedCells,\n selectedRowId,\n );\n }\n },\n ),\n );\n }\n synchronizeTransactions(queryId, store, selectJoinWhereStore);\n const writeSelectRow = (rootRowId) => {\n const getTableCell = (arg1, arg2) =>\n store.getCell(\n ...(isUndefined(arg2)\n ? [tableId, rootRowId, arg1]\n : arg1 === tableId\n ? [tableId, rootRowId, arg2]\n : [\n mapGet(joins, arg1)?.[0],\n mapGet(mapGet(joins, arg1)?.[4], rootRowId)?.[0],\n arg2,\n ]),\n );\n selectJoinWhereStore.transaction(() =>\n arrayEvery(wheres, (where2) => where2(getTableCell))\n ? mapForEach(selects, (asCellId, tableCellGetter) =>\n setOrDelCell(\n selectJoinWhereStore,\n queryId,\n rootRowId,\n asCellId,\n tableCellGetter(getTableCell, rootRowId),\n ),\n )\n : selectJoinWhereStore.delRow(queryId, rootRowId),\n );\n };\n const listenToTable = (rootRowId, tableId2, rowId, joinedTableIds2) => {\n const getCell = (cellId) => store.getCell(tableId2, rowId, cellId);\n arrayForEach(joinedTableIds2, (remoteAsTableId) => {\n const [realJoinedTableId, , on, nextJoinedTableIds, remoteIdPair] =\n mapGet(joins, remoteAsTableId);\n const remoteRowId = on?.(getCell, rootRowId);\n const [previousRemoteRowId, previousRemoteListenerId] =\n mapGet(remoteIdPair, rootRowId) ?? [];\n if (remoteRowId != previousRemoteRowId) {\n if (!isUndefined(previousRemoteListenerId)) {\n delStoreListeners(queryId, previousRemoteListenerId);\n }\n mapSet(\n remoteIdPair,\n rootRowId,\n isUndefined(remoteRowId)\n ? null\n : [\n remoteRowId,\n ...addStoreListeners(\n queryId,\n 1,\n store.addRowListener(realJoinedTableId, remoteRowId, () =>\n listenToTable(\n rootRowId,\n realJoinedTableId,\n remoteRowId,\n nextJoinedTableIds,\n ),\n ),\n ),\n ],\n );\n }\n });\n writeSelectRow(rootRowId);\n };\n const {3: joinedTableIds} = mapGet(joins, null);\n selectJoinWhereStore.transaction(() =>\n addStoreListeners(\n queryId,\n 1,\n store.addRowListener(tableId, null, (_store, _tableId, rootRowId) => {\n if (store.hasRow(tableId, rootRowId)) {\n listenToTable(rootRowId, tableId, rootRowId, joinedTableIds);\n } else {\n selectJoinWhereStore.delRow(queryId, rootRowId);\n collForEach(joins, ({4: idsByRootRowId}) =>\n ifNotUndefined(\n mapGet(idsByRootRowId, rootRowId),\n ([, listenerId]) => {\n delStoreListeners(queryId, listenerId);\n mapSet(idsByRootRowId, rootRowId);\n },\n ),\n );\n }\n }),\n ),\n );\n return queries;\n };\n const delQueryDefinition = (queryId) => {\n resetPreStores(queryId);\n delDefinition(queryId);\n return queries;\n };\n const addQueryIdsListener = (listener) =>\n addQueryIdsListenerImpl(() => listener(queries));\n const delListener = (listenerId) => {\n delListenerImpl(listenerId);\n return queries;\n };\n const getListenerStats = () => {\n const {\n tables: _1,\n tableIds: _2,\n transaction: _3,\n ...stats\n } = resultStore.getListenerStats();\n return stats;\n };\n const queries = {\n setQueryDefinition,\n delQueryDefinition,\n getStore,\n getQueryIds,\n forEachQuery,\n hasQuery,\n getTableId,\n addQueryIdsListener,\n delListener,\n destroy,\n getListenerStats,\n };\n objMap(\n {\n [TABLE]: [1, 1],\n [TABLE + CELL_IDS]: [0, 1],\n [ROW_COUNT]: [0, 1],\n [ROW_IDS]: [0, 1],\n [SORTED_ROW_IDS]: [0, 5],\n [ROW]: [1, 2],\n [CELL_IDS]: [0, 2],\n [CELL]: [1, 3],\n },\n ([hasAndForEach, argumentCount], gettable) => {\n arrayForEach(\n hasAndForEach ? [GET, 'has', 'forEach'] : [GET],\n (prefix) =>\n (queries[prefix + RESULT + gettable] = (...args) =>\n resultStore[prefix + gettable](...args)),\n );\n queries[ADD + RESULT + gettable + LISTENER] = (...args) =>\n resultStore[ADD + gettable + LISTENER](\n ...slice(args, 0, argumentCount),\n (_store, ...listenerArgs) =>\n args[argumentCount](queries, ...listenerArgs),\n true,\n );\n },\n );\n return objFreeze(queries);\n});\n\nconst createRelationships = getCreateFunction((store) => {\n const remoteTableIds = mapNew();\n const remoteRowIdListeners = mapNew();\n const localRowIdsListeners = mapNew();\n const linkedRowIdsListeners = mapNew();\n const [addListener, callListeners, delListenerImpl] = getListenerFunctions(\n () => relationships,\n );\n const [\n getStore,\n getRelationshipIds,\n forEachRelationshipImpl,\n hasRelationship,\n getLocalTableId,\n getRelationship,\n ,\n ,\n setDefinitionAndListen,\n delDefinition,\n addRelationshipIdsListener,\n destroy,\n ] = getDefinableFunctions(\n store,\n () => [mapNew(), mapNew(), mapNew(), mapNew()],\n (value) => (isUndefined(value) ? undefined : value + EMPTY_STRING),\n addListener,\n callListeners,\n );\n const getLinkedRowIdsCache = (relationshipId, firstRowId, skipCache) =>\n ifNotUndefined(\n getRelationship(relationshipId),\n ([remoteRows, , linkedRowsCache]) => {\n if (!collHas(linkedRowsCache, firstRowId)) {\n const linkedRows = setNew();\n if (\n getLocalTableId(relationshipId) != getRemoteTableId(relationshipId)\n ) {\n setAdd(linkedRows, firstRowId);\n } else {\n let rowId = firstRowId;\n while (!isUndefined(rowId) && !collHas(linkedRows, rowId)) {\n setAdd(linkedRows, rowId);\n rowId = mapGet(remoteRows, rowId);\n }\n }\n if (skipCache) {\n return linkedRows;\n }\n mapSet(linkedRowsCache, firstRowId, linkedRows);\n }\n return mapGet(linkedRowsCache, firstRowId);\n },\n );\n const delLinkedRowIdsCache = (relationshipId, firstRowId) =>\n ifNotUndefined(getRelationship(relationshipId), ([, , linkedRowsCache]) =>\n mapSet(linkedRowsCache, firstRowId),\n );\n const setRelationshipDefinition = (\n relationshipId,\n localTableId,\n remoteTableId,\n getRemoteRowId2,\n ) => {\n mapSet(remoteTableIds, relationshipId, remoteTableId);\n setDefinitionAndListen(\n relationshipId,\n localTableId,\n (change, changedRemoteRowIds) => {\n const changedLocalRows = setNew();\n const changedRemoteRows = setNew();\n const changedLinkedRows = setNew();\n const [localRows, remoteRows] = getRelationship(relationshipId);\n collForEach(\n changedRemoteRowIds,\n ([oldRemoteRowId, newRemoteRowId], localRowId) => {\n if (!isUndefined(oldRemoteRowId)) {\n setAdd(changedRemoteRows, oldRemoteRowId);\n ifNotUndefined(\n mapGet(remoteRows, oldRemoteRowId),\n (oldRemoteRow) => {\n collDel(oldRemoteRow, localRowId);\n if (collIsEmpty(oldRemoteRow)) {\n mapSet(remoteRows, oldRemoteRowId);\n }\n },\n );\n }\n if (!isUndefined(newRemoteRowId)) {\n setAdd(changedRemoteRows, newRemoteRowId);\n if (!collHas(remoteRows, newRemoteRowId)) {\n mapSet(remoteRows, newRemoteRowId, setNew());\n }\n setAdd(mapGet(remoteRows, newRemoteRowId), localRowId);\n }\n setAdd(changedLocalRows, localRowId);\n mapSet(localRows, localRowId, newRemoteRowId);\n mapForEach(\n mapGet(linkedRowIdsListeners, relationshipId),\n (firstRowId) => {\n if (\n collHas(\n getLinkedRowIdsCache(relationshipId, firstRowId),\n localRowId,\n )\n ) {\n setAdd(changedLinkedRows, firstRowId);\n }\n },\n );\n },\n );\n change();\n collForEach(changedLocalRows, (localRowId) =>\n callListeners(remoteRowIdListeners, [relationshipId, localRowId]),\n );\n collForEach(changedRemoteRows, (remoteRowId) =>\n callListeners(localRowIdsListeners, [relationshipId, remoteRowId]),\n );\n collForEach(changedLinkedRows, (firstRowId) => {\n delLinkedRowIdsCache(relationshipId, firstRowId);\n callListeners(linkedRowIdsListeners, [relationshipId, firstRowId]);\n });\n },\n getRowCellFunction(getRemoteRowId2),\n );\n return relationships;\n };\n const forEachRelationship = (relationshipCallback) =>\n forEachRelationshipImpl((relationshipId) =>\n relationshipCallback(relationshipId, (rowCallback) =>\n store.forEachRow(getLocalTableId(relationshipId), rowCallback),\n ),\n );\n const delRelationshipDefinition = (relationshipId) => {\n mapSet(remoteTableIds, relationshipId);\n delDefinition(relationshipId);\n return relationships;\n };\n const getRemoteTableId = (relationshipId) =>\n mapGet(remoteTableIds, relationshipId);\n const getRemoteRowId = (relationshipId, localRowId) =>\n mapGet(getRelationship(relationshipId)?.[0], localRowId);\n const getLocalRowIds = (relationshipId, remoteRowId) =>\n collValues(mapGet(getRelationship(relationshipId)?.[1], remoteRowId));\n const getLinkedRowIds = (relationshipId, firstRowId) =>\n isUndefined(getRelationship(relationshipId))\n ? [firstRowId]\n : collValues(getLinkedRowIdsCache(relationshipId, firstRowId, true));\n const addRemoteRowIdListener = (relationshipId, localRowId, listener) =>\n addListener(listener, remoteRowIdListeners, [relationshipId, localRowId]);\n const addLocalRowIdsListener = (relationshipId, remoteRowId, listener) =>\n addListener(listener, localRowIdsListeners, [relationshipId, remoteRowId]);\n const addLinkedRowIdsListener = (relationshipId, firstRowId, listener) => {\n getLinkedRowIdsCache(relationshipId, firstRowId);\n return addListener(listener, linkedRowIdsListeners, [\n relationshipId,\n firstRowId,\n ]);\n };\n const delListener = (listenerId) => {\n delLinkedRowIdsCache(...(delListenerImpl(listenerId) ?? []));\n return relationships;\n };\n const getListenerStats = () => ({\n remoteRowId: collSize3(remoteRowIdListeners),\n localRowIds: collSize3(localRowIdsListeners),\n linkedRowIds: collSize3(linkedRowIdsListeners),\n });\n const relationships = {\n setRelationshipDefinition,\n delRelationshipDefinition,\n getStore,\n getRelationshipIds,\n forEachRelationship,\n hasRelationship,\n getLocalTableId,\n getRemoteTableId,\n getRemoteRowId,\n getLocalRowIds,\n getLinkedRowIds,\n addRelationshipIdsListener,\n addRemoteRowIdListener,\n addLocalRowIdsListener,\n addLinkedRowIdsListener,\n delListener,\n destroy,\n getListenerStats,\n };\n return objFreeze(relationships);\n});\n\nconst textEncoder = /* @__PURE__ */ new GLOBAL.TextEncoder();\nconst getHash = (value) => {\n let hash = 2166136261;\n arrayForEach(textEncoder.encode(value), (char) => {\n hash ^= char;\n hash +=\n (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n });\n return hash >>> 0;\n};\n\nconst stampClone = ([value, time]) => stampNew(value, time);\nconst stampCloneWithHash = ([value, time, hash]) => [value, time, hash];\nconst stampNew = (value, time) => (time ? [value, time] : [value]);\nconst stampNewWithHash = (value, time, hash) => [value, time, hash];\nconst getStampHash = (stamp) => stamp[2];\nconst hashIdAndHash = (id, hash) => getHash(id + ':' + hash);\nconst replaceTimeHash = (oldTime, newTime) =>\n newTime > oldTime ? (oldTime ? getHash(oldTime) : 0) ^ getHash(newTime) : 0;\nconst getLatestTime = (time1, time2) =>\n /* istanbul ignore next */\n ((time1 ?? '') > (time2 ?? '') ? time1 : time2) ?? '';\nconst stampUpdate = (stamp, time, hash) => {\n if (time > stamp[1]) {\n stamp[1] = time;\n }\n stamp[2] = hash >>> 0;\n};\nconst stampNewObj = (time = EMPTY_STRING) => stampNew(objNew(), time);\nconst stampNewMap = (time = EMPTY_STRING) => [mapNew(), time, 0];\nconst stampMapToObjWithHash = (\n [map, time, hash],\n mapper = stampCloneWithHash,\n) => [mapToObj(map, mapper), time, hash];\nconst stampMapToObjWithoutHash = ([map, time], mapper = stampClone) =>\n stampNew(mapToObj(map, mapper), time);\nconst stampValidate = (stamp, validateThing) =>\n isArray(stamp) &&\n size(stamp) == 3 &&\n isString(stamp[1]) &&\n getTypeOf(stamp[2]) == NUMBER &&\n isFiniteNumber(stamp[2]) &&\n validateThing(stamp[0]);\n\nconst pairNew = (value) => [value, value];\nconst pairCollSize2 = (pair, func = collSize2) => func(pair[0]) + func(pair[1]);\nconst pairNewMap = () => [mapNew(), mapNew()];\nconst pairClone = (array) => [...array];\nconst pairIsEqual = ([entry1, entry2]) => entry1 === entry2;\n\nconst jsonString = JSON.stringify;\nconst jsonParse = JSON.parse;\nconst jsonStringWithMap = (obj) =>\n jsonString(obj, (_key, value) =>\n isInstanceOf(value, Map) ? object.fromEntries([...value]) : value,\n );\n\nconst idsChanged = (changedIds, id2, addedOrRemoved) =>\n mapSet(\n changedIds,\n id2,\n mapGet(changedIds, id2) == -addedOrRemoved ? undefined : addedOrRemoved,\n );\nconst createStore = () => {\n let hasTablesSchema;\n let hasValuesSchema;\n let hadTables = false;\n let hadValues = false;\n let transactions = 0;\n let internalListeners = [];\n const changedTableIds = mapNew();\n const changedTableCellIds = mapNew();\n const changedRowCount = mapNew();\n const changedRowIds = mapNew();\n const changedCellIds = mapNew();\n const changedCells = mapNew();\n const changedValueIds = mapNew();\n const changedValues = mapNew();\n const invalidCells = mapNew();\n const invalidValues = mapNew();\n const tablesSchemaMap = mapNew();\n const tablesSchemaRowCache = mapNew();\n const valuesSchemaMap = mapNew();\n const valuesDefaulted = mapNew();\n const valuesNonDefaulted = setNew();\n const tablePoolFunctions = mapNew();\n const tableCellIds = mapNew();\n const tablesMap = mapNew();\n const valuesMap = mapNew();\n const hasTablesListeners = pairNewMap();\n const tablesListeners = pairNewMap();\n const tableIdsListeners = pairNewMap();\n const hasTableListeners = pairNewMap();\n const tableListeners = pairNewMap();\n const tableCellIdsListeners = pairNewMap();\n const hasTableCellListeners = pairNewMap();\n const rowCountListeners = pairNewMap();\n const rowIdsListeners = pairNewMap();\n const sortedRowIdsListeners = pairNewMap();\n const hasRowListeners = pairNewMap();\n const rowListeners = pairNewMap();\n const cellIdsListeners = pairNewMap();\n const hasCellListeners = pairNewMap();\n const cellListeners = pairNewMap();\n const invalidCellListeners = pairNewMap();\n const invalidValueListeners = pairNewMap();\n const hasValuesListeners = pairNewMap();\n const valuesListeners = pairNewMap();\n const valueIdsListeners = pairNewMap();\n const hasValueListeners = pairNewMap();\n const valueListeners = pairNewMap();\n const startTransactionListeners = mapNew();\n const finishTransactionListeners = pairNewMap();\n const [addListener, callListeners, delListenerImpl, callListenerImpl] =\n getListenerFunctions(() => store);\n const validateTablesSchema = (tableSchema) =>\n objValidate(tableSchema, (tableSchema2) =>\n objValidate(tableSchema2, validateCellOrValueSchema),\n );\n const validateValuesSchema = (valuesSchema) =>\n objValidate(valuesSchema, validateCellOrValueSchema);\n const validateCellOrValueSchema = (schema) => {\n if (!objValidate(schema, (_child, id2) => arrayHas([TYPE, DEFAULT], id2))) {\n return false;\n }\n const type = schema[TYPE];\n if (!isTypeStringOrBoolean(type) && type != NUMBER) {\n return false;\n }\n if (getCellOrValueType(schema[DEFAULT]) != type) {\n objDel(schema, DEFAULT);\n }\n return true;\n };\n const validateContent = isArray;\n const validateTables = (tables) =>\n objValidate(tables, validateTable, cellInvalid);\n const validateTable = (table, tableId) =>\n (!hasTablesSchema ||\n collHas(tablesSchemaMap, tableId) ||\n /* istanbul ignore next */\n cellInvalid(tableId)) &&\n objValidate(\n table,\n (row, rowId) => validateRow(tableId, rowId, row),\n () => cellInvalid(tableId),\n );\n const validateRow = (tableId, rowId, row, skipDefaults) =>\n objValidate(\n skipDefaults ? row : addDefaultsToRow(row, tableId, rowId),\n (cell, cellId) =>\n ifNotUndefined(\n getValidatedCell(tableId, rowId, cellId, cell),\n (validCell) => {\n row[cellId] = validCell;\n return true;\n },\n () => false,\n ),\n () => cellInvalid(tableId, rowId),\n );\n const getValidatedCell = (tableId, rowId, cellId, cell) =>\n hasTablesSchema\n ? ifNotUndefined(\n mapGet(mapGet(tablesSchemaMap, tableId), cellId),\n (cellSchema) =>\n getCellOrValueType(cell) != cellSchema[TYPE]\n ? cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])\n : cell,\n () => cellInvalid(tableId, rowId, cellId, cell),\n )\n : isUndefined(getCellOrValueType(cell))\n ? cellInvalid(tableId, rowId, cellId, cell)\n : cell;\n const validateValues = (values, skipDefaults) =>\n objValidate(\n skipDefaults ? values : addDefaultsToValues(values),\n (value, valueId) =>\n ifNotUndefined(\n getValidatedValue(valueId, value),\n (validValue) => {\n values[valueId] = validValue;\n return true;\n },\n () => false,\n ),\n () => valueInvalid(),\n );\n const getValidatedValue = (valueId, value) =>\n hasValuesSchema\n ? ifNotUndefined(\n mapGet(valuesSchemaMap, valueId),\n (valueSchema) =>\n getCellOrValueType(value) != valueSchema[TYPE]\n ? valueInvalid(valueId, value, valueSchema[DEFAULT])\n : value,\n () => valueInvalid(valueId, value),\n )\n : isUndefined(getCellOrValueType(value))\n ? valueInvalid(valueId, value)\n : value;\n const addDefaultsToRow = (row, tableId, rowId) => {\n ifNotUndefined(\n mapGet(tablesSchemaRowCache, tableId),\n ([rowDefaulted, rowNonDefaulted]) => {\n collForEach(rowDefaulted, (cell, cellId) => {\n if (!objHas(row, cellId)) {\n row[cellId] = cell;\n }\n });\n collForEach(rowNonDefaulted, (cellId) => {\n if (!objHas(row, cellId)) {\n cellInvalid(tableId, rowId, cellId);\n }\n });\n },\n );\n return row;\n };\n const addDefaultsToValues = (values) => {\n if (hasValuesSchema) {\n collForEach(valuesDefaulted, (value, valueId) => {\n if (!objHas(values, valueId)) {\n values[valueId] = value;\n }\n });\n collForEach(valuesNonDefaulted, (valueId) => {\n if (!objHas(values, valueId)) {\n valueInvalid(valueId);\n }\n });\n }\n return values;\n };\n const setValidTablesSchema = (tablesSchema) =>\n mapMatch(\n tablesSchemaMap,\n tablesSchema,\n (_tablesSchema, tableId, tableSchema) => {\n const rowDefaulted = mapNew();\n const rowNonDefaulted = setNew();\n mapMatch(\n mapEnsure(tablesSchemaMap, tableId, mapNew),\n tableSchema,\n (tableSchemaMap, cellId, cellSchema) => {\n mapSet(tableSchemaMap, cellId, cellSchema);\n ifNotUndefined(\n cellSchema[DEFAULT],\n (def) => mapSet(rowDefaulted, cellId, def),\n () => setAdd(rowNonDefaulted, cellId),\n );\n },\n );\n mapSet(tablesSchemaRowCache, tableId, [rowDefaulted, rowNonDefaulted]);\n },\n (_tablesSchema, tableId) => {\n mapSet(tablesSchemaMap, tableId);\n mapSet(tablesSchemaRowCache, tableId);\n },\n );\n const setValidValuesSchema = (valuesSchema) =>\n mapMatch(\n valuesSchemaMap,\n valuesSchema,\n (_valuesSchema, valueId, valueSchema) => {\n mapSet(valuesSchemaMap, valueId, valueSchema);\n ifNotUndefined(\n valueSchema[DEFAULT],\n (def) => mapSet(valuesDefaulted, valueId, def),\n () => setAdd(valuesNonDefaulted, valueId),\n );\n },\n (_valuesSchema, valueId) => {\n mapSet(valuesSchemaMap, valueId);\n mapSet(valuesDefaulted, valueId);\n collDel(valuesNonDefaulted, valueId);\n },\n );\n const setOrDelTables = (tables) =>\n objIsEmpty(tables) ? delTables() : setTables(tables);\n const setValidContent = ([tables, values]) => {\n (objIsEmpty(tables) ? delTables : setTables)(tables);\n (objIsEmpty(values) ? delValues : setValues)(values);\n };\n const setValidTables = (tables) =>\n mapMatch(\n tablesMap,\n tables,\n (_tables, tableId, table) => setValidTable(tableId, table),\n (_tables, tableId) => delValidTable(tableId),\n );\n const setValidTable = (tableId, table) =>\n mapMatch(\n mapEnsure(tablesMap, tableId, () => {\n tableIdsChanged(tableId, 1);\n mapSet(tablePoolFunctions, tableId, getPoolFunctions());\n mapSet(tableCellIds, tableId, mapNew());\n return mapNew();\n }),\n table,\n (tableMap, rowId, row) => setValidRow(tableId, tableMap, rowId, row),\n (tableMap, rowId) => delValidRow(tableId, tableMap, rowId),\n );\n const setValidRow = (tableId, tableMap, rowId, row, forceDel) =>\n mapMatch(\n mapEnsure(tableMap, rowId, () => {\n rowIdsChanged(tableId, rowId, 1);\n return mapNew();\n }),\n row,\n (rowMap, cellId, cell) =>\n setValidCell(tableId, rowId, rowMap, cellId, cell),\n (rowMap, cellId) =>\n delValidCell(tableId, tableMap, rowId, rowMap, cellId, forceDel),\n );\n const setValidCell = (tableId, rowId, rowMap, cellId, cell) => {\n if (!collHas(rowMap, cellId)) {\n cellIdsChanged(tableId, rowId, cellId, 1);\n }\n const oldCell = mapGet(rowMap, cellId);\n if (cell !== oldCell) {\n cellChanged(tableId, rowId, cellId, oldCell, cell);\n mapSet(rowMap, cellId, cell);\n }\n };\n const setCellIntoDefaultRow = (tableId, tableMap, rowId, cellId, validCell) =>\n ifNotUndefined(\n mapGet(tableMap, rowId),\n (rowMap) => setValidCell(tableId, rowId, rowMap, cellId, validCell),\n () =>\n setValidRow(\n tableId,\n tableMap,\n rowId,\n addDefaultsToRow({[cellId]: validCell}, tableId, rowId),\n ),\n );\n const setOrDelValues = (values) =>\n objIsEmpty(values) ? delValues() : setValues(values);\n const setValidValues = (values) =>\n mapMatch(\n valuesMap,\n values,\n (_valuesMap, valueId, value) => setValidValue(valueId, value),\n (_valuesMap, valueId) => delValidValue(valueId),\n );\n const setValidValue = (valueId, value) => {\n if (!collHas(valuesMap, valueId)) {\n valueIdsChanged(valueId, 1);\n }\n const oldValue = mapGet(valuesMap, valueId);\n if (value !== oldValue) {\n valueChanged(valueId, oldValue, value);\n mapSet(valuesMap, valueId, value);\n }\n };\n const getNewRowId = (tableId, reuse) => {\n const [getId] = mapGet(tablePoolFunctions, tableId);\n let rowId;\n do {\n rowId = getId(reuse);\n } while (collHas(mapGet(tablesMap, tableId), rowId));\n return rowId;\n };\n const getOrCreateTable = (tableId) =>\n mapGet(tablesMap, tableId) ?? setValidTable(tableId, {});\n const delValidTable = (tableId) => setValidTable(tableId, {});\n const delValidRow = (tableId, tableMap, rowId) => {\n const [, releaseId] = mapGet(tablePoolFunctions, tableId);\n releaseId(rowId);\n setValidRow(tableId, tableMap, rowId, {}, true);\n };\n const delValidCell = (tableId, table, rowId, row, cellId, forceDel) => {\n const defaultCell = mapGet(\n mapGet(tablesSchemaRowCache, tableId)?.[0],\n cellId,\n );\n if (!isUndefined(defaultCell) && !forceDel) {\n return setValidCell(tableId, rowId, row, cellId, defaultCell);\n }\n const delCell2 = (cellId2) => {\n cellChanged(tableId, rowId, cellId2, mapGet(row, cellId2));\n cellIdsChanged(tableId, rowId, cellId2, -1);\n mapSet(row, cellId2);\n };\n if (isUndefined(defaultCell)) {\n delCell2(cellId);\n } else {\n mapForEach(row, delCell2);\n }\n if (collIsEmpty(row)) {\n rowIdsChanged(tableId, rowId, -1);\n if (collIsEmpty(mapSet(table, rowId))) {\n tableIdsChanged(tableId, -1);\n mapSet(tablesMap, tableId);\n mapSet(tablePoolFunctions, tableId);\n mapSet(tableCellIds, tableId);\n }\n }\n };\n const delValidValue = (valueId) => {\n const defaultValue = mapGet(valuesDefaulted, valueId);\n if (!isUndefined(defaultValue)) {\n return setValidValue(valueId, defaultValue);\n }\n valueChanged(valueId, mapGet(valuesMap, valueId));\n valueIdsChanged(valueId, -1);\n mapSet(valuesMap, valueId);\n };\n const tableIdsChanged = (tableId, addedOrRemoved) =>\n idsChanged(changedTableIds, tableId, addedOrRemoved);\n const rowIdsChanged = (tableId, rowId, addedOrRemoved) =>\n idsChanged(\n mapEnsure(changedRowIds, tableId, mapNew),\n rowId,\n addedOrRemoved,\n ) &&\n mapSet(\n changedRowCount,\n tableId,\n mapEnsure(changedRowCount, tableId, () => 0) + addedOrRemoved,\n );\n const cellIdsChanged = (tableId, rowId, cellId, addedOrRemoved) => {\n const cellIds = mapGet(tableCellIds, tableId);\n const count = mapGet(cellIds, cellId) ?? 0;\n if (\n (count == 0 && addedOrRemoved == 1) ||\n (count == 1 && addedOrRemoved == -1)\n ) {\n idsChanged(\n mapEnsure(changedTableCellIds, tableId, mapNew),\n cellId,\n addedOrRemoved,\n );\n }\n mapSet(\n cellIds,\n cellId,\n count != -addedOrRemoved ? count + addedOrRemoved : null,\n );\n idsChanged(\n mapEnsure(mapEnsure(changedCellIds, tableId, mapNew), rowId, mapNew),\n cellId,\n addedOrRemoved,\n );\n };\n const cellChanged = (tableId, rowId, cellId, oldCell, newCell) => {\n mapEnsure(\n mapEnsure(mapEnsure(changedCells, tableId, mapNew), rowId, mapNew),\n cellId,\n () => [oldCell, 0],\n )[1] = newCell;\n internalListeners[3]?.(tableId, rowId, cellId, newCell);\n };\n const valueIdsChanged = (valueId, addedOrRemoved) =>\n idsChanged(changedValueIds, valueId, addedOrRemoved);\n const valueChanged = (valueId, oldValue, newValue) => {\n mapEnsure(changedValues, valueId, () => [oldValue, 0])[1] = newValue;\n internalListeners[4]?.(valueId, newValue);\n };\n const cellInvalid = (tableId, rowId, cellId, invalidCell, defaultedCell) => {\n arrayPush(\n mapEnsure(\n mapEnsure(mapEnsure(invalidCells, tableId, mapNew), rowId, mapNew),\n cellId,\n () => [],\n ),\n invalidCell,\n );\n return defaultedCell;\n };\n const valueInvalid = (valueId, invalidValue, defaultedValue) => {\n arrayPush(\n mapEnsure(invalidValues, valueId, () => []),\n invalidValue,\n );\n return defaultedValue;\n };\n const getCellChange = (tableId, rowId, cellId) =>\n ifNotUndefined(\n mapGet(mapGet(mapGet(changedCells, tableId), rowId), cellId),\n ([oldCell, newCell]) => [true, oldCell, newCell],\n () => [false, ...pairNew(getCell(tableId, rowId, cellId))],\n );\n const getValueChange = (valueId) =>\n ifNotUndefined(\n mapGet(changedValues, valueId),\n ([oldValue, newValue]) => [true, oldValue, newValue],\n () => [false, ...pairNew(getValue(valueId))],\n );\n const callInvalidCellListeners = (mutator) =>\n !collIsEmpty(invalidCells) && !collIsEmpty(invalidCellListeners[mutator])\n ? collForEach(\n mutator ? mapClone3(invalidCells) : invalidCells,\n (rows, tableId) =>\n collForEach(rows, (cells, rowId) =>\n collForEach(cells, (invalidCell, cellId) =>\n callListeners(\n invalidCellListeners[mutator],\n [tableId, rowId, cellId],\n invalidCell,\n ),\n ),\n ),\n )\n : 0;\n const callInvalidValueListeners = (mutator) =>\n !collIsEmpty(invalidValues) && !collIsEmpty(invalidValueListeners[mutator])\n ? collForEach(\n mutator ? mapClone(invalidValues) : invalidValues,\n (invalidValue, valueId) =>\n callListeners(\n invalidValueListeners[mutator],\n [valueId],\n invalidValue,\n ),\n )\n : 0;\n const callIdsAndHasListenersIfChanged = (\n changedIds,\n idListeners,\n hasListeners,\n ids,\n ) => {\n if (!collIsEmpty(changedIds)) {\n callListeners(idListeners, ids, () => mapToObj(changedIds));\n mapForEach(changedIds, (changedId, changed) =>\n callListeners(hasListeners, [...(ids ?? []), changedId], changed == 1),\n );\n return 1;\n }\n };\n const callTabularListenersForChanges = (mutator) => {\n const hasTablesNow = hasTables();\n if (hasTablesNow != hadTables) {\n callListeners(hasTablesListeners[mutator], undefined, hasTablesNow);\n }\n const emptySortedRowIdListeners = collIsEmpty(\n sortedRowIdsListeners[mutator],\n );\n const emptyIdAndHasListeners =\n collIsEmpty(cellIdsListeners[mutator]) &&\n collIsEmpty(hasCellListeners[mutator]) &&\n collIsEmpty(rowIdsListeners[mutator]) &&\n collIsEmpty(hasRowListeners[mutator]) &&\n collIsEmpty(tableCellIdsListeners[mutator]) &&\n collIsEmpty(hasTableCellListeners[mutator]) &&\n collIsEmpty(rowCountListeners[mutator]) &&\n emptySortedRowIdListeners &&\n collIsEmpty(tableIdsListeners[mutator]) &&\n collIsEmpty(hasTableListeners[mutator]);\n const emptyOtherListeners =\n collIsEmpty(cellListeners[mutator]) &&\n collIsEmpty(rowListeners[mutator]) &&\n collIsEmpty(tableListeners[mutator]) &&\n collIsEmpty(tablesListeners[mutator]);\n if (!emptyIdAndHasListeners || !emptyOtherListeners) {\n const changes = mutator\n ? [\n mapClone(changedTableIds),\n mapClone2(changedTableCellIds),\n mapClone(changedRowCount),\n mapClone2(changedRowIds),\n mapClone3(changedCellIds),\n mapClone3(changedCells),\n ]\n : [\n changedTableIds,\n changedTableCellIds,\n changedRowCount,\n changedRowIds,\n changedCellIds,\n changedCells,\n ];\n if (!emptyIdAndHasListeners) {\n callIdsAndHasListenersIfChanged(\n changes[0],\n tableIdsListeners[mutator],\n hasTableListeners[mutator],\n );\n collForEach(changes[1], (changedIds, tableId) =>\n callIdsAndHasListenersIfChanged(\n changedIds,\n tableCellIdsListeners[mutator],\n hasTableCellListeners[mutator],\n [tableId],\n ),\n );\n collForEach(changes[2], (changedCount, tableId) => {\n if (changedCount != 0) {\n callListeners(\n rowCountListeners[mutator],\n [tableId],\n getRowCount(tableId),\n );\n }\n });\n const calledSortableTableIds = setNew();\n collForEach(changes[3], (changedIds, tableId) => {\n if (\n callIdsAndHasListenersIfChanged(\n changedIds,\n rowIdsListeners[mutator],\n hasRowListeners[mutator],\n [tableId],\n ) &&\n !emptySortedRowIdListeners\n ) {\n callListeners(sortedRowIdsListeners[mutator], [tableId, null]);\n setAdd(calledSortableTableIds, tableId);\n }\n });\n if (!emptySortedRowIdListeners) {\n collForEach(changes[5], (rows, tableId) => {\n if (!collHas(calledSortableTableIds, tableId)) {\n const sortableCellIds = setNew();\n collForEach(rows, (cells) =>\n collForEach(cells, ([oldCell, newCell], cellId) =>\n newCell !== oldCell\n ? setAdd(sortableCellIds, cellId)\n : collDel(cells, cellId),\n ),\n );\n collForEach(sortableCellIds, (cellId) =>\n callListeners(sortedRowIdsListeners[mutator], [\n tableId,\n cellId,\n ]),\n );\n }\n });\n }\n collForEach(changes[4], (rowCellIds, tableId) =>\n collForEach(rowCellIds, (changedIds, rowId) =>\n callIdsAndHasListenersIfChanged(\n changedIds,\n cellIdsListeners[mutator],\n hasCellListeners[mutator],\n [tableId, rowId],\n ),\n ),\n );\n }\n if (!emptyOtherListeners) {\n let tablesChanged;\n collForEach(changes[5], (rows, tableId) => {\n let tableChanged;\n collForEach(rows, (cells, rowId) => {\n let rowChanged;\n collForEach(cells, ([oldCell, newCell], cellId) => {\n if (newCell !== oldCell) {\n callListeners(\n cellListeners[mutator],\n [tableId, rowId, cellId],\n newCell,\n oldCell,\n getCellChange,\n );\n tablesChanged = tableChanged = rowChanged = 1;\n }\n });\n if (rowChanged) {\n callListeners(\n rowListeners[mutator],\n [tableId, rowId],\n getCellChange,\n );\n }\n });\n if (tableChanged) {\n callListeners(tableListeners[mutator], [tableId], getCellChange);\n }\n });\n if (tablesChanged) {\n callListeners(tablesListeners[mutator], undefined, getCellChange);\n }\n }\n }\n };\n const callValuesListenersForChanges = (mutator) => {\n const hasValuesNow = hasValues();\n if (hasValuesNow != hadValues) {\n callListeners(hasValuesListeners[mutator], undefined, hasValuesNow);\n }\n const emptyIdAndHasListeners =\n collIsEmpty(valueIdsListeners[mutator]) &&\n collIsEmpty(hasValueListeners[mutator]);\n const emptyOtherListeners =\n collIsEmpty(valueListeners[mutator]) &&\n collIsEmpty(valuesListeners[mutator]);\n if (!emptyIdAndHasListeners || !emptyOtherListeners) {\n const changes = mutator\n ? [mapClone(changedValueIds), mapClone(changedValues)]\n : [changedValueIds, changedValues];\n if (!emptyIdAndHasListeners) {\n callIdsAndHasListenersIfChanged(\n changes[0],\n valueIdsListeners[mutator],\n hasValueListeners[mutator],\n );\n }\n if (!emptyOtherListeners) {\n let valuesChanged;\n collForEach(changes[1], ([oldValue, newValue], valueId) => {\n if (newValue !== oldValue) {\n callListeners(\n valueListeners[mutator],\n [valueId],\n newValue,\n oldValue,\n getValueChange,\n );\n valuesChanged = 1;\n }\n });\n if (valuesChanged) {\n callListeners(valuesListeners[mutator], undefined, getValueChange);\n }\n }\n }\n };\n const fluentTransaction = (actions, ...args) => {\n transaction(() => actions(...arrayMap(args, id)));\n return store;\n };\n const getContent = () => [getTables(), getValues()];\n const getTables = () => mapToObj3(tablesMap);\n const getTableIds = () => mapKeys(tablesMap);\n const getTable = (tableId) => mapToObj2(mapGet(tablesMap, id(tableId)));\n const getTableCellIds = (tableId) =>\n mapKeys(mapGet(tableCellIds, id(tableId)));\n const getRowCount = (tableId) => collSize(mapGet(tablesMap, id(tableId)));\n const getRowIds = (tableId) => mapKeys(mapGet(tablesMap, id(tableId)));\n const getSortedRowIds = (tableId, cellId, descending, offset = 0, limit) =>\n arrayMap(\n slice(\n arraySort(\n mapMap(mapGet(tablesMap, id(tableId)), (row, rowId) => [\n isUndefined(cellId) ? rowId : mapGet(row, id(cellId)),\n rowId,\n ]),\n ([cell1], [cell2]) =>\n defaultSorter(cell1, cell2) * (descending ? -1 : 1),\n ),\n offset,\n isUndefined(limit) ? limit : offset + limit,\n ),\n ([, rowId]) => rowId,\n );\n const getRow = (tableId, rowId) =>\n mapToObj(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)));\n const getCellIds = (tableId, rowId) =>\n mapKeys(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)));\n const getCell = (tableId, rowId, cellId) =>\n mapGet(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), id(cellId));\n const getValues = () => mapToObj(valuesMap);\n const getValueIds = () => mapKeys(valuesMap);\n const getValue = (valueId) => mapGet(valuesMap, id(valueId));\n const hasTables = () => !collIsEmpty(tablesMap);\n const hasTable = (tableId) => collHas(tablesMap, id(tableId));\n const hasTableCell = (tableId, cellId) =>\n collHas(mapGet(tableCellIds, id(tableId)), id(cellId));\n const hasRow = (tableId, rowId) =>\n collHas(mapGet(tablesMap, id(tableId)), id(rowId));\n const hasCell = (tableId, rowId, cellId) =>\n collHas(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), id(cellId));\n const hasValues = () => !collIsEmpty(valuesMap);\n const hasValue = (valueId) => collHas(valuesMap, id(valueId));\n const getTablesJson = () => jsonStringWithMap(tablesMap);\n const getValuesJson = () => jsonStringWithMap(valuesMap);\n const getJson = () => jsonStringWithMap([tablesMap, valuesMap]);\n const getTablesSchemaJson = () => jsonStringWithMap(tablesSchemaMap);\n const getValuesSchemaJson = () => jsonStringWithMap(valuesSchemaMap);\n const getSchemaJson = () =>\n jsonStringWithMap([tablesSchemaMap, valuesSchemaMap]);\n const setContent = (content) =>\n fluentTransaction(() => {\n const content2 = isFunction(content) ? content() : content;\n if (validateContent(content2)) {\n setValidContent(content2);\n }\n });\n const setTables = (tables) =>\n fluentTransaction(() =>\n validateTables(tables) ? setValidTables(tables) : 0,\n );\n const setTable = (tableId, table) =>\n fluentTransaction(\n (tableId2) =>\n validateTable(table, tableId2) ? setValidTable(tableId2, table) : 0,\n tableId,\n );\n const setRow = (tableId, rowId, row) =>\n fluentTransaction(\n (tableId2, rowId2) =>\n validateRow(tableId2, rowId2, row)\n ? setValidRow(tableId2, getOrCreateTable(tableId2), rowId2, row)\n : 0,\n tableId,\n rowId,\n );\n const addRow = (tableId, row, reuseRowIds = true) =>\n transaction(() => {\n let rowId = undefined;\n if (validateRow(tableId, rowId, row)) {\n tableId = id(tableId);\n setValidRow(\n tableId,\n getOrCreateTable(tableId),\n (rowId = getNewRowId(tableId, reuseRowIds ? 1 : 0)),\n row,\n );\n }\n return rowId;\n });\n const setPartialRow = (tableId, rowId, partialRow) =>\n fluentTransaction(\n (tableId2, rowId2) => {\n if (validateRow(tableId2, rowId2, partialRow, 1)) {\n const table = getOrCreateTable(tableId2);\n objMap(partialRow, (cell, cellId) =>\n setCellIntoDefaultRow(tableId2, table, rowId2, cellId, cell),\n );\n }\n },\n tableId,\n rowId,\n );\n const setCell = (tableId, rowId, cellId, cell) =>\n fluentTransaction(\n (tableId2, rowId2, cellId2) =>\n ifNotUndefined(\n getValidatedCell(\n tableId2,\n rowId2,\n cellId2,\n isFunction(cell) ? cell(getCell(tableId2, rowId2, cellId2)) : cell,\n ),\n (validCell) =>\n setCellIntoDefaultRow(\n tableId2,\n getOrCreateTable(tableId2),\n rowId2,\n cellId2,\n validCell,\n ),\n ),\n tableId,\n rowId,\n cellId,\n );\n const setValues = (values) =>\n fluentTransaction(() =>\n validateValues(values) ? setValidValues(values) : 0,\n );\n const setPartialValues = (partialValues) =>\n fluentTransaction(() =>\n validateValues(partialValues, 1)\n ? objMap(partialValues, (value, valueId) =>\n setValidValue(valueId, value),\n )\n : 0,\n );\n const setValue = (valueId, value) =>\n fluentTransaction(\n (valueId2) =>\n ifNotUndefined(\n getValidatedValue(\n valueId2,\n isFunction(value) ? value(getValue(valueId2)) : value,\n ),\n (validValue) => setValidValue(valueId2, validValue),\n ),\n valueId,\n );\n const applyChanges = (changes) =>\n fluentTransaction(() => {\n objMap(changes[0], (table, tableId) =>\n isUndefined(table)\n ? delTable(tableId)\n : objMap(table, (row, rowId) =>\n isUndefined(row)\n ? delRow(tableId, rowId)\n : objMap(row, (cell, cellId) =>\n setOrDelCell(store, tableId, rowId, cellId, cell),\n ),\n ),\n );\n objMap(changes[1], (value, valueId) =>\n setOrDelValue(store, valueId, value),\n );\n });\n const setTablesJson = (tablesJson) => {\n try {\n setOrDelTables(jsonParse(tablesJson));\n } catch {}\n return store;\n };\n const setValuesJson = (valuesJson) => {\n try {\n setOrDelValues(jsonParse(valuesJson));\n } catch {}\n return store;\n };\n const setJson = (tablesAndValuesJson) =>\n fluentTransaction(() => {\n try {\n const [tables, values] = jsonParse(tablesAndValuesJson);\n setOrDelTables(tables);\n setOrDelValues(values);\n } catch {\n setTablesJson(tablesAndValuesJson);\n }\n });\n const setTablesSchema = (tablesSchema) =>\n fluentTransaction(() => {\n if ((hasTablesSchema = validateTablesSchema(tablesSchema))) {\n setValidTablesSchema(tablesSchema);\n if (!collIsEmpty(tablesMap)) {\n const tables = getTables();\n delTables();\n setTables(tables);\n }\n }\n });\n const setValuesSchema = (valuesSchema) =>\n fluentTransaction(() => {\n if ((hasValuesSchema = validateValuesSchema(valuesSchema))) {\n const values = getValues();\n delValuesSchema();\n delValues();\n hasValuesSchema = true;\n setValidValuesSchema(valuesSchema);\n setValues(values);\n }\n });\n const setSchema = (tablesSchema, valuesSchema) =>\n fluentTransaction(() => {\n setTablesSchema(tablesSchema);\n setValuesSchema(valuesSchema);\n });\n const delTables = () => fluentTransaction(() => setValidTables({}));\n const delTable = (tableId) =>\n fluentTransaction(\n (tableId2) =>\n collHas(tablesMap, tableId2) ? delValidTable(tableId2) : 0,\n tableId,\n );\n const delRow = (tableId, rowId) =>\n fluentTransaction(\n (tableId2, rowId2) =>\n ifNotUndefined(mapGet(tablesMap, tableId2), (tableMap) =>\n collHas(tableMap, rowId2)\n ? delValidRow(tableId2, tableMap, rowId2)\n : 0,\n ),\n tableId,\n rowId,\n );\n const delCell = (tableId, rowId, cellId, forceDel) =>\n fluentTransaction(\n (tableId2, rowId2, cellId2) =>\n ifNotUndefined(mapGet(tablesMap, tableId2), (tableMap) =>\n ifNotUndefined(mapGet(tableMap, rowId2), (rowMap) =>\n collHas(rowMap, cellId2)\n ? delValidCell(\n tableId2,\n tableMap,\n rowId2,\n rowMap,\n cellId2,\n forceDel,\n )\n : 0,\n ),\n ),\n tableId,\n rowId,\n cellId,\n );\n const delValues = () => fluentTransaction(() => setValidValues({}));\n const delValue = (valueId) =>\n fluentTransaction(\n (valueId2) =>\n collHas(valuesMap, valueId2) ? delValidValue(valueId2) : 0,\n valueId,\n );\n const delTablesSchema = () =>\n fluentTransaction(() => {\n setValidTablesSchema({});\n hasTablesSchema = false;\n });\n const delValuesSchema = () =>\n fluentTransaction(() => {\n setValidValuesSchema({});\n hasValuesSchema = false;\n });\n const delSchema = () =>\n fluentTransaction(() => {\n delTablesSchema();\n delValuesSchema();\n });\n const transaction = (actions, doRollback) => {\n if (transactions != -1) {\n startTransaction();\n const result = actions();\n finishTransaction(doRollback);\n return result;\n }\n };\n const startTransaction = () => {\n if (transactions != -1) {\n transactions++;\n }\n if (transactions == 1) {\n internalListeners[0]?.();\n callListeners(startTransactionListeners);\n }\n return store;\n };\n const getTransactionChanges = () => [\n mapToObj(\n changedCells,\n (table, tableId) =>\n mapGet(changedTableIds, tableId) === -1\n ? undefined\n : mapToObj(\n table,\n (row, rowId) =>\n mapGet(mapGet(changedRowIds, tableId), rowId) === -1\n ? undefined\n : mapToObj(\n row,\n ([, newCell]) => newCell,\n (changedCell) => pairIsEqual(changedCell),\n ),\n collIsEmpty,\n objIsEmpty,\n ),\n collIsEmpty,\n objIsEmpty,\n ),\n mapToObj(\n changedValues,\n ([, newValue]) => newValue,\n (changedValue) => pairIsEqual(changedValue),\n ),\n 1,\n ];\n const getTransactionLog = () => [\n !collIsEmpty(changedCells),\n !collIsEmpty(changedValues),\n mapToObj3(changedCells, pairClone, pairIsEqual),\n mapToObj3(invalidCells),\n mapToObj(changedValues, pairClone, pairIsEqual),\n mapToObj(invalidValues),\n mapToObj(changedTableIds),\n mapToObj2(changedRowIds),\n mapToObj3(changedCellIds),\n mapToObj(changedValueIds),\n ];\n const finishTransaction = (doRollback) => {\n if (transactions > 0) {\n transactions--;\n if (transactions == 0) {\n transactions = 1;\n callInvalidCellListeners(1);\n if (!collIsEmpty(changedCells)) {\n callTabularListenersForChanges(1);\n }\n callInvalidValueListeners(1);\n if (!collIsEmpty(changedValues)) {\n callValuesListenersForChanges(1);\n }\n if (doRollback?.(store)) {\n collForEach(changedCells, (table, tableId) =>\n collForEach(table, (row, rowId) =>\n collForEach(row, ([oldCell], cellId) =>\n setOrDelCell(store, tableId, rowId, cellId, oldCell),\n ),\n ),\n );\n collClear(changedCells);\n collForEach(changedValues, ([oldValue], valueId) =>\n setOrDelValue(store, valueId, oldValue),\n );\n collClear(changedValues);\n }\n callListeners(finishTransactionListeners[0], undefined);\n transactions = -1;\n callInvalidCellListeners(0);\n if (!collIsEmpty(changedCells)) {\n callTabularListenersForChanges(0);\n }\n callInvalidValueListeners(0);\n if (!collIsEmpty(changedValues)) {\n callValuesListenersForChanges(0);\n }\n internalListeners[1]?.();\n callListeners(finishTransactionListeners[1], undefined);\n internalListeners[2]?.();\n transactions = 0;\n hadTables = hasTables();\n hadValues = hasValues();\n arrayForEach(\n [\n changedTableIds,\n changedTableCellIds,\n changedRowCount,\n changedRowIds,\n changedCellIds,\n changedCells,\n invalidCells,\n changedValueIds,\n changedValues,\n invalidValues,\n ],\n collClear,\n );\n }\n }\n return store;\n };\n const forEachTable = (tableCallback) =>\n collForEach(tablesMap, (tableMap, tableId) =>\n tableCallback(tableId, (rowCallback) =>\n collForEach(tableMap, (rowMap, rowId) =>\n rowCallback(rowId, (cellCallback) =>\n mapForEach(rowMap, cellCallback),\n ),\n ),\n ),\n );\n const forEachTableCell = (tableId, tableCellCallback) =>\n mapForEach(mapGet(tableCellIds, id(tableId)), tableCellCallback);\n const forEachRow = (tableId, rowCallback) =>\n collForEach(mapGet(tablesMap, id(tableId)), (rowMap, rowId) =>\n rowCallback(rowId, (cellCallback) => mapForEach(rowMap, cellCallback)),\n );\n const forEachCell = (tableId, rowId, cellCallback) =>\n mapForEach(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), cellCallback);\n const forEachValue = (valueCallback) => mapForEach(valuesMap, valueCallback);\n const addSortedRowIdsListener = (\n tableId,\n cellId,\n descending,\n offset,\n limit,\n listener,\n mutator,\n ) => {\n let sortedRowIds = getSortedRowIds(\n tableId,\n cellId,\n descending,\n offset,\n limit,\n );\n return addListener(\n () => {\n const newSortedRowIds = getSortedRowIds(\n tableId,\n cellId,\n descending,\n offset,\n limit,\n );\n if (!arrayIsEqual(newSortedRowIds, sortedRowIds)) {\n sortedRowIds = newSortedRowIds;\n listener(\n store,\n tableId,\n cellId,\n descending,\n offset,\n limit,\n sortedRowIds,\n );\n }\n },\n sortedRowIdsListeners[mutator ? 1 : 0],\n [tableId, cellId],\n [getTableIds],\n );\n };\n const addStartTransactionListener = (listener) =>\n addListener(listener, startTransactionListeners);\n const addWillFinishTransactionListener = (listener) =>\n addListener(listener, finishTransactionListeners[0]);\n const addDidFinishTransactionListener = (listener) =>\n addListener(listener, finishTransactionListeners[1]);\n const callListener = (listenerId) => {\n callListenerImpl(listenerId);\n return store;\n };\n const delListener = (listenerId) => {\n delListenerImpl(listenerId);\n return store;\n };\n const getListenerStats = () => ({\n hasTables: pairCollSize2(hasTablesListeners),\n tables: pairCollSize2(tablesListeners),\n tableIds: pairCollSize2(tableIdsListeners),\n hasTable: pairCollSize2(hasTableListeners),\n table: pairCollSize2(tableListeners),\n tableCellIds: pairCollSize2(tableCellIdsListeners),\n hasTableCell: pairCollSize2(hasTableCellListeners, collSize3),\n rowCount: pairCollSize2(rowCountListeners),\n rowIds: pairCollSize2(rowIdsListeners),\n sortedRowIds: pairCollSize2(sortedRowIdsListeners),\n hasRow: pairCollSize2(hasRowListeners, collSize3),\n row: pairCollSize2(rowListeners, collSize3),\n cellIds: pairCollSize2(cellIdsListeners, collSize3),\n hasCell: pairCollSize2(hasCellListeners, collSize4),\n cell: pairCollSize2(cellListeners, collSize4),\n invalidCell: pairCollSize2(invalidCellListeners, collSize4),\n hasValues: pairCollSize2(hasValuesListeners),\n values: pairCollSize2(valuesListeners),\n valueIds: pairCollSize2(valueIdsListeners),\n hasValue: pairCollSize2(hasValueListeners),\n value: pairCollSize2(valueListeners),\n invalidValue: pairCollSize2(invalidValueListeners),\n transaction:\n collSize2(startTransactionListeners) +\n pairCollSize2(finishTransactionListeners),\n });\n const setInternalListeners = (\n preStartTransaction,\n preFinishTransaction,\n postFinishTransaction,\n cellChanged2,\n valueChanged2,\n ) =>\n (internalListeners = [\n preStartTransaction,\n preFinishTransaction,\n postFinishTransaction,\n cellChanged2,\n valueChanged2,\n ]);\n const store = {\n getContent,\n getTables,\n getTableIds,\n getTable,\n getTableCellIds,\n getRowCount,\n getRowIds,\n getSortedRowIds,\n getRow,\n getCellIds,\n getCell,\n getValues,\n getValueIds,\n getValue,\n hasTables,\n hasTable,\n hasTableCell,\n hasRow,\n hasCell,\n hasValues,\n hasValue,\n getTablesJson,\n getValuesJson,\n getJson,\n getTablesSchemaJson,\n getValuesSchemaJson,\n getSchemaJson,\n hasTablesSchema: () => hasTablesSchema,\n hasValuesSchema: () => hasValuesSchema,\n setContent,\n setTables,\n setTable,\n setRow,\n addRow,\n setPartialRow,\n setCell,\n setValues,\n setPartialValues,\n setValue,\n applyChanges,\n setTablesJson,\n setValuesJson,\n setJson,\n setTablesSchema,\n setValuesSchema,\n setSchema,\n delTables,\n delTable,\n delRow,\n delCell,\n delValues,\n delValue,\n delTablesSchema,\n delValuesSchema,\n delSchema,\n transaction,\n startTransaction,\n getTransactionChanges,\n getTransactionLog,\n finishTransaction,\n forEachTable,\n forEachTableCell,\n forEachRow,\n forEachCell,\n forEachValue,\n addSortedRowIdsListener,\n addStartTransactionListener,\n addWillFinishTransactionListener,\n addDidFinishTransactionListener,\n callListener,\n delListener,\n getListenerStats,\n isMergeable: () => false,\n // only used internally by other modules\n createStore,\n addListener,\n callListeners,\n setInternalListeners,\n };\n objMap(\n {\n [HAS + TABLES]: [0, hasTablesListeners, [], () => [hasTables()]],\n [TABLES]: [0, tablesListeners],\n [TABLE_IDS]: [0, tableIdsListeners],\n [HAS + TABLE]: [\n 1,\n hasTableListeners,\n [getTableIds],\n (ids) => [hasTable(...ids)],\n ],\n [TABLE]: [1, tableListeners, [getTableIds]],\n [TABLE + CELL_IDS]: [1, tableCellIdsListeners, [getTableIds]],\n [HAS + TABLE + CELL]: [\n 2,\n hasTableCellListeners,\n [getTableIds, getTableCellIds],\n (ids) => [hasTableCell(...ids)],\n ],\n [ROW_COUNT]: [1, rowCountListeners, [getTableIds]],\n [ROW_IDS]: [1, rowIdsListeners, [getTableIds]],\n [HAS + ROW]: [\n 2,\n hasRowListeners,\n [getTableIds, getRowIds],\n (ids) => [hasRow(...ids)],\n ],\n [ROW]: [2, rowListeners, [getTableIds, getRowIds]],\n [CELL_IDS]: [2, cellIdsListeners, [getTableIds, getRowIds]],\n [HAS + CELL]: [\n 3,\n hasCellListeners,\n [getTableIds, getRowIds, getCellIds],\n (ids) => [hasCell(...ids)],\n ],\n [CELL]: [\n 3,\n cellListeners,\n [getTableIds, getRowIds, getCellIds],\n (ids) => pairNew(getCell(...ids)),\n ],\n InvalidCell: [3, invalidCellListeners],\n [HAS + VALUES]: [0, hasValuesListeners, [], () => [hasValues()]],\n [VALUES]: [0, valuesListeners],\n [VALUE_IDS]: [0, valueIdsListeners],\n [HAS + VALUE]: [\n 1,\n hasValueListeners,\n [getValueIds],\n (ids) => [hasValue(...ids)],\n ],\n [VALUE]: [\n 1,\n valueListeners,\n [getValueIds],\n (ids) => pairNew(getValue(ids[0])),\n ],\n InvalidValue: [1, invalidValueListeners],\n },\n ([argumentCount, idSetNode, pathGetters, extraArgsGetter], listenable) => {\n store[ADD + listenable + LISTENER] = (...args) =>\n addListener(\n args[argumentCount],\n idSetNode[args[argumentCount + 1] ? 1 : 0],\n argumentCount > 0 ? slice(args, 0, argumentCount) : undefined,\n pathGetters,\n extraArgsGetter,\n );\n },\n );\n return objFreeze(store);\n};\n\nconst SHIFT36 = 2 ** 36;\nconst SHIFT30 = 2 ** 30;\nconst SHIFT24 = 2 ** 24;\nconst SHIFT18 = 2 ** 18;\nconst SHIFT12 = 2 ** 12;\nconst SHIFT6 = 2 ** 6;\nconst encodeTimeAndCounter = (logicalTime42, counter24) =>\n encode(logicalTime42 / SHIFT36) +\n encode(logicalTime42 / SHIFT30) +\n encode(logicalTime42 / SHIFT24) +\n encode(logicalTime42 / SHIFT18) +\n encode(logicalTime42 / SHIFT12) +\n encode(logicalTime42 / SHIFT6) +\n encode(logicalTime42) +\n encode(counter24 / SHIFT18) +\n encode(counter24 / SHIFT12) +\n encode(counter24 / SHIFT6) +\n encode(counter24);\nconst decodeTimeAndCounter = (hlc16) => [\n decode(hlc16, 0) * SHIFT36 +\n decode(hlc16, 1) * SHIFT30 +\n decode(hlc16, 2) * SHIFT24 +\n decode(hlc16, 3) * SHIFT18 +\n decode(hlc16, 4) * SHIFT12 +\n decode(hlc16, 5) * SHIFT6 +\n decode(hlc16, 6),\n decode(hlc16, 7) * SHIFT18 +\n decode(hlc16, 8) * SHIFT12 +\n decode(hlc16, 9) * SHIFT6 +\n decode(hlc16, 10),\n];\nconst getHlcFunctions = (uniqueId) => {\n let logicalTime = 0;\n let lastCounter = -1;\n const clientPart = ifNotUndefined(\n uniqueId,\n (uniqueId2) => {\n const clientHash30 = getHash(uniqueId2);\n return (\n encode(clientHash30 / SHIFT24) +\n encode(clientHash30 / SHIFT18) +\n encode(clientHash30 / SHIFT12) +\n encode(clientHash30 / SHIFT6) +\n encode(clientHash30)\n );\n },\n () => getUniqueId(5),\n );\n const getHlc = () => {\n seenHlc();\n return encodeTimeAndCounter(logicalTime, ++lastCounter) + clientPart;\n };\n const seenHlc = (hlc) => {\n const previousLogicalTime = logicalTime;\n const [remoteLogicalTime, remoteCounter] =\n isUndefined(hlc) || hlc == '' ? [0, 0] : decodeTimeAndCounter(hlc);\n logicalTime = mathMax(\n previousLogicalTime,\n remoteLogicalTime,\n GLOBAL.HLC_TIME ?? Date.now(),\n );\n lastCounter =\n logicalTime == previousLogicalTime\n ? logicalTime == remoteLogicalTime\n ? mathMax(lastCounter, remoteCounter)\n : lastCounter\n : logicalTime == remoteLogicalTime\n ? remoteCounter\n : -1;\n };\n return [getHlc, seenHlc];\n};\n\nconst LISTENER_ARGS = {\n HasTable: 1,\n Table: 1,\n TableCellIds: 1,\n HasTableCell: 2,\n RowCount: 1,\n RowIds: 1,\n SortedRowIds: 5,\n HasRow: 2,\n Row: 2,\n CellIds: 2,\n HasCell: 3,\n Cell: 3,\n HasValue: 1,\n Value: 1,\n InvalidCell: 3,\n InvalidValue: 1,\n};\nconst newContentStampMap = (time = EMPTY_STRING) => [\n stampNewMap(time),\n stampNewMap(time),\n];\nconst validateMergeableContent = (mergeableContent) =>\n isArray(mergeableContent) &&\n size(mergeableContent) == 2 &&\n stampValidate(mergeableContent[0], (tableStamps) =>\n objValidate(\n tableStamps,\n (tableStamp) =>\n stampValidate(tableStamp, (rowStamps) =>\n objValidate(\n rowStamps,\n (rowStamp) =>\n stampValidate(rowStamp, (cellStamps) =>\n objValidate(\n cellStamps,\n (cellStamp) =>\n stampValidate(cellStamp, isCellOrValueOrNullOrUndefined),\n undefined,\n 1,\n ),\n ),\n undefined,\n 1,\n ),\n ),\n undefined,\n 1,\n ),\n ) &&\n stampValidate(mergeableContent[1], (values) =>\n objValidate(\n values,\n (value) => stampValidate(value, isCellOrValueOrNullOrUndefined),\n undefined,\n 1,\n ),\n );\nconst createMergeableStore = (uniqueId) => {\n let listeningToRawStoreChanges = 1;\n let contentStampMap = newContentStampMap();\n let defaultingContent = 0;\n const touchedCells = mapNew();\n const touchedValues = setNew();\n const [getHlc, seenHlc] = getHlcFunctions(uniqueId);\n const store = createStore();\n const disableListeningToRawStoreChanges = (actions) => {\n const wasListening = listeningToRawStoreChanges;\n listeningToRawStoreChanges = 0;\n actions();\n listeningToRawStoreChanges = wasListening;\n return mergeableStore;\n };\n const mergeContentOrChanges = (contentOrChanges, isContent = 0) => {\n const tablesChanges = {};\n const valuesChanges = {};\n const [\n [tablesObj, incomingTablesTime = EMPTY_STRING, incomingTablesHash = 0],\n values,\n ] = contentOrChanges;\n const [tablesStampMap, valuesStampMap] = contentStampMap;\n const [tableStampMaps, oldTablesTime, oldTablesHash] = tablesStampMap;\n let tablesHash = isContent ? incomingTablesHash : oldTablesHash;\n let tablesTime = incomingTablesTime;\n objForEach(\n tablesObj,\n (\n [rowsObj, incomingTableTime = EMPTY_STRING, incomingTableHash = 0],\n tableId,\n ) => {\n const tableStampMap = mapEnsure(tableStampMaps, tableId, stampNewMap);\n const [rowStampMaps, oldTableTime, oldTableHash] = tableStampMap;\n let tableHash = isContent ? incomingTableHash : oldTableHash;\n let tableTime = incomingTableTime;\n objForEach(rowsObj, (row, rowId) => {\n const [rowTime, oldRowHash, rowHash] = mergeCellsOrValues(\n row,\n mapEnsure(rowStampMaps, rowId, stampNewMap),\n objEnsure(objEnsure(tablesChanges, tableId, objNew), rowId, objNew),\n isContent,\n );\n tableHash ^= isContent\n ? 0\n : (oldRowHash ? hashIdAndHash(rowId, oldRowHash) : 0) ^\n hashIdAndHash(rowId, rowHash);\n tableTime = getLatestTime(tableTime, rowTime);\n });\n tableHash ^= isContent\n ? 0\n : replaceTimeHash(oldTableTime, incomingTableTime);\n stampUpdate(tableStampMap, incomingTableTime, tableHash);\n tablesHash ^= isContent\n ? 0\n : (oldTableHash ? hashIdAndHash(tableId, oldTableHash) : 0) ^\n hashIdAndHash(tableId, tableStampMap[2]);\n tablesTime = getLatestTime(tablesTime, tableTime);\n },\n );\n tablesHash ^= isContent\n ? 0\n : replaceTimeHash(oldTablesTime, incomingTablesTime);\n stampUpdate(tablesStampMap, incomingTablesTime, tablesHash);\n const [valuesTime] = mergeCellsOrValues(\n values,\n valuesStampMap,\n valuesChanges,\n isContent,\n );\n seenHlc(getLatestTime(tablesTime, valuesTime));\n return [tablesChanges, valuesChanges, 1];\n };\n const mergeCellsOrValues = (\n things,\n thingsStampMap,\n thingsChanges,\n isContent,\n ) => {\n const [\n thingsObj,\n incomingThingsTime = EMPTY_STRING,\n incomingThingsHash = 0,\n ] = things;\n const [thingStampMaps, oldThingsTime, oldThingsHash] = thingsStampMap;\n let thingsTime = incomingThingsTime;\n let thingsHash = isContent ? incomingThingsHash : oldThingsHash;\n objForEach(\n thingsObj,\n ([thing, thingTime, incomingThingHash = 0], thingId) => {\n const thingStampMap = mapEnsure(thingStampMaps, thingId, () => [\n undefined,\n EMPTY_STRING,\n 0,\n ]);\n const [, oldThingTime, oldThingHash] = thingStampMap;\n if (!oldThingTime || thingTime > oldThingTime) {\n stampUpdate(\n thingStampMap,\n thingTime,\n isContent\n ? incomingThingHash\n : getHash(jsonStringWithMap(thing ?? null) + ':' + thingTime),\n );\n thingStampMap[0] = thing;\n thingsChanges[thingId] = thing;\n thingsHash ^= isContent\n ? 0\n : hashIdAndHash(thingId, oldThingHash) ^\n hashIdAndHash(thingId, thingStampMap[2]);\n thingsTime = getLatestTime(thingsTime, thingTime);\n }\n },\n );\n thingsHash ^= isContent\n ? 0\n : replaceTimeHash(oldThingsTime, incomingThingsTime);\n stampUpdate(thingsStampMap, incomingThingsTime, thingsHash);\n return [thingsTime, oldThingsHash, thingsStampMap[2]];\n };\n const preStartTransaction = () => {};\n const preFinishTransaction = () => {};\n const postFinishTransaction = () => {\n collClear(touchedCells);\n collClear(touchedValues);\n };\n const cellChanged = (tableId, rowId, cellId, newCell) => {\n setAdd(\n mapEnsure(mapEnsure(touchedCells, tableId, mapNew), rowId, setNew),\n cellId,\n );\n if (listeningToRawStoreChanges) {\n mergeContentOrChanges([\n [\n {\n [tableId]: [\n {\n [rowId]: [\n {\n [cellId]: [\n newCell,\n defaultingContent ? EMPTY_STRING : getHlc(),\n ],\n },\n ],\n },\n ],\n },\n ],\n [{}],\n 1,\n ]);\n }\n };\n const valueChanged = (valueId, newValue) => {\n setAdd(touchedValues, valueId);\n if (listeningToRawStoreChanges) {\n mergeContentOrChanges([\n [{}],\n [{[valueId]: [newValue, defaultingContent ? EMPTY_STRING : getHlc()]}],\n 1,\n ]);\n }\n };\n const getMergeableContent = () => [\n stampMapToObjWithHash(contentStampMap[0], (tableStampMap) =>\n stampMapToObjWithHash(tableStampMap, (rowStampMap) =>\n stampMapToObjWithHash(rowStampMap),\n ),\n ),\n stampMapToObjWithHash(contentStampMap[1]),\n ];\n const getMergeableContentHashes = () => [\n contentStampMap[0][2],\n contentStampMap[1][2],\n ];\n const getMergeableTableHashes = () =>\n mapToObj(contentStampMap[0][0], getStampHash);\n const getMergeableTableDiff = (otherTableHashes) => {\n const newTables = stampNewObj(contentStampMap[0][1]);\n const differingTableHashes = {};\n mapForEach(\n contentStampMap[0][0],\n (tableId, [tableStampMap, tableTime, hash]) =>\n objHas(otherTableHashes, tableId)\n ? hash != otherTableHashes[tableId]\n ? (differingTableHashes[tableId] = hash)\n : 0\n : (newTables[0][tableId] = stampMapToObjWithoutHash(\n [tableStampMap, tableTime],\n (rowStampMap) => stampMapToObjWithoutHash(rowStampMap),\n )),\n );\n return [newTables, differingTableHashes];\n };\n const getMergeableRowHashes = (otherTableHashes) => {\n const rowHashes = {};\n objForEach(otherTableHashes, (otherTableHash, tableId) =>\n ifNotUndefined(\n mapGet(contentStampMap[0][0], tableId),\n ([rowStampMaps, , tableHash]) =>\n tableHash != otherTableHash\n ? mapForEach(\n rowStampMaps,\n (rowId, [, , rowHash]) =>\n (objEnsure(rowHashes, tableId, objNew)[rowId] = rowHash),\n )\n : 0,\n ),\n );\n return rowHashes;\n };\n const getMergeableRowDiff = (otherTableRowHashes) => {\n const newRows = stampNewObj(contentStampMap[0][1]);\n const differingRowHashes = {};\n objForEach(otherTableRowHashes, (otherRowHashes, tableId) =>\n mapForEach(\n mapGet(contentStampMap[0][0], tableId)?.[0],\n (rowId, [rowStampMap, rowTime, hash]) =>\n objHas(otherRowHashes, rowId)\n ? hash !== otherRowHashes[rowId]\n ? (objEnsure(differingRowHashes, tableId, objNew)[rowId] = hash)\n : 0\n : (objEnsure(newRows[0], tableId, stampNewObj)[0][rowId] =\n stampMapToObjWithoutHash([rowStampMap, rowTime])),\n ),\n );\n return [newRows, differingRowHashes];\n };\n const getMergeableCellHashes = (otherTableRowHashes) => {\n const cellHashes = {};\n objForEach(otherTableRowHashes, (otherRowHashes, tableId) =>\n ifNotUndefined(mapGet(contentStampMap[0][0], tableId), ([rowStampMaps]) =>\n objForEach(otherRowHashes, (otherRowHash, rowId) =>\n ifNotUndefined(\n mapGet(rowStampMaps, rowId),\n ([cellStampMaps, , rowHash]) =>\n rowHash !== otherRowHash\n ? mapForEach(\n cellStampMaps,\n (cellId, [, , cellHash]) =>\n (objEnsure(\n objEnsure(cellHashes, tableId, objNew),\n rowId,\n objNew,\n )[cellId] = cellHash),\n )\n : 0,\n ),\n ),\n ),\n );\n return cellHashes;\n };\n const getMergeableCellDiff = (otherTableRowCellHashes) => {\n const [[tableStampMaps, tablesTime]] = contentStampMap;\n const tablesObj = {};\n objForEach(otherTableRowCellHashes, (otherRowCellHashes, tableId) =>\n objForEach(otherRowCellHashes, (otherCellHashes, rowId) =>\n ifNotUndefined(\n mapGet(tableStampMaps, tableId),\n ([rowStampMaps, tableTime]) =>\n ifNotUndefined(\n mapGet(rowStampMaps, rowId),\n ([cellStampMaps, rowTime]) =>\n mapForEach(cellStampMaps, (cellId, [cell, cellTime, hash]) =>\n hash !== otherCellHashes[cellId]\n ? (objEnsure(\n objEnsure(tablesObj, tableId, () =>\n stampNewObj(tableTime),\n )[0],\n rowId,\n () => stampNewObj(rowTime),\n )[0][cellId] = [cell, cellTime])\n : 0,\n ),\n ),\n ),\n ),\n );\n return stampNew(tablesObj, tablesTime);\n };\n const getMergeableValueHashes = () =>\n mapToObj(contentStampMap[1][0], getStampHash);\n const getMergeableValueDiff = (otherValueHashes) => {\n const [, [valueStampMaps, valuesTime]] = contentStampMap;\n const values = mapToObj(\n valueStampMaps,\n stampClone,\n ([, , hash], valueId) => hash == otherValueHashes?.[valueId],\n );\n return stampNew(values, valuesTime);\n };\n const setMergeableContent = (mergeableContent) =>\n disableListeningToRawStoreChanges(() =>\n validateMergeableContent(mergeableContent)\n ? store.transaction(() => {\n store.delTables().delValues();\n contentStampMap = newContentStampMap();\n store.applyChanges(mergeContentOrChanges(mergeableContent, 1));\n })\n : 0,\n );\n const setDefaultContent = (content) => {\n store.transaction(() => {\n defaultingContent = 1;\n store.setContent(content);\n defaultingContent = 0;\n });\n return mergeableStore;\n };\n const getTransactionMergeableChanges = (withHashes = false) => {\n const [\n [tableStampMaps, tablesTime, tablesHash],\n [valueStampMaps, valuesTime, valuesHash],\n ] = contentStampMap;\n const newStamp = withHashes ? stampNewWithHash : stampNew;\n const tablesObj = {};\n collForEach(touchedCells, (touchedTable, tableId) =>\n ifNotUndefined(\n mapGet(tableStampMaps, tableId),\n ([rowStampMaps, tableTime, tableHash]) => {\n const tableObj = {};\n collForEach(touchedTable, (touchedRow, rowId) =>\n ifNotUndefined(\n mapGet(rowStampMaps, rowId),\n ([cellStampMaps, rowTime, rowHash]) => {\n const rowObj = {};\n collForEach(touchedRow, (cellId) => {\n ifNotUndefined(\n mapGet(cellStampMaps, cellId),\n ([cell, time, hash]) =>\n (rowObj[cellId] = newStamp(cell, time, hash)),\n );\n });\n tableObj[rowId] = newStamp(rowObj, rowTime, rowHash);\n },\n ),\n );\n tablesObj[tableId] = newStamp(tableObj, tableTime, tableHash);\n },\n ),\n );\n const valuesObj = {};\n collForEach(touchedValues, (valueId) =>\n ifNotUndefined(\n mapGet(valueStampMaps, valueId),\n ([value, time, hash]) =>\n (valuesObj[valueId] = newStamp(value, time, hash)),\n ),\n );\n return [\n newStamp(tablesObj, tablesTime, tablesHash),\n newStamp(valuesObj, valuesTime, valuesHash),\n 1,\n ];\n };\n const applyMergeableChanges = (mergeableChanges) =>\n disableListeningToRawStoreChanges(() =>\n store.applyChanges(mergeContentOrChanges(mergeableChanges)),\n );\n const merge = (mergeableStore2) => {\n const mergeableChanges = getMergeableContent();\n const mergeableChanges2 = mergeableStore2.getMergeableContent();\n mergeableStore2.applyMergeableChanges(mergeableChanges);\n return applyMergeableChanges(mergeableChanges2);\n };\n const mergeableStore = {\n getMergeableContent,\n getMergeableContentHashes,\n getMergeableTableHashes,\n getMergeableTableDiff,\n getMergeableRowHashes,\n getMergeableRowDiff,\n getMergeableCellHashes,\n getMergeableCellDiff,\n getMergeableValueHashes,\n getMergeableValueDiff,\n setMergeableContent,\n setDefaultContent,\n getTransactionMergeableChanges,\n applyMergeableChanges,\n merge,\n };\n store.setInternalListeners(\n preStartTransaction,\n preFinishTransaction,\n postFinishTransaction,\n cellChanged,\n valueChanged,\n );\n objMap(\n store,\n (method, name) =>\n (mergeableStore[name] = // fluent methods\n strStartsWith(name, SET) ||\n strStartsWith(name, DEL) ||\n strStartsWith(name, 'apply') ||\n strEndsWith(name, TRANSACTION) ||\n name == 'call' + LISTENER\n ? (...args) => {\n method(...args);\n return mergeableStore;\n }\n : strStartsWith(name, ADD) && strEndsWith(name, LISTENER)\n ? (...args) => {\n const listenerArg = LISTENER_ARGS[slice(name, 3, -8)] ?? 0;\n const listener = args[listenerArg];\n args[listenerArg] = (_store, ...args2) =>\n listener(mergeableStore, ...args2);\n return method(...args);\n }\n : name == 'isMergeable'\n ? () => true\n : method),\n );\n return objFreeze(mergeableStore);\n};\n\nexport {\n createCheckpoints,\n createIndexes,\n createMergeableStore,\n createMetrics,\n createQueries,\n createRelationships,\n createStore,\n defaultSorter,\n getUniqueId,\n};\n","import {createStore, Row} from 'tinybase';\nimport {getTemplate, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport type {IEnvelope, IEnvelopeField, ITemplate, ITemplateField} from '@verdocs/js-sdk';\n\nconst store = createStore();\n\n// For now, we clear the database every page load to keep it clean and small.\n// We're only using it to synchronize data between isolated components. e-Signing\n// flows don't really benefit from \"offline-first\" approaches anyway, since most\n// of a user's interactions need to go through our servers anyway.\nstore.delTables();\nstore.delValues();\nconsole.log('[STORE] Data store initialized.');\n\nexport const safeJsonParse = (val: any, fallback?: any) => {\n try {\n return JSON.parse(val);\n } catch (e) {\n return fallback || null;\n }\n};\n\nexport const objectToRow = (obj: Object): Row => {\n const row: Row = {};\n for (let key in obj) {\n if (typeof obj[key] === 'string' || typeof obj[key] === 'number' || typeof obj[key] === 'boolean') {\n row[key] = obj[key];\n } else if (obj[key] === null) {\n row[`__null__${key}`] = '';\n } else if (Array.isArray(obj[key])) {\n row[`__array__${key}`] = JSON.stringify(obj[key]);\n } else if (typeof obj[key] === 'object') {\n row[`__object__${key}`] = JSON.stringify(obj[key]);\n }\n }\n\n return row;\n};\n\nexport const rowToObject = <T extends {}>(row: Row): T => {\n const obj = {} as T;\n\n for (let key in row) {\n if (key.startsWith('__null__')) {\n obj[key.replace('__null__', '')] = null;\n } else if (typeof row[key] === 'string' && key.startsWith('__array__')) {\n obj[key.replace('__array__', '')] = safeJsonParse(row[key]);\n } else if (typeof row[key] === 'string' && key.startsWith('__object__')) {\n obj[key.replace('__object__', '')] = safeJsonParse(row[key]);\n } else {\n obj[key] = row[key];\n }\n }\n\n return obj;\n};\n\nexport type TRowUpdatedCallback<T> = (row: T) => void;\nexport type TRowGetter<T> = () => Promise<T>;\n\nexport const Store = {\n store,\n\n // Extends the store's listener mechanism with two features:\n // 1. Apply typing to the return result, and pass the whole updated value to the callback instead\n // of just the \"changes\".\n // 2. Fire the callback immediately with the current value, so that the component can initialize.\n subscribe<T extends object>(tableId: string, rowId: string, getter: TRowGetter<T>, forceReload: boolean, callback: TRowUpdatedCallback<T>): string {\n // We call the callback immediately if the row exists so we get an SWR-like behavior.\n if (store.hasRow(tableId, rowId)) {\n callback(rowToObject<T>(store.getRow(tableId, rowId)));\n }\n\n const listenerId = store.addRowListener(tableId, rowId, () => {\n const row = store.getRow(tableId, rowId);\n callback(rowToObject<T>(row));\n });\n\n if (!store.hasRow(tableId, rowId) || forceReload) {\n console.log('[STORE] Loading/reloading', {tableId, rowId});\n getter()\n .then(result => {\n // We don't need to call the callback because it's already listening\n store.setRow(tableId, rowId, objectToRow(result));\n })\n .catch(e => {\n console.error('[STORE] Error getting row', {tableId, rowId, forceReload}, e);\n });\n }\n\n return listenerId;\n },\n\n unsubscribe(listenerId: string) {\n store.delListener(listenerId);\n },\n\n async getTemplate(endpoint: VerdocsEndpoint, templateId: string, reload: boolean = false): Promise<ITemplate | null> {\n if (!reload) {\n if (!store.hasRow('templates', templateId)) {\n return null;\n }\n\n const row = store.getRow('templates', templateId);\n return rowToObject<ITemplate>(row);\n }\n\n const template = await getTemplate(endpoint, templateId);\n console.log('[STORE] Reloading template', template);\n store.setRow('templates', templateId, objectToRow(template));\n return template;\n },\n\n updateTemplate(templateId: string, template: ITemplate) {\n store.setRow('templates', templateId, objectToRow(template));\n return template;\n },\n\n async getEnvelope(endpoint: VerdocsEndpoint, envelopeId: string, reload: boolean = false): Promise<ITemplate | null> {\n if (!reload) {\n if (!store.hasRow('envelopes', envelopeId)) {\n return null;\n }\n\n const row = store.getRow('envelopes', envelopeId);\n return rowToObject<ITemplate>(row);\n }\n\n const envelope = await getTemplate(endpoint, envelopeId);\n store.setRow('envelopes', envelopeId, objectToRow(envelope));\n return envelope;\n },\n\n updateEnvelope(envelopeId: string, envelope: IEnvelope) {\n store.setRow('envelopes', envelopeId, objectToRow(envelope));\n return envelope;\n },\n\n // Get a field from an already-loaded envelope or template. Intended to be\n // called by the verdocs-field-* components themselves which are only rendered\n // after a template or envelope is already loaded and cached in the store, so\n // no attempt is made to load the parent record if it isn't already known.\n getField(source: 'template' | 'envelope', sourceId: string, fieldName: string, fieldOverride: ITemplateField | IEnvelopeField | null | undefined) {\n if (source === 'template') {\n const row = store.getRow('templates', sourceId);\n const template = rowToObject<ITemplate>(row);\n const field = (template.fields || []).find(field => field.name === fieldName);\n\n const roleNames = (template.roles || []).map(role => role.name);\n const index = roleNames.findIndex(name => name === field.role_name);\n\n return {index: Math.max(index, 0), field: fieldOverride || field};\n } else {\n const row = store.getRow('envelopes', sourceId);\n const envelope = rowToObject<IEnvelope>(row);\n const field = (envelope.fields || []).find(field => field.name === fieldName);\n\n const roleNames = (envelope.recipients || []).map(recipient => recipient.role_name);\n const index = roleNames.findIndex(name => name === field.role_name);\n\n return {index, field: fieldOverride || field};\n }\n },\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(e,t,i,n){function r(e){return e instanceof i?e:new i((function(t){t(e)}))}return new(i||(i=Promise))((function(i,o){function s(e){try{d(n.next(e))}catch(e){o(e)}}function l(e){try{d(n["throw"](e))}catch(e){o(e)}}function d(e){e.done?i(e.value):r(e.value).then(s,l)}d((n=n.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var i={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,r,o,s;return s={next:l(0),throw:l(1),return:l(2)},typeof Symbol==="function"&&(s[Symbol.iterator]=function(){return this}),s;function l(e){return function(t){return d([e,t])}}function d(l){if(n)throw new TypeError("Generator is already executing.");while(s&&(s=0,l[0]&&(i=0)),i)try{if(n=1,r&&(o=l[0]&2?r["return"]:l[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;if(r=0,o)l=[l[0]&2,o.value];switch(l[0]){case 0:case 1:o=l;break;case 4:i.label++;return{value:l[1],done:false};case 5:i.label++;r=l[1];l=[0];continue;case 7:l=i.ops.pop();i.trys.pop();continue;default:if(!(o=i.trys,o=o.length>0&&o[o.length-1])&&(l[0]===6||l[0]===2)){i=0;continue}if(l[0]===3&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(l[0]===6&&i.label<o[1]){i.label=o[1];o=l;break}if(o&&i.label<o[2]){i.label=o[2];i.ops.push(l);break}if(o[2])i.ops.pop();i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e];r=0}finally{n=o=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:true}}};import{r as registerInstance,c as createEvent,h,H as Host,g as getElement}from"./index-272d51a4.js";import{VerdocsEndpoint,getTemplate}from"@verdocs/js-sdk";import{S as SDKError}from"./errors-887f1e88.js";import{S as Store}from"./Datastore-3f924d94.js";var verdocsBuildCss='@-webkit-keyframes verdocs-field-pulse{0%{background-color:rgba(0, 0, 0, 0.35)}50%{background-color:rgba(0, 0, 0, 0)}100%{background-color:rgba(0, 0, 0, 0.35)}}@keyframes verdocs-field-pulse{0%{background-color:rgba(0, 0, 0, 0.35)}50%{background-color:rgba(0, 0, 0, 0)}100%{background-color:rgba(0, 0, 0, 0.35)}}verdocs-build{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-family:"Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif}verdocs-build .content{-ms-flex:1;flex:1;gap:20px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column}verdocs-build verdocs-template-attachments,verdocs-build verdocs-template-roles{margin:20px}verdocs-build verdocs-template-fields{border-top:1px solid #777777}verdocs-build verdocs-template-attachments{padding:20px;background:#ffffff}verdocs-build verdocs-template-fields{width:100%}verdocs-build verdocs-preview{-ms-flex:1;flex:1}verdocs-build .preview-container{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;width:100%;background-color:#eeeeee;max-height:100%}@media all and (max-width: 450px){verdocs-build .preview-container{-ms-flex-direction:column;flex-direction:column}}verdocs-build .preview-send-wrapper{display:-ms-flexbox;display:flex;-ms-flex:0 0 300px;flex:0 0 300px;background-color:#ffffff;-webkit-box-shadow:1px 1px 6px -2px rgba(0, 0, 0, 0.4980392157);box-shadow:1px 1px 6px -2px rgba(0, 0, 0, 0.4980392157)}@media all and (max-width: 450px){verdocs-build .preview-send-wrapper{-ms-flex:0;flex:0}}verdocs-build .preview-preview-wrapper{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;overflow-y:scroll}';var VerdocsBuildStyle0=verdocsBuildCss;var VerdocsBuild=function(){function e(e){registerInstance(this,e);this.sdkError=createEvent(this,"sdkError",7);this.stepChanged=createEvent(this,"stepChanged",7);this.send=createEvent(this,"send",7);this.templateUpdated=createEvent(this,"templateUpdated",7);this.templateCreated=createEvent(this,"templateCreated",7);this.rolesUpdated=createEvent(this,"rolesUpdated",7);this.templateListenerId=null;this.endpoint=VerdocsEndpoint.getDefault();this.templateId=null;this.step="preview";this.loading=true;this.template=null}e.prototype.onTemplateIdChanged=function(e,t){if(!t&&e&&this.step==="attachments"){this.step="preview"}this.loadTemplate(e).catch((function(e){return console.log("Unknown Error",e)}))};e.prototype.onStepChanged=function(){this.loadTemplate(this.templateId).catch((function(e){return console.log("Unknown Error",e)}))};e.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,i,n,r,o;return __generator(this,(function(s){try{this.endpoint.loadSession();if(!this.endpoint.session){console.log("[BUILD] Unable to start builder session, must be authenticated");return[2]}if(!this.templateId){console.log("[BUILD] No template ID, activating upload mode");this.step="attachments";return[2]}try{this.loadTemplate(this.templateId).catch((function(e){return console.log("[BUILD] Unable to load template",e)}))}catch(n){console.log("[BUILD] Error loading template",n);(e=this.sdkError)===null||e===void 0?void 0:e.emit(new SDKError(n.message,(t=n.response)===null||t===void 0?void 0:t.status,(i=n.response)===null||i===void 0?void 0:i.data))}}catch(e){console.log("[BUILD] Error with builder session",e);(n=this.sdkError)===null||n===void 0?void 0:n.emit(new SDKError(e.message,(r=e.response)===null||r===void 0?void 0:r.status,(o=e.response)===null||o===void 0?void 0:o.data))}return[2]}))}))};e.prototype.loadTemplate=function(e){return __awaiter(this,void 0,void 0,(function(){var t=this;return __generator(this,(function(i){if(e){Store.subscribe("templates",this.templateId,(function(){return getTemplate(t.endpoint,t.templateId)}),false,(function(e){t.template=e;t.loading=false}))}return[2]}))}))};e.prototype.disconnectedCallback=function(){console.log("[BUILD] Disconnected");this.unlistenToTemplate()};e.prototype.unlistenToTemplate=function(){if(this.templateListenerId){Store.store.delListener(this.templateListenerId);this.templateListenerId=null}};e.prototype.handleCancel=function(){this.step="preview"};e.prototype.handleTemplateCreated=function(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(i){switch(i.label){case 0:return[4,this.loadTemplate(e)];case 1:i.sent();this.templateId=e;this.step="roles";(t=this.stepChanged)===null||t===void 0?void 0:t.emit("roles");return[2]}}))}))};e.prototype.handleRolesUpdated=function(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(i){(t=this.templateUpdated)===null||t===void 0?void 0:t.emit(e.detail);return[2]}))}))};e.prototype.handleTemplateUpdated=function(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(i){(t=this.templateUpdated)===null||t===void 0?void 0:t.emit(e.detail);return[2]}))}))};e.prototype.handleAttachmentsNext=function(){var e;this.step="roles";(e=this.stepChanged)===null||e===void 0?void 0:e.emit("roles")};e.prototype.handleRolesNext=function(){var e;this.step="fields";(e=this.stepChanged)===null||e===void 0?void 0:e.emit("fields")};e.prototype.handleStepChanged=function(e){var t;this.step=e;(t=this.stepChanged)===null||t===void 0?void 0:t.emit(e)};e.prototype.render=function(){var e=this;if(this.loading){return h(Host,{class:"loading"},h("verdocs-loader",null))}if(!this.endpoint.session){return h(Host,null,h("verdocs-component-error",{message:"You must be authenticated to use this module."}))}return h(Host,null,h("div",{class:"content"},h("verdocs-template-build-tabs",{endpoint:this.endpoint,templateId:this.templateId,step:this.step,onSdkError:function(t){var i;return(i=e.sdkError)===null||i===void 0?void 0:i.emit(t.detail)},onStepChanged:function(t){return e.handleStepChanged(t.detail)}}),this.step==="attachments"&&h("verdocs-template-attachments",{templateId:this.templateId,endpoint:this.endpoint,onExit:function(){return e.handleCancel()},onNext:function(){return e.handleAttachmentsNext()},onTemplateUpdated:function(t){return e.handleTemplateUpdated(t)}}),this.step==="roles"&&h("verdocs-template-roles",{templateId:this.templateId,endpoint:this.endpoint,onExit:function(){return e.handleCancel()},onNext:function(){return e.handleRolesNext()},onRolesUpdated:function(t){return e.handleRolesUpdated(t)}}),this.step==="settings"&&h("div",{style:{flexDirection:"column",gap:"20px",display:"flex",maxWidth:"400px",margin:"20px"}},h("verdocs-template-name",{templateId:this.templateId,endpoint:this.endpoint,style:{backgroundColor:"#ffffff",padding:"20px"},onTemplateUpdated:function(t){return e.handleTemplateUpdated(t)}}),h("verdocs-template-reminders",{templateId:this.templateId,endpoint:this.endpoint,style:{backgroundColor:"#ffffff",padding:"20px"},onTemplateUpdated:function(t){return e.handleTemplateUpdated(t)}}),h("verdocs-template-visibility",{templateId:this.templateId,endpoint:this.endpoint,style:{backgroundColor:"#ffffff",padding:"20px"},onTemplateUpdated:function(t){return e.handleTemplateUpdated(t)}})),this.step==="fields"&&h("verdocs-template-fields",{templateId:this.templateId,endpoint:this.endpoint,onTemplateUpdated:function(t){return e.handleTemplateUpdated(t)}}),this.step==="preview"&&h("div",{class:"preview-container"},h("div",{class:"preview-send-wrapper"},h("verdocs-send",{templateId:this.templateId,endpoint:this.endpoint,onSend:function(t){var i;return(i=e.send)===null||i===void 0?void 0:i.emit(t.detail)},style:{width:"100%"}})),h("div",{class:"preview-preview-wrapper"},h("verdocs-preview",{templateId:this.templateId,endpoint:this.endpoint,style:{display:"flex",flex:"1",maxWidth:"1000px"}})))))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{templateId:["onTemplateIdChanged"],step:["onStepChanged"]}},enumerable:false,configurable:true});return e}();VerdocsBuild.style=VerdocsBuildStyle0;export{VerdocsBuild as verdocs_build};
1
+ var __awaiter=this&&this.__awaiter||function(e,t,i,n){function r(e){return e instanceof i?e:new i((function(t){t(e)}))}return new(i||(i=Promise))((function(i,o){function s(e){try{d(n.next(e))}catch(e){o(e)}}function l(e){try{d(n["throw"](e))}catch(e){o(e)}}function d(e){e.done?i(e.value):r(e.value).then(s,l)}d((n=n.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var i={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,r,o,s;return s={next:l(0),throw:l(1),return:l(2)},typeof Symbol==="function"&&(s[Symbol.iterator]=function(){return this}),s;function l(e){return function(t){return d([e,t])}}function d(l){if(n)throw new TypeError("Generator is already executing.");while(s&&(s=0,l[0]&&(i=0)),i)try{if(n=1,r&&(o=l[0]&2?r["return"]:l[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;if(r=0,o)l=[l[0]&2,o.value];switch(l[0]){case 0:case 1:o=l;break;case 4:i.label++;return{value:l[1],done:false};case 5:i.label++;r=l[1];l=[0];continue;case 7:l=i.ops.pop();i.trys.pop();continue;default:if(!(o=i.trys,o=o.length>0&&o[o.length-1])&&(l[0]===6||l[0]===2)){i=0;continue}if(l[0]===3&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(l[0]===6&&i.label<o[1]){i.label=o[1];o=l;break}if(o&&i.label<o[2]){i.label=o[2];i.ops.push(l);break}if(o[2])i.ops.pop();i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e];r=0}finally{n=o=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:true}}};import{r as registerInstance,c as createEvent,h,H as Host,g as getElement}from"./index-272d51a4.js";import{VerdocsEndpoint,getTemplate}from"@verdocs/js-sdk";import{S as SDKError}from"./errors-887f1e88.js";import{S as Store}from"./Datastore-77cb8d9c.js";var verdocsBuildCss='@-webkit-keyframes verdocs-field-pulse{0%{background-color:rgba(0, 0, 0, 0.35)}50%{background-color:rgba(0, 0, 0, 0)}100%{background-color:rgba(0, 0, 0, 0.35)}}@keyframes verdocs-field-pulse{0%{background-color:rgba(0, 0, 0, 0.35)}50%{background-color:rgba(0, 0, 0, 0)}100%{background-color:rgba(0, 0, 0, 0.35)}}verdocs-build{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-family:"Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif}verdocs-build .content{-ms-flex:1;flex:1;gap:20px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column}verdocs-build verdocs-template-attachments,verdocs-build verdocs-template-roles{margin:20px}verdocs-build verdocs-template-fields{border-top:1px solid #777777}verdocs-build verdocs-template-attachments{padding:20px;background:#ffffff}verdocs-build verdocs-template-fields{width:100%}verdocs-build verdocs-preview{-ms-flex:1;flex:1}verdocs-build .preview-container{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;width:100%;background-color:#eeeeee;max-height:100%}@media all and (max-width: 450px){verdocs-build .preview-container{-ms-flex-direction:column;flex-direction:column}}verdocs-build .preview-send-wrapper{display:-ms-flexbox;display:flex;-ms-flex:0 0 300px;flex:0 0 300px;background-color:#ffffff;-webkit-box-shadow:1px 1px 6px -2px rgba(0, 0, 0, 0.4980392157);box-shadow:1px 1px 6px -2px rgba(0, 0, 0, 0.4980392157)}@media all and (max-width: 450px){verdocs-build .preview-send-wrapper{-ms-flex:0;flex:0}}verdocs-build .preview-preview-wrapper{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;overflow-y:scroll}';var VerdocsBuildStyle0=verdocsBuildCss;var VerdocsBuild=function(){function e(e){registerInstance(this,e);this.sdkError=createEvent(this,"sdkError",7);this.stepChanged=createEvent(this,"stepChanged",7);this.send=createEvent(this,"send",7);this.templateUpdated=createEvent(this,"templateUpdated",7);this.templateCreated=createEvent(this,"templateCreated",7);this.rolesUpdated=createEvent(this,"rolesUpdated",7);this.templateListenerId=null;this.endpoint=VerdocsEndpoint.getDefault();this.templateId=null;this.step="preview";this.loading=true;this.template=null}e.prototype.onTemplateIdChanged=function(e,t){if(!t&&e&&this.step==="attachments"){this.step="preview"}this.loadTemplate(e).catch((function(e){return console.log("Unknown Error",e)}))};e.prototype.onStepChanged=function(){this.loadTemplate(this.templateId).catch((function(e){return console.log("Unknown Error",e)}))};e.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,i,n,r,o;return __generator(this,(function(s){try{this.endpoint.loadSession();if(!this.endpoint.session){console.log("[BUILD] Unable to start builder session, must be authenticated");return[2]}if(!this.templateId){console.log("[BUILD] No template ID, activating upload mode");this.step="attachments";return[2]}try{this.loadTemplate(this.templateId).catch((function(e){return console.log("[BUILD] Unable to load template",e)}))}catch(n){console.log("[BUILD] Error loading template",n);(e=this.sdkError)===null||e===void 0?void 0:e.emit(new SDKError(n.message,(t=n.response)===null||t===void 0?void 0:t.status,(i=n.response)===null||i===void 0?void 0:i.data))}}catch(e){console.log("[BUILD] Error with builder session",e);(n=this.sdkError)===null||n===void 0?void 0:n.emit(new SDKError(e.message,(r=e.response)===null||r===void 0?void 0:r.status,(o=e.response)===null||o===void 0?void 0:o.data))}return[2]}))}))};e.prototype.loadTemplate=function(e){return __awaiter(this,void 0,void 0,(function(){var t=this;return __generator(this,(function(i){if(e){Store.subscribe("templates",this.templateId,(function(){return getTemplate(t.endpoint,t.templateId)}),false,(function(e){t.template=e;t.loading=false}))}return[2]}))}))};e.prototype.disconnectedCallback=function(){console.log("[BUILD] Disconnected");this.unlistenToTemplate()};e.prototype.unlistenToTemplate=function(){if(this.templateListenerId){Store.store.delListener(this.templateListenerId);this.templateListenerId=null}};e.prototype.handleCancel=function(){this.step="preview"};e.prototype.handleTemplateCreated=function(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(i){switch(i.label){case 0:return[4,this.loadTemplate(e)];case 1:i.sent();this.templateId=e;this.step="roles";(t=this.stepChanged)===null||t===void 0?void 0:t.emit("roles");return[2]}}))}))};e.prototype.handleRolesUpdated=function(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(i){(t=this.templateUpdated)===null||t===void 0?void 0:t.emit(e.detail);return[2]}))}))};e.prototype.handleTemplateUpdated=function(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(i){(t=this.templateUpdated)===null||t===void 0?void 0:t.emit(e.detail);return[2]}))}))};e.prototype.handleAttachmentsNext=function(){var e;this.step="roles";(e=this.stepChanged)===null||e===void 0?void 0:e.emit("roles")};e.prototype.handleRolesNext=function(){var e;this.step="fields";(e=this.stepChanged)===null||e===void 0?void 0:e.emit("fields")};e.prototype.handleStepChanged=function(e){var t;this.step=e;(t=this.stepChanged)===null||t===void 0?void 0:t.emit(e)};e.prototype.render=function(){var e=this;if(this.loading){return h(Host,{class:"loading"},h("verdocs-loader",null))}if(!this.endpoint.session){return h(Host,null,h("verdocs-component-error",{message:"You must be authenticated to use this module."}))}return h(Host,null,h("div",{class:"content"},h("verdocs-template-build-tabs",{endpoint:this.endpoint,templateId:this.templateId,step:this.step,onSdkError:function(t){var i;return(i=e.sdkError)===null||i===void 0?void 0:i.emit(t.detail)},onStepChanged:function(t){return e.handleStepChanged(t.detail)}}),this.step==="attachments"&&h("verdocs-template-attachments",{templateId:this.templateId,endpoint:this.endpoint,onExit:function(){return e.handleCancel()},onNext:function(){return e.handleAttachmentsNext()},onTemplateUpdated:function(t){return e.handleTemplateUpdated(t)}}),this.step==="roles"&&h("verdocs-template-roles",{templateId:this.templateId,endpoint:this.endpoint,onExit:function(){return e.handleCancel()},onNext:function(){return e.handleRolesNext()},onRolesUpdated:function(t){return e.handleRolesUpdated(t)}}),this.step==="settings"&&h("div",{style:{flexDirection:"column",gap:"20px",display:"flex",maxWidth:"400px",margin:"20px"}},h("verdocs-template-name",{templateId:this.templateId,endpoint:this.endpoint,style:{backgroundColor:"#ffffff",padding:"20px"},onTemplateUpdated:function(t){return e.handleTemplateUpdated(t)}}),h("verdocs-template-reminders",{templateId:this.templateId,endpoint:this.endpoint,style:{backgroundColor:"#ffffff",padding:"20px"},onTemplateUpdated:function(t){return e.handleTemplateUpdated(t)}}),h("verdocs-template-visibility",{templateId:this.templateId,endpoint:this.endpoint,style:{backgroundColor:"#ffffff",padding:"20px"},onTemplateUpdated:function(t){return e.handleTemplateUpdated(t)}})),this.step==="fields"&&h("verdocs-template-fields",{templateId:this.templateId,endpoint:this.endpoint,onTemplateUpdated:function(t){return e.handleTemplateUpdated(t)}}),this.step==="preview"&&h("div",{class:"preview-container"},h("div",{class:"preview-send-wrapper"},h("verdocs-send",{templateId:this.templateId,endpoint:this.endpoint,onSend:function(t){var i;return(i=e.send)===null||i===void 0?void 0:i.emit(t.detail)},style:{width:"100%"}})),h("div",{class:"preview-preview-wrapper"},h("verdocs-preview",{templateId:this.templateId,endpoint:this.endpoint,style:{display:"flex",flex:"1",maxWidth:"1000px"}})))))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{templateId:["onTemplateIdChanged"],step:["onStepChanged"]}},enumerable:false,configurable:true});return e}();VerdocsBuild.style=VerdocsBuildStyle0;export{VerdocsBuild as verdocs_build};
2
2
  //# sourceMappingURL=verdocs-build.entry.js.map