@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.
- package/dist/cjs/{Envelopes-87aea63d.js → Envelopes-2b8a280d.js} +16 -1
- package/dist/cjs/{Templates-e72a23b7.js → Templates-6705a1ce.js} +1 -1
- package/dist/cjs/{interact.min-d2e625b7.js → interact.min-8e19d5c0.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{index-4de6ec2f.js → templateStore-1862f03c.js} +45 -1
- package/dist/cjs/{utils-cc3321ad.js → utils-cf75a796.js} +1 -1
- package/dist/cjs/verdocs-build.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-button-panel_3.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-dropdown_2.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +21 -20
- package/dist/cjs/verdocs-field-attachment.cjs.entry.js +1 -2
- package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +3 -4
- package/dist/cjs/verdocs-field-date.cjs.entry.js +3 -4
- package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +3 -4
- package/dist/cjs/verdocs-field-initial.cjs.entry.js +3 -4
- package/dist/cjs/verdocs-field-payment.cjs.entry.js +3 -4
- package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +3 -4
- package/dist/cjs/verdocs-field-signature.cjs.entry.js +3 -4
- package/dist/cjs/verdocs-field-textarea.cjs.entry.js +3 -4
- package/dist/cjs/verdocs-field-textbox.cjs.entry.js +4 -5
- package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +3 -4
- package/dist/cjs/verdocs-preview.cjs.entry.js +4 -5
- package/dist/cjs/verdocs-send.cjs.entry.js +4 -5
- package/dist/cjs/verdocs-sign.cjs.entry.js +24 -23
- package/dist/cjs/verdocs-template-attachments.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-template-create_2.cjs.entry.js +5 -6
- package/dist/cjs/verdocs-template-document-page.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-template-name.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-template-properties.cjs.entry.js +1 -2
- package/dist/cjs/verdocs-template-reminders.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-template-role-properties_2.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-template-roles.cjs.entry.js +5 -6
- package/dist/cjs/verdocs-template-visibility.cjs.entry.js +2 -3
- package/dist/cjs/verdocs-view.cjs.entry.js +24 -24
- package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
- package/dist/collection/components/elements/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js +24 -20
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +26 -23
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +25 -23
- package/dist/components/Envelopes.js +16 -1
- package/dist/components/templateStore.js +192 -1
- package/dist/components/verdocs-envelope-sidebar.js +23 -18
- package/dist/components/verdocs-sign.js +25 -21
- package/dist/components/verdocs-view2.js +25 -22
- package/dist/docs.json +1 -1
- package/dist/esm/{Envelopes-16f09341.js → Envelopes-c36c692e.js} +16 -1
- package/dist/esm/{Templates-d66ec625.js → Templates-deedf4bd.js} +1 -1
- package/dist/esm/{interact.min-1e2f37ab.js → interact.min-da238961.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{index-85f4a40f.js → templateStore-17c872da.js} +45 -1
- package/dist/esm/{utils-bca7b101.js → utils-1d934f99.js} +1 -1
- package/dist/esm/verdocs-build.entry.js +2 -3
- package/dist/esm/verdocs-button-panel_3.entry.js +2 -3
- package/dist/esm/verdocs-dropdown_2.entry.js +2 -2
- package/dist/esm/verdocs-envelope-sidebar.entry.js +21 -20
- package/dist/esm/verdocs-field-attachment.entry.js +1 -2
- package/dist/esm/verdocs-field-checkbox.entry.js +3 -4
- package/dist/esm/verdocs-field-date.entry.js +3 -4
- package/dist/esm/verdocs-field-dropdown.entry.js +3 -4
- package/dist/esm/verdocs-field-initial.entry.js +3 -4
- package/dist/esm/verdocs-field-payment.entry.js +3 -4
- package/dist/esm/verdocs-field-radio-button.entry.js +3 -4
- package/dist/esm/verdocs-field-signature.entry.js +3 -4
- package/dist/esm/verdocs-field-textarea.entry.js +3 -4
- package/dist/esm/verdocs-field-textbox.entry.js +4 -5
- package/dist/esm/verdocs-field-timestamp.entry.js +3 -4
- package/dist/esm/verdocs-preview.entry.js +4 -5
- package/dist/esm/verdocs-send.entry.js +4 -5
- package/dist/esm/verdocs-sign.entry.js +24 -23
- package/dist/esm/verdocs-template-attachments.entry.js +2 -3
- package/dist/esm/verdocs-template-create_2.entry.js +5 -6
- package/dist/esm/verdocs-template-document-page.entry.js +2 -2
- package/dist/esm/verdocs-template-name.entry.js +2 -3
- package/dist/esm/verdocs-template-properties.entry.js +1 -2
- package/dist/esm/verdocs-template-reminders.entry.js +2 -3
- package/dist/esm/verdocs-template-role-properties_2.entry.js +2 -3
- package/dist/esm/verdocs-template-roles.entry.js +5 -6
- package/dist/esm/verdocs-template-visibility.entry.js +2 -3
- package/dist/esm/verdocs-view.entry.js +23 -23
- package/dist/esm/verdocs-web-sdk.js +1 -1
- package/dist/esm-es5/{Envelopes-16f09341.js → Envelopes-c36c692e.js} +1 -1
- package/dist/esm-es5/{Templates-d66ec625.js → Templates-deedf4bd.js} +1 -1
- package/dist/esm-es5/{interact.min-1e2f37ab.js → interact.min-da238961.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/templateStore-17c872da.js +1 -0
- package/dist/esm-es5/{utils-bca7b101.js → utils-1d934f99.js} +1 -1
- package/dist/esm-es5/verdocs-build.entry.js +1 -1
- package/dist/esm-es5/verdocs-button-panel_3.entry.js +1 -1
- package/dist/esm-es5/verdocs-dropdown_2.entry.js +1 -1
- package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-attachment.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
- package/dist/esm-es5/verdocs-preview.entry.js +1 -1
- package/dist/esm-es5/verdocs-send.entry.js +1 -1
- package/dist/esm-es5/verdocs-sign.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-attachments.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-create_2.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-document-page.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-name.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-properties.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-reminders.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-role-properties_2.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-roles.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-visibility.entry.js +1 -1
- package/dist/esm-es5/verdocs-view.entry.js +1 -1
- package/dist/esm-es5/verdocs-web-sdk.js +1 -1
- package/dist/types/components/elements/verdocs-envelope-sidebar/verdocs-envelope-sidebar.d.ts +4 -2
- package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +2 -0
- package/dist/types/components/embeds/verdocs-view/verdocs-view.d.ts +2 -0
- package/dist/verdocs-web-sdk/p-037fa432.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-6a2e16ea.system.js → p-0a000948.system.js} +1 -1
- package/dist/verdocs-web-sdk/p-10ea4d8d.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-ceae05e8.system.entry.js → p-152f38f2.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-1772de58.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-1a9437d9.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-1d60a9e2.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-7d73a258.entry.js → p-212ecdc5.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-284f69ec.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-2af1ec32.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-2e2fd9f3.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-30decbde.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-32665c92.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-36ef57a7.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-370e03f7.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-38368af4.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-386a9c8b.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-3ec38739.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-4161fc87.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-4271a0bf.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-449e8445.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-4680b94d.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-47eec326.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-48fbc0e0.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-511ba013.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-52164a0a.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-5574e12d.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-58cbbdf4.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-5911bf86.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-5e1b2cc7.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-62542624.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-3d0efcc9.js → p-6324d9f8.js} +1 -1
- package/dist/verdocs-web-sdk/p-63789dec.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-e5bd3e93.js → p-6685a532.js} +1 -1
- package/dist/verdocs-web-sdk/{p-7dc40910.system.entry.js → p-66a21bd1.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-6caf1137.system.js +1 -1
- package/dist/verdocs-web-sdk/p-6f1501f8.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-71b8bb54.system.js +1 -0
- package/dist/verdocs-web-sdk/p-7bc337ce.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-837894c5.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-8383c63c.js +1 -0
- package/dist/verdocs-web-sdk/p-83ada8f3.system.js +1 -0
- package/dist/verdocs-web-sdk/{p-2b335cb4.system.js → p-8ac64953.system.js} +1 -1
- package/dist/verdocs-web-sdk/p-8b501a20.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-66a673dd.entry.js → p-8b87e539.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-8d567305.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-92b8c139.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-983149af.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-98c6210b.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-9b37434a.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-9f44ba0d.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-9f52d5c3.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-a30da45d.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-aac44c0d.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-c5d2e145.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-c903c4a7.js +1 -0
- package/dist/verdocs-web-sdk/p-d181f220.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-d92494e8.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-736cf2bf.js → p-ddbe721b.js} +1 -1
- package/dist/verdocs-web-sdk/p-de6dec13.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-df529ac2.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-e02ac695.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-e176d75b.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-fdcf756a.system.js → p-e4dc637b.system.js} +1 -1
- package/dist/verdocs-web-sdk/p-e7640564.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-f7460048.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-fbda7ba5.entry.js +1 -0
- package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
- package/package.json +2 -2
- package/dist/cjs/Envelopes-cd0d7be9.js +0 -68
- package/dist/cjs/templateStore-b44b1dd5.js +0 -49
- package/dist/collection/utils/Envelopes.js +0 -33
- package/dist/collection/utils/envelopeStore.js +0 -32
- package/dist/components/Envelopes2.js +0 -65
- package/dist/components/index3.js +0 -194
- package/dist/custom-elements.json +0 -1462
- package/dist/esm/Envelopes-93e699a5.js +0 -65
- package/dist/esm/templateStore-3b087176.js +0 -47
- package/dist/esm-es5/Envelopes-93e699a5.js +0 -1
- package/dist/esm-es5/index-85f4a40f.js +0 -1
- package/dist/esm-es5/templateStore-3b087176.js +0 -1
- package/dist/types/utils/Envelopes.d.ts +0 -2
- package/dist/types/utils/envelopeStore.d.ts +0 -12
- package/dist/verdocs-web-sdk/p-02914dbb.js +0 -1
- package/dist/verdocs-web-sdk/p-030318b5.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-0c1bd8ab.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-0eb7f329.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-19804b90.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-28551fd4.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-2a8a48c1.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-2afbcb32.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-2e105a9d.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-2e7aba30.js +0 -1
- package/dist/verdocs-web-sdk/p-312b3c6e.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-335f01d1.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-3dbb8b8c.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-40e96848.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-41d6c443.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-43c3073f.system.js +0 -1
- package/dist/verdocs-web-sdk/p-4a52d3a3.system.js +0 -1
- package/dist/verdocs-web-sdk/p-518f1125.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-568c5e70.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-59ac5b50.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-5a362440.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-5a4227f6.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-5abaf86d.js +0 -1
- package/dist/verdocs-web-sdk/p-609f6f1c.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-6616c85f.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-671bb0a7.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-70fe647e.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-7295a277.system.js +0 -1
- package/dist/verdocs-web-sdk/p-745cab4f.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-745f02b1.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-7494a45d.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-7ec320f8.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-7f28d60f.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-7fe39c68.js +0 -1
- package/dist/verdocs-web-sdk/p-83a2eaee.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-8e2e32a8.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-94d43d18.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-96044424.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-9e1ed4b6.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-9ff98c7c.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-a82fc8d0.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-ad58de61.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-b4355a5a.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-b55a37d5.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-c0edd8eb.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-c521e212.system.js +0 -1
- package/dist/verdocs-web-sdk/p-c877e418.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-d0afa6df.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-d0aff325.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-d4d689cd.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-d90f70da.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-df483a68.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-e457d21a.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-e50182b0.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-e6b7b61d.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-eaaf7e3e.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-f0847cbd.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-f65a851a.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-f724400e.entry.js +0 -1
- 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 };
|