UNPKG

profile-pane

Version:

A SolidOS compatible pane to display a personal profile page

83 lines 3.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadProfileForm = loadProfileForm; exports.presentSocial = presentSocial; var rdflib_1 = require("rdflib"); var solid_ui_1 = require("solid-ui"); var wrapped_profileFormText_1 = require("./editProfilePane/wrapped-profileFormText"); var DEFAULT_ICON_URI = solid_ui_1.icons.iconBase + 'noun_10636_grey.svg'; // grey disc /* eslint-disable @typescript-eslint/no-explicit-any */ function loadProfileForm(store) { var preferencesForm = store.sym('https://solidos.github.io/profile-pane/src/ontology/profileForm.ttl#this'); var preferencesFormDoc = preferencesForm.doc(); if (!store.holds(undefined, undefined, undefined, preferencesFormDoc)) { // If not loaded already (0, rdflib_1.parse)(wrapped_profileFormText_1.profileForm, store, preferencesFormDoc.uri, 'text/turtle', function () { return null; }); // Load form directly } } function presentSocial(subject, store) { function nameForAccount(subject) { var acIcon = store.any(subject, solid_ui_1.ns.foaf('name')) || store.any(subject, solid_ui_1.ns.rdfs('label')); // on the account itself? if (acIcon) return acIcon.value; var classes = store.each(subject, solid_ui_1.ns.rdf('type')); for (var _i = 0, classes_1 = classes; _i < classes_1.length; _i++) { var k = classes_1[_i]; var classIcon = store.any(k, solid_ui_1.ns.rdfs('label')); if (classIcon) { return classIcon.value; } return solid_ui_1.utils.label(k); } return ''; } function iconForAccount(subject) { var acIcon = store.any(subject, solid_ui_1.ns.foaf('icon')); // on the account itself? if (acIcon) return acIcon.value; var classes = store.each(subject, solid_ui_1.ns.rdf('type')); if (classes.length > 0) { console.log('@@ classes[0].termType 2 ', classes[0].termType); for (var _i = 0, _a = classes; _i < _a.length; _i++) { var k = _a[_i]; var classIcon = store.any(k, solid_ui_1.ns.foaf('icon')); if (classIcon !== null) { return classIcon.value; } } } return DEFAULT_ICON_URI; } function homepageForAccount(subject) { var acHomepage = store.any(subject, solid_ui_1.ns.foaf('homepage')); // on the account itself? if (acHomepage) return acHomepage.value; var id = store.anyJS(subject, solid_ui_1.ns.foaf('accountName'), null, subject.doc()) || 'No_account_Name'; var classes = store.each(subject, solid_ui_1.ns.rdf('type')); for (var _i = 0, classes_2 = classes; _i < classes_2.length; _i++) { var k = classes_2[_i]; var userProfilePrefix = store.any(k, solid_ui_1.ns.foaf('userProfilePrefix')); if (userProfilePrefix) { return userProfilePrefix.value + id.trim(); } } return "no userProfilePrefix?"; } function accountAsObject(ac) { return { name: nameForAccount(ac), icon: iconForAccount(ac), homepage: homepageForAccount(ac) }; } loadProfileForm(store); // get ontology info var accountThings = store.anyJS(subject, solid_ui_1.ns.foaf('account')); // load the collection if (!accountThings) return { accounts: [] }; // could have been undefined console.log('Social: accountThings', accountThings); var accounts = accountThings.map(function (ac) { return accountAsObject(ac); }); console.log('Social: account objects', accounts); return { accounts: accounts }; } //# sourceMappingURL=SocialPresenter.js.map