solid-ui 2.4.10-d886d8b3 → 2.4.11-c70657d9
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/lib/authn/authn.d.ts.map +1 -1
- package/lib/authn/authn.js +45 -10
- package/lib/authn/authn.js.map +1 -1
- package/lib/chat/infinite.js +1 -1
- package/lib/chat/infinite.js.map +1 -1
- package/lib/versionInfo.js +5 -5
- package/lib/versionInfo.js.map +1 -1
- package/lib/webpack-bundle.js +2204 -1783
- package/lib/webpack-bundle.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts.map +1 -1
- package/lib/widgets/peoplePicker.js +1 -0
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/package.json +31 -31
|
@@ -24,5 +24,5 @@ export declare function linkIcon(dom: HTMLDocument, subject: NamedNode, iconURI?
|
|
|
24
24
|
* @returns The HTML widget created
|
|
25
25
|
*
|
|
26
26
|
*/
|
|
27
|
-
export declare const createLinkForURI: (dom: HTMLDocument, linkDiv: HTMLDivElement, obj:
|
|
27
|
+
export declare const createLinkForURI: (dom: HTMLDocument, linkDiv: HTMLDivElement, obj: any) => void;
|
|
28
28
|
//# sourceMappingURL=iconLinks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iconLinks.d.ts","sourceRoot":"","sources":["../../../src/widgets/buttons/iconLinks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAGlC;;;;;;;;;;;GAWG;AAEH,wBAAgB,QAAQ,CAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAc9F;AACD;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,gBAAgB,QAAS,YAAY,WAAW,cAAc,
|
|
1
|
+
{"version":3,"file":"iconLinks.d.ts","sourceRoot":"","sources":["../../../src/widgets/buttons/iconLinks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAGlC;;;;;;;;;;;GAWG;AAEH,wBAAgB,QAAQ,CAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAc9F;AACD;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,gBAAgB,QAAS,YAAY,WAAW,cAAc,mBAK1E,CAAA"}
|
|
@@ -44,6 +44,7 @@ var kb = _logic.solidLogicSingleton.store;
|
|
|
44
44
|
var PeoplePicker = /*#__PURE__*/function () {
|
|
45
45
|
function PeoplePicker(element, typeIndex, groupPickedCb, options) {
|
|
46
46
|
(0, _classCallCheck2["default"])(this, PeoplePicker);
|
|
47
|
+
// @@ can't expect typeindex to be passed
|
|
47
48
|
this.options = options || {};
|
|
48
49
|
this.element = element;
|
|
49
50
|
this.typeIndex = typeIndex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/widgets/peoplePicker.js"],"names":["kb","solidLogicSingleton","store","PeoplePicker","element","typeIndex","groupPickedCb","options","selectedgroup","onSelectGroup","bind","container","document","createElement","style","maxWidth","minHeight","outline","display","flexDirection","selectedGroup","Group","render","changeGroupButton","textContent","addEventListener","_event","appendChild","findAddressBook","then","book","chooseExistingGroupButton","margin","GroupPicker","createNewGroupButton","createNewGroup","defaultNewGroupName","group","GroupBuilder","errorBody","innerHTML","err","Promise","resolve","reject","fetcher","nowOrWhenFetched","ok","bookRegistration","any","ns","solid","vcard","Error","load","_xhr","indexes","groupIndex","groupContainer","rdf","sym","uri","uuid","v4","slice","name","patchPromises","doc","map","typeStatement","st","nameStatement","includesGroupStatement","toIns","equals","patch","forEach","add","all","debug","log","xhr","responseURL","loadGroups","groups","groupButton","handleClickGroup","each","getWithDefault","value","doneBuildingCb","groupChangedCb","onGroupChanged","changeType","agent","dropContainer","uris","groupNameInput","type","event","setGroupName","target","groupNameLabel","match","statement","webIdNode","object","personDiv","Person","handleRemove","copy","escape","doneBuildingButton","webId","namedNode","rdfClass","foaf","holdsStatement","why","toDel","remove","errorMessage","updatePromises","namedGraph","oldNameStatements","newNameStatement","literal","_solidResponse","removeStatements","imgSrc","iconBase","profileImg","src","width","height","nameSpan","flexGrow","removeButton","subject","predicate","defaultValue","url","updater","update","success","dir"],"mappings":"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","sourcesContent":["/**\n *\n * People Picker Pane\n *\n * This pane offers a mechanism for selecting a set of individuals, groups, or\n * organizations to take some action on.\n *\n * Assumptions\n * - Assumes that the user has a type index entry for vcard:AddressBook.\n *\n */\nimport escape from 'escape-html'\nimport uuid from 'uuid'\nimport * as rdf from 'rdflib'\nimport * as debug from '../debug'\n\nimport { makeDropTarget } from './dragAndDrop'\nimport { errorMessageBlock } from './error'\nimport { iconBase } from '../iconBase'\nimport * as ns from '../ns'\nimport { solidLogicSingleton } from '../logic'\n\nconst kb = solidLogicSingleton.store\n\nexport class PeoplePicker {\n constructor (element, typeIndex, groupPickedCb, options) {\n this.options = options || {}\n this.element = element\n this.typeIndex = typeIndex\n this.groupPickedCb = groupPickedCb\n this.selectedgroup = this.options.selectedgroup // current selected group if any\n this.onSelectGroup = this.onSelectGroup.bind(this)\n }\n\n render () {\n const container = document.createElement('div')\n container.style.maxWidth = '350px'\n container.style.minHeight = '200px'\n container.style.outline = '1px solid black'\n container.style.display = 'flex'\n\n if (this.selectedgroup) {\n container.style.flexDirection = 'column'\n const selectedGroup = document.createElement('div')\n new Group(selectedGroup, this.selectedgroup).render()\n const changeGroupButton = document.createElement('button')\n changeGroupButton.textContent = escape('Change group')\n changeGroupButton.addEventListener('click', _event => {\n this.selectedgroup = null\n this.render()\n })\n container.appendChild(selectedGroup)\n container.appendChild(changeGroupButton)\n } else {\n this.findAddressBook(this.typeIndex)\n .then(({ book }) => {\n const chooseExistingGroupButton = document.createElement('button')\n chooseExistingGroupButton.textContent = escape(\n 'Pick an existing group'\n )\n chooseExistingGroupButton.style.margin = 'auto'\n chooseExistingGroupButton.addEventListener('click', _event => {\n new GroupPicker(container, book, this.onSelectGroup).render()\n })\n\n const createNewGroupButton = document.createElement('button')\n createNewGroupButton.textContent = escape('Create a new group')\n createNewGroupButton.style.margin = 'auto'\n createNewGroupButton.addEventListener('click', _event => {\n this.createNewGroup(book, this.options.defaultNewGroupName)\n .then(({ group }) => {\n new GroupBuilder(\n this.element,\n book,\n group,\n this.onSelectGroup\n ).render()\n })\n .catch(errorBody => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Error creating a new group. (${errorBody})`)\n )\n )\n })\n })\n\n container.appendChild(chooseExistingGroupButton)\n container.appendChild(createNewGroupButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could find your groups. (${err})`)\n )\n )\n })\n }\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n\n findAddressBook (typeIndex) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(typeIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const bookRegistration = kb.any(\n null,\n ns.solid('forClass'),\n ns.vcard('AddressBook')\n )\n if (!bookRegistration) {\n return reject(\n new Error(\n 'no address book registered in the solid type index ' + typeIndex\n )\n )\n }\n const book = kb.any(bookRegistration, ns.solid('instance'))\n if (!book) {\n return reject(new Error('incomplete address book registration'))\n }\n kb.fetcher\n .load(book)\n .then(function (_xhr) {\n return resolve({ book })\n })\n .catch(function (err) {\n return reject(new Error('Could not load address book ' + err))\n })\n })\n })\n }\n\n createNewGroup (book, defaultNewGroupName) {\n const { groupIndex, groupContainer } = indexes(book)\n const group = rdf.sym(\n `${groupContainer.uri}${uuid.v4().slice(0, 8)}.ttl#this`\n )\n const name = defaultNewGroupName || 'Untitled Group'\n\n // NOTE that order matters here. Unfortunately this type of update is\n // non-atomic in that solid requires us to send two PATCHes, either of which\n // might fail.\n const patchPromises = [group.doc(), groupIndex].map(doc => {\n const typeStatement = rdf.st(group, ns.rdf('type'), ns.vcard('Group'), doc)\n const nameStatement = rdf.st(group, ns.vcard('fn'), name, group.doc(), doc)\n const includesGroupStatement = rdf.st(\n book,\n ns.vcard('includesGroup'),\n group,\n doc\n )\n const toIns = doc.equals(groupIndex)\n ? [typeStatement, nameStatement, includesGroupStatement]\n : [typeStatement, nameStatement]\n return patch(doc.uri, { toIns }).then(() => {\n toIns.forEach(st => {\n kb.add(st)\n })\n })\n })\n return Promise.all(patchPromises)\n .then(() => ({ group }))\n .catch(err => {\n debug.log('Could not create new group. PATCH failed ' + err)\n throw new Error(\n `Couldn't create new group. PATCH failed for (${\n err.xhr ? err.xhr.responseURL : ''\n } )`\n )\n })\n }\n\n onSelectGroup (group) {\n this.selectedgroup = group\n this.groupPickedCb(group)\n this.render()\n }\n}\n\nexport class GroupPicker {\n constructor (element, book, onSelectGroup) {\n this.element = element\n this.book = book\n this.onSelectGroup = onSelectGroup\n }\n\n render () {\n this.loadGroups()\n .then(groups => {\n // render the groups\n const container = document.createElement('div')\n container.style.display = 'flex'\n container.style.flexDirection = 'column'\n groups.forEach(group => {\n const groupButton = document.createElement('button')\n groupButton.addEventListener('click', this.handleClickGroup(group))\n new Group(groupButton, group).render()\n container.appendChild(groupButton)\n })\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`There was an error loading your groups. (${err})`)\n )\n )\n })\n return this\n }\n\n loadGroups () {\n return new Promise((resolve, reject) => {\n const { groupIndex } = indexes(this.book)\n kb.fetcher.nowOrWhenFetched(groupIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const groups = kb.each(this.book, ns.vcard('includesGroup'))\n return resolve(groups)\n })\n })\n }\n\n handleClickGroup (group) {\n return _event => {\n this.onSelectGroup(group)\n }\n }\n}\n\nexport class Group {\n constructor (element, group) {\n this.element = element\n this.group = group\n }\n\n render () {\n const container = document.createElement('div')\n container.textContent = escape(\n // @@@@@ need to escape??\n getWithDefault(this.group, ns.vcard('fn'), `[${this.group.value}]`)\n )\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nexport class GroupBuilder {\n constructor (element, book, group, doneBuildingCb, groupChangedCb) {\n this.element = element\n this.book = book\n this.group = group\n this.onGroupChanged = (err, changeType, agent) => {\n if (groupChangedCb) {\n groupChangedCb(err, changeType, agent)\n }\n }\n this.groupChangedCb = groupChangedCb\n this.doneBuildingCb = doneBuildingCb\n }\n\n refresh () {\n // TODO: implement\n }\n\n render () {\n const dropContainer = document.createElement('div')\n dropContainer.style.maxWidth = '350px'\n dropContainer.style.minHeight = '200px'\n dropContainer.style.outline = '1px solid black'\n dropContainer.style.display = 'flex'\n dropContainer.style.flexDirection = 'column'\n\n makeDropTarget(dropContainer, uris => {\n uris.forEach(uri => {\n this.add(uri).catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could not add the given WebId. (${err})`)\n )\n )\n })\n })\n })\n\n const groupNameInput = document.createElement('input')\n groupNameInput.type = 'text'\n groupNameInput.value = getWithDefault(\n this.group,\n ns.vcard('fn'),\n 'Untitled Group'\n )\n groupNameInput.addEventListener('change', event => {\n this.setGroupName(event.target.value).catch(err => {\n this.element.appendChild(\n errorMessageBlock(document, `Error changing group name. (${err})`)\n )\n })\n })\n const groupNameLabel = document.createElement('label')\n groupNameLabel.textContent = escape('Group Name:')\n groupNameLabel.appendChild(groupNameInput)\n dropContainer.appendChild(groupNameLabel)\n\n if (kb.any(this.group, ns.vcard('hasMember'))) {\n kb.match(this.group, ns.vcard('hasMember')).forEach(statement => {\n const webIdNode = statement.object\n const personDiv = document.createElement('div')\n new Person(personDiv, webIdNode, this.handleRemove(webIdNode)).render()\n dropContainer.appendChild(personDiv)\n })\n } else {\n const copy = document.createElement('p')\n copy.textContent = escape`\n To add someone to this group, drag and drop their WebID URL onto the box.\n `\n dropContainer.appendChild(copy)\n }\n\n const doneBuildingButton = document.createElement('button')\n doneBuildingButton.textContent = escape('Done')\n doneBuildingButton.addEventListener('click', _event => {\n this.doneBuildingCb(this.group)\n })\n dropContainer.appendChild(doneBuildingButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(dropContainer)\n return this\n }\n\n add (webId) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(webId, (ok, err) => {\n if (!ok) {\n this.onGroupChanged(err)\n return reject(err)\n }\n // make sure it's a valid person, group, or entity (for now just handle\n // webId)\n const webIdNode = rdf.namedNode(webId)\n const rdfClass = kb.any(webIdNode, ns.rdf('type'))\n if (!rdfClass || !rdfClass.equals(ns.foaf('Person'))) {\n return reject(\n new Error(\n `Only people supported right now. (tried to add something of type ${rdfClass.value})`\n )\n )\n }\n return resolve(webIdNode)\n })\n }).then(webIdNode => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n if (kb.holdsStatement(statement)) {\n return webIdNode\n }\n return patch(this.group.doc().uri, { toIns: [statement] }).then(() => {\n statement.why = this.group.doc()\n kb.add(statement)\n this.onGroupChanged(null, 'added', webIdNode)\n this.render()\n })\n })\n }\n\n handleRemove (webIdNode) {\n return _event => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n return patch(this.group.doc().uri, { toDel: [statement] })\n .then(() => {\n kb.remove(statement)\n this.onGroupChanged(null, 'removed', webIdNode)\n this.render()\n return true\n })\n .catch(err => {\n const name = kb.any(webIdNode, ns.foaf('name'))\n const errorMessage =\n name && name.value\n ? `Could not remove ${name.value}. (${err})`\n : `Could not remove ${webIdNode.value}. (${err})`\n throw new Error(errorMessage)\n })\n }\n }\n\n setGroupName (name) {\n const { groupIndex } = indexes(this.book)\n const updatePromises = [this.group.doc(), groupIndex].map(namedGraph => {\n const oldNameStatements = kb.match(\n this.group,\n ns.vcard('fn'),\n null,\n namedGraph\n )\n const newNameStatement = rdf.st(\n this.group,\n ns.vcard('fn'),\n rdf.literal(name)\n )\n return patch(namedGraph.value, {\n toDel: oldNameStatements,\n toIns: [newNameStatement]\n }).then(_solidResponse => {\n kb.removeStatements(oldNameStatements)\n newNameStatement.why = namedGraph\n kb.add(newNameStatement)\n })\n })\n return Promise.all(updatePromises)\n }\n}\n// @ignore exporting this only for the unit test\n// @@ TODO maybe I should move this down at end, but for\n// now I will leave it where it was\nexport class Person {\n constructor (element, webIdNode, handleRemove) {\n this.webIdNode = webIdNode\n this.element = element\n this.handleRemove = handleRemove\n }\n\n render () {\n const container = document.createElement('div')\n container.style.display = 'flex'\n\n // TODO: take a look at UI.widgets.setName\n const imgSrc = getWithDefault(\n this.webIdNode,\n ns.foaf('img'),\n iconBase + 'noun_15059.svg'\n )\n const profileImg = document.createElement('img')\n profileImg.src = escape(imgSrc)\n profileImg.width = '50'\n profileImg.height = '50'\n profileImg.style.margin = '5px'\n\n // TODO: take a look at UI.widgets.setImage\n const name = getWithDefault(\n this.webIdNode,\n ns.foaf('name'),\n `[${this.webIdNode}]`\n )\n const nameSpan = document.createElement('span')\n nameSpan.innerHTML = escape(name)\n nameSpan.style.flexGrow = '1'\n nameSpan.style.margin = 'auto 0'\n\n const removeButton = document.createElement('button')\n removeButton.textContent = 'Remove'\n removeButton.addEventListener('click', _event =>\n this.handleRemove().catch(err => {\n this.element.appendChild(errorMessageBlock(document, escape(`${err}`)))\n })\n )\n removeButton.style.margin = '5px'\n\n container.appendChild(profileImg)\n container.appendChild(nameSpan)\n container.appendChild(removeButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nfunction getWithDefault (subject, predicate, defaultValue) {\n const object = kb.any(subject, predicate)\n return object ? object.value : defaultValue\n}\n\nfunction patch (url, { toDel, toIns }) {\n return new Promise((resolve, reject) => {\n kb.updater.update(toDel, toIns, (uri, success, errorMessage) => {\n if (!success) {\n return reject(\n new Error(`PATCH failed for resource <${uri}>: ${errorMessage}`)\n )\n }\n resolve()\n })\n })\n // return webClient.patch(url, toDel, toIns)\n // .then(solidResponse => {\n // const status = solidResponse.xhr.status\n // if (status < 200 || status >= 400) {\n // const err = new Error(`PATCH failed for resource <${solidResponse.url}>`)\n // err.solidResponse = solidResponse\n // throw err\n // }\n // })\n}\n\nfunction indexes (book) {\n return {\n // bookIndex: book,\n groupIndex: kb.any(book, ns.vcard('groupIndex')),\n groupContainer: kb.sym(book.dir().uri + 'Group/')\n }\n}\n"],"file":"peoplePicker.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/widgets/peoplePicker.js"],"names":["kb","solidLogicSingleton","store","PeoplePicker","element","typeIndex","groupPickedCb","options","selectedgroup","onSelectGroup","bind","container","document","createElement","style","maxWidth","minHeight","outline","display","flexDirection","selectedGroup","Group","render","changeGroupButton","textContent","addEventListener","_event","appendChild","findAddressBook","then","book","chooseExistingGroupButton","margin","GroupPicker","createNewGroupButton","createNewGroup","defaultNewGroupName","group","GroupBuilder","errorBody","innerHTML","err","Promise","resolve","reject","fetcher","nowOrWhenFetched","ok","bookRegistration","any","ns","solid","vcard","Error","load","_xhr","indexes","groupIndex","groupContainer","rdf","sym","uri","uuid","v4","slice","name","patchPromises","doc","map","typeStatement","st","nameStatement","includesGroupStatement","toIns","equals","patch","forEach","add","all","debug","log","xhr","responseURL","loadGroups","groups","groupButton","handleClickGroup","each","getWithDefault","value","doneBuildingCb","groupChangedCb","onGroupChanged","changeType","agent","dropContainer","uris","groupNameInput","type","event","setGroupName","target","groupNameLabel","match","statement","webIdNode","object","personDiv","Person","handleRemove","copy","escape","doneBuildingButton","webId","namedNode","rdfClass","foaf","holdsStatement","why","toDel","remove","errorMessage","updatePromises","namedGraph","oldNameStatements","newNameStatement","literal","_solidResponse","removeStatements","imgSrc","iconBase","profileImg","src","width","height","nameSpan","flexGrow","removeButton","subject","predicate","defaultValue","url","updater","update","success","dir"],"mappings":"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","sourcesContent":["/**\n *\n * People Picker Pane\n *\n * This pane offers a mechanism for selecting a set of individuals, groups, or\n * organizations to take some action on.\n *\n * Assumptions\n * - Assumes that the user has a type index entry for vcard:AddressBook. @@ bad assuption\n *\n */\nimport escape from 'escape-html'\nimport uuid from 'uuid'\nimport * as rdf from 'rdflib'\nimport * as debug from '../debug'\n\nimport { makeDropTarget } from './dragAndDrop'\nimport { errorMessageBlock } from './error'\nimport { iconBase } from '../iconBase'\nimport * as ns from '../ns'\nimport { solidLogicSingleton } from '../logic'\n\nconst kb = solidLogicSingleton.store\n\nexport class PeoplePicker {\n constructor (element, typeIndex, groupPickedCb, options) { // @@ can't expect typeindex to be passed\n this.options = options || {}\n this.element = element\n this.typeIndex = typeIndex\n this.groupPickedCb = groupPickedCb\n this.selectedgroup = this.options.selectedgroup // current selected group if any\n this.onSelectGroup = this.onSelectGroup.bind(this)\n }\n\n render () {\n const container = document.createElement('div')\n container.style.maxWidth = '350px'\n container.style.minHeight = '200px'\n container.style.outline = '1px solid black'\n container.style.display = 'flex'\n\n if (this.selectedgroup) {\n container.style.flexDirection = 'column'\n const selectedGroup = document.createElement('div')\n new Group(selectedGroup, this.selectedgroup).render()\n const changeGroupButton = document.createElement('button')\n changeGroupButton.textContent = escape('Change group')\n changeGroupButton.addEventListener('click', _event => {\n this.selectedgroup = null\n this.render()\n })\n container.appendChild(selectedGroup)\n container.appendChild(changeGroupButton)\n } else {\n this.findAddressBook(this.typeIndex)\n .then(({ book }) => {\n const chooseExistingGroupButton = document.createElement('button')\n chooseExistingGroupButton.textContent = escape(\n 'Pick an existing group'\n )\n chooseExistingGroupButton.style.margin = 'auto'\n chooseExistingGroupButton.addEventListener('click', _event => {\n new GroupPicker(container, book, this.onSelectGroup).render()\n })\n\n const createNewGroupButton = document.createElement('button')\n createNewGroupButton.textContent = escape('Create a new group')\n createNewGroupButton.style.margin = 'auto'\n createNewGroupButton.addEventListener('click', _event => {\n this.createNewGroup(book, this.options.defaultNewGroupName)\n .then(({ group }) => {\n new GroupBuilder(\n this.element,\n book,\n group,\n this.onSelectGroup\n ).render()\n })\n .catch(errorBody => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Error creating a new group. (${errorBody})`)\n )\n )\n })\n })\n\n container.appendChild(chooseExistingGroupButton)\n container.appendChild(createNewGroupButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could find your groups. (${err})`)\n )\n )\n })\n }\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n\n findAddressBook (typeIndex) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(typeIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const bookRegistration = kb.any(\n null,\n ns.solid('forClass'),\n ns.vcard('AddressBook')\n )\n if (!bookRegistration) {\n return reject(\n new Error(\n 'no address book registered in the solid type index ' + typeIndex\n )\n )\n }\n const book = kb.any(bookRegistration, ns.solid('instance'))\n if (!book) {\n return reject(new Error('incomplete address book registration'))\n }\n kb.fetcher\n .load(book)\n .then(function (_xhr) {\n return resolve({ book })\n })\n .catch(function (err) {\n return reject(new Error('Could not load address book ' + err))\n })\n })\n })\n }\n\n createNewGroup (book, defaultNewGroupName) {\n const { groupIndex, groupContainer } = indexes(book)\n const group = rdf.sym(\n `${groupContainer.uri}${uuid.v4().slice(0, 8)}.ttl#this`\n )\n const name = defaultNewGroupName || 'Untitled Group'\n\n // NOTE that order matters here. Unfortunately this type of update is\n // non-atomic in that solid requires us to send two PATCHes, either of which\n // might fail.\n const patchPromises = [group.doc(), groupIndex].map(doc => {\n const typeStatement = rdf.st(group, ns.rdf('type'), ns.vcard('Group'), doc)\n const nameStatement = rdf.st(group, ns.vcard('fn'), name, group.doc(), doc)\n const includesGroupStatement = rdf.st(\n book,\n ns.vcard('includesGroup'),\n group,\n doc\n )\n const toIns = doc.equals(groupIndex)\n ? [typeStatement, nameStatement, includesGroupStatement]\n : [typeStatement, nameStatement]\n return patch(doc.uri, { toIns }).then(() => {\n toIns.forEach(st => {\n kb.add(st)\n })\n })\n })\n return Promise.all(patchPromises)\n .then(() => ({ group }))\n .catch(err => {\n debug.log('Could not create new group. PATCH failed ' + err)\n throw new Error(\n `Couldn't create new group. PATCH failed for (${\n err.xhr ? err.xhr.responseURL : ''\n } )`\n )\n })\n }\n\n onSelectGroup (group) {\n this.selectedgroup = group\n this.groupPickedCb(group)\n this.render()\n }\n}\n\nexport class GroupPicker {\n constructor (element, book, onSelectGroup) {\n this.element = element\n this.book = book\n this.onSelectGroup = onSelectGroup\n }\n\n render () {\n this.loadGroups()\n .then(groups => {\n // render the groups\n const container = document.createElement('div')\n container.style.display = 'flex'\n container.style.flexDirection = 'column'\n groups.forEach(group => {\n const groupButton = document.createElement('button')\n groupButton.addEventListener('click', this.handleClickGroup(group))\n new Group(groupButton, group).render()\n container.appendChild(groupButton)\n })\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`There was an error loading your groups. (${err})`)\n )\n )\n })\n return this\n }\n\n loadGroups () {\n return new Promise((resolve, reject) => {\n const { groupIndex } = indexes(this.book)\n kb.fetcher.nowOrWhenFetched(groupIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const groups = kb.each(this.book, ns.vcard('includesGroup'))\n return resolve(groups)\n })\n })\n }\n\n handleClickGroup (group) {\n return _event => {\n this.onSelectGroup(group)\n }\n }\n}\n\nexport class Group {\n constructor (element, group) {\n this.element = element\n this.group = group\n }\n\n render () {\n const container = document.createElement('div')\n container.textContent = escape(\n // @@@@@ need to escape??\n getWithDefault(this.group, ns.vcard('fn'), `[${this.group.value}]`)\n )\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nexport class GroupBuilder {\n constructor (element, book, group, doneBuildingCb, groupChangedCb) {\n this.element = element\n this.book = book\n this.group = group\n this.onGroupChanged = (err, changeType, agent) => {\n if (groupChangedCb) {\n groupChangedCb(err, changeType, agent)\n }\n }\n this.groupChangedCb = groupChangedCb\n this.doneBuildingCb = doneBuildingCb\n }\n\n refresh () {\n // TODO: implement\n }\n\n render () {\n const dropContainer = document.createElement('div')\n dropContainer.style.maxWidth = '350px'\n dropContainer.style.minHeight = '200px'\n dropContainer.style.outline = '1px solid black'\n dropContainer.style.display = 'flex'\n dropContainer.style.flexDirection = 'column'\n\n makeDropTarget(dropContainer, uris => {\n uris.forEach(uri => {\n this.add(uri).catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could not add the given WebId. (${err})`)\n )\n )\n })\n })\n })\n\n const groupNameInput = document.createElement('input')\n groupNameInput.type = 'text'\n groupNameInput.value = getWithDefault(\n this.group,\n ns.vcard('fn'),\n 'Untitled Group'\n )\n groupNameInput.addEventListener('change', event => {\n this.setGroupName(event.target.value).catch(err => {\n this.element.appendChild(\n errorMessageBlock(document, `Error changing group name. (${err})`)\n )\n })\n })\n const groupNameLabel = document.createElement('label')\n groupNameLabel.textContent = escape('Group Name:')\n groupNameLabel.appendChild(groupNameInput)\n dropContainer.appendChild(groupNameLabel)\n\n if (kb.any(this.group, ns.vcard('hasMember'))) {\n kb.match(this.group, ns.vcard('hasMember')).forEach(statement => {\n const webIdNode = statement.object\n const personDiv = document.createElement('div')\n new Person(personDiv, webIdNode, this.handleRemove(webIdNode)).render()\n dropContainer.appendChild(personDiv)\n })\n } else {\n const copy = document.createElement('p')\n copy.textContent = escape`\n To add someone to this group, drag and drop their WebID URL onto the box.\n `\n dropContainer.appendChild(copy)\n }\n\n const doneBuildingButton = document.createElement('button')\n doneBuildingButton.textContent = escape('Done')\n doneBuildingButton.addEventListener('click', _event => {\n this.doneBuildingCb(this.group)\n })\n dropContainer.appendChild(doneBuildingButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(dropContainer)\n return this\n }\n\n add (webId) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(webId, (ok, err) => {\n if (!ok) {\n this.onGroupChanged(err)\n return reject(err)\n }\n // make sure it's a valid person, group, or entity (for now just handle\n // webId)\n const webIdNode = rdf.namedNode(webId)\n const rdfClass = kb.any(webIdNode, ns.rdf('type'))\n if (!rdfClass || !rdfClass.equals(ns.foaf('Person'))) {\n return reject(\n new Error(\n `Only people supported right now. (tried to add something of type ${rdfClass.value})`\n )\n )\n }\n return resolve(webIdNode)\n })\n }).then(webIdNode => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n if (kb.holdsStatement(statement)) {\n return webIdNode\n }\n return patch(this.group.doc().uri, { toIns: [statement] }).then(() => {\n statement.why = this.group.doc()\n kb.add(statement)\n this.onGroupChanged(null, 'added', webIdNode)\n this.render()\n })\n })\n }\n\n handleRemove (webIdNode) {\n return _event => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n return patch(this.group.doc().uri, { toDel: [statement] })\n .then(() => {\n kb.remove(statement)\n this.onGroupChanged(null, 'removed', webIdNode)\n this.render()\n return true\n })\n .catch(err => {\n const name = kb.any(webIdNode, ns.foaf('name'))\n const errorMessage =\n name && name.value\n ? `Could not remove ${name.value}. (${err})`\n : `Could not remove ${webIdNode.value}. (${err})`\n throw new Error(errorMessage)\n })\n }\n }\n\n setGroupName (name) {\n const { groupIndex } = indexes(this.book)\n const updatePromises = [this.group.doc(), groupIndex].map(namedGraph => {\n const oldNameStatements = kb.match(\n this.group,\n ns.vcard('fn'),\n null,\n namedGraph\n )\n const newNameStatement = rdf.st(\n this.group,\n ns.vcard('fn'),\n rdf.literal(name)\n )\n return patch(namedGraph.value, {\n toDel: oldNameStatements,\n toIns: [newNameStatement]\n }).then(_solidResponse => {\n kb.removeStatements(oldNameStatements)\n newNameStatement.why = namedGraph\n kb.add(newNameStatement)\n })\n })\n return Promise.all(updatePromises)\n }\n}\n// @ignore exporting this only for the unit test\n// @@ TODO maybe I should move this down at end, but for\n// now I will leave it where it was\nexport class Person {\n constructor (element, webIdNode, handleRemove) {\n this.webIdNode = webIdNode\n this.element = element\n this.handleRemove = handleRemove\n }\n\n render () {\n const container = document.createElement('div')\n container.style.display = 'flex'\n\n // TODO: take a look at UI.widgets.setName\n const imgSrc = getWithDefault(\n this.webIdNode,\n ns.foaf('img'),\n iconBase + 'noun_15059.svg'\n )\n const profileImg = document.createElement('img')\n profileImg.src = escape(imgSrc)\n profileImg.width = '50'\n profileImg.height = '50'\n profileImg.style.margin = '5px'\n\n // TODO: take a look at UI.widgets.setImage\n const name = getWithDefault(\n this.webIdNode,\n ns.foaf('name'),\n `[${this.webIdNode}]`\n )\n const nameSpan = document.createElement('span')\n nameSpan.innerHTML = escape(name)\n nameSpan.style.flexGrow = '1'\n nameSpan.style.margin = 'auto 0'\n\n const removeButton = document.createElement('button')\n removeButton.textContent = 'Remove'\n removeButton.addEventListener('click', _event =>\n this.handleRemove().catch(err => {\n this.element.appendChild(errorMessageBlock(document, escape(`${err}`)))\n })\n )\n removeButton.style.margin = '5px'\n\n container.appendChild(profileImg)\n container.appendChild(nameSpan)\n container.appendChild(removeButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nfunction getWithDefault (subject, predicate, defaultValue) {\n const object = kb.any(subject, predicate)\n return object ? object.value : defaultValue\n}\n\nfunction patch (url, { toDel, toIns }) {\n return new Promise((resolve, reject) => {\n kb.updater.update(toDel, toIns, (uri, success, errorMessage) => {\n if (!success) {\n return reject(\n new Error(`PATCH failed for resource <${uri}>: ${errorMessage}`)\n )\n }\n resolve()\n })\n })\n // return webClient.patch(url, toDel, toIns)\n // .then(solidResponse => {\n // const status = solidResponse.xhr.status\n // if (status < 200 || status >= 400) {\n // const err = new Error(`PATCH failed for resource <${solidResponse.url}>`)\n // err.solidResponse = solidResponse\n // throw err\n // }\n // })\n}\n\nfunction indexes (book) {\n return {\n // bookIndex: book,\n groupIndex: kb.any(book, ns.vcard('groupIndex')),\n groupContainer: kb.sym(book.dir().uri + 'Group/')\n }\n}\n"],"file":"peoplePicker.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solid-ui",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.11-c70657d9",
|
|
4
4
|
"description": "UI library for writing Solid read-write-web applications",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -53,57 +53,57 @@
|
|
|
53
53
|
},
|
|
54
54
|
"homepage": "https://github.com/solid/solid-ui",
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@babel/runtime": "^7.
|
|
56
|
+
"@babel/runtime": "^7.16.0",
|
|
57
57
|
"@inrupt/solid-client-authn-browser": "^1.11.2",
|
|
58
58
|
"crypto-browserify": "^3.12.0",
|
|
59
59
|
"escape-html": "^1.0.3",
|
|
60
|
-
"jss": "^10.8.
|
|
61
|
-
"jss-preset-default": "^10.8.
|
|
60
|
+
"jss": "^10.8.2",
|
|
61
|
+
"jss-preset-default": "^10.8.2",
|
|
62
62
|
"mime-types": "^2.1.33",
|
|
63
|
-
"pane-registry": "^2.4.
|
|
63
|
+
"pane-registry": "^2.4.3",
|
|
64
64
|
"path-browserify": "^1.0.1",
|
|
65
65
|
"postcss-flexbugs-fixes": "^5.0.2",
|
|
66
|
-
"rdflib": "^2.2.
|
|
67
|
-
"solid-logic": "^1.3.
|
|
68
|
-
"solid-namespace": "^0.5.
|
|
66
|
+
"rdflib": "^2.2.10",
|
|
67
|
+
"solid-logic": "^1.3.9",
|
|
68
|
+
"solid-namespace": "^0.5.2",
|
|
69
69
|
"stream-browserify": "^3.0.0",
|
|
70
70
|
"uuid": "^8.3.2"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
|
-
"@babel/cli": "^7.
|
|
74
|
-
"@babel/core": "^7.
|
|
75
|
-
"@babel/plugin-proposal-class-properties": "^7.
|
|
76
|
-
"@babel/plugin-proposal-optional-chaining": "^7.
|
|
77
|
-
"@babel/plugin-transform-async-to-generator": "^7.
|
|
78
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
79
|
-
"@babel/preset-env": "^7.
|
|
80
|
-
"@babel/preset-typescript": "^7.
|
|
73
|
+
"@babel/cli": "^7.16.0",
|
|
74
|
+
"@babel/core": "^7.16.0",
|
|
75
|
+
"@babel/plugin-proposal-class-properties": "^7.16.0",
|
|
76
|
+
"@babel/plugin-proposal-optional-chaining": "^7.16.0",
|
|
77
|
+
"@babel/plugin-transform-async-to-generator": "^7.16.0",
|
|
78
|
+
"@babel/plugin-transform-runtime": "^7.16.0",
|
|
79
|
+
"@babel/preset-env": "^7.16.0",
|
|
80
|
+
"@babel/preset-typescript": "^7.16.0",
|
|
81
81
|
"@storybook/addon-actions": "^6.3.12",
|
|
82
82
|
"@storybook/addon-essentials": "^6.3.12",
|
|
83
83
|
"@storybook/addon-links": "^6.3.12",
|
|
84
84
|
"@storybook/html": "^6.3.12",
|
|
85
|
-
"@testing-library/dom": "^8.
|
|
86
|
-
"@testing-library/user-event": "^13.
|
|
85
|
+
"@testing-library/dom": "^8.11.0",
|
|
86
|
+
"@testing-library/user-event": "^13.5.0",
|
|
87
87
|
"@types/jest": "^27.0.2",
|
|
88
88
|
"@types/jsdom": "^16.2.13",
|
|
89
|
-
"@types/node": "^16.
|
|
90
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
91
|
-
"@typescript-eslint/parser": "^5.
|
|
92
|
-
"autoprefixer": "^10.
|
|
93
|
-
"babel-loader": "^8.2.
|
|
89
|
+
"@types/node": "^16.11.6",
|
|
90
|
+
"@typescript-eslint/eslint-plugin": "^5.3.0",
|
|
91
|
+
"@typescript-eslint/parser": "^5.3.0",
|
|
92
|
+
"autoprefixer": "^10.4.0",
|
|
93
|
+
"babel-loader": "^8.2.3",
|
|
94
94
|
"eslint": "^7.32.0",
|
|
95
|
-
"eslint-plugin-jest": "^25.
|
|
96
|
-
"husky": "^7.0.
|
|
97
|
-
"jest": "^27.
|
|
98
|
-
"jsdom": "^18.0.
|
|
99
|
-
"lint-staged": "^11.2.
|
|
100
|
-
"nock": "^13.1.
|
|
95
|
+
"eslint-plugin-jest": "^25.2.3",
|
|
96
|
+
"husky": "^7.0.4",
|
|
97
|
+
"jest": "^27.3.1",
|
|
98
|
+
"jsdom": "^18.0.1",
|
|
99
|
+
"lint-staged": "^11.2.6",
|
|
100
|
+
"nock": "^13.1.4",
|
|
101
101
|
"postcss-flexbugs-fixes": "^5.0.2",
|
|
102
102
|
"raw-loader": "^4.0.2",
|
|
103
103
|
"react-is": "^17.0.2",
|
|
104
104
|
"standard": "^16.0.4",
|
|
105
|
-
"ts-jest": "^27.0.
|
|
106
|
-
"typedoc": "^0.22.
|
|
105
|
+
"ts-jest": "^27.0.7",
|
|
106
|
+
"typedoc": "^0.22.7",
|
|
107
107
|
"typescript": "^4.4.4",
|
|
108
108
|
"webpack": "^4.46.0",
|
|
109
109
|
"webpack-cli": "^3.3.12"
|