solid-ui 5.0.0-0 → 5.0.0-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{account-CWdjQDsQ.js → account-C4JpDQFa.js} +7 -7
- package/dist/chunks/{account-CWdjQDsQ.js.map → account-C4JpDQFa.js.map} +1 -1
- package/dist/chunks/{auth-DdvFEHuV.js → auth-DfCfMOuM.js} +85 -81
- package/dist/chunks/auth-DfCfMOuM.js.map +1 -0
- package/dist/chunks/{avatar-3eUQtxXZ.js → avatar-C677VD9J.js} +2 -2
- package/dist/chunks/{avatar-3eUQtxXZ.js.map → avatar-C677VD9J.js.map} +1 -1
- package/dist/chunks/{chunk.64OG2H45-BFgXEuP7.js → chunk.KB3IOPVF-Ckx3HIiR.js} +10 -3
- package/dist/chunks/chunk.KB3IOPVF-Ckx3HIiR.js.map +1 -0
- package/dist/chunks/{combobox-D3eGdicW.js → combobox-BZ9n8wQw.js} +3 -3
- package/dist/chunks/combobox-BZ9n8wQw.js.map +1 -0
- package/dist/chunks/{guard-6zSfmr4k.js → guard-DcrczXhs.js} +2 -2
- package/dist/chunks/{guard-6zSfmr4k.js.map → guard-DcrczXhs.js.map} +1 -1
- package/dist/chunks/{index.esm-Bu7WXI60.js → index.esm-AZPmKqjU.js} +1944 -1489
- package/dist/chunks/index.esm-AZPmKqjU.js.map +1 -0
- package/dist/chunks/{jsonld-B2M5QgXx.js → jsonld-CDR2WyN_.js} +4 -4
- package/dist/chunks/{jsonld-B2M5QgXx.js.map → jsonld-CDR2WyN_.js.map} +1 -1
- package/dist/chunks/{login-button-Boh1eEJ5.js → login-button-CRQbpCob.js} +2 -2
- package/dist/chunks/{login-button-Boh1eEJ5.js.map → login-button-CRQbpCob.js.map} +1 -1
- package/dist/chunks/{logout-button-BJfE_daI.js → logout-button-H-ckaICm.js} +2 -2
- package/dist/chunks/{logout-button-BJfE_daI.js.map → logout-button-H-ckaICm.js.map} +1 -1
- package/dist/chunks/{menu-hMtmUkel.js → menu-DhnJDuBz.js} +277 -234
- package/dist/chunks/menu-DhnJDuBz.js.map +1 -0
- package/dist/chunks/{provider-BJ8rXsnl.js → provider-v6Wz9BOu.js} +2 -2
- package/dist/chunks/{provider-BJ8rXsnl.js.map → provider-v6Wz9BOu.js.map} +1 -1
- package/dist/chunks/{rdf-form-PagO7EXg.js → rdf-form-B2zTR8Qv.js} +21 -21
- package/dist/chunks/{rdf-form-PagO7EXg.js.map → rdf-form-B2zTR8Qv.js.map} +1 -1
- package/dist/chunks/{rdf-input-Dsbbxbva.js → rdf-input-DeDhyQ3p.js} +38 -38
- package/dist/chunks/{rdf-input-Dsbbxbva.js.map → rdf-input-DeDhyQ3p.js.map} +1 -1
- package/dist/chunks/{signup-button-14Bh_nyp.js → signup-button-Cy6FwVhE.js} +2 -2
- package/dist/chunks/{signup-button-14Bh_nyp.js.map → signup-button-Cy6FwVhE.js.map} +1 -1
- package/dist/chunks/{src-CZXvZVWH.js → src-Ca8thhHS.js} +5696 -5649
- package/dist/chunks/src-Ca8thhHS.js.map +1 -0
- package/dist/chunks/{style-BsMewYKg.js → style-Dpwrc8CC.js} +4 -4
- package/dist/chunks/{style-BsMewYKg.js.map → style-Dpwrc8CC.js.map} +1 -1
- package/dist/components/account.js +1 -1
- package/dist/components/avatar.js +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.js +1 -1
- package/dist/components/guard.js +1 -1
- package/dist/components/login-button.js +1 -1
- package/dist/components/login-modal/LoginModal.cjs.js +1 -1
- package/dist/components/login-modal/LoginModal.cjs.js.map +1 -1
- package/dist/components/login-modal/LoginModal.d.ts.map +1 -1
- package/dist/components/login-modal/LoginModal.esm.js +1 -1
- package/dist/components/login-modal/LoginModal.esm.js.map +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.js +1 -1
- package/dist/components/provider.js +1 -1
- package/dist/components/rdf-form/RDFForm.cjs.js +1 -1
- package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -1
- package/dist/components/rdf-form/RDFForm.esm.js +1 -1
- package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
- package/dist/components/rdf-form.js +1 -1
- package/dist/components/rdf-input.js +1 -1
- package/dist/components/signup-button.js +1 -1
- package/dist/components.js +12 -12
- package/dist/index.js +4 -4
- 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.map +1 -1
- package/dist/lib/auth/SolidAuth.esm.js +15 -11
- package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
- package/dist/lib/file-explorer/context.cjs.js.map +1 -1
- package/dist/lib/file-explorer/context.d.ts +1 -1
- package/dist/lib/file-explorer/context.d.ts.map +1 -1
- package/dist/lib/file-explorer/context.esm.js.map +1 -1
- package/dist/lib/table.cjs.js +1 -1
- 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/lib/tabs.cjs.js +1 -1
- package/dist/lib/tabs.cjs.js.map +1 -1
- package/dist/lib/tabs.esm.js +1 -1
- package/dist/lib/tabs.esm.js.map +1 -1
- package/dist/loader.js +4 -4
- package/dist/login/login.cjs.js +1 -1
- package/dist/login/login.cjs.js.map +1 -1
- package/dist/login/login.esm.js +1 -1
- package/dist/login/login.esm.js.map +1 -1
- package/dist/solid-ui.js +106 -90
- package/dist/solid-ui.min.js +106 -90
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/utils/index.cjs.js +1 -1
- package/dist/utils/index.cjs.js.map +1 -1
- package/dist/utils/index.esm.js +2 -2
- package/dist/utils/index.esm.js.map +1 -1
- package/dist/v2/components/auth/loginButton/LoginButton.d.ts.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 +22 -18
- package/dist/widgets/dragAndDrop.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 +4 -4
- package/dist/widgets/forms.esm.js.map +1 -1
- package/package.json +4 -4
- package/dist/chunks/auth-DdvFEHuV.js.map +0 -1
- package/dist/chunks/chunk.64OG2H45-BFgXEuP7.js.map +0 -1
- package/dist/chunks/combobox-D3eGdicW.js.map +0 -1
- package/dist/chunks/index.esm-Bu7WXI60.js.map +0 -1
- package/dist/chunks/menu-hMtmUkel.js.map +0 -1
- package/dist/chunks/src-CZXvZVWH.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../chunks/logout-button-
|
|
1
|
+
import { n as e, t } from "../chunks/logout-button-H-ckaICm.js";
|
|
2
2
|
export { e as LogoutButton, t as default };
|
|
@@ -10,5 +10,5 @@ const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/c
|
|
|
10
10
|
<slot name=${e.slot}></slot>
|
|
11
11
|
</wa-dropdown-item>`)}
|
|
12
12
|
</wa-dropdown>
|
|
13
|
-
`}syncItems(){let e=Array.from(this.children).filter(e=>e.getAttribute(`slot`)!==`trigger`);this.items=e.map((e,t)=>{let n=`menu-item-${t}`;return e.getAttribute(`slot`)!==n&&e.setAttribute(`slot`,n),{slot:n}})}onItemClick(e){let t=e.currentTarget;e.stopPropagation(),!t.disabled
|
|
13
|
+
`}syncItems(){let e=Array.from(this.children).filter(e=>e.getAttribute(`slot`)!==`trigger`);this.items=e.map((e,t)=>{let n=`menu-item-${t}`;return e.getAttribute(`slot`)!==n&&e.setAttribute(`slot`,n),{slot:n}})}onItemClick(e){let t=e.currentTarget;e.stopPropagation(),!t.disabled&&!this.dispatchSelectEvent(t).defaultPrevented&&this.dropdown&&(this.dropdown.open=!1)}onWaSelect(e){if(this.dispatchSelectEvent(e.detail.item).defaultPrevented){e.preventDefault();return}let t=e.detail.item.children[0].getAttribute(`name`);this.querySelector(`[slot="${t}"]`)?.click?.()}dispatchSelectEvent(e){let t=e.children[0].getAttribute(`name`),n=this.querySelector(`[slot="${t}"]`),r=new CustomEvent(`solid-ui-select`,{bubbles:!0,composed:!0,cancelable:!0});return n?.dispatchEvent(r),r}},{e:[h,_,y,x,d],c:[I,f]}=A(o,[[m,1,`placement`],[g,1,`distance`],[v,1,`dropdown`],[b,1,`items`]],p,0,void 0,t.default),o),a=class extends F{constructor(){super(I),k(this,`styles`,n.default),f()}},k(a,S,void 0),a),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return I}});
|
|
14
14
|
//# sourceMappingURL=Menu.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.cjs.js","names":["customElement","WebComponent","html","property","query","state","styles","_classDecs","_Menu","_Menu2","_A","WeakMap","_B","_C","_D","_ref","_placementDecs","type","String","reflect","_distanceDecs","Number","_dropdownDecs","_itemsDecs","_Menu3","Menu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_placement","_init_distance","_init_dropdown","_init_items","_defineProperty","MutationObserver","syncItems","_classPrivateFieldGet","placement","v","_classPrivateFieldSet","distance","dropdown","items","connectedCallback","observer","observe","childList","disconnectedCallback","disconnect","render","onWaSelect","map","item","onItemClick","slot","Array","from","children","filter","child","getAttribute","index","slotName","setAttribute","event","waItem","currentTarget","stopPropagation","disabled","selectedEvent","dispatchSelectEvent","defaultPrevented","open","detail","preventDefault","querySelector","click","CustomEvent","bubbles","composed","cancelable","dispatchEvent","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/menu/Menu.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport type WaDropdown from '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport type WaDropdownItem from '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\nimport type { WaDropdownSelectEvent } from '@awesome.me/webawesome'\n\nimport '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\n\nimport styles from './Menu.styles.css'\n\n@customElement('solid-ui-menu')\nexport default class Menu extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor placement: WaDropdown['placement'] = 'bottom-start';\n\n @property({ type: Number, reflect: true })\n accessor distance: number = 5;\n\n @query('wa-dropdown')\n private accessor dropdown: WaDropdown | null = null;\n\n @state()\n private accessor items: { slot: string; }[] = []\n\n private observer: MutationObserver = new MutationObserver(() => this.syncItems())\n\n connectedCallback () {\n super.connectedCallback()\n\n this.syncItems()\n this.observer.observe(this, { childList: true })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.observer.disconnect()\n }\n\n protected render () {\n return html`\n <wa-dropdown\n placement=${this.placement}\n distance=${this.distance}\n @wa-select=${this.onWaSelect}\n >\n <slot name=\"trigger\" slot=\"trigger\"></slot>\n\n ${this.items.map(\n (item) =>\n html`<wa-dropdown-item @click=${this.onItemClick}>\n <slot name=${item.slot}></slot>\n </wa-dropdown-item>`\n )}\n </wa-dropdown>\n `\n }\n\n private syncItems (): void {\n // Exclude only the trigger element; include all other children\n // regardless of whether they already have a slot assigned.\n const items = Array.from(this.children).filter(\n (child) => child.getAttribute('slot') !== 'trigger'\n )\n\n this.items = items.map((item, index) => {\n const slotName = `menu-item-${index}`\n\n if (item.getAttribute('slot') !== slotName) {\n item.setAttribute('slot', slotName)\n }\n\n return { slot: slotName }\n })\n }\n\n private onItemClick (event: Event) {\n const waItem = event.currentTarget as WaDropdownItem\n\n event.stopPropagation()\n\n if (waItem.disabled) {\n return\n }\n\n const selectedEvent = this.dispatchSelectEvent(waItem)\n\n if (selectedEvent.defaultPrevented || !this.dropdown) {\n return\n }\n\n this.dropdown.open = false\n }\n\n private onWaSelect (event: WaDropdownSelectEvent) {\n const selectedEvent = this.dispatchSelectEvent(event.detail.item)\n\n if (selectedEvent.defaultPrevented) {\n event.preventDefault()\n\n return\n }\n\n const slotName = event.detail.item.children[0].getAttribute('name')\n const item = this.querySelector<{ click?: () => void } & Element>(`[slot=\"${slotName}\"]`)\n\n item?.click?.()\n }\n\n private dispatchSelectEvent (waItem: WaDropdownItem) {\n const slotName = waItem.children[0].getAttribute('name')\n const item = this.querySelector(`[slot=\"${slotName}\"]`)\n const event = new CustomEvent('solid-ui-select', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n\n item?.dispatchEvent(event)\n\n return event\n }\n}\n"],"mappings":"6/IAUsCO,EAAA,CAErCP,EAAAA,cAAc,eAAe,CAAC,EAAA,IAAAQ,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,GAAAC,GAAAA,EAI5Bb,EAAAA,SAAAA,CAAS,CAAEc,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAGzCjB,EAAAA,SAAAA,CAAS,CAAEc,KAAMI,OAAQF,QAAS,EAAK,CAAC,EAACG,GAAAA,EAGzClB,EAAAA,MAAAA,CAAM,aAAa,EAACmB,GAAAA,EAGpBlB,EAAAA,MAAAA,CAAM,EAAC,aAAAmB,EAbV,cACkCvB,EAAAA,OAAa,CAAAyB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAlB,GAAAmB,EAAA,IAAA,EAAAC,EAAA,KAIC,cAAc,EAAA,EAAAF,EAAA,KAAAhB,EAAAmB,EAAA,KAGhC,CAAC,CAAA,EAAAH,EAAA,KAAAf,EAAAmB,EAAA,KAGkB,IAAI,CAAA,EAAAJ,EAAA,KAAAd,EAAAmB,EAAA,KAGL,CAAA,CAAE,CAAA,EAAAC,EAAA,KAAA,WAEX,IAAIC,qBAAuB,KAAKC,UAAU,CAAC,CAAC,CAAA,CAAA,IAAArB,IAAA,CAAA,OAAAsB,EAAA3B,EAAA,IAAA,CAAA,CAAA,IAXxE4B,UAASC,EAAA,CAAAC,EAAA9B,EAAA,KAAA6B,CAAA,CAAA,CAAA,IAGTE,UAAQ,CAAA,OAAAJ,EAAAzB,EAAA,IAAA,CAAA,CAAA,IAAR6B,SAAQF,EAAA,CAAAC,EAAA5B,EAAA,KAAA2B,CAAA,CAAA,CAAA,IAGAG,UAAQ,CAAA,OAAAL,EAAAxB,EAAA,IAAA,CAAA,CAAA,IAAR6B,SAAQH,EAAA,CAAAC,EAAA3B,EAAA,KAAA0B,CAAA,CAAA,CAAA,IAGRI,OAAK,CAAA,OAAAN,EAAAvB,EAAA,IAAA,CAAA,CAAA,IAAL6B,MAAKJ,EAAA,CAAAC,EAAA1B,EAAA,KAAAyB,CAAA,CAAA,CAItBK,mBAAqB,CACnB,MAAMA,kBAAkB,EAExB,KAAKR,UAAU,EACf,KAAKS,SAASC,QAAQ,KAAM,CAAEC,UAAW,EAAK,CAAC,CACjD,CAEAC,sBAAwB,CACtB,MAAMA,qBAAqB,EAE3B,KAAKH,SAASI,WAAW,CAC3B,CAEUC,QAAU,CAClB,MAAOhD,GAAAA,IAAI;;oBAEK,KAAKoC,UAAS;mBACf,KAAKG,SAAQ;qBACX,KAAKU,WAAU;;;;UAI1B,KAAKR,MAAMS,IACVC,GACCnD,EAAAA,IAAI,4BAA4B,KAAKoD,YAAW;6BAC/BD,EAAKE,KAAI;gCAE9B,EAAC;;KAGP,CAEQnB,WAAmB,CAGzB,IAAMO,EAAQa,MAAMC,KAAK,KAAKC,QAAQ,CAAC,CAACC,OACrCC,GAAUA,EAAMC,aAAa,MAAM,IAAM,SAC5C,EAEA,KAAKlB,MAAQA,EAAMS,KAAKC,EAAMS,IAAU,CACtC,IAAMC,EAAW,aAAaD,IAM9B,OAJIT,EAAKQ,aAAa,MAAM,IAAME,GAChCV,EAAKW,aAAa,OAAQD,CAAQ,EAG7B,CAAER,KAAMQ,CAAS,CAC1B,CAAC,CACH,CAEQT,YAAaW,EAAc,CACjC,IAAMC,EAASD,EAAME,cAErBF,EAAMG,gBAAgB,EAElBF,GAAOG,
|
|
1
|
+
{"version":3,"file":"Menu.cjs.js","names":["customElement","WebComponent","html","property","query","state","styles","_classDecs","_Menu","_Menu2","_A","WeakMap","_B","_C","_D","_ref","_placementDecs","type","String","reflect","_distanceDecs","Number","_dropdownDecs","_itemsDecs","_Menu3","Menu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_placement","_init_distance","_init_dropdown","_init_items","_defineProperty","MutationObserver","syncItems","_classPrivateFieldGet","placement","v","_classPrivateFieldSet","distance","dropdown","items","connectedCallback","observer","observe","childList","disconnectedCallback","disconnect","render","onWaSelect","map","item","onItemClick","slot","Array","from","children","filter","child","getAttribute","index","slotName","setAttribute","event","waItem","currentTarget","stopPropagation","disabled","selectedEvent","dispatchSelectEvent","defaultPrevented","open","detail","preventDefault","querySelector","click","CustomEvent","bubbles","composed","cancelable","dispatchEvent","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/menu/Menu.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport type WaDropdown from '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport type WaDropdownItem from '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\nimport type { WaDropdownSelectEvent } from '@awesome.me/webawesome'\n\nimport '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\n\nimport styles from './Menu.styles.css'\n\n@customElement('solid-ui-menu')\nexport default class Menu extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor placement: WaDropdown['placement'] = 'bottom-start';\n\n @property({ type: Number, reflect: true })\n accessor distance: number = 5;\n\n @query('wa-dropdown')\n private accessor dropdown: WaDropdown | null = null;\n\n @state()\n private accessor items: { slot: string; }[] = []\n\n private observer: MutationObserver = new MutationObserver(() => this.syncItems())\n\n connectedCallback () {\n super.connectedCallback()\n\n this.syncItems()\n this.observer.observe(this, { childList: true })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.observer.disconnect()\n }\n\n protected render () {\n return html`\n <wa-dropdown\n placement=${this.placement}\n distance=${this.distance}\n @wa-select=${this.onWaSelect}\n >\n <slot name=\"trigger\" slot=\"trigger\"></slot>\n\n ${this.items.map(\n (item) =>\n html`<wa-dropdown-item @click=${this.onItemClick}>\n <slot name=${item.slot}></slot>\n </wa-dropdown-item>`\n )}\n </wa-dropdown>\n `\n }\n\n private syncItems (): void {\n // Exclude only the trigger element; include all other children\n // regardless of whether they already have a slot assigned.\n const items = Array.from(this.children).filter(\n (child) => child.getAttribute('slot') !== 'trigger'\n )\n\n this.items = items.map((item, index) => {\n const slotName = `menu-item-${index}`\n\n if (item.getAttribute('slot') !== slotName) {\n item.setAttribute('slot', slotName)\n }\n\n return { slot: slotName }\n })\n }\n\n private onItemClick (event: Event) {\n const waItem = event.currentTarget as WaDropdownItem\n\n event.stopPropagation()\n\n if (waItem.disabled) {\n return\n }\n\n const selectedEvent = this.dispatchSelectEvent(waItem)\n\n if (selectedEvent.defaultPrevented || !this.dropdown) {\n return\n }\n\n this.dropdown.open = false\n }\n\n private onWaSelect (event: WaDropdownSelectEvent) {\n const selectedEvent = this.dispatchSelectEvent(event.detail.item)\n\n if (selectedEvent.defaultPrevented) {\n event.preventDefault()\n\n return\n }\n\n const slotName = event.detail.item.children[0].getAttribute('name')\n const item = this.querySelector<{ click?: () => void } & Element>(`[slot=\"${slotName}\"]`)\n\n item?.click?.()\n }\n\n private dispatchSelectEvent (waItem: WaDropdownItem) {\n const slotName = waItem.children[0].getAttribute('name')\n const item = this.querySelector(`[slot=\"${slotName}\"]`)\n const event = new CustomEvent('solid-ui-select', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n\n item?.dispatchEvent(event)\n\n return event\n }\n}\n"],"mappings":"6/IAUsCO,EAAA,CAErCP,EAAAA,cAAc,eAAe,CAAC,EAAA,IAAAQ,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,GAAAC,GAAAA,EAI5Bb,EAAAA,SAAAA,CAAS,CAAEc,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAGzCjB,EAAAA,SAAAA,CAAS,CAAEc,KAAMI,OAAQF,QAAS,EAAK,CAAC,EAACG,GAAAA,EAGzClB,EAAAA,MAAAA,CAAM,aAAa,EAACmB,GAAAA,EAGpBlB,EAAAA,MAAAA,CAAM,EAAC,aAAAmB,EAbV,cACkCvB,EAAAA,OAAa,CAAAyB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAlB,GAAAmB,EAAA,IAAA,EAAAC,EAAA,KAIC,cAAc,EAAA,EAAAF,EAAA,KAAAhB,EAAAmB,EAAA,KAGhC,CAAC,CAAA,EAAAH,EAAA,KAAAf,EAAAmB,EAAA,KAGkB,IAAI,CAAA,EAAAJ,EAAA,KAAAd,EAAAmB,EAAA,KAGL,CAAA,CAAE,CAAA,EAAAC,EAAA,KAAA,WAEX,IAAIC,qBAAuB,KAAKC,UAAU,CAAC,CAAC,CAAA,CAAA,IAAArB,IAAA,CAAA,OAAAsB,EAAA3B,EAAA,IAAA,CAAA,CAAA,IAXxE4B,UAASC,EAAA,CAAAC,EAAA9B,EAAA,KAAA6B,CAAA,CAAA,CAAA,IAGTE,UAAQ,CAAA,OAAAJ,EAAAzB,EAAA,IAAA,CAAA,CAAA,IAAR6B,SAAQF,EAAA,CAAAC,EAAA5B,EAAA,KAAA2B,CAAA,CAAA,CAAA,IAGAG,UAAQ,CAAA,OAAAL,EAAAxB,EAAA,IAAA,CAAA,CAAA,IAAR6B,SAAQH,EAAA,CAAAC,EAAA3B,EAAA,KAAA0B,CAAA,CAAA,CAAA,IAGRI,OAAK,CAAA,OAAAN,EAAAvB,EAAA,IAAA,CAAA,CAAA,IAAL6B,MAAKJ,EAAA,CAAAC,EAAA1B,EAAA,KAAAyB,CAAA,CAAA,CAItBK,mBAAqB,CACnB,MAAMA,kBAAkB,EAExB,KAAKR,UAAU,EACf,KAAKS,SAASC,QAAQ,KAAM,CAAEC,UAAW,EAAK,CAAC,CACjD,CAEAC,sBAAwB,CACtB,MAAMA,qBAAqB,EAE3B,KAAKH,SAASI,WAAW,CAC3B,CAEUC,QAAU,CAClB,MAAOhD,GAAAA,IAAI;;oBAEK,KAAKoC,UAAS;mBACf,KAAKG,SAAQ;qBACX,KAAKU,WAAU;;;;UAI1B,KAAKR,MAAMS,IACVC,GACCnD,EAAAA,IAAI,4BAA4B,KAAKoD,YAAW;6BAC/BD,EAAKE,KAAI;gCAE9B,EAAC;;KAGP,CAEQnB,WAAmB,CAGzB,IAAMO,EAAQa,MAAMC,KAAK,KAAKC,QAAQ,CAAC,CAACC,OACrCC,GAAUA,EAAMC,aAAa,MAAM,IAAM,SAC5C,EAEA,KAAKlB,MAAQA,EAAMS,KAAKC,EAAMS,IAAU,CACtC,IAAMC,EAAW,aAAaD,IAM9B,OAJIT,EAAKQ,aAAa,MAAM,IAAME,GAChCV,EAAKW,aAAa,OAAQD,CAAQ,EAG7B,CAAER,KAAMQ,CAAS,CAC1B,CAAC,CACH,CAEQT,YAAaW,EAAc,CACjC,IAAMC,EAASD,EAAME,cAErBF,EAAMG,gBAAgB,EAElBF,GAAOG,UAIW,MAAKE,oBAAoBL,CAE3CI,CAAAA,CAAcE,kBAAqB,KAAK9B,WAI5C,KAAKA,SAAS+B,KAAO,GACvB,CAEQtB,WAAYc,EAA8B,CAGhD,GAFsB,KAAKM,oBAAoBN,EAAMS,OAAOrB,IAExDiB,CAAAA,CAAcE,iBAAkB,CAClCP,EAAMU,eAAe,EAErB,MACF,CAEA,IAAMZ,EAAWE,EAAMS,OAAOrB,KAAKK,SAAS,EAAE,CAACG,aAAa,MAAM,EAGlER,KAFkBuB,cAAgD,UAAUb,EAAQ,GAEpFV,CAAAA,EAAMwB,QAAQ,CAChB,CAEQN,oBAAqBL,EAAwB,CACnD,IAAMH,EAAWG,EAAOR,SAAS,EAAE,CAACG,aAAa,MAAM,EACjDR,EAAO,KAAKuB,cAAc,UAAUb,EAAQ,GAAI,EAChDE,EAAQ,IAAIa,YAAY,kBAAmB,CAC/CC,QAAS,GACTC,SAAU,GACVC,WAAY,EACd,CAAC,EAID,OAFA5B,GAAM6B,cAAcjB,CAAK,EAElBA,CACT,CACF,EAAC,CAAAkB,EAAA,CAAArD,EAAAC,EAAAC,EAAAC,EAAAJ,GAAAuD,EAAA,CAAA5E,EAAA6E,IAAAC,EAAA9D,EAAA,CAAA,CAAAR,EAAA,EAAA,WAAA,EAAA,CAAAI,EAAA,EAAA,UAAA,EAAA,CAAAE,EAAA,EAAA,UAAA,EAAA,CAAAC,EAAA,EAAA,OAAA,CAAA,EAAAhB,EAAA,EAAA,IAAA,GAjHiCN,EAAAA,OAAY,EAAAuB,GAAA+D,EAAA,cAAAC,CAAA,CAAA9D,aAAA,CAAA,MAAAlB,CAAA,EAAA0B,EAAA,KAAA,SAC5B5B,EAAAA,OAAM,EAAA+E,EAAA,CAAA,CAAA,EAAAnD,EAAAqD,EAAA9E,EAAA,IAAA,EAAA,EAAA8E"}
|
|
@@ -245,7 +245,7 @@ new (w = (l = /*#__PURE__*/ new WeakMap(), u = /*#__PURE__*/ new WeakMap(), d =
|
|
|
245
245
|
}
|
|
246
246
|
onItemClick(e) {
|
|
247
247
|
let t = e.currentTarget;
|
|
248
|
-
e.stopPropagation(), !t.disabled &&
|
|
248
|
+
e.stopPropagation(), !t.disabled && !this.dispatchSelectEvent(t).defaultPrevented && this.dropdown && (this.dropdown.open = !1);
|
|
249
249
|
}
|
|
250
250
|
onWaSelect(e) {
|
|
251
251
|
if (this.dispatchSelectEvent(e.detail.item).defaultPrevented) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.esm.js","names":["customElement","WebComponent","html","property","query","state","styles","_classDecs","_Menu","_Menu2","_A","WeakMap","_B","_C","_D","_ref","_placementDecs","type","String","reflect","_distanceDecs","Number","_dropdownDecs","_itemsDecs","_Menu3","Menu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_placement","_init_distance","_init_dropdown","_init_items","_defineProperty","MutationObserver","syncItems","_classPrivateFieldGet","placement","v","_classPrivateFieldSet","distance","dropdown","items","connectedCallback","observer","observe","childList","disconnectedCallback","disconnect","render","onWaSelect","map","item","onItemClick","slot","Array","from","children","filter","child","getAttribute","index","slotName","setAttribute","event","waItem","currentTarget","stopPropagation","disabled","selectedEvent","dispatchSelectEvent","defaultPrevented","open","detail","preventDefault","querySelector","click","CustomEvent","bubbles","composed","cancelable","dispatchEvent","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/menu/Menu.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport type WaDropdown from '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport type WaDropdownItem from '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\nimport type { WaDropdownSelectEvent } from '@awesome.me/webawesome'\n\nimport '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\n\nimport styles from './Menu.styles.css'\n\n@customElement('solid-ui-menu')\nexport default class Menu extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor placement: WaDropdown['placement'] = 'bottom-start';\n\n @property({ type: Number, reflect: true })\n accessor distance: number = 5;\n\n @query('wa-dropdown')\n private accessor dropdown: WaDropdown | null = null;\n\n @state()\n private accessor items: { slot: string; }[] = []\n\n private observer: MutationObserver = new MutationObserver(() => this.syncItems())\n\n connectedCallback () {\n super.connectedCallback()\n\n this.syncItems()\n this.observer.observe(this, { childList: true })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.observer.disconnect()\n }\n\n protected render () {\n return html`\n <wa-dropdown\n placement=${this.placement}\n distance=${this.distance}\n @wa-select=${this.onWaSelect}\n >\n <slot name=\"trigger\" slot=\"trigger\"></slot>\n\n ${this.items.map(\n (item) =>\n html`<wa-dropdown-item @click=${this.onItemClick}>\n <slot name=${item.slot}></slot>\n </wa-dropdown-item>`\n )}\n </wa-dropdown>\n `\n }\n\n private syncItems (): void {\n // Exclude only the trigger element; include all other children\n // regardless of whether they already have a slot assigned.\n const items = Array.from(this.children).filter(\n (child) => child.getAttribute('slot') !== 'trigger'\n )\n\n this.items = items.map((item, index) => {\n const slotName = `menu-item-${index}`\n\n if (item.getAttribute('slot') !== slotName) {\n item.setAttribute('slot', slotName)\n }\n\n return { slot: slotName }\n })\n }\n\n private onItemClick (event: Event) {\n const waItem = event.currentTarget as WaDropdownItem\n\n event.stopPropagation()\n\n if (waItem.disabled) {\n return\n }\n\n const selectedEvent = this.dispatchSelectEvent(waItem)\n\n if (selectedEvent.defaultPrevented || !this.dropdown) {\n return\n }\n\n this.dropdown.open = false\n }\n\n private onWaSelect (event: WaDropdownSelectEvent) {\n const selectedEvent = this.dispatchSelectEvent(event.detail.item)\n\n if (selectedEvent.defaultPrevented) {\n event.preventDefault()\n\n return\n }\n\n const slotName = event.detail.item.children[0].getAttribute('name')\n const item = this.querySelector<{ click?: () => void } & Element>(`[slot=\"${slotName}\"]`)\n\n item?.click?.()\n }\n\n private dispatchSelectEvent (waItem: WaDropdownItem) {\n const slotName = waItem.children[0].getAttribute('name')\n const item = this.querySelector(`[slot=\"${slotName}\"]`)\n const event = new CustomEvent('solid-ui-select', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n\n item?.dispatchEvent(event)\n\n return event\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUsCO,IAAA,CAErCP,EAAc,eAAe,CAAC;AAAA,IAAAQ;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,kBAAA,IAAAF,QAAA,GAAAG,kBAAA,IAAAH,QAAA,GAAAI,KAAAC,IAI5Bb,EAAS;CAAEc,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzCjB,EAAS;CAAEc,MAAMI;CAAQF,SAAS;AAAK,CAAC,GAACG,IAGzClB,EAAM,aAAa,GAACmB,IAGpBlB,EAAM,GAAC,cAAAmB,IAbV,cACkCvB,EAAa;CAAAyB,YAAA,GAAAC,GAAA;EAaGO,AAbH,MAAA,GAAAP,CAAA,GAAAC,EAAA,MAAAlB,IAAAmB,EAAA,IAAA,GAAAC,EAAA,MAIC,cAAc,EAAA,GAAAF,EAAA,MAAAhB,GAAAmB,EAAA,MAGhC,CAAC,CAAA,GAAAH,EAAA,MAAAf,GAAAmB,EAAA,MAGkB,IAAI,CAAA,GAAAJ,EAAA,MAAAd,GAAAmB,EAAA,MAGL,CAAA,CAAE,CAAA,GAAAC,EAAA,MAAA,YAEX,IAAIC,uBAAuB,KAAKC,UAAU,CAAC,CAAC;CAAA;CAAA,KAAArB,KAAA;EAAA,OAAAsB,EAAA3B,GAAA,IAAA;CAAA;CAAA,IAXxE4B,UAASC,GAAA;EAAAC,EAAA9B,GAAA,MAAA6B,CAAA;CAAA;CAAA,IAGTE,WAAQ;EAAA,OAAAJ,EAAAzB,GAAA,IAAA;CAAA;CAAA,IAAR6B,SAAQF,GAAA;EAAAC,EAAA5B,GAAA,MAAA2B,CAAA;CAAA;CAAA,IAGAG,WAAQ;EAAA,OAAAL,EAAAxB,GAAA,IAAA;CAAA;CAAA,IAAR6B,SAAQH,GAAA;EAAAC,EAAA3B,GAAA,MAAA0B,CAAA;CAAA;CAAA,IAGRI,QAAK;EAAA,OAAAN,EAAAvB,GAAA,IAAA;CAAA;CAAA,IAAL6B,MAAKJ,GAAA;EAAAC,EAAA1B,GAAA,MAAAyB,CAAA;CAAA;CAItBK,oBAAqB;EAInB,AAHA,MAAMA,kBAAkB,GAExB,KAAKR,UAAU,GACf,KAAKS,SAASC,QAAQ,MAAM,EAAEC,WAAW,GAAK,CAAC;CACjD;CAEAC,uBAAwB;EAGtB,AAFA,MAAMA,qBAAqB,GAE3B,KAAKH,SAASI,WAAW;CAC3B;CAEUC,SAAU;EAClB,OAAOhD,CAAI;;oBAEK,KAAKoC,UAAS;mBACf,KAAKG,SAAQ;qBACX,KAAKU,WAAU;;;;UAI1B,KAAKR,MAAMS,KACVC,MACCnD,CAAI,4BAA4B,KAAKoD,YAAW;6BAC/BD,EAAKE,KAAI;gCAE9B,EAAC;;;CAGP;CAEQnB,YAAmB;EAGzB,IAAMO,IAAQa,MAAMC,KAAK,KAAKC,QAAQ,CAAC,CAACC,QACrCC,MAAUA,EAAMC,aAAa,MAAM,MAAM,SAC5C;EAEA,KAAKlB,QAAQA,EAAMS,KAAKC,GAAMS,MAAU;GACtC,IAAMC,IAAW,aAAaD;GAM9B,OAJIT,EAAKQ,aAAa,MAAM,MAAME,KAChCV,EAAKW,aAAa,QAAQD,CAAQ,GAG7B,EAAER,MAAMQ,EAAS;EAC1B,CAAC;CACH;CAEQT,YAAaW,GAAc;EACjC,IAAMC,IAASD,EAAME;EAErBF,EAAMG,gBAAgB,GAElBF,GAAOG,
|
|
1
|
+
{"version":3,"file":"Menu.esm.js","names":["customElement","WebComponent","html","property","query","state","styles","_classDecs","_Menu","_Menu2","_A","WeakMap","_B","_C","_D","_ref","_placementDecs","type","String","reflect","_distanceDecs","Number","_dropdownDecs","_itemsDecs","_Menu3","Menu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_placement","_init_distance","_init_dropdown","_init_items","_defineProperty","MutationObserver","syncItems","_classPrivateFieldGet","placement","v","_classPrivateFieldSet","distance","dropdown","items","connectedCallback","observer","observe","childList","disconnectedCallback","disconnect","render","onWaSelect","map","item","onItemClick","slot","Array","from","children","filter","child","getAttribute","index","slotName","setAttribute","event","waItem","currentTarget","stopPropagation","disabled","selectedEvent","dispatchSelectEvent","defaultPrevented","open","detail","preventDefault","querySelector","click","CustomEvent","bubbles","composed","cancelable","dispatchEvent","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/menu/Menu.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport type WaDropdown from '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport type WaDropdownItem from '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\nimport type { WaDropdownSelectEvent } from '@awesome.me/webawesome'\n\nimport '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\n\nimport styles from './Menu.styles.css'\n\n@customElement('solid-ui-menu')\nexport default class Menu extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor placement: WaDropdown['placement'] = 'bottom-start';\n\n @property({ type: Number, reflect: true })\n accessor distance: number = 5;\n\n @query('wa-dropdown')\n private accessor dropdown: WaDropdown | null = null;\n\n @state()\n private accessor items: { slot: string; }[] = []\n\n private observer: MutationObserver = new MutationObserver(() => this.syncItems())\n\n connectedCallback () {\n super.connectedCallback()\n\n this.syncItems()\n this.observer.observe(this, { childList: true })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.observer.disconnect()\n }\n\n protected render () {\n return html`\n <wa-dropdown\n placement=${this.placement}\n distance=${this.distance}\n @wa-select=${this.onWaSelect}\n >\n <slot name=\"trigger\" slot=\"trigger\"></slot>\n\n ${this.items.map(\n (item) =>\n html`<wa-dropdown-item @click=${this.onItemClick}>\n <slot name=${item.slot}></slot>\n </wa-dropdown-item>`\n )}\n </wa-dropdown>\n `\n }\n\n private syncItems (): void {\n // Exclude only the trigger element; include all other children\n // regardless of whether they already have a slot assigned.\n const items = Array.from(this.children).filter(\n (child) => child.getAttribute('slot') !== 'trigger'\n )\n\n this.items = items.map((item, index) => {\n const slotName = `menu-item-${index}`\n\n if (item.getAttribute('slot') !== slotName) {\n item.setAttribute('slot', slotName)\n }\n\n return { slot: slotName }\n })\n }\n\n private onItemClick (event: Event) {\n const waItem = event.currentTarget as WaDropdownItem\n\n event.stopPropagation()\n\n if (waItem.disabled) {\n return\n }\n\n const selectedEvent = this.dispatchSelectEvent(waItem)\n\n if (selectedEvent.defaultPrevented || !this.dropdown) {\n return\n }\n\n this.dropdown.open = false\n }\n\n private onWaSelect (event: WaDropdownSelectEvent) {\n const selectedEvent = this.dispatchSelectEvent(event.detail.item)\n\n if (selectedEvent.defaultPrevented) {\n event.preventDefault()\n\n return\n }\n\n const slotName = event.detail.item.children[0].getAttribute('name')\n const item = this.querySelector<{ click?: () => void } & Element>(`[slot=\"${slotName}\"]`)\n\n item?.click?.()\n }\n\n private dispatchSelectEvent (waItem: WaDropdownItem) {\n const slotName = waItem.children[0].getAttribute('name')\n const item = this.querySelector(`[slot=\"${slotName}\"]`)\n const event = new CustomEvent('solid-ui-select', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n\n item?.dispatchEvent(event)\n\n return event\n }\n}\n"],"mappings":"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"}
|
package/dist/components/menu.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../chunks/menu-
|
|
1
|
+
import { n as e, t } from "../chunks/menu-DhnJDuBz.js";
|
|
2
2
|
export { e as Menu, t as default };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../chunks/provider-
|
|
1
|
+
import { n as e, t } from "../chunks/provider-v6Wz9BOu.js";
|
|
2
2
|
export { e as Provider, t as default };
|
|
@@ -8,5 +8,5 @@ const e=require("../../lib/ns.cjs.js"),t=require("../../lib/components/decorator
|
|
|
8
8
|
></solid-ui-rdf-input>
|
|
9
9
|
<br>`;case`MultiLineTextField`:return c.html`<input .rdf=${e}></input>`;case`BooleanField`:return c.html`<input .rdf=${e}></input>`;case`TristateField`:return c.html`<input .rdf=${e}></input>`;case`Classifier`:return c.html`<input .rdf=${e}></input>`;case`Choice`:return c.html`<input .rdf=${e}></input>`;case`Multiple`:return c.html`<input .rdf=${e}></input>`;case`Options`:return c.html`<input .rdf=${e}></input>`;case`AutocompleteField`:return c.html`<input .rdf=${e}></input>`;case`Comment`:case`Heading`:return c.html`<input .rdf=${e}></input>`;default:return c.html`<div>Unknown part type: ${e}</div>`}})}
|
|
10
10
|
</form>
|
|
11
|
-
`}willUpdate(e){super.willUpdate(e),(e.has(`formUrl`)||e.has(`subjectUrl`)||e.has(`passedInStore`))&&this.loadDocumentsIfNeeded()}async loadDocumentsIfNeeded(){let e=this.currentStore,t=z(this.formUrl),n=z(this.subjectUrl);if(
|
|
11
|
+
`}willUpdate(e){super.willUpdate(e),(e.has(`formUrl`)||e.has(`subjectUrl`)||e.has(`passedInStore`))&&this.loadDocumentsIfNeeded()}async loadDocumentsIfNeeded(){let e=this.currentStore,t=z(this.formUrl),n=z(this.subjectUrl);if(t&&n)try{await r.fetchData(e,t),await r.fetchData(e,n),this._loadVersion+=1,this._documentsLoaded=!0}catch(e){console.error(`Failed to load RDF documents`,e)}}},{e:[m,g,v,b,S,w,E,u],c:[B,d]}=N(l,[[p,1,`storeContext`],[h,1,`passedInStore`],[_,1,`entireDataIsReadonly`],[y,1,`_loadVersion`],[x,1,`_documentsLoaded`],[C,1,`formUrl`],[T,1,`subjectUrl`]],f,0,void 0,n.default),d(),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return B}});
|
|
12
12
|
//# sourceMappingURL=RDFForm.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RDFForm.cjs.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RDFForm.cjs.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -295,7 +295,7 @@ j = (_ = l({
|
|
|
295
295
|
}
|
|
296
296
|
async loadDocumentsIfNeeded() {
|
|
297
297
|
let e = this.currentStore, t = U(this.formUrl), n = U(this.subjectUrl);
|
|
298
|
-
if (
|
|
298
|
+
if (t && n) try {
|
|
299
299
|
await r(e, t), await r(e, n), this._loadVersion += 1, this._documentsLoaded = !0;
|
|
300
300
|
} catch (e) {
|
|
301
301
|
console.error("Failed to load RDF documents", e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RDFForm.esm.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RDFForm.esm.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../chunks/rdf-form-
|
|
1
|
+
import { n as e, t } from "../chunks/rdf-form-B2zTR8Qv.js";
|
|
2
2
|
export { e as RDFForm, t as default };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../chunks/rdf-input-
|
|
1
|
+
import { n as e, t } from "../chunks/rdf-input-DeDhyQ3p.js";
|
|
2
2
|
export { e as RDFInput, t as default };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../chunks/signup-button-
|
|
1
|
+
import { n as e, t } from "../chunks/signup-button-Cy6FwVhE.js";
|
|
2
2
|
export { e as SignupButton, t as default };
|
package/dist/components.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import "./chunks/auth-
|
|
1
|
+
import "./chunks/auth-DfCfMOuM.js";
|
|
2
2
|
import "./chunks/dialog-D9Ellvjx.js";
|
|
3
3
|
import "./chunks/dialog-header-0dobhr5C.js";
|
|
4
4
|
import "./chunks/button-CnmrOsEf.js";
|
|
5
5
|
import "./chunks/dialog-content-B2FmmQvH.js";
|
|
6
6
|
import "./chunks/dialog-footer-CxjoqQJF.js";
|
|
7
|
-
import "./chunks/combobox-
|
|
7
|
+
import "./chunks/combobox-BZ9n8wQw.js";
|
|
8
8
|
import "./chunks/combobox-option-BcXpUnWu.js";
|
|
9
9
|
import "./chunks/dialogs-root-ngPW2Q6K.js";
|
|
10
|
-
import "./chunks/provider-
|
|
11
|
-
import "./chunks/avatar-
|
|
12
|
-
import "./chunks/login-button-
|
|
13
|
-
import "./chunks/logout-button-
|
|
10
|
+
import "./chunks/provider-v6Wz9BOu.js";
|
|
11
|
+
import "./chunks/avatar-C677VD9J.js";
|
|
12
|
+
import "./chunks/login-button-CRQbpCob.js";
|
|
13
|
+
import "./chunks/logout-button-H-ckaICm.js";
|
|
14
14
|
import "./chunks/menu-item-BdCkmJol.js";
|
|
15
|
-
import "./chunks/menu-
|
|
16
|
-
import "./chunks/signup-button-
|
|
17
|
-
import "./chunks/account-
|
|
15
|
+
import "./chunks/menu-DhnJDuBz.js";
|
|
16
|
+
import "./chunks/signup-button-Cy6FwVhE.js";
|
|
17
|
+
import "./chunks/account-C4JpDQFa.js";
|
|
18
18
|
import "./components/dialog-provider.js";
|
|
19
|
-
import "./chunks/guard-
|
|
19
|
+
import "./chunks/guard-DcrczXhs.js";
|
|
20
20
|
import "./chunks/input-BIhn_8nf.js";
|
|
21
21
|
import "./chunks/photo-capture-modal-BhmL3kYD.js";
|
|
22
22
|
import "./chunks/photo-capture-Bvixtxsq.js";
|
|
23
|
-
import "./chunks/rdf-input-
|
|
24
|
-
import "./chunks/rdf-form-
|
|
23
|
+
import "./chunks/rdf-input-DeDhyQ3p.js";
|
|
24
|
+
import "./chunks/rdf-form-B2zTR8Qv.js";
|
|
25
25
|
import "./chunks/select-BcC-ICqO.js";
|
|
26
26
|
import "./chunks/select-option-B0uXcj2O.js";
|
|
27
27
|
import "./chunks/solid-emblem-CcQOqRX0.js";
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as t, c as n, n as r, o as i, s as a, t as o } from "./chunks/auth-
|
|
3
|
-
import { l as s, m as c, t as l } from "./chunks/style-
|
|
4
|
-
import { S as u, _ as d, a as f, b as p, c as m, d as h, f as g, g as _, h as v, i as y, l as b, m as x, n as S, o as C, p as w, r as T, s as E, t as D, u as O, v as k, x as A, y as j } from "./chunks/src-
|
|
1
|
+
import { h as e } from "./chunks/index.esm-AZPmKqjU.js";
|
|
2
|
+
import { a as t, c as n, n as r, o as i, s as a, t as o } from "./chunks/auth-DfCfMOuM.js";
|
|
3
|
+
import { l as s, m as c, t as l } from "./chunks/style-Dpwrc8CC.js";
|
|
4
|
+
import { S as u, _ as d, a as f, b as p, c as m, d as h, f as g, g as _, h as v, i as y, l as b, m as x, n as S, o as C, p as w, r as T, s as E, t as D, u as O, v as k, x as A, y as j } from "./chunks/src-Ca8thhHS.js";
|
|
5
5
|
import { _ as M, a as N, g as P, h as F, m as I, n as L, o as R, t as z, v as B, y as V } from "./chunks/components-BHoVP7zE.js";
|
|
6
6
|
import { n as H, t as U } from "./chunks/dialogs-D2n-R0lI.js";
|
|
7
7
|
import { t as W } from "./chunks/show-dialog-eEW5yRBv.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../ns.cjs.js"),t=require("./Account.cjs.js"),n=require("../dialogs/helpers.cjs.js");require("../dialogs/index.cjs.js");const r=require("../../components/login-modal/index.cjs.js");let i=require("solid-logic");var a=`https://solidproject.org/get_a_pod`;function o(t){let n=i.solidLogicSingleton.store,r=n.sym(t),a=n.any(r,e.default.sioc(`avatar`))||n.any(r,e.default.foaf(`img`))||n.any(r,e.default.vcard(`logo`))||n.any(r,e.default.vcard(`hasPhoto`))||n.any(r,e.default.vcard(`photo`))||n.any(r,e.default.foaf(`depiction`));return a?a.value:void 0}var s=class{signupUrl;_initialized=!1;profileLoaded=!1;listeners=[];constructor(e=a){this.signupUrl=e}async initialize(){await i.authn.checkUser(),this._initialized=!0,this.listeners.forEach(e=>e())}async loadProfile(){this.profileLoaded
|
|
1
|
+
const e=require("../ns.cjs.js"),t=require("./Account.cjs.js"),n=require("../dialogs/helpers.cjs.js");require("../dialogs/index.cjs.js");const r=require("../../components/login-modal/index.cjs.js");let i=require("solid-logic");var a=`https://solidproject.org/get_a_pod`;function o(t){let n=i.solidLogicSingleton.store,r=n.sym(t),a=n.any(r,e.default.sioc(`avatar`))||n.any(r,e.default.foaf(`img`))||n.any(r,e.default.vcard(`logo`))||n.any(r,e.default.vcard(`hasPhoto`))||n.any(r,e.default.vcard(`photo`))||n.any(r,e.default.foaf(`depiction`));return a?a.value:void 0}var s=class{signupUrl;_initialized=!1;profileLoaded=!1;listeners=[];constructor(e=a){this.signupUrl=e}async initialize(){i.authSession.events.on(`sessionRestore`,()=>{i.solidLogicSingleton.store.updater.flagAuthorizationMetadata()}),(0,i.reloadOnIdentityReplaced)(i.authSession.events,()=>{i.authSession.info?.isLoggedIn&&window.location.reload()}),await i.authn.checkUser(),this._initialized=!0,this.listeners.forEach(e=>e())}async loadProfile(){!this.profileLoaded&&this.account&&(this.profileLoaded=!0,await i.solidLogicSingleton.profile.loadMe(),this.listeners.forEach(e=>e()))}get initialized(){return this._initialized}get account(){let e=i.authSession.webId??i.authSession.info?.webId;if(!(i.authSession.isActive??i.authSession.info?.isLoggedIn??!!e)||!e)return null;let n=o(e);return new t.default(e,n)}async login(e){if(!e){n.showDialog(r.default);return}i.solidLogicSingleton.store.updater.flagAuthorizationMetadata();let t=new URL(window.location.href).hash;t&&window.localStorage.setItem(`preLoginRedirectHash`,t),window.localStorage.setItem(`loginIssuer`,e);let a=new URL(window.location.href);a.hash=``,await i.authSession.login(e,a.href)}async signup(){window.open(this.signupUrl,`_blank`,`noopener,noreferrer`)}async logout(){await i.authSession.logout()}onSessionUpdated(e){let t=i.authSession,n=()=>{e()};return this.listeners.push(n),typeof t.addEventListener==`function`?t.addEventListener(`sessionStateChange`,n):(i.authSession.events.on(`login`,n),i.authSession.events.on(`logout`,n),i.authSession.events.on(`sessionRestore`,n)),()=>{this.listeners=this.listeners.filter(e=>e!==n),typeof t.removeEventListener==`function`?t.removeEventListener(`sessionStateChange`,n):(i.authSession.events.off(`login`,n),i.authSession.events.off(`logout`,n),i.authSession.events.off(`sessionRestore`,n))}}};exports.DEFAULT_SIGNUP_URL=a,exports.default=s;
|
|
2
2
|
//# sourceMappingURL=SolidAuth.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidAuth.cjs.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":"kOAQA,IAAa,EAAqB,qCAElC,SAAS,EAAkB,EAAmC,CAC5D,IAAM,EAAQ,EAAA,oBAAoB,MAC5B,EAAK,EAAM,IAAI,CAAK,EACpB,EACJ,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,QAAQ,CAAC,GAC/B,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,KAAK,CAAC,GAC5B,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,MAAM,CAAC,GAC9B,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,UAAU,CAAC,GAClC,EAAM,IAAI,EAAI,EAAA,QAAG,MAAM,OAAO,CAAC,GAC/B,EAAM,IAAI,EAAI,EAAA,QAAG,KAAK,WAAW,CAAC,EAEpC,OAAO,EAAS,EAAc,MAAQ,IAAA,EACxC,CAEA,IAAqB,EAArB,KAAsD,CAKhC,UAJpB,aAAuB,GACvB,cAAwB,GACxB,UAAuC,CAAC,EAExC,YAAa,EAA2B,EAAoB,CAAxC,KAAA,UAAA,CAAyC,CAE7D,MAAM,YAAc,CAClB,MAAM,EAAA,MAAM,UAAU,EAEtB,KAAK,aAAe,GACpB,KAAK,UAAU,QAAQ,GAAY,EAAS,CAAC,CAC/C,CAEA,MAAM,aAAe,CACf,
|
|
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, reloadOnIdentityReplaced, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n authSession.events.on('sessionRestore', () => {\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n })\n\n // An identity that was actively established was replaced while the session\n // stayed active (A -> B, e.g. from another tab): everything fetched under\n // the previous identity is stale, so the app reloads. A logout is not a\n // reload case here — the derived info already reports logged out and the\n // logout path runs its own cleanup and navigation.\n reloadOnIdentityReplaced(authSession.events, () => {\n if (authSession.info?.isLoggedIn) window.location.reload()\n })\n\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
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;AAKxC,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;
|
|
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;AAKxC,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;IAoBV,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,26 +3,30 @@ 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 r from "../../components/login-modal/index.esm.js";
|
|
6
|
-
import { authSession as i, authn as a,
|
|
6
|
+
import { authSession as i, authn as a, reloadOnIdentityReplaced as o, solidLogicSingleton as s } from "solid-logic";
|
|
7
7
|
//#region src/lib/auth/SolidAuth.ts
|
|
8
|
-
var
|
|
9
|
-
function
|
|
10
|
-
let n =
|
|
8
|
+
var c = "https://solidproject.org/get_a_pod";
|
|
9
|
+
function l(t) {
|
|
10
|
+
let n = s.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"));
|
|
11
11
|
return i ? i.value : void 0;
|
|
12
12
|
}
|
|
13
|
-
var
|
|
13
|
+
var u = class {
|
|
14
14
|
signupUrl;
|
|
15
15
|
_initialized = !1;
|
|
16
16
|
profileLoaded = !1;
|
|
17
17
|
listeners = [];
|
|
18
|
-
constructor(e =
|
|
18
|
+
constructor(e = c) {
|
|
19
19
|
this.signupUrl = e;
|
|
20
20
|
}
|
|
21
21
|
async initialize() {
|
|
22
|
-
|
|
22
|
+
i.events.on("sessionRestore", () => {
|
|
23
|
+
s.store.updater.flagAuthorizationMetadata();
|
|
24
|
+
}), o(i.events, () => {
|
|
25
|
+
i.info?.isLoggedIn && window.location.reload();
|
|
26
|
+
}), await a.checkUser(), this._initialized = !0, this.listeners.forEach((e) => e());
|
|
23
27
|
}
|
|
24
28
|
async loadProfile() {
|
|
25
|
-
this.profileLoaded
|
|
29
|
+
!this.profileLoaded && this.account && (this.profileLoaded = !0, await s.profile.loadMe(), this.listeners.forEach((e) => e()));
|
|
26
30
|
}
|
|
27
31
|
get initialized() {
|
|
28
32
|
return this._initialized;
|
|
@@ -30,7 +34,7 @@ var l = class {
|
|
|
30
34
|
get account() {
|
|
31
35
|
let e = i.webId ?? i.info?.webId;
|
|
32
36
|
if (!(i.isActive ?? i.info?.isLoggedIn ?? !!e) || !e) return null;
|
|
33
|
-
let n =
|
|
37
|
+
let n = l(e);
|
|
34
38
|
return new t(e, n);
|
|
35
39
|
}
|
|
36
40
|
async login(e) {
|
|
@@ -38,7 +42,7 @@ var l = class {
|
|
|
38
42
|
n(r);
|
|
39
43
|
return;
|
|
40
44
|
}
|
|
41
|
-
|
|
45
|
+
s.store.updater.flagAuthorizationMetadata();
|
|
42
46
|
let t = new URL(window.location.href).hash;
|
|
43
47
|
t && window.localStorage.setItem("preLoginRedirectHash", t), window.localStorage.setItem("loginIssuer", e);
|
|
44
48
|
let a = new URL(window.location.href);
|
|
@@ -60,6 +64,6 @@ var l = class {
|
|
|
60
64
|
}
|
|
61
65
|
};
|
|
62
66
|
//#endregion
|
|
63
|
-
export {
|
|
67
|
+
export { c as DEFAULT_SIGNUP_URL, u as default };
|
|
64
68
|
|
|
65
69
|
//# sourceMappingURL=SolidAuth.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidAuth.esm.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,IAAqB;AAElC,SAAS,EAAkB,GAAmC;CAC5D,IAAM,IAAQ,EAAoB,OAC5B,IAAK,EAAM,IAAI,CAAK,GACpB,IACJ,EAAM,IAAI,GAAI,EAAG,KAAK,QAAQ,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,KAAK,CAAC,KAC5B,EAAM,IAAI,GAAI,EAAG,MAAM,MAAM,CAAC,KAC9B,EAAM,IAAI,GAAI,EAAG,MAAM,UAAU,CAAC,KAClC,EAAM,IAAI,GAAI,EAAG,MAAM,OAAO,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,WAAW,CAAC;CAEpC,OAAO,IAAS,EAAc,QAAQ,KAAA;AACxC;AAEA,IAAqB,IAArB,MAAsD;CAKhC;CAJpB,eAAuB;CACvB,gBAAwB;CACxB,YAAuC,CAAC;CAExC,YAAa,IAA2B,GAAoB;EAAxC,KAAA,YAAA;CAAyC;CAE7D,MAAM,aAAc;
|
|
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, reloadOnIdentityReplaced, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n authSession.events.on('sessionRestore', () => {\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n })\n\n // An identity that was actively established was replaced while the session\n // stayed active (A -> B, e.g. from another tab): everything fetched under\n // the previous identity is stale, so the app reloads. A logout is not a\n // reload case here — the derived info already reports logged out and the\n // logout path runs its own cleanup and navigation.\n reloadOnIdentityReplaced(authSession.events, () => {\n if (authSession.info?.isLoggedIn) window.location.reload()\n })\n\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,IAAqB;AAElC,SAAS,EAAkB,GAAmC;CAC5D,IAAM,IAAQ,EAAoB,OAC5B,IAAK,EAAM,IAAI,CAAK,GACpB,IACJ,EAAM,IAAI,GAAI,EAAG,KAAK,QAAQ,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,KAAK,CAAC,KAC5B,EAAM,IAAI,GAAI,EAAG,MAAM,MAAM,CAAC,KAC9B,EAAM,IAAI,GAAI,EAAG,MAAM,UAAU,CAAC,KAClC,EAAM,IAAI,GAAI,EAAG,MAAM,OAAO,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,WAAW,CAAC;CAEpC,OAAO,IAAS,EAAc,QAAQ,KAAA;AACxC;AAEA,IAAqB,IAArB,MAAsD;CAKhC;CAJpB,eAAuB;CACvB,gBAAwB;CACxB,YAAuC,CAAC;CAExC,YAAa,IAA2B,GAAoB;EAAxC,KAAA,YAAA;CAAyC;CAE7D,MAAM,aAAc;EAiBlB,AAhBA,EAAY,OAAO,GAAG,wBAAwB;GAC3C,EAAqB,MAAM,QAAgB,0BAA0B;EACxE,CAAC,GAOD,EAAyB,EAAY,cAAc;GACjD,AAAI,EAAY,MAAM,cAAY,OAAO,SAAS,OAAO;EAC3D,CAAC,GAED,MAAM,EAAM,UAAU,GAEtB,KAAK,eAAe,IACpB,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,MAAM,cAAe;EACf,MAAK,iBAAkB,KAAK,YAIhC,KAAK,gBAAgB,IAErB,MAAM,EAAoB,QAAQ,OAAO,GAEzC,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,IAAI,cAAwB;EAC1B,OAAO,KAAK;CACd;CAEA,IAAI,UAA2B;EAC7B,IAAM,IAA4B,EAAY,SAAS,EAAY,MAAM;EAGzE,IAAI,EAFsB,EAAY,YAAY,EAAY,MAAM,cAAc,EAAQ,MAEzE,CAAC,GAChB,OAAO;EAGT,IAAM,IAAY,EAAiB,CAAK;EAExC,OAAO,IAAI,EAAQ,GAAO,CAAS;CACrC;CAEA,MAAM,MAAO,GAAmB;EAC9B,IAAI,CAAC,GAAU;GACb,EAAW,CAAU;GAErB;EACF;EAGC,EAAqB,MAAM,QAAgB,0BAA0B;EAEtE,IAAM,IAAuB,IAAI,IAAI,OAAO,SAAS,IAAI,CAAC,CAAC;EAI3D,AAHI,KACF,OAAO,aAAa,QAAQ,wBAAwB,CAAoB,GAE1E,OAAO,aAAa,QAAQ,eAAe,CAAQ;EAEnD,IAAM,IAAc,IAAI,IAAI,OAAO,SAAS,IAAI;EAIhD,AAFA,EAAY,OAAO,IAEnB,MAAM,EAAY,MAAM,GAAU,EAAY,IAAI;CACpD;CAEA,MAAM,SAAU;EACd,OAAO,KAAK,KAAK,WAAW,UAAU,qBAAqB;CAC7D;CAEA,MAAM,SAAU;EACd,MAAM,EAAY,OAAO;CAC3B;CAEA,iBAAkB,GAAyB;EACzC,IAAM,IAAqB,GACrB,UAAiB;GACrB,EAAS;EACX;EAYA,OAVA,KAAK,UAAU,KAAK,CAAQ,GAExB,OAAO,EAAmB,oBAAqB,aACjD,EAAmB,iBAAiB,sBAAsB,CAAQ,KAElE,EAAY,OAAO,GAAG,SAAS,CAAQ,GACvC,EAAY,OAAO,GAAG,UAAU,CAAQ,GACxC,EAAY,OAAO,GAAG,kBAAkB,CAAQ,UAGrC;GAGX,AAFA,KAAK,YAAY,KAAK,UAAU,QAAO,MAAa,MAAc,CAAQ,GAEtE,OAAO,EAAmB,uBAAwB,aACpD,EAAmB,oBAAoB,sBAAsB,CAAQ,KAErE,EAAY,OAAO,IAAI,SAAS,CAAQ,GACxC,EAAY,OAAO,IAAI,UAAU,CAAQ,GACzC,EAAY,OAAO,IAAI,kBAAkB,CAAQ;EAErD;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.cjs.js","names":[],"sources":["../../../src/lib/file-explorer/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport { LiveStore } from 'rdflib'\nimport type { NamedNode } from 'rdflib'\nimport type { PaneDefinition } from 'pane-registry'\n\nexport interface FileExplorerEdit {\n onEdit?: () => void\n isDirty?: boolean\n updateDirtyState?: (dirty: boolean) => void\n}\n\nexport interface FileExplorerContext {\n store: LiveStore | undefined\n subjectUri: string | undefined\n pane?: PaneDefinition\n soloPane?: boolean\n\n onBack?: () => void\n openPane?: (subject: NamedNode, paneName: string) => void\n
|
|
1
|
+
{"version":3,"file":"context.cjs.js","names":[],"sources":["../../../src/lib/file-explorer/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport { LiveStore } from 'rdflib'\nimport type { NamedNode } from 'rdflib'\nimport type { PaneDefinition } from 'pane-registry'\n\nexport interface FileExplorerEdit {\n onEdit?: () => void\n isDirty?: boolean\n updateDirtyState?: (dirty: boolean) => void\n}\n\nexport interface FileExplorerContext {\n store: LiveStore | undefined\n subjectUri: string | undefined\n pane?: PaneDefinition\n soloPane?: boolean\n\n onBack?: () => void\n openPane?: (subject: NamedNode, paneName: string) => void\n handleAccessClick?: () => void\n\n paneSupportsEditing?: boolean\n edit?: FileExplorerEdit\n}\n\nexport const fileExplorerContext = createContext<FileExplorerContext>(Symbol('file-explorer'))\n"],"mappings":"AAyBA,IAAa,GAAA,wBAAsB,CAAA,CAAA,cAAA,CAAmC,OAAO,eAAe,CAAC"}
|
|
@@ -12,7 +12,7 @@ export interface FileExplorerContext {
|
|
|
12
12
|
soloPane?: boolean;
|
|
13
13
|
onBack?: () => void;
|
|
14
14
|
openPane?: (subject: NamedNode, paneName: string) => void;
|
|
15
|
-
|
|
15
|
+
handleAccessClick?: () => void;
|
|
16
16
|
paneSupportsEditing?: boolean;
|
|
17
17
|
edit?: FileExplorerEdit;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/lib/file-explorer/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;IAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACzD,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/lib/file-explorer/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;IAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACzD,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAE9B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,IAAI,CAAC,EAAE,gBAAgB,CAAA;CACxB;AAED,eAAO,MAAM,mBAAmB;;CAA8D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.esm.js","names":[],"sources":["../../../src/lib/file-explorer/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport { LiveStore } from 'rdflib'\nimport type { NamedNode } from 'rdflib'\nimport type { PaneDefinition } from 'pane-registry'\n\nexport interface FileExplorerEdit {\n onEdit?: () => void\n isDirty?: boolean\n updateDirtyState?: (dirty: boolean) => void\n}\n\nexport interface FileExplorerContext {\n store: LiveStore | undefined\n subjectUri: string | undefined\n pane?: PaneDefinition\n soloPane?: boolean\n\n onBack?: () => void\n openPane?: (subject: NamedNode, paneName: string) => void\n
|
|
1
|
+
{"version":3,"file":"context.esm.js","names":[],"sources":["../../../src/lib/file-explorer/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport { LiveStore } from 'rdflib'\nimport type { NamedNode } from 'rdflib'\nimport type { PaneDefinition } from 'pane-registry'\n\nexport interface FileExplorerEdit {\n onEdit?: () => void\n isDirty?: boolean\n updateDirtyState?: (dirty: boolean) => void\n}\n\nexport interface FileExplorerContext {\n store: LiveStore | undefined\n subjectUri: string | undefined\n pane?: PaneDefinition\n soloPane?: boolean\n\n onBack?: () => void\n openPane?: (subject: NamedNode, paneName: string) => void\n handleAccessClick?: () => void\n\n paneSupportsEditing?: boolean\n edit?: FileExplorerEdit\n}\n\nexport const fileExplorerContext = createContext<FileExplorerContext>(Symbol('file-explorer'))\n"],"mappings":";;AAyBA,IAAa,IAAsB,EAAmC,OAAO,eAAe,CAAC"}
|