solid-ui 5.0.0-1 → 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.
Files changed (105) hide show
  1. package/dist/chunks/{account-CSKDoS_I.js → account-C4JpDQFa.js} +7 -7
  2. package/dist/chunks/{account-CSKDoS_I.js.map → account-C4JpDQFa.js.map} +1 -1
  3. package/dist/chunks/{auth-YsyyEh_c.js → auth-DfCfMOuM.js} +85 -81
  4. package/dist/chunks/auth-DfCfMOuM.js.map +1 -0
  5. package/dist/chunks/{avatar-BXaBs_3q.js → avatar-C677VD9J.js} +2 -2
  6. package/dist/chunks/{avatar-BXaBs_3q.js.map → avatar-C677VD9J.js.map} +1 -1
  7. package/dist/chunks/{chunk.64OG2H45-BFgXEuP7.js → chunk.KB3IOPVF-Ckx3HIiR.js} +10 -3
  8. package/dist/chunks/chunk.KB3IOPVF-Ckx3HIiR.js.map +1 -0
  9. package/dist/chunks/{combobox-D3eGdicW.js → combobox-BZ9n8wQw.js} +3 -3
  10. package/dist/chunks/combobox-BZ9n8wQw.js.map +1 -0
  11. package/dist/chunks/{guard-BTbfcRR6.js → guard-DcrczXhs.js} +2 -2
  12. package/dist/chunks/{guard-BTbfcRR6.js.map → guard-DcrczXhs.js.map} +1 -1
  13. package/dist/chunks/{index.esm-C63HBmfn.js → index.esm-AZPmKqjU.js} +1535 -1188
  14. package/dist/chunks/index.esm-AZPmKqjU.js.map +1 -0
  15. package/dist/chunks/{jsonld-DrQpMD8o.js → jsonld-CDR2WyN_.js} +4 -4
  16. package/dist/chunks/{jsonld-DrQpMD8o.js.map → jsonld-CDR2WyN_.js.map} +1 -1
  17. package/dist/chunks/{login-button-DZb_CXCo.js → login-button-CRQbpCob.js} +2 -2
  18. package/dist/chunks/{login-button-DZb_CXCo.js.map → login-button-CRQbpCob.js.map} +1 -1
  19. package/dist/chunks/{logout-button-CaD4ESfx.js → logout-button-H-ckaICm.js} +2 -2
  20. package/dist/chunks/{logout-button-CaD4ESfx.js.map → logout-button-H-ckaICm.js.map} +1 -1
  21. package/dist/chunks/{menu-BiqIAf-j.js → menu-DhnJDuBz.js} +20 -13
  22. package/dist/chunks/{menu-BiqIAf-j.js.map → menu-DhnJDuBz.js.map} +1 -1
  23. package/dist/chunks/{provider-BZsO0FFR.js → provider-v6Wz9BOu.js} +2 -2
  24. package/dist/chunks/{provider-BZsO0FFR.js.map → provider-v6Wz9BOu.js.map} +1 -1
  25. package/dist/chunks/{rdf-form-C2zcf1F0.js → rdf-form-B2zTR8Qv.js} +21 -21
  26. package/dist/chunks/{rdf-form-C2zcf1F0.js.map → rdf-form-B2zTR8Qv.js.map} +1 -1
  27. package/dist/chunks/{rdf-input-CiQNdkKK.js → rdf-input-DeDhyQ3p.js} +38 -38
  28. package/dist/chunks/{rdf-input-CiQNdkKK.js.map → rdf-input-DeDhyQ3p.js.map} +1 -1
  29. package/dist/chunks/{signup-button-DufShSEV.js → signup-button-Cy6FwVhE.js} +2 -2
  30. package/dist/chunks/{signup-button-DufShSEV.js.map → signup-button-Cy6FwVhE.js.map} +1 -1
  31. package/dist/chunks/{src-CbkVtLGQ.js → src-Ca8thhHS.js} +5695 -5648
  32. package/dist/chunks/src-Ca8thhHS.js.map +1 -0
  33. package/dist/chunks/{style-DI3buiHt.js → style-Dpwrc8CC.js} +4 -4
  34. package/dist/chunks/{style-DI3buiHt.js.map → style-Dpwrc8CC.js.map} +1 -1
  35. package/dist/components/account.js +1 -1
  36. package/dist/components/avatar.js +1 -1
  37. package/dist/components/combobox/Combobox.styles.cjs.js +1 -1
  38. package/dist/components/combobox/Combobox.styles.cjs.js.map +1 -1
  39. package/dist/components/combobox/Combobox.styles.esm.js +1 -1
  40. package/dist/components/combobox/Combobox.styles.esm.js.map +1 -1
  41. package/dist/components/combobox.js +1 -1
  42. package/dist/components/guard.js +1 -1
  43. package/dist/components/login-button.js +1 -1
  44. package/dist/components/login-modal/LoginModal.cjs.js +1 -1
  45. package/dist/components/login-modal/LoginModal.cjs.js.map +1 -1
  46. package/dist/components/login-modal/LoginModal.d.ts.map +1 -1
  47. package/dist/components/login-modal/LoginModal.esm.js +1 -1
  48. package/dist/components/login-modal/LoginModal.esm.js.map +1 -1
  49. package/dist/components/login-modal.js +1 -1
  50. package/dist/components/logout-button.js +1 -1
  51. package/dist/components/menu/Menu.cjs.js +1 -1
  52. package/dist/components/menu/Menu.cjs.js.map +1 -1
  53. package/dist/components/menu/Menu.esm.js +1 -1
  54. package/dist/components/menu/Menu.esm.js.map +1 -1
  55. package/dist/components/menu.js +1 -1
  56. package/dist/components/provider.js +1 -1
  57. package/dist/components/rdf-form/RDFForm.cjs.js +1 -1
  58. package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -1
  59. package/dist/components/rdf-form/RDFForm.esm.js +1 -1
  60. package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
  61. package/dist/components/rdf-form.js +1 -1
  62. package/dist/components/rdf-input.js +1 -1
  63. package/dist/components/signup-button.js +1 -1
  64. package/dist/components.js +12 -12
  65. package/dist/index.js +4 -4
  66. package/dist/lib/auth/SolidAuth.cjs.js +1 -1
  67. package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
  68. package/dist/lib/auth/SolidAuth.d.ts.map +1 -1
  69. package/dist/lib/auth/SolidAuth.esm.js +15 -11
  70. package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
  71. package/dist/lib/table.cjs.js +1 -1
  72. package/dist/lib/table.cjs.js.map +1 -1
  73. package/dist/lib/table.esm.js +2 -2
  74. package/dist/lib/table.esm.js.map +1 -1
  75. package/dist/lib/tabs.cjs.js +1 -1
  76. package/dist/lib/tabs.cjs.js.map +1 -1
  77. package/dist/lib/tabs.esm.js +1 -1
  78. package/dist/lib/tabs.esm.js.map +1 -1
  79. package/dist/loader.js +4 -4
  80. package/dist/login/login.cjs.js +1 -1
  81. package/dist/login/login.cjs.js.map +1 -1
  82. package/dist/login/login.esm.js +1 -1
  83. package/dist/login/login.esm.js.map +1 -1
  84. package/dist/solid-ui.js +50 -50
  85. package/dist/solid-ui.min.js +50 -50
  86. package/dist/solid-ui.min.js.map +1 -1
  87. package/dist/utils/index.cjs.js +1 -1
  88. package/dist/utils/index.cjs.js.map +1 -1
  89. package/dist/utils/index.esm.js +2 -2
  90. package/dist/utils/index.esm.js.map +1 -1
  91. package/dist/v2/components/auth/loginButton/LoginButton.d.ts.map +1 -1
  92. package/dist/widgets/dragAndDrop.cjs.js +1 -1
  93. package/dist/widgets/dragAndDrop.cjs.js.map +1 -1
  94. package/dist/widgets/dragAndDrop.esm.js +22 -18
  95. package/dist/widgets/dragAndDrop.esm.js.map +1 -1
  96. package/dist/widgets/forms.cjs.js +2 -2
  97. package/dist/widgets/forms.cjs.js.map +1 -1
  98. package/dist/widgets/forms.esm.js +4 -4
  99. package/dist/widgets/forms.esm.js.map +1 -1
  100. package/package.json +4 -4
  101. package/dist/chunks/auth-YsyyEh_c.js.map +0 -1
  102. package/dist/chunks/chunk.64OG2H45-BFgXEuP7.js.map +0 -1
  103. package/dist/chunks/combobox-D3eGdicW.js.map +0 -1
  104. package/dist/chunks/index.esm-C63HBmfn.js.map +0 -1
  105. package/dist/chunks/src-CbkVtLGQ.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../chunks/logout-button-CaD4ESfx.js";
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&&(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}});
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":"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"}
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":"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"}
@@ -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 && (this.dispatchSelectEvent(t).defaultPrevented || !this.dropdown || (this.dropdown.open = !1));
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":"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"}
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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"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../chunks/menu-BiqIAf-j.js";
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-BZsO0FFR.js";
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(!(!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}});
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 (!(!t || !n)) try {
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-C2zcf1F0.js";
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-CiQNdkKK.js";
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-DufShSEV.js";
1
+ import { n as e, t } from "../chunks/signup-button-Cy6FwVhE.js";
2
2
  export { e as SignupButton, t as default };
@@ -1,27 +1,27 @@
1
- import "./chunks/auth-YsyyEh_c.js";
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-D3eGdicW.js";
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-BZsO0FFR.js";
11
- import "./chunks/avatar-BXaBs_3q.js";
12
- import "./chunks/login-button-DZb_CXCo.js";
13
- import "./chunks/logout-button-CaD4ESfx.js";
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-BiqIAf-j.js";
16
- import "./chunks/signup-button-DufShSEV.js";
17
- import "./chunks/account-CSKDoS_I.js";
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-BTbfcRR6.js";
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-CiQNdkKK.js";
24
- import "./chunks/rdf-form-C2zcf1F0.js";
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 { m as e } from "./chunks/index.esm-C63HBmfn.js";
2
- import { a as t, c as n, n as r, o as i, s as a, t as o } from "./chunks/auth-YsyyEh_c.js";
3
- import { l as s, m as c, t as l } from "./chunks/style-DI3buiHt.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-CbkVtLGQ.js";
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||!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;
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,KAAK,eAAiB,CAAC,KAAK,UAIhC,KAAK,cAAgB,GAErB,MAAM,EAAA,oBAAoB,QAAQ,OAAO,EAEzC,KAAK,UAAU,QAAQ,GAAY,EAAS,CAAC,EAC/C,CAEA,IAAI,aAAwB,CAC1B,OAAO,KAAK,YACd,CAEA,IAAI,SAA2B,CAC7B,IAAM,EAA4B,EAAA,YAAY,OAAS,EAAA,YAAY,MAAM,MAGzE,GAAI,EAFsB,EAAA,YAAY,UAAY,EAAA,YAAY,MAAM,YAAc,EAAQ,IAEzE,CAAC,EAChB,OAAO,KAGT,IAAM,EAAY,EAAiB,CAAK,EAExC,OAAO,IAAI,EAAA,QAAQ,EAAO,CAAS,CACrC,CAEA,MAAM,MAAO,EAAmB,CAC9B,GAAI,CAAC,EAAU,CACb,EAAA,WAAW,EAAA,OAAU,EAErB,MACF,CAGC,EAAA,oBAAqB,MAAM,QAAgB,0BAA0B,EAEtE,IAAM,EAAuB,IAAI,IAAI,OAAO,SAAS,IAAI,CAAC,CAAC,KACvD,GACF,OAAO,aAAa,QAAQ,uBAAwB,CAAoB,EAE1E,OAAO,aAAa,QAAQ,cAAe,CAAQ,EAEnD,IAAM,EAAc,IAAI,IAAI,OAAO,SAAS,IAAI,EAEhD,EAAY,KAAO,GAEnB,MAAM,EAAA,YAAY,MAAM,EAAU,EAAY,IAAI,CACpD,CAEA,MAAM,QAAU,CACd,OAAO,KAAK,KAAK,UAAW,SAAU,qBAAqB,CAC7D,CAEA,MAAM,QAAU,CACd,MAAM,EAAA,YAAY,OAAO,CAC3B,CAEA,iBAAkB,EAAyB,CACzC,IAAM,EAAqB,EAAA,YACrB,MAAiB,CACrB,EAAS,CACX,EAYA,OAVA,KAAK,UAAU,KAAK,CAAQ,EAExB,OAAO,EAAmB,kBAAqB,WACjD,EAAmB,iBAAiB,qBAAsB,CAAQ,GAElE,EAAA,YAAY,OAAO,GAAG,QAAS,CAAQ,EACvC,EAAA,YAAY,OAAO,GAAG,SAAU,CAAQ,EACxC,EAAA,YAAY,OAAO,GAAG,iBAAkB,CAAQ,OAGrC,CACX,KAAK,UAAY,KAAK,UAAU,OAAO,GAAa,IAAc,CAAQ,EAEtE,OAAO,EAAmB,qBAAwB,WACpD,EAAmB,oBAAoB,qBAAsB,CAAQ,GAErE,EAAA,YAAY,OAAO,IAAI,QAAS,CAAQ,EACxC,EAAA,YAAY,OAAO,IAAI,SAAU,CAAQ,EACzC,EAAA,YAAY,OAAO,IAAI,iBAAkB,CAAQ,EAErD,CACF,CACF"}
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;IAOV,WAAW;IAYjB,IAAI,WAAW,IAAK,OAAO,CAE1B;IAED,IAAI,OAAO,IAAK,OAAO,GAAG,IAAI,CAW7B;IAEK,KAAK,CAAE,QAAQ,CAAC,EAAE,MAAM;IAuBxB,MAAM;IAIN,MAAM;IAIZ,gBAAgB,CAAE,QAAQ,EAAE,MAAM,OAAO;CA4B1C"}
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, solidLogicSingleton as o } from "solid-logic";
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 s = "https://solidproject.org/get_a_pod";
9
- function c(t) {
10
- let n = o.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"));
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 l = class {
13
+ var u = class {
14
14
  signupUrl;
15
15
  _initialized = !1;
16
16
  profileLoaded = !1;
17
17
  listeners = [];
18
- constructor(e = s) {
18
+ constructor(e = c) {
19
19
  this.signupUrl = e;
20
20
  }
21
21
  async initialize() {
22
- await a.checkUser(), this._initialized = !0, this.listeners.forEach((e) => e());
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 || !this.account || (this.profileLoaded = !0, await o.profile.loadMe(), this.listeners.forEach((e) => e()));
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 = c(e);
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
- o.store.updater.flagAuthorizationMetadata();
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 { s as DEFAULT_SIGNUP_URL, l as default };
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;EAIlB,AAHA,MAAM,EAAM,UAAU,GAEtB,KAAK,eAAe,IACpB,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,MAAM,cAAe;EACf,KAAK,iBAAiB,CAAC,KAAK,YAIhC,KAAK,gBAAgB,IAErB,MAAM,EAAoB,QAAQ,OAAO,GAEzC,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,IAAI,cAAwB;EAC1B,OAAO,KAAK;CACd;CAEA,IAAI,UAA2B;EAC7B,IAAM,IAA4B,EAAY,SAAS,EAAY,MAAM;EAGzE,IAAI,EAFsB,EAAY,YAAY,EAAY,MAAM,cAAc,EAAQ,MAEzE,CAAC,GAChB,OAAO;EAGT,IAAM,IAAY,EAAiB,CAAK;EAExC,OAAO,IAAI,EAAQ,GAAO,CAAS;CACrC;CAEA,MAAM,MAAO,GAAmB;EAC9B,IAAI,CAAC,GAAU;GACb,EAAW,CAAU;GAErB;EACF;EAGC,EAAqB,MAAM,QAAgB,0BAA0B;EAEtE,IAAM,IAAuB,IAAI,IAAI,OAAO,SAAS,IAAI,CAAC,CAAC;EAI3D,AAHI,KACF,OAAO,aAAa,QAAQ,wBAAwB,CAAoB,GAE1E,OAAO,aAAa,QAAQ,eAAe,CAAQ;EAEnD,IAAM,IAAc,IAAI,IAAI,OAAO,SAAS,IAAI;EAIhD,AAFA,EAAY,OAAO,IAEnB,MAAM,EAAY,MAAM,GAAU,EAAY,IAAI;CACpD;CAEA,MAAM,SAAU;EACd,OAAO,KAAK,KAAK,WAAW,UAAU,qBAAqB;CAC7D;CAEA,MAAM,SAAU;EACd,MAAM,EAAY,OAAO;CAC3B;CAEA,iBAAkB,GAAyB;EACzC,IAAM,IAAqB,GACrB,UAAiB;GACrB,EAAS;EACX;EAYA,OAVA,KAAK,UAAU,KAAK,CAAQ,GAExB,OAAO,EAAmB,oBAAqB,aACjD,EAAmB,iBAAiB,sBAAsB,CAAQ,KAElE,EAAY,OAAO,GAAG,SAAS,CAAQ,GACvC,EAAY,OAAO,GAAG,UAAU,CAAQ,GACxC,EAAY,OAAO,GAAG,kBAAkB,CAAQ,UAGrC;GAGX,AAFA,KAAK,YAAY,KAAK,UAAU,QAAO,MAAa,MAAc,CAAQ,GAEtE,OAAO,EAAmB,uBAAwB,aACpD,EAAmB,oBAAoB,sBAAsB,CAAQ,KAErE,EAAY,OAAO,IAAI,SAAS,CAAQ,GACxC,EAAY,OAAO,IAAI,UAAU,CAAQ,GACzC,EAAY,OAAO,IAAI,kBAAkB,CAAQ;EAErD;CACF;AACF"}
1
+ {"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,4 +1,4 @@
1
1
  const e=require("../_virtual/_rolldown/runtime.cjs.js"),t=require("./ns.cjs.js"),n=require("./log.cjs.js"),r=require("../utils/label.cjs.js"),i=require("../utils/index.cjs.js"),a=require("./debug.cjs.js"),o=require("./iconBase.cjs.js"),s=require("../widgets/index.cjs.js");let c=require("rdflib");c=e.__toESM(c);let l=require("solid-logic");var u={icons:o.icons,log:n.log_exports,ns:t.default,utils:i.utils_exports,widgets:s.widgets_exports};function d(e,t){let n=t.sourceDocument,o=t.tableClass,s=t.query,d=u.ns,f=l.store,p={},ee={"http://www.w3.org/2002/07/owl#sameAs":!0,"http://www.w3.org/1999/02/22-rdf-syntax-ns#type":!0},m={"http://www.w3.org/2001/XMLSchema#decimal":!0,"http://www.w3.org/2001/XMLSchema#float":!0,"http://www.w3.org/2001/XMLSchema#double":!0,"http://www.w3.org/2001/XMLSchema#integer":!0,"http://www.w3.org/2001/XMLSchema#nonNegativeInteger":!0,"http://www.w3.org/2001/XMLSchema#positiveInteger":!0,"http://www.w3.org/2001/XMLSchema#nonPositiveInteger":!0,"http://www.w3.org/2001/XMLSchema#negativeInteger":!0,"http://www.w3.org/2001/XMLSchema#long":!0,"http://www.w3.org/2001/XMLSchema#int":!0,"http://www.w3.org/2001/XMLSchema#short":!0,"http://www.w3.org/2001/XMLSchema#byte":!0,"http://www.w3.org/2001/XMLSchema#unsignedLong":!0,"http://www.w3.org/2001/XMLSchema#unsignedInt":!0,"http://www.w3.org/2001/XMLSchema#unsignedShort":!0,"http://www.w3.org/2001/XMLSchema#unsignedByte":!0},te={"http://www.w3.org/2001/XMLSchema#dateTime":!0,"http://www.w3.org/2001/XMLSchema#date":!0},ne={"http://xmlns.com/foaf/0.1/Image":!0,"http://purl.org/dc/terms/Image":!0},h=t.keyVariable||`?_row`,g=0,_,v,y,b,x=null,S=null,C=e.createElement(`div`);C.className=`tableViewPane`,C.appendChild(re());let w=e.createElement(`div`);C.appendChild(w),C.refresh=function(){Z(T.query,T.logicalRows,T.columns,T)};let T;if(s)T=$(s),w.appendChild(T);else{let e=I();_=e[0],v=e[1],o||y.appendChild(le(_,v)),S=Ce(v),E(S||_)}return C;function re(){let t=e.createElement(`table`);t.setAttribute(`class`,`toolbar`);let n=e.createElement(`tr`);return y=e.createElement(`td`),n.appendChild(y),b=e.createElement(`td`),n.appendChild(b),t.appendChild(n),t}function ie(e,t){let n=t.getColumns();for(let t=0;t<n.length;++t){let r=f.variable(`_col`+t);e.vars.push(r),n[t].setVariable(r)}}function ae(e,t,n){let r=n.type;r||=f.variable(`_any`),e.pat.add(t,u.ns.rdf(`type`),r)}function oe(e,t,n){let r=n.getColumns();for(let n=0;n<r.length;++n){let i=r[n],a=f.formula();a.add(t,i.predicate,i.getVariable()),e.pat.optional.push(a)}}function se(e){let t=new c.Query,n=f.variable(h.slice(1));return ie(t,e),ae(t,n,e),oe(t,n,e),t}function E(e){D(b),b.appendChild(de(e)),ce(se(e),e)}function ce(e,t){x&&(x.running=!1);let n=$(e,t);D(w),w.appendChild(n),x=e}function D(e){for(;e.childNodes.length>0;)e.removeChild(e.childNodes[0])}function O(e){this.type=e,this.columns=null,this.allColumns=[],this.useCount=0,this.getAllColumns=function(){return this.allColumns},this.getColumns=function(){if(!this.columns){let e=this.getAllColumns();this.columns=e.slice(0,7)}return this.columns},this.getUnusedColumns=function(){let e=this.getAllColumns(),t=this.getColumns(),n=[];for(let r=0;r<e.length;++r)t.indexOf(e[r])===-1&&n.push(e[r]);return n},this.addColumn=function(e){this.columns.push(e)},this.removeColumn=function(e){this.columns=this.columns.filter(function(t){return t!==e})},this.getLabel=function(){return r.label(this.type)},this.addUse=function(){this.useCount+=1}}function k(){this.useCount=0,this.checkedAnyValues=!1,this.possiblyLiteral=!0,this.possiblyNumber=!0,this.constraints=[],this.checkValue=function(e){let t=e.termType;this.possiblyLiteral&&t!==`Literal`&&t!==`NamedNode`?(this.possiblyNumber=!1,this.possiblyLiteral=!1):this.possiblyNumber&&(t===`Literal`&&e.value.match(/^-?\d+(\.\d*)?$/)||(this.possiblyNumber=!1)),this.checkedAnyValues=!0},this.getVariable=function(){return this.variable},this.setVariable=function(e){this.variable=e},this.getKey=function(){return this.variable.toString()},this.addUse=function(){this.useCount+=1},this.getHints=function(){return t&&t.hints&&this.variable&&t.hints[this.variable.toNT()]?t.hints[this.variable.toNT()]:{}},this.getLabel=function(){return this.getHints().label?this.getHints().label:this.predicate?this.predicate.sameTerm(d.rdf(`type`))&&this.superClass?r.label(this.superClass,!0):r.label(this.predicate):this.variable?this.variable.toString():`unlabeled column?`},this.setPredicate=function(e,t,n){t?(this.inverse=e,this.constraints=this.constraints.concat(f.each(e,u.ns.rdfs(`domain`))),e.sameTerm(d.rdfs(`subClassOf`))&&n.termType===`NamedNode`&&(this.superClass=n,this.alternatives=f.each(void 0,d.rdfs(`subClassOf`),n))):(this.predicate=e,this.constraints=this.constraints.concat(f.each(e,u.ns.rdfs(`range`))))},this.getConstraints=function(){return this.constraints},this.filterFunction=function(){return!0},this.sortKey=function(){return this.getLabel().toLowerCase()},this.isImageColumn=function(){for(let e=0;e<this.constraints.length;e++)if(this.constraints[e].uri in ne)return!0;return!1}}function A(e,t){let n=[];for(let r in e){let i=e[r];(!t||t(r,i))&&n.push(i)}return n}function j(t,n){let r=e.createElement(`option`);return r.setAttribute(`value`,n),r.appendChild(e.createTextNode(t)),r}function le(t,n){let r=e.createElement(`div`);r.appendChild(e.createTextNode(`Select type: `));let i=e.createElement(`select`);i.appendChild(j(`All types`,`null`));for(let e in n)i.appendChild(j(n[e].getLabel(),e));return i.addEventListener(`click`,function(){let e;e=i.value===`null`?t:n[i.value],ue(e)},!1),r.appendChild(i),r}function ue(e){E(e)}function de(t){let n=e.createElement(`div`),r=t.getUnusedColumns();if(r.sort(function(e,t){let n=e.sortKey(),r=t.sortKey();return(n>r)-(n<r)}),r.length>0){n.appendChild(e.createTextNode(`Add column: `));let i=e.createElement(`select`);i.appendChild(j(``,`-1`));for(let e=0;e<r.length;++e){let t=r[e];i.appendChild(j(t.getLabel(),``+e))}n.appendChild(i),i.addEventListener(`click`,function(){let e=Number(i.value);e>=0&&(t.addColumn(r[e]),E(t))},!1)}return n}function fe(e,t){for(let n in e){let r=e[n];if(r.variable.toNT()===t)return r}throw Error(`getColumnForVariable: no column for variable ${t}`)}function pe(e,t){let n;return t.uri in e?n=e[t.uri]:(n=new k,n.setPredicate(t),e[t.uri]=n),n}function M(e,t){let n;return t.uri in e?n=e[t.uri]:(n=new O(t),e[t.uri]=n),n}function N(){let e={},t=f.statementsMatching(void 0,u.ns.rdf(`type`),o,n),r={};for(let n=0;n<t.length;++n){let i=t[n].object;if(i.termType!==`NamedNode`)continue;let a=M(e,i);i.uri in r||(r[i.uri]=[]),r[i.uri].push(t[n].subject),a.addUse()}return[r,e]}function P(e,t){let r=f.statementsMatching(e,void 0,void 0,n),i={};for(let e=0;e<r.length;++e){let n=r[e].predicate;if(n.uri in ee)continue;let a=pe(t,n);a.checkValue(r[e].object),i[n.uri]=a}return i}function F(e,t){let n={};for(let e=0;e<t.length;++e){let r=P(t[e],n);for(let e in r)r[e].addUse()}let r=A(n);L(r),e.allColumns=r}function I(){let e,t,n=N();e=n[0],t=n[1];for(let n in e){let r=e[n],i=t[n];F(i,r)}return[new O(null),A(t)]}function L(e){function t(e,t){return(e.useCount<t.useCount)-(e.useCount>t.useCount)}e.sort(t)}function R(t,n){let r=e.createElement(`a`);return r.appendChild(e.createTextNode(`[x]`)),r.addEventListener(`click`,function(){t.removeColumn(n),E(t)},!1),r}function z(t,n){let r=e.createElement(`tr`),i=e.createElement(`th`);r.appendChild(i);for(let i=0;i<t.length;++i){let a=e.createElement(`th`),o=t[i];a.appendChild(e.createTextNode(o.getLabel())),n&&a.appendChild(R(n,o)),r.appendChild(a)}return r}function me(e,t,n,r){let i=t.getKey();if(e.sort(function(e,t){let a=null,o=null;i in e.values&&(a=e.values[i][0]),i in t.values&&(o=t.values[i][0]);let s=n(a,o);return r?-s:s}),e.length){let t=e[0]._htmlRow.parentNode;for(let n=0;n<e.length;++n)t.removeChild(e[n]._htmlRow);for(let n=0;n<e.length;++n)t.appendChild(e[n]._htmlRow)}}function B(e,t){let n=!0;for(let r=0;r<t.length;++r){let i=t[r],a=i.getKey(),o=null;if(a in e.values&&(o=e.values[a][0]),!i.filterFunction(o)){n=!1;break}}let r=e._htmlRow;n?r.style.display=``:r.style.display=`none`}function V(e,t){for(let n=0;n<e.length;++n){let r=e[n];B(r,t)}}function H(e,t,n){function i(e){return e?e.termType===`Literal`?e.value.toLowerCase():e.termType===`NamedNode`?r.label(e).toLowerCase():e.value.toLowerCase():``}function a(e,t){let n=i(e),r=i(t);return n<r?-1:+(n>r)}me(e,t,a,n)}function U(t,n,i){let a=e.createElement(`div`),o=e.createElement(`input`);o.setAttribute(`type`,`text`),o.style.width=`70%`,a.appendChild(o);let s=e.createElement(`span`);s.appendChild(e.createTextNode(`▼`)),s.addEventListener(`click`,function(){H(t,i,!1)},!1),a.appendChild(s);let c=e.createElement(`span`);c.appendChild(e.createTextNode(`▲`)),c.addEventListener(`click`,function(){H(t,i,!0)},!1),a.appendChild(c);let l=null;return i.filterFunction=function(e){if(!l)return!0;if(e){let t;return t=e.termType===`Literal`?e.value:e.termType===`NamedNode`?r.label(e):``,t.toLowerCase().indexOf(l)>=0}return!1},o.addEventListener(`keyup`,function(){l=o.value===``?null:o.value.toLowerCase(),V(t,n)},!1),a}function W(t,n,i,a){let o=e.createElement(`div`),s=e.createElement(`select`),c={};for(let e=0;e<a.length;++e){let t=a[e];c[t.uri]=!0}let l=q(i).initialSelection;l&&(c=l),s.setAttribute(`multiple`,`true`);for(let e=0;e<a.length;++e){let t=a[e],n=j(r.label(t),e);c[t.uri]&&(n.selected=!0),s.appendChild(n)}return o.appendChild(s),i.filterFunction=function(e){return!c||e&&c[e.uri]},s.addEventListener(`click`,function(){{c={};let e=s.options;for(let t=0;t<e.length;t++){let n=e[t],r=Number(n.value);e[t].selected&&(c[a[r].uri]=!0)}}V(t,n)},!0),o}function G(t,n,r){let i=e.createElement(`div`),a=e.createElement(`input`);a.setAttribute(`type`,`text`),a.style.width=`40px`,i.appendChild(a);let o=e.createElement(`input`);o.setAttribute(`type`,`text`),o.style.width=`40px`,i.appendChild(o);let s=null,c=null;r.filterFunction=function(e){return e&&=Number(e),!(s&&(!e||e<s)||c&&(!e||e>c))};function l(){s=a.value===``?null:Number(a.value),c=o.value===``?null:Number(o.value),V(t,n)}return a.addEventListener(`keyup`,l,!1),o.addEventListener(`keyup`,l,!1),i}function he(e,t,n){return n.checkedAnyValues&&n.possiblyNumber?G(e,t,n):n.possiblyLiteral?U(e,t,n):null}function ge(e,t,n){if(n.superClass&&n.alternatives.length>0)return W(e,t,n,n.alternatives);let r=n.getConstraints(),i;for(let a=0;a<r.length;a++){if(i=r[a],n.checkedAnyValues&&n.possiblyNumber||i.uri in m)return G(e,t,n);if(i.uri===`http://www.w3.org/2000/01/rdf-schema#Literal`)return U(e,t,n);let o=f.each(i,u.ns.owl(`oneOf`));if(o.length>0)return W(e,t,n,o.elements)}return he(e,t,n)}function _e(t,n){let r=e.createElement(`tr`);r.className=`selectors`,r.appendChild(e.createElement(`td`));for(let i=0;i<n.length;++i){let a=e.createElement(`td`),o=ge(t,n,n[i]);o&&a.appendChild(o),r.appendChild(a)}return r}function K(t,n,r){r||={};let o=e.createElement(`a`),s=r.linkFunction;return o.setAttribute(`href`,t),o.appendChild(e.createTextNode(n)),s?o.addEventListener(`click`,function(e){e.preventDefault(),e.stopPropagation();let t=i.getTarget(e).getAttribute(`href`);t||a.log(`No href found
2
2
  `),s(t)},!0):o.addEventListener(`click`,u.widgets.openHrefInOutlineMode,!0),o}function ve(e,t){let n=!1;return e.uri&&(n=e.uri.match(/^mailto:(.*)/)),n?K(e.uri,n[1],t):K(e.uri,r.label(e),t)}function ye(t){let n=e.createElement(`img`);return n.setAttribute(`src`,t.uri),n.style.height=`40px`,n}function q(e){return t&&t.hints&&e.variable&&t.hints[e.variable.toNT()]?t.hints[e.variable.toNT()]:{}}function J(t,n){let r=q(n),i=r.cellFormat;if(i)switch(i){case`shortDate`:return e.createTextNode(u.widgets.shortDate(t.value))}else if(t.termType===`Literal`){if(t.datatype){if(te[t.datatype.uri])return e.createTextNode(u.widgets.shortDate(t.value));if(m[t.datatype.uri]){let n=e.createElement(`span`);return n.textContent=t.value,n.setAttribute(`style`,`text-align: right`),n}}return e.createTextNode(t.value)}else if(t.termType===`NamedNode`&&n.isImageColumn())return ye(t);else if(t.termType===`NamedNode`||t.termType===`BlankNode`)return ve(t,r);else if(t.termType===`Collection`){let r=e.createElement(`span`);return r.appendChild(e.createTextNode(`[`)),t.elements.forEach(function(t){r.appendChild(J(t,n)),r.appendChild(e.createTextNode(`, `))}),r.removeChild(r.lastChild),r.appendChild(e.createTextNode(`]`)),r}else return e.createTextNode(`unknown termtype '`+t.termType+`'!`)}function be(t,n,r,i){let a=e.createElement(`td`);n._subject&&`uri`in n._subject&&a.appendChild(K(n._subject.uri,`→`)),t.appendChild(a);for(let i=0;i<r.length;++i){let a=r[i],o=e.createElement(`td`),s,c=a.getKey();if(c in n.values){let t=n.values[c],r=!1;n.originalValues&&n.originalValues[c]&&t.length!==n.originalValues[c].length&&(r=!0);for(let i=0;i<t.length;++i){let l=t[i];n.originalValues&&n.originalValues[c]&&n.originalValues[c].length>i&&(s=n.originalValues[c][i],l.toString()!==s.toString()&&(r=!0)),o.appendChild(J(l,a)),i!==t.length-1&&o.appendChild(e.createTextNode(`,
3
- `)),r&&(o.style.background=`#efe`)}}t.appendChild(o)}return n._htmlRow=t,t}function Y(e,t){let n=null;if(e.termType===`Literal`)n=`value`;else if(e.termType===`NamedNode`)n=`uri`;else return t.indexOf(e)>=0;let r;for(r=0;r<t.length;++r)if(t[r].termType===e.termType&&t[r][n]===e[n])return!0;return!1}function xe(e,t,n){let r,i=!1;for(r in n){let t=n[r];r in e.values||(e.values[r]=[]),Y(t,e.values[r])||(e.values[r].push(t),i=!0)}i&&(D(e._htmlRow),be(e._htmlRow,e,t)),B(e,t)}function X(e){if(`uri`in e)return e.uri;if(`_subject_id`in e)return e._subject_id;{let t=``+g;return e._subject_id=t,++g,t}}function Z(n,r,i,o){n.running=!0;let s=Date.now(),c=e.createElement(`tr`);o.appendChild(c),c.textContent=`Loading ...`;for(let e=0;e<r.length;e++)r[e].original=!0,r[e].originalValues||(r[e].originalValues=r[e].values),r[e].values={};f.query(n,function(t){if(!n.running)return;c.textContent+=`.`;let a=null,s=null,l;if(h in t&&(s=t[h],l=X(s),l in p&&(a=p[l])),!a){let t=e.createElement(`tr`);o.appendChild(t),a={_htmlRow:t,_subject:s,values:{}},r.push(a),s&&(p[l]=a)}delete a.original,xe(a,i,t)},void 0,function(){c&&c.parentNode&&c.parentNode.removeChild&&(c.parentNode.removeChild(c),c=null);let e=Date.now()-s;a.log(`Query done: `+r.length+` rows, `+e+`ms`);for(let e=r.length-1;e>=0;e--)if(r[e].original){a.log(` deleting row `+r[e]._subject);let t=r[e]._htmlRow;t.parentNode.removeChild(t),delete p[X(r[e]._subject)],r.splice(e,1)}t.sortBy&&H(r,fe(i,t.sortBy),t.sortReverse),t.onDone&&t.onDone(C)})}function Q(e,t){u.log.debug(`>> processing formula`);for(let n=0;n<t.statements.length;++n){let r=t.statements[n];if(r.predicate.termType===`NamedNode`&&r.object.termType===`Variable`){let t=r.object.toString();t in e&&e[t].setPredicate(r.predicate,!1,r.subject)}if(r.predicate.termType===`NamedNode`&&r.subject.termType===`Variable`){let t=r.subject.toString();t in e&&e[t].setPredicate(r.predicate,!0,r.object)}}for(let n=0;n<t.optional.length;++n)u.log.debug(`recurse to optional subformula `+n),Q(e,t.optional[n]);u.log.debug(`<< finished processing formula`)}function Se(e){let t=[],n={};for(let r=0;r<e.vars.length;++r){let i=new k,a=e.vars[r];u.log.debug(`column `+r+` : `+a),i.setVariable(a),n[a]=i,t.push(i)}return Q(n,e.pat),t}function $(t,n){let r;r=s?Se(t):n.getColumns();let i=[],a=e.createElement(`table`);return a.appendChild(z(r,n)),a.appendChild(_e(i,r)),a.logicalRows=i,a.columns=r,a.query=t,Z(t,i,r,a),a}function Ce(e){let t=-1,n=null,r;for(r in e){let i=e[r];i.useCount>t&&(n=i,t=i.useCount)}return n}}exports.renderTableViewPane=d;
3
+ `)),r&&(o.style.background=`#efe`)}}t.appendChild(o)}return n._htmlRow=t,t}function Y(e,t){let n=null;if(e.termType===`Literal`)n=`value`;else if(e.termType===`NamedNode`)n=`uri`;else return t.indexOf(e)>=0;let r=0;for(;r<t.length;++r)if(t[r].termType===e.termType&&t[r][n]===e[n])return!0;return!1}function xe(e,t,n){let r,i=!1;for(r in n){let t=n[r];r in e.values||(e.values[r]=[]),Y(t,e.values[r])||(e.values[r].push(t),i=!0)}i&&(D(e._htmlRow),be(e._htmlRow,e,t)),B(e,t)}function X(e){if(`uri`in e)return e.uri;if(`_subject_id`in e)return e._subject_id;{let t=``+g;return e._subject_id=t,++g,t}}function Z(n,r,i,o){n.running=!0;let s=Date.now(),c=e.createElement(`tr`);o.appendChild(c),c.textContent=`Loading ...`;for(let e=0;e<r.length;e++)r[e].original=!0,r[e].originalValues||(r[e].originalValues=r[e].values),r[e].values={};f.query(n,function(t){if(!n.running)return;c.textContent+=`.`;let a=null,s=null,l;if(h in t&&(s=t[h],l=X(s),l in p&&(a=p[l])),!a){let t=e.createElement(`tr`);o.appendChild(t),a={_htmlRow:t,_subject:s,values:{}},r.push(a),s&&(p[l]=a)}delete a.original,xe(a,i,t)},void 0,function(){c&&c.parentNode&&c.parentNode.removeChild&&(c.parentNode.removeChild(c),c=null);let e=Date.now()-s;a.log(`Query done: `+r.length+` rows, `+e+`ms`);for(let e=r.length-1;e>=0;e--)if(r[e].original){a.log(` deleting row `+r[e]._subject);let t=r[e]._htmlRow;t.parentNode.removeChild(t),delete p[X(r[e]._subject)],r.splice(e,1)}t.sortBy&&H(r,fe(i,t.sortBy),t.sortReverse),t.onDone&&t.onDone(C)})}function Q(e,t){u.log.debug(`>> processing formula`);for(let n=0;n<t.statements.length;++n){let r=t.statements[n];if(r.predicate.termType===`NamedNode`&&r.object.termType===`Variable`){let t=r.object.toString();t in e&&e[t].setPredicate(r.predicate,!1,r.subject)}if(r.predicate.termType===`NamedNode`&&r.subject.termType===`Variable`){let t=r.subject.toString();t in e&&e[t].setPredicate(r.predicate,!0,r.object)}}for(let n=0;n<t.optional.length;++n)u.log.debug(`recurse to optional subformula `+n),Q(e,t.optional[n]);u.log.debug(`<< finished processing formula`)}function Se(e){let t=[],n={};for(let r=0;r<e.vars.length;++r){let i=new k,a=e.vars[r];u.log.debug(`column `+r+` : `+a),i.setVariable(a),n[a]=i,t.push(i)}return Q(n,e.pat),t}function $(t,n){let r;r=s?Se(t):n.getColumns();let i=[],a=e.createElement(`table`);return a.appendChild(z(r,n)),a.appendChild(_e(i,r)),a.logicalRows=i,a.columns=r,a.query=t,Z(t,i,r,a),a}function Ce(e){let t=-1,n=null,r;for(r in e){let i=e[r];i.useCount>t&&(n=i,t=i.useCount)}return n}}exports.renderTableViewPane=d;
4
4
  //# sourceMappingURL=table.cjs.js.map