@verdocs/web-sdk 1.12.21 → 1.12.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/dist/cjs/{Envelopes-87aea63d.js → Envelopes-2b8a280d.js} +16 -1
  2. package/dist/cjs/{Templates-e72a23b7.js → Templates-6705a1ce.js} +1 -1
  3. package/dist/cjs/{interact.min-d2e625b7.js → interact.min-8e19d5c0.js} +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{index-4de6ec2f.js → templateStore-1862f03c.js} +45 -1
  6. package/dist/cjs/{utils-cc3321ad.js → utils-cf75a796.js} +1 -1
  7. package/dist/cjs/verdocs-build.cjs.entry.js +2 -3
  8. package/dist/cjs/verdocs-button-panel_3.cjs.entry.js +2 -3
  9. package/dist/cjs/verdocs-dropdown_2.cjs.entry.js +2 -2
  10. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +21 -20
  11. package/dist/cjs/verdocs-field-attachment.cjs.entry.js +1 -2
  12. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +3 -4
  13. package/dist/cjs/verdocs-field-date.cjs.entry.js +3 -4
  14. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +3 -4
  15. package/dist/cjs/verdocs-field-initial.cjs.entry.js +3 -4
  16. package/dist/cjs/verdocs-field-payment.cjs.entry.js +3 -4
  17. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +3 -4
  18. package/dist/cjs/verdocs-field-signature.cjs.entry.js +3 -4
  19. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +3 -4
  20. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +4 -5
  21. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +3 -4
  22. package/dist/cjs/verdocs-preview.cjs.entry.js +4 -5
  23. package/dist/cjs/verdocs-send.cjs.entry.js +4 -5
  24. package/dist/cjs/verdocs-sign.cjs.entry.js +24 -23
  25. package/dist/cjs/verdocs-template-attachments.cjs.entry.js +2 -3
  26. package/dist/cjs/verdocs-template-create_2.cjs.entry.js +5 -6
  27. package/dist/cjs/verdocs-template-document-page.cjs.entry.js +2 -2
  28. package/dist/cjs/verdocs-template-name.cjs.entry.js +2 -3
  29. package/dist/cjs/verdocs-template-properties.cjs.entry.js +1 -2
  30. package/dist/cjs/verdocs-template-reminders.cjs.entry.js +2 -3
  31. package/dist/cjs/verdocs-template-role-properties_2.cjs.entry.js +2 -3
  32. package/dist/cjs/verdocs-template-roles.cjs.entry.js +5 -6
  33. package/dist/cjs/verdocs-template-visibility.cjs.entry.js +2 -3
  34. package/dist/cjs/verdocs-view.cjs.entry.js +24 -24
  35. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  36. package/dist/collection/components/elements/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js +24 -20
  37. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +26 -23
  38. package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +25 -23
  39. package/dist/components/Envelopes.js +16 -1
  40. package/dist/components/templateStore.js +192 -1
  41. package/dist/components/verdocs-envelope-sidebar.js +23 -18
  42. package/dist/components/verdocs-sign.js +25 -21
  43. package/dist/components/verdocs-view2.js +25 -22
  44. package/dist/docs.json +1 -1
  45. package/dist/esm/{Envelopes-16f09341.js → Envelopes-c36c692e.js} +16 -1
  46. package/dist/esm/{Templates-d66ec625.js → Templates-deedf4bd.js} +1 -1
  47. package/dist/esm/{interact.min-1e2f37ab.js → interact.min-da238961.js} +1 -1
  48. package/dist/esm/loader.js +1 -1
  49. package/dist/esm/{index-85f4a40f.js → templateStore-17c872da.js} +45 -1
  50. package/dist/esm/{utils-bca7b101.js → utils-1d934f99.js} +1 -1
  51. package/dist/esm/verdocs-build.entry.js +2 -3
  52. package/dist/esm/verdocs-button-panel_3.entry.js +2 -3
  53. package/dist/esm/verdocs-dropdown_2.entry.js +2 -2
  54. package/dist/esm/verdocs-envelope-sidebar.entry.js +21 -20
  55. package/dist/esm/verdocs-field-attachment.entry.js +1 -2
  56. package/dist/esm/verdocs-field-checkbox.entry.js +3 -4
  57. package/dist/esm/verdocs-field-date.entry.js +3 -4
  58. package/dist/esm/verdocs-field-dropdown.entry.js +3 -4
  59. package/dist/esm/verdocs-field-initial.entry.js +3 -4
  60. package/dist/esm/verdocs-field-payment.entry.js +3 -4
  61. package/dist/esm/verdocs-field-radio-button.entry.js +3 -4
  62. package/dist/esm/verdocs-field-signature.entry.js +3 -4
  63. package/dist/esm/verdocs-field-textarea.entry.js +3 -4
  64. package/dist/esm/verdocs-field-textbox.entry.js +4 -5
  65. package/dist/esm/verdocs-field-timestamp.entry.js +3 -4
  66. package/dist/esm/verdocs-preview.entry.js +4 -5
  67. package/dist/esm/verdocs-send.entry.js +4 -5
  68. package/dist/esm/verdocs-sign.entry.js +24 -23
  69. package/dist/esm/verdocs-template-attachments.entry.js +2 -3
  70. package/dist/esm/verdocs-template-create_2.entry.js +5 -6
  71. package/dist/esm/verdocs-template-document-page.entry.js +2 -2
  72. package/dist/esm/verdocs-template-name.entry.js +2 -3
  73. package/dist/esm/verdocs-template-properties.entry.js +1 -2
  74. package/dist/esm/verdocs-template-reminders.entry.js +2 -3
  75. package/dist/esm/verdocs-template-role-properties_2.entry.js +2 -3
  76. package/dist/esm/verdocs-template-roles.entry.js +5 -6
  77. package/dist/esm/verdocs-template-visibility.entry.js +2 -3
  78. package/dist/esm/verdocs-view.entry.js +23 -23
  79. package/dist/esm/verdocs-web-sdk.js +1 -1
  80. package/dist/esm-es5/{Envelopes-16f09341.js → Envelopes-c36c692e.js} +1 -1
  81. package/dist/esm-es5/{Templates-d66ec625.js → Templates-deedf4bd.js} +1 -1
  82. package/dist/esm-es5/{interact.min-1e2f37ab.js → interact.min-da238961.js} +1 -1
  83. package/dist/esm-es5/loader.js +1 -1
  84. package/dist/esm-es5/templateStore-17c872da.js +1 -0
  85. package/dist/esm-es5/{utils-bca7b101.js → utils-1d934f99.js} +1 -1
  86. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  87. package/dist/esm-es5/verdocs-button-panel_3.entry.js +1 -1
  88. package/dist/esm-es5/verdocs-dropdown_2.entry.js +1 -1
  89. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  90. package/dist/esm-es5/verdocs-field-attachment.entry.js +1 -1
  91. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  92. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  93. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  94. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  95. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  96. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  97. package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
  98. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  99. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  100. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  101. package/dist/esm-es5/verdocs-preview.entry.js +1 -1
  102. package/dist/esm-es5/verdocs-send.entry.js +1 -1
  103. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  104. package/dist/esm-es5/verdocs-template-attachments.entry.js +1 -1
  105. package/dist/esm-es5/verdocs-template-create_2.entry.js +1 -1
  106. package/dist/esm-es5/verdocs-template-document-page.entry.js +1 -1
  107. package/dist/esm-es5/verdocs-template-name.entry.js +1 -1
  108. package/dist/esm-es5/verdocs-template-properties.entry.js +1 -1
  109. package/dist/esm-es5/verdocs-template-reminders.entry.js +1 -1
  110. package/dist/esm-es5/verdocs-template-role-properties_2.entry.js +1 -1
  111. package/dist/esm-es5/verdocs-template-roles.entry.js +1 -1
  112. package/dist/esm-es5/verdocs-template-visibility.entry.js +1 -1
  113. package/dist/esm-es5/verdocs-view.entry.js +1 -1
  114. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  115. package/dist/types/components/elements/verdocs-envelope-sidebar/verdocs-envelope-sidebar.d.ts +4 -2
  116. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +2 -0
  117. package/dist/types/components/embeds/verdocs-view/verdocs-view.d.ts +2 -0
  118. package/dist/verdocs-web-sdk/p-037fa432.system.entry.js +1 -0
  119. package/dist/verdocs-web-sdk/{p-6a2e16ea.system.js → p-0a000948.system.js} +1 -1
  120. package/dist/verdocs-web-sdk/p-10ea4d8d.entry.js +1 -0
  121. package/dist/verdocs-web-sdk/{p-ceae05e8.system.entry.js → p-152f38f2.system.entry.js} +1 -1
  122. package/dist/verdocs-web-sdk/p-1772de58.system.entry.js +1 -0
  123. package/dist/verdocs-web-sdk/p-1a9437d9.system.entry.js +1 -0
  124. package/dist/verdocs-web-sdk/p-1d60a9e2.system.entry.js +1 -0
  125. package/dist/verdocs-web-sdk/{p-7d73a258.entry.js → p-212ecdc5.entry.js} +1 -1
  126. package/dist/verdocs-web-sdk/p-284f69ec.system.entry.js +1 -0
  127. package/dist/verdocs-web-sdk/p-2af1ec32.entry.js +1 -0
  128. package/dist/verdocs-web-sdk/p-2e2fd9f3.entry.js +1 -0
  129. package/dist/verdocs-web-sdk/p-30decbde.entry.js +1 -0
  130. package/dist/verdocs-web-sdk/p-32665c92.entry.js +1 -0
  131. package/dist/verdocs-web-sdk/p-36ef57a7.system.entry.js +1 -0
  132. package/dist/verdocs-web-sdk/p-370e03f7.entry.js +1 -0
  133. package/dist/verdocs-web-sdk/p-38368af4.system.entry.js +1 -0
  134. package/dist/verdocs-web-sdk/p-386a9c8b.system.entry.js +1 -0
  135. package/dist/verdocs-web-sdk/p-3ec38739.entry.js +1 -0
  136. package/dist/verdocs-web-sdk/p-4161fc87.system.entry.js +1 -0
  137. package/dist/verdocs-web-sdk/p-4271a0bf.entry.js +1 -0
  138. package/dist/verdocs-web-sdk/p-449e8445.system.entry.js +1 -0
  139. package/dist/verdocs-web-sdk/p-4680b94d.entry.js +1 -0
  140. package/dist/verdocs-web-sdk/p-47eec326.system.entry.js +1 -0
  141. package/dist/verdocs-web-sdk/p-48fbc0e0.entry.js +1 -0
  142. package/dist/verdocs-web-sdk/p-511ba013.system.entry.js +1 -0
  143. package/dist/verdocs-web-sdk/p-52164a0a.entry.js +1 -0
  144. package/dist/verdocs-web-sdk/p-5574e12d.system.entry.js +1 -0
  145. package/dist/verdocs-web-sdk/p-58cbbdf4.system.entry.js +1 -0
  146. package/dist/verdocs-web-sdk/p-5911bf86.entry.js +1 -0
  147. package/dist/verdocs-web-sdk/p-5e1b2cc7.entry.js +1 -0
  148. package/dist/verdocs-web-sdk/p-62542624.system.entry.js +1 -0
  149. package/dist/verdocs-web-sdk/{p-3d0efcc9.js → p-6324d9f8.js} +1 -1
  150. package/dist/verdocs-web-sdk/p-63789dec.system.entry.js +1 -0
  151. package/dist/verdocs-web-sdk/{p-e5bd3e93.js → p-6685a532.js} +1 -1
  152. package/dist/verdocs-web-sdk/{p-7dc40910.system.entry.js → p-66a21bd1.system.entry.js} +1 -1
  153. package/dist/verdocs-web-sdk/p-6caf1137.system.js +1 -1
  154. package/dist/verdocs-web-sdk/p-6f1501f8.entry.js +1 -0
  155. package/dist/verdocs-web-sdk/p-71b8bb54.system.js +1 -0
  156. package/dist/verdocs-web-sdk/p-7bc337ce.entry.js +1 -0
  157. package/dist/verdocs-web-sdk/p-837894c5.system.entry.js +1 -0
  158. package/dist/verdocs-web-sdk/p-8383c63c.js +1 -0
  159. package/dist/verdocs-web-sdk/p-83ada8f3.system.js +1 -0
  160. package/dist/verdocs-web-sdk/{p-2b335cb4.system.js → p-8ac64953.system.js} +1 -1
  161. package/dist/verdocs-web-sdk/p-8b501a20.system.entry.js +1 -0
  162. package/dist/verdocs-web-sdk/{p-66a673dd.entry.js → p-8b87e539.entry.js} +1 -1
  163. package/dist/verdocs-web-sdk/p-8d567305.system.entry.js +1 -0
  164. package/dist/verdocs-web-sdk/p-92b8c139.entry.js +1 -0
  165. package/dist/verdocs-web-sdk/p-983149af.entry.js +1 -0
  166. package/dist/verdocs-web-sdk/p-98c6210b.system.entry.js +1 -0
  167. package/dist/verdocs-web-sdk/p-9b37434a.entry.js +1 -0
  168. package/dist/verdocs-web-sdk/p-9f44ba0d.entry.js +1 -0
  169. package/dist/verdocs-web-sdk/p-9f52d5c3.entry.js +1 -0
  170. package/dist/verdocs-web-sdk/p-a30da45d.entry.js +1 -0
  171. package/dist/verdocs-web-sdk/p-aac44c0d.system.entry.js +1 -0
  172. package/dist/verdocs-web-sdk/p-c5d2e145.entry.js +1 -0
  173. package/dist/verdocs-web-sdk/p-c903c4a7.js +1 -0
  174. package/dist/verdocs-web-sdk/p-d181f220.system.entry.js +1 -0
  175. package/dist/verdocs-web-sdk/p-d92494e8.system.entry.js +1 -0
  176. package/dist/verdocs-web-sdk/{p-736cf2bf.js → p-ddbe721b.js} +1 -1
  177. package/dist/verdocs-web-sdk/p-de6dec13.entry.js +1 -0
  178. package/dist/verdocs-web-sdk/p-df529ac2.system.entry.js +1 -0
  179. package/dist/verdocs-web-sdk/p-e02ac695.entry.js +1 -0
  180. package/dist/verdocs-web-sdk/p-e176d75b.entry.js +1 -0
  181. package/dist/verdocs-web-sdk/{p-fdcf756a.system.js → p-e4dc637b.system.js} +1 -1
  182. package/dist/verdocs-web-sdk/p-e7640564.system.entry.js +1 -0
  183. package/dist/verdocs-web-sdk/p-f7460048.system.entry.js +1 -0
  184. package/dist/verdocs-web-sdk/p-fbda7ba5.entry.js +1 -0
  185. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  186. package/package.json +2 -2
  187. package/dist/cjs/Envelopes-cd0d7be9.js +0 -68
  188. package/dist/cjs/templateStore-b44b1dd5.js +0 -49
  189. package/dist/collection/utils/Envelopes.js +0 -33
  190. package/dist/collection/utils/envelopeStore.js +0 -32
  191. package/dist/components/Envelopes2.js +0 -65
  192. package/dist/components/index3.js +0 -194
  193. package/dist/custom-elements.json +0 -1462
  194. package/dist/esm/Envelopes-93e699a5.js +0 -65
  195. package/dist/esm/templateStore-3b087176.js +0 -47
  196. package/dist/esm-es5/Envelopes-93e699a5.js +0 -1
  197. package/dist/esm-es5/index-85f4a40f.js +0 -1
  198. package/dist/esm-es5/templateStore-3b087176.js +0 -1
  199. package/dist/types/utils/Envelopes.d.ts +0 -2
  200. package/dist/types/utils/envelopeStore.d.ts +0 -12
  201. package/dist/verdocs-web-sdk/p-02914dbb.js +0 -1
  202. package/dist/verdocs-web-sdk/p-030318b5.entry.js +0 -1
  203. package/dist/verdocs-web-sdk/p-0c1bd8ab.system.entry.js +0 -1
  204. package/dist/verdocs-web-sdk/p-0eb7f329.entry.js +0 -1
  205. package/dist/verdocs-web-sdk/p-19804b90.system.entry.js +0 -1
  206. package/dist/verdocs-web-sdk/p-28551fd4.entry.js +0 -1
  207. package/dist/verdocs-web-sdk/p-2a8a48c1.system.entry.js +0 -1
  208. package/dist/verdocs-web-sdk/p-2afbcb32.entry.js +0 -1
  209. package/dist/verdocs-web-sdk/p-2e105a9d.system.entry.js +0 -1
  210. package/dist/verdocs-web-sdk/p-2e7aba30.js +0 -1
  211. package/dist/verdocs-web-sdk/p-312b3c6e.entry.js +0 -1
  212. package/dist/verdocs-web-sdk/p-335f01d1.system.entry.js +0 -1
  213. package/dist/verdocs-web-sdk/p-3dbb8b8c.system.entry.js +0 -1
  214. package/dist/verdocs-web-sdk/p-40e96848.entry.js +0 -1
  215. package/dist/verdocs-web-sdk/p-41d6c443.entry.js +0 -1
  216. package/dist/verdocs-web-sdk/p-43c3073f.system.js +0 -1
  217. package/dist/verdocs-web-sdk/p-4a52d3a3.system.js +0 -1
  218. package/dist/verdocs-web-sdk/p-518f1125.entry.js +0 -1
  219. package/dist/verdocs-web-sdk/p-568c5e70.system.entry.js +0 -1
  220. package/dist/verdocs-web-sdk/p-59ac5b50.system.entry.js +0 -1
  221. package/dist/verdocs-web-sdk/p-5a362440.entry.js +0 -1
  222. package/dist/verdocs-web-sdk/p-5a4227f6.system.entry.js +0 -1
  223. package/dist/verdocs-web-sdk/p-5abaf86d.js +0 -1
  224. package/dist/verdocs-web-sdk/p-609f6f1c.system.entry.js +0 -1
  225. package/dist/verdocs-web-sdk/p-6616c85f.system.entry.js +0 -1
  226. package/dist/verdocs-web-sdk/p-671bb0a7.entry.js +0 -1
  227. package/dist/verdocs-web-sdk/p-70fe647e.system.entry.js +0 -1
  228. package/dist/verdocs-web-sdk/p-7295a277.system.js +0 -1
  229. package/dist/verdocs-web-sdk/p-745cab4f.entry.js +0 -1
  230. package/dist/verdocs-web-sdk/p-745f02b1.system.entry.js +0 -1
  231. package/dist/verdocs-web-sdk/p-7494a45d.system.entry.js +0 -1
  232. package/dist/verdocs-web-sdk/p-7ec320f8.system.entry.js +0 -1
  233. package/dist/verdocs-web-sdk/p-7f28d60f.entry.js +0 -1
  234. package/dist/verdocs-web-sdk/p-7fe39c68.js +0 -1
  235. package/dist/verdocs-web-sdk/p-83a2eaee.system.entry.js +0 -1
  236. package/dist/verdocs-web-sdk/p-8e2e32a8.entry.js +0 -1
  237. package/dist/verdocs-web-sdk/p-94d43d18.entry.js +0 -1
  238. package/dist/verdocs-web-sdk/p-96044424.entry.js +0 -1
  239. package/dist/verdocs-web-sdk/p-9e1ed4b6.system.entry.js +0 -1
  240. package/dist/verdocs-web-sdk/p-9ff98c7c.entry.js +0 -1
  241. package/dist/verdocs-web-sdk/p-a82fc8d0.entry.js +0 -1
  242. package/dist/verdocs-web-sdk/p-ad58de61.system.entry.js +0 -1
  243. package/dist/verdocs-web-sdk/p-b4355a5a.system.entry.js +0 -1
  244. package/dist/verdocs-web-sdk/p-b55a37d5.system.entry.js +0 -1
  245. package/dist/verdocs-web-sdk/p-c0edd8eb.system.entry.js +0 -1
  246. package/dist/verdocs-web-sdk/p-c521e212.system.js +0 -1
  247. package/dist/verdocs-web-sdk/p-c877e418.system.entry.js +0 -1
  248. package/dist/verdocs-web-sdk/p-d0afa6df.entry.js +0 -1
  249. package/dist/verdocs-web-sdk/p-d0aff325.entry.js +0 -1
  250. package/dist/verdocs-web-sdk/p-d4d689cd.entry.js +0 -1
  251. package/dist/verdocs-web-sdk/p-d90f70da.system.entry.js +0 -1
  252. package/dist/verdocs-web-sdk/p-df483a68.system.entry.js +0 -1
  253. package/dist/verdocs-web-sdk/p-e457d21a.entry.js +0 -1
  254. package/dist/verdocs-web-sdk/p-e50182b0.system.entry.js +0 -1
  255. package/dist/verdocs-web-sdk/p-e6b7b61d.entry.js +0 -1
  256. package/dist/verdocs-web-sdk/p-eaaf7e3e.entry.js +0 -1
  257. package/dist/verdocs-web-sdk/p-f0847cbd.entry.js +0 -1
  258. package/dist/verdocs-web-sdk/p-f65a851a.entry.js +0 -1
  259. package/dist/verdocs-web-sdk/p-f724400e.entry.js +0 -1
  260. package/dist/verdocs-web-sdk/p-fab4b76c.system.entry.js +0 -1
@@ -1,194 +0,0 @@
1
- import { getRenderingRef, forceUpdate } from '@stencil/core/internal/client';
2
-
3
- const appendToMap = (map, propName, value) => {
4
- const items = map.get(propName);
5
- if (!items) {
6
- map.set(propName, [value]);
7
- }
8
- else if (!items.includes(value)) {
9
- items.push(value);
10
- }
11
- };
12
- const debounce = (fn, ms) => {
13
- let timeoutId;
14
- return (...args) => {
15
- if (timeoutId) {
16
- clearTimeout(timeoutId);
17
- }
18
- timeoutId = setTimeout(() => {
19
- timeoutId = 0;
20
- fn(...args);
21
- }, ms);
22
- };
23
- };
24
-
25
- /**
26
- * Check if a possible element isConnected.
27
- * The property might not be there, so we check for it.
28
- *
29
- * We want it to return true if isConnected is not a property,
30
- * otherwise we would remove these elements and would not update.
31
- *
32
- * Better leak in Edge than to be useless.
33
- */
34
- const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
35
- const cleanupElements = debounce((map) => {
36
- for (let key of map.keys()) {
37
- map.set(key, map.get(key).filter(isConnected));
38
- }
39
- }, 2000);
40
- const stencilSubscription = () => {
41
- if (typeof getRenderingRef !== 'function') {
42
- // If we are not in a stencil project, we do nothing.
43
- // This function is not really exported by @stencil/core.
44
- return {};
45
- }
46
- const elmsToUpdate = new Map();
47
- return {
48
- dispose: () => elmsToUpdate.clear(),
49
- get: (propName) => {
50
- const elm = getRenderingRef();
51
- if (elm) {
52
- appendToMap(elmsToUpdate, propName, elm);
53
- }
54
- },
55
- set: (propName) => {
56
- const elements = elmsToUpdate.get(propName);
57
- if (elements) {
58
- elmsToUpdate.set(propName, elements.filter(forceUpdate));
59
- }
60
- cleanupElements(elmsToUpdate);
61
- },
62
- reset: () => {
63
- elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));
64
- cleanupElements(elmsToUpdate);
65
- },
66
- };
67
- };
68
-
69
- const unwrap = (val) => (typeof val === 'function' ? val() : val);
70
- const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
71
- const unwrappedState = unwrap(defaultState);
72
- let states = new Map(Object.entries(unwrappedState !== null && unwrappedState !== void 0 ? unwrappedState : {}));
73
- const handlers = {
74
- dispose: [],
75
- get: [],
76
- set: [],
77
- reset: [],
78
- };
79
- const reset = () => {
80
- var _a;
81
- // When resetting the state, the default state may be a function - unwrap it to invoke it.
82
- // otherwise, the state won't be properly reset
83
- states = new Map(Object.entries((_a = unwrap(defaultState)) !== null && _a !== void 0 ? _a : {}));
84
- handlers.reset.forEach((cb) => cb());
85
- };
86
- const dispose = () => {
87
- // Call first dispose as resetting the state would
88
- // cause less updates ;)
89
- handlers.dispose.forEach((cb) => cb());
90
- reset();
91
- };
92
- const get = (propName) => {
93
- handlers.get.forEach((cb) => cb(propName));
94
- return states.get(propName);
95
- };
96
- const set = (propName, value) => {
97
- const oldValue = states.get(propName);
98
- if (shouldUpdate(value, oldValue, propName)) {
99
- states.set(propName, value);
100
- handlers.set.forEach((cb) => cb(propName, value, oldValue));
101
- }
102
- };
103
- const state = (typeof Proxy === 'undefined'
104
- ? {}
105
- : new Proxy(unwrappedState, {
106
- get(_, propName) {
107
- return get(propName);
108
- },
109
- ownKeys(_) {
110
- return Array.from(states.keys());
111
- },
112
- getOwnPropertyDescriptor() {
113
- return {
114
- enumerable: true,
115
- configurable: true,
116
- };
117
- },
118
- has(_, propName) {
119
- return states.has(propName);
120
- },
121
- set(_, propName, value) {
122
- set(propName, value);
123
- return true;
124
- },
125
- }));
126
- const on = (eventName, callback) => {
127
- handlers[eventName].push(callback);
128
- return () => {
129
- removeFromArray(handlers[eventName], callback);
130
- };
131
- };
132
- const onChange = (propName, cb) => {
133
- const unSet = on('set', (key, newValue) => {
134
- if (key === propName) {
135
- cb(newValue);
136
- }
137
- });
138
- // We need to unwrap the defaultState because it might be a function.
139
- // Otherwise we might not be sending the right reset value.
140
- const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));
141
- return () => {
142
- unSet();
143
- unReset();
144
- };
145
- };
146
- const use = (...subscriptions) => {
147
- const unsubs = subscriptions.reduce((unsubs, subscription) => {
148
- if (subscription.set) {
149
- unsubs.push(on('set', subscription.set));
150
- }
151
- if (subscription.get) {
152
- unsubs.push(on('get', subscription.get));
153
- }
154
- if (subscription.reset) {
155
- unsubs.push(on('reset', subscription.reset));
156
- }
157
- if (subscription.dispose) {
158
- unsubs.push(on('dispose', subscription.dispose));
159
- }
160
- return unsubs;
161
- }, []);
162
- return () => unsubs.forEach((unsub) => unsub());
163
- };
164
- const forceUpdate = (key) => {
165
- const oldValue = states.get(key);
166
- handlers.set.forEach((cb) => cb(key, oldValue, oldValue));
167
- };
168
- return {
169
- state,
170
- get,
171
- set,
172
- on,
173
- onChange,
174
- use,
175
- dispose,
176
- reset,
177
- forceUpdate,
178
- };
179
- };
180
- const removeFromArray = (array, item) => {
181
- const index = array.indexOf(item);
182
- if (index >= 0) {
183
- array[index] = array[array.length - 1];
184
- array.length--;
185
- }
186
- };
187
-
188
- const createStore = (defaultState, shouldUpdate) => {
189
- const map = createObservableMap(defaultState, shouldUpdate);
190
- map.use(stencilSubscription());
191
- return map;
192
- };
193
-
194
- export { createStore as c };