solid-ui 2.4.29-ee8e69c2 → 2.4.30-00b22a41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/805.solid-ui.min.js +1 -1
  2. package/dist/805.solid-ui.min.js.map +1 -1
  3. package/dist/solid-ui.js +3511 -1964
  4. package/dist/solid-ui.js.map +1 -1
  5. package/dist/solid-ui.min.js +1 -1
  6. package/dist/solid-ui.min.js.map +1 -1
  7. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +191 -80
  8. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -1
  9. package/lib/acl/access-groups.js +0 -2
  10. package/lib/acl/access-groups.js.map +1 -1
  11. package/lib/acl/acl.js +0 -2
  12. package/lib/acl/acl.js.map +1 -1
  13. package/lib/chat/chatLogic.js +6 -4
  14. package/lib/chat/chatLogic.js.map +1 -1
  15. package/lib/chat/infinite.js +0 -5
  16. package/lib/chat/infinite.js.map +1 -1
  17. package/lib/chat/message.js +3 -7
  18. package/lib/chat/message.js.map +1 -1
  19. package/lib/chat/messageTools.js +1 -0
  20. package/lib/chat/messageTools.js.map +1 -1
  21. package/lib/chat/thread.js +0 -4
  22. package/lib/chat/thread.js.map +1 -1
  23. package/lib/create/create.js +0 -2
  24. package/lib/create/create.js.map +1 -1
  25. package/lib/login/login.d.ts.map +1 -1
  26. package/lib/login/login.js +37 -42
  27. package/lib/login/login.js.map +1 -1
  28. package/lib/matrix/matrix.js +0 -2
  29. package/lib/matrix/matrix.js.map +1 -1
  30. package/lib/media/media-capture.d.ts +2 -2
  31. package/lib/media/media-capture.d.ts.map +1 -1
  32. package/lib/media/media-capture.js +11 -18
  33. package/lib/media/media-capture.js.map +1 -1
  34. package/lib/messageArea.js +0 -4
  35. package/lib/messageArea.js.map +1 -1
  36. package/lib/pad.d.ts +2 -2
  37. package/lib/pad.d.ts.map +1 -1
  38. package/lib/pad.js +18 -45
  39. package/lib/pad.js.map +1 -1
  40. package/lib/participation.d.ts +7 -7
  41. package/lib/participation.d.ts.map +1 -1
  42. package/lib/participation.js +27 -28
  43. package/lib/participation.js.map +1 -1
  44. package/lib/style.js +93 -85
  45. package/lib/style.js.map +1 -1
  46. package/lib/styleConstants.js +35 -0
  47. package/lib/styleConstants.js.map +1 -0
  48. package/lib/table.js +0 -4
  49. package/lib/table.js.map +1 -1
  50. package/lib/tabs.d.ts +0 -125
  51. package/lib/tabs.d.ts.map +1 -1
  52. package/lib/tabs.js +15 -10
  53. package/lib/tabs.js.map +1 -1
  54. package/lib/utils/index.js +0 -7
  55. package/lib/utils/index.js.map +1 -1
  56. package/lib/versionInfo.js +3 -3
  57. package/lib/versionInfo.js.map +1 -1
  58. package/lib/widgets/buttons.js +2 -10
  59. package/lib/widgets/buttons.js.map +1 -1
  60. package/lib/widgets/dragAndDrop.js +11 -20
  61. package/lib/widgets/dragAndDrop.js.map +1 -1
  62. package/lib/widgets/error.d.ts.map +1 -1
  63. package/lib/widgets/error.js +9 -2
  64. package/lib/widgets/error.js.map +1 -1
  65. package/lib/widgets/forms/autocomplete/autocompleteBar.js +5 -5
  66. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -1
  67. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  68. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
  69. package/lib/widgets/forms/autocomplete/autocompletePicker.js +6 -8
  70. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  71. package/lib/widgets/forms/autocomplete/publicData.js +0 -3
  72. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  73. package/lib/widgets/forms/basic.d.ts.map +1 -1
  74. package/lib/widgets/forms/basic.js +5 -5
  75. package/lib/widgets/forms/basic.js.map +1 -1
  76. package/lib/widgets/forms/fieldParams.js +16 -16
  77. package/lib/widgets/forms/fieldParams.js.map +1 -1
  78. package/lib/widgets/forms.js +12 -30
  79. package/lib/widgets/forms.js.map +1 -1
  80. package/lib/widgets/peoplePicker.js +0 -1
  81. package/lib/widgets/peoplePicker.js.map +1 -1
  82. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"matrix.js","names":["utils","_interopRequireWildcard","require","$rdf","_solidLogic","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","kb","solidLogicSingleton","store","matrixForQuery","dom","query","vx","vy","vvalue","options","whenDone","matrix","createElement","header","corner","appendChild","setAttribute","lastHeader","columns","rows","setCell","cell","x","y","value","firstChild","removeChild","style","textAlign","cellFunction","textContent","label","old","rowFor","y1","toNT","tr","termType","fetcher","nowOrWhenFetched","uri","split","undefined","ok","_body","_response","length","fromNT","dataValueNT","ele","nextSibling","yDecreasing","insertBefore","columnNumberFor","x1","xNT","col","xDecreasing","slice","concat","push","row","td","j","markOldCells","children","clearOldCells","colsUsed","rowsUsed","set_y","k","set_x","newcolumns","refresh","addCellFromBindings","bindings","toString","colNo"],"sources":["../../src/matrix/matrix.ts"],"sourcesContent":["// Build a 2D matrix of values\n//\n// dom AKA document\n// query a Query object of rdflib.js with a valid pattern\n// vx A variable object, the one to be used for the X variable (horiz)\n// vy A variable object, the one to be used for the Y variable (vertical)\n// vvalue A variable object, the one to be used for the cell value\n// returns A DOM element with the matrix in it, which has a .refresh() function.\n//\n// Options:\n// cellFunction(td, x, y, value) fill the TD element of a single cell\n// xDecreasing set true for x axis to be in decreasing order.\n// yDecreasing set true for y axis to be in decreasing order.\n// set_x array of X values to be define initial rows (order irrelevant)\n// set_y array of Y values to be define initial columns\n//\n// Features:\n// Header row at top (x axis) and left (y-axis) generated automatically.\n// Extra rows and columns are inserted as needed to hold new data points\n// matrix.refresh() will re-run the query and adjust the display\n\nimport * as utils from '../utils'\nimport * as $rdf from 'rdflib'\nimport { MatrixOptions } from './types'\nimport { solidLogicSingleton } from 'solid-logic'\n\nconst kb = solidLogicSingleton.store\n\nexport function matrixForQuery (\n dom: HTMLDocument,\n query: $rdf.Query,\n vx: $rdf.Variable,\n vy: $rdf.Variable,\n vvalue: $rdf.Variable,\n options: MatrixOptions,\n whenDone: () => void\n) {\n // @@ TODO Remove need to cast to any\n const matrix: any = dom.createElement('table')\n const header = dom.createElement('tr')\n const corner = header.appendChild(dom.createElement('td'))\n corner.setAttribute('class', 'MatrixCorner')\n matrix.appendChild(header) // just one for now\n matrix.lastHeader = header // Element before data\n let columns: any[] = [] // Vector\n const rows: any[] = [] // Associative array\n\n const setCell = function (cell, x, y, value) {\n while (cell.firstChild) {\n // Empty any previous\n cell.removeChild(cell.firstChild)\n }\n cell.setAttribute('style', '')\n cell.style.textAlign = 'center'\n\n if (options.cellFunction) {\n options.cellFunction(cell, x, y, value)\n } else {\n cell.textContent = utils.label(value)\n cell.setAttribute('style', 'padding: 0.3em')\n }\n delete cell.old\n }\n\n const rowFor = function (y1) {\n const y = y1.toNT()\n if (rows[y]) return rows[y]\n // @@ TODO Remove need for casting to any\n const tr: any = dom.createElement('tr')\n const header = tr.appendChild(dom.createElement('td'))\n header.setAttribute('style', 'padding: 0.3em;')\n header.textContent = utils.label(y1) // first approximation\n if (y1.termType === 'NamedNode') {\n kb.fetcher!.nowOrWhenFetched(y1.uri.split('#')[0], undefined, function (\n ok,\n _body,\n _response\n ) {\n if (ok) header.textContent = utils.label(y1)\n })\n }\n for (let i = 0; i < columns.length; i++) {\n setCell(\n tr.appendChild(dom.createElement('td')),\n $rdf.fromNT(columns[i]),\n y1,\n null\n )\n }\n tr.dataValueNT = y\n rows[y] = tr\n for (let ele = matrix.lastHeader.nextSibling; ele; ele = ele.nextSibling) {\n // skip header\n if (\n (y > ele.dataValueNT && options && options.yDecreasing) ||\n (y < ele.dataValueNT && !(options && options.yDecreasing))\n ) {\n return matrix.insertBefore(tr, ele) // return the tr\n }\n }\n return matrix.appendChild(tr) // return the tr\n }\n\n const columnNumberFor = function (x1): number {\n const xNT: any = x1.toNT() // xNT is a NT string\n let col: any = null\n // These are data columns (not headings)\n for (let i = 0; i < columns.length; i++) {\n if (columns[i] === xNT) {\n return i\n }\n\n if (\n (xNT > columns[i] && options.xDecreasing) ||\n (xNT < columns[i] && !options.xDecreasing)\n ) {\n columns = columns\n .slice(0, i)\n .concat([xNT])\n .concat(columns.slice(i))\n col = i\n break\n }\n }\n\n if (col === null) {\n col = columns.length\n columns.push(xNT)\n }\n\n // col is the number of the new column, starting from 0\n for (let row = matrix.firstChild; row; row = row.nextSibling) {\n // For every row header or not\n const y = row.dataValueNT\n const td = dom.createElement('td') // Add a new cell\n td.style.textAlign = 'center'\n if (row === matrix.firstChild) {\n td.textContent = utils.label(x1)\n } else {\n setCell(td, x1, $rdf.fromNT(y), null)\n }\n if (col === columns.length - 1) {\n row.appendChild(td)\n } else {\n let t = row.firstChild\n for (let j = 0; j < col + 1; j++) {\n // Skip header col too\n t = t.nextSibling\n }\n row.insertBefore(td, t)\n }\n }\n return col\n }\n\n const markOldCells = function () {\n for (let i = 1; i < matrix.children.length; i++) {\n const row = matrix.children[i]\n for (let j = 1; j < row.children.length; j++) {\n row.children[j].old = true\n }\n }\n }\n\n const clearOldCells = function () {\n let row, cell\n const colsUsed: any[] = []\n const rowsUsed: any[] = []\n\n if (options.set_y) {\n // Knows y values create rows\n for (let k = 0; k < options.set_y.length; k++) {\n rowsUsed[options.set_y[k]] = true\n }\n }\n if (options.set_x) {\n for (let k = 0; k < options.set_x.length; k++) {\n colsUsed[columnNumberFor(options.set_x[k]) + 1] = true\n }\n }\n\n for (let i = 1; i < matrix.children.length; i++) {\n row = matrix.children[i]\n for (let j = 1; j < row.children.length; j++) {\n cell = row.children[j]\n if (cell.old) {\n const y = $rdf.fromNT(row.dataValueNT)\n const x = $rdf.fromNT(columns[j - 1])\n setCell(cell, x, y, null)\n } else {\n rowsUsed[row.dataValueNT] = true\n colsUsed[j] = true\n }\n }\n }\n\n for (let i = 0; i < matrix.children.length; i++) {\n row = matrix.children[i]\n if (i > 0 && !rowsUsed[row.dataValueNT]) {\n delete rows[row.dataValueNT]\n matrix.removeChild(row)\n } else {\n for (let j = row.children.length - 1; j > 0; j--) {\n // backwards\n const cell = row.children[j]\n if (!colsUsed[j]) {\n row.removeChild(cell)\n }\n }\n }\n }\n const newcolumns: any[] = []\n for (let j = 0; j < columns.length; j++) {\n if (colsUsed[j + 1]) {\n newcolumns.push(columns[j])\n }\n }\n columns = newcolumns\n }\n\n matrix.refresh = function () {\n markOldCells()\n kb.query(query, addCellFromBindings, undefined, clearOldCells)\n }\n\n const addCellFromBindings = function (bindings) {\n const x = bindings[vx.toString()]\n const y = bindings[vy.toString()]\n const value = bindings[(vvalue.toString())]\n const row = rowFor(y)\n const colNo = columnNumberFor(x)\n const cell = row.children[colNo + 1] // number of Y axis headings\n setCell(cell, x, y, value)\n }\n\n if (options.set_y) {\n // Knows y values create rows\n for (let k = 0; k < options.set_y.length; k++) {\n rowFor(options.set_y[k])\n }\n }\n if (options.set_x) {\n for (let k = 0; k < options.set_x.length; k++) {\n columnNumberFor(options.set_x[k])\n }\n }\n\n kb.query(query, addCellFromBindings, undefined, whenDone) // Populate the matrix\n return matrix\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"matrix.js","names":["utils","_interopRequireWildcard","require","$rdf","_solidLogic","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","kb","solidLogicSingleton","store","matrixForQuery","dom","query","vx","vy","vvalue","options","whenDone","matrix","createElement","header","corner","appendChild","setAttribute","lastHeader","columns","rows","setCell","cell","x","y","value","firstChild","removeChild","style","textAlign","cellFunction","textContent","label","old","rowFor","y1","toNT","tr","termType","fetcher","nowOrWhenFetched","uri","split","undefined","ok","_body","_response","length","fromNT","dataValueNT","ele","nextSibling","yDecreasing","insertBefore","columnNumberFor","x1","xNT","col","xDecreasing","slice","concat","push","row","td","j","markOldCells","children","clearOldCells","colsUsed","rowsUsed","set_y","k","set_x","newcolumns","refresh","addCellFromBindings","bindings","toString","colNo"],"sources":["../../src/matrix/matrix.ts"],"sourcesContent":["// Build a 2D matrix of values\n//\n// dom AKA document\n// query a Query object of rdflib.js with a valid pattern\n// vx A variable object, the one to be used for the X variable (horiz)\n// vy A variable object, the one to be used for the Y variable (vertical)\n// vvalue A variable object, the one to be used for the cell value\n// returns A DOM element with the matrix in it, which has a .refresh() function.\n//\n// Options:\n// cellFunction(td, x, y, value) fill the TD element of a single cell\n// xDecreasing set true for x axis to be in decreasing order.\n// yDecreasing set true for y axis to be in decreasing order.\n// set_x array of X values to be define initial rows (order irrelevant)\n// set_y array of Y values to be define initial columns\n//\n// Features:\n// Header row at top (x axis) and left (y-axis) generated automatically.\n// Extra rows and columns are inserted as needed to hold new data points\n// matrix.refresh() will re-run the query and adjust the display\n\nimport * as utils from '../utils'\nimport * as $rdf from 'rdflib'\nimport { MatrixOptions } from './types'\nimport { solidLogicSingleton } from 'solid-logic'\n\nconst kb = solidLogicSingleton.store\n\nexport function matrixForQuery (\n dom: HTMLDocument,\n query: $rdf.Query,\n vx: $rdf.Variable,\n vy: $rdf.Variable,\n vvalue: $rdf.Variable,\n options: MatrixOptions,\n whenDone: () => void\n) {\n // @@ TODO Remove need to cast to any\n const matrix: any = dom.createElement('table')\n const header = dom.createElement('tr')\n const corner = header.appendChild(dom.createElement('td'))\n corner.setAttribute('class', 'MatrixCorner')\n matrix.appendChild(header) // just one for now\n matrix.lastHeader = header // Element before data\n let columns: any[] = [] // Vector\n const rows: any[] = [] // Associative array\n\n const setCell = function (cell, x, y, value) {\n while (cell.firstChild) {\n // Empty any previous\n cell.removeChild(cell.firstChild)\n }\n cell.setAttribute('style', '')\n cell.style.textAlign = 'center'\n\n if (options.cellFunction) {\n options.cellFunction(cell, x, y, value)\n } else {\n cell.textContent = utils.label(value)\n cell.setAttribute('style', 'padding: 0.3em')\n }\n delete cell.old\n }\n\n const rowFor = function (y1) {\n const y = y1.toNT()\n if (rows[y]) return rows[y]\n // @@ TODO Remove need for casting to any\n const tr: any = dom.createElement('tr')\n const header = tr.appendChild(dom.createElement('td'))\n header.setAttribute('style', 'padding: 0.3em;')\n header.textContent = utils.label(y1) // first approximation\n if (y1.termType === 'NamedNode') {\n kb.fetcher!.nowOrWhenFetched(y1.uri.split('#')[0], undefined, function (\n ok,\n _body,\n _response\n ) {\n if (ok) header.textContent = utils.label(y1)\n })\n }\n for (let i = 0; i < columns.length; i++) {\n setCell(\n tr.appendChild(dom.createElement('td')),\n $rdf.fromNT(columns[i]),\n y1,\n null\n )\n }\n tr.dataValueNT = y\n rows[y] = tr\n for (let ele = matrix.lastHeader.nextSibling; ele; ele = ele.nextSibling) {\n // skip header\n if (\n (y > ele.dataValueNT && options && options.yDecreasing) ||\n (y < ele.dataValueNT && !(options && options.yDecreasing))\n ) {\n return matrix.insertBefore(tr, ele) // return the tr\n }\n }\n return matrix.appendChild(tr) // return the tr\n }\n\n const columnNumberFor = function (x1): number {\n const xNT: any = x1.toNT() // xNT is a NT string\n let col: any = null\n // These are data columns (not headings)\n for (let i = 0; i < columns.length; i++) {\n if (columns[i] === xNT) {\n return i\n }\n\n if (\n (xNT > columns[i] && options.xDecreasing) ||\n (xNT < columns[i] && !options.xDecreasing)\n ) {\n columns = columns\n .slice(0, i)\n .concat([xNT])\n .concat(columns.slice(i))\n col = i\n break\n }\n }\n\n if (col === null) {\n col = columns.length\n columns.push(xNT)\n }\n\n // col is the number of the new column, starting from 0\n for (let row = matrix.firstChild; row; row = row.nextSibling) {\n // For every row header or not\n const y = row.dataValueNT\n const td = dom.createElement('td') // Add a new cell\n td.style.textAlign = 'center'\n if (row === matrix.firstChild) {\n td.textContent = utils.label(x1)\n } else {\n setCell(td, x1, $rdf.fromNT(y), null)\n }\n if (col === columns.length - 1) {\n row.appendChild(td)\n } else {\n let t = row.firstChild\n for (let j = 0; j < col + 1; j++) {\n // Skip header col too\n t = t.nextSibling\n }\n row.insertBefore(td, t)\n }\n }\n return col\n }\n\n const markOldCells = function () {\n for (let i = 1; i < matrix.children.length; i++) {\n const row = matrix.children[i]\n for (let j = 1; j < row.children.length; j++) {\n row.children[j].old = true\n }\n }\n }\n\n const clearOldCells = function () {\n let row, cell\n const colsUsed: any[] = []\n const rowsUsed: any[] = []\n\n if (options.set_y) {\n // Knows y values create rows\n for (let k = 0; k < options.set_y.length; k++) {\n rowsUsed[options.set_y[k]] = true\n }\n }\n if (options.set_x) {\n for (let k = 0; k < options.set_x.length; k++) {\n colsUsed[columnNumberFor(options.set_x[k]) + 1] = true\n }\n }\n\n for (let i = 1; i < matrix.children.length; i++) {\n row = matrix.children[i]\n for (let j = 1; j < row.children.length; j++) {\n cell = row.children[j]\n if (cell.old) {\n const y = $rdf.fromNT(row.dataValueNT)\n const x = $rdf.fromNT(columns[j - 1])\n setCell(cell, x, y, null)\n } else {\n rowsUsed[row.dataValueNT] = true\n colsUsed[j] = true\n }\n }\n }\n\n for (let i = 0; i < matrix.children.length; i++) {\n row = matrix.children[i]\n if (i > 0 && !rowsUsed[row.dataValueNT]) {\n delete rows[row.dataValueNT]\n matrix.removeChild(row)\n } else {\n for (let j = row.children.length - 1; j > 0; j--) {\n // backwards\n const cell = row.children[j]\n if (!colsUsed[j]) {\n row.removeChild(cell)\n }\n }\n }\n }\n const newcolumns: any[] = []\n for (let j = 0; j < columns.length; j++) {\n if (colsUsed[j + 1]) {\n newcolumns.push(columns[j])\n }\n }\n columns = newcolumns\n }\n\n matrix.refresh = function () {\n markOldCells()\n kb.query(query, addCellFromBindings, undefined, clearOldCells)\n }\n\n const addCellFromBindings = function (bindings) {\n const x = bindings[vx.toString()]\n const y = bindings[vy.toString()]\n const value = bindings[(vvalue.toString())]\n const row = rowFor(y)\n const colNo = columnNumberFor(x)\n const cell = row.children[colNo + 1] // number of Y axis headings\n setCell(cell, x, y, value)\n }\n\n if (options.set_y) {\n // Knows y values create rows\n for (let k = 0; k < options.set_y.length; k++) {\n rowFor(options.set_y[k])\n }\n }\n if (options.set_x) {\n for (let k = 0; k < options.set_x.length; k++) {\n columnNumberFor(options.set_x[k])\n }\n }\n\n kb.query(query, addCellFromBindings, undefined, whenDone) // Populate the matrix\n return matrix\n}\n"],"mappings":"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"}
@@ -11,9 +11,9 @@ export declare function cameraCaptureControl(dom: HTMLDocument, store: IndexedFo
11
11
  * @param {IndexedForumla} store - The quadstore to store data in
12
12
  * @param {fuunction} getImageDoc - returns NN of the image file to be created
13
13
  * @param {function<Node>} doneCallback - called with the image taken
14
- * @returns {DomElement} - A div element with the buton in it
14
+ * @returns {DomElement} - A div element with the button in it
15
15
  *
16
- * This expacts the buttton to a large control when it is pressed
16
+ * This expands the button to a large control when it is pressed
17
17
  */
18
18
  export declare function cameraButton(dom: HTMLDocument, store: IndexedFormula, getImageDoc: () => NamedNode, doneCallback: (imageDoc: any) => Promise<void>): HTMLElement;
19
19
  //# sourceMappingURL=media-capture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-capture.d.ts","sourceRoot":"","sources":["../../src/media/media-capture.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAYlD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,MAAM,SAAS,EAC5B,YAAY,EAAE,CAAC,QAAQ,KAAA,KAAK,OAAO,CAAC,IAAI,CAAC,kBAmI1C;AAED;;;;;;;;GAQG;AAEH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,MAAM,SAAS,EAC5B,YAAY,EAAE,CAAC,QAAQ,KAAA,KAAK,OAAO,CAAC,IAAI,CAAC,GACxC,WAAW,CAqBb"}
1
+ {"version":3,"file":"media-capture.d.ts","sourceRoot":"","sources":["../../src/media/media-capture.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAOlD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,MAAM,SAAS,EAC5B,YAAY,EAAE,CAAC,QAAQ,KAAA,KAAK,OAAO,CAAC,IAAI,CAAC,kBAmI1C;AAED;;;;;;;;GAQG;AAEH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,MAAM,SAAS,EAC5B,YAAY,EAAE,CAAC,QAAQ,KAAA,KAAK,OAAO,CAAC,IAAI,CAAC,GACxC,WAAW,CAqBb"}
@@ -11,21 +11,21 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
11
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
12
  var debug = _interopRequireWildcard(require("../debug"));
13
13
  var _iconBase = require("../iconBase");
14
+ var style = _interopRequireWildcard(require("../style"));
14
15
  var widgets = _interopRequireWildcard(require("../widgets"));
15
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
17
- /// /////////////////////////////////////////////
18
18
  //
19
19
  // Media input widget
20
20
  //
21
21
  //
22
22
  // Workflow:
23
- // The HTML5 functionality (on mobille) is to prompt for either
24
- // a realtime camera capture , OR a selection from images already ont the device
23
+ // The HTML5 functionality (on mobile) is to prompt for either
24
+ // a realtime camera capture, OR a selection from images already on the device
25
25
  // (eg camera roll).
26
26
  //
27
- // The solid alternative is to either take a phtoto
28
- // or access cemra roll (etc) OR to access solid cloud storage of favorite photo almbums.
27
+ // The solid alternative is to either take a photo
28
+ // or access camera roll (etc) OR to access solid cloud storage of favorite photo albums.
29
29
  // (Especially latest taken ones)
30
30
  //
31
31
 
@@ -34,10 +34,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
34
34
  var cameraIcon = _iconBase.icons.iconBase + 'noun_Camera_1618446_000000.svg'; // Get it from github
35
35
  var retakeIcon = _iconBase.icons.iconBase + 'noun_479395.svg'; // Get it from github
36
36
 
37
- var canvasWidth = '640';
38
- var canvasHeight = '480';
39
- var controlStyle = "border-radius: 0.5em; margin: 0.8em; width: ".concat(canvasWidth, "; height:").concat(canvasHeight, ";");
40
- // const controlStyle = 'border-radius: 0.5em; margin: 0.8em; width: 320; height:240;'
41
37
  var contentType = 'image/png';
42
38
 
43
39
  /** A control to capture a picture using camera
@@ -82,7 +78,7 @@ function cameraCaptureControl(dom, store, getImageDoc, doneCallback) {
82
78
  player = main.appendChild(dom.createElement('video'));
83
79
  player.setAttribute('controls', '1');
84
80
  player.setAttribute('autoplay', '1');
85
- player.setAttribute('style', controlStyle);
81
+ player.setAttribute('style', style.controlStyle);
86
82
  if (!navigator.mediaDevices) {
87
83
  throw new Error('navigator.mediaDevices not available');
88
84
  }
@@ -100,13 +96,12 @@ function cameraCaptureControl(dom, store, getImageDoc, doneCallback) {
100
96
  main.removeChild(canvas);
101
97
  displayPlayer(); // Make new one as old one is stuck black
102
98
  }
103
-
104
99
  function grabCanvas() {
105
100
  // Draw the video frame to the canvas.
106
101
  canvas = dom.createElement('canvas');
107
- canvas.setAttribute('width', canvasWidth);
108
- canvas.setAttribute('height', canvasHeight);
109
- canvas.setAttribute('style', controlStyle);
102
+ canvas.setAttribute('width', style.canvasWidth);
103
+ canvas.setAttribute('height', style.canvasHeight);
104
+ canvas.setAttribute('style', style.controlStyle);
110
105
  main.appendChild(canvas);
111
106
  var context = canvas.getContext('2d');
112
107
  context.drawImage(player, 0, 0, canvas.width, canvas.height);
@@ -120,13 +115,11 @@ function cameraCaptureControl(dom, store, getImageDoc, doneCallback) {
120
115
  // alert(msg)
121
116
  }, contentType); // toBlob
122
117
  }
123
-
124
118
  function reviewImage() {
125
119
  sendButton.style.visibility = 'visible';
126
120
  retakeButton.style.visibility = 'visible';
127
121
  shutterButton.style.visibility = 'collapse'; // Hide for now
128
122
  }
129
-
130
123
  function stopVideo() {
131
124
  if (player && player.srcObject) {
132
125
  player.srcObject.getVideoTracks().forEach(function (track) {
@@ -163,9 +156,9 @@ function cameraCaptureControl(dom, store, getImageDoc, doneCallback) {
163
156
  * @param {IndexedForumla} store - The quadstore to store data in
164
157
  * @param {fuunction} getImageDoc - returns NN of the image file to be created
165
158
  * @param {function<Node>} doneCallback - called with the image taken
166
- * @returns {DomElement} - A div element with the buton in it
159
+ * @returns {DomElement} - A div element with the button in it
167
160
  *
168
- * This expacts the buttton to a large control when it is pressed
161
+ * This expands the button to a large control when it is pressed
169
162
  */
170
163
 
171
164
  function cameraButton(dom, store, getImageDoc, doneCallback) {
@@ -1 +1 @@
1
- {"version":3,"file":"media-capture.js","names":["debug","_interopRequireWildcard","require","_iconBase","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","cameraIcon","icons","iconBase","retakeIcon","canvasWidth","canvasHeight","controlStyle","concat","contentType","cameraCaptureControl","dom","store","getImageDoc","doneCallback","div","createElement","destination","imageBlob","player","canvas","table","appendChild","mainTR","main","setAttribute","buttons","cancelButton","addEventListener","_event","stopVideo","retakeButton","button","retake","style","visibility","shutterButton","grabCanvas","sendButton","continueButton","saveBlob","displayPlayer","navigator","mediaDevices","Error","getUserMedia","constraints","then","stream","srcObject","video","removeChild","context","getContext","drawImage","width","height","parentNode","toBlob","blob","msg","type","size","log","reviewImage","getVideoTracks","forEach","track","stop","fetcher","webOperation","uri","data","_resp","err","alert","cameraButton","but","control","restoreButton","_x","_restoreButton","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","imageDoc","wrap","_callee$","_context","prev","next"],"sources":["../../src/media/media-capture.ts"],"sourcesContent":["/// /////////////////////////////////////////////\n//\n// Media input widget\n//\n//\n// Workflow:\n// The HTML5 functionality (on mobille) is to prompt for either\n// a realtime camera capture , OR a selection from images already ont the device\n// (eg camera roll).\n//\n// The solid alternative is to either take a phtoto\n// or access cemra roll (etc) OR to access solid cloud storage of favorite photo almbums.\n// (Especially latest taken ones)\n//\nimport * as debug from '../debug'\n\n/** @module mediaCapture */\n\nimport { icons } from '../iconBase'\nimport * as widgets from '../widgets'\nimport { IndexedFormula, NamedNode } from 'rdflib'\n\nconst cameraIcon = icons.iconBase + 'noun_Camera_1618446_000000.svg' // Get it from github\nconst retakeIcon = icons.iconBase + 'noun_479395.svg' // Get it from github\n\nconst canvasWidth = '640'\nconst canvasHeight = '480'\n\nconst controlStyle = `border-radius: 0.5em; margin: 0.8em; width: ${canvasWidth}; height:${canvasHeight};`\n// const controlStyle = 'border-radius: 0.5em; margin: 0.8em; width: 320; height:240;'\nconst contentType = 'image/png'\n\n/** A control to capture a picture using camera\n * @param {Docuemnt} dom - The Document object\n * @param {IndexedForumla} store - The quadstore to store data in\n * @param {NamedNode} getImageDoc() - NN of the image file to be created\n * @param {function} doneCallback - Called when a picture has been taken\n */\nexport function cameraCaptureControl (\n dom: HTMLDocument,\n store: IndexedFormula,\n getImageDoc: () => NamedNode,\n doneCallback: (imageDoc) => Promise<void>\n) {\n const div = dom.createElement('div')\n let destination, imageBlob, player, canvas\n\n const table = div.appendChild(dom.createElement('table'))\n const mainTR = table.appendChild(dom.createElement('tr'))\n const main = mainTR.appendChild(dom.createElement('td'))\n main.setAttribute('colspan', '4')\n\n const buttons = table.appendChild(dom.createElement('tr'))\n\n buttons\n .appendChild(dom.createElement('td')) // Cancel button\n .appendChild(widgets.cancelButton(dom))\n .addEventListener('click', _event => {\n stopVideo()\n doneCallback(null)\n })\n\n const retakeButton = buttons\n .appendChild(dom.createElement('td')) // Retake button\n .appendChild(widgets.button(dom, retakeIcon, 'Retake'))\n retakeButton.addEventListener('click', _event => {\n retake()\n })\n retakeButton.style.visibility = 'collapse' // Hide for now\n\n const shutterButton = buttons\n .appendChild(dom.createElement('td')) // Trigger capture button\n .appendChild(\n widgets.button(dom, icons.iconBase + 'noun_10636.svg', 'Snap')\n )\n shutterButton.addEventListener('click', grabCanvas)\n shutterButton.style.visibility = 'collapse' // Hide for now\n\n const sendButton = buttons\n .appendChild(dom.createElement('td')) // Confirm and save button\n .appendChild(widgets.continueButton(dom)) // @@ or send icon??\n sendButton.addEventListener('click', _event => {\n saveBlob(imageBlob, destination)\n })\n sendButton.style.visibility = 'collapse' // Hide for now\n\n function displayPlayer () {\n player = main.appendChild(dom.createElement('video'))\n player.setAttribute('controls', '1')\n player.setAttribute('autoplay', '1')\n player.setAttribute('style', controlStyle)\n if (!navigator.mediaDevices) {\n throw new Error('navigator.mediaDevices not available')\n }\n navigator.mediaDevices.getUserMedia(constraints).then(stream => {\n player.srcObject = stream\n shutterButton.style.visibility = 'visible' // Enable\n sendButton.style.visibility = 'collapse'\n retakeButton.style.visibility = 'collapse'\n })\n }\n\n const constraints = {\n video: true\n }\n\n function retake () {\n main.removeChild(canvas)\n displayPlayer() // Make new one as old one is stuck black\n }\n\n function grabCanvas () {\n // Draw the video frame to the canvas.\n canvas = dom.createElement('canvas')\n canvas.setAttribute('width', canvasWidth)\n canvas.setAttribute('height', canvasHeight)\n canvas.setAttribute('style', controlStyle)\n main.appendChild(canvas)\n\n const context = canvas.getContext('2d')\n context.drawImage(player, 0, 0, canvas.width, canvas.height)\n\n player.parentNode.removeChild(player)\n\n canvas.toBlob(blob => {\n const msg = `got blob type ${blob.type} size ${blob.size}`\n debug.log(msg)\n destination = getImageDoc()\n imageBlob = blob // save for review\n reviewImage()\n // alert(msg)\n }, contentType) // toBlob\n }\n\n function reviewImage () {\n sendButton.style.visibility = 'visible'\n retakeButton.style.visibility = 'visible'\n shutterButton.style.visibility = 'collapse' // Hide for now\n }\n\n function stopVideo () {\n if (player && player.srcObject) {\n player.srcObject.getVideoTracks().forEach(track => track.stop())\n }\n }\n function saveBlob (blob, destination) {\n const contentType = blob.type\n // if (!confirm('Save picture to ' + destination + ' ?')) return\n debug.log(\n 'Putting ' + blob.size + ' bytes of ' + contentType + ' to ' + destination\n )\n // @@ TODO Remove casting\n ;(store as any).fetcher\n .webOperation('PUT', destination.uri, {\n data: blob,\n contentType\n })\n .then(\n _resp => {\n debug.log('ok saved ' + destination)\n stopVideo()\n doneCallback(destination)\n },\n err => {\n stopVideo()\n alert(err)\n }\n )\n }\n\n // Attach the video stream to the video element and autoplay.\n displayPlayer()\n return div\n}\n\n/** A button to capture a picture using camera\n * @param {Docuemnt} dom - The Document object\n * @param {IndexedForumla} store - The quadstore to store data in\n * @param {fuunction} getImageDoc - returns NN of the image file to be created\n * @param {function<Node>} doneCallback - called with the image taken\n * @returns {DomElement} - A div element with the buton in it\n *\n * This expacts the buttton to a large control when it is pressed\n */\n\nexport function cameraButton (\n dom: HTMLDocument,\n store: IndexedFormula,\n getImageDoc: () => NamedNode,\n doneCallback: (imageDoc) => Promise<void>\n): HTMLElement {\n const div = dom.createElement('div')\n const but = widgets.button(dom, cameraIcon, 'Take picture')\n let control\n async function restoreButton (imageDoc) {\n div.removeChild(control)\n div.appendChild(but)\n doneCallback(imageDoc)\n }\n div.appendChild(but)\n but.addEventListener('click', _event => {\n div.removeChild(but)\n control = cameraCaptureControl(\n dom,\n store,\n getImageDoc,\n restoreButton\n )\n div.appendChild(control)\n })\n return div\n}\n"],"mappings":";;;;;;;;;;;AAcA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAIA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAH,uBAAA,CAAAC,OAAA;AAAqC,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,cAAAR,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAnBrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;;AAMA,IAAMY,UAAU,GAAGC,eAAK,CAACC,QAAQ,GAAG,gCAAgC,EAAC;AACrE,IAAMC,UAAU,GAAGF,eAAK,CAACC,QAAQ,GAAG,iBAAiB,EAAC;;AAEtD,IAAME,WAAW,GAAG,KAAK;AACzB,IAAMC,YAAY,GAAG,KAAK;AAE1B,IAAMC,YAAY,kDAAAC,MAAA,CAAkDH,WAAW,eAAAG,MAAA,CAAYF,YAAY,MAAG;AAC1G;AACA,IAAMG,WAAW,GAAG,WAAW;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,oBAAoBA,CAClCC,GAAiB,EACjBC,KAAqB,EACrBC,WAA4B,EAC5BC,YAAyC,EACzC;EACA,IAAMC,GAAG,GAAGJ,GAAG,CAACK,aAAa,CAAC,KAAK,CAAC;EACpC,IAAIC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,MAAM;EAE1C,IAAMC,KAAK,GAAGN,GAAG,CAACO,WAAW,CAACX,GAAG,CAACK,aAAa,CAAC,OAAO,CAAC,CAAC;EACzD,IAAMO,MAAM,GAAGF,KAAK,CAACC,WAAW,CAACX,GAAG,CAACK,aAAa,CAAC,IAAI,CAAC,CAAC;EACzD,IAAMQ,IAAI,GAAGD,MAAM,CAACD,WAAW,CAACX,GAAG,CAACK,aAAa,CAAC,IAAI,CAAC,CAAC;EACxDQ,IAAI,CAACC,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC;EAEjC,IAAMC,OAAO,GAAGL,KAAK,CAACC,WAAW,CAACX,GAAG,CAACK,aAAa,CAAC,IAAI,CAAC,CAAC;EAE1DU,OAAO,CACJJ,WAAW,CAACX,GAAG,CAACK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;EAAA,CACrCM,WAAW,CAAC3C,OAAO,CAACgD,YAAY,CAAChB,GAAG,CAAC,CAAC,CACtCiB,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;IACnCC,SAAS,CAAC,CAAC;IACXhB,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC,CAAC;EAEJ,IAAMiB,YAAY,GAAGL,OAAO,CACzBJ,WAAW,CAACX,GAAG,CAACK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;EAAA,CACrCM,WAAW,CAAC3C,OAAO,CAACqD,MAAM,CAACrB,GAAG,EAAEP,UAAU,EAAE,QAAQ,CAAC,CAAC;EACzD2B,YAAY,CAACH,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;IAC/CI,MAAM,CAAC,CAAC;EACV,CAAC,CAAC;EACFF,YAAY,CAACG,KAAK,CAACC,UAAU,GAAG,UAAU,EAAC;;EAE3C,IAAMC,aAAa,GAAGV,OAAO,CAC1BJ,WAAW,CAACX,GAAG,CAACK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;EAAA,CACrCM,WAAW,CACV3C,OAAO,CAACqD,MAAM,CAACrB,GAAG,EAAET,eAAK,CAACC,QAAQ,GAAG,gBAAgB,EAAE,MAAM,CAC/D,CAAC;EACHiC,aAAa,CAACR,gBAAgB,CAAC,OAAO,EAAES,UAAU,CAAC;EACnDD,aAAa,CAACF,KAAK,CAACC,UAAU,GAAG,UAAU,EAAC;;EAE5C,IAAMG,UAAU,GAAGZ,OAAO,CACvBJ,WAAW,CAACX,GAAG,CAACK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;EAAA,CACrCM,WAAW,CAAC3C,OAAO,CAAC4D,cAAc,CAAC5B,GAAG,CAAC,CAAC,EAAC;EAC5C2B,UAAU,CAACV,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;IAC7CW,QAAQ,CAACtB,SAAS,EAAED,WAAW,CAAC;EAClC,CAAC,CAAC;EACFqB,UAAU,CAACJ,KAAK,CAACC,UAAU,GAAG,UAAU,EAAC;;EAEzC,SAASM,aAAaA,CAAA,EAAI;IACxBtB,MAAM,GAAGK,IAAI,CAACF,WAAW,CAACX,GAAG,CAACK,aAAa,CAAC,OAAO,CAAC,CAAC;IACrDG,MAAM,CAACM,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;IACpCN,MAAM,CAACM,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;IACpCN,MAAM,CAACM,YAAY,CAAC,OAAO,EAAElB,YAAY,CAAC;IAC1C,IAAI,CAACmC,SAAS,CAACC,YAAY,EAAE;MAC3B,MAAM,IAAIC,KAAK,CAAC,sCAAsC,CAAC;IACzD;IACAF,SAAS,CAACC,YAAY,CAACE,YAAY,CAACC,WAAW,CAAC,CAACC,IAAI,CAAC,UAAAC,MAAM,EAAI;MAC9D7B,MAAM,CAAC8B,SAAS,GAAGD,MAAM;MACzBZ,aAAa,CAACF,KAAK,CAACC,UAAU,GAAG,SAAS,EAAC;MAC3CG,UAAU,CAACJ,KAAK,CAACC,UAAU,GAAG,UAAU;MACxCJ,YAAY,CAACG,KAAK,CAACC,UAAU,GAAG,UAAU;IAC5C,CAAC,CAAC;EACJ;EAEA,IAAMW,WAAW,GAAG;IAClBI,KAAK,EAAE;EACT,CAAC;EAED,SAASjB,MAAMA,CAAA,EAAI;IACjBT,IAAI,CAAC2B,WAAW,CAAC/B,MAAM,CAAC;IACxBqB,aAAa,CAAC,CAAC,EAAC;EAClB;;EAEA,SAASJ,UAAUA,CAAA,EAAI;IACrB;IACAjB,MAAM,GAAGT,GAAG,CAACK,aAAa,CAAC,QAAQ,CAAC;IACpCI,MAAM,CAACK,YAAY,CAAC,OAAO,EAAEpB,WAAW,CAAC;IACzCe,MAAM,CAACK,YAAY,CAAC,QAAQ,EAAEnB,YAAY,CAAC;IAC3Cc,MAAM,CAACK,YAAY,CAAC,OAAO,EAAElB,YAAY,CAAC;IAC1CiB,IAAI,CAACF,WAAW,CAACF,MAAM,CAAC;IAExB,IAAMgC,OAAO,GAAGhC,MAAM,CAACiC,UAAU,CAAC,IAAI,CAAC;IACvCD,OAAO,CAACE,SAAS,CAACnC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAEC,MAAM,CAACmC,KAAK,EAAEnC,MAAM,CAACoC,MAAM,CAAC;IAE5DrC,MAAM,CAACsC,UAAU,CAACN,WAAW,CAAChC,MAAM,CAAC;IAErCC,MAAM,CAACsC,MAAM,CAAC,UAAAC,IAAI,EAAI;MACpB,IAAMC,GAAG,oBAAApD,MAAA,CAAoBmD,IAAI,CAACE,IAAI,YAAArD,MAAA,CAASmD,IAAI,CAACG,IAAI,CAAE;MAC1DvF,KAAK,CAACwF,GAAG,CAACH,GAAG,CAAC;MACd3C,WAAW,GAAGJ,WAAW,CAAC,CAAC;MAC3BK,SAAS,GAAGyC,IAAI,EAAC;MACjBK,WAAW,CAAC,CAAC;MACb;IACF,CAAC,EAAEvD,WAAW,CAAC,EAAC;EAClB;;EAEA,SAASuD,WAAWA,CAAA,EAAI;IACtB1B,UAAU,CAACJ,KAAK,CAACC,UAAU,GAAG,SAAS;IACvCJ,YAAY,CAACG,KAAK,CAACC,UAAU,GAAG,SAAS;IACzCC,aAAa,CAACF,KAAK,CAACC,UAAU,GAAG,UAAU,EAAC;EAC9C;;EAEA,SAASL,SAASA,CAAA,EAAI;IACpB,IAAIX,MAAM,IAAIA,MAAM,CAAC8B,SAAS,EAAE;MAC9B9B,MAAM,CAAC8B,SAAS,CAACgB,cAAc,CAAC,CAAC,CAACC,OAAO,CAAC,UAAAC,KAAK;QAAA,OAAIA,KAAK,CAACC,IAAI,CAAC,CAAC;MAAA,EAAC;IAClE;EACF;EACA,SAAS5B,QAAQA,CAAEmB,IAAI,EAAE1C,WAAW,EAAE;IACpC,IAAMR,WAAW,GAAGkD,IAAI,CAACE,IAAI;IAC7B;IACAtF,KAAK,CAACwF,GAAG,CACP,UAAU,GAAGJ,IAAI,CAACG,IAAI,GAAG,YAAY,GAAGrD,WAAW,GAAG,MAAM,GAAGQ,WACjE;IACA;IAAA;IACEL,KAAK,CAASyD,OAAO,CACpBC,YAAY,CAAC,KAAK,EAAErD,WAAW,CAACsD,GAAG,EAAE;MACpCC,IAAI,EAAEb,IAAI;MACVlD,WAAW,EAAXA;IACF,CAAC,CAAC,CACDsC,IAAI,CACH,UAAA0B,KAAK,EAAI;MACPlG,KAAK,CAACwF,GAAG,CAAC,WAAW,GAAG9C,WAAW,CAAC;MACpCa,SAAS,CAAC,CAAC;MACXhB,YAAY,CAACG,WAAW,CAAC;IAC3B,CAAC,EACD,UAAAyD,GAAG,EAAI;MACL5C,SAAS,CAAC,CAAC;MACX6C,KAAK,CAACD,GAAG,CAAC;IACZ,CACF,CAAC;EACL;;EAEA;EACAjC,aAAa,CAAC,CAAC;EACf,OAAO1B,GAAG;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS6D,YAAYA,CAC1BjE,GAAiB,EACjBC,KAAqB,EACrBC,WAA4B,EAC5BC,YAAyC,EAC5B;EACb,IAAMC,GAAG,GAAGJ,GAAG,CAACK,aAAa,CAAC,KAAK,CAAC;EACpC,IAAM6D,GAAG,GAAGlG,OAAO,CAACqD,MAAM,CAACrB,GAAG,EAAEV,UAAU,EAAE,cAAc,CAAC;EAC3D,IAAI6E,OAAO;EAAA,SACIC,aAAaA,CAAAC,EAAA;IAAA,OAAAC,cAAA,CAAAC,KAAA,OAAAC,SAAA;EAAA;EAAA,SAAAF,eAAA;IAAAA,cAAA,OAAAG,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAA5B,SAAAC,QAA8BC,QAAQ;MAAA,OAAAH,YAAA,YAAAI,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YACpC9E,GAAG,CAACoC,WAAW,CAAC2B,OAAO,CAAC;YACxB/D,GAAG,CAACO,WAAW,CAACuD,GAAG,CAAC;YACpB/D,YAAY,CAAC0E,QAAQ,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAvB,IAAA;QAAA;MAAA,GAAAmB,OAAA;IAAA,CACvB;IAAA,OAAAN,cAAA,CAAAC,KAAA,OAAAC,SAAA;EAAA;EACDpE,GAAG,CAACO,WAAW,CAACuD,GAAG,CAAC;EACpBA,GAAG,CAACjD,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;IACtCd,GAAG,CAACoC,WAAW,CAAC0B,GAAG,CAAC;IACpBC,OAAO,GAAGpE,oBAAoB,CAC5BC,GAAG,EACHC,KAAK,EACLC,WAAW,EACXkE,aACF,CAAC;IACDhE,GAAG,CAACO,WAAW,CAACwD,OAAO,CAAC;EAC1B,CAAC,CAAC;EACF,OAAO/D,GAAG;AACZ"}
1
+ {"version":3,"file":"media-capture.js","names":["debug","_interopRequireWildcard","require","_iconBase","style","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","cameraIcon","icons","iconBase","retakeIcon","contentType","cameraCaptureControl","dom","store","getImageDoc","doneCallback","div","createElement","destination","imageBlob","player","canvas","table","appendChild","mainTR","main","setAttribute","buttons","cancelButton","addEventListener","_event","stopVideo","retakeButton","button","retake","visibility","shutterButton","grabCanvas","sendButton","continueButton","saveBlob","displayPlayer","controlStyle","navigator","mediaDevices","Error","getUserMedia","constraints","then","stream","srcObject","video","removeChild","canvasWidth","canvasHeight","context","getContext","drawImage","width","height","parentNode","toBlob","blob","msg","concat","type","size","log","reviewImage","getVideoTracks","forEach","track","stop","fetcher","webOperation","uri","data","_resp","err","alert","cameraButton","but","control","restoreButton","_x","_restoreButton","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","imageDoc","wrap","_callee$","_context","prev","next"],"sources":["../../src/media/media-capture.ts"],"sourcesContent":["//\n// Media input widget\n//\n//\n// Workflow:\n// The HTML5 functionality (on mobile) is to prompt for either\n// a realtime camera capture, OR a selection from images already on the device\n// (eg camera roll).\n//\n// The solid alternative is to either take a photo\n// or access camera roll (etc) OR to access solid cloud storage of favorite photo albums.\n// (Especially latest taken ones)\n//\nimport * as debug from '../debug'\n\n/** @module mediaCapture */\n\nimport { icons } from '../iconBase'\nimport * as style from '../style'\nimport * as widgets from '../widgets'\nimport { IndexedFormula, NamedNode } from 'rdflib'\n\nconst cameraIcon = icons.iconBase + 'noun_Camera_1618446_000000.svg' // Get it from github\nconst retakeIcon = icons.iconBase + 'noun_479395.svg' // Get it from github\n\nconst contentType = 'image/png'\n\n/** A control to capture a picture using camera\n * @param {Docuemnt} dom - The Document object\n * @param {IndexedForumla} store - The quadstore to store data in\n * @param {NamedNode} getImageDoc() - NN of the image file to be created\n * @param {function} doneCallback - Called when a picture has been taken\n */\nexport function cameraCaptureControl (\n dom: HTMLDocument,\n store: IndexedFormula,\n getImageDoc: () => NamedNode,\n doneCallback: (imageDoc) => Promise<void>\n) {\n const div = dom.createElement('div')\n let destination, imageBlob, player, canvas\n\n const table = div.appendChild(dom.createElement('table'))\n const mainTR = table.appendChild(dom.createElement('tr'))\n const main = mainTR.appendChild(dom.createElement('td'))\n main.setAttribute('colspan', '4')\n\n const buttons = table.appendChild(dom.createElement('tr'))\n\n buttons\n .appendChild(dom.createElement('td')) // Cancel button\n .appendChild(widgets.cancelButton(dom))\n .addEventListener('click', _event => {\n stopVideo()\n doneCallback(null)\n })\n\n const retakeButton = buttons\n .appendChild(dom.createElement('td')) // Retake button\n .appendChild(widgets.button(dom, retakeIcon, 'Retake'))\n retakeButton.addEventListener('click', _event => {\n retake()\n })\n retakeButton.style.visibility = 'collapse' // Hide for now\n\n const shutterButton = buttons\n .appendChild(dom.createElement('td')) // Trigger capture button\n .appendChild(\n widgets.button(dom, icons.iconBase + 'noun_10636.svg', 'Snap')\n )\n shutterButton.addEventListener('click', grabCanvas)\n shutterButton.style.visibility = 'collapse' // Hide for now\n\n const sendButton = buttons\n .appendChild(dom.createElement('td')) // Confirm and save button\n .appendChild(widgets.continueButton(dom)) // @@ or send icon??\n sendButton.addEventListener('click', _event => {\n saveBlob(imageBlob, destination)\n })\n sendButton.style.visibility = 'collapse' // Hide for now\n\n function displayPlayer () {\n player = main.appendChild(dom.createElement('video'))\n player.setAttribute('controls', '1')\n player.setAttribute('autoplay', '1')\n player.setAttribute('style', style.controlStyle)\n if (!navigator.mediaDevices) {\n throw new Error('navigator.mediaDevices not available')\n }\n navigator.mediaDevices.getUserMedia(constraints).then(stream => {\n player.srcObject = stream\n shutterButton.style.visibility = 'visible' // Enable\n sendButton.style.visibility = 'collapse'\n retakeButton.style.visibility = 'collapse'\n })\n }\n\n const constraints = {\n video: true\n }\n\n function retake () {\n main.removeChild(canvas)\n displayPlayer() // Make new one as old one is stuck black\n }\n\n function grabCanvas () {\n // Draw the video frame to the canvas.\n canvas = dom.createElement('canvas')\n canvas.setAttribute('width', style.canvasWidth)\n canvas.setAttribute('height', style.canvasHeight)\n canvas.setAttribute('style', style.controlStyle)\n main.appendChild(canvas)\n\n const context = canvas.getContext('2d')\n context.drawImage(player, 0, 0, canvas.width, canvas.height)\n\n player.parentNode.removeChild(player)\n\n canvas.toBlob(blob => {\n const msg = `got blob type ${blob.type} size ${blob.size}`\n debug.log(msg)\n destination = getImageDoc()\n imageBlob = blob // save for review\n reviewImage()\n // alert(msg)\n }, contentType) // toBlob\n }\n\n function reviewImage () {\n sendButton.style.visibility = 'visible'\n retakeButton.style.visibility = 'visible'\n shutterButton.style.visibility = 'collapse' // Hide for now\n }\n\n function stopVideo () {\n if (player && player.srcObject) {\n player.srcObject.getVideoTracks().forEach(track => track.stop())\n }\n }\n function saveBlob (blob, destination) {\n const contentType = blob.type\n // if (!confirm('Save picture to ' + destination + ' ?')) return\n debug.log(\n 'Putting ' + blob.size + ' bytes of ' + contentType + ' to ' + destination\n )\n // @@ TODO Remove casting\n ;(store as any).fetcher\n .webOperation('PUT', destination.uri, {\n data: blob,\n contentType\n })\n .then(\n _resp => {\n debug.log('ok saved ' + destination)\n stopVideo()\n doneCallback(destination)\n },\n err => {\n stopVideo()\n alert(err)\n }\n )\n }\n\n // Attach the video stream to the video element and autoplay.\n displayPlayer()\n return div\n}\n\n/** A button to capture a picture using camera\n * @param {Docuemnt} dom - The Document object\n * @param {IndexedForumla} store - The quadstore to store data in\n * @param {fuunction} getImageDoc - returns NN of the image file to be created\n * @param {function<Node>} doneCallback - called with the image taken\n * @returns {DomElement} - A div element with the button in it\n *\n * This expands the button to a large control when it is pressed\n */\n\nexport function cameraButton (\n dom: HTMLDocument,\n store: IndexedFormula,\n getImageDoc: () => NamedNode,\n doneCallback: (imageDoc) => Promise<void>\n): HTMLElement {\n const div = dom.createElement('div')\n const but = widgets.button(dom, cameraIcon, 'Take picture')\n let control\n async function restoreButton (imageDoc) {\n div.removeChild(control)\n div.appendChild(but)\n doneCallback(imageDoc)\n }\n div.appendChild(but)\n but.addEventListener('click', _event => {\n div.removeChild(but)\n control = cameraCaptureControl(\n dom,\n store,\n getImageDoc,\n restoreButton\n )\n div.appendChild(control)\n })\n return div\n}\n"],"mappings":"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"}
@@ -52,7 +52,6 @@ function messageArea(dom, kb, subject, messageStore, options) {
52
52
  a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true);
53
53
  a.setAttribute('style', 'color: #3B5998; text-decoration: none; '); // font-weight: bold
54
54
  }
55
-
56
55
  a.textContent = text;
57
56
  return a;
58
57
  };
@@ -221,7 +220,6 @@ function messageArea(dom, kb, subject, messageStore, options) {
221
220
  };
222
221
  renderMessage(bindings, true); // fresh from elsewhere
223
222
  };
224
-
225
223
  var renderMessage = function renderMessage(bindings, fresh) {
226
224
  var creator = bindings['?creator'];
227
225
  var message = bindings['?msg'];
@@ -295,7 +293,6 @@ function messageArea(dom, kb, subject, messageStore, options) {
295
293
  } else {
296
294
  messageTable.appendChild(tr); // not newestFirst
297
295
  }
298
-
299
296
  var query;
300
297
  // Do this with a live query to pull in messages from web
301
298
  if (options.query) {
@@ -315,7 +312,6 @@ function messageArea(dom, kb, subject, messageStore, options) {
315
312
  function doneQuery() {
316
313
  messageTable.fresh = true; // any new are fresh and so will be greenish
317
314
  }
318
-
319
315
  kb.query(query, renderMessage, undefined, doneQuery);
320
316
  div.refresh = function () {
321
317
  syncMessages(subject, messageTable);
@@ -1 +1 @@
1
- {"version":3,"file":"messageArea.js","names":["_iconBase","require","login","_interopRequireWildcard","_solidLogic","ns","rdf","style","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UI","icons","messageArea","dom","kb","subject","messageStore","options","solidLogicSingleton","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","field","disabled","sts","now","Date","timestamp","getTime","dateStamp","sym","push","Statement","wf","sioc","literal","value","foaf","sendComplete","success","body","errorMessageBlock","bindings","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","keyCode","altKey","button","iconBase","buttonStyle","context","ensureLoggedIn","then","nick","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","undefined","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","deleteMessage","deletions","statementsMatching","concat","ok","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","query","Query","v","vs","x","vars","variable","pat","add","msg","dct","doneQuery","refresh"],"sources":["../src/messageArea.js"],"sourcesContent":["// Common code for a discussion are a of messages about something\n//\n\nimport { icons } from './iconBase'\nimport * as login from './login/login'\nimport { solidLogicSingleton } from 'solid-logic'\nimport * as ns from './ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from './style'\nimport * as utils from './utils'\nimport * as widgets from './widgets'\n\nconst UI = { icons, ns, rdf, style, widgets }\n\nexport function messageArea (dom, kb, subject, messageStore, options) {\n kb = kb || solidLogicSingleton.store\n messageStore = messageStore.doc() // No hash\n const ns = UI.ns\n const WF = rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const DCT = rdf.Namespace('http://purl.org/dc/terms/')\n\n options = options || {}\n\n const newestFirst = !!options.newestFirst\n\n const messageBodyStyle =\n 'white-space: pre-wrap; width: 90%; font-size:100%; border: 0.07em solid #eee; padding: .2em 0.5em; margin: 0.1em 1em 0.1em 1em;'\n // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'\n\n const div = dom.createElement('div')\n // eslint-disable-next-line prefer-const\n let messageTable // Shared by initial build and addMessageFromBindings\n\n let me\n\n const updater = solidLogicSingleton.store.updater\n\n const anchor = function (text, term) {\n // If there is no link return an element anyway\n const a = dom.createElement('a')\n if (term && term.uri) {\n a.setAttribute('href', term.uri)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n a.setAttribute('style', 'color: #3B5998; text-decoration: none; ') // font-weight: bold\n }\n a.textContent = text\n return a\n }\n\n const mention = function mention (message, style) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style || 'color: grey')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n return pre\n }\n\n const announce = {\n log: function (message) {\n mention(message, 'color: #111;')\n },\n warn: function (message) {\n mention(message, 'color: #880;')\n },\n error: function (message) {\n mention(message, 'color: #800;')\n }\n }\n\n // Form for a new message\n //\n const newMessageForm = function () {\n const form = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n form.appendChild(lhs)\n form.appendChild(middle)\n form.appendChild(rhs)\n form.AJAR_date = '9999-01-01T00:00:00Z' // ISO format for field sort\n\n const sendMessage = function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = kb.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n sts.push(\n new rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n sts.push(\n new rdf.Statement(\n message,\n ns.sioc('content'),\n kb.literal(field.value),\n messageStore\n )\n )\n sts.push(\n new rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': kb.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n }\n form.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const turnOnInput = function () {\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n field.addEventListener(\n 'keyup',\n function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n sendMessage()\n }\n }\n },\n false\n )\n\n rhs.innerHTML = ''\n sendButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + 'noun_383448.svg',\n 'Send'\n )\n sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;')\n sendButton.addEventListener('click', sendMessage, false)\n rhs.appendChild(sendButton)\n }\n\n const context = { div: middle, dom }\n login.ensureLoggedIn(context).then(context => {\n me = context.me\n turnOnInput()\n })\n\n return form\n }\n\n function nick (person) {\n const s = solidLogicSingleton.store.any(person, UI.ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n }\n\n function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nick(creator), creator))\n if (creator.uri) {\n solidLogicSingleton.store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nick(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n }\n\n // ///////////////////////////////////////////////////////////////////////\n\n function syncMessages (about, messageTable) {\n const displayed = {}\n let ele, ele2\n for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {\n if (ele.AJAR_subject) {\n displayed[ele.AJAR_subject.uri] = true\n }\n }\n const messages = kb.each(about, ns.wf('message'))\n const stored = {}\n messages.forEach(function (m) {\n stored[m.uri] = true\n if (!displayed[m.uri]) {\n addMessage(m)\n }\n })\n\n // eslint-disable-next-line space-in-parens\n for (ele = messageTable.firstChild; ele; ) {\n ele2 = ele.nextSibling\n if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {\n messageTable.removeChild(ele)\n }\n ele = ele2\n }\n }\n\n const deleteMessage = function (message) {\n const deletions = kb\n .statementsMatching(message)\n .concat(kb.statementsMatching(undefined, undefined, message))\n updater.update(deletions, [], function (uri, ok, body) {\n if (!ok) {\n announce.error('Cant delete messages:' + body)\n } else {\n syncMessages(subject, messageTable)\n }\n })\n }\n\n const addMessage = function (message) {\n const bindings = {\n '?msg': message,\n '?creator': kb.any(message, ns.foaf('maker')),\n '?date': kb.any(message, DCT('created')),\n '?content': kb.any(message, ns.sioc('content'))\n }\n renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = function (bindings, fresh) {\n const creator = bindings['?creator']\n const message = bindings['?msg']\n const date = bindings['?date']\n const content = bindings['?content']\n\n const dateString = date.value\n const tr = dom.createElement('tr')\n tr.AJAR_date = dateString\n tr.AJAR_subject = message\n\n let done = false\n for (let ele = messageTable.firstChild; ; ele = ele.nextSibling) {\n if (!ele) {\n // empty\n break\n }\n if (\n (dateString > ele.AJAR_date && newestFirst) ||\n (dateString < ele.AJAR_date && !newestFirst)\n ) {\n messageTable.insertBefore(tr, ele)\n done = true\n break\n }\n }\n if (!done) {\n messageTable.appendChild(tr)\n }\n\n const td1 = dom.createElement('td')\n tr.appendChild(td1)\n creatorAndDate(td1, creator, UI.widgets.shortDate(dateString), message)\n\n const td2 = dom.createElement('td')\n tr.appendChild(td2)\n const pre = dom.createElement('p')\n pre.setAttribute(\n 'style',\n messageBodyStyle +\n (fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;')\n )\n td2.appendChild(pre)\n pre.textContent = content.value\n\n const td3 = dom.createElement('td')\n tr.appendChild(td3)\n\n const delButton = dom.createElement('button')\n td3.appendChild(delButton)\n delButton.textContent = '-'\n\n tr.setAttribute('class', 'hoverControl') // See tabbedtab.css (sigh global CSS)\n delButton.setAttribute('class', 'hoverControlHide')\n delButton.setAttribute('style', 'color: red;')\n delButton.addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(delButton) // Ask -- are you sure?\n const cancelButton = dom.createElement('button')\n cancelButton.textContent = 'cancel'\n td3.appendChild(cancelButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n td3.appendChild(delButton)\n },\n false\n )\n const sureButton = dom.createElement('button')\n sureButton.textContent = 'Delete message'\n td3.appendChild(sureButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n deleteMessage(message)\n },\n false\n )\n },\n false\n )\n }\n\n // Messages with date, author etc\n\n messageTable = dom.createElement('table')\n messageTable.fresh = false\n div.appendChild(messageTable)\n messageTable.setAttribute('style', 'width: 100%;') // fill that div!\n\n const tr = newMessageForm()\n if (newestFirst) {\n messageTable.insertBefore(tr, messageTable.firstChild) // If newestFirst\n } else {\n messageTable.appendChild(tr) // not newestFirst\n }\n\n let query\n // Do this with a live query to pull in messages from web\n if (options.query) {\n query = options.query\n } else {\n query = new rdf.Query('Messages')\n const v = {} // semicolon needed\n const vs = ['msg', 'date', 'creator', 'content']\n vs.forEach(function (x) {\n query.vars.push((v[x] = rdf.variable(x)))\n })\n query.pat.add(subject, WF('message'), v.msg)\n query.pat.add(v.msg, ns.dct('created'), v.date)\n query.pat.add(v.msg, ns.foaf('maker'), v.creator)\n query.pat.add(v.msg, ns.sioc('content'), v.content)\n }\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n kb.query(query, renderMessage, undefined, doneQuery)\n div.refresh = function () {\n syncMessages(subject, messageTable)\n }\n // syncMessages(subject, messageTable) // no the query will do this async\n return div\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"messageArea.js","names":["_iconBase","require","login","_interopRequireWildcard","_solidLogic","ns","rdf","style","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UI","icons","messageArea","dom","kb","subject","messageStore","options","solidLogicSingleton","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","field","disabled","sts","now","Date","timestamp","getTime","dateStamp","sym","push","Statement","wf","sioc","literal","value","foaf","sendComplete","success","body","errorMessageBlock","bindings","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","keyCode","altKey","button","iconBase","buttonStyle","context","ensureLoggedIn","then","nick","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","undefined","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","deleteMessage","deletions","statementsMatching","concat","ok","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","query","Query","v","vs","x","vars","variable","pat","add","msg","dct","doneQuery","refresh"],"sources":["../src/messageArea.js"],"sourcesContent":["// Common code for a discussion are a of messages about something\n//\n\nimport { icons } from './iconBase'\nimport * as login from './login/login'\nimport { solidLogicSingleton } from 'solid-logic'\nimport * as ns from './ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from './style'\nimport * as utils from './utils'\nimport * as widgets from './widgets'\n\nconst UI = { icons, ns, rdf, style, widgets }\n\nexport function messageArea (dom, kb, subject, messageStore, options) {\n kb = kb || solidLogicSingleton.store\n messageStore = messageStore.doc() // No hash\n const ns = UI.ns\n const WF = rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const DCT = rdf.Namespace('http://purl.org/dc/terms/')\n\n options = options || {}\n\n const newestFirst = !!options.newestFirst\n\n const messageBodyStyle =\n 'white-space: pre-wrap; width: 90%; font-size:100%; border: 0.07em solid #eee; padding: .2em 0.5em; margin: 0.1em 1em 0.1em 1em;'\n // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'\n\n const div = dom.createElement('div')\n // eslint-disable-next-line prefer-const\n let messageTable // Shared by initial build and addMessageFromBindings\n\n let me\n\n const updater = solidLogicSingleton.store.updater\n\n const anchor = function (text, term) {\n // If there is no link return an element anyway\n const a = dom.createElement('a')\n if (term && term.uri) {\n a.setAttribute('href', term.uri)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n a.setAttribute('style', 'color: #3B5998; text-decoration: none; ') // font-weight: bold\n }\n a.textContent = text\n return a\n }\n\n const mention = function mention (message, style) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style || 'color: grey')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n return pre\n }\n\n const announce = {\n log: function (message) {\n mention(message, 'color: #111;')\n },\n warn: function (message) {\n mention(message, 'color: #880;')\n },\n error: function (message) {\n mention(message, 'color: #800;')\n }\n }\n\n // Form for a new message\n //\n const newMessageForm = function () {\n const form = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n form.appendChild(lhs)\n form.appendChild(middle)\n form.appendChild(rhs)\n form.AJAR_date = '9999-01-01T00:00:00Z' // ISO format for field sort\n\n const sendMessage = function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = kb.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n sts.push(\n new rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n sts.push(\n new rdf.Statement(\n message,\n ns.sioc('content'),\n kb.literal(field.value),\n messageStore\n )\n )\n sts.push(\n new rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': kb.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n }\n form.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const turnOnInput = function () {\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n field.addEventListener(\n 'keyup',\n function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n sendMessage()\n }\n }\n },\n false\n )\n\n rhs.innerHTML = ''\n sendButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + 'noun_383448.svg',\n 'Send'\n )\n sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;')\n sendButton.addEventListener('click', sendMessage, false)\n rhs.appendChild(sendButton)\n }\n\n const context = { div: middle, dom }\n login.ensureLoggedIn(context).then(context => {\n me = context.me\n turnOnInput()\n })\n\n return form\n }\n\n function nick (person) {\n const s = solidLogicSingleton.store.any(person, UI.ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n }\n\n function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nick(creator), creator))\n if (creator.uri) {\n solidLogicSingleton.store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nick(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n }\n\n // ///////////////////////////////////////////////////////////////////////\n\n function syncMessages (about, messageTable) {\n const displayed = {}\n let ele, ele2\n for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {\n if (ele.AJAR_subject) {\n displayed[ele.AJAR_subject.uri] = true\n }\n }\n const messages = kb.each(about, ns.wf('message'))\n const stored = {}\n messages.forEach(function (m) {\n stored[m.uri] = true\n if (!displayed[m.uri]) {\n addMessage(m)\n }\n })\n\n // eslint-disable-next-line space-in-parens\n for (ele = messageTable.firstChild; ele; ) {\n ele2 = ele.nextSibling\n if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {\n messageTable.removeChild(ele)\n }\n ele = ele2\n }\n }\n\n const deleteMessage = function (message) {\n const deletions = kb\n .statementsMatching(message)\n .concat(kb.statementsMatching(undefined, undefined, message))\n updater.update(deletions, [], function (uri, ok, body) {\n if (!ok) {\n announce.error('Cant delete messages:' + body)\n } else {\n syncMessages(subject, messageTable)\n }\n })\n }\n\n const addMessage = function (message) {\n const bindings = {\n '?msg': message,\n '?creator': kb.any(message, ns.foaf('maker')),\n '?date': kb.any(message, DCT('created')),\n '?content': kb.any(message, ns.sioc('content'))\n }\n renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = function (bindings, fresh) {\n const creator = bindings['?creator']\n const message = bindings['?msg']\n const date = bindings['?date']\n const content = bindings['?content']\n\n const dateString = date.value\n const tr = dom.createElement('tr')\n tr.AJAR_date = dateString\n tr.AJAR_subject = message\n\n let done = false\n for (let ele = messageTable.firstChild; ; ele = ele.nextSibling) {\n if (!ele) {\n // empty\n break\n }\n if (\n (dateString > ele.AJAR_date && newestFirst) ||\n (dateString < ele.AJAR_date && !newestFirst)\n ) {\n messageTable.insertBefore(tr, ele)\n done = true\n break\n }\n }\n if (!done) {\n messageTable.appendChild(tr)\n }\n\n const td1 = dom.createElement('td')\n tr.appendChild(td1)\n creatorAndDate(td1, creator, UI.widgets.shortDate(dateString), message)\n\n const td2 = dom.createElement('td')\n tr.appendChild(td2)\n const pre = dom.createElement('p')\n pre.setAttribute(\n 'style',\n messageBodyStyle +\n (fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;')\n )\n td2.appendChild(pre)\n pre.textContent = content.value\n\n const td3 = dom.createElement('td')\n tr.appendChild(td3)\n\n const delButton = dom.createElement('button')\n td3.appendChild(delButton)\n delButton.textContent = '-'\n\n tr.setAttribute('class', 'hoverControl') // See tabbedtab.css (sigh global CSS)\n delButton.setAttribute('class', 'hoverControlHide')\n delButton.setAttribute('style', 'color: red;')\n delButton.addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(delButton) // Ask -- are you sure?\n const cancelButton = dom.createElement('button')\n cancelButton.textContent = 'cancel'\n td3.appendChild(cancelButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n td3.appendChild(delButton)\n },\n false\n )\n const sureButton = dom.createElement('button')\n sureButton.textContent = 'Delete message'\n td3.appendChild(sureButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n deleteMessage(message)\n },\n false\n )\n },\n false\n )\n }\n\n // Messages with date, author etc\n\n messageTable = dom.createElement('table')\n messageTable.fresh = false\n div.appendChild(messageTable)\n messageTable.setAttribute('style', 'width: 100%;') // fill that div!\n\n const tr = newMessageForm()\n if (newestFirst) {\n messageTable.insertBefore(tr, messageTable.firstChild) // If newestFirst\n } else {\n messageTable.appendChild(tr) // not newestFirst\n }\n\n let query\n // Do this with a live query to pull in messages from web\n if (options.query) {\n query = options.query\n } else {\n query = new rdf.Query('Messages')\n const v = {} // semicolon needed\n const vs = ['msg', 'date', 'creator', 'content']\n vs.forEach(function (x) {\n query.vars.push((v[x] = rdf.variable(x)))\n })\n query.pat.add(subject, WF('message'), v.msg)\n query.pat.add(v.msg, ns.dct('created'), v.date)\n query.pat.add(v.msg, ns.foaf('maker'), v.creator)\n query.pat.add(v.msg, ns.sioc('content'), v.content)\n }\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n kb.query(query, renderMessage, undefined, doneQuery)\n div.refresh = function () {\n syncMessages(subject, messageTable)\n }\n // syncMessages(subject, messageTable) // no the query will do this async\n return div\n}\n"],"mappings":"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"}
package/lib/pad.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Notepad Widget
3
3
  */
4
4
  import { NamedNode, IndexedFormula } from 'rdflib';
5
- export { renderPartipants, participationObject, manageParticipation, recordParticipation } from './participation';
5
+ export { renderParticipants, participationObject, manageParticipation, recordParticipation } from './participation';
6
6
  type notepadOptions = {
7
7
  statusArea?: HTMLDivElement;
8
8
  exists?: boolean;
@@ -16,7 +16,7 @@ export declare function lightColorHash(author?: NamedNode): string;
16
16
  /** notepad
17
17
  *
18
18
  * @param {HTMLDocument} dom - the web page of the browser
19
- * @param {NamedNode} padDoc - the document into which the particpation should be shown
19
+ * @param {NamedNode} padDoc - the document in which the participation should be shown
20
20
  * @param {NamedNode} subject - the thing in which participation is happening
21
21
  * @param {NamedNode} me - person who is logged into the pod
22
22
  * @param {notepadOptions} options - the options that can be passed in consist of statusArea, exists
package/lib/pad.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pad.d.ts","sourceRoot":"","sources":["../src/pad.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAa,SAAS,EAAM,cAAc,EAAE,MAAM,QAAQ,CAAA;AAKjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAMjH,KAAK,cAAc,GAAG;IACpB,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAgBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAE,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAU1D;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,OAwuBzH;AAED;;;GAGG;AAGH,wBAAgB,SAAS,CAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,SAUhE;AAED;;GAEG;AAEH,wBAAgB,SAAS,CAAE,GAAG,KAAA,OAE7B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,cAAc,UA6C1D"}
1
+ {"version":3,"file":"pad.d.ts","sourceRoot":"","sources":["../src/pad.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAa,SAAS,EAAM,cAAc,EAAE,MAAM,QAAQ,CAAA;AAMjE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAMnH,KAAK,cAAc,GAAG;IACpB,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAgBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAE,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAU1D;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,OAusBzH;AAED;;;GAGG;AAGH,wBAAgB,SAAS,CAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,SAUhE;AAED;;GAEG;AAEH,wBAAgB,SAAS,CAAE,GAAG,KAAA,OAE7B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,cAAc,UA6C1D"}