solid-ui 2.4.23 → 2.4.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +2159 -5039
- package/dist/main.js.map +1 -1
- package/lib/acl/access-controller.js +4 -67
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.js +59 -137
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.js +14 -54
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.js +32 -107
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.js +0 -92
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.js +1 -3
- package/lib/acl/index.js.map +1 -1
- package/lib/acl/styles.js +1 -2
- package/lib/acl/styles.js.map +1 -1
- package/lib/chat/bookmarks.js +8 -80
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +109 -180
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +6 -91
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +33 -185
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +37 -150
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +23 -96
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +33 -91
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.js +19 -51
- package/lib/create/create.js.map +1 -1
- package/lib/create/index.js +0 -2
- package/lib/create/index.js.map +1 -1
- package/lib/debug.js +0 -8
- package/lib/debug.js.map +1 -1
- package/lib/folders.js +4 -27
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.js +2 -24
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.js.map +1 -1
- package/lib/header/empty-profile.js.map +1 -1
- package/lib/header/index.js +3 -72
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.js +4 -3
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.js +3 -4
- package/lib/iconBase.js.map +1 -1
- package/lib/index.js +5 -46
- package/lib/index.js.map +1 -1
- package/lib/jss/index.js +3 -9
- package/lib/jss/index.js.map +1 -1
- package/lib/log.js +15 -51
- package/lib/log.js.map +1 -1
- package/lib/login/login.js +74 -303
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/index.js +0 -2
- package/lib/matrix/index.js.map +1 -1
- package/lib/matrix/matrix.js +7 -55
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/media/index.js +0 -2
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capture.js +13 -33
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +23 -64
- package/lib/messageArea.js.map +1 -1
- package/lib/noun_Camera_1618446_000000.js.map +1 -1
- package/lib/ns.js +5 -7
- package/lib/ns.js.map +1 -1
- package/lib/pad.js +48 -234
- package/lib/pad.js.map +1 -1
- package/lib/participation.js +10 -65
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +21 -42
- package/lib/preferences.js.map +1 -1
- package/lib/signup/config-default.js +1 -8
- package/lib/signup/config-default.js.map +1 -1
- package/lib/signup/signup.js +6 -13
- package/lib/signup/signup.js.map +1 -1
- package/lib/stories/decorators.js +0 -2
- package/lib/stories/decorators.js.map +1 -1
- package/lib/style.js +8 -5
- package/lib/style.js.map +1 -1
- package/lib/style_multiSelect.js +1 -5
- package/lib/style_multiSelect.js.map +1 -1
- package/lib/table.js +309 -322
- package/lib/table.js.map +1 -1
- package/lib/tabs.js +20 -100
- package/lib/tabs.js.map +1 -1
- package/lib/utils/headerFooterHelpers.js +4 -52
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +41 -135
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/label.js +13 -34
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.js +4 -4
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.js +0 -8
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.js +115 -291
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +12 -41
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.js +3 -9
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -71
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +13 -65
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +15 -107
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js +6 -55
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +12 -131
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.js +12 -55
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.js +1 -15
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.js +3 -16
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.js +0 -12
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.js +1 -14
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +70 -474
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +0 -21
- package/lib/widgets/index.js.map +1 -1
- package/lib/widgets/multiSelect.js +48 -171
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js +20 -90
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/lib/widgets/widgetHelpers.js +2 -9
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +28 -28
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-agent-buttons.js","names":["AddAgentButtons","groupList","rootElement","controller","dom","createElement","barElement","innerHTML","appendChild","renderAddButton","widgets","button","icons","iconBase","toggleBar","renderBar","isExpanded","renderPersonButton","renderGroupButton","renderPublicButton","renderAuthenticatedAgentButton","renderBotButton","renderAppsButton","Array","from","children","filter","element","forEach","removeChild","iconForClass","event","renderSimplifiedBar","target","renderNameForm","ns","vcard","then","name","addPerson","renderCleanup","error","renderStatus","addGroup","type","noun","askName","store","addAgent","foaf","uri","renderTemporaryStatus","acl","schema","addBot","eventContext","div","existingApps","renderAppsTable","renderAppsView","newApp","getOriginFromName","Promise","race","origin","addNewURI","trustedApplications","context","session","paneRegistry","byName","trustedApplicationsElement","render","classList","add","classes","trustedAppController","cancelButton","trustedAppCancelButton","insertBefore","firstChild","ensureLoadedProfile","trustedApps","each","me","trustedOrigins","flatMap","app","textContent","length","resolve","reject","appsTable","trustedAppAddApplicationsTable","any","Error","value","thingTR","personTR","innerTable","innerRow","innerLeftColumn","innerMiddleColumn","utils","label","subject","innerRightColumn","continueButton","domainNameRegexp","match","debug","log","agentUri"],"sources":["../../src/acl/add-agent-buttons.ts"],"sourcesContent":["/**\n * Contains the [[AddAgentButtons]] class\n * @packageDocumentation\n */\n\nimport { NamedNode, Store } from 'rdflib'\nimport { AuthenticationContext } from 'solid-logic'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { ensureLoadedProfile } from '../login/login'\nimport * as ns from '../ns'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { AccessGroups } from './access-groups'\n\n/**\n * Renders the Sharing pane's \"+\" button and the menus behind it,\n * see https://github.com/solidos/userguide/blob/main/views/sharing/userguide.md#add\n */\nexport class AddAgentButtons {\n private readonly rootElement: HTMLElement\n private readonly barElement: HTMLElement\n private isExpanded: boolean = false\n\n constructor (private groupList: AccessGroups) {\n this.rootElement = groupList.controller.dom.createElement('div')\n this.barElement = groupList.controller.dom.createElement('div')\n }\n\n public render (): HTMLElement {\n this.rootElement.innerHTML = ''\n this.rootElement.appendChild(this.renderAddButton())\n this.rootElement.appendChild(this.barElement)\n return this.rootElement\n }\n\n private renderAddButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_34653_green.svg`,\n 'Add ...',\n () => {\n this.toggleBar()\n this.renderBar()\n }\n )\n }\n\n private renderBar (): void {\n this.barElement.innerHTML = ''\n if (!this.isExpanded) {\n return\n }\n this.barElement.appendChild(this.renderPersonButton())\n this.barElement.appendChild(this.renderGroupButton())\n this.barElement.appendChild(this.renderPublicButton())\n this.barElement.appendChild(this.renderAuthenticatedAgentButton())\n this.barElement.appendChild(this.renderBotButton())\n this.barElement.appendChild(this.renderAppsButton())\n }\n\n private renderSimplifiedBar (button: EventTarget | null) {\n Array.from(this.barElement.children)\n .filter(element => element !== button)\n .forEach(element => this.barElement.removeChild(element))\n }\n\n private renderPersonButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['vcard:Individual'],\n 'Add Person',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.vcard('Individual'), 'person')\n .then(name => this.addPerson(name))\n .then(() => this.renderCleanup())\n .catch(error => this.groupList.controller.renderStatus(error))\n }\n )\n }\n\n private renderGroupButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['vcard:Group'],\n 'Add Group',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.vcard('Group'), 'group')\n .then(name => this.addGroup(name))\n .then(() => this.renderCleanup())\n .catch(error => this.groupList.controller.renderStatus(error))\n }\n )\n }\n\n private renderNameForm (type: NamedNode, noun: string): Promise<string | undefined> {\n return widgets.askName(\n this.groupList.controller.dom,\n this.groupList.store,\n this.barElement,\n ns.vcard('URI'),\n type,\n noun\n )\n }\n\n private renderPublicButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['foaf:Agent'],\n 'Add Everyone',\n () => this.addAgent(ns.foaf('Agent').uri)\n .then(() => this.groupList.controller.renderTemporaryStatus('Adding the general public to those who can read. Drag the globe to a different level to give them more access.'))\n .then(() => this.renderCleanup()))\n }\n\n private renderAuthenticatedAgentButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_99101.svg`,\n 'Anyone logged In',\n () => this.addAgent(ns.acl('AuthenticatedAgent').uri)\n .then(() => this.groupList.controller.renderTemporaryStatus('Adding anyone logged in to those who can read. Drag the ID icon to a different level to give them more access.'))\n .then(() => this.renderCleanup()))\n }\n\n private renderBotButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + 'noun_Robot_849764.svg',\n 'A Software Agent (bot)',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.schema('Application'), 'bot')\n .then(name => this.addBot(name))\n .then(() => this.renderCleanup())\n })\n }\n\n private renderAppsButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_15177.svg`,\n 'A Web App (origin)',\n event => {\n this.renderSimplifiedBar(event.target)\n const eventContext = {\n div: this.barElement,\n dom: this.groupList.controller.dom\n }\n const existingApps = this.renderAppsTable(eventContext)\n .catch(error => this.groupList.controller.renderStatus(error))\n this.renderAppsView()\n const newApp = this.renderNameForm(ns.schema('WebApplication'), 'webapp domain')\n .then(name => this.getOriginFromName(name))\n Promise.race([\n existingApps,\n newApp\n ])\n .then(origin => {\n if (origin) {\n this.groupList.addNewURI(origin)\n }\n })\n .then(() => this.renderCleanup())\n }\n )\n }\n\n private renderAppsView (): void {\n const trustedApplications = this.groupList.controller.context.session.paneRegistry.byName('trustedApplications')\n if (trustedApplications) {\n const trustedApplicationsElement = trustedApplications.render(null, this.groupList.controller.context)\n trustedApplicationsElement.classList.add(this.groupList.controller.classes.trustedAppController)\n\n const cancelButton = widgets.cancelButton(this.groupList.controller.dom, () => this.renderCleanup())\n cancelButton.classList.add(this.groupList.controller.classes.trustedAppCancelButton)\n trustedApplicationsElement.insertBefore(cancelButton, trustedApplicationsElement.firstChild)\n\n this.barElement.appendChild(trustedApplicationsElement)\n }\n }\n\n private async renderAppsTable (eventContext: AuthenticationContext): Promise<string> {\n await ensureLoadedProfile(eventContext)\n const trustedApps = (this.groupList.store as Store).each(eventContext.me, ns.acl('trustedApp')) as Array<NamedNode> // @@ TODO fix as\n const trustedOrigins = trustedApps.flatMap(app => (this.groupList.store as Store).each(app, ns.acl('origin'))) // @@ TODO fix as\n\n this.barElement.appendChild(this.groupList.controller.dom.createElement('p')).textContent = `You have ${trustedOrigins.length} selected web apps.`\n return new Promise((resolve, reject) => {\n const appsTable = this.barElement.appendChild(this.groupList.controller.dom.createElement('table'))\n appsTable.classList.add(this.groupList.controller.classes.trustedAppAddApplicationsTable)\n trustedApps.forEach(app => {\n const origin = (this.groupList.store as Store).any(app, ns.acl('origin')) // @@ TODO fix as\n if (!origin) {\n reject(new Error(`Unable to pick app: ${app.value}`))\n }\n const thingTR = widgets.personTR(this.groupList.controller.dom, ns.acl('origin'), origin, {})\n const innerTable = this.groupList.controller.dom.createElement('table')\n const innerRow = innerTable.appendChild(this.groupList.controller.dom.createElement('tr'))\n\n const innerLeftColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerLeftColumn.appendChild(thingTR)\n\n const innerMiddleColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerMiddleColumn.textContent = `Give access to ${this.groupList.controller.noun} ${utils.label(this.groupList.controller.subject)}?`\n\n const innerRightColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerRightColumn.appendChild(widgets.continueButton(this.groupList.controller.dom, () => resolve(origin!.value)))\n\n appsTable.appendChild(innerTable)\n })\n })\n }\n\n private renderCleanup (): void {\n this.renderBar()\n this.groupList.render()\n }\n\n private async addPerson (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a person and has an owner who agrees they own it\n debug.log(`Adding to ACL person: ${name}`)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async addGroup (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a group and has an owner who agrees they own it\n debug.log('Adding to ACL group: ' + name)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async addAgent (agentUri: string): Promise<void> {\n await this.groupList.addNewURI(agentUri)\n this.toggleBar()\n }\n\n private async addBot (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a bot and has an owner who agrees they own it\n debug.log('Adding to ACL bot: ' + name)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async getOriginFromName (name?: string): Promise<string | void> {\n if (!name) return Promise.resolve() // user cancelled\n const domainNameRegexp = /^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$/i\n // https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a domain name'))\n }\n const origin = 'https://' + name\n debug.log('Adding to ACL origin: ' + origin)\n this.toggleBar()\n return origin\n }\n\n private toggleBar (): void {\n this.isExpanded = !this.isExpanded\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add-agent-buttons.js","names":["AddAgentButtons","groupList","rootElement","controller","dom","createElement","barElement","innerHTML","appendChild","renderAddButton","widgets","button","icons","iconBase","toggleBar","renderBar","isExpanded","renderPersonButton","renderGroupButton","renderPublicButton","renderAuthenticatedAgentButton","renderBotButton","renderAppsButton","Array","from","children","filter","element","forEach","removeChild","iconForClass","event","renderSimplifiedBar","target","renderNameForm","ns","vcard","then","name","addPerson","renderCleanup","error","renderStatus","addGroup","type","noun","askName","store","addAgent","foaf","uri","renderTemporaryStatus","acl","schema","addBot","eventContext","div","existingApps","renderAppsTable","renderAppsView","newApp","getOriginFromName","Promise","race","origin","addNewURI","trustedApplications","context","session","paneRegistry","byName","trustedApplicationsElement","render","classList","add","classes","trustedAppController","cancelButton","trustedAppCancelButton","insertBefore","firstChild","ensureLoadedProfile","trustedApps","each","me","trustedOrigins","flatMap","app","textContent","length","resolve","reject","appsTable","trustedAppAddApplicationsTable","any","Error","value","thingTR","personTR","innerTable","innerRow","innerLeftColumn","innerMiddleColumn","utils","label","subject","innerRightColumn","continueButton","domainNameRegexp","match","debug","log","agentUri"],"sources":["../../src/acl/add-agent-buttons.ts"],"sourcesContent":["/**\n * Contains the [[AddAgentButtons]] class\n * @packageDocumentation\n */\n\nimport { NamedNode, Store } from 'rdflib'\nimport { AuthenticationContext } from 'solid-logic'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { ensureLoadedProfile } from '../login/login'\nimport * as ns from '../ns'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { AccessGroups } from './access-groups'\n\n/**\n * Renders the Sharing pane's \"+\" button and the menus behind it,\n * see https://github.com/solidos/userguide/blob/main/views/sharing/userguide.md#add\n */\nexport class AddAgentButtons {\n private readonly rootElement: HTMLElement\n private readonly barElement: HTMLElement\n private isExpanded: boolean = false\n\n constructor (private groupList: AccessGroups) {\n this.rootElement = groupList.controller.dom.createElement('div')\n this.barElement = groupList.controller.dom.createElement('div')\n }\n\n public render (): HTMLElement {\n this.rootElement.innerHTML = ''\n this.rootElement.appendChild(this.renderAddButton())\n this.rootElement.appendChild(this.barElement)\n return this.rootElement\n }\n\n private renderAddButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_34653_green.svg`,\n 'Add ...',\n () => {\n this.toggleBar()\n this.renderBar()\n }\n )\n }\n\n private renderBar (): void {\n this.barElement.innerHTML = ''\n if (!this.isExpanded) {\n return\n }\n this.barElement.appendChild(this.renderPersonButton())\n this.barElement.appendChild(this.renderGroupButton())\n this.barElement.appendChild(this.renderPublicButton())\n this.barElement.appendChild(this.renderAuthenticatedAgentButton())\n this.barElement.appendChild(this.renderBotButton())\n this.barElement.appendChild(this.renderAppsButton())\n }\n\n private renderSimplifiedBar (button: EventTarget | null) {\n Array.from(this.barElement.children)\n .filter(element => element !== button)\n .forEach(element => this.barElement.removeChild(element))\n }\n\n private renderPersonButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['vcard:Individual'],\n 'Add Person',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.vcard('Individual'), 'person')\n .then(name => this.addPerson(name))\n .then(() => this.renderCleanup())\n .catch(error => this.groupList.controller.renderStatus(error))\n }\n )\n }\n\n private renderGroupButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['vcard:Group'],\n 'Add Group',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.vcard('Group'), 'group')\n .then(name => this.addGroup(name))\n .then(() => this.renderCleanup())\n .catch(error => this.groupList.controller.renderStatus(error))\n }\n )\n }\n\n private renderNameForm (type: NamedNode, noun: string): Promise<string | undefined> {\n return widgets.askName(\n this.groupList.controller.dom,\n this.groupList.store,\n this.barElement,\n ns.vcard('URI'),\n type,\n noun\n )\n }\n\n private renderPublicButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['foaf:Agent'],\n 'Add Everyone',\n () => this.addAgent(ns.foaf('Agent').uri)\n .then(() => this.groupList.controller.renderTemporaryStatus('Adding the general public to those who can read. Drag the globe to a different level to give them more access.'))\n .then(() => this.renderCleanup()))\n }\n\n private renderAuthenticatedAgentButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_99101.svg`,\n 'Anyone logged In',\n () => this.addAgent(ns.acl('AuthenticatedAgent').uri)\n .then(() => this.groupList.controller.renderTemporaryStatus('Adding anyone logged in to those who can read. Drag the ID icon to a different level to give them more access.'))\n .then(() => this.renderCleanup()))\n }\n\n private renderBotButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + 'noun_Robot_849764.svg',\n 'A Software Agent (bot)',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.schema('Application'), 'bot')\n .then(name => this.addBot(name))\n .then(() => this.renderCleanup())\n })\n }\n\n private renderAppsButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_15177.svg`,\n 'A Web App (origin)',\n event => {\n this.renderSimplifiedBar(event.target)\n const eventContext = {\n div: this.barElement,\n dom: this.groupList.controller.dom\n }\n const existingApps = this.renderAppsTable(eventContext)\n .catch(error => this.groupList.controller.renderStatus(error))\n this.renderAppsView()\n const newApp = this.renderNameForm(ns.schema('WebApplication'), 'webapp domain')\n .then(name => this.getOriginFromName(name))\n Promise.race([\n existingApps,\n newApp\n ])\n .then(origin => {\n if (origin) {\n this.groupList.addNewURI(origin)\n }\n })\n .then(() => this.renderCleanup())\n }\n )\n }\n\n private renderAppsView (): void {\n const trustedApplications = this.groupList.controller.context.session.paneRegistry.byName('trustedApplications')\n if (trustedApplications) {\n const trustedApplicationsElement = trustedApplications.render(null, this.groupList.controller.context)\n trustedApplicationsElement.classList.add(this.groupList.controller.classes.trustedAppController)\n\n const cancelButton = widgets.cancelButton(this.groupList.controller.dom, () => this.renderCleanup())\n cancelButton.classList.add(this.groupList.controller.classes.trustedAppCancelButton)\n trustedApplicationsElement.insertBefore(cancelButton, trustedApplicationsElement.firstChild)\n\n this.barElement.appendChild(trustedApplicationsElement)\n }\n }\n\n private async renderAppsTable (eventContext: AuthenticationContext): Promise<string> {\n await ensureLoadedProfile(eventContext)\n const trustedApps = (this.groupList.store as Store).each(eventContext.me, ns.acl('trustedApp')) as Array<NamedNode> // @@ TODO fix as\n const trustedOrigins = trustedApps.flatMap(app => (this.groupList.store as Store).each(app, ns.acl('origin'))) // @@ TODO fix as\n\n this.barElement.appendChild(this.groupList.controller.dom.createElement('p')).textContent = `You have ${trustedOrigins.length} selected web apps.`\n return new Promise((resolve, reject) => {\n const appsTable = this.barElement.appendChild(this.groupList.controller.dom.createElement('table'))\n appsTable.classList.add(this.groupList.controller.classes.trustedAppAddApplicationsTable)\n trustedApps.forEach(app => {\n const origin = (this.groupList.store as Store).any(app, ns.acl('origin')) // @@ TODO fix as\n if (!origin) {\n reject(new Error(`Unable to pick app: ${app.value}`))\n }\n const thingTR = widgets.personTR(this.groupList.controller.dom, ns.acl('origin'), origin, {})\n const innerTable = this.groupList.controller.dom.createElement('table')\n const innerRow = innerTable.appendChild(this.groupList.controller.dom.createElement('tr'))\n\n const innerLeftColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerLeftColumn.appendChild(thingTR)\n\n const innerMiddleColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerMiddleColumn.textContent = `Give access to ${this.groupList.controller.noun} ${utils.label(this.groupList.controller.subject)}?`\n\n const innerRightColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerRightColumn.appendChild(widgets.continueButton(this.groupList.controller.dom, () => resolve(origin!.value)))\n\n appsTable.appendChild(innerTable)\n })\n })\n }\n\n private renderCleanup (): void {\n this.renderBar()\n this.groupList.render()\n }\n\n private async addPerson (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a person and has an owner who agrees they own it\n debug.log(`Adding to ACL person: ${name}`)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async addGroup (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a group and has an owner who agrees they own it\n debug.log('Adding to ACL group: ' + name)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async addAgent (agentUri: string): Promise<void> {\n await this.groupList.addNewURI(agentUri)\n this.toggleBar()\n }\n\n private async addBot (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a bot and has an owner who agrees they own it\n debug.log('Adding to ACL bot: ' + name)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async getOriginFromName (name?: string): Promise<string | void> {\n if (!name) return Promise.resolve() // user cancelled\n const domainNameRegexp = /^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$/i\n // https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a domain name'))\n }\n const origin = 'https://' + name\n debug.log('Adding to ACL origin: ' + origin)\n this.toggleBar()\n return origin\n }\n\n private toggleBar (): void {\n this.isExpanded = !this.isExpanded\n }\n}\n"],"mappings":"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"}
|
package/lib/acl/index.js
CHANGED
|
@@ -4,15 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.aclControl = exports.acl = void 0;
|
|
7
|
-
|
|
8
7
|
var _acl = require("./acl");
|
|
9
|
-
|
|
10
8
|
var _aclControl = require("./acl-control");
|
|
11
|
-
|
|
12
9
|
/**
|
|
13
10
|
* Re-exports all the exports from the various files in the src/acl/ folder
|
|
14
11
|
* @packageDocumentation
|
|
15
12
|
*/
|
|
13
|
+
|
|
16
14
|
var acl = {
|
|
17
15
|
adoptACLDefault: _acl.adoptACLDefault,
|
|
18
16
|
readACL: _acl.readACL,
|
package/lib/acl/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["acl","adoptACLDefault","readACL","sameACL","ACLunion","loadUnionACL","ACLbyCombination","makeACLGraph","makeACLGraphbyCombo","ACLToString","comboToString","makeACLString","putACLObject","putACLbyCombo","fixIndividualCardACL","fixIndividualACL","setACL","getACLorDefault","getACL","aclControl","preventBrowserDropEvents","shortNameForFolder","ACLControlBox5"],"sources":["../../src/acl/index.ts"],"sourcesContent":["/**\n * Re-exports all the exports from the various files in the src/acl/ folder\n * @packageDocumentation\n */\n\nimport {\n ACLbyCombination,\n ACLToString,\n ACLunion,\n adoptACLDefault,\n comboToString,\n fixIndividualACL,\n fixIndividualCardACL,\n getACL,\n getACLorDefault,\n loadUnionACL,\n makeACLGraph,\n makeACLGraphbyCombo,\n makeACLString,\n putACLbyCombo,\n putACLObject,\n readACL,\n sameACL,\n setACL\n} from './acl'\nimport {\n ACLControlBox5,\n preventBrowserDropEvents,\n shortNameForFolder\n} from './acl-control'\n\nexport const acl = {\n adoptACLDefault,\n readACL,\n sameACL,\n ACLunion,\n loadUnionACL,\n ACLbyCombination,\n makeACLGraph,\n makeACLGraphbyCombo,\n ACLToString,\n comboToString,\n makeACLString,\n putACLObject,\n putACLbyCombo,\n fixIndividualCardACL,\n fixIndividualACL,\n setACL,\n getACLorDefault,\n getACL\n}\n\nexport const aclControl = {\n preventBrowserDropEvents,\n shortNameForFolder,\n ACLControlBox5\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["acl","adoptACLDefault","readACL","sameACL","ACLunion","loadUnionACL","ACLbyCombination","makeACLGraph","makeACLGraphbyCombo","ACLToString","comboToString","makeACLString","putACLObject","putACLbyCombo","fixIndividualCardACL","fixIndividualACL","setACL","getACLorDefault","getACL","aclControl","preventBrowserDropEvents","shortNameForFolder","ACLControlBox5"],"sources":["../../src/acl/index.ts"],"sourcesContent":["/**\n * Re-exports all the exports from the various files in the src/acl/ folder\n * @packageDocumentation\n */\n\nimport {\n ACLbyCombination,\n ACLToString,\n ACLunion,\n adoptACLDefault,\n comboToString,\n fixIndividualACL,\n fixIndividualCardACL,\n getACL,\n getACLorDefault,\n loadUnionACL,\n makeACLGraph,\n makeACLGraphbyCombo,\n makeACLString,\n putACLbyCombo,\n putACLObject,\n readACL,\n sameACL,\n setACL\n} from './acl'\nimport {\n ACLControlBox5,\n preventBrowserDropEvents,\n shortNameForFolder\n} from './acl-control'\n\nexport const acl = {\n adoptACLDefault,\n readACL,\n sameACL,\n ACLunion,\n loadUnionACL,\n ACLbyCombination,\n makeACLGraph,\n makeACLGraphbyCombo,\n ACLToString,\n comboToString,\n makeACLString,\n putACLObject,\n putACLbyCombo,\n fixIndividualCardACL,\n fixIndividualACL,\n setACL,\n getACLorDefault,\n getACL\n}\n\nexport const aclControl = {\n preventBrowserDropEvents,\n shortNameForFolder,\n ACLControlBox5\n}\n"],"mappings":";;;;;;AAKA;AAoBA;AAzBA;AACA;AACA;AACA;;AA4BO,IAAMA,GAAG,GAAG;EACjBC,eAAe,EAAfA,oBAAe;EACfC,OAAO,EAAPA,YAAO;EACPC,OAAO,EAAPA,YAAO;EACPC,QAAQ,EAARA,aAAQ;EACRC,YAAY,EAAZA,iBAAY;EACZC,gBAAgB,EAAhBA,qBAAgB;EAChBC,YAAY,EAAZA,iBAAY;EACZC,mBAAmB,EAAnBA,wBAAmB;EACnBC,WAAW,EAAXA,gBAAW;EACXC,aAAa,EAAbA,kBAAa;EACbC,aAAa,EAAbA,kBAAa;EACbC,YAAY,EAAZA,iBAAY;EACZC,aAAa,EAAbA,kBAAa;EACbC,oBAAoB,EAApBA,yBAAoB;EACpBC,gBAAgB,EAAhBA,qBAAgB;EAChBC,MAAM,EAANA,WAAM;EACNC,eAAe,EAAfA,oBAAe;EACfC,MAAM,EAANA;AACF,CAAC;AAAA;AAEM,IAAMC,UAAU,GAAG;EACxBC,wBAAwB,EAAxBA,oCAAwB;EACxBC,kBAAkB,EAAlBA,8BAAkB;EAClBC,cAAc,EAAdA;AACF,CAAC;AAAA"}
|
package/lib/acl/styles.js
CHANGED
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.styles = void 0;
|
|
7
|
-
|
|
8
7
|
/**
|
|
9
8
|
* Contains CSS styles for the Sharing pane,
|
|
10
9
|
* see https://github.com/solidos/userguide/blob/main/views/sharing/userguide.md
|
|
@@ -80,8 +79,8 @@ var styles = {
|
|
|
80
79
|
},
|
|
81
80
|
trustedAppCancelButton: {
|
|
82
81
|
"float": 'right' // @@ a little hack - https://stackoverflow.com/questions/52781251/using-typescript-jss-with-react-throws-type-is-unassignable-for-some-css-prop
|
|
83
|
-
|
|
84
82
|
},
|
|
83
|
+
|
|
85
84
|
trustedAppControllerI: {
|
|
86
85
|
borderColor: 'orange',
|
|
87
86
|
borderRadius: '1em',
|
package/lib/acl/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","names":["styles","aclControlBoxContainer","margin","aclControlBoxHeader","fontSize","aclControlBoxStatus","display","aclControlBoxStatusRevealed","aclGroupContent","maxWidth","accessGroupList","gridTemplateColumns","width","accessGroupListItem","defaultsController","defaultsControllerNotice","color","flexGrow","bigButton","backgroundColor","border","borderRadius","paddingBottom","paddingTop","group","trustedAppAddApplicationsTable","trustedAppCancelButton","trustedAppControllerI","borderColor","borderWidth","temporaryStatusInit","background","temporaryStatusEnd","transition"],"sources":["../../src/acl/styles.ts"],"sourcesContent":["/**\n * Contains CSS styles for the Sharing pane,\n * see https://github.com/solidos/userguide/blob/main/views/sharing/userguide.md\n * @packageDocumentation\n */\nexport const styles = {\n aclControlBoxContainer: {\n margin: '1em'\n },\n aclControlBoxHeader: {\n fontSize: '120%',\n margin: '0 0 1rem'\n },\n aclControlBoxStatus: {\n display: 'none',\n margin: '1rem 0'\n },\n aclControlBoxStatusRevealed: {\n display: 'block'\n },\n aclGroupContent: {\n maxWidth: 650\n },\n accessGroupList: {\n display: 'grid',\n gridTemplateColumns: '1fr',\n margin: '1em',\n width: '100%'\n },\n accessGroupListItem: {\n display: 'grid',\n gridTemplateColumns: '100px auto 30%'\n },\n defaultsController: {\n display: 'flex'\n },\n defaultsControllerNotice: {\n color: '#888',\n flexGrow: 1,\n fontSize: '80%'\n },\n bigButton: {\n backgroundColor: 'white',\n border: '0.1em solid #888',\n borderRadius: '0.3em',\n maxWidth: '50%',\n paddingBottom: '1em',\n paddingTop: '1em'\n },\n group: {\n color: '#888'\n },\n 'group-1': {\n color: 'green'\n },\n 'group-2': {\n color: '#cc0'\n },\n 'group-3': {\n color: 'orange'\n },\n 'group-5': {\n color: 'red'\n },\n 'group-9': {\n color: 'blue'\n },\n 'group-13': {\n color: 'purple'\n },\n trustedAppAddApplicationsTable: {\n backgroundColor: '#eee'\n },\n trustedAppCancelButton: {\n float: 'right' as 'right' // @@ a little hack - https://stackoverflow.com/questions/52781251/using-typescript-jss-with-react-throws-type-is-unassignable-for-some-css-prop\n },\n trustedAppControllerI: {\n borderColor: 'orange',\n borderRadius: '1em',\n borderWidth: '0.1em'\n },\n temporaryStatusInit: {\n background: 'green'\n },\n temporaryStatusEnd: {\n background: 'transparent',\n transition: 'background 5s linear'\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"styles.js","names":["styles","aclControlBoxContainer","margin","aclControlBoxHeader","fontSize","aclControlBoxStatus","display","aclControlBoxStatusRevealed","aclGroupContent","maxWidth","accessGroupList","gridTemplateColumns","width","accessGroupListItem","defaultsController","defaultsControllerNotice","color","flexGrow","bigButton","backgroundColor","border","borderRadius","paddingBottom","paddingTop","group","trustedAppAddApplicationsTable","trustedAppCancelButton","trustedAppControllerI","borderColor","borderWidth","temporaryStatusInit","background","temporaryStatusEnd","transition"],"sources":["../../src/acl/styles.ts"],"sourcesContent":["/**\n * Contains CSS styles for the Sharing pane,\n * see https://github.com/solidos/userguide/blob/main/views/sharing/userguide.md\n * @packageDocumentation\n */\nexport const styles = {\n aclControlBoxContainer: {\n margin: '1em'\n },\n aclControlBoxHeader: {\n fontSize: '120%',\n margin: '0 0 1rem'\n },\n aclControlBoxStatus: {\n display: 'none',\n margin: '1rem 0'\n },\n aclControlBoxStatusRevealed: {\n display: 'block'\n },\n aclGroupContent: {\n maxWidth: 650\n },\n accessGroupList: {\n display: 'grid',\n gridTemplateColumns: '1fr',\n margin: '1em',\n width: '100%'\n },\n accessGroupListItem: {\n display: 'grid',\n gridTemplateColumns: '100px auto 30%'\n },\n defaultsController: {\n display: 'flex'\n },\n defaultsControllerNotice: {\n color: '#888',\n flexGrow: 1,\n fontSize: '80%'\n },\n bigButton: {\n backgroundColor: 'white',\n border: '0.1em solid #888',\n borderRadius: '0.3em',\n maxWidth: '50%',\n paddingBottom: '1em',\n paddingTop: '1em'\n },\n group: {\n color: '#888'\n },\n 'group-1': {\n color: 'green'\n },\n 'group-2': {\n color: '#cc0'\n },\n 'group-3': {\n color: 'orange'\n },\n 'group-5': {\n color: 'red'\n },\n 'group-9': {\n color: 'blue'\n },\n 'group-13': {\n color: 'purple'\n },\n trustedAppAddApplicationsTable: {\n backgroundColor: '#eee'\n },\n trustedAppCancelButton: {\n float: 'right' as 'right' // @@ a little hack - https://stackoverflow.com/questions/52781251/using-typescript-jss-with-react-throws-type-is-unassignable-for-some-css-prop\n },\n trustedAppControllerI: {\n borderColor: 'orange',\n borderRadius: '1em',\n borderWidth: '0.1em'\n },\n temporaryStatusInit: {\n background: 'green'\n },\n temporaryStatusEnd: {\n background: 'transparent',\n transition: 'background 5s linear'\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACO,IAAMA,MAAM,GAAG;EACpBC,sBAAsB,EAAE;IACtBC,MAAM,EAAE;EACV,CAAC;EACDC,mBAAmB,EAAE;IACnBC,QAAQ,EAAE,MAAM;IAChBF,MAAM,EAAE;EACV,CAAC;EACDG,mBAAmB,EAAE;IACnBC,OAAO,EAAE,MAAM;IACfJ,MAAM,EAAE;EACV,CAAC;EACDK,2BAA2B,EAAE;IAC3BD,OAAO,EAAE;EACX,CAAC;EACDE,eAAe,EAAE;IACfC,QAAQ,EAAE;EACZ,CAAC;EACDC,eAAe,EAAE;IACfJ,OAAO,EAAE,MAAM;IACfK,mBAAmB,EAAE,KAAK;IAC1BT,MAAM,EAAE,KAAK;IACbU,KAAK,EAAE;EACT,CAAC;EACDC,mBAAmB,EAAE;IACnBP,OAAO,EAAE,MAAM;IACfK,mBAAmB,EAAE;EACvB,CAAC;EACDG,kBAAkB,EAAE;IAClBR,OAAO,EAAE;EACX,CAAC;EACDS,wBAAwB,EAAE;IACxBC,KAAK,EAAE,MAAM;IACbC,QAAQ,EAAE,CAAC;IACXb,QAAQ,EAAE;EACZ,CAAC;EACDc,SAAS,EAAE;IACTC,eAAe,EAAE,OAAO;IACxBC,MAAM,EAAE,kBAAkB;IAC1BC,YAAY,EAAE,OAAO;IACrBZ,QAAQ,EAAE,KAAK;IACfa,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd,CAAC;EACDC,KAAK,EAAE;IACLR,KAAK,EAAE;EACT,CAAC;EACD,SAAS,EAAE;IACTA,KAAK,EAAE;EACT,CAAC;EACD,SAAS,EAAE;IACTA,KAAK,EAAE;EACT,CAAC;EACD,SAAS,EAAE;IACTA,KAAK,EAAE;EACT,CAAC;EACD,SAAS,EAAE;IACTA,KAAK,EAAE;EACT,CAAC;EACD,SAAS,EAAE;IACTA,KAAK,EAAE;EACT,CAAC;EACD,UAAU,EAAE;IACVA,KAAK,EAAE;EACT,CAAC;EACDS,8BAA8B,EAAE;IAC9BN,eAAe,EAAE;EACnB,CAAC;EACDO,sBAAsB,EAAE;IACtB,SAAO,OAAkB,CAAC;EAC5B,CAAC;;EACDC,qBAAqB,EAAE;IACrBC,WAAW,EAAE,QAAQ;IACrBP,YAAY,EAAE,KAAK;IACnBQ,WAAW,EAAE;EACf,CAAC;EACDC,mBAAmB,EAAE;IACnBC,UAAU,EAAE;EACd,CAAC;EACDC,kBAAkB,EAAE;IAClBD,UAAU,EAAE,aAAa;IACzBE,UAAU,EAAE;EACd;AACF,CAAC;AAAA"}
|
package/lib/chat/bookmarks.js
CHANGED
|
@@ -1,53 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.findBookmarkDocument = findBookmarkDocument;
|
|
11
9
|
exports.renderBookmarksButton = renderBookmarksButton;
|
|
12
10
|
exports.toggleBookmark = toggleBookmark;
|
|
13
|
-
|
|
14
11
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
|
-
|
|
16
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
|
-
|
|
18
13
|
var debug = _interopRequireWildcard(require("../debug"));
|
|
19
|
-
|
|
20
14
|
var _iconBase = require("../iconBase");
|
|
21
|
-
|
|
22
15
|
var _index = require("../media/index");
|
|
23
|
-
|
|
24
16
|
var ns = _interopRequireWildcard(require("../ns"));
|
|
25
|
-
|
|
26
17
|
var pad = _interopRequireWildcard(require("../pad"));
|
|
27
|
-
|
|
28
18
|
var rdf = _interopRequireWildcard(require("rdflib"));
|
|
29
|
-
|
|
30
19
|
var style = _interopRequireWildcard(require("../style"));
|
|
31
|
-
|
|
32
20
|
var utils = _interopRequireWildcard(require("../utils"));
|
|
33
|
-
|
|
34
21
|
var widgets = _interopRequireWildcard(require("../widgets"));
|
|
35
|
-
|
|
36
22
|
var _solidLogic = require("solid-logic");
|
|
37
|
-
|
|
38
23
|
var _login = require("../login/login");
|
|
39
|
-
|
|
40
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
|
-
|
|
42
25
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
43
|
-
|
|
44
26
|
/**
|
|
45
27
|
* Functions related to chat and bookmarks
|
|
46
28
|
* @packageDocumentation
|
|
47
29
|
*/
|
|
48
30
|
|
|
49
31
|
/* global alert confirm */
|
|
32
|
+
|
|
50
33
|
// pull in first avoid cross-refs
|
|
34
|
+
|
|
51
35
|
var UI = {
|
|
52
36
|
icons: _iconBase.icons,
|
|
53
37
|
ns: ns,
|
|
@@ -63,29 +47,27 @@ var BOOK = $rdf.Namespace('http://www.w3.org/2002/01/bookmark#');
|
|
|
63
47
|
var BOOKMARK_ICON = 'noun_45961.svg';
|
|
64
48
|
var label = utils.label;
|
|
65
49
|
var dom = window.document || null;
|
|
50
|
+
|
|
66
51
|
/** Create a resource if it really does not exist
|
|
67
52
|
* Be absolutely sure something does not exist before creating a new empty file
|
|
68
53
|
* as otherwise existing could be deleted.
|
|
69
54
|
* @param doc {NamedNode} - The resource
|
|
70
55
|
*/
|
|
71
|
-
|
|
72
56
|
function createIfNotExists(doc) {
|
|
73
57
|
return new Promise(function (resolve, reject) {
|
|
74
58
|
_solidLogic.store.fetcher.load(doc).then(function (response) {
|
|
75
|
-
debug.log('createIfNotExists doc exists, all good ' + doc);
|
|
76
|
-
|
|
59
|
+
debug.log('createIfNotExists doc exists, all good ' + doc);
|
|
60
|
+
// store.fetcher.webOperation('HEAD', doc.uri).then(response => {
|
|
77
61
|
resolve(response);
|
|
78
62
|
}, function (err) {
|
|
79
63
|
if (err.response.status === 404) {
|
|
80
64
|
debug.log('createIfNotExists doc does NOT exist, will create... ' + doc);
|
|
81
|
-
|
|
82
65
|
_solidLogic.store.fetcher.webOperation('PUT', doc.uri, {
|
|
83
66
|
data: '',
|
|
84
67
|
contentType: 'text/turtle'
|
|
85
68
|
}).then(function (response) {
|
|
86
69
|
// fetcher.requested[doc.uri] = 'done' // do not need to read ?? but no headers
|
|
87
70
|
delete _solidLogic.store.fetcher.requested[doc.uri]; // delete cached 404 error
|
|
88
|
-
|
|
89
71
|
debug.log('createIfNotExists doc created ok ' + doc);
|
|
90
72
|
resolve(response);
|
|
91
73
|
}, function (err) {
|
|
@@ -98,9 +80,9 @@ function createIfNotExists(doc) {
|
|
|
98
80
|
}
|
|
99
81
|
});
|
|
100
82
|
});
|
|
101
|
-
}
|
|
102
|
-
|
|
83
|
+
}
|
|
103
84
|
|
|
85
|
+
// @@@@ use the one in rdflib.js when it is avaiable and delete this
|
|
104
86
|
function updatePromise(del, ins) {
|
|
105
87
|
return new Promise(function (resolve, reject) {
|
|
106
88
|
_solidLogic.store.updater.update(del, ins, function (uri, ok, errorBody) {
|
|
@@ -110,23 +92,18 @@ function updatePromise(del, ins) {
|
|
|
110
92
|
resolve();
|
|
111
93
|
}
|
|
112
94
|
}); // callback
|
|
113
|
-
|
|
114
95
|
}); // promise
|
|
115
96
|
}
|
|
97
|
+
|
|
116
98
|
/* Bookmarking
|
|
117
99
|
*/
|
|
118
|
-
|
|
119
100
|
/** Find a user's bookmarks
|
|
120
101
|
*/
|
|
121
|
-
|
|
122
|
-
|
|
123
102
|
function findBookmarkDocument(_x) {
|
|
124
103
|
return _findBookmarkDocument.apply(this, arguments);
|
|
125
104
|
}
|
|
126
105
|
/** Add a bookmark
|
|
127
106
|
*/
|
|
128
|
-
|
|
129
|
-
|
|
130
107
|
function _findBookmarkDocument() {
|
|
131
108
|
_findBookmarkDocument = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(userContext) {
|
|
132
109
|
var theClass, fileTail, isPublic, newBookmarkFile;
|
|
@@ -139,60 +116,47 @@ function _findBookmarkDocument() {
|
|
|
139
116
|
isPublic = true;
|
|
140
117
|
_context.next = 5;
|
|
141
118
|
return (0, _login.findAppInstances)(userContext, theClass, isPublic);
|
|
142
|
-
|
|
143
119
|
case 5:
|
|
144
120
|
if (!(userContext.instances && userContext.instances.length > 0)) {
|
|
145
121
|
_context.next = 10;
|
|
146
122
|
break;
|
|
147
123
|
}
|
|
148
|
-
|
|
149
124
|
userContext.bookmarkDocument = userContext.instances[0];
|
|
150
|
-
|
|
151
125
|
if (userContext.instances.length > 1) {
|
|
152
126
|
alert('More than one bookmark file! ' + userContext.instances);
|
|
153
127
|
}
|
|
154
|
-
|
|
155
128
|
_context.next = 28;
|
|
156
129
|
break;
|
|
157
|
-
|
|
158
130
|
case 10:
|
|
159
131
|
if (!userContext.publicProfile) {
|
|
160
132
|
_context.next = 27;
|
|
161
133
|
break;
|
|
162
134
|
}
|
|
163
|
-
|
|
164
135
|
// publicProfile or preferencesFile
|
|
165
136
|
newBookmarkFile = $rdf.sym(userContext.publicProfile.dir().uri + fileTail);
|
|
166
137
|
_context.prev = 12;
|
|
167
138
|
debug.log('Creating new bookmark file ' + newBookmarkFile);
|
|
168
139
|
_context.next = 16;
|
|
169
140
|
return createIfNotExists(newBookmarkFile);
|
|
170
|
-
|
|
171
141
|
case 16:
|
|
172
142
|
_context.next = 22;
|
|
173
143
|
break;
|
|
174
|
-
|
|
175
144
|
case 18:
|
|
176
145
|
_context.prev = 18;
|
|
177
146
|
_context.t0 = _context["catch"](12);
|
|
178
147
|
alert.error("Can't make fresh bookmark file:" + _context.t0);
|
|
179
148
|
return _context.abrupt("return", userContext);
|
|
180
|
-
|
|
181
149
|
case 22:
|
|
182
150
|
_context.next = 24;
|
|
183
151
|
return (0, _solidLogic.registerInTypeIndex)(newBookmarkFile, userContext.index, theClass);
|
|
184
|
-
|
|
185
152
|
case 24:
|
|
186
153
|
userContext.bookmarkDocument = newBookmarkFile;
|
|
187
154
|
_context.next = 28;
|
|
188
155
|
break;
|
|
189
|
-
|
|
190
156
|
case 27:
|
|
191
157
|
alert('You seem to have no bookmark file and not even a profile file.');
|
|
192
|
-
|
|
193
158
|
case 28:
|
|
194
159
|
return _context.abrupt("return", userContext);
|
|
195
|
-
|
|
196
160
|
case 29:
|
|
197
161
|
case "end":
|
|
198
162
|
return _context.stop();
|
|
@@ -202,11 +166,9 @@ function _findBookmarkDocument() {
|
|
|
202
166
|
}));
|
|
203
167
|
return _findBookmarkDocument.apply(this, arguments);
|
|
204
168
|
}
|
|
205
|
-
|
|
206
169
|
function addBookmark(_x2, _x3) {
|
|
207
170
|
return _addBookmark.apply(this, arguments);
|
|
208
171
|
}
|
|
209
|
-
|
|
210
172
|
function _addBookmark() {
|
|
211
173
|
_addBookmark = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(context, target) {
|
|
212
174
|
var title, me, author, bookmarkDoc, bookmark, ins, msg;
|
|
@@ -228,39 +190,31 @@ function _addBookmark() {
|
|
|
228
190
|
*/
|
|
229
191
|
title = '';
|
|
230
192
|
me = _solidLogic.authn.currentUser(); // If already logged on
|
|
231
|
-
|
|
232
193
|
if (me) {
|
|
233
194
|
_context2.next = 4;
|
|
234
195
|
break;
|
|
235
196
|
}
|
|
236
|
-
|
|
237
197
|
throw new Error('Must be logged on to add Bookmark');
|
|
238
|
-
|
|
239
198
|
case 4:
|
|
240
199
|
author = _solidLogic.store.any(target, ns.foaf('maker'));
|
|
241
200
|
title = label(author) + ': ' + _solidLogic.store.anyValue(target, ns.sioc('content')).slice(0, 80); // @@ add chat title too?
|
|
242
|
-
|
|
243
201
|
bookmarkDoc = context.bookmarkDocument;
|
|
244
202
|
bookmark = UI.widgets.newThing(bookmarkDoc, title);
|
|
245
203
|
ins = [$rdf.st(bookmarkDoc, UI.ns.dct('references'), bookmark, bookmarkDoc), $rdf.st(bookmark, UI.ns.rdf('type'), BOOK('Bookmark'), bookmarkDoc), $rdf.st(bookmark, UI.ns.dct('created'), new Date(), bookmarkDoc), $rdf.st(bookmark, BOOK('recalls'), target, bookmarkDoc), $rdf.st(bookmark, UI.ns.foaf('maker'), me, bookmarkDoc), $rdf.st(bookmark, UI.ns.dct('title'), title, bookmarkDoc)];
|
|
246
204
|
_context2.prev = 9;
|
|
247
205
|
_context2.next = 12;
|
|
248
206
|
return updatePromise([], ins);
|
|
249
|
-
|
|
250
207
|
case 12:
|
|
251
208
|
_context2.next = 19;
|
|
252
209
|
break;
|
|
253
|
-
|
|
254
210
|
case 14:
|
|
255
211
|
_context2.prev = 14;
|
|
256
212
|
_context2.t0 = _context2["catch"](9);
|
|
257
213
|
msg = 'Making bookmark: ' + _context2.t0;
|
|
258
214
|
alert.error(msg);
|
|
259
215
|
return _context2.abrupt("return", null);
|
|
260
|
-
|
|
261
216
|
case 19:
|
|
262
217
|
return _context2.abrupt("return", bookmark);
|
|
263
|
-
|
|
264
218
|
case 20:
|
|
265
219
|
case "end":
|
|
266
220
|
return _context2.stop();
|
|
@@ -270,11 +224,9 @@ function _addBookmark() {
|
|
|
270
224
|
}));
|
|
271
225
|
return _addBookmark.apply(this, arguments);
|
|
272
226
|
}
|
|
273
|
-
|
|
274
227
|
function toggleBookmark(_x4, _x5, _x6) {
|
|
275
228
|
return _toggleBookmark.apply(this, arguments);
|
|
276
229
|
}
|
|
277
|
-
|
|
278
230
|
function _toggleBookmark() {
|
|
279
231
|
_toggleBookmark = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(userContext, target, bookmarkButton) {
|
|
280
232
|
var bookmarks, i, bookmark;
|
|
@@ -284,65 +236,51 @@ function _toggleBookmark() {
|
|
|
284
236
|
case 0:
|
|
285
237
|
_context3.next = 2;
|
|
286
238
|
return _solidLogic.store.fetcher.load(userContext.bookmarkDocument);
|
|
287
|
-
|
|
288
239
|
case 2:
|
|
289
240
|
bookmarks = _solidLogic.store.each(null, BOOK('recalls'), target, userContext.bookmarkDocument);
|
|
290
|
-
|
|
291
241
|
if (!bookmarks.length) {
|
|
292
242
|
_context3.next = 24;
|
|
293
243
|
break;
|
|
294
244
|
}
|
|
295
|
-
|
|
296
245
|
if (confirm('Delete bookmark on this?' + bookmarks.length)) {
|
|
297
246
|
_context3.next = 6;
|
|
298
247
|
break;
|
|
299
248
|
}
|
|
300
|
-
|
|
301
249
|
return _context3.abrupt("return");
|
|
302
|
-
|
|
303
250
|
case 6:
|
|
304
251
|
i = 0;
|
|
305
|
-
|
|
306
252
|
case 7:
|
|
307
253
|
if (!(i < bookmarks.length)) {
|
|
308
254
|
_context3.next = 22;
|
|
309
255
|
break;
|
|
310
256
|
}
|
|
311
|
-
|
|
312
257
|
_context3.prev = 8;
|
|
313
258
|
_context3.next = 11;
|
|
314
259
|
return updatePromise(_solidLogic.store.connectedStatements(bookmarks[i]), []);
|
|
315
|
-
|
|
316
260
|
case 11:
|
|
317
261
|
bookmarkButton.style.backgroundColor = 'white';
|
|
318
262
|
debug.log('Bookmark deleted: ' + bookmarks[i]);
|
|
319
263
|
_context3.next = 19;
|
|
320
264
|
break;
|
|
321
|
-
|
|
322
265
|
case 15:
|
|
323
266
|
_context3.prev = 15;
|
|
324
267
|
_context3.t0 = _context3["catch"](8);
|
|
325
268
|
debug.error('Cant delete bookmark:' + _context3.t0);
|
|
326
269
|
alert('Cant delete bookmark:' + _context3.t0);
|
|
327
|
-
|
|
328
270
|
case 19:
|
|
329
271
|
i++;
|
|
330
272
|
_context3.next = 7;
|
|
331
273
|
break;
|
|
332
|
-
|
|
333
274
|
case 22:
|
|
334
275
|
_context3.next = 29;
|
|
335
276
|
break;
|
|
336
|
-
|
|
337
277
|
case 24:
|
|
338
278
|
_context3.next = 26;
|
|
339
279
|
return addBookmark(userContext, target);
|
|
340
|
-
|
|
341
280
|
case 26:
|
|
342
281
|
bookmark = _context3.sent;
|
|
343
282
|
bookmarkButton.style.backgroundColor = 'yellow';
|
|
344
283
|
debug.log('Bookmark added: ' + bookmark);
|
|
345
|
-
|
|
346
284
|
case 29:
|
|
347
285
|
case "end":
|
|
348
286
|
return _context3.stop();
|
|
@@ -352,15 +290,12 @@ function _toggleBookmark() {
|
|
|
352
290
|
}));
|
|
353
291
|
return _toggleBookmark.apply(this, arguments);
|
|
354
292
|
}
|
|
355
|
-
|
|
356
293
|
function renderBookmarksButton(_x7, _x8) {
|
|
357
294
|
return _renderBookmarksButton.apply(this, arguments);
|
|
358
295
|
}
|
|
359
|
-
|
|
360
296
|
function _renderBookmarksButton() {
|
|
361
297
|
_renderBookmarksButton = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(userContext, target) {
|
|
362
298
|
var setBookmarkButtonColor, _setBookmarkButtonColor, bookmarkButton;
|
|
363
|
-
|
|
364
299
|
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
365
300
|
while (1) {
|
|
366
301
|
switch (_context5.prev = _context5.next) {
|
|
@@ -374,12 +309,10 @@ function _renderBookmarksButton() {
|
|
|
374
309
|
case 0:
|
|
375
310
|
_context4.next = 2;
|
|
376
311
|
return _solidLogic.store.fetcher.load(userContext.bookmarkDocument);
|
|
377
|
-
|
|
378
312
|
case 2:
|
|
379
313
|
bookmarked = _solidLogic.store.any(null, BOOK('recalls'), bookmarkButton.target, userContext.bookmarkDocument);
|
|
380
314
|
bookmarkButton.style = UI.style.buttonStyle;
|
|
381
315
|
if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow';
|
|
382
|
-
|
|
383
316
|
case 5:
|
|
384
317
|
case "end":
|
|
385
318
|
return _context4.stop();
|
|
@@ -389,26 +322,21 @@ function _renderBookmarksButton() {
|
|
|
389
322
|
}));
|
|
390
323
|
return _setBookmarkButtonColor.apply(this, arguments);
|
|
391
324
|
};
|
|
392
|
-
|
|
393
325
|
setBookmarkButtonColor = function _setBookmarkButtonCol(_x9) {
|
|
394
326
|
return _setBookmarkButtonColor.apply(this, arguments);
|
|
395
327
|
};
|
|
396
|
-
|
|
397
328
|
if (!userContext.bookmarkDocument) {
|
|
398
329
|
_context5.next = 8;
|
|
399
330
|
break;
|
|
400
331
|
}
|
|
401
|
-
|
|
402
332
|
bookmarkButton = UI.widgets.button(dom, UI.icons.iconBase + BOOKMARK_ICON, label(BOOK('Bookmark')), function () {
|
|
403
333
|
toggleBookmark(userContext, target, bookmarkButton);
|
|
404
334
|
});
|
|
405
335
|
bookmarkButton.target = target;
|
|
406
336
|
_context5.next = 7;
|
|
407
337
|
return setBookmarkButtonColor(bookmarkButton);
|
|
408
|
-
|
|
409
338
|
case 7:
|
|
410
339
|
return _context5.abrupt("return", bookmarkButton);
|
|
411
|
-
|
|
412
340
|
case 8:
|
|
413
341
|
case "end":
|
|
414
342
|
return _context5.stop();
|