@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.
- package/dist/cjs/{Datastore-BfoLNIYQ.js → Datastore-Dn_pL6x4.js} +95 -70
- package/dist/cjs/Datastore-Dn_pL6x4.js.map +1 -0
- package/dist/cjs/en-DyXpAt1T.js +58 -0
- package/dist/cjs/en-DyXpAt1T.js.map +1 -0
- package/dist/cjs/index-Be9PlTB7.js +6 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/verdocs-build.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-checkbox_6.cjs.entry.js +1 -1
- package/dist/cjs/{verdocs-contact-picker_2.cjs.entry.js → verdocs-contact-picker.cjs.entry.js} +42 -59
- package/dist/cjs/verdocs-contact-picker.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-contact-picker.entry.cjs.js.map +1 -0
- package/dist/cjs/verdocs-date-input.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-envelope-recipient-link.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-envelope-recipient-summary.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-field-attachment_13.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-payment.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.cjs.js.map +1 -1
- package/dist/cjs/verdocs-kba-dialog_3.cjs.entry.js +8 -7
- package/dist/cjs/verdocs-kba-dialog_3.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-menu-panel_2.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-multiselect.cjs.entry.js +48 -0
- package/dist/cjs/verdocs-multiselect.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-multiselect.entry.cjs.js.map +1 -0
- package/dist/cjs/verdocs-preview_7.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-sign.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-sign.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-sign.entry.cjs.js.map +1 -1
- package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
- package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.js +7 -6
- package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.js.map +1 -1
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +1 -1
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -1
- package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.css +8 -0
- package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js +9 -4
- package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js.map +1 -1
- package/dist/components/{p-6sqLWJCf.js → p-03kDzdlZ.js} +3 -3
- package/dist/components/{p-6sqLWJCf.js.map → p-03kDzdlZ.js.map} +1 -1
- package/dist/components/{p-cJMs8iXW.js → p-B3KdiIa6.js} +46 -29
- package/dist/components/p-B3KdiIa6.js.map +1 -0
- package/dist/components/{p-C-l2dmJo.js → p-B6IuryK-.js} +4 -4
- package/dist/components/{p-C-l2dmJo.js.map → p-B6IuryK-.js.map} +1 -1
- package/dist/components/{p-CdqJfcwh.js → p-B6hVXdpp.js} +3 -3
- package/dist/components/{p-CdqJfcwh.js.map → p-B6hVXdpp.js.map} +1 -1
- package/dist/components/{p-B8e6Hb7a.js → p-B8HdsDVX.js} +3 -3
- package/dist/components/{p-B8e6Hb7a.js.map → p-B8HdsDVX.js.map} +1 -1
- package/dist/components/{p-CsnQa5sQ.js → p-BFgewNxB.js} +3 -3
- package/dist/components/{p-CsnQa5sQ.js.map → p-BFgewNxB.js.map} +1 -1
- package/dist/components/{p-BSopvRgr.js → p-BPEZpcEQ.js} +4 -4
- package/dist/components/{p-BSopvRgr.js.map → p-BPEZpcEQ.js.map} +1 -1
- package/dist/components/{p-DwHrFqEp.js → p-BWvY2aag.js} +9 -8
- package/dist/components/p-BWvY2aag.js.map +1 -0
- package/dist/components/{p-r_GHGV6q.js → p-Br5R2YNb.js} +14 -14
- package/dist/components/{p-r_GHGV6q.js.map → p-Br5R2YNb.js.map} +1 -1
- package/dist/components/{p-tmA3GCaL.js → p-C3_yeGdH.js} +3 -3
- package/dist/components/{p-tmA3GCaL.js.map → p-C3_yeGdH.js.map} +1 -1
- package/dist/components/{p-B8oLX6-0.js → p-CDTU_UJD.js} +4 -4
- package/dist/components/{p-B8oLX6-0.js.map → p-CDTU_UJD.js.map} +1 -1
- package/dist/components/{p-C4213J9Q.js → p-CNJfehtH.js} +4 -4
- package/dist/components/{p-C4213J9Q.js.map → p-CNJfehtH.js.map} +1 -1
- package/dist/components/{p-BqQxZHHz.js → p-CYRrJEue.js} +4 -4
- package/dist/components/{p-BqQxZHHz.js.map → p-CYRrJEue.js.map} +1 -1
- package/dist/{esm/Datastore-DoY8Nb0Y.js → components/p-C_IIZj49.js} +95 -70
- package/dist/components/p-C_IIZj49.js.map +1 -0
- package/dist/components/p-CjPsvAbb.js +55 -0
- package/dist/components/p-CjPsvAbb.js.map +1 -0
- package/dist/components/{p-eXVwQFzY.js → p-Cn4wVEX4.js} +5 -5
- package/dist/components/{p-eXVwQFzY.js.map → p-Cn4wVEX4.js.map} +1 -1
- package/dist/components/{p-DhrRkOUi.js → p-CqQzEyUV.js} +4 -4
- package/dist/components/{p-DhrRkOUi.js.map → p-CqQzEyUV.js.map} +1 -1
- package/dist/components/{p-BC9E1lIr.js → p-CsZh6ttH.js} +15 -15
- package/dist/components/{p-BC9E1lIr.js.map → p-CsZh6ttH.js.map} +1 -1
- package/dist/components/{p-V_QHhgqx.js → p-Cue-TDgY.js} +3 -3
- package/dist/components/{p-V_QHhgqx.js.map → p-Cue-TDgY.js.map} +1 -1
- package/dist/components/{p-DC--nyvW.js → p-D-4uVyuT.js} +13 -19
- package/dist/components/p-D-4uVyuT.js.map +1 -0
- package/dist/components/{p-Ch6Kdfra.js → p-DgfjnZPa.js} +4 -4
- package/dist/components/{p-Ch6Kdfra.js.map → p-DgfjnZPa.js.map} +1 -1
- package/dist/components/{p-CkX7jHYc.js → p-Dh8F4jIe.js} +15 -15
- package/dist/components/{p-CkX7jHYc.js.map → p-Dh8F4jIe.js.map} +1 -1
- package/dist/components/{p-BVwBJvZX.js → p-Dw5jTBu3.js} +4 -4
- package/dist/components/{p-BVwBJvZX.js.map → p-Dw5jTBu3.js.map} +1 -1
- package/dist/components/{p-D-T2R8F1.js → p-IcjPGPO7.js} +3 -3
- package/dist/components/{p-D-T2R8F1.js.map → p-IcjPGPO7.js.map} +1 -1
- package/dist/components/{p-Bd_tIPj6.js → p-iwNYe5a0.js} +4 -4
- package/dist/components/{p-Bd_tIPj6.js.map → p-iwNYe5a0.js.map} +1 -1
- package/dist/components/{p-BXnjauAt.js → p-z0ZD30Bi.js} +4 -4
- package/dist/components/{p-BXnjauAt.js.map → p-z0ZD30Bi.js.map} +1 -1
- package/dist/components/verdocs-build.js +51 -57
- package/dist/components/verdocs-build.js.map +1 -1
- package/dist/components/verdocs-contact-picker.js +1 -1
- package/dist/components/verdocs-date-input.js +1 -1
- package/dist/components/verdocs-envelope-recipient-link.js +1 -1
- package/dist/components/verdocs-envelope-recipient-summary.js +1 -1
- package/dist/components/verdocs-envelope-sidebar.js +2 -2
- package/dist/components/verdocs-field-attachment.js +1 -1
- package/dist/components/verdocs-field-checkbox.js +1 -1
- package/dist/components/verdocs-field-date.js +1 -1
- package/dist/components/verdocs-field-dropdown.js +1 -1
- package/dist/components/verdocs-field-initial.js +1 -1
- package/dist/components/verdocs-field-payment.js +2 -2
- package/dist/components/verdocs-field-radio.js +1 -1
- package/dist/components/verdocs-field-signature.js +1 -1
- package/dist/components/verdocs-field-textarea.js +1 -1
- package/dist/components/verdocs-field-textbox.js +1 -1
- package/dist/components/verdocs-field-timestamp.js +1 -1
- package/dist/components/verdocs-kba-dialog.js +1 -1
- package/dist/components/verdocs-multiselect.js +67 -1
- package/dist/components/verdocs-multiselect.js.map +1 -1
- package/dist/components/verdocs-preview.js +1 -1
- package/dist/components/verdocs-send.js +1 -1
- package/dist/components/verdocs-sign.js +4 -4
- package/dist/components/verdocs-sign.js.map +1 -1
- package/dist/components/verdocs-template-attachments.js +1 -1
- package/dist/components/verdocs-template-build-tabs.js +1 -1
- package/dist/components/verdocs-template-document-page.js +1 -1
- package/dist/components/verdocs-template-field-properties.js +1 -1
- package/dist/components/verdocs-template-fields.js +1 -1
- package/dist/components/verdocs-template-role-properties.js +1 -1
- package/dist/components/verdocs-template-roles.js +1 -1
- package/dist/components/verdocs-template-settings.js +1 -1
- package/dist/components/verdocs-view.js +1 -1
- package/dist/{components/p-DoY8Nb0Y.js → esm/Datastore-C_IIZj49.js} +95 -70
- package/dist/esm/Datastore-C_IIZj49.js.map +1 -0
- package/dist/esm/en-bsV5YfOZ.js +55 -0
- package/dist/esm/en-bsV5YfOZ.js.map +1 -0
- package/dist/esm/index-CF7i8guW.js +6 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/verdocs-build.entry.js +1 -1
- package/dist/esm/verdocs-checkbox_6.entry.js +1 -1
- package/dist/esm/{verdocs-contact-picker_2.entry.js → verdocs-contact-picker.entry.js} +45 -61
- package/dist/esm/verdocs-contact-picker.entry.js.map +1 -0
- package/dist/esm/verdocs-date-input.entry.js +1 -1
- package/dist/esm/verdocs-envelope-recipient-link.entry.js +1 -1
- package/dist/esm/verdocs-envelope-recipient-summary.entry.js +1 -1
- package/dist/esm/verdocs-envelope-sidebar.entry.js +1 -1
- package/dist/esm/verdocs-field-attachment_13.entry.js +2 -2
- package/dist/esm/verdocs-field-payment.entry.js +1 -1
- package/dist/esm/verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.js.map +1 -1
- package/dist/esm/verdocs-kba-dialog_3.entry.js +8 -7
- package/dist/esm/verdocs-kba-dialog_3.entry.js.map +1 -1
- package/dist/esm/verdocs-menu-panel_2.entry.js +1 -1
- package/dist/{components/p-DpbDLSke.js → esm/verdocs-multiselect.entry.js} +9 -35
- package/dist/esm/verdocs-multiselect.entry.js.map +1 -0
- package/dist/esm/verdocs-preview_7.entry.js +1 -1
- package/dist/esm/verdocs-sign.entry.js +2 -2
- package/dist/esm/verdocs-sign.entry.js.map +1 -1
- package/dist/esm/verdocs-template-document-page_2.entry.js +1 -1
- package/dist/esm/verdocs-web-sdk.js +1 -1
- package/dist/esm-es5/Datastore-C_IIZj49.js +2 -0
- package/dist/esm-es5/Datastore-C_IIZj49.js.map +1 -0
- package/dist/esm-es5/en-bsV5YfOZ.js +2 -0
- package/dist/esm-es5/en-bsV5YfOZ.js.map +1 -0
- package/dist/esm-es5/index-CF7i8guW.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/verdocs-build.entry.js +1 -1
- package/dist/esm-es5/verdocs-checkbox_6.entry.js +1 -1
- package/dist/esm-es5/verdocs-contact-picker.entry.js +3 -0
- package/dist/esm-es5/verdocs-contact-picker.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-date-input.entry.js +1 -1
- package/dist/esm-es5/verdocs-envelope-recipient-link.entry.js +1 -1
- package/dist/esm-es5/verdocs-envelope-recipient-summary.entry.js +1 -1
- package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-attachment_13.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
- package/dist/esm-es5/verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-kba-dialog_3.entry.js +1 -1
- package/dist/esm-es5/verdocs-kba-dialog_3.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-menu-panel_2.entry.js +1 -1
- package/dist/esm-es5/verdocs-multiselect.entry.js +2 -0
- package/dist/esm-es5/verdocs-multiselect.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-preview_7.entry.js +2 -2
- package/dist/esm-es5/verdocs-sign.entry.js +1 -1
- package/dist/esm-es5/verdocs-sign.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-template-document-page_2.entry.js +1 -1
- package/dist/esm-es5/verdocs-web-sdk.js +1 -1
- package/dist/verdocs-web-sdk/{p-e6f5cbbe.system.entry.js → p-00c62312.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-193b964f.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-193b964f.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-2d0c05c1.system.entry.js → p-1d0463ad.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-88b0232b.entry.js → p-1d4a39c2.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-218440e6.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-218440e6.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-0ceb7cd4.entry.js → p-255c74a9.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-d0241754.entry.js → p-2d5f5512.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-2d5f5512.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-344a038b.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-344a038b.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-bc6e84b9.system.entry.js → p-3bf5dfcb.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-3e4a6587.system.entry.js +4 -0
- package/dist/verdocs-web-sdk/p-3e4a6587.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-78df8d91.system.entry.js → p-3fc4da27.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-16906b7a.entry.js → p-5355587b.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-7d2ab3db.entry.js → p-5f2740be.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-bdc67903.entry.js → p-6331769c.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-c9af5cf9.entry.js → p-7926e0ed.entry.js} +3 -3
- package/dist/verdocs-web-sdk/p-7e91292a.entry.js +3 -0
- package/dist/verdocs-web-sdk/p-7e91292a.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-dee55b42.system.entry.js → p-821becae.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-d47f4d23.entry.js → p-894e2058.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-859d52e2.system.entry.js → p-9bb9f4e6.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-9bb9f4e6.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-DSTAw9l4.system.js.map → p-BQeD2Uzl.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-DQ1Zj0_z.system.js.map → p-BZkYMpVF.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-CzmLBKRk.system.js.map → p-BhRjT9GK.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/p-C06jLDFm.system.js +2 -0
- package/dist/verdocs-web-sdk/p-C06jLDFm.system.js.map +1 -0
- package/dist/verdocs-web-sdk/p-CMiFaQiI.system.js +2 -0
- package/dist/verdocs-web-sdk/p-CMiFaQiI.system.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-BJDbn5Ed.system.js.map → p-CTKsneFq.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/p-C_IIZj49.js +2 -0
- package/dist/verdocs-web-sdk/p-C_IIZj49.js.map +1 -0
- package/dist/verdocs-web-sdk/p-ChsPMrfV.system.js.map +1 -0
- package/dist/verdocs-web-sdk/p-CjPsvAbb.js +2 -0
- package/dist/verdocs-web-sdk/p-CjPsvAbb.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-C2cdldyg.system.js.map → p-CuaH0Jft.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/p-CwXSduhy.system.js +1 -1
- package/dist/verdocs-web-sdk/{p-DhaSvwdv.system.js.map → p-D-adB9Pb.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/p-DFxwv7XE.system.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-DDS4V5ZK.system.js.map → p-DG0Ibgqe.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-CNa6mh_8.system.js.map → p-DKkhksIM.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-BrqmuN9l.system.js.map → p-DZurf5no.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-DWMXHuqC.system.js.map → p-DjtXr8Iv.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/p-Do6RqOUO.system.js.map +1 -0
- package/dist/verdocs-web-sdk/p-DwPw01KR.system.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-BiZ1leAS.system.js.map → p-SFqGy6JR.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-3b89252b.system.entry.js → p-a231248c.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-aa6faf0b.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-aa6faf0b.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-1d54970e.entry.js → p-b720bffc.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-81dddc8a.entry.js → p-c8369ea0.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-051e37bd.entry.js → p-caf258c9.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-12c72957.system.entry.js → p-cfbef482.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-4fd77f5f.entry.js → p-d0bc16f9.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-be1f9f8d.system.entry.js → p-d16c03d8.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-863008ff.system.entry.js → p-db22e373.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-6b6597e9.system.entry.js → p-eb539d8f.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-442f07c0.system.entry.js → p-ecefb50c.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/verdocs-contact-picker.entry.esm.js.map +1 -0
- package/dist/verdocs-web-sdk/verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.esm.js.map +1 -1
- package/dist/verdocs-web-sdk/verdocs-multiselect.entry.esm.js.map +1 -0
- package/dist/verdocs-web-sdk/verdocs-sign.entry.esm.js.map +1 -1
- package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
- package/package.json +4 -4
- package/dist/cjs/Datastore-BfoLNIYQ.js.map +0 -1
- package/dist/cjs/en-Bst8Ux93.js +0 -58
- package/dist/cjs/en-Bst8Ux93.js.map +0 -1
- package/dist/cjs/verdocs-contact-picker.verdocs-multiselect.entry.cjs.js.map +0 -1
- package/dist/cjs/verdocs-contact-picker_2.cjs.entry.js.map +0 -1
- package/dist/components/p-CcnD3LWl.js +0 -55
- package/dist/components/p-CcnD3LWl.js.map +0 -1
- package/dist/components/p-DC--nyvW.js.map +0 -1
- package/dist/components/p-DoY8Nb0Y.js.map +0 -1
- package/dist/components/p-DpbDLSke.js.map +0 -1
- package/dist/components/p-DwHrFqEp.js.map +0 -1
- package/dist/components/p-cJMs8iXW.js.map +0 -1
- package/dist/esm/Datastore-DoY8Nb0Y.js.map +0 -1
- package/dist/esm/en-XchZmzEI.js +0 -55
- package/dist/esm/en-XchZmzEI.js.map +0 -1
- package/dist/esm/verdocs-contact-picker.verdocs-multiselect.entry.js.map +0 -1
- package/dist/esm/verdocs-contact-picker_2.entry.js.map +0 -1
- package/dist/esm-es5/Datastore-DoY8Nb0Y.js +0 -2
- package/dist/esm-es5/Datastore-DoY8Nb0Y.js.map +0 -1
- package/dist/esm-es5/en-XchZmzEI.js +0 -2
- package/dist/esm-es5/en-XchZmzEI.js.map +0 -1
- package/dist/esm-es5/verdocs-contact-picker.verdocs-multiselect.entry.js.map +0 -1
- package/dist/esm-es5/verdocs-contact-picker_2.entry.js +0 -3
- package/dist/esm-es5/verdocs-contact-picker_2.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-22539b25.system.entry.js +0 -4
- package/dist/verdocs-web-sdk/p-22539b25.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-5badc484.entry.js +0 -3
- package/dist/verdocs-web-sdk/p-5badc484.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-77c06e74.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-77c06e74.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-859d52e2.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-BRa25llh.system.js +0 -2
- package/dist/verdocs-web-sdk/p-BRa25llh.system.js.map +0 -1
- package/dist/verdocs-web-sdk/p-BlaEjWtc.system.js.map +0 -1
- package/dist/verdocs-web-sdk/p-CVsPzFQE.system.js.map +0 -1
- package/dist/verdocs-web-sdk/p-CcnD3LWl.js +0 -2
- package/dist/verdocs-web-sdk/p-CcnD3LWl.js.map +0 -1
- package/dist/verdocs-web-sdk/p-CuPoNgC8.system.js.map +0 -1
- package/dist/verdocs-web-sdk/p-DoY8Nb0Y.js +0 -2
- package/dist/verdocs-web-sdk/p-DoY8Nb0Y.js.map +0 -1
- package/dist/verdocs-web-sdk/p-DxhKOFVd.system.js +0 -2
- package/dist/verdocs-web-sdk/p-DxhKOFVd.system.js.map +0 -1
- package/dist/verdocs-web-sdk/p-a508dd16.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-a508dd16.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-d0241754.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/verdocs-contact-picker.verdocs-multiselect.entry.esm.js.map +0 -1
- /package/dist/verdocs-web-sdk/{p-e6f5cbbe.system.entry.js.map → p-00c62312.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-2d0c05c1.system.entry.js.map → p-1d0463ad.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-88b0232b.entry.js.map → p-1d4a39c2.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-0ceb7cd4.entry.js.map → p-255c74a9.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-bc6e84b9.system.entry.js.map → p-3bf5dfcb.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-78df8d91.system.entry.js.map → p-3fc4da27.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-16906b7a.entry.js.map → p-5355587b.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-7d2ab3db.entry.js.map → p-5f2740be.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-bdc67903.entry.js.map → p-6331769c.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-c9af5cf9.entry.js.map → p-7926e0ed.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-dee55b42.system.entry.js.map → p-821becae.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-d47f4d23.entry.js.map → p-894e2058.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-3b89252b.system.entry.js.map → p-a231248c.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-1d54970e.entry.js.map → p-b720bffc.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-81dddc8a.entry.js.map → p-c8369ea0.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-051e37bd.entry.js.map → p-caf258c9.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-12c72957.system.entry.js.map → p-cfbef482.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-4fd77f5f.entry.js.map → p-d0bc16f9.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-be1f9f8d.system.entry.js.map → p-d16c03d8.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-863008ff.system.entry.js.map → p-db22e373.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-6b6597e9.system.entry.js.map → p-eb539d8f.system.entry.js.map} +0 -0
- /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(r,n,e,t){function a(r){return r instanceof e?r:new e((function(n){n(r)}))}return new(e||(e=Promise))((function(e,o){function i(r){try{c(t.next(r))}catch(r){o(r)}}function u(r){try{c(t["throw"](r))}catch(r){o(r)}}function c(r){r.done?e(r.value):a(r.value).then(i,u)}c((t=t.apply(r,n||[])).next())}))};var __generator=this&&this.__generator||function(r,n){var e={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},t,a,o,i;return i={next:u(0),throw:u(1),return:u(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function u(r){return function(n){return c([r,n])}}function c(u){if(t)throw new TypeError("Generator is already executing.");while(i&&(i=0,u[0]&&(e=0)),e)try{if(t=1,a&&(o=u[0]&2?a["return"]:u[0]?a["throw"]||((o=a["return"])&&o.call(a),0):a.next)&&!(o=o.call(a,u[1])).done)return o;if(a=0,o)u=[u[0]&2,o.value];switch(u[0]){case 0:case 1:o=u;break;case 4:e.label++;return{value:u[1],done:false};case 5:e.label++;a=u[1];u=[0];continue;case 7:u=e.ops.pop();e.trys.pop();continue;default:if(!(o=e.trys,o=o.length>0&&o[o.length-1])&&(u[0]===6||u[0]===2)){e=0;continue}if(u[0]===3&&(!o||u[1]>o[0]&&u[1]<o[3])){e.label=u[1];break}if(u[0]===6&&e.label<o[1]){e.label=o[1];o=u;break}if(o&&e.label<o[2]){e.label=o[2];e.ops.push(u);break}if(o[2])e.ops.pop();e.trys.pop();continue}u=n.call(r,e)}catch(r){u=[6,r];a=0}finally{t=o=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(r,n,e){if(e||arguments.length===2)for(var t=0,a=n.length,o;t<a;t++){if(o||!(t in n)){if(!o)o=Array.prototype.slice.call(n,0,t);o[t]=n[t]}}return r.concat(o||Array.prototype.slice.call(n))};import{getTemplate}from"@verdocs/js-sdk";var getTypeOf=function(r){return typeof r};var EMPTY_STRING="";var STRING=getTypeOf(EMPTY_STRING);var BOOLEAN=getTypeOf(true);var NUMBER=getTypeOf(0);var FUNCTION=getTypeOf(getTypeOf);var TYPE="type";var DEFAULT="default";var LISTENER="Listener";var ADD="add";var HAS="Has";var IDS="Ids";var TABLE="Table";var TABLES=TABLE+"s";var TABLE_IDS=TABLE+IDS;var ROW="Row";var ROW_COUNT=ROW+"Count";var ROW_IDS=ROW+IDS;var CELL="Cell";var CELL_IDS=CELL+IDS;var VALUE="Value";var VALUES=VALUE+"s";var VALUE_IDS=VALUE+IDS;var id=function(r){return EMPTY_STRING+r};var isFiniteNumber=isFinite;var isInstanceOf=function(r,n){return r instanceof n};var isUndefined=function(r){return r==void 0};var ifNotUndefined=function(r,n,e){return isUndefined(r)?e===null||e===void 0?void 0:e():n(r)};var isTypeStringOrBoolean=function(r){return r==STRING||r==BOOLEAN};var isFunction=function(r){return getTypeOf(r)==FUNCTION};var isArray=function(r){return Array.isArray(r)};var slice=function(r,n,e){return r.slice(n,e)};var size=function(r){return r.length};var test=function(r,n){return r.test(n)};var arrayHas=function(r,n){return r.includes(n)};var arrayEvery=function(r,n){return r.every(n)};var arrayIsEqual=function(r,n){return size(r)===size(n)&&arrayEvery(r,(function(r,e){return n[e]===r}))};var arraySort=function(r,n){return r.sort(n)};var arrayForEach=function(r,n){return r.forEach(n)};var arrayMap=function(r,n){return r.map(n)};var arrayReduce=function(r,n,e){return r.reduce(n,e)};var arrayPush=function(r){var n=[];for(var e=1;e<arguments.length;e++){n[e-1]=arguments[e]}return r.push.apply(r,n)};var arrayShift=function(r){return r.shift()};var getCellOrValueType=function(r){var n=getTypeOf(r);return isTypeStringOrBoolean(n)||n==NUMBER&&isFiniteNumber(r)?n:void 0};var setOrDelCell=function(r,n,e,t,a){return isUndefined(a)?r.delCell(n,e,t,true):r.setCell(n,e,t,a)};var setOrDelValue=function(r,n,e){return isUndefined(e)?r.delValue(n):r.setValue(n,e)};var collSizeN=function(r){return function(n){return arrayReduce(collValues(n),(function(n,e){return n+r(e)}),0)}};var collSize=function(r){var n;return(n=r===null||r===void 0?void 0:r.size)!==null&&n!==void 0?n:0};var collSize2=collSizeN(collSize);var collSize3=collSizeN(collSize2);var collSize4=collSizeN(collSize3);var collHas=function(r,n){var e;return(e=r===null||r===void 0?void 0:r.has(n))!==null&&e!==void 0?e:false};var collIsEmpty=function(r){return isUndefined(r)||collSize(r)==0};var collValues=function(r){var n;return __spreadArray([],(n=r===null||r===void 0?void 0:r.values())!==null&&n!==void 0?n:[],true)};var collClear=function(r){return r.clear()};var collForEach=function(r,n){return r===null||r===void 0?void 0:r.forEach(n)};var collDel=function(r,n){return r===null||r===void 0?void 0:r.delete(n)};var object=Object;var getPrototypeOf=function(r){return object.getPrototypeOf(r)};var objEntries=object.entries;var objFrozen=object.isFrozen;var isObject=function(r){return!isUndefined(r)&&ifNotUndefined(getPrototypeOf(r),(function(r){return r==object.prototype||isUndefined(getPrototypeOf(r))}),(function(){return true}))};var objIds=object.keys;var objFreeze=object.freeze;var objNew=function(r){if(r===void 0){r=[]}return object.fromEntries(r)};var objHas=function(r,n){return n in r};var objDel=function(r,n){delete r[n];return r};var objForEach=function(r,n){return arrayForEach(objEntries(r),(function(r){var e=r[0],t=r[1];return n(t,e)}))};var objToArray=function(r,n){return arrayMap(objEntries(r),(function(r){var e=r[0],t=r[1];return n(t,e)}))};var objMap=function(r,n){return objNew(objToArray(r,(function(r,e){return[e,n(r,e)]})))};var objSize=function(r){return size(objIds(r))};var objIsEmpty=function(r){return isObject(r)&&objSize(r)==0};var objValidate=function(r,n,e,t){if(t===void 0){t=0}if(isUndefined(r)||!isObject(r)||!t&&objIsEmpty(r)||objFrozen(r)){e===null||e===void 0?void 0:e();return false}objForEach(r,(function(e,t){if(!n(e,t)){objDel(r,t)}}));return t?true:!objIsEmpty(r)};var mapNew=function(r){return new Map(r)};var mapKeys=function(r){var n;return __spreadArray([],(n=r===null||r===void 0?void 0:r.keys())!==null&&n!==void 0?n:[],true)};var mapGet=function(r,n){return r===null||r===void 0?void 0:r.get(n)};var mapForEach=function(r,n){return collForEach(r,(function(r,e){return n(e,r)}))};var mapMap=function(r,n){var e;return arrayMap(__spreadArray([],(e=r===null||r===void 0?void 0:r.entries())!==null&&e!==void 0?e:[],true),(function(r){var e=r[0],t=r[1];return n(t,e)}))};var mapSet=function(r,n,e){return isUndefined(e)?(collDel(r,n),r):r===null||r===void 0?void 0:r.set(n,e)};var mapEnsure=function(r,n,e,t){if(!collHas(r,n)){mapSet(r,n,e())}else{t===null||t===void 0?void 0:t(mapGet(r,n))}return mapGet(r,n)};var mapMatch=function(r,n,e,t){if(t===void 0){t=mapSet}objMap(n,(function(n,t){return e(r,t,n)}));mapForEach(r,(function(e){return objHas(n,e)?0:t(r,e)}));return r};var mapToObj=function(r,n,e,t){var a={};collForEach(r,(function(r,o){if(!(e===null||e===void 0?void 0:e(r,o))){var i=n?n(r,o):r;if(!(t===null||t===void 0?void 0:t(i))){a[o]=i}}}));return a};var mapToObj2=function(r,n,e){return mapToObj(r,(function(r){return mapToObj(r,n,e)}),collIsEmpty,objIsEmpty)};var mapToObj3=function(r,n,e){return mapToObj(r,(function(r){return mapToObj2(r,n,e)}),collIsEmpty,objIsEmpty)};var mapClone=function(r,n){var e=mapNew();collForEach(r,(function(r,t){var a;return e.set(t,(a=n===null||n===void 0?void 0:n(r))!==null&&a!==void 0?a:r)}));return e};var mapClone2=function(r){return mapClone(r,mapClone)};var mapClone3=function(r){return mapClone(r,mapClone2)};var visitTree=function(r,n,e,t,a){if(a===void 0){a=0}return ifNotUndefined((e?mapEnsure:mapGet)(r,n[a],a>size(n)-2?e:mapNew),(function(o){if(a>size(n)-2){if(t===null||t===void 0?void 0:t(o)){mapSet(r,n[a])}return o}var i=visitTree(o,n,e,t,a+1);if(collIsEmpty(o)){mapSet(r,n[a])}return i}))};var setNew=function(r){return new Set(isArray(r)||isUndefined(r)?r:[r])};var setAdd=function(r,n){return r===null||r===void 0?void 0:r.add(n)};var INTEGER=/^\d+$/;var getPoolFunctions=function(){var r=[];var n=0;return[function(e){var t;return(t=e?arrayShift(r):null)!==null&&t!==void 0?t:EMPTY_STRING+n++},function(n){if(test(INTEGER,n)&&size(r)<1e3){arrayPush(r,n)}}]};var getWildcardedLeaves=function(r,n){if(n===void 0){n=[EMPTY_STRING]}var e=[];var t=function(r,a){return a==size(n)?arrayPush(e,r):n[a]===null?collForEach(r,(function(r){return t(r,a+1)})):arrayForEach([n[a],null],(function(n){return t(mapGet(r,n),a+1)}))};t(r,0);return e};var getListenerFunctions=function(r){var n;var e=getPoolFunctions(),t=e[0],a=e[1];var o=mapNew();var i=function(e,a,i,u,c){if(u===void 0){u=[]}if(c===void 0){c=function(){return[]}}n!==null&&n!==void 0?n:n=r();var l=t(1);mapSet(o,l,[e,a,i,u,c]);setAdd(visitTree(a,i!==null&&i!==void 0?i:[EMPTY_STRING],setNew),l);return l};var u=function(r,e){var t=[];for(var a=2;a<arguments.length;a++){t[a-2]=arguments[a]}return arrayForEach(getWildcardedLeaves(r,e),(function(r){return collForEach(r,(function(r){var a;return(a=mapGet(o,r))[0].apply(a,__spreadArray(__spreadArray([n],e!==null&&e!==void 0?e:[],false),t,false))}))}))};var c=function(r){return ifNotUndefined(mapGet(o,r),(function(n){var e=n[1],t=n[2];visitTree(e,t!==null&&t!==void 0?t:[EMPTY_STRING],void 0,(function(n){collDel(n,r);return collIsEmpty(n)?1:0}));mapSet(o,r);a(r);return t}))};var l=function(r){return ifNotUndefined(mapGet(o,r),(function(r){var e=r[0],t=r[2],a=t===void 0?[]:t,o=r[3],i=r[4];var u=function(){var r,t;var c=[];for(var l=0;l<arguments.length;l++){c[l]=arguments[l]}var f=size(c);if(f==size(a)){e.apply(void 0,__spreadArray(__spreadArray([n],c,false),i(c),false))}else if(isUndefined(a[f])){arrayForEach((t=(r=o[f])===null||r===void 0?void 0:r.call.apply(r,__spreadArray([o],c,false)))!==null&&t!==void 0?t:[],(function(r){return u.apply(void 0,__spreadArray(__spreadArray([],c,false),[r],false))}))}else{u.apply(void 0,__spreadArray(__spreadArray([],c,false),[a[f]],false))}};u()}))};return[i,u,c,l]};var defaultSorter=function(r,n){return(r!==null&&r!==void 0?r:0)<(n!==null&&n!==void 0?n:0)?-1:1};var jsonString=JSON.stringify;var jsonParse=JSON.parse;var jsonStringWithMap=function(r){return jsonString(r,(function(r,n){return isInstanceOf(n,Map)?object.fromEntries(__spreadArray([],n,true)):n}))};var pairNew=function(r){return[r,r]};var pairCollSize2=function(r,n){if(n===void 0){n=collSize2}return n(r[0])+n(r[1])};var pairNewMap=function(){return[mapNew(),mapNew()]};var pairClone=function(r){return __spreadArray([],r,true)};var pairIsEqual=function(r){var n=r[0],e=r[1];return n===e};var idsChanged=function(r,n,e){return mapSet(r,n,mapGet(r,n)==-e?void 0:e)};var createStore=function(){var r;var n;var e;var t=false;var a=false;var o=0;var i=[];var u=mapNew();var c=mapNew();var l=mapNew();var f=mapNew();var v=mapNew();var s=mapNew();var p=mapNew();var d=mapNew();var m=mapNew();var E=mapNew();var S=mapNew();var y=mapNew();var b=mapNew();var T=mapNew();var h=setNew();var N=mapNew();var w=mapNew();var j=mapNew();var I=mapNew();var _=pairNewMap();var C=pairNewMap();var O=pairNewMap();var g=pairNewMap();var F=pairNewMap();var A=pairNewMap();var G=pairNewMap();var M=pairNewMap();var L=pairNewMap();var U=pairNewMap();var z=pairNewMap();var R=pairNewMap();var V=pairNewMap();var D=pairNewMap();var H=pairNewMap();var P=pairNewMap();var B=pairNewMap();var W=pairNewMap();var J=pairNewMap();var Y=pairNewMap();var q=pairNewMap();var K=pairNewMap();var k=mapNew();var x=pairNewMap();var $=getListenerFunctions((function(){return ve})),Q=$[0],X=$[1],Z=$[2],rr=$[3];var nr=function(r){return objValidate(r,(function(r){return objValidate(r,tr)}))};var er=function(r){return objValidate(r,tr)};var tr=function(r){if(!objValidate(r,(function(r,n){return arrayHas([TYPE,DEFAULT],n)}))){return false}var n=r[TYPE];if(!isTypeStringOrBoolean(n)&&n!=NUMBER){return false}if(getCellOrValueType(r[DEFAULT])!=n){objDel(r,DEFAULT)}return true};var ar=isArray;var or=function(r){return objValidate(r,ir,Rr)};var ir=function(r,e){return(!n||collHas(S,e)||Rr(e))&&objValidate(r,(function(r,n){return ur(e,n,r)}),(function(){return Rr(e)}))};var ur=function(r,n,e,t){return objValidate(t?e:vr(e,r,n),(function(t,a){return ifNotUndefined(cr(r,n,a,t),(function(r){e[a]=r;return true}),(function(){return false}))}),(function(){return Rr(r,n)}))};var cr=function(r,e,t,a){return n?ifNotUndefined(mapGet(mapGet(S,r),t),(function(n){return getCellOrValueType(a)!=n[TYPE]?Rr(r,e,t,a,n[DEFAULT]):a}),(function(){return Rr(r,e,t,a)})):isUndefined(getCellOrValueType(a))?Rr(r,e,t,a):a};var lr=function(r,n){return objValidate(n?r:sr(r),(function(n,e){return ifNotUndefined(fr(e,n),(function(n){r[e]=n;return true}),(function(){return false}))}),(function(){return Vr()}))};var fr=function(r,n){return e?ifNotUndefined(mapGet(b,r),(function(e){return getCellOrValueType(n)!=e[TYPE]?Vr(r,n,e[DEFAULT]):n}),(function(){return Vr(r,n)})):isUndefined(getCellOrValueType(n))?Vr(r,n):n};var vr=function(r,n,e){ifNotUndefined(mapGet(y,n),(function(t){var a=t[0],o=t[1];collForEach(a,(function(n,e){if(!objHas(r,e)){r[e]=n}}));collForEach(o,(function(t){if(!objHas(r,t)){Rr(n,e,t)}}))}));return r};var sr=function(r){if(e){collForEach(T,(function(n,e){if(!objHas(r,e)){r[e]=n}}));collForEach(h,(function(n){if(!objHas(r,n)){Vr(n)}}))}return r};var pr=function(r){return mapMatch(S,r,(function(r,n,e){var t=mapNew();var a=setNew();mapMatch(mapEnsure(S,n,mapNew),e,(function(r,n,e){mapSet(r,n,e);ifNotUndefined(e[DEFAULT],(function(r){return mapSet(t,n,r)}),(function(){return setAdd(a,n)}))}));mapSet(y,n,[t,a])}),(function(r,n){mapSet(S,n);mapSet(y,n)}))};var dr=function(r){return mapMatch(b,r,(function(r,n,e){mapSet(b,n,e);ifNotUndefined(e[DEFAULT],(function(r){return mapSet(T,n,r)}),(function(){return setAdd(h,n)}))}),(function(r,n){mapSet(b,n);mapSet(T,n);collDel(h,n)}))};var mr=function(r){return objIsEmpty(r)?Vn():Nn(r)};var Er=function(r){var n=r[0],e=r[1];(objIsEmpty(n)?Vn:Nn)(n);(objIsEmpty(e)?Bn:On)(e)};var Sr=function(r){return mapMatch(j,r,(function(r,n,e){return yr(n,e)}),(function(r,n){return Cr(n)}))};var yr=function(r,n){return mapMatch(mapEnsure(j,r,(function(){Ar(r,1);mapSet(N,r,getPoolFunctions());mapSet(w,r,mapNew());return mapNew()})),n,(function(n,e,t){return br(r,n,e,t)}),(function(n,e){return Or(r,n,e)}))};var br=function(r,n,e,t,a){return mapMatch(mapEnsure(n,e,(function(){Gr(r,e,1);return mapNew()})),t,(function(n,t,a){return Tr(r,e,n,t,a)}),(function(t,o){return gr(r,n,e,t,o,a)}))};var Tr=function(r,n,e,t,a){if(!collHas(e,t)){Mr(r,n,t,1)}var o=mapGet(e,t);if(a!==o){Lr(r,n,t,o,a);mapSet(e,t,a)}};var hr=function(r,n,e,t,a){return ifNotUndefined(mapGet(n,e),(function(n){return Tr(r,e,n,t,a)}),(function(){var o;return br(r,n,e,vr((o={},o[t]=a,o),r,e))}))};var Nr=function(r){return objIsEmpty(r)?Bn():On(r)};var wr=function(r){return mapMatch(I,r,(function(r,n,e){return jr(n,e)}),(function(r,n){return Fr(n)}))};var jr=function(r,n){if(!collHas(I,r)){Ur(r,1)}var e=mapGet(I,r);if(n!==e){zr(r,e,n);mapSet(I,r,n)}};var Ir=function(r,n){var e=mapGet(N,r)[0];var t;do{t=e(n)}while(collHas(mapGet(j,r),t));return t};var _r=function(r){var n;return(n=mapGet(j,r))!==null&&n!==void 0?n:yr(r,{})};var Cr=function(r){return yr(r,{})};var Or=function(r,n,e){var t=mapGet(N,r),a=t[1];a(e);br(r,n,e,{},true)};var gr=function(r,n,e,t,a,o){var i;var u=mapGet((i=mapGet(y,r))===null||i===void 0?void 0:i[0],a);if(!isUndefined(u)&&!o){return Tr(r,e,t,a,u)}var c=function(n){Lr(r,e,n,mapGet(t,n));Mr(r,e,n,-1);mapSet(t,n)};if(isUndefined(u)){c(a)}else{mapForEach(t,c)}if(collIsEmpty(t)){Gr(r,e,-1);if(collIsEmpty(mapSet(n,e))){Ar(r,-1);mapSet(j,r);mapSet(N,r);mapSet(w,r)}}};var Fr=function(r){var n=mapGet(T,r);if(!isUndefined(n)){return jr(r,n)}zr(r,mapGet(I,r));Ur(r,-1);mapSet(I,r)};var Ar=function(r,n){return idsChanged(u,r,n)};var Gr=function(r,n,e){return idsChanged(mapEnsure(f,r,mapNew),n,e)&&mapSet(l,r,mapEnsure(l,r,(function(){return 0}))+e)};var Mr=function(r,n,e,t){var a;var o=mapGet(w,r);var i=(a=mapGet(o,e))!==null&&a!==void 0?a:0;if(i==0&&t==1||i==1&&t==-1){idsChanged(mapEnsure(c,r,mapNew),e,t)}mapSet(o,e,i!=-t?i+t:null);idsChanged(mapEnsure(mapEnsure(v,r,mapNew),n,mapNew),e,t)};var Lr=function(r,n,e,t,a){var o;mapEnsure(mapEnsure(mapEnsure(s,r,mapNew),n,mapNew),e,(function(){return[t,0]}))[1]=a;(o=i[3])===null||o===void 0?void 0:o.call(i,r,n,e,a)};var Ur=function(r,n){return idsChanged(p,r,n)};var zr=function(r,n,e){var t;mapEnsure(d,r,(function(){return[n,0]}))[1]=e;(t=i[4])===null||t===void 0?void 0:t.call(i,r,e)};var Rr=function(r,n,e,t,a){arrayPush(mapEnsure(mapEnsure(mapEnsure(m,r,mapNew),n,mapNew),e,(function(){return[]})),t);return a};var Vr=function(r,n,e){arrayPush(mapEnsure(E,r,(function(){return[]})),n);return e};var Dr=function(r,n,e){return ifNotUndefined(mapGet(mapGet(mapGet(s,r),n),e),(function(r){var n=r[0],e=r[1];return[true,n,e]}),(function(){return __spreadArray([false],pairNew(tn(r,n,e)),true)}))};var Hr=function(r){return ifNotUndefined(mapGet(d,r),(function(r){var n=r[0],e=r[1];return[true,n,e]}),(function(){return __spreadArray([false],pairNew(un(r)),true)}))};var Pr=function(r){return!collIsEmpty(m)&&!collIsEmpty(P[r])?collForEach(r?mapClone3(m):m,(function(n,e){return collForEach(n,(function(n,t){return collForEach(n,(function(n,a){return X(P[r],[e,t,a],n)}))}))})):0};var Br=function(r){return!collIsEmpty(E)&&!collIsEmpty(B[r])?collForEach(r?mapClone(E):E,(function(n,e){return X(B[r],[e],n)})):0};var Wr=function(r,n,e,t){if(!collIsEmpty(r)){X(n,t,(function(){return mapToObj(r)}));mapForEach(r,(function(r,n){return X(e,__spreadArray(__spreadArray([],t!==null&&t!==void 0?t:[],true),[r],false),n==1)}));return 1}};var Jr=function(r){var n=cn();if(n!=t){X(_[r],void 0,n)}var e=collIsEmpty(U[r]);var a=collIsEmpty(V[r])&&collIsEmpty(D[r])&&collIsEmpty(L[r])&&collIsEmpty(z[r])&&collIsEmpty(A[r])&&collIsEmpty(G[r])&&collIsEmpty(M[r])&&e&&collIsEmpty(O[r])&&collIsEmpty(g[r]);var o=collIsEmpty(H[r])&&collIsEmpty(R[r])&&collIsEmpty(F[r])&&collIsEmpty(C[r]);if(!a||!o){var i=r?[mapClone(u),mapClone2(c),mapClone(l),mapClone2(f),mapClone3(v),mapClone3(s)]:[u,c,l,f,v,s];if(!a){Wr(i[0],O[r],g[r]);collForEach(i[1],(function(n,e){return Wr(n,A[r],G[r],[e])}));collForEach(i[2],(function(n,e){if(n!=0){X(M[r],[e],Xr(e))}}));var p=setNew();collForEach(i[3],(function(n,t){if(Wr(n,L[r],z[r],[t])&&!e){X(U[r],[t,null]);setAdd(p,t)}}));if(!e){collForEach(i[5],(function(n,e){if(!collHas(p,e)){var t=setNew();collForEach(n,(function(r){return collForEach(r,(function(n,e){var a=n[0],o=n[1];return o!==a?setAdd(t,e):collDel(r,e)}))}));collForEach(t,(function(n){return X(U[r],[e,n])}))}}))}collForEach(i[4],(function(n,e){return collForEach(n,(function(n,t){return Wr(n,V[r],D[r],[e,t])}))}))}if(!o){var d;collForEach(i[5],(function(n,e){var t;collForEach(n,(function(n,a){var o;collForEach(n,(function(n,i){var u=n[0],c=n[1];if(c!==u){X(H[r],[e,a,i],c,u,Dr);d=t=o=1}}));if(o){X(R[r],[e,a],Dr)}}));if(t){X(F[r],[e],Dr)}}));if(d){X(C[r],void 0,Dr)}}}};var Yr=function(r){var n=pn();if(n!=a){X(W[r],void 0,n)}var e=collIsEmpty(Y[r])&&collIsEmpty(q[r]);var t=collIsEmpty(K[r])&&collIsEmpty(J[r]);if(!e||!t){var o=r?[mapClone(p),mapClone(d)]:[p,d];if(!e){Wr(o[0],Y[r],q[r])}if(!t){var i;collForEach(o[1],(function(n,e){var t=n[0],a=n[1];if(a!==t){X(K[r],[e],a,t,Hr);i=1}}));if(i){X(J[r],void 0,Hr)}}}};var qr=function(r){var n=[];for(var e=1;e<arguments.length;e++){n[e-1]=arguments[e]}Kn((function(){return r.apply(void 0,arrayMap(n,id))}));return ve};var Kr=function(){return[kr(),an()]};var kr=function(){return mapToObj3(j)};var xr=function(){return mapKeys(j)};var $r=function(r){return mapToObj2(mapGet(j,id(r)))};var Qr=function(r){return mapKeys(mapGet(w,id(r)))};var Xr=function(r){return collSize(mapGet(j,id(r)))};var Zr=function(r){return mapKeys(mapGet(j,id(r)))};var rn=function(r,n,e,t,a){if(t===void 0){t=0}return arrayMap(slice(arraySort(mapMap(mapGet(j,id(r)),(function(r,e){return[isUndefined(n)?e:mapGet(r,id(n)),e]})),(function(r,n){var t=r[0];var a=n[0];return defaultSorter(t,a)*(e?-1:1)})),t,isUndefined(a)?a:t+a),(function(r){var n=r[1];return n}))};var nn=function(r,n){return mapToObj(mapGet(mapGet(j,id(r)),id(n)))};var en=function(r,n){return mapKeys(mapGet(mapGet(j,id(r)),id(n)))};var tn=function(r,n,e){return mapGet(mapGet(mapGet(j,id(r)),id(n)),id(e))};var an=function(){return mapToObj(I)};var on=function(){return mapKeys(I)};var un=function(r){return mapGet(I,id(r))};var cn=function(){return!collIsEmpty(j)};var ln=function(r){return collHas(j,id(r))};var fn=function(r,n){return collHas(mapGet(w,id(r)),id(n))};var vn=function(r,n){return collHas(mapGet(j,id(r)),id(n))};var sn=function(r,n,e){return collHas(mapGet(mapGet(j,id(r)),id(n)),id(e))};var pn=function(){return!collIsEmpty(I)};var dn=function(r){return collHas(I,id(r))};var mn=function(){return jsonStringWithMap(j)};var En=function(){return jsonStringWithMap(I)};var Sn=function(){return jsonStringWithMap([j,I])};var yn=function(){return jsonStringWithMap(S)};var bn=function(){return jsonStringWithMap(b)};var Tn=function(){return jsonStringWithMap([S,b])};var hn=function(r){return qr((function(){var n=isFunction(r)?r():r;if(ar(n)){Er(n)}}))};var Nn=function(r){return qr((function(){return or(r)?Sr(r):0}))};var wn=function(r,n){return qr((function(r){return ir(n,r)?yr(r,n):0}),r)};var jn=function(r,n,e){return qr((function(r,n){return ur(r,n,e)?br(r,_r(r),n,e):0}),r,n)};var In=function(r,n,e){if(e===void 0){e=true}return Kn((function(){var t=void 0;if(ur(r,t,n)){r=id(r);br(r,_r(r),t=Ir(r,e?1:0),n)}return t}))};var _n=function(r,n,e){return qr((function(r,n){if(ur(r,n,e,1)){var t=_r(r);objMap(e,(function(e,a){return hr(r,t,n,a,e)}))}}),r,n)};var Cn=function(r,n,e,t){return qr((function(r,n,e){return ifNotUndefined(cr(r,n,e,isFunction(t)?t(tn(r,n,e)):t),(function(t){return hr(r,_r(r),n,e,t)}))}),r,n,e)};var On=function(r){return qr((function(){return lr(r)?wr(r):0}))};var gn=function(r){return qr((function(){return lr(r,1)?objMap(r,(function(r,n){return jr(n,r)})):0}))};var Fn=function(r,n){return qr((function(r){return ifNotUndefined(fr(r,isFunction(n)?n(un(r)):n),(function(n){return jr(r,n)}))}),r)};var An=function(r){return qr((function(){objMap(r[0],(function(r,n){return isUndefined(r)?Dn(n):objMap(r,(function(r,e){return isUndefined(r)?Hn(n,e):objMap(r,(function(r,t){return setOrDelCell(ve,n,e,t,r)}))}))}));objMap(r[1],(function(r,n){return setOrDelValue(ve,n,r)}))}))};var Gn=function(r){try{mr(jsonParse(r))}catch(r){}return ve};var Mn=function(r){try{Nr(jsonParse(r))}catch(r){}return ve};var Ln=function(r){return qr((function(){try{var n=jsonParse(r),e=n[0],t=n[1];mr(e);Nr(t)}catch(n){Gn(r)}}))};var Un=function(r){return qr((function(){if(n=nr(r)){pr(r);if(!collIsEmpty(j)){var e=kr();Vn();Nn(e)}}}))};var zn=function(r){return qr((function(){if(e=er(r)){var n=an();Yn();Bn();e=true;dr(r);On(n)}}))};var Rn=function(r,n){return qr((function(){Un(r);zn(n)}))};var Vn=function(){return qr((function(){return Sr({})}))};var Dn=function(r){return qr((function(r){return collHas(j,r)?Cr(r):0}),r)};var Hn=function(r,n){return qr((function(r,n){return ifNotUndefined(mapGet(j,r),(function(e){return collHas(e,n)?Or(r,e,n):0}))}),r,n)};var Pn=function(r,n,e,t){return qr((function(r,n,e){return ifNotUndefined(mapGet(j,r),(function(a){return ifNotUndefined(mapGet(a,n),(function(o){return collHas(o,e)?gr(r,a,n,o,e,t):0}))}))}),r,n,e)};var Bn=function(){return qr((function(){return wr({})}))};var Wn=function(r){return qr((function(r){return collHas(I,r)?Fr(r):0}),r)};var Jn=function(){return qr((function(){pr({});n=false}))};var Yn=function(){return qr((function(){dr({});e=false}))};var qn=function(){return qr((function(){Jn();Yn()}))};var Kn=function(r,n){if(o!=-1){kn();var e=r();Qn(n);return e}};var kn=function(){var r;if(o!=-1){o++}if(o==1){(r=i[0])===null||r===void 0?void 0:r.call(i);X(k)}return ve};var xn=function(){return[mapToObj(s,(function(r,n){return mapGet(u,n)===-1?void 0:mapToObj(r,(function(r,e){return mapGet(mapGet(f,n),e)===-1?void 0:mapToObj(r,(function(r){var n=r[1];return n}),(function(r){return pairIsEqual(r)}))}),collIsEmpty,objIsEmpty)}),collIsEmpty,objIsEmpty),mapToObj(d,(function(r){var n=r[1];return n}),(function(r){return pairIsEqual(r)})),1]};var $n=function(){return[!collIsEmpty(s),!collIsEmpty(d),mapToObj3(s,pairClone,pairIsEqual),mapToObj3(m),mapToObj(d,pairClone,pairIsEqual),mapToObj(E),mapToObj(u),mapToObj2(f),mapToObj3(v),mapToObj(p)]};var Qn=function(r){var n,e;if(o>0){o--;if(o==0){o=1;Pr(1);if(!collIsEmpty(s)){Jr(1)}Br(1);if(!collIsEmpty(d)){Yr(1)}if(r===null||r===void 0?void 0:r(ve)){collForEach(s,(function(r,n){return collForEach(r,(function(r,e){return collForEach(r,(function(r,t){var a=r[0];return setOrDelCell(ve,n,e,t,a)}))}))}));collClear(s);collForEach(d,(function(r,n){var e=r[0];return setOrDelValue(ve,n,e)}));collClear(d)}X(x[0],void 0);o=-1;Pr(0);if(!collIsEmpty(s)){Jr(0)}Br(0);if(!collIsEmpty(d)){Yr(0)}(n=i[1])===null||n===void 0?void 0:n.call(i);X(x[1],void 0);(e=i[2])===null||e===void 0?void 0:e.call(i);o=0;t=cn();a=pn();arrayForEach([u,c,l,f,v,s,m,p,d,E],collClear)}}return ve};var Xn=function(r){return collForEach(j,(function(n,e){return r(e,(function(r){return collForEach(n,(function(n,e){return r(e,(function(r){return mapForEach(n,r)}))}))}))}))};var Zn=function(r,n){return mapForEach(mapGet(w,id(r)),n)};var re=function(r,n){return collForEach(mapGet(j,id(r)),(function(r,e){return n(e,(function(n){return mapForEach(r,n)}))}))};var ne=function(r,n,e){return mapForEach(mapGet(mapGet(j,id(r)),id(n)),e)};var ee=function(r){return mapForEach(I,r)};var te=function(r,n,e,t,a,o,i){var u=rn(r,n,e,t,a);return Q((function(){var i=rn(r,n,e,t,a);if(!arrayIsEqual(i,u)){u=i;o(ve,r,n,e,t,a,u)}}),U[i?1:0],[r,n],[xr])};var ae=function(r){return Q(r,k)};var oe=function(r){return Q(r,x[0])};var ie=function(r){return Q(r,x[1])};var ue=function(r){rr(r);return ve};var ce=function(r){Z(r);return ve};var le=function(){return{hasTables:pairCollSize2(_),tables:pairCollSize2(C),tableIds:pairCollSize2(O),hasTable:pairCollSize2(g),table:pairCollSize2(F),tableCellIds:pairCollSize2(A),hasTableCell:pairCollSize2(G,collSize3),rowCount:pairCollSize2(M),rowIds:pairCollSize2(L),sortedRowIds:pairCollSize2(U),hasRow:pairCollSize2(z,collSize3),row:pairCollSize2(R,collSize3),cellIds:pairCollSize2(V,collSize3),hasCell:pairCollSize2(D,collSize4),cell:pairCollSize2(H,collSize4),invalidCell:pairCollSize2(P,collSize4),hasValues:pairCollSize2(W),values:pairCollSize2(J),valueIds:pairCollSize2(Y),hasValue:pairCollSize2(q),value:pairCollSize2(K),invalidValue:pairCollSize2(B),transaction:collSize2(k)+pairCollSize2(x)}};var fe=function(r,n,e,t,a){return i=[r,n,e,t,a]};var ve={getContent:Kr,getTables:kr,getTableIds:xr,getTable:$r,getTableCellIds:Qr,getRowCount:Xr,getRowIds:Zr,getSortedRowIds:rn,getRow:nn,getCellIds:en,getCell:tn,getValues:an,getValueIds:on,getValue:un,hasTables:cn,hasTable:ln,hasTableCell:fn,hasRow:vn,hasCell:sn,hasValues:pn,hasValue:dn,getTablesJson:mn,getValuesJson:En,getJson:Sn,getTablesSchemaJson:yn,getValuesSchemaJson:bn,getSchemaJson:Tn,hasTablesSchema:function(){return n},hasValuesSchema:function(){return e},setContent:hn,setTables:Nn,setTable:wn,setRow:jn,addRow:In,setPartialRow:_n,setCell:Cn,setValues:On,setPartialValues:gn,setValue:Fn,applyChanges:An,setTablesJson:Gn,setValuesJson:Mn,setJson:Ln,setTablesSchema:Un,setValuesSchema:zn,setSchema:Rn,delTables:Vn,delTable:Dn,delRow:Hn,delCell:Pn,delValues:Bn,delValue:Wn,delTablesSchema:Jn,delValuesSchema:Yn,delSchema:qn,transaction:Kn,startTransaction:kn,getTransactionChanges:xn,getTransactionLog:$n,finishTransaction:Qn,forEachTable:Xn,forEachTableCell:Zn,forEachRow:re,forEachCell:ne,forEachValue:ee,addSortedRowIdsListener:te,addStartTransactionListener:ae,addWillFinishTransactionListener:oe,addDidFinishTransactionListener:ie,callListener:ue,delListener:ce,getListenerStats:le,isMergeable:function(){return false},createStore:createStore,addListener:Q,callListeners:X,setInternalListeners:fe};objMap((r={},r[HAS+TABLES]=[0,_,[],function(){return[cn()]}],r[TABLES]=[0,C],r[TABLE_IDS]=[0,O],r[HAS+TABLE]=[1,g,[xr],function(r){return[ln.apply(void 0,r)]}],r[TABLE]=[1,F,[xr]],r[TABLE+CELL_IDS]=[1,A,[xr]],r[HAS+TABLE+CELL]=[2,G,[xr,Qr],function(r){return[fn.apply(void 0,r)]}],r[ROW_COUNT]=[1,M,[xr]],r[ROW_IDS]=[1,L,[xr]],r[HAS+ROW]=[2,z,[xr,Zr],function(r){return[vn.apply(void 0,r)]}],r[ROW]=[2,R,[xr,Zr]],r[CELL_IDS]=[2,V,[xr,Zr]],r[HAS+CELL]=[3,D,[xr,Zr,en],function(r){return[sn.apply(void 0,r)]}],r[CELL]=[3,H,[xr,Zr,en],function(r){return pairNew(tn.apply(void 0,r))}],r.InvalidCell=[3,P],r[HAS+VALUES]=[0,W,[],function(){return[pn()]}],r[VALUES]=[0,J],r[VALUE_IDS]=[0,Y],r[HAS+VALUE]=[1,q,[on],function(r){return[dn.apply(void 0,r)]}],r[VALUE]=[1,K,[on],function(r){return pairNew(un(r[0]))}],r.InvalidValue=[1,B],r),(function(r,n){var e=r[0],t=r[1],a=r[2],o=r[3];ve[ADD+n+LISTENER]=function(){var r=[];for(var n=0;n<arguments.length;n++){r[n]=arguments[n]}return Q(r[e],t[r[e+1]?1:0],e>0?slice(r,0,e):void 0,a,o)}}));return objFreeze(ve)};var store=createStore();store.delTables();store.delValues();var safeJsonParse=function(r,n){try{return JSON.parse(r)}catch(r){return n||null}};var objectToRow=function(r){var n={};for(var e in r){if(typeof r[e]==="string"||typeof r[e]==="number"||typeof r[e]==="boolean"){n[e]=r[e]}else if(r[e]===null){n["__null__".concat(e)]=""}else if(Array.isArray(r[e])){n["__array__".concat(e)]=JSON.stringify(r[e])}else if(typeof r[e]==="object"){n["__object__".concat(e)]=JSON.stringify(r[e])}}return n};var rowToObject=function(r){var n={};for(var e in r){if(e.startsWith("__null__")){n[e.replace("__null__","")]=null}else if(typeof r[e]==="string"&&e.startsWith("__array__")){n[e.replace("__array__","")]=safeJsonParse(r[e])}else if(typeof r[e]==="string"&&e.startsWith("__object__")){n[e.replace("__object__","")]=safeJsonParse(r[e])}else{n[e]=r[e]}}return n};var Store={store:store,subscribe:function(r,n,e,t,a){if(store.hasRow(r,n)){a(rowToObject(store.getRow(r,n)))}var o=store.addRowListener(r,n,(function(){var e=store.getRow(r,n);a(rowToObject(e))}));if(!store.hasRow(r,n)||t){console.log("[STORE] Loading/reloading",{tableId:r,rowId:n});e().then((function(e){store.setRow(r,n,objectToRow(e))})).catch((function(e){console.error("[STORE] Error getting row",{tableId:r,rowId:n,forceReload:t},e)}))}return o},unsubscribe:function(r){store.delListener(r)},getTemplate:function(r,n){return __awaiter(this,arguments,void 0,(function(r,n,e){var t,a;if(e===void 0){e=false}return __generator(this,(function(o){switch(o.label){case 0:if(!e){if(!store.hasRow("templates",n)){return[2,null]}t=store.getRow("templates",n);return[2,rowToObject(t)]}return[4,getTemplate(r,n)];case 1:a=o.sent();console.log("[STORE] Reloading template",a);store.setRow("templates",n,objectToRow(a));return[2,a]}}))}))},updateTemplate:function(r,n){store.setRow("templates",r,objectToRow(n));return n},getEnvelope:function(r,n){return __awaiter(this,arguments,void 0,(function(r,n,e){var t,a;if(e===void 0){e=false}return __generator(this,(function(o){switch(o.label){case 0:if(!e){if(!store.hasRow("envelopes",n)){return[2,null]}t=store.getRow("envelopes",n);return[2,rowToObject(t)]}return[4,getTemplate(r,n)];case 1:a=o.sent();store.setRow("envelopes",n,objectToRow(a));return[2,a]}}))}))},updateEnvelope:function(r,n){store.setRow("envelopes",r,objectToRow(n));return n},getField:function(r,n,e,t){if(r==="template"){var a=store.getRow("templates",n);var o=rowToObject(a);var i=(o.fields||[]).find((function(r){return r.name===e}));var u=(o.roles||[]).map((function(r){return r.name}));var c=u.findIndex((function(r){return r===i.role_name}));return{index:Math.max(c,0),field:t||i}}else{var a=store.getRow("envelopes",n);var l=rowToObject(a);var f=(l.fields||[]).find((function(r){return r.name===e}));var u=(l.recipients||[]).map((function(r){return r.role_name}));var c=u.findIndex((function(r){return r===f.role_name}));return{index:c,field:t||f}}}};export{Store as S};
|
2
|
-
//# sourceMappingURL=Datastore-DoY8Nb0Y.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Datastore-DoY8Nb0Y.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]}
|