solid-panes 4.2.4-test.3 → 4.2.4-test.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/RDFXMLPane.js +1 -2
- package/dist/argument/argumentPane.js +1 -2
- package/dist/attach/attachPane.js +1 -2
- package/dist/audio/audioPane.js +1 -2
- package/dist/classInstancePane.js +1 -2
- package/dist/dashboard/basicPreferences.js +1 -2
- package/dist/dashboard/dashboardPane.js +1 -2
- package/dist/dashboard/homepage.js +1 -2
- package/dist/dataContentPane.js +1 -2
- package/dist/defaultPane.js +1 -2
- package/dist/dokieli/dokieliPane.js +1 -2
- package/dist/dokieli/new.js +1 -2
- package/dist/form/pane.js +1 -2
- package/dist/home/homePane.js +1 -2
- package/dist/humanReadablePane.js +1 -2
- package/dist/imagePane.js +1 -2
- package/dist/index.js +1 -2
- package/dist/internal/internalPane.js +1 -2
- package/dist/mainPage/footer.js +1 -2
- package/dist/mainPage/header.js +1 -2
- package/dist/mainPage/index.js +1 -2
- package/dist/microblogPane/mbStyle.css +267 -0
- package/dist/microblogPane/microblogPane.js +1 -2
- package/dist/n3Pane.js +1 -2
- package/dist/outline/context.js +1 -2
- package/dist/outline/manager.css +80 -0
- package/dist/outline/manager.js +14 -11
- package/dist/outline/outlineIcons.js +1 -2
- package/dist/outline/propertyViews.js +1 -2
- package/dist/outline/queryByExample.js +1 -2
- package/dist/outline/userInput.js +1 -2
- package/dist/outline/viewAsImage.js +1 -2
- package/dist/outline/viewAsMbox.js +1 -2
- package/dist/pad/padPane.js +1 -2
- package/dist/playlist/playlistPane.js +1 -2
- package/dist/registerPanes.js +1 -2
- package/dist/schedule/schedulePane.js +1 -2
- package/dist/sharing/sharingPane.js +1 -2
- package/dist/slideshow/slideshowPane.js +1 -2
- package/dist/socialPane.js +1 -2
- package/dist/solid-panes.js +52145 -0
- package/dist/solid-panes.js.map +1 -0
- package/dist/solid-panes.min.js +290 -0
- package/dist/solid-panes.min.js.map +1 -0
- package/dist/style/tabbedtab.css +1347 -0
- package/dist/tabbed/tabbedPane.js +1 -2
- package/dist/tableViewPane.js +1 -2
- package/dist/transaction/pane.js +1 -2
- package/dist/transaction/period.js +1 -2
- package/dist/trip/tripPane.js +1 -2
- package/dist/trustedApplications/trustedApplications.dom.js +1 -2
- package/dist/trustedApplications/trustedApplications.utils.js +1 -2
- package/dist/trustedApplications/trustedApplications.view.js +1 -2
- package/dist/ui/pane.js +1 -2
- package/dist/versionInfo.js +4 -5
- package/dist/video/videoPane.js +1 -2
- package/package.json +12 -11
- package/dist/RDFXMLPane.js.map +0 -1
- package/dist/argument/argumentPane.js.map +0 -1
- package/dist/attach/attachPane.js.map +0 -1
- package/dist/audio/audioPane.js.map +0 -1
- package/dist/classInstancePane.js.map +0 -1
- package/dist/dashboard/basicPreferences.js.map +0 -1
- package/dist/dashboard/dashboardPane.js.map +0 -1
- package/dist/dashboard/homepage.js.map +0 -1
- package/dist/dataContentPane.js.map +0 -1
- package/dist/defaultPane.js.map +0 -1
- package/dist/dokieli/dokieliPane.js.map +0 -1
- package/dist/dokieli/new.js.map +0 -1
- package/dist/form/pane.js.map +0 -1
- package/dist/home/homePane.js.map +0 -1
- package/dist/humanReadablePane.js.map +0 -1
- package/dist/imagePane.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal/internalPane.js.map +0 -1
- package/dist/mainPage/footer.js.map +0 -1
- package/dist/mainPage/header.js.map +0 -1
- package/dist/mainPage/index.js.map +0 -1
- package/dist/microblogPane/microblogPane.js.map +0 -1
- package/dist/n3Pane.js.map +0 -1
- package/dist/outline/context.js.map +0 -1
- package/dist/outline/manager.js.map +0 -1
- package/dist/outline/outlineIcons.js.map +0 -1
- package/dist/outline/propertyViews.js.map +0 -1
- package/dist/outline/queryByExample.js.map +0 -1
- package/dist/outline/userInput.js.map +0 -1
- package/dist/outline/viewAsImage.js.map +0 -1
- package/dist/outline/viewAsMbox.js.map +0 -1
- package/dist/pad/padPane.js.map +0 -1
- package/dist/playlist/playlistPane.js.map +0 -1
- package/dist/registerPanes.js.map +0 -1
- package/dist/schedule/schedulePane.js.map +0 -1
- package/dist/sharing/sharingPane.js.map +0 -1
- package/dist/slideshow/slideshowPane.js.map +0 -1
- package/dist/socialPane.js.map +0 -1
- package/dist/tabbed/tabbedPane.js.map +0 -1
- package/dist/tableViewPane.js.map +0 -1
- package/dist/transaction/pane.js.map +0 -1
- package/dist/transaction/period.js.map +0 -1
- package/dist/trip/tripPane.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.dom.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.utils.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.view.js.map +0 -1
- package/dist/ui/pane.js.map +0 -1
- package/dist/versionInfo.js.map +0 -1
- package/dist/video/videoPane.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"homePane.js","names":["_solidLogic","require","_solidUi","HomePaneSource","icon","icons","iconBase","global","name","label","render","subject","context","dom","showContent","homePaneContext","div","statusArea","me","appendChild","createElement","textContent","creationDiv","creationContext","relevantPanes","login","filterAvailablePanes","session","paneRegistry","list","create","newThingUI","registrationList","then","authn","currentUser","_default","exports","default"],"sources":["../../src/home/homePane.ts"],"sourcesContent":["/* Home Pane\n **\n ** The home pane is avaiable everywhere and allows a user\n ** to\n ** - keep track of their stuff\n ** - make new things, and possibly\n ** - keep track of accounts and workspaces etc\n **\n */\n\nimport { PaneDefinition } from 'pane-registry'\nimport { NamedNode } from 'rdflib'\nimport { authn } from 'solid-logic'\nimport { create, icons, login } from 'solid-ui'\nimport type { CreateContext } from 'solid-ui'\n\nconst HomePaneSource: PaneDefinition = {\n icon: icons.iconBase + 'noun_547570.svg', // noun_25830\n\n global: true,\n\n name: 'home',\n\n // Does the subject deserve an home pane?\n //\n // yes, always!\n //\n label: function () {\n return 'home'\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const showContent = async function () {\n const homePaneContext = { div, dom, statusArea: div, me }\n /*\n div.appendChild(dom.createElement('h4')).textContent = 'Login status'\n var loginStatusDiv = div.appendChild(context.dom.createElement('div'))\n // TODO: Find out what the actual type is:\n type UriType = unknown;\n loginStatusDiv.appendChild(UI.login.loginStatusBox(context.dom, () => {\n // Here we know new log in status\n }))\n */\n div.appendChild(dom.createElement('h4')).textContent =\n 'Create new thing somewhere'\n const creationDiv = div.appendChild(dom.createElement('div'))\n const creationContext: CreateContext = {\n div: creationDiv,\n dom,\n statusArea: div,\n me\n }\n const relevantPanes = await login.filterAvailablePanes(\n context.session.paneRegistry.list\n )\n create.newThingUI(creationContext, context, relevantPanes) // newUI Have to pass panes down\n\n login.registrationList(homePaneContext, {}).then(function () {})\n }\n\n const div = dom.createElement('div')\n const me: NamedNode = authn.currentUser() as NamedNode // this will be incorrect if not logged in\n\n showContent()\n\n return div\n }\n} // pane object\n\n// ends\nexport default HomePaneSource\n"],"mappings":";;;;;;AAYA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,MAAME,cAA8B,GAAG;EACrCC,IAAI,EAAEC,cAAK,CAACC,QAAQ,GAAG,iBAAiB;EAAE;;EAE1CC,MAAM,EAAE,IAAI;EAEZC,IAAI,EAAE,MAAM;EAEZ;EACA;EACA;EACA;EACAC,KAAK,EAAE,SAAAA,CAAA,EAAY;IACjB,OAAO,MAAM;EACf,CAAC;EAEDC,MAAM,EAAE,SAAAA,CAAUC,OAAO,EAAEC,OAAO,EAAE;IAClC,MAAMC,GAAG,GAAGD,OAAO,CAACC,GAAG;IACvB,MAAMC,WAAW,GAAG,eAAAA,CAAA,EAAkB;MACpC,MAAMC,eAAe,GAAG;QAAEC,GAAG;QAAEH,GAAG;QAAEI,UAAU,EAAED,GAAG;QAAEE;MAAG,CAAC;MACzD;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACMF,GAAG,CAACG,WAAW,CAACN,GAAG,CAACO,aAAa,CAAC,IAAI,CAAC,CAAC,CAACC,WAAW,GAClD,4BAA4B;MAC9B,MAAMC,WAAW,GAAGN,GAAG,CAACG,WAAW,CAACN,GAAG,CAACO,aAAa,CAAC,KAAK,CAAC,CAAC;MAC7D,MAAMG,eAA8B,GAAG;QACrCP,GAAG,EAAEM,WAAW;QAChBT,GAAG;QACHI,UAAU,EAAED,GAAG;QACfE;MACF,CAAC;MACD,MAAMM,aAAa,GAAG,MAAMC,cAAK,CAACC,oBAAoB,CACpDd,OAAO,CAACe,OAAO,CAACC,YAAY,CAACC,IAC/B,CAAC;MACDC,eAAM,CAACC,UAAU,CAACR,eAAe,EAAEX,OAAO,EAAEY,aAAa,CAAC,EAAC;;MAE3DC,cAAK,CAACO,gBAAgB,CAACjB,eAAe,EAAE,CAAC,CAAC,CAAC,CAACkB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAMjB,GAAG,GAAGH,GAAG,CAACO,aAAa,CAAC,KAAK,CAAC;IACpC,MAAMF,EAAa,GAAGgB,iBAAK,CAACC,WAAW,CAAC,CAAc,EAAC;;IAEvDrB,WAAW,CAAC,CAAC;IAEb,OAAOE,GAAG;EACZ;AACF,CAAC,EAAC;;AAEF;AAAA,IAAAoB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACenC,cAAc","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"humanReadablePane.js","names":["_solidUi","require","_rdflib","_marked","_dompurify","_interopRequireDefault","e","__esModule","default","isMarkdownFile","uri","path","split","test","dokieliCache","Map","humanReadablePane","icon","subject","context","icons","iconBase","kb","session","store","cachedResult","get","originalIconBase","responseText","fetcher","getHeader","doc","length","text","isDokieli","includes","set","cts","ct","trim","_fetch","then","response","catch","name","label","allowed","hasContentTypeIn","x","displayables","j","k","indexOf","hasContentTypeIn2","t","findTypeURIs","Util","mediaTypeClass","ns","link","has","render","myDocument","dom","div","createElement","isMarkdown","console","log","setAttribute","renderMarkdownContent","frame","webOperation","markdownText","lines","Math","min","res","marked","parse","clean","DOMPurify","sanitize","innerHTML","error","setIframeAttributes","tr","appendChild","blobText","newLines","_default","exports"],"sources":["../src/humanReadablePane.js"],"sourcesContent":["/* Human-readable Pane\n **\n ** This outline pane contains the document contents for an HTML document\n ** This is for peeking at a page, because the user might not want to leave the data browser.\n */\nimport { icons, ns } from 'solid-ui'\nimport { Util } from 'rdflib'\nimport { marked } from 'marked'\nimport DOMPurify from 'dompurify'\n\n// Helper function to check if a URI has a markdown file extension\nconst isMarkdownFile = (uri) => {\n if (!uri) return false\n const path = uri.split('?')[0].split('#')[0] // Remove query string and fragment\n return /\\.(md|markdown|mdown|mkd|mkdn)$/i.test(path)\n}\n\n// Cache for dokieli detection results (keyed by subject URI)\nconst dokieliCache = new Map()\n\nconst humanReadablePane = {\n icon: function (subject, context) {\n // Markdown files detected by extension\n if (subject && isMarkdownFile(subject.uri)) {\n return icons.iconBase + 'markdown.svg'\n }\n\n // Dokieli files detected by content check\n if (subject) {\n const kb = context.session.store\n\n // Check cache from previous detection\n const cachedResult = dokieliCache.get(subject.uri)\n if (cachedResult === 'dokieli') {\n return icons.iconBase + 'dokieli-logo.png'\n } else if (cachedResult === 'html') {\n return icons.originalIconBase + 'tango/22-text-x-generic.png'\n }\n\n // Check if content already fetched (synchronous)\n const responseText = kb.fetcher.getHeader(subject.doc(), 'content')\n if (responseText && responseText.length > 0) {\n const text = responseText[0]\n const isDokieli = text.includes('<script src=\"https://dokie.li/scripts/dokieli.js\">') ||\n text.includes('dokieli.css')\n dokieliCache.set(subject.uri, isDokieli ? 'dokieli' : 'html')\n return isDokieli\n ? icons.iconBase + 'dokieli-logo.png'\n : icons.originalIconBase + 'tango/22-text-x-generic.png'\n }\n\n // Content not yet fetched - return a promise (async detection)\n const cts = kb.fetcher.getHeader(subject.doc(), 'content-type')\n const ct = cts ? cts[0].split(';', 1)[0].trim() : null\n\n if (ct === 'text/html') {\n return kb.fetcher._fetch(subject.uri)\n .then(response => response.text())\n .then(text => {\n const isDokieli = text.includes('<script src=\"https://dokie.li/scripts/dokieli.js\">') ||\n text.includes('dokieli.css')\n dokieliCache.set(subject.uri, isDokieli ? 'dokieli' : 'html')\n return isDokieli\n ? icons.iconBase + 'dokieli-logo.png'\n : icons.originalIconBase + 'tango/22-text-x-generic.png'\n })\n .catch(() => {\n dokieliCache.set(subject.uri, 'html')\n return icons.originalIconBase + 'tango/22-text-x-generic.png'\n })\n }\n }\n\n // Default for all other human-readable content\n return icons.originalIconBase + 'tango/22-text-x-generic.png'\n },\n\n name: 'humanReadable',\n\n label: function (subject, context) {\n const kb = context.session.store\n\n // See also the source pane, which has lower precedence.\n\n const allowed = [\n 'text/plain',\n 'text/html',\n 'text/markdown',\n 'application/xhtml+xml',\n 'image/png',\n 'image/jpeg',\n 'application/pdf',\n 'video/mp4'\n ]\n\n const hasContentTypeIn = function (kb, x, displayables) {\n const cts = kb.fetcher.getHeader(x, 'content-type')\n if (cts) {\n for (let j = 0; j < cts.length; j++) {\n for (let k = 0; k < displayables.length; k++) {\n if (cts[j].indexOf(displayables[k]) >= 0) {\n return true\n }\n }\n }\n }\n return false\n }\n\n // This data could come from a fetch OR from ldp container\n const hasContentTypeIn2 = function (kb, x, displayables) {\n const t = kb.findTypeURIs(x)\n for (let k = 0; k < displayables.length; k++) {\n if (Util.mediaTypeClass(displayables[k]).uri in t) {\n return true\n }\n }\n return false\n }\n\n if (!subject.uri) return null // no bnodes\n\n const t = kb.findTypeURIs(subject)\n if (t[ns.link('WebPage').uri]) return 'view'\n\n // Check file extension for markdown files\n if (isMarkdownFile(subject.uri)) {\n return 'View'\n }\n\n if (\n hasContentTypeIn(kb, subject, allowed) ||\n hasContentTypeIn2(kb, subject, allowed)\n ) {\n // For HTML files, check if it's dokieli (async check, store result for later)\n const cts = kb.fetcher.getHeader(subject.doc(), 'content-type')\n const ct = cts ? cts[0].split(';', 1)[0].trim() : null\n\n if (ct === 'text/html' && !dokieliCache.has(subject.uri)) {\n // Async check for dokieli, don't wait for result\n kb.fetcher._fetch(subject.uri)\n .then(response => response.text())\n .then(text => {\n const isDokieli = text.includes('<script src=\"https://dokie.li/scripts/dokieli.js\">') ||\n text.includes('dokieli.css')\n dokieliCache.set(subject.uri, isDokieli ? 'dokieli' : 'html')\n })\n .catch(() => {\n dokieliCache.set(subject.uri, 'html')\n })\n }\n\n return 'View'\n }\n\n return null\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n const kb = context.session.store\n\n const cts = kb.fetcher.getHeader(subject.doc(), 'content-type')\n const ct = cts ? cts[0].split(';', 1)[0].trim() : null // remove content-type parameters\n\n // Fallback: detect markdown by file extension if content-type is not text/markdown\n const isMarkdown = ct === 'text/markdown' || isMarkdownFile(subject.uri)\n\n if (ct) {\n // console.log('humanReadablePane: c-t:' + ct)\n } else {\n console.log('humanReadablePane: unknown content-type?')\n }\n\n // @@ When we can, use CSP to turn off scripts within the iframe\n div.setAttribute('class', 'docView')\n\n // render markdown to html in a DIV element\n const renderMarkdownContent = function (frame) {\n kb.fetcher.webOperation('GET', subject.uri).then(response => {\n const markdownText = response.responseText\n const lines = Math.min(30, markdownText.split(/\\n/).length + 5)\n const res = marked.parse(markdownText)\n const clean = DOMPurify.sanitize(res)\n frame.innerHTML = clean\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', `border: 1px solid; padding: 1em; height: ${lines}em; width: 800px; resize: both; overflow: auto;`)\n }).catch(error => {\n console.error('Error fetching markdown content:', error)\n frame.innerHTML = '<p>Error loading content</p>'\n })\n }\n\n const setIframeAttributes = (frame, lines) => {\n frame.setAttribute('src', subject.uri)\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', `border: 1px solid; padding: 1em; height: ${lines}em; width: 800px; resize: both; overflow: auto;`)\n }\n\n if (isMarkdown) {\n // For markdown, use a DIV element and render the content\n const frame = myDocument.createElement('DIV')\n renderMarkdownContent(frame)\n const tr = myDocument.createElement('TR')\n tr.appendChild(frame)\n div.appendChild(tr)\n } else {\n // For other content types, use IFRAME\n const frame = myDocument.createElement('IFRAME')\n\n // Apply sandbox for HTML/XHTML\n if (ct === 'text/html' || ct === 'application/xhtml+xml') {\n frame.setAttribute('sandbox', 'allow-scripts allow-same-origin allow-forms')\n }\n\n // Fetch content to calculate lines dynamically\n kb.fetcher.webOperation('GET', subject.uri).then(response => {\n const blobText = response.responseText\n const newLines = blobText.includes('<script src=\"https://dokie.li/scripts/dokieli.js\">') ? -10 : 5\n const lines = Math.min(30, blobText.split(/\\n/).length + newLines)\n\n // Cache dokieli detection result\n const isDokieli = blobText.includes('<script src=\"https://dokie.li/scripts/dokieli.js\">') ||\n blobText.includes('dokieli.css')\n dokieliCache.set(subject.uri, isDokieli ? 'dokieli' : 'html')\n\n setIframeAttributes(frame, lines)\n }).catch(error => {\n console.error('Error fetching content for line calculation:', error)\n // Fallback to default height\n setIframeAttributes(frame, 30)\n })\n\n const tr = myDocument.createElement('TR')\n tr.appendChild(frame)\n div.appendChild(tr)\n }\n\n return div\n }\n}\n\nexport default humanReadablePane\n// ends\n"],"mappings":";;;;;;AAKA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAAiC,SAAAI,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AARjC;AACA;AACA;AACA;AACA;;AAMA;AACA,MAAMG,cAAc,GAAIC,GAAG,IAAK;EAC9B,IAAI,CAACA,GAAG,EAAE,OAAO,KAAK;EACtB,MAAMC,IAAI,GAAGD,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;EAC7C,OAAO,kCAAkC,CAACC,IAAI,CAACF,IAAI,CAAC;AACtD,CAAC;;AAED;AACA,MAAMG,YAAY,GAAG,IAAIC,GAAG,CAAC,CAAC;AAE9B,MAAMC,iBAAiB,GAAG;EACxBC,IAAI,EAAE,SAAAA,CAAUC,OAAO,EAAEC,OAAO,EAAE;IAChC;IACA,IAAID,OAAO,IAAIT,cAAc,CAACS,OAAO,CAACR,GAAG,CAAC,EAAE;MAC1C,OAAOU,cAAK,CAACC,QAAQ,GAAG,cAAc;IACxC;;IAEA;IACA,IAAIH,OAAO,EAAE;MACX,MAAMI,EAAE,GAAGH,OAAO,CAACI,OAAO,CAACC,KAAK;;MAEhC;MACA,MAAMC,YAAY,GAAGX,YAAY,CAACY,GAAG,CAACR,OAAO,CAACR,GAAG,CAAC;MAClD,IAAIe,YAAY,KAAK,SAAS,EAAE;QAC9B,OAAOL,cAAK,CAACC,QAAQ,GAAG,kBAAkB;MAC5C,CAAC,MAAM,IAAII,YAAY,KAAK,MAAM,EAAE;QAClC,OAAOL,cAAK,CAACO,gBAAgB,GAAG,6BAA6B;MAC/D;;MAEA;MACA,MAAMC,YAAY,GAAGN,EAAE,CAACO,OAAO,CAACC,SAAS,CAACZ,OAAO,CAACa,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;MACnE,IAAIH,YAAY,IAAIA,YAAY,CAACI,MAAM,GAAG,CAAC,EAAE;QAC3C,MAAMC,IAAI,GAAGL,YAAY,CAAC,CAAC,CAAC;QAC5B,MAAMM,SAAS,GAAGD,IAAI,CAACE,QAAQ,CAAC,oDAAoD,CAAC,IACpEF,IAAI,CAACE,QAAQ,CAAC,aAAa,CAAC;QAC7CrB,YAAY,CAACsB,GAAG,CAAClB,OAAO,CAACR,GAAG,EAAEwB,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;QAC7D,OAAOA,SAAS,GACZd,cAAK,CAACC,QAAQ,GAAG,kBAAkB,GACnCD,cAAK,CAACO,gBAAgB,GAAG,6BAA6B;MAC5D;;MAEA;MACA,MAAMU,GAAG,GAAGf,EAAE,CAACO,OAAO,CAACC,SAAS,CAACZ,OAAO,CAACa,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC;MAC/D,MAAMO,EAAE,GAAGD,GAAG,GAAGA,GAAG,CAAC,CAAC,CAAC,CAACzB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC2B,IAAI,CAAC,CAAC,GAAG,IAAI;MAEtD,IAAID,EAAE,KAAK,WAAW,EAAE;QACtB,OAAOhB,EAAE,CAACO,OAAO,CAACW,MAAM,CAACtB,OAAO,CAACR,GAAG,CAAC,CAClC+B,IAAI,CAACC,QAAQ,IAAIA,QAAQ,CAACT,IAAI,CAAC,CAAC,CAAC,CACjCQ,IAAI,CAACR,IAAI,IAAI;UACZ,MAAMC,SAAS,GAAGD,IAAI,CAACE,QAAQ,CAAC,oDAAoD,CAAC,IACpEF,IAAI,CAACE,QAAQ,CAAC,aAAa,CAAC;UAC7CrB,YAAY,CAACsB,GAAG,CAAClB,OAAO,CAACR,GAAG,EAAEwB,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;UAC7D,OAAOA,SAAS,GACZd,cAAK,CAACC,QAAQ,GAAG,kBAAkB,GACnCD,cAAK,CAACO,gBAAgB,GAAG,6BAA6B;QAC5D,CAAC,CAAC,CACDgB,KAAK,CAAC,MAAM;UACX7B,YAAY,CAACsB,GAAG,CAAClB,OAAO,CAACR,GAAG,EAAE,MAAM,CAAC;UACrC,OAAOU,cAAK,CAACO,gBAAgB,GAAG,6BAA6B;QAC/D,CAAC,CAAC;MACN;IACF;;IAEA;IACA,OAAOP,cAAK,CAACO,gBAAgB,GAAG,6BAA6B;EAC/D,CAAC;EAEDiB,IAAI,EAAE,eAAe;EAErBC,KAAK,EAAE,SAAAA,CAAU3B,OAAO,EAAEC,OAAO,EAAE;IACjC,MAAMG,EAAE,GAAGH,OAAO,CAACI,OAAO,CAACC,KAAK;;IAEhC;;IAEA,MAAMsB,OAAO,GAAG,CACd,YAAY,EACZ,WAAW,EACX,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,WAAW,CACZ;IAED,MAAMC,gBAAgB,GAAG,SAAAA,CAAUzB,EAAE,EAAE0B,CAAC,EAAEC,YAAY,EAAE;MACtD,MAAMZ,GAAG,GAAGf,EAAE,CAACO,OAAO,CAACC,SAAS,CAACkB,CAAC,EAAE,cAAc,CAAC;MACnD,IAAIX,GAAG,EAAE;QACP,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,GAAG,CAACL,MAAM,EAAEkB,CAAC,EAAE,EAAE;UACnC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,YAAY,CAACjB,MAAM,EAAEmB,CAAC,EAAE,EAAE;YAC5C,IAAId,GAAG,CAACa,CAAC,CAAC,CAACE,OAAO,CAACH,YAAY,CAACE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;cACxC,OAAO,IAAI;YACb;UACF;QACF;MACF;MACA,OAAO,KAAK;IACd,CAAC;;IAED;IACA,MAAME,iBAAiB,GAAG,SAAAA,CAAU/B,EAAE,EAAE0B,CAAC,EAAEC,YAAY,EAAE;MACvD,MAAMK,CAAC,GAAGhC,EAAE,CAACiC,YAAY,CAACP,CAAC,CAAC;MAC5B,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,YAAY,CAACjB,MAAM,EAAEmB,CAAC,EAAE,EAAE;QAC5C,IAAIK,YAAI,CAACC,cAAc,CAACR,YAAY,CAACE,CAAC,CAAC,CAAC,CAACzC,GAAG,IAAI4C,CAAC,EAAE;UACjD,OAAO,IAAI;QACb;MACF;MACA,OAAO,KAAK;IACd,CAAC;IAED,IAAI,CAACpC,OAAO,CAACR,GAAG,EAAE,OAAO,IAAI,EAAC;;IAE9B,MAAM4C,CAAC,GAAGhC,EAAE,CAACiC,YAAY,CAACrC,OAAO,CAAC;IAClC,IAAIoC,CAAC,CAACI,WAAE,CAACC,IAAI,CAAC,SAAS,CAAC,CAACjD,GAAG,CAAC,EAAE,OAAO,MAAM;;IAE5C;IACA,IAAID,cAAc,CAACS,OAAO,CAACR,GAAG,CAAC,EAAE;MAC/B,OAAO,MAAM;IACf;IAEA,IACEqC,gBAAgB,CAACzB,EAAE,EAAEJ,OAAO,EAAE4B,OAAO,CAAC,IACtCO,iBAAiB,CAAC/B,EAAE,EAAEJ,OAAO,EAAE4B,OAAO,CAAC,EACvC;MACA;MACA,MAAMT,GAAG,GAAGf,EAAE,CAACO,OAAO,CAACC,SAAS,CAACZ,OAAO,CAACa,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC;MAC/D,MAAMO,EAAE,GAAGD,GAAG,GAAGA,GAAG,CAAC,CAAC,CAAC,CAACzB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC2B,IAAI,CAAC,CAAC,GAAG,IAAI;MAEtD,IAAID,EAAE,KAAK,WAAW,IAAI,CAACxB,YAAY,CAAC8C,GAAG,CAAC1C,OAAO,CAACR,GAAG,CAAC,EAAE;QACxD;QACAY,EAAE,CAACO,OAAO,CAACW,MAAM,CAACtB,OAAO,CAACR,GAAG,CAAC,CAC3B+B,IAAI,CAACC,QAAQ,IAAIA,QAAQ,CAACT,IAAI,CAAC,CAAC,CAAC,CACjCQ,IAAI,CAACR,IAAI,IAAI;UACZ,MAAMC,SAAS,GAAGD,IAAI,CAACE,QAAQ,CAAC,oDAAoD,CAAC,IACpEF,IAAI,CAACE,QAAQ,CAAC,aAAa,CAAC;UAC7CrB,YAAY,CAACsB,GAAG,CAAClB,OAAO,CAACR,GAAG,EAAEwB,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;QAC/D,CAAC,CAAC,CACDS,KAAK,CAAC,MAAM;UACX7B,YAAY,CAACsB,GAAG,CAAClB,OAAO,CAACR,GAAG,EAAE,MAAM,CAAC;QACvC,CAAC,CAAC;MACN;MAEA,OAAO,MAAM;IACf;IAEA,OAAO,IAAI;EACb,CAAC;EAEDmD,MAAM,EAAE,SAAAA,CAAU3C,OAAO,EAAEC,OAAO,EAAE;IAClC,MAAM2C,UAAU,GAAG3C,OAAO,CAAC4C,GAAG;IAC9B,MAAMC,GAAG,GAAGF,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;IAC3C,MAAM3C,EAAE,GAAGH,OAAO,CAACI,OAAO,CAACC,KAAK;IAEhC,MAAMa,GAAG,GAAGf,EAAE,CAACO,OAAO,CAACC,SAAS,CAACZ,OAAO,CAACa,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC;IAC/D,MAAMO,EAAE,GAAGD,GAAG,GAAGA,GAAG,CAAC,CAAC,CAAC,CAACzB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC2B,IAAI,CAAC,CAAC,GAAG,IAAI,EAAC;;IAEvD;IACA,MAAM2B,UAAU,GAAG5B,EAAE,KAAK,eAAe,IAAI7B,cAAc,CAACS,OAAO,CAACR,GAAG,CAAC;IAExE,IAAI4B,EAAE,EAAE;MACN;IAAA,CACD,MAAM;MACL6B,OAAO,CAACC,GAAG,CAAC,0CAA0C,CAAC;IACzD;;IAEA;IACAJ,GAAG,CAACK,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC;;IAEpC;IACA,MAAMC,qBAAqB,GAAG,SAAAA,CAAUC,KAAK,EAAE;MAC7CjD,EAAE,CAACO,OAAO,CAAC2C,YAAY,CAAC,KAAK,EAAEtD,OAAO,CAACR,GAAG,CAAC,CAAC+B,IAAI,CAACC,QAAQ,IAAI;QAC3D,MAAM+B,YAAY,GAAG/B,QAAQ,CAACd,YAAY;QAC1C,MAAM8C,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEH,YAAY,CAAC7D,KAAK,CAAC,IAAI,CAAC,CAACoB,MAAM,GAAG,CAAC,CAAC;QAC/D,MAAM6C,GAAG,GAAGC,cAAM,CAACC,KAAK,CAACN,YAAY,CAAC;QACtC,MAAMO,KAAK,GAAGC,kBAAS,CAACC,QAAQ,CAACL,GAAG,CAAC;QACrCN,KAAK,CAACY,SAAS,GAAGH,KAAK;QACvBT,KAAK,CAACF,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;QAClCE,KAAK,CAACF,YAAY,CAAC,OAAO,EAAE,4CAA4CK,KAAK,iDAAiD,CAAC;MACjI,CAAC,CAAC,CAAC/B,KAAK,CAACyC,KAAK,IAAI;QAChBjB,OAAO,CAACiB,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC;QACxDb,KAAK,CAACY,SAAS,GAAG,8BAA8B;MAClD,CAAC,CAAC;IACJ,CAAC;IAED,MAAME,mBAAmB,GAAGA,CAACd,KAAK,EAAEG,KAAK,KAAK;MAC5CH,KAAK,CAACF,YAAY,CAAC,KAAK,EAAEnD,OAAO,CAACR,GAAG,CAAC;MACtC6D,KAAK,CAACF,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;MAClCE,KAAK,CAACF,YAAY,CAAC,OAAO,EAAE,4CAA4CK,KAAK,iDAAiD,CAAC;IACjI,CAAC;IAED,IAAIR,UAAU,EAAE;MACd;MACA,MAAMK,KAAK,GAAGT,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;MAC7CK,qBAAqB,CAACC,KAAK,CAAC;MAC5B,MAAMe,EAAE,GAAGxB,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;MACzCqB,EAAE,CAACC,WAAW,CAAChB,KAAK,CAAC;MACrBP,GAAG,CAACuB,WAAW,CAACD,EAAE,CAAC;IACrB,CAAC,MAAM;MACL;MACA,MAAMf,KAAK,GAAGT,UAAU,CAACG,aAAa,CAAC,QAAQ,CAAC;;MAEhD;MACA,IAAI3B,EAAE,KAAK,WAAW,IAAIA,EAAE,KAAK,uBAAuB,EAAE;QACxDiC,KAAK,CAACF,YAAY,CAAC,SAAS,EAAE,6CAA6C,CAAC;MAC9E;;MAEA;MACA/C,EAAE,CAACO,OAAO,CAAC2C,YAAY,CAAC,KAAK,EAAEtD,OAAO,CAACR,GAAG,CAAC,CAAC+B,IAAI,CAACC,QAAQ,IAAI;QAC3D,MAAM8C,QAAQ,GAAG9C,QAAQ,CAACd,YAAY;QACtC,MAAM6D,QAAQ,GAAGD,QAAQ,CAACrD,QAAQ,CAAC,oDAAoD,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;QAClG,MAAMuC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEY,QAAQ,CAAC5E,KAAK,CAAC,IAAI,CAAC,CAACoB,MAAM,GAAGyD,QAAQ,CAAC;;QAElE;QACA,MAAMvD,SAAS,GAAGsD,QAAQ,CAACrD,QAAQ,CAAC,oDAAoD,CAAC,IACxEqD,QAAQ,CAACrD,QAAQ,CAAC,aAAa,CAAC;QACjDrB,YAAY,CAACsB,GAAG,CAAClB,OAAO,CAACR,GAAG,EAAEwB,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;QAE7DmD,mBAAmB,CAACd,KAAK,EAAEG,KAAK,CAAC;MACnC,CAAC,CAAC,CAAC/B,KAAK,CAACyC,KAAK,IAAI;QAChBjB,OAAO,CAACiB,KAAK,CAAC,8CAA8C,EAAEA,KAAK,CAAC;QACpE;QACAC,mBAAmB,CAACd,KAAK,EAAE,EAAE,CAAC;MAChC,CAAC,CAAC;MAEF,MAAMe,EAAE,GAAGxB,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;MACzCqB,EAAE,CAACC,WAAW,CAAChB,KAAK,CAAC;MACrBP,GAAG,CAACuB,WAAW,CAACD,EAAE,CAAC;IACrB;IAEA,OAAOtB,GAAG;EACZ;AACF,CAAC;AAAA,IAAA0B,QAAA,GAAAC,OAAA,CAAAnF,OAAA,GAEcQ,iBAAiB,EAChC","ignoreList":[]}
|
package/dist/imagePane.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"imagePane.js","names":["UI","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","imagePane","exports","icon","icons","originalIconBase","name","label","subject","context","store","session","anyStatementMatching","ns","rdf","sym","contentTypeMatch","x","contentTypes","cts","fetcher","getHeader","j","length","k","indexOf","suppressed","render","myDocument","dom","div","createElement","setAttribute","img","_fetch","uri","then","response","blob","myBlob","objectURL","URL","createObjectURL","tr","appendChild"],"sources":["../src/imagePane.js"],"sourcesContent":["/* Image Pane\n **\n ** This outline pane contains the document contents for an Image document\n */\nimport * as UI from 'solid-ui'\n\nexport const imagePane = {\n icon: UI.icons.originalIconBase + 'tango/22-image-x-generic.png',\n\n name: 'image',\n\n label: function (subject, context) {\n const store = context.session.store\n if (\n !store.anyStatementMatching(\n subject,\n UI.ns.rdf('type'),\n store.sym('http://purl.org/dc/terms/Image')\n )\n ) {\n // NB: Not dc: namespace!\n return null\n }\n\n // See also the source pane, which has lower precedence.\n\n const contentTypeMatch = function (store, x, contentTypes) {\n const cts = store.fetcher.getHeader(x, 'content-type')\n if (cts) {\n for (let j = 0; j < cts.length; j++) {\n for (let k = 0; k < contentTypes.length; k++) {\n if (cts[j].indexOf(contentTypes[k]) >= 0) {\n return true\n }\n }\n }\n }\n return false\n }\n\n const suppressed = ['application/pdf']\n if (contentTypeMatch(store, subject, suppressed)) {\n return null\n }\n return 'view'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const store = context.session.store\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'imageView')\n const img = myDocument.createElement('IMG')\n\n // get image with authenticated fetch\n store.fetcher._fetch(subject.uri)\n .then(function (response) {\n return response.blob()\n })\n .then(function (myBlob) {\n const objectURL = URL.createObjectURL(myBlob)\n img.setAttribute('src', objectURL) // w640 h480 //\n })\n\n img.setAttribute('style', 'max-width: 100%; max-height: 100%;')\n // div.style['max-width'] = '640'\n // div.style['max-height'] = '480'\n const tr = myDocument.createElement('TR') // why need tr?\n tr.appendChild(img)\n div.appendChild(tr)\n return div\n }\n}\n\n// ends\n"],"mappings":"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","ignoreList":[]}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_versionInfo","_interopRequireDefault","require","UI","_interopRequireWildcard","exports","_solidLogic","_manager","_registerPanes","_paneRegistry","_context","_mainPage","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getOutliner","dom","outlineManager","context","createContext","list","paneForIcon","paneForPredicate","register","byName","store","solidLogicSingleton","OutlineManager","window","document","registerPanes","cjsOrEsModule","panes"],"sources":["../src/index.ts"],"sourcesContent":["/* SOLID PANES\n **\n ** Panes are regions of the outline view in which a particular subject is\n ** displayed in a particular way.\n ** Different panes about the same subject are typically stacked vertically.\n ** Panes may be used naked or with a pane selection header.\n **\n ** The label() method has two functions: it determines whether the pane is\n ** relevant to a given subject, returning null if not.\n ** If it is relevant, then it returns a suitable tooltip for a control which selects the pane\n */\n\nimport versionInfo from './versionInfo'\nimport * as UI from 'solid-ui'\nimport { LiveStore } from 'rdflib'\nimport { solidLogicSingleton, store } from 'solid-logic'\nimport OutlineManager from './outline/manager.js'\nimport { registerPanes } from './registerPanes.js'\nimport {\n list,\n paneForIcon,\n paneForPredicate,\n register,\n byName\n} from 'pane-registry'\nimport { createContext } from './outline/context'\nimport initMainPage from './mainPage'\n\nfunction getOutliner (dom) {\n if (!dom.outlineManager) {\n const context = createContext(\n dom,\n { list, paneForIcon, paneForPredicate, register, byName },\n store as LiveStore,\n solidLogicSingleton\n )\n dom.outlineManager = new OutlineManager(context)\n }\n return dom.outlineManager\n}\n\nif (typeof window !== 'undefined') {\n getOutliner(window.document)\n}\n\nregisterPanes((cjsOrEsModule: any) => register(cjsOrEsModule.default || cjsOrEsModule))\n\n// This has common outline mode functionality for the default and other other panes\n// A separate outline manager is required per DOM in cases like a browser extension\n// where there are many occurrences of window and of window.document\n// But each DOM should have just one outline manager.\n\nexport {\n OutlineManager,\n getOutliner,\n UI,\n versionInfo,\n initMainPage,\n list, // from paneRegistry\n paneForIcon, // from paneRegistry\n paneForPredicate, // from paneRegistry\n register, // from paneRegistry\n byName // from paneRegistry\n}\n\n// export for simpler access by non-node scripts\nif (typeof window !== 'undefined') {\n ;(<any>window).panes = {\n getOutliner\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,EAAA,GAAAC,uBAAA,CAAAF,OAAA;AAA8BG,OAAA,CAAAF,EAAA,GAAAA,EAAA;AAE9B,IAAAG,WAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AAOA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAV,sBAAA,CAAAC,OAAA;AAAqC,SAAAE,wBAAAQ,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAQ,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAZ,uBAAAW,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AA1BrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkBA,SAASmB,WAAWA,CAAEC,GAAG,EAAE;EACzB,IAAI,CAACA,GAAG,CAACC,cAAc,EAAE;IACvB,MAAMC,OAAO,GAAG,IAAAC,sBAAa,EAC3BH,GAAG,EACH;MAAEI,IAAI,EAAJA,kBAAI;MAAEC,WAAW,EAAXA,yBAAW;MAAEC,gBAAgB,EAAhBA,8BAAgB;MAAEC,QAAQ,EAARA,sBAAQ;MAAEC,MAAM,EAANA;IAAO,CAAC,EACzDC,iBAAK,EACLC,+BACF,CAAC;IACDV,GAAG,CAACC,cAAc,GAAG,IAAIU,gBAAc,CAACT,OAAO,CAAC;EAClD;EACA,OAAOF,GAAG,CAACC,cAAc;AAC3B;AAEA,IAAI,OAAOW,MAAM,KAAK,WAAW,EAAE;EACjCb,WAAW,CAACa,MAAM,CAACC,QAAQ,CAAC;AAC9B;AAEA,IAAAC,4BAAa,EAAEC,aAAkB,IAAK,IAAAR,sBAAQ,EAACQ,aAAa,CAACzB,OAAO,IAAIyB,aAAa,CAAC,CAAC;;AAEvF;AACA;AACA;AACA;;AAeA;AACA,IAAI,OAAOH,MAAM,KAAK,WAAW,EAAE;EACjC;EAAOA,MAAM,CAAEI,KAAK,GAAG;IACrBjB;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internalPane.js","names":["_solidUi","require","_rdflib","pane","icon","icons","originalIconBase","name","label","render","subject","context","dom","store","session","canonizedSubject","canon","types","findTypeURIs","filter","pred","view","paneRegistry","byName","predicates","uri","div","createElement","setAttribute","deleteRecursive","kb","folder","fetcher","console","error","Promise","resolve","reject","load","then","promises","each","ns","ldp","map","file","holds","rdf","log","webOperation","all","undefined","catch","err","str","Error","alert","isDocument","includes","controls","appendChild","style","width","margin","controlRow","deleteCell","isFolder","endsWith","noun","isProtectedUri","deleteButton","widgets","deleteButtonWithCheck","confirm","promise","class","refreshCell","refreshButton","button","iconBase","addEventListener","refresh","ok","errm","plist","statementsMatching","docURI","push","st","sym","appNode","indexOf","split","updater","ed","editable","literal","toString","outliner","getOutliner","appendPropertyTRs","classes","siteUri","site","_default","exports","default"],"sources":["../../src/internal/internalPane.ts"],"sourcesContent":["/* Internal Pane\n **\n ** This outline pane contains the properties which are\n ** internal to the user's interaction with the web, and are not normally displayed\n */\n/* global alert confirm */\n\nimport { icons, ns, widgets } from 'solid-ui'\nimport { BlankNode, IndexedFormula, literal, NamedNode, st, sym, Variable, Store } from 'rdflib'\nimport { PaneDefinition } from 'pane-registry'\n\nconst pane: PaneDefinition = {\n icon: icons.originalIconBase + 'tango/22-emblem-system.png',\n\n name: 'internal',\n\n label: function () {\n return 'under the hood' // There is often a URI even of no statements\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const store = context.session.store as Store\n const canonizedSubject = store.canon(subject) as BlankNode | NamedNode | Variable\n const types = store.findTypeURIs(canonizedSubject)\n\n function filter (pred: NamedNode) {\n if (types['http://www.w3.org/2007/ont/link#ProtocolEvent']) return true // display everything for them\n const view = context.session.paneRegistry.byName('internal')\n return (\n view &&\n view.predicates &&\n !!(typeof view.predicates[pred.uri] !== 'undefined')\n )\n }\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'internalPane')\n div.setAttribute(\n 'style',\n 'background-color: #ddddff; padding: 0.5em; border-radius: 1em;'\n )\n\n function deleteRecursive (kb: IndexedFormula, folder: NamedNode) {\n const fetcher = (kb as any).fetcher\n if (!fetcher) {\n console.error('No fetcher available')\n return\n }\n return new Promise(function (resolve, reject) {\n fetcher.load(folder).then(function () {\n const promises = kb.each(folder, ns.ldp('contains')).map(file => {\n if (kb.holds(file, ns.rdf('type'), ns.ldp('BasicContainer'))) {\n return deleteRecursive(kb, file as NamedNode)\n } else {\n console.log('deleteRecursive leaf file: ' + file)\n return fetcher.webOperation('DELETE', (file as NamedNode).uri)\n }\n })\n Promise.all(promises).then(\n () => {\n console.log('deleteRecursive empty folder: ' + folder)\n fetcher\n .webOperation('DELETE', folder.uri)\n .then(() => {\n console.log('Deleted Ok: ' + folder)\n resolve(undefined)\n })\n .catch((err: string) => {\n const str = 'Unable to delete ' + folder + ': ' + err\n console.log(str)\n reject(new Error(str))\n })\n resolve(undefined)\n },\n err => {\n alert(err)\n reject(err)\n }\n )\n })\n })\n }\n\n const isDocument = subject.uri && !subject.uri.includes('#')\n if (isDocument) {\n const controls = div.appendChild(dom.createElement('table'))\n controls.style.width = '100%'\n controls.style.margin = '1em'\n const controlRow = controls.appendChild(dom.createElement('tr'))\n\n const deleteCell = controlRow.appendChild(dom.createElement('td'))\n const isFolder =\n (subject.uri && subject.uri.endsWith('/')) ||\n store.holds(subject, ns.rdf('type'), ns.ldp('Container'))\n const noun = isFolder ? 'folder' : 'file'\n if (!isProtectedUri(subject)) {\n console.log(subject)\n const deleteButton = widgets.deleteButtonWithCheck(\n dom,\n deleteCell,\n noun,\n function () {\n if (\n !confirm(\n `Are you sure you want to delete ${subject}? This cannot be undone.`\n )\n ) {\n return\n }\n // @@ TODO Remove casing of store.fetcher\n if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n const promise = isFolder\n ? (deleteRecursive(store, subject) || Promise.resolve())\n : store.fetcher.webOperation('DELETE', subject.uri) || Promise.resolve()\n promise\n .then(() => {\n const str = 'Deleted: ' + subject\n console.log(str)\n })\n .catch((err: any) => {\n const str = 'Unable to delete ' + subject + ': ' + err\n console.log(str)\n alert(str)\n })\n }\n )\n deleteButton.style = 'height: 2em;'\n deleteButton.class = '' // Remove hover hide\n deleteCell.appendChild(deleteButton)\n }\n\n const refreshCell = controlRow.appendChild(dom.createElement('td'))\n const refreshButton = widgets.button(\n dom,\n icons.iconBase + 'noun_479395.svg',\n 'refresh'\n )\n refreshCell.appendChild(refreshButton)\n refreshButton.addEventListener('click', () => {\n if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n store.fetcher.refresh(subject, function (\n ok,\n errm\n ) {\n let str\n if (ok) {\n str = 'Refreshed OK: ' + subject\n } else {\n str = 'Error refreshing: ' + subject + ': ' + errm\n }\n console.log(str)\n alert(str)\n })\n })\n }\n\n let plist = store.statementsMatching(subject)\n let docURI = ''\n if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n\n if (subject.uri) {\n plist.push(\n st(\n subject,\n sym('http://www.w3.org/2007/ont/link#uri'),\n subject.uri as any, // @@ TODO Remove casting\n store.fetcher.appNode\n )\n )\n if (subject.uri.indexOf('#') >= 0) {\n docURI = subject.uri.split('#')[0]\n plist.push(\n st(\n subject,\n sym('http://www.w3.org/2007/ont/link#documentURI'),\n subject.uri.split('#')[0] as any, // @@ TODO Remove casting\n store.fetcher.appNode\n )\n )\n plist.push(\n st(\n subject,\n sym('http://www.w3.org/2007/ont/link#document'),\n sym(subject.uri.split('#')[0]),\n store.fetcher.appNode\n )\n )\n } else {\n docURI = subject.uri\n }\n }\n if (docURI) {\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n\n const ed = store.updater.editable(docURI)\n if (ed) {\n plist.push(\n st(\n subject,\n sym('http://www.w3.org/ns/rww#editable'),\n literal(ed.toString()),\n store.fetcher.appNode\n )\n )\n }\n }\n // @@ TODO get a proper type\n const outliner: any = context.getOutliner(dom)\n outliner.appendPropertyTRs(div, plist, false, filter)\n plist = store.statementsMatching(undefined, undefined, subject)\n outliner.appendPropertyTRs(div, plist, true, filter)\n return div\n },\n\n predicates: {\n // Predicates used for inner workings. Under the hood\n 'http://www.w3.org/2007/ont/link#request': 1,\n 'http://www.w3.org/2007/ont/link#requestedBy': 1,\n 'http://www.w3.org/2007/ont/link#source': 1,\n 'http://www.w3.org/2007/ont/link#session': 2, // 2= test neg but display\n 'http://www.w3.org/2007/ont/link#uri': 1,\n 'http://www.w3.org/2007/ont/link#documentURI': 1,\n 'http://www.w3.org/2007/ont/link#document': 1,\n 'http://www.w3.org/2007/ont/link#all': 1, // From userinput.js\n 'http://www.w3.org/2007/ont/link#Document': 1,\n 'http://www.w3.org/ns/rww#editable': 1,\n 'http://www.w3.org/2000/01/rdf-schema#seeAlso': 1,\n 'http://www.w3.org/2002/07/owl#': 1\n },\n\n classes: {\n // Things which are inherently already undercover\n 'http://www.w3.org/2007/ont/link#ProtocolEvent': 1\n }\n}\n\nfunction isProtectedUri (subject: NamedNode): boolean {\n // TODO: Could make the code below smarter by removing some of the redundancy by creating a recursive function, but did not bother now\n const siteUri = subject.site().uri\n return (\n subject.uri === siteUri ||\n subject.uri === siteUri + 'profile/' ||\n subject.uri === siteUri + 'profile/card' ||\n subject.uri === siteUri + 'settings/' ||\n subject.uri === siteUri + 'settings/prefs.ttl' ||\n subject.uri === siteUri + 'settings/privateTypeIndex.ttl' ||\n subject.uri === siteUri + 'settings/publicTypeIndex.ttl' ||\n subject.uri === siteUri + 'settings/serverSide.ttl'\n )\n}\n\nexport default pane\n\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"footer.js","names":["_solidUi","require","SOLID_PROJECT_URL","SOLID_PROJECT_NAME","createFooter","store","initFooter","setFooterOptions","solidProjectUrl","solidProjectName"],"sources":["../../src/mainPage/footer.ts"],"sourcesContent":["import { LiveStore } from 'rdflib'\nimport { initFooter } from 'solid-ui'\n\n/**\n * links in the footer\n*/\nconst SOLID_PROJECT_URL = 'https://solidproject.org'\nconst SOLID_PROJECT_NAME = 'solidproject.org'\n\nexport function createFooter (store: LiveStore) {\n initFooter(store, setFooterOptions())\n}\n\nfunction setFooterOptions () {\n return {\n solidProjectUrl: SOLID_PROJECT_URL,\n solidProjectName: SOLID_PROJECT_NAME\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG,0BAA0B;AACpD,MAAMC,kBAAkB,GAAG,kBAAkB;AAEtC,SAASC,YAAYA,CAAEC,KAAgB,EAAE;EAC9C,IAAAC,mBAAU,EAACD,KAAK,EAAEE,gBAAgB,CAAC,CAAC,CAAC;AACvC;AAEA,SAASA,gBAAgBA,CAAA,EAAI;EAC3B,OAAO;IACLC,eAAe,EAAEN,iBAAiB;IAClCO,gBAAgB,EAAEN;EACpB,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","names":["_solidLogic","require","_solidUi","HELP_MENU_ICON","icons","iconBase","SOLID_ICON_URL","USER_GUIDE_MENU_ITEM","REPORT_A_PROBLEM_MENU_ITEM","SHOW_YOUR_PROFILE_MENU_ITEM","LOG_OUT_MENU_ITEM","USER_GUIDE_MENU_URL","REPORT_A_PROBLEM_MENU_URL","createHeader","store","outliner","initHeader","setUserMenu","setHeaderOptions","helpMenuList","label","url","target","headerOptions","logo","helpIcon","showProfile","onclick","openUserProfile","logOut","authSession","logout","userMenuList","concat","getMenuItems","push","GotoSubject","authn","currentUser","undefined","location","reload","items","getDashboardItems","map","element","openDashboardPane","tabName","paneName","pane","showDashboard"],"sources":["../../src/mainPage/header.ts"],"sourcesContent":["import { authSession, authn } from 'solid-logic'\nimport { icons, initHeader } from 'solid-ui'\n/**\n * menu icons\n*/\nconst HELP_MENU_ICON = icons.iconBase + 'noun_help.svg'\nconst SOLID_ICON_URL = 'https://solidproject.org/assets/img/solid-emblem.svg'\n\n/**\n * menu elements\n*/\nconst USER_GUIDE_MENU_ITEM = 'User guide'\nconst REPORT_A_PROBLEM_MENU_ITEM = 'Report a problem'\nconst SHOW_YOUR_PROFILE_MENU_ITEM = 'Show your profile'\nconst LOG_OUT_MENU_ITEM = 'Log out'\n\ntype UserMenuItem = { label: string; onclick: () => void }\n/**\n * URLS\n */\nconst USER_GUIDE_MENU_URL = 'https://solidos.github.io/userguide/'\nconst REPORT_A_PROBLEM_MENU_URL = 'https://github.com/solidos/solidos/issues'\n\nexport async function createHeader (store, outliner) {\n initHeader(store, await setUserMenu(outliner), setHeaderOptions())\n}\n\nfunction setHeaderOptions () {\n const helpMenuList = [\n { label: USER_GUIDE_MENU_ITEM, url: USER_GUIDE_MENU_URL, target: '_blank' },\n { label: REPORT_A_PROBLEM_MENU_ITEM, url: REPORT_A_PROBLEM_MENU_URL, target: '_blank' }\n ]\n const headerOptions = { logo: SOLID_ICON_URL, helpIcon: HELP_MENU_ICON, helpMenuList }\n\n return headerOptions\n}\n\nasync function setUserMenu (outliner: any) {\n // @ts-ignore: showProfile is used conditionally\n const showProfile = {\n label: SHOW_YOUR_PROFILE_MENU_ITEM,\n onclick: () => openUserProfile(outliner)\n }\n\n const logOut: UserMenuItem = {\n label: LOG_OUT_MENU_ITEM,\n onclick: () => {\n authSession.logout()\n }\n }\n\n // the order of the menu is important here, show profile first and logout last\n let userMenuList:UserMenuItem[] = [] // was [showProfile]\n userMenuList = userMenuList.concat(await getMenuItems(outliner))\n userMenuList.push(logOut)\n\n return userMenuList\n}\n\n// Does not work to jump to user profile,\nfunction openUserProfile (outliner: any) {\n outliner.GotoSubject(authn.currentUser(), true, undefined, true, undefined)\n location.reload()\n}\n\nasync function getMenuItems (outliner: any) {\n const items = await outliner.getDashboardItems()\n return items.map((element) => {\n return {\n label: element.label,\n onclick: () => openDashboardPane(outliner, element.tabName || element.paneName)\n }\n })\n}\n\nasync function openDashboardPane (outliner: any, pane: string): Promise<void> {\n outliner.showDashboard({\n pane\n })\n}\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA;AACA;AACA;AACA,MAAME,cAAc,GAAGC,cAAK,CAACC,QAAQ,GAAG,eAAe;AACvD,MAAMC,cAAc,GAAG,sDAAsD;;AAE7E;AACA;AACA;AACA,MAAMC,oBAAoB,GAAG,YAAY;AACzC,MAAMC,0BAA0B,GAAG,kBAAkB;AACrD,MAAMC,2BAA2B,GAAG,mBAAmB;AACvD,MAAMC,iBAAiB,GAAG,SAAS;AAGnC;AACA;AACA;AACA,MAAMC,mBAAmB,GAAG,sCAAsC;AAClE,MAAMC,yBAAyB,GAAG,2CAA2C;AAEtE,eAAeC,YAAYA,CAAEC,KAAK,EAAEC,QAAQ,EAAE;EACnD,IAAAC,mBAAU,EAACF,KAAK,EAAE,MAAMG,WAAW,CAACF,QAAQ,CAAC,EAAEG,gBAAgB,CAAC,CAAC,CAAC;AACpE;AAEA,SAASA,gBAAgBA,CAAA,EAAI;EAC3B,MAAMC,YAAY,GAAG,CACnB;IAAEC,KAAK,EAAEb,oBAAoB;IAAEc,GAAG,EAAEV,mBAAmB;IAAEW,MAAM,EAAE;EAAS,CAAC,EAC3E;IAAEF,KAAK,EAAEZ,0BAA0B;IAAEa,GAAG,EAAET,yBAAyB;IAAEU,MAAM,EAAE;EAAS,CAAC,CACxF;EACD,MAAMC,aAAa,GAAG;IAAEC,IAAI,EAAElB,cAAc;IAAEmB,QAAQ,EAAEtB,cAAc;IAAEgB;EAAa,CAAC;EAEtF,OAAOI,aAAa;AACtB;AAEA,eAAeN,WAAWA,CAAEF,QAAa,EAAE;EACzC;EACA,MAAMW,WAAW,GAAG;IAClBN,KAAK,EAAEX,2BAA2B;IAClCkB,OAAO,EAAEA,CAAA,KAAMC,eAAe,CAACb,QAAQ;EACzC,CAAC;EAED,MAAMc,MAAoB,GAAG;IAC3BT,KAAK,EAAEV,iBAAiB;IACxBiB,OAAO,EAAEA,CAAA,KAAM;MACbG,uBAAW,CAACC,MAAM,CAAC,CAAC;IACtB;EACF,CAAC;;EAED;EACA,IAAIC,YAA2B,GAAG,EAAE,EAAC;EACrCA,YAAY,GAAGA,YAAY,CAACC,MAAM,CAAC,MAAMC,YAAY,CAACnB,QAAQ,CAAC,CAAC;EAChEiB,YAAY,CAACG,IAAI,CAACN,MAAM,CAAC;EAEzB,OAAOG,YAAY;AACrB;;AAEA;AACA,SAASJ,eAAeA,CAAEb,QAAa,EAAE;EACvCA,QAAQ,CAACqB,WAAW,CAACC,iBAAK,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAEC,SAAS,EAAE,IAAI,EAAEA,SAAS,CAAC;EAC3EC,QAAQ,CAACC,MAAM,CAAC,CAAC;AACnB;AAEA,eAAeP,YAAYA,CAAEnB,QAAa,EAAE;EAC1C,MAAM2B,KAAK,GAAG,MAAM3B,QAAQ,CAAC4B,iBAAiB,CAAC,CAAC;EAChD,OAAOD,KAAK,CAACE,GAAG,CAAEC,OAAO,IAAK;IAC5B,OAAO;MACLzB,KAAK,EAAEyB,OAAO,CAACzB,KAAK;MACpBO,OAAO,EAAEA,CAAA,KAAMmB,iBAAiB,CAAC/B,QAAQ,EAAE8B,OAAO,CAACE,OAAO,IAAIF,OAAO,CAACG,QAAQ;IAChF,CAAC;EACH,CAAC,CAAC;AACJ;AAEA,eAAeF,iBAAiBA,CAAE/B,QAAa,EAAEkC,IAAY,EAAiB;EAC5ElC,QAAQ,CAACmC,aAAa,CAAC;IACrBD;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_index","require","_header","_footer","initMainPage","store","uri","outliner","getOutliner","document","window","location","href","subject","sym","GotoSubject","undefined","header","createHeader","footer","createFooter","Promise","all"],"sources":["../../src/mainPage/index.ts"],"sourcesContent":["/* Main Page\n **\n ** This code is called in mashlib and renders the header and footer of the Databrowser.\n */\n\nimport { LiveStore, NamedNode } from 'rdflib'\nimport { getOutliner } from '../index'\nimport { createHeader } from './header'\nimport { createFooter } from './footer'\n\nexport default async function initMainPage (store: LiveStore, uri?: string | NamedNode | null) {\n const outliner = getOutliner(document)\n uri = uri || window.location.href\n let subject = uri\n if (typeof uri === 'string') subject = store.sym(uri)\n outliner.GotoSubject(subject, true, undefined, true, undefined)\n const header = await createHeader(store, outliner)\n const footer = createFooter(store)\n return Promise.all([header, footer])\n}\n"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AARA;AACA;AACA;AACA;;AAOe,eAAeG,YAAYA,CAAEC,KAAgB,EAAEC,GAA+B,EAAE;EAC7F,MAAMC,QAAQ,GAAG,IAAAC,kBAAW,EAACC,QAAQ,CAAC;EACtCH,GAAG,GAAGA,GAAG,IAAII,MAAM,CAACC,QAAQ,CAACC,IAAI;EACjC,IAAIC,OAAO,GAAGP,GAAG;EACjB,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAEO,OAAO,GAAGR,KAAK,CAACS,GAAG,CAACR,GAAG,CAAC;EACrDC,QAAQ,CAACQ,WAAW,CAACF,OAAO,EAAE,IAAI,EAAEG,SAAS,EAAE,IAAI,EAAEA,SAAS,CAAC;EAC/D,MAAMC,MAAM,GAAG,MAAM,IAAAC,oBAAY,EAACb,KAAK,EAAEE,QAAQ,CAAC;EAClD,MAAMY,MAAM,GAAG,IAAAC,oBAAY,EAACf,KAAK,CAAC;EAClC,OAAOgB,OAAO,CAACC,GAAG,CAAC,CAACL,MAAM,EAAEE,MAAM,CAAC,CAAC;AACtC","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"microblogPane.js","names":["_solidLogic","require","UI","_interopRequireWildcard","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_default","exports","icon","icons","originalIconBase","name","label","subject","store","whether","ns","rdf","foaf","render","s","doc","SIOC","Namespace","SIOCt","FOAF","terms","RDF","kb","charCount","sf","fetcher","sparqlUpdater","updater","FollowList","user","userlist","uris","myFollows","each","sym","mf","add","any","uri","prototype","push","selectUser","length","Favorites","favorites","favoritesURI","split","created","c","favs","favorited","post","callback","batch","Statement","insert_statement","a","success","predicate","object","why","remove","delete_statement","Microblog","theUser","authn","currentUser","theAccount","preferences","getUser","User","avatar","id","getPost","Post","postLink","Date","anyValue","h","getHours","m","getMinutes","mo","da","ds","getDay","getDate","getMonth","getFullYear","date","mentions","message","String","creator","gen_random_uri","base","uriNonce","Math","floor","random","statusUpdate","statusMsg","replyTo","meta","myUserURI","getMyURI","myUser","newPost","microlist","micro","microlistelement","recipients","mblogs","mbl","replyBatch","b","me","console","log","myMicroblog","generateNewMB","loc","host","rememberMicroblog","cbgenUserMB","d","alert","triple","genUserMB","mb","myFavorites","myFollowList","Pane","microblogPane","TabManager","tablist","tabView","createElement","className","create","caption","view","isDefault","tab","innerHTML","change","addEventListener","evt","target","appendChild","getTabView","getElementById","replace","accounts","account","Ifollow","resourceType","thisIsMe","meUri","Tab","notify","messageString","xmsg","setTimeout","removeChild","header","that","lsFollowUser","username","mbconfirmFollow","_msg","followMe","removeMany","xfollowButton","disabled","followButtonLabel","doFollow","value","mbCancelNewMB","_evt","xupdateContainer","childNodes","xcreateNewMB","lsCreateNewMB","xcmb","xcmbName","xcmbId","xcmbAvatar","workspace","xcmbWritable","focus","mbSubmitPost","cbconfirmSubmit","responseText","xupdateSubmit","xupdateStatus","mbLetterCount","insertBefore","generatePost","words","mbUpdateWithReplies","xinReplyToContainer","word","match","atUser","recipient","xrecipients","xrecipientsSubmit","type","parentNode","recipChoice","recip","choice","toLowerCase","xupdateStatusCounter","style","color","xviewReply","headerContainer","xnotify","createTextNode","cols","xnewUser","subheaderContainer","creators","src","userName","setAttribute","xtabsList","_me","viewPost","xcloseContainer","xcloseButton","xpost","uholdsaccount","undefined","xuname","href","xunameText","xuavatar","xpostContent","postText","xpostLink","tags","mention","lookUpThing","postTags","postFunction","p","pop","person","replacePerson","RegExp","inReplyTo","xreplyTo","theReply","reply","genReplyTo","mbReplyTo","xconfirmDeletionDialog","mbDeletePost","lsconfirmNo","lsconfirmYes","reallyDelete","keyCode","confirmyes","confirmno","mbconfirmDeletePost","deleteThisNode","deleteMe","deleteContainerOf","deleteContainer","statementsMatching","getAttribute","batch_delete_statement","themaker","xreplyButton","xdeleteButton","mbFavorite","nid","favpost","xfavorite","cbFavorite","_c","_d","generatePostList","gmbPosts","postList","postlist","datelist","postDate","sort","reverse","followsView","getFollowed","userid","follow","fol","xfollows","creatorFollows","xfollowsList","thisPerson","streamView","postContainer","mbPosts","follows","smicroblogs","smb","concat","notificationsView","postNotificationContainer","postMentionContainer","mbnPosts","mbmPosts","microblogs","mbm","postNotificationList","postMentionList","build","microblogpane","ppane"],"sources":["../../src/microblogPane/microblogPane.js"],"sourcesContent":["/*\n Microblog pane\n Charles McKenzie <charles2@mit.edu>\n*/\n/* global alert */\nimport { authn, store } from 'solid-logic'\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\n\nexport default {\n icon: UI.icons.originalIconBase + 'microblog/microblog.png',\n name: 'microblogPane',\n label: function (subject) {\n if (store.whether(subject, UI.ns.rdf('type'), UI.ns.foaf('Person'))) {\n return 'Microblog'\n } else {\n return null\n }\n },\n render: function (s, doc) {\n //* **********************************************\n // NAMESPACES SECTION\n //* **********************************************\n const SIOC = $rdf.Namespace('http://rdfs.org/sioc/ns#')\n const SIOCt = $rdf.Namespace('http://rdfs.org/sioc/types#')\n const FOAF = $rdf.Namespace('http://xmlns.com/foaf/0.1/')\n const terms = $rdf.Namespace('http://purl.org/dc/terms/')\n const RDF = UI.ns.rdf\n\n const kb = store\n const charCount = 140\n const sf = store.fetcher\n //* **********************************************\n // BACK END\n //* **********************************************\n const sparqlUpdater = kb.updater\n // ----------------------------------------------\n // FOLLOW LIST\n // store the URIs of followed users for\n // dereferencing the @replies\n // ----------------------------------------------\n const FollowList = function (user) {\n this.userlist = {}\n this.uris = {}\n const myFollows = kb.each(kb.sym(user), SIOC('follows'))\n for (const mf in myFollows) {\n this.add(kb.any(myFollows[mf], SIOC('id')), myFollows[mf].uri)\n }\n }\n FollowList.prototype.add = function (user, uri) {\n // add a user to the follows store\n if (this.userlist[user]) {\n if (!(uri in this.uris)) {\n this.userlist[user].push(uri)\n this.uris[uri] = ''\n }\n } else {\n this.userlist[user] = [uri]\n }\n }\n FollowList.prototype.selectUser = function (user) {\n // check if a user is in the follows list.\n if (this.userlist[user]) {\n return [this.userlist[user].length === 1, this.userlist[user]]\n } else {\n // user does not follow any users with this nick\n return [false, []]\n }\n }\n // ----------------------------------------------\n // FAVORITES\n // controls the list of favorites.\n // constructor expects a user as uri.\n // ----------------------------------------------\n const Favorites = function (user) {\n this.favorites = {}\n this.favoritesURI = ''\n if (!user) {\n // TODO is this even useful?\n return\n }\n this.user = user.split('#')[0]\n const created = kb.each(kb.sym(user), SIOC('creator_of'))\n for (const c in created) {\n if (kb.whether(created[c], RDF('type'), SIOCt('FavouriteThings'))) {\n this.favoritesURI = created[c]\n const favs = kb.each(created[c], SIOC('container_of'))\n for (const f in favs) {\n this.favorites[favs[f]] = ''\n }\n break\n }\n }\n }\n Favorites.prototype.favorited = function (post) {\n /* Favorited- returns true if the post is a favorite\n false otherwise */\n return kb.sym(post) in this.favorites\n }\n Favorites.prototype.add = function (post, callback) {\n const batch = new $rdf.Statement(\n this.favoritesURI,\n SIOC('container_of'),\n kb.sym(post),\n kb.sym(this.user)\n )\n sparqlUpdater.insert_statement(batch, function (a, success, c) {\n if (success) {\n kb.add(batch.subject, batch.predicate, batch.object, batch.why)\n }\n callback(a, success, c)\n })\n }\n Favorites.prototype.remove = function (post, callback) {\n const batch = new $rdf.Statement(\n this.favoritesURI,\n SIOC('container_of'),\n kb.sym(post),\n kb.sym(this.user)\n )\n sparqlUpdater.delete_statement(batch, function (a, success, c) {\n if (success) {\n kb.add(batch.subject, batch.predicate, batch.object, batch.why)\n }\n callback(a, success, c)\n })\n }\n // ----------------------------------------------\n // MICROBLOG\n // store the uri's of followed users for\n // dereferencing the @replies.\n // ----------------------------------------------\n const Microblog = function (kb) {\n this.kb = kb\n\n // attempt to fetch user account from local preferences if just\n // in case the user's foaf was not writable. add it to the store\n // this will probably need to change.\n const theUser = authn.currentUser()\n\n if (theUser) {\n let theAccount = UI.preferences.get('acct')\n\n if (theAccount) {\n theAccount = kb.sym(theAccount)\n }\n\n if (theUser && theAccount) {\n kb.add(\n theUser,\n FOAF('holdsAccount'),\n theAccount,\n theUser.uri.split('#')[0]\n )\n }\n }\n }\n Microblog.prototype.getUser = function (uri) {\n const User = {}\n User.name = kb.any(uri, SIOC('name')) ? kb.any(uri, SIOC('name')) : ''\n User.avatar = kb.any(uri, SIOC('avatar'))\n ? kb.any(uri, SIOC('avatar'))\n : ''\n User.id = kb.any(uri, SIOC('id'))\n User.sym = uri\n return User\n }\n\n Microblog.prototype.getPost = function (uri) {\n const Post = {}\n // date ----------\n let postLink = new Date(kb.anyValue(uri, terms('created')))\n let h = postLink.getHours()\n const a = h > 12 ? ' PM' : ' AM'\n h = h > 12 ? h - 12 : h\n let m = postLink.getMinutes()\n m = m < 10 ? '0' + m : m\n const mo = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ]\n const da = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n const ds =\n da[postLink.getDay()] +\n ' ' +\n postLink.getDate() +\n ' ' +\n mo[postLink.getMonth()] +\n ' ' +\n postLink.getFullYear()\n postLink = h + ':' + m + a + ' on ' + ds\n Post.date = postLink\n // ---------\n Post.mentions = ''\n Post.message = String(kb.any(uri, SIOC('content')))\n Post.creator = kb.any(uri, SIOC('has_creator'))\n Post.uri = ''\n return Post\n }\n Microblog.prototype.gen_random_uri = function (base) {\n // generate random uri\n const uriNonce = base + '#n' + Math.floor(Math.random() * 10e9)\n return kb.sym(uriNonce)\n }\n Microblog.prototype.statusUpdate = function (\n statusMsg,\n callback,\n replyTo,\n meta\n ) {\n const myUserURI = this.getMyURI()\n const myUser = kb.sym(myUserURI.split('#')[0])\n const newPost = this.gen_random_uri(myUser.uri)\n const microlist = kb.each(kb.sym(myUserURI), SIOC('creator_of'))\n let micro\n for (const microlistelement in microlist) {\n if (\n kb.whether(\n microlist[microlistelement],\n RDF('type'),\n SIOCt('Microblog')\n ) &&\n !kb.whether(\n microlist[microlistelement],\n SIOC('topic'),\n kb.sym(this.getMyURI())\n )\n ) {\n micro = microlist[microlistelement]\n break\n }\n }\n\n // generate new post\n const batch = [\n new $rdf.Statement(\n newPost,\n RDF('type'),\n SIOCt('MicroblogPost'),\n myUser\n ),\n new $rdf.Statement(\n newPost,\n SIOC('has_creator'),\n kb.sym(myUserURI),\n myUser\n ),\n new $rdf.Statement(newPost, SIOC('content'), statusMsg, myUser),\n new $rdf.Statement(newPost, terms('created'), new Date(), myUser),\n new $rdf.Statement(micro, SIOC('container_of'), newPost, myUser)\n ]\n\n // message replies\n if (replyTo) {\n batch.push(\n new $rdf.Statement(\n newPost,\n SIOC('reply_of'),\n kb.sym(replyTo),\n myUser\n )\n )\n }\n\n // @replies, #hashtags, !groupReplies\n for (const r in meta.recipients) {\n batch.push(\n new $rdf.Statement(\n newPost,\n SIOC('topic'),\n kb.sym(meta.recipients[r]),\n myUser\n )\n )\n batch.push(\n new $rdf.Statement(kb.any(), SIOC('container_of'), newPost, myUser)\n )\n const mblogs = kb.each(kb.sym(meta.recipients[r]), SIOC('creator_of'))\n for (const mbl in mblogs) {\n if (\n kb.whether(mblogs[mbl], SIOC('topic'), kb.sym(meta.recipients[r]))\n ) {\n const replyBatch = new $rdf.Statement(\n mblogs[mbl],\n SIOC('container_of'),\n newPost,\n kb.sym(meta.recipients[r].split('#')[0])\n )\n sparqlUpdater.insert_statement(replyBatch)\n }\n }\n }\n\n sparqlUpdater.insert_statement(batch, function (a, b, c) {\n callback(a, b, c, batch)\n })\n }\n Microblog.prototype.getMyURI = function () {\n const me = authn.currentUser()\n console.log(me)\n const myMicroblog = kb.any(kb.sym(me), FOAF('holdsAccount'))\n console.log('\\n\\n' + myMicroblog)\n return myMicroblog ? myMicroblog.uri : false\n }\n Microblog.prototype.generateNewMB = function (id, name, avatar, loc) {\n const host = loc + '/' + id\n const rememberMicroblog = function () {\n UI.preferences.set('acct', host + '#' + id)\n }\n const cbgenUserMB = function (a, success, c, d) {\n if (success) {\n alert(\n 'Microblog generated at ' +\n host +\n '#' +\n id +\n 'please add <b>' +\n host +\n '</b> to your foaf.'\n )\n // mbCancelNewMB() @@TBD\n // assume the foaf is not writable and store the microblog to the\n // preferences for later retrieval.\n // this will probably need to change.\n rememberMicroblog()\n for (const triple in d) {\n kb.add(\n d[triple].subject,\n d[triple].predicate,\n d[triple].object,\n d[triple].why\n )\n }\n }\n }\n\n const genUserMB = [\n // user\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n RDF('type'),\n SIOC('User'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#mb'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#mbn'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#fav'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('name'),\n name,\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('id'),\n id,\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n RDF('label'),\n id,\n kb.sym(host)\n ),\n new $rdf.Statement(\n s,\n FOAF('holdsAccount'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // microblog\n new $rdf.Statement(\n kb.sym(host + '#mb'),\n RDF('type'),\n SIOCt('Microblog'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#mb'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // notification microblog\n new $rdf.Statement(\n kb.sym(host + '#mbn'),\n RDF('type'),\n SIOCt('Microblog'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#mbn'),\n SIOC('topic'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#mbn'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // favorites container\n new $rdf.Statement(\n kb.sym(host + '#fav'),\n RDF('type'),\n SIOCt('FavouriteThings'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#fav'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n )\n ]\n if (avatar) {\n // avatar optional\n genUserMB.push(\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('avatar'),\n kb.sym(avatar),\n kb.sym(host)\n )\n )\n }\n sparqlUpdater.insert_statement(genUserMB, cbgenUserMB)\n }\n const mb = new Microblog(kb)\n const myFavorites = new Favorites(mb.getMyURI())\n const myFollowList = new FollowList(mb.getMyURI())\n\n //* **********************************************\n // FRONT END FUNCTIONALITY\n //* **********************************************\n // ----------------------------------------------\n // PANE\n // User Interface for the Microblog Pane\n // ----------------------------------------------\n const Pane = function (s, doc, microblogPane) {\n const TabManager = function (doc) {\n this.tablist = {}\n this.doc = doc\n this.tabView = doc.createElement('ul')\n this.tabView.className = 'tabslist'\n }\n TabManager.prototype.create = function (id, caption, view, isDefault) {\n const tab = this.doc.createElement('li')\n tab.innerHTML = caption\n if (isDefault) {\n tab.className = 'active'\n }\n tab.id = id\n const change = this.change\n const tablist = this.tablist\n tab.addEventListener(\n 'click',\n function (evt) {\n change(evt.target.id, tablist, doc)\n },\n false\n )\n\n this.tablist[id] = { view: view.id, tab }\n this.tabView.appendChild(tab)\n }\n TabManager.prototype.getTabView = function () {\n return this.tabView\n }\n TabManager.prototype.change = function (id, tablist, doc) {\n for (const tab in tablist) {\n if (tab === id) {\n tablist[id].tab.className = 'active'\n doc.getElementById(tablist[id].view).className += ' active'\n } else {\n const view = doc.getElementById(tablist[tab].view)\n view.className = view.className.replace(/\\w*active\\w*/, '')\n tablist[tab].tab.className = tablist[id].tab.className.replace(\n /\\w*active\\w*/,\n ''\n )\n }\n }\n }\n this.microblogPane = microblogPane\n const accounts = kb.each(s, FOAF('holdsAccount'))\n let account\n for (const a in accounts) {\n if (\n kb.whether(accounts[a], RDF('type'), SIOC('User')) &&\n kb.whether(\n kb.any(accounts[a], SIOC('creator_of')),\n RDF('type'),\n SIOCt('Microblog')\n )\n ) {\n account = accounts[a]\n break\n }\n }\n this.Ifollow = kb.whether(kb.sym(mb.getMyURI()), SIOC('follows'), account)\n const resourceType = kb.any(s, RDF('type'))\n if (\n resourceType.uri === SIOCt('Microblog').uri ||\n resourceType.uri === SIOCt('MicroblogPost').uri\n ) {\n this.thisIsMe = kb.any(s, SIOC('has_creator')).uri === mb.getMyURI()\n } else if (resourceType.uri === SIOC('User').uri) {\n this.thisIsMe = s.uri === mb.getMyURI()\n } else if (resourceType.uri === FOAF('Person').uri) {\n const me = authn.currentUser()\n const meUri = me && me.uri\n this.thisIsMe = s.uri === meUri\n } else {\n this.thisIsMe = false\n }\n\n this.Tab = new TabManager(doc)\n }\n\n Pane.prototype.notify = function (messageString) {\n const xmsg = doc.createElement('li')\n xmsg.className = 'notify'\n xmsg.innerHTML = messageString\n doc.getElementById('notify-container').appendChild(xmsg)\n setTimeout(function () {\n doc.getElementById('notify-container').removeChild(xmsg)\n // delete xmsg;\n }, 4000)\n }\n\n Pane.prototype.header = function (s, doc) {\n const that = this\n function lsFollowUser () {\n const myUser = kb.sym(mb.getMyURI())\n // var Ifollow = that.Ifollow\n const username = that.creator.name\n const mbconfirmFollow = function (uri, success, _msg) {\n if (success === true) {\n if (!that.Ifollow) {\n // prevent duplicate entries from being added to kb (because that was happening)\n if (\n !kb.whether(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n ) {\n kb.add(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n }\n } else {\n kb.removeMany(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n }\n console.log(that.Ifollow)\n that.Ifollow = !that.Ifollow\n xfollowButton.disabled = false\n console.log(that.Ifollow)\n const followButtonLabel = that.Ifollow ? 'Unfollow ' : 'Follow '\n const doFollow = that.Ifollow ? 'now follow ' : 'no longer follow '\n xfollowButton.value = followButtonLabel + username\n that.notify('You ' + doFollow + username + '.')\n }\n }\n const followMe = new $rdf.Statement(\n myUser,\n SIOC('follows'),\n that.creator.sym,\n myUser\n )\n xfollowButton.disabled = true\n xfollowButton.value = 'Updating...'\n if (!that.Ifollow) {\n sparqlUpdater.insert_statement(followMe, mbconfirmFollow)\n } else {\n sparqlUpdater.delete_statement(followMe, mbconfirmFollow)\n }\n }\n const notify = function (messageString) {\n const xmsg = doc.createElement('li')\n xmsg.className = 'notify'\n xmsg.innerHTML = messageString\n doc.getElementById('notify-container').appendChild(xmsg)\n setTimeout(function () {\n doc.getElementById('notify-container').removeChild(xmsg)\n // delete xmsg;\n }, 4000)\n }\n const mbCancelNewMB = function (_evt) {\n xupdateContainer.removeChild(\n xupdateContainer.childNodes[xupdateContainer.childNodes.length - 1]\n )\n xcreateNewMB.disabled = false\n }\n const lsCreateNewMB = function (_evt) {\n // disable the create new microblog button.\n // then prefills the information.\n xcreateNewMB.disabled = true\n const xcmb = doc.createElement('div')\n const xcmbName = doc.createElement('input')\n if (kb.whether(s, FOAF('name'))) {\n // handle use of FOAF:NAME\n xcmbName.value = kb.any(s, FOAF('name'))\n } else {\n // handle use of family and given name\n xcmbName.value = kb.any(s, FOAF('givenname'))\n ? kb.any(s, FOAF('givenname')) + ' '\n : ''\n xcmbName.value += kb.any(s, FOAF('family_name'))\n ? kb.any(s, FOAF('givenname'))\n : ''\n xcmbName.value =\n kb.any(s, FOAF('givenname')) + ' ' + kb.any(s, FOAF('family_name'))\n }\n const xcmbId = doc.createElement('input')\n xcmbId.value = kb.any(s, FOAF('nick')) ? kb.any(s, FOAF('nick')) : ''\n const xcmbAvatar = doc.createElement('input')\n if (kb.whether(s, FOAF('img'))) {\n // handle use of img\n xcmbAvatar.value = kb.any(s, FOAF('img')).uri\n } else {\n // otherwise try depiction\n xcmbAvatar.value = kb.any(s, FOAF('depiction'))\n ? kb.any(s, FOAF('depiction')).uri\n : ''\n }\n let workspace\n // = kb.any(s,WORKSPACE) //TODO - ADD URI FOR WORKSPACE DEFINITION\n const xcmbWritable = doc.createElement('input')\n xcmbWritable.value =\n workspace || 'http://dig.csail.mit.edu/2007/wiki/sandbox' // @@@\n xcmb.innerHTML = `\n <form class =\"createNewMB\" id=\"createNewMB\">\n <p id=\"xcmbname\"><span class=\"\">Name: </span></p>\n <p id=\"xcmbid\">Id: </p>\n <p id=\"xcmbavatar\">Avatar: </p>\n <p id=\"xcmbwritable\">Host my microblog at: </p>\n <input type=\"button\" id=\"mbCancel\" value=\"Cancel\" />\n <input type=\"submit\" id=\"mbCreate\" value=\"Create!\" />\n </form>\n `\n xupdateContainer.appendChild(xcmb)\n doc.getElementById('xcmbname').appendChild(xcmbName)\n doc.getElementById('xcmbid').appendChild(xcmbId)\n doc.getElementById('xcmbavatar').appendChild(xcmbAvatar)\n doc.getElementById('xcmbwritable').appendChild(xcmbWritable)\n doc\n .getElementById('mbCancel')\n .addEventListener('click', mbCancelNewMB, false)\n doc.getElementById('createNewMB').addEventListener(\n 'submit',\n function () {\n mb.generateNewMB(\n xcmbId.value,\n xcmbName.value,\n xcmbAvatar.value,\n xcmbWritable.value\n )\n },\n false\n )\n xcmbName.focus()\n }\n const mbSubmitPost = function () {\n const meta = {\n recipients: []\n }\n // user has selected a microblog to post to\n if (mb.getMyURI()) {\n // let myUser = kb.sym(mb.getMyURI())\n // submission callback\n const cbconfirmSubmit = function (uri, success, responseText, d) {\n if (success === true) {\n for (const triple in d) {\n kb.add(\n d[triple].subject,\n d[triple].predicate,\n d[triple].object,\n d[triple].why\n )\n }\n xupdateSubmit.disabled = false\n xupdateStatus.value = ''\n mbLetterCount()\n notify('Microblog Updated.')\n if (that.thisIsMe) {\n doc\n .getElementById('postNotificationList')\n .insertBefore(\n that.generatePost(d[0].subject),\n doc.getElementById('postNotificationList').childNodes[0]\n )\n }\n } else {\n notify('There was a problem submitting your post.')\n }\n }\n const words = xupdateStatus.value.split(' ')\n const mbUpdateWithReplies = function () {\n xupdateSubmit.disabled = true\n xupdateSubmit.value = 'Updating...'\n mb.statusUpdate(\n xupdateStatus.value,\n cbconfirmSubmit,\n xinReplyToContainer.value,\n meta\n )\n }\n for (const word in words) {\n if (words[word].match(/@\\w+/)) {\n const atUser = words[word].replace(/\\W/g, '')\n const recipient = myFollowList.selectUser(atUser)\n if (recipient[0] === true) {\n meta.recipients.push(recipient[1][0])\n } else if (recipient[1].length > 1) {\n // if multiple users allow the user to choose\n const xrecipients = doc.createElement('select')\n const xrecipientsSubmit = doc.createElement('input')\n xrecipientsSubmit.type = 'button'\n xrecipientsSubmit.value = 'Continue'\n xrecipientsSubmit.addEventListener(\n 'click',\n function () {\n meta.recipients.push(recipient[1][xrecipients.value])\n mbUpdateWithReplies()\n xrecipients.parentNode.removeChild(xrecipientsSubmit)\n xrecipients.parentNode.removeChild(xrecipients)\n },\n false\n )\n const recipChoice = function (recip, c) {\n const name = kb.any(kb.sym(recip), SIOC('name'))\n const choice = doc.createElement('option')\n choice.value = c\n choice.innerHTML = name\n return choice\n }\n for (const r in recipient[1]) {\n xrecipients.appendChild(recipChoice(recipient[1][r], r))\n }\n xupdateContainer.appendChild(xrecipients)\n xupdateContainer.appendChild(xrecipientsSubmit)\n return\n } else {\n // no users known or self reference.\n if (\n String(\n kb.any(kb.sym(mb.getMyURI()), SIOC('id'))\n ).toLowerCase() === atUser.toLowerCase()\n ) {\n meta.recipients.push(mb.getMyURI())\n } else {\n notify(\n 'You do not follow ' +\n atUser +\n '. Try following ' +\n atUser +\n ' before mentioning them.'\n )\n return\n }\n }\n }\n /* else if(words[word].match(/\\#\\w+/)){\n //hashtag\n } else if(words[word].match(/\\!\\w+/)){\n //usergroup\n } */\n }\n mbUpdateWithReplies()\n } else {\n notify('Please set your microblog first.')\n }\n }\n const mbLetterCount = function () {\n xupdateStatusCounter.innerHTML = charCount - xupdateStatus.value.length\n xupdateStatusCounter.style.color =\n charCount - xupdateStatus.value.length < 0 ? '#c33' : ''\n if (xupdateStatus.value.length === 0) {\n xinReplyToContainer.value = ''\n xupdateSubmit.value = 'Send'\n }\n }\n // reply viewer\n const xviewReply = doc.createElement('ul')\n xviewReply.className = 'replyView'\n xviewReply.addEventListener(\n 'click',\n function () {\n xviewReply.className = 'replyView'\n },\n false\n )\n this.xviewReply = xviewReply\n const headerContainer = doc.createElement('div')\n headerContainer.className = 'header-container'\n\n // ---create status update box---\n const xnotify = doc.createElement('ul')\n xnotify.id = 'notify-container'\n xnotify.className = 'notify-container'\n this.xnotify = xnotify\n const xupdateContainer = doc.createElement('form')\n xupdateContainer.className = 'update-container'\n xupdateContainer.innerHTML = '<h3>What are you up to?</h3>'\n let xinReplyToContainer\n let xupdateStatus\n let xupdateStatusCounter\n let xupdateSubmit\n let xcreateNewMB\n if (mb.getMyURI()) {\n xinReplyToContainer = doc.createElement('input')\n xinReplyToContainer.id = 'xinReplyToContainer'\n xinReplyToContainer.type = 'hidden'\n\n xupdateStatus = doc.createElement('textarea')\n xupdateStatus.id = 'xupdateStatus'\n\n xupdateStatusCounter = doc.createElement('span')\n xupdateStatusCounter.appendChild(doc.createTextNode(charCount))\n xupdateStatus.cols = 30\n xupdateStatus.addEventListener('keyup', mbLetterCount, false)\n xupdateStatus.addEventListener('focus', mbLetterCount, false)\n\n xupdateSubmit = doc.createElement('input')\n xupdateSubmit.id = 'xupdateSubmit'\n xupdateSubmit.type = 'submit'\n xupdateSubmit.value = 'Send'\n\n xupdateContainer.appendChild(xinReplyToContainer)\n xupdateContainer.appendChild(xupdateStatusCounter)\n xupdateContainer.appendChild(xupdateStatus)\n xupdateContainer.appendChild(xupdateSubmit)\n xupdateContainer.addEventListener('submit', mbSubmitPost, false)\n } else {\n const xnewUser = doc.createTextNode(\n 'Hi, it looks like you don\\'t have a microblog, ' +\n ' would you like to create one? '\n )\n xcreateNewMB = doc.createElement('input')\n xcreateNewMB.type = 'button'\n xcreateNewMB.value = 'Create a new Microblog'\n xcreateNewMB.addEventListener('click', lsCreateNewMB, false)\n xupdateContainer.appendChild(xnewUser)\n xupdateContainer.appendChild(xcreateNewMB)\n }\n\n headerContainer.appendChild(xupdateContainer)\n\n const subheaderContainer = doc.createElement('div')\n subheaderContainer.className = 'subheader-container'\n\n // user header\n // this.creator\n const creators = kb.each(s, FOAF('holdsAccount'))\n let creator\n for (const c in creators) {\n if (\n kb.whether(creators[c], RDF('type'), SIOC('User')) &&\n kb.whether(\n kb.any(creators[c], SIOC('creator_of')),\n RDF('type'),\n SIOCt('Microblog')\n )\n ) {\n creator = creators[c]\n // var mb = kb.sym(creator.uri.split(\"#\")[0]);\n // store.fetcher.refresh(mb);\n break\n // TODO add support for more than one microblog in same foaf\n }\n }\n let xfollowButton\n if (creator) {\n this.creator = mb.getUser(creator)\n // ---display avatar, if available ---\n if (this.creator.avatar !== '') {\n const avatar = doc.createElement('img')\n avatar.src = this.creator.avatar.uri\n subheaderContainer.appendChild(avatar)\n }\n // ---generate name ---\n const userName = doc.createElement('h1')\n userName.className = 'fn'\n userName.appendChild(\n doc.createTextNode(this.creator.name + ' (' + this.creator.id + ')')\n )\n subheaderContainer.appendChild(userName)\n // ---display follow button---\n if (!this.thisIsMe && mb.getMyURI()) {\n xfollowButton = doc.createElement('input')\n xfollowButton.setAttribute('type', 'button')\n const followButtonLabel = this.Ifollow ? 'Unfollow ' : 'Follow '\n xfollowButton.value = followButtonLabel + this.creator.name\n xfollowButton.addEventListener('click', lsFollowUser, false)\n subheaderContainer.appendChild(xfollowButton)\n }\n // user header end\n // header tabs\n const xtabsList = this.Tab.getTabView()\n headerContainer.appendChild(subheaderContainer)\n headerContainer.appendChild(xtabsList)\n }\n return headerContainer\n }\n Pane.prototype.generatePost = function (post, _me) {\n /*\n generatePost - Creates and formats microblog posts\n post - symbol of the uri the post in question\n */\n const that = this\n const viewPost = function (uris) {\n const xviewReply = that.xviewReply\n for (let i = 0; i < xviewReply.childNodes.length; i++) {\n xviewReply.removeChild(xviewReply.childNodes[0])\n }\n const xcloseContainer = doc.createElement('li')\n xcloseContainer.className = 'closeContainer'\n const xcloseButton = doc.createElement('span')\n xcloseButton.innerHTML = '×'\n xcloseButton.className = 'closeButton'\n xcloseContainer.appendChild(xcloseButton)\n xviewReply.appendChild(xcloseContainer)\n for (const uri in uris) {\n xviewReply.appendChild(\n that.generatePost(kb.sym(uris[uri]), this.thisIsMe, 'view')\n )\n }\n xviewReply.className = 'replyView-active'\n that.microblogPane.appendChild(xviewReply)\n }\n // container for post\n const xpost = doc.createElement('li')\n xpost.className = 'post'\n xpost.setAttribute('id', String(post.uri).split('#')[1])\n const Post = mb.getPost(post)\n // username text\n // var uname = kb.any(kb.any(post, SIOC('has_creator')), SIOC('id'))\n const uholdsaccount = kb.any(\n undefined,\n FOAF('holdsAccount'),\n kb.any(post, SIOC('has_creator'))\n )\n const xuname = doc.createElement('a')\n xuname.href = uholdsaccount.uri\n xuname.className = 'userLink'\n const xunameText = doc.createTextNode(mb.getUser(Post.creator).id)\n xuname.appendChild(xunameText)\n // user image\n const xuavatar = doc.createElement('img')\n xuavatar.src = mb.getUser(Post.creator).avatar.uri\n xuavatar.className = 'postAvatar'\n // post content\n const xpostContent = doc.createElement('blockquote')\n let postText = Post.message\n // post date\n const xpostLink = doc.createElement('a')\n xpostLink.className = 'postLink'\n xpostLink.addEventListener(\n 'click',\n function () {\n viewPost([post.uri])\n },\n false\n )\n xpostLink.id = 'post_' + String(post.uri).split('#')[1]\n xpostLink.setAttribute('content', post.uri)\n xpostLink.setAttribute('property', 'permalink')\n const postLink = doc.createTextNode(\n Post.date ? Post.date : 'post date unknown'\n )\n xpostLink.appendChild(postLink)\n\n // LINK META DATA (MENTIONS, HASHTAGS, GROUPS)\n const mentions = kb.each(post, SIOC('topic'))\n const tags = {}\n\n for (const mention in mentions) {\n sf.lookUpThing(mentions[mention])\n const id = kb.any(mentions[mention], SIOC('id'))\n tags['@' + id] = mentions[mention]\n }\n const postTags = postText.match(/(@|#|!)\\w+/g)\n const postFunction = function () {\n const p = postTags.pop()\n return tags[p]\n ? kb.any(undefined, FOAF('holdsAccount'), tags[p]).uri\n : p\n }\n for (const t in tags) {\n const person = t.replace(/@/, '')\n const replacePerson = RegExp('(@|!|#)(' + person + ')')\n postText = postText.replace(\n replacePerson,\n '$1<a href=\"' + postFunction() + '\">$2</a>'\n )\n }\n xpostContent.innerHTML = postText\n\n // in reply to logic\n // This has the potential to support a post that replies to many messages.\n const inReplyTo = kb.each(post, SIOC('reply_of'))\n const xreplyTo = doc.createElement('span')\n let theReply\n for (const reply in inReplyTo) {\n theReply = String(inReplyTo[reply]).replace(/<|>/g, '')\n const genReplyTo = function () {\n const reply = doc.createElement('a')\n reply.innerHTML = ', <b>in reply to</b>'\n reply.addEventListener(\n 'click',\n function () {\n viewPost([post.uri, theReply])\n return false\n },\n false\n )\n return reply\n }\n xreplyTo.appendChild(genReplyTo())\n }\n\n // END LINK META DATA\n // add the reply to and delete buttons to the interface\n const mbReplyTo = function () {\n const id = mb.getUser(Post.creator).id\n const xupdateStatus = doc.getElementById('xupdateStatus')\n const xinReplyToContainer = doc.getElementById('xinReplyToContainer')\n const xupdateSubmit = doc.getElementById('xupdateSubmit')\n xupdateStatus.value = '@' + id + ' '\n xupdateStatus.focus()\n xinReplyToContainer.value = post.uri\n xupdateSubmit.value = 'Reply'\n }\n let xconfirmDeletionDialog\n const mbDeletePost = function (evt) {\n const lsconfirmNo = function () {\n doc\n .getElementById('notify-container')\n .removeChild(xconfirmDeletionDialog)\n evt.target.disabled = false\n }\n const lsconfirmYes = function () {\n reallyDelete()\n doc\n .getElementById('notify-container')\n .removeChild(xconfirmDeletionDialog)\n }\n evt.target.disabled = true\n xconfirmDeletionDialog = doc.createElement('li')\n xconfirmDeletionDialog.className = 'notify conf'\n xconfirmDeletionDialog.innerHTML +=\n '<p>Are you sure you want to delete this post?</p>'\n xconfirmDeletionDialog.addEventListener(\n 'keyup',\n function (evt) {\n if (evt.keyCode === 27) {\n lsconfirmNo()\n }\n },\n false\n )\n const confirmyes = doc.createElement('input')\n confirmyes.type = 'button'\n confirmyes.className = 'confirm'\n confirmyes.value = 'Delete'\n confirmyes.addEventListener('click', lsconfirmYes, false)\n const confirmno = doc.createElement('input')\n confirmno.type = 'button'\n confirmno.className = 'confirm'\n confirmno.value = 'Cancel'\n confirmno.addEventListener('click', lsconfirmNo, false)\n xconfirmDeletionDialog.appendChild(confirmno)\n xconfirmDeletionDialog.appendChild(confirmyes)\n doc\n .getElementById('notify-container')\n .appendChild(xconfirmDeletionDialog)\n confirmno.focus()\n\n const reallyDelete = function () {\n // callback after deletion\n const mbconfirmDeletePost = function (a, success) {\n if (success) {\n that.notify('Post deleted.')\n // update the ui to reflect model changes.\n const deleteThisNode = evt.target.parentNode\n deleteThisNode.parentNode.removeChild(deleteThisNode)\n kb.removeMany(deleteMe)\n } else {\n that.notify('Oops, there was a problem, please try again')\n evt.target.disabled = true\n }\n }\n // delete references to post\n const deleteContainerOf = function (a, success) {\n if (success) {\n const deleteContainer = kb.statementsMatching(\n undefined,\n SIOC('container_of'),\n kb.sym(\n doc\n .getElementById('post_' + evt.target.parentNode.id)\n .getAttribute('content')\n )\n )\n sparqlUpdater.batch_delete_statement(\n deleteContainer,\n mbconfirmDeletePost\n )\n } else {\n that.notify('Oops, there was a problem, please try again')\n evt.target.disabled = false\n }\n }\n // delete attributes of post\n evt.target.disabled = true\n const deleteMe = kb.statementsMatching(\n kb.sym(\n doc\n .getElementById('post_' + evt.target.parentNode.id)\n .getAttribute('content')\n )\n )\n sparqlUpdater.batch_delete_statement(deleteMe, deleteContainerOf)\n }\n }\n let themaker\n let xreplyButton\n let xdeleteButton\n if (mb.getMyURI()) {\n // If the microblog in question does not belong to the user,\n // display the delete post and reply to post buttons.\n themaker = kb.any(post, SIOC('has_creator'))\n if (mb.getMyURI() !== themaker.uri) {\n xreplyButton = doc.createElement('input')\n xreplyButton.type = 'button'\n xreplyButton.value = 'reply'\n xreplyButton.className = 'reply'\n xreplyButton.addEventListener('click', mbReplyTo, false)\n } else {\n xdeleteButton = doc.createElement('input')\n xdeleteButton.type = 'button'\n xdeleteButton.value = 'Delete'\n xdeleteButton.className = 'reply'\n xdeleteButton.addEventListener('click', mbDeletePost, false)\n }\n }\n\n const mbFavorite = function (evt) {\n const nid = evt.target.parentNode.id\n const favpost = doc.getElementById('post_' + nid).getAttribute('content')\n xfavorite.className += ' ing'\n const cbFavorite = function (a, success, _c, _d) {\n if (success) {\n xfavorite.className =\n xfavorite.className.split(' ')[1] === 'ed'\n ? 'favorit'\n : 'favorit ed'\n }\n }\n if (!myFavorites.favorited(favpost)) {\n myFavorites.add(favpost, cbFavorite)\n } else {\n myFavorites.remove(favpost, cbFavorite)\n }\n }\n const xfavorite = doc.createElement('a')\n xfavorite.innerHTML = '★'\n xfavorite.addEventListener('click', mbFavorite, false)\n if (myFavorites.favorited(post.uri)) {\n xfavorite.className = 'favorit ed'\n } else {\n xfavorite.className = 'favorit'\n }\n // build\n xpost.appendChild(xuavatar)\n xpost.appendChild(xpostContent)\n if (mb.getMyURI()) {\n xpost.appendChild(xfavorite)\n if (mb.getMyURI() !== themaker.uri) {\n xpost.appendChild(xreplyButton)\n } else {\n xpost.appendChild(xdeleteButton)\n }\n }\n xpost.appendChild(xuname)\n xpost.appendChild(xpostLink)\n if (inReplyTo !== '') {\n xpost.appendChild(xreplyTo)\n }\n return xpost\n }\n Pane.prototype.generatePostList = function (gmbPosts) {\n /*\n generatePostList - Generate the posts and\n display their results on the interface.\n */\n const postList = doc.createElement('ul')\n const postlist = {}\n const datelist = []\n for (const post in gmbPosts) {\n const postDate = kb.any(gmbPosts[post], terms('created'))\n if (postDate) {\n datelist.push(postDate)\n postlist[postDate] = this.generatePost(gmbPosts[post], this.thisIsMe)\n }\n }\n datelist.sort().reverse()\n for (const d in datelist) {\n postList.appendChild(postlist[datelist[d]])\n }\n return postList\n }\n Pane.prototype.followsView = function () {\n const getFollowed = function (user) {\n let userid = kb.any(user, SIOC('id'))\n const follow = doc.createElement('li')\n follow.className = 'follow'\n userid = userid || user.uri\n let fol = kb.any(undefined, FOAF('holdsAccount'), user)\n fol = fol ? fol.uri : user.uri\n follow.innerHTML = '<a href=\"' + fol + '\">' + userid + '</a>'\n return follow\n }\n const xfollows = doc.createElement('div')\n xfollows.id = 'xfollows'\n xfollows.className = 'followlist-container view-container'\n if (this.creator && kb.whether(this.creator.sym, SIOC('follows'))) {\n const creatorFollows = kb.each(this.creator.sym, SIOC('follows'))\n const xfollowsList = doc.createElement('ul')\n for (const thisPerson in creatorFollows) {\n xfollowsList.appendChild(getFollowed(creatorFollows[thisPerson]))\n }\n xfollows.appendChild(xfollowsList)\n }\n this.Tab.create('tab-follows', 'Follows', xfollows, false)\n return xfollows\n }\n Pane.prototype.streamView = function (s, doc) {\n const postContainer = doc.createElement('div')\n postContainer.id = 'postContainer'\n postContainer.className = 'post-container view-container active'\n let mbPosts = []\n if (kb.whether(s, FOAF('name')) && kb.whether(s, FOAF('holdsAccount'))) {\n sf.lookUpThing(kb.any(s, FOAF('holdsAccount')))\n const follows = kb.each(kb.any(s, FOAF('holdsAccount')), SIOC('follows'))\n for (const f in follows) {\n sf.lookUpThing(follows[f])\n // look up people user follows\n const smicroblogs = kb.each(follows[f], SIOC('creator_of'))\n // get the follows microblogs\n for (const smb in smicroblogs) {\n sf.lookUpThing(smicroblogs[smb])\n if (kb.whether(smicroblogs[smb], SIOC('topic'), follows[f])) {\n continue\n } else {\n mbPosts = mbPosts.concat(\n kb.each(smicroblogs[smb], SIOC('container_of'))\n )\n }\n }\n }\n }\n if (mbPosts.length > 0) {\n const postList = this.generatePostList(mbPosts)\n // generate stream\n postList.id = 'postList'\n postList.className = 'postList'\n postContainer.appendChild(postList)\n }\n this.Tab.create('tab-stream', 'By Follows', postContainer, true)\n return postContainer\n }\n Pane.prototype.notificationsView = function (s, doc) {\n const postNotificationContainer = doc.createElement('div')\n postNotificationContainer.id = 'postNotificationContainer'\n postNotificationContainer.className =\n 'notification-container view-container'\n const postMentionContainer = doc.createElement('div')\n postMentionContainer.id = 'postMentionContainer'\n postMentionContainer.className = 'mention-container view-container'\n let mbnPosts = []\n let mbmPosts = []\n // get mbs that I am the creator of.\n const theUser = kb.any(s, FOAF('holdsAccount'))\n const user = kb.any(theUser, SIOC('id'))\n const microblogs = kb.each(theUser, SIOC('creator_of'))\n for (const mbm in microblogs) {\n sf.lookUpThing(microblogs[mbm])\n if (kb.whether(microblogs[mbm], SIOC('topic'), theUser)) {\n mbmPosts = mbmPosts.concat(\n kb.each(microblogs[mbm], SIOC('container_of'))\n )\n } else {\n if (kb.whether(microblogs[mbm], RDF('type'), SIOCt('Microblog'))) {\n mbnPosts = mbnPosts.concat(\n kb.each(microblogs[mbm], SIOC('container_of'))\n )\n }\n }\n }\n const postNotificationList = this.generatePostList(mbnPosts)\n postNotificationList.id = 'postNotificationList'\n postNotificationList.className = 'postList'\n postNotificationContainer.appendChild(postNotificationList)\n\n const postMentionList = this.generatePostList(mbmPosts)\n postMentionList.id = 'postMentionList'\n postMentionList.className = 'postList'\n postMentionContainer.appendChild(postMentionList)\n this.postMentionContainer = postMentionContainer\n this.postNotificationContainer = postNotificationContainer\n this.Tab.create(\n 'tab-by-user',\n 'By ' + user,\n postNotificationContainer,\n false\n )\n this.Tab.create('tab-at-user', '@' + user, postMentionContainer, false)\n }\n Pane.prototype.build = function () {\n const microblogPane = this.microblogPane\n this.headerContainer = this.header(s, doc)\n this.postContainer = this.streamView(s, doc)\n this.notificationsView(s, doc)\n this.xfollows = this.followsView()\n microblogPane.className = 'ppane'\n microblogPane.appendChild(this.xviewReply)\n microblogPane.appendChild(this.xnotify)\n microblogPane.appendChild(this.headerContainer)\n if (this.xfollows !== undefined) {\n microblogPane.appendChild(this.xfollows)\n }\n microblogPane.appendChild(this.postContainer)\n microblogPane.appendChild(this.postNotificationContainer)\n microblogPane.appendChild(this.postMentionContainer)\n }\n\n const microblogpane = doc.createElement('div')\n // var getusersfollows = function(uri){\n // var follows = new Object();\n // var followsa = {follows:0, matches:0};\n // var accounts = kb.each(s, FOAF(\"holdsAccount\"));\n // //get all of the accounts that a person holds\n // for (var acct in accounts){\n // var account = accounts[acct].uri;\n // var act = kb.each(kb.sym(account),SIOC(\"follows\"));\n // for (var a in act){\n // var thisuri = act[a].uri.split(\"#\")[0];\n // if (!follows[thisuri]){followsa.follows+=1;}\n // follows[thisuri] =true;\n // }\n // }\n //\n // var buildPaneUI = function(uri){\n // followsa.matches = (follows[uri]) ? followsa.matches+1: followsa.matches;\n // console.log(follows.toSource());\n // if(followsa.follows == followsa.matches ){\n const ppane = new Pane(s, doc, microblogpane)\n ppane.build()\n // return false;\n // }\n // else{\n // return true;\n // }\n // }\n // sf.addCallback('done',buildPaneUI);\n // sf.addCallback('fail',buildPaneUI);\n // //fetch each of the followers\n // for (var f in follows){\n // sf.refresh(kb.sym(f));\n // }\n // }(s);\n return microblogpane\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/n3Pane.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"n3Pane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","n3Pane","exports","icon","icons","originalIconBase","name","audience","solid","label","subject","context","store","session","findTypeURIs","statementsMatching","undefined","length","render","myDocument","dom","kb","div","createElement","setAttribute","sts","sz","Serializer","suggestNamespaces","namespaces","setBase","uri","str","statementsToN3","pre","appendChild","createTextNode"],"sources":["../src/n3Pane.js"],"sourcesContent":["/* Notation3 content Pane\n **\n ** This pane shows the content of a particular RDF resource\n ** or at least the RDF semantics we attribute to that resource,\n ** in generated N3 syntax.\n */\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\n\nconst ns = UI.ns\n\nexport const n3Pane = {\n icon: UI.icons.originalIconBase + 'w3c/n3_smaller.png',\n\n name: 'n3',\n\n audience: [ns.solid('Developer')],\n\n label: function (subject, context) {\n const store = context.session.store\n if (\n 'http://www.w3.org/2007/ont/link#ProtocolEvent' in\n store.findTypeURIs(subject)\n ) {\n return null\n }\n const n = store.statementsMatching(undefined, undefined, undefined, subject)\n .length\n if (n === 0) return null\n return 'Data (' + n + ') as N3'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const kb = context.session.store\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'n3Pane')\n // Because of smushing etc, this will not be a copy of the original source\n // We could instead either fetch and re-parse the source,\n // or we could keep all the pre-smushed triples.\n const sts = kb.statementsMatching(undefined, undefined, undefined, subject) // @@ slow with current store!\n /*\n var kludge = kb.formula([]) // No features\n for (var i=0; i< sts.length; i++) {\n s = sts[i]\n kludge.add(s.subject, s.predicate, s.object)\n }\n */\n const sz = $rdf.Serializer(kb)\n sz.suggestNamespaces(kb.namespaces)\n sz.setBase(subject.uri)\n const str = sz.statementsToN3(sts)\n const pre = myDocument.createElement('PRE')\n pre.appendChild(myDocument.createTextNode(str))\n div.appendChild(pre)\n return div\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":["_index","require","createContext","dom","paneRegistry","store","logic","getOutliner","session"],"sources":["../../src/outline/context.ts"],"sourcesContent":["import { DataBrowserContext, PaneRegistry } from 'pane-registry'\nimport { getOutliner } from '../index'\nimport { SolidLogic } from 'solid-logic'\nimport { LiveStore } from 'rdflib'\n\nexport function createContext (\n dom: HTMLDocument,\n paneRegistry: PaneRegistry,\n store: LiveStore,\n logic: SolidLogic\n): DataBrowserContext {\n return {\n dom,\n getOutliner,\n session: {\n paneRegistry,\n store,\n logic\n }\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAIO,SAASC,aAAaA,CAC3BC,GAAiB,EACjBC,YAA0B,EAC1BC,KAAgB,EAChBC,KAAiB,EACG;EACpB,OAAO;IACLH,GAAG;IACHI,WAAW,EAAXA,kBAAW;IACXC,OAAO,EAAE;MACPJ,YAAY;MACZC,KAAK;MACLC;IACF;EACF,CAAC;AACH","ignoreList":[]}
|