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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-CjYxsW7j.js","names":["TERROR","TWARN","TMESG","TSUCCESS","TINFO","TDEBUG","TALL","LogLevel","_level","_ascending","_dom","document","_window","window","log","str","type","typestr","logArea","getElementById","addendum","createElement","setAttribute","now","Date","innerHTML","getHours","getMinutes","getSeconds","escapeForXML","insertBefore","firstChild","appendChild","console","msg","message","warn","debug","info","error","success","alert","clear","setLevel","level","dumpHTML","body","logAscending","logDescending","replace","setInternals","log","store","ns","rdf","UI","label","thing","initialCap","doCap","slice","toUpperCase","cleanUp","result","i","length","toLowerCase","getWellKnownLabel","value","termType","elements","s","uri","toString","split","map","decodeURIComponent","join","_e","hex","indexOf","String","fromCharCode","parseInt","hash","slash","lastIndexOf","suffix","any","ui","link","vcard","foaf","dct","dc","rss","contact","sym","cal","as","schema","rdfs","log","store","ns","rdf","label","UI","addLoadEvent","AJARImage","ancestor","beep","clearVariableNames","emptyNode","escapeForXML","findPos","genUuid","getAbout","getEyeFocus","getTarget","getTerm","hashColor","include","labelForXML","labelWithOntology","newVariableName","ontologyLabel","predicateLabel","predicateLabelForXML","predParentOf","RDFComparePredicateObject","RDFComparePredicateSubject","shortName","stackString","syncTableToArray","syncTableToArrayReOrdered","nextVariable","audioContext","AudioContext","window","webkitAudioContext","ContextClass","ctx","duration","frequency","type","finishedCallback","osc","createOscillator","value","connect","destination","start","stop","who","uri","hash","x","split","reduce","a","b","charCodeAt","toString","replace","c","r","Math","random","v","table","things","createNewRow","updateExistingRow","foundOne","row","i","children","length","trashMe","g","thing","subject","sameTerm","replacement","parentNode","replaceChild","newRow","appendChild","ele","insertBefore","removeChild","elementMap","toNT","existingRow","before","e","str","stack","lines","toPrint","line","indexOf","charAt","chunks","push","node","nodes","childNodes","len","target","event","srcElement","nodeType","tagName","level","undefined","kb","aa","getAttribute","fromNT","debug","statementTr","st","AJAR_statement","className","predicate","AJAR_inverse","object","nextSibling","document","linkstr","lnk","createElement","setAttribute","func","oldonload","onload","obj","myDocument","ownerDocument","DocBox","documentElement","getBoundingClientRect","box","left","top","element","instantly","isBottom","myWindow","elementPosY","appContext","SolidAppContext","scrollDiff","scroll","totalScroll","scrollY","scrollBy","clientHeight","innerHeight","id","setInterval","scrollAmount","times","clearInterval","src","alt","tt","doc","image","addEventListener","clipboardData","setData","preventDefault","p","slice","namespaces","prefixes","pok","canUse","pp","lastIndexOf","slash","prefixchars","term","s","part","initialCap","t","findTypeURIs","rdfs","inverse","lab","ip","any","owl","self","other","compareTerm","n","previousSibling","nodeName","error","highlightColor","formBorderColor","formHeadingColor","lowProfileLinkColor","formFieldNameBoxWidth","mediaModuleCanvasWidth","mediaModuleCanvasHeight","textInputSize","tabBorderRadius","textInputBackgroundColor","textInputBackgroundColorUneditable","textInputColor","textInputColorPending","defaultErrorBackgroundColor","participationDefaultBackground","basicMaxLength","styleConstants","style","checkboxStyle","checkboxInputStyle","fieldLabelStyle","formSelectStyle","textInputStyle","textInputStyleUneditable","buttonStyle","commentStyle","iconStyle","smallButtonStyle","classIconStyle","confirmPopupStyle","messageBodyStyle","pendingeditModifier","personaBarStyle","searchInputStyle","autocompleteRowStyle","signInAndUpButtonStyle","headerBannerLoginInput","signUpBackground","signInBackground","heading1Style","heading2Style","heading3Style","heading4Style","formHeadingStyle","formTextInput","formGroupStyle","formBorderColor","formFieldLabelStyle","lowProfileLinkColor","formFieldNameBoxStyle","formFieldNameBoxWidth","multilineTextInputStyle","renderAsDivStyle","imageDivStyle","linkDivStyle","aclControlBoxContainer","aclControlBoxHeader","aclControlBoxStatus","aclControlBoxStatusRevealed","aclGroupContent","accessGroupList","accessGroupListItem","defaultsController","defaultsControllerNotice","bigButton","group","group1","group2","group3","group5","group9","group13","trustedAppAddApplicationsTable","trustedAppCancelButton","trustedAppControllerI","temporaryStatusInit","temporaryStatusEnd","headerUserMenuLink","headerUserMenuLinkHover","headerUserMenuTrigger","headerUserMenuTriggerImg","headerUserMenuButton","headerUserMenuButtonHover","headerUserMenuList","headerUserMenuListDisplay","headerUserMenuNavigationMenu","headerUserMenuNavigationMenuNotDisplayed","headerUserMenuListItem","headerUserMenuPhoto","headerBanner","headerBannerLink","headerBannerRightMenu","headerBannerLogin","allChildrenVisible","headerBannerUserMenu","headerBannerHelpMenu","headerBannerIcon","footer","primaryButton","primaryButtonHover","primaryButtonNoBorder","primaryButtonNoBorderHover","secondaryButton","secondaryButtonHover","secondaryButtonNoBorder","secondaryButtonNoBorderHover","controlStyle","mediaModuleCanvasWidth","mediaModuleCanvasHeight","dragEvent","dropEvent","restoreStyle","errorCancelButton","errorMessageBlockStyle","notepadStyle","upstreamStatus","downstreamStatus","baseStyle","headingCore","headingStyle","participantsStyle","participantsBlock","personTableTD","tabsNavElement","tabsRootElement","tabsMainElement","tabContainer","makeNewSlot","ellipsis","setStyle","ele","styleName"],"sources":["../../src/lib/log.ts","../../src/utils/label.ts","../../src/utils/index.js","../../src/lib/styleConstants.js","../../src/lib/style.js"],"sourcesContent":["// /////////////////////// Logging\n//\n// bitmask levels\n// const TNONE = 0\n/** @internal */\nconst TERROR = 1\n/** @internal */\nconst TWARN = 2\n/** @internal */\nconst TMESG = 4\n/** @internal */\nconst TSUCCESS = 8\n/** @internal */\nconst TINFO = 16\n/** @internal */\nconst TDEBUG = 32\n/** @internal */\nconst TALL = 63\n\n/** @internal */\nexport enum LogLevel {\n Error = TERROR,\n Warning = TWARN,\n Message = TMESG,\n Success = TSUCCESS,\n Info = TINFO,\n Debug = TDEBUG,\n All = TALL\n}\n\n/** @internal */\nlet _level: number = TERROR + TWARN + TMESG\n/** @internal */\nlet _ascending: boolean = false\n/** @internal */\nlet _dom: HTMLDocument = document // must be able to override for tests\n/** @internal */\nlet _window: Window = window // must be able to override for tests\n\n/** @internal */\nfunction log (str: string, type: number = TMESG, typestr: string = 'mesg') {\n if (!(_level & type)) return // bitmask\n\n if (typeof _dom !== 'undefined') {\n const logArea = _dom.getElementById('status')\n if (!logArea) return\n\n const addendum = _dom.createElement('span')\n addendum.setAttribute('class', typestr)\n const now = new Date()\n addendum.innerHTML = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()} [${typestr}] ${escapeForXML(str)}<br/>`\n if (_ascending) {\n logArea.insertBefore(addendum, logArea.firstChild)\n } else {\n logArea.appendChild(addendum)\n }\n } else if (typeof console !== 'undefined') {\n console.log(str)\n }\n}\n\n/**\n * Adds a message to the element with id \"status\". The messages are prepended with\n * time and type of message, in this case [mesg].\n */\nexport function msg (message: string) {\n log(message)\n}\n\n/**\n * Adds a warning message to the element with id \"status\". The messages are\n * prepended with time and type of message, in this case [warn].\n */\nexport function warn (message: string): void {\n log(message, TWARN, 'warn')\n}\n\n/**\n * Adds a debugging message to the element with id \"status\". The messages are\n * prepended with time and type of message, in this case [dbug].\n */\nexport function debug (message: string): void {\n log(message, TDEBUG, 'dbug')\n}\n\n/**\n * Adds a info message to the element with id \"status\". The messages are\n * prepended with time and type of message, in this case [info].\n */\nexport function info (message: string): void {\n log(message, TINFO, 'info')\n}\n\n/**\n * Adds a error to the element with id \"status\". The messages are\n * prepended with time and type of message, in this case [eror].\n */\nexport function error (message: string): void {\n log(message, TERROR, 'eror')\n}\n\n/**\n * Adds a success message to the element with id \"status\". The messages are\n * prepended with time and type of message, in this case [good].\n */\nexport function success (message: string): void {\n log(message, TSUCCESS, 'good')\n}\n\n/**\n * Uses the global alert to send an alert. If global alert is not available, it\n * will output the message using the method [[warning]]s.\n */\nexport function alert (message: string): void {\n if (_window && typeof _window.alert !== 'undefined') {\n _window.alert(message)\n } else {\n warn(message)\n }\n}\n\n/**\n * Will clear the content of the element with id \"status\".\n */\nexport function clear (): void {\n const logArea = _dom?.getElementById('status')\n if (!logArea) return\n logArea.innerHTML = ''\n}\n\n/**\n * Lets you configure which types of messages will be shown. The module uses\n * [bitmask](https://en.wikipedia.org/wiki/Mask_(computing)) to filter which\n * types of messages should be shown. E.g. if you only want warning messages\n * to be shown, pass 2 to the function, if you want warning and success to be\n * shown, pass 10 (2+8). By passing the sum of all, 63, you'll show all\n * types of messages.\n *\n * - Error: 1\n * - Warning: 2\n * - Message: 4\n * - Success: 8\n * - Info: 16\n * - Debug: 32\n */\nexport function setLevel (level: number): void {\n _level = TALL\n debug('Log level is now ' + level)\n _level = level\n}\n\n/**\n * Will dump the current HTML using the [[debug]] method.\n */\nexport function dumpHTML (): void {\n if (!_dom) return\n const level = _level\n _level = TALL\n debug(_dom?.body?.innerHTML || '')\n _level = level\n}\n\n/**\n * Will start prepending messages the list of log messages.\n */\nexport function logAscending () {\n _ascending = true\n}\n\n/**\n * Will start appending messages the list of log messages. (This is default\n * behavior.)\n */\nexport function logDescending () {\n _ascending = false\n}\n\n/** @internal */\nexport function escapeForXML (str: string): string {\n // can be replaced with function utils module when migrating\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n}\n\n/** @internal */\nexport function setInternals (window, document) {\n _window = window\n _dom = document\n}\n","import * as log from '../lib/log'\nimport { store } from 'solid-logic'\nimport ns from '../lib/ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\n\nconst UI = { log, ns, rdf }\n\n// This ubiquitous function returns the best label for a thing\n//\n// The hacks in this code make a major difference to the usability\nexport function label (thing, initialCap = false): string {\n function doCap (label: string) {\n if (initialCap) {\n return label.slice(0, 1).toUpperCase() + label.slice(1)\n }\n return label\n }\n function cleanUp (label: string) {\n let result = ''\n if (label.slice(-1) === '/') label = label.slice(0, -1) // chop trailing slash\n for (let i = 0; i < label.length; i++) {\n if (label[i] === '_' || label[i] === '-') {\n result += ' '\n continue\n }\n result += label[i]\n if (\n i + 1 < label.length &&\n label[i].toUpperCase() !== label[i] &&\n label[i + 1].toLowerCase() !== label[i + 1]\n ) {\n result += ' '\n }\n }\n if (result.slice(0, 4) === 'has ') result = result.slice(4)\n return doCap(result)\n }\n\n const label = getWellKnownLabel(thing)\n\n if (label) {\n return doCap(label.value)\n }\n\n // Default to label just generated from the URI\n\n if (thing.termType === 'BlankNode') {\n return '...'\n }\n if (thing.termType === 'Collection') {\n return '(' + thing.elements.length + ')'\n }\n let s = thing.uri\n if (typeof s === 'undefined') return thing.toString() // can't be a symbol\n // s = decodeURI(s) // This can crash is random valid @ signs are presentation\n // The idea was to clean up eg URIs encoded in query strings\n // Also encoded character in what was filenames like @ [] {}\n try {\n s = s\n .split('/')\n .map(decodeURIComponent)\n .join('/') // If it is properly encoded\n } catch (_e) {\n // try individual decoding of ASCII code points\n for (let i = s.length - 3; i > 0; i--) {\n const hex = '0123456789abcefABCDEF' // The while upacks multiple layers of encoding\n while (\n s[i] === '%' &&\n hex.indexOf(s[i + 1]) >= 0 &&\n hex.indexOf(s[i + 2]) >= 0\n ) {\n s =\n s.slice(0, i) +\n String.fromCharCode(parseInt(s.slice(i + 1, i + 3), 16)) +\n s.slice(i + 3)\n }\n }\n }\n\n s = slice(s, '/profile/card#me')\n s = slice(s, '#this')\n s = slice(s, '#me')\n\n const hash = s.indexOf('#')\n if (hash >= 0) return cleanUp(s.slice(hash + 1))\n\n // Eh? Why not do this? e.g. dc:title needs it only trim URIs, not rdfs:labels\n const slash = s.lastIndexOf('/', s.length - 2) // (len-2) excludes trailing slash\n if (slash >= 0 && slash < thing.uri.length) return cleanUp(s.slice(slash + 1))\n\n return doCap(decodeURIComponent(thing.uri))\n}\n\nfunction slice (s: string, suffix: string) {\n const length = suffix.length * -1\n if (s.slice(length) === suffix) {\n return s.slice(0, length)\n }\n return s\n}\n\n// Hard coded known label predicates\n// @@ TBD: Add subproperties of rdfs:label\nfunction getWellKnownLabel (thing) {\n return store.any(thing, UI.ns.ui('label')) || // Prioritize ui:label\n store.any(thing, UI.ns.link('message')) ||\n store.any(thing, UI.ns.vcard('fn')) ||\n store.any(thing, UI.ns.foaf('name')) ||\n store.any(thing, UI.ns.dct('title')) ||\n store.any(thing, UI.ns.dc('title')) ||\n store.any(thing, UI.ns.rss('title')) ||\n store.any(thing, UI.ns.contact('fullName')) ||\n store.any(thing, store.sym('http://www.w3.org/2001/04/roadmap/org#name')) ||\n store.any(thing, UI.ns.cal('summary')) ||\n store.any(thing, UI.ns.foaf('nick')) ||\n store.any(thing, UI.ns.as('name')) ||\n store.any(thing, UI.ns.schema('name')) ||\n store.any(thing, UI.ns.rdfs('label')) ||\n store.any(thing, store.sym('http://www.w3.org/2004/02/skos/core#prefLabel'))\n}\n","// Solid-UI general Utilities\n// ==========================\n//\n// This must load AFTER the rdflib.js and log-ext.js (or log.js).\n//\nimport * as log from '../lib/log'\nimport { store } from 'solid-logic'\nimport ns from '../lib/ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport { label } from './label'\n\nconst UI = { log, ns, rdf }\n\nexport {\n addLoadEvent, // not used anywhere\n AJARImage,\n ancestor,\n beep,\n clearVariableNames,\n emptyNode,\n escapeForXML,\n findPos,\n genUuid,\n getAbout,\n getEyeFocus,\n getTarget,\n getTerm,\n hashColor,\n include,\n label,\n labelForXML,\n labelWithOntology,\n newVariableName,\n ontologyLabel,\n predicateLabel,\n predicateLabelForXML,\n predParentOf,\n RDFComparePredicateObject,\n RDFComparePredicateSubject,\n shortName,\n stackString,\n syncTableToArray,\n syncTableToArrayReOrdered\n}\n\nlet nextVariable = 0\n\nfunction newVariableName () {\n return 'v' + nextVariable++\n}\n\nfunction clearVariableNames () {\n nextVariable = 0\n}\n\n// http://stackoverflow.com/questions/879152/how-do-i-make-javascript-beep\n// http://www.tsheffler.com/blog/2013/05/14/audiocontext-noteonnoteoff-and-time-units/\n\nlet audioContext\n\nif (typeof AudioContext !== 'undefined') {\n audioContext = AudioContext\n} else if (typeof window !== 'undefined') {\n audioContext = window.AudioContext || window.webkitAudioContext\n}\n\nfunction beep () {\n if (!audioContext) {\n return\n } // Safari 2015\n\n const ContextClass = audioContext\n const ctx = new ContextClass()\n\n return function (duration, frequency, type, finishedCallback) {\n duration = +(duration || 0.3)\n\n // Only 0-4 are valid types.\n type = type || 'sine' // sine, square, sawtooth, triangle\n\n if (typeof finishedCallback !== 'function') {\n finishedCallback = function () {}\n }\n\n const osc = ctx.createOscillator()\n\n osc.type = type\n osc.frequency.value = frequency || 256\n\n osc.connect(ctx.destination)\n osc.start(0)\n osc.stop(duration)\n }\n}\n\n// Make pseudorandom color from a uri\n// NOT USED ANYWHERE\nfunction hashColor (who) {\n who = who.uri || who\n const hash = function (x) {\n return x.split('').reduce(function (a, b) {\n a = (a << 5) - a + b.charCodeAt(0)\n return a & a\n }, 0)\n }\n return '#' + ((hash(who) & 0xffffff) | 0xc0c0c0).toString(16) // c0c0c0 or 808080 forces pale\n}\n\nfunction genUuid () {\n // http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0\n const v = c === 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n}\n\n/** Sync a DOM table with an array of things\n *\n * @param {DomElement} table - will have a tr for each thing\n * @param {Array<NamedNode>} things - ORDERED array of NamedNode objects\n * @param {function({NamedNode})} createNewRow(thing) returns a TR table row for a new thing\n * @param {function(DomElement, NamedNode)} updateExistingRow(row, thing) optional hook for refreshing matched rows\n *\n * Tolerates out of order elements but puts new ones in order.\n * Can be used for any element type; does not have to be a table and tr.\n */\nfunction syncTableToArray (table, things, createNewRow, updateExistingRow) {\n let foundOne\n let row\n let i\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n row.trashMe = true\n }\n\n for (let g = 0; g < things.length; g++) {\n const thing = things[g]\n foundOne = false\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n if (row.subject && row.subject.sameTerm(thing)) {\n if (updateExistingRow) {\n const replacement = updateExistingRow(row, thing)\n if (replacement && replacement !== row) {\n row.parentNode.replaceChild(replacement, row)\n replacement.subject = thing\n row = replacement\n }\n }\n row.trashMe = false\n foundOne = true\n break\n }\n }\n if (!foundOne) {\n const newRow = createNewRow(thing)\n // Insert new row in position g in the table to match array\n if (g >= table.children.length) {\n table.appendChild(newRow)\n } else {\n const ele = table.children[g]\n table.insertBefore(newRow, ele)\n }\n newRow.subject = thing\n } // if not foundOne\n } // loop g\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n if (row.trashMe) {\n table.removeChild(row)\n }\n }\n} // syncTableToArray\n\n/** Sync a DOM table with an array of things\n *\n * @param {DomElement} table - will have a tr for each thing\n * @param {Array<NamedNode>} things - ORDERED array of UNIQUE NamedNode objects. No duplicates\n * @param {function({NamedNode})} createNewRow(thing) returns a rendering of a new thing\n *\n * Ensures order matches exacly. We will re-rder existing elements if necessary\n * Can be used for any element type; does not have to be a table and tr.\n * Any RDF node value can only appear ONCE in the array\n */\nfunction syncTableToArrayReOrdered (table, things, createNewRow) {\n const elementMap = {}\n\n for (let i = 0; i < table.children.length; i++) {\n const row = table.children[i]\n elementMap[row.subject.toNT()] = row // More sophisticaed would be to have a bag of duplicates\n }\n\n for (let g = 0; g < things.length; g++) {\n const thing = things[g]\n if (g >= table.children.length) { // table needs extending\n const newRow = createNewRow(thing)\n newRow.subject = thing\n table.appendChild(newRow)\n } else {\n const row = table.children[g]\n if (row.subject.sameTerm(thing)) {\n // ...\n } else {\n const existingRow = elementMap[thing.toNT()]\n if (existingRow) {\n table.removeChild(existingRow)\n table.insertBefore(existingRow, row) // Insert existing row in place of this one\n } else {\n const newRow = createNewRow(thing)\n row.before(newRow) // Insert existing row in place of this one\n newRow.subject = thing\n }\n }\n }\n } // loop g\n // Lop off any we don't need any more:\n while (table.children.length > things.length) {\n table.removeChild(table.children[table.children.length - 1])\n }\n} // syncTableToArrayReOrdered\n\n/* Error stack to string for better diagnotsics\n **\n ** See http://snippets.dzone.com/posts/show/6632\n */\nfunction stackString (e) {\n let str = '' + e + '\\n'\n let i\n if (!e.stack) {\n return str + 'No stack available.\\n'\n }\n const lines = e.stack.toString().split('\\n')\n const toPrint = []\n for (i = 0; i < lines.length; i++) {\n let line = lines[i]\n if (line.indexOf('ecmaunit.js') > -1) {\n // remove useless bit of traceback\n break\n }\n if (line.charAt(0) === '(') {\n line = 'function' + line\n }\n const chunks = line.split('@')\n toPrint.push(chunks)\n }\n // toPrint.reverse(); No - I prefer the latest at the top by the error message -tbl\n\n for (i = 0; i < toPrint.length; i++) {\n str += ' ' + toPrint[i][1] + '\\n ' + toPrint[i][0]\n }\n return str\n}\n\nfunction emptyNode (node) {\n const nodes = node.childNodes\n const len = nodes.length\n for (let i = len - 1; i >= 0; i--) node.removeChild(nodes[i])\n return node\n}\n\nfunction getTarget (e) {\n let target\n e = e || window.event\n if (e.target) target = e.target\n else if (e.srcElement) target = e.srcElement\n if (target.nodeType === 3) {\n // defeat Safari bug [sic]\n target = target.parentNode\n }\n // UI.log.debug(\"Click on: \" + target.tagName)\n return target\n}\n\nfunction ancestor (target, tagName) {\n let level\n for (level = target; level; level = level.parentNode) {\n // UI.log.debug(\"looking for \"+tagName+\" Level: \"+level+\" \"+level.tagName)\n try {\n if (level.tagName === tagName) return level\n } catch (e) {\n // can hit \"TypeError: can't access dead object\" in ffox\n return undefined\n }\n }\n return undefined\n}\n\nfunction getAbout (kb, target) {\n let level, aa\n for (\n level = target;\n level && level.nodeType === 1;\n level = level.parentNode\n ) {\n // UI.log.debug(\"Level \"+level + ' '+level.nodeType + ': '+level.tagName)\n aa = level.getAttribute('about')\n if (aa) {\n // UI.log.debug(\"kb.fromNT(aa) = \" + kb.fromNT(aa))\n return kb.fromNT(aa)\n // } else {\n // if (level.tagName=='TR') return undefined//this is to prevent literals passing through\n }\n }\n UI.log.debug('getAbout: No about found')\n return undefined\n}\n\nfunction getTerm (target) {\n const statementTr = target.parentNode\n const st = statementTr ? statementTr.AJAR_statement : undefined\n\n const className = st ? target.className : '' // if no st then it's necessary to use getAbout\n switch (className) {\n case 'pred':\n case 'pred selected':\n return st.predicate\n case 'obj':\n case 'obj selected':\n if (!statementTr.AJAR_inverse) {\n return st.object\n } else {\n return st.subject\n }\n case '':\n case 'selected': // header TD\n return getAbout(store, target) // kb to be changed\n case 'undetermined selected':\n return target.nextSibling\n ? st.predicate\n : !statementTr.AJAR_inverse\n ? st.object\n : st.subject\n }\n}\n\nfunction include (document, linkstr) {\n const lnk = document.createElement('script')\n lnk.setAttribute('type', 'text/javascript')\n lnk.setAttribute('src', linkstr)\n // TODO:This needs to be fixed or no longer used.\n // document.getElementsByTagName('head')[0].appendChild(lnk)\n return lnk\n}\n\nfunction addLoadEvent (func) {\n const oldonload = window.onload\n if (typeof window.onload !== 'function') {\n window.onload = func\n } else {\n window.onload = function () {\n oldonload()\n func()\n }\n }\n} // addLoadEvent\n\n// Find the position of an object relative to the window\nfunction findPos (obj) {\n // C&P from http://www.quirksmode.org/js/findpos.html\n const myDocument = obj.ownerDocument\n const DocBox = myDocument.documentElement.getBoundingClientRect()\n const box = obj.getBoundingClientRect()\n return [box.left - DocBox.left, box.top - DocBox.top]\n}\n\nfunction getEyeFocus (element, instantly, isBottom, myWindow) {\n if (!myWindow) myWindow = window\n const elementPosY = findPos(element)[1]\n const appContext = window.SolidAppContext || {}\n const scrollDiff = (appContext && appContext.scroll) || 52 // 52 = magic number for web-based version\n const totalScroll = elementPosY - scrollDiff - myWindow.scrollY\n\n if (instantly) {\n if (isBottom) {\n myWindow.scrollBy(\n 0,\n elementPosY +\n element.clientHeight -\n (myWindow.scrollY + myWindow.innerHeight)\n )\n return\n }\n myWindow.scrollBy(0, totalScroll)\n return\n }\n const id = myWindow.setInterval(scrollAmount, 50)\n let times = 0\n function scrollAmount () {\n myWindow.scrollBy(0, totalScroll / 10)\n times++\n if (times === 10) {\n myWindow.clearInterval(id)\n }\n }\n}\n\nfunction AJARImage (src, alt, tt, doc) {\n if (!doc) {\n doc = document\n }\n const image = doc.createElement('img')\n image.setAttribute('src', src)\n image.addEventListener('copy', function (e) {\n e.clipboardData.setData('text/plain', '')\n e.clipboardData.setData('text/html', '')\n e.preventDefault() // We want no title data to be written to the clipboard\n })\n // if (typeof alt != 'undefined') // Messes up cut-and-paste of text\n // image.setAttribute('alt', alt)\n if (typeof tt !== 'undefined') {\n image.setAttribute('title', tt)\n }\n return image\n}\n\n// Make short name for ontology\n\nfunction shortName (uri) {\n let p = uri\n if ('#/'.indexOf(p[p.length - 1]) >= 0) p = p.slice(0, -1)\n const namespaces = []\n for (const ns in this.prefixes) {\n namespaces[this.prefixes[ns]] = ns // reverse index\n }\n let pok\n const canUse = function canUse (pp) {\n // if (!__Serializer.prototype.validPrefix.test(pp)) return false; // bad format\n if (pp === 'ns') return false // boring\n // if (pp in this.namespaces) return false; // already used\n // this.prefixes[uri] = pp;\n // this.namespaces[pp] = uri;\n pok = pp\n return true\n }\n\n let i\n const hash = p.lastIndexOf('#')\n if (hash >= 0) p = p.slice(hash - 1) // lop off localid\n // eslint-disable-next-line no-unreachable-loop\n for (;;) {\n const slash = p.lastIndexOf('/')\n if (slash >= 0) p = p.slice(slash + 1)\n i = 0\n while (i < p.length) {\n if (this.prefixchars.indexOf(p[i])) i++\n else break\n }\n p = p.slice(0, i)\n if (p.length < 6 && canUse(p)) return pok // exact i sbest\n if (canUse(p.slice(0, 3))) return pok\n if (canUse(p.slice(0, 2))) return pok\n if (canUse(p.slice(0, 4))) return pok\n if (canUse(p.slice(0, 1))) return pok\n if (canUse(p.slice(0, 5))) return pok\n for (i = 0; ; i++) if (canUse(p.slice(0, 3) + i)) return pok\n }\n}\n\n// Short name for an ontology\nfunction ontologyLabel (term) {\n if (term.uri === undefined) return '??'\n let s = term.uri\n const namespaces = []\n let i = s.lastIndexOf('#')\n let part\n if (i >= 0) {\n s = s.slice(0, i + 1)\n } else {\n i = s.lastIndexOf('/')\n if (i >= 0) {\n s = s.slice(0, i + 1)\n } else {\n return term.uri + '?!' // strange should have # or /\n }\n }\n for (const ns in UI.ns) {\n namespaces[UI.ns[ns]] = ns // reverse index\n }\n try {\n return namespaces[s]\n } catch (e) {}\n\n s = s.slice(0, -1) // Chop off delimiter ... now have just\n\n while (s) {\n i = s.lastIndexOf('/')\n if (i >= 0) {\n part = s.slice(i + 1)\n s = s.slice(0, i)\n if (part !== 'ns' && '0123456789'.indexOf(part[0]) < 0) {\n return part\n }\n } else {\n return term.uri + '!?' // strange should have a nice part\n }\n }\n}\n\nfunction labelWithOntology (x, initialCap) {\n const t = store.findTypeURIs(x)\n if (t[UI.ns.rdf('Predicate').uri] || t[UI.ns.rdfs('Class').uri]) {\n return label(x, initialCap) + ' (' + ontologyLabel(x) + ')'\n }\n return label(x, initialCap)\n}\n\nfunction escapeForXML (str) {\n return str.replace(/&/g, '&').replace(/</g, '<')\n}\n\n// As above but escaped for XML and chopped of contains a slash\nfunction labelForXML (x) {\n return escapeForXML(label(x))\n}\n\nfunction predicateLabelForXML (p, inverse) {\n return escapeForXML(predicateLabel(p, inverse))\n}\n// As above but for predicate, possibly inverse\nfunction predicateLabel (p, inverse) {\n const lab = label(p)\n if (inverse) {\n // If we know an inverse predicate, use its label\n const ip = store.any(p, UI.ns.owl('inverseOf')) || store.any(undefined, UI.ns.owl('inverseOf'), p)\n if (ip) return label(ip)\n if (lab === 'type') return '...' // Not \"is type of\"\n return 'is ' + lab + ' of'\n }\n return lab\n}\n\n// Not a method. For use in sorts\nfunction RDFComparePredicateObject (self, other) {\n const x = self.predicate.compareTerm(other.predicate)\n if (x !== 0) return x\n return self.object.compareTerm(other.object)\n}\n\nfunction RDFComparePredicateSubject (self, other) {\n const x = self.predicate.compareTerm(other.predicate)\n if (x !== 0) return x\n return self.subject.compareTerm(other.subject)\n}\n// ends\n\nfunction predParentOf (node) {\n let n = node\n while (true) {\n if (n.getAttribute('predTR')) {\n return n\n } else if (n.previousSibling && n.previousSibling.nodeName === 'TR') {\n n = n.previousSibling\n } else {\n UI.log.error('Could not find predParent')\n return node\n }\n }\n}\n\n// makeQueryRow moved to outline mode\n","export default {\n highlightColor: '#7C4DFF', // Solid lavender https://design.inrupt.com/atomic-core/?cat=Core\n\n formBorderColor: '#888888', // Mid-grey\n formHeadingColor: '#888888', // originally was brown; now grey\n lowProfileLinkColor: '#3B5998', // Grey-blue, e.g., for field labels linking to ontology\n formFieldNameBoxWidth: '8em', // The fixed amount to get form fields to line up\n // We put in the latter when switching away from using tables. However, getting\n // alignment between fields in different groups is a hard problem.\n\n mediaModuleCanvasWidth: '640',\n mediaModuleCanvasHeight: '480',\n\n textInputSize: 20, // Rough default text input size, in characters\n tabBorderRadius: '0.2em',\n\n textInputBackgroundColor: '#eef',\n textInputBackgroundColorUneditable: '#fff',\n textInputColor: '#000',\n textInputColorPending: '#888',\n\n defaultErrorBackgroundColor: '#fee',\n\n participationDefaultBackground: 'white',\n\n basicMaxLength: '4096'\n}\n","// Common readable consistent stylesheet\n// to avoid using style sheets which are document-global\n// and make programmable style toggling with selection, drag over, etc easier\n// These must all end with semicolon so they can be appended to.\n\nimport styleConstants from './styleConstants'\n\nexport const style = { // styleModule\n\n checkboxStyle: 'color: black; font-size: 100%; padding-left: 0.5 em; padding-right: 0.5 em;',\n checkboxInputStyle: 'font-size: 150%; height: 1.2em; width: 1.2em; background-color: #eef; border-radius:0.2em; margin: 0.1em;',\n\n fieldLabelStyle: 'color: #3B5998; text-decoration: none;',\n formSelectStyle:\n 'background-color: #eef; padding: 0.5em; border: .05em solid #88c; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n textInputStyle:\n 'background-color: #eef; padding: 0.5em; border: .05em solid #88c; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n textInputStyleUneditable: // Color difference only\n 'background-color: white; padding: 0.5em; border: .05em solid white; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n buttonStyle:\n 'background-color: #fff; padding: 0.7em; border: .01em solid white; border-radius:0.2em; font-size: 100%; margin: 0.3em;', // 'background-color: #eef;\n commentStyle: 'padding: 0.7em; border: none; font-size: 100%; white-space: pre-wrap;',\n iconStyle: 'width: 3em; height: 3em; margin: 0.1em; border-radius: 1em;',\n smallButtonStyle: 'margin: 0.2em; width: 1em; height:1em;',\n classIconStyle: 'width: 3em; height: 3em; margin: 0.1em; border-radius: 0.2em; border: 0.1em solid green; padding: 0.2em; background-color: #efe;', // combine with buttonStyle\n confirmPopupStyle: 'padding: 0.7em; border-radius: 0.2em; border: 0.1em solid orange; background-color: white; box-shadow: 0.5em 0.9em #888;',\n messageBodyStyle:\n 'white-space: pre-wrap; width: 99%; font-size:100%; border: 0.07em solid #eee; border-radius:0.2em; padding: .3em 0.5em; margin: 0.1em;',\n pendingeditModifier: 'color: #bbb;',\n\n // Contacts\n personaBarStyle: 'width: 100%; height: 4em; background-color: #eee; vertical-align: middle;',\n searchInputStyle: 'border: 0.1em solid #444; border-radius: 0.2em; width: 100%; font-size: 100%; padding: 0.1em 0.6em; margin 0.2em;',\n autocompleteRowStyle: 'border: 0.2em solid straw;',\n\n // Login buttons\n signInAndUpButtonStyle: 'padding: 1em; border-radius:0.2em; font-size: 100%;', // was 0.5em radius\n headerBannerLoginInput: 'margin: 0.75em 0 0.75em 0.5em !important; padding: 0.5em !important;',\n signUpBackground: 'background-color: #eef;',\n signInBackground: 'background-color: #efe;',\n\n // Forms\n heading1Style: 'font-size: 180%; font-weight: bold; color: #888888; padding: 0.5em; margin: 0.7em 0.0m;', // originally was brown; now grey\n heading2Style: 'font-size: 130%; font-weight: bold; color: #888888; padding: 0.4em; margin: 0.7em 0.0em;', // originally was brown; now grey\n heading3Style: 'font-size: 120%; font-weight: bold; color: #888888; padding: 0.3em; margin: 0.7em 0.0em;', // For example, in large forms or before a small form\n heading4Style: 'font-size: 110%; font-weight: bold; color: #888888; padding: 0.2em; margin: 0.7em 0.0em;', // Lowest level used by default in small things\n\n formHeadingStyle: 'font-size: 110%; font-weight: bold; color: #888888; padding: 0.2em; margin: 0.7em 0.0em;', // originally was brown; now grey\n formTextInput: 'font-size: 100%; margin: 0.1em; padding: 0.1em;', // originally used this\n formGroupStyle: [`padding-left: 0em; border: 0.0em solid ${styleConstants.formBorderColor}; border-radius: 0.2em;`, // weight 0\n `padding-left: 2em; border: 0.05em solid ${styleConstants.formBorderColor}; border-radius: 0.2em;`,\n `padding-left: 2em; border: 0.1em solid ${styleConstants.formBorderColor}; border-radius: 0.2em;`,\n `padding-left: 2em; border: 0.2em solid ${styleConstants.formBorderColor}; border-radius: 0.2em;` // @@ pink\n ],\n\n formFieldLabelStyle: `color: ${styleConstants.lowProfileLinkColor}; text-decoration: none;`,\n formFieldNameBoxStyle: `padding: 0.3em; vertical-align: middle; width:${styleConstants.formFieldNameBoxWidth};`,\n multilineTextInputStyle: 'font-size:100%; white-space: pre-wrap; background-color: #eef;' +\n ' border: 0.07em solid gray; padding: 1em 0.5em; margin: 1em 1em;',\n\n // Buttons\n renderAsDivStyle: 'display: flex; align-items: center; justify-content: space-between; height: 2.5em; padding: 1em;',\n imageDivStyle: 'width:2.5em; padding:0.5em; height: 2.5em;',\n linkDivStyle: 'width:2em; padding:0.5em; height: 4em;',\n\n // ACL\n aclControlBoxContainer: 'margin: 1em;',\n aclControlBoxHeader: 'font-size: 120%; margin: 0 0 1rem;',\n aclControlBoxStatus: 'display: none; margin: 1rem 0;',\n aclControlBoxStatusRevealed: 'display: block;',\n aclGroupContent: 'maxWidth: 650;',\n accessGroupList: 'display: grid; grid-template-columns: 1fr; margin: 1em; width: 100%;',\n accessGroupListItem: 'display: grid; grid-template-columns: 100px auto 30%;',\n defaultsController: 'display: flex;',\n defaultsControllerNotice: 'color: #888; flexGrow: 1; fontSize: 80%;',\n bigButton: 'background-color: white; color: black; text-wrap: pretty; border: 0.1em solid #888; border-radius: 0.3em; max-width: 50%; padding-bottom: 1em; padding-top: 1em;',\n group: 'color: #888;',\n group1: 'color: green;',\n group2: 'color: #cc0;',\n group3: 'color: orange;',\n group5: 'color: red;',\n group9: 'color: blue;',\n group13: 'color: purple;',\n\n trustedAppAddApplicationsTable: 'background-color: #eee;',\n trustedAppCancelButton: 'float: right;',\n trustedAppControllerI: 'border-color: orange; border-radius: 1em; border-width: 0.1em;',\n temporaryStatusInit: 'background: green;',\n temporaryStatusEnd: 'background: transparent; transition: background 5s linear;',\n\n // header\n headerUserMenuLink: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; text-decoration: none;',\n headerUserMenuLinkHover: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; text-decoration: none; background-image: linear-gradient(to right, #7C4DFF 0%, #18A9E6 50%, #01C9EA 100%);',\n headerUserMenuTrigger: 'background: none; border: 0; cursor: pointer; width: 60px; height: 60px;',\n headerUserMenuTriggerImg: 'border-radius: 50%; height: 56px; width: 28px !important;',\n headerUserMenuButton: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%;',\n headerUserMenuButtonHover: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; background-image: linear-gradient(to right, #7C4DFF 0%, #18A9E6 50%, #01C9EA 100%);',\n headerUserMenuList: 'list-style: none; margin: 0; padding: 0;',\n headerUserMenuListDisplay: 'list-style: none; margin: 0; padding: 0; display:true;',\n headerUserMenuNavigationMenu: 'background: white; border: solid 1px #000000; border-right: 0; position: absolute; right: 0; top: 60px; width: 200px; z-index: 1; display: true;',\n headerUserMenuNavigationMenuNotDisplayed: 'background: white; border: solid 1px #000000; border-right: 0; position: absolute; right: 0; top: 60px; width: 200px; z-index: 1; display: none;',\n headerUserMenuListItem: 'border-bottom: solid 1px #000000;',\n headerUserMenuPhoto: 'border-radius: 50%; background-position: center; background-repeat: no-repeat; background-size: cover; height: 50px; width: 50px;',\n headerBanner: 'box-shadow: 0px 1px 4px #000000; display: flex; justify-content: space-between; padding: 0 1.5em; margin-bottom: 4px;',\n headerBannerLink: 'display: block;',\n headerBannerRightMenu: 'display: flex;',\n headerBannerLogin: 'margin-left: auto;',\n allChildrenVisible: 'display:true;',\n headerBannerUserMenu: 'border-left: solid 1px #000000; margin-left: auto;',\n headerBannerHelpMenu: 'border-left: solid 1px #000000; margin-left: auto;',\n headerBannerIcon: 'background-size: 65px 60px !important; height: 60px !important; width: 65px !important;', // may just be 65px round($icon-size * 352 / 322);\n\n // footer\n footer: 'border-top: solid 1px $divider-color; font-size: 0.9em; padding: 0.5em 1.5em;',\n\n // buttons\n primaryButton: 'background-color: #7c4dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none;',\n primaryButtonHover: 'background-color: #9f7dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out;',\n primaryButtonNoBorder: 'background-color: #ffffff; color: #7c4dff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none;',\n primaryButtonNoBorderHover: 'background-color: #7c4dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out;',\n secondaryButton: 'background-color: #01c9ea; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none;',\n secondaryButtonHover: 'background-color: #37cde6; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out;',\n secondaryButtonNoBorder: 'background-color: #ffffff; color: #01c9ea; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none;',\n secondaryButtonNoBorderHover: 'background-color: #01c9ea; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out;',\n\n // media\n controlStyle: `border-radius: 0.5em; margin: 0.8em; width:${styleConstants.mediaModuleCanvasWidth}; height:${styleConstants.mediaModuleCanvasHeight};`,\n\n // dragAndDrop\n dragEvent: 'background-color: #ccc; border: 0.25em dashed black; border-radius: 0.3em;',\n dropEvent: 'background-color: white; border: 0em solid black;',\n restoreStyle: 'background-color: white;',\n\n // errors\n errorCancelButton: 'width: 2em; height: 2em; align: right;',\n errorMessageBlockStyle: 'margin: 0.1em; padding: 0.5em; border: 0.05em solid gray; color:black;',\n\n // pad\n notepadStyle: 'padding: 1em; overflow: auto; resize: horizontal; min-width: 40em;',\n upstreamStatus: 'width: 50%;',\n downstreamStatus: 'width: 50%;',\n baseStyle: 'font-size: 100%; font-family: monospace; width: 100%; border: none; white-space: pre-wrap;',\n headingCore: 'font-family: sans-serif; font-weight: bold; border: none;',\n headingStyle: [\n 'font-size: 110%; padding-top: 0.5em; padding-bottom: 0.5em; width: 100%;',\n 'font-size: 120%; padding-top: 1em; padding-bottom: 1em; width: 100%;',\n 'font-size: 150%; padding-top: 1em; padding-bottom: 1em; width: 100%;'\n ],\n\n // participation\n participantsStyle: 'margin: 0.8em;',\n participantsBlock: 'height: 1.5em; width: 1.5em; margin: 0.3em; border 0.01em solid #888;',\n personTableTD: 'vertical-align: middle;',\n\n // tabs\n tabsNavElement: 'margin: 0;',\n tabsRootElement: 'display: flex; height: 100%; width: 100%;',\n tabsMainElement: 'margin: 0; width:100%; height: 100%;',\n tabContainer: 'list-style-type: none; display: flex; height: 100%; width: 100%; margin: 0; padding: 0;',\n makeNewSlot: 'background: none; border: none; font: inherit; cursor: pointer;',\n ellipsis: 'position: absolute; right: 0; bottom: 0; width: 20%; background: none; color: inherit; border: none; padding: 0; font: inherit; cursor: pointer; outline: inherit;'\n\n}\n\nstyle.setStyle = function setStyle (ele, styleName) {\n ele.style = style[styleName]\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Account.cjs.js","names":["consume","html","nothing","property","customElement","WebComponent","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Account","_Account2","_A","WeakMap","_B","_ref","_menuItemsDecs","type","Array","_authDecs","context","subscribe","_Account3","Account","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_menuItems","_init_auth","_defineProperty","_classPrivateFieldGet","menuItems","v","_classPrivateFieldSet","auth","connectedCallback","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","initialized","account","map","menuItem","href","selected","onSelected","label","e","c","_initClass","_applyDecs","_Class","_identity","initializing","component","loggedIn","default"],"sources":["../../../src/components/account/Account.ts"],"sourcesContent":["import { consume } from '@lit/context'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { customElement, WebComponent } from '@/lib/components'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '@/components/avatar'\nimport '@/components/button'\nimport '@/components/login-button'\nimport '@/components/logout-button'\nimport '@/components/menu-item'\nimport '@/components/menu'\nimport '@/components/signup-button'\nimport '~icons/lucide/chevron-down'\nimport '~icons/lucide/log-in'\nimport '~icons/lucide/log-out'\nimport '~icons/lucide/user'\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Account.styles.css'\n\nexport interface AccountMenuItem {\n label: string | TemplateResult\n href?: string\n selected?: boolean\n onSelected?(): void\n}\n\n@customElement('solid-ui-account')\nexport default class Account extends WebComponent {\n static styles = styles\n static states = {\n initializing: (component: Account) => !component.auth.initialized,\n loggedIn: (component: Account) => !!component.auth.account,\n }\n\n @property({ type: Array })\n accessor menuItems: AccountMenuItem[] = []\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => this.requestUpdate())\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.initialized) {\n return html`\n <icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>\n `\n }\n\n if (!this.auth.account) {\n return html`\n <solid-ui-login-button>\n <solid-ui-button slot=\"trigger\">\n <icon-lucide-user slot=\"left-icon\"></icon-lucide-user>\n Log In\n </solid-ui-button>\n </solid-ui-login-button>\n <solid-ui-signup-button>\n <solid-ui-button slot=\"trigger\" variant=\"outline\">\n <icon-lucide-log-in slot=\"left-icon\"></icon-lucide-log-in>\n Sign Up\n </solid-ui-button>\n </solid-ui-signup-button>\n `\n }\n\n return html`\n <solid-ui-menu placement=\"bottom-end\">\n <button type=\"button\" slot=\"trigger\">\n <solid-ui-avatar></solid-ui-avatar>\n <icon-lucide-chevron-down slot=\"right-icon\"></icon-lucide-chevron-down>\n </button>\n\n ${this.menuItems.map(menuItem => html`\n <solid-ui-menu-item .href=${menuItem.href ?? nothing} ?selected=${menuItem.selected} @solid-ui-select=${() => menuItem.onSelected?.()}>\n ${menuItem.label}\n </solid-ui-menu-item>\n `)}\n <solid-ui-logout-button>\n <solid-ui-menu-item slot=\"trigger\">\n <icon-lucide-log-out slot=\"left-icon\"></icon-lucide-log-out>\n Sign out\n </solid-ui-menu-item>\n </solid-ui-logout-button>\n </solid-ui-menu>\n `\n }\n}\n"],"mappings":"s+JAmByCS,EAAA,CASxCL,EAAAA,cAAc,kBAAkB,CAAC,EAAA,IAAAM,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,GAAAC,GAAAA,
|
|
1
|
+
{"version":3,"file":"Account.cjs.js","names":["consume","html","nothing","property","customElement","WebComponent","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Account","_Account2","_A","WeakMap","_B","_ref","_menuItemsDecs","type","Array","_authDecs","context","subscribe","_Account3","Account","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_menuItems","_init_auth","_defineProperty","_classPrivateFieldGet","menuItems","v","_classPrivateFieldSet","auth","connectedCallback","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","initialized","account","map","menuItem","href","selected","onSelected","label","e","c","_initClass","_applyDecs","_Class","_identity","initializing","component","loggedIn","default"],"sources":["../../../src/components/account/Account.ts"],"sourcesContent":["import { consume } from '@lit/context'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { customElement, WebComponent } from '@/lib/components'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '@/components/avatar'\nimport '@/components/button'\nimport '@/components/login-button'\nimport '@/components/logout-button'\nimport '@/components/menu-item'\nimport '@/components/menu'\nimport '@/components/signup-button'\nimport '~icons/lucide/chevron-down'\nimport '~icons/lucide/log-in'\nimport '~icons/lucide/log-out'\nimport '~icons/lucide/user'\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Account.styles.css'\n\nexport interface AccountMenuItem {\n label: string | TemplateResult\n href?: string\n selected?: boolean\n onSelected?(): void\n}\n\n@customElement('solid-ui-account')\nexport default class Account extends WebComponent {\n static styles = styles\n static states = {\n initializing: (component: Account) => !component.auth.initialized,\n loggedIn: (component: Account) => !!component.auth.account,\n }\n\n @property({ type: Array })\n accessor menuItems: AccountMenuItem[] = []\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => this.requestUpdate())\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.initialized) {\n return html`\n <icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>\n `\n }\n\n if (!this.auth.account) {\n return html`\n <solid-ui-login-button>\n <solid-ui-button slot=\"trigger\">\n <icon-lucide-user slot=\"left-icon\"></icon-lucide-user>\n Log In\n </solid-ui-button>\n </solid-ui-login-button>\n <solid-ui-signup-button>\n <solid-ui-button slot=\"trigger\" variant=\"outline\">\n <icon-lucide-log-in slot=\"left-icon\"></icon-lucide-log-in>\n Sign Up\n </solid-ui-button>\n </solid-ui-signup-button>\n `\n }\n\n return html`\n <solid-ui-menu placement=\"bottom-end\">\n <button type=\"button\" slot=\"trigger\">\n <solid-ui-avatar></solid-ui-avatar>\n <icon-lucide-chevron-down slot=\"right-icon\"></icon-lucide-chevron-down>\n </button>\n\n ${this.menuItems.map(menuItem => html`\n <solid-ui-menu-item .href=${menuItem.href ?? nothing} ?selected=${menuItem.selected} @solid-ui-select=${() => menuItem.onSelected?.()}>\n ${menuItem.label}\n </solid-ui-menu-item>\n `)}\n <solid-ui-logout-button>\n <solid-ui-menu-item slot=\"trigger\">\n <icon-lucide-log-out slot=\"left-icon\"></icon-lucide-log-out>\n Sign out\n </solid-ui-menu-item>\n </solid-ui-logout-button>\n </solid-ui-menu>\n `\n }\n}\n"],"mappings":"s+JAmByCS,EAAA,CASxCL,EAAAA,cAAc,kBAAkB,CAAC,EAAA,IAAAM,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,GAAAC,GAAAA,EAQ/Bb,EAAAA,SAAAA,CAAS,CAAEc,KAAMC,KAAM,CAAC,EAACC,GAAAA,EAGzBnB,EAAAA,QAAAA,CAAQ,CAAEoB,QAASd,EAAAA,YAAae,UAAW,EAAK,CAAC,EAAC,aAAAC,EAXrD,cACqCjB,EAAAA,OAAa,CAAAmB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAd,GAAAe,EAAA,IAAA,EAAAC,EAAA,KAQR,CAAA,CAAE,EAAA,EAAAF,EAAA,KAAAZ,EAAAe,EAAA,KAGLtB,EAAAA,oBAAoB,CAAA,EAAAuB,EAAA,KAAA,4BAAA,IAAA,EAAA,CAAA,CAAA,IAAAf,IAAA,CAAA,OAAAgB,EAAAnB,EAAA,IAAA,CAAA,CAAA,IAHhDoB,UAASC,EAAA,CAAAC,EAAAtB,EAAA,KAAAqB,CAAA,CAAA,CAAA,IAGDE,MAAI,CAAA,OAAAJ,EAAAjB,EAAA,IAAA,CAAA,CAAA,IAAJqB,KAAIF,EAAA,CAAAC,EAAApB,EAAA,KAAAmB,CAAA,CAAA,CAIrBG,mBAAqB,CACnB,MAAMA,kBAAkB,EAExB,KAAKC,0BAA4B,KAAKF,KAAKG,qBAAuB,KAAKC,cAAc,CAAC,CACxF,CAEAC,sBAAwB,CACtB,MAAMA,qBAAqB,EAE3B,KAAKH,4BAA4B,CACnC,CAEUI,QAAU,CAwBlB,OAvBK,KAAKN,KAAKO,YAMV,KAAKP,KAAKQ,QAiBR1C,EAAAA,IAAI;;;;;;;cAOD,KAAK+B,UAAUY,IAAIC,GAAY5C,EAAAA,IAAI;4CACL4C,EAASC,MAAQ5C,EAAAA,QAAO,aAAc2C,EAASE,SAAQ,wBAA2BF,EAASG,aAAa,EAAC;sBAC/HH,EAASI,MAAK;;aAEvB,EAAC;;;;;;;;MA3BDhD,EAAAA,IAAI;;;;;;;;;;;;;QANJA,EAAAA,IAAI;;OA0Cf,CACF,EAAC,CAAAiD,EAAA,CAAAtB,EAAAC,EAAAF,GAAAwB,EAAA,CAAAzC,EAAA0C,IAAAC,EAAA/B,EAAA,CAAA,CAAAN,EAAA,EAAA,WAAA,EAAA,CAAAG,EAAA,EAAA,MAAA,CAAA,EAAAV,EAAA,EAAA,IAAA,GAxEoCJ,EAAAA,OAAY,EAAAiB,GAAAgC,EAAA,cAAAC,CAAA,CAAA/B,aAAA,CAAA,MAAAd,CAAA,EAAAoB,EAAA,KAAA,SAC/BtB,EAAAA,OAAM,EAAAsB,EAAA,KAAA,SACN,CACd0B,aAAeC,GAAuB,CAACA,EAAUtB,KAAKO,YACtDgB,SAAWD,GAAuB,CAAC,CAACA,EAAUtB,KAAKQ,OACrD,CAAC,EAAAS,EAAA,CAAA,CAAA,EAAAtB,EAAAwB,EAAA3C,EAAA,IAAA,EAAA,EAAA2C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../chunks/account-
|
|
1
|
+
import { n as e, t } from "../chunks/account-Ch8h_zTv.js";
|
|
2
2
|
export { e as Account, t as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("./dialog-header/index.cjs.js"),require("./button/index.cjs.js"),require("./dialog/index.cjs.js"),require("./dialog-content/index.cjs.js"),require("./dialog-footer/index.cjs.js"),require("./combobox/index.cjs.js"),require("./combobox-option/index.cjs.js"),require("./login-modal/index.cjs.js"),require("./dialogs-root/index.cjs.js"),require("./avatar/index.cjs.js"),require("./login-button/index.cjs.js"),require("./logout-button/index.cjs.js"),require("./menu-item/index.cjs.js"),require("./menu/index.cjs.js"),require("./signup-button/index.cjs.js"),require("./account/index.cjs.js"),require("./dialog-provider/index.cjs.js"),require("./
|
|
1
|
+
require("./dialog-header/index.cjs.js"),require("./button/index.cjs.js"),require("./dialog/index.cjs.js"),require("./dialog-content/index.cjs.js"),require("./dialog-footer/index.cjs.js"),require("./combobox/index.cjs.js"),require("./combobox-option/index.cjs.js"),require("./login-modal/index.cjs.js"),require("./dialogs-root/index.cjs.js"),require("./avatar/index.cjs.js"),require("./login-button/index.cjs.js"),require("./logout-button/index.cjs.js"),require("./menu-item/index.cjs.js"),require("./menu/index.cjs.js"),require("./signup-button/index.cjs.js"),require("./account/index.cjs.js"),require("./dialog-provider/index.cjs.js"),require("./guard/index.cjs.js"),require("./input/index.cjs.js"),require("./photo-capture-modal/index.cjs.js"),require("./photo-capture/index.cjs.js"),require("./rdf-input/index.cjs.js"),require("./rdf-form/index.cjs.js"),require("./select/index.cjs.js"),require("./select-option/index.cjs.js"),require("./solid-emblem/index.cjs.js");
|
|
@@ -15,11 +15,12 @@ import "./menu/index.esm.js";
|
|
|
15
15
|
import "./signup-button/index.esm.js";
|
|
16
16
|
import "./account/index.esm.js";
|
|
17
17
|
import "./dialog-provider/index.esm.js";
|
|
18
|
-
import "./footer/index.esm.js";
|
|
19
18
|
import "./guard/index.esm.js";
|
|
20
19
|
import "./input/index.esm.js";
|
|
21
20
|
import "./photo-capture-modal/index.esm.js";
|
|
22
21
|
import "./photo-capture/index.esm.js";
|
|
22
|
+
import "./rdf-input/index.esm.js";
|
|
23
|
+
import "./rdf-form/index.esm.js";
|
|
23
24
|
import "./select/index.esm.js";
|
|
24
25
|
import "./select-option/index.esm.js";
|
|
25
26
|
import "./solid-emblem/index.esm.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.cjs.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Avatar","_Avatar2","_A","WeakMap","_ref","_authDecs","context","subscribe","_Avatar3","Avatar","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_defineProperty","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","connectedCallback","loadProfile","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","account","avatarUrl","e","c","_initClass","_applyDecs","_Class","_identity","fallback","component","default"],"sources":["../../../src/components/avatar/Avatar.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '~icons/lucide/circle-user'\n\nimport styles from './Avatar.styles.css'\n\n@customElement('solid-ui-avatar')\nexport default class Avatar extends WebComponent {\n static styles = styles\n static states = {\n fallback: (component: Avatar) => !component.auth.account?.avatarUrl,\n }\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.auth.loadProfile?.()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => {\n this.auth.loadProfile?.()\n this.requestUpdate()\n })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.account?.avatarUrl) {\n return html`\n <icon-lucide-circle-user></icon-lucide-circle-user>\n `\n }\n\n return html`\n <img src=\"${this.auth.account?.avatarUrl}\" alt=\"\" />\n `\n }\n}\n"],"mappings":"69IAOwCO,EAAA,CAEvCP,EAAAA,cAAc,iBAAiB,CAAC,EAAA,IAAAQ,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,GAAAC,GAAAA,
|
|
1
|
+
{"version":3,"file":"Avatar.cjs.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Avatar","_Avatar2","_A","WeakMap","_ref","_authDecs","context","subscribe","_Avatar3","Avatar","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_defineProperty","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","connectedCallback","loadProfile","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","account","avatarUrl","e","c","_initClass","_applyDecs","_Class","_identity","fallback","component","default"],"sources":["../../../src/components/avatar/Avatar.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '~icons/lucide/circle-user'\n\nimport styles from './Avatar.styles.css'\n\n@customElement('solid-ui-avatar')\nexport default class Avatar extends WebComponent {\n static styles = styles\n static states = {\n fallback: (component: Avatar) => !component.auth.account?.avatarUrl,\n }\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.auth.loadProfile?.()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => {\n this.auth.loadProfile?.()\n this.requestUpdate()\n })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.account?.avatarUrl) {\n return html`\n <icon-lucide-circle-user></icon-lucide-circle-user>\n `\n }\n\n return html`\n <img src=\"${this.auth.account?.avatarUrl}\" alt=\"\" />\n `\n }\n}\n"],"mappings":"69IAOwCO,EAAA,CAEvCP,EAAAA,cAAc,iBAAiB,CAAC,EAAA,IAAAQ,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,GAAAC,GAAAA,EAO9BX,EAAAA,QAAAA,CAAQ,CAAEY,QAASV,EAAAA,YAAaW,UAAW,EAAK,CAAC,EAAC,QAAAC,EAPrD,cACoCf,EAAAA,OAAa,CAAAiB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAV,GAAAW,EAAA,IAAA,EAAAC,EAAA,KAOVjB,EAAAA,oBAAoB,EAAA,EAAAkB,EAAA,KAAA,4BAAA,IAAA,EAAA,CAAA,CAAA,IAAAX,IAAA,CAAA,OAAAY,EAAAd,EAAA,IAAA,CAAA,CAAA,IAAxCe,KAAIC,EAAA,CAAAC,EAAAjB,EAAA,KAAAgB,CAAA,CAAA,CAIrBE,mBAAqB,CACnB,MAAMA,kBAAkB,EAExB,KAAKH,KAAKI,cAAc,EAExB,KAAKC,0BAA4B,KAAKL,KAAKM,qBAAuB,CAChE,KAAKN,KAAKI,cAAc,EACxB,KAAKG,cAAc,CACrB,CAAC,CACH,CAEAC,sBAAwB,CACtB,MAAMA,qBAAqB,EAE3B,KAAKH,4BAA4B,CACnC,CAEUI,QAAU,CAOlB,OANK,KAAKT,KAAKU,SAASC,UAMjBjC,EAAAA,IAAI;oBACK,KAAKsB,KAAKU,SAASC,UAAS;MANnCjC,EAAAA,IAAI;;OAQf,CACF,EAAC,CAAAkC,EAAA,CAAAf,EAAAD,GAAAiB,EAAA,CAAA9B,EAAA+B,IAAAC,EAAAxB,EAAA,CAAA,CAAAH,EAAA,EAAA,MAAA,CAAA,EAAAN,EAAA,EAAA,IAAA,GAvCmCN,EAAAA,OAAY,EAAAe,GAAAyB,EAAA,cAAAC,CAAA,CAAAxB,aAAA,CAAA,MAAAV,CAAA,EAAAe,EAAA,KAAA,SAC9BjB,EAAAA,OAAM,EAAAiB,EAAA,KAAA,SACN,CACdoB,SAAWC,GAAsB,CAACA,EAAUnB,KAAKU,SAASC,SAC5D,CAAC,EAAAG,EAAA,CAAA,CAAA,EAAAhB,EAAAkB,EAAAhC,EAAA,IAAA,EAAA,EAAAgC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../chunks/avatar-
|
|
1
|
+
import { n as e, t } from "../chunks/avatar-BWtz4RlU.js";
|
|
2
2
|
export { e as Avatar, t as default };
|
|
@@ -6,5 +6,5 @@ const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/c
|
|
|
6
6
|
<slot></slot>
|
|
7
7
|
<slot name="right-icon"></slot>
|
|
8
8
|
</button>
|
|
9
|
-
`}onIconSlotChange(e){let t=e.target;this.toggleAttribute(`data-has-icon-slot`,t.assignedElements().length>0)}onClick(){switch(this.type){case`submit`:this.getInternals().form?.requestSubmit();break;case`reset`:this.getInternals().form?.reset()
|
|
9
|
+
`}onIconSlotChange(e){let t=e.target;this.toggleAttribute(`data-has-icon-slot`,t.assignedElements().length>0)}onClick(){switch(this.type){case`submit`:this.getInternals().form?.requestSubmit();break;case`reset`:this.getInternals().form?.reset()}}},{e:[h,_,y,x,d],c:[L,f]}=A(o,[[m,1,`variant`],[g,1,`type`],[v,1,`disabled`],[b,1,`loading`]],p,0,void 0,t.default),o),a=class extends F{constructor(){super(L),k(this,`styles`,n.default),k(this,`formAssociated`,!0),f()}},k(a,S,void 0),a),exports.BUTTON_VARIANTS=I,Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return L}});
|
|
10
10
|
//# sourceMappingURL=Button.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.cjs.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":"q6IAQA,IAAaM,EAAkB,CAAC,UAAW,YAAa,WAAY,UAAW,OAAO,EAAUC,EAAA,CAG/FP,EAAAA,cAAc,iBAAiB,CAAC,EAAA,IAAAQ,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,GAAAC,GAAAA,
|
|
1
|
+
{"version":3,"file":"Button.cjs.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -242,9 +242,7 @@ new (C = (c = /*#__PURE__*/ new WeakMap(), l = /*#__PURE__*/ new WeakMap(), u =
|
|
|
242
242
|
case "submit":
|
|
243
243
|
this.getInternals().form?.requestSubmit();
|
|
244
244
|
break;
|
|
245
|
-
case "reset":
|
|
246
|
-
this.getInternals().form?.reset();
|
|
247
|
-
break;
|
|
245
|
+
case "reset": this.getInternals().form?.reset();
|
|
248
246
|
}
|
|
249
247
|
}
|
|
250
248
|
}, {e: [g, v, b, S, f], c: [R, p]} = j(s, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.esm.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAaM,IAAkB;CAAC;CAAW;CAAa;CAAY;CAAW;AAAO;AAAUC,IAAA,CAG/FP,EAAc,iBAAiB,CAAC;AAAA,IAAAQ;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,kBAAA,IAAAF,QAAA,GAAAG,kBAAA,IAAAH,QAAA,GAAAI,KAAAC,IAK9BZ,EAAS;CAAEa,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzChB,EAAS;CAAEa,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACE,IAGzCjB,EAAS,EAAEa,MAAMK,QAAQ,CAAC,GAACC,IAG3BnB,EAAS,EAAEa,MAAMK,QAAQ,CAAC,GAAC,YAAAE,IAd9B,cACoCvB,EAAa;CAAAyB,YAAA,GAAAC,GAAA;EAWGC,AAXH,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAlB,IAAAmB,EAAA,IAAA,GAAAC,EAAA,MAKb,SAAS,EAAA,GAAAF,EAAA,MAAAhB,GAAAmB,EAAA,MAG3B,QAAQ,CAAA,GAAAH,EAAA,MAAAf,GAAAmB,EAAA,MAGiBC,KAAAA,CAAS,CAAA,GAAAL,EAAA,MAAAd,GAAAoB,EAAA,MAG/B,EAAK,CAAA;CAAA;CAAA,KAAAnB,KAAA;EAAA,OAAAoB,EAAAzB,GAAA,IAAA;CAAA;CAAA,IATf0B,QAAOC,GAAA;EAAAC,EAAA5B,GAAA,MAAA2B,CAAA;CAAA;CAAA,IAGPpB,OAAI;EAAA,OAAAkB,EAAAvB,GAAA,IAAA;CAAA;CAAA,IAAJK,KAAIoB,GAAA;EAAAC,EAAA1B,GAAA,MAAAyB,CAAA;CAAA;CAAA,IAGJE,WAAQ;EAAA,OAAAJ,EAAAtB,GAAA,IAAA;CAAA;CAAA,IAAR0B,SAAQF,GAAA;EAAAC,EAAAzB,GAAA,MAAAwB,CAAA;CAAA;CAAA,IAGRG,UAAO;EAAA,OAAAL,EAAArB,GAAA,IAAA;CAAA;CAAA,IAAP0B,QAAOH,GAAA;EAAAC,EAAAxB,GAAA,MAAAuB,CAAA;CAAA;CAEhBI,SAAU;EACR,IAAMF,IAAW,KAAKA,YAAY,KAAKC;EAEvC,OAAOtC,CAAI;uBACQ,KAAKe,KAAI,aAAcsB,EAAQ,UAAW,KAAKG,QAAO;cAC/D,KAAKF,UAAUtC,CAAI,8DAA8DC,EAAO;;gCAEtE,KAAKwC,iBAAgB;;;;;CAKnD;CAEQA,iBAAkBC,GAAU;EAClC,IAAMC,IAAOD,EAAEE;EAEf,KAAKC,gBAAgB,sBAAsBF,EAAKG,iBAAiB,CAAC,CAACC,SAAS,CAAC;CAC/E;CAEQP,UAAW;EACjB,QAAQ,KAAKzB,MAAb;GACE,KAAK;IACH,KAAKiC,aAAa,CAAC,CAACC,MAAMC,cAAc;IACxC;GACF,KAAK
|
|
1
|
+
{"version":3,"file":"Button.esm.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, r as t, t as n } from "../chunks/button-
|
|
1
|
+
import { n as e, r as t, t as n } from "../chunks/button-BJyFKOKO.js";
|
|
2
2
|
export { e as BUTTON_VARIANTS, t as Button, n as default };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/components/form-control-component/FormControlComponent.cjs.js");require("../../lib/components/index.cjs.js"),require("../../_virtual/~icons/lucide/chevron-down.cjs.js");const n=require("../../lib/timing.cjs.js");require("../../_virtual/~icons/svg-spinners/3-dots-fade.cjs.js");const r=require("./Combobox.styles.cjs.js");let i=require("lit"),a=require("lit/decorators.js"),o=require("@lit/task");require("@awesome.me/webawesome/dist/components/popup/popup.js");var s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,ee,
|
|
1
|
+
const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/components/form-control-component/FormControlComponent.cjs.js");require("../../lib/components/index.cjs.js"),require("../../_virtual/~icons/lucide/chevron-down.cjs.js");const n=require("../../lib/timing.cjs.js");require("../../_virtual/~icons/svg-spinners/3-dots-fade.cjs.js");const r=require("./Combobox.styles.cjs.js");let i=require("lit"),a=require("lit/decorators.js"),o=require("@lit/task");require("@awesome.me/webawesome/dist/components/popup/popup.js");var s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,ee,te,ne,re,ie,ae,N,P,F,I,L,R,z,B,V,H,U,W,G,K;function q(e,t,n){oe(e,t),t.set(e,n)}function oe(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function J(e,t,n){return e.set(se(e,t),n),n}function Y(e,t){return e.get(se(e,t))}function se(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function X(e,t,n){return(t=Z(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ce(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:ue(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||ue(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return de(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:Z(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function Z(e){var t=le(e,`string`);return typeof t==`symbol`?t:t+``}function le(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)}function ue(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function de(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}function fe(e){return e}var Q=class extends Error{};function pe(e){return e}w=[e.customElement(`solid-ui-combobox`)];var $;new(G=(l=new WeakMap,u=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,m=new WeakMap,h=new WeakMap,g=new WeakMap,_=new WeakMap,v=new WeakMap,y=new WeakMap,b=new WeakMap,x=new WeakMap,K=(T=(0,a.property)({type:Boolean,reflect:!0,attribute:`select-only`}),D=(0,a.property)({type:String,attribute:`async-options-url`}),k=(0,a.property)({type:String,attribute:`async-options-results-field`}),j=(0,a.property)({type:String,attribute:`async-options-label-field`}),ee=(0,a.property)({type:String,attribute:`async-options-value-field`}),ne=(0,a.property)({type:Function}),ie=(0,a.property)({type:Array}),N=(0,a.query)(`input`),F=(0,a.property)({type:Boolean,reflect:!0}),L=(0,a.state)(),z=(0,a.state)(),V=(0,a.state)(),U=(0,a.state)(),`selectOnly`),c=class extends t.default{get[K](){return Y(l,this)}set selectOnly(e){J(l,this,e)}get asyncOptionsUrl(){return Y(u,this)}set asyncOptionsUrl(e){J(u,this,e)}get asyncOptionsResultsField(){return Y(d,this)}set asyncOptionsResultsField(e){J(d,this,e)}get asyncOptionsLabelField(){return Y(f,this)}set asyncOptionsLabelField(e){J(f,this,e)}get asyncOptionsValueField(){return Y(p,this)}set asyncOptionsValueField(e){J(p,this,e)}get asyncOptionsProvider(){return Y(m,this)}set asyncOptionsProvider(e){J(m,this,e)}get optionsFallback(){return Y(h,this)}set optionsFallback(e){J(h,this,e)}get controlElement(){return Y(g,this)}set controlElement(e){J(g,this,e)}get readonly(){return Y(_,this)}set readonly(e){J(_,this,e)}get filter(){return Y(v,this)}set filter(e){J(v,this,e)}get displayValue(){return Y(y,this)}set displayValue(e){J(y,this,e)}get open(){return Y(b,this)}set open(e){J(b,this,e)}get activeIndex(){return Y(x,this)}set activeIndex(e){J(x,this,e)}constructor(){super(),q(this,l,(S(this),E(this,!1))),q(this,u,O(this,``)),q(this,d,A(this,``)),q(this,f,M(this,``)),q(this,p,te(this,``)),q(this,m,re(this,null)),q(this,h,ae(this,null)),q(this,g,P(this,null)),q(this,_,I(this,!1)),q(this,v,R(this,``)),q(this,y,B(this,``)),q(this,b,H(this,!1)),q(this,x,W(this,-1)),X(this,`openListenersAttached`,!1),X(this,`updateDebouncedFilter`,n.debounce(300,e=>this.filter=e)),X(this,`asyncOptionsTask`,void 0),X(this,`_selectedOption`,void 0),X(this,`listboxId`,void 0),X(this,`handleDocumentFocusIn`,e=>{e.composedPath().includes(this)||this.hide()}),X(this,`handleDocumentMouseDown`,e=>{e.composedPath().includes(this)||this.hide()}),this.listboxId=`listbox-${this.controlTrait.controlId}`}get selectedOption(){return this._selectedOption}disconnectedCallback(){super.disconnectedCallback(),this.removeOpenListeners()}willUpdate(e){if(super.willUpdate(e),(e.has(`asyncOptionsUrl`)||e.has(`asyncOptionsProvider`))&&this.updateAsyncOptionsTask(),e.has(`value`)){let e=this.getFilteredOptions(),t=e.find(e=>e.selectable!==!1&&e.value===this.value)??this.optionsFallback?.find(e=>e.value===this.value),n=t?.selectable!==!1&&t?.label;this.updateDisplayValue(n||this.value),this.open&&(this.activeIndex=this.getInitialActiveIndex(e)),this._selectedOption&&this._selectedOption.value!==this.value&&(this._selectedOption=void 0)}}render(){let e=this.getFilteredOptions(),t=(this.open&&this.activeIndex>=0?e[this.activeIndex]:void 0)===void 0?void 0:this.getOptionId(this.activeIndex),n=this.placeholder||`Combobox`;return i.html`
|
|
2
2
|
${this.controlTrait.renderLabel()}
|
|
3
3
|
<wa-popup
|
|
4
4
|
placement="bottom"
|
|
@@ -55,5 +55,5 @@ const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/c
|
|
|
55
55
|
</div>`)}
|
|
56
56
|
</div>
|
|
57
57
|
</wa-popup>
|
|
58
|
-
`}getFilteredOptions(){return this.asyncOptionsTask?this.asyncOptionsTask.render({initial:()=>this.optionsFallback??[],complete:e=>e,pending:()=>[{value:``,label:`Loading...`,template:i.html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,selectable:!1}],error:e=>{let t=!(e instanceof Q),n=Object(e).message??`Something went wrong`;return[{value:``,label:n,template:i.html`<span class="message message--${t?`error`:`info`}">${n}</span>`,selectable:!1}]}}):this.getOptionsFromDOM().filter(e=>String(e.label).toLowerCase().includes(this.filter))}getOptionsFromDOM(){let e=this.querySelectorAll(`solid-ui-combobox-option`);return Array.from(e).map(e=>({value:e.value,label:e.textContent??``}))}getOptionId(e){return`${this.listboxId}-option-${e}`}getInitialActiveIndex(e){let t=e.findIndex(e=>e.value===this.value);return t>=0?t:e.length>0?0:-1}getNextIndex(e,t,n){return t.length===0?-1:(e+n+t.length)%t.length}setActiveIndex(e){this.activeIndex=e}updateDisplayValue(e){if(this.displayValue=e?String(e):``,this.open){let e=this.displayValue.toLowerCase();this.asyncOptionsTask?this.updateDebouncedFilter(e):this.filter=e}}updateAsyncOptionsTask(){if(!this.asyncOptionsUrl&&!this.asyncOptionsProvider){this.asyncOptionsTask=void 0;return}this.asyncOptionsTask??=new o.Task(this,async([e])=>{if(this.asyncOptionsProvider){let t=await this.asyncOptionsProvider(e);if(t.length===0)throw new Q(`No results found`);return t}let t=await(await fetch(this.asyncOptionsUrl.replace(`%search%`,encodeURIComponent(e)))).json(),n=Array.from(this.asyncOptionsResultsField?t[this.asyncOptionsResultsField]:t);if(n.length===0)throw new Q(`No results found`);let r=this.asyncOptionsLabelField||`label`,i=this.asyncOptionsValueField||`value`;return n.map(e=>({label:String(Object(e)[r]),value:Object(e)[i]}))},()=>[this.filter])}show(e){if(this.open)return;let t=this.getFilteredOptions();t.length!==0&&(this.open=!0,this.activeIndex=e?.focusLast?t.length-1:this.getInitialActiveIndex(t),this.addOpenListeners(),requestAnimationFrame(()=>this.scrollActiveOptionIntoView()))}hide(){this.open&&(this.filter=``,this.open=!1,this.activeIndex=-1,this.removeOpenListeners(),this.updateDebouncedFilter.cancel())}selectOption(e){let t=this.value;this._selectedOption=e,this.hide(),this.controlTrait.setValue(e.value),this.controlElement?.focus({preventScroll:!0}),this.dispatchEvent(new CustomEvent(`change`,{bubbles:!0,composed:!0,detail:{option:e}})),t===this.value&&this.updateDisplayValue(e.label)}scrollActiveOptionIntoView(){this.activeIndex<0||this.shadowRoot?.querySelector(`#${this.getOptionId(this.activeIndex)}`)?.scrollIntoView({block:`nearest`})}addOpenListeners(){if(this.openListenersAttached)return;document.addEventListener(`focusin`,this.handleDocumentFocusIn),document.addEventListener(`mousedown`,this.handleDocumentMouseDown);let e=this.getRootNode();e!==document&&e.addEventListener(`focusin`,this.handleDocumentFocusIn),this.openListenersAttached=!0}removeOpenListeners(){if(!this.openListenersAttached)return;document.removeEventListener(`focusin`,this.handleDocumentFocusIn),document.removeEventListener(`mousedown`,this.handleDocumentMouseDown);let e=this.getRootNode();e!==document&&e.removeEventListener(`focusin`,this.handleDocumentFocusIn),this.openListenersAttached=!1}onAnchorMouseDown(e){e.target!==this.controlElement&&(e.preventDefault(),this.controlElement?.focus({preventScroll:!0}))}onInputFocus(){this.show()}openPopupFromKey(e){this.open||this.show({focusLast:e})}onInputKeyDown(e){let t=this.getFilteredOptions();switch(e.key){case`ArrowDown`:e.preventDefault(),this.open?(this.activeIndex=this.getNextIndex(this.activeIndex,t,1),this.scrollActiveOptionIntoView()):this.openPopupFromKey(!1);break;case`ArrowUp`:e.preventDefault(),this.open?(this.activeIndex=this.getNextIndex(this.activeIndex,t,-1),this.scrollActiveOptionIntoView()):this.openPopupFromKey(!0);break;case`Enter`:this.open&&this.activeIndex>=0&&t[this.activeIndex]?(e.preventDefault(),this.selectOption(t[this.activeIndex])):this.open||(e.preventDefault(),this.controlTrait.onSubmit());break;case`Escape`:this.open&&(e.preventDefault(),e.stopPropagation(),this.hide(),this.controlElement?.focus({preventScroll:!0}));break;case`Tab`:this.hide();break;default:this.open||this.show()}}onListboxMouseDown(e){if(e.preventDefault(),!(e.target instanceof HTMLElement))return;let t=e.target.closest(`[role="option"]`);if(!t)return;let n=t.id,r=Number.parseInt(n.replace(`${this.listboxId}-option-`,``),10),i=this.getFilteredOptions()[r];i&&this.selectOption(i)}},{e:[
|
|
58
|
+
`}getFilteredOptions(){return this.asyncOptionsTask?this.asyncOptionsTask.render({initial:()=>this.optionsFallback??[],complete:e=>e,pending:()=>[{value:``,label:`Loading...`,template:i.html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,selectable:!1}],error:e=>{let t=!(e instanceof Q),n=Object(e).message??`Something went wrong`;return[{value:``,label:n,template:i.html`<span class="message message--${t?`error`:`info`}">${n}</span>`,selectable:!1}]}}):this.getOptionsFromDOM().filter(e=>String(e.label).toLowerCase().includes(this.filter))}getOptionsFromDOM(){let e=this.querySelectorAll(`solid-ui-combobox-option`);return Array.from(e).map(e=>({value:e.value,label:e.textContent??``}))}getOptionId(e){return`${this.listboxId}-option-${e}`}getInitialActiveIndex(e){let t=e.findIndex(e=>e.value===this.value);return t>=0?t:e.length>0?0:-1}getNextIndex(e,t,n){return t.length===0?-1:(e+n+t.length)%t.length}setActiveIndex(e){this.activeIndex=e}updateDisplayValue(e){if(this.displayValue=e?String(e):``,this.open){let e=this.displayValue.toLowerCase();this.asyncOptionsTask?this.updateDebouncedFilter(e):this.filter=e}}updateAsyncOptionsTask(){if(!this.asyncOptionsUrl&&!this.asyncOptionsProvider){this.asyncOptionsTask=void 0;return}this.asyncOptionsTask??=new o.Task(this,async([e])=>{if(this.asyncOptionsProvider){let t=await this.asyncOptionsProvider(e);if(t.length===0)throw new Q(`No results found`);return t}let t=await(await fetch(this.asyncOptionsUrl.replace(`%search%`,encodeURIComponent(e)))).json(),n=Array.from(this.asyncOptionsResultsField?t[this.asyncOptionsResultsField]:t);if(n.length===0)throw new Q(`No results found`);let r=this.asyncOptionsLabelField||`label`,i=this.asyncOptionsValueField||`value`;return n.map(e=>({label:String(Object(e)[r]),value:Object(e)[i]}))},()=>[this.filter])}show(e){if(this.open)return;let t=this.getFilteredOptions();t.length!==0&&(this.open=!0,this.activeIndex=e?.focusLast?t.length-1:this.getInitialActiveIndex(t),this.addOpenListeners(),requestAnimationFrame(()=>this.scrollActiveOptionIntoView()))}hide(){this.open&&(this.filter=``,this.open=!1,this.activeIndex=-1,this.removeOpenListeners(),this.updateDebouncedFilter.cancel())}selectOption(e){let t=this.value;this._selectedOption=e,this.hide(),this.controlTrait.setValue(e.value),this.controlElement?.focus({preventScroll:!0}),this.dispatchEvent(new CustomEvent(`change`,{bubbles:!0,composed:!0,detail:{option:e}})),t===this.value&&this.updateDisplayValue(e.label)}scrollActiveOptionIntoView(){this.activeIndex<0||this.shadowRoot?.querySelector(`#${this.getOptionId(this.activeIndex)}`)?.scrollIntoView({block:`nearest`})}addOpenListeners(){if(this.openListenersAttached)return;document.addEventListener(`focusin`,this.handleDocumentFocusIn),document.addEventListener(`mousedown`,this.handleDocumentMouseDown);let e=this.getRootNode();e!==document&&e.addEventListener(`focusin`,this.handleDocumentFocusIn),this.openListenersAttached=!0}removeOpenListeners(){if(!this.openListenersAttached)return;document.removeEventListener(`focusin`,this.handleDocumentFocusIn),document.removeEventListener(`mousedown`,this.handleDocumentMouseDown);let e=this.getRootNode();e!==document&&e.removeEventListener(`focusin`,this.handleDocumentFocusIn),this.openListenersAttached=!1}onAnchorMouseDown(e){e.target!==this.controlElement&&(e.preventDefault(),this.controlElement?.focus({preventScroll:!0}))}onInputFocus(){this.show()}openPopupFromKey(e){this.open||this.show({focusLast:e})}onInputKeyDown(e){let t=this.getFilteredOptions();switch(e.key){case`ArrowDown`:e.preventDefault(),this.open?(this.activeIndex=this.getNextIndex(this.activeIndex,t,1),this.scrollActiveOptionIntoView()):this.openPopupFromKey(!1);break;case`ArrowUp`:e.preventDefault(),this.open?(this.activeIndex=this.getNextIndex(this.activeIndex,t,-1),this.scrollActiveOptionIntoView()):this.openPopupFromKey(!0);break;case`Enter`:this.open&&this.activeIndex>=0&&t[this.activeIndex]?(e.preventDefault(),this.selectOption(t[this.activeIndex])):this.open||(e.preventDefault(),this.controlTrait.onSubmit());break;case`Escape`:this.open&&(e.preventDefault(),e.stopPropagation(),this.hide(),this.controlElement?.focus({preventScroll:!0}));break;case`Tab`:this.hide();break;default:this.open||this.show()}}onListboxMouseDown(e){if(e.preventDefault(),!(e.target instanceof HTMLElement))return;let t=e.target.closest(`[role="option"]`);if(!t)return;let n=t.id,r=Number.parseInt(n.replace(`${this.listboxId}-option-`,``),10),i=this.getFilteredOptions()[r];i&&this.selectOption(i)}},{e:[E,O,A,M,te,re,ae,P,I,R,B,H,W,S],c:[$,C]}=ce(c,[[T,1,`selectOnly`],[D,1,`asyncOptionsUrl`],[k,1,`asyncOptionsResultsField`],[j,1,`asyncOptionsLabelField`],[ee,1,`asyncOptionsValueField`],[ne,1,`asyncOptionsProvider`],[ie,1,`optionsFallback`],[N,1,`controlElement`],[F,1,`readonly`],[L,1,`filter`],[z,1,`displayValue`],[V,1,`open`],[U,1,`activeIndex`]],w,0,void 0,t.default),c),s=class extends fe{constructor(){super($),X(this,`styles`,r.default),C()}},X(s,G,void 0),s),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return $}}),exports.defineAsyncComboboxOptionsProvider=pe;
|
|
59
59
|
//# sourceMappingURL=Combobox.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.cjs.js","names":["customElement","FormControlComponent","Task","html","nothing","property","query","state","debounce","styles","AsyncOptionsInfo","Error","defineAsyncComboboxOptionsProvider","provider","_classDecs","_Combobox","_Combobox2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_ref","_selectOnlyDecs","type","Boolean","reflect","attribute","_asyncOptionsUrlDecs","String","_asyncOptionsResultsFieldDecs","_asyncOptionsLabelFieldDecs","_asyncOptionsValueFieldDecs","_asyncOptionsProviderDecs","Function","_optionsFallbackDecs","Array","_controlElementDecs","_filterDecs","_displayValueDecs","_openDecs","_activeIndexDecs","_Combobox3","Combobox","_classPrivateFieldGet","selectOnly","v","_classPrivateFieldSet","asyncOptionsUrl","asyncOptionsResultsField","asyncOptionsLabelField","asyncOptionsValueField","asyncOptionsProvider","optionsFallback","controlElement","filter","displayValue","open","activeIndex","constructor","_classPrivateFieldInitSpec","_initProto","_init_selectOnly","_init_asyncOptionsUrl","_init_asyncOptionsResultsField","_init_asyncOptionsLabelField","_init_asyncOptionsValueField","_init_asyncOptionsProvider","_init_optionsFallback","_init_controlElement","_init_filter","_init_displayValue","_init_open","_init_activeIndex","_defineProperty","value","event","path","composedPath","includes","hide","listboxId","controlTrait","controlId","selectedOption","_selectedOption","disconnectedCallback","removeOpenListeners","willUpdate","changedProperties","has","updateAsyncOptionsTask","options","getFilteredOptions","option","find","selectable","optionLabel","label","updateDisplayValue","getInitialActiveIndex","undefined","render","activeOption","activeDescendant","getOptionId","accessibleName","placeholder","renderLabel","onAnchorMouseDown","name","labelId","required","onInputKeyDown","onInputFocus","onInput","onListboxMouseDown","map","index","setActiveIndex","template","asyncOptionsTask","initial","complete","pending","error","isError","message","Object","getOptionsFromDOM","toLowerCase","querySelectorAll","from","textContent","selectedIndex","findIndex","length","getNextIndex","currentIndex","direction","updateDebouncedFilter","results","response","fetch","replace","encodeURIComponent","data","json","labelField","valueField","result","show","filteredOptions","focusLast","addOpenListeners","requestAnimationFrame","scrollActiveOptionIntoView","cancel","selectOption","previousValue","setValue","focus","preventScroll","dispatchEvent","CustomEvent","bubbles","composed","detail","shadowRoot","querySelector","scrollIntoView","block","openListenersAttached","document","addEventListener","handleDocumentFocusIn","handleDocumentMouseDown","root","getRootNode","removeEventListener","target","preventDefault","openPopupFromKey","key","onSubmit","stopPropagation","HTMLElement","optionElement","closest","optionId","id","Number","parseInt","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/combobox/Combobox.ts"],"sourcesContent":["import { customElement, FormControlComponent, FormControlValue } from '@/lib/components'\nimport { Task } from '@lit/task'\nimport { html, nothing, TemplateResult, type PropertyValues } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { debounce } from '@/lib/timing'\nimport type ComboboxOption from '@/components/combobox-option/ComboboxOption'\n\nimport '~icons/lucide/chevron-down'\nimport '~icons/svg-spinners/3-dots-fade'\nimport '@awesome.me/webawesome/dist/components/popup/popup.js'\n\nimport styles from './Combobox.styles.css'\n\nclass AsyncOptionsInfo extends Error {}\n\nexport type ComboboxOptionData = {\n value: FormControlValue;\n label: string;\n template?: TemplateResult;\n selectable?: boolean;\n}\n\nexport type ComboboxChangeEvent = CustomEvent<{ option: ComboboxOptionData }>\n\nexport type AsyncComboboxOptionsProvider = (query: string) => Promise<ComboboxOptionData[]>\n\nexport function defineAsyncComboboxOptionsProvider<T extends AsyncComboboxOptionsProvider> (provider: T): T {\n return provider\n}\n\n@customElement('solid-ui-combobox')\nexport default class Combobox extends FormControlComponent {\n static styles = styles\n\n @property({ type: Boolean, reflect: true, attribute: 'select-only' })\n accessor selectOnly = false\n\n @property({ type: String, attribute: 'async-options-url' })\n accessor asyncOptionsUrl = ''\n\n @property({ type: String, attribute: 'async-options-results-field' })\n accessor asyncOptionsResultsField = ''\n\n @property({ type: String, attribute: 'async-options-label-field' })\n accessor asyncOptionsLabelField = ''\n\n @property({ type: String, attribute: 'async-options-value-field' })\n accessor asyncOptionsValueField = ''\n\n @property({ type: Function })\n accessor asyncOptionsProvider: AsyncComboboxOptionsProvider | null = null\n\n @property({ type: Array })\n accessor optionsFallback: ComboboxOptionData[] | null = null\n\n @query('input')\n protected accessor controlElement: HTMLInputElement | null = null\n\n @state()\n private accessor filter = ''\n\n @state()\n private accessor displayValue = ''\n\n @state()\n private accessor open = false\n\n @state()\n private accessor activeIndex = -1\n\n private openListenersAttached = false\n private updateDebouncedFilter = debounce(300, (value) => (this.filter = value))\n private asyncOptionsTask?: Task<readonly [string], ComboboxOptionData[]>\n private _selectedOption: ComboboxOptionData | undefined\n private readonly listboxId: string\n\n constructor () {\n super()\n\n this.listboxId = `listbox-${this.controlTrait.controlId}`\n }\n\n get selectedOption (): ComboboxOptionData | undefined {\n return this._selectedOption\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.removeOpenListeners()\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('asyncOptionsUrl') || changedProperties.has('asyncOptionsProvider')) {\n this.updateAsyncOptionsTask()\n }\n\n if (changedProperties.has('value')) {\n const options = this.getFilteredOptions()\n const option = options.find((option) => option.selectable !== false && option.value === this.value) ??\n this.optionsFallback?.find((option) => option.value === this.value)\n const optionLabel = option?.selectable !== false && option?.label\n\n this.updateDisplayValue(optionLabel || this.value)\n\n if (this.open) {\n this.activeIndex = this.getInitialActiveIndex(options)\n }\n\n if (this._selectedOption && this._selectedOption.value !== this.value) {\n this._selectedOption = undefined\n }\n }\n }\n\n protected render () {\n const options = this.getFilteredOptions()\n const activeOption =\n this.open && this.activeIndex >= 0 ? options[this.activeIndex] : undefined\n const activeDescendant =\n activeOption !== undefined ? this.getOptionId(this.activeIndex) : undefined\n const accessibleName = this.placeholder || 'Combobox'\n\n return html`\n ${this.controlTrait.renderLabel()}\n <wa-popup\n placement=\"bottom\"\n flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n ?active=${this.open}\n >\n <div class=\"input-wrapper\" slot=\"anchor\" @mousedown=${this.onAnchorMouseDown}>\n <input\n id=\"${this.controlTrait.controlId}\"\n type=\"text\"\n name=${this.name}\n placeholder=${this.placeholder}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=${this.listboxId}\n aria-activedescendant=${activeDescendant ?? nothing}\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n aria-required=${this.required ? 'true' : nothing}\n autocomplete=\"off\"\n spellcheck=\"false\"\n ?required=${this.required}\n .value=${this.displayValue}\n @keydown=${this.onInputKeyDown}\n @focus=${this.onInputFocus}\n @input=${() => this.selectOnly ? this.updateDisplayValue(this.controlElement?.value ?? '') : this.controlTrait.onInput()}\n />\n <icon-lucide-chevron-down></icon-lucide-chevron-down>\n </div>\n <div\n id=${this.listboxId}\n class=\"listbox\"\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n ?hidden=${!this.open}\n @mousedown=${this.onListboxMouseDown}\n >\n ${options.map((option, index) => {\n return option.selectable !== false\n ? html`<div\n id=${this.getOptionId(index)}\n role=\"option\"\n aria-selected=${option.value === this.value ? 'true' : 'false'}\n data-active=${index === this.activeIndex || nothing}\n @mousemove=${() => this.setActiveIndex(index)}\n >\n ${option.template ?? option.label}\n </div>`\n : html`<div class=\"non-selectable-option\">${option.template ?? option.label}</div>`\n })}\n </div>\n </wa-popup>\n `\n }\n\n private getFilteredOptions (): ComboboxOptionData[] {\n if (this.asyncOptionsTask) {\n return this.asyncOptionsTask.render({\n initial: () => this.optionsFallback ?? [],\n complete: (options) => options,\n pending: () => [\n {\n value: '',\n label: 'Loading...',\n template: html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,\n selectable: false\n } as const,\n ],\n error: (error) => {\n const isError = !(error instanceof AsyncOptionsInfo)\n const message = Object(error).message ?? 'Something went wrong'\n\n return [\n {\n value: '',\n label: message,\n template: html`<span class=\"message message--${isError ? 'error' : 'info'}\">${message}</span>`,\n selectable: false\n } as const,\n ]\n },\n })\n }\n\n return this.getOptionsFromDOM().filter((option) =>\n String(option.label).toLowerCase().includes(this.filter)\n )\n }\n\n private getOptionsFromDOM (): ComboboxOptionData[] {\n const options = this.querySelectorAll<ComboboxOption>(\n 'solid-ui-combobox-option'\n )\n\n return Array.from(options).map((option) => ({\n value: option.value,\n label: option.textContent ?? '',\n }))\n }\n\n private getOptionId (index: number): string {\n return `${this.listboxId}-option-${index}`\n }\n\n private getInitialActiveIndex (options: ComboboxOptionData[]): number {\n const selectedIndex = options.findIndex((option) => option.value === this.value)\n\n if (selectedIndex >= 0) {\n return selectedIndex\n }\n\n return options.length > 0 ? 0 : -1\n }\n\n private getNextIndex (\n currentIndex: number,\n options: ComboboxOptionData[],\n direction: 1 | -1\n ): number {\n if (options.length === 0) {\n return -1\n }\n\n return (currentIndex + direction + options.length) % options.length\n }\n\n private setActiveIndex (index: number) {\n this.activeIndex = index\n }\n\n private updateDisplayValue (value: unknown) {\n this.displayValue = value ? String(value) : ''\n\n if (this.open) {\n const filter = this.displayValue.toLowerCase()\n\n if (this.asyncOptionsTask) {\n this.updateDebouncedFilter(filter)\n } else {\n this.filter = filter\n }\n }\n }\n\n private updateAsyncOptionsTask () {\n if (!this.asyncOptionsUrl && !this.asyncOptionsProvider) {\n this.asyncOptionsTask = undefined\n\n return\n }\n\n this.asyncOptionsTask ??= new Task(\n this,\n async ([filter]) => {\n if (this.asyncOptionsProvider) {\n const results = await this.asyncOptionsProvider(filter)\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n return results\n }\n\n const response = await fetch(\n this.asyncOptionsUrl.replace('%search%', encodeURIComponent(filter))\n )\n const data = await response.json()\n const results = Array.from(\n this.asyncOptionsResultsField\n ? data[this.asyncOptionsResultsField]\n : data\n )\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n const labelField = this.asyncOptionsLabelField || 'label'\n const valueField = this.asyncOptionsValueField || 'value'\n\n return results.map((result) => ({\n label: String(Object(result)[labelField]),\n value: Object(result)[valueField],\n }))\n },\n () => [this.filter]\n )\n }\n\n private show (options?: { focusLast?: boolean }) {\n if (this.open) {\n return\n }\n\n const filteredOptions = this.getFilteredOptions()\n\n if (filteredOptions.length === 0) {\n return\n }\n\n this.open = true\n this.activeIndex = options?.focusLast\n ? filteredOptions.length - 1\n : this.getInitialActiveIndex(filteredOptions)\n this.addOpenListeners()\n\n requestAnimationFrame(() => this.scrollActiveOptionIntoView())\n }\n\n private hide () {\n if (!this.open) {\n return\n }\n\n this.filter = ''\n this.open = false\n this.activeIndex = -1\n this.removeOpenListeners()\n this.updateDebouncedFilter.cancel()\n }\n\n private selectOption (option: ComboboxOptionData) {\n const previousValue = this.value\n\n this._selectedOption = option\n\n this.hide()\n this.controlTrait.setValue(option.value)\n this.controlElement?.focus({ preventScroll: true })\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { option } }))\n\n if (previousValue === this.value) {\n this.updateDisplayValue(option.label)\n }\n }\n\n private scrollActiveOptionIntoView () {\n if (this.activeIndex < 0) {\n return\n }\n\n this.shadowRoot\n ?.querySelector(`#${this.getOptionId(this.activeIndex)}`)\n ?.scrollIntoView({ block: 'nearest' })\n }\n\n private addOpenListeners () {\n if (this.openListenersAttached) {\n return\n }\n\n document.addEventListener('focusin', this.handleDocumentFocusIn)\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.addEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = true\n }\n\n private removeOpenListeners () {\n if (!this.openListenersAttached) {\n return\n }\n\n document.removeEventListener('focusin', this.handleDocumentFocusIn)\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.removeEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = false\n }\n\n private handleDocumentFocusIn = (event: Event) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private onAnchorMouseDown (event: MouseEvent) {\n if (event.target === this.controlElement) {\n return\n }\n\n event.preventDefault()\n this.controlElement?.focus({ preventScroll: true })\n }\n\n private onInputFocus () {\n this.show()\n }\n\n private openPopupFromKey (focusLast: boolean) {\n if (!this.open) {\n this.show({ focusLast })\n }\n }\n\n private onInputKeyDown (event: KeyboardEvent) {\n const options = this.getFilteredOptions()\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(false)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, 1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'ArrowUp':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(true)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, -1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'Enter':\n if (this.open && this.activeIndex >= 0 && options[this.activeIndex]) {\n event.preventDefault()\n this.selectOption(options[this.activeIndex])\n } else if (!this.open) {\n event.preventDefault()\n this.controlTrait.onSubmit()\n }\n break\n case 'Escape':\n if (this.open) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this.controlElement?.focus({ preventScroll: true })\n }\n break\n case 'Tab':\n this.hide()\n break\n default:\n if (!this.open) {\n this.show()\n }\n }\n }\n\n private onListboxMouseDown (event: MouseEvent) {\n event.preventDefault()\n\n if (!(event.target instanceof HTMLElement)) {\n return\n }\n\n const optionElement = event.target.closest('[role=\"option\"]')\n\n if (!optionElement) {\n return\n }\n\n const optionId = optionElement.id\n const index = Number.parseInt(optionId.replace(`${this.listboxId}-option-`, ''), 10)\n const option = this.getFilteredOptions()[index]\n\n if (option) {\n this.selectOption(option)\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Combobox.cjs.js","names":["customElement","FormControlComponent","Task","html","nothing","property","query","state","debounce","styles","AsyncOptionsInfo","Error","defineAsyncComboboxOptionsProvider","provider","_classDecs","_Combobox","_Combobox2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_ref","_selectOnlyDecs","type","Boolean","reflect","attribute","_asyncOptionsUrlDecs","String","_asyncOptionsResultsFieldDecs","_asyncOptionsLabelFieldDecs","_asyncOptionsValueFieldDecs","_asyncOptionsProviderDecs","Function","_optionsFallbackDecs","Array","_controlElementDecs","_readonlyDecs","_filterDecs","_displayValueDecs","_openDecs","_activeIndexDecs","_Combobox3","Combobox","_classPrivateFieldGet","selectOnly","v","_classPrivateFieldSet","asyncOptionsUrl","asyncOptionsResultsField","asyncOptionsLabelField","asyncOptionsValueField","asyncOptionsProvider","optionsFallback","controlElement","readonly","filter","displayValue","open","activeIndex","constructor","_classPrivateFieldInitSpec","_initProto","_init_selectOnly","_init_asyncOptionsUrl","_init_asyncOptionsResultsField","_init_asyncOptionsLabelField","_init_asyncOptionsValueField","_init_asyncOptionsProvider","_init_optionsFallback","_init_controlElement","_init_readonly","_init_filter","_init_displayValue","_init_open","_init_activeIndex","_defineProperty","value","event","path","composedPath","includes","hide","listboxId","controlTrait","controlId","selectedOption","_selectedOption","disconnectedCallback","removeOpenListeners","willUpdate","changedProperties","has","updateAsyncOptionsTask","options","getFilteredOptions","option","find","selectable","optionLabel","label","updateDisplayValue","getInitialActiveIndex","undefined","render","activeOption","activeDescendant","getOptionId","accessibleName","placeholder","renderLabel","onAnchorMouseDown","name","labelId","required","onInputKeyDown","onInputFocus","onInput","onListboxMouseDown","map","index","setActiveIndex","template","asyncOptionsTask","initial","complete","pending","error","isError","message","Object","getOptionsFromDOM","toLowerCase","querySelectorAll","from","textContent","selectedIndex","findIndex","length","getNextIndex","currentIndex","direction","updateDebouncedFilter","results","response","fetch","replace","encodeURIComponent","data","json","labelField","valueField","result","show","filteredOptions","focusLast","addOpenListeners","requestAnimationFrame","scrollActiveOptionIntoView","cancel","selectOption","previousValue","setValue","focus","preventScroll","dispatchEvent","CustomEvent","bubbles","composed","detail","shadowRoot","querySelector","scrollIntoView","block","openListenersAttached","document","addEventListener","handleDocumentFocusIn","handleDocumentMouseDown","root","getRootNode","removeEventListener","target","preventDefault","openPopupFromKey","key","onSubmit","stopPropagation","HTMLElement","optionElement","closest","optionId","id","Number","parseInt","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/combobox/Combobox.ts"],"sourcesContent":["import { customElement, FormControlComponent, FormControlValue } from '@/lib/components'\nimport { Task } from '@lit/task'\nimport { html, nothing, TemplateResult, type PropertyValues } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { debounce } from '@/lib/timing'\nimport type ComboboxOption from '@/components/combobox-option/ComboboxOption'\n\nimport '~icons/lucide/chevron-down'\nimport '~icons/svg-spinners/3-dots-fade'\nimport '@awesome.me/webawesome/dist/components/popup/popup.js'\n\nimport styles from './Combobox.styles.css'\n\nclass AsyncOptionsInfo extends Error {}\n\nexport type ComboboxOptionData = {\n value: FormControlValue;\n label: string;\n template?: TemplateResult;\n selectable?: boolean;\n}\n\nexport type ComboboxChangeEvent = CustomEvent<{ option: ComboboxOptionData }>\n\nexport type AsyncComboboxOptionsProvider = (query: string) => Promise<ComboboxOptionData[]>\n\nexport function defineAsyncComboboxOptionsProvider<T extends AsyncComboboxOptionsProvider> (provider: T): T {\n return provider\n}\n\n@customElement('solid-ui-combobox')\nexport default class Combobox extends FormControlComponent {\n static styles = styles\n\n @property({ type: Boolean, reflect: true, attribute: 'select-only' })\n accessor selectOnly = false\n\n @property({ type: String, attribute: 'async-options-url' })\n accessor asyncOptionsUrl = ''\n\n @property({ type: String, attribute: 'async-options-results-field' })\n accessor asyncOptionsResultsField = ''\n\n @property({ type: String, attribute: 'async-options-label-field' })\n accessor asyncOptionsLabelField = ''\n\n @property({ type: String, attribute: 'async-options-value-field' })\n accessor asyncOptionsValueField = ''\n\n @property({ type: Function })\n accessor asyncOptionsProvider: AsyncComboboxOptionsProvider | null = null\n\n @property({ type: Array })\n accessor optionsFallback: ComboboxOptionData[] | null = null\n\n @query('input')\n protected accessor controlElement: HTMLInputElement | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly = false\n\n @state()\n private accessor filter = ''\n\n @state()\n private accessor displayValue = ''\n\n @state()\n private accessor open = false\n\n @state()\n private accessor activeIndex = -1\n\n private openListenersAttached = false\n private updateDebouncedFilter = debounce(300, (value) => (this.filter = value))\n private asyncOptionsTask?: Task<readonly [string], ComboboxOptionData[]>\n private _selectedOption: ComboboxOptionData | undefined\n private readonly listboxId: string\n\n constructor () {\n super()\n\n this.listboxId = `listbox-${this.controlTrait.controlId}`\n }\n\n get selectedOption (): ComboboxOptionData | undefined {\n return this._selectedOption\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.removeOpenListeners()\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('asyncOptionsUrl') || changedProperties.has('asyncOptionsProvider')) {\n this.updateAsyncOptionsTask()\n }\n\n if (changedProperties.has('value')) {\n const options = this.getFilteredOptions()\n const option = options.find((option) => option.selectable !== false && option.value === this.value) ??\n this.optionsFallback?.find((option) => option.value === this.value)\n const optionLabel = option?.selectable !== false && option?.label\n\n this.updateDisplayValue(optionLabel || this.value)\n\n if (this.open) {\n this.activeIndex = this.getInitialActiveIndex(options)\n }\n\n if (this._selectedOption && this._selectedOption.value !== this.value) {\n this._selectedOption = undefined\n }\n }\n }\n\n protected render () {\n const options = this.getFilteredOptions()\n const activeOption =\n this.open && this.activeIndex >= 0 ? options[this.activeIndex] : undefined\n const activeDescendant =\n activeOption !== undefined ? this.getOptionId(this.activeIndex) : undefined\n const accessibleName = this.placeholder || 'Combobox'\n\n return html`\n ${this.controlTrait.renderLabel()}\n <wa-popup\n placement=\"bottom\"\n flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n ?active=${this.open}\n >\n <div class=\"input-wrapper\" slot=\"anchor\" @mousedown=${this.onAnchorMouseDown}>\n <input\n id=\"${this.controlTrait.controlId}\"\n type=\"text\"\n name=${this.name}\n placeholder=${this.placeholder}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=${this.listboxId}\n aria-activedescendant=${activeDescendant ?? nothing}\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n aria-required=${this.required ? 'true' : nothing}\n autocomplete=\"off\"\n spellcheck=\"false\"\n ?required=${this.required}\n .value=${this.displayValue}\n @keydown=${this.onInputKeyDown}\n @focus=${this.onInputFocus}\n @input=${() => this.selectOnly ? this.updateDisplayValue(this.controlElement?.value ?? '') : this.controlTrait.onInput()}\n />\n <icon-lucide-chevron-down></icon-lucide-chevron-down>\n </div>\n <div\n id=${this.listboxId}\n class=\"listbox\"\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n ?hidden=${!this.open}\n @mousedown=${this.onListboxMouseDown}\n >\n ${options.map((option, index) => {\n return option.selectable !== false\n ? html`<div\n id=${this.getOptionId(index)}\n role=\"option\"\n aria-selected=${option.value === this.value ? 'true' : 'false'}\n data-active=${index === this.activeIndex || nothing}\n @mousemove=${() => this.setActiveIndex(index)}\n >\n ${option.template ?? option.label}\n </div>`\n : html`<div class=\"non-selectable-option\">${option.template ?? option.label}</div>`\n })}\n </div>\n </wa-popup>\n `\n }\n\n private getFilteredOptions (): ComboboxOptionData[] {\n if (this.asyncOptionsTask) {\n return this.asyncOptionsTask.render({\n initial: () => this.optionsFallback ?? [],\n complete: (options) => options,\n pending: () => [\n {\n value: '',\n label: 'Loading...',\n template: html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,\n selectable: false\n } as const,\n ],\n error: (error) => {\n const isError = !(error instanceof AsyncOptionsInfo)\n const message = Object(error).message ?? 'Something went wrong'\n\n return [\n {\n value: '',\n label: message,\n template: html`<span class=\"message message--${isError ? 'error' : 'info'}\">${message}</span>`,\n selectable: false\n } as const,\n ]\n },\n })\n }\n\n return this.getOptionsFromDOM().filter((option) =>\n String(option.label).toLowerCase().includes(this.filter)\n )\n }\n\n private getOptionsFromDOM (): ComboboxOptionData[] {\n const options = this.querySelectorAll<ComboboxOption>(\n 'solid-ui-combobox-option'\n )\n\n return Array.from(options).map((option) => ({\n value: option.value,\n label: option.textContent ?? '',\n }))\n }\n\n private getOptionId (index: number): string {\n return `${this.listboxId}-option-${index}`\n }\n\n private getInitialActiveIndex (options: ComboboxOptionData[]): number {\n const selectedIndex = options.findIndex((option) => option.value === this.value)\n\n if (selectedIndex >= 0) {\n return selectedIndex\n }\n\n return options.length > 0 ? 0 : -1\n }\n\n private getNextIndex (\n currentIndex: number,\n options: ComboboxOptionData[],\n direction: 1 | -1\n ): number {\n if (options.length === 0) {\n return -1\n }\n\n return (currentIndex + direction + options.length) % options.length\n }\n\n private setActiveIndex (index: number) {\n this.activeIndex = index\n }\n\n private updateDisplayValue (value: unknown) {\n this.displayValue = value ? String(value) : ''\n\n if (this.open) {\n const filter = this.displayValue.toLowerCase()\n\n if (this.asyncOptionsTask) {\n this.updateDebouncedFilter(filter)\n } else {\n this.filter = filter\n }\n }\n }\n\n private updateAsyncOptionsTask () {\n if (!this.asyncOptionsUrl && !this.asyncOptionsProvider) {\n this.asyncOptionsTask = undefined\n\n return\n }\n\n this.asyncOptionsTask ??= new Task(\n this,\n async ([filter]) => {\n if (this.asyncOptionsProvider) {\n const results = await this.asyncOptionsProvider(filter)\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n return results\n }\n\n const response = await fetch(\n this.asyncOptionsUrl.replace('%search%', encodeURIComponent(filter))\n )\n const data = await response.json()\n const results = Array.from(\n this.asyncOptionsResultsField\n ? data[this.asyncOptionsResultsField]\n : data\n )\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n const labelField = this.asyncOptionsLabelField || 'label'\n const valueField = this.asyncOptionsValueField || 'value'\n\n return results.map((result) => ({\n label: String(Object(result)[labelField]),\n value: Object(result)[valueField],\n }))\n },\n () => [this.filter]\n )\n }\n\n private show (options?: { focusLast?: boolean }) {\n if (this.open) {\n return\n }\n\n const filteredOptions = this.getFilteredOptions()\n\n if (filteredOptions.length === 0) {\n return\n }\n\n this.open = true\n this.activeIndex = options?.focusLast\n ? filteredOptions.length - 1\n : this.getInitialActiveIndex(filteredOptions)\n this.addOpenListeners()\n\n requestAnimationFrame(() => this.scrollActiveOptionIntoView())\n }\n\n private hide () {\n if (!this.open) {\n return\n }\n\n this.filter = ''\n this.open = false\n this.activeIndex = -1\n this.removeOpenListeners()\n this.updateDebouncedFilter.cancel()\n }\n\n private selectOption (option: ComboboxOptionData) {\n const previousValue = this.value\n\n this._selectedOption = option\n\n this.hide()\n this.controlTrait.setValue(option.value)\n this.controlElement?.focus({ preventScroll: true })\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { option } }))\n\n if (previousValue === this.value) {\n this.updateDisplayValue(option.label)\n }\n }\n\n private scrollActiveOptionIntoView () {\n if (this.activeIndex < 0) {\n return\n }\n\n this.shadowRoot\n ?.querySelector(`#${this.getOptionId(this.activeIndex)}`)\n ?.scrollIntoView({ block: 'nearest' })\n }\n\n private addOpenListeners () {\n if (this.openListenersAttached) {\n return\n }\n\n document.addEventListener('focusin', this.handleDocumentFocusIn)\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.addEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = true\n }\n\n private removeOpenListeners () {\n if (!this.openListenersAttached) {\n return\n }\n\n document.removeEventListener('focusin', this.handleDocumentFocusIn)\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.removeEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = false\n }\n\n private handleDocumentFocusIn = (event: Event) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private onAnchorMouseDown (event: MouseEvent) {\n if (event.target === this.controlElement) {\n return\n }\n\n event.preventDefault()\n this.controlElement?.focus({ preventScroll: true })\n }\n\n private onInputFocus () {\n this.show()\n }\n\n private openPopupFromKey (focusLast: boolean) {\n if (!this.open) {\n this.show({ focusLast })\n }\n }\n\n private onInputKeyDown (event: KeyboardEvent) {\n const options = this.getFilteredOptions()\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(false)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, 1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'ArrowUp':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(true)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, -1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'Enter':\n if (this.open && this.activeIndex >= 0 && options[this.activeIndex]) {\n event.preventDefault()\n this.selectOption(options[this.activeIndex])\n } else if (!this.open) {\n event.preventDefault()\n this.controlTrait.onSubmit()\n }\n break\n case 'Escape':\n if (this.open) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this.controlElement?.focus({ preventScroll: true })\n }\n break\n case 'Tab':\n this.hide()\n break\n default:\n if (!this.open) {\n this.show()\n }\n }\n }\n\n private onListboxMouseDown (event: MouseEvent) {\n event.preventDefault()\n\n if (!(event.target instanceof HTMLElement)) {\n return\n }\n\n const optionElement = event.target.closest('[role=\"option\"]')\n\n if (!optionElement) {\n return\n }\n\n const optionId = optionElement.id\n const index = Number.parseInt(optionId.replace(`${this.listboxId}-option-`, ''), 10)\n const option = this.getFilteredOptions()[index]\n\n if (option) {\n this.selectOption(option)\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ export default class Combobox extends FormControlComponent {
|
|
|
21
21
|
accessor asyncOptionsProvider: AsyncComboboxOptionsProvider | null;
|
|
22
22
|
accessor optionsFallback: ComboboxOptionData[] | null;
|
|
23
23
|
protected accessor controlElement: HTMLInputElement | null;
|
|
24
|
+
accessor readonly: boolean;
|
|
24
25
|
private accessor filter;
|
|
25
26
|
private accessor displayValue;
|
|
26
27
|
private accessor open;
|