@verdocs/web-sdk 5.0.68 → 5.0.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/dist/cjs/{Datastore-BfoLNIYQ.js → Datastore-Dn_pL6x4.js} +95 -70
  2. package/dist/cjs/Datastore-Dn_pL6x4.js.map +1 -0
  3. package/dist/cjs/en-DyXpAt1T.js +58 -0
  4. package/dist/cjs/en-DyXpAt1T.js.map +1 -0
  5. package/dist/cjs/index-Be9PlTB7.js +6 -2
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/verdocs-build.cjs.entry.js +1 -1
  8. package/dist/cjs/verdocs-checkbox_6.cjs.entry.js +1 -1
  9. package/dist/cjs/{verdocs-contact-picker_2.cjs.entry.js → verdocs-contact-picker.cjs.entry.js} +42 -59
  10. package/dist/cjs/verdocs-contact-picker.cjs.entry.js.map +1 -0
  11. package/dist/cjs/verdocs-contact-picker.entry.cjs.js.map +1 -0
  12. package/dist/cjs/verdocs-date-input.cjs.entry.js +1 -1
  13. package/dist/cjs/verdocs-envelope-recipient-link.cjs.entry.js +1 -1
  14. package/dist/cjs/verdocs-envelope-recipient-summary.cjs.entry.js +1 -1
  15. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +1 -1
  16. package/dist/cjs/verdocs-field-attachment_13.cjs.entry.js +2 -2
  17. package/dist/cjs/verdocs-field-payment.cjs.entry.js +1 -1
  18. package/dist/cjs/verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.cjs.js.map +1 -1
  19. package/dist/cjs/verdocs-kba-dialog_3.cjs.entry.js +8 -7
  20. package/dist/cjs/verdocs-kba-dialog_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/verdocs-menu-panel_2.cjs.entry.js +1 -1
  22. package/dist/cjs/verdocs-multiselect.cjs.entry.js +48 -0
  23. package/dist/cjs/verdocs-multiselect.cjs.entry.js.map +1 -0
  24. package/dist/cjs/verdocs-multiselect.entry.cjs.js.map +1 -0
  25. package/dist/cjs/verdocs-preview_7.cjs.entry.js +1 -1
  26. package/dist/cjs/verdocs-sign.cjs.entry.js +2 -2
  27. package/dist/cjs/verdocs-sign.cjs.entry.js.map +1 -1
  28. package/dist/cjs/verdocs-sign.entry.cjs.js.map +1 -1
  29. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +1 -1
  30. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  31. package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.js +7 -6
  32. package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.js.map +1 -1
  33. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +1 -1
  34. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -1
  35. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.css +8 -0
  36. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js +9 -4
  37. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js.map +1 -1
  38. package/dist/components/{p-6sqLWJCf.js → p-03kDzdlZ.js} +3 -3
  39. package/dist/components/{p-6sqLWJCf.js.map → p-03kDzdlZ.js.map} +1 -1
  40. package/dist/components/{p-cJMs8iXW.js → p-B3KdiIa6.js} +46 -29
  41. package/dist/components/p-B3KdiIa6.js.map +1 -0
  42. package/dist/components/{p-C-l2dmJo.js → p-B6IuryK-.js} +4 -4
  43. package/dist/components/{p-C-l2dmJo.js.map → p-B6IuryK-.js.map} +1 -1
  44. package/dist/components/{p-CdqJfcwh.js → p-B6hVXdpp.js} +3 -3
  45. package/dist/components/{p-CdqJfcwh.js.map → p-B6hVXdpp.js.map} +1 -1
  46. package/dist/components/{p-B8e6Hb7a.js → p-B8HdsDVX.js} +3 -3
  47. package/dist/components/{p-B8e6Hb7a.js.map → p-B8HdsDVX.js.map} +1 -1
  48. package/dist/components/{p-CsnQa5sQ.js → p-BFgewNxB.js} +3 -3
  49. package/dist/components/{p-CsnQa5sQ.js.map → p-BFgewNxB.js.map} +1 -1
  50. package/dist/components/{p-BSopvRgr.js → p-BPEZpcEQ.js} +4 -4
  51. package/dist/components/{p-BSopvRgr.js.map → p-BPEZpcEQ.js.map} +1 -1
  52. package/dist/components/{p-DwHrFqEp.js → p-BWvY2aag.js} +9 -8
  53. package/dist/components/p-BWvY2aag.js.map +1 -0
  54. package/dist/components/{p-r_GHGV6q.js → p-Br5R2YNb.js} +14 -14
  55. package/dist/components/{p-r_GHGV6q.js.map → p-Br5R2YNb.js.map} +1 -1
  56. package/dist/components/{p-tmA3GCaL.js → p-C3_yeGdH.js} +3 -3
  57. package/dist/components/{p-tmA3GCaL.js.map → p-C3_yeGdH.js.map} +1 -1
  58. package/dist/components/{p-B8oLX6-0.js → p-CDTU_UJD.js} +4 -4
  59. package/dist/components/{p-B8oLX6-0.js.map → p-CDTU_UJD.js.map} +1 -1
  60. package/dist/components/{p-C4213J9Q.js → p-CNJfehtH.js} +4 -4
  61. package/dist/components/{p-C4213J9Q.js.map → p-CNJfehtH.js.map} +1 -1
  62. package/dist/components/{p-BqQxZHHz.js → p-CYRrJEue.js} +4 -4
  63. package/dist/components/{p-BqQxZHHz.js.map → p-CYRrJEue.js.map} +1 -1
  64. package/dist/{esm/Datastore-DoY8Nb0Y.js → components/p-C_IIZj49.js} +95 -70
  65. package/dist/components/p-C_IIZj49.js.map +1 -0
  66. package/dist/components/p-CjPsvAbb.js +55 -0
  67. package/dist/components/p-CjPsvAbb.js.map +1 -0
  68. package/dist/components/{p-eXVwQFzY.js → p-Cn4wVEX4.js} +5 -5
  69. package/dist/components/{p-eXVwQFzY.js.map → p-Cn4wVEX4.js.map} +1 -1
  70. package/dist/components/{p-DhrRkOUi.js → p-CqQzEyUV.js} +4 -4
  71. package/dist/components/{p-DhrRkOUi.js.map → p-CqQzEyUV.js.map} +1 -1
  72. package/dist/components/{p-BC9E1lIr.js → p-CsZh6ttH.js} +15 -15
  73. package/dist/components/{p-BC9E1lIr.js.map → p-CsZh6ttH.js.map} +1 -1
  74. package/dist/components/{p-V_QHhgqx.js → p-Cue-TDgY.js} +3 -3
  75. package/dist/components/{p-V_QHhgqx.js.map → p-Cue-TDgY.js.map} +1 -1
  76. package/dist/components/{p-DC--nyvW.js → p-D-4uVyuT.js} +13 -19
  77. package/dist/components/p-D-4uVyuT.js.map +1 -0
  78. package/dist/components/{p-Ch6Kdfra.js → p-DgfjnZPa.js} +4 -4
  79. package/dist/components/{p-Ch6Kdfra.js.map → p-DgfjnZPa.js.map} +1 -1
  80. package/dist/components/{p-CkX7jHYc.js → p-Dh8F4jIe.js} +15 -15
  81. package/dist/components/{p-CkX7jHYc.js.map → p-Dh8F4jIe.js.map} +1 -1
  82. package/dist/components/{p-BVwBJvZX.js → p-Dw5jTBu3.js} +4 -4
  83. package/dist/components/{p-BVwBJvZX.js.map → p-Dw5jTBu3.js.map} +1 -1
  84. package/dist/components/{p-D-T2R8F1.js → p-IcjPGPO7.js} +3 -3
  85. package/dist/components/{p-D-T2R8F1.js.map → p-IcjPGPO7.js.map} +1 -1
  86. package/dist/components/{p-Bd_tIPj6.js → p-iwNYe5a0.js} +4 -4
  87. package/dist/components/{p-Bd_tIPj6.js.map → p-iwNYe5a0.js.map} +1 -1
  88. package/dist/components/{p-BXnjauAt.js → p-z0ZD30Bi.js} +4 -4
  89. package/dist/components/{p-BXnjauAt.js.map → p-z0ZD30Bi.js.map} +1 -1
  90. package/dist/components/verdocs-build.js +51 -57
  91. package/dist/components/verdocs-build.js.map +1 -1
  92. package/dist/components/verdocs-contact-picker.js +1 -1
  93. package/dist/components/verdocs-date-input.js +1 -1
  94. package/dist/components/verdocs-envelope-recipient-link.js +1 -1
  95. package/dist/components/verdocs-envelope-recipient-summary.js +1 -1
  96. package/dist/components/verdocs-envelope-sidebar.js +2 -2
  97. package/dist/components/verdocs-field-attachment.js +1 -1
  98. package/dist/components/verdocs-field-checkbox.js +1 -1
  99. package/dist/components/verdocs-field-date.js +1 -1
  100. package/dist/components/verdocs-field-dropdown.js +1 -1
  101. package/dist/components/verdocs-field-initial.js +1 -1
  102. package/dist/components/verdocs-field-payment.js +2 -2
  103. package/dist/components/verdocs-field-radio.js +1 -1
  104. package/dist/components/verdocs-field-signature.js +1 -1
  105. package/dist/components/verdocs-field-textarea.js +1 -1
  106. package/dist/components/verdocs-field-textbox.js +1 -1
  107. package/dist/components/verdocs-field-timestamp.js +1 -1
  108. package/dist/components/verdocs-kba-dialog.js +1 -1
  109. package/dist/components/verdocs-multiselect.js +67 -1
  110. package/dist/components/verdocs-multiselect.js.map +1 -1
  111. package/dist/components/verdocs-preview.js +1 -1
  112. package/dist/components/verdocs-send.js +1 -1
  113. package/dist/components/verdocs-sign.js +4 -4
  114. package/dist/components/verdocs-sign.js.map +1 -1
  115. package/dist/components/verdocs-template-attachments.js +1 -1
  116. package/dist/components/verdocs-template-build-tabs.js +1 -1
  117. package/dist/components/verdocs-template-document-page.js +1 -1
  118. package/dist/components/verdocs-template-field-properties.js +1 -1
  119. package/dist/components/verdocs-template-fields.js +1 -1
  120. package/dist/components/verdocs-template-role-properties.js +1 -1
  121. package/dist/components/verdocs-template-roles.js +1 -1
  122. package/dist/components/verdocs-template-settings.js +1 -1
  123. package/dist/components/verdocs-view.js +1 -1
  124. package/dist/{components/p-DoY8Nb0Y.js → esm/Datastore-C_IIZj49.js} +95 -70
  125. package/dist/esm/Datastore-C_IIZj49.js.map +1 -0
  126. package/dist/esm/en-bsV5YfOZ.js +55 -0
  127. package/dist/esm/en-bsV5YfOZ.js.map +1 -0
  128. package/dist/esm/index-CF7i8guW.js +6 -2
  129. package/dist/esm/loader.js +1 -1
  130. package/dist/esm/verdocs-build.entry.js +1 -1
  131. package/dist/esm/verdocs-checkbox_6.entry.js +1 -1
  132. package/dist/esm/{verdocs-contact-picker_2.entry.js → verdocs-contact-picker.entry.js} +45 -61
  133. package/dist/esm/verdocs-contact-picker.entry.js.map +1 -0
  134. package/dist/esm/verdocs-date-input.entry.js +1 -1
  135. package/dist/esm/verdocs-envelope-recipient-link.entry.js +1 -1
  136. package/dist/esm/verdocs-envelope-recipient-summary.entry.js +1 -1
  137. package/dist/esm/verdocs-envelope-sidebar.entry.js +1 -1
  138. package/dist/esm/verdocs-field-attachment_13.entry.js +2 -2
  139. package/dist/esm/verdocs-field-payment.entry.js +1 -1
  140. package/dist/esm/verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.js.map +1 -1
  141. package/dist/esm/verdocs-kba-dialog_3.entry.js +8 -7
  142. package/dist/esm/verdocs-kba-dialog_3.entry.js.map +1 -1
  143. package/dist/esm/verdocs-menu-panel_2.entry.js +1 -1
  144. package/dist/{components/p-DpbDLSke.js → esm/verdocs-multiselect.entry.js} +9 -35
  145. package/dist/esm/verdocs-multiselect.entry.js.map +1 -0
  146. package/dist/esm/verdocs-preview_7.entry.js +1 -1
  147. package/dist/esm/verdocs-sign.entry.js +2 -2
  148. package/dist/esm/verdocs-sign.entry.js.map +1 -1
  149. package/dist/esm/verdocs-template-document-page_2.entry.js +1 -1
  150. package/dist/esm/verdocs-web-sdk.js +1 -1
  151. package/dist/esm-es5/Datastore-C_IIZj49.js +2 -0
  152. package/dist/esm-es5/Datastore-C_IIZj49.js.map +1 -0
  153. package/dist/esm-es5/en-bsV5YfOZ.js +2 -0
  154. package/dist/esm-es5/en-bsV5YfOZ.js.map +1 -0
  155. package/dist/esm-es5/index-CF7i8guW.js +1 -1
  156. package/dist/esm-es5/loader.js +1 -1
  157. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  158. package/dist/esm-es5/verdocs-checkbox_6.entry.js +1 -1
  159. package/dist/esm-es5/verdocs-contact-picker.entry.js +3 -0
  160. package/dist/esm-es5/verdocs-contact-picker.entry.js.map +1 -0
  161. package/dist/esm-es5/verdocs-date-input.entry.js +1 -1
  162. package/dist/esm-es5/verdocs-envelope-recipient-link.entry.js +1 -1
  163. package/dist/esm-es5/verdocs-envelope-recipient-summary.entry.js +1 -1
  164. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  165. package/dist/esm-es5/verdocs-field-attachment_13.entry.js +1 -1
  166. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  167. package/dist/esm-es5/verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.js.map +1 -1
  168. package/dist/esm-es5/verdocs-kba-dialog_3.entry.js +1 -1
  169. package/dist/esm-es5/verdocs-kba-dialog_3.entry.js.map +1 -1
  170. package/dist/esm-es5/verdocs-menu-panel_2.entry.js +1 -1
  171. package/dist/esm-es5/verdocs-multiselect.entry.js +2 -0
  172. package/dist/esm-es5/verdocs-multiselect.entry.js.map +1 -0
  173. package/dist/esm-es5/verdocs-preview_7.entry.js +2 -2
  174. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  175. package/dist/esm-es5/verdocs-sign.entry.js.map +1 -1
  176. package/dist/esm-es5/verdocs-template-document-page_2.entry.js +1 -1
  177. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  178. package/dist/verdocs-web-sdk/{p-e6f5cbbe.system.entry.js → p-00c62312.system.entry.js} +2 -2
  179. package/dist/verdocs-web-sdk/p-193b964f.system.entry.js +2 -0
  180. package/dist/verdocs-web-sdk/p-193b964f.system.entry.js.map +1 -0
  181. package/dist/verdocs-web-sdk/{p-2d0c05c1.system.entry.js → p-1d0463ad.system.entry.js} +2 -2
  182. package/dist/verdocs-web-sdk/{p-88b0232b.entry.js → p-1d4a39c2.entry.js} +2 -2
  183. package/dist/verdocs-web-sdk/p-218440e6.entry.js +2 -0
  184. package/dist/verdocs-web-sdk/p-218440e6.entry.js.map +1 -0
  185. package/dist/verdocs-web-sdk/{p-0ceb7cd4.entry.js → p-255c74a9.entry.js} +2 -2
  186. package/dist/verdocs-web-sdk/{p-d0241754.entry.js → p-2d5f5512.entry.js} +2 -2
  187. package/dist/verdocs-web-sdk/p-2d5f5512.entry.js.map +1 -0
  188. package/dist/verdocs-web-sdk/p-344a038b.system.entry.js +2 -0
  189. package/dist/verdocs-web-sdk/p-344a038b.system.entry.js.map +1 -0
  190. package/dist/verdocs-web-sdk/{p-bc6e84b9.system.entry.js → p-3bf5dfcb.system.entry.js} +2 -2
  191. package/dist/verdocs-web-sdk/p-3e4a6587.system.entry.js +4 -0
  192. package/dist/verdocs-web-sdk/p-3e4a6587.system.entry.js.map +1 -0
  193. package/dist/verdocs-web-sdk/{p-78df8d91.system.entry.js → p-3fc4da27.system.entry.js} +2 -2
  194. package/dist/verdocs-web-sdk/{p-16906b7a.entry.js → p-5355587b.entry.js} +2 -2
  195. package/dist/verdocs-web-sdk/{p-7d2ab3db.entry.js → p-5f2740be.entry.js} +2 -2
  196. package/dist/verdocs-web-sdk/{p-bdc67903.entry.js → p-6331769c.entry.js} +2 -2
  197. package/dist/verdocs-web-sdk/{p-c9af5cf9.entry.js → p-7926e0ed.entry.js} +3 -3
  198. package/dist/verdocs-web-sdk/p-7e91292a.entry.js +3 -0
  199. package/dist/verdocs-web-sdk/p-7e91292a.entry.js.map +1 -0
  200. package/dist/verdocs-web-sdk/{p-dee55b42.system.entry.js → p-821becae.system.entry.js} +2 -2
  201. package/dist/verdocs-web-sdk/{p-d47f4d23.entry.js → p-894e2058.entry.js} +2 -2
  202. package/dist/verdocs-web-sdk/{p-859d52e2.system.entry.js → p-9bb9f4e6.system.entry.js} +2 -2
  203. package/dist/verdocs-web-sdk/p-9bb9f4e6.system.entry.js.map +1 -0
  204. package/dist/verdocs-web-sdk/{p-DSTAw9l4.system.js.map → p-BQeD2Uzl.system.js.map} +1 -1
  205. package/dist/verdocs-web-sdk/{p-DQ1Zj0_z.system.js.map → p-BZkYMpVF.system.js.map} +1 -1
  206. package/dist/verdocs-web-sdk/{p-CzmLBKRk.system.js.map → p-BhRjT9GK.system.js.map} +1 -1
  207. package/dist/verdocs-web-sdk/p-C06jLDFm.system.js +2 -0
  208. package/dist/verdocs-web-sdk/p-C06jLDFm.system.js.map +1 -0
  209. package/dist/verdocs-web-sdk/p-CMiFaQiI.system.js +2 -0
  210. package/dist/verdocs-web-sdk/p-CMiFaQiI.system.js.map +1 -0
  211. package/dist/verdocs-web-sdk/{p-BJDbn5Ed.system.js.map → p-CTKsneFq.system.js.map} +1 -1
  212. package/dist/verdocs-web-sdk/p-C_IIZj49.js +2 -0
  213. package/dist/verdocs-web-sdk/p-C_IIZj49.js.map +1 -0
  214. package/dist/verdocs-web-sdk/p-ChsPMrfV.system.js.map +1 -0
  215. package/dist/verdocs-web-sdk/p-CjPsvAbb.js +2 -0
  216. package/dist/verdocs-web-sdk/p-CjPsvAbb.js.map +1 -0
  217. package/dist/verdocs-web-sdk/{p-C2cdldyg.system.js.map → p-CuaH0Jft.system.js.map} +1 -1
  218. package/dist/verdocs-web-sdk/p-CwXSduhy.system.js +1 -1
  219. package/dist/verdocs-web-sdk/{p-DhaSvwdv.system.js.map → p-D-adB9Pb.system.js.map} +1 -1
  220. package/dist/verdocs-web-sdk/p-DFxwv7XE.system.js.map +1 -0
  221. package/dist/verdocs-web-sdk/{p-DDS4V5ZK.system.js.map → p-DG0Ibgqe.system.js.map} +1 -1
  222. package/dist/verdocs-web-sdk/{p-CNa6mh_8.system.js.map → p-DKkhksIM.system.js.map} +1 -1
  223. package/dist/verdocs-web-sdk/{p-BrqmuN9l.system.js.map → p-DZurf5no.system.js.map} +1 -1
  224. package/dist/verdocs-web-sdk/{p-DWMXHuqC.system.js.map → p-DjtXr8Iv.system.js.map} +1 -1
  225. package/dist/verdocs-web-sdk/p-Do6RqOUO.system.js.map +1 -0
  226. package/dist/verdocs-web-sdk/p-DwPw01KR.system.js.map +1 -0
  227. package/dist/verdocs-web-sdk/{p-BiZ1leAS.system.js.map → p-SFqGy6JR.system.js.map} +1 -1
  228. package/dist/verdocs-web-sdk/{p-3b89252b.system.entry.js → p-a231248c.system.entry.js} +2 -2
  229. package/dist/verdocs-web-sdk/p-aa6faf0b.entry.js +2 -0
  230. package/dist/verdocs-web-sdk/p-aa6faf0b.entry.js.map +1 -0
  231. package/dist/verdocs-web-sdk/{p-1d54970e.entry.js → p-b720bffc.entry.js} +2 -2
  232. package/dist/verdocs-web-sdk/{p-81dddc8a.entry.js → p-c8369ea0.entry.js} +2 -2
  233. package/dist/verdocs-web-sdk/{p-051e37bd.entry.js → p-caf258c9.entry.js} +2 -2
  234. package/dist/verdocs-web-sdk/{p-12c72957.system.entry.js → p-cfbef482.system.entry.js} +2 -2
  235. package/dist/verdocs-web-sdk/{p-4fd77f5f.entry.js → p-d0bc16f9.entry.js} +2 -2
  236. package/dist/verdocs-web-sdk/{p-be1f9f8d.system.entry.js → p-d16c03d8.system.entry.js} +2 -2
  237. package/dist/verdocs-web-sdk/{p-863008ff.system.entry.js → p-db22e373.system.entry.js} +2 -2
  238. package/dist/verdocs-web-sdk/{p-6b6597e9.system.entry.js → p-eb539d8f.system.entry.js} +2 -2
  239. package/dist/verdocs-web-sdk/{p-442f07c0.system.entry.js → p-ecefb50c.system.entry.js} +2 -2
  240. package/dist/verdocs-web-sdk/verdocs-contact-picker.entry.esm.js.map +1 -0
  241. package/dist/verdocs-web-sdk/verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.esm.js.map +1 -1
  242. package/dist/verdocs-web-sdk/verdocs-multiselect.entry.esm.js.map +1 -0
  243. package/dist/verdocs-web-sdk/verdocs-sign.entry.esm.js.map +1 -1
  244. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  245. package/package.json +4 -4
  246. package/dist/cjs/Datastore-BfoLNIYQ.js.map +0 -1
  247. package/dist/cjs/en-Bst8Ux93.js +0 -58
  248. package/dist/cjs/en-Bst8Ux93.js.map +0 -1
  249. package/dist/cjs/verdocs-contact-picker.verdocs-multiselect.entry.cjs.js.map +0 -1
  250. package/dist/cjs/verdocs-contact-picker_2.cjs.entry.js.map +0 -1
  251. package/dist/components/p-CcnD3LWl.js +0 -55
  252. package/dist/components/p-CcnD3LWl.js.map +0 -1
  253. package/dist/components/p-DC--nyvW.js.map +0 -1
  254. package/dist/components/p-DoY8Nb0Y.js.map +0 -1
  255. package/dist/components/p-DpbDLSke.js.map +0 -1
  256. package/dist/components/p-DwHrFqEp.js.map +0 -1
  257. package/dist/components/p-cJMs8iXW.js.map +0 -1
  258. package/dist/esm/Datastore-DoY8Nb0Y.js.map +0 -1
  259. package/dist/esm/en-XchZmzEI.js +0 -55
  260. package/dist/esm/en-XchZmzEI.js.map +0 -1
  261. package/dist/esm/verdocs-contact-picker.verdocs-multiselect.entry.js.map +0 -1
  262. package/dist/esm/verdocs-contact-picker_2.entry.js.map +0 -1
  263. package/dist/esm-es5/Datastore-DoY8Nb0Y.js +0 -2
  264. package/dist/esm-es5/Datastore-DoY8Nb0Y.js.map +0 -1
  265. package/dist/esm-es5/en-XchZmzEI.js +0 -2
  266. package/dist/esm-es5/en-XchZmzEI.js.map +0 -1
  267. package/dist/esm-es5/verdocs-contact-picker.verdocs-multiselect.entry.js.map +0 -1
  268. package/dist/esm-es5/verdocs-contact-picker_2.entry.js +0 -3
  269. package/dist/esm-es5/verdocs-contact-picker_2.entry.js.map +0 -1
  270. package/dist/verdocs-web-sdk/p-22539b25.system.entry.js +0 -4
  271. package/dist/verdocs-web-sdk/p-22539b25.system.entry.js.map +0 -1
  272. package/dist/verdocs-web-sdk/p-5badc484.entry.js +0 -3
  273. package/dist/verdocs-web-sdk/p-5badc484.entry.js.map +0 -1
  274. package/dist/verdocs-web-sdk/p-77c06e74.system.entry.js +0 -2
  275. package/dist/verdocs-web-sdk/p-77c06e74.system.entry.js.map +0 -1
  276. package/dist/verdocs-web-sdk/p-859d52e2.system.entry.js.map +0 -1
  277. package/dist/verdocs-web-sdk/p-BRa25llh.system.js +0 -2
  278. package/dist/verdocs-web-sdk/p-BRa25llh.system.js.map +0 -1
  279. package/dist/verdocs-web-sdk/p-BlaEjWtc.system.js.map +0 -1
  280. package/dist/verdocs-web-sdk/p-CVsPzFQE.system.js.map +0 -1
  281. package/dist/verdocs-web-sdk/p-CcnD3LWl.js +0 -2
  282. package/dist/verdocs-web-sdk/p-CcnD3LWl.js.map +0 -1
  283. package/dist/verdocs-web-sdk/p-CuPoNgC8.system.js.map +0 -1
  284. package/dist/verdocs-web-sdk/p-DoY8Nb0Y.js +0 -2
  285. package/dist/verdocs-web-sdk/p-DoY8Nb0Y.js.map +0 -1
  286. package/dist/verdocs-web-sdk/p-DxhKOFVd.system.js +0 -2
  287. package/dist/verdocs-web-sdk/p-DxhKOFVd.system.js.map +0 -1
  288. package/dist/verdocs-web-sdk/p-a508dd16.entry.js +0 -2
  289. package/dist/verdocs-web-sdk/p-a508dd16.entry.js.map +0 -1
  290. package/dist/verdocs-web-sdk/p-d0241754.entry.js.map +0 -1
  291. package/dist/verdocs-web-sdk/verdocs-contact-picker.verdocs-multiselect.entry.esm.js.map +0 -1
  292. /package/dist/verdocs-web-sdk/{p-e6f5cbbe.system.entry.js.map → p-00c62312.system.entry.js.map} +0 -0
  293. /package/dist/verdocs-web-sdk/{p-2d0c05c1.system.entry.js.map → p-1d0463ad.system.entry.js.map} +0 -0
  294. /package/dist/verdocs-web-sdk/{p-88b0232b.entry.js.map → p-1d4a39c2.entry.js.map} +0 -0
  295. /package/dist/verdocs-web-sdk/{p-0ceb7cd4.entry.js.map → p-255c74a9.entry.js.map} +0 -0
  296. /package/dist/verdocs-web-sdk/{p-bc6e84b9.system.entry.js.map → p-3bf5dfcb.system.entry.js.map} +0 -0
  297. /package/dist/verdocs-web-sdk/{p-78df8d91.system.entry.js.map → p-3fc4da27.system.entry.js.map} +0 -0
  298. /package/dist/verdocs-web-sdk/{p-16906b7a.entry.js.map → p-5355587b.entry.js.map} +0 -0
  299. /package/dist/verdocs-web-sdk/{p-7d2ab3db.entry.js.map → p-5f2740be.entry.js.map} +0 -0
  300. /package/dist/verdocs-web-sdk/{p-bdc67903.entry.js.map → p-6331769c.entry.js.map} +0 -0
  301. /package/dist/verdocs-web-sdk/{p-c9af5cf9.entry.js.map → p-7926e0ed.entry.js.map} +0 -0
  302. /package/dist/verdocs-web-sdk/{p-dee55b42.system.entry.js.map → p-821becae.system.entry.js.map} +0 -0
  303. /package/dist/verdocs-web-sdk/{p-d47f4d23.entry.js.map → p-894e2058.entry.js.map} +0 -0
  304. /package/dist/verdocs-web-sdk/{p-3b89252b.system.entry.js.map → p-a231248c.system.entry.js.map} +0 -0
  305. /package/dist/verdocs-web-sdk/{p-1d54970e.entry.js.map → p-b720bffc.entry.js.map} +0 -0
  306. /package/dist/verdocs-web-sdk/{p-81dddc8a.entry.js.map → p-c8369ea0.entry.js.map} +0 -0
  307. /package/dist/verdocs-web-sdk/{p-051e37bd.entry.js.map → p-caf258c9.entry.js.map} +0 -0
  308. /package/dist/verdocs-web-sdk/{p-12c72957.system.entry.js.map → p-cfbef482.system.entry.js.map} +0 -0
  309. /package/dist/verdocs-web-sdk/{p-4fd77f5f.entry.js.map → p-d0bc16f9.entry.js.map} +0 -0
  310. /package/dist/verdocs-web-sdk/{p-be1f9f8d.system.entry.js.map → p-d16c03d8.system.entry.js.map} +0 -0
  311. /package/dist/verdocs-web-sdk/{p-863008ff.system.entry.js.map → p-db22e373.system.entry.js.map} +0 -0
  312. /package/dist/verdocs-web-sdk/{p-6b6597e9.system.entry.js.map → p-eb539d8f.system.entry.js.map} +0 -0
  313. /package/dist/verdocs-web-sdk/{p-442f07c0.system.entry.js.map → p-ecefb50c.system.entry.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- var __awaiter=this&&this.__awaiter||function(n,r,t,u){function e(n){return n instanceof t?n:new t((function(r){r(n)}))}return new(t||(t=Promise))((function(t,i){function a(n){try{f(u.next(n))}catch(n){i(n)}}function o(n){try{f(u["throw"](n))}catch(n){i(n)}}function f(n){n.done?t(n.value):e(n.value).then(a,o)}f((u=u.apply(n,r||[])).next())}))};var __generator=this&&this.__generator||function(n,r){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},u,e,i,a;return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(n){return function(r){return f([n,r])}}function f(o){if(u)throw new TypeError("Generator is already executing.");while(a&&(a=0,o[0]&&(t=0)),t)try{if(u=1,e&&(i=o[0]&2?e["return"]:o[0]?e["throw"]||((i=e["return"])&&i.call(e),0):e.next)&&!(i=i.call(e,o[1])).done)return i;if(e=0,i)o=[o[0]&2,i.value];switch(o[0]){case 0:case 1:i=o;break;case 4:t.label++;return{value:o[1],done:false};case 5:t.label++;e=o[1];o=[0];continue;case 7:o=t.ops.pop();t.trys.pop();continue;default:if(!(i=t.trys,i=i.length>0&&i[i.length-1])&&(o[0]===6||o[0]===2)){t=0;continue}if(o[0]===3&&(!i||o[1]>i[0]&&o[1]<i[3])){t.label=o[1];break}if(o[0]===6&&t.label<i[1]){t.label=i[1];i=o;break}if(i&&t.label<i[2]){t.label=i[2];t.ops.push(o);break}if(i[2])t.ops.pop();t.trys.pop();continue}o=r.call(n,t)}catch(n){o=[6,n];e=0}finally{u=i=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(n,r,t){if(t||arguments.length===2)for(var u=0,e=r.length,i;u<e;u++){if(i||!(u in r)){if(!i)i=Array.prototype.slice.call(r,0,u);i[u]=r[u]}}return n.concat(i||Array.prototype.slice.call(r))};System.register(["@verdocs/js-sdk"],(function(n){"use strict";var r;return{setters:[function(n){r=n.getTemplate}],execute:function(){var t=function(n){return typeof n};var u="";var e=t(u);var i=t(true);var a=t(0);var o=t(t);var f="type";var v="default";var c="Listener";var l="add";var s="Has";var d="Ids";var _="Table";var h=_+"s";var p=_+d;var y="Row";var b=y+"Count";var g=y+d;var w="Cell";var T=w+d;var S="Value";var m=S+"s";var A=S+d;var C=function(n){return u+n};var V=isFinite;var I=function(n,r){return n instanceof r};var R=function(n){return n==void 0};var J=function(n,r,t){return R(n)?t===null||t===void 0?void 0:t():r(n)};var L=function(n){return n==e||n==i};var E=function(n){return t(n)==o};var O=function(n){return Array.isArray(n)};var j=function(n,r,t){return n.slice(r,t)};var k=function(n){return n.length};var x=function(n,r){return n.test(r)};var N=function(n,r){return n.includes(r)};var F=function(n,r){return n.every(r)};var M=function(n,r){return k(n)===k(r)&&F(n,(function(n,t){return r[t]===n}))};var P=function(n,r){return n.sort(r)};var D=function(n,r){return n.forEach(r)};var G=function(n,r){return n.map(r)};var H=function(n,r,t){return n.reduce(r,t)};var W=function(n){var r=[];for(var t=1;t<arguments.length;t++){r[t-1]=arguments[t]}return n.push.apply(n,r)};var $=function(n){return n.shift()};var q=function(n){var r=t(n);return L(r)||r==a&&V(n)?r:void 0};var z=function(n,r,t,u,e){return R(e)?n.delCell(r,t,u,true):n.setCell(r,t,u,e)};var B=function(n,r,t){return R(t)?n.delValue(r):n.setValue(r,t)};var K=function(n){return function(r){return H(rn(r),(function(r,t){return r+n(t)}),0)}};var Q=function(n){var r;return(r=n===null||n===void 0?void 0:n.size)!==null&&r!==void 0?r:0};var U=K(Q);var X=K(U);var Y=K(X);var Z=function(n,r){var t;return(t=n===null||n===void 0?void 0:n.has(r))!==null&&t!==void 0?t:false};var nn=function(n){return R(n)||Q(n)==0};var rn=function(n){var r;return __spreadArray([],(r=n===null||n===void 0?void 0:n.values())!==null&&r!==void 0?r:[],true)};var tn=function(n){return n.clear()};var un=function(n,r){return n===null||n===void 0?void 0:n.forEach(r)};var en=function(n,r){return n===null||n===void 0?void 0:n.delete(r)};var an=Object;var on=function(n){return an.getPrototypeOf(n)};var fn=an.entries;var vn=an.isFrozen;var cn=function(n){return!R(n)&&J(on(n),(function(n){return n==an.prototype||R(on(n))}),(function(){return true}))};var ln=an.keys;var sn=an.freeze;var dn=function(n){if(n===void 0){n=[]}return an.fromEntries(n)};var _n=function(n,r){return r in n};var hn=function(n,r){delete n[r];return n};var pn=function(n,r){return D(fn(n),(function(n){var t=n[0],u=n[1];return r(u,t)}))};var yn=function(n,r){return G(fn(n),(function(n){var t=n[0],u=n[1];return r(u,t)}))};var bn=function(n,r){return dn(yn(n,(function(n,t){return[t,r(n,t)]})))};var gn=function(n){return k(ln(n))};var wn=function(n){return cn(n)&&gn(n)==0};var Tn=function(n,r,t,u){if(u===void 0){u=0}if(R(n)||!cn(n)||!u&&wn(n)||vn(n)){t===null||t===void 0?void 0:t();return false}pn(n,(function(t,u){if(!r(t,u)){hn(n,u)}}));return u?true:!wn(n)};var Sn=function(n){return new Map(n)};var mn=function(n){var r;return __spreadArray([],(r=n===null||n===void 0?void 0:n.keys())!==null&&r!==void 0?r:[],true)};var An=function(n,r){return n===null||n===void 0?void 0:n.get(r)};var Cn=function(n,r){return un(n,(function(n,t){return r(t,n)}))};var Vn=function(n,r){var t;return G(__spreadArray([],(t=n===null||n===void 0?void 0:n.entries())!==null&&t!==void 0?t:[],true),(function(n){var t=n[0],u=n[1];return r(u,t)}))};var In=function(n,r,t){return R(t)?(en(n,r),n):n===null||n===void 0?void 0:n.set(r,t)};var Rn=function(n,r,t,u){if(!Z(n,r)){In(n,r,t())}else{u===null||u===void 0?void 0:u(An(n,r))}return An(n,r)};var Jn=function(n,r,t,u){if(u===void 0){u=In}bn(r,(function(r,u){return t(n,u,r)}));Cn(n,(function(t){return _n(r,t)?0:u(n,t)}));return n};var Ln=function(n,r,t,u){var e={};un(n,(function(n,i){if(!(t===null||t===void 0?void 0:t(n,i))){var a=r?r(n,i):n;if(!(u===null||u===void 0?void 0:u(a))){e[i]=a}}}));return e};var En=function(n,r,t){return Ln(n,(function(n){return Ln(n,r,t)}),nn,wn)};var On=function(n,r,t){return Ln(n,(function(n){return En(n,r,t)}),nn,wn)};var jn=function(n,r){var t=Sn();un(n,(function(n,u){var e;return t.set(u,(e=r===null||r===void 0?void 0:r(n))!==null&&e!==void 0?e:n)}));return t};var kn=function(n){return jn(n,jn)};var xn=function(n){return jn(n,kn)};var Nn=function(n,r,t,u,e){if(e===void 0){e=0}return J((t?Rn:An)(n,r[e],e>k(r)-2?t:Sn),(function(i){if(e>k(r)-2){if(u===null||u===void 0?void 0:u(i)){In(n,r[e])}return i}var a=Nn(i,r,t,u,e+1);if(nn(i)){In(n,r[e])}return a}))};var Fn=function(n){return new Set(O(n)||R(n)?n:[n])};var Mn=function(n,r){return n===null||n===void 0?void 0:n.add(r)};var Pn=/^\d+$/;var Dn=function(){var n=[];var r=0;return[function(t){var e;return(e=t?$(n):null)!==null&&e!==void 0?e:u+r++},function(r){if(x(Pn,r)&&k(n)<1e3){W(n,r)}}]};var Gn=function(n,r){if(r===void 0){r=[u]}var t=[];var e=function(n,u){return u==k(r)?W(t,n):r[u]===null?un(n,(function(n){return e(n,u+1)})):D([r[u],null],(function(r){return e(An(n,r),u+1)}))};e(n,0);return t};var Hn=function(n){var r;var t=Dn(),e=t[0],i=t[1];var a=Sn();var o=function(t,i,o,f,v){if(f===void 0){f=[]}if(v===void 0){v=function(){return[]}}r!==null&&r!==void 0?r:r=n();var c=e(1);In(a,c,[t,i,o,f,v]);Mn(Nn(i,o!==null&&o!==void 0?o:[u],Fn),c);return c};var f=function(n,t){var u=[];for(var e=2;e<arguments.length;e++){u[e-2]=arguments[e]}return D(Gn(n,t),(function(n){return un(n,(function(n){var e;return(e=An(a,n))[0].apply(e,__spreadArray(__spreadArray([r],t!==null&&t!==void 0?t:[],false),u,false))}))}))};var v=function(n){return J(An(a,n),(function(r){var t=r[1],e=r[2];Nn(t,e!==null&&e!==void 0?e:[u],void 0,(function(r){en(r,n);return nn(r)?1:0}));In(a,n);i(n);return e}))};var c=function(n){return J(An(a,n),(function(n){var t=n[0],u=n[2],e=u===void 0?[]:u,i=n[3],a=n[4];var o=function(){var n,u;var f=[];for(var v=0;v<arguments.length;v++){f[v]=arguments[v]}var c=k(f);if(c==k(e)){t.apply(void 0,__spreadArray(__spreadArray([r],f,false),a(f),false))}else if(R(e[c])){D((u=(n=i[c])===null||n===void 0?void 0:n.call.apply(n,__spreadArray([i],f,false)))!==null&&u!==void 0?u:[],(function(n){return o.apply(void 0,__spreadArray(__spreadArray([],f,false),[n],false))}))}else{o.apply(void 0,__spreadArray(__spreadArray([],f,false),[e[c]],false))}};o()}))};return[o,f,v,c]};var Wn=function(n,r){return(n!==null&&n!==void 0?n:0)<(r!==null&&r!==void 0?r:0)?-1:1};var $n=JSON.stringify;var qn=JSON.parse;var zn=function(n){return $n(n,(function(n,r){return I(r,Map)?an.fromEntries(__spreadArray([],r,true)):r}))};var Bn=function(n){return[n,n]};var Kn=function(n,r){if(r===void 0){r=U}return r(n[0])+r(n[1])};var Qn=function(){return[Sn(),Sn()]};var Un=function(n){return __spreadArray([],n,true)};var Xn=function(n){var r=n[0],t=n[1];return r===t};var Yn=function(n,r,t){return In(n,r,An(n,r)==-t?void 0:t)};var Zn=function(){var n;var r;var t;var u=false;var e=false;var i=0;var o=[];var d=Sn();var V=Sn();var I=Sn();var k=Sn();var x=Sn();var F=Sn();var H=Sn();var $=Sn();var K=Sn();var rn=Sn();var an=Sn();var on=Sn();var fn=Sn();var vn=Sn();var cn=Fn();var ln=Sn();var dn=Sn();var pn=Sn();var yn=Sn();var gn=Qn();var Nn=Qn();var Pn=Qn();var Gn=Qn();var $n=Qn();var nr=Qn();var rr=Qn();var tr=Qn();var ur=Qn();var er=Qn();var ir=Qn();var ar=Qn();var or=Qn();var fr=Qn();var vr=Qn();var cr=Qn();var lr=Qn();var sr=Qn();var dr=Qn();var _r=Qn();var hr=Qn();var pr=Qn();var yr=Sn();var br=Qn();var gr=Hn((function(){return ju})),wr=gr[0],Tr=gr[1],Sr=gr[2],mr=gr[3];var Ar=function(n){return Tn(n,(function(n){return Tn(n,Vr)}))};var Cr=function(n){return Tn(n,Vr)};var Vr=function(n){if(!Tn(n,(function(n,r){return N([f,v],r)}))){return false}var r=n[f];if(!L(r)&&r!=a){return false}if(q(n[v])!=r){hn(n,v)}return true};var Ir=O;var Rr=function(n){return Tn(n,Jr,at)};var Jr=function(n,t){return(!r||Z(an,t)||at(t))&&Tn(n,(function(n,r){return Lr(t,r,n)}),(function(){return at(t)}))};var Lr=function(n,r,t,u){return Tn(u?t:kr(t,n,r),(function(u,e){return J(Er(n,r,e,u),(function(n){t[e]=n;return true}),(function(){return false}))}),(function(){return at(n,r)}))};var Er=function(n,t,u,e){return r?J(An(An(an,n),u),(function(r){return q(e)!=r[f]?at(n,t,u,e,r[v]):e}),(function(){return at(n,t,u,e)})):R(q(e))?at(n,t,u,e):e};var Or=function(n,r){return Tn(r?n:xr(n),(function(r,t){return J(jr(t,r),(function(r){n[t]=r;return true}),(function(){return false}))}),(function(){return ot()}))};var jr=function(n,r){return t?J(An(fn,n),(function(t){return q(r)!=t[f]?ot(n,r,t[v]):r}),(function(){return ot(n,r)})):R(q(r))?ot(n,r):r};var kr=function(n,r,t){J(An(on,r),(function(u){var e=u[0],i=u[1];un(e,(function(r,t){if(!_n(n,t)){n[t]=r}}));un(i,(function(u){if(!_n(n,u)){at(r,t,u)}}))}));return n};var xr=function(n){if(t){un(vn,(function(r,t){if(!_n(n,t)){n[t]=r}}));un(cn,(function(r){if(!_n(n,r)){ot(r)}}))}return n};var Nr=function(n){return Jn(an,n,(function(n,r,t){var u=Sn();var e=Fn();Jn(Rn(an,r,Sn),t,(function(n,r,t){In(n,r,t);J(t[v],(function(n){return In(u,r,n)}),(function(){return Mn(e,r)}))}));In(on,r,[u,e])}),(function(n,r){In(an,r);In(on,r)}))};var Fr=function(n){return Jn(fn,n,(function(n,r,t){In(fn,r,t);J(t[v],(function(n){return In(vn,r,n)}),(function(){return Mn(cn,r)}))}),(function(n,r){In(fn,r);In(vn,r);en(cn,r)}))};var Mr=function(n){return wn(n)?au():$t(n)};var Pr=function(n){var r=n[0],t=n[1];(wn(r)?au:$t)(r);(wn(t)?cu:Ut)(t)};var Dr=function(n){return Jn(pn,n,(function(n,r,t){return Gr(r,t)}),(function(n,r){return Ur(r)}))};var Gr=function(n,r){return Jn(Rn(pn,n,(function(){nt(n,1);In(ln,n,Dn());In(dn,n,Sn());return Sn()})),r,(function(r,t,u){return Hr(n,r,t,u)}),(function(r,t){return Xr(n,r,t)}))};var Hr=function(n,r,t,u,e){return Jn(Rn(r,t,(function(){rt(n,t,1);return Sn()})),u,(function(r,u,e){return Wr(n,t,r,u,e)}),(function(u,i){return Yr(n,r,t,u,i,e)}))};var Wr=function(n,r,t,u,e){if(!Z(t,u)){tt(n,r,u,1)}var i=An(t,u);if(e!==i){ut(n,r,u,i,e);In(t,u,e)}};var $r=function(n,r,t,u,e){return J(An(r,t),(function(r){return Wr(n,t,r,u,e)}),(function(){var i;return Hr(n,r,t,kr((i={},i[u]=e,i),n,t))}))};var qr=function(n){return wn(n)?cu():Ut(n)};var zr=function(n){return Jn(yn,n,(function(n,r,t){return Br(r,t)}),(function(n,r){return Zr(r)}))};var Br=function(n,r){if(!Z(yn,n)){et(n,1)}var t=An(yn,n);if(r!==t){it(n,t,r);In(yn,n,r)}};var Kr=function(n,r){var t=An(ln,n)[0];var u;do{u=t(r)}while(Z(An(pn,n),u));return u};var Qr=function(n){var r;return(r=An(pn,n))!==null&&r!==void 0?r:Gr(n,{})};var Ur=function(n){return Gr(n,{})};var Xr=function(n,r,t){var u=An(ln,n),e=u[1];e(t);Hr(n,r,t,{},true)};var Yr=function(n,r,t,u,e,i){var a;var o=An((a=An(on,n))===null||a===void 0?void 0:a[0],e);if(!R(o)&&!i){return Wr(n,t,u,e,o)}var f=function(r){ut(n,t,r,An(u,r));tt(n,t,r,-1);In(u,r)};if(R(o)){f(e)}else{Cn(u,f)}if(nn(u)){rt(n,t,-1);if(nn(In(r,t))){nt(n,-1);In(pn,n);In(ln,n);In(dn,n)}}};var Zr=function(n){var r=An(vn,n);if(!R(r)){return Br(n,r)}it(n,An(yn,n));et(n,-1);In(yn,n)};var nt=function(n,r){return Yn(d,n,r)};var rt=function(n,r,t){return Yn(Rn(k,n,Sn),r,t)&&In(I,n,Rn(I,n,(function(){return 0}))+t)};var tt=function(n,r,t,u){var e;var i=An(dn,n);var a=(e=An(i,t))!==null&&e!==void 0?e:0;if(a==0&&u==1||a==1&&u==-1){Yn(Rn(V,n,Sn),t,u)}In(i,t,a!=-u?a+u:null);Yn(Rn(Rn(x,n,Sn),r,Sn),t,u)};var ut=function(n,r,t,u,e){var i;Rn(Rn(Rn(F,n,Sn),r,Sn),t,(function(){return[u,0]}))[1]=e;(i=o[3])===null||i===void 0?void 0:i.call(o,n,r,t,e)};var et=function(n,r){return Yn(H,n,r)};var it=function(n,r,t){var u;Rn($,n,(function(){return[r,0]}))[1]=t;(u=o[4])===null||u===void 0?void 0:u.call(o,n,t)};var at=function(n,r,t,u,e){W(Rn(Rn(Rn(K,n,Sn),r,Sn),t,(function(){return[]})),u);return e};var ot=function(n,r,t){W(Rn(rn,n,(function(){return[]})),r);return t};var ft=function(n,r,t){return J(An(An(An(F,n),r),t),(function(n){var r=n[0],t=n[1];return[true,r,t]}),(function(){return __spreadArray([false],Bn(Vt(n,r,t)),true)}))};var vt=function(n){return J(An($,n),(function(n){var r=n[0],t=n[1];return[true,r,t]}),(function(){return __spreadArray([false],Bn(Jt(n)),true)}))};var ct=function(n){return!nn(K)&&!nn(cr[n])?un(n?xn(K):K,(function(r,t){return un(r,(function(r,u){return un(r,(function(r,e){return Tr(cr[n],[t,u,e],r)}))}))})):0};var lt=function(n){return!nn(rn)&&!nn(lr[n])?un(n?jn(rn):rn,(function(r,t){return Tr(lr[n],[t],r)})):0};var st=function(n,r,t,u){if(!nn(n)){Tr(r,u,(function(){return Ln(n)}));Cn(n,(function(n,r){return Tr(t,__spreadArray(__spreadArray([],u!==null&&u!==void 0?u:[],true),[n],false),r==1)}));return 1}};var dt=function(n){var r=Lt();if(r!=u){Tr(gn[n],void 0,r)}var t=nn(er[n]);var e=nn(or[n])&&nn(fr[n])&&nn(ur[n])&&nn(ir[n])&&nn(nr[n])&&nn(rr[n])&&nn(tr[n])&&t&&nn(Pn[n])&&nn(Gn[n]);var i=nn(vr[n])&&nn(ar[n])&&nn($n[n])&&nn(Nn[n]);if(!e||!i){var a=n?[jn(d),kn(V),jn(I),kn(k),xn(x),xn(F)]:[d,V,I,k,x,F];if(!e){st(a[0],Pn[n],Gn[n]);un(a[1],(function(r,t){return st(r,nr[n],rr[n],[t])}));un(a[2],(function(r,t){if(r!=0){Tr(tr[n],[t],Tt(t))}}));var o=Fn();un(a[3],(function(r,u){if(st(r,ur[n],ir[n],[u])&&!t){Tr(er[n],[u,null]);Mn(o,u)}}));if(!t){un(a[5],(function(r,t){if(!Z(o,t)){var u=Fn();un(r,(function(n){return un(n,(function(r,t){var e=r[0],i=r[1];return i!==e?Mn(u,t):en(n,t)}))}));un(u,(function(r){return Tr(er[n],[t,r])}))}}))}un(a[4],(function(r,t){return un(r,(function(r,u){return st(r,or[n],fr[n],[t,u])}))}))}if(!i){var f;un(a[5],(function(r,t){var u;un(r,(function(r,e){var i;un(r,(function(r,a){var o=r[0],v=r[1];if(v!==o){Tr(vr[n],[t,e,a],v,o,ft);f=u=i=1}}));if(i){Tr(ar[n],[t,e],ft)}}));if(u){Tr($n[n],[t],ft)}}));if(f){Tr(Nn[n],void 0,ft)}}}};var _t=function(n){var r=xt();if(r!=e){Tr(sr[n],void 0,r)}var t=nn(_r[n])&&nn(hr[n]);var u=nn(pr[n])&&nn(dr[n]);if(!t||!u){var i=n?[jn(H),jn($)]:[H,$];if(!t){st(i[0],_r[n],hr[n])}if(!u){var a;un(i[1],(function(r,t){var u=r[0],e=r[1];if(e!==u){Tr(pr[n],[t],e,u,vt);a=1}}));if(a){Tr(dr[n],void 0,vt)}}}};var ht=function(n){var r=[];for(var t=1;t<arguments.length;t++){r[t-1]=arguments[t]}hu((function(){return n.apply(void 0,G(r,C))}));return ju};var pt=function(){return[yt(),It()]};var yt=function(){return On(pn)};var bt=function(){return mn(pn)};var gt=function(n){return En(An(pn,C(n)))};var wt=function(n){return mn(An(dn,C(n)))};var Tt=function(n){return Q(An(pn,C(n)))};var St=function(n){return mn(An(pn,C(n)))};var mt=function(n,r,t,u,e){if(u===void 0){u=0}return G(j(P(Vn(An(pn,C(n)),(function(n,t){return[R(r)?t:An(n,C(r)),t]})),(function(n,r){var u=n[0];var e=r[0];return Wn(u,e)*(t?-1:1)})),u,R(e)?e:u+e),(function(n){var r=n[1];return r}))};var At=function(n,r){return Ln(An(An(pn,C(n)),C(r)))};var Ct=function(n,r){return mn(An(An(pn,C(n)),C(r)))};var Vt=function(n,r,t){return An(An(An(pn,C(n)),C(r)),C(t))};var It=function(){return Ln(yn)};var Rt=function(){return mn(yn)};var Jt=function(n){return An(yn,C(n))};var Lt=function(){return!nn(pn)};var Et=function(n){return Z(pn,C(n))};var Ot=function(n,r){return Z(An(dn,C(n)),C(r))};var jt=function(n,r){return Z(An(pn,C(n)),C(r))};var kt=function(n,r,t){return Z(An(An(pn,C(n)),C(r)),C(t))};var xt=function(){return!nn(yn)};var Nt=function(n){return Z(yn,C(n))};var Ft=function(){return zn(pn)};var Mt=function(){return zn(yn)};var Pt=function(){return zn([pn,yn])};var Dt=function(){return zn(an)};var Gt=function(){return zn(fn)};var Ht=function(){return zn([an,fn])};var Wt=function(n){return ht((function(){var r=E(n)?n():n;if(Ir(r)){Pr(r)}}))};var $t=function(n){return ht((function(){return Rr(n)?Dr(n):0}))};var qt=function(n,r){return ht((function(n){return Jr(r,n)?Gr(n,r):0}),n)};var zt=function(n,r,t){return ht((function(n,r){return Lr(n,r,t)?Hr(n,Qr(n),r,t):0}),n,r)};var Bt=function(n,r,t){if(t===void 0){t=true}return hu((function(){var u=void 0;if(Lr(n,u,r)){n=C(n);Hr(n,Qr(n),u=Kr(n,t?1:0),r)}return u}))};var Kt=function(n,r,t){return ht((function(n,r){if(Lr(n,r,t,1)){var u=Qr(n);bn(t,(function(t,e){return $r(n,u,r,e,t)}))}}),n,r)};var Qt=function(n,r,t,u){return ht((function(n,r,t){return J(Er(n,r,t,E(u)?u(Vt(n,r,t)):u),(function(u){return $r(n,Qr(n),r,t,u)}))}),n,r,t)};var Ut=function(n){return ht((function(){return Or(n)?zr(n):0}))};var Xt=function(n){return ht((function(){return Or(n,1)?bn(n,(function(n,r){return Br(r,n)})):0}))};var Yt=function(n,r){return ht((function(n){return J(jr(n,E(r)?r(Jt(n)):r),(function(r){return Br(n,r)}))}),n)};var Zt=function(n){return ht((function(){bn(n[0],(function(n,r){return R(n)?ou(r):bn(n,(function(n,t){return R(n)?fu(r,t):bn(n,(function(n,u){return z(ju,r,t,u,n)}))}))}));bn(n[1],(function(n,r){return B(ju,r,n)}))}))};var nu=function(n){try{Mr(qn(n))}catch(n){}return ju};var ru=function(n){try{qr(qn(n))}catch(n){}return ju};var tu=function(n){return ht((function(){try{var r=qn(n),t=r[0],u=r[1];Mr(t);qr(u)}catch(r){nu(n)}}))};var uu=function(n){return ht((function(){if(r=Ar(n)){Nr(n);if(!nn(pn)){var t=yt();au();$t(t)}}}))};var eu=function(n){return ht((function(){if(t=Cr(n)){var r=It();du();cu();t=true;Fr(n);Ut(r)}}))};var iu=function(n,r){return ht((function(){uu(n);eu(r)}))};var au=function(){return ht((function(){return Dr({})}))};var ou=function(n){return ht((function(n){return Z(pn,n)?Ur(n):0}),n)};var fu=function(n,r){return ht((function(n,r){return J(An(pn,n),(function(t){return Z(t,r)?Xr(n,t,r):0}))}),n,r)};var vu=function(n,r,t,u){return ht((function(n,r,t){return J(An(pn,n),(function(e){return J(An(e,r),(function(i){return Z(i,t)?Yr(n,e,r,i,t,u):0}))}))}),n,r,t)};var cu=function(){return ht((function(){return zr({})}))};var lu=function(n){return ht((function(n){return Z(yn,n)?Zr(n):0}),n)};var su=function(){return ht((function(){Nr({});r=false}))};var du=function(){return ht((function(){Fr({});t=false}))};var _u=function(){return ht((function(){su();du()}))};var hu=function(n,r){if(i!=-1){pu();var t=n();gu(r);return t}};var pu=function(){var n;if(i!=-1){i++}if(i==1){(n=o[0])===null||n===void 0?void 0:n.call(o);Tr(yr)}return ju};var yu=function(){return[Ln(F,(function(n,r){return An(d,r)===-1?void 0:Ln(n,(function(n,t){return An(An(k,r),t)===-1?void 0:Ln(n,(function(n){var r=n[1];return r}),(function(n){return Xn(n)}))}),nn,wn)}),nn,wn),Ln($,(function(n){var r=n[1];return r}),(function(n){return Xn(n)})),1]};var bu=function(){return[!nn(F),!nn($),On(F,Un,Xn),On(K),Ln($,Un,Xn),Ln(rn),Ln(d),En(k),On(x),Ln(H)]};var gu=function(n){var r,t;if(i>0){i--;if(i==0){i=1;ct(1);if(!nn(F)){dt(1)}lt(1);if(!nn($)){_t(1)}if(n===null||n===void 0?void 0:n(ju)){un(F,(function(n,r){return un(n,(function(n,t){return un(n,(function(n,u){var e=n[0];return z(ju,r,t,u,e)}))}))}));tn(F);un($,(function(n,r){var t=n[0];return B(ju,r,t)}));tn($)}Tr(br[0],void 0);i=-1;ct(0);if(!nn(F)){dt(0)}lt(0);if(!nn($)){_t(0)}(r=o[1])===null||r===void 0?void 0:r.call(o);Tr(br[1],void 0);(t=o[2])===null||t===void 0?void 0:t.call(o);i=0;u=Lt();e=xt();D([d,V,I,k,x,F,K,H,$,rn],tn)}}return ju};var wu=function(n){return un(pn,(function(r,t){return n(t,(function(n){return un(r,(function(r,t){return n(t,(function(n){return Cn(r,n)}))}))}))}))};var Tu=function(n,r){return Cn(An(dn,C(n)),r)};var Su=function(n,r){return un(An(pn,C(n)),(function(n,t){return r(t,(function(r){return Cn(n,r)}))}))};var mu=function(n,r,t){return Cn(An(An(pn,C(n)),C(r)),t)};var Au=function(n){return Cn(yn,n)};var Cu=function(n,r,t,u,e,i,a){var o=mt(n,r,t,u,e);return wr((function(){var a=mt(n,r,t,u,e);if(!M(a,o)){o=a;i(ju,n,r,t,u,e,o)}}),er[a?1:0],[n,r],[bt])};var Vu=function(n){return wr(n,yr)};var Iu=function(n){return wr(n,br[0])};var Ru=function(n){return wr(n,br[1])};var Ju=function(n){mr(n);return ju};var Lu=function(n){Sr(n);return ju};var Eu=function(){return{hasTables:Kn(gn),tables:Kn(Nn),tableIds:Kn(Pn),hasTable:Kn(Gn),table:Kn($n),tableCellIds:Kn(nr),hasTableCell:Kn(rr,X),rowCount:Kn(tr),rowIds:Kn(ur),sortedRowIds:Kn(er),hasRow:Kn(ir,X),row:Kn(ar,X),cellIds:Kn(or,X),hasCell:Kn(fr,Y),cell:Kn(vr,Y),invalidCell:Kn(cr,Y),hasValues:Kn(sr),values:Kn(dr),valueIds:Kn(_r),hasValue:Kn(hr),value:Kn(pr),invalidValue:Kn(lr),transaction:U(yr)+Kn(br)}};var Ou=function(n,r,t,u,e){return o=[n,r,t,u,e]};var ju={getContent:pt,getTables:yt,getTableIds:bt,getTable:gt,getTableCellIds:wt,getRowCount:Tt,getRowIds:St,getSortedRowIds:mt,getRow:At,getCellIds:Ct,getCell:Vt,getValues:It,getValueIds:Rt,getValue:Jt,hasTables:Lt,hasTable:Et,hasTableCell:Ot,hasRow:jt,hasCell:kt,hasValues:xt,hasValue:Nt,getTablesJson:Ft,getValuesJson:Mt,getJson:Pt,getTablesSchemaJson:Dt,getValuesSchemaJson:Gt,getSchemaJson:Ht,hasTablesSchema:function(){return r},hasValuesSchema:function(){return t},setContent:Wt,setTables:$t,setTable:qt,setRow:zt,addRow:Bt,setPartialRow:Kt,setCell:Qt,setValues:Ut,setPartialValues:Xt,setValue:Yt,applyChanges:Zt,setTablesJson:nu,setValuesJson:ru,setJson:tu,setTablesSchema:uu,setValuesSchema:eu,setSchema:iu,delTables:au,delTable:ou,delRow:fu,delCell:vu,delValues:cu,delValue:lu,delTablesSchema:su,delValuesSchema:du,delSchema:_u,transaction:hu,startTransaction:pu,getTransactionChanges:yu,getTransactionLog:bu,finishTransaction:gu,forEachTable:wu,forEachTableCell:Tu,forEachRow:Su,forEachCell:mu,forEachValue:Au,addSortedRowIdsListener:Cu,addStartTransactionListener:Vu,addWillFinishTransactionListener:Iu,addDidFinishTransactionListener:Ru,callListener:Ju,delListener:Lu,getListenerStats:Eu,isMergeable:function(){return false},createStore:Zn,addListener:wr,callListeners:Tr,setInternalListeners:Ou};bn((n={},n[s+h]=[0,gn,[],function(){return[Lt()]}],n[h]=[0,Nn],n[p]=[0,Pn],n[s+_]=[1,Gn,[bt],function(n){return[Et.apply(void 0,n)]}],n[_]=[1,$n,[bt]],n[_+T]=[1,nr,[bt]],n[s+_+w]=[2,rr,[bt,wt],function(n){return[Ot.apply(void 0,n)]}],n[b]=[1,tr,[bt]],n[g]=[1,ur,[bt]],n[s+y]=[2,ir,[bt,St],function(n){return[jt.apply(void 0,n)]}],n[y]=[2,ar,[bt,St]],n[T]=[2,or,[bt,St]],n[s+w]=[3,fr,[bt,St,Ct],function(n){return[kt.apply(void 0,n)]}],n[w]=[3,vr,[bt,St,Ct],function(n){return Bn(Vt.apply(void 0,n))}],n.InvalidCell=[3,cr],n[s+m]=[0,sr,[],function(){return[xt()]}],n[m]=[0,dr],n[A]=[0,_r],n[s+S]=[1,hr,[Rt],function(n){return[Nt.apply(void 0,n)]}],n[S]=[1,pr,[Rt],function(n){return Bn(Jt(n[0]))}],n.InvalidValue=[1,lr],n),(function(n,r){var t=n[0],u=n[1],e=n[2],i=n[3];ju[l+r+c]=function(){var n=[];for(var r=0;r<arguments.length;r++){n[r]=arguments[r]}return wr(n[t],u[n[t+1]?1:0],t>0?j(n,0,t):void 0,e,i)}}));return sn(ju)};var nr=Zn();nr.delTables();nr.delValues();var rr=function(n,r){try{return JSON.parse(n)}catch(n){return r||null}};var tr=function(n){var r={};for(var t in n){if(typeof n[t]==="string"||typeof n[t]==="number"||typeof n[t]==="boolean"){r[t]=n[t]}else if(n[t]===null){r["__null__".concat(t)]=""}else if(Array.isArray(n[t])){r["__array__".concat(t)]=JSON.stringify(n[t])}else if(typeof n[t]==="object"){r["__object__".concat(t)]=JSON.stringify(n[t])}}return r};var ur=function(n){var r={};for(var t in n){if(t.startsWith("__null__")){r[t.replace("__null__","")]=null}else if(typeof n[t]==="string"&&t.startsWith("__array__")){r[t.replace("__array__","")]=rr(n[t])}else if(typeof n[t]==="string"&&t.startsWith("__object__")){r[t.replace("__object__","")]=rr(n[t])}else{r[t]=n[t]}}return r};var er=n("S",{store:nr,subscribe:function(n,r,t,u,e){if(nr.hasRow(n,r)){e(ur(nr.getRow(n,r)))}var i=nr.addRowListener(n,r,(function(){var t=nr.getRow(n,r);e(ur(t))}));if(!nr.hasRow(n,r)||u){console.log("[STORE] Loading/reloading",{tableId:n,rowId:r});t().then((function(t){nr.setRow(n,r,tr(t))})).catch((function(t){console.error("[STORE] Error getting row",{tableId:n,rowId:r,forceReload:u},t)}))}return i},unsubscribe:function(n){nr.delListener(n)},getTemplate:function(n,t){return __awaiter(this,arguments,void 0,(function(n,t,u){var e,i;if(u===void 0){u=false}return __generator(this,(function(a){switch(a.label){case 0:if(!u){if(!nr.hasRow("templates",t)){return[2,null]}e=nr.getRow("templates",t);return[2,ur(e)]}return[4,r(n,t)];case 1:i=a.sent();console.log("[STORE] Reloading template",i);nr.setRow("templates",t,tr(i));return[2,i]}}))}))},updateTemplate:function(n,r){nr.setRow("templates",n,tr(r));return r},getEnvelope:function(n,t){return __awaiter(this,arguments,void 0,(function(n,t,u){var e,i;if(u===void 0){u=false}return __generator(this,(function(a){switch(a.label){case 0:if(!u){if(!nr.hasRow("envelopes",t)){return[2,null]}e=nr.getRow("envelopes",t);return[2,ur(e)]}return[4,r(n,t)];case 1:i=a.sent();nr.setRow("envelopes",t,tr(i));return[2,i]}}))}))},updateEnvelope:function(n,r){nr.setRow("envelopes",n,tr(r));return r},getField:function(n,r,t,u){if(n==="template"){var e=nr.getRow("templates",r);var i=ur(e);var a=(i.fields||[]).find((function(n){return n.name===t}));var o=(i.roles||[]).map((function(n){return n.name}));var f=o.findIndex((function(n){return n===a.role_name}));return{index:Math.max(f,0),field:u||a}}else{var e=nr.getRow("envelopes",r);var v=ur(e);var c=(v.fields||[]).find((function(n){return n.name===t}));var o=(v.recipients||[]).map((function(n){return n.role_name}));var f=o.findIndex((function(n){return n===c.role_name}));return{index:f,field:u||c}}}})}}}));
2
- //# sourceMappingURL=p-BRa25llh.system.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"p-BRa25llh.system.js","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 == void 0;\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 = () => void 0;\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 getCellOrValueType = (cellOrValue) => {\n const type = getTypeOf(cellOrValue);\n return isTypeStringOrBoolean(type) ||\n (type == NUMBER && isFiniteNumber(cellOrValue))\n ? type\n : void 0;\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 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 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 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 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 : void 0;\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 : void 0;\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], void 0, (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 = void 0;\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 = void 0;\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, void 0]);\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 void 0,\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 ? void 0\n : ([id1], [id2]) => sliceIdSorter(id1, id2);\n setDefinitionAndListen(\n indexId,\n tableId,\n (\n change,\n changedSliceIds,\n changedSortKeys,\n sliceIdOrIdsByRowId,\n sortKeys,\n force,\n ) => {\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(\n mapGet(sliceIdOrIdsByRowId, rowId),\n (sliceIdOrIds) =>\n arrayForEach(\n isArray(sliceIdOrIds) ? sliceIdOrIds : [sliceIdOrIds],\n (sliceId) => setAdd(unsortedSlices, sliceId),\n ),\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 ? void 0 : metric),\n (metric, add, remove) =>\n remove == metric ? void 0 : mathMax(add, metric),\n ],\n ],\n [\n MIN,\n [\n (numbers) => mathMin(...numbers),\n (metric, add) => mathMin(add, metric),\n (metric, remove) => (remove == metric ? void 0 : metric),\n (metric, add, remove) =>\n remove == metric ? void 0 : 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 void 0;\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 ? void 0\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 = void 0;\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 ? void 0 : 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, void 0, ([, 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(), void 0, 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) ? void 0 : 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 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 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 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 idsChanged = (changedIds, id2, addedOrRemoved) =>\n mapSet(\n changedIds,\n id2,\n mapGet(changedIds, id2) == -addedOrRemoved ? void 0 : 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], void 0, 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], void 0, getCellChange);\n }\n }\n }\n };\n const callValuesListenersForChanges = (mutator) => {\n const hasValuesNow = hasValues();\n if (hasValuesNow != hadValues) {\n callListeners(hasValuesListeners[mutator], void 0, 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], void 0, 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 = void 0;\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 ? void 0\n : mapToObj(\n table,\n (row, rowId) =>\n mapGet(mapGet(changedRowIds, tableId), rowId) === -1\n ? void 0\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], void 0);\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], void 0);\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) : void 0,\n pathGetters,\n extraArgsGetter,\n );\n },\n );\n return objFreeze(store);\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 void 0,\n 1,\n ),\n ),\n void 0,\n 1,\n ),\n ),\n void 0,\n 1,\n ),\n ) &&\n stampValidate(mergeableContent[1], (values) =>\n objValidate(\n values,\n (value) => stampValidate(value, isCellOrValueOrNullOrUndefined),\n void 0,\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 = EMPTY_STRING, incomingThingHash = 0], thingId) => {\n const thingStampMap = mapEnsure(thingStampMaps, thingId, () => [\n void 0,\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();\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"],"names":[],"mappings":"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","x_google_ignoreList":[0]}