solid-ui 3.1.3-13 → 3.1.3-15
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/README.md +0 -14
- package/dist/_virtual/_rolldown/runtime.cjs.js +1 -1
- package/dist/acl/access-controller.cjs.js.map +1 -1
- package/dist/acl/access-groups.cjs.js +1 -1
- package/dist/acl/access-groups.cjs.js.map +1 -1
- package/dist/acl/access-groups.esm.js +2 -1
- package/dist/acl/access-groups.esm.js.map +1 -1
- package/dist/acl/acl.cjs.js.map +1 -1
- package/dist/acl/acl.esm.js.map +1 -1
- package/dist/chat/bookmarks.esm.js +2 -1
- package/dist/chat/bookmarks.esm.js.map +1 -1
- package/dist/chat/chatLogic.cjs.js +1 -1
- package/dist/chat/chatLogic.cjs.js.map +1 -1
- package/dist/chat/chatLogic.esm.js +2 -2
- package/dist/chat/chatLogic.esm.js.map +1 -1
- package/dist/chat/keys.cjs.js +1 -1
- package/dist/chat/keys.cjs.js.map +1 -1
- package/dist/chat/keys.d.ts +1 -1
- package/dist/chat/keys.d.ts.map +1 -1
- package/dist/chat/keys.esm.js +5 -2
- package/dist/chat/keys.esm.js.map +1 -1
- package/dist/chat/signature.cjs.js +1 -1
- package/dist/chat/signature.cjs.js.map +1 -1
- package/dist/chat/signature.esm.js +2 -1
- package/dist/chat/signature.esm.js.map +1 -1
- package/dist/chunks/{DialogProvider-B7wEBrVN.js → DialogProvider-0HIHjONx.js} +11 -11
- package/dist/chunks/{DialogProvider-B7wEBrVN.js.map → DialogProvider-0HIHjONx.js.map} +1 -1
- package/dist/chunks/{account-DeNlj01m.js → account-Ch8h_zTv.js} +20 -21
- package/dist/chunks/{account-DeNlj01m.js.map → account-Ch8h_zTv.js.map} +1 -1
- package/dist/chunks/{auth-Knq99zZ9.js → auth-D4NUMSzc.js} +98 -72
- package/dist/chunks/auth-D4NUMSzc.js.map +1 -0
- package/dist/chunks/{avatar-DgO_p94F.js → avatar-BWtz4RlU.js} +7 -8
- package/dist/chunks/{avatar-DgO_p94F.js.map → avatar-BWtz4RlU.js.map} +1 -1
- package/dist/chunks/{button-Dvkek1tx.js → button-BJyFKOKO.js} +12 -15
- package/dist/chunks/{button-Dvkek1tx.js.map → button-BJyFKOKO.js.map} +1 -1
- package/dist/chunks/{chunk.7MPIABXH-DNcYOuE8.js → chunk.64OG2H45-BADxAtEI.js} +97 -50
- package/dist/chunks/chunk.64OG2H45-BADxAtEI.js.map +1 -0
- package/dist/chunks/{combobox-B5j4LoHY.js → combobox-0NWv9K3D.js} +106 -93
- package/dist/chunks/combobox-0NWv9K3D.js.map +1 -0
- package/dist/chunks/{combobox-option-C5lKAumO.js → combobox-option-B-twy1Zn.js} +6 -7
- package/dist/chunks/{combobox-option-C5lKAumO.js.map → combobox-option-B-twy1Zn.js.map} +1 -1
- package/dist/chunks/components-DrP7BOrs.js +1281 -0
- package/dist/chunks/components-DrP7BOrs.js.map +1 -0
- package/dist/chunks/{dialog-DZgm_Tph.js → dialog-CcMVH-Ut.js} +16 -16
- package/dist/chunks/{dialog-DZgm_Tph.js.map → dialog-CcMVH-Ut.js.map} +1 -1
- package/dist/chunks/{dialog-content-DY-ROHyi.js → dialog-content-DcD_s3hK.js} +2 -3
- package/dist/chunks/{dialog-content-DY-ROHyi.js.map → dialog-content-DcD_s3hK.js.map} +1 -1
- package/dist/chunks/{dialog-footer-BAZTjZ8J.js → dialog-footer-CHgSH7G5.js} +2 -3
- package/dist/chunks/{dialog-footer-BAZTjZ8J.js.map → dialog-footer-CHgSH7G5.js.map} +1 -1
- package/dist/chunks/{dialog-header-COzPcK8F.js → dialog-header-BjellR7_.js} +2 -3
- package/dist/chunks/{dialog-header-COzPcK8F.js.map → dialog-header-BjellR7_.js.map} +1 -1
- package/dist/chunks/{dialogs-DEuwXC46.js → dialogs-CeHuLUo5.js} +2 -2
- package/dist/chunks/{dialogs-DEuwXC46.js.map → dialogs-CeHuLUo5.js.map} +1 -1
- package/dist/chunks/{dialogs-root-BYp6fIUE.js → dialogs-root-CvsON-m8.js} +5 -6
- package/dist/chunks/{dialogs-root-BYp6fIUE.js.map → dialogs-root-CvsON-m8.js.map} +1 -1
- package/dist/chunks/{guard-DI4k0FkM.js → guard-BIesxo_f.js} +7 -8
- package/dist/chunks/{guard-DI4k0FkM.js.map → guard-BIesxo_f.js.map} +1 -1
- package/dist/chunks/{solid-logic.esm-BrMdCG2_.js → index.esm-CyyOkz04.js} +2663 -2745
- package/dist/chunks/index.esm-CyyOkz04.js.map +1 -0
- package/dist/chunks/{input-CCpEhtqA.js → input-CFDN76Y5.js} +99 -54
- package/dist/chunks/input-CFDN76Y5.js.map +1 -0
- package/dist/chunks/{jsonld-B61R4iOL.js → jsonld-52q5nY_t.js} +22 -27
- package/dist/chunks/{jsonld-B61R4iOL.js.map → jsonld-52q5nY_t.js.map} +1 -1
- package/dist/chunks/{login-button-BafqiKef.js → login-button-BhdKFJ-F.js} +8 -9
- package/dist/chunks/{login-button-BafqiKef.js.map → login-button-BhdKFJ-F.js.map} +1 -1
- package/dist/chunks/{logout-button-D54NF9EW.js → logout-button-ClbKS9ss.js} +8 -9
- package/dist/chunks/{logout-button-D54NF9EW.js.map → logout-button-ClbKS9ss.js.map} +1 -1
- package/dist/chunks/{menu-DKxtACGA.js → menu-DVgG-el5.js} +39 -35
- package/dist/chunks/menu-DVgG-el5.js.map +1 -0
- package/dist/chunks/{menu-item-D9BqJtKZ.js → menu-item-Bj3NgLzB.js} +5 -6
- package/dist/chunks/{menu-item-D9BqJtKZ.js.map → menu-item-Bj3NgLzB.js.map} +1 -1
- package/dist/chunks/{photo-capture-BoZF621r.js → photo-capture-CVKE0SKx.js} +18 -19
- package/dist/chunks/{photo-capture-BoZF621r.js.map → photo-capture-CVKE0SKx.js.map} +1 -1
- package/dist/chunks/{photo-capture-modal-BLZtHDj1.js → photo-capture-modal-DARmhHUH.js} +26 -26
- package/dist/chunks/{photo-capture-modal-BLZtHDj1.js.map → photo-capture-modal-DARmhHUH.js.map} +1 -1
- package/dist/chunks/{provider-Btl6Lnki.js → provider-CBSBzOfP.js} +9 -10
- package/dist/chunks/{provider-Btl6Lnki.js.map → provider-CBSBzOfP.js.map} +1 -1
- package/dist/chunks/rdf-form-BeuzVBOP.js +339 -0
- package/dist/chunks/rdf-form-BeuzVBOP.js.map +1 -0
- package/dist/chunks/rdf-input-n73oeSkf.js +440 -0
- package/dist/chunks/rdf-input-n73oeSkf.js.map +1 -0
- package/dist/chunks/{rolldown-runtime-B1bRi_D7.js → rolldown-runtime-Cb76FRpK.js} +2 -2
- package/dist/chunks/{select-XkieYvDm.js → select-BuIxSm1A.js} +9 -10
- package/dist/chunks/{select-XkieYvDm.js.map → select-BuIxSm1A.js.map} +1 -1
- package/dist/chunks/{select-option-DUg4AWzw.js → select-option-Z8qZsCQo.js} +6 -7
- package/dist/chunks/{select-option-DUg4AWzw.js.map → select-option-Z8qZsCQo.js.map} +1 -1
- package/dist/chunks/{signup-button-D5wS8_gB.js → signup-button-B-AgjjAK.js} +8 -9
- package/dist/chunks/{signup-button-D5wS8_gB.js.map → signup-button-B-AgjjAK.js.map} +1 -1
- package/dist/chunks/{solid-emblem-XHk-oomv.js → solid-emblem-D4ItOckU.js} +2 -3
- package/dist/chunks/{solid-emblem-XHk-oomv.js.map → solid-emblem-D4ItOckU.js.map} +1 -1
- package/dist/chunks/{src-CJICzMIV.js → src-B5SL8UtS.js} +2741 -3207
- package/dist/chunks/src-B5SL8UtS.js.map +1 -0
- package/dist/chunks/style-CjYxsW7j.js +536 -0
- package/dist/chunks/style-CjYxsW7j.js.map +1 -0
- package/dist/components/account/Account.cjs.js.map +1 -1
- package/dist/components/account.js +1 -1
- package/dist/components/all.cjs.js +1 -1
- package/dist/components/all.esm.js +2 -1
- package/dist/components/avatar/Avatar.cjs.js.map +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/button/Button.cjs.js +1 -1
- package/dist/components/button/Button.cjs.js.map +1 -1
- package/dist/components/button/Button.esm.js +1 -3
- package/dist/components/button/Button.esm.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/combobox/Combobox.cjs.js +2 -2
- package/dist/components/combobox/Combobox.cjs.js.map +1 -1
- package/dist/components/combobox/Combobox.d.ts +1 -0
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.esm.js +61 -47
- package/dist/components/combobox/Combobox.esm.js.map +1 -1
- package/dist/components/combobox-option/ComboboxOption.cjs.js.map +1 -1
- package/dist/components/combobox-option.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/dialog/Dialog.cjs.js +4 -4
- package/dist/components/dialog/Dialog.cjs.js.map +1 -1
- package/dist/components/dialog/Dialog.esm.js +5 -4
- package/dist/components/dialog/Dialog.esm.js.map +1 -1
- package/dist/components/dialog-content.js +1 -1
- package/dist/components/dialog-footer.js +1 -1
- package/dist/components/dialog-header.js +1 -1
- package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
- package/dist/components/dialog-provider.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
- package/dist/components/dialogs-root.js +1 -1
- package/dist/components/guard/Guard.cjs.js.map +1 -1
- package/dist/components/guard.js +1 -1
- package/dist/components/input/Input.cjs.js +3 -2
- package/dist/components/input/Input.cjs.js.map +1 -1
- package/dist/components/input/Input.d.ts +3 -0
- package/dist/components/input/Input.d.ts.map +1 -1
- package/dist/components/input/Input.esm.js +99 -53
- package/dist/components/input/Input.esm.js.map +1 -1
- package/dist/components/input/Input.styles.cjs.js +1 -1
- package/dist/components/input/Input.styles.cjs.js.map +1 -1
- package/dist/components/input/Input.styles.esm.js +1 -1
- package/dist/components/input/Input.styles.esm.js.map +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/login-button/LoginButton.cjs.js.map +1 -1
- package/dist/components/login-button.js +1 -1
- package/dist/components/login-modal/LoginModal.cjs.js.map +1 -1
- package/dist/components/login-modal.js +1 -1
- package/dist/components/logout-button/LogoutButton.cjs.js.map +1 -1
- package/dist/components/logout-button.js +1 -1
- package/dist/components/menu/Menu.cjs.js +1 -1
- package/dist/components/menu/Menu.cjs.js.map +1 -1
- package/dist/components/menu/Menu.d.ts.map +1 -1
- package/dist/components/menu/Menu.esm.js +1 -1
- package/dist/components/menu/Menu.esm.js.map +1 -1
- package/dist/components/menu/Menu.test.d.ts +1 -0
- package/dist/components/menu/Menu.test.d.ts.map +1 -0
- package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
- package/dist/components/menu-item.js +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/photo-capture/PhotoCapture.cjs.js.map +1 -1
- package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js +1 -1
- package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js.map +1 -1
- package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js +2 -1
- package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js.map +1 -1
- package/dist/components/photo-capture-modal.js +1 -1
- package/dist/components/photo-capture.js +1 -1
- package/dist/components/provider/Provider.cjs.js.map +1 -1
- package/dist/components/provider.js +1 -1
- package/dist/components/rdf-form/RDFForm.cjs.js +12 -0
- package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -0
- package/dist/components/rdf-form/RDFForm.d.ts +17 -0
- package/dist/components/rdf-form/RDFForm.d.ts.map +1 -0
- package/dist/components/rdf-form/RDFForm.esm.js +344 -0
- package/dist/components/rdf-form/RDFForm.esm.js.map +1 -0
- package/dist/components/rdf-form/RDForm.stories.d.ts +20 -0
- package/dist/components/rdf-form/RDForm.stories.d.ts.map +1 -0
- package/dist/components/rdf-form/index.cjs.js +2 -0
- package/dist/components/rdf-form/index.cjs.js.map +1 -0
- package/dist/components/rdf-form/index.d.ts +4 -0
- package/dist/components/rdf-form/index.d.ts.map +1 -0
- package/dist/components/rdf-form/index.esm.js +7 -0
- package/dist/components/rdf-form/index.esm.js.map +1 -0
- package/dist/components/rdf-form.js +2 -0
- package/dist/components/rdf-input/RDFInput.cjs.js +11 -0
- package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -0
- package/dist/components/rdf-input/RDFInput.d.ts +24 -0
- package/dist/components/rdf-input/RDFInput.d.ts.map +1 -0
- package/dist/components/rdf-input/RDFInput.esm.js +349 -0
- package/dist/components/rdf-input/RDFInput.esm.js.map +1 -0
- package/dist/components/rdf-input/index.cjs.js +2 -0
- package/dist/components/rdf-input/index.cjs.js.map +1 -0
- package/dist/components/rdf-input/index.d.ts +4 -0
- package/dist/components/rdf-input/index.d.ts.map +1 -0
- package/dist/components/rdf-input/index.esm.js +7 -0
- package/dist/components/rdf-input/index.esm.js.map +1 -0
- package/dist/components/rdf-input.js +2 -0
- package/dist/components/select/Select.cjs.js.map +1 -1
- package/dist/components/select-option/SelectOption.cjs.js.map +1 -1
- package/dist/components/select-option.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/signup-button/SignupButton.cjs.js.map +1 -1
- package/dist/components/signup-button.js +1 -1
- package/dist/components/solid-emblem.js +1 -1
- package/dist/components.js +26 -25
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +3 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +8 -7
- package/dist/lib/auth/SolidAuth.cjs.js +1 -1
- package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
- package/dist/lib/auth/SolidAuth.esm.js +3 -1
- package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
- package/dist/lib/auth/context.cjs.js.map +1 -1
- package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -1
- package/dist/lib/components/form-control-component/FormControlComponent.cjs.js.map +1 -1
- package/dist/lib/components/web-component/WebComponent.cjs.js +1 -1
- package/dist/lib/components/web-component/WebComponent.cjs.js.map +1 -1
- package/dist/lib/components/web-component/WebComponent.esm.js +2 -1
- package/dist/lib/components/web-component/WebComponent.esm.js.map +1 -1
- package/dist/lib/dialogs/context.cjs.js.map +1 -1
- package/dist/lib/file-explorer/context.cjs.js +2 -0
- package/dist/lib/file-explorer/context.cjs.js.map +1 -0
- package/dist/lib/file-explorer/context.d.ts +22 -0
- package/dist/lib/file-explorer/context.d.ts.map +1 -0
- package/dist/lib/file-explorer/context.esm.js +7 -0
- package/dist/lib/file-explorer/context.esm.js.map +1 -0
- package/dist/lib/forms/fieldParams.cjs.js +2 -0
- package/dist/lib/forms/fieldParams.cjs.js.map +1 -0
- package/dist/lib/forms/fieldParams.d.ts +21 -0
- package/dist/lib/forms/fieldParams.d.ts.map +1 -0
- package/dist/lib/forms/fieldParams.esm.js +74 -0
- package/dist/lib/forms/fieldParams.esm.js.map +1 -0
- package/dist/lib/forms/rdfFormsHelper.cjs.js +2 -0
- package/dist/lib/forms/rdfFormsHelper.cjs.js.map +1 -0
- package/dist/lib/forms/rdfFormsHelper.d.ts +16 -0
- package/dist/lib/forms/rdfFormsHelper.d.ts.map +1 -0
- package/dist/lib/forms/rdfFormsHelper.esm.js +34 -0
- package/dist/lib/forms/rdfFormsHelper.esm.js.map +1 -0
- package/dist/lib/forms/store/NoopStore.cjs.js +2 -0
- package/dist/lib/forms/store/NoopStore.cjs.js.map +1 -0
- package/dist/lib/forms/store/NoopStore.d.ts +6 -0
- package/dist/lib/forms/store/NoopStore.d.ts.map +1 -0
- package/dist/lib/forms/store/NoopStore.esm.js +10 -0
- package/dist/lib/forms/store/NoopStore.esm.js.map +1 -0
- package/dist/lib/forms/store/StoreContext.cjs.js +2 -0
- package/dist/lib/forms/store/StoreContext.cjs.js.map +1 -0
- package/dist/lib/forms/store/StoreContext.d.ts +10 -0
- package/dist/lib/forms/store/StoreContext.d.ts.map +1 -0
- package/dist/lib/forms/store/StoreContext.esm.js +8 -0
- package/dist/lib/forms/store/StoreContext.esm.js.map +1 -0
- package/dist/lib/ns.cjs.js.map +1 -1
- package/dist/lib/pad.cjs.js +1 -1
- package/dist/lib/pad.cjs.js.map +1 -1
- package/dist/lib/pad.esm.js +6 -5
- package/dist/lib/pad.esm.js.map +1 -1
- package/dist/lib/participation.cjs.js +1 -1
- package/dist/lib/participation.cjs.js.map +1 -1
- package/dist/lib/participation.esm.js +4 -2
- package/dist/lib/participation.esm.js.map +1 -1
- package/dist/lib/preferences.cjs.js +1 -1
- package/dist/lib/preferences.cjs.js.map +1 -1
- package/dist/lib/preferences.esm.js +9 -7
- package/dist/lib/preferences.esm.js.map +1 -1
- package/dist/lib/table.cjs.js +2 -2
- package/dist/lib/table.cjs.js.map +1 -1
- package/dist/lib/table.esm.js +2 -2
- package/dist/lib/table.esm.js.map +1 -1
- package/dist/loader.js +8 -7
- package/dist/login/login.cjs.js.map +1 -1
- package/dist/media/media-capture.esm.js +2 -1
- package/dist/media/media-capture.esm.js.map +1 -1
- package/dist/solid-ui.js +107 -156
- package/dist/solid-ui.min.js +107 -156
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/storybook/components/StorybookProvider.d.ts +1 -0
- package/dist/storybook/components/StorybookProvider.d.ts.map +1 -1
- package/dist/storybook/store/StorybookStore.d.ts +6 -0
- package/dist/storybook/store/StorybookStore.d.ts.map +1 -0
- package/dist/utils/headerFooterHelpers.cjs.js +1 -1
- package/dist/utils/headerFooterHelpers.cjs.js.map +1 -1
- package/dist/utils/headerFooterHelpers.esm.js +2 -1
- package/dist/utils/headerFooterHelpers.esm.js.map +1 -1
- package/dist/utils/index.cjs.js +1 -1
- package/dist/utils/index.cjs.js.map +1 -1
- package/dist/utils/index.esm.js +1 -1
- package/dist/utils/index.esm.js.map +1 -1
- package/dist/utils/keyHelpers/accessData.cjs.js +1 -1
- package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
- package/dist/utils/keyHelpers/accessData.d.ts +3 -3
- package/dist/utils/keyHelpers/accessData.d.ts.map +1 -1
- package/dist/utils/keyHelpers/accessData.esm.js +2 -1
- package/dist/utils/keyHelpers/accessData.esm.js.map +1 -1
- package/dist/utils/keyHelpers/otherHelpers.d.ts +1 -1
- package/dist/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
- package/dist/widgets/buttons.cjs.js +2 -2
- package/dist/widgets/buttons.cjs.js.map +1 -1
- package/dist/widgets/buttons.esm.js +10 -5
- package/dist/widgets/buttons.esm.js.map +1 -1
- package/dist/widgets/dragAndDrop.cjs.js +1 -1
- package/dist/widgets/dragAndDrop.cjs.js.map +1 -1
- package/dist/widgets/dragAndDrop.esm.js +1 -1
- package/dist/widgets/dragAndDrop.esm.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js +25 -18
- package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/publicData.cjs.js +1 -1
- package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/publicData.d.ts +3 -3
- package/dist/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
- package/dist/widgets/forms/autocomplete/publicData.esm.js +6 -4
- package/dist/widgets/forms/autocomplete/publicData.esm.js.map +1 -1
- package/dist/widgets/forms/basic.cjs.js +1 -1
- package/dist/widgets/forms/basic.cjs.js.map +1 -1
- package/dist/widgets/forms/basic.esm.js +27 -25
- package/dist/widgets/forms/basic.esm.js.map +1 -1
- package/dist/widgets/forms/formStyle.cjs.js +1 -1
- package/dist/widgets/forms/formStyle.cjs.js.map +1 -1
- package/dist/widgets/forms/formStyle.esm.js +4 -4
- package/dist/widgets/forms/formStyle.esm.js.map +1 -1
- package/dist/widgets/forms.cjs.js +2 -2
- package/dist/widgets/forms.cjs.js.map +1 -1
- package/dist/widgets/forms.esm.js +10 -8
- package/dist/widgets/forms.esm.js.map +1 -1
- package/dist/widgets/multiSelect.cjs.js +1 -1
- package/dist/widgets/multiSelect.cjs.js.map +1 -1
- package/dist/widgets/multiSelect.esm.js +2 -1
- package/dist/widgets/multiSelect.esm.js.map +1 -1
- package/dist/widgets/peoplePicker.cjs.js.map +1 -1
- package/package.json +4 -3
- package/dist/chunks/auth-Knq99zZ9.js.map +0 -1
- package/dist/chunks/chunk.7MPIABXH-DNcYOuE8.js.map +0 -1
- package/dist/chunks/combobox-B5j4LoHY.js.map +0 -1
- package/dist/chunks/components-BD458q30.js +0 -758
- package/dist/chunks/components-BD458q30.js.map +0 -1
- package/dist/chunks/footer-BLSjn5ur.js +0 -144
- package/dist/chunks/footer-BLSjn5ur.js.map +0 -1
- package/dist/chunks/headerFooterHelpers-CPd5d20q.js +0 -52
- package/dist/chunks/headerFooterHelpers-CPd5d20q.js.map +0 -1
- package/dist/chunks/input-CCpEhtqA.js.map +0 -1
- package/dist/chunks/lit-C4H1jI4q.js +0 -527
- package/dist/chunks/lit-C4H1jI4q.js.map +0 -1
- package/dist/chunks/menu-DKxtACGA.js.map +0 -1
- package/dist/chunks/solid-logic.esm-BrMdCG2_.js.map +0 -1
- package/dist/chunks/src-CJICzMIV.js.map +0 -1
- package/dist/components/footer/index.cjs.js +0 -1
- package/dist/components/footer/index.d.ts +0 -2
- package/dist/components/footer/index.d.ts.map +0 -1
- package/dist/components/footer/index.esm.js +0 -3
- package/dist/components/footer.js +0 -2
- package/dist/v2/components/layout/footer/Footer.cjs.js +0 -73
- package/dist/v2/components/layout/footer/Footer.cjs.js.map +0 -1
- package/dist/v2/components/layout/footer/Footer.d.ts +0 -60
- package/dist/v2/components/layout/footer/Footer.d.ts.map +0 -1
- package/dist/v2/components/layout/footer/Footer.esm.js +0 -143
- package/dist/v2/components/layout/footer/Footer.esm.js.map +0 -1
- package/dist/v2/components/layout/footer/Footer.test.d.ts +0 -1
- package/dist/v2/components/layout/footer/Footer.test.d.ts.map +0 -1
- package/dist/v2/components/layout/footer/index.cjs.js +0 -2
- package/dist/v2/components/layout/footer/index.cjs.js.map +0 -1
- package/dist/v2/components/layout/footer/index.d.ts +0 -3
- package/dist/v2/components/layout/footer/index.d.ts.map +0 -1
- package/dist/v2/components/layout/footer/index.esm.js +0 -8
- package/dist/v2/components/layout/footer/index.esm.js.map +0 -1
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// REMOVE @ts-ignore as you migrate files to TypeScript\n// @ts-ignore\nimport ns from './lib/ns'\nimport { acl, aclControl } from './acl/index'\nimport { create } from './create/index'\n// @ts-ignore\nimport { icons } from './lib/iconBase'\nimport * as language from './widgets/forms/autocomplete/language'\nimport * as log from './lib/log'\nimport { matrix } from './matrix/index'\nimport { media } from './media/index'\n// @ts-ignore\nimport { messageArea } from './lib/messageArea'\n// @ts-ignore\nimport { infiniteMessageArea } from './chat/infinite'\n// @ts-ignore\nimport * as pad from './lib/pad'\n// @ts-ignore\nimport * as participation from './lib/participation'\n// @ts-ignore\nimport * as preferences from './lib/preferences'\n// @ts-ignore\nimport { style } from './lib/style'\n// @ts-ignore\nimport { renderTableViewPane as table } from './lib/table'\nimport * as tabs from './lib/tabs'\n// @ts-ignore\nimport * as utils from './utils'\nimport * as login from './login/login'\nimport * as widgets from './widgets/index'\nimport { initHeader } from './header'\nimport { initFooter } from './footer'\nimport * as createTypes from './create/types'\n\nexport const dom = typeof window !== 'undefined' ? window.document : null // Idea that UI.dom can be adapted in non-browser environments\n\n// this variables are directly used in the storybook\nexport {\n ns,\n acl,\n aclControl,\n create,\n createTypes,\n icons,\n language,\n log,\n login,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n style,\n table,\n tabs,\n utils,\n widgets,\n initHeader,\n initFooter\n}\n// uses in solid-panes\nexport type { CreateContext, NewAppInstanceOptions } from './create/types'\n\nexport * from './lib/auth'\nexport * from './lib/components'\nexport * from './lib/dialogs'\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// REMOVE @ts-ignore as you migrate files to TypeScript\n// @ts-ignore\nimport ns from './lib/ns'\nimport { acl, aclControl } from './acl/index'\nimport { create } from './create/index'\n// @ts-ignore\nimport { icons } from './lib/iconBase'\nimport * as language from './widgets/forms/autocomplete/language'\nimport * as log from './lib/log'\nimport { matrix } from './matrix/index'\nimport { media } from './media/index'\n// @ts-ignore\nimport { messageArea } from './lib/messageArea'\n// @ts-ignore\nimport { infiniteMessageArea } from './chat/infinite'\n// @ts-ignore\nimport * as pad from './lib/pad'\n// @ts-ignore\nimport * as participation from './lib/participation'\n// @ts-ignore\nimport * as preferences from './lib/preferences'\n// @ts-ignore\nimport { style } from './lib/style'\n// @ts-ignore\nimport { renderTableViewPane as table } from './lib/table'\nimport * as tabs from './lib/tabs'\n// @ts-ignore\nimport * as utils from './utils'\nimport * as login from './login/login'\nimport * as widgets from './widgets/index'\nimport { initHeader } from './header'\nimport { initFooter } from './footer'\nimport * as createTypes from './create/types'\n\nexport const dom = typeof window !== 'undefined' ? window.document : null // Idea that UI.dom can be adapted in non-browser environments\n\n// this variables are directly used in the storybook\nexport {\n ns,\n acl,\n aclControl,\n create,\n createTypes,\n icons,\n language,\n log,\n login,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n style,\n table,\n tabs,\n utils,\n widgets,\n initHeader,\n initFooter\n}\n// uses in solid-panes\nexport type { CreateContext, NewAppInstanceOptions } from './create/types'\n\nexport * from './lib/auth'\nexport * from './lib/components'\nexport * from './lib/dialogs'\nexport * from './lib/file-explorer/context'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,IAAa,IAAM,OAAO,SAAW,MAAc,OAAO,WAAW"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { a as
|
|
5
|
-
import { n as
|
|
6
|
-
import { t as H } from "./chunks/
|
|
7
|
-
|
|
1
|
+
import { m as e } from "./chunks/index.esm-CyyOkz04.js";
|
|
2
|
+
import { a as t, c as n, n as r, o as i, s as a, t as o } from "./chunks/auth-D4NUMSzc.js";
|
|
3
|
+
import { l as s, m as c, t as l } from "./chunks/style-CjYxsW7j.js";
|
|
4
|
+
import { _ as u, a as d, b as f, c as p, d as m, f as h, g, h as _, i as v, l as y, m as b, n as x, o as S, p as C, r as w, s as T, t as E, u as D, v as O, x as k, y as A } from "./chunks/src-B5SL8UtS.js";
|
|
5
|
+
import { _ as j, a as M, g as N, h as P, m as F, n as I, o as L, t as R, v as z, y as B } from "./chunks/components-DrP7BOrs.js";
|
|
6
|
+
import { n as V, t as H } from "./chunks/dialogs-CeHuLUo5.js";
|
|
7
|
+
import { t as U } from "./chunks/show-dialog-eEW5yRBv.js";
|
|
8
|
+
export { n as Account, P as CloseDialogEvent, t as DEFAULT_AUTH_CONTEXT, j as DEFAULT_DIALOG_CONTEXT, o as DEFAULT_SIGNUP_URL, V as Dialog, M as DialogComponent, F as DialogTrait, R as FormControlComponent, I as FormControlTrait, a as NoopAuth, U as ShowDialogEvent, r as SolidAuth, L as WebComponent, g as acl, u as aclControl, i as authContext, _ as create, w as createTypes, N as customElement, z as dialogContext, E as dom, x as fileExplorerContext, B as generateId, k as icons, y as infiniteMessageArea, v as initFooter, d as initHeader, f as language, c as log, O as login, b as matrix, C as media, h as messageArea, e as ns, D as pad, m as participation, p as preferences, H as showDialog, l as style, T as table, S as tabs, s as utils, A as widgets };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../ns.cjs.js"),t=require("./Account.cjs.js"),n=require("../dialogs/helpers.cjs.js");require("../dialogs/index.cjs.js");const r=require("../../components/login-modal/index.cjs.js");let i=require("solid-logic");var a=`https://solidproject.org/get_a_pod`;function o(t){let n=i.solidLogicSingleton.store,r=n.sym(t),a=n.any(r,e.default.sioc(`avatar`))||n.any(r,e.default.foaf(`img`))||n.any(r,e.default.vcard(`logo`))||n.any(r,e.default.vcard(`hasPhoto`))||n.any(r,e.default.vcard(`photo`))||n.any(r,e.default.foaf(`depiction`));return a?a.value:void 0}var s=class{signupUrl;_initialized=!1;profileLoaded=!1;listeners=[];constructor(e=a){this.signupUrl=e}async initialize(){await i.authn.checkUser(),this._initialized=!0,this.listeners.forEach(e=>e())}async loadProfile(){this.profileLoaded||!this.account||(this.profileLoaded=!0,await i.solidLogicSingleton.profile.loadMe(),this.listeners.forEach(e=>e()))}get initialized(){return this._initialized}get account(){let e=i.authSession.webId??i.authSession.info?.webId;
|
|
1
|
+
const e=require("../ns.cjs.js"),t=require("./Account.cjs.js"),n=require("../dialogs/helpers.cjs.js");require("../dialogs/index.cjs.js");const r=require("../../components/login-modal/index.cjs.js");let i=require("solid-logic");var a=`https://solidproject.org/get_a_pod`;function o(t){let n=i.solidLogicSingleton.store,r=n.sym(t),a=n.any(r,e.default.sioc(`avatar`))||n.any(r,e.default.foaf(`img`))||n.any(r,e.default.vcard(`logo`))||n.any(r,e.default.vcard(`hasPhoto`))||n.any(r,e.default.vcard(`photo`))||n.any(r,e.default.foaf(`depiction`));return a?a.value:void 0}var s=class{signupUrl;_initialized=!1;profileLoaded=!1;listeners=[];constructor(e=a){this.signupUrl=e}async initialize(){await i.authn.checkUser(),this._initialized=!0,this.listeners.forEach(e=>e())}async loadProfile(){this.profileLoaded||!this.account||(this.profileLoaded=!0,await i.solidLogicSingleton.profile.loadMe(),this.listeners.forEach(e=>e()))}get initialized(){return this._initialized}get account(){let e=i.authSession.webId??i.authSession.info?.webId;if(!(i.authSession.isActive??i.authSession.info?.isLoggedIn??!!e)||!e)return null;let n=o(e);return new t.default(e,n)}async login(e){if(!e){n.showDialog(r.default);return}i.solidLogicSingleton.store.updater.flagAuthorizationMetadata();let t=new URL(window.location.href).hash;t&&window.localStorage.setItem(`preLoginRedirectHash`,t),window.localStorage.setItem(`loginIssuer`,e);let a=new URL(window.location.href);a.hash=``,await i.authSession.login(e,a.href)}async signup(){window.open(this.signupUrl,`_blank`,`noopener,noreferrer`)}async logout(){await i.authSession.logout()}onSessionUpdated(e){let t=i.authSession,n=()=>{e()};return this.listeners.push(n),typeof t.addEventListener==`function`?t.addEventListener(`sessionStateChange`,n):(i.authSession.events.on(`login`,n),i.authSession.events.on(`logout`,n),i.authSession.events.on(`sessionRestore`,n)),()=>{this.listeners=this.listeners.filter(e=>e!==n),typeof t.removeEventListener==`function`?t.removeEventListener(`sessionStateChange`,n):(i.authSession.events.off(`login`,n),i.authSession.events.off(`logout`,n),i.authSession.events.off(`sessionRestore`,n))}}};exports.DEFAULT_SIGNUP_URL=a,exports.default=s;
|
|
2
2
|
//# sourceMappingURL=SolidAuth.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidAuth.cjs.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":"kOAQA,IAAa,EAAqB,qCAElC,SAAS,EAAkB,EAAmC,CAC5D,IAAM,EAAQ,EAAA,oBAAoB,MAC5B,EAAK,EAAM,IAAI,CAAK,EACpB,EACJ,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,QAAQ,CAAC,GAC/B,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,KAAK,CAAC,GAC5B,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,MAAM,CAAC,GAC9B,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,UAAU,CAAC,GAClC,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,OAAO,CAAC,GAC/B,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,WAAW,CAAC,EAEpC,OAAO,EAAS,EAAc,MAAQ,IAAA,EACxC,CAEA,IAAqB,EAArB,KAAsD,CAKhC,UAJpB,aAAuB,GACvB,cAAwB,GACxB,UAAuC,CAAC,EAExC,YAAa,EAA2B,EAAoB,CAAxC,KAAA,UAAA,CAAyC,CAE7D,MAAM,YAAc,CAClB,MAAM,EAAA,MAAM,UAAU,EAEtB,KAAK,aAAe,GACpB,KAAK,UAAU,QAAQ,GAAY,EAAS,CAAC,CAC/C,CAEA,MAAM,aAAe,CACf,KAAK,eAAiB,CAAC,KAAK,UAIhC,KAAK,cAAgB,GAErB,MAAM,EAAA,oBAAoB,QAAQ,OAAO,EAEzC,KAAK,UAAU,QAAQ,GAAY,EAAS,CAAC,EAC/C,CAEA,IAAI,aAAwB,CAC1B,OAAO,KAAK,YACd,CAEA,IAAI,SAA2B,CAC7B,IAAM,EAA4B,EAAA,YAAY,OAAS,EAAA,YAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"SolidAuth.cjs.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":"kOAQA,IAAa,EAAqB,qCAElC,SAAS,EAAkB,EAAmC,CAC5D,IAAM,EAAQ,EAAA,oBAAoB,MAC5B,EAAK,EAAM,IAAI,CAAK,EACpB,EACJ,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,QAAQ,CAAC,GAC/B,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,KAAK,CAAC,GAC5B,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,MAAM,CAAC,GAC9B,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,UAAU,CAAC,GAClC,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,OAAO,CAAC,GAC/B,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,WAAW,CAAC,EAEpC,OAAO,EAAS,EAAc,MAAQ,IAAA,EACxC,CAEA,IAAqB,EAArB,KAAsD,CAKhC,UAJpB,aAAuB,GACvB,cAAwB,GACxB,UAAuC,CAAC,EAExC,YAAa,EAA2B,EAAoB,CAAxC,KAAA,UAAA,CAAyC,CAE7D,MAAM,YAAc,CAClB,MAAM,EAAA,MAAM,UAAU,EAEtB,KAAK,aAAe,GACpB,KAAK,UAAU,QAAQ,GAAY,EAAS,CAAC,CAC/C,CAEA,MAAM,aAAe,CACf,KAAK,eAAiB,CAAC,KAAK,UAIhC,KAAK,cAAgB,GAErB,MAAM,EAAA,oBAAoB,QAAQ,OAAO,EAEzC,KAAK,UAAU,QAAQ,GAAY,EAAS,CAAC,EAC/C,CAEA,IAAI,aAAwB,CAC1B,OAAO,KAAK,YACd,CAEA,IAAI,SAA2B,CAC7B,IAAM,EAA4B,EAAA,YAAY,OAAS,EAAA,YAAY,MAAM,MAGzE,GAAI,EAFsB,EAAA,YAAY,UAAY,EAAA,YAAY,MAAM,YAAc,EAAQ,IAEzE,CAAC,EAChB,OAAO,KAGT,IAAM,EAAY,EAAiB,CAAK,EAExC,OAAO,IAAI,EAAA,QAAQ,EAAO,CAAS,CACrC,CAEA,MAAM,MAAO,EAAmB,CAC9B,GAAI,CAAC,EAAU,CACb,EAAA,WAAW,EAAA,OAAU,EAErB,MACF,CAGC,EAAA,oBAAqB,MAAM,QAAgB,0BAA0B,EAEtE,IAAM,EAAuB,IAAI,IAAI,OAAO,SAAS,IAAI,CAAC,CAAC,KACvD,GACF,OAAO,aAAa,QAAQ,uBAAwB,CAAoB,EAE1E,OAAO,aAAa,QAAQ,cAAe,CAAQ,EAEnD,IAAM,EAAc,IAAI,IAAI,OAAO,SAAS,IAAI,EAEhD,EAAY,KAAO,GAEnB,MAAM,EAAA,YAAY,MAAM,EAAU,EAAY,IAAI,CACpD,CAEA,MAAM,QAAU,CACd,OAAO,KAAK,KAAK,UAAW,SAAU,qBAAqB,CAC7D,CAEA,MAAM,QAAU,CACd,MAAM,EAAA,YAAY,OAAO,CAC3B,CAEA,iBAAkB,EAAyB,CACzC,IAAM,EAAqB,EAAA,YACrB,MAAiB,CACrB,EAAS,CACX,EAYA,OAVA,KAAK,UAAU,KAAK,CAAQ,EAExB,OAAO,EAAmB,kBAAqB,WACjD,EAAmB,iBAAiB,qBAAsB,CAAQ,GAElE,EAAA,YAAY,OAAO,GAAG,QAAS,CAAQ,EACvC,EAAA,YAAY,OAAO,GAAG,SAAU,CAAQ,EACxC,EAAA,YAAY,OAAO,GAAG,iBAAkB,CAAQ,OAGrC,CACX,KAAK,UAAY,KAAK,UAAU,OAAO,GAAa,IAAc,CAAQ,EAEtE,OAAO,EAAmB,qBAAwB,WACpD,EAAmB,oBAAoB,qBAAsB,CAAQ,GAErE,EAAA,YAAY,OAAO,IAAI,QAAS,CAAQ,EACxC,EAAA,YAAY,OAAO,IAAI,SAAU,CAAQ,EACzC,EAAA,YAAY,OAAO,IAAI,iBAAkB,CAAQ,EAErD,CACF,CACF"}
|
|
@@ -29,7 +29,9 @@ var l = class {
|
|
|
29
29
|
}
|
|
30
30
|
get account() {
|
|
31
31
|
let e = i.webId ?? i.info?.webId;
|
|
32
|
-
|
|
32
|
+
if (!(i.isActive ?? i.info?.isLoggedIn ?? !!e) || !e) return null;
|
|
33
|
+
let n = c(e);
|
|
34
|
+
return new t(e, n);
|
|
33
35
|
}
|
|
34
36
|
async login(e) {
|
|
35
37
|
if (!e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidAuth.esm.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,IAAqB;AAElC,SAAS,EAAkB,GAAmC;CAC5D,IAAM,IAAQ,EAAoB,OAC5B,IAAK,EAAM,IAAI,CAAK,GACpB,IACJ,EAAM,IAAI,GAAI,EAAG,KAAK,QAAQ,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,KAAK,CAAC,KAC5B,EAAM,IAAI,GAAI,EAAG,MAAM,MAAM,CAAC,KAC9B,EAAM,IAAI,GAAI,EAAG,MAAM,UAAU,CAAC,KAClC,EAAM,IAAI,GAAI,EAAG,MAAM,OAAO,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,WAAW,CAAC;CAEpC,OAAO,IAAS,EAAc,QAAQ,KAAA;AACxC;AAEA,IAAqB,IAArB,MAAsD;CAKhC;CAJpB,eAAuB;CACvB,gBAAwB;CACxB,YAAuC,CAAC;CAExC,YAAa,IAA2B,GAAoB;EAAxC,KAAA,YAAA;CAAyC;CAE7D,MAAM,aAAc;EAIlB,AAHA,MAAM,EAAM,UAAU,GAEtB,KAAK,eAAe,IACpB,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,MAAM,cAAe;EACf,KAAK,iBAAiB,CAAC,KAAK,YAIhC,KAAK,gBAAgB,IAErB,MAAM,EAAoB,QAAQ,OAAO,GAEzC,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,IAAI,cAAwB;EAC1B,OAAO,KAAK;CACd;CAEA,IAAI,UAA2B;EAC7B,IAAM,IAA4B,EAAY,SAAS,EAAY,MAAM;
|
|
1
|
+
{"version":3,"file":"SolidAuth.esm.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,IAAqB;AAElC,SAAS,EAAkB,GAAmC;CAC5D,IAAM,IAAQ,EAAoB,OAC5B,IAAK,EAAM,IAAI,CAAK,GACpB,IACJ,EAAM,IAAI,GAAI,EAAG,KAAK,QAAQ,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,KAAK,CAAC,KAC5B,EAAM,IAAI,GAAI,EAAG,MAAM,MAAM,CAAC,KAC9B,EAAM,IAAI,GAAI,EAAG,MAAM,UAAU,CAAC,KAClC,EAAM,IAAI,GAAI,EAAG,MAAM,OAAO,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,WAAW,CAAC;CAEpC,OAAO,IAAS,EAAc,QAAQ,KAAA;AACxC;AAEA,IAAqB,IAArB,MAAsD;CAKhC;CAJpB,eAAuB;CACvB,gBAAwB;CACxB,YAAuC,CAAC;CAExC,YAAa,IAA2B,GAAoB;EAAxC,KAAA,YAAA;CAAyC;CAE7D,MAAM,aAAc;EAIlB,AAHA,MAAM,EAAM,UAAU,GAEtB,KAAK,eAAe,IACpB,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,MAAM,cAAe;EACf,KAAK,iBAAiB,CAAC,KAAK,YAIhC,KAAK,gBAAgB,IAErB,MAAM,EAAoB,QAAQ,OAAO,GAEzC,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,IAAI,cAAwB;EAC1B,OAAO,KAAK;CACd;CAEA,IAAI,UAA2B;EAC7B,IAAM,IAA4B,EAAY,SAAS,EAAY,MAAM;EAGzE,IAAI,EAFsB,EAAY,YAAY,EAAY,MAAM,cAAc,EAAQ,MAEzE,CAAC,GAChB,OAAO;EAGT,IAAM,IAAY,EAAiB,CAAK;EAExC,OAAO,IAAI,EAAQ,GAAO,CAAS;CACrC;CAEA,MAAM,MAAO,GAAmB;EAC9B,IAAI,CAAC,GAAU;GACb,EAAW,CAAU;GAErB;EACF;EAGC,EAAqB,MAAM,QAAgB,0BAA0B;EAEtE,IAAM,IAAuB,IAAI,IAAI,OAAO,SAAS,IAAI,CAAC,CAAC;EAI3D,AAHI,KACF,OAAO,aAAa,QAAQ,wBAAwB,CAAoB,GAE1E,OAAO,aAAa,QAAQ,eAAe,CAAQ;EAEnD,IAAM,IAAc,IAAI,IAAI,OAAO,SAAS,IAAI;EAIhD,AAFA,EAAY,OAAO,IAEnB,MAAM,EAAY,MAAM,GAAU,EAAY,IAAI;CACpD;CAEA,MAAM,SAAU;EACd,OAAO,KAAK,KAAK,WAAW,UAAU,qBAAqB;CAC7D;CAEA,MAAM,SAAU;EACd,MAAM,EAAY,OAAO;CAC3B;CAEA,iBAAkB,GAAyB;EACzC,IAAM,IAAqB,GACrB,UAAiB;GACrB,EAAS;EACX;EAYA,OAVA,KAAK,UAAU,KAAK,CAAQ,GAExB,OAAO,EAAmB,oBAAqB,aACjD,EAAmB,iBAAiB,sBAAsB,CAAQ,KAElE,EAAY,OAAO,GAAG,SAAS,CAAQ,GACvC,EAAY,OAAO,GAAG,UAAU,CAAQ,GACxC,EAAY,OAAO,GAAG,kBAAkB,CAAQ,UAGrC;GAGX,AAFA,KAAK,YAAY,KAAK,UAAU,QAAO,MAAa,MAAc,CAAQ,GAEtE,OAAO,EAAmB,uBAAwB,aACpD,EAAmB,oBAAoB,sBAAsB,CAAQ,KAErE,EAAY,OAAO,IAAI,SAAS,CAAQ,GACxC,EAAY,OAAO,IAAI,UAAU,CAAQ,GACzC,EAAY,OAAO,IAAI,kBAAkB,CAAQ;EAErD;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.cjs.js","names":[],"sources":["../../../src/lib/auth/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n initialized: boolean;\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n loadProfile?(): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n"],"mappings":"mEAcA,IAAa,EAAuB,IAAI,EAAA,QAC3B,GAAA,
|
|
1
|
+
{"version":3,"file":"context.cjs.js","names":[],"sources":["../../../src/lib/auth/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n initialized: boolean;\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n loadProfile?(): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n"],"mappings":"mEAcA,IAAa,EAAuB,IAAI,EAAA,QAC3B,GAAA,EAAc,EAAA,cAAA,CAA2B,OAAO,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogComponent.cjs.js","names":["DialogTrait","dialogContext","WebComponent","DEFAULT_DIALOG_CONTEXT","consume","_A","WeakMap","_ref","_contextDecs","context","subscribe","DialogComponent","_classPrivateFieldGet","v","_classPrivateFieldSet","constructor","_defineProperty","_initProto","_classPrivateFieldInitSpec","_init_context","dialogTrait","addTrait","getContext","close","result","_DialogComponent","_applyDecs","e","default"],"sources":["../../../../src/lib/components/dialog-component/DialogComponent.ts"],"sourcesContent":["import DialogTrait from '@/lib/components/traits/DialogTrait'\nimport { dialogContext } from '@/lib/dialogs/context'\nimport { WebComponent } from '@/lib/components/web-component'\nimport { DialogContext, DEFAULT_DIALOG_CONTEXT } from '@/lib/dialogs/context'\nimport { consume } from '@lit/context'\n\nexport default class DialogComponent<T> extends WebComponent<{ dialogResult: T }> {\n private dialogTrait: DialogTrait<DialogComponent<T>>\n\n @consume({ context: dialogContext, subscribe: true })\n private accessor context: DialogContext = DEFAULT_DIALOG_CONTEXT;\n\n constructor () {\n super()\n\n this.dialogTrait = this.addTrait(new DialogTrait(this, { getContext: () => this.context }))\n }\n\n protected close (result?: T) {\n this.dialogTrait.close(result)\n }\n}\n"],"mappings":"8vIAIsC,IAAAK,EAAA,IAAAC,QAAAC,GAAAC,GAAAA,
|
|
1
|
+
{"version":3,"file":"DialogComponent.cjs.js","names":["DialogTrait","dialogContext","WebComponent","DEFAULT_DIALOG_CONTEXT","consume","_A","WeakMap","_ref","_contextDecs","context","subscribe","DialogComponent","_classPrivateFieldGet","v","_classPrivateFieldSet","constructor","_defineProperty","_initProto","_classPrivateFieldInitSpec","_init_context","dialogTrait","addTrait","getContext","close","result","_DialogComponent","_applyDecs","e","default"],"sources":["../../../../src/lib/components/dialog-component/DialogComponent.ts"],"sourcesContent":["import DialogTrait from '@/lib/components/traits/DialogTrait'\nimport { dialogContext } from '@/lib/dialogs/context'\nimport { WebComponent } from '@/lib/components/web-component'\nimport { DialogContext, DEFAULT_DIALOG_CONTEXT } from '@/lib/dialogs/context'\nimport { consume } from '@lit/context'\n\nexport default class DialogComponent<T> extends WebComponent<{ dialogResult: T }> {\n private dialogTrait: DialogTrait<DialogComponent<T>>\n\n @consume({ context: dialogContext, subscribe: true })\n private accessor context: DialogContext = DEFAULT_DIALOG_CONTEXT;\n\n constructor () {\n super()\n\n this.dialogTrait = this.addTrait(new DialogTrait(this, { getContext: () => this.context }))\n }\n\n protected close (result?: T) {\n this.dialogTrait.close(result)\n }\n}\n"],"mappings":"8vIAIsC,IAAAK,EAAA,IAAAC,QAAAC,GAAAC,GAAAA,EAKjCJ,EAAAA,QAAAA,CAAQ,CAAEK,QAASR,EAAAA,cAAeS,UAAW,EAAK,CAAC,EAAC,eAH1C,IAAMC,EAAN,cAAiCT,EAAAA,OAAkC,CAAA,IAI7DO,SAAO,CAAA,OAAAG,EAAAP,EAAA,IAAA,CAAA,CAAA,IAAPI,QAAOI,EAAA,CAAAC,EAAAT,EAAA,KAAAQ,CAAA,CAAA,CAExBE,aAAe,CACb,MAAM,EAACC,EAAA,KAAAT,EAAA,KAAAU,EAAA,IAAA,CAAA,EAAAC,EAAA,KAAAb,EAAAc,EAAA,KAHiChB,EAAAA,sBAAsB,CAAA,EAK9D,KAAKiB,YAAc,KAAKC,SAAS,IAAIrB,EAAAA,QAAY,KAAM,CAAEsB,eAAkB,KAAKb,OAAQ,CAAC,CAAC,CAC5F,CAEUc,MAAOC,EAAY,CAC3B,KAAKJ,YAAYG,MAAMC,CAAM,CAC/B,CACJ,EAACC,EAfoBd,EAAe,CAAAQ,EAAAF,GAAAS,EAAAD,EAAA,CAAA,CAAAjB,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,EAAA,IAAA,GAAYN,EAAAA,OAAY,CAAA,CAAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormControlComponent.cjs.js","names":["WebComponent","property","FormControlTrait","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_labelDecs","type","String","reflect","_nameDecs","_valueDecs","_placeholderDecs","_requiredDecs","Boolean","_disabledDecs","FormControlComponent","label","_classPrivateFieldGet","v","_classPrivateFieldSet","name","value","placeholder","required","disabled","constructor","_classPrivateFieldInitSpec","_initProto","_init_label","_init_name","_init_value","_init_placeholder","_init_required","_init_disabled","_defineProperty","controlTrait","addTrait","getControlElement","controlElement","getInternals","_FormControlComponent","_applyDecs","e","default"],"sources":["../../../../src/lib/components/form-control-component/FormControlComponent.ts"],"sourcesContent":["import { WebComponent } from '@/lib/components/web-component'\nimport { property } from 'lit/decorators.js'\nimport FormControlTrait, { FormControlValue } from '@/lib/components/traits/FormControlTrait'\n\nexport default abstract class FormControlComponent<T extends FormControlValue = FormControlValue> extends WebComponent {\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor label = ''\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property()\n accessor value: T | null = null\n\n @property({ type: String, reflect: true })\n accessor placeholder = ''\n\n @property({ type: Boolean, reflect: true })\n accessor required = false\n\n @property({ type: Boolean, reflect: true })\n accessor disabled = false\n\n protected controlTrait: FormControlTrait\n\n protected abstract controlElement: HTMLInputElement | HTMLSelectElement | null\n\n constructor () {\n super()\n\n this.controlTrait = this.addTrait(\n new FormControlTrait(this, {\n getControlElement: () => this.controlElement,\n getInternals: () => this.getInternals(),\n })\n )\n }\n}\n"],"mappings":"wvIAE6F,IAAAG,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,EAAA,IAAAJ,QAAAK,EAAA,IAAAL,QAAAM,GAAAC,GAAAA,
|
|
1
|
+
{"version":3,"file":"FormControlComponent.cjs.js","names":["WebComponent","property","FormControlTrait","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_labelDecs","type","String","reflect","_nameDecs","_valueDecs","_placeholderDecs","_requiredDecs","Boolean","_disabledDecs","FormControlComponent","label","_classPrivateFieldGet","v","_classPrivateFieldSet","name","value","placeholder","required","disabled","constructor","_classPrivateFieldInitSpec","_initProto","_init_label","_init_name","_init_value","_init_placeholder","_init_required","_init_disabled","_defineProperty","controlTrait","addTrait","getControlElement","controlElement","getInternals","_FormControlComponent","_applyDecs","e","default"],"sources":["../../../../src/lib/components/form-control-component/FormControlComponent.ts"],"sourcesContent":["import { WebComponent } from '@/lib/components/web-component'\nimport { property } from 'lit/decorators.js'\nimport FormControlTrait, { FormControlValue } from '@/lib/components/traits/FormControlTrait'\n\nexport default abstract class FormControlComponent<T extends FormControlValue = FormControlValue> extends WebComponent {\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor label = ''\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property()\n accessor value: T | null = null\n\n @property({ type: String, reflect: true })\n accessor placeholder = ''\n\n @property({ type: Boolean, reflect: true })\n accessor required = false\n\n @property({ type: Boolean, reflect: true })\n accessor disabled = false\n\n protected controlTrait: FormControlTrait\n\n protected abstract controlElement: HTMLInputElement | HTMLSelectElement | null\n\n constructor () {\n super()\n\n this.controlTrait = this.addTrait(\n new FormControlTrait(this, {\n getControlElement: () => this.controlElement,\n getInternals: () => this.getInternals(),\n })\n )\n }\n}\n"],"mappings":"wvIAE6F,IAAAG,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,EAAA,IAAAJ,QAAAK,EAAA,IAAAL,QAAAM,GAAAC,GAAAA,EAK1FV,EAAAA,SAAAA,CAAS,CAAEW,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAGzCd,EAAAA,SAAAA,CAAS,CAAEW,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACE,GAAAA,EAGzCf,EAAAA,SAAAA,CAAS,EAACgB,GAAAA,EAGVhB,EAAAA,SAAAA,CAAS,CAAEW,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACI,GAAAA,EAGzCjB,EAAAA,SAAAA,CAAS,CAAEW,KAAMO,QAASL,QAAS,EAAK,CAAC,EAACM,GAAAA,EAG1CnB,EAAAA,SAAAA,CAAS,CAAEW,KAAMO,QAASL,QAAS,EAAK,CAAC,EAAC,kBAlB9B,IAAeO,EAAf,cAA2FrB,EAAAA,OAAa,CAAA,IAI5GsB,OAAK,CAAA,OAAAC,EAAApB,EAAA,IAAA,CAAA,CAAA,IAALmB,MAAKE,EAAA,CAAAC,EAAAtB,EAAA,KAAAqB,CAAA,CAAA,CAAA,IAGLE,MAAI,CAAA,OAAAH,EAAAlB,EAAA,IAAA,CAAA,CAAA,IAAJqB,KAAIF,EAAA,CAAAC,EAAApB,EAAA,KAAAmB,CAAA,CAAA,CAAA,IAGJG,OAAK,CAAA,OAAAJ,EAAAjB,EAAA,IAAA,CAAA,CAAA,IAALqB,MAAKH,EAAA,CAAAC,EAAAnB,EAAA,KAAAkB,CAAA,CAAA,CAAA,IAGLI,aAAW,CAAA,OAAAL,EAAAhB,EAAA,IAAA,CAAA,CAAA,IAAXqB,YAAWJ,EAAA,CAAAC,EAAAlB,EAAA,KAAAiB,CAAA,CAAA,CAAA,IAGXK,UAAQ,CAAA,OAAAN,EAAAf,EAAA,IAAA,CAAA,CAAA,IAARqB,SAAQL,EAAA,CAAAC,EAAAjB,EAAA,KAAAgB,CAAA,CAAA,CAAA,IAGRM,UAAQ,CAAA,OAAAP,EAAAd,EAAA,IAAA,CAAA,CAAA,IAARqB,SAAQN,EAAA,CAAAC,EAAAhB,EAAA,KAAAe,CAAA,CAAA,CAMjBO,aAAe,CACb,MAAM,EAACC,EAAA,KAAA7B,GAAA8B,EAAA,IAAA,EAAAC,EAAA,KAtBQ,EAAE,EAAA,EAAAF,EAAA,KAAA3B,EAAA8B,EAAA,KAGH,EAAE,CAAA,EAAAH,EAAA,KAAA1B,EAAA8B,EAAA,KAGS,IAAI,CAAA,EAAAJ,EAAA,KAAAzB,EAAA8B,EAAA,KAGR,EAAE,CAAA,EAAAL,EAAA,KAAAxB,EAAA8B,EAAA,KAGL,EAAK,CAAA,EAAAN,EAAA,KAAAvB,EAAA8B,EAAA,KAGL,EAAK,CAAA,EAAAC,EAAA,KAAA,eAAA,IAAA,EAAA,EASvB,KAAKC,aAAe,KAAKC,SACvB,IAAIxC,EAAAA,QAAiB,KAAM,CACzByC,sBAAyB,KAAKC,eAC9BC,iBAAoB,KAAKA,aAAa,CACxC,CAAC,CACH,CACF,CACF,EAACC,EAnC6BzB,EAAoB,CAAAa,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAN,GAAAc,EAAAD,EAAA,CAAA,CAAAnC,EAAA,EAAA,OAAA,EAAA,CAAAI,EAAA,EAAA,MAAA,EAAA,CAAAC,EAAA,EAAA,OAAA,EAAA,CAAAC,EAAA,EAAA,aAAA,EAAA,CAAAC,EAAA,EAAA,UAAA,EAAA,CAAAE,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,EAAA,IAAA,GAAwDpB,EAAAA,OAAY,CAAA,CAAAgD,EAAAR,EAAxFnB,EAAoBX,EACxB,EAAI"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./WebComponent.styles.cjs.js");let t=require("lit");function n(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e){var t=i(e,`string`);return typeof t==`symbol`?t:t+``}function i(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var a=Symbol(`WebComponentMetadata`),o=class extends t.LitElement{constructor(...e){super(...e),n(this,a,void 0),n(this,`internals`,void 0),n(this,`globalListeners`,[]),n(this,`traits`,[])}static finalizeStyles(t){return[e.default,...
|
|
1
|
+
const e=require("./WebComponent.styles.cjs.js");let t=require("lit");function n(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e){var t=i(e,`string`);return typeof t==`symbol`?t:t+``}function i(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var a=Symbol(`WebComponentMetadata`),o=class extends t.LitElement{constructor(...e){super(...e),n(this,a,void 0),n(this,`internals`,void 0),n(this,`globalListeners`,[]),n(this,`traits`,[])}static finalizeStyles(t){let n=super.finalizeStyles(t);return[e.default,...n]}disconnectedCallback(){super.disconnectedCallback();for(let[e,t]of this.globalListeners)window.removeEventListener(e,t);this.globalListeners=[]}addTrait(e){return this.traits.push(e),e}firstUpdated(){this.forwardMethodCall(`firstUpdated`)}updated(e){this.forwardMethodCall(`updated`,e)}formResetCallback(){this.forwardMethodCall(`formResetCallback`)}willUpdate(e){super.willUpdate(e);let t=this.static().states;if(t)for(let[e,n]of Object.entries(t))this.toggleAttribute(`data-state-${e}`,!!n(this))}addGlobalEventListener(e,t){this.globalListeners.push([e,t]),window.addEventListener(e,t)}render(){return t.html`<slot></slot>`}getInternals(){return this.internals??=this.attachInternals(),this.internals}static(){return this.constructor}forwardMethodCall(e,...t){for(let n of this.traits)n[e]?.(...t)}};n(o,`states`,void 0),exports.default=o;
|
|
2
2
|
//# sourceMappingURL=WebComponent.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebComponent.cjs.js","names":["html","LitElement","styles","metadataMarker","Symbol","WebComponent","constructor","args","_defineProperty","finalizeStyles","componentStyles","elementStyles","disconnectedCallback","type","listener","globalListeners","window","removeEventListener","addTrait","trait","traits","push","firstUpdated","forwardMethodCall","updated","changedProperties","formResetCallback","willUpdate","states","static","state","condition","Object","entries","toggleAttribute","addGlobalEventListener","addEventListener","render","getInternals","internals","attachInternals","method"],"sources":["../../../../src/lib/components/web-component/WebComponent.ts"],"sourcesContent":["import { html, LitElement, type CSSResultGroup, type PropertyValues } from 'lit'\nimport type { WebComponentTrait, WebComponentTraitMethodKey } from '@/lib/components/traits/WebComponentTrait'\n\nimport styles from './WebComponent.styles.css'\n\nconst metadataMarker = Symbol('WebComponentMetadata')\n\nexport type GetWebComponentMetadata<T> = T extends { [metadataMarker]?: infer TMetadata } ? TMetadata : { nope: keyof T }\nexport type WebComponentConstructor<T extends WebComponent = WebComponent> = { new (): T }\n\nexport default abstract class WebComponent<T extends Record<string, unknown> = Record<string, unknown>> extends LitElement {\n static states?: Record<string, Function>\n\n protected static finalizeStyles (componentStyles?: CSSResultGroup) {\n const elementStyles = super.finalizeStyles(componentStyles)\n\n return [styles, ...elementStyles]\n }\n\n [metadataMarker]?: T\n\n protected internals?: ElementInternals\n protected globalListeners: [type: string, listener: EventListener][] = []\n protected traits: WebComponentTrait[] = []\n\n disconnectedCallback (): void {\n super.disconnectedCallback()\n\n for (const [type, listener] of this.globalListeners) {\n window.removeEventListener(type, listener)\n }\n\n this.globalListeners = []\n }\n\n protected addTrait<T extends WebComponentTrait>(trait: T): T {\n this.traits.push(trait)\n\n return trait\n }\n\n protected firstUpdated () {\n this.forwardMethodCall('firstUpdated')\n }\n\n protected updated (changedProperties: Map<PropertyKey, unknown>) {\n this.forwardMethodCall('updated', changedProperties)\n }\n\n protected formResetCallback () {\n this.forwardMethodCall('formResetCallback')\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n const states = this.static().states\n\n if (!states) {\n return\n }\n\n for (const [state, condition] of Object.entries(states)) {\n // FIXME when browser support is good enough, use the internals API instead with :state() selectors\n this.toggleAttribute(`data-state-${state}`, !!condition(this))\n }\n }\n\n protected addGlobalEventListener <T extends keyof WindowEventMap>(type: T, listener: (this: Window, ev: WindowEventMap[T]) => any) {\n this.globalListeners.push([type, listener as EventListener])\n\n window.addEventListener(type, listener)\n }\n\n protected render () {\n return html`<slot></slot>`\n }\n\n protected getInternals (): ElementInternals {\n this.internals ??= this.attachInternals()\n\n return this.internals\n }\n\n private static (): typeof WebComponent {\n return this.constructor as typeof WebComponent\n }\n\n private forwardMethodCall<T extends WebComponentTraitMethodKey>(method: T, ...args: Parameters<Required<WebComponentTrait>[T]>) {\n for (const trait of this.traits) {\n (trait[method] as Function | undefined)?.(...args)\n }\n }\n}\n"],"mappings":"qgBAKA,IAAMG,EAAiBC,OAAO,sBAAsB,EAKtBC,EAA9B,cAAgHJ,EAAAA,UAAW,CAAAK,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KASxHL,EAAc,IAAA,EAAA,EAAAK,EAAA,KAAA,YAAA,IAAA,EAAA,EAAAA,EAAA,KAAA,kBAGwD,CAAA,CAAE,EAAAA,EAAA,KAAA,SACjC,CAAA,CAAE,CAAA,CAV1C,OAAiBC,eAAgBC,EAAkC,
|
|
1
|
+
{"version":3,"file":"WebComponent.cjs.js","names":["html","LitElement","styles","metadataMarker","Symbol","WebComponent","constructor","args","_defineProperty","finalizeStyles","componentStyles","elementStyles","disconnectedCallback","type","listener","globalListeners","window","removeEventListener","addTrait","trait","traits","push","firstUpdated","forwardMethodCall","updated","changedProperties","formResetCallback","willUpdate","states","static","state","condition","Object","entries","toggleAttribute","addGlobalEventListener","addEventListener","render","getInternals","internals","attachInternals","method"],"sources":["../../../../src/lib/components/web-component/WebComponent.ts"],"sourcesContent":["import { html, LitElement, type CSSResultGroup, type PropertyValues } from 'lit'\nimport type { WebComponentTrait, WebComponentTraitMethodKey } from '@/lib/components/traits/WebComponentTrait'\n\nimport styles from './WebComponent.styles.css'\n\nconst metadataMarker = Symbol('WebComponentMetadata')\n\nexport type GetWebComponentMetadata<T> = T extends { [metadataMarker]?: infer TMetadata } ? TMetadata : { nope: keyof T }\nexport type WebComponentConstructor<T extends WebComponent = WebComponent> = { new (): T }\n\nexport default abstract class WebComponent<T extends Record<string, unknown> = Record<string, unknown>> extends LitElement {\n static states?: Record<string, Function>\n\n protected static finalizeStyles (componentStyles?: CSSResultGroup) {\n const elementStyles = super.finalizeStyles(componentStyles)\n\n return [styles, ...elementStyles]\n }\n\n [metadataMarker]?: T\n\n protected internals?: ElementInternals\n protected globalListeners: [type: string, listener: EventListener][] = []\n protected traits: WebComponentTrait[] = []\n\n disconnectedCallback (): void {\n super.disconnectedCallback()\n\n for (const [type, listener] of this.globalListeners) {\n window.removeEventListener(type, listener)\n }\n\n this.globalListeners = []\n }\n\n protected addTrait<T extends WebComponentTrait>(trait: T): T {\n this.traits.push(trait)\n\n return trait\n }\n\n protected firstUpdated () {\n this.forwardMethodCall('firstUpdated')\n }\n\n protected updated (changedProperties: Map<PropertyKey, unknown>) {\n this.forwardMethodCall('updated', changedProperties)\n }\n\n protected formResetCallback () {\n this.forwardMethodCall('formResetCallback')\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n const states = this.static().states\n\n if (!states) {\n return\n }\n\n for (const [state, condition] of Object.entries(states)) {\n // FIXME when browser support is good enough, use the internals API instead with :state() selectors\n this.toggleAttribute(`data-state-${state}`, !!condition(this))\n }\n }\n\n protected addGlobalEventListener <T extends keyof WindowEventMap>(type: T, listener: (this: Window, ev: WindowEventMap[T]) => any) {\n this.globalListeners.push([type, listener as EventListener])\n\n window.addEventListener(type, listener)\n }\n\n protected render () {\n return html`<slot></slot>`\n }\n\n protected getInternals (): ElementInternals {\n this.internals ??= this.attachInternals()\n\n return this.internals\n }\n\n private static (): typeof WebComponent {\n return this.constructor as typeof WebComponent\n }\n\n private forwardMethodCall<T extends WebComponentTraitMethodKey>(method: T, ...args: Parameters<Required<WebComponentTrait>[T]>) {\n for (const trait of this.traits) {\n (trait[method] as Function | undefined)?.(...args)\n }\n }\n}\n"],"mappings":"qgBAKA,IAAMG,EAAiBC,OAAO,sBAAsB,EAKtBC,EAA9B,cAAgHJ,EAAAA,UAAW,CAAAK,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KASxHL,EAAc,IAAA,EAAA,EAAAK,EAAA,KAAA,YAAA,IAAA,EAAA,EAAAA,EAAA,KAAA,kBAGwD,CAAA,CAAE,EAAAA,EAAA,KAAA,SACjC,CAAA,CAAE,CAAA,CAV1C,OAAiBC,eAAgBC,EAAkC,CACjE,IAAMC,EAAgB,MAAMF,eAAeC,CAAe,EAE1D,MAAO,CAACR,EAAAA,QAAQ,GAAGS,CAAa,CAClC,CAQAC,sBAA8B,CAC5B,MAAMA,qBAAqB,EAE3B,IAAK,GAAM,CAACC,EAAMC,KAAa,KAAKC,gBAClCC,OAAOC,oBAAoBJ,EAAMC,CAAQ,EAG3C,KAAKC,gBAAkB,CAAA,CACzB,CAEUG,SAAsCC,EAAa,CAG3D,OAFA,KAAKC,OAAOC,KAAKF,CAAK,EAEfA,CACT,CAEUG,cAAgB,CACxB,KAAKC,kBAAkB,cAAc,CACvC,CAEUC,QAASC,EAA8C,CAC/D,KAAKF,kBAAkB,UAAWE,CAAiB,CACrD,CAEUC,mBAAqB,CAC7B,KAAKH,kBAAkB,mBAAmB,CAC5C,CAEUI,WAAYF,EAAyC,CAC7D,MAAME,WAAWF,CAAiB,EAElC,IAAMG,EAAS,KAAKC,OAAO,CAAC,CAACD,OAExBA,KAIL,IAAK,GAAM,CAACE,EAAOC,KAAcC,OAAOC,QAAQL,CAAM,EAEpD,KAAKM,gBAAgB,cAAcJ,IAAS,CAAC,CAACC,EAAU,IAAI,CAAC,CAEjE,CAEUI,uBAAwDtB,EAASC,EAAwD,CACjI,KAAKC,gBAAgBM,KAAK,CAACR,EAAMC,CAAQ,CAAkB,EAE3DE,OAAOoB,iBAAiBvB,EAAMC,CAAQ,CACxC,CAEUuB,QAAU,CAClB,MAAOrC,GAAAA,IAAI,eACb,CAEUsC,cAAkC,CAG1C,MAFA,MAAKC,YAAc,KAAKC,gBAAgB,EAEjC,KAAKD,SACd,CAEQV,QAA+B,CACrC,OAAO,KAAKvB,WACd,CAEQiB,kBAAwDkB,EAAW,GAAGlC,EAAkD,CAC9H,IAAK,IAAMY,KAAS,KAAKC,OACtBD,EAAMsB,EAAO,GAA4B,GAAGlC,CAAI,CAErD,CACF,EAACC,EAnF6BH,EAAY,SAAA,IAAA,EAAA"}
|
|
@@ -28,7 +28,8 @@ var o = Symbol("WebComponentMetadata"), s = class extends t {
|
|
|
28
28
|
super(...e), r(this, o, void 0), r(this, "internals", void 0), r(this, "globalListeners", []), r(this, "traits", []);
|
|
29
29
|
}
|
|
30
30
|
static finalizeStyles(t) {
|
|
31
|
-
|
|
31
|
+
let n = super.finalizeStyles(t);
|
|
32
|
+
return [e, ...n];
|
|
32
33
|
}
|
|
33
34
|
disconnectedCallback() {
|
|
34
35
|
super.disconnectedCallback();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebComponent.esm.js","names":["html","LitElement","styles","metadataMarker","Symbol","WebComponent","constructor","args","_defineProperty","finalizeStyles","componentStyles","elementStyles","disconnectedCallback","type","listener","globalListeners","window","removeEventListener","addTrait","trait","traits","push","firstUpdated","forwardMethodCall","updated","changedProperties","formResetCallback","willUpdate","states","static","state","condition","Object","entries","toggleAttribute","addGlobalEventListener","addEventListener","render","getInternals","internals","attachInternals","method"],"sources":["../../../../src/lib/components/web-component/WebComponent.ts"],"sourcesContent":["import { html, LitElement, type CSSResultGroup, type PropertyValues } from 'lit'\nimport type { WebComponentTrait, WebComponentTraitMethodKey } from '@/lib/components/traits/WebComponentTrait'\n\nimport styles from './WebComponent.styles.css'\n\nconst metadataMarker = Symbol('WebComponentMetadata')\n\nexport type GetWebComponentMetadata<T> = T extends { [metadataMarker]?: infer TMetadata } ? TMetadata : { nope: keyof T }\nexport type WebComponentConstructor<T extends WebComponent = WebComponent> = { new (): T }\n\nexport default abstract class WebComponent<T extends Record<string, unknown> = Record<string, unknown>> extends LitElement {\n static states?: Record<string, Function>\n\n protected static finalizeStyles (componentStyles?: CSSResultGroup) {\n const elementStyles = super.finalizeStyles(componentStyles)\n\n return [styles, ...elementStyles]\n }\n\n [metadataMarker]?: T\n\n protected internals?: ElementInternals\n protected globalListeners: [type: string, listener: EventListener][] = []\n protected traits: WebComponentTrait[] = []\n\n disconnectedCallback (): void {\n super.disconnectedCallback()\n\n for (const [type, listener] of this.globalListeners) {\n window.removeEventListener(type, listener)\n }\n\n this.globalListeners = []\n }\n\n protected addTrait<T extends WebComponentTrait>(trait: T): T {\n this.traits.push(trait)\n\n return trait\n }\n\n protected firstUpdated () {\n this.forwardMethodCall('firstUpdated')\n }\n\n protected updated (changedProperties: Map<PropertyKey, unknown>) {\n this.forwardMethodCall('updated', changedProperties)\n }\n\n protected formResetCallback () {\n this.forwardMethodCall('formResetCallback')\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n const states = this.static().states\n\n if (!states) {\n return\n }\n\n for (const [state, condition] of Object.entries(states)) {\n // FIXME when browser support is good enough, use the internals API instead with :state() selectors\n this.toggleAttribute(`data-state-${state}`, !!condition(this))\n }\n }\n\n protected addGlobalEventListener <T extends keyof WindowEventMap>(type: T, listener: (this: Window, ev: WindowEventMap[T]) => any) {\n this.globalListeners.push([type, listener as EventListener])\n\n window.addEventListener(type, listener)\n }\n\n protected render () {\n return html`<slot></slot>`\n }\n\n protected getInternals (): ElementInternals {\n this.internals ??= this.attachInternals()\n\n return this.internals\n }\n\n private static (): typeof WebComponent {\n return this.constructor as typeof WebComponent\n }\n\n private forwardMethodCall<T extends WebComponentTraitMethodKey>(method: T, ...args: Parameters<Required<WebComponentTrait>[T]>) {\n for (const trait of this.traits) {\n (trait[method] as Function | undefined)?.(...args)\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMG,IAAiBC,OAAO,sBAAsB,GAKtBC,IAA9B,cAAgHJ,EAAW;CAAAK,YAAA,GAAAC,GAAA;EAYhDC,AAZgD,MAAA,GAAAD,CAAA,GAAAC,EAAA,MASxHL,GAAc,KAAA,CAAA,GAAAK,EAAA,MAAA,aAAA,KAAA,CAAA,GAAAA,EAAA,MAAA,mBAGwD,CAAA,CAAE,GAAAA,EAAA,MAAA,UACjC,CAAA,CAAE;CAAA;CAV1C,OAAiBC,eAAgBC,GAAkC;
|
|
1
|
+
{"version":3,"file":"WebComponent.esm.js","names":["html","LitElement","styles","metadataMarker","Symbol","WebComponent","constructor","args","_defineProperty","finalizeStyles","componentStyles","elementStyles","disconnectedCallback","type","listener","globalListeners","window","removeEventListener","addTrait","trait","traits","push","firstUpdated","forwardMethodCall","updated","changedProperties","formResetCallback","willUpdate","states","static","state","condition","Object","entries","toggleAttribute","addGlobalEventListener","addEventListener","render","getInternals","internals","attachInternals","method"],"sources":["../../../../src/lib/components/web-component/WebComponent.ts"],"sourcesContent":["import { html, LitElement, type CSSResultGroup, type PropertyValues } from 'lit'\nimport type { WebComponentTrait, WebComponentTraitMethodKey } from '@/lib/components/traits/WebComponentTrait'\n\nimport styles from './WebComponent.styles.css'\n\nconst metadataMarker = Symbol('WebComponentMetadata')\n\nexport type GetWebComponentMetadata<T> = T extends { [metadataMarker]?: infer TMetadata } ? TMetadata : { nope: keyof T }\nexport type WebComponentConstructor<T extends WebComponent = WebComponent> = { new (): T }\n\nexport default abstract class WebComponent<T extends Record<string, unknown> = Record<string, unknown>> extends LitElement {\n static states?: Record<string, Function>\n\n protected static finalizeStyles (componentStyles?: CSSResultGroup) {\n const elementStyles = super.finalizeStyles(componentStyles)\n\n return [styles, ...elementStyles]\n }\n\n [metadataMarker]?: T\n\n protected internals?: ElementInternals\n protected globalListeners: [type: string, listener: EventListener][] = []\n protected traits: WebComponentTrait[] = []\n\n disconnectedCallback (): void {\n super.disconnectedCallback()\n\n for (const [type, listener] of this.globalListeners) {\n window.removeEventListener(type, listener)\n }\n\n this.globalListeners = []\n }\n\n protected addTrait<T extends WebComponentTrait>(trait: T): T {\n this.traits.push(trait)\n\n return trait\n }\n\n protected firstUpdated () {\n this.forwardMethodCall('firstUpdated')\n }\n\n protected updated (changedProperties: Map<PropertyKey, unknown>) {\n this.forwardMethodCall('updated', changedProperties)\n }\n\n protected formResetCallback () {\n this.forwardMethodCall('formResetCallback')\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n const states = this.static().states\n\n if (!states) {\n return\n }\n\n for (const [state, condition] of Object.entries(states)) {\n // FIXME when browser support is good enough, use the internals API instead with :state() selectors\n this.toggleAttribute(`data-state-${state}`, !!condition(this))\n }\n }\n\n protected addGlobalEventListener <T extends keyof WindowEventMap>(type: T, listener: (this: Window, ev: WindowEventMap[T]) => any) {\n this.globalListeners.push([type, listener as EventListener])\n\n window.addEventListener(type, listener)\n }\n\n protected render () {\n return html`<slot></slot>`\n }\n\n protected getInternals (): ElementInternals {\n this.internals ??= this.attachInternals()\n\n return this.internals\n }\n\n private static (): typeof WebComponent {\n return this.constructor as typeof WebComponent\n }\n\n private forwardMethodCall<T extends WebComponentTraitMethodKey>(method: T, ...args: Parameters<Required<WebComponentTrait>[T]>) {\n for (const trait of this.traits) {\n (trait[method] as Function | undefined)?.(...args)\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMG,IAAiBC,OAAO,sBAAsB,GAKtBC,IAA9B,cAAgHJ,EAAW;CAAAK,YAAA,GAAAC,GAAA;EAYhDC,AAZgD,MAAA,GAAAD,CAAA,GAAAC,EAAA,MASxHL,GAAc,KAAA,CAAA,GAAAK,EAAA,MAAA,aAAA,KAAA,CAAA,GAAAA,EAAA,MAAA,mBAGwD,CAAA,CAAE,GAAAA,EAAA,MAAA,UACjC,CAAA,CAAE;CAAA;CAV1C,OAAiBC,eAAgBC,GAAkC;EACjE,IAAMC,IAAgB,MAAMF,eAAeC,CAAe;EAE1D,OAAO,CAACR,GAAQ,GAAGS,CAAa;CAClC;CAQAC,uBAA8B;EAC5B,MAAMA,qBAAqB;EAE3B,KAAK,IAAM,CAACC,GAAMC,MAAa,KAAKC,iBAClCC,OAAOC,oBAAoBJ,GAAMC,CAAQ;EAG3C,KAAKC,kBAAkB,CAAA;CACzB;CAEUG,SAAsCC,GAAa;EAG3D,OAFA,KAAKC,OAAOC,KAAKF,CAAK,GAEfA;CACT;CAEUG,eAAgB;EACxB,KAAKC,kBAAkB,cAAc;CACvC;CAEUC,QAASC,GAA8C;EAC/D,KAAKF,kBAAkB,WAAWE,CAAiB;CACrD;CAEUC,oBAAqB;EAC7B,KAAKH,kBAAkB,mBAAmB;CAC5C;CAEUI,WAAYF,GAAyC;EAC7D,MAAME,WAAWF,CAAiB;EAElC,IAAMG,IAAS,KAAKC,OAAO,CAAC,CAACD;EAExBA,OAIL,KAAK,IAAM,CAACE,GAAOC,MAAcC,OAAOC,QAAQL,CAAM,GAEpD,KAAKM,gBAAgB,cAAcJ,KAAS,CAAC,CAACC,EAAU,IAAI,CAAC;CAEjE;CAEUI,uBAAwDtB,GAASC,GAAwD;EAGjIE,AAFA,KAAKD,gBAAgBM,KAAK,CAACR,GAAMC,CAAQ,CAAkB,GAE3DE,OAAOoB,iBAAiBvB,GAAMC,CAAQ;CACxC;CAEUuB,SAAU;EAClB,OAAOrC,CAAI;CACb;CAEUsC,eAAkC;EAG1C,OAFA,KAAKC,cAAc,KAAKC,gBAAgB,GAEjC,KAAKD;CACd;CAEQV,SAA+B;EACrC,OAAO,KAAKvB;CACd;CAEQiB,kBAAwDkB,GAAW,GAAGlC,GAAkD;EAC9H,KAAK,IAAMY,KAAS,KAAKC,QACtBD,EAAMsB,EAAO,GAA4B,GAAGlC,CAAI;CAErD;AACF;AAACC,EAnF6BH,GAAY,UAAA,KAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.cjs.js","names":[],"sources":["../../../src/lib/dialogs/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport { generateId } from '@/lib/components/ids'\n\nexport interface DialogContext {\n readonly id: string\n}\n\nexport const DEFAULT_DIALOG_CONTEXT = { id: `noop-${generateId()}` } satisfies DialogContext\nexport const dialogContext = createContext<DialogContext>(Symbol('dialog'))\n"],"mappings":"0EAOA,IAAa,EAAyB,CAAE,GAAI,QAAQ,EAAA,WAAW,GAAI,EACtD,GAAA,
|
|
1
|
+
{"version":3,"file":"context.cjs.js","names":[],"sources":["../../../src/lib/dialogs/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport { generateId } from '@/lib/components/ids'\n\nexport interface DialogContext {\n readonly id: string\n}\n\nexport const DEFAULT_DIALOG_CONTEXT = { id: `noop-${generateId()}` } satisfies DialogContext\nexport const dialogContext = createContext<DialogContext>(Symbol('dialog'))\n"],"mappings":"0EAOA,IAAa,EAAyB,CAAE,GAAI,QAAQ,EAAA,WAAW,GAAI,EACtD,GAAA,EAAgB,EAAA,cAAA,CAA6B,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.cjs.js","names":[],"sources":["../../../src/lib/file-explorer/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport { LiveStore } from 'rdflib'\nimport type { NamedNode } from 'rdflib'\nimport type { PaneDefinition } from 'pane-registry'\n\nexport interface FileExplorerEdit {\n onEdit?: () => void\n isDirty?: boolean\n updateDirtyState?: (dirty: boolean) => void\n}\n\nexport interface FileExplorerContext {\n store: LiveStore | undefined\n subjectUri: string | undefined\n pane?: PaneDefinition\n soloPane?: boolean\n\n onBack?: () => void\n openPane?: (subject: NamedNode, paneName: string) => void\n handleSharingClick?: () => void\n\n paneSupportsEditing?: boolean\n edit?: FileExplorerEdit\n}\n\nexport const fileExplorerContext = createContext<FileExplorerContext>(Symbol('file-explorer'))\n"],"mappings":"AAyBA,IAAa,GAAA,wBAAsB,CAAA,CAAA,cAAA,CAAmC,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { LiveStore, NamedNode } from 'rdflib';
|
|
2
|
+
import { PaneDefinition } from 'pane-registry';
|
|
3
|
+
export interface FileExplorerEdit {
|
|
4
|
+
onEdit?: () => void;
|
|
5
|
+
isDirty?: boolean;
|
|
6
|
+
updateDirtyState?: (dirty: boolean) => void;
|
|
7
|
+
}
|
|
8
|
+
export interface FileExplorerContext {
|
|
9
|
+
store: LiveStore | undefined;
|
|
10
|
+
subjectUri: string | undefined;
|
|
11
|
+
pane?: PaneDefinition;
|
|
12
|
+
soloPane?: boolean;
|
|
13
|
+
onBack?: () => void;
|
|
14
|
+
openPane?: (subject: NamedNode, paneName: string) => void;
|
|
15
|
+
handleSharingClick?: () => void;
|
|
16
|
+
paneSupportsEditing?: boolean;
|
|
17
|
+
edit?: FileExplorerEdit;
|
|
18
|
+
}
|
|
19
|
+
export declare const fileExplorerContext: {
|
|
20
|
+
__context__: FileExplorerContext;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/lib/file-explorer/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;IAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACzD,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAE/B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,IAAI,CAAC,EAAE,gBAAgB,CAAA;CACxB;AAED,eAAO,MAAM,mBAAmB;;CAA8D,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.esm.js","names":[],"sources":["../../../src/lib/file-explorer/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport { LiveStore } from 'rdflib'\nimport type { NamedNode } from 'rdflib'\nimport type { PaneDefinition } from 'pane-registry'\n\nexport interface FileExplorerEdit {\n onEdit?: () => void\n isDirty?: boolean\n updateDirtyState?: (dirty: boolean) => void\n}\n\nexport interface FileExplorerContext {\n store: LiveStore | undefined\n subjectUri: string | undefined\n pane?: PaneDefinition\n soloPane?: boolean\n\n onBack?: () => void\n openPane?: (subject: NamedNode, paneName: string) => void\n handleSharingClick?: () => void\n\n paneSupportsEditing?: boolean\n edit?: FileExplorerEdit\n}\n\nexport const fileExplorerContext = createContext<FileExplorerContext>(Symbol('file-explorer'))\n"],"mappings":";;AAyBA,IAAa,IAAsB,EAAmC,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../ns.cjs.js"),t=require("../style.cjs.js");var n={[e.default.ui(`ColorField`).uri]:{size:9,type:`color`,style:`height: 3em;`,dt:`color`,pattern:/^\s*#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]([0-9a-f][0-9a-f])?\s*$/},[e.default.ui(`DateField`).uri]:{size:20,type:`date`,dt:`date`,pattern:/^\s*[0-9][0-9][0-9][0-9](-[0-1]?[0-9]-[0-3]?[0-9])?Z?\s*$/},[e.default.ui(`DateTimeField`).uri]:{size:20,type:`datetime-local`,dt:`dateTime`,pattern:/^\s*[0-9][0-9][0-9][0-9](-[0-1]?[0-9]-[0-3]?[0-9])?(T[0-2][0-9]:[0-5][0-9](:[0-5][0-9])?)?Z?\s*$/},[e.default.ui(`TimeField`).uri]:{size:10,type:`time`,dt:`time`,pattern:/^\s*([0-2]?[0-9]:[0-5][0-9](:[0-5][0-9])?)\s*$/},[e.default.ui(`IntegerField`).uri]:{size:12,style:`text-align: right;`,dt:`integer`,pattern:/^\s*-?[0-9]+\s*$/},[e.default.ui(`DecimalField`).uri]:{size:12,style:`text-align: right;`,dt:`decimal`,pattern:/^\s*-?[0-9]*(\.[0-9]*)?\s*$/},[e.default.ui(`FloatField`).uri]:{size:12,style:`text-align: right;`,dt:`float`,pattern:/^\s*-?[0-9]*(\.[0-9]*)?((e|E)-?[0-9]*)?\s*$/},[e.default.ui(`SingleLineTextField`).uri]:{},[e.default.ui(`NamedNodeURIField`).uri]:{namedNode:!0},[e.default.ui(`TextField`).uri]:{},[e.default.ui(`PhoneField`).uri]:{size:20,defaultInputValue:`tel:`,pattern:/^\+?[\d-]+[\d]*$/},[e.default.ui(`EmailField`).uri]:{size:30,defaultInputValue:`mailto:`,pattern:/^\s*.*@.*\..*\s*$/},[e.default.ui(`Group`).uri]:{style:t.style.formGroupStyle},[e.default.ui(`Comment`).uri]:{element:`p`,style:t.style.commentStyle},[e.default.ui(`Heading`).uri]:{element:`h3`,style:t.style.formHeadingStyle}};exports.fieldParams=n;
|
|
2
|
+
//# sourceMappingURL=fieldParams.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldParams.cjs.js","names":[],"sources":["../../../src/lib/forms/fieldParams.ts"],"sourcesContent":["import ns from '../../lib/ns'\nimport { style } from '../../lib/style'\n\nexport type InputType =\n | 'hidden'\n | 'text'\n | 'search'\n | 'tel'\n | 'url'\n | 'email'\n | 'password'\n | 'datetime'\n | 'date'\n | 'month'\n | 'week'\n | 'time'\n | 'datetime-local'\n | 'number'\n | 'range'\n | 'color'\n | 'checkbox'\n | 'radio'\n | 'file'\n | 'submit'\n | 'image'\n | 'reset'\n | 'button'\n\nexport type FieldParamsObject = {\n size?: number, // input element size attribute\n type?: InputType, // input element type attribute. Default: 'text' (not for Comment and Heading)\n element?: string, // element type to use (Comment and Heading only)\n style?: string, // style to use\n dt?: string, // xsd data type for the RDF Literal corresponding to the field value. Default: xsd:string\n defaultInputValue?: string, // e.g. 'mailto:'. Default value in input field, will be removed when displaying actual value to user.\n namedNode?: boolean, // if true, field value corresponds to the URI of an RDF NamedNode. Overrides dt and defaultInputValue.\n pattern?: RegExp // for client-side input validation; field will go red if violated, green if ok\n}\n\n/**\n * The fieldParams object defines various constants\n * for use in various form fields. Depending on the\n * field in questions, different values may be read\n * from here.\n */\nexport const fieldParams: { [ fieldUri: string ]: FieldParamsObject } = {\n /**\n * Text field\n *\n * For possible date popups see e.g. http://www.dynamicdrive.com/dynamicindex7/jasoncalendar.htm\n * or use HTML5: http://www.w3.org/TR/2011/WD-html-markup-20110113/input.date.html\n */\n [ns.ui('ColorField').uri]: {\n size: 9,\n type: 'color',\n style: 'height: 3em;', // around 1.5em is padding\n dt: 'color',\n pattern: /^\\s*#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]([0-9a-f][0-9a-f])?\\s*$/\n }, // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/color\n\n [ns.ui('DateField').uri]: {\n size: 20,\n type: 'date',\n dt: 'date',\n pattern: /^\\s*[0-9][0-9][0-9][0-9](-[0-1]?[0-9]-[0-3]?[0-9])?Z?\\s*$/\n },\n\n [ns.ui('DateTimeField').uri]: {\n size: 20,\n type: 'datetime-local', // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime\n dt: 'dateTime',\n pattern: /^\\s*[0-9][0-9][0-9][0-9](-[0-1]?[0-9]-[0-3]?[0-9])?(T[0-2][0-9]:[0-5][0-9](:[0-5][0-9])?)?Z?\\s*$/\n },\n\n [ns.ui('TimeField').uri]: {\n size: 10,\n type: 'time',\n dt: 'time',\n pattern: /^\\s*([0-2]?[0-9]:[0-5][0-9](:[0-5][0-9])?)\\s*$/\n },\n\n [ns.ui('IntegerField').uri]: {\n size: 12,\n style: 'text-align: right;',\n dt: 'integer',\n pattern: /^\\s*-?[0-9]+\\s*$/\n },\n\n [ns.ui('DecimalField').uri]: {\n size: 12,\n style: 'text-align: right;',\n dt: 'decimal',\n pattern: /^\\s*-?[0-9]*(\\.[0-9]*)?\\s*$/\n },\n\n [ns.ui('FloatField').uri]: {\n size: 12,\n style: 'text-align: right;',\n dt: 'float',\n pattern: /^\\s*-?[0-9]*(\\.[0-9]*)?((e|E)-?[0-9]*)?\\s*$/\n },\n\n [ns.ui('SingleLineTextField').uri]: {\n\n },\n [ns.ui('NamedNodeURIField').uri]: {\n namedNode: true\n },\n [ns.ui('TextField').uri]: {\n\n },\n\n [ns.ui('PhoneField').uri]: {\n size: 20,\n defaultInputValue: 'tel:',\n pattern: /^\\+?[\\d-]+[\\d]*$/\n },\n\n [ns.ui('EmailField').uri]: {\n size: 30,\n defaultInputValue: 'mailto:',\n pattern: /^\\s*.*@.*\\..*\\s*$/ // @@ Get the right regexp here\n },\n\n [ns.ui('Group').uri]: {\n style: style.formGroupStyle\n },\n\n /**\n * Non-interactive fields\n */\n [ns.ui('Comment').uri]: {\n element: 'p',\n style: style.commentStyle\n },\n [ns.ui('Heading').uri]: {\n element: 'h3',\n style: style.formHeadingStyle\n }\n}\n"],"mappings":"6DA6CA,IAAa,EAA2D,EAOrE,EAAA,QAAG,GAAG,YAAY,CAAC,CAAC,KAAM,CACzB,KAAM,EACN,KAAM,QACN,MAAO,eACP,GAAI,QACJ,QAAS,8EACX,GAEC,EAAA,QAAG,GAAG,WAAW,CAAC,CAAC,KAAM,CACxB,KAAM,GACN,KAAM,OACN,GAAI,OACJ,QAAS,2DACX,GAEC,EAAA,QAAG,GAAG,eAAe,CAAC,CAAC,KAAM,CAC5B,KAAM,GACN,KAAM,iBACN,GAAI,WACJ,QAAS,kGACX,GAEC,EAAA,QAAG,GAAG,WAAW,CAAC,CAAC,KAAM,CACxB,KAAM,GACN,KAAM,OACN,GAAI,OACJ,QAAS,gDACX,GAEC,EAAA,QAAG,GAAG,cAAc,CAAC,CAAC,KAAM,CAC3B,KAAM,GACN,MAAO,qBACP,GAAI,UACJ,QAAS,kBACX,GAEC,EAAA,QAAG,GAAG,cAAc,CAAC,CAAC,KAAM,CAC3B,KAAM,GACN,MAAO,qBACP,GAAI,UACJ,QAAS,6BACX,GAEC,EAAA,QAAG,GAAG,YAAY,CAAC,CAAC,KAAM,CACzB,KAAM,GACN,MAAO,qBACP,GAAI,QACJ,QAAS,6CACX,GAEC,EAAA,QAAG,GAAG,qBAAqB,CAAC,CAAC,KAAM,CAEpC,GACC,EAAA,QAAG,GAAG,mBAAmB,CAAC,CAAC,KAAM,CAChC,UAAW,EACb,GACC,EAAA,QAAG,GAAG,WAAW,CAAC,CAAC,KAAM,CAE1B,GAEC,EAAA,QAAG,GAAG,YAAY,CAAC,CAAC,KAAM,CACzB,KAAM,GACN,kBAAmB,OACnB,QAAS,kBACX,GAEC,EAAA,QAAG,GAAG,YAAY,CAAC,CAAC,KAAM,CACzB,KAAM,GACN,kBAAmB,UACnB,QAAS,mBACX,GAEC,EAAA,QAAG,GAAG,OAAO,CAAC,CAAC,KAAM,CACpB,MAAO,EAAA,MAAM,cACf,GAKC,EAAA,QAAG,GAAG,SAAS,CAAC,CAAC,KAAM,CACtB,QAAS,IACT,MAAO,EAAA,MAAM,YACf,GACC,EAAA,QAAG,GAAG,SAAS,CAAC,CAAC,KAAM,CACtB,QAAS,KACT,MAAO,EAAA,MAAM,gBACf,CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type InputType = 'hidden' | 'text' | 'search' | 'tel' | 'url' | 'email' | 'password' | 'datetime' | 'date' | 'month' | 'week' | 'time' | 'datetime-local' | 'number' | 'range' | 'color' | 'checkbox' | 'radio' | 'file' | 'submit' | 'image' | 'reset' | 'button';
|
|
2
|
+
export type FieldParamsObject = {
|
|
3
|
+
size?: number;
|
|
4
|
+
type?: InputType;
|
|
5
|
+
element?: string;
|
|
6
|
+
style?: string;
|
|
7
|
+
dt?: string;
|
|
8
|
+
defaultInputValue?: string;
|
|
9
|
+
namedNode?: boolean;
|
|
10
|
+
pattern?: RegExp;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* The fieldParams object defines various constants
|
|
14
|
+
* for use in various form fields. Depending on the
|
|
15
|
+
* field in questions, different values may be read
|
|
16
|
+
* from here.
|
|
17
|
+
*/
|
|
18
|
+
export declare const fieldParams: {
|
|
19
|
+
[fieldUri: string]: FieldParamsObject;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=fieldParams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldParams.d.ts","sourceRoot":"","sources":["../../../src/lib/forms/fieldParams.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,KAAK,GACL,KAAK,GACL,OAAO,GACP,UAAU,GACV,UAAU,GACV,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,QAAQ,GACR,OAAO,GACP,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,GACN,QAAQ,GACR,OAAO,GACP,OAAO,GACP,QAAQ,CAAA;AAEZ,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE;IAAE,CAAE,QAAQ,EAAE,MAAM,GAAI,iBAAiB,CAAA;CA8FlE,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import e from "../ns.esm.js";
|
|
2
|
+
import { style as t } from "../style.esm.js";
|
|
3
|
+
//#region src/lib/forms/fieldParams.ts
|
|
4
|
+
var n = {
|
|
5
|
+
[e.ui("ColorField").uri]: {
|
|
6
|
+
size: 9,
|
|
7
|
+
type: "color",
|
|
8
|
+
style: "height: 3em;",
|
|
9
|
+
dt: "color",
|
|
10
|
+
pattern: /^\s*#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]([0-9a-f][0-9a-f])?\s*$/
|
|
11
|
+
},
|
|
12
|
+
[e.ui("DateField").uri]: {
|
|
13
|
+
size: 20,
|
|
14
|
+
type: "date",
|
|
15
|
+
dt: "date",
|
|
16
|
+
pattern: /^\s*[0-9][0-9][0-9][0-9](-[0-1]?[0-9]-[0-3]?[0-9])?Z?\s*$/
|
|
17
|
+
},
|
|
18
|
+
[e.ui("DateTimeField").uri]: {
|
|
19
|
+
size: 20,
|
|
20
|
+
type: "datetime-local",
|
|
21
|
+
dt: "dateTime",
|
|
22
|
+
pattern: /^\s*[0-9][0-9][0-9][0-9](-[0-1]?[0-9]-[0-3]?[0-9])?(T[0-2][0-9]:[0-5][0-9](:[0-5][0-9])?)?Z?\s*$/
|
|
23
|
+
},
|
|
24
|
+
[e.ui("TimeField").uri]: {
|
|
25
|
+
size: 10,
|
|
26
|
+
type: "time",
|
|
27
|
+
dt: "time",
|
|
28
|
+
pattern: /^\s*([0-2]?[0-9]:[0-5][0-9](:[0-5][0-9])?)\s*$/
|
|
29
|
+
},
|
|
30
|
+
[e.ui("IntegerField").uri]: {
|
|
31
|
+
size: 12,
|
|
32
|
+
style: "text-align: right;",
|
|
33
|
+
dt: "integer",
|
|
34
|
+
pattern: /^\s*-?[0-9]+\s*$/
|
|
35
|
+
},
|
|
36
|
+
[e.ui("DecimalField").uri]: {
|
|
37
|
+
size: 12,
|
|
38
|
+
style: "text-align: right;",
|
|
39
|
+
dt: "decimal",
|
|
40
|
+
pattern: /^\s*-?[0-9]*(\.[0-9]*)?\s*$/
|
|
41
|
+
},
|
|
42
|
+
[e.ui("FloatField").uri]: {
|
|
43
|
+
size: 12,
|
|
44
|
+
style: "text-align: right;",
|
|
45
|
+
dt: "float",
|
|
46
|
+
pattern: /^\s*-?[0-9]*(\.[0-9]*)?((e|E)-?[0-9]*)?\s*$/
|
|
47
|
+
},
|
|
48
|
+
[e.ui("SingleLineTextField").uri]: {},
|
|
49
|
+
[e.ui("NamedNodeURIField").uri]: { namedNode: !0 },
|
|
50
|
+
[e.ui("TextField").uri]: {},
|
|
51
|
+
[e.ui("PhoneField").uri]: {
|
|
52
|
+
size: 20,
|
|
53
|
+
defaultInputValue: "tel:",
|
|
54
|
+
pattern: /^\+?[\d-]+[\d]*$/
|
|
55
|
+
},
|
|
56
|
+
[e.ui("EmailField").uri]: {
|
|
57
|
+
size: 30,
|
|
58
|
+
defaultInputValue: "mailto:",
|
|
59
|
+
pattern: /^\s*.*@.*\..*\s*$/
|
|
60
|
+
},
|
|
61
|
+
[e.ui("Group").uri]: { style: t.formGroupStyle },
|
|
62
|
+
[e.ui("Comment").uri]: {
|
|
63
|
+
element: "p",
|
|
64
|
+
style: t.commentStyle
|
|
65
|
+
},
|
|
66
|
+
[e.ui("Heading").uri]: {
|
|
67
|
+
element: "h3",
|
|
68
|
+
style: t.formHeadingStyle
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
//#endregion
|
|
72
|
+
export { n as fieldParams };
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=fieldParams.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldParams.esm.js","names":[],"sources":["../../../src/lib/forms/fieldParams.ts"],"sourcesContent":["import ns from '../../lib/ns'\nimport { style } from '../../lib/style'\n\nexport type InputType =\n | 'hidden'\n | 'text'\n | 'search'\n | 'tel'\n | 'url'\n | 'email'\n | 'password'\n | 'datetime'\n | 'date'\n | 'month'\n | 'week'\n | 'time'\n | 'datetime-local'\n | 'number'\n | 'range'\n | 'color'\n | 'checkbox'\n | 'radio'\n | 'file'\n | 'submit'\n | 'image'\n | 'reset'\n | 'button'\n\nexport type FieldParamsObject = {\n size?: number, // input element size attribute\n type?: InputType, // input element type attribute. Default: 'text' (not for Comment and Heading)\n element?: string, // element type to use (Comment and Heading only)\n style?: string, // style to use\n dt?: string, // xsd data type for the RDF Literal corresponding to the field value. Default: xsd:string\n defaultInputValue?: string, // e.g. 'mailto:'. Default value in input field, will be removed when displaying actual value to user.\n namedNode?: boolean, // if true, field value corresponds to the URI of an RDF NamedNode. Overrides dt and defaultInputValue.\n pattern?: RegExp // for client-side input validation; field will go red if violated, green if ok\n}\n\n/**\n * The fieldParams object defines various constants\n * for use in various form fields. Depending on the\n * field in questions, different values may be read\n * from here.\n */\nexport const fieldParams: { [ fieldUri: string ]: FieldParamsObject } = {\n /**\n * Text field\n *\n * For possible date popups see e.g. http://www.dynamicdrive.com/dynamicindex7/jasoncalendar.htm\n * or use HTML5: http://www.w3.org/TR/2011/WD-html-markup-20110113/input.date.html\n */\n [ns.ui('ColorField').uri]: {\n size: 9,\n type: 'color',\n style: 'height: 3em;', // around 1.5em is padding\n dt: 'color',\n pattern: /^\\s*#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]([0-9a-f][0-9a-f])?\\s*$/\n }, // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/color\n\n [ns.ui('DateField').uri]: {\n size: 20,\n type: 'date',\n dt: 'date',\n pattern: /^\\s*[0-9][0-9][0-9][0-9](-[0-1]?[0-9]-[0-3]?[0-9])?Z?\\s*$/\n },\n\n [ns.ui('DateTimeField').uri]: {\n size: 20,\n type: 'datetime-local', // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime\n dt: 'dateTime',\n pattern: /^\\s*[0-9][0-9][0-9][0-9](-[0-1]?[0-9]-[0-3]?[0-9])?(T[0-2][0-9]:[0-5][0-9](:[0-5][0-9])?)?Z?\\s*$/\n },\n\n [ns.ui('TimeField').uri]: {\n size: 10,\n type: 'time',\n dt: 'time',\n pattern: /^\\s*([0-2]?[0-9]:[0-5][0-9](:[0-5][0-9])?)\\s*$/\n },\n\n [ns.ui('IntegerField').uri]: {\n size: 12,\n style: 'text-align: right;',\n dt: 'integer',\n pattern: /^\\s*-?[0-9]+\\s*$/\n },\n\n [ns.ui('DecimalField').uri]: {\n size: 12,\n style: 'text-align: right;',\n dt: 'decimal',\n pattern: /^\\s*-?[0-9]*(\\.[0-9]*)?\\s*$/\n },\n\n [ns.ui('FloatField').uri]: {\n size: 12,\n style: 'text-align: right;',\n dt: 'float',\n pattern: /^\\s*-?[0-9]*(\\.[0-9]*)?((e|E)-?[0-9]*)?\\s*$/\n },\n\n [ns.ui('SingleLineTextField').uri]: {\n\n },\n [ns.ui('NamedNodeURIField').uri]: {\n namedNode: true\n },\n [ns.ui('TextField').uri]: {\n\n },\n\n [ns.ui('PhoneField').uri]: {\n size: 20,\n defaultInputValue: 'tel:',\n pattern: /^\\+?[\\d-]+[\\d]*$/\n },\n\n [ns.ui('EmailField').uri]: {\n size: 30,\n defaultInputValue: 'mailto:',\n pattern: /^\\s*.*@.*\\..*\\s*$/ // @@ Get the right regexp here\n },\n\n [ns.ui('Group').uri]: {\n style: style.formGroupStyle\n },\n\n /**\n * Non-interactive fields\n */\n [ns.ui('Comment').uri]: {\n element: 'p',\n style: style.commentStyle\n },\n [ns.ui('Heading').uri]: {\n element: 'h3',\n style: style.formHeadingStyle\n }\n}\n"],"mappings":";;;AA6CA,IAAa,IAA2D;EAOrE,EAAG,GAAG,YAAY,CAAC,CAAC,MAAM;EACzB,MAAM;EACN,MAAM;EACN,OAAO;EACP,IAAI;EACJ,SAAS;CACX;EAEC,EAAG,GAAG,WAAW,CAAC,CAAC,MAAM;EACxB,MAAM;EACN,MAAM;EACN,IAAI;EACJ,SAAS;CACX;EAEC,EAAG,GAAG,eAAe,CAAC,CAAC,MAAM;EAC5B,MAAM;EACN,MAAM;EACN,IAAI;EACJ,SAAS;CACX;EAEC,EAAG,GAAG,WAAW,CAAC,CAAC,MAAM;EACxB,MAAM;EACN,MAAM;EACN,IAAI;EACJ,SAAS;CACX;EAEC,EAAG,GAAG,cAAc,CAAC,CAAC,MAAM;EAC3B,MAAM;EACN,OAAO;EACP,IAAI;EACJ,SAAS;CACX;EAEC,EAAG,GAAG,cAAc,CAAC,CAAC,MAAM;EAC3B,MAAM;EACN,OAAO;EACP,IAAI;EACJ,SAAS;CACX;EAEC,EAAG,GAAG,YAAY,CAAC,CAAC,MAAM;EACzB,MAAM;EACN,OAAO;EACP,IAAI;EACJ,SAAS;CACX;EAEC,EAAG,GAAG,qBAAqB,CAAC,CAAC,MAAM,CAEpC;EACC,EAAG,GAAG,mBAAmB,CAAC,CAAC,MAAM,EAChC,WAAW,GACb;EACC,EAAG,GAAG,WAAW,CAAC,CAAC,MAAM,CAE1B;EAEC,EAAG,GAAG,YAAY,CAAC,CAAC,MAAM;EACzB,MAAM;EACN,mBAAmB;EACnB,SAAS;CACX;EAEC,EAAG,GAAG,YAAY,CAAC,CAAC,MAAM;EACzB,MAAM;EACN,mBAAmB;EACnB,SAAS;CACX;EAEC,EAAG,GAAG,OAAO,CAAC,CAAC,MAAM,EACpB,OAAO,EAAM,eACf;EAKC,EAAG,GAAG,SAAS,CAAC,CAAC,MAAM;EACtB,SAAS;EACT,OAAO,EAAM;CACf;EACC,EAAG,GAAG,SAAS,CAAC,CAAC,MAAM;EACtB,SAAS;EACT,OAAO,EAAM;CACf;AACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../ns.cjs.js");let t=require("rdflib");async function n(e,n){let r=(0,t.sym)(n);return e.holds(void 0,void 0,void 0,r)&&e.removeStatements(e.statementsMatching(void 0,void 0,void 0,r)),await e.fetcher.load(n,{force:!0,clearPreviousData:!0})}function r(t,n){let r=n.map(n=>{let r=t.any(n,e.default.ui(`sequence`)),i=r?Number(r.value):9999;return[Number.isNaN(i)?9999:i,n]});return r.sort((e,t)=>e[0]-t[0]),r.map(e=>e[1])}function i(e,t){let n=e.findTypeURIs(t),r=e.bottomTypeURIs(n),i=[];for(let e in r)i.push(e);return i[0]}function a(n,r){let i=r.split(`#`)[0],a=r.includes(`#`)?r.split(`#`)[1]:null;if(a){let r=(0,t.sym)(i+`#`+a);if(n.holds(r,e.default.rdf(`type`),e.default.ui(`Form`)))return r}return n.each(null,e.default.rdf(`type`),e.default.ui(`Form`)).find(e=>e.termType===`NamedNode`)||null}exports.fetchData=n,exports.findForm=a,exports.mostSpecificClassURI=i,exports.sortBySequence=r;
|
|
2
|
+
//# sourceMappingURL=rdfFormsHelper.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rdfFormsHelper.cjs.js","names":[],"sources":["../../../src/lib/forms/rdfFormsHelper.ts"],"sourcesContent":["import { sym, LiveStore, parse } from 'rdflib'\nimport type { Term } from 'rdflib/lib/tf-types'\n// eslint-disable-next-line camelcase\nimport type { Quad_Subject, NamedNode } from 'rdflib/lib/tf-types'\nimport ns from '../../lib/ns'\n\nconst baseUri = 'https://solidos.github.io/solid-ui/src/ontology/'\n\nexport function loadDocument (\n store: LiveStore,\n documentSource: string,\n documentName: string,\n documentURI?: string,\n preferRemote = false\n) {\n const finalDocumentUri = documentURI || baseUri + documentName // Full URI to the file\n const document = sym(finalDocumentUri) // rdflib NamedNode for the document\n\n if (store.holds(undefined, undefined, undefined, document)) {\n store.removeStatements(store.statementsMatching(undefined, undefined, undefined, document))\n }\n\n const parseSource = () => {\n return new Promise<void>((resolve, reject) => {\n parse(documentSource, store, finalDocumentUri, 'text/turtle', (err) => {\n if (err) {\n console.error('Parse document error for ', finalDocumentUri, err)\n reject(err)\n } else {\n resolve()\n }\n })\n })\n }\n\n if (preferRemote && documentURI) {\n return store.fetcher.load(documentURI, {\n force: true,\n clearPreviousData: true,\n }).then(() => {}).catch((err) => {\n if (documentSource && documentSource.trim().length > 0) {\n return parseSource()\n }\n throw err\n })\n }\n\n if (documentSource && documentSource.trim().length > 0) {\n return parseSource()\n }\n\n if (documentURI) {\n return store.fetcher.load(documentURI, {\n force: true,\n clearPreviousData: true,\n }).then(() => {})\n }\n\n return Promise.reject(new Error(`No document source or URI for ${documentName}`))\n}\n\nexport async function fetchData (\n store: LiveStore,\n documentURI: string\n) {\n const document = sym(documentURI) // rdflib NamedNode for the document\n\n if (store.holds(undefined, undefined, undefined, document)) {\n store.removeStatements(store.statementsMatching(undefined, undefined, undefined, document))\n }\n\n return await store.fetcher.load(documentURI, {\n force: true,\n clearPreviousData: true,\n })\n}\n\nexport function sortBySequence (\n store: LiveStore,\n list: Term[]\n) {\n const subfields = list.map((p) => {\n const k = store.any(p as any, ns.ui('sequence'))\n const seq = k ? Number((k as { value: string }).value) : 9999\n return [Number.isNaN(seq) ? 9999 : seq, p] as const\n })\n\n subfields.sort((a, b) => a[0] - b[0])\n\n return subfields.map(pair => pair[1])\n}\n\n/**\n * Which class of field is this? Relies on http://www.w3.org/2000/01/rdf-schema#subClassOf and\n * https://linkeddata.github.io/rdflib.js/doc/classes/formula.html#bottomtypeuris\n * to find the most specific RDF type if there are multiple.\n *\n * @param subject a form field, e.g. `namedNode('https://timbl.com/timbl/Public/Test/Forms/individualForm.ttl#fullNameField')`\n * @returns the URI of the most specific known class, e.g. `http://www.w3.org/ns/ui#SingleLineTextField`\n */\n// eslint-disable-next-line camelcase\nexport function mostSpecificClassURI (store: LiveStore, subject: Quad_Subject): string {\n const typeUri = store.findTypeURIs(subject)\n const specificTypes = store.bottomTypeURIs(typeUri) // most specific\n const finalTypes: any[] = []\n for (const t in specificTypes) finalTypes.push(t)\n // if (finalTypes.length > 1) throw \"Didn't expect \"+subject+\" to have multiple bottom types: \"+finalTypes\n return finalTypes[0]\n}\n\n// Find the first ui:Form node in a store, optionally matching a fragment.\n// code based on Jeff Zucker's sol-components: https://github.com/jeff-zucker/sol-components (core/form-utils.js)\nexport function findForm (store: LiveStore, sourceUri: string): NamedNode | null {\n const docUrl = sourceUri.split('#')[0]\n const fragment = sourceUri.includes('#') ? sourceUri.split('#')[1] : null\n if (fragment) {\n const candidate = sym(docUrl + '#' + fragment)\n if (store.holds(candidate, ns.rdf('type'), ns.ui('Form'))) return candidate\n }\n const forms = store.each(null, ns.rdf('type'), ns.ui('Form'))\n const found = forms.find((term) => term.termType === 'NamedNode')\n return found ? (found as NamedNode) : null\n}\n"],"mappings":"wDA6DA,eAAsB,EACpB,EACA,EACA,CACA,IAAM,GAAA,EAAW,EAAA,IAAA,CAAI,CAAW,EAMhC,OAJI,EAAM,MAAM,IAAA,GAAW,IAAA,GAAW,IAAA,GAAW,CAAQ,GACvD,EAAM,iBAAiB,EAAM,mBAAmB,IAAA,GAAW,IAAA,GAAW,IAAA,GAAW,CAAQ,CAAC,EAGrF,MAAM,EAAM,QAAQ,KAAK,EAAa,CAC3C,MAAO,GACP,kBAAmB,EACrB,CAAC,CACH,CAEA,SAAgB,EACd,EACA,EACA,CACA,IAAM,EAAY,EAAK,IAAK,GAAM,CAChC,IAAM,EAAI,EAAM,IAAI,EAAU,EAAA,QAAG,GAAG,UAAU,CAAC,EACzC,EAAM,EAAI,OAAQ,EAAwB,KAAK,EAAI,KACzD,MAAO,CAAC,OAAO,MAAM,CAAG,EAAI,KAAO,EAAK,CAAC,CAC3C,CAAC,EAID,OAFA,EAAU,MAAM,EAAG,IAAM,EAAE,GAAK,EAAE,EAAE,EAE7B,EAAU,IAAI,GAAQ,EAAK,EAAE,CACtC,CAWA,SAAgB,EAAsB,EAAkB,EAA+B,CACrF,IAAM,EAAU,EAAM,aAAa,CAAO,EACpC,EAAgB,EAAM,eAAe,CAAO,EAC5C,EAAoB,CAAC,EAC3B,IAAK,IAAM,KAAK,EAAe,EAAW,KAAK,CAAC,EAEhD,OAAO,EAAW,EACpB,CAIA,SAAgB,EAAU,EAAkB,EAAqC,CAC/E,IAAM,EAAS,EAAU,MAAM,GAAG,CAAC,CAAC,GAC9B,EAAW,EAAU,SAAS,GAAG,EAAI,EAAU,MAAM,GAAG,CAAC,CAAC,GAAK,KACrE,GAAI,EAAU,CACZ,IAAM,GAAA,EAAY,EAAA,IAAA,CAAI,EAAS,IAAM,CAAQ,EAC7C,GAAI,EAAM,MAAM,EAAW,EAAA,QAAG,IAAI,MAAM,EAAG,EAAA,QAAG,GAAG,MAAM,CAAC,EAAG,OAAO,CACpE,CAGA,OAFc,EAAM,KAAK,KAAM,EAAA,QAAG,IAAI,MAAM,EAAG,EAAA,QAAG,GAAG,MAAM,CAC7C,CAAA,CAAM,KAAM,GAAS,EAAK,WAAa,WAC9C,GAA+B,IACxC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LiveStore } from 'rdflib';
|
|
2
|
+
import { Term, Quad_Subject, NamedNode } from 'rdflib/lib/tf-types';
|
|
3
|
+
export declare function loadDocument(store: LiveStore, documentSource: string, documentName: string, documentURI?: string, preferRemote?: boolean): Promise<void>;
|
|
4
|
+
export declare function fetchData(store: LiveStore, documentURI: string): Promise<Response>;
|
|
5
|
+
export declare function sortBySequence(store: LiveStore, list: Term[]): Term[];
|
|
6
|
+
/**
|
|
7
|
+
* Which class of field is this? Relies on http://www.w3.org/2000/01/rdf-schema#subClassOf and
|
|
8
|
+
* https://linkeddata.github.io/rdflib.js/doc/classes/formula.html#bottomtypeuris
|
|
9
|
+
* to find the most specific RDF type if there are multiple.
|
|
10
|
+
*
|
|
11
|
+
* @param subject a form field, e.g. `namedNode('https://timbl.com/timbl/Public/Test/Forms/individualForm.ttl#fullNameField')`
|
|
12
|
+
* @returns the URI of the most specific known class, e.g. `http://www.w3.org/ns/ui#SingleLineTextField`
|
|
13
|
+
*/
|
|
14
|
+
export declare function mostSpecificClassURI(store: LiveStore, subject: Quad_Subject): string;
|
|
15
|
+
export declare function findForm(store: LiveStore, sourceUri: string): NamedNode | null;
|
|
16
|
+
//# sourceMappingURL=rdfFormsHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rdfFormsHelper.d.ts","sourceRoot":"","sources":["../../../src/lib/forms/rdfFormsHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,SAAS,EAAS,MAAM,QAAQ,CAAA;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAKlE,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,UAAQ,iBA8CrB;AAED,wBAAsB,SAAS,CAC7B,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,MAAM,qBAYpB;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,IAAI,EAAE,UAWb;AAED;;;;;;;GAOG;AAEH,wBAAgB,oBAAoB,CAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,CAOrF;AAID,wBAAgB,QAAQ,CAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAU/E"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import e from "../ns.esm.js";
|
|
2
|
+
import { sym as t } from "rdflib";
|
|
3
|
+
//#region src/lib/forms/rdfFormsHelper.ts
|
|
4
|
+
async function n(e, n) {
|
|
5
|
+
let r = t(n);
|
|
6
|
+
return e.holds(void 0, void 0, void 0, r) && e.removeStatements(e.statementsMatching(void 0, void 0, void 0, r)), await e.fetcher.load(n, {
|
|
7
|
+
force: !0,
|
|
8
|
+
clearPreviousData: !0
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
function r(t, n) {
|
|
12
|
+
let r = n.map((n) => {
|
|
13
|
+
let r = t.any(n, e.ui("sequence")), i = r ? Number(r.value) : 9999;
|
|
14
|
+
return [Number.isNaN(i) ? 9999 : i, n];
|
|
15
|
+
});
|
|
16
|
+
return r.sort((e, t) => e[0] - t[0]), r.map((e) => e[1]);
|
|
17
|
+
}
|
|
18
|
+
function i(e, t) {
|
|
19
|
+
let n = e.findTypeURIs(t), r = e.bottomTypeURIs(n), i = [];
|
|
20
|
+
for (let e in r) i.push(e);
|
|
21
|
+
return i[0];
|
|
22
|
+
}
|
|
23
|
+
function a(n, r) {
|
|
24
|
+
let i = r.split("#")[0], a = r.includes("#") ? r.split("#")[1] : null;
|
|
25
|
+
if (a) {
|
|
26
|
+
let r = t(i + "#" + a);
|
|
27
|
+
if (n.holds(r, e.rdf("type"), e.ui("Form"))) return r;
|
|
28
|
+
}
|
|
29
|
+
return n.each(null, e.rdf("type"), e.ui("Form")).find((e) => e.termType === "NamedNode") || null;
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { n as fetchData, a as findForm, i as mostSpecificClassURI, r as sortBySequence };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=rdfFormsHelper.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rdfFormsHelper.esm.js","names":[],"sources":["../../../src/lib/forms/rdfFormsHelper.ts"],"sourcesContent":["import { sym, LiveStore, parse } from 'rdflib'\nimport type { Term } from 'rdflib/lib/tf-types'\n// eslint-disable-next-line camelcase\nimport type { Quad_Subject, NamedNode } from 'rdflib/lib/tf-types'\nimport ns from '../../lib/ns'\n\nconst baseUri = 'https://solidos.github.io/solid-ui/src/ontology/'\n\nexport function loadDocument (\n store: LiveStore,\n documentSource: string,\n documentName: string,\n documentURI?: string,\n preferRemote = false\n) {\n const finalDocumentUri = documentURI || baseUri + documentName // Full URI to the file\n const document = sym(finalDocumentUri) // rdflib NamedNode for the document\n\n if (store.holds(undefined, undefined, undefined, document)) {\n store.removeStatements(store.statementsMatching(undefined, undefined, undefined, document))\n }\n\n const parseSource = () => {\n return new Promise<void>((resolve, reject) => {\n parse(documentSource, store, finalDocumentUri, 'text/turtle', (err) => {\n if (err) {\n console.error('Parse document error for ', finalDocumentUri, err)\n reject(err)\n } else {\n resolve()\n }\n })\n })\n }\n\n if (preferRemote && documentURI) {\n return store.fetcher.load(documentURI, {\n force: true,\n clearPreviousData: true,\n }).then(() => {}).catch((err) => {\n if (documentSource && documentSource.trim().length > 0) {\n return parseSource()\n }\n throw err\n })\n }\n\n if (documentSource && documentSource.trim().length > 0) {\n return parseSource()\n }\n\n if (documentURI) {\n return store.fetcher.load(documentURI, {\n force: true,\n clearPreviousData: true,\n }).then(() => {})\n }\n\n return Promise.reject(new Error(`No document source or URI for ${documentName}`))\n}\n\nexport async function fetchData (\n store: LiveStore,\n documentURI: string\n) {\n const document = sym(documentURI) // rdflib NamedNode for the document\n\n if (store.holds(undefined, undefined, undefined, document)) {\n store.removeStatements(store.statementsMatching(undefined, undefined, undefined, document))\n }\n\n return await store.fetcher.load(documentURI, {\n force: true,\n clearPreviousData: true,\n })\n}\n\nexport function sortBySequence (\n store: LiveStore,\n list: Term[]\n) {\n const subfields = list.map((p) => {\n const k = store.any(p as any, ns.ui('sequence'))\n const seq = k ? Number((k as { value: string }).value) : 9999\n return [Number.isNaN(seq) ? 9999 : seq, p] as const\n })\n\n subfields.sort((a, b) => a[0] - b[0])\n\n return subfields.map(pair => pair[1])\n}\n\n/**\n * Which class of field is this? Relies on http://www.w3.org/2000/01/rdf-schema#subClassOf and\n * https://linkeddata.github.io/rdflib.js/doc/classes/formula.html#bottomtypeuris\n * to find the most specific RDF type if there are multiple.\n *\n * @param subject a form field, e.g. `namedNode('https://timbl.com/timbl/Public/Test/Forms/individualForm.ttl#fullNameField')`\n * @returns the URI of the most specific known class, e.g. `http://www.w3.org/ns/ui#SingleLineTextField`\n */\n// eslint-disable-next-line camelcase\nexport function mostSpecificClassURI (store: LiveStore, subject: Quad_Subject): string {\n const typeUri = store.findTypeURIs(subject)\n const specificTypes = store.bottomTypeURIs(typeUri) // most specific\n const finalTypes: any[] = []\n for (const t in specificTypes) finalTypes.push(t)\n // if (finalTypes.length > 1) throw \"Didn't expect \"+subject+\" to have multiple bottom types: \"+finalTypes\n return finalTypes[0]\n}\n\n// Find the first ui:Form node in a store, optionally matching a fragment.\n// code based on Jeff Zucker's sol-components: https://github.com/jeff-zucker/sol-components (core/form-utils.js)\nexport function findForm (store: LiveStore, sourceUri: string): NamedNode | null {\n const docUrl = sourceUri.split('#')[0]\n const fragment = sourceUri.includes('#') ? sourceUri.split('#')[1] : null\n if (fragment) {\n const candidate = sym(docUrl + '#' + fragment)\n if (store.holds(candidate, ns.rdf('type'), ns.ui('Form'))) return candidate\n }\n const forms = store.each(null, ns.rdf('type'), ns.ui('Form'))\n const found = forms.find((term) => term.termType === 'NamedNode')\n return found ? (found as NamedNode) : null\n}\n"],"mappings":";;;AA6DA,eAAsB,EACpB,GACA,GACA;CACA,IAAM,IAAW,EAAI,CAAW;CAMhC,OAJI,EAAM,MAAM,KAAA,GAAW,KAAA,GAAW,KAAA,GAAW,CAAQ,KACvD,EAAM,iBAAiB,EAAM,mBAAmB,KAAA,GAAW,KAAA,GAAW,KAAA,GAAW,CAAQ,CAAC,GAGrF,MAAM,EAAM,QAAQ,KAAK,GAAa;EAC3C,OAAO;EACP,mBAAmB;CACrB,CAAC;AACH;AAEA,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAY,EAAK,KAAK,MAAM;EAChC,IAAM,IAAI,EAAM,IAAI,GAAU,EAAG,GAAG,UAAU,CAAC,GACzC,IAAM,IAAI,OAAQ,EAAwB,KAAK,IAAI;EACzD,OAAO,CAAC,OAAO,MAAM,CAAG,IAAI,OAAO,GAAK,CAAC;CAC3C,CAAC;CAID,OAFA,EAAU,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,GAE7B,EAAU,KAAI,MAAQ,EAAK,EAAE;AACtC;AAWA,SAAgB,EAAsB,GAAkB,GAA+B;CACrF,IAAM,IAAU,EAAM,aAAa,CAAO,GACpC,IAAgB,EAAM,eAAe,CAAO,GAC5C,IAAoB,CAAC;CAC3B,KAAK,IAAM,KAAK,GAAe,EAAW,KAAK,CAAC;CAEhD,OAAO,EAAW;AACpB;AAIA,SAAgB,EAAU,GAAkB,GAAqC;CAC/E,IAAM,IAAS,EAAU,MAAM,GAAG,CAAC,CAAC,IAC9B,IAAW,EAAU,SAAS,GAAG,IAAI,EAAU,MAAM,GAAG,CAAC,CAAC,KAAK;CACrE,IAAI,GAAU;EACZ,IAAM,IAAY,EAAI,IAAS,MAAM,CAAQ;EAC7C,IAAI,EAAM,MAAM,GAAW,EAAG,IAAI,MAAM,GAAG,EAAG,GAAG,MAAM,CAAC,GAAG,OAAO;CACpE;CAGA,OAFc,EAAM,KAAK,MAAM,EAAG,IAAI,MAAM,GAAG,EAAG,GAAG,MAAM,CAC7C,CAAA,CAAM,MAAM,MAAS,EAAK,aAAa,WAC9C,KAA+B;AACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopStore.cjs.js","names":[],"sources":["../../../../src/lib/forms/store/NoopStore.ts"],"sourcesContent":["import { LiveStore } from 'rdflib'\nimport { StoreContext } from './StoreContext'\n\nexport default class NoopStore implements StoreContext {\n get store (): LiveStore {\n throw new Error('Cannot use RDF forms without a store')\n }\n}\n"],"mappings":"AAGA,IAAqB,EAArB,KAAuD,CACrD,IAAI,OAAoB,CACtB,MAAU,MAAM,sCAAsC,CACxD,CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopStore.d.ts","sourceRoot":"","sources":["../../../../src/lib/forms/store/NoopStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,CAAC,OAAO,OAAO,SAAU,YAAW,YAAY;IACpD,IAAI,KAAK,IAAK,SAAS,CAEtB;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopStore.esm.js","names":[],"sources":["../../../../src/lib/forms/store/NoopStore.ts"],"sourcesContent":["import { LiveStore } from 'rdflib'\nimport { StoreContext } from './StoreContext'\n\nexport default class NoopStore implements StoreContext {\n get store (): LiveStore {\n throw new Error('Cannot use RDF forms without a store')\n }\n}\n"],"mappings":";AAGA,IAAqB,IAArB,MAAuD;CACrD,IAAI,QAAoB;EACtB,MAAU,MAAM,sCAAsC;CACxD;AACF"}
|