solid-ui 5.0.2-3 → 5.0.2-5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/acl/access-controller.cjs.js +1 -1
- package/dist/acl/access-controller.cjs.js.map +1 -1
- package/dist/acl/access-controller.esm.js +37 -37
- package/dist/acl/access-groups.cjs.js +2 -2
- package/dist/acl/access-groups.cjs.js.map +1 -1
- package/dist/acl/access-groups.esm.js +78 -78
- package/dist/acl/acl-control.cjs.js +1 -1
- package/dist/acl/acl-control.cjs.js.map +1 -1
- package/dist/acl/acl-control.esm.js +19 -19
- package/dist/acl/add-agent-buttons.cjs.js +1 -1
- package/dist/acl/add-agent-buttons.cjs.js.map +1 -1
- package/dist/acl/add-agent-buttons.esm.js +51 -51
- package/dist/chat/bookmarks.cjs.js +1 -1
- package/dist/chat/bookmarks.cjs.js.map +1 -1
- package/dist/chat/bookmarks.esm.js +44 -44
- package/dist/chat/bookmarks.esm.js.map +1 -1
- package/dist/chat/chatLogic.cjs.js +2 -2
- package/dist/chat/chatLogic.cjs.js.map +1 -1
- package/dist/chat/chatLogic.esm.js +54 -54
- package/dist/chat/dateFolder.cjs.js +1 -1
- package/dist/chat/dateFolder.cjs.js.map +1 -1
- package/dist/chat/dateFolder.esm.js +30 -30
- package/dist/chat/infinite.cjs.js +1 -1
- package/dist/chat/infinite.cjs.js.map +1 -1
- package/dist/chat/infinite.esm.js +49 -49
- package/dist/chat/keys.cjs.js +2 -2
- package/dist/chat/keys.cjs.js.map +1 -1
- package/dist/chat/keys.esm.js +17 -17
- package/dist/chat/message.cjs.js +4 -4
- package/dist/chat/message.cjs.js.map +1 -1
- package/dist/chat/message.esm.js +114 -114
- package/dist/chat/message.esm.js.map +1 -1
- package/dist/chat/messageTools.cjs.js +1 -1
- package/dist/chat/messageTools.cjs.js.map +1 -1
- package/dist/chat/messageTools.esm.js +51 -51
- package/dist/chunks/{DialogProvider-dagk2fHm.js → DialogProvider-CdesAsw-.js} +5 -6
- package/dist/chunks/{DialogProvider-dagk2fHm.js.map → DialogProvider-CdesAsw-.js.map} +1 -1
- package/dist/chunks/{ResourceActionsMenu-o-8kWx8z.js → ResourceActionsMenu-Bx7YWY3E.js} +31 -32
- package/dist/chunks/{ResourceActionsMenu-o-8kWx8z.js.map → ResourceActionsMenu-Bx7YWY3E.js.map} +1 -1
- package/dist/chunks/{access-control-modal-CWH98HX3.js → access-control-modal-B1mFFIyz.js} +169 -170
- package/dist/chunks/{access-control-modal-CWH98HX3.js.map → access-control-modal-B1mFFIyz.js.map} +1 -1
- package/dist/chunks/{account-Cocvv0H3.js → account-DWmMJre6.js} +16 -17
- package/dist/chunks/{account-Cocvv0H3.js.map → account-DWmMJre6.js.map} +1 -1
- package/dist/chunks/{auth-Df5uYksz.js → auth-EK-iYNYZ.js} +42 -43
- package/dist/chunks/{auth-Df5uYksz.js.map → auth-EK-iYNYZ.js.map} +1 -1
- package/dist/chunks/{avatar-DeotTinS.js → avatar-BBgvMlqv.js} +8 -9
- package/dist/chunks/{avatar-DeotTinS.js.map → avatar-BBgvMlqv.js.map} +1 -1
- package/dist/chunks/{button-Dy1aFjqG.js → button-D6qO2idW.js} +10 -11
- package/dist/chunks/{button-Dy1aFjqG.js.map → button-D6qO2idW.js.map} +1 -1
- package/dist/chunks/{chunk.UEBQI7VV-9M5gO7Ew.js → chunk.UEBQI7VV-lcP-fpUk.js} +12 -9
- package/dist/chunks/chunk.UEBQI7VV-lcP-fpUk.js.map +1 -0
- package/dist/chunks/{combobox-BL0-8wef.js → combobox-DS6byaf1.js} +18 -19
- package/dist/chunks/{combobox-BL0-8wef.js.map → combobox-DS6byaf1.js.map} +1 -1
- package/dist/chunks/{combobox-option-DjlmXt1O.js → combobox-option-DOtGuKel.js} +7 -8
- package/dist/chunks/{combobox-option-DjlmXt1O.js.map → combobox-option-DOtGuKel.js.map} +1 -1
- package/dist/chunks/{components-LxiwG5ae.js → components-C8c2Ucm5.js} +201 -190
- package/dist/chunks/components-C8c2Ucm5.js.map +1 -0
- package/dist/chunks/{context-By_u12WA.js → context-BDrfQ9bN.js} +2 -2
- package/dist/chunks/{context-By_u12WA.js.map → context-BDrfQ9bN.js.map} +1 -1
- package/dist/chunks/{dialog-CrmftB9c.js → dialog-CgYK767T.js} +15 -16
- package/dist/chunks/{dialog-CrmftB9c.js.map → dialog-CgYK767T.js.map} +1 -1
- package/dist/chunks/{dialog-content-Cw3xqJ45.js → dialog-content-DjwRH1ci.js} +5 -6
- package/dist/chunks/{dialog-content-Cw3xqJ45.js.map → dialog-content-DjwRH1ci.js.map} +1 -1
- package/dist/chunks/{dialog-footer-sFQf-2zD.js → dialog-footer-GQWi8lfB.js} +5 -6
- package/dist/chunks/{dialog-footer-sFQf-2zD.js.map → dialog-footer-GQWi8lfB.js.map} +1 -1
- package/dist/chunks/{dialog-header-xIWIqfZK.js → dialog-header-c3qOMQfb.js} +5 -6
- package/dist/chunks/{dialog-header-xIWIqfZK.js.map → dialog-header-c3qOMQfb.js.map} +1 -1
- package/dist/chunks/{dialogs-B3tHtjMf.js → dialogs-BmtLjMzg.js} +2 -2
- package/dist/chunks/{dialogs-B3tHtjMf.js.map → dialogs-BmtLjMzg.js.map} +1 -1
- package/dist/chunks/{dialogs-root-Lh2u-3Cs.js → dialogs-root-BNF3_SA8.js} +8 -9
- package/dist/chunks/{dialogs-root-Lh2u-3Cs.js.map → dialogs-root-BNF3_SA8.js.map} +1 -1
- package/dist/chunks/{error-state-DnsXVj1z.js → error-state-jV9dlFX2.js} +10 -11
- package/dist/chunks/{error-state-DnsXVj1z.js.map → error-state-jV9dlFX2.js.map} +1 -1
- package/dist/chunks/{file-explorer-header-B6-Q0i6V.js → file-explorer-header-Djp_eFuT.js} +33 -34
- package/dist/chunks/file-explorer-header-Djp_eFuT.js.map +1 -0
- package/dist/chunks/{file-explorer-provider-B3gUBkHg.js → file-explorer-provider-DpjC7uds.js} +8 -9
- package/dist/chunks/{file-explorer-provider-B3gUBkHg.js.map → file-explorer-provider-DpjC7uds.js.map} +1 -1
- package/dist/chunks/{guard-C39y81In.js → guard-SxVT1xr4.js} +8 -9
- package/dist/chunks/{guard-C39y81In.js.map → guard-SxVT1xr4.js.map} +1 -1
- package/dist/chunks/{index.esm-C9oV3H3X.js → index.esm-BQrkxchZ.js} +2 -2
- package/dist/chunks/{index.esm-C9oV3H3X.js.map → index.esm-BQrkxchZ.js.map} +1 -1
- package/dist/chunks/{input-Bi6ZBZQw.js → input-Bz3l514j.js} +11 -12
- package/dist/chunks/{input-Bi6ZBZQw.js.map → input-Bz3l514j.js.map} +1 -1
- package/dist/chunks/{jsonld-D-TE94B0.js → jsonld-C6IOQ1Tg.js} +2 -2
- package/dist/chunks/{jsonld-D-TE94B0.js.map → jsonld-C6IOQ1Tg.js.map} +1 -1
- package/dist/chunks/{login-button-fo0P8vym.js → login-button-Dd0rwZJk.js} +9 -10
- package/dist/chunks/{login-button-fo0P8vym.js.map → login-button-Dd0rwZJk.js.map} +1 -1
- package/dist/chunks/{logout-button-CF2YFgID.js → logout-button-Da34Lrnq.js} +9 -10
- package/dist/chunks/{logout-button-CF2YFgID.js.map → logout-button-Da34Lrnq.js.map} +1 -1
- package/dist/chunks/{menu-RumUciM-.js → menu-BNJU654v.js} +48 -50
- package/dist/chunks/{menu-RumUciM-.js.map → menu-BNJU654v.js.map} +1 -1
- package/dist/chunks/{menu-item-CVAZyipz.js → menu-item-nfPpH4dN.js} +10 -11
- package/dist/chunks/{menu-item-CVAZyipz.js.map → menu-item-nfPpH4dN.js.map} +1 -1
- package/dist/chunks/{photo-capture-CAfo7y6-.js → photo-capture-hJaJm4TM.js} +20 -21
- package/dist/chunks/photo-capture-hJaJm4TM.js.map +1 -0
- package/dist/chunks/{photo-capture-modal-DWmDE_Ws.js → photo-capture-modal-BsHv6wmh.js} +28 -29
- package/dist/chunks/{photo-capture-modal-DWmDE_Ws.js.map → photo-capture-modal-BsHv6wmh.js.map} +1 -1
- package/dist/chunks/{provide-B5NeVMM_.js → provide-z9U64q4m.js} +2 -2
- package/dist/chunks/{provide-B5NeVMM_.js.map → provide-z9U64q4m.js.map} +1 -1
- package/dist/chunks/{provider-BbT2duMy.js → provider-B3FoP2qW.js} +12 -13
- package/dist/chunks/{provider-BbT2duMy.js.map → provider-B3FoP2qW.js.map} +1 -1
- package/dist/chunks/{rdf-form-CH9bDx98.js → rdf-form-BkKDmFPD.js} +30 -31
- package/dist/chunks/{rdf-form-CH9bDx98.js.map → rdf-form-BkKDmFPD.js.map} +1 -1
- package/dist/chunks/{rdf-input-C_V0pIS5.js → rdf-input-BPePtqfS.js} +62 -63
- package/dist/chunks/{rdf-input-C_V0pIS5.js.map → rdf-input-BPePtqfS.js.map} +1 -1
- package/dist/chunks/{select-y1Z6fwmh.js → select-ClPkDkGl.js} +9 -10
- package/dist/chunks/{select-y1Z6fwmh.js.map → select-ClPkDkGl.js.map} +1 -1
- package/dist/chunks/{select-option-U4ALXL20.js → select-option-DQan7rcB.js} +7 -8
- package/dist/chunks/{select-option-U4ALXL20.js.map → select-option-DQan7rcB.js.map} +1 -1
- package/dist/chunks/{signup-button-DicFpAjD.js → signup-button-DOInssOu.js} +9 -10
- package/dist/chunks/{signup-button-DicFpAjD.js.map → signup-button-DOInssOu.js.map} +1 -1
- package/dist/chunks/{solid-emblem-CeCXTpve.js → solid-emblem-DwLdkGuO.js} +7 -8
- package/dist/chunks/{solid-emblem-CeCXTpve.js.map → solid-emblem-DwLdkGuO.js.map} +1 -1
- package/dist/chunks/{solidLogicSingleton.esm-BXyHD7mn.js → solidLogicSingleton.esm-Bvt7E7Vl.js} +50 -29
- package/dist/chunks/solidLogicSingleton.esm-Bvt7E7Vl.js.map +1 -0
- package/dist/chunks/{src-Bhtor0ZC.js → src-akaVfkuf.js} +2739 -2719
- package/dist/chunks/src-akaVfkuf.js.map +1 -0
- package/dist/chunks/{style-CXaw5EYi.js → style-Dlw9-wPn.js} +3 -3
- package/dist/chunks/{style-CXaw5EYi.js.map → style-Dlw9-wPn.js.map} +1 -1
- package/dist/chunks/{widgets-BBEQu0CS.js → widgets-B1hBVhRL.js} +309 -309
- package/dist/chunks/widgets-B1hBVhRL.js.map +1 -0
- package/dist/components/access-control-modal/AccessControlAddAccess.cjs.js +1 -1
- package/dist/components/access-control-modal/AccessControlAddAccess.esm.js +5 -5
- package/dist/components/access-control-modal/AccessControlAddAccess.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlErrors.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js +2 -2
- package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlGeneralAccess.esm.js +12 -12
- package/dist/components/access-control-modal/AccessControlGeneralAccess.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlModal.cjs.js +2 -2
- package/dist/components/access-control-modal/AccessControlModal.cjs.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlModal.esm.js +35 -35
- package/dist/components/access-control-modal/AccessControlModal.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlSharedAccess.cjs.js +1 -1
- package/dist/components/access-control-modal/AccessControlSharedAccess.esm.js +2 -2
- package/dist/components/access-control-modal/AccessControlSharedAccess.esm.js.map +1 -1
- package/dist/components/access-control-modal/accessTargetResolver.cjs.js +1 -1
- package/dist/components/access-control-modal/accessTargetResolver.cjs.js.map +1 -1
- package/dist/components/access-control-modal/accessTargetResolver.esm.js +21 -21
- package/dist/components/access-control-modal.js +1 -1
- package/dist/components/account/Account.cjs.js +1 -1
- package/dist/components/account/Account.esm.js +3 -3
- package/dist/components/account/Account.esm.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 +16 -16
- package/dist/components/avatar.js +1 -1
- package/dist/components/button/Button.esm.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/combobox/Combobox.cjs.js +1 -1
- package/dist/components/combobox/Combobox.esm.js +1 -1
- package/dist/components/combobox/Combobox.esm.js.map +1 -1
- package/dist/components/combobox-option/ComboboxOption.esm.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 +2 -2
- package/dist/components/dialog/Dialog.cjs.js.map +1 -1
- package/dist/components/dialog/Dialog.esm.js +9 -9
- 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 +1 -1
- package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
- package/dist/components/dialog-provider/DialogProvider.esm.js +6 -6
- package/dist/components/dialog-provider/DialogProvider.esm.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 +2 -2
- package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
- package/dist/components/dialogs-root/DialogsRoot.esm.js +7 -7
- package/dist/components/dialogs-root/DialogsRoot.esm.js.map +1 -1
- package/dist/components/dialogs-root.js +1 -1
- package/dist/components/error-state/ErrorState.cjs.js +1 -1
- package/dist/components/error-state/ErrorState.esm.js +1 -1
- package/dist/components/error-state/ErrorState.esm.js.map +1 -1
- package/dist/components/error-state.js +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js +2 -2
- package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.d.ts.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.esm.js +20 -19
- package/dist/components/file-explorer-header/FileExplorerHeader.esm.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js +6 -6
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.d.ts.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js +25 -24
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js +7 -7
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.d.ts.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js +28 -27
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js.map +1 -1
- package/dist/components/file-explorer-header.js +1 -1
- package/dist/components/file-explorer-provider/FileExplorerProvider.cjs.js +1 -1
- package/dist/components/file-explorer-provider/FileExplorerProvider.cjs.js.map +1 -1
- package/dist/components/file-explorer-provider/FileExplorerProvider.d.ts +1 -1
- package/dist/components/file-explorer-provider/FileExplorerProvider.d.ts.map +1 -1
- package/dist/components/file-explorer-provider/FileExplorerProvider.esm.js +8 -7
- package/dist/components/file-explorer-provider/FileExplorerProvider.esm.js.map +1 -1
- package/dist/components/file-explorer-provider.js +1 -1
- package/dist/components/guard.js +1 -1
- package/dist/components/input/Input.esm.js.map +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/login-button/LoginButton.cjs.js +1 -1
- package/dist/components/login-button/LoginButton.esm.js +1 -1
- package/dist/components/login-button.js +1 -1
- package/dist/components/login-modal/LoginModal.cjs.js +1 -1
- package/dist/components/login-modal/LoginModal.esm.js +2 -2
- package/dist/components/login-modal/LoginModal.esm.js.map +1 -1
- package/dist/components/login-modal.js +1 -1
- package/dist/components/logout-button/LogoutButton.cjs.js +1 -1
- package/dist/components/logout-button/LogoutButton.esm.js +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.esm.js +1 -1
- package/dist/components/menu/Menu.esm.js.map +1 -1
- package/dist/components/menu-item/MenuItem.esm.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.esm.js.map +1 -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.esm.js.map +1 -1
- package/dist/components/provider.js +1 -1
- package/dist/components/rdf-form/RDFForm.cjs.js +3 -3
- package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -1
- package/dist/components/rdf-form/RDFForm.esm.js +13 -13
- package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
- package/dist/components/rdf-form.js +1 -1
- package/dist/components/rdf-input/RDFInput.cjs.js +2 -2
- package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -1
- package/dist/components/rdf-input/RDFInput.esm.js +4 -4
- package/dist/components/rdf-input/RDFInput.esm.js.map +1 -1
- package/dist/components/rdf-input.js +1 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js +8 -8
- package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js.map +1 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts.map +1 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js +18 -17
- package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js.map +1 -1
- package/dist/components/resource-actions-menu.js +1 -1
- package/dist/components/select/Select.cjs.js +1 -1
- package/dist/components/select/Select.cjs.js.map +1 -1
- package/dist/components/select/Select.esm.js +1 -1
- package/dist/components/select/Select.esm.js.map +1 -1
- package/dist/components/select-option/SelectOption.esm.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 +1 -1
- package/dist/components/signup-button/SignupButton.esm.js +1 -1
- package/dist/components/signup-button.js +1 -1
- package/dist/components/solid-emblem.js +1 -1
- package/dist/components.js +30 -30
- package/dist/create/create.cjs.js +1 -1
- package/dist/create/create.cjs.js.map +1 -1
- package/dist/create/create.esm.js +23 -23
- package/dist/header/index.cjs.js +1 -1
- package/dist/header/index.cjs.js.map +1 -1
- package/dist/header/index.esm.js +53 -53
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +24 -24
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +11 -12
- 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 +8 -8
- package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
- package/dist/lib/code-editor/CodeEditor.cjs.js +1 -1
- package/dist/lib/code-editor/CodeEditor.cjs.js.map +1 -1
- package/dist/lib/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/lib/code-editor/CodeEditor.esm.js +34 -30
- package/dist/lib/code-editor/CodeEditor.esm.js.map +1 -1
- package/dist/lib/components/dialog-component/DialogComponent.cjs.js +1 -1
- package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -1
- package/dist/lib/components/dialog-component/DialogComponent.esm.js +4 -4
- package/dist/lib/components/index.cjs.js +1 -1
- package/dist/lib/components/index.esm.js +3 -3
- package/dist/lib/dialogs/helpers.cjs.js +1 -1
- package/dist/lib/dialogs/helpers.cjs.js.map +1 -1
- package/dist/lib/dialogs/helpers.esm.js +4 -4
- package/dist/lib/file-explorer/index.cjs.js +1 -1
- package/dist/lib/file-explorer/index.esm.js +3 -3
- package/dist/lib/file-explorer/relevant-panes.cjs.js +1 -1
- package/dist/lib/file-explorer/relevant-panes.cjs.js.map +1 -1
- package/dist/lib/file-explorer/relevant-panes.d.ts +7 -0
- package/dist/lib/file-explorer/relevant-panes.d.ts.map +1 -1
- package/dist/lib/file-explorer/relevant-panes.esm.js +11 -2
- package/dist/lib/file-explorer/relevant-panes.esm.js.map +1 -1
- package/dist/lib/messageArea.cjs.js +1 -1
- package/dist/lib/messageArea.cjs.js.map +1 -1
- package/dist/lib/messageArea.esm.js +27 -27
- package/dist/lib/pad.cjs.js +1 -1
- package/dist/lib/pad.cjs.js.map +1 -1
- package/dist/lib/pad.esm.js +15 -15
- package/dist/lib/participation.cjs.js +1 -1
- package/dist/lib/participation.cjs.js.map +1 -1
- package/dist/lib/participation.esm.js +59 -59
- package/dist/lib/preferences.cjs.js +1 -1
- package/dist/lib/preferences.cjs.js.map +1 -1
- package/dist/lib/preferences.esm.js +28 -28
- package/dist/lib/table.cjs.js +3 -3
- package/dist/lib/table.cjs.js.map +1 -1
- package/dist/lib/table.esm.js +123 -123
- package/dist/lib/table.esm.js.map +1 -1
- package/dist/lib/tabs.cjs.js +1 -1
- package/dist/lib/tabs.cjs.js.map +1 -1
- package/dist/lib/tabs.esm.js +16 -16
- package/dist/loader.js +11 -12
- package/dist/login/login.cjs.js +6 -6
- package/dist/login/login.cjs.js.map +1 -1
- package/dist/login/login.esm.js +142 -142
- package/dist/media/media-capture.cjs.js +1 -1
- package/dist/media/media-capture.cjs.js.map +1 -1
- package/dist/media/media-capture.esm.js +6 -6
- package/dist/solid-ui.js +32 -32
- package/dist/solid-ui.min.js +32 -32
- package/dist/solid-ui.min.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 +4 -4
- package/dist/utils/keyHelpers/accessData.cjs.js +1 -1
- package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
- package/dist/utils/keyHelpers/accessData.esm.js +15 -15
- package/dist/utils/label.cjs.js +1 -1
- package/dist/utils/label.cjs.js.map +1 -1
- package/dist/utils/label.esm.js +4 -4
- package/dist/widgets/buttons.cjs.js +12 -12
- package/dist/widgets/buttons.cjs.js.map +1 -1
- package/dist/widgets/buttons.esm.js +179 -179
- package/dist/widgets/error.cjs.js +1 -1
- package/dist/widgets/error.cjs.js.map +1 -1
- package/dist/widgets/error.esm.js +5 -5
- package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js +17 -17
- package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteField.esm.js +23 -23
- package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js +1 -1
- package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompletePicker.esm.js +26 -26
- package/dist/widgets/forms/autocomplete/language.cjs.js +1 -1
- package/dist/widgets/forms/autocomplete/language.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/language.esm.js +9 -9
- package/dist/widgets/forms/autocomplete/publicData.cjs.js +5 -5
- package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/publicData.esm.js +67 -67
- 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 +11 -11
- package/dist/widgets/forms.cjs.js +4 -4
- package/dist/widgets/forms.cjs.js.map +1 -1
- package/dist/widgets/forms.esm.js +561 -561
- package/dist/widgets/forms.esm.js.map +1 -1
- package/dist/widgets/index.cjs.js +1 -1
- package/dist/widgets/index.cjs.js.map +1 -1
- package/dist/widgets/index.esm.js +82 -82
- package/dist/widgets/peoplePicker.cjs.js +2 -2
- package/dist/widgets/peoplePicker.cjs.js.map +1 -1
- package/dist/widgets/peoplePicker.esm.js +82 -82
- package/package.json +3 -3
- package/dist/chunks/chunk.UEBQI7VV-9M5gO7Ew.js.map +0 -1
- package/dist/chunks/components-LxiwG5ae.js.map +0 -1
- package/dist/chunks/custom-element-BW8Ua4c7.js +0 -9
- package/dist/chunks/custom-element-BW8Ua4c7.js.map +0 -1
- package/dist/chunks/decorators-V-B013l9.js +0 -12
- package/dist/chunks/decorators-V-B013l9.js.map +0 -1
- package/dist/chunks/file-explorer-header-B6-Q0i6V.js.map +0 -1
- package/dist/chunks/photo-capture-CAfo7y6-.js.map +0 -1
- package/dist/chunks/solidLogicSingleton.esm-BXyHD7mn.js.map +0 -1
- package/dist/chunks/src-Bhtor0ZC.js.map +0 -1
- package/dist/chunks/widgets-BBEQu0CS.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../_virtual/_rolldown/runtime.cjs.js"),t=require("./
|
|
1
|
+
const e=require("../_virtual/_rolldown/runtime.cjs.js"),t=require("./peoplePicker.cjs.js"),n=require("./dragAndDrop.cjs.js"),r=require("./buttons.cjs.js"),i=require("./buttons/iconLinks.cjs.js"),a=require("./error.cjs.js"),o=require("./forms/fieldParams.cjs.js"),s=require("./forms/fieldFunction.cjs.js"),c=require("./forms/basic.cjs.js"),l=require("./forms.cjs.js"),u=require("./forms/autocomplete/autocompleteBar.cjs.js"),d=require("./forms/autocomplete/autocompletePicker.cjs.js"),f=require("./forms/autocomplete/publicData.cjs.js");var p=e.__exportAll({Group:()=>t.Group,GroupBuilder:()=>t.GroupBuilder,GroupPicker:()=>t.GroupPicker,PeoplePicker:()=>t.PeoplePicker,Person:()=>t.Person,addStyleSheet:()=>r.addStyleSheet,allClassURIs:()=>r.allClassURIs,appendForm:()=>l.appendForm,askName:()=>r.askName,attachmentList:()=>r.attachmentList,basicField:()=>c.basicField,buildCheckboxForm:()=>l.buildCheckboxForm,button:()=>r.button,cancelButton:()=>r.cancelButton,clearElement:()=>r.clearElement,complain:()=>r.complain,continueButton:()=>r.continueButton,createLinkDiv:()=>r.createLinkDiv,createLinkForURI:()=>i.createLinkForURI,createNameDiv:()=>r.createNameDiv,defaultAnnotationStore:()=>r.defaultAnnotationStore,deleteButtonWithCheck:()=>r.deleteButtonWithCheck,editFormButton:()=>l.editFormButton,errorMessageBlock:()=>a.errorMessageBlock,extractLogURI:()=>r.extractLogURI,faviconOrDefault:()=>r.faviconOrDefault,field:()=>s.field,fieldFunction:()=>s.fieldFunction,fieldLabel:()=>c.fieldLabel,fieldParams:()=>o.fieldParams,fieldStore:()=>c.fieldStore,fileUploadButtonDiv:()=>r.fileUploadButtonDiv,findClosest:()=>l.findClosest,findImage:()=>r.findImage,findImageFromURI:()=>r.findImageFromURI,formatDateTime:()=>r.formatDateTime,formsFor:()=>l.formsFor,iconForClass:()=>r.iconForClass,imagesOf:()=>r.imagesOf,index:()=>r.index,isAudio:()=>r.isAudio,isImage:()=>r.isImage,isVideo:()=>r.isVideo,linkButton:()=>r.linkButton,linkIcon:()=>i.linkIcon,makeDescription:()=>l.makeDescription,makeDraggable:()=>n.makeDraggable,makeDropTarget:()=>n.makeDropTarget,makeSelectForCategory:()=>l.makeSelectForCategory,makeSelectForChoice:()=>l.makeSelectForChoice,makeSelectForClassifierOptions:()=>l.makeSelectForClassifierOptions,makeSelectForNestedCategory:()=>l.makeSelectForNestedCategory,makeSelectForOptions:()=>l.makeSelectForOptions,mostSpecificClassURI:()=>s.mostSpecificClassURI,newButton:()=>l.newButton,newThing:()=>l.newThing,openHrefInOutlineMode:()=>r.openHrefInOutlineMode,personTR:()=>r.personTR,promptForNew:()=>l.promptForNew,propertiesForClass:()=>l.propertiesForClass,propertyTriage:()=>r.propertyTriage,publicData:()=>f.publicData_exports,refreshTree:()=>r.refreshTree,removeButton:()=>r.removeButton,renderAsDiv:()=>r.renderAsDiv,renderAsRow:()=>r.renderAsRow,renderAutoComplete:()=>d.renderAutoComplete,renderAutocompleteControl:()=>u.renderAutocompleteControl,renderNameValuePair:()=>c.renderNameValuePair,selectorPanel:()=>r.selectorPanel,selectorPanelRefresh:()=>r.selectorPanelRefresh,setImage:()=>r.setImage,setName:()=>r.setName,setVisible:()=>d.setVisible,shortDate:()=>r.shortDate,shortTime:()=>r.shortTime,sortByLabel:()=>l.sortByLabel,sortBySequence:()=>l.sortBySequence,timestamp:()=>r.timestamp,uploadFiles:()=>n.uploadFiles});exports.Group=t.Group,exports.GroupBuilder=t.GroupBuilder,exports.GroupPicker=t.GroupPicker,exports.PeoplePicker=t.PeoplePicker,exports.Person=t.Person,exports.addStyleSheet=r.addStyleSheet,exports.allClassURIs=r.allClassURIs,exports.appendForm=l.appendForm,exports.askName=r.askName,exports.attachmentList=r.attachmentList,exports.basicField=c.basicField,exports.buildCheckboxForm=l.buildCheckboxForm,exports.button=r.button,exports.cancelButton=r.cancelButton,exports.clearElement=r.clearElement,exports.complain=r.complain,exports.continueButton=r.continueButton,exports.createLinkDiv=r.createLinkDiv,exports.createLinkForURI=i.createLinkForURI,exports.createNameDiv=r.createNameDiv,exports.defaultAnnotationStore=r.defaultAnnotationStore,exports.deleteButtonWithCheck=r.deleteButtonWithCheck,exports.editFormButton=l.editFormButton,exports.errorMessageBlock=a.errorMessageBlock,exports.extractLogURI=r.extractLogURI,exports.faviconOrDefault=r.faviconOrDefault,exports.field=s.field,exports.fieldFunction=s.fieldFunction,exports.fieldLabel=c.fieldLabel,exports.fieldParams=o.fieldParams,exports.fieldStore=c.fieldStore,exports.fileUploadButtonDiv=r.fileUploadButtonDiv,exports.findClosest=l.findClosest,exports.findImage=r.findImage,exports.findImageFromURI=r.findImageFromURI,exports.formatDateTime=r.formatDateTime,exports.formsFor=l.formsFor,exports.iconForClass=r.iconForClass,exports.imagesOf=r.imagesOf,Object.defineProperty(exports,"index",{enumerable:!0,get:function(){return r.index}}),exports.isAudio=r.isAudio,exports.isImage=r.isImage,exports.isVideo=r.isVideo,exports.linkButton=r.linkButton,exports.linkIcon=i.linkIcon,exports.makeDescription=l.makeDescription,exports.makeDraggable=n.makeDraggable,exports.makeDropTarget=n.makeDropTarget,exports.makeSelectForCategory=l.makeSelectForCategory,exports.makeSelectForChoice=l.makeSelectForChoice,exports.makeSelectForClassifierOptions=l.makeSelectForClassifierOptions,exports.makeSelectForNestedCategory=l.makeSelectForNestedCategory,exports.makeSelectForOptions=l.makeSelectForOptions,exports.mostSpecificClassURI=s.mostSpecificClassURI,exports.newButton=l.newButton,exports.newThing=l.newThing,exports.openHrefInOutlineMode=r.openHrefInOutlineMode,exports.personTR=r.personTR,exports.promptForNew=l.promptForNew,exports.propertiesForClass=l.propertiesForClass,exports.propertyTriage=r.propertyTriage,Object.defineProperty(exports,"publicData",{enumerable:!0,get:function(){return f.publicData_exports}}),exports.refreshTree=r.refreshTree,exports.removeButton=r.removeButton,exports.renderAsDiv=r.renderAsDiv,exports.renderAsRow=r.renderAsRow,exports.renderAutoComplete=d.renderAutoComplete,exports.renderAutocompleteControl=u.renderAutocompleteControl,exports.renderNameValuePair=c.renderNameValuePair,exports.selectorPanel=r.selectorPanel,exports.selectorPanelRefresh=r.selectorPanelRefresh,exports.setImage=r.setImage,exports.setName=r.setName,exports.setVisible=d.setVisible,exports.shortDate=r.shortDate,exports.shortTime=r.shortTime,exports.sortByLabel=l.sortByLabel,exports.sortBySequence=l.sortBySequence,exports.timestamp=r.timestamp,exports.uploadFiles=n.uploadFiles,Object.defineProperty(exports,"widgets_exports",{enumerable:!0,get:function(){return p}});
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","names":["require_runtime","
|
|
1
|
+
{"version":3,"file":"index.cjs.js","names":["require_runtime","require_peoplePicker","require_dragAndDrop","require_buttons","require_iconLinks","require_error","require_fieldParams","require_fieldFunction","require_basic","require_forms","require_autocompleteBar","require_autocompletePicker","require_publicData","widgets_exports"],"sources":["../../src/widgets/index.js"],"sourcesContent":["/**\n * General purpose utility functions used in the panes\n * oshani@csail.mit.edu\n *\n * Includes form-oriented widgets timbl@w3.org\n *\n * sign-in sign-up widgets are in signin.js\n *\n * Note... For pointers to posssible text-editing code, see\n * http://stackoverflow.com/questions/6756407/what-contenteditable-editors\n */\n\n// Each widget should ideally live in its own file. In order to break up this\n// monolithic widget index over time, we should add new widgets to the\n// 'lib/widgets/' directory, and re-export them by merging the module namespaces:\n//\n// (In order to avoid name collisions, it is safely assumed that modules don't\n// export widgets with the same name)\n\nexport * from './peoplePicker'\nexport * from './dragAndDrop'\nexport * from './buttons'\nexport * from './buttons/iconLinks'\nexport * from './error'\nexport * from './forms'\n\nexport * from './forms/autocomplete/autocompleteBar'\nexport * from './forms/autocomplete/autocompletePicker'\n\nexport * as publicData from './forms/autocomplete/publicData'\n\n/*\nimport * as peoplePicker from './peoplePicker'\nimport * as dragAndDrop from './dragAndDrop'\nimport * as buttons from './buttons'\nimport * as error from './error'\nimport { forms } from './forms'\n\nconst widgets = Object.assign(\n {},\n buttons,\n peoplePicker,\n dragAndDrop,\n error,\n forms\n)\n\n// export default widgets .. Policy is not to use exports default\nmodule.export = widgets // @@ Apparently no way to do this (yet?) in esm\nconsole.log('widgets exported:', widgets)\n*/\n// ends\n"],"mappings":""}
|
|
@@ -1,99 +1,99 @@
|
|
|
1
1
|
import { __exportAll as ee } from "../_virtual/_rolldown/runtime.esm.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { createLinkForURI as
|
|
6
|
-
import {
|
|
2
|
+
import { Group as e, GroupBuilder as t, GroupPicker as n, PeoplePicker as r, Person as i } from "./peoplePicker.esm.js";
|
|
3
|
+
import { makeDraggable as a, makeDropTarget as o, uploadFiles as s } from "./dragAndDrop.esm.js";
|
|
4
|
+
import { addStyleSheet as c, allClassURIs as l, askName as u, attachmentList as d, button as f, cancelButton as p, clearElement as m, complain as h, continueButton as g, createLinkDiv as _, createNameDiv as v, defaultAnnotationStore as y, deleteButtonWithCheck as b, extractLogURI as x, faviconOrDefault as S, fileUploadButtonDiv as C, findImage as w, findImageFromURI as T, formatDateTime as E, iconForClass as D, imagesOf as O, index as k, isAudio as A, isImage as j, isVideo as M, linkButton as N, openHrefInOutlineMode as P, personTR as F, propertyTriage as I, refreshTree as L, removeButton as R, renderAsDiv as z, renderAsRow as B, selectorPanel as V, selectorPanelRefresh as H, setImage as U, setName as te, shortDate as W, shortTime as G, timestamp as K } from "./buttons.esm.js";
|
|
5
|
+
import { createLinkForURI as q, linkIcon as J } from "./buttons/iconLinks.esm.js";
|
|
6
|
+
import { errorMessageBlock as Y } from "./error.esm.js";
|
|
7
7
|
import { fieldParams as X } from "./forms/fieldParams.esm.js";
|
|
8
8
|
import { field as Z, fieldFunction as Q, mostSpecificClassURI as $ } from "./forms/fieldFunction.esm.js";
|
|
9
9
|
import { basicField as ne, fieldLabel as re, fieldStore as ie, renderNameValuePair as ae } from "./forms/basic.esm.js";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
10
|
+
import { appendForm as oe, buildCheckboxForm as se, editFormButton as ce, findClosest as le, formsFor as ue, makeDescription as de, makeSelectForCategory as fe, makeSelectForChoice as pe, makeSelectForClassifierOptions as me, makeSelectForNestedCategory as he, makeSelectForOptions as ge, newButton as _e, newThing as ve, promptForNew as ye, propertiesForClass as be, sortByLabel as xe, sortBySequence as Se } from "./forms.esm.js";
|
|
11
|
+
import { renderAutocompleteControl as Ce } from "./forms/autocomplete/autocompleteBar.esm.js";
|
|
12
|
+
import { renderAutoComplete as we, setVisible as Te } from "./forms/autocomplete/autocompletePicker.esm.js";
|
|
13
|
+
import { publicData_exports as Ee } from "./forms/autocomplete/publicData.esm.js";
|
|
14
14
|
// src/widgets/index.js
|
|
15
15
|
var De = /* @__PURE__ */ ee({
|
|
16
|
-
Group: () =>
|
|
17
|
-
GroupBuilder: () =>
|
|
18
|
-
GroupPicker: () =>
|
|
19
|
-
PeoplePicker: () =>
|
|
20
|
-
Person: () =>
|
|
21
|
-
addStyleSheet: () =>
|
|
22
|
-
allClassURIs: () =>
|
|
23
|
-
appendForm: () =>
|
|
24
|
-
askName: () =>
|
|
25
|
-
attachmentList: () =>
|
|
16
|
+
Group: () => e,
|
|
17
|
+
GroupBuilder: () => t,
|
|
18
|
+
GroupPicker: () => n,
|
|
19
|
+
PeoplePicker: () => r,
|
|
20
|
+
Person: () => i,
|
|
21
|
+
addStyleSheet: () => c,
|
|
22
|
+
allClassURIs: () => l,
|
|
23
|
+
appendForm: () => oe,
|
|
24
|
+
askName: () => u,
|
|
25
|
+
attachmentList: () => d,
|
|
26
26
|
basicField: () => ne,
|
|
27
|
-
buildCheckboxForm: () =>
|
|
28
|
-
button: () =>
|
|
29
|
-
cancelButton: () =>
|
|
30
|
-
clearElement: () =>
|
|
31
|
-
complain: () =>
|
|
32
|
-
continueButton: () =>
|
|
33
|
-
createLinkDiv: () =>
|
|
34
|
-
createLinkForURI: () =>
|
|
35
|
-
createNameDiv: () =>
|
|
36
|
-
defaultAnnotationStore: () =>
|
|
37
|
-
deleteButtonWithCheck: () =>
|
|
38
|
-
editFormButton: () =>
|
|
39
|
-
errorMessageBlock: () =>
|
|
40
|
-
extractLogURI: () =>
|
|
41
|
-
faviconOrDefault: () =>
|
|
27
|
+
buildCheckboxForm: () => se,
|
|
28
|
+
button: () => f,
|
|
29
|
+
cancelButton: () => p,
|
|
30
|
+
clearElement: () => m,
|
|
31
|
+
complain: () => h,
|
|
32
|
+
continueButton: () => g,
|
|
33
|
+
createLinkDiv: () => _,
|
|
34
|
+
createLinkForURI: () => q,
|
|
35
|
+
createNameDiv: () => v,
|
|
36
|
+
defaultAnnotationStore: () => y,
|
|
37
|
+
deleteButtonWithCheck: () => b,
|
|
38
|
+
editFormButton: () => ce,
|
|
39
|
+
errorMessageBlock: () => Y,
|
|
40
|
+
extractLogURI: () => x,
|
|
41
|
+
faviconOrDefault: () => S,
|
|
42
42
|
field: () => Z,
|
|
43
43
|
fieldFunction: () => Q,
|
|
44
44
|
fieldLabel: () => re,
|
|
45
45
|
fieldParams: () => X,
|
|
46
46
|
fieldStore: () => ie,
|
|
47
|
-
fileUploadButtonDiv: () =>
|
|
48
|
-
findClosest: () =>
|
|
49
|
-
findImage: () =>
|
|
50
|
-
findImageFromURI: () =>
|
|
51
|
-
formatDateTime: () =>
|
|
52
|
-
formsFor: () =>
|
|
53
|
-
iconForClass: () =>
|
|
54
|
-
imagesOf: () =>
|
|
55
|
-
index: () =>
|
|
56
|
-
isAudio: () =>
|
|
57
|
-
isImage: () =>
|
|
58
|
-
isVideo: () =>
|
|
59
|
-
linkButton: () =>
|
|
60
|
-
linkIcon: () =>
|
|
61
|
-
makeDescription: () =>
|
|
62
|
-
makeDraggable: () =>
|
|
63
|
-
makeDropTarget: () =>
|
|
64
|
-
makeSelectForCategory: () =>
|
|
65
|
-
makeSelectForChoice: () =>
|
|
66
|
-
makeSelectForClassifierOptions: () =>
|
|
67
|
-
makeSelectForNestedCategory: () =>
|
|
68
|
-
makeSelectForOptions: () =>
|
|
47
|
+
fileUploadButtonDiv: () => C,
|
|
48
|
+
findClosest: () => le,
|
|
49
|
+
findImage: () => w,
|
|
50
|
+
findImageFromURI: () => T,
|
|
51
|
+
formatDateTime: () => E,
|
|
52
|
+
formsFor: () => ue,
|
|
53
|
+
iconForClass: () => D,
|
|
54
|
+
imagesOf: () => O,
|
|
55
|
+
index: () => k,
|
|
56
|
+
isAudio: () => A,
|
|
57
|
+
isImage: () => j,
|
|
58
|
+
isVideo: () => M,
|
|
59
|
+
linkButton: () => N,
|
|
60
|
+
linkIcon: () => J,
|
|
61
|
+
makeDescription: () => de,
|
|
62
|
+
makeDraggable: () => a,
|
|
63
|
+
makeDropTarget: () => o,
|
|
64
|
+
makeSelectForCategory: () => fe,
|
|
65
|
+
makeSelectForChoice: () => pe,
|
|
66
|
+
makeSelectForClassifierOptions: () => me,
|
|
67
|
+
makeSelectForNestedCategory: () => he,
|
|
68
|
+
makeSelectForOptions: () => ge,
|
|
69
69
|
mostSpecificClassURI: () => $,
|
|
70
|
-
newButton: () =>
|
|
71
|
-
newThing: () =>
|
|
72
|
-
openHrefInOutlineMode: () =>
|
|
73
|
-
personTR: () =>
|
|
74
|
-
promptForNew: () =>
|
|
75
|
-
propertiesForClass: () =>
|
|
76
|
-
propertyTriage: () =>
|
|
77
|
-
publicData: () =>
|
|
78
|
-
refreshTree: () =>
|
|
79
|
-
removeButton: () =>
|
|
80
|
-
renderAsDiv: () =>
|
|
81
|
-
renderAsRow: () =>
|
|
82
|
-
renderAutoComplete: () =>
|
|
83
|
-
renderAutocompleteControl: () =>
|
|
70
|
+
newButton: () => _e,
|
|
71
|
+
newThing: () => ve,
|
|
72
|
+
openHrefInOutlineMode: () => P,
|
|
73
|
+
personTR: () => F,
|
|
74
|
+
promptForNew: () => ye,
|
|
75
|
+
propertiesForClass: () => be,
|
|
76
|
+
propertyTriage: () => I,
|
|
77
|
+
publicData: () => Ee,
|
|
78
|
+
refreshTree: () => L,
|
|
79
|
+
removeButton: () => R,
|
|
80
|
+
renderAsDiv: () => z,
|
|
81
|
+
renderAsRow: () => B,
|
|
82
|
+
renderAutoComplete: () => we,
|
|
83
|
+
renderAutocompleteControl: () => Ce,
|
|
84
84
|
renderNameValuePair: () => ae,
|
|
85
|
-
selectorPanel: () =>
|
|
86
|
-
selectorPanelRefresh: () =>
|
|
87
|
-
setImage: () =>
|
|
88
|
-
setName: () =>
|
|
89
|
-
setVisible: () =>
|
|
90
|
-
shortDate: () =>
|
|
91
|
-
shortTime: () =>
|
|
92
|
-
sortByLabel: () =>
|
|
93
|
-
sortBySequence: () =>
|
|
94
|
-
timestamp: () =>
|
|
95
|
-
uploadFiles: () =>
|
|
85
|
+
selectorPanel: () => V,
|
|
86
|
+
selectorPanelRefresh: () => H,
|
|
87
|
+
setImage: () => U,
|
|
88
|
+
setName: () => te,
|
|
89
|
+
setVisible: () => Te,
|
|
90
|
+
shortDate: () => W,
|
|
91
|
+
shortTime: () => G,
|
|
92
|
+
sortByLabel: () => xe,
|
|
93
|
+
sortBySequence: () => Se,
|
|
94
|
+
timestamp: () => K,
|
|
95
|
+
uploadFiles: () => s
|
|
96
96
|
});
|
|
97
|
-
export {
|
|
97
|
+
export { e as Group, t as GroupBuilder, n as GroupPicker, r as PeoplePicker, i as Person, c as addStyleSheet, l as allClassURIs, oe as appendForm, u as askName, d as attachmentList, ne as basicField, se as buildCheckboxForm, f as button, p as cancelButton, m as clearElement, h as complain, g as continueButton, _ as createLinkDiv, q as createLinkForURI, v as createNameDiv, y as defaultAnnotationStore, b as deleteButtonWithCheck, ce as editFormButton, Y as errorMessageBlock, x as extractLogURI, S as faviconOrDefault, Z as field, Q as fieldFunction, re as fieldLabel, X as fieldParams, ie as fieldStore, C as fileUploadButtonDiv, le as findClosest, w as findImage, T as findImageFromURI, E as formatDateTime, ue as formsFor, D as iconForClass, O as imagesOf, k as index, A as isAudio, j as isImage, M as isVideo, N as linkButton, J as linkIcon, de as makeDescription, a as makeDraggable, o as makeDropTarget, fe as makeSelectForCategory, pe as makeSelectForChoice, me as makeSelectForClassifierOptions, he as makeSelectForNestedCategory, ge as makeSelectForOptions, $ as mostSpecificClassURI, _e as newButton, ve as newThing, P as openHrefInOutlineMode, F as personTR, ye as promptForNew, be as propertiesForClass, I as propertyTriage, Ee as publicData, L as refreshTree, R as removeButton, z as renderAsDiv, B as renderAsRow, we as renderAutoComplete, Ce as renderAutocompleteControl, ae as renderNameValuePair, V as selectorPanel, H as selectorPanelRefresh, U as setImage, te as setName, Te as setVisible, W as shortDate, G as shortTime, xe as sortByLabel, Se as sortBySequence, K as timestamp, s as uploadFiles, De as widgets_exports };
|
|
98
98
|
|
|
99
99
|
//# sourceMappingURL=index.esm.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require("../_virtual/_rolldown/runtime.cjs.js"),t=require("../lib/
|
|
1
|
+
const e=require("../_virtual/_rolldown/runtime.cjs.js"),t=require("../lib/debug.cjs.js"),n=require("./dragAndDrop.cjs.js"),r=require("./error.cjs.js"),i=require("../lib/iconBase.cjs.js"),a=require("../lib/ns.cjs.js");let o=require("rdflib");o=e.__toESM(o);let s=require("solid-logic"),c=require("escape-html");c=e.__toESM(c);let l=require("uuid");var u=s.solidLogicSingleton.store,d=class{constructor(e,t,n,r){this.options=r||{},this.element=e,this.typeIndex=t,this.groupPickedCb=n,this.selectedgroup=this.options.selectedgroup,this.onSelectGroup=this.onSelectGroup.bind(this)}render(){let e=document.createElement(`div`);if(e.style.maxWidth=`350px`,e.style.minHeight=`200px`,e.style.outline=`1px solid black`,e.style.display=`flex`,this.selectedgroup){e.style.flexDirection=`column`;let t=document.createElement(`div`);new p(t,this.selectedgroup).render();let n=document.createElement(`button`);n.textContent=(0,c.default)(`Change group`),n.addEventListener(`click`,e=>{this.selectedgroup=null,this.render()}),e.appendChild(t),e.appendChild(n)}else this.findAddressBook(this.typeIndex).then(({book:t})=>{let n=document.createElement(`button`);n.textContent=(0,c.default)(`Pick an existing group`),n.style.margin=`auto`,n.addEventListener(`click`,n=>{new f(e,t,this.onSelectGroup).render()});let i=document.createElement(`button`);i.textContent=(0,c.default)(`Create a new group`),i.style.margin=`auto`,i.addEventListener(`click`,e=>{this.createNewGroup(t,this.options.defaultNewGroupName).then(({group:e})=>{new m(this.element,t,e,this.onSelectGroup).render()}).catch(e=>{this.element.appendChild(r.errorMessageBlock(document,(0,c.default)(`Error creating a new group. (${e})`)))})}),e.appendChild(n),e.appendChild(i),this.element.innerHTML=``,this.element.appendChild(e)}).catch(e=>{this.element.appendChild(r.errorMessageBlock(document,(0,c.default)(`Could find your groups. (${e})`)))});return this.element.innerHTML=``,this.element.appendChild(e),this}findAddressBook(e){return new Promise((t,n)=>{u.fetcher.nowOrWhenFetched(e,(r,i)=>{if(!r)return n(i);let o=u.any(null,a.default.solid(`forClass`),a.default.vcard(`AddressBook`));if(!o)return n(Error(`no address book registered in the solid type index `+e));let s=u.any(o,a.default.solid(`instance`));if(!s)return n(Error(`incomplete address book registration`));u.fetcher.load(s).then(function(e){return t({book:s})}).catch(function(e){return n(Error(`Could not load address book `+e))})})})}createNewGroup(e,n){let{groupIndex:r,groupContainer:i}=v(e),s=o.sym(`${i.uri}${(0,l.v4)().slice(0,8)}.ttl#this`),c=n||`Untitled Group`,d=[s.doc(),r].map(t=>{let n=o.st(s,a.default.rdf(`type`),a.default.vcard(`Group`),t),i=o.st(s,a.default.vcard(`fn`),c,s.doc(),t),l=o.st(e,a.default.vcard(`includesGroup`),s,t),d=t.equals(r)?[n,i,l]:[n,i];return _(t.uri,{toIns:d}).then(()=>{d.forEach(e=>{u.add(e)})})});return Promise.all(d).then(()=>({group:s})).catch(e=>{throw t.log(`Could not create new group. PATCH failed `+e),Error(`Couldn't create new group. PATCH failed for (${e.xhr?e.xhr.responseURL:``} )`)})}onSelectGroup(e){this.selectedgroup=e,this.groupPickedCb(e),this.render()}},f=class{constructor(e,t,n){this.element=e,this.book=t,this.onSelectGroup=n}render(){return this.loadGroups().then(e=>{let t=document.createElement(`div`);t.style.display=`flex`,t.style.flexDirection=`column`,e.forEach(e=>{let n=document.createElement(`button`);n.addEventListener(`click`,this.handleClickGroup(e)),new p(n,e).render(),t.appendChild(n)}),this.element.innerHTML=``,this.element.appendChild(t)}).catch(e=>{this.element.appendChild(r.errorMessageBlock(document,(0,c.default)(`There was an error loading your groups. (${e})`)))}),this}loadGroups(){return new Promise((e,t)=>{let{groupIndex:n}=v(this.book);u.fetcher.nowOrWhenFetched(n,(n,r)=>n?e(u.each(this.book,a.default.vcard(`includesGroup`))):t(r))})}handleClickGroup(e){return t=>{this.onSelectGroup(e)}}},p=class{constructor(e,t){this.element=e,this.group=t}render(){let e=document.createElement(`div`);return e.textContent=(0,c.default)(g(this.group,a.default.vcard(`fn`),`[${this.group.value}]`)),this.element.innerHTML=``,this.element.appendChild(e),this}},m=class{constructor(e,t,n,r,i){this.element=e,this.book=t,this.group=n,this.onGroupChanged=(e,t,n)=>{i&&i(e,t,n)},this.groupChangedCb=i,this.doneBuildingCb=r}refresh(){}render(){let e=document.createElement(`div`);e.style.maxWidth=`350px`,e.style.minHeight=`200px`,e.style.outline=`1px solid black`,e.style.display=`flex`,e.style.flexDirection=`column`,n.makeDropTarget(e,e=>{e.forEach(e=>{this.add(e).catch(e=>{this.element.appendChild(r.errorMessageBlock(document,(0,c.default)(`Could not add the given WebId. (${e})`)))})})});let t=document.createElement(`input`);t.type=`text`,t.value=g(this.group,a.default.vcard(`fn`),`Untitled Group`),t.addEventListener(`change`,e=>{this.setGroupName(e.target.value).catch(e=>{this.element.appendChild(r.errorMessageBlock(document,`Error changing group name. (${e})`))})});let i=document.createElement(`label`);if(i.textContent=(0,c.default)(`Group Name:`),i.appendChild(t),e.appendChild(i),u.any(this.group,a.default.vcard(`hasMember`)))u.match(this.group,a.default.vcard(`hasMember`)).forEach(t=>{let n=t.object,r=document.createElement(`div`);new h(r,n,this.handleRemove(n)).render(),e.appendChild(r)});else{let t=document.createElement(`p`);t.textContent=c.default`
|
|
2
2
|
To add someone to this group, drag and drop their WebID URL onto the box.
|
|
3
|
-
`,e.appendChild(t)}let o=document.createElement(`button`);return o.textContent=(0,c.default)(`Done`),o.addEventListener(`click`,e=>{this.doneBuildingCb(this.group)}),e.appendChild(o),this.element.innerHTML=``,this.element.appendChild(e),this}add(e){return new Promise((n
|
|
3
|
+
`,e.appendChild(t)}let o=document.createElement(`button`);return o.textContent=(0,c.default)(`Done`),o.addEventListener(`click`,e=>{this.doneBuildingCb(this.group)}),e.appendChild(o),this.element.innerHTML=``,this.element.appendChild(e),this}add(e){return new Promise((t,n)=>{u.fetcher.nowOrWhenFetched(e,(r,i)=>{if(!r)return this.onGroupChanged(i),n(i);let s=o.namedNode(e),c=u.any(s,a.default.rdf(`type`));return!c||!c.equals(a.default.foaf(`Person`))?n(Error(`Only people supported right now. (tried to add something of type ${c.value})`)):t(s)})}).then(e=>{let t=o.st(this.group,a.default.vcard(`hasMember`),e);return u.holdsStatement(t)?e:_(this.group.doc().uri,{toIns:[t]}).then(()=>{t.why=this.group.doc(),u.add(t),this.onGroupChanged(null,`added`,e),this.render()})})}handleRemove(e){return t=>{let n=o.st(this.group,a.default.vcard(`hasMember`),e);return _(this.group.doc().uri,{toDel:[n]}).then(()=>(u.remove(n),this.onGroupChanged(null,`removed`,e),this.render(),!0)).catch(t=>{let n=u.any(e,a.default.foaf(`name`)),r=n&&n.value?`Could not remove ${n.value}. (${t})`:`Could not remove ${e.value}. (${t})`;throw Error(r)})}}setGroupName(e){let{groupIndex:t}=v(this.book),n=[this.group.doc(),t].map(t=>{let n=u.match(this.group,a.default.vcard(`fn`),null,t),r=o.st(this.group,a.default.vcard(`fn`),o.literal(e));return _(t.value,{toDel:n,toIns:[r]}).then(e=>{u.removeStatements(n),r.why=t,u.add(r)})});return Promise.all(n)}},h=class{constructor(e,t,n){this.webIdNode=t,this.element=e,this.handleRemove=n}render(){let e=document.createElement(`div`);e.style.display=`flex`;let t=g(this.webIdNode,a.default.foaf(`img`),i.iconBase+`noun_15059.svg`),n=document.createElement(`img`);n.src=(0,c.default)(t),n.width=`50`,n.height=`50`,n.style.margin=`5px`;let o=g(this.webIdNode,a.default.foaf(`name`),`[${this.webIdNode}]`),s=document.createElement(`span`);s.innerHTML=(0,c.default)(o),s.style.flexGrow=`1`,s.style.margin=`auto 0`;let l=document.createElement(`button`);return l.textContent=`Remove`,l.addEventListener(`click`,e=>this.handleRemove().catch(e=>{this.element.appendChild(r.errorMessageBlock(document,(0,c.default)(`${e}`)))})),l.style.margin=`5px`,e.appendChild(n),e.appendChild(s),e.appendChild(l),this.element.innerHTML=``,this.element.appendChild(e),this}};function g(e,t,n){let r=u.any(e,t);return r?r.value:n}function _(e,{toDel:t,toIns:n}){return new Promise((e,r)=>{u.updater.update(t,n,(t,n,i)=>{if(!n)return r(Error(`PATCH failed for resource <${t}>: ${i}`));e()})})}function v(e){return{groupIndex:u.any(e,a.default.vcard(`groupIndex`)),groupContainer:u.sym(e.dir().uri+`Group/`)}}exports.Group=p,exports.GroupBuilder=m,exports.GroupPicker=f,exports.PeoplePicker=d,exports.Person=h;
|
|
4
4
|
//# sourceMappingURL=peoplePicker.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peoplePicker.cjs.js","names":["solidLogicSingleton","escape","errorMessageBlock","ns","rdf","uuidv4","iconBase","require_runtime","require_ns","require_debug","require_dragAndDrop","require_error","require_iconBase","rdflib","solid_logic","escape_html","uuid","kb","PeoplePicker","options","element","typeIndex","groupPickedCb","container","selectedGroup","Group","changeGroupButton","chooseExistingGroupButton","GroupPicker","book","createNewGroupButton","GroupBuilder","group","errorBody","err","ok","reject","bookRegistration","resolve","errr","indexes","groupContainer","name","defaultNewGroupName","patchPromises","groupIndex","typeStatement","doc","nameStatement","includesGroupStatement","toIns","patch","st","onSelectGroup","groups","groupButton","getWithDefault","groupChangedCb","changeType","agent","doneBuildingCb","dropContainer","uris","uri","groupNameInput","event","groupNameLabel","webIdNode","statement","personDiv","Person","copy","doneBuildingButton","webId","rdfClass","errorMessage","updatePromises","oldNameStatements","namedGraph","newNameStatement","handleRemove","imgSrc","profileImg","nameSpan","removeButton","object","subject","predicate","defaultValue","toDel","success"],"sources":["../../src/widgets/peoplePicker.js"],"sourcesContent":["/**\n *\n * People Picker Pane\n *\n * This pane offers a mechanism for selecting a set of individuals, groups, or\n * organizations to take some action on.\n *\n * Assumptions\n * - Assumes that the user has a type index entry for vcard:AddressBook. @@ bad assuption\n *\n */\nimport escape from 'escape-html'\nimport { v4 as uuidv4 } from 'uuid'\nimport * as rdf from 'rdflib'\nimport * as debug from '../lib/debug'\n\nimport { makeDropTarget } from './dragAndDrop'\nimport { errorMessageBlock } from './error'\nimport { iconBase } from '../lib/iconBase'\nimport ns from '../lib/ns'\nimport { solidLogicSingleton } from 'solid-logic'\n\nconst kb = solidLogicSingleton.store\n\nexport class PeoplePicker {\n constructor (element, typeIndex, groupPickedCb, options) { // @@ can't expect typeindex to be passed\n this.options = options || {}\n this.element = element\n this.typeIndex = typeIndex\n this.groupPickedCb = groupPickedCb\n this.selectedgroup = this.options.selectedgroup // current selected group if any\n this.onSelectGroup = this.onSelectGroup.bind(this)\n }\n\n render () {\n const container = document.createElement('div')\n container.style.maxWidth = '350px'\n container.style.minHeight = '200px'\n container.style.outline = '1px solid black'\n container.style.display = 'flex'\n\n if (this.selectedgroup) {\n container.style.flexDirection = 'column'\n const selectedGroup = document.createElement('div')\n new Group(selectedGroup, this.selectedgroup).render()\n const changeGroupButton = document.createElement('button')\n changeGroupButton.textContent = escape('Change group')\n changeGroupButton.addEventListener('click', _event => {\n this.selectedgroup = null\n this.render()\n })\n container.appendChild(selectedGroup)\n container.appendChild(changeGroupButton)\n } else {\n this.findAddressBook(this.typeIndex)\n .then(({ book }) => {\n const chooseExistingGroupButton = document.createElement('button')\n chooseExistingGroupButton.textContent = escape(\n 'Pick an existing group'\n )\n chooseExistingGroupButton.style.margin = 'auto'\n chooseExistingGroupButton.addEventListener('click', _event => {\n new GroupPicker(container, book, this.onSelectGroup).render()\n })\n\n const createNewGroupButton = document.createElement('button')\n createNewGroupButton.textContent = escape('Create a new group')\n createNewGroupButton.style.margin = 'auto'\n createNewGroupButton.addEventListener('click', _event => {\n this.createNewGroup(book, this.options.defaultNewGroupName)\n .then(({ group }) => {\n new GroupBuilder(\n this.element,\n book,\n group,\n this.onSelectGroup\n ).render()\n })\n .catch(errorBody => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Error creating a new group. (${errorBody})`)\n )\n )\n })\n })\n\n container.appendChild(chooseExistingGroupButton)\n container.appendChild(createNewGroupButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could find your groups. (${err})`)\n )\n )\n })\n }\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n\n findAddressBook (typeIndex) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(typeIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const bookRegistration = kb.any(\n null,\n ns.solid('forClass'),\n ns.vcard('AddressBook')\n )\n if (!bookRegistration) {\n return reject(\n new Error(\n 'no address book registered in the solid type index ' + typeIndex\n )\n )\n }\n const book = kb.any(bookRegistration, ns.solid('instance'))\n if (!book) {\n return reject(new Error('incomplete address book registration'))\n }\n kb.fetcher\n .load(book)\n .then(function (_xhr) {\n return resolve({ book })\n })\n .catch(function (errr) {\n return reject(new Error('Could not load address book ' + errr))\n })\n })\n })\n }\n\n createNewGroup (book, defaultNewGroupName) {\n const { groupIndex, groupContainer } = indexes(book)\n const group = rdf.sym(\n `${groupContainer.uri}${uuidv4().slice(0, 8)}.ttl#this`\n )\n const name = defaultNewGroupName || 'Untitled Group'\n\n // NOTE that order matters here. Unfortunately this type of update is\n // non-atomic in that solid requires us to send two PATCHes, either of which\n // might fail.\n const patchPromises = [group.doc(), groupIndex].map(doc => {\n const typeStatement = rdf.st(group, ns.rdf('type'), ns.vcard('Group'), doc)\n const nameStatement = rdf.st(group, ns.vcard('fn'), name, group.doc(), doc)\n const includesGroupStatement = rdf.st(\n book,\n ns.vcard('includesGroup'),\n group,\n doc\n )\n const toIns = doc.equals(groupIndex)\n ? [typeStatement, nameStatement, includesGroupStatement]\n : [typeStatement, nameStatement]\n return patch(doc.uri, { toIns }).then(() => {\n toIns.forEach(st => {\n kb.add(st)\n })\n })\n })\n return Promise.all(patchPromises)\n .then(() => ({ group }))\n .catch(err => {\n debug.log('Could not create new group. PATCH failed ' + err)\n throw new Error(\n `Couldn't create new group. PATCH failed for (${\n err.xhr ? err.xhr.responseURL : ''\n } )`\n )\n })\n }\n\n onSelectGroup (group) {\n this.selectedgroup = group\n this.groupPickedCb(group)\n this.render()\n }\n}\n\nexport class GroupPicker {\n constructor (element, book, onSelectGroup) {\n this.element = element\n this.book = book\n this.onSelectGroup = onSelectGroup\n }\n\n render () {\n this.loadGroups()\n .then(groups => {\n // render the groups\n const container = document.createElement('div')\n container.style.display = 'flex'\n container.style.flexDirection = 'column'\n groups.forEach(group => {\n const groupButton = document.createElement('button')\n groupButton.addEventListener('click', this.handleClickGroup(group))\n new Group(groupButton, group).render()\n container.appendChild(groupButton)\n })\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`There was an error loading your groups. (${err})`)\n )\n )\n })\n return this\n }\n\n loadGroups () {\n return new Promise((resolve, reject) => {\n const { groupIndex } = indexes(this.book)\n kb.fetcher.nowOrWhenFetched(groupIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const groups = kb.each(this.book, ns.vcard('includesGroup'))\n return resolve(groups)\n })\n })\n }\n\n handleClickGroup (group) {\n return _event => {\n this.onSelectGroup(group)\n }\n }\n}\n\nexport class Group {\n constructor (element, group) {\n this.element = element\n this.group = group\n }\n\n render () {\n const container = document.createElement('div')\n container.textContent = escape(\n // @@@@@ need to escape??\n getWithDefault(this.group, ns.vcard('fn'), `[${this.group.value}]`)\n )\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nexport class GroupBuilder {\n constructor (element, book, group, doneBuildingCb, groupChangedCb) {\n this.element = element\n this.book = book\n this.group = group\n this.onGroupChanged = (err, changeType, agent) => {\n if (groupChangedCb) {\n groupChangedCb(err, changeType, agent)\n }\n }\n this.groupChangedCb = groupChangedCb\n this.doneBuildingCb = doneBuildingCb\n }\n\n refresh () {\n // TODO: implement\n }\n\n render () {\n const dropContainer = document.createElement('div')\n dropContainer.style.maxWidth = '350px'\n dropContainer.style.minHeight = '200px'\n dropContainer.style.outline = '1px solid black'\n dropContainer.style.display = 'flex'\n dropContainer.style.flexDirection = 'column'\n\n makeDropTarget(dropContainer, uris => {\n uris.forEach(uri => {\n this.add(uri).catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could not add the given WebId. (${err})`)\n )\n )\n })\n })\n })\n\n const groupNameInput = document.createElement('input')\n groupNameInput.type = 'text'\n groupNameInput.value = getWithDefault(\n this.group,\n ns.vcard('fn'),\n 'Untitled Group'\n )\n groupNameInput.addEventListener('change', event => {\n this.setGroupName(event.target.value).catch(err => {\n this.element.appendChild(\n errorMessageBlock(document, `Error changing group name. (${err})`)\n )\n })\n })\n const groupNameLabel = document.createElement('label')\n groupNameLabel.textContent = escape('Group Name:')\n groupNameLabel.appendChild(groupNameInput)\n dropContainer.appendChild(groupNameLabel)\n\n if (kb.any(this.group, ns.vcard('hasMember'))) {\n kb.match(this.group, ns.vcard('hasMember')).forEach(statement => {\n const webIdNode = statement.object\n const personDiv = document.createElement('div')\n new Person(personDiv, webIdNode, this.handleRemove(webIdNode)).render()\n dropContainer.appendChild(personDiv)\n })\n } else {\n const copy = document.createElement('p')\n copy.textContent = escape`\n To add someone to this group, drag and drop their WebID URL onto the box.\n `\n dropContainer.appendChild(copy)\n }\n\n const doneBuildingButton = document.createElement('button')\n doneBuildingButton.textContent = escape('Done')\n doneBuildingButton.addEventListener('click', _event => {\n this.doneBuildingCb(this.group)\n })\n dropContainer.appendChild(doneBuildingButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(dropContainer)\n return this\n }\n\n add (webId) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(webId, (ok, err) => {\n if (!ok) {\n this.onGroupChanged(err)\n return reject(err)\n }\n // make sure it's a valid person, group, or entity (for now just handle\n // webId)\n const webIdNode = rdf.namedNode(webId)\n const rdfClass = kb.any(webIdNode, ns.rdf('type'))\n if (!rdfClass || !rdfClass.equals(ns.foaf('Person'))) {\n return reject(\n new Error(\n `Only people supported right now. (tried to add something of type ${rdfClass.value})`\n )\n )\n }\n return resolve(webIdNode)\n })\n }).then(webIdNode => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n if (kb.holdsStatement(statement)) {\n return webIdNode\n }\n return patch(this.group.doc().uri, { toIns: [statement] }).then(() => {\n statement.why = this.group.doc()\n kb.add(statement)\n this.onGroupChanged(null, 'added', webIdNode)\n this.render()\n })\n })\n }\n\n handleRemove (webIdNode) {\n return _event => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n return patch(this.group.doc().uri, { toDel: [statement] })\n .then(() => {\n kb.remove(statement)\n this.onGroupChanged(null, 'removed', webIdNode)\n this.render()\n return true\n })\n .catch(err => {\n const name = kb.any(webIdNode, ns.foaf('name'))\n const errorMessage =\n name && name.value\n ? `Could not remove ${name.value}. (${err})`\n : `Could not remove ${webIdNode.value}. (${err})`\n throw new Error(errorMessage)\n })\n }\n }\n\n setGroupName (name) {\n const { groupIndex } = indexes(this.book)\n const updatePromises = [this.group.doc(), groupIndex].map(namedGraph => {\n const oldNameStatements = kb.match(\n this.group,\n ns.vcard('fn'),\n null,\n namedGraph\n )\n const newNameStatement = rdf.st(\n this.group,\n ns.vcard('fn'),\n rdf.literal(name)\n )\n return patch(namedGraph.value, {\n toDel: oldNameStatements,\n toIns: [newNameStatement]\n }).then(_solidResponse => {\n kb.removeStatements(oldNameStatements)\n newNameStatement.why = namedGraph\n kb.add(newNameStatement)\n })\n })\n return Promise.all(updatePromises)\n }\n}\n// @ignore exporting this only for the unit test\n// @@ TODO maybe I should move this down at end, but for\n// now I will leave it where it was\nexport class Person {\n constructor (element, webIdNode, handleRemove) {\n this.webIdNode = webIdNode\n this.element = element\n this.handleRemove = handleRemove\n }\n\n render () {\n const container = document.createElement('div')\n container.style.display = 'flex'\n\n // TODO: take a look at UI.widgets.setName\n const imgSrc = getWithDefault(\n this.webIdNode,\n ns.foaf('img'),\n iconBase + 'noun_15059.svg'\n )\n const profileImg = document.createElement('img')\n profileImg.src = escape(imgSrc)\n profileImg.width = '50'\n profileImg.height = '50'\n profileImg.style.margin = '5px'\n\n // TODO: take a look at UI.widgets.setImage\n const name = getWithDefault(\n this.webIdNode,\n ns.foaf('name'),\n `[${this.webIdNode}]`\n )\n const nameSpan = document.createElement('span')\n nameSpan.innerHTML = escape(name)\n nameSpan.style.flexGrow = '1'\n nameSpan.style.margin = 'auto 0'\n\n const removeButton = document.createElement('button')\n removeButton.textContent = 'Remove'\n removeButton.addEventListener('click', _event =>\n this.handleRemove().catch(err => {\n this.element.appendChild(errorMessageBlock(document, escape(`${err}`)))\n })\n )\n removeButton.style.margin = '5px'\n\n container.appendChild(profileImg)\n container.appendChild(nameSpan)\n container.appendChild(removeButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nfunction getWithDefault (subject, predicate, defaultValue) {\n const object = kb.any(subject, predicate)\n return object ? object.value : defaultValue\n}\n\nfunction patch (url, { toDel, toIns }) {\n return new Promise((resolve, reject) => {\n kb.updater.update(toDel, toIns, (uri, success, errorMessage) => {\n if (!success) {\n return reject(\n new Error(`PATCH failed for resource <${uri}>: ${errorMessage}`)\n )\n }\n resolve()\n })\n })\n // return webClient.patch(url, toDel, toIns)\n // .then(solidResponse => {\n // const status = solidResponse.xhr.status\n // if (status < 200 || status >= 400) {\n // const err = new Error(`PATCH failed for resource <${solidResponse.url}>`)\n // err.solidResponse = solidResponse\n // throw err\n // }\n // })\n}\n\nfunction indexes (book) {\n return {\n // bookIndex: book,\n groupIndex: kb.any(book, ns.vcard('groupIndex')),\n groupContainer: kb.sym(book.dir().uri + 'Group/')\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"peoplePicker.cjs.js","names":["solidLogicSingleton","escape","errorMessageBlock","ns","rdf","uuidv4","iconBase","require_runtime","require_debug","require_dragAndDrop","require_error","require_iconBase","require_ns","rdflib","solid_logic","escape_html","uuid","kb","PeoplePicker","options","element","typeIndex","groupPickedCb","container","selectedGroup","Group","changeGroupButton","chooseExistingGroupButton","GroupPicker","book","createNewGroupButton","GroupBuilder","group","errorBody","err","ok","reject","bookRegistration","resolve","errr","indexes","groupContainer","name","defaultNewGroupName","patchPromises","groupIndex","typeStatement","doc","nameStatement","includesGroupStatement","toIns","patch","st","onSelectGroup","groups","groupButton","getWithDefault","groupChangedCb","changeType","agent","doneBuildingCb","dropContainer","uris","uri","groupNameInput","event","groupNameLabel","webIdNode","statement","personDiv","Person","copy","doneBuildingButton","webId","rdfClass","errorMessage","updatePromises","oldNameStatements","namedGraph","newNameStatement","handleRemove","imgSrc","profileImg","nameSpan","removeButton","object","subject","predicate","defaultValue","toDel","success"],"sources":["../../src/widgets/peoplePicker.js"],"sourcesContent":["/**\n *\n * People Picker Pane\n *\n * This pane offers a mechanism for selecting a set of individuals, groups, or\n * organizations to take some action on.\n *\n * Assumptions\n * - Assumes that the user has a type index entry for vcard:AddressBook. @@ bad assuption\n *\n */\nimport escape from 'escape-html'\nimport { v4 as uuidv4 } from 'uuid'\nimport * as rdf from 'rdflib'\nimport * as debug from '../lib/debug'\n\nimport { makeDropTarget } from './dragAndDrop'\nimport { errorMessageBlock } from './error'\nimport { iconBase } from '../lib/iconBase'\nimport ns from '../lib/ns'\nimport { solidLogicSingleton } from 'solid-logic'\n\nconst kb = solidLogicSingleton.store\n\nexport class PeoplePicker {\n constructor (element, typeIndex, groupPickedCb, options) { // @@ can't expect typeindex to be passed\n this.options = options || {}\n this.element = element\n this.typeIndex = typeIndex\n this.groupPickedCb = groupPickedCb\n this.selectedgroup = this.options.selectedgroup // current selected group if any\n this.onSelectGroup = this.onSelectGroup.bind(this)\n }\n\n render () {\n const container = document.createElement('div')\n container.style.maxWidth = '350px'\n container.style.minHeight = '200px'\n container.style.outline = '1px solid black'\n container.style.display = 'flex'\n\n if (this.selectedgroup) {\n container.style.flexDirection = 'column'\n const selectedGroup = document.createElement('div')\n new Group(selectedGroup, this.selectedgroup).render()\n const changeGroupButton = document.createElement('button')\n changeGroupButton.textContent = escape('Change group')\n changeGroupButton.addEventListener('click', _event => {\n this.selectedgroup = null\n this.render()\n })\n container.appendChild(selectedGroup)\n container.appendChild(changeGroupButton)\n } else {\n this.findAddressBook(this.typeIndex)\n .then(({ book }) => {\n const chooseExistingGroupButton = document.createElement('button')\n chooseExistingGroupButton.textContent = escape(\n 'Pick an existing group'\n )\n chooseExistingGroupButton.style.margin = 'auto'\n chooseExistingGroupButton.addEventListener('click', _event => {\n new GroupPicker(container, book, this.onSelectGroup).render()\n })\n\n const createNewGroupButton = document.createElement('button')\n createNewGroupButton.textContent = escape('Create a new group')\n createNewGroupButton.style.margin = 'auto'\n createNewGroupButton.addEventListener('click', _event => {\n this.createNewGroup(book, this.options.defaultNewGroupName)\n .then(({ group }) => {\n new GroupBuilder(\n this.element,\n book,\n group,\n this.onSelectGroup\n ).render()\n })\n .catch(errorBody => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Error creating a new group. (${errorBody})`)\n )\n )\n })\n })\n\n container.appendChild(chooseExistingGroupButton)\n container.appendChild(createNewGroupButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could find your groups. (${err})`)\n )\n )\n })\n }\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n\n findAddressBook (typeIndex) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(typeIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const bookRegistration = kb.any(\n null,\n ns.solid('forClass'),\n ns.vcard('AddressBook')\n )\n if (!bookRegistration) {\n return reject(\n new Error(\n 'no address book registered in the solid type index ' + typeIndex\n )\n )\n }\n const book = kb.any(bookRegistration, ns.solid('instance'))\n if (!book) {\n return reject(new Error('incomplete address book registration'))\n }\n kb.fetcher\n .load(book)\n .then(function (_xhr) {\n return resolve({ book })\n })\n .catch(function (errr) {\n return reject(new Error('Could not load address book ' + errr))\n })\n })\n })\n }\n\n createNewGroup (book, defaultNewGroupName) {\n const { groupIndex, groupContainer } = indexes(book)\n const group = rdf.sym(\n `${groupContainer.uri}${uuidv4().slice(0, 8)}.ttl#this`\n )\n const name = defaultNewGroupName || 'Untitled Group'\n\n // NOTE that order matters here. Unfortunately this type of update is\n // non-atomic in that solid requires us to send two PATCHes, either of which\n // might fail.\n const patchPromises = [group.doc(), groupIndex].map(doc => {\n const typeStatement = rdf.st(group, ns.rdf('type'), ns.vcard('Group'), doc)\n const nameStatement = rdf.st(group, ns.vcard('fn'), name, group.doc(), doc)\n const includesGroupStatement = rdf.st(\n book,\n ns.vcard('includesGroup'),\n group,\n doc\n )\n const toIns = doc.equals(groupIndex)\n ? [typeStatement, nameStatement, includesGroupStatement]\n : [typeStatement, nameStatement]\n return patch(doc.uri, { toIns }).then(() => {\n toIns.forEach(st => {\n kb.add(st)\n })\n })\n })\n return Promise.all(patchPromises)\n .then(() => ({ group }))\n .catch(err => {\n debug.log('Could not create new group. PATCH failed ' + err)\n throw new Error(\n `Couldn't create new group. PATCH failed for (${\n err.xhr ? err.xhr.responseURL : ''\n } )`\n )\n })\n }\n\n onSelectGroup (group) {\n this.selectedgroup = group\n this.groupPickedCb(group)\n this.render()\n }\n}\n\nexport class GroupPicker {\n constructor (element, book, onSelectGroup) {\n this.element = element\n this.book = book\n this.onSelectGroup = onSelectGroup\n }\n\n render () {\n this.loadGroups()\n .then(groups => {\n // render the groups\n const container = document.createElement('div')\n container.style.display = 'flex'\n container.style.flexDirection = 'column'\n groups.forEach(group => {\n const groupButton = document.createElement('button')\n groupButton.addEventListener('click', this.handleClickGroup(group))\n new Group(groupButton, group).render()\n container.appendChild(groupButton)\n })\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`There was an error loading your groups. (${err})`)\n )\n )\n })\n return this\n }\n\n loadGroups () {\n return new Promise((resolve, reject) => {\n const { groupIndex } = indexes(this.book)\n kb.fetcher.nowOrWhenFetched(groupIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const groups = kb.each(this.book, ns.vcard('includesGroup'))\n return resolve(groups)\n })\n })\n }\n\n handleClickGroup (group) {\n return _event => {\n this.onSelectGroup(group)\n }\n }\n}\n\nexport class Group {\n constructor (element, group) {\n this.element = element\n this.group = group\n }\n\n render () {\n const container = document.createElement('div')\n container.textContent = escape(\n // @@@@@ need to escape??\n getWithDefault(this.group, ns.vcard('fn'), `[${this.group.value}]`)\n )\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nexport class GroupBuilder {\n constructor (element, book, group, doneBuildingCb, groupChangedCb) {\n this.element = element\n this.book = book\n this.group = group\n this.onGroupChanged = (err, changeType, agent) => {\n if (groupChangedCb) {\n groupChangedCb(err, changeType, agent)\n }\n }\n this.groupChangedCb = groupChangedCb\n this.doneBuildingCb = doneBuildingCb\n }\n\n refresh () {\n // TODO: implement\n }\n\n render () {\n const dropContainer = document.createElement('div')\n dropContainer.style.maxWidth = '350px'\n dropContainer.style.minHeight = '200px'\n dropContainer.style.outline = '1px solid black'\n dropContainer.style.display = 'flex'\n dropContainer.style.flexDirection = 'column'\n\n makeDropTarget(dropContainer, uris => {\n uris.forEach(uri => {\n this.add(uri).catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could not add the given WebId. (${err})`)\n )\n )\n })\n })\n })\n\n const groupNameInput = document.createElement('input')\n groupNameInput.type = 'text'\n groupNameInput.value = getWithDefault(\n this.group,\n ns.vcard('fn'),\n 'Untitled Group'\n )\n groupNameInput.addEventListener('change', event => {\n this.setGroupName(event.target.value).catch(err => {\n this.element.appendChild(\n errorMessageBlock(document, `Error changing group name. (${err})`)\n )\n })\n })\n const groupNameLabel = document.createElement('label')\n groupNameLabel.textContent = escape('Group Name:')\n groupNameLabel.appendChild(groupNameInput)\n dropContainer.appendChild(groupNameLabel)\n\n if (kb.any(this.group, ns.vcard('hasMember'))) {\n kb.match(this.group, ns.vcard('hasMember')).forEach(statement => {\n const webIdNode = statement.object\n const personDiv = document.createElement('div')\n new Person(personDiv, webIdNode, this.handleRemove(webIdNode)).render()\n dropContainer.appendChild(personDiv)\n })\n } else {\n const copy = document.createElement('p')\n copy.textContent = escape`\n To add someone to this group, drag and drop their WebID URL onto the box.\n `\n dropContainer.appendChild(copy)\n }\n\n const doneBuildingButton = document.createElement('button')\n doneBuildingButton.textContent = escape('Done')\n doneBuildingButton.addEventListener('click', _event => {\n this.doneBuildingCb(this.group)\n })\n dropContainer.appendChild(doneBuildingButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(dropContainer)\n return this\n }\n\n add (webId) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(webId, (ok, err) => {\n if (!ok) {\n this.onGroupChanged(err)\n return reject(err)\n }\n // make sure it's a valid person, group, or entity (for now just handle\n // webId)\n const webIdNode = rdf.namedNode(webId)\n const rdfClass = kb.any(webIdNode, ns.rdf('type'))\n if (!rdfClass || !rdfClass.equals(ns.foaf('Person'))) {\n return reject(\n new Error(\n `Only people supported right now. (tried to add something of type ${rdfClass.value})`\n )\n )\n }\n return resolve(webIdNode)\n })\n }).then(webIdNode => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n if (kb.holdsStatement(statement)) {\n return webIdNode\n }\n return patch(this.group.doc().uri, { toIns: [statement] }).then(() => {\n statement.why = this.group.doc()\n kb.add(statement)\n this.onGroupChanged(null, 'added', webIdNode)\n this.render()\n })\n })\n }\n\n handleRemove (webIdNode) {\n return _event => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n return patch(this.group.doc().uri, { toDel: [statement] })\n .then(() => {\n kb.remove(statement)\n this.onGroupChanged(null, 'removed', webIdNode)\n this.render()\n return true\n })\n .catch(err => {\n const name = kb.any(webIdNode, ns.foaf('name'))\n const errorMessage =\n name && name.value\n ? `Could not remove ${name.value}. (${err})`\n : `Could not remove ${webIdNode.value}. (${err})`\n throw new Error(errorMessage)\n })\n }\n }\n\n setGroupName (name) {\n const { groupIndex } = indexes(this.book)\n const updatePromises = [this.group.doc(), groupIndex].map(namedGraph => {\n const oldNameStatements = kb.match(\n this.group,\n ns.vcard('fn'),\n null,\n namedGraph\n )\n const newNameStatement = rdf.st(\n this.group,\n ns.vcard('fn'),\n rdf.literal(name)\n )\n return patch(namedGraph.value, {\n toDel: oldNameStatements,\n toIns: [newNameStatement]\n }).then(_solidResponse => {\n kb.removeStatements(oldNameStatements)\n newNameStatement.why = namedGraph\n kb.add(newNameStatement)\n })\n })\n return Promise.all(updatePromises)\n }\n}\n// @ignore exporting this only for the unit test\n// @@ TODO maybe I should move this down at end, but for\n// now I will leave it where it was\nexport class Person {\n constructor (element, webIdNode, handleRemove) {\n this.webIdNode = webIdNode\n this.element = element\n this.handleRemove = handleRemove\n }\n\n render () {\n const container = document.createElement('div')\n container.style.display = 'flex'\n\n // TODO: take a look at UI.widgets.setName\n const imgSrc = getWithDefault(\n this.webIdNode,\n ns.foaf('img'),\n iconBase + 'noun_15059.svg'\n )\n const profileImg = document.createElement('img')\n profileImg.src = escape(imgSrc)\n profileImg.width = '50'\n profileImg.height = '50'\n profileImg.style.margin = '5px'\n\n // TODO: take a look at UI.widgets.setImage\n const name = getWithDefault(\n this.webIdNode,\n ns.foaf('name'),\n `[${this.webIdNode}]`\n )\n const nameSpan = document.createElement('span')\n nameSpan.innerHTML = escape(name)\n nameSpan.style.flexGrow = '1'\n nameSpan.style.margin = 'auto 0'\n\n const removeButton = document.createElement('button')\n removeButton.textContent = 'Remove'\n removeButton.addEventListener('click', _event =>\n this.handleRemove().catch(err => {\n this.element.appendChild(errorMessageBlock(document, escape(`${err}`)))\n })\n )\n removeButton.style.margin = '5px'\n\n container.appendChild(profileImg)\n container.appendChild(nameSpan)\n container.appendChild(removeButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nfunction getWithDefault (subject, predicate, defaultValue) {\n const object = kb.any(subject, predicate)\n return object ? object.value : defaultValue\n}\n\nfunction patch (url, { toDel, toIns }) {\n return new Promise((resolve, reject) => {\n kb.updater.update(toDel, toIns, (uri, success, errorMessage) => {\n if (!success) {\n return reject(\n new Error(`PATCH failed for resource <${uri}>: ${errorMessage}`)\n )\n }\n resolve()\n })\n })\n // return webClient.patch(url, toDel, toIns)\n // .then(solidResponse => {\n // const status = solidResponse.xhr.status\n // if (status < 200 || status >= 400) {\n // const err = new Error(`PATCH failed for resource <${solidResponse.url}>`)\n // err.solidResponse = solidResponse\n // throw err\n // }\n // })\n}\n\nfunction indexes (book) {\n return {\n // bookIndex: book,\n groupIndex: kb.any(book, ns.vcard('groupIndex')),\n groupContainer: kb.sym(book.dir().uri + 'Group/')\n }\n}\n"],"mappings":"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"}
|