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.
Files changed (136) hide show
  1. package/dist/main.js +2159 -5039
  2. package/dist/main.js.map +1 -1
  3. package/lib/acl/access-controller.js +4 -67
  4. package/lib/acl/access-controller.js.map +1 -1
  5. package/lib/acl/access-groups.js +59 -137
  6. package/lib/acl/access-groups.js.map +1 -1
  7. package/lib/acl/acl-control.js +14 -54
  8. package/lib/acl/acl-control.js.map +1 -1
  9. package/lib/acl/acl.js +32 -107
  10. package/lib/acl/acl.js.map +1 -1
  11. package/lib/acl/add-agent-buttons.js +0 -92
  12. package/lib/acl/add-agent-buttons.js.map +1 -1
  13. package/lib/acl/index.js +1 -3
  14. package/lib/acl/index.js.map +1 -1
  15. package/lib/acl/styles.js +1 -2
  16. package/lib/acl/styles.js.map +1 -1
  17. package/lib/chat/bookmarks.js +8 -80
  18. package/lib/chat/bookmarks.js.map +1 -1
  19. package/lib/chat/chatLogic.js +109 -180
  20. package/lib/chat/chatLogic.js.map +1 -1
  21. package/lib/chat/dateFolder.js +6 -91
  22. package/lib/chat/dateFolder.js.map +1 -1
  23. package/lib/chat/infinite.js +33 -185
  24. package/lib/chat/infinite.js.map +1 -1
  25. package/lib/chat/message.js +37 -150
  26. package/lib/chat/message.js.map +1 -1
  27. package/lib/chat/messageTools.js +23 -96
  28. package/lib/chat/messageTools.js.map +1 -1
  29. package/lib/chat/thread.js +33 -91
  30. package/lib/chat/thread.js.map +1 -1
  31. package/lib/create/create.js +19 -51
  32. package/lib/create/create.js.map +1 -1
  33. package/lib/create/index.js +0 -2
  34. package/lib/create/index.js.map +1 -1
  35. package/lib/debug.js +0 -8
  36. package/lib/debug.js.map +1 -1
  37. package/lib/folders.js +4 -27
  38. package/lib/folders.js.map +1 -1
  39. package/lib/footer/index.js +2 -24
  40. package/lib/footer/index.js.map +1 -1
  41. package/lib/footer/styleMap.js.map +1 -1
  42. package/lib/header/empty-profile.js.map +1 -1
  43. package/lib/header/index.js +3 -72
  44. package/lib/header/index.js.map +1 -1
  45. package/lib/header/styleMap.js +4 -3
  46. package/lib/header/styleMap.js.map +1 -1
  47. package/lib/iconBase.js +3 -4
  48. package/lib/iconBase.js.map +1 -1
  49. package/lib/index.js +5 -46
  50. package/lib/index.js.map +1 -1
  51. package/lib/jss/index.js +3 -9
  52. package/lib/jss/index.js.map +1 -1
  53. package/lib/log.js +15 -51
  54. package/lib/log.js.map +1 -1
  55. package/lib/login/login.js +74 -303
  56. package/lib/login/login.js.map +1 -1
  57. package/lib/matrix/index.js +0 -2
  58. package/lib/matrix/index.js.map +1 -1
  59. package/lib/matrix/matrix.js +7 -55
  60. package/lib/matrix/matrix.js.map +1 -1
  61. package/lib/media/index.js +0 -2
  62. package/lib/media/index.js.map +1 -1
  63. package/lib/media/media-capture.js +13 -33
  64. package/lib/media/media-capture.js.map +1 -1
  65. package/lib/messageArea.js +23 -64
  66. package/lib/messageArea.js.map +1 -1
  67. package/lib/noun_Camera_1618446_000000.js.map +1 -1
  68. package/lib/ns.js +5 -7
  69. package/lib/ns.js.map +1 -1
  70. package/lib/pad.js +48 -234
  71. package/lib/pad.js.map +1 -1
  72. package/lib/participation.js +10 -65
  73. package/lib/participation.js.map +1 -1
  74. package/lib/preferences.js +21 -42
  75. package/lib/preferences.js.map +1 -1
  76. package/lib/signup/config-default.js +1 -8
  77. package/lib/signup/config-default.js.map +1 -1
  78. package/lib/signup/signup.js +6 -13
  79. package/lib/signup/signup.js.map +1 -1
  80. package/lib/stories/decorators.js +0 -2
  81. package/lib/stories/decorators.js.map +1 -1
  82. package/lib/style.js +8 -5
  83. package/lib/style.js.map +1 -1
  84. package/lib/style_multiSelect.js +1 -5
  85. package/lib/style_multiSelect.js.map +1 -1
  86. package/lib/table.js +309 -322
  87. package/lib/table.js.map +1 -1
  88. package/lib/tabs.js +20 -100
  89. package/lib/tabs.js.map +1 -1
  90. package/lib/utils/headerFooterHelpers.js +4 -52
  91. package/lib/utils/headerFooterHelpers.js.map +1 -1
  92. package/lib/utils/index.js +41 -135
  93. package/lib/utils/index.js.map +1 -1
  94. package/lib/utils/label.js +13 -34
  95. package/lib/utils/label.js.map +1 -1
  96. package/lib/versionInfo.js +4 -4
  97. package/lib/versionInfo.js.map +1 -1
  98. package/lib/widgets/buttons/iconLinks.js +0 -8
  99. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  100. package/lib/widgets/buttons.js +115 -291
  101. package/lib/widgets/buttons.js.map +1 -1
  102. package/lib/widgets/dragAndDrop.js +12 -41
  103. package/lib/widgets/dragAndDrop.js.map +1 -1
  104. package/lib/widgets/error.js +3 -9
  105. package/lib/widgets/error.js.map +1 -1
  106. package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -71
  107. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  108. package/lib/widgets/forms/autocomplete/autocompleteField.js +13 -65
  109. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  110. package/lib/widgets/forms/autocomplete/autocompletePicker.js +15 -107
  111. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  112. package/lib/widgets/forms/autocomplete/language.js +6 -55
  113. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  114. package/lib/widgets/forms/autocomplete/publicData.js +12 -131
  115. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  116. package/lib/widgets/forms/basic.js +12 -55
  117. package/lib/widgets/forms/basic.js.map +1 -1
  118. package/lib/widgets/forms/comment.js +1 -15
  119. package/lib/widgets/forms/comment.js.map +1 -1
  120. package/lib/widgets/forms/fieldFunction.js +3 -16
  121. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  122. package/lib/widgets/forms/fieldParams.js +0 -12
  123. package/lib/widgets/forms/fieldParams.js.map +1 -1
  124. package/lib/widgets/forms/formStyle.js +1 -14
  125. package/lib/widgets/forms/formStyle.js.map +1 -1
  126. package/lib/widgets/forms.js +70 -474
  127. package/lib/widgets/forms.js.map +1 -1
  128. package/lib/widgets/index.js +0 -21
  129. package/lib/widgets/index.js.map +1 -1
  130. package/lib/widgets/multiSelect.js +48 -171
  131. package/lib/widgets/multiSelect.js.map +1 -1
  132. package/lib/widgets/peoplePicker.js +20 -90
  133. package/lib/widgets/peoplePicker.js.map +1 -1
  134. package/lib/widgets/widgetHelpers.js +2 -9
  135. package/lib/widgets/widgetHelpers.js.map +1 -1
  136. 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,
@@ -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":";;;;;;;AAKA;;AAoBA;;AAzBA;AACA;AACA;AACA;AA4BO,IAAMA,GAAG,GAAG;EACjBC,eAAe,EAAfA,oBADiB;EAEjBC,OAAO,EAAPA,YAFiB;EAGjBC,OAAO,EAAPA,YAHiB;EAIjBC,QAAQ,EAARA,aAJiB;EAKjBC,YAAY,EAAZA,iBALiB;EAMjBC,gBAAgB,EAAhBA,qBANiB;EAOjBC,YAAY,EAAZA,iBAPiB;EAQjBC,mBAAmB,EAAnBA,wBARiB;EASjBC,WAAW,EAAXA,gBATiB;EAUjBC,aAAa,EAAbA,kBAViB;EAWjBC,aAAa,EAAbA,kBAXiB;EAYjBC,YAAY,EAAZA,iBAZiB;EAajBC,aAAa,EAAbA,kBAbiB;EAcjBC,oBAAoB,EAApBA,yBAdiB;EAejBC,gBAAgB,EAAhBA,qBAfiB;EAgBjBC,MAAM,EAANA,WAhBiB;EAiBjBC,eAAe,EAAfA,oBAjBiB;EAkBjBC,MAAM,EAANA;AAlBiB,CAAZ;;AAqBA,IAAMC,UAAU,GAAG;EACxBC,wBAAwB,EAAxBA,oCADwB;EAExBC,kBAAkB,EAAlBA,8BAFwB;EAGxBC,cAAc,EAAdA;AAHwB,CAAnB"}
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',
@@ -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":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACO,IAAMA,MAAM,GAAG;EACpBC,sBAAsB,EAAE;IACtBC,MAAM,EAAE;EADc,CADJ;EAIpBC,mBAAmB,EAAE;IACnBC,QAAQ,EAAE,MADS;IAEnBF,MAAM,EAAE;EAFW,CAJD;EAQpBG,mBAAmB,EAAE;IACnBC,OAAO,EAAE,MADU;IAEnBJ,MAAM,EAAE;EAFW,CARD;EAYpBK,2BAA2B,EAAE;IAC3BD,OAAO,EAAE;EADkB,CAZT;EAepBE,eAAe,EAAE;IACfC,QAAQ,EAAE;EADK,CAfG;EAkBpBC,eAAe,EAAE;IACfJ,OAAO,EAAE,MADM;IAEfK,mBAAmB,EAAE,KAFN;IAGfT,MAAM,EAAE,KAHO;IAIfU,KAAK,EAAE;EAJQ,CAlBG;EAwBpBC,mBAAmB,EAAE;IACnBP,OAAO,EAAE,MADU;IAEnBK,mBAAmB,EAAE;EAFF,CAxBD;EA4BpBG,kBAAkB,EAAE;IAClBR,OAAO,EAAE;EADS,CA5BA;EA+BpBS,wBAAwB,EAAE;IACxBC,KAAK,EAAE,MADiB;IAExBC,QAAQ,EAAE,CAFc;IAGxBb,QAAQ,EAAE;EAHc,CA/BN;EAoCpBc,SAAS,EAAE;IACTC,eAAe,EAAE,OADR;IAETC,MAAM,EAAE,kBAFC;IAGTC,YAAY,EAAE,OAHL;IAITZ,QAAQ,EAAE,KAJD;IAKTa,aAAa,EAAE,KALN;IAMTC,UAAU,EAAE;EANH,CApCS;EA4CpBC,KAAK,EAAE;IACLR,KAAK,EAAE;EADF,CA5Ca;EA+CpB,WAAW;IACTA,KAAK,EAAE;EADE,CA/CS;EAkDpB,WAAW;IACTA,KAAK,EAAE;EADE,CAlDS;EAqDpB,WAAW;IACTA,KAAK,EAAE;EADE,CArDS;EAwDpB,WAAW;IACTA,KAAK,EAAE;EADE,CAxDS;EA2DpB,WAAW;IACTA,KAAK,EAAE;EADE,CA3DS;EA8DpB,YAAY;IACVA,KAAK,EAAE;EADG,CA9DQ;EAiEpBS,8BAA8B,EAAE;IAC9BN,eAAe,EAAE;EADa,CAjEZ;EAoEpBO,sBAAsB,EAAE;IACtB,SAAO,OADe,CACI;;EADJ,CApEJ;EAuEpBC,qBAAqB,EAAE;IACrBC,WAAW,EAAE,QADQ;IAErBP,YAAY,EAAE,KAFO;IAGrBQ,WAAW,EAAE;EAHQ,CAvEH;EA4EpBC,mBAAmB,EAAE;IACnBC,UAAU,EAAE;EADO,CA5ED;EA+EpBC,kBAAkB,EAAE;IAClBD,UAAU,EAAE,aADM;IAElBE,UAAU,EAAE;EAFM;AA/EA,CAAf"}
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"}
@@ -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); // store.fetcher.webOperation('HEAD', doc.uri).then(response => {
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
- } // @@@@ use the one in rdflib.js when it is avaiable and delete this
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();