solid-ui 3.1.3-10 → 3.1.3-12
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 +2 -0
- package/dist/_virtual/~icons/svg-spinners/3-dots-fade.cjs.js +2 -0
- package/dist/_virtual/~icons/svg-spinners/3-dots-fade.cjs.js.map +1 -0
- package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js +11 -0
- package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js.map +1 -0
- package/dist/chunks/{DialogProvider-CrvbR_fd.js → DialogProvider-ge2aA77F.js} +3 -3
- package/dist/chunks/DialogProvider-ge2aA77F.js.map +1 -0
- package/dist/chunks/{account-Ma2Ipfjx.js → account-Bb818bGF.js} +21 -16
- package/dist/chunks/account-Bb818bGF.js.map +1 -0
- package/dist/chunks/{auth-BI22fz6P.js → auth-ClVI18ss.js} +93 -82
- package/dist/chunks/auth-ClVI18ss.js.map +1 -0
- package/dist/chunks/{avatar-DN7FzC2N.js → avatar-DGu_PX5y.js} +13 -5
- package/dist/chunks/avatar-DGu_PX5y.js.map +1 -0
- package/dist/chunks/{button-DHahwxqn.js → button-B9-nlEpz.js} +3 -3
- package/dist/chunks/{button-DHahwxqn.js.map → button-B9-nlEpz.js.map} +1 -1
- package/dist/chunks/combobox-DrT0Nb-A.js +734 -0
- package/dist/chunks/combobox-DrT0Nb-A.js.map +1 -0
- package/dist/chunks/{combobox-option-DB6KGb7o.js → combobox-option-DxJvAZ_Q.js} +2 -2
- package/dist/chunks/{combobox-option-DB6KGb7o.js.map → combobox-option-DxJvAZ_Q.js.map} +1 -1
- package/dist/chunks/{components-DH1slGZY.js → components-PQfnwrHI.js} +10 -10
- package/dist/chunks/components-PQfnwrHI.js.map +1 -0
- package/dist/chunks/{context-CA1Kq0FW.js → context-B_xwK-Y_.js} +2 -2
- package/dist/chunks/{context-CA1Kq0FW.js.map → context-B_xwK-Y_.js.map} +1 -1
- package/dist/chunks/{dialog-content-B3I3H7hj.js → dialog-content-CEITrC59.js} +2 -2
- package/dist/chunks/{dialog-content-B3I3H7hj.js.map → dialog-content-CEITrC59.js.map} +1 -1
- package/dist/chunks/{dialog-footer-BjcYeVhg.js → dialog-footer-DVLEK5bU.js} +2 -2
- package/dist/chunks/{dialog-footer-BjcYeVhg.js.map → dialog-footer-DVLEK5bU.js.map} +1 -1
- package/dist/chunks/{dialog-header-BynEzovK.js → dialog-header-kEWl21oD.js} +2 -2
- package/dist/chunks/{dialog-header-BynEzovK.js.map → dialog-header-kEWl21oD.js.map} +1 -1
- package/dist/chunks/{dialog-YaqTwAtR.js → dialog-kyHgc-uy.js} +5 -5
- package/dist/chunks/{dialog-YaqTwAtR.js.map → dialog-kyHgc-uy.js.map} +1 -1
- package/dist/chunks/{dialogs-root-B61LtZks.js → dialogs-root-dPGfuzSZ.js} +3 -3
- package/dist/chunks/{dialogs-root-B61LtZks.js.map → dialogs-root-dPGfuzSZ.js.map} +1 -1
- package/dist/chunks/{guard-YhbCPY-V.js → guard-DEqOFEs4.js} +79 -53
- package/dist/chunks/guard-DEqOFEs4.js.map +1 -0
- package/dist/chunks/{input-CVKu3XRI.js → input-BjCX2bFe.js} +8 -8
- package/dist/chunks/input-BjCX2bFe.js.map +1 -0
- package/dist/chunks/{login-button-76PlEs2Y.js → login-button-Czm-E9Na.js} +5 -5
- package/dist/chunks/{login-button-76PlEs2Y.js.map → login-button-Czm-E9Na.js.map} +1 -1
- package/dist/chunks/{logout-button-Dt3Utgj0.js → logout-button-BrR_jOhK.js} +5 -5
- package/dist/chunks/{logout-button-Dt3Utgj0.js.map → logout-button-BrR_jOhK.js.map} +1 -1
- package/dist/chunks/{menu-6ayNsxFG.js → menu-1PG19fCC.js} +4 -4
- package/dist/chunks/{menu-6ayNsxFG.js.map → menu-1PG19fCC.js.map} +1 -1
- package/dist/chunks/{menu-item-Ckl9f1rG.js → menu-item-C9uErV38.js} +72 -55
- package/dist/chunks/menu-item-C9uErV38.js.map +1 -0
- package/dist/chunks/{provider-BfO67dzy.js → provider-qd_4VaKB.js} +8 -5
- package/dist/chunks/provider-qd_4VaKB.js.map +1 -0
- package/dist/chunks/{select-DHFgELMJ.js → select-OM-SgY4K.js} +101 -66
- package/dist/chunks/select-OM-SgY4K.js.map +1 -0
- package/dist/chunks/{select-option-Duk4S4Sc.js → select-option-pVhYlXrt.js} +2 -2
- package/dist/chunks/{select-option-Duk4S4Sc.js.map → select-option-pVhYlXrt.js.map} +1 -1
- package/dist/chunks/{signup-button-B10K6b8A.js → signup-button-BnA5p-uJ.js} +5 -5
- package/dist/chunks/{signup-button-B10K6b8A.js.map → signup-button-BnA5p-uJ.js.map} +1 -1
- package/dist/chunks/{solid-emblem-DgBJk5Th.js → solid-emblem-D2clBuKZ.js} +2 -2
- package/dist/chunks/{solid-emblem-DgBJk5Th.js.map → solid-emblem-D2clBuKZ.js.map} +1 -1
- package/dist/chunks/{src-CdZhCYdF.js → src-DJOb1wMf.js} +3 -3
- package/dist/chunks/{src-CdZhCYdF.js.map → src-DJOb1wMf.js.map} +1 -1
- package/dist/components/account/Account.cjs.js +6 -4
- package/dist/components/account/Account.cjs.js.map +1 -1
- package/dist/components/account/Account.d.ts +2 -0
- package/dist/components/account/Account.d.ts.map +1 -1
- package/dist/components/account/Account.esm.js +10 -4
- package/dist/components/account/Account.esm.js.map +1 -1
- package/dist/components/account/Account.stories.d.ts +10 -2
- package/dist/components/account/Account.stories.d.ts.map +1 -1
- package/dist/components/account/Account.styles.cjs.js +1 -1
- package/dist/components/account/Account.styles.cjs.js.map +1 -1
- package/dist/components/account/Account.styles.esm.js +1 -1
- package/dist/components/account/Account.styles.esm.js.map +1 -1
- package/dist/components/account.js +1 -1
- package/dist/components/all.cjs.js +1 -0
- package/dist/components/all.d.ts +2 -0
- package/dist/components/all.d.ts.map +1 -0
- package/dist/components/all.esm.js +24 -0
- package/dist/components/avatar/Avatar.cjs.js +1 -1
- package/dist/components/avatar/Avatar.cjs.js.map +1 -1
- package/dist/components/avatar/Avatar.d.ts +3 -0
- package/dist/components/avatar/Avatar.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.esm.js +9 -1
- package/dist/components/avatar/Avatar.esm.js.map +1 -1
- package/dist/components/avatar/Avatar.stories.d.ts +4 -4
- package/dist/components/avatar.js +1 -1
- package/dist/components/button/Button.styles.cjs.js +1 -1
- package/dist/components/button/Button.styles.cjs.js.map +1 -1
- package/dist/components/button/Button.styles.esm.js +1 -1
- package/dist/components/button/Button.styles.esm.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/combobox/Combobox.cjs.js +21 -21
- package/dist/components/combobox/Combobox.cjs.js.map +1 -1
- package/dist/components/combobox/Combobox.d.ts +30 -3
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.esm.js +268 -107
- package/dist/components/combobox/Combobox.esm.js.map +1 -1
- package/dist/components/combobox/Combobox.stories.d.ts +54 -0
- package/dist/components/combobox/Combobox.stories.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.styles.cjs.js +1 -1
- package/dist/components/combobox/Combobox.styles.cjs.js.map +1 -1
- package/dist/components/combobox/Combobox.styles.esm.js +1 -1
- package/dist/components/combobox/Combobox.styles.esm.js.map +1 -1
- package/dist/components/combobox/index.cjs.js +1 -1
- package/dist/components/combobox/index.cjs.js.map +1 -1
- package/dist/components/combobox/index.d.ts +1 -0
- package/dist/components/combobox/index.d.ts.map +1 -1
- package/dist/components/combobox/index.esm.js +3 -3
- package/dist/components/combobox/index.esm.js.map +1 -1
- package/dist/components/combobox-option.js +1 -1
- package/dist/components/combobox.js +2 -2
- 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/DialogProvider.d.ts +2 -1
- package/dist/components/dialog-provider/DialogProvider.d.ts.map +1 -1
- package/dist/components/dialog-provider/DialogProvider.esm.js.map +1 -1
- package/dist/components/dialog-provider.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dialogs-root.js +1 -1
- package/dist/components/guard/Guard.cjs.js +4 -2
- package/dist/components/guard/Guard.cjs.js.map +1 -1
- package/dist/components/guard/Guard.d.ts +7 -0
- package/dist/components/guard/Guard.d.ts.map +1 -1
- package/dist/components/guard/Guard.esm.js +74 -48
- package/dist/components/guard/Guard.esm.js.map +1 -1
- package/dist/components/guard/Guard.stories.d.ts +14 -3
- package/dist/components/guard/Guard.stories.d.ts.map +1 -1
- package/dist/components/guard.js +1 -1
- package/dist/components/index.cjs.js +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.esm.js +1 -24
- package/dist/components/input/Input.cjs.js +5 -5
- package/dist/components/input/Input.cjs.js.map +1 -1
- package/dist/components/input/Input.d.ts +1 -1
- package/dist/components/input/Input.d.ts.map +1 -1
- package/dist/components/input/Input.esm.js +7 -7
- package/dist/components/input/Input.esm.js.map +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/login-button.js +1 -1
- package/dist/components/login-modal.js +1 -1
- package/dist/components/logout-button.js +1 -1
- package/dist/components/menu/Menu.cjs.js +1 -1
- package/dist/components/menu/Menu.cjs.js.map +1 -1
- package/dist/components/menu/Menu.esm.js +1 -1
- package/dist/components/menu/Menu.esm.js.map +1 -1
- package/dist/components/menu/Menu.stories.d.ts.map +1 -1
- package/dist/components/menu/Menu.styles.cjs.js +1 -1
- package/dist/components/menu/Menu.styles.cjs.js.map +1 -1
- package/dist/components/menu/Menu.styles.esm.js +1 -1
- package/dist/components/menu/Menu.styles.esm.js.map +1 -1
- package/dist/components/menu-item/MenuItem.cjs.js +4 -4
- package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
- package/dist/components/menu-item/MenuItem.d.ts +1 -0
- package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
- package/dist/components/menu-item/MenuItem.esm.js +72 -55
- package/dist/components/menu-item/MenuItem.esm.js.map +1 -1
- package/dist/components/menu-item/MenuItem.styles.cjs.js +1 -1
- package/dist/components/menu-item/MenuItem.styles.cjs.js.map +1 -1
- package/dist/components/menu-item/MenuItem.styles.esm.js +1 -1
- package/dist/components/menu-item/MenuItem.styles.esm.js.map +1 -1
- package/dist/components/menu-item.js +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/provider/Provider.cjs.js +1 -1
- package/dist/components/provider/Provider.cjs.js.map +1 -1
- package/dist/components/provider/Provider.d.ts +3 -1
- package/dist/components/provider/Provider.d.ts.map +1 -1
- package/dist/components/provider/Provider.esm.js +3 -0
- package/dist/components/provider/Provider.esm.js.map +1 -1
- package/dist/components/provider.js +1 -1
- package/dist/components/select/Select.cjs.js +7 -6
- package/dist/components/select/Select.cjs.js.map +1 -1
- package/dist/components/select/Select.d.ts +12 -2
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/select/Select.esm.js +96 -65
- package/dist/components/select/Select.esm.js.map +1 -1
- package/dist/components/select/index.cjs.js.map +1 -1
- package/dist/components/select/index.d.ts +1 -0
- package/dist/components/select/index.d.ts.map +1 -1
- package/dist/components/select/index.esm.js.map +1 -1
- package/dist/components/select-option.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/signup-button.js +1 -1
- package/dist/components/solid-emblem.js +1 -1
- package/dist/components.js +22 -22
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.js +6 -6
- package/dist/lib/auth/NoopAuth.cjs.js +1 -1
- package/dist/lib/auth/NoopAuth.cjs.js.map +1 -1
- package/dist/lib/auth/NoopAuth.d.ts +2 -2
- package/dist/lib/auth/NoopAuth.d.ts.map +1 -1
- package/dist/lib/auth/NoopAuth.esm.js +2 -3
- package/dist/lib/auth/NoopAuth.esm.js.map +1 -1
- package/dist/lib/auth/SolidAuth.cjs.js +1 -1
- package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
- package/dist/lib/auth/SolidAuth.d.ts +6 -0
- package/dist/lib/auth/SolidAuth.d.ts.map +1 -1
- package/dist/lib/auth/SolidAuth.esm.js +28 -16
- package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
- package/dist/lib/auth/context.cjs.js.map +1 -1
- package/dist/lib/auth/context.d.ts +2 -0
- package/dist/lib/auth/context.d.ts.map +1 -1
- package/dist/lib/auth/context.esm.js.map +1 -1
- package/dist/lib/components/index.cjs.js +1 -1
- package/dist/lib/components/index.esm.js +2 -2
- package/dist/lib/components/traits/FormControlTrait.cjs.js +2 -0
- package/dist/lib/components/traits/FormControlTrait.cjs.js.map +1 -0
- package/dist/lib/components/traits/{InputTrait.d.ts → FormControlTrait.d.ts} +10 -11
- package/dist/lib/components/traits/FormControlTrait.d.ts.map +1 -0
- package/dist/lib/components/traits/FormControlTrait.esm.js +45 -0
- package/dist/lib/components/traits/FormControlTrait.esm.js.map +1 -0
- package/dist/lib/components/traits/index.cjs.js +1 -1
- package/dist/lib/components/traits/index.d.ts +2 -2
- package/dist/lib/components/traits/index.d.ts.map +1 -1
- package/dist/lib/components/traits/index.esm.js +2 -2
- package/dist/lib/components/web-component/WebComponent.cjs.js.map +1 -1
- package/dist/lib/components/web-component/WebComponent.d.ts +2 -2
- package/dist/lib/components/web-component/WebComponent.d.ts.map +1 -1
- package/dist/lib/components/web-component/WebComponent.esm.js.map +1 -1
- package/dist/lib/timing.cjs.js +2 -0
- package/dist/lib/timing.cjs.js.map +1 -0
- package/dist/lib/timing.d.ts +6 -0
- package/dist/lib/timing.d.ts.map +1 -0
- package/dist/lib/timing.esm.js +13 -0
- package/dist/lib/timing.esm.js.map +1 -0
- package/dist/lib/values.cjs.js +2 -0
- package/dist/lib/values.cjs.js.map +1 -0
- package/dist/lib/values.d.ts +2 -0
- package/dist/lib/values.d.ts.map +1 -0
- package/dist/lib/values.esm.js +8 -0
- package/dist/lib/values.esm.js.map +1 -0
- package/dist/loader.js +6 -6
- package/dist/solid-ui.js +114 -109
- package/dist/solid-ui.min.js +114 -109
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/storybook/auth/StorybookAuth.d.ts +1 -0
- package/dist/storybook/auth/StorybookAuth.d.ts.map +1 -1
- package/dist/storybook/components/StorybookProvider.d.ts +3 -1
- package/dist/storybook/components/StorybookProvider.d.ts.map +1 -1
- package/dist/storybook/helpers.d.ts.map +1 -1
- package/dist/storybook/stubs.d.ts +7 -3
- package/dist/storybook/stubs.d.ts.map +1 -1
- package/dist/theme.css +1 -1
- package/package.json +2 -1
- package/dist/chunks/DialogProvider-CrvbR_fd.js.map +0 -1
- package/dist/chunks/account-Ma2Ipfjx.js.map +0 -1
- package/dist/chunks/auth-BI22fz6P.js.map +0 -1
- package/dist/chunks/avatar-DN7FzC2N.js.map +0 -1
- package/dist/chunks/combobox-BWOPh9dj.js +0 -474
- package/dist/chunks/combobox-BWOPh9dj.js.map +0 -1
- package/dist/chunks/components-DH1slGZY.js.map +0 -1
- package/dist/chunks/guard-YhbCPY-V.js.map +0 -1
- package/dist/chunks/input-CVKu3XRI.js.map +0 -1
- package/dist/chunks/menu-item-Ckl9f1rG.js.map +0 -1
- package/dist/chunks/provider-BfO67dzy.js.map +0 -1
- package/dist/chunks/select-DHFgELMJ.js.map +0 -1
- package/dist/lib/components/traits/InputTrait.cjs.js +0 -2
- package/dist/lib/components/traits/InputTrait.cjs.js.map +0 -1
- package/dist/lib/components/traits/InputTrait.d.ts.map +0 -1
- package/dist/lib/components/traits/InputTrait.esm.js +0 -45
- package/dist/lib/components/traits/InputTrait.esm.js.map +0 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./lib/ns.cjs.js"),t=require("./lib/log.cjs.js"),n=require("./utils/index.cjs.js"),r=require("./lib/style.cjs.js"),i=require("./lib/iconBase.cjs.js"),a=require("./widgets/forms/autocomplete/language.cjs.js"),o=require("./widgets/index.cjs.js"),s=require("./login/login.cjs.js"),c=require("./acl/index.cjs.js"),l=require("./create/index.cjs.js"),u=require("./matrix/index.cjs.js"),d=require("./media/index.cjs.js"),f=require("./lib/messageArea.cjs.js"),p=require("./lib/participation.cjs.js"),m=require("./lib/pad.cjs.js"),h=require("./chat/infinite.cjs.js"),g=require("./lib/preferences.cjs.js"),_=require("./lib/table.cjs.js"),v=require("./lib/tabs.cjs.js"),y=require("./header/index.cjs.js"),b=require("./footer/index.cjs.js"),x=require("./create/types.cjs.js"),S=require("./lib/auth/Account.cjs.js"),C=require("./lib/auth/NoopAuth.cjs.js"),w=require("./lib/auth/context.cjs.js"),T=require("./lib/components/ids.cjs.js"),E=require("./lib/dialogs/context.cjs.js"),D=require("./lib/components/decorators.cjs.js"),O=require("./lib/components/web-component/WebComponent.cjs.js"),k=require("./lib/dialogs/events/close-dialog.cjs.js"),A=require("./lib/components/traits/DialogTrait.cjs.js"),j=require("./lib/components/traits/
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./lib/ns.cjs.js"),t=require("./lib/log.cjs.js"),n=require("./utils/index.cjs.js"),r=require("./lib/style.cjs.js"),i=require("./lib/iconBase.cjs.js"),a=require("./widgets/forms/autocomplete/language.cjs.js"),o=require("./widgets/index.cjs.js"),s=require("./login/login.cjs.js"),c=require("./acl/index.cjs.js"),l=require("./create/index.cjs.js"),u=require("./matrix/index.cjs.js"),d=require("./media/index.cjs.js"),f=require("./lib/messageArea.cjs.js"),p=require("./lib/participation.cjs.js"),m=require("./lib/pad.cjs.js"),h=require("./chat/infinite.cjs.js"),g=require("./lib/preferences.cjs.js"),_=require("./lib/table.cjs.js"),v=require("./lib/tabs.cjs.js"),y=require("./header/index.cjs.js"),b=require("./footer/index.cjs.js"),x=require("./create/types.cjs.js"),S=require("./lib/auth/Account.cjs.js"),C=require("./lib/auth/NoopAuth.cjs.js"),w=require("./lib/auth/context.cjs.js"),T=require("./lib/components/ids.cjs.js"),E=require("./lib/dialogs/context.cjs.js"),D=require("./lib/components/decorators.cjs.js"),O=require("./lib/components/web-component/WebComponent.cjs.js"),k=require("./lib/dialogs/events/close-dialog.cjs.js"),A=require("./lib/components/traits/DialogTrait.cjs.js"),j=require("./lib/components/traits/FormControlTrait.cjs.js");require("./lib/components/index.cjs.js");const M=require("./lib/dialogs/Dialog.cjs.js"),N=require("./lib/dialogs/events/show-dialog.cjs.js"),P=require("./lib/dialogs/helpers.cjs.js");require("./lib/dialogs/index.cjs.js");const F=require("./lib/auth/SolidAuth.cjs.js");require("./lib/auth/index.cjs.js");var I=typeof window<`u`?window.document:null;exports.Account=S.default,exports.CloseDialogEvent=k.CloseDialogEvent,exports.DEFAULT_AUTH_CONTEXT=w.DEFAULT_AUTH_CONTEXT,exports.DEFAULT_DIALOG_CONTEXT=E.DEFAULT_DIALOG_CONTEXT,exports.DEFAULT_SIGNUP_URL=F.DEFAULT_SIGNUP_URL,exports.Dialog=M.default,exports.DialogTrait=A.default,exports.FormControlTrait=j.default,exports.NoopAuth=C.default,exports.ShowDialogEvent=N.ShowDialogEvent,exports.SolidAuth=F.default,exports.WebComponent=O.default,exports.acl=c.acl,exports.aclControl=c.aclControl,exports.authContext=w.authContext,exports.create=l.create,Object.defineProperty(exports,"createTypes",{enumerable:!0,get:function(){return x.types_exports}}),exports.customElement=D.customElement,exports.dialogContext=E.dialogContext,exports.dom=I,exports.generateId=T.generateId,exports.icons=i.icons,exports.infiniteMessageArea=h.infiniteMessageArea,exports.initFooter=b.initFooter,exports.initHeader=y.initHeader,Object.defineProperty(exports,"language",{enumerable:!0,get:function(){return a.language_exports}}),Object.defineProperty(exports,"log",{enumerable:!0,get:function(){return t.log_exports}}),Object.defineProperty(exports,"login",{enumerable:!0,get:function(){return s.login_exports}}),exports.matrix=u.matrix,exports.media=d.media,exports.messageArea=f.messageArea,exports.ns=e.default,Object.defineProperty(exports,"pad",{enumerable:!0,get:function(){return m.pad_exports}}),Object.defineProperty(exports,"participation",{enumerable:!0,get:function(){return p.participation_exports}}),Object.defineProperty(exports,"preferences",{enumerable:!0,get:function(){return g.preferences_exports}}),exports.showDialog=P.showDialog,exports.style=r.style,exports.table=_.renderTableViewPane,Object.defineProperty(exports,"tabs",{enumerable:!0,get:function(){return v.tabs_exports}}),Object.defineProperty(exports,"utils",{enumerable:!0,get:function(){return n.utils_exports}}),Object.defineProperty(exports,"widgets",{enumerable:!0,get:function(){return o.widgets_exports}});
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// REMOVE @ts-ignore as you migrate files to TypeScript\n// @ts-ignore\nimport ns from './lib/ns'\nimport { acl, aclControl } from './acl/index'\nimport { create } from './create/index'\n// @ts-ignore\nimport { icons } from './lib/iconBase'\nimport * as language from './widgets/forms/autocomplete/language'\nimport * as log from './lib/log'\nimport { matrix } from './matrix/index'\nimport { media } from './media/index'\n// @ts-ignore\nimport { messageArea } from './lib/messageArea'\n// @ts-ignore\nimport { infiniteMessageArea } from './chat/infinite'\n// @ts-ignore\nimport * as pad from './lib/pad'\n// @ts-ignore\nimport * as participation from './lib/participation'\n// @ts-ignore\nimport * as preferences from './lib/preferences'\n// @ts-ignore\nimport { style } from './lib/style'\n// @ts-ignore\nimport { renderTableViewPane as table } from './lib/table'\nimport * as tabs from './lib/tabs'\n// @ts-ignore\nimport * as utils from './utils'\nimport * as login from './login/login'\nimport * as widgets from './widgets/index'\nimport { initHeader } from './header'\nimport { initFooter } from './footer'\nimport * as createTypes from './create/types'\n\nexport const dom = typeof window !== 'undefined' ? window.document : null // Idea that UI.dom can be adapted in non-browser environments\n\n// this variables are directly used in the storybook\nexport {\n ns,\n acl,\n aclControl,\n create,\n createTypes,\n icons,\n language,\n log,\n login,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n style,\n table,\n tabs,\n utils,\n widgets,\n initHeader,\n initFooter\n}\n// uses in solid-panes\nexport type { CreateContext, NewAppInstanceOptions } from './create/types'\n\nexport * from './lib/auth'\nexport * from './lib/components'\nexport * from './lib/dialogs'\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// REMOVE @ts-ignore as you migrate files to TypeScript\n// @ts-ignore\nimport ns from './lib/ns'\nimport { acl, aclControl } from './acl/index'\nimport { create } from './create/index'\n// @ts-ignore\nimport { icons } from './lib/iconBase'\nimport * as language from './widgets/forms/autocomplete/language'\nimport * as log from './lib/log'\nimport { matrix } from './matrix/index'\nimport { media } from './media/index'\n// @ts-ignore\nimport { messageArea } from './lib/messageArea'\n// @ts-ignore\nimport { infiniteMessageArea } from './chat/infinite'\n// @ts-ignore\nimport * as pad from './lib/pad'\n// @ts-ignore\nimport * as participation from './lib/participation'\n// @ts-ignore\nimport * as preferences from './lib/preferences'\n// @ts-ignore\nimport { style } from './lib/style'\n// @ts-ignore\nimport { renderTableViewPane as table } from './lib/table'\nimport * as tabs from './lib/tabs'\n// @ts-ignore\nimport * as utils from './utils'\nimport * as login from './login/login'\nimport * as widgets from './widgets/index'\nimport { initHeader } from './header'\nimport { initFooter } from './footer'\nimport * as createTypes from './create/types'\n\nexport const dom = typeof window !== 'undefined' ? window.document : null // Idea that UI.dom can be adapted in non-browser environments\n\n// this variables are directly used in the storybook\nexport {\n ns,\n acl,\n aclControl,\n create,\n createTypes,\n icons,\n language,\n log,\n login,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n style,\n table,\n tabs,\n utils,\n widgets,\n initHeader,\n initFooter\n}\n// uses in solid-panes\nexport type { CreateContext, NewAppInstanceOptions } from './create/types'\n\nexport * from './lib/auth'\nexport * from './lib/components'\nexport * from './lib/dialogs'\n"],"mappings":"kmDAkCA,IAAa,EAAM,OAAO,OAAW,IAAc,OAAO,SAAW"}
|
package/dist/index.esm.js
CHANGED
|
@@ -29,7 +29,7 @@ import { customElement as A } from "./lib/components/decorators.esm.js";
|
|
|
29
29
|
import j from "./lib/components/web-component/WebComponent.esm.js";
|
|
30
30
|
import { CloseDialogEvent as M } from "./lib/dialogs/events/close-dialog.esm.js";
|
|
31
31
|
import N from "./lib/components/traits/DialogTrait.esm.js";
|
|
32
|
-
import P from "./lib/components/traits/
|
|
32
|
+
import P from "./lib/components/traits/FormControlTrait.esm.js";
|
|
33
33
|
import "./lib/components/index.esm.js";
|
|
34
34
|
import F from "./lib/dialogs/Dialog.esm.js";
|
|
35
35
|
import { ShowDialogEvent as I } from "./lib/dialogs/events/show-dialog.esm.js";
|
|
@@ -40,6 +40,6 @@ import "./lib/auth/index.esm.js";
|
|
|
40
40
|
//#region src/index.ts
|
|
41
41
|
var B = typeof window < "u" ? window.document : null;
|
|
42
42
|
//#endregion
|
|
43
|
-
export { C as Account, M as CloseDialogEvent, T as DEFAULT_AUTH_CONTEXT, O as DEFAULT_DIALOG_CONTEXT, z as DEFAULT_SIGNUP_URL, F as Dialog, N as DialogTrait, P as
|
|
43
|
+
export { C as Account, M as CloseDialogEvent, T as DEFAULT_AUTH_CONTEXT, O as DEFAULT_DIALOG_CONTEXT, z as DEFAULT_SIGNUP_URL, F as Dialog, N as DialogTrait, P as FormControlTrait, w as NoopAuth, I as ShowDialogEvent, R as SolidAuth, j as WebComponent, c as acl, l as aclControl, E as authContext, u as create, S as createTypes, A as customElement, k as dialogContext, B as dom, D as generateId, i as icons, g as infiniteMessageArea, x as initFooter, b as initHeader, a as language, t as log, s as login, d as matrix, f as media, p as messageArea, e as ns, h as pad, m as participation, _ as preferences, L as showDialog, r as style, v as table, y as tabs, n as utils, o as widgets };
|
|
44
44
|
|
|
45
45
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { h as e } from "./chunks/solid-logic.esm-BrMdCG2_.js";
|
|
2
|
-
import { C as t, S as n, _ as r, a as i, b as a, c as o, d as s, f as c, g as l, h as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b, v as x, x as S, y as C } from "./chunks/src-
|
|
3
|
-
import { a as w, c as T, l as E, n as D, o as O, s as k, t as A, u as j } from "./chunks/auth-
|
|
4
|
-
import { n as M, t as N } from "./chunks/context-
|
|
5
|
-
import { r as P } from "./chunks/dialog-
|
|
6
|
-
import { i as F, n as I, r as L, t as R } from "./chunks/components-
|
|
2
|
+
import { C as t, S as n, _ as r, a as i, b as a, c as o, d as s, f as c, g as l, h as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b, v as x, x as S, y as C } from "./chunks/src-DJOb1wMf.js";
|
|
3
|
+
import { a as w, c as T, l as E, n as D, o as O, s as k, t as A, u as j } from "./chunks/auth-ClVI18ss.js";
|
|
4
|
+
import { n as M, t as N } from "./chunks/context-B_xwK-Y_.js";
|
|
5
|
+
import { r as P } from "./chunks/dialog-kyHgc-uy.js";
|
|
6
|
+
import { i as F, n as I, r as L, t as R } from "./chunks/components-PQfnwrHI.js";
|
|
7
7
|
import { t as z } from "./chunks/close-dialog-DfAh83bX.js";
|
|
8
8
|
import { t as B } from "./chunks/show-dialog-eEW5yRBv.js";
|
|
9
|
-
export { j as Account, z as CloseDialogEvent, k as DEFAULT_AUTH_CONTEXT, N as DEFAULT_DIALOG_CONTEXT, A as DEFAULT_SIGNUP_URL, O as Dialog, P as DialogTrait, R as
|
|
9
|
+
export { j as Account, z as CloseDialogEvent, k as DEFAULT_AUTH_CONTEXT, N as DEFAULT_DIALOG_CONTEXT, A as DEFAULT_SIGNUP_URL, O as Dialog, P as DialogTrait, R as FormControlTrait, E as NoopAuth, B as ShowDialogEvent, D as SolidAuth, I as WebComponent, u as acl, l as aclControl, T as authContext, p as create, m as createTypes, L as customElement, M as dialogContext, y as dom, F as generateId, a as icons, o as infiniteMessageArea, _ as initFooter, d as initHeader, C as language, t as log, r as login, g as matrix, c as media, s as messageArea, e as ns, f as pad, b as participation, v as preferences, w as showDialog, S as style, h as table, i as tabs, n as utils, x as widgets };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=class{
|
|
1
|
+
var e=class{initialized=!1;account=null;async login(){throw Error(`Can't use auth, missing context provider`)}async signup(){throw Error(`Can't use auth, missing context provider`)}async logout(){throw Error(`Can't use auth, missing context provider`)}onSessionUpdated(){return()=>void 0}};exports.default=e;
|
|
2
2
|
//# sourceMappingURL=NoopAuth.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoopAuth.cjs.js","names":[],"sources":["../../../src/lib/auth/NoopAuth.ts"],"sourcesContent":["import { AuthContext } from './context'\
|
|
1
|
+
{"version":3,"file":"NoopAuth.cjs.js","names":[],"sources":["../../../src/lib/auth/NoopAuth.ts"],"sourcesContent":["import { AuthContext } from './context'\n\nexport default class NoopAuth implements AuthContext {\n public readonly initialized = false\n public readonly account = null\n\n async login () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async signup () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async logout () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n onSessionUpdated () {\n return () => undefined\n }\n}\n"],"mappings":"AAEA,IAAqB,EAArB,KAAqD,CACnD,YAA8B,GAC9B,QAA0B,KAE1B,MAAM,OAAS,CACb,MAAU,MAAM,0CAA2C,CAC7D,CAEA,MAAM,QAAU,CACd,MAAU,MAAM,0CAA2C,CAC7D,CAEA,MAAM,QAAU,CACd,MAAU,MAAM,0CAA2C,CAC7D,CAEA,kBAAoB,CAClB,UAAa,IAAA,EACf,CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AuthContext } from './context';
|
|
2
|
-
import { default as Account } from './Account';
|
|
3
2
|
export default class NoopAuth implements AuthContext {
|
|
4
|
-
|
|
3
|
+
readonly initialized = false;
|
|
4
|
+
readonly account: null;
|
|
5
5
|
login(): Promise<void>;
|
|
6
6
|
signup(): Promise<void>;
|
|
7
7
|
logout(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoopAuth.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/NoopAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"NoopAuth.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/NoopAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC,MAAM,CAAC,OAAO,OAAO,QAAS,YAAW,WAAW;IAClD,SAAgB,WAAW,SAAQ;IACnC,SAAgB,OAAO,OAAO;IAExB,KAAK;IAIL,MAAM;IAIN,MAAM;IAIZ,gBAAgB;CAGjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoopAuth.esm.js","names":[],"sources":["../../../src/lib/auth/NoopAuth.ts"],"sourcesContent":["import { AuthContext } from './context'\
|
|
1
|
+
{"version":3,"file":"NoopAuth.esm.js","names":[],"sources":["../../../src/lib/auth/NoopAuth.ts"],"sourcesContent":["import { AuthContext } from './context'\n\nexport default class NoopAuth implements AuthContext {\n public readonly initialized = false\n public readonly account = null\n\n async login () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async signup () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async logout () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n onSessionUpdated () {\n return () => undefined\n }\n}\n"],"mappings":";AAEA,IAAqB,IAArB,MAAqD;CACnD,cAA8B;CAC9B,UAA0B;CAE1B,MAAM,QAAS;EACb,MAAU,MAAM,0CAA2C;CAC7D;CAEA,MAAM,SAAU;EACd,MAAU,MAAM,0CAA2C;CAC7D;CAEA,MAAM,SAAU;EACd,MAAU,MAAM,0CAA2C;CAC7D;CAEA,mBAAoB;EAClB,aAAa,KAAA;CACf;AACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../ns.cjs.js"),t=require("./Account.cjs.js"),n=require("../dialogs/helpers.cjs.js");require("../dialogs/index.cjs.js"),require("../../components/login-modal/index.cjs.js");let r=require("solid-logic"),i=require("lit");var a=`https://solidproject.org/get_a_pod`;function o(t){let n=r.solidLogicSingleton.store,i=n.sym(t),a=n.any(i,e.default.sioc(`avatar`))||n.any(i,e.default.foaf(`img`))||n.any(i,e.default.vcard(`logo`))||n.any(i,e.default.vcard(`hasPhoto`))||n.any(i,e.default.vcard(`photo`))||n.any(i,e.default.foaf(`depiction`));return a?a.value:void 0}var s=class{signupUrl;constructor(e=a){this.signupUrl=e}get account(){let e=r.authSession.webId??r.authSession.info?.webId;return!(r.authSession.isActive??r.authSession.info?.isLoggedIn??!!e)||!e?null:new t.default(e,o(e))}async login(e){if(!e){n.showDialog(i.html`<solid-ui-login-modal></solid-ui-login-modal>`);return}r.solidLogicSingleton.store.updater.flagAuthorizationMetadata();let t=new URL(window.location.href).hash;t&&window.localStorage.setItem(`preLoginRedirectHash`,t),window.localStorage.setItem(`loginIssuer`,e);let a=new URL(window.location.href);a.hash=``,await r.authSession.login(e,a.href)}async signup(){window.open(this.signupUrl,`_blank`,`noopener,noreferrer`)}async logout(){await r.authSession.logout()}onSessionUpdated(e){let t=r.authSession,n=()=>{e()};return typeof t.addEventListener==`function`?t.addEventListener(`sessionStateChange`,n):(r.authSession.events.on(`login`,
|
|
1
|
+
const e=require("../ns.cjs.js"),t=require("./Account.cjs.js"),n=require("../dialogs/helpers.cjs.js");require("../dialogs/index.cjs.js"),require("../../components/login-modal/index.cjs.js");let r=require("solid-logic"),i=require("lit");var a=`https://solidproject.org/get_a_pod`;function o(t){let n=r.solidLogicSingleton.store,i=n.sym(t),a=n.any(i,e.default.sioc(`avatar`))||n.any(i,e.default.foaf(`img`))||n.any(i,e.default.vcard(`logo`))||n.any(i,e.default.vcard(`hasPhoto`))||n.any(i,e.default.vcard(`photo`))||n.any(i,e.default.foaf(`depiction`));return a?a.value:void 0}var s=class{signupUrl;_initialized=!1;profileLoaded=!1;listeners=[];constructor(e=a){this.signupUrl=e}async initialize(){await r.authn.checkUser(),this._initialized=!0,this.listeners.forEach(e=>e())}async loadProfile(){this.profileLoaded||!this.account||(this.profileLoaded=!0,await r.solidLogicSingleton.profile.loadMe(),this.listeners.forEach(e=>e()))}get initialized(){return this._initialized}get account(){let e=r.authSession.webId??r.authSession.info?.webId;return!(r.authSession.isActive??r.authSession.info?.isLoggedIn??!!e)||!e?null:new t.default(e,o(e))}async login(e){if(!e){n.showDialog(i.html`<solid-ui-login-modal></solid-ui-login-modal>`);return}r.solidLogicSingleton.store.updater.flagAuthorizationMetadata();let t=new URL(window.location.href).hash;t&&window.localStorage.setItem(`preLoginRedirectHash`,t),window.localStorage.setItem(`loginIssuer`,e);let a=new URL(window.location.href);a.hash=``,await r.authSession.login(e,a.href)}async signup(){window.open(this.signupUrl,`_blank`,`noopener,noreferrer`)}async logout(){await r.authSession.logout()}onSessionUpdated(e){let t=r.authSession,n=()=>{e()};return this.listeners.push(n),typeof t.addEventListener==`function`?t.addEventListener(`sessionStateChange`,n):(r.authSession.events.on(`login`,n),r.authSession.events.on(`logout`,n),r.authSession.events.on(`sessionRestore`,n)),()=>{this.listeners=this.listeners.filter(e=>e!==n),typeof t.removeEventListener==`function`?t.removeEventListener(`sessionStateChange`,n):(r.authSession.events.off(`login`,n),r.authSession.events.off(`logout`,n),r.authSession.events.off(`sessionRestore`,n))}}};exports.DEFAULT_SIGNUP_URL=a,exports.default=s;
|
|
2
2
|
//# sourceMappingURL=SolidAuth.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidAuth.cjs.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"SolidAuth.cjs.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\nimport { html } from 'lit'\n\nimport '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(html`<solid-ui-login-modal></solid-ui-login-modal>`)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":"2OASA,IAAa,EAAqB,qCAElC,SAAS,EAAkB,EAAmC,CAC5D,IAAM,EAAQ,EAAA,oBAAoB,MAC5B,EAAK,EAAM,IAAI,CAAK,EACpB,EACJ,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,QAAQ,CAAC,GAC/B,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,KAAK,CAAC,GAC5B,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,MAAM,CAAC,GAC9B,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,UAAU,CAAC,GAClC,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,OAAO,CAAC,GAC/B,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,WAAW,CAAC,EAEpC,OAAO,EAAS,EAAc,MAAQ,IAAA,EACxC,CAEA,IAAqB,EAArB,KAAsD,CAKhC,UAJpB,aAAuB,GACvB,cAAwB,GACxB,UAAuC,CAAC,EAExC,YAAa,EAA2B,EAAoB,CAAxC,KAAA,UAAA,CAAyC,CAE7D,MAAM,YAAc,CAClB,MAAM,EAAA,MAAM,UAAU,EAEtB,KAAK,aAAe,GACpB,KAAK,UAAU,QAAQ,GAAY,EAAS,CAAC,CAC/C,CAEA,MAAM,aAAe,CACf,KAAK,eAAiB,CAAC,KAAK,UAIhC,KAAK,cAAgB,GAErB,MAAM,EAAA,oBAAoB,QAAQ,OAAO,EAEzC,KAAK,UAAU,QAAQ,GAAY,EAAS,CAAC,EAC/C,CAEA,IAAI,aAAwB,CAC1B,OAAO,KAAK,YACd,CAEA,IAAI,SAA2B,CAC7B,IAAM,EAA4B,EAAA,YAAY,OAAS,EAAA,YAAY,MAAM,MASzE,MANI,EAFsB,EAAA,YAAY,UAAY,EAAA,YAAY,MAAM,YAAc,EAAQ,IAEzE,CAAC,EACT,KAKF,IAAI,EAAA,QAAQ,EAFD,EAAiB,CAET,CAAS,CACrC,CAEA,MAAM,MAAO,EAAmB,CAC9B,GAAI,CAAC,EAAU,CACb,EAAA,WAAW,EAAA,IAAI,+CAA+C,EAE9D,MACF,CAGC,EAAA,oBAAqB,MAAM,QAAgB,0BAA0B,EAEtE,IAAM,EAAuB,IAAI,IAAI,OAAO,SAAS,IAAI,CAAC,CAAC,KACvD,GACF,OAAO,aAAa,QAAQ,uBAAwB,CAAoB,EAE1E,OAAO,aAAa,QAAQ,cAAe,CAAQ,EAEnD,IAAM,EAAc,IAAI,IAAI,OAAO,SAAS,IAAI,EAEhD,EAAY,KAAO,GAEnB,MAAM,EAAA,YAAY,MAAM,EAAU,EAAY,IAAI,CACpD,CAEA,MAAM,QAAU,CACd,OAAO,KAAK,KAAK,UAAW,SAAU,qBAAqB,CAC7D,CAEA,MAAM,QAAU,CACd,MAAM,EAAA,YAAY,OAAO,CAC3B,CAEA,iBAAkB,EAAyB,CACzC,IAAM,EAAqB,EAAA,YACrB,MAAiB,CACrB,EAAS,CACX,EAYA,OAVA,KAAK,UAAU,KAAK,CAAQ,EAExB,OAAO,EAAmB,kBAAqB,WACjD,EAAmB,iBAAiB,qBAAsB,CAAQ,GAElE,EAAA,YAAY,OAAO,GAAG,QAAS,CAAQ,EACvC,EAAA,YAAY,OAAO,GAAG,SAAU,CAAQ,EACxC,EAAA,YAAY,OAAO,GAAG,iBAAkB,CAAQ,OAGrC,CACX,KAAK,UAAY,KAAK,UAAU,OAAO,GAAa,IAAc,CAAQ,EAEtE,OAAO,EAAmB,qBAAwB,WACpD,EAAmB,oBAAoB,qBAAsB,CAAQ,GAErE,EAAA,YAAY,OAAO,IAAI,QAAS,CAAQ,EACxC,EAAA,YAAY,OAAO,IAAI,SAAU,CAAQ,EACzC,EAAA,YAAY,OAAO,IAAI,iBAAkB,CAAQ,EAErD,CACF,CACF"}
|
|
@@ -3,7 +3,13 @@ import { AuthContext } from '.';
|
|
|
3
3
|
export declare const DEFAULT_SIGNUP_URL = "https://solidproject.org/get_a_pod";
|
|
4
4
|
export default class SolidAuth implements AuthContext {
|
|
5
5
|
signupUrl: string;
|
|
6
|
+
private _initialized;
|
|
7
|
+
private profileLoaded;
|
|
8
|
+
private listeners;
|
|
6
9
|
constructor(signupUrl?: string);
|
|
10
|
+
initialize(): Promise<void>;
|
|
11
|
+
loadProfile(): Promise<void>;
|
|
12
|
+
get initialized(): boolean;
|
|
7
13
|
get account(): Account | null;
|
|
8
14
|
login(loginUrl?: string): Promise<void>;
|
|
9
15
|
signup(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidAuth.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/SolidAuth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SolidAuth.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/SolidAuth.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,oBAAoB,CAAA;AAGxC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAIxC,OAAO,0BAA0B,CAAA;AAEjC,eAAO,MAAM,kBAAkB,uCAAuC,CAAA;AAgBtE,MAAM,CAAC,OAAO,OAAO,SAAU,YAAW,WAAW;IAK/B,SAAS,EAAE,MAAM;IAJrC,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAwB;gBAErB,SAAS,GAAE,MAA2B;IAEpD,UAAU;IAOV,WAAW;IAYjB,IAAI,WAAW,IAAK,OAAO,CAE1B;IAED,IAAI,OAAO,IAAK,OAAO,GAAG,IAAI,CAW7B;IAEK,KAAK,CAAE,QAAQ,CAAC,EAAE,MAAM;IAuBxB,MAAM;IAIN,MAAM;IAIZ,gBAAgB,CAAE,QAAQ,EAAE,MAAM,OAAO;CA4B1C"}
|
|
@@ -3,33 +3,45 @@ import t from "./Account.esm.js";
|
|
|
3
3
|
import { showDialog as n } from "../dialogs/helpers.esm.js";
|
|
4
4
|
import "../dialogs/index.esm.js";
|
|
5
5
|
import "../../components/login-modal/index.esm.js";
|
|
6
|
-
import { authSession as r,
|
|
7
|
-
import { html as
|
|
6
|
+
import { authSession as r, authn as i, solidLogicSingleton as a } from "solid-logic";
|
|
7
|
+
import { html as o } from "lit";
|
|
8
8
|
//#region src/lib/auth/SolidAuth.ts
|
|
9
|
-
var
|
|
10
|
-
function
|
|
11
|
-
let n =
|
|
12
|
-
return
|
|
9
|
+
var s = "https://solidproject.org/get_a_pod";
|
|
10
|
+
function c(t) {
|
|
11
|
+
let n = a.store, r = n.sym(t), i = n.any(r, e.sioc("avatar")) || n.any(r, e.foaf("img")) || n.any(r, e.vcard("logo")) || n.any(r, e.vcard("hasPhoto")) || n.any(r, e.vcard("photo")) || n.any(r, e.foaf("depiction"));
|
|
12
|
+
return i ? i.value : void 0;
|
|
13
13
|
}
|
|
14
|
-
var
|
|
14
|
+
var l = class {
|
|
15
15
|
signupUrl;
|
|
16
|
-
|
|
16
|
+
_initialized = !1;
|
|
17
|
+
profileLoaded = !1;
|
|
18
|
+
listeners = [];
|
|
19
|
+
constructor(e = s) {
|
|
17
20
|
this.signupUrl = e;
|
|
18
21
|
}
|
|
22
|
+
async initialize() {
|
|
23
|
+
await i.checkUser(), this._initialized = !0, this.listeners.forEach((e) => e());
|
|
24
|
+
}
|
|
25
|
+
async loadProfile() {
|
|
26
|
+
this.profileLoaded || !this.account || (this.profileLoaded = !0, await a.profile.loadMe(), this.listeners.forEach((e) => e()));
|
|
27
|
+
}
|
|
28
|
+
get initialized() {
|
|
29
|
+
return this._initialized;
|
|
30
|
+
}
|
|
19
31
|
get account() {
|
|
20
32
|
let e = r.webId ?? r.info?.webId;
|
|
21
|
-
return !(r.isActive ?? r.info?.isLoggedIn ?? !!e) || !e ? null : new t(e,
|
|
33
|
+
return !(r.isActive ?? r.info?.isLoggedIn ?? !!e) || !e ? null : new t(e, c(e));
|
|
22
34
|
}
|
|
23
35
|
async login(e) {
|
|
24
36
|
if (!e) {
|
|
25
|
-
n(
|
|
37
|
+
n(o`<solid-ui-login-modal></solid-ui-login-modal>`);
|
|
26
38
|
return;
|
|
27
39
|
}
|
|
28
|
-
|
|
40
|
+
a.store.updater.flagAuthorizationMetadata();
|
|
29
41
|
let t = new URL(window.location.href).hash;
|
|
30
42
|
t && window.localStorage.setItem("preLoginRedirectHash", t), window.localStorage.setItem("loginIssuer", e);
|
|
31
|
-
let
|
|
32
|
-
|
|
43
|
+
let i = new URL(window.location.href);
|
|
44
|
+
i.hash = "", await r.login(e, i.href);
|
|
33
45
|
}
|
|
34
46
|
async signup() {
|
|
35
47
|
window.open(this.signupUrl, "_blank", "noopener,noreferrer");
|
|
@@ -41,12 +53,12 @@ var c = class {
|
|
|
41
53
|
let t = r, n = () => {
|
|
42
54
|
e();
|
|
43
55
|
};
|
|
44
|
-
return typeof t.addEventListener == "function" ? t.addEventListener("sessionStateChange", n) : (r.events.on("login",
|
|
45
|
-
typeof t.removeEventListener == "function" ? t.removeEventListener("sessionStateChange", n) : (r.events.off("login",
|
|
56
|
+
return this.listeners.push(n), typeof t.addEventListener == "function" ? t.addEventListener("sessionStateChange", n) : (r.events.on("login", n), r.events.on("logout", n), r.events.on("sessionRestore", n)), () => {
|
|
57
|
+
this.listeners = this.listeners.filter((e) => e !== n), typeof t.removeEventListener == "function" ? t.removeEventListener("sessionStateChange", n) : (r.events.off("login", n), r.events.off("logout", n), r.events.off("sessionRestore", n));
|
|
46
58
|
};
|
|
47
59
|
}
|
|
48
60
|
};
|
|
49
61
|
//#endregion
|
|
50
|
-
export {
|
|
62
|
+
export { s as DEFAULT_SIGNUP_URL, l as default };
|
|
51
63
|
|
|
52
64
|
//# sourceMappingURL=SolidAuth.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidAuth.esm.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"SolidAuth.esm.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\nimport { html } from 'lit'\n\nimport '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(html`<solid-ui-login-modal></solid-ui-login-modal>`)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":";;;;;;;;AASA,IAAa,IAAqB;AAElC,SAAS,EAAkB,GAAmC;CAC5D,IAAM,IAAQ,EAAoB,OAC5B,IAAK,EAAM,IAAI,CAAK,GACpB,IACJ,EAAM,IAAI,GAAI,EAAG,KAAK,QAAQ,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,KAAK,CAAC,KAC5B,EAAM,IAAI,GAAI,EAAG,MAAM,MAAM,CAAC,KAC9B,EAAM,IAAI,GAAI,EAAG,MAAM,UAAU,CAAC,KAClC,EAAM,IAAI,GAAI,EAAG,MAAM,OAAO,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,WAAW,CAAC;CAEpC,OAAO,IAAS,EAAc,QAAQ,KAAA;AACxC;AAEA,IAAqB,IAArB,MAAsD;CAKhC;CAJpB,eAAuB;CACvB,gBAAwB;CACxB,YAAuC,CAAC;CAExC,YAAa,IAA2B,GAAoB;EAAxC,KAAA,YAAA;CAAyC;CAE7D,MAAM,aAAc;EAIlB,AAHA,MAAM,EAAM,UAAU,GAEtB,KAAK,eAAe,IACpB,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,MAAM,cAAe;EACf,KAAK,iBAAiB,CAAC,KAAK,YAIhC,KAAK,gBAAgB,IAErB,MAAM,EAAoB,QAAQ,OAAO,GAEzC,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,IAAI,cAAwB;EAC1B,OAAO,KAAK;CACd;CAEA,IAAI,UAA2B;EAC7B,IAAM,IAA4B,EAAY,SAAS,EAAY,MAAM;EASzE,OANI,EAFsB,EAAY,YAAY,EAAY,MAAM,cAAc,EAAQ,MAEzE,CAAC,IACT,OAKF,IAAI,EAAQ,GAFD,EAAiB,CAET,CAAS;CACrC;CAEA,MAAM,MAAO,GAAmB;EAC9B,IAAI,CAAC,GAAU;GACb,EAAW,CAAI,+CAA+C;GAE9D;EACF;EAGC,EAAqB,MAAM,QAAgB,0BAA0B;EAEtE,IAAM,IAAuB,IAAI,IAAI,OAAO,SAAS,IAAI,CAAC,CAAC;EAI3D,AAHI,KACF,OAAO,aAAa,QAAQ,wBAAwB,CAAoB,GAE1E,OAAO,aAAa,QAAQ,eAAe,CAAQ;EAEnD,IAAM,IAAc,IAAI,IAAI,OAAO,SAAS,IAAI;EAIhD,AAFA,EAAY,OAAO,IAEnB,MAAM,EAAY,MAAM,GAAU,EAAY,IAAI;CACpD;CAEA,MAAM,SAAU;EACd,OAAO,KAAK,KAAK,WAAW,UAAU,qBAAqB;CAC7D;CAEA,MAAM,SAAU;EACd,MAAM,EAAY,OAAO;CAC3B;CAEA,iBAAkB,GAAyB;EACzC,IAAM,IAAqB,GACrB,UAAiB;GACrB,EAAS;EACX;EAYA,OAVA,KAAK,UAAU,KAAK,CAAQ,GAExB,OAAO,EAAmB,oBAAqB,aACjD,EAAmB,iBAAiB,sBAAsB,CAAQ,KAElE,EAAY,OAAO,GAAG,SAAS,CAAQ,GACvC,EAAY,OAAO,GAAG,UAAU,CAAQ,GACxC,EAAY,OAAO,GAAG,kBAAkB,CAAQ,UAGrC;GAGX,AAFA,KAAK,YAAY,KAAK,UAAU,QAAO,MAAa,MAAc,CAAQ,GAEtE,OAAO,EAAmB,uBAAwB,aACpD,EAAmB,oBAAoB,sBAAsB,CAAQ,KAErE,EAAY,OAAO,IAAI,SAAS,CAAQ,GACxC,EAAY,OAAO,IAAI,UAAU,CAAQ,GACzC,EAAY,OAAO,IAAI,kBAAkB,CAAQ;EAErD;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.cjs.js","names":[],"sources":["../../../src/lib/auth/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.cjs.js","names":[],"sources":["../../../src/lib/auth/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n initialized: boolean;\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n loadProfile?(): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n"],"mappings":"mEAcA,IAAa,EAAuB,IAAI,EAAA,QAC3B,GAAA,EAAA,EAAA,cAAA,CAAyC,OAAO,MAAM,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { default as NoopAuth } from './NoopAuth';
|
|
2
2
|
import { default as Account } from './Account';
|
|
3
3
|
export interface AuthContext {
|
|
4
|
+
initialized: boolean;
|
|
4
5
|
account: Account | null;
|
|
5
6
|
login(loginUrl?: string): Promise<void>;
|
|
7
|
+
loadProfile?(): Promise<void>;
|
|
6
8
|
signup(): Promise<void>;
|
|
7
9
|
logout(): Promise<void>;
|
|
8
10
|
onSessionUpdated(callback: () => unknown): () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/context.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,OAAO,MAAM,WAAW,CAAA;AAE/B,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,oBAAoB,UAAiB,CAAA;AAClD,eAAO,MAAM,WAAW;;CAA6C,CAAA"}
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/context.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,OAAO,MAAM,WAAW,CAAA;AAE/B,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,oBAAoB,UAAiB,CAAA;AAClD,eAAO,MAAM,WAAW;;CAA6C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.esm.js","names":[],"sources":["../../../src/lib/auth/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"context.esm.js","names":[],"sources":["../../../src/lib/auth/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n initialized: boolean;\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n loadProfile?(): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n"],"mappings":";;;AAcA,IAAa,IAAuB,IAAI,EAAS,GACpC,IAAc,EAA2B,OAAO,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./ids.cjs.js"),t=require("./decorators.cjs.js"),n=require("./web-component/WebComponent.cjs.js");require("./web-component/index.cjs.js");const r=require("./traits/DialogTrait.cjs.js"),i=require("./traits/
|
|
1
|
+
const e=require("./ids.cjs.js"),t=require("./decorators.cjs.js"),n=require("./web-component/WebComponent.cjs.js");require("./web-component/index.cjs.js");const r=require("./traits/DialogTrait.cjs.js"),i=require("./traits/FormControlTrait.cjs.js");require("./traits/index.cjs.js"),exports.DialogTrait=r.default,exports.FormControlTrait=i.default,exports.WebComponent=n.default,exports.customElement=t.customElement,exports.generateId=e.generateId;
|
|
@@ -3,6 +3,6 @@ import { customElement as t } from "./decorators.esm.js";
|
|
|
3
3
|
import n from "./web-component/WebComponent.esm.js";
|
|
4
4
|
import "./web-component/index.esm.js";
|
|
5
5
|
import r from "./traits/DialogTrait.esm.js";
|
|
6
|
-
import i from "./traits/
|
|
6
|
+
import i from "./traits/FormControlTrait.esm.js";
|
|
7
7
|
import "./traits/index.esm.js";
|
|
8
|
-
export { r as DialogTrait, i as
|
|
8
|
+
export { r as DialogTrait, i as FormControlTrait, n as WebComponent, t as customElement, e as generateId };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../ids.cjs.js");require("../index.cjs.js");let t=require("lit");var n=class{controlId;labelId;target;config;constructor(t,n){this.config=n,this.controlId=`control-${e.generateId()}`,this.labelId=`label-${this.controlId}`,this.target=t}firstUpdated(){this.config.getInternals().setFormValue(String(this.target.value??``)),this.updateValidity()}updated(e){(e.has(`value`)||e.has(`required`))&&this.updateValidity()}formResetCallback(){this.target.value=``,this.config.getInternals().setFormValue(``),this.updateValidity()}renderLabel(){return this.target.label?t.html`<label id="${this.labelId}" for="${this.controlId}">${this.target.label}</label>`:t.nothing}onInput(){this.setValue(this.config.getControlElement()?.value)}onSubmit(){this.config.getInternals().form?.requestSubmit()}setValue(e){this.target.value=e,this.config.getInternals().setFormValue(String(this.target.value??``)),this.target.dispatchEvent(new InputEvent(`input`,{bubbles:!0,composed:!0}))}updateValidity(){let e=this.config.getInternals();this.target.required&&(this.target.value??``)===``?e.setValidity({valueMissing:!0},`Please fill out this field.`,this.config.getControlElement()??void 0):e.setValidity({})}};exports.default=n;
|
|
2
|
+
//# sourceMappingURL=FormControlTrait.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormControlTrait.cjs.js","names":[],"sources":["../../../../src/lib/components/traits/FormControlTrait.ts"],"sourcesContent":["import { WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\n\nimport { generateId } from '@/lib/components'\n\nimport type { WebComponentTrait } from './WebComponentTrait'\n\nexport type FormControlTraitTarget = WebComponent & {\n name: string;\n label: string;\n required: boolean;\n value: unknown;\n}\n\nexport interface FormControlTraitConfig {\n getControlElement(): HTMLInputElement | HTMLSelectElement | null\n getInternals(): ElementInternals\n}\n\nexport default class FormControlTrait implements WebComponentTrait {\n public controlId: string\n public labelId: string\n public target: FormControlTraitTarget\n private config: FormControlTraitConfig\n\n constructor (target: FormControlTraitTarget, config: FormControlTraitConfig) {\n this.config = config\n this.controlId = `control-${generateId()}`\n this.labelId = `label-${this.controlId}`\n this.target = target\n }\n\n firstUpdated () {\n this.config.getInternals().setFormValue(String(this.target.value ?? ''))\n this.updateValidity()\n }\n\n updated (changedProperties: Map<PropertyKey, unknown>) {\n if (changedProperties.has('value') || changedProperties.has('required')) {\n this.updateValidity()\n }\n }\n\n formResetCallback () {\n this.target.value = ''\n this.config.getInternals().setFormValue('')\n this.updateValidity()\n }\n\n renderLabel () {\n return this.target.label\n ? html`<label id=\"${this.labelId}\" for=\"${this.controlId}\">${this.target.label}</label>`\n : nothing\n }\n\n onInput () {\n this.setValue(this.config.getControlElement()?.value)\n }\n\n onSubmit () {\n this.config.getInternals().form?.requestSubmit()\n }\n\n setValue (value: unknown) {\n this.target.value = value\n\n this.config.getInternals().setFormValue(String(this.target.value ?? ''))\n this.target.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }))\n }\n\n private updateValidity () {\n const internals = this.config.getInternals()\n\n if (this.target.required && (this.target.value ?? '') === '') {\n internals.setValidity(\n { valueMissing: true },\n 'Please fill out this field.',\n this.config.getControlElement() ?? undefined\n )\n } else {\n internals.setValidity({})\n }\n }\n}\n"],"mappings":"iFAmBA,IAAqB,EAArB,KAAmE,CACjE,UACA,QACA,OACA,OAEA,YAAa,EAAgC,EAAgC,CAC3E,KAAK,OAAS,EACd,KAAK,UAAY,WAAW,EAAA,WAAW,IACvC,KAAK,QAAU,SAAS,KAAK,YAC7B,KAAK,OAAS,CAChB,CAEA,cAAgB,CACd,KAAK,OAAO,aAAa,CAAC,CAAC,aAAa,OAAO,KAAK,OAAO,OAAS,EAAE,CAAC,EACvE,KAAK,eAAe,CACtB,CAEA,QAAS,EAA8C,EACjD,EAAkB,IAAI,OAAO,GAAK,EAAkB,IAAI,UAAU,IACpE,KAAK,eAAe,CAExB,CAEA,mBAAqB,CACnB,KAAK,OAAO,MAAQ,GACpB,KAAK,OAAO,aAAa,CAAC,CAAC,aAAa,EAAE,EAC1C,KAAK,eAAe,CACtB,CAEA,aAAe,CACb,OAAO,KAAK,OAAO,MACf,EAAA,IAAI,cAAc,KAAK,QAAQ,SAAS,KAAK,UAAU,IAAI,KAAK,OAAO,MAAM,UAC7E,EAAA,OACN,CAEA,SAAW,CACT,KAAK,SAAS,KAAK,OAAO,kBAAkB,CAAC,EAAE,KAAK,CACtD,CAEA,UAAY,CACV,KAAK,OAAO,aAAa,CAAC,CAAC,MAAM,cAAc,CACjD,CAEA,SAAU,EAAgB,CACxB,KAAK,OAAO,MAAQ,EAEpB,KAAK,OAAO,aAAa,CAAC,CAAC,aAAa,OAAO,KAAK,OAAO,OAAS,EAAE,CAAC,EACvE,KAAK,OAAO,cAAc,IAAI,WAAW,QAAS,CAAE,QAAS,GAAM,SAAU,EAAK,CAAC,CAAC,CACtF,CAEA,gBAA0B,CACxB,IAAM,EAAY,KAAK,OAAO,aAAa,EAEvC,KAAK,OAAO,WAAa,KAAK,OAAO,OAAS,MAAQ,GACxD,EAAU,YACR,CAAE,aAAc,EAAK,EACrB,8BACA,KAAK,OAAO,kBAAkB,GAAK,IAAA,EACrC,EAEA,EAAU,YAAY,CAAC,CAAC,CAE5B,CACF"}
|
|
@@ -1,30 +1,29 @@
|
|
|
1
1
|
import { WebComponent } from '..';
|
|
2
2
|
import { nothing } from 'lit';
|
|
3
3
|
import { WebComponentTrait } from './WebComponentTrait';
|
|
4
|
-
export type
|
|
4
|
+
export type FormControlTraitTarget = WebComponent & {
|
|
5
5
|
name: string;
|
|
6
6
|
label: string;
|
|
7
7
|
required: boolean;
|
|
8
|
-
value:
|
|
8
|
+
value: unknown;
|
|
9
9
|
};
|
|
10
|
-
export interface
|
|
11
|
-
|
|
10
|
+
export interface FormControlTraitConfig {
|
|
11
|
+
getControlElement(): HTMLInputElement | HTMLSelectElement | null;
|
|
12
12
|
getInternals(): ElementInternals;
|
|
13
|
-
onValueChanged?: (value: string) => void;
|
|
14
13
|
}
|
|
15
|
-
export default class
|
|
16
|
-
|
|
14
|
+
export default class FormControlTrait implements WebComponentTrait {
|
|
15
|
+
controlId: string;
|
|
17
16
|
labelId: string;
|
|
18
|
-
target:
|
|
17
|
+
target: FormControlTraitTarget;
|
|
19
18
|
private config;
|
|
20
|
-
constructor(target:
|
|
19
|
+
constructor(target: FormControlTraitTarget, config: FormControlTraitConfig);
|
|
21
20
|
firstUpdated(): void;
|
|
22
21
|
updated(changedProperties: Map<PropertyKey, unknown>): void;
|
|
23
22
|
formResetCallback(): void;
|
|
24
23
|
renderLabel(): import('lit-html').TemplateResult<1> | typeof nothing;
|
|
25
24
|
onInput(): void;
|
|
26
25
|
onSubmit(): void;
|
|
27
|
-
setValue(value:
|
|
26
|
+
setValue(value: unknown): void;
|
|
28
27
|
private updateValidity;
|
|
29
28
|
}
|
|
30
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=FormControlTrait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormControlTrait.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/traits/FormControlTrait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAQ,OAAO,EAAE,MAAM,KAAK,CAAA;AAInC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAA;AAED,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,IAAI,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,CAAA;IAChE,YAAY,IAAI,gBAAgB,CAAA;CACjC;AAED,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,iBAAiB;IACzD,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,sBAAsB,CAAA;IACrC,OAAO,CAAC,MAAM,CAAwB;gBAEzB,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,sBAAsB;IAO3E,YAAY;IAKZ,OAAO,CAAE,iBAAiB,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAMrD,iBAAiB;IAMjB,WAAW;IAMX,OAAO;IAIP,QAAQ;IAIR,QAAQ,CAAE,KAAK,EAAE,OAAO;IAOxB,OAAO,CAAC,cAAc;CAavB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { generateId as e } from "../ids.esm.js";
|
|
2
|
+
import "../index.esm.js";
|
|
3
|
+
import { html as t, nothing as n } from "lit";
|
|
4
|
+
//#region src/lib/components/traits/FormControlTrait.ts
|
|
5
|
+
var r = class {
|
|
6
|
+
controlId;
|
|
7
|
+
labelId;
|
|
8
|
+
target;
|
|
9
|
+
config;
|
|
10
|
+
constructor(t, n) {
|
|
11
|
+
this.config = n, this.controlId = `control-${e()}`, this.labelId = `label-${this.controlId}`, this.target = t;
|
|
12
|
+
}
|
|
13
|
+
firstUpdated() {
|
|
14
|
+
this.config.getInternals().setFormValue(String(this.target.value ?? "")), this.updateValidity();
|
|
15
|
+
}
|
|
16
|
+
updated(e) {
|
|
17
|
+
(e.has("value") || e.has("required")) && this.updateValidity();
|
|
18
|
+
}
|
|
19
|
+
formResetCallback() {
|
|
20
|
+
this.target.value = "", this.config.getInternals().setFormValue(""), this.updateValidity();
|
|
21
|
+
}
|
|
22
|
+
renderLabel() {
|
|
23
|
+
return this.target.label ? t`<label id="${this.labelId}" for="${this.controlId}">${this.target.label}</label>` : n;
|
|
24
|
+
}
|
|
25
|
+
onInput() {
|
|
26
|
+
this.setValue(this.config.getControlElement()?.value);
|
|
27
|
+
}
|
|
28
|
+
onSubmit() {
|
|
29
|
+
this.config.getInternals().form?.requestSubmit();
|
|
30
|
+
}
|
|
31
|
+
setValue(e) {
|
|
32
|
+
this.target.value = e, this.config.getInternals().setFormValue(String(this.target.value ?? "")), this.target.dispatchEvent(new InputEvent("input", {
|
|
33
|
+
bubbles: !0,
|
|
34
|
+
composed: !0
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
updateValidity() {
|
|
38
|
+
let e = this.config.getInternals();
|
|
39
|
+
this.target.required && (this.target.value ?? "") === "" ? e.setValidity({ valueMissing: !0 }, "Please fill out this field.", this.config.getControlElement() ?? void 0) : e.setValidity({});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
//#endregion
|
|
43
|
+
export { r as default };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=FormControlTrait.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormControlTrait.esm.js","names":[],"sources":["../../../../src/lib/components/traits/FormControlTrait.ts"],"sourcesContent":["import { WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\n\nimport { generateId } from '@/lib/components'\n\nimport type { WebComponentTrait } from './WebComponentTrait'\n\nexport type FormControlTraitTarget = WebComponent & {\n name: string;\n label: string;\n required: boolean;\n value: unknown;\n}\n\nexport interface FormControlTraitConfig {\n getControlElement(): HTMLInputElement | HTMLSelectElement | null\n getInternals(): ElementInternals\n}\n\nexport default class FormControlTrait implements WebComponentTrait {\n public controlId: string\n public labelId: string\n public target: FormControlTraitTarget\n private config: FormControlTraitConfig\n\n constructor (target: FormControlTraitTarget, config: FormControlTraitConfig) {\n this.config = config\n this.controlId = `control-${generateId()}`\n this.labelId = `label-${this.controlId}`\n this.target = target\n }\n\n firstUpdated () {\n this.config.getInternals().setFormValue(String(this.target.value ?? ''))\n this.updateValidity()\n }\n\n updated (changedProperties: Map<PropertyKey, unknown>) {\n if (changedProperties.has('value') || changedProperties.has('required')) {\n this.updateValidity()\n }\n }\n\n formResetCallback () {\n this.target.value = ''\n this.config.getInternals().setFormValue('')\n this.updateValidity()\n }\n\n renderLabel () {\n return this.target.label\n ? html`<label id=\"${this.labelId}\" for=\"${this.controlId}\">${this.target.label}</label>`\n : nothing\n }\n\n onInput () {\n this.setValue(this.config.getControlElement()?.value)\n }\n\n onSubmit () {\n this.config.getInternals().form?.requestSubmit()\n }\n\n setValue (value: unknown) {\n this.target.value = value\n\n this.config.getInternals().setFormValue(String(this.target.value ?? ''))\n this.target.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }))\n }\n\n private updateValidity () {\n const internals = this.config.getInternals()\n\n if (this.target.required && (this.target.value ?? '') === '') {\n internals.setValidity(\n { valueMissing: true },\n 'Please fill out this field.',\n this.config.getControlElement() ?? undefined\n )\n } else {\n internals.setValidity({})\n }\n }\n}\n"],"mappings":";;;;AAmBA,IAAqB,IAArB,MAAmE;CACjE;CACA;CACA;CACA;CAEA,YAAa,GAAgC,GAAgC;EAI3E,AAHA,KAAK,SAAS,GACd,KAAK,YAAY,WAAW,EAAW,KACvC,KAAK,UAAU,SAAS,KAAK,aAC7B,KAAK,SAAS;CAChB;CAEA,eAAgB;EAEd,AADA,KAAK,OAAO,aAAa,CAAC,CAAC,aAAa,OAAO,KAAK,OAAO,SAAS,EAAE,CAAC,GACvE,KAAK,eAAe;CACtB;CAEA,QAAS,GAA8C;EACrD,CAAI,EAAkB,IAAI,OAAO,KAAK,EAAkB,IAAI,UAAU,MACpE,KAAK,eAAe;CAExB;CAEA,oBAAqB;EAGnB,AAFA,KAAK,OAAO,QAAQ,IACpB,KAAK,OAAO,aAAa,CAAC,CAAC,aAAa,EAAE,GAC1C,KAAK,eAAe;CACtB;CAEA,cAAe;EACb,OAAO,KAAK,OAAO,QACf,CAAI,cAAc,KAAK,QAAQ,SAAS,KAAK,UAAU,IAAI,KAAK,OAAO,MAAM,YAC7E;CACN;CAEA,UAAW;EACT,KAAK,SAAS,KAAK,OAAO,kBAAkB,CAAC,EAAE,KAAK;CACtD;CAEA,WAAY;EACV,KAAK,OAAO,aAAa,CAAC,CAAC,MAAM,cAAc;CACjD;CAEA,SAAU,GAAgB;EAIxB,AAHA,KAAK,OAAO,QAAQ,GAEpB,KAAK,OAAO,aAAa,CAAC,CAAC,aAAa,OAAO,KAAK,OAAO,SAAS,EAAE,CAAC,GACvE,KAAK,OAAO,cAAc,IAAI,WAAW,SAAS;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACtF;CAEA,iBAA0B;EACxB,IAAM,IAAY,KAAK,OAAO,aAAa;EAE3C,AAAI,KAAK,OAAO,aAAa,KAAK,OAAO,SAAS,QAAQ,KACxD,EAAU,YACR,EAAE,cAAc,GAAK,GACrB,+BACA,KAAK,OAAO,kBAAkB,KAAK,KAAA,CACrC,IAEA,EAAU,YAAY,CAAC,CAAC;CAE5B;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./DialogTrait.cjs.js"),t=require("./
|
|
1
|
+
const e=require("./DialogTrait.cjs.js"),t=require("./FormControlTrait.cjs.js");exports.DialogTrait=e.default,exports.FormControlTrait=t.default;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from './DialogTrait';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './FormControlTrait';
|
|
3
3
|
export * from './WebComponentTrait';
|
|
4
4
|
export { default as DialogTrait } from './DialogTrait';
|
|
5
|
-
export { default as
|
|
5
|
+
export { default as FormControlTrait } from './FormControlTrait';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/traits/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/traits/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AAEnC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import e from "./DialogTrait.esm.js";
|
|
2
|
-
import t from "./
|
|
3
|
-
export { e as DialogTrait, t as
|
|
2
|
+
import t from "./FormControlTrait.esm.js";
|
|
3
|
+
export { e as DialogTrait, t as FormControlTrait };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebComponent.cjs.js","names":[],"sources":["../../../../src/lib/components/web-component/WebComponent.ts"],"sourcesContent":["import { html, LitElement, type CSSResultGroup } from 'lit'\nimport type { WebComponentTrait, WebComponentTraitMethodKey } from '@/lib/components/traits/WebComponentTrait'\n\nimport styles from './WebComponent.styles.css'\n\nexport default abstract class WebComponent extends LitElement {\n static states?: Record<string, Function>\n\n protected static finalizeStyles (componentStyles?: CSSResultGroup) {\n const elementStyles = super.finalizeStyles(componentStyles)\n\n return [styles, ...elementStyles]\n }\n\n protected internals?: ElementInternals\n protected globalListeners: [type: string, listener: EventListener][] = []\n protected traits: WebComponentTrait[] = []\n\n disconnectedCallback (): void {\n super.disconnectedCallback()\n\n for (const [type, listener] of this.globalListeners) {\n window.removeEventListener(type, listener)\n }\n\n this.globalListeners = []\n }\n\n protected addTrait<T extends WebComponentTrait>(trait: T): T {\n this.traits.push(trait)\n\n return trait\n }\n\n protected firstUpdated () {\n this.forwardMethodCall('firstUpdated')\n }\n\n protected updated (changedProperties: Map<PropertyKey, unknown>) {\n this.forwardMethodCall('updated', changedProperties)\n }\n\n protected formResetCallback () {\n this.forwardMethodCall('formResetCallback')\n }\n\n protected willUpdate (changedProperties:
|
|
1
|
+
{"version":3,"file":"WebComponent.cjs.js","names":[],"sources":["../../../../src/lib/components/web-component/WebComponent.ts"],"sourcesContent":["import { html, LitElement, type CSSResultGroup, type PropertyValues } from 'lit'\nimport type { WebComponentTrait, WebComponentTraitMethodKey } from '@/lib/components/traits/WebComponentTrait'\n\nimport styles from './WebComponent.styles.css'\n\nexport default abstract class WebComponent extends LitElement {\n static states?: Record<string, Function>\n\n protected static finalizeStyles (componentStyles?: CSSResultGroup) {\n const elementStyles = super.finalizeStyles(componentStyles)\n\n return [styles, ...elementStyles]\n }\n\n protected internals?: ElementInternals\n protected globalListeners: [type: string, listener: EventListener][] = []\n protected traits: WebComponentTrait[] = []\n\n disconnectedCallback (): void {\n super.disconnectedCallback()\n\n for (const [type, listener] of this.globalListeners) {\n window.removeEventListener(type, listener)\n }\n\n this.globalListeners = []\n }\n\n protected addTrait<T extends WebComponentTrait>(trait: T): T {\n this.traits.push(trait)\n\n return trait\n }\n\n protected firstUpdated () {\n this.forwardMethodCall('firstUpdated')\n }\n\n protected updated (changedProperties: Map<PropertyKey, unknown>) {\n this.forwardMethodCall('updated', changedProperties)\n }\n\n protected formResetCallback () {\n this.forwardMethodCall('formResetCallback')\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n const states = this.static().states\n\n if (!states) {\n return\n }\n\n for (const [state, condition] of Object.entries(states)) {\n // FIXME when browser support is good enough, use the internals API instead with :state() selectors\n this.toggleAttribute(`data-state-${state}`, !!condition(this))\n }\n }\n\n protected addGlobalEventListener <T extends keyof WindowEventMap>(type: T, listener: (this: Window, ev: WindowEventMap[T]) => any) {\n this.globalListeners.push([type, listener as EventListener])\n\n window.addEventListener(type, listener)\n }\n\n protected render () {\n return html`<slot></slot>`\n }\n\n protected getInternals (): ElementInternals {\n this.internals ??= this.attachInternals()\n\n return this.internals\n }\n\n private static (): typeof WebComponent {\n return this.constructor as typeof WebComponent\n }\n\n private forwardMethodCall<T extends WebComponentTraitMethodKey>(method: T, ...args: Parameters<Required<WebComponentTrait>[T]>) {\n for (const trait of this.traits) {\n (trait[method] as Function | undefined)?.(...args)\n }\n }\n}\n"],"mappings":"qEAKA,IAA8B,EAA9B,cAAmD,EAAA,UAAW,CAC5D,OAAO,OAEP,OAAiB,eAAgB,EAAkC,CAGjE,MAAO,CAAC,EAAA,QAAQ,GAFM,MAAM,eAAe,CAExB,CAAa,CAClC,CAEA,UACA,gBAAuE,CAAC,EACxE,OAAwC,CAAC,EAEzC,sBAA8B,CAC5B,MAAM,qBAAqB,EAE3B,IAAK,GAAM,CAAC,EAAM,KAAa,KAAK,gBAClC,OAAO,oBAAoB,EAAM,CAAQ,EAG3C,KAAK,gBAAkB,CAAC,CAC1B,CAEA,SAAgD,EAAa,CAG3D,OAFA,KAAK,OAAO,KAAK,CAAK,EAEf,CACT,CAEA,cAA0B,CACxB,KAAK,kBAAkB,cAAc,CACvC,CAEA,QAAmB,EAA8C,CAC/D,KAAK,kBAAkB,UAAW,CAAiB,CACrD,CAEA,mBAA+B,CAC7B,KAAK,kBAAkB,mBAAmB,CAC5C,CAEA,WAAsB,EAAyC,CAC7D,MAAM,WAAW,CAAiB,EAElC,IAAM,EAAS,KAAK,OAAO,CAAC,CAAC,OAExB,KAIL,IAAK,GAAM,CAAC,EAAO,KAAc,OAAO,QAAQ,CAAM,EAEpD,KAAK,gBAAgB,cAAc,IAAS,CAAC,CAAC,EAAU,IAAI,CAAC,CAEjE,CAEA,uBAAkE,EAAS,EAAwD,CACjI,KAAK,gBAAgB,KAAK,CAAC,EAAM,CAAyB,CAAC,EAE3D,OAAO,iBAAiB,EAAM,CAAQ,CACxC,CAEA,QAAoB,CAClB,MAAO,GAAA,IAAI,eACb,CAEA,cAA4C,CAG1C,MAFA,MAAK,YAAc,KAAK,gBAAgB,EAEjC,KAAK,SACd,CAEA,QAAuC,CACrC,OAAO,KAAK,WACd,CAEA,kBAAgE,EAAW,GAAG,EAAkD,CAC9H,IAAK,IAAM,KAAS,KAAK,OACvB,EAAO,EAAO,GAA4B,GAAG,CAAI,CAErD,CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement, CSSResultGroup } from 'lit';
|
|
1
|
+
import { LitElement, CSSResultGroup, PropertyValues } from 'lit';
|
|
2
2
|
import { WebComponentTrait } from '../traits/WebComponentTrait';
|
|
3
3
|
export default abstract class WebComponent extends LitElement {
|
|
4
4
|
static states?: Record<string, Function>;
|
|
@@ -11,7 +11,7 @@ export default abstract class WebComponent extends LitElement {
|
|
|
11
11
|
protected firstUpdated(): void;
|
|
12
12
|
protected updated(changedProperties: Map<PropertyKey, unknown>): void;
|
|
13
13
|
protected formResetCallback(): void;
|
|
14
|
-
protected willUpdate(changedProperties:
|
|
14
|
+
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
15
15
|
protected addGlobalEventListener<T extends keyof WindowEventMap>(type: T, listener: (this: Window, ev: WindowEventMap[T]) => any): void;
|
|
16
16
|
protected render(): import('lit-html').TemplateResult<1>;
|
|
17
17
|
protected getInternals(): ElementInternals;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebComponent.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/web-component/WebComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"WebComponent.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/web-component/WebComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAA;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAA8B,MAAM,2CAA2C,CAAA;AAI9G,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,YAAa,SAAQ,UAAU;IAC3D,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAExC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAE,eAAe,CAAC,EAAE,cAAc;IAMjE,SAAS,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;IACtC,SAAS,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAK;IACzE,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAK;IAE1C,oBAAoB,IAAK,IAAI;IAU7B,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,iBAAiB,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAM5D,SAAS,CAAC,YAAY;IAItB,SAAS,CAAC,OAAO,CAAE,iBAAiB,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAI/D,SAAS,CAAC,iBAAiB;IAI3B,SAAS,CAAC,UAAU,CAAE,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC;IAe7D,SAAS,CAAC,sBAAsB,CAAE,CAAC,SAAS,MAAM,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG;IAMjI,SAAS,CAAC,MAAM;IAIhB,SAAS,CAAC,YAAY,IAAK,gBAAgB;IAM3C,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,iBAAiB;CAK1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebComponent.esm.js","names":[],"sources":["../../../../src/lib/components/web-component/WebComponent.ts"],"sourcesContent":["import { html, LitElement, type CSSResultGroup } from 'lit'\nimport type { WebComponentTrait, WebComponentTraitMethodKey } from '@/lib/components/traits/WebComponentTrait'\n\nimport styles from './WebComponent.styles.css'\n\nexport default abstract class WebComponent extends LitElement {\n static states?: Record<string, Function>\n\n protected static finalizeStyles (componentStyles?: CSSResultGroup) {\n const elementStyles = super.finalizeStyles(componentStyles)\n\n return [styles, ...elementStyles]\n }\n\n protected internals?: ElementInternals\n protected globalListeners: [type: string, listener: EventListener][] = []\n protected traits: WebComponentTrait[] = []\n\n disconnectedCallback (): void {\n super.disconnectedCallback()\n\n for (const [type, listener] of this.globalListeners) {\n window.removeEventListener(type, listener)\n }\n\n this.globalListeners = []\n }\n\n protected addTrait<T extends WebComponentTrait>(trait: T): T {\n this.traits.push(trait)\n\n return trait\n }\n\n protected firstUpdated () {\n this.forwardMethodCall('firstUpdated')\n }\n\n protected updated (changedProperties: Map<PropertyKey, unknown>) {\n this.forwardMethodCall('updated', changedProperties)\n }\n\n protected formResetCallback () {\n this.forwardMethodCall('formResetCallback')\n }\n\n protected willUpdate (changedProperties:
|
|
1
|
+
{"version":3,"file":"WebComponent.esm.js","names":[],"sources":["../../../../src/lib/components/web-component/WebComponent.ts"],"sourcesContent":["import { html, LitElement, type CSSResultGroup, type PropertyValues } from 'lit'\nimport type { WebComponentTrait, WebComponentTraitMethodKey } from '@/lib/components/traits/WebComponentTrait'\n\nimport styles from './WebComponent.styles.css'\n\nexport default abstract class WebComponent extends LitElement {\n static states?: Record<string, Function>\n\n protected static finalizeStyles (componentStyles?: CSSResultGroup) {\n const elementStyles = super.finalizeStyles(componentStyles)\n\n return [styles, ...elementStyles]\n }\n\n protected internals?: ElementInternals\n protected globalListeners: [type: string, listener: EventListener][] = []\n protected traits: WebComponentTrait[] = []\n\n disconnectedCallback (): void {\n super.disconnectedCallback()\n\n for (const [type, listener] of this.globalListeners) {\n window.removeEventListener(type, listener)\n }\n\n this.globalListeners = []\n }\n\n protected addTrait<T extends WebComponentTrait>(trait: T): T {\n this.traits.push(trait)\n\n return trait\n }\n\n protected firstUpdated () {\n this.forwardMethodCall('firstUpdated')\n }\n\n protected updated (changedProperties: Map<PropertyKey, unknown>) {\n this.forwardMethodCall('updated', changedProperties)\n }\n\n protected formResetCallback () {\n this.forwardMethodCall('formResetCallback')\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n const states = this.static().states\n\n if (!states) {\n return\n }\n\n for (const [state, condition] of Object.entries(states)) {\n // FIXME when browser support is good enough, use the internals API instead with :state() selectors\n this.toggleAttribute(`data-state-${state}`, !!condition(this))\n }\n }\n\n protected addGlobalEventListener <T extends keyof WindowEventMap>(type: T, listener: (this: Window, ev: WindowEventMap[T]) => any) {\n this.globalListeners.push([type, listener as EventListener])\n\n window.addEventListener(type, listener)\n }\n\n protected render () {\n return html`<slot></slot>`\n }\n\n protected getInternals (): ElementInternals {\n this.internals ??= this.attachInternals()\n\n return this.internals\n }\n\n private static (): typeof WebComponent {\n return this.constructor as typeof WebComponent\n }\n\n private forwardMethodCall<T extends WebComponentTraitMethodKey>(method: T, ...args: Parameters<Required<WebComponentTrait>[T]>) {\n for (const trait of this.traits) {\n (trait[method] as Function | undefined)?.(...args)\n }\n }\n}\n"],"mappings":";;;AAKA,IAA8B,IAA9B,cAAmD,EAAW;CAC5D,OAAO;CAEP,OAAiB,eAAgB,GAAkC;EAGjE,OAAO,CAAC,GAAQ,GAFM,MAAM,eAAe,CAExB,CAAa;CAClC;CAEA;CACA,kBAAuE,CAAC;CACxE,SAAwC,CAAC;CAEzC,uBAA8B;EAC5B,MAAM,qBAAqB;EAE3B,KAAK,IAAM,CAAC,GAAM,MAAa,KAAK,iBAClC,OAAO,oBAAoB,GAAM,CAAQ;EAG3C,KAAK,kBAAkB,CAAC;CAC1B;CAEA,SAAgD,GAAa;EAG3D,OAFA,KAAK,OAAO,KAAK,CAAK,GAEf;CACT;CAEA,eAA0B;EACxB,KAAK,kBAAkB,cAAc;CACvC;CAEA,QAAmB,GAA8C;EAC/D,KAAK,kBAAkB,WAAW,CAAiB;CACrD;CAEA,oBAA+B;EAC7B,KAAK,kBAAkB,mBAAmB;CAC5C;CAEA,WAAsB,GAAyC;EAC7D,MAAM,WAAW,CAAiB;EAElC,IAAM,IAAS,KAAK,OAAO,CAAC,CAAC;EAExB,OAIL,KAAK,IAAM,CAAC,GAAO,MAAc,OAAO,QAAQ,CAAM,GAEpD,KAAK,gBAAgB,cAAc,KAAS,CAAC,CAAC,EAAU,IAAI,CAAC;CAEjE;CAEA,uBAAkE,GAAS,GAAwD;EAGjI,AAFA,KAAK,gBAAgB,KAAK,CAAC,GAAM,CAAyB,CAAC,GAE3D,OAAO,iBAAiB,GAAM,CAAQ;CACxC;CAEA,SAAoB;EAClB,OAAO,CAAI;CACb;CAEA,eAA4C;EAG1C,OAFA,KAAK,cAAc,KAAK,gBAAgB,GAEjC,KAAK;CACd;CAEA,SAAuC;EACrC,OAAO,KAAK;CACd;CAEA,kBAAgE,GAAW,GAAG,GAAkD;EAC9H,KAAK,IAAM,KAAS,KAAK,QACvB,EAAO,EAAO,GAA4B,GAAG,CAAI;CAErD;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timing.cjs.js","names":[],"sources":["../../src/lib/timing.ts"],"sourcesContent":["export interface DebouncedFunction<Args extends any[]> {\n (...args: Args): void;\n cancel(): void;\n}\n\nexport function debounce<Args extends any[]> (\n delay: number,\n callback: (...args: Args) => unknown\n): DebouncedFunction<Args> {\n let timeout: ReturnType<typeof setTimeout> | null = null\n\n const debouncedCallback: DebouncedFunction<Args> = (...args: Args) => {\n debouncedCallback.cancel()\n timeout = setTimeout(() => callback(...args), delay)\n }\n\n debouncedCallback.cancel = () => {\n if (timeout === null) {\n return\n }\n\n clearTimeout(timeout)\n timeout = null\n }\n\n return debouncedCallback\n}\n"],"mappings":"AAKA,SAAgB,EACd,EACA,EACyB,CACzB,IAAI,EAAgD,KAE9C,GAA8C,GAAG,IAAe,CACpE,EAAkB,OAAO,EACzB,EAAU,eAAiB,EAAS,GAAG,CAAI,EAAG,CAAK,CACrD,EAWA,MATA,GAAkB,WAAe,CAC3B,IAAY,OAIhB,aAAa,CAAO,EACpB,EAAU,KACZ,EAEO,CACT"}
|