diff --git a/src/frontend/packages/activitypub-components/dist/index.cjs.js b/src/frontend/packages/activitypub-components/dist/index.cjs.js index 09dd349c5..07bf73940 100644 --- a/src/frontend/packages/activitypub-components/dist/index.cjs.js +++ b/src/frontend/packages/activitypub-components/dist/index.cjs.js @@ -1,4 +1,4 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react-admin"),r=require("ra-richtext-tiptap"),n=require("react-final-form"),o=require("@material-ui/core"),a=require("@material-ui/icons/Send"),i=require("@semapps/semantic-data-provider"),u=require("@semapps/auth-provider"),c=require("@tiptap/core"),l=require("@tiptap/extension-mention"),s=require("@semapps/field-components"),d=require("@tiptap/react"),f=require("tippy.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=p(e),h=p(a),v=p(l),y=p(f);function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function g(e){for(var t=1;t=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),O(r),s}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:I(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),s}},e}function E(e,t,r,n,o,a,i){try{var u=e[a](i),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function x(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){E(a,n,o,i,u,"next",e)}function u(e){E(a,n,o,i,u,"throw",e)}i(void 0)}))}}function O(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function T(){return(T=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function L(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,a=[],i=!0,u=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){u=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(u)throw o}}return a}(e,t)||A(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||A(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(e,t){if(e){if("string"==typeof e)return C(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?C(e,t):void 0}}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(a.construct,"\n }\n WHERE {\n <").concat(n,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ").concat(a.where,"\n }\n "),e.next=7,t.fetchUtils.fetchJson(o,{method:"POST",body:u,headers:new Headers({Accept:"application/ld+json",Authorization:r?"Bearer ".concat(r):void 0})});case 7:if(c=e.sent,!(l=c.json)["@graph"]){e.next=13;break}return e.abrupt("return",l["@graph"]);case 13:return e.abrupt("return",null);case 14:case"end":return e.stop()}}),e)}))),[o,n]),url:n,owner:null==r?void 0:r.id}},N=v.default.extend({renderHTML:function(e){var t=e.node,r=e.HTMLAttributes;return["span",c.mergeAttributes(this.options.HTMLAttributes,r),"@".concat(t.attrs.id.label)]},addAttributes:function(){return{label:{default:null,parseHTML:function(e){return{label:e.getAttribute("data-mention-label")}},renderHTML:function(e){return e.id.label?{"data-mention-label":e.id.label}:{}}},id:{default:null,parseHTML:function(e){return{id:e.getAttribute("data-mention-id")}},renderHTML:function(e){return e.id.id?{"data-mention-id":e.id.id}:{}}}}}}),j=o.makeStyles((function(e){return{form:{marginTop:-12},container:{paddingLeft:80,position:"relative"},avatar:{position:"absolute",top:16,left:0,bottom:0,width:64,height:64},editorContent:{"& > div":{backgroundColor:"rgba(0, 0, 0, 0.09)",padding:"2px 12px",borderWidth:"0px !important",borderRadius:0,borderBottom:"1px solid #FFF",minHeight:60,outline:"unset !important"},"& > div > p":{marginTop:12,marginBottom:12,fontFamily:e.typography.body1.fontFamily,marginBlockStart:"0.5em",marginBlockEnd:"0.5em"},marginBottom:-19},button:{marginBottom:15}}})),D=function(a){var c=a.context,l=a.helperText,s=a.mentions,d=a.userResource,f=a.addItem,p=a.removeItem,v=t.useRecordContext(),y=t.useGetIdentity().identity,b=i.useDataModel(d),E=j(),O=t.useNotify(),T=P(),I=L(e.useState(!1),2),A=I[0],C=I[1],D=L(e.useState(!1),2),M=D[0],F=D[1],B=e.useCallback(function(){var e=x(w().mark((function e(t,r){var n,o,a,i,u,l;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.reset,o=(new DOMParser).parseFromString(t.comment,"text/html"),a=Array.from(o.body.getElementsByClassName("mention")),i=[],a.forEach((function(e){var t=e.attributes["data-mention-id"].value,r=e.attributes["data-mention-label"].value,n=o.createElement("a");n.setAttribute("href",new URL(window.location.href).origin+"/"+d+"/"+encodeURIComponent(t)+"/show"),n.textContent="@"+r,e.parentNode.replaceChild(n,e),i.push(t)})),"undefined"!==o.body.innerHTML){e.next=9;break}O("Votre commentaire est vide","error"),e.next=24;break;case 9:return u=Date.now(),l={type:R.NOTE,attributedTo:T.owner,content:o.body.innerHTML,inReplyTo:v[c],published:(new Date).toISOString()},e.prev=11,f(g({id:u},l)),n(),C(!1),e.next=17,T.post(g(g({},l),{},{to:[].concat(i,[S])}));case 17:O("Commentaire posté avec succès","success"),e.next=24;break;case 20:e.prev=20,e.t0=e.catch(11),p(u),O(e.t0.message,"error");case 24:case"end":return e.stop()}}),e,null,[[11,20]])})));return function(t,r){return e.apply(this,arguments)}}(),[T,O,C,f,p]),U=e.useCallback((function(){y.id||F(!0)}),[y,F]);return s&&!s.items||!y?null:m.default.createElement(m.default.Fragment,null,m.default.createElement(n.Form,{onSubmit:B,subscription:{submitting:!0,pristine:!0},render:function(e){var t,n,a=e.handleSubmit,i=e.submitting;if(e.pristine){var u=document.getElementById("comment");u&&(u.innerHTML="")}return m.default.createElement("form",{onSubmit:a,className:E.form},m.default.createElement(o.Box,{className:E.container,onClick:U},m.default.createElement(o.Avatar,{src:null==y||null===(t=y.webIdData)||void 0===t?void 0:t[null==b||null===(n=b.fieldsMapping)||void 0===n?void 0:n.image],className:E.avatar}),m.default.createElement(r.RichTextInput,{source:"comment",label:"",toolbar:null,fullWidth:!0,classes:{editorContent:E.editorContent},editorOptions:g(g({},r.DefaultEditorOptions),{},{onFocus:function(){C(!0)},extensions:[].concat(k(r.DefaultEditorOptions.extensions),[s?N.configure({HTMLAttributes:{class:"mention"},suggestion:s}):null]),editable:!!y.id}),helperText:l}),A&&m.default.createElement(o.Button,{type:"submit",size:"small",variant:"contained",color:"primary",endIcon:m.default.createElement(h.default,null),disabled:i,className:E.button},"Envoyer")))}}),m.default.createElement(u.AuthDialog,{open:M,onClose:function(){return F(!1)},message:"Pour poster un commentaire, vous devez être connecté."}))},M=o.makeStyles((function(){return{container:{paddingLeft:80,marginTop:8,minHeight:80,position:"relative"},avatar:{position:"absolute",top:0,left:0,bottom:0,width:64,height:64},text:{paddingTop:2,paddingBottom:8},label:{fontWeight:"bold"},content:{"& p":{marginBlockStart:"0.5em",marginBlockEnd:"0.5em"}},loading:{zIndex:1e3,backgroundColor:"white",opacity:.5,position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",minHeight:200,marginTop:5}}})),F=function(e){var r=e.comments,n=e.userResource,a=e.loading,u=M(),c=i.useDataModel(n);return m.default.createElement(o.Box,{position:"relative"},r&&r.sort((function(e,t){return new Date(t.published)-new Date(e.published)})).map((function(e){var r,n;return m.default.createElement(o.Box,{className:u.container},m.default.createElement(o.Box,{className:u.avatar},m.default.createElement(s.ReferenceField,{record:e,reference:"Person",source:"attributedTo",linkType:"show"},m.default.createElement(s.AvatarWithLabelField,{image:null==c||null===(r=c.fieldsMapping)||void 0===r?void 0:r.image}))),m.default.createElement(o.Box,{className:u.text},m.default.createElement(o.Typography,{variant:"body2"},m.default.createElement(s.ReferenceField,{record:e,reference:"Person",source:"attributedTo",linkType:"show"},m.default.createElement(t.TextField,{variant:"body2",source:null==c||null===(n=c.fieldsMapping)||void 0===n?void 0:n.title,className:u.label}))," • ",m.default.createElement(t.DateField,{record:e,variant:"body2",source:"published",showTime:!0})),m.default.createElement(t.RichTextField,{record:e,variant:"body1",source:"content",className:u.content})))})),a&&m.default.createElement(o.Box,{minHeight:200},m.default.createElement(o.Box,{alignItems:"center",className:u.loading},m.default.createElement(o.CircularProgress,{size:60,thickness:6}))))},B=function(r){var n=t.useGetIdentity().identity,o=L(e.useState([]),2),a=o[0],i=o[1],u=L(e.useState(!1),2),c=u[0],l=u[1],s=L(e.useState(!1),2),d=s[0],f=s[1],p=L(e.useState(!1),2),m=p[0],h=p[1],v=e.useMemo((function(){if(r){if(r.startsWith("http"))return r;var e;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e?void 0:e[r]}}),[n,r]),y=e.useCallback(x(w().mark((function e(){var r,n;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(v){e.next=2;break}return e.abrupt("return");case 2:l(!0),r=localStorage.getItem("token"),n=new Headers({Accept:"application/ld+json",Authorization:r?"Bearer ".concat(r):void 0}),t.fetchUtils.fetchJson(v,{headers:n}).then((function(e){var t=e.json;t&&t.items?i(t.items):t&&t.orderedItems?i(t.orderedItems):i([]),h(!1),f(!0),l(!1)})).catch((function(){h(!0),f(!0),l(!1)}));case 6:case"end":return e.stop()}}),e)}))),[i,f,l,h,v]);e.useEffect((function(){c||d||m||y()}),[y,c,d,m]);var b=e.useCallback((function(e){i((function(t){return[].concat(k(t),[e])}))}),[i]),g=e.useCallback((function(e){i((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[i]);return{items:a,loading:c,loaded:d,error:m,refetch:y,addItem:b,removeItem:g,url:v}},U=function(e){e.source;var r=e.context,n=e.helperText,o=e.userResource,a=e.mentions,i=t.useRecordContext(),u=B(i.replies),c=u.items,l=u.loading,s=u.addItem,d=u.removeItem;if(!o)throw new Error("No userResource defined for CommentsField");return m.default.createElement(m.default.Fragment,null,m.default.createElement(D,{context:r,helperText:n,userResource:o,mentions:a,addItem:s,removeItem:d}),m.default.createElement(F,{comments:c,loading:l,userResource:o}))};U.defaultProps={addLabel:!0,label:"Commentaires",source:"id",context:"id"};var _=["collectionUrl","resource","children"],H=function(e){var r=e.collectionUrl,n=e.resource,o=e.children,a=I(e,_);if(1!==m.default.Children.count(o))throw new Error(" only accepts a single child");var i=t.useGetOne(n,r,{enabled:!!r}),u=i.data;return i.loading?m.default.createElement("div",{style:{marginTop:8}},m.default.createElement(t.LinearProgress,null)):u?m.default.createElement(s.ReferenceArrayField,T({reference:n,record:u,source:"items"},a),o):null},G=["source","record","reference","children"],q=function(e){var t=e.source,r=e.record,n=e.reference,o=e.children,a=I(e,G);if(1!==m.default.Children.count(o))throw new Error(" only accepts a single child");return r&&r[t]?m.default.createElement(H,T({resource:n,collectionUrl:r[t]},a),o):null};q.defaultProps={addLabel:!0};var V=o.makeStyles((function(e){return{items:{background:"#fff",borderRadius:"0.5rem",boxShadow:"0 0 0 1px rgba(0, 0, 0, 0.05), 0px 10px 20px rgba(0, 0, 0, 0.1)",color:"rgba(0, 0, 0, 0.8)",fontSize:"0.9rem",overflow:"hidden",padding:"0.2rem",position:"relative"},item:{background:"transparent",border:"1px solid transparent",borderRadius:"0.4rem",display:"block",margin:0,padding:"0.2rem 0.4rem",textAlign:"left",width:"100%","&.selected":{borderColor:"#000"}}}})),W=e.forwardRef((function(t,r){var n=L(e.useState(0),2),o=n[0],a=n[1],i=V(),u=function(e){var r=t.items[e];r&&t.command({id:r})};return e.useEffect((function(){return a(0)}),[t.items]),e.useImperativeHandle(r,(function(){return{onKeyDown:function(e){var r=e.event;return"ArrowUp"===r.key?(a((o+t.items.length-1)%t.items.length),!0):"ArrowDown"===r.key?(a((o+1)%t.items.length),!0):"Enter"===r.key&&(u(o),!0)}}})),m.default.createElement("div",{className:i.items},t.items.length?t.items.map((function(e,t){return m.default.createElement("button",{className:i.item+(t===o?" selected":""),key:t,onClick:function(){return u(t)}},e.label)})):m.default.createElement("div",{className:i.item},"Aucun résultat"))})),J=function(){var e,t;return{onStart:function(r){e=new d.ReactRenderer(W,{props:r,editor:r.editor}),t=y.default("body",{getReferenceClientRect:r.clientRect,appendTo:function(){return document.body},content:e.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start"})},onUpdate:function(r){e.updateProps(r),t[0].setProps({getReferenceClientRect:r.clientRect})},onKeyDown:function(r){var n;return"Escape"===r.event.key?(t[0].hide(),!0):null===(n=e.ref)||void 0===n?void 0:n.onKeyDown(r)},onExit:function(){t[0].destroy(),e.destroy()}}};exports.ACTIVITY_TYPES={ACCEPT:"Accept",ADD:"Add",ANNOUNCE:"Announce",ARRIVE:"Arrive",BLOCK:"Block",CREATE:"Create",DELETE:"Delete",DISLIKE:"Dislike",FLAG:"Flag",FOLLOW:"Follow",IGNORE:"Ignore",INVITE:"Invite",JOIN:"Join",LEAVE:"Leave",LIKE:"Like",LISTEN:"Listen",MOVE:"Move",OFFER:"Offer",QUESTION:"Question",REJECT:"Reject",READ:"Read",REMOVE:"Remove",TENTATIVE_REJECT:"TentativeReject",TENTATIVE_ACCEPT:"TentativeAccept",TRAVAL:"Travel",UNDO:"Undo",UPDATE:"Update",VIEW:"View"},exports.ACTOR_TYPES={APPLICATION:"Application",GROUP:"Group",ORGANIZATION:"Organization",PERSON:"Person",SERVICE:"Service"},exports.CollectionList=H,exports.CommentsField=U,exports.OBJECT_TYPES=R,exports.PUBLIC_URI=S,exports.ReferenceCollectionField=q,exports.useCollection=B,exports.useInbox=function(){var r=t.useGetIdentity().identity,n=e.useMemo((function(){var e;if(null!=r&&r.webIdData)return null==r||null===(e=r.webIdData)||void 0===e?void 0:e.inbox}),[r]),o=e.useMemo((function(){var e,t;if(null!=r&&r.webIdData)return(null==r||null===(e=r.webIdData)||void 0===e||null===(t=e.endpoints)||void 0===t?void 0:t["void:sparqlEndpoint"])||(null==r?void 0:r.id)+"/sparql"}),[r]);return{fetch:e.useCallback(function(){var e=x(w().mark((function e(r){var a,u,c,l,s,d,f;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=r.filters,console.log("inboxUrl",n,o),o&&n){e.next=4;break}return e.abrupt("return");case 4:return u=localStorage.getItem("token"),c=i.buildBlankNodesQuery(["as:object"]),l="",a&&Object.keys(a).forEach((function(e){if(a[e]){var t=a[e].startsWith("http")?"<".concat(a[e],">"):a[e];l+="?s1 ".concat(e," ").concat(t," .")}})),s="\n PREFIX as: \n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(c.construct,"\n }\n WHERE {\n <").concat(n,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ").concat(l,"\n ").concat(c.where,"\n }\n "),e.next=11,t.fetchUtils.fetchJson(o,{method:"POST",body:s,headers:new Headers({Accept:"application/ld+json",Authorization:u?"Bearer ".concat(u):void 0})});case 11:if(d=e.sent,!(f=d.json)["@graph"]){e.next=17;break}return e.abrupt("return",f["@graph"]);case 17:return e.abrupt("return",null);case 18:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[o,n]),url:n,owner:null==r?void 0:r.id}},exports.useMentions=function(r){var n,o,a=i.useDataModel(r),u=t.useQuery({type:"getList",resource:r,payload:{filter:{_predicates:[null==a||null===(n=a.fieldsMapping)||void 0===n?void 0:n.title],blankNodes:[]}}},{enabled:!(null==a||null===(o=a.fieldsMapping)||void 0===o||!o.title)}).data,c=e.useMemo((function(){if(u)return u.map((function(e){var t;return{id:e.id,label:e[null==a||null===(t=a.fieldsMapping)||void 0===t?void 0:t.title]}}))}),[u]);return{items:e.useMemo((function(){if(c)return function(e){var t=e.query;return c.filter((function(e){return e.label.toLowerCase().startsWith(t.toLowerCase())})).slice(0,5)}}),[c]),render:J}},exports.useOutbox=P,exports.useWebfinger=function(){return{fetch:e.useCallback(function(){var e=x(w().mark((function e(r){var n,o,a,i,u,c,l,s,d;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.split("@"),(o=L(n,3))[0],a=o[1],!(i=o[2])){e.next=18;break}return u=i.includes(":")?"http":"https",c="".concat(u,"://").concat(i,"/.well-known/webfinger?resource=acct:").concat(a,"@").concat(i),e.prev=4,e.next=7,t.fetchUtils.fetchJson(c);case 7:return l=e.sent,s=l.json,d=s.links.find((function(e){return"application/activity+json"===e.type})),e.abrupt("return",d?d.href:null);case 13:return e.prev=13,e.t0=e.catch(4),e.abrupt("return",null);case 16:e.next=19;break;case 18:return e.abrupt("return",null);case 19:case"end":return e.stop()}}),e,null,[[4,13]])})));return function(t){return e.apply(this,arguments)}}(),[])}}; +w=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,r){return e[t]=r}}function l(e,t,r,n){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),i=new O(n||[]);return a._invoke=function(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return k()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var u=E(i,r);if(u){if(u===s)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=c(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===s)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}(e,r,i),a}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=l;var s={};function d(){}function f(){}function p(){}var m={};u(m,o,(function(){return this}));var h=Object.getPrototypeOf,v=h&&h(h(I([])));v&&v!==t&&r.call(v,o)&&(m=v);var y=p.prototype=d.prototype=Object.create(m);function b(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function g(e,t){var n;this._invoke=function(o,a){function i(){return new t((function(n,i){!function n(o,a,i,u){var l=c(e[o],e,a);if("throw"!==l.type){var s=l.arg,d=s.value;return d&&"object"==typeof d&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,i,u)}),(function(e){n("throw",e,i,u)})):t.resolve(d).then((function(e){s.value=e,i(s)}),(function(e){return n("throw",e,i,u)}))}u(l.arg)}(o,a,n,i)}))}return n=n?n.then(i,i):i()}}function E(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method))return s;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return s}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,s;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,s):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,s)}function x(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function I(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),T(r),s}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:I(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),s}},e}function E(e,t,r,n,o,a,i){try{var u=e[a](i),l=u.value}catch(e){return void r(e)}u.done?t(l):Promise.resolve(l).then(n,o)}function x(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){E(a,n,o,i,u,"next",e)}function u(e){E(a,n,o,i,u,"throw",e)}i(void 0)}))}}function T(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function O(){return(O=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,a=[],i=!0,u=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){u=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(u)throw o}}return a}(e,t)||A(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function L(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||A(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(e,t){if(e){if("string"==typeof e)return C(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?C(e,t):void 0}}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(a.construct,"\n }\n WHERE {\n <").concat(n,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ").concat(a.where,"\n }\n "),e.next=7,t.fetchUtils.fetchJson(o,{method:"POST",body:u,headers:new Headers({Accept:"application/ld+json",Authorization:r?"Bearer ".concat(r):void 0})});case 7:if(l=e.sent,!(c=l.json)["@graph"]){e.next=13;break}return e.abrupt("return",c["@graph"]);case 13:return e.abrupt("return",null);case 14:case"end":return e.stop()}}),e)}))),[o,n]),url:n,owner:null==r?void 0:r.id}},R=v.default.extend({renderHTML:function(e){var t=e.node,r=e.HTMLAttributes;return["span",l.mergeAttributes(this.options.HTMLAttributes,r),"@".concat(t.attrs.id.label)]},addAttributes:function(){return{label:{default:null,parseHTML:function(e){return{label:e.getAttribute("data-mention-label")}},renderHTML:function(e){return e.id.label?{"data-mention-label":e.id.label}:{}}},id:{default:null,parseHTML:function(e){return{id:e.getAttribute("data-mention-id")}},renderHTML:function(e){return e.id.id?{"data-mention-id":e.id.id}:{}}}}}}),P=o.makeStyles((function(e){return{form:{marginTop:-12},container:{paddingLeft:80,position:"relative"},avatar:{position:"absolute",top:16,left:0,bottom:0,width:64,height:64},editorContent:{"& > div":{backgroundColor:"rgba(0, 0, 0, 0.09)",padding:"2px 12px",borderWidth:"0px !important",borderRadius:0,borderBottom:"1px solid #FFF",minHeight:60,outline:"unset !important"},"& > div > p":{marginTop:12,marginBottom:12,fontFamily:e.typography.body1.fontFamily,marginBlockStart:"0.5em",marginBlockEnd:"0.5em"},marginBottom:-19},button:{marginBottom:15}}})),D=function(a){var l=a.context,c=a.helperText,s=a.mentions,d=a.userResource,f=a.addItem,p=a.removeItem,v=t.useRecordContext(),y=t.useGetIdentity().identity,b=i.useDataModel(d),E=P(),T=t.useNotify(),O=j(),I=k(e.useState(!1),2),A=I[0],C=I[1],D=k(e.useState(!1),2),M=D[0],q=D[1],F=e.useCallback(function(){var e=x(w().mark((function e(t,r){var n,o,a,i,u,c;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.reset,o=(new DOMParser).parseFromString(t.comment,"text/html"),a=Array.from(o.body.getElementsByClassName("mention")),i=[],a.forEach((function(e){var t=e.attributes["data-mention-id"].value,r=e.attributes["data-mention-label"].value,n=o.createElement("a");n.setAttribute("href",new URL(window.location.href).origin+"/"+d+"/"+encodeURIComponent(t)+"/show"),n.textContent="@"+r,e.parentNode.replaceChild(n,e),i.push(t)})),"undefined"!==o.body.innerHTML){e.next=9;break}T("Votre commentaire est vide","error"),e.next=24;break;case 9:return u=Date.now(),c={type:N.NOTE,attributedTo:O.owner,content:o.body.innerHTML,inReplyTo:v[l],published:(new Date).toISOString()},e.prev=11,f(g({id:u},c)),n(),C(!1),e.next=17,O.post(g(g({},c),{},{to:[].concat(i,[S])}));case 17:T("Commentaire posté avec succès","success"),e.next=24;break;case 20:e.prev=20,e.t0=e.catch(11),p(u),T(e.t0.message,"error");case 24:case"end":return e.stop()}}),e,null,[[11,20]])})));return function(t,r){return e.apply(this,arguments)}}(),[O,T,C,f,p]),B=e.useCallback((function(){y.id||q(!0)}),[y,q]);return s&&!s.items||!y?null:m.default.createElement(m.default.Fragment,null,m.default.createElement(n.Form,{onSubmit:F,subscription:{submitting:!0,pristine:!0},render:function(e){var t,n,a=e.handleSubmit,i=e.submitting;if(e.pristine){var u=document.getElementById("comment");u&&(u.innerHTML="")}return m.default.createElement("form",{onSubmit:a,className:E.form},m.default.createElement(o.Box,{className:E.container,onClick:B},m.default.createElement(o.Avatar,{src:null==y||null===(t=y.webIdData)||void 0===t?void 0:t[null==b||null===(n=b.fieldsMapping)||void 0===n?void 0:n.image],className:E.avatar}),m.default.createElement(r.RichTextInput,{source:"comment",label:"",toolbar:null,fullWidth:!0,classes:{editorContent:E.editorContent},editorOptions:g(g({},r.DefaultEditorOptions),{},{onFocus:function(){C(!0)},extensions:[].concat(L(r.DefaultEditorOptions.extensions),[s?R.configure({HTMLAttributes:{class:"mention"},suggestion:s}):null]),editable:!!y.id}),helperText:c}),A&&m.default.createElement(o.Button,{type:"submit",size:"small",variant:"contained",color:"primary",endIcon:m.default.createElement(h.default,null),disabled:i,className:E.button},"Envoyer")))}}),m.default.createElement(u.AuthDialog,{open:M,onClose:function(){return q(!1)},message:"Pour poster un commentaire, vous devez être connecté."}))},M=o.makeStyles((function(){return{container:{paddingLeft:80,marginTop:8,minHeight:80,position:"relative"},avatar:{position:"absolute",top:0,left:0,bottom:0,width:64,height:64},text:{paddingTop:2,paddingBottom:8},label:{fontWeight:"bold"},content:{"& p":{marginBlockStart:"0.5em",marginBlockEnd:"0.5em"}},loading:{zIndex:1e3,backgroundColor:"white",opacity:.5,position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",minHeight:200,marginTop:5}}})),q=function(e){var r=e.comments,n=e.userResource,a=e.loading,u=M(),l=i.useDataModel(n);return m.default.createElement(o.Box,{position:"relative"},r&&r.sort((function(e,t){return new Date(t.published)-new Date(e.published)})).map((function(e){var r,n;return m.default.createElement(o.Box,{className:u.container},m.default.createElement(o.Box,{className:u.avatar},m.default.createElement(s.ReferenceField,{record:e,reference:"Person",source:"attributedTo",linkType:"show"},m.default.createElement(s.AvatarWithLabelField,{image:null==l||null===(r=l.fieldsMapping)||void 0===r?void 0:r.image}))),m.default.createElement(o.Box,{className:u.text},m.default.createElement(o.Typography,{variant:"body2"},m.default.createElement(s.ReferenceField,{record:e,reference:"Person",source:"attributedTo",linkType:"show"},m.default.createElement(t.TextField,{variant:"body2",source:null==l||null===(n=l.fieldsMapping)||void 0===n?void 0:n.title,className:u.label}))," • ",m.default.createElement(t.DateField,{record:e,variant:"body2",source:"published",showTime:!0})),m.default.createElement(t.RichTextField,{record:e,variant:"body1",source:"content",className:u.content})))})),a&&m.default.createElement(o.Box,{minHeight:200},m.default.createElement(o.Box,{alignItems:"center",className:u.loading},m.default.createElement(o.CircularProgress,{size:60,thickness:6}))))},F=function(r){var n=t.useGetIdentity().identity,o=k(e.useState([]),2),a=o[0],i=o[1],u=k(e.useState(!1),2),l=u[0],c=u[1],s=k(e.useState(!1),2),d=s[0],f=s[1],p=k(e.useState(!1),2),m=p[0],h=p[1],v=e.useMemo((function(){if(r){if(r.startsWith("http"))return r;var e;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e?void 0:e[r]}}),[n,r]),y=e.useCallback(x(w().mark((function e(){var r,n;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(v){e.next=2;break}return e.abrupt("return");case 2:c(!0),r=localStorage.getItem("token"),n=new Headers({Accept:"application/ld+json",Authorization:r?"Bearer ".concat(r):void 0}),t.fetchUtils.fetchJson(v,{headers:n}).then((function(e){var t=e.json;t&&t.items?i(t.items):t&&t.orderedItems?i(t.orderedItems):i([]),h(!1),f(!0),c(!1)})).catch((function(){h(!0),f(!0),c(!1)}));case 6:case"end":return e.stop()}}),e)}))),[i,f,c,h,v]);e.useEffect((function(){l||d||m||y()}),[y,l,d,m]);var b=e.useCallback((function(e){i((function(t){return[].concat(L(t),[e])}))}),[i]),g=e.useCallback((function(e){i((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[i]);return{items:a,loading:l,loaded:d,error:m,refetch:y,addItem:b,removeItem:g,url:v}},B=function(e){e.source;var r=e.context,n=e.helperText,o=e.userResource,a=e.mentions,i=t.useRecordContext(),u=F(i.replies),l=u.items,c=u.loading,s=u.addItem,d=u.removeItem;if(!o)throw new Error("No userResource defined for CommentsField");return m.default.createElement(m.default.Fragment,null,m.default.createElement(D,{context:r,helperText:n,userResource:o,mentions:a,addItem:s,removeItem:d}),m.default.createElement(q,{comments:l,loading:c,userResource:o}))};B.defaultProps={addLabel:!0,label:"Commentaires",source:"id",context:"id"};var G=["collectionUrl","resource","children"],U=function(e){var r=e.collectionUrl,n=e.resource,o=e.children,a=I(e,G);if(1!==m.default.Children.count(o))throw new Error(" only accepts a single child");var i=t.useGetOne(n,r,{enabled:!!r}),u=i.data;return i.loading?m.default.createElement("div",{style:{marginTop:8}},m.default.createElement(t.LinearProgress,null)):u?m.default.createElement(s.ReferenceArrayField,O({reference:n,record:u,source:"items"},a),o):null},_=["source","record","reference","children"],H=function(e){var t=e.source,r=e.record,n=e.reference,o=e.children,a=I(e,_);if(1!==m.default.Children.count(o))throw new Error(" only accepts a single child");return r&&r[t]?m.default.createElement(U,O({resource:n,collectionUrl:r[t]},a),o):null};H.defaultProps={addLabel:!0};class V{constructor(e){this.value=e||"b"+ ++V.nextId}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value}}V.prototype.termType="BlankNode",V.nextId=0;var J=V;class z{equals(e){return!!e&&e.termType===this.termType}}z.prototype.termType="DefaultGraph",z.prototype.value="";var W=z;var Q=function(e){if(!e)return null;if("BlankNode"===e.termType)return this.blankNode(e.value);if("DefaultGraph"===e.termType)return this.defaultGraph();if("Literal"===e.termType)return this.literal(e.value,e.language||this.namedNode(e.datatype.value));if("NamedNode"===e.termType)return this.namedNode(e.value);if("Quad"===e.termType){const t=this.fromTerm(e.subject),r=this.fromTerm(e.predicate),n=this.fromTerm(e.object),o=this.fromTerm(e.graph);return this.quad(t,r,n,o)}if("Variable"===e.termType)return this.variable(e.value);throw new Error("unknown termType "+e.termType)};class K{constructor(e){this.value=e}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value}}K.prototype.termType="NamedNode";var Y=K;class X{constructor(e,t,r){this.value=e,this.datatype=X.stringDatatype,this.language="",t?(this.language=t,this.datatype=X.langStringDatatype):r&&(this.datatype=r)}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value&&e.language===this.language&&e.datatype.equals(this.datatype)}}X.prototype.termType="Literal",X.langStringDatatype=new Y("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"),X.stringDatatype=new Y("http://www.w3.org/2001/XMLSchema#string");var Z=X;class ${constructor(e,t,r,n){this.subject=e,this.predicate=t,this.object=r,this.graph=n||new W}equals(e){return!!e&&("Quad"===e.termType||!e.termType)&&e.subject.equals(this.subject)&&e.predicate.equals(this.predicate)&&e.object.equals(this.object)&&e.graph.equals(this.graph)}}$.prototype.termType="Quad",$.prototype.value="";var ee=$;class te{constructor(e){this.value=e}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value}}te.prototype.termType="Variable";var re=te;const ne={namedNode:function(e){return new Y(e)},blankNode:function(e){return new J(e)},literal:function(e,t){return"string"==typeof t?-1===t.indexOf(":")?new Z(e,t):new Z(e,null,ne.namedNode(t)):new Z(e,null,t)},variable:function(e){return new re(e)},defaultGraph:function(){return ne.defaultGraphInstance},triple:function(e,t,r){return ne.quad(e,t,r)},quad:function(e,t,r,n){return new ee(e,t,r,n||ne.defaultGraphInstance)},fromTerm:function(e){return Q.call(ne,e)},fromQuad:function(e){return Q.call(ne,e)},defaultGraphInstance:new W};var oe=ne,ae=oe.namedNode,ie=oe.triple,ue=oe.variable,le=new(0,require("sparqljs").Generator)({}),ce=o.makeStyles((function(e){return{items:{background:"#fff",borderRadius:"0.5rem",boxShadow:"0 0 0 1px rgba(0, 0, 0, 0.05), 0px 10px 20px rgba(0, 0, 0, 0.1)",color:"rgba(0, 0, 0, 0.8)",fontSize:"0.9rem",overflow:"hidden",padding:"0.2rem",position:"relative"},item:{background:"transparent",border:"1px solid transparent",borderRadius:"0.4rem",display:"block",margin:0,padding:"0.2rem 0.4rem",textAlign:"left",width:"100%","&.selected":{borderColor:"#000"}}}})),se=e.forwardRef((function(t,r){var n=k(e.useState(0),2),o=n[0],a=n[1],i=ce(),u=function(e){var r=t.items[e];r&&t.command({id:r})};return e.useEffect((function(){return a(0)}),[t.items]),e.useImperativeHandle(r,(function(){return{onKeyDown:function(e){var r=e.event;return"ArrowUp"===r.key?(a((o+t.items.length-1)%t.items.length),!0):"ArrowDown"===r.key?(a((o+1)%t.items.length),!0):"Enter"===r.key&&(u(o),!0)}}})),m.default.createElement("div",{className:i.items},t.items.length?t.items.map((function(e,t){return m.default.createElement("button",{className:i.item+(t===o?" selected":""),key:t,onClick:function(){return u(t)}},e.label)})):m.default.createElement("div",{className:i.item},"Aucun résultat"))})),de=function(){var e,t;return{onStart:function(r){e=new d.ReactRenderer(se,{props:r,editor:r.editor}),t=y.default("body",{getReferenceClientRect:r.clientRect,appendTo:function(){return document.body},content:e.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start"})},onUpdate:function(r){e.updateProps(r),t[0].setProps({getReferenceClientRect:r.clientRect})},onKeyDown:function(r){var n;return"Escape"===r.event.key?(t[0].hide(),!0):null===(n=e.ref)||void 0===n?void 0:n.onKeyDown(r)},onExit:function(){t[0].destroy(),e.destroy()}}};exports.ACTIVITY_TYPES={ACCEPT:"Accept",ADD:"Add",ANNOUNCE:"Announce",ARRIVE:"Arrive",BLOCK:"Block",CREATE:"Create",DELETE:"Delete",DISLIKE:"Dislike",FLAG:"Flag",FOLLOW:"Follow",IGNORE:"Ignore",INVITE:"Invite",JOIN:"Join",LEAVE:"Leave",LIKE:"Like",LISTEN:"Listen",MOVE:"Move",OFFER:"Offer",QUESTION:"Question",REJECT:"Reject",READ:"Read",REMOVE:"Remove",TENTATIVE_REJECT:"TentativeReject",TENTATIVE_ACCEPT:"TentativeAccept",TRAVAL:"Travel",UNDO:"Undo",UPDATE:"Update",VIEW:"View"},exports.ACTOR_TYPES={APPLICATION:"Application",GROUP:"Group",ORGANIZATION:"Organization",PERSON:"Person",SERVICE:"Service"},exports.CollectionList=U,exports.CommentsField=B,exports.OBJECT_TYPES=N,exports.PUBLIC_URI=S,exports.ReferenceCollectionField=H,exports.useCollection=F,exports.useInbox=function(){var r=t.useGetIdentity().identity,n=e.useMemo((function(){var e;if(null!=r&&r.webIdData)return null==r||null===(e=r.webIdData)||void 0===e?void 0:e.inbox}),[r]),o=e.useMemo((function(){var e,t;if(null!=r&&r.webIdData)return(null==r||null===(e=r.webIdData)||void 0===e||null===(t=e.endpoints)||void 0===t?void 0:t["void:sparqlEndpoint"])||(null==r?void 0:r.id)+"/sparql"}),[r]);return{fetch:e.useCallback(function(){var e=x(w().mark((function e(r){var a,u,l,c,s,d,f,p,m;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r.filters,o&&n){e.next=3;break}return e.abrupt("return");case 3:return a=[ie(ae(n),ae("https://www.w3.org/ns/activitystreams#items"),ue("s1")),ie(ue("s1"),ue("p1"),ue("o1"))],u={construct:a,where:[].concat(a)},l=localStorage.getItem("token"),c={prefix:"as",url:"https://www.w3.org/ns/activitystreams#"},s=i.buildBlankNodesQuery(["as:object"],u,[c]),d={type:"query",queryType:"CONSTRUCT",template:s.construct,where:s.where,prefixes:{as:"https://www.w3.org/ns/activitystreams#"}},f=le.stringify(d),e.next=12,t.fetchUtils.fetchJson(o,{method:"POST",body:f,headers:new Headers({Accept:"application/ld+json",Authorization:l?"Bearer ".concat(l):void 0})});case 12:if(p=e.sent,!(m=p.json)["@graph"]){e.next=18;break}return e.abrupt("return",m["@graph"]);case 18:return e.abrupt("return",null);case 19:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[o,n]),url:n,owner:null==r?void 0:r.id}},exports.useMentions=function(r){var n,o,a=i.useDataModel(r),u=t.useQuery({type:"getList",resource:r,payload:{filter:{_predicates:[null==a||null===(n=a.fieldsMapping)||void 0===n?void 0:n.title],blankNodes:[]}}},{enabled:!(null==a||null===(o=a.fieldsMapping)||void 0===o||!o.title)}).data,l=e.useMemo((function(){if(u)return u.map((function(e){var t;return{id:e.id,label:e[null==a||null===(t=a.fieldsMapping)||void 0===t?void 0:t.title]}}))}),[u]);return{items:e.useMemo((function(){if(l)return function(e){var t=e.query;return l.filter((function(e){return e.label.toLowerCase().startsWith(t.toLowerCase())})).slice(0,5)}}),[l]),render:de}},exports.useOutbox=j,exports.useWebfinger=function(){return{fetch:e.useCallback(function(){var e=x(w().mark((function e(r){var n,o,a,i,u,l,c,s,d;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.split("@"),(o=k(n,3))[0],a=o[1],!(i=o[2])){e.next=18;break}return u=i.includes(":")?"http":"https",l="".concat(u,"://").concat(i,"/.well-known/webfinger?resource=acct:").concat(a,"@").concat(i),e.prev=4,e.next=7,t.fetchUtils.fetchJson(l);case 7:return c=e.sent,s=c.json,d=s.links.find((function(e){return"application/activity+json"===e.type})),e.abrupt("return",d?d.href:null);case 13:return e.prev=13,e.t0=e.catch(4),e.abrupt("return",null);case 16:e.next=19;break;case 18:return e.abrupt("return",null);case 19:case"end":return e.stop()}}),e,null,[[4,13]])})));return function(t){return e.apply(this,arguments)}}(),[])}}; //# sourceMappingURL=index.cjs.js.map diff --git a/src/frontend/packages/activitypub-components/dist/index.cjs.js.map b/src/frontend/packages/activitypub-components/dist/index.cjs.js.map index 7742fe201..b3ecd3ad0 100644 --- a/src/frontend/packages/activitypub-components/dist/index.cjs.js.map +++ b/src/frontend/packages/activitypub-components/dist/index.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"index.cjs.js","sources":["../src/constants.js","../src/hooks/useOutbox.js","../src/components/CommentsField/CustomMention.js","../src/components/CommentsField/PostCommentForm.js","../src/components/CommentsField/CommentsList.js","../src/hooks/useCollection.js","../src/components/CommentsField/CommentsField.js","../src/components/CollectionList.js","../src/components/ReferenceCollectionField.js","../src/hooks/useInbox.js","../src/hooks/useMentions/MentionsList.js","../src/hooks/useMentions/renderMentions.js","../src/hooks/useMentions/useMentions.js","../src/hooks/useWebfinger.js"],"sourcesContent":["export const ACTIVITY_TYPES = {\n ACCEPT: 'Accept',\n ADD: 'Add',\n ANNOUNCE: 'Announce',\n ARRIVE: 'Arrive',\n BLOCK: 'Block',\n CREATE: 'Create',\n DELETE: 'Delete',\n DISLIKE: 'Dislike',\n FLAG: 'Flag',\n FOLLOW: 'Follow',\n IGNORE: 'Ignore',\n INVITE: 'Invite',\n JOIN: 'Join',\n LEAVE: 'Leave',\n LIKE: 'Like',\n LISTEN: 'Listen',\n MOVE: 'Move',\n OFFER: 'Offer',\n QUESTION: 'Question',\n REJECT: 'Reject',\n READ: 'Read',\n REMOVE: 'Remove',\n TENTATIVE_REJECT: 'TentativeReject',\n TENTATIVE_ACCEPT: 'TentativeAccept',\n TRAVAL: 'Travel',\n UNDO: 'Undo',\n UPDATE: 'Update',\n VIEW: 'View'\n};\n\nexport const ACTOR_TYPES = {\n APPLICATION: 'Application',\n GROUP: 'Group',\n ORGANIZATION: 'Organization',\n PERSON: 'Person',\n SERVICE: 'Service'\n};\n\nexport const OBJECT_TYPES = {\n ARTICLE: 'Article',\n AUDIO: 'Audio',\n DOCUMENT: 'Document',\n EVENT: 'Event',\n IMAGE: 'Image',\n NOTE: 'Note',\n PAGE: 'Page',\n PLACE: 'Place',\n PROFILE: 'Profile',\n RELATIONSHIP: 'Relationship',\n TOMBSTONE: 'Tombstone',\n VIDEO: 'Video'\n};\n\nexport const PUBLIC_URI = 'https://www.w3.org/ns/activitystreams#Public';\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildBlankNodesQuery } from '@semapps/semantic-data-provider';\n\nconst useOutbox = () => {\n const { identity } = useGetIdentity();\n\n const outboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.outbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'] || (identity?.id + '/sparql');\n }\n }, [identity]);\n\n // Post an activity to the logged user's outbox and return its URI\n const post = useCallback(\n async activity => {\n const token = localStorage.getItem('token');\n const { headers } = await fetchUtils.fetchJson(outboxUrl, {\n method: 'POST',\n body: JSON.stringify({\n '@context': 'https://www.w3.org/ns/activitystreams',\n ...activity\n }),\n headers: new Headers({\n 'Content-Type': 'application/ld+json',\n Authorization: `Bearer ${token}`\n })\n });\n return headers.get('Location');\n },\n [outboxUrl]\n );\n\n const fetch = useCallback(async () => {\n if (!sparqlEndpoint || !outboxUrl) return;\n\n const token = localStorage.getItem('token');\n const blankNodesQuery = buildBlankNodesQuery(['as:object']);\n\n const query = `\n PREFIX as: \n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.construct}\n }\n WHERE {\n <${outboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n }, [sparqlEndpoint, outboxUrl]);\n\n return { post, fetch, url: outboxUrl, owner: identity?.id };\n};\n\nexport default useOutbox;\n","import { mergeAttributes } from '@tiptap/core';\nimport Mention from '@tiptap/extension-mention';\n\n// Fix a bug in the current version of the mention extension\n// (The { id, label } object is located inside the id property)\n// See https://github.com/ueberdosis/tiptap/pull/1322\nconst CustomMention = Mention.extend({\n renderHTML({ node, HTMLAttributes }) {\n return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), `@${node.attrs.id.label}`];\n },\n addAttributes() {\n return {\n label: {\n default: null,\n parseHTML: element => {\n return {\n label: element.getAttribute('data-mention-label')\n };\n },\n renderHTML: attributes => {\n if (!attributes.id.label) {\n return {};\n }\n return {\n 'data-mention-label': attributes.id.label\n };\n }\n },\n id: {\n default: null,\n parseHTML: element => {\n return {\n id: element.getAttribute('data-mention-id')\n };\n },\n renderHTML: attributes => {\n if (!attributes.id.id) {\n return {};\n }\n return {\n 'data-mention-id': attributes.id.id\n };\n }\n }\n };\n }\n});\n\nexport default CustomMention;\n","import React, { useState, useCallback } from 'react';\nimport { useGetIdentity, useNotify, useRecordContext } from 'react-admin';\nimport { RichTextInput, DefaultEditorOptions } from 'ra-richtext-tiptap';\nimport { Form } from 'react-final-form';\nimport { Button, Box, makeStyles, Avatar } from '@material-ui/core';\nimport SendIcon from '@material-ui/icons/Send';\nimport { useDataModel } from '@semapps/semantic-data-provider';\nimport { AuthDialog } from '@semapps/auth-provider';\nimport { OBJECT_TYPES, PUBLIC_URI } from '../../constants';\nimport useOutbox from '../../hooks/useOutbox';\nimport CustomMention from './CustomMention';\n\nconst useStyles = makeStyles(theme => ({\n form: {\n marginTop: -12 // Negative margin to keep the form close to the label\n },\n container: {\n paddingLeft: 80,\n position: 'relative'\n },\n avatar: {\n position: 'absolute',\n top: 16,\n left: 0,\n bottom: 0,\n width: 64,\n height: 64\n },\n editorContent: {\n '& > div': {\n backgroundColor: 'rgba(0, 0, 0, 0.09)',\n padding: '2px 12px',\n borderWidth: '0px !important',\n borderRadius: 0,\n borderBottom: '1px solid #FFF',\n minHeight: 60,\n outline: 'unset !important'\n },\n '& > div > p': {\n marginTop: 12,\n marginBottom: 12,\n fontFamily: theme.typography.body1.fontFamily,\n marginBlockStart: '0.5em',\n marginBlockEnd: '0.5em'\n },\n marginBottom: -19 // To hide helper text block\n },\n button: {\n marginBottom: 15\n }\n}));\n\nconst PostCommentForm = ({ context, helperText, mentions, userResource, addItem, removeItem }) => {\n const record = useRecordContext();\n const { identity } = useGetIdentity();\n const userDataModel = useDataModel(userResource);\n const classes = useStyles();\n const notify = useNotify();\n const outbox = useOutbox();\n const [expanded, setExpanded] = useState(false);\n const [openAuth, setOpenAuth] = useState(false);\n\n const onSubmit = useCallback(\n async (values, { reset }) => {\n const document = new DOMParser().parseFromString(values.comment, 'text/html');\n const mentions = Array.from(document.body.getElementsByClassName('mention'));\n let mentionedUsersUris = [];\n\n mentions.forEach(node => {\n const userUri = node.attributes['data-mention-id'].value;\n const userLabel = node.attributes['data-mention-label'].value;\n const link = document.createElement('a');\n link.setAttribute(\n 'href',\n new URL(window.location.href).origin + '/' + userResource + '/' + encodeURIComponent(userUri) + '/show'\n );\n link.textContent = '@' + userLabel;\n node.parentNode.replaceChild(link, node);\n mentionedUsersUris.push(userUri);\n });\n\n if (document.body.innerHTML === 'undefined') {\n notify('Votre commentaire est vide', 'error');\n } else {\n const tempId = Date.now();\n\n const note = {\n type: OBJECT_TYPES.NOTE,\n attributedTo: outbox.owner,\n content: document.body.innerHTML,\n inReplyTo: record[context],\n published: new Date().toISOString()\n };\n\n try {\n addItem({ id: tempId, ...note });\n reset();\n setExpanded(false);\n await outbox.post({ ...note, to: [...mentionedUsersUris, PUBLIC_URI] });\n notify('Commentaire posté avec succès', 'success');\n } catch (e) {\n removeItem(tempId);\n notify(e.message, 'error');\n }\n }\n },\n [outbox, notify, setExpanded, addItem, removeItem]\n );\n\n const openAuthIfDisconnected = useCallback(() => {\n if (!identity.id) {\n setOpenAuth(true);\n }\n }, [identity, setOpenAuth]);\n\n // Don't init the editor options until mentions and identity are loaded, as they can only be initialized once\n if ((mentions && !mentions.items) || !identity) return null;\n\n return (\n <>\n {\n // Hack to clear comment input when form is reset\n // TODO When we update to React-Admin 4, check if the new RichTextInput solves this bug\n if (pristine) {\n const commentElement = document.getElementById('comment');\n if (commentElement) commentElement.innerHTML = '';\n }\n return (\n
\n \n \n \n {expanded && (\n }\n disabled={submitting}\n className={classes.button}\n >\n Envoyer\n \n )}\n \n
\n );\n }}\n />\n setOpenAuth(false)}\n message=\"Pour poster un commentaire, vous devez être connecté.\"\n />\n \n );\n};\n\nexport default PostCommentForm;\n","import React from 'react';\nimport { TextField, RichTextField, DateField } from 'react-admin';\nimport { Box, Typography, CircularProgress, makeStyles } from '@material-ui/core';\nimport { useDataModel } from '@semapps/semantic-data-provider';\nimport { AvatarWithLabelField, ReferenceField } from '@semapps/field-components';\n\nconst useStyles = makeStyles(() => ({\n container: {\n paddingLeft: 80,\n marginTop: 8,\n minHeight: 80,\n position: 'relative'\n },\n avatar: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n width: 64,\n height: 64\n },\n text: {\n paddingTop: 2,\n paddingBottom: 8\n },\n label: {\n fontWeight: 'bold'\n },\n content: {\n '& p': {\n marginBlockStart: '0.5em',\n marginBlockEnd: '0.5em'\n }\n },\n loading: {\n zIndex: 1000,\n backgroundColor: 'white',\n opacity: 0.5,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: 200,\n marginTop: 5\n }\n}));\n\nconst CommentsList = ({ comments, userResource, loading }) => {\n const classes = useStyles();\n const userDataModel = useDataModel(userResource);\n return (\n \n {comments &&\n comments\n .sort((a, b) => new Date(b.published) - new Date(a.published))\n .map(comment => (\n \n \n \n \n \n \n \n \n \n \n \n  • \n \n \n \n \n \n ))}\n {loading && (\n \n \n \n \n \n )}\n \n );\n};\n\nexport default CommentsList;\n","import { useCallback, useMemo, useState, useEffect } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\n\nconst useCollection = predicateOrUrl => {\n const { identity } = useGetIdentity();\n const [items, setItems] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState(false);\n\n const collectionUrl = useMemo(() => {\n if (predicateOrUrl) {\n if (predicateOrUrl.startsWith('http')) {\n return predicateOrUrl;\n } else if (identity?.webIdData) {\n return identity?.webIdData?.[predicateOrUrl];\n }\n }\n }, [identity, predicateOrUrl]);\n\n const fetch = useCallback(async () => {\n if (!collectionUrl) return;\n\n setLoading(true);\n const token = localStorage.getItem('token');\n const headers = new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n });\n\n fetchUtils\n .fetchJson(collectionUrl, { headers })\n .then(({ json }) => {\n if (json && json.items) {\n setItems(json.items);\n } else if (json && json.orderedItems) {\n setItems(json.orderedItems);\n } else {\n setItems([]);\n }\n setError(false);\n setLoaded(true);\n setLoading(false);\n })\n .catch(() => {\n setError(true);\n setLoaded(true);\n setLoading(false);\n });\n }, [setItems, setLoaded, setLoading, setError, collectionUrl]);\n\n useEffect(() => {\n if (!loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, loading, loaded, error]);\n\n const addItem = useCallback(\n item => {\n setItems(oldItems => [...oldItems, item]);\n },\n [setItems]\n );\n\n const removeItem = useCallback(\n itemId => {\n setItems(oldItems => oldItems.filter(item => (typeof item === 'string' ? item !== itemId : item.id !== itemId)));\n },\n [setItems]\n );\n\n return { items, loading, loaded, error, refetch: fetch, addItem, removeItem, url: collectionUrl };\n};\n\nexport default useCollection;\n","import React from 'react';\nimport { useRecordContext } from 'react-admin';\nimport PostCommentForm from './PostCommentForm';\nimport CommentsList from './CommentsList';\nimport useCollection from '../../hooks/useCollection';\n\nconst CommentsField = ({ source, context, helperText, userResource, mentions }) => {\n const record = useRecordContext();\n const { items: comments, loading, addItem, removeItem } = useCollection(record.replies);\n if (!userResource) throw new Error('No userResource defined for CommentsField');\n return (\n <>\n \n \n \n );\n};\n\nCommentsField.defaultProps = {\n addLabel: true,\n label: 'Commentaires',\n source: 'id', // Ensure the field is always displayed\n context: 'id'\n};\n\nexport default CommentsField;\n","import React from 'react';\nimport { useGetOne, LinearProgress } from 'react-admin';\nimport { ReferenceArrayField } from '@semapps/field-components';\n\nconst CollectionList = ({ collectionUrl, resource, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error(' only accepts a single child');\n }\n\n // TODO use a simple fetch call, as the resource is not good and it is useless\n const { data: collection, loading } = useGetOne(resource, collectionUrl, { enabled: !!collectionUrl });\n\n if (loading) {\n return (\n
\n \n
\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport default CollectionList;\n","import React from 'react';\nimport CollectionList from './CollectionList';\n\nconst ReferenceCollectionField = ({ source, record, reference, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error(' only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n \n {children}\n \n );\n};\n\nReferenceCollectionField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceCollectionField;\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildBlankNodesQuery } from '@semapps/semantic-data-provider';\n\nconst useInbox = () => {\n const { identity } = useGetIdentity();\n\n const inboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.inbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'] || (identity?.id + '/sparql');\n }\n }, [identity]);\n\n const fetch = useCallback(\n async ({ filters }) => {\n console.log('inboxUrl', inboxUrl, sparqlEndpoint);\n\n if (!sparqlEndpoint || !inboxUrl) return;\n\n const token = localStorage.getItem('token');\n const blankNodesQuery = buildBlankNodesQuery(['as:object']);\n\n let filtersWhereQuery = '';\n if (filters) {\n Object.keys(filters).forEach(predicate => {\n if (filters[predicate]) {\n const object = filters[predicate].startsWith('http') ? `<${filters[predicate]}>` : filters[predicate];\n filtersWhereQuery += `?s1 ${predicate} ${object} .`;\n }\n });\n }\n\n const query = `\n PREFIX as: \n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.construct}\n }\n WHERE {\n <${inboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ${filtersWhereQuery}\n ${blankNodesQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n },\n [sparqlEndpoint, inboxUrl]\n );\n\n return { fetch, url: inboxUrl, owner: identity?.id };\n};\n\nexport default useInbox;\n","import React, { useState, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n items: {\n background: '#fff',\n borderRadius: '0.5rem',\n boxShadow: '0 0 0 1px rgba(0, 0, 0, 0.05), 0px 10px 20px rgba(0, 0, 0, 0.1)',\n color: 'rgba(0, 0, 0, 0.8)',\n fontSize: '0.9rem',\n overflow: 'hidden',\n padding: '0.2rem',\n position: 'relative'\n },\n item: {\n background: 'transparent',\n border: '1px solid transparent',\n borderRadius: '0.4rem',\n display: 'block',\n margin: 0,\n padding: '0.2rem 0.4rem',\n textAlign: 'left',\n width: '100%',\n '&.selected': {\n borderColor: '#000'\n }\n }\n}));\n\nexport default forwardRef((props, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const classes = useStyles();\n\n const selectItem = index => {\n const item = props.items[index];\n\n if (item) {\n props.command({ id: item });\n }\n };\n\n const upHandler = () => {\n setSelectedIndex((selectedIndex + props.items.length - 1) % props.items.length);\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % props.items.length);\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => setSelectedIndex(0), [props.items]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }) => {\n if (event.key === 'ArrowUp') {\n upHandler();\n return true;\n }\n\n if (event.key === 'ArrowDown') {\n downHandler();\n return true;\n }\n\n if (event.key === 'Enter') {\n enterHandler();\n return true;\n }\n\n return false;\n }\n }));\n\n return (\n
\n {props.items.length ? (\n props.items.map((item, index) => (\n selectItem(index)}\n >\n {item.label}\n \n ))\n ) : (\n
Aucun résultat
\n )}\n
\n );\n});\n","import { ReactRenderer } from '@tiptap/react';\nimport tippy from 'tippy.js';\nimport MentionsList from './MentionsList';\n\nconst renderMentions = () => {\n let component;\n let popup;\n\n return {\n onStart: props => {\n component = new ReactRenderer(MentionsList, {\n props,\n editor: props.editor\n });\n\n popup = tippy('body', {\n getReferenceClientRect: props.clientRect,\n appendTo: () => document.body,\n content: component.element,\n showOnCreate: true,\n interactive: true,\n trigger: 'manual',\n placement: 'bottom-start'\n });\n },\n\n onUpdate(props) {\n component.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === 'Escape') {\n popup[0].hide();\n\n return true;\n }\n\n return component.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n component.destroy();\n }\n };\n};\n\nexport default renderMentions;\n","import { useMemo } from 'react';\nimport { useQuery } from 'react-admin';\nimport renderMentions from './renderMentions';\nimport { useDataModel } from '@semapps/semantic-data-provider';\n\nconst useMentions = userResource => {\n const userDataModel = useDataModel(userResource);\n\n // The \"enabled\" option doesn't work with useQueryWithStore\n const { data } = useQuery(\n {\n type: 'getList',\n resource: userResource,\n payload: {\n filter: {\n _predicates: [userDataModel?.fieldsMapping?.title],\n blankNodes: []\n }\n }\n },\n {\n enabled: !!userDataModel?.fieldsMapping?.title\n }\n );\n\n const availableMentions = useMemo(() => {\n if (data) {\n return data.map(item => ({ id: item.id, label: item[userDataModel?.fieldsMapping?.title] }));\n }\n }, [data]);\n\n const items = useMemo(() => {\n if (availableMentions) {\n return ({ query }) => {\n return availableMentions.filter(({ label }) => label.toLowerCase().startsWith(query.toLowerCase())).slice(0, 5);\n };\n }\n }, [availableMentions]);\n\n return {\n items,\n render: renderMentions\n };\n};\n\nexport default useMentions;\n","import { useCallback } from 'react';\nimport { fetchUtils } from 'react-admin';\n\nconst useWebfinger = () => {\n // Post an activity to the logged user's outbox and return its URI\n const fetch = useCallback(async id => {\n // eslint-disable-next-line\n const [_, username, host] = id.split('@');\n if (host) {\n const protocol = host.includes(':') ? 'http' : 'https'; // If the host has a port, we are most likely on localhost\n const webfingerUrl = `${protocol}://${host}/.well-known/webfinger?resource=acct:${username}@${host}`;\n\n try {\n const { json } = await fetchUtils.fetchJson(webfingerUrl);\n\n const link = json.links.find(l => l.type === 'application/activity+json');\n\n return link ? link.href : null;\n } catch (e) {\n return null;\n }\n } else {\n return null;\n }\n }, []);\n\n return { fetch };\n};\n\nexport default useWebfinger;\n"],"names":["OBJECT_TYPES","ARTICLE","AUDIO","DOCUMENT","EVENT","IMAGE","NOTE","PAGE","PLACE","PROFILE","RELATIONSHIP","TOMBSTONE","VIDEO","PUBLIC_URI","useOutbox","identity","useGetIdentity","outboxUrl","useMemo","_identity$webIdData","webIdData","outbox","sparqlEndpoint","_identity$webIdData2","_identity$webIdData2$","endpoints","id","post","useCallback","_ref","_asyncToGenerator","_regeneratorRuntime","mark","activity","token","_yield$fetchUtils$fet","headers","wrap","_context","prev","next","localStorage","getItem","fetchUtils","fetchJson","method","body","JSON","stringify","_objectSpread","@context","Headers","Content-Type","Authorization","sent","abrupt","get","stop","_callee","_x","apply","this","arguments","fetch","_callee2","blankNodesQuery","query","_yield$fetchUtils$fet2","json","_context2","buildBlankNodesQuery","concat","construct","where","Accept","undefined","url","owner","CustomMention","Mention","extend","renderHTML","node","HTMLAttributes","mergeAttributes","options","attrs","label","addAttributes","default","parseHTML","element","getAttribute","attributes","data-mention-label","data-mention-id","useStyles","makeStyles","theme","form","marginTop","container","paddingLeft","position","avatar","top","left","bottom","width","height","editorContent","& > div","backgroundColor","padding","borderWidth","borderRadius","borderBottom","minHeight","outline","& > div > p","marginBottom","fontFamily","typography","body1","marginBlockStart","marginBlockEnd","button","PostCommentForm","context","helperText","mentions","userResource","addItem","removeItem","record","useRecordContext","userDataModel","useDataModel","classes","notify","useNotify","_useState2","_slicedToArray","useState","expanded","setExpanded","_useState4","openAuth","setOpenAuth","onSubmit","_ref3","values","_ref2","reset","document","mentionedUsersUris","tempId","note","DOMParser","parseFromString","comment","Array","from","getElementsByClassName","forEach","userUri","value","userLabel","link","createElement","setAttribute","URL","window","location","href","origin","encodeURIComponent","textContent","parentNode","replaceChild","push","innerHTML","Date","now","type","attributedTo","content","inReplyTo","published","toISOString","to","t0","message","_x2","openAuthIfDisconnected","items","React","Fragment","Form","subscription","submitting","pristine","render","_ref4","_userDataModel$fields","handleSubmit","commentElement","getElementById","className","Box","onClick","Avatar","src","fieldsMapping","image","RichTextInput","source","toolbar","fullWidth","editorOptions","DefaultEditorOptions","onFocus","extensions","_toConsumableArray","configure","class","suggestion","editable","Button","size","variant","color","endIcon","SendIcon","disabled","AuthDialog","open","onClose","text","paddingTop","paddingBottom","fontWeight","& p","loading","zIndex","opacity","right","display","alignItems","justifyContent","CommentsList","comments","sort","a","b","map","_userDataModel$fields2","ReferenceField","reference","linkType","AvatarWithLabelField","Typography","TextField","title","DateField","showTime","RichTextField","CircularProgress","thickness","useCollection","predicateOrUrl","setItems","setLoading","_useState6","loaded","setLoaded","_useState8","error","setError","collectionUrl","startsWith","then","orderedItems","useEffect","item","oldItems","itemId","filter","refetch","CommentsField","_useCollection","replies","Error","defaultProps","addLabel","CollectionList","resource","children","rest","_objectWithoutProperties","_excluded","Children","count","_useGetOne","useGetOne","enabled","collection","data","style","LinearProgress","ReferenceArrayField","_extends","ReferenceCollectionField","background","boxShadow","fontSize","overflow","border","margin","textAlign","&.selected","borderColor","MentionsList","forwardRef","props","ref","selectedIndex","setSelectedIndex","selectItem","index","command","useImperativeHandle","onKeyDown","event","key","length","renderMentions","component","popup","onStart","ReactRenderer","editor","tippy","getReferenceClientRect","clientRect","appendTo","showOnCreate","interactive","trigger","placement","onUpdate","updateProps","setProps","_component$ref","hide","onExit","destroy","ACCEPT","ADD","ANNOUNCE","ARRIVE","BLOCK","CREATE","DELETE","DISLIKE","FLAG","FOLLOW","IGNORE","INVITE","JOIN","LEAVE","LIKE","LISTEN","MOVE","OFFER","QUESTION","REJECT","READ","REMOVE","TENTATIVE_REJECT","TENTATIVE_ACCEPT","TRAVAL","UNDO","UPDATE","VIEW","APPLICATION","GROUP","ORGANIZATION","PERSON","SERVICE","inboxUrl","inbox","filters","filtersWhereQuery","console","log","Object","keys","predicate","object","useQuery","payload","_predicates","blankNodes","availableMentions","_userDataModel$fields3","toLowerCase","slice","_id$split","_id$split2","username","host","protocol","webfingerUrl","split","includes","links","find","l"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.cjs.js","sources":["../src/constants.js","../src/hooks/useOutbox.js","../src/components/CommentsField/CustomMention.js","../src/components/CommentsField/PostCommentForm.js","../src/components/CommentsField/CommentsList.js","../src/hooks/useCollection.js","../src/components/CommentsField/CommentsField.js","../src/components/CollectionList.js","../src/components/ReferenceCollectionField.js","../../../node_modules/@rdfjs/data-model/lib/BlankNode.js","../../../node_modules/@rdfjs/data-model/lib/DefaultGraph.js","../../../node_modules/@rdfjs/data-model/lib/fromTerm.js","../../../node_modules/@rdfjs/data-model/lib/NamedNode.js","../../../node_modules/@rdfjs/data-model/lib/Literal.js","../../../node_modules/@rdfjs/data-model/lib/Quad.js","../../../node_modules/@rdfjs/data-model/lib/Variable.js","../../../node_modules/@rdfjs/data-model/lib/DataFactory.js","../../../node_modules/@rdfjs/data-model/index.js","../src/hooks/useInbox.js","../src/hooks/useMentions/MentionsList.js","../src/hooks/useMentions/renderMentions.js","../src/hooks/useMentions/useMentions.js","../src/hooks/useWebfinger.js"],"sourcesContent":["export const ACTIVITY_TYPES = {\n ACCEPT: 'Accept',\n ADD: 'Add',\n ANNOUNCE: 'Announce',\n ARRIVE: 'Arrive',\n BLOCK: 'Block',\n CREATE: 'Create',\n DELETE: 'Delete',\n DISLIKE: 'Dislike',\n FLAG: 'Flag',\n FOLLOW: 'Follow',\n IGNORE: 'Ignore',\n INVITE: 'Invite',\n JOIN: 'Join',\n LEAVE: 'Leave',\n LIKE: 'Like',\n LISTEN: 'Listen',\n MOVE: 'Move',\n OFFER: 'Offer',\n QUESTION: 'Question',\n REJECT: 'Reject',\n READ: 'Read',\n REMOVE: 'Remove',\n TENTATIVE_REJECT: 'TentativeReject',\n TENTATIVE_ACCEPT: 'TentativeAccept',\n TRAVAL: 'Travel',\n UNDO: 'Undo',\n UPDATE: 'Update',\n VIEW: 'View'\n};\n\nexport const ACTOR_TYPES = {\n APPLICATION: 'Application',\n GROUP: 'Group',\n ORGANIZATION: 'Organization',\n PERSON: 'Person',\n SERVICE: 'Service'\n};\n\nexport const OBJECT_TYPES = {\n ARTICLE: 'Article',\n AUDIO: 'Audio',\n DOCUMENT: 'Document',\n EVENT: 'Event',\n IMAGE: 'Image',\n NOTE: 'Note',\n PAGE: 'Page',\n PLACE: 'Place',\n PROFILE: 'Profile',\n RELATIONSHIP: 'Relationship',\n TOMBSTONE: 'Tombstone',\n VIDEO: 'Video'\n};\n\nexport const PUBLIC_URI = 'https://www.w3.org/ns/activitystreams#Public';\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildBlankNodesQuery } from '@semapps/semantic-data-provider';\n\nconst useOutbox = () => {\n const { identity } = useGetIdentity();\n\n const outboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.outbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'] || (identity?.id + '/sparql');\n }\n }, [identity]);\n\n // Post an activity to the logged user's outbox and return its URI\n const post = useCallback(\n async activity => {\n const token = localStorage.getItem('token');\n const { headers } = await fetchUtils.fetchJson(outboxUrl, {\n method: 'POST',\n body: JSON.stringify({\n '@context': 'https://www.w3.org/ns/activitystreams',\n ...activity\n }),\n headers: new Headers({\n 'Content-Type': 'application/ld+json',\n Authorization: `Bearer ${token}`\n })\n });\n return headers.get('Location');\n },\n [outboxUrl]\n );\n\n const fetch = useCallback(async () => {\n if (!sparqlEndpoint || !outboxUrl) return;\n\n const token = localStorage.getItem('token');\n const blankNodesQuery = buildBlankNodesQuery(['as:object']);\n\n const query = `\n PREFIX as: \n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.construct}\n }\n WHERE {\n <${outboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n }, [sparqlEndpoint, outboxUrl]);\n\n return { post, fetch, url: outboxUrl, owner: identity?.id };\n};\n\nexport default useOutbox;\n","import { mergeAttributes } from '@tiptap/core';\nimport Mention from '@tiptap/extension-mention';\n\n// Fix a bug in the current version of the mention extension\n// (The { id, label } object is located inside the id property)\n// See https://github.com/ueberdosis/tiptap/pull/1322\nconst CustomMention = Mention.extend({\n renderHTML({ node, HTMLAttributes }) {\n return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), `@${node.attrs.id.label}`];\n },\n addAttributes() {\n return {\n label: {\n default: null,\n parseHTML: element => {\n return {\n label: element.getAttribute('data-mention-label')\n };\n },\n renderHTML: attributes => {\n if (!attributes.id.label) {\n return {};\n }\n return {\n 'data-mention-label': attributes.id.label\n };\n }\n },\n id: {\n default: null,\n parseHTML: element => {\n return {\n id: element.getAttribute('data-mention-id')\n };\n },\n renderHTML: attributes => {\n if (!attributes.id.id) {\n return {};\n }\n return {\n 'data-mention-id': attributes.id.id\n };\n }\n }\n };\n }\n});\n\nexport default CustomMention;\n","import React, { useState, useCallback } from 'react';\nimport { useGetIdentity, useNotify, useRecordContext } from 'react-admin';\nimport { RichTextInput, DefaultEditorOptions } from 'ra-richtext-tiptap';\nimport { Form } from 'react-final-form';\nimport { Button, Box, makeStyles, Avatar } from '@material-ui/core';\nimport SendIcon from '@material-ui/icons/Send';\nimport { useDataModel } from '@semapps/semantic-data-provider';\nimport { AuthDialog } from '@semapps/auth-provider';\nimport { OBJECT_TYPES, PUBLIC_URI } from '../../constants';\nimport useOutbox from '../../hooks/useOutbox';\nimport CustomMention from './CustomMention';\n\nconst useStyles = makeStyles(theme => ({\n form: {\n marginTop: -12 // Negative margin to keep the form close to the label\n },\n container: {\n paddingLeft: 80,\n position: 'relative'\n },\n avatar: {\n position: 'absolute',\n top: 16,\n left: 0,\n bottom: 0,\n width: 64,\n height: 64\n },\n editorContent: {\n '& > div': {\n backgroundColor: 'rgba(0, 0, 0, 0.09)',\n padding: '2px 12px',\n borderWidth: '0px !important',\n borderRadius: 0,\n borderBottom: '1px solid #FFF',\n minHeight: 60,\n outline: 'unset !important'\n },\n '& > div > p': {\n marginTop: 12,\n marginBottom: 12,\n fontFamily: theme.typography.body1.fontFamily,\n marginBlockStart: '0.5em',\n marginBlockEnd: '0.5em'\n },\n marginBottom: -19 // To hide helper text block\n },\n button: {\n marginBottom: 15\n }\n}));\n\nconst PostCommentForm = ({ context, helperText, mentions, userResource, addItem, removeItem }) => {\n const record = useRecordContext();\n const { identity } = useGetIdentity();\n const userDataModel = useDataModel(userResource);\n const classes = useStyles();\n const notify = useNotify();\n const outbox = useOutbox();\n const [expanded, setExpanded] = useState(false);\n const [openAuth, setOpenAuth] = useState(false);\n\n const onSubmit = useCallback(\n async (values, { reset }) => {\n const document = new DOMParser().parseFromString(values.comment, 'text/html');\n const mentions = Array.from(document.body.getElementsByClassName('mention'));\n let mentionedUsersUris = [];\n\n mentions.forEach(node => {\n const userUri = node.attributes['data-mention-id'].value;\n const userLabel = node.attributes['data-mention-label'].value;\n const link = document.createElement('a');\n link.setAttribute(\n 'href',\n new URL(window.location.href).origin + '/' + userResource + '/' + encodeURIComponent(userUri) + '/show'\n );\n link.textContent = '@' + userLabel;\n node.parentNode.replaceChild(link, node);\n mentionedUsersUris.push(userUri);\n });\n\n if (document.body.innerHTML === 'undefined') {\n notify('Votre commentaire est vide', 'error');\n } else {\n const tempId = Date.now();\n\n const note = {\n type: OBJECT_TYPES.NOTE,\n attributedTo: outbox.owner,\n content: document.body.innerHTML,\n inReplyTo: record[context],\n published: new Date().toISOString()\n };\n\n try {\n addItem({ id: tempId, ...note });\n reset();\n setExpanded(false);\n await outbox.post({ ...note, to: [...mentionedUsersUris, PUBLIC_URI] });\n notify('Commentaire posté avec succès', 'success');\n } catch (e) {\n removeItem(tempId);\n notify(e.message, 'error');\n }\n }\n },\n [outbox, notify, setExpanded, addItem, removeItem]\n );\n\n const openAuthIfDisconnected = useCallback(() => {\n if (!identity.id) {\n setOpenAuth(true);\n }\n }, [identity, setOpenAuth]);\n\n // Don't init the editor options until mentions and identity are loaded, as they can only be initialized once\n if ((mentions && !mentions.items) || !identity) return null;\n\n return (\n <>\n {\n // Hack to clear comment input when form is reset\n // TODO When we update to React-Admin 4, check if the new RichTextInput solves this bug\n if (pristine) {\n const commentElement = document.getElementById('comment');\n if (commentElement) commentElement.innerHTML = '';\n }\n return (\n
\n \n \n \n {expanded && (\n }\n disabled={submitting}\n className={classes.button}\n >\n Envoyer\n \n )}\n \n
\n );\n }}\n />\n setOpenAuth(false)}\n message=\"Pour poster un commentaire, vous devez être connecté.\"\n />\n \n );\n};\n\nexport default PostCommentForm;\n","import React from 'react';\nimport { TextField, RichTextField, DateField } from 'react-admin';\nimport { Box, Typography, CircularProgress, makeStyles } from '@material-ui/core';\nimport { useDataModel } from '@semapps/semantic-data-provider';\nimport { AvatarWithLabelField, ReferenceField } from '@semapps/field-components';\n\nconst useStyles = makeStyles(() => ({\n container: {\n paddingLeft: 80,\n marginTop: 8,\n minHeight: 80,\n position: 'relative'\n },\n avatar: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n width: 64,\n height: 64\n },\n text: {\n paddingTop: 2,\n paddingBottom: 8\n },\n label: {\n fontWeight: 'bold'\n },\n content: {\n '& p': {\n marginBlockStart: '0.5em',\n marginBlockEnd: '0.5em'\n }\n },\n loading: {\n zIndex: 1000,\n backgroundColor: 'white',\n opacity: 0.5,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: 200,\n marginTop: 5\n }\n}));\n\nconst CommentsList = ({ comments, userResource, loading }) => {\n const classes = useStyles();\n const userDataModel = useDataModel(userResource);\n return (\n \n {comments &&\n comments\n .sort((a, b) => new Date(b.published) - new Date(a.published))\n .map(comment => (\n \n \n \n \n \n \n \n \n \n \n \n  • \n \n \n \n \n \n ))}\n {loading && (\n \n \n \n \n \n )}\n \n );\n};\n\nexport default CommentsList;\n","import { useCallback, useMemo, useState, useEffect } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\n\nconst useCollection = predicateOrUrl => {\n const { identity } = useGetIdentity();\n const [items, setItems] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState(false);\n\n const collectionUrl = useMemo(() => {\n if (predicateOrUrl) {\n if (predicateOrUrl.startsWith('http')) {\n return predicateOrUrl;\n } else if (identity?.webIdData) {\n return identity?.webIdData?.[predicateOrUrl];\n }\n }\n }, [identity, predicateOrUrl]);\n\n const fetch = useCallback(async () => {\n if (!collectionUrl) return;\n\n setLoading(true);\n const token = localStorage.getItem('token');\n const headers = new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n });\n\n fetchUtils\n .fetchJson(collectionUrl, { headers })\n .then(({ json }) => {\n if (json && json.items) {\n setItems(json.items);\n } else if (json && json.orderedItems) {\n setItems(json.orderedItems);\n } else {\n setItems([]);\n }\n setError(false);\n setLoaded(true);\n setLoading(false);\n })\n .catch(() => {\n setError(true);\n setLoaded(true);\n setLoading(false);\n });\n }, [setItems, setLoaded, setLoading, setError, collectionUrl]);\n\n useEffect(() => {\n if (!loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, loading, loaded, error]);\n\n const addItem = useCallback(\n item => {\n setItems(oldItems => [...oldItems, item]);\n },\n [setItems]\n );\n\n const removeItem = useCallback(\n itemId => {\n setItems(oldItems => oldItems.filter(item => (typeof item === 'string' ? item !== itemId : item.id !== itemId)));\n },\n [setItems]\n );\n\n return { items, loading, loaded, error, refetch: fetch, addItem, removeItem, url: collectionUrl };\n};\n\nexport default useCollection;\n","import React from 'react';\nimport { useRecordContext } from 'react-admin';\nimport PostCommentForm from './PostCommentForm';\nimport CommentsList from './CommentsList';\nimport useCollection from '../../hooks/useCollection';\n\nconst CommentsField = ({ source, context, helperText, userResource, mentions }) => {\n const record = useRecordContext();\n const { items: comments, loading, addItem, removeItem } = useCollection(record.replies);\n if (!userResource) throw new Error('No userResource defined for CommentsField');\n return (\n <>\n \n \n \n );\n};\n\nCommentsField.defaultProps = {\n addLabel: true,\n label: 'Commentaires',\n source: 'id', // Ensure the field is always displayed\n context: 'id'\n};\n\nexport default CommentsField;\n","import React from 'react';\nimport { useGetOne, LinearProgress } from 'react-admin';\nimport { ReferenceArrayField } from '@semapps/field-components';\n\nconst CollectionList = ({ collectionUrl, resource, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error(' only accepts a single child');\n }\n\n // TODO use a simple fetch call, as the resource is not good and it is useless\n const { data: collection, loading } = useGetOne(resource, collectionUrl, { enabled: !!collectionUrl });\n\n if (loading) {\n return (\n
\n \n
\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport default CollectionList;\n","import React from 'react';\nimport CollectionList from './CollectionList';\n\nconst ReferenceCollectionField = ({ source, record, reference, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error(' only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n \n {children}\n \n );\n};\n\nReferenceCollectionField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceCollectionField;\n","class BlankNode {\n constructor (id) {\n this.value = id || ('b' + (++BlankNode.nextId))\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nBlankNode.prototype.termType = 'BlankNode'\n\nBlankNode.nextId = 0\n\nmodule.exports = BlankNode\n","class DefaultGraph {\n equals (other) {\n return !!other && other.termType === this.termType\n }\n}\n\nDefaultGraph.prototype.termType = 'DefaultGraph'\nDefaultGraph.prototype.value = ''\n\nmodule.exports = DefaultGraph\n","function fromTerm (original) {\n if (!original) {\n return null\n }\n\n if (original.termType === 'BlankNode') {\n return this.blankNode(original.value)\n }\n\n if (original.termType === 'DefaultGraph') {\n return this.defaultGraph()\n }\n\n if (original.termType === 'Literal') {\n return this.literal(original.value, original.language || this.namedNode(original.datatype.value))\n }\n\n if (original.termType === 'NamedNode') {\n return this.namedNode(original.value)\n }\n\n if (original.termType === 'Quad') {\n const subject = this.fromTerm(original.subject)\n const predicate = this.fromTerm(original.predicate)\n const object = this.fromTerm(original.object)\n const graph = this.fromTerm(original.graph)\n\n return this.quad(subject, predicate, object, graph)\n }\n\n if (original.termType === 'Variable') {\n return this.variable(original.value)\n }\n\n throw new Error(`unknown termType ${original.termType}`)\n}\n\nmodule.exports = fromTerm\n","class NamedNode {\n constructor (iri) {\n this.value = iri\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nNamedNode.prototype.termType = 'NamedNode'\n\nmodule.exports = NamedNode\n","const NamedNode = require('./NamedNode.js')\n\nclass Literal {\n constructor (value, language, datatype) {\n this.value = value\n this.datatype = Literal.stringDatatype\n this.language = ''\n\n if (language) {\n this.language = language\n this.datatype = Literal.langStringDatatype\n } else if (datatype) {\n this.datatype = datatype\n }\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value &&\n other.language === this.language && other.datatype.equals(this.datatype)\n }\n}\n\nLiteral.prototype.termType = 'Literal'\n\nLiteral.langStringDatatype = new NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString')\nLiteral.stringDatatype = new NamedNode('http://www.w3.org/2001/XMLSchema#string')\n\nmodule.exports = Literal\n","const DefaultGraph = require('./DefaultGraph.js')\n\nclass Quad {\n constructor (subject, predicate, object, graph) {\n this.subject = subject\n this.predicate = predicate\n this.object = object\n\n if (graph) {\n this.graph = graph\n } else {\n this.graph = new DefaultGraph()\n }\n }\n\n equals (other) {\n // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n return !!other && (other.termType === 'Quad' || !other.termType) &&\n other.subject.equals(this.subject) && other.predicate.equals(this.predicate) &&\n other.object.equals(this.object) && other.graph.equals(this.graph)\n }\n}\n\nQuad.prototype.termType = 'Quad'\nQuad.prototype.value = ''\n\nmodule.exports = Quad\n","class Variable {\n constructor (name) {\n this.value = name\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nVariable.prototype.termType = 'Variable'\n\nmodule.exports = Variable\n","const BlankNode = require('./BlankNode.js')\nconst DefaultGraph = require('./DefaultGraph.js')\nconst fromTermRaw = require('./fromTerm.js')\nconst Literal = require('./Literal.js')\nconst NamedNode = require('./NamedNode.js')\nconst Quad = require('./Quad.js')\nconst Variable = require('./Variable.js')\n\nfunction namedNode (value) {\n return new NamedNode(value)\n}\n\nfunction blankNode (value) {\n return new BlankNode(value)\n}\n\nfunction literal (value, languageOrDatatype) {\n if (typeof languageOrDatatype === 'string') {\n if (languageOrDatatype.indexOf(':') === -1) {\n return new Literal(value, languageOrDatatype)\n }\n\n return new Literal(value, null, DataFactory.namedNode(languageOrDatatype))\n }\n\n return new Literal(value, null, languageOrDatatype)\n}\n\nfunction variable (value) {\n return new Variable(value)\n}\n\nfunction defaultGraph () {\n return DataFactory.defaultGraphInstance\n}\n\nfunction triple (subject, predicate, object) {\n return DataFactory.quad(subject, predicate, object)\n}\n\nfunction quad (subject, predicate, object, graph) {\n return new Quad(subject, predicate, object, graph || DataFactory.defaultGraphInstance)\n}\n\nfunction fromTerm (original) {\n return fromTermRaw.call(DataFactory, original)\n}\n\nfunction fromQuad (original) {\n return fromTermRaw.call(DataFactory, original)\n}\n\nconst DataFactory = {\n namedNode,\n blankNode,\n literal,\n variable,\n defaultGraph,\n triple,\n quad,\n fromTerm,\n fromQuad,\n defaultGraphInstance: new DefaultGraph()\n}\n\nmodule.exports = DataFactory\n","const DataFactory = require('./lib/DataFactory.js')\n\nmodule.exports = DataFactory\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport DataFactory from '@rdfjs/data-model';\nimport { buildBlankNodesQuery } from '@semapps/semantic-data-provider';\nconst { namedNode, triple, variable } = DataFactory;\nconst SparqlGenerator = require('sparqljs').Generator;\nconst generator = new SparqlGenerator({\n /* prefixes, baseIRI, factory, sparqlStar */\n});\n\nconst useInbox = () => {\n const { identity } = useGetIdentity();\n\n const inboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.inbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'] || (identity?.id + '/sparql');\n }\n }, [identity]);\n\n const fetch = useCallback(\n async ({ filters }) => {\n if (!sparqlEndpoint || !inboxUrl) return;\n\n const baseTriples = [\n triple(namedNode(inboxUrl), namedNode('https://www.w3.org/ns/activitystreams#items'), variable('s1')),\n triple(variable('s1'), variable('p1'), variable('o1'))\n ];\n\n const baseQuery = {\n construct: baseTriples,\n where: [\n ...baseTriples\n ],\n }\n\n const token = localStorage.getItem('token');\n const asOntology = { prefix: \"as\", url: \"https://www.w3.org/ns/activitystreams#\" };\n const blankNodesQuery = buildBlankNodesQuery(['as:object'], baseQuery, [asOntology]);\n\n const sparqlJsParams = {\n type: 'query',\n queryType: 'CONSTRUCT',\n template: blankNodesQuery.construct,\n where: blankNodesQuery.where,\n prefixes: {\n as: 'https://www.w3.org/ns/activitystreams#'\n }\n };\n\n // let filtersWhereQuery = '';\n // if (filters) {\n // Object.keys(filters).forEach(predicate => {\n // if (filters[predicate]) {\n // const object = filters[predicate].startsWith('http') ? `<${filters[predicate]}>` : filters[predicate];\n // filtersWhereQuery += `?s1 ${predicate} ${object} .`;\n // }\n // });\n // }\n //\n // const query = `\n // PREFIX as: \n // CONSTRUCT {\n // ?s1 ?p1 ?o1 .\n // ${blankNodesQuery.construct}\n // }\n // WHERE {\n // <${inboxUrl}> as:items ?s1 .\n // ?s1 ?p1 ?o1 .\n // FILTER( (isIRI(?s1)) ) .\n // ${filtersWhereQuery}\n // ${blankNodesQuery.where}\n // }\n // `;\n\n const query = generator.stringify(sparqlJsParams);\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n },\n [sparqlEndpoint, inboxUrl]\n );\n\n return { fetch, url: inboxUrl, owner: identity?.id };\n};\n\nexport default useInbox;\n","import React, { useState, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n items: {\n background: '#fff',\n borderRadius: '0.5rem',\n boxShadow: '0 0 0 1px rgba(0, 0, 0, 0.05), 0px 10px 20px rgba(0, 0, 0, 0.1)',\n color: 'rgba(0, 0, 0, 0.8)',\n fontSize: '0.9rem',\n overflow: 'hidden',\n padding: '0.2rem',\n position: 'relative'\n },\n item: {\n background: 'transparent',\n border: '1px solid transparent',\n borderRadius: '0.4rem',\n display: 'block',\n margin: 0,\n padding: '0.2rem 0.4rem',\n textAlign: 'left',\n width: '100%',\n '&.selected': {\n borderColor: '#000'\n }\n }\n}));\n\nexport default forwardRef((props, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const classes = useStyles();\n\n const selectItem = index => {\n const item = props.items[index];\n\n if (item) {\n props.command({ id: item });\n }\n };\n\n const upHandler = () => {\n setSelectedIndex((selectedIndex + props.items.length - 1) % props.items.length);\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % props.items.length);\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => setSelectedIndex(0), [props.items]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }) => {\n if (event.key === 'ArrowUp') {\n upHandler();\n return true;\n }\n\n if (event.key === 'ArrowDown') {\n downHandler();\n return true;\n }\n\n if (event.key === 'Enter') {\n enterHandler();\n return true;\n }\n\n return false;\n }\n }));\n\n return (\n
\n {props.items.length ? (\n props.items.map((item, index) => (\n selectItem(index)}\n >\n {item.label}\n \n ))\n ) : (\n
Aucun résultat
\n )}\n
\n );\n});\n","import { ReactRenderer } from '@tiptap/react';\nimport tippy from 'tippy.js';\nimport MentionsList from './MentionsList';\n\nconst renderMentions = () => {\n let component;\n let popup;\n\n return {\n onStart: props => {\n component = new ReactRenderer(MentionsList, {\n props,\n editor: props.editor\n });\n\n popup = tippy('body', {\n getReferenceClientRect: props.clientRect,\n appendTo: () => document.body,\n content: component.element,\n showOnCreate: true,\n interactive: true,\n trigger: 'manual',\n placement: 'bottom-start'\n });\n },\n\n onUpdate(props) {\n component.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === 'Escape') {\n popup[0].hide();\n\n return true;\n }\n\n return component.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n component.destroy();\n }\n };\n};\n\nexport default renderMentions;\n","import { useMemo } from 'react';\nimport { useQuery } from 'react-admin';\nimport renderMentions from './renderMentions';\nimport { useDataModel } from '@semapps/semantic-data-provider';\n\nconst useMentions = userResource => {\n const userDataModel = useDataModel(userResource);\n\n // The \"enabled\" option doesn't work with useQueryWithStore\n const { data } = useQuery(\n {\n type: 'getList',\n resource: userResource,\n payload: {\n filter: {\n _predicates: [userDataModel?.fieldsMapping?.title],\n blankNodes: []\n }\n }\n },\n {\n enabled: !!userDataModel?.fieldsMapping?.title\n }\n );\n\n const availableMentions = useMemo(() => {\n if (data) {\n return data.map(item => ({ id: item.id, label: item[userDataModel?.fieldsMapping?.title] }));\n }\n }, [data]);\n\n const items = useMemo(() => {\n if (availableMentions) {\n return ({ query }) => {\n return availableMentions.filter(({ label }) => label.toLowerCase().startsWith(query.toLowerCase())).slice(0, 5);\n };\n }\n }, [availableMentions]);\n\n return {\n items,\n render: renderMentions\n };\n};\n\nexport default useMentions;\n","import { useCallback } from 'react';\nimport { fetchUtils } from 'react-admin';\n\nconst useWebfinger = () => {\n // Post an activity to the logged user's outbox and return its URI\n const fetch = useCallback(async id => {\n // eslint-disable-next-line\n const [_, username, host] = id.split('@');\n if (host) {\n const protocol = host.includes(':') ? 'http' : 'https'; // If the host has a port, we are most likely on localhost\n const webfingerUrl = `${protocol}://${host}/.well-known/webfinger?resource=acct:${username}@${host}`;\n\n try {\n const { json } = await fetchUtils.fetchJson(webfingerUrl);\n\n const link = json.links.find(l => l.type === 'application/activity+json');\n\n return link ? link.href : null;\n } catch (e) {\n return null;\n }\n } else {\n return null;\n }\n }, []);\n\n return { fetch };\n};\n\nexport default useWebfinger;\n"],"names":["OBJECT_TYPES","ARTICLE","AUDIO","DOCUMENT","EVENT","IMAGE","NOTE","PAGE","PLACE","PROFILE","RELATIONSHIP","TOMBSTONE","VIDEO","PUBLIC_URI","useOutbox","identity","useGetIdentity","outboxUrl","useMemo","_identity$webIdData","webIdData","outbox","sparqlEndpoint","_identity$webIdData2","_identity$webIdData2$","endpoints","id","post","useCallback","_ref","_asyncToGenerator","_regeneratorRuntime","mark","activity","token","_yield$fetchUtils$fet","headers","wrap","_context","prev","next","localStorage","getItem","fetchUtils","fetchJson","method","body","JSON","stringify","_objectSpread","@context","Headers","Content-Type","Authorization","sent","abrupt","get","stop","_callee","_x","apply","this","arguments","fetch","_callee2","blankNodesQuery","query","_yield$fetchUtils$fet2","json","_context2","buildBlankNodesQuery","concat","construct","where","Accept","undefined","url","owner","CustomMention","Mention","extend","renderHTML","node","HTMLAttributes","mergeAttributes","options","attrs","label","addAttributes","default","parseHTML","element","getAttribute","attributes","data-mention-label","data-mention-id","useStyles","makeStyles","theme","form","marginTop","container","paddingLeft","position","avatar","top","left","bottom","width","height","editorContent","& > div","backgroundColor","padding","borderWidth","borderRadius","borderBottom","minHeight","outline","& > div > p","marginBottom","fontFamily","typography","body1","marginBlockStart","marginBlockEnd","button","PostCommentForm","context","helperText","mentions","userResource","addItem","removeItem","record","useRecordContext","userDataModel","useDataModel","classes","notify","useNotify","_useState2","_slicedToArray","useState","expanded","setExpanded","_useState4","openAuth","setOpenAuth","onSubmit","_ref3","values","_ref2","reset","document","mentionedUsersUris","tempId","note","DOMParser","parseFromString","comment","Array","from","getElementsByClassName","forEach","userUri","value","userLabel","link","createElement","setAttribute","URL","window","location","href","origin","encodeURIComponent","textContent","parentNode","replaceChild","push","innerHTML","Date","now","type","attributedTo","content","inReplyTo","published","toISOString","to","t0","message","_x2","openAuthIfDisconnected","items","React","Fragment","Form","subscription","submitting","pristine","render","_ref4","_userDataModel$fields","handleSubmit","commentElement","getElementById","className","Box","onClick","Avatar","src","fieldsMapping","image","RichTextInput","source","toolbar","fullWidth","editorOptions","DefaultEditorOptions","onFocus","extensions","_toConsumableArray","configure","class","suggestion","editable","Button","size","variant","color","endIcon","SendIcon","disabled","AuthDialog","open","onClose","text","paddingTop","paddingBottom","fontWeight","& p","loading","zIndex","opacity","right","display","alignItems","justifyContent","CommentsList","comments","sort","a","b","map","_userDataModel$fields2","ReferenceField","reference","linkType","AvatarWithLabelField","Typography","TextField","title","DateField","showTime","RichTextField","CircularProgress","thickness","useCollection","predicateOrUrl","setItems","setLoading","_useState6","loaded","setLoaded","_useState8","error","setError","collectionUrl","startsWith","then","orderedItems","useEffect","item","oldItems","itemId","filter","refetch","CommentsField","_useCollection","replies","Error","defaultProps","addLabel","CollectionList","resource","children","rest","_objectWithoutProperties","_excluded","Children","count","_useGetOne","useGetOne","enabled","collection","data","style","LinearProgress","ReferenceArrayField","_extends","ReferenceCollectionField","BlankNode","constructor","nextId","equals","other","termType","prototype","module","DefaultGraph","original","blankNode","defaultGraph","literal","language","namedNode","datatype","subject","fromTerm","predicate","object","graph","quad","variable","NamedNode","iri","Literal","stringDatatype","langStringDatatype","Quad","Variable","name","DataFactory","languageOrDatatype","indexOf","defaultGraphInstance","fromTermRaw","call","fromQuad","triple","generator","SparqlGenerator","require","Generator","background","boxShadow","fontSize","overflow","border","margin","textAlign","&.selected","borderColor","MentionsList","forwardRef","props","ref","selectedIndex","setSelectedIndex","selectItem","index","command","useImperativeHandle","onKeyDown","event","key","length","renderMentions","component","popup","onStart","ReactRenderer","editor","tippy","getReferenceClientRect","clientRect","appendTo","showOnCreate","interactive","trigger","placement","onUpdate","updateProps","setProps","_component$ref","hide","onExit","destroy","ACCEPT","ADD","ANNOUNCE","ARRIVE","BLOCK","CREATE","DELETE","DISLIKE","FLAG","FOLLOW","IGNORE","INVITE","JOIN","LEAVE","LIKE","LISTEN","MOVE","OFFER","QUESTION","REJECT","READ","REMOVE","TENTATIVE_REJECT","TENTATIVE_ACCEPT","TRAVAL","UNDO","UPDATE","VIEW","APPLICATION","GROUP","ORGANIZATION","PERSON","SERVICE","inboxUrl","inbox","baseTriples","baseQuery","asOntology","sparqlJsParams","filters","prefix","queryType","template","prefixes","as","useQuery","payload","_predicates","blankNodes","availableMentions","_userDataModel$fields3","toLowerCase","slice","_id$split","_id$split2","username","host","protocol","webfingerUrl","split","includes","links","find","l"],"mappings":"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"} \ No newline at end of file diff --git a/src/frontend/packages/activitypub-components/dist/index.es.js b/src/frontend/packages/activitypub-components/dist/index.es.js index d3bd1652e..2022eadd3 100644 --- a/src/frontend/packages/activitypub-components/dist/index.es.js +++ b/src/frontend/packages/activitypub-components/dist/index.es.js @@ -1,4 +1,4 @@ -import e,{useMemo as t,useCallback as r,useState as n,useEffect as o,forwardRef as i,useImperativeHandle as a}from"react";import{useGetIdentity as c,fetchUtils as u,useRecordContext as l,useNotify as s,TextField as d,DateField as f,RichTextField as p,useGetOne as m,LinearProgress as h,useQuery as v}from"react-admin";import{RichTextInput as y,DefaultEditorOptions as b}from"ra-richtext-tiptap";import{Form as g}from"react-final-form";import{makeStyles as w,Box as E,Avatar as x,Button as O,Typography as T,CircularProgress as I}from"@material-ui/core";import L from"@material-ui/icons/Send";import{buildBlankNodesQuery as A,useDataModel as k}from"@semapps/semantic-data-provider";import{AuthDialog as j}from"@semapps/auth-provider";import{mergeAttributes as N}from"@tiptap/core";import P from"@tiptap/extension-mention";import{ReferenceField as R,AvatarWithLabelField as S,ReferenceArrayField as C}from"@semapps/field-components";import{ReactRenderer as D}from"@tiptap/react";import F from"tippy.js";function M(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function H(e){for(var t=1;t=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(c&&u){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),x(r),s}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;x(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:T(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),s}},e}function B(e,t,r,n,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function _(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){B(i,n,o,a,c,"next",e)}function c(e){B(i,n,o,a,c,"throw",e)}a(void 0)}))}}function G(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function V(){return(V=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function J(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,i=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}(e,t)||K(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function W(e){return function(e){if(Array.isArray(e))return q(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||K(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function K(e,t){if(e){if("string"==typeof e)return q(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?q(e,t):void 0}}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(r.construct,"\n }\n WHERE {\n <").concat(n,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ").concat(r.where,"\n }\n "),e.next=7,u.fetchJson(o,{method:"POST",body:i,headers:new Headers({Accept:"application/ld+json",Authorization:t?"Bearer ".concat(t):void 0})});case 7:if(a=e.sent,!(c=a.json)["@graph"]){e.next=13;break}return e.abrupt("return",c["@graph"]);case 13:return e.abrupt("return",null);case 14:case"end":return e.stop()}}),e)}))),[o,n]),url:n,owner:null==e?void 0:e.id}},ee=P.extend({renderHTML:function(e){var t=e.node,r=e.HTMLAttributes;return["span",N(this.options.HTMLAttributes,r),"@".concat(t.attrs.id.label)]},addAttributes:function(){return{label:{default:null,parseHTML:function(e){return{label:e.getAttribute("data-mention-label")}},renderHTML:function(e){return e.id.label?{"data-mention-label":e.id.label}:{}}},id:{default:null,parseHTML:function(e){return{id:e.getAttribute("data-mention-id")}},renderHTML:function(e){return e.id.id?{"data-mention-id":e.id.id}:{}}}}}}),te=w((function(e){return{form:{marginTop:-12},container:{paddingLeft:80,position:"relative"},avatar:{position:"absolute",top:16,left:0,bottom:0,width:64,height:64},editorContent:{"& > div":{backgroundColor:"rgba(0, 0, 0, 0.09)",padding:"2px 12px",borderWidth:"0px !important",borderRadius:0,borderBottom:"1px solid #FFF",minHeight:60,outline:"unset !important"},"& > div > p":{marginTop:12,marginBottom:12,fontFamily:e.typography.body1.fontFamily,marginBlockStart:"0.5em",marginBlockEnd:"0.5em"},marginBottom:-19},button:{marginBottom:15}}})),re=function(t){var o=t.context,i=t.helperText,a=t.mentions,u=t.userResource,d=t.addItem,f=t.removeItem,p=l(),m=c().identity,h=k(u),v=te(),w=s(),T=$(),I=J(n(!1),2),A=I[0],N=I[1],P=J(n(!1),2),R=P[0],S=P[1],C=r(function(){var e=_(U().mark((function e(t,r){var n,i,a,c,l,s;return U().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.reset,i=(new DOMParser).parseFromString(t.comment,"text/html"),a=Array.from(i.body.getElementsByClassName("mention")),c=[],a.forEach((function(e){var t=e.attributes["data-mention-id"].value,r=e.attributes["data-mention-label"].value,n=i.createElement("a");n.setAttribute("href",new URL(window.location.href).origin+"/"+u+"/"+encodeURIComponent(t)+"/show"),n.textContent="@"+r,e.parentNode.replaceChild(n,e),c.push(t)})),"undefined"!==i.body.innerHTML){e.next=9;break}w("Votre commentaire est vide","error"),e.next=24;break;case 9:return l=Date.now(),s={type:Y.NOTE,attributedTo:T.owner,content:i.body.innerHTML,inReplyTo:p[o],published:(new Date).toISOString()},e.prev=11,d(H({id:l},s)),n(),N(!1),e.next=17,T.post(H(H({},s),{},{to:[].concat(c,[Z])}));case 17:w("Commentaire posté avec succès","success"),e.next=24;break;case 20:e.prev=20,e.t0=e.catch(11),f(l),w(e.t0.message,"error");case 24:case"end":return e.stop()}}),e,null,[[11,20]])})));return function(t,r){return e.apply(this,arguments)}}(),[T,w,N,d,f]),D=r((function(){m.id||S(!0)}),[m,S]);return a&&!a.items||!m?null:e.createElement(e.Fragment,null,e.createElement(g,{onSubmit:C,subscription:{submitting:!0,pristine:!0},render:function(t){var r,n,o=t.handleSubmit,c=t.submitting;if(t.pristine){var u=document.getElementById("comment");u&&(u.innerHTML="")}return e.createElement("form",{onSubmit:o,className:v.form},e.createElement(E,{className:v.container,onClick:D},e.createElement(x,{src:null==m||null===(r=m.webIdData)||void 0===r?void 0:r[null==h||null===(n=h.fieldsMapping)||void 0===n?void 0:n.image],className:v.avatar}),e.createElement(y,{source:"comment",label:"",toolbar:null,fullWidth:!0,classes:{editorContent:v.editorContent},editorOptions:H(H({},b),{},{onFocus:function(){N(!0)},extensions:[].concat(W(b.extensions),[a?ee.configure({HTMLAttributes:{class:"mention"},suggestion:a}):null]),editable:!!m.id}),helperText:i}),A&&e.createElement(O,{type:"submit",size:"small",variant:"contained",color:"primary",endIcon:e.createElement(L,null),disabled:c,className:v.button},"Envoyer")))}}),e.createElement(j,{open:R,onClose:function(){return S(!1)},message:"Pour poster un commentaire, vous devez être connecté."}))},ne=w((function(){return{container:{paddingLeft:80,marginTop:8,minHeight:80,position:"relative"},avatar:{position:"absolute",top:0,left:0,bottom:0,width:64,height:64},text:{paddingTop:2,paddingBottom:8},label:{fontWeight:"bold"},content:{"& p":{marginBlockStart:"0.5em",marginBlockEnd:"0.5em"}},loading:{zIndex:1e3,backgroundColor:"white",opacity:.5,position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",minHeight:200,marginTop:5}}})),oe=function(t){var r=t.comments,n=t.userResource,o=t.loading,i=ne(),a=k(n);return e.createElement(E,{position:"relative"},r&&r.sort((function(e,t){return new Date(t.published)-new Date(e.published)})).map((function(t){var r,n;return e.createElement(E,{className:i.container},e.createElement(E,{className:i.avatar},e.createElement(R,{record:t,reference:"Person",source:"attributedTo",linkType:"show"},e.createElement(S,{image:null==a||null===(r=a.fieldsMapping)||void 0===r?void 0:r.image}))),e.createElement(E,{className:i.text},e.createElement(T,{variant:"body2"},e.createElement(R,{record:t,reference:"Person",source:"attributedTo",linkType:"show"},e.createElement(d,{variant:"body2",source:null==a||null===(n=a.fieldsMapping)||void 0===n?void 0:n.title,className:i.label}))," • ",e.createElement(f,{record:t,variant:"body2",source:"published",showTime:!0})),e.createElement(p,{record:t,variant:"body1",source:"content",className:i.content})))})),o&&e.createElement(E,{minHeight:200},e.createElement(E,{alignItems:"center",className:i.loading},e.createElement(I,{size:60,thickness:6}))))},ie=function(e){var i=c().identity,a=J(n([]),2),l=a[0],s=a[1],d=J(n(!1),2),f=d[0],p=d[1],m=J(n(!1),2),h=m[0],v=m[1],y=J(n(!1),2),b=y[0],g=y[1],w=t((function(){if(e){if(e.startsWith("http"))return e;var t;if(null!=i&&i.webIdData)return null==i||null===(t=i.webIdData)||void 0===t?void 0:t[e]}}),[i,e]),E=r(_(U().mark((function e(){var t,r;return U().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(w){e.next=2;break}return e.abrupt("return");case 2:p(!0),t=localStorage.getItem("token"),r=new Headers({Accept:"application/ld+json",Authorization:t?"Bearer ".concat(t):void 0}),u.fetchJson(w,{headers:r}).then((function(e){var t=e.json;t&&t.items?s(t.items):t&&t.orderedItems?s(t.orderedItems):s([]),g(!1),v(!0),p(!1)})).catch((function(){g(!0),v(!0),p(!1)}));case 6:case"end":return e.stop()}}),e)}))),[s,v,p,g,w]);o((function(){f||h||b||E()}),[E,f,h,b]);var x=r((function(e){s((function(t){return[].concat(W(t),[e])}))}),[s]),O=r((function(e){s((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[s]);return{items:l,loading:f,loaded:h,error:b,refetch:E,addItem:x,removeItem:O,url:w}},ae=function(t){t.source;var r=t.context,n=t.helperText,o=t.userResource,i=t.mentions,a=l(),c=ie(a.replies),u=c.items,s=c.loading,d=c.addItem,f=c.removeItem;if(!o)throw new Error("No userResource defined for CommentsField");return e.createElement(e.Fragment,null,e.createElement(re,{context:r,helperText:n,userResource:o,mentions:i,addItem:d,removeItem:f}),e.createElement(oe,{comments:u,loading:s,userResource:o}))};ae.defaultProps={addLabel:!0,label:"Commentaires",source:"id",context:"id"};var ce=["collectionUrl","resource","children"],ue=function(t){var r=t.collectionUrl,n=t.resource,o=t.children,i=z(t,ce);if(1!==e.Children.count(o))throw new Error(" only accepts a single child");var a=m(n,r,{enabled:!!r}),c=a.data;return a.loading?e.createElement("div",{style:{marginTop:8}},e.createElement(h,null)):c?e.createElement(C,V({reference:n,record:c,source:"items"},i),o):null},le=["source","record","reference","children"],se=function(t){var r=t.source,n=t.record,o=t.reference,i=t.children,a=z(t,le);if(1!==e.Children.count(i))throw new Error(" only accepts a single child");return n&&n[r]?e.createElement(ue,V({resource:o,collectionUrl:n[r]},a),i):null};se.defaultProps={addLabel:!0};var de=function(){var e=c().identity,n=t((function(){var t;if(null!=e&&e.webIdData)return null==e||null===(t=e.webIdData)||void 0===t?void 0:t.inbox}),[e]),o=t((function(){var t,r;if(null!=e&&e.webIdData)return(null==e||null===(t=e.webIdData)||void 0===t||null===(r=t.endpoints)||void 0===r?void 0:r["void:sparqlEndpoint"])||(null==e?void 0:e.id)+"/sparql"}),[e]);return{fetch:r(function(){var e=_(U().mark((function e(t){var r,i,a,c,l,s,d;return U().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.filters,console.log("inboxUrl",n,o),o&&n){e.next=4;break}return e.abrupt("return");case 4:return i=localStorage.getItem("token"),a=A(["as:object"]),c="",r&&Object.keys(r).forEach((function(e){if(r[e]){var t=r[e].startsWith("http")?"<".concat(r[e],">"):r[e];c+="?s1 ".concat(e," ").concat(t," .")}})),l="\n PREFIX as: \n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(a.construct,"\n }\n WHERE {\n <").concat(n,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ").concat(c,"\n ").concat(a.where,"\n }\n "),e.next=11,u.fetchJson(o,{method:"POST",body:l,headers:new Headers({Accept:"application/ld+json",Authorization:i?"Bearer ".concat(i):void 0})});case 11:if(s=e.sent,!(d=s.json)["@graph"]){e.next=17;break}return e.abrupt("return",d["@graph"]);case 17:return e.abrupt("return",null);case 18:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[o,n]),url:n,owner:null==e?void 0:e.id}},fe=function(){return{fetch:r(function(){var e=_(U().mark((function e(t){var r,n,o,i,a,c,l,s,d;return U().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.split("@"),(n=J(r,3))[0],o=n[1],!(i=n[2])){e.next=18;break}return a=i.includes(":")?"http":"https",c="".concat(a,"://").concat(i,"/.well-known/webfinger?resource=acct:").concat(o,"@").concat(i),e.prev=4,e.next=7,u.fetchJson(c);case 7:return l=e.sent,s=l.json,d=s.links.find((function(e){return"application/activity+json"===e.type})),e.abrupt("return",d?d.href:null);case 13:return e.prev=13,e.t0=e.catch(4),e.abrupt("return",null);case 16:e.next=19;break;case 18:return e.abrupt("return",null);case 19:case"end":return e.stop()}}),e,null,[[4,13]])})));return function(t){return e.apply(this,arguments)}}(),[])}},pe=w((function(e){return{items:{background:"#fff",borderRadius:"0.5rem",boxShadow:"0 0 0 1px rgba(0, 0, 0, 0.05), 0px 10px 20px rgba(0, 0, 0, 0.1)",color:"rgba(0, 0, 0, 0.8)",fontSize:"0.9rem",overflow:"hidden",padding:"0.2rem",position:"relative"},item:{background:"transparent",border:"1px solid transparent",borderRadius:"0.4rem",display:"block",margin:0,padding:"0.2rem 0.4rem",textAlign:"left",width:"100%","&.selected":{borderColor:"#000"}}}})),me=i((function(t,r){var i=J(n(0),2),c=i[0],u=i[1],l=pe(),s=function(e){var r=t.items[e];r&&t.command({id:r})};return o((function(){return u(0)}),[t.items]),a(r,(function(){return{onKeyDown:function(e){var r=e.event;return"ArrowUp"===r.key?(u((c+t.items.length-1)%t.items.length),!0):"ArrowDown"===r.key?(u((c+1)%t.items.length),!0):"Enter"===r.key&&(s(c),!0)}}})),e.createElement("div",{className:l.items},t.items.length?t.items.map((function(t,r){return e.createElement("button",{className:l.item+(r===c?" selected":""),key:r,onClick:function(){return s(r)}},t.label)})):e.createElement("div",{className:l.item},"Aucun résultat"))})),he=function(){var e,t;return{onStart:function(r){e=new D(me,{props:r,editor:r.editor}),t=F("body",{getReferenceClientRect:r.clientRect,appendTo:function(){return document.body},content:e.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start"})},onUpdate:function(r){e.updateProps(r),t[0].setProps({getReferenceClientRect:r.clientRect})},onKeyDown:function(r){var n;return"Escape"===r.event.key?(t[0].hide(),!0):null===(n=e.ref)||void 0===n?void 0:n.onKeyDown(r)},onExit:function(){t[0].destroy(),e.destroy()}}},ve=function(e){var r,n,o=k(e),i=v({type:"getList",resource:e,payload:{filter:{_predicates:[null==o||null===(r=o.fieldsMapping)||void 0===r?void 0:r.title],blankNodes:[]}}},{enabled:!(null==o||null===(n=o.fieldsMapping)||void 0===n||!n.title)}).data,a=t((function(){if(i)return i.map((function(e){var t;return{id:e.id,label:e[null==o||null===(t=o.fieldsMapping)||void 0===t?void 0:t.title]}}))}),[i]);return{items:t((function(){if(a)return function(e){var t=e.query;return a.filter((function(e){return e.label.toLowerCase().startsWith(t.toLowerCase())})).slice(0,5)}}),[a]),render:he}};export{Q as ACTIVITY_TYPES,X as ACTOR_TYPES,ue as CollectionList,ae as CommentsField,Y as OBJECT_TYPES,Z as PUBLIC_URI,se as ReferenceCollectionField,ie as useCollection,de as useInbox,ve as useMentions,$ as useOutbox,fe as useWebfinger}; +G=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",i=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var o=t&&t.prototype instanceof p?t:p,i=Object.create(o.prototype),a=new x(n||[]);return i._invoke=function(e,t,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return I()}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var c=w(a,r);if(c){if(c===s)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=l(e,t,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===s)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}(e,r,a),i}function l(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var s={};function p(){}function d(){}function f(){}var m={};c(m,o,(function(){return this}));var h=Object.getPrototypeOf,v=h&&h(h(O([])));v&&v!==t&&r.call(v,o)&&(m=v);var y=f.prototype=p.prototype=Object.create(m);function g(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(o,i){function a(){return new t((function(n,a){!function n(o,i,a,c){var u=l(e[o],e,i);if("throw"!==u.type){var s=u.arg,p=s.value;return p&&"object"==typeof p&&r.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,c)}),(function(e){n("throw",e,a,c)})):t.resolve(p).then((function(e){s.value=e,a(s)}),(function(e){return n("throw",e,a,c)}))}c(u.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}}function w(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,w(e,t),"throw"===t.method))return s;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return s}var n=l(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,s;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,s):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,s)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,i=function t(){for(;++n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(c&&u){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),T(r),s}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:O(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),s}},e}function H(e,t,r,n,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function B(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){H(i,n,o,a,c,"next",e)}function c(e){H(i,n,o,a,c,"throw",e)}a(void 0)}))}}function U(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _(){return(_=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function z(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,i=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}(e,t)||W(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(e){return function(e){if(Array.isArray(e))return K(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||W(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function W(e,t){if(e){if("string"==typeof e)return K(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K(e,t):void 0}}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(r.construct,"\n }\n WHERE {\n <").concat(n,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ").concat(r.where,"\n }\n "),e.next=7,u.fetchJson(o,{method:"POST",body:i,headers:new Headers({Accept:"application/ld+json",Authorization:t?"Bearer ".concat(t):void 0})});case 7:if(a=e.sent,!(c=a.json)["@graph"]){e.next=13;break}return e.abrupt("return",c["@graph"]);case 13:return e.abrupt("return",null);case 14:case"end":return e.stop()}}),e)}))),[o,n]),url:n,owner:null==e?void 0:e.id}},ee=S.extend({renderHTML:function(e){var t=e.node,r=e.HTMLAttributes;return["span",j(this.options.HTMLAttributes,r),"@".concat(t.attrs.id.label)]},addAttributes:function(){return{label:{default:null,parseHTML:function(e){return{label:e.getAttribute("data-mention-label")}},renderHTML:function(e){return e.id.label?{"data-mention-label":e.id.label}:{}}},id:{default:null,parseHTML:function(e){return{id:e.getAttribute("data-mention-id")}},renderHTML:function(e){return e.id.id?{"data-mention-id":e.id.id}:{}}}}}}),te=w((function(e){return{form:{marginTop:-12},container:{paddingLeft:80,position:"relative"},avatar:{position:"absolute",top:16,left:0,bottom:0,width:64,height:64},editorContent:{"& > div":{backgroundColor:"rgba(0, 0, 0, 0.09)",padding:"2px 12px",borderWidth:"0px !important",borderRadius:0,borderBottom:"1px solid #FFF",minHeight:60,outline:"unset !important"},"& > div > p":{marginTop:12,marginBottom:12,fontFamily:e.typography.body1.fontFamily,marginBlockStart:"0.5em",marginBlockEnd:"0.5em"},marginBottom:-19},button:{marginBottom:15}}})),re=function(t){var o=t.context,i=t.helperText,a=t.mentions,u=t.userResource,p=t.addItem,d=t.removeItem,f=l(),m=c().identity,h=A(u),v=te(),w=s(),O=$(),I=z(n(!1),2),N=I[0],j=I[1],S=z(n(!1),2),P=S[0],C=S[1],R=r(function(){var e=B(G().mark((function e(t,r){var n,i,a,c,l,s;return G().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.reset,i=(new DOMParser).parseFromString(t.comment,"text/html"),a=Array.from(i.body.getElementsByClassName("mention")),c=[],a.forEach((function(e){var t=e.attributes["data-mention-id"].value,r=e.attributes["data-mention-label"].value,n=i.createElement("a");n.setAttribute("href",new URL(window.location.href).origin+"/"+u+"/"+encodeURIComponent(t)+"/show"),n.textContent="@"+r,e.parentNode.replaceChild(n,e),c.push(t)})),"undefined"!==i.body.innerHTML){e.next=9;break}w("Votre commentaire est vide","error"),e.next=24;break;case 9:return l=Date.now(),s={type:Y.NOTE,attributedTo:O.owner,content:i.body.innerHTML,inReplyTo:f[o],published:(new Date).toISOString()},e.prev=11,p(q({id:l},s)),n(),j(!1),e.next=17,O.post(q(q({},s),{},{to:[].concat(c,[Z])}));case 17:w("Commentaire posté avec succès","success"),e.next=24;break;case 20:e.prev=20,e.t0=e.catch(11),d(l),w(e.t0.message,"error");case 24:case"end":return e.stop()}}),e,null,[[11,20]])})));return function(t,r){return e.apply(this,arguments)}}(),[O,w,j,p,d]),D=r((function(){m.id||C(!0)}),[m,C]);return a&&!a.items||!m?null:e.createElement(e.Fragment,null,e.createElement(b,{onSubmit:R,subscription:{submitting:!0,pristine:!0},render:function(t){var r,n,o=t.handleSubmit,c=t.submitting;if(t.pristine){var u=document.getElementById("comment");u&&(u.innerHTML="")}return e.createElement("form",{onSubmit:o,className:v.form},e.createElement(E,{className:v.container,onClick:D},e.createElement(T,{src:null==m||null===(r=m.webIdData)||void 0===r?void 0:r[null==h||null===(n=h.fieldsMapping)||void 0===n?void 0:n.image],className:v.avatar}),e.createElement(y,{source:"comment",label:"",toolbar:null,fullWidth:!0,classes:{editorContent:v.editorContent},editorOptions:q(q({},g),{},{onFocus:function(){j(!0)},extensions:[].concat(J(g.extensions),[a?ee.configure({HTMLAttributes:{class:"mention"},suggestion:a}):null]),editable:!!m.id}),helperText:i}),N&&e.createElement(x,{type:"submit",size:"small",variant:"contained",color:"primary",endIcon:e.createElement(L,null),disabled:c,className:v.button},"Envoyer")))}}),e.createElement(k,{open:P,onClose:function(){return C(!1)},message:"Pour poster un commentaire, vous devez être connecté."}))},ne=w((function(){return{container:{paddingLeft:80,marginTop:8,minHeight:80,position:"relative"},avatar:{position:"absolute",top:0,left:0,bottom:0,width:64,height:64},text:{paddingTop:2,paddingBottom:8},label:{fontWeight:"bold"},content:{"& p":{marginBlockStart:"0.5em",marginBlockEnd:"0.5em"}},loading:{zIndex:1e3,backgroundColor:"white",opacity:.5,position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",minHeight:200,marginTop:5}}})),oe=function(t){var r=t.comments,n=t.userResource,o=t.loading,i=ne(),a=A(n);return e.createElement(E,{position:"relative"},r&&r.sort((function(e,t){return new Date(t.published)-new Date(e.published)})).map((function(t){var r,n;return e.createElement(E,{className:i.container},e.createElement(E,{className:i.avatar},e.createElement(P,{record:t,reference:"Person",source:"attributedTo",linkType:"show"},e.createElement(C,{image:null==a||null===(r=a.fieldsMapping)||void 0===r?void 0:r.image}))),e.createElement(E,{className:i.text},e.createElement(O,{variant:"body2"},e.createElement(P,{record:t,reference:"Person",source:"attributedTo",linkType:"show"},e.createElement(p,{variant:"body2",source:null==a||null===(n=a.fieldsMapping)||void 0===n?void 0:n.title,className:i.label}))," • ",e.createElement(d,{record:t,variant:"body2",source:"published",showTime:!0})),e.createElement(f,{record:t,variant:"body1",source:"content",className:i.content})))})),o&&e.createElement(E,{minHeight:200},e.createElement(E,{alignItems:"center",className:i.loading},e.createElement(I,{size:60,thickness:6}))))},ie=function(e){var i=c().identity,a=z(n([]),2),l=a[0],s=a[1],p=z(n(!1),2),d=p[0],f=p[1],m=z(n(!1),2),h=m[0],v=m[1],y=z(n(!1),2),g=y[0],b=y[1],w=t((function(){if(e){if(e.startsWith("http"))return e;var t;if(null!=i&&i.webIdData)return null==i||null===(t=i.webIdData)||void 0===t?void 0:t[e]}}),[i,e]),E=r(B(G().mark((function e(){var t,r;return G().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(w){e.next=2;break}return e.abrupt("return");case 2:f(!0),t=localStorage.getItem("token"),r=new Headers({Accept:"application/ld+json",Authorization:t?"Bearer ".concat(t):void 0}),u.fetchJson(w,{headers:r}).then((function(e){var t=e.json;t&&t.items?s(t.items):t&&t.orderedItems?s(t.orderedItems):s([]),b(!1),v(!0),f(!1)})).catch((function(){b(!0),v(!0),f(!1)}));case 6:case"end":return e.stop()}}),e)}))),[s,v,f,b,w]);o((function(){d||h||g||E()}),[E,d,h,g]);var T=r((function(e){s((function(t){return[].concat(J(t),[e])}))}),[s]),x=r((function(e){s((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[s]);return{items:l,loading:d,loaded:h,error:g,refetch:E,addItem:T,removeItem:x,url:w}},ae=function(t){t.source;var r=t.context,n=t.helperText,o=t.userResource,i=t.mentions,a=l(),c=ie(a.replies),u=c.items,s=c.loading,p=c.addItem,d=c.removeItem;if(!o)throw new Error("No userResource defined for CommentsField");return e.createElement(e.Fragment,null,e.createElement(re,{context:r,helperText:n,userResource:o,mentions:i,addItem:p,removeItem:d}),e.createElement(oe,{comments:u,loading:s,userResource:o}))};ae.defaultProps={addLabel:!0,label:"Commentaires",source:"id",context:"id"};var ce=["collectionUrl","resource","children"],ue=function(t){var r=t.collectionUrl,n=t.resource,o=t.children,i=V(t,ce);if(1!==e.Children.count(o))throw new Error(" only accepts a single child");var a=m(n,r,{enabled:!!r}),c=a.data;return a.loading?e.createElement("div",{style:{marginTop:8}},e.createElement(h,null)):c?e.createElement(R,_({reference:n,record:c,source:"items"},i),o):null},le=["source","record","reference","children"],se=function(t){var r=t.source,n=t.record,o=t.reference,i=t.children,a=V(t,le);if(1!==e.Children.count(i))throw new Error(" only accepts a single child");return n&&n[r]?e.createElement(ue,_({resource:o,collectionUrl:n[r]},a),i):null};se.defaultProps={addLabel:!0};class pe{constructor(e){this.value=e||"b"+ ++pe.nextId}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value}}pe.prototype.termType="BlankNode",pe.nextId=0;var de=pe;class fe{equals(e){return!!e&&e.termType===this.termType}}fe.prototype.termType="DefaultGraph",fe.prototype.value="";var me=fe;var he=function(e){if(!e)return null;if("BlankNode"===e.termType)return this.blankNode(e.value);if("DefaultGraph"===e.termType)return this.defaultGraph();if("Literal"===e.termType)return this.literal(e.value,e.language||this.namedNode(e.datatype.value));if("NamedNode"===e.termType)return this.namedNode(e.value);if("Quad"===e.termType){const t=this.fromTerm(e.subject),r=this.fromTerm(e.predicate),n=this.fromTerm(e.object),o=this.fromTerm(e.graph);return this.quad(t,r,n,o)}if("Variable"===e.termType)return this.variable(e.value);throw new Error("unknown termType "+e.termType)};class ve{constructor(e){this.value=e}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value}}ve.prototype.termType="NamedNode";var ye=ve;class ge{constructor(e,t,r){this.value=e,this.datatype=ge.stringDatatype,this.language="",t?(this.language=t,this.datatype=ge.langStringDatatype):r&&(this.datatype=r)}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value&&e.language===this.language&&e.datatype.equals(this.datatype)}}ge.prototype.termType="Literal",ge.langStringDatatype=new ye("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"),ge.stringDatatype=new ye("http://www.w3.org/2001/XMLSchema#string");var be=ge;class we{constructor(e,t,r,n){this.subject=e,this.predicate=t,this.object=r,this.graph=n||new me}equals(e){return!!e&&("Quad"===e.termType||!e.termType)&&e.subject.equals(this.subject)&&e.predicate.equals(this.predicate)&&e.object.equals(this.object)&&e.graph.equals(this.graph)}}we.prototype.termType="Quad",we.prototype.value="";var Ee=we;class Te{constructor(e){this.value=e}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value}}Te.prototype.termType="Variable";var xe=Te;const Oe={namedNode:function(e){return new ye(e)},blankNode:function(e){return new de(e)},literal:function(e,t){return"string"==typeof t?-1===t.indexOf(":")?new be(e,t):new be(e,null,Oe.namedNode(t)):new be(e,null,t)},variable:function(e){return new xe(e)},defaultGraph:function(){return Oe.defaultGraphInstance},triple:function(e,t,r){return Oe.quad(e,t,r)},quad:function(e,t,r,n){return new Ee(e,t,r,n||Oe.defaultGraphInstance)},fromTerm:function(e){return he.call(Oe,e)},fromQuad:function(e){return he.call(Oe,e)},defaultGraphInstance:new me};var Ie=Oe,Le=Ie.namedNode,Ne=Ie.triple,Ae=Ie.variable,ke=new(0,require("sparqljs").Generator)({}),je=function(){var e=c().identity,n=t((function(){var t;if(null!=e&&e.webIdData)return null==e||null===(t=e.webIdData)||void 0===t?void 0:t.inbox}),[e]),o=t((function(){var t,r;if(null!=e&&e.webIdData)return(null==e||null===(t=e.webIdData)||void 0===t||null===(r=t.endpoints)||void 0===r?void 0:r["void:sparqlEndpoint"])||(null==e?void 0:e.id)+"/sparql"}),[e]);return{fetch:r(function(){var e=B(G().mark((function e(t){var r,i,a,c,l,s,p,d;return G().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.filters,o&&n){e.next=3;break}return e.abrupt("return");case 3:return r=[Ne(Le(n),Le("https://www.w3.org/ns/activitystreams#items"),Ae("s1")),Ne(Ae("s1"),Ae("p1"),Ae("o1"))],i={construct:r,where:[].concat(r)},a=localStorage.getItem("token"),c=N(["as:object"],i,[{prefix:"as",url:"https://www.w3.org/ns/activitystreams#"}]),l={type:"query",queryType:"CONSTRUCT",template:c.construct,where:c.where,prefixes:{as:"https://www.w3.org/ns/activitystreams#"}},s=ke.stringify(l),e.next=12,u.fetchJson(o,{method:"POST",body:s,headers:new Headers({Accept:"application/ld+json",Authorization:a?"Bearer ".concat(a):void 0})});case 12:if(p=e.sent,!(d=p.json)["@graph"]){e.next=18;break}return e.abrupt("return",d["@graph"]);case 18:return e.abrupt("return",null);case 19:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[o,n]),url:n,owner:null==e?void 0:e.id}},Se=function(){return{fetch:r(function(){var e=B(G().mark((function e(t){var r,n,o,i,a,c,l,s,p;return G().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.split("@"),(n=z(r,3))[0],o=n[1],!(i=n[2])){e.next=18;break}return a=i.includes(":")?"http":"https",c="".concat(a,"://").concat(i,"/.well-known/webfinger?resource=acct:").concat(o,"@").concat(i),e.prev=4,e.next=7,u.fetchJson(c);case 7:return l=e.sent,s=l.json,p=s.links.find((function(e){return"application/activity+json"===e.type})),e.abrupt("return",p?p.href:null);case 13:return e.prev=13,e.t0=e.catch(4),e.abrupt("return",null);case 16:e.next=19;break;case 18:return e.abrupt("return",null);case 19:case"end":return e.stop()}}),e,null,[[4,13]])})));return function(t){return e.apply(this,arguments)}}(),[])}},Pe=w((function(e){return{items:{background:"#fff",borderRadius:"0.5rem",boxShadow:"0 0 0 1px rgba(0, 0, 0, 0.05), 0px 10px 20px rgba(0, 0, 0, 0.1)",color:"rgba(0, 0, 0, 0.8)",fontSize:"0.9rem",overflow:"hidden",padding:"0.2rem",position:"relative"},item:{background:"transparent",border:"1px solid transparent",borderRadius:"0.4rem",display:"block",margin:0,padding:"0.2rem 0.4rem",textAlign:"left",width:"100%","&.selected":{borderColor:"#000"}}}})),Ce=i((function(t,r){var i=z(n(0),2),c=i[0],u=i[1],l=Pe(),s=function(e){var r=t.items[e];r&&t.command({id:r})};return o((function(){return u(0)}),[t.items]),a(r,(function(){return{onKeyDown:function(e){var r=e.event;return"ArrowUp"===r.key?(u((c+t.items.length-1)%t.items.length),!0):"ArrowDown"===r.key?(u((c+1)%t.items.length),!0):"Enter"===r.key&&(s(c),!0)}}})),e.createElement("div",{className:l.items},t.items.length?t.items.map((function(t,r){return e.createElement("button",{className:l.item+(r===c?" selected":""),key:r,onClick:function(){return s(r)}},t.label)})):e.createElement("div",{className:l.item},"Aucun résultat"))})),Re=function(){var e,t;return{onStart:function(r){e=new D(Ce,{props:r,editor:r.editor}),t=M("body",{getReferenceClientRect:r.clientRect,appendTo:function(){return document.body},content:e.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start"})},onUpdate:function(r){e.updateProps(r),t[0].setProps({getReferenceClientRect:r.clientRect})},onKeyDown:function(r){var n;return"Escape"===r.event.key?(t[0].hide(),!0):null===(n=e.ref)||void 0===n?void 0:n.onKeyDown(r)},onExit:function(){t[0].destroy(),e.destroy()}}},De=function(e){var r,n,o=A(e),i=v({type:"getList",resource:e,payload:{filter:{_predicates:[null==o||null===(r=o.fieldsMapping)||void 0===r?void 0:r.title],blankNodes:[]}}},{enabled:!(null==o||null===(n=o.fieldsMapping)||void 0===n||!n.title)}).data,a=t((function(){if(i)return i.map((function(e){var t;return{id:e.id,label:e[null==o||null===(t=o.fieldsMapping)||void 0===t?void 0:t.title]}}))}),[i]);return{items:t((function(){if(a)return function(e){var t=e.query;return a.filter((function(e){return e.label.toLowerCase().startsWith(t.toLowerCase())})).slice(0,5)}}),[a]),render:Re}};export{Q as ACTIVITY_TYPES,X as ACTOR_TYPES,ue as CollectionList,ae as CommentsField,Y as OBJECT_TYPES,Z as PUBLIC_URI,se as ReferenceCollectionField,ie as useCollection,je as useInbox,De as useMentions,$ as useOutbox,Se as useWebfinger}; //# sourceMappingURL=index.es.js.map diff --git a/src/frontend/packages/activitypub-components/dist/index.es.js.map b/src/frontend/packages/activitypub-components/dist/index.es.js.map index 17270b947..1205d152e 100644 --- a/src/frontend/packages/activitypub-components/dist/index.es.js.map +++ b/src/frontend/packages/activitypub-components/dist/index.es.js.map @@ -1 +1 @@ -{"version":3,"file":"index.es.js","sources":["../src/constants.js","../src/hooks/useOutbox.js","../src/components/CommentsField/CustomMention.js","../src/components/CommentsField/PostCommentForm.js","../src/components/CommentsField/CommentsList.js","../src/hooks/useCollection.js","../src/components/CommentsField/CommentsField.js","../src/components/CollectionList.js","../src/components/ReferenceCollectionField.js","../src/hooks/useInbox.js","../src/hooks/useWebfinger.js","../src/hooks/useMentions/MentionsList.js","../src/hooks/useMentions/renderMentions.js","../src/hooks/useMentions/useMentions.js"],"sourcesContent":["export const ACTIVITY_TYPES = {\n ACCEPT: 'Accept',\n ADD: 'Add',\n ANNOUNCE: 'Announce',\n ARRIVE: 'Arrive',\n BLOCK: 'Block',\n CREATE: 'Create',\n DELETE: 'Delete',\n DISLIKE: 'Dislike',\n FLAG: 'Flag',\n FOLLOW: 'Follow',\n IGNORE: 'Ignore',\n INVITE: 'Invite',\n JOIN: 'Join',\n LEAVE: 'Leave',\n LIKE: 'Like',\n LISTEN: 'Listen',\n MOVE: 'Move',\n OFFER: 'Offer',\n QUESTION: 'Question',\n REJECT: 'Reject',\n READ: 'Read',\n REMOVE: 'Remove',\n TENTATIVE_REJECT: 'TentativeReject',\n TENTATIVE_ACCEPT: 'TentativeAccept',\n TRAVAL: 'Travel',\n UNDO: 'Undo',\n UPDATE: 'Update',\n VIEW: 'View'\n};\n\nexport const ACTOR_TYPES = {\n APPLICATION: 'Application',\n GROUP: 'Group',\n ORGANIZATION: 'Organization',\n PERSON: 'Person',\n SERVICE: 'Service'\n};\n\nexport const OBJECT_TYPES = {\n ARTICLE: 'Article',\n AUDIO: 'Audio',\n DOCUMENT: 'Document',\n EVENT: 'Event',\n IMAGE: 'Image',\n NOTE: 'Note',\n PAGE: 'Page',\n PLACE: 'Place',\n PROFILE: 'Profile',\n RELATIONSHIP: 'Relationship',\n TOMBSTONE: 'Tombstone',\n VIDEO: 'Video'\n};\n\nexport const PUBLIC_URI = 'https://www.w3.org/ns/activitystreams#Public';\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildBlankNodesQuery } from '@semapps/semantic-data-provider';\n\nconst useOutbox = () => {\n const { identity } = useGetIdentity();\n\n const outboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.outbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'] || (identity?.id + '/sparql');\n }\n }, [identity]);\n\n // Post an activity to the logged user's outbox and return its URI\n const post = useCallback(\n async activity => {\n const token = localStorage.getItem('token');\n const { headers } = await fetchUtils.fetchJson(outboxUrl, {\n method: 'POST',\n body: JSON.stringify({\n '@context': 'https://www.w3.org/ns/activitystreams',\n ...activity\n }),\n headers: new Headers({\n 'Content-Type': 'application/ld+json',\n Authorization: `Bearer ${token}`\n })\n });\n return headers.get('Location');\n },\n [outboxUrl]\n );\n\n const fetch = useCallback(async () => {\n if (!sparqlEndpoint || !outboxUrl) return;\n\n const token = localStorage.getItem('token');\n const blankNodesQuery = buildBlankNodesQuery(['as:object']);\n\n const query = `\n PREFIX as: \n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.construct}\n }\n WHERE {\n <${outboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n }, [sparqlEndpoint, outboxUrl]);\n\n return { post, fetch, url: outboxUrl, owner: identity?.id };\n};\n\nexport default useOutbox;\n","import { mergeAttributes } from '@tiptap/core';\nimport Mention from '@tiptap/extension-mention';\n\n// Fix a bug in the current version of the mention extension\n// (The { id, label } object is located inside the id property)\n// See https://github.com/ueberdosis/tiptap/pull/1322\nconst CustomMention = Mention.extend({\n renderHTML({ node, HTMLAttributes }) {\n return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), `@${node.attrs.id.label}`];\n },\n addAttributes() {\n return {\n label: {\n default: null,\n parseHTML: element => {\n return {\n label: element.getAttribute('data-mention-label')\n };\n },\n renderHTML: attributes => {\n if (!attributes.id.label) {\n return {};\n }\n return {\n 'data-mention-label': attributes.id.label\n };\n }\n },\n id: {\n default: null,\n parseHTML: element => {\n return {\n id: element.getAttribute('data-mention-id')\n };\n },\n renderHTML: attributes => {\n if (!attributes.id.id) {\n return {};\n }\n return {\n 'data-mention-id': attributes.id.id\n };\n }\n }\n };\n }\n});\n\nexport default CustomMention;\n","import React, { useState, useCallback } from 'react';\nimport { useGetIdentity, useNotify, useRecordContext } from 'react-admin';\nimport { RichTextInput, DefaultEditorOptions } from 'ra-richtext-tiptap';\nimport { Form } from 'react-final-form';\nimport { Button, Box, makeStyles, Avatar } from '@material-ui/core';\nimport SendIcon from '@material-ui/icons/Send';\nimport { useDataModel } from '@semapps/semantic-data-provider';\nimport { AuthDialog } from '@semapps/auth-provider';\nimport { OBJECT_TYPES, PUBLIC_URI } from '../../constants';\nimport useOutbox from '../../hooks/useOutbox';\nimport CustomMention from './CustomMention';\n\nconst useStyles = makeStyles(theme => ({\n form: {\n marginTop: -12 // Negative margin to keep the form close to the label\n },\n container: {\n paddingLeft: 80,\n position: 'relative'\n },\n avatar: {\n position: 'absolute',\n top: 16,\n left: 0,\n bottom: 0,\n width: 64,\n height: 64\n },\n editorContent: {\n '& > div': {\n backgroundColor: 'rgba(0, 0, 0, 0.09)',\n padding: '2px 12px',\n borderWidth: '0px !important',\n borderRadius: 0,\n borderBottom: '1px solid #FFF',\n minHeight: 60,\n outline: 'unset !important'\n },\n '& > div > p': {\n marginTop: 12,\n marginBottom: 12,\n fontFamily: theme.typography.body1.fontFamily,\n marginBlockStart: '0.5em',\n marginBlockEnd: '0.5em'\n },\n marginBottom: -19 // To hide helper text block\n },\n button: {\n marginBottom: 15\n }\n}));\n\nconst PostCommentForm = ({ context, helperText, mentions, userResource, addItem, removeItem }) => {\n const record = useRecordContext();\n const { identity } = useGetIdentity();\n const userDataModel = useDataModel(userResource);\n const classes = useStyles();\n const notify = useNotify();\n const outbox = useOutbox();\n const [expanded, setExpanded] = useState(false);\n const [openAuth, setOpenAuth] = useState(false);\n\n const onSubmit = useCallback(\n async (values, { reset }) => {\n const document = new DOMParser().parseFromString(values.comment, 'text/html');\n const mentions = Array.from(document.body.getElementsByClassName('mention'));\n let mentionedUsersUris = [];\n\n mentions.forEach(node => {\n const userUri = node.attributes['data-mention-id'].value;\n const userLabel = node.attributes['data-mention-label'].value;\n const link = document.createElement('a');\n link.setAttribute(\n 'href',\n new URL(window.location.href).origin + '/' + userResource + '/' + encodeURIComponent(userUri) + '/show'\n );\n link.textContent = '@' + userLabel;\n node.parentNode.replaceChild(link, node);\n mentionedUsersUris.push(userUri);\n });\n\n if (document.body.innerHTML === 'undefined') {\n notify('Votre commentaire est vide', 'error');\n } else {\n const tempId = Date.now();\n\n const note = {\n type: OBJECT_TYPES.NOTE,\n attributedTo: outbox.owner,\n content: document.body.innerHTML,\n inReplyTo: record[context],\n published: new Date().toISOString()\n };\n\n try {\n addItem({ id: tempId, ...note });\n reset();\n setExpanded(false);\n await outbox.post({ ...note, to: [...mentionedUsersUris, PUBLIC_URI] });\n notify('Commentaire posté avec succès', 'success');\n } catch (e) {\n removeItem(tempId);\n notify(e.message, 'error');\n }\n }\n },\n [outbox, notify, setExpanded, addItem, removeItem]\n );\n\n const openAuthIfDisconnected = useCallback(() => {\n if (!identity.id) {\n setOpenAuth(true);\n }\n }, [identity, setOpenAuth]);\n\n // Don't init the editor options until mentions and identity are loaded, as they can only be initialized once\n if ((mentions && !mentions.items) || !identity) return null;\n\n return (\n <>\n {\n // Hack to clear comment input when form is reset\n // TODO When we update to React-Admin 4, check if the new RichTextInput solves this bug\n if (pristine) {\n const commentElement = document.getElementById('comment');\n if (commentElement) commentElement.innerHTML = '';\n }\n return (\n
\n \n \n \n {expanded && (\n }\n disabled={submitting}\n className={classes.button}\n >\n Envoyer\n \n )}\n \n
\n );\n }}\n />\n setOpenAuth(false)}\n message=\"Pour poster un commentaire, vous devez être connecté.\"\n />\n \n );\n};\n\nexport default PostCommentForm;\n","import React from 'react';\nimport { TextField, RichTextField, DateField } from 'react-admin';\nimport { Box, Typography, CircularProgress, makeStyles } from '@material-ui/core';\nimport { useDataModel } from '@semapps/semantic-data-provider';\nimport { AvatarWithLabelField, ReferenceField } from '@semapps/field-components';\n\nconst useStyles = makeStyles(() => ({\n container: {\n paddingLeft: 80,\n marginTop: 8,\n minHeight: 80,\n position: 'relative'\n },\n avatar: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n width: 64,\n height: 64\n },\n text: {\n paddingTop: 2,\n paddingBottom: 8\n },\n label: {\n fontWeight: 'bold'\n },\n content: {\n '& p': {\n marginBlockStart: '0.5em',\n marginBlockEnd: '0.5em'\n }\n },\n loading: {\n zIndex: 1000,\n backgroundColor: 'white',\n opacity: 0.5,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: 200,\n marginTop: 5\n }\n}));\n\nconst CommentsList = ({ comments, userResource, loading }) => {\n const classes = useStyles();\n const userDataModel = useDataModel(userResource);\n return (\n \n {comments &&\n comments\n .sort((a, b) => new Date(b.published) - new Date(a.published))\n .map(comment => (\n \n \n \n \n \n \n \n \n \n \n \n  • \n \n \n \n \n \n ))}\n {loading && (\n \n \n \n \n \n )}\n \n );\n};\n\nexport default CommentsList;\n","import { useCallback, useMemo, useState, useEffect } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\n\nconst useCollection = predicateOrUrl => {\n const { identity } = useGetIdentity();\n const [items, setItems] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState(false);\n\n const collectionUrl = useMemo(() => {\n if (predicateOrUrl) {\n if (predicateOrUrl.startsWith('http')) {\n return predicateOrUrl;\n } else if (identity?.webIdData) {\n return identity?.webIdData?.[predicateOrUrl];\n }\n }\n }, [identity, predicateOrUrl]);\n\n const fetch = useCallback(async () => {\n if (!collectionUrl) return;\n\n setLoading(true);\n const token = localStorage.getItem('token');\n const headers = new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n });\n\n fetchUtils\n .fetchJson(collectionUrl, { headers })\n .then(({ json }) => {\n if (json && json.items) {\n setItems(json.items);\n } else if (json && json.orderedItems) {\n setItems(json.orderedItems);\n } else {\n setItems([]);\n }\n setError(false);\n setLoaded(true);\n setLoading(false);\n })\n .catch(() => {\n setError(true);\n setLoaded(true);\n setLoading(false);\n });\n }, [setItems, setLoaded, setLoading, setError, collectionUrl]);\n\n useEffect(() => {\n if (!loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, loading, loaded, error]);\n\n const addItem = useCallback(\n item => {\n setItems(oldItems => [...oldItems, item]);\n },\n [setItems]\n );\n\n const removeItem = useCallback(\n itemId => {\n setItems(oldItems => oldItems.filter(item => (typeof item === 'string' ? item !== itemId : item.id !== itemId)));\n },\n [setItems]\n );\n\n return { items, loading, loaded, error, refetch: fetch, addItem, removeItem, url: collectionUrl };\n};\n\nexport default useCollection;\n","import React from 'react';\nimport { useRecordContext } from 'react-admin';\nimport PostCommentForm from './PostCommentForm';\nimport CommentsList from './CommentsList';\nimport useCollection from '../../hooks/useCollection';\n\nconst CommentsField = ({ source, context, helperText, userResource, mentions }) => {\n const record = useRecordContext();\n const { items: comments, loading, addItem, removeItem } = useCollection(record.replies);\n if (!userResource) throw new Error('No userResource defined for CommentsField');\n return (\n <>\n \n \n \n );\n};\n\nCommentsField.defaultProps = {\n addLabel: true,\n label: 'Commentaires',\n source: 'id', // Ensure the field is always displayed\n context: 'id'\n};\n\nexport default CommentsField;\n","import React from 'react';\nimport { useGetOne, LinearProgress } from 'react-admin';\nimport { ReferenceArrayField } from '@semapps/field-components';\n\nconst CollectionList = ({ collectionUrl, resource, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error(' only accepts a single child');\n }\n\n // TODO use a simple fetch call, as the resource is not good and it is useless\n const { data: collection, loading } = useGetOne(resource, collectionUrl, { enabled: !!collectionUrl });\n\n if (loading) {\n return (\n
\n \n
\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport default CollectionList;\n","import React from 'react';\nimport CollectionList from './CollectionList';\n\nconst ReferenceCollectionField = ({ source, record, reference, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error(' only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n \n {children}\n \n );\n};\n\nReferenceCollectionField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceCollectionField;\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildBlankNodesQuery } from '@semapps/semantic-data-provider';\n\nconst useInbox = () => {\n const { identity } = useGetIdentity();\n\n const inboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.inbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'] || (identity?.id + '/sparql');\n }\n }, [identity]);\n\n const fetch = useCallback(\n async ({ filters }) => {\n console.log('inboxUrl', inboxUrl, sparqlEndpoint);\n\n if (!sparqlEndpoint || !inboxUrl) return;\n\n const token = localStorage.getItem('token');\n const blankNodesQuery = buildBlankNodesQuery(['as:object']);\n\n let filtersWhereQuery = '';\n if (filters) {\n Object.keys(filters).forEach(predicate => {\n if (filters[predicate]) {\n const object = filters[predicate].startsWith('http') ? `<${filters[predicate]}>` : filters[predicate];\n filtersWhereQuery += `?s1 ${predicate} ${object} .`;\n }\n });\n }\n\n const query = `\n PREFIX as: \n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.construct}\n }\n WHERE {\n <${inboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ${filtersWhereQuery}\n ${blankNodesQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n },\n [sparqlEndpoint, inboxUrl]\n );\n\n return { fetch, url: inboxUrl, owner: identity?.id };\n};\n\nexport default useInbox;\n","import { useCallback } from 'react';\nimport { fetchUtils } from 'react-admin';\n\nconst useWebfinger = () => {\n // Post an activity to the logged user's outbox and return its URI\n const fetch = useCallback(async id => {\n // eslint-disable-next-line\n const [_, username, host] = id.split('@');\n if (host) {\n const protocol = host.includes(':') ? 'http' : 'https'; // If the host has a port, we are most likely on localhost\n const webfingerUrl = `${protocol}://${host}/.well-known/webfinger?resource=acct:${username}@${host}`;\n\n try {\n const { json } = await fetchUtils.fetchJson(webfingerUrl);\n\n const link = json.links.find(l => l.type === 'application/activity+json');\n\n return link ? link.href : null;\n } catch (e) {\n return null;\n }\n } else {\n return null;\n }\n }, []);\n\n return { fetch };\n};\n\nexport default useWebfinger;\n","import React, { useState, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n items: {\n background: '#fff',\n borderRadius: '0.5rem',\n boxShadow: '0 0 0 1px rgba(0, 0, 0, 0.05), 0px 10px 20px rgba(0, 0, 0, 0.1)',\n color: 'rgba(0, 0, 0, 0.8)',\n fontSize: '0.9rem',\n overflow: 'hidden',\n padding: '0.2rem',\n position: 'relative'\n },\n item: {\n background: 'transparent',\n border: '1px solid transparent',\n borderRadius: '0.4rem',\n display: 'block',\n margin: 0,\n padding: '0.2rem 0.4rem',\n textAlign: 'left',\n width: '100%',\n '&.selected': {\n borderColor: '#000'\n }\n }\n}));\n\nexport default forwardRef((props, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const classes = useStyles();\n\n const selectItem = index => {\n const item = props.items[index];\n\n if (item) {\n props.command({ id: item });\n }\n };\n\n const upHandler = () => {\n setSelectedIndex((selectedIndex + props.items.length - 1) % props.items.length);\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % props.items.length);\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => setSelectedIndex(0), [props.items]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }) => {\n if (event.key === 'ArrowUp') {\n upHandler();\n return true;\n }\n\n if (event.key === 'ArrowDown') {\n downHandler();\n return true;\n }\n\n if (event.key === 'Enter') {\n enterHandler();\n return true;\n }\n\n return false;\n }\n }));\n\n return (\n
\n {props.items.length ? (\n props.items.map((item, index) => (\n selectItem(index)}\n >\n {item.label}\n \n ))\n ) : (\n
Aucun résultat
\n )}\n
\n );\n});\n","import { ReactRenderer } from '@tiptap/react';\nimport tippy from 'tippy.js';\nimport MentionsList from './MentionsList';\n\nconst renderMentions = () => {\n let component;\n let popup;\n\n return {\n onStart: props => {\n component = new ReactRenderer(MentionsList, {\n props,\n editor: props.editor\n });\n\n popup = tippy('body', {\n getReferenceClientRect: props.clientRect,\n appendTo: () => document.body,\n content: component.element,\n showOnCreate: true,\n interactive: true,\n trigger: 'manual',\n placement: 'bottom-start'\n });\n },\n\n onUpdate(props) {\n component.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === 'Escape') {\n popup[0].hide();\n\n return true;\n }\n\n return component.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n component.destroy();\n }\n };\n};\n\nexport default renderMentions;\n","import { useMemo } from 'react';\nimport { useQuery } from 'react-admin';\nimport renderMentions from './renderMentions';\nimport { useDataModel } from '@semapps/semantic-data-provider';\n\nconst useMentions = userResource => {\n const userDataModel = useDataModel(userResource);\n\n // The \"enabled\" option doesn't work with useQueryWithStore\n const { data } = useQuery(\n {\n type: 'getList',\n resource: userResource,\n payload: {\n filter: {\n _predicates: [userDataModel?.fieldsMapping?.title],\n blankNodes: []\n }\n }\n },\n {\n enabled: !!userDataModel?.fieldsMapping?.title\n }\n );\n\n const availableMentions = useMemo(() => {\n if (data) {\n return data.map(item => ({ id: item.id, label: item[userDataModel?.fieldsMapping?.title] }));\n }\n }, [data]);\n\n const items = useMemo(() => {\n if (availableMentions) {\n return ({ query }) => {\n return availableMentions.filter(({ label }) => label.toLowerCase().startsWith(query.toLowerCase())).slice(0, 5);\n };\n }\n }, [availableMentions]);\n\n return {\n items,\n render: renderMentions\n };\n};\n\nexport default useMentions;\n"],"names":["ACTIVITY_TYPES","ACCEPT","ADD","ANNOUNCE","ARRIVE","BLOCK","CREATE","DELETE","DISLIKE","FLAG","FOLLOW","IGNORE","INVITE","JOIN","LEAVE","LIKE","LISTEN","MOVE","OFFER","QUESTION","REJECT","READ","REMOVE","TENTATIVE_REJECT","TENTATIVE_ACCEPT","TRAVAL","UNDO","UPDATE","VIEW","ACTOR_TYPES","APPLICATION","GROUP","ORGANIZATION","PERSON","SERVICE","OBJECT_TYPES","ARTICLE","AUDIO","DOCUMENT","EVENT","IMAGE","NOTE","PAGE","PLACE","PROFILE","RELATIONSHIP","TOMBSTONE","VIDEO","PUBLIC_URI","useOutbox","identity","useGetIdentity","outboxUrl","useMemo","_identity$webIdData","webIdData","outbox","sparqlEndpoint","_identity$webIdData2","_identity$webIdData2$","endpoints","id","post","useCallback","_ref","_asyncToGenerator","_regeneratorRuntime","mark","activity","token","_yield$fetchUtils$fet","headers","wrap","_context","prev","next","localStorage","getItem","fetchUtils","fetchJson","method","body","JSON","stringify","_objectSpread","@context","Headers","Content-Type","Authorization","sent","abrupt","get","stop","_callee","_x","apply","this","arguments","fetch","_callee2","blankNodesQuery","query","_yield$fetchUtils$fet2","json","_context2","buildBlankNodesQuery","concat","construct","where","Accept","undefined","url","owner","CustomMention","Mention","extend","renderHTML","node","HTMLAttributes","mergeAttributes","options","attrs","label","addAttributes","default","parseHTML","element","getAttribute","attributes","data-mention-label","data-mention-id","useStyles","makeStyles","theme","form","marginTop","container","paddingLeft","position","avatar","top","left","bottom","width","height","editorContent","& > div","backgroundColor","padding","borderWidth","borderRadius","borderBottom","minHeight","outline","& > div > p","marginBottom","fontFamily","typography","body1","marginBlockStart","marginBlockEnd","button","PostCommentForm","context","helperText","mentions","userResource","addItem","removeItem","record","useRecordContext","userDataModel","useDataModel","classes","notify","useNotify","_useState2","_slicedToArray","useState","expanded","setExpanded","_useState4","openAuth","setOpenAuth","onSubmit","_ref3","values","_ref2","reset","document","mentionedUsersUris","tempId","note","DOMParser","parseFromString","comment","Array","from","getElementsByClassName","forEach","userUri","value","userLabel","link","createElement","setAttribute","URL","window","location","href","origin","encodeURIComponent","textContent","parentNode","replaceChild","push","innerHTML","Date","now","type","attributedTo","content","inReplyTo","published","toISOString","to","t0","message","_x2","openAuthIfDisconnected","items","React","Fragment","Form","subscription","submitting","pristine","render","_ref4","_userDataModel$fields","handleSubmit","commentElement","getElementById","className","Box","onClick","Avatar","src","fieldsMapping","image","RichTextInput","source","toolbar","fullWidth","editorOptions","DefaultEditorOptions","onFocus","extensions","_toConsumableArray","configure","class","suggestion","editable","Button","size","variant","color","endIcon","SendIcon","disabled","AuthDialog","open","onClose","text","paddingTop","paddingBottom","fontWeight","& p","loading","zIndex","opacity","right","display","alignItems","justifyContent","CommentsList","comments","sort","a","b","map","_userDataModel$fields2","ReferenceField","reference","linkType","AvatarWithLabelField","Typography","TextField","title","DateField","showTime","RichTextField","CircularProgress","thickness","useCollection","predicateOrUrl","setItems","setLoading","_useState6","loaded","setLoaded","_useState8","error","setError","collectionUrl","startsWith","then","orderedItems","useEffect","item","oldItems","itemId","filter","refetch","CommentsField","_useCollection","replies","Error","defaultProps","addLabel","CollectionList","resource","children","rest","_objectWithoutProperties","_excluded","Children","count","_useGetOne","useGetOne","enabled","collection","data","style","LinearProgress","ReferenceArrayField","_extends","ReferenceCollectionField","useInbox","inboxUrl","inbox","filters","filtersWhereQuery","console","log","Object","keys","predicate","object","useWebfinger","_id$split","_id$split2","username","host","protocol","webfingerUrl","split","includes","links","find","l","background","boxShadow","fontSize","overflow","border","margin","textAlign","&.selected","borderColor","MentionsList","forwardRef","props","ref","selectedIndex","setSelectedIndex","selectItem","index","command","useImperativeHandle","onKeyDown","event","key","length","renderMentions","component","popup","onStart","ReactRenderer","editor","tippy","getReferenceClientRect","clientRect","appendTo","showOnCreate","interactive","trigger","placement","onUpdate","updateProps","setProps","_component$ref","hide","onExit","destroy","useMentions","useQuery","payload","_predicates","blankNodes","availableMentions","_userDataModel$fields3","toLowerCase","slice"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.es.js","sources":["../src/constants.js","../src/hooks/useOutbox.js","../src/components/CommentsField/CustomMention.js","../src/components/CommentsField/PostCommentForm.js","../src/components/CommentsField/CommentsList.js","../src/hooks/useCollection.js","../src/components/CommentsField/CommentsField.js","../src/components/CollectionList.js","../src/components/ReferenceCollectionField.js","../../../node_modules/@rdfjs/data-model/lib/BlankNode.js","../../../node_modules/@rdfjs/data-model/lib/DefaultGraph.js","../../../node_modules/@rdfjs/data-model/lib/fromTerm.js","../../../node_modules/@rdfjs/data-model/lib/NamedNode.js","../../../node_modules/@rdfjs/data-model/lib/Literal.js","../../../node_modules/@rdfjs/data-model/lib/Quad.js","../../../node_modules/@rdfjs/data-model/lib/Variable.js","../../../node_modules/@rdfjs/data-model/lib/DataFactory.js","../../../node_modules/@rdfjs/data-model/index.js","../src/hooks/useInbox.js","../src/hooks/useWebfinger.js","../src/hooks/useMentions/MentionsList.js","../src/hooks/useMentions/renderMentions.js","../src/hooks/useMentions/useMentions.js"],"sourcesContent":["export const ACTIVITY_TYPES = {\n ACCEPT: 'Accept',\n ADD: 'Add',\n ANNOUNCE: 'Announce',\n ARRIVE: 'Arrive',\n BLOCK: 'Block',\n CREATE: 'Create',\n DELETE: 'Delete',\n DISLIKE: 'Dislike',\n FLAG: 'Flag',\n FOLLOW: 'Follow',\n IGNORE: 'Ignore',\n INVITE: 'Invite',\n JOIN: 'Join',\n LEAVE: 'Leave',\n LIKE: 'Like',\n LISTEN: 'Listen',\n MOVE: 'Move',\n OFFER: 'Offer',\n QUESTION: 'Question',\n REJECT: 'Reject',\n READ: 'Read',\n REMOVE: 'Remove',\n TENTATIVE_REJECT: 'TentativeReject',\n TENTATIVE_ACCEPT: 'TentativeAccept',\n TRAVAL: 'Travel',\n UNDO: 'Undo',\n UPDATE: 'Update',\n VIEW: 'View'\n};\n\nexport const ACTOR_TYPES = {\n APPLICATION: 'Application',\n GROUP: 'Group',\n ORGANIZATION: 'Organization',\n PERSON: 'Person',\n SERVICE: 'Service'\n};\n\nexport const OBJECT_TYPES = {\n ARTICLE: 'Article',\n AUDIO: 'Audio',\n DOCUMENT: 'Document',\n EVENT: 'Event',\n IMAGE: 'Image',\n NOTE: 'Note',\n PAGE: 'Page',\n PLACE: 'Place',\n PROFILE: 'Profile',\n RELATIONSHIP: 'Relationship',\n TOMBSTONE: 'Tombstone',\n VIDEO: 'Video'\n};\n\nexport const PUBLIC_URI = 'https://www.w3.org/ns/activitystreams#Public';\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildBlankNodesQuery } from '@semapps/semantic-data-provider';\n\nconst useOutbox = () => {\n const { identity } = useGetIdentity();\n\n const outboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.outbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'] || (identity?.id + '/sparql');\n }\n }, [identity]);\n\n // Post an activity to the logged user's outbox and return its URI\n const post = useCallback(\n async activity => {\n const token = localStorage.getItem('token');\n const { headers } = await fetchUtils.fetchJson(outboxUrl, {\n method: 'POST',\n body: JSON.stringify({\n '@context': 'https://www.w3.org/ns/activitystreams',\n ...activity\n }),\n headers: new Headers({\n 'Content-Type': 'application/ld+json',\n Authorization: `Bearer ${token}`\n })\n });\n return headers.get('Location');\n },\n [outboxUrl]\n );\n\n const fetch = useCallback(async () => {\n if (!sparqlEndpoint || !outboxUrl) return;\n\n const token = localStorage.getItem('token');\n const blankNodesQuery = buildBlankNodesQuery(['as:object']);\n\n const query = `\n PREFIX as: \n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.construct}\n }\n WHERE {\n <${outboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n }, [sparqlEndpoint, outboxUrl]);\n\n return { post, fetch, url: outboxUrl, owner: identity?.id };\n};\n\nexport default useOutbox;\n","import { mergeAttributes } from '@tiptap/core';\nimport Mention from '@tiptap/extension-mention';\n\n// Fix a bug in the current version of the mention extension\n// (The { id, label } object is located inside the id property)\n// See https://github.com/ueberdosis/tiptap/pull/1322\nconst CustomMention = Mention.extend({\n renderHTML({ node, HTMLAttributes }) {\n return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), `@${node.attrs.id.label}`];\n },\n addAttributes() {\n return {\n label: {\n default: null,\n parseHTML: element => {\n return {\n label: element.getAttribute('data-mention-label')\n };\n },\n renderHTML: attributes => {\n if (!attributes.id.label) {\n return {};\n }\n return {\n 'data-mention-label': attributes.id.label\n };\n }\n },\n id: {\n default: null,\n parseHTML: element => {\n return {\n id: element.getAttribute('data-mention-id')\n };\n },\n renderHTML: attributes => {\n if (!attributes.id.id) {\n return {};\n }\n return {\n 'data-mention-id': attributes.id.id\n };\n }\n }\n };\n }\n});\n\nexport default CustomMention;\n","import React, { useState, useCallback } from 'react';\nimport { useGetIdentity, useNotify, useRecordContext } from 'react-admin';\nimport { RichTextInput, DefaultEditorOptions } from 'ra-richtext-tiptap';\nimport { Form } from 'react-final-form';\nimport { Button, Box, makeStyles, Avatar } from '@material-ui/core';\nimport SendIcon from '@material-ui/icons/Send';\nimport { useDataModel } from '@semapps/semantic-data-provider';\nimport { AuthDialog } from '@semapps/auth-provider';\nimport { OBJECT_TYPES, PUBLIC_URI } from '../../constants';\nimport useOutbox from '../../hooks/useOutbox';\nimport CustomMention from './CustomMention';\n\nconst useStyles = makeStyles(theme => ({\n form: {\n marginTop: -12 // Negative margin to keep the form close to the label\n },\n container: {\n paddingLeft: 80,\n position: 'relative'\n },\n avatar: {\n position: 'absolute',\n top: 16,\n left: 0,\n bottom: 0,\n width: 64,\n height: 64\n },\n editorContent: {\n '& > div': {\n backgroundColor: 'rgba(0, 0, 0, 0.09)',\n padding: '2px 12px',\n borderWidth: '0px !important',\n borderRadius: 0,\n borderBottom: '1px solid #FFF',\n minHeight: 60,\n outline: 'unset !important'\n },\n '& > div > p': {\n marginTop: 12,\n marginBottom: 12,\n fontFamily: theme.typography.body1.fontFamily,\n marginBlockStart: '0.5em',\n marginBlockEnd: '0.5em'\n },\n marginBottom: -19 // To hide helper text block\n },\n button: {\n marginBottom: 15\n }\n}));\n\nconst PostCommentForm = ({ context, helperText, mentions, userResource, addItem, removeItem }) => {\n const record = useRecordContext();\n const { identity } = useGetIdentity();\n const userDataModel = useDataModel(userResource);\n const classes = useStyles();\n const notify = useNotify();\n const outbox = useOutbox();\n const [expanded, setExpanded] = useState(false);\n const [openAuth, setOpenAuth] = useState(false);\n\n const onSubmit = useCallback(\n async (values, { reset }) => {\n const document = new DOMParser().parseFromString(values.comment, 'text/html');\n const mentions = Array.from(document.body.getElementsByClassName('mention'));\n let mentionedUsersUris = [];\n\n mentions.forEach(node => {\n const userUri = node.attributes['data-mention-id'].value;\n const userLabel = node.attributes['data-mention-label'].value;\n const link = document.createElement('a');\n link.setAttribute(\n 'href',\n new URL(window.location.href).origin + '/' + userResource + '/' + encodeURIComponent(userUri) + '/show'\n );\n link.textContent = '@' + userLabel;\n node.parentNode.replaceChild(link, node);\n mentionedUsersUris.push(userUri);\n });\n\n if (document.body.innerHTML === 'undefined') {\n notify('Votre commentaire est vide', 'error');\n } else {\n const tempId = Date.now();\n\n const note = {\n type: OBJECT_TYPES.NOTE,\n attributedTo: outbox.owner,\n content: document.body.innerHTML,\n inReplyTo: record[context],\n published: new Date().toISOString()\n };\n\n try {\n addItem({ id: tempId, ...note });\n reset();\n setExpanded(false);\n await outbox.post({ ...note, to: [...mentionedUsersUris, PUBLIC_URI] });\n notify('Commentaire posté avec succès', 'success');\n } catch (e) {\n removeItem(tempId);\n notify(e.message, 'error');\n }\n }\n },\n [outbox, notify, setExpanded, addItem, removeItem]\n );\n\n const openAuthIfDisconnected = useCallback(() => {\n if (!identity.id) {\n setOpenAuth(true);\n }\n }, [identity, setOpenAuth]);\n\n // Don't init the editor options until mentions and identity are loaded, as they can only be initialized once\n if ((mentions && !mentions.items) || !identity) return null;\n\n return (\n <>\n {\n // Hack to clear comment input when form is reset\n // TODO When we update to React-Admin 4, check if the new RichTextInput solves this bug\n if (pristine) {\n const commentElement = document.getElementById('comment');\n if (commentElement) commentElement.innerHTML = '';\n }\n return (\n
\n \n \n \n {expanded && (\n }\n disabled={submitting}\n className={classes.button}\n >\n Envoyer\n \n )}\n \n
\n );\n }}\n />\n setOpenAuth(false)}\n message=\"Pour poster un commentaire, vous devez être connecté.\"\n />\n \n );\n};\n\nexport default PostCommentForm;\n","import React from 'react';\nimport { TextField, RichTextField, DateField } from 'react-admin';\nimport { Box, Typography, CircularProgress, makeStyles } from '@material-ui/core';\nimport { useDataModel } from '@semapps/semantic-data-provider';\nimport { AvatarWithLabelField, ReferenceField } from '@semapps/field-components';\n\nconst useStyles = makeStyles(() => ({\n container: {\n paddingLeft: 80,\n marginTop: 8,\n minHeight: 80,\n position: 'relative'\n },\n avatar: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n width: 64,\n height: 64\n },\n text: {\n paddingTop: 2,\n paddingBottom: 8\n },\n label: {\n fontWeight: 'bold'\n },\n content: {\n '& p': {\n marginBlockStart: '0.5em',\n marginBlockEnd: '0.5em'\n }\n },\n loading: {\n zIndex: 1000,\n backgroundColor: 'white',\n opacity: 0.5,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: 200,\n marginTop: 5\n }\n}));\n\nconst CommentsList = ({ comments, userResource, loading }) => {\n const classes = useStyles();\n const userDataModel = useDataModel(userResource);\n return (\n \n {comments &&\n comments\n .sort((a, b) => new Date(b.published) - new Date(a.published))\n .map(comment => (\n \n \n \n \n \n \n \n \n \n \n \n  • \n \n \n \n \n \n ))}\n {loading && (\n \n \n \n \n \n )}\n \n );\n};\n\nexport default CommentsList;\n","import { useCallback, useMemo, useState, useEffect } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\n\nconst useCollection = predicateOrUrl => {\n const { identity } = useGetIdentity();\n const [items, setItems] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState(false);\n\n const collectionUrl = useMemo(() => {\n if (predicateOrUrl) {\n if (predicateOrUrl.startsWith('http')) {\n return predicateOrUrl;\n } else if (identity?.webIdData) {\n return identity?.webIdData?.[predicateOrUrl];\n }\n }\n }, [identity, predicateOrUrl]);\n\n const fetch = useCallback(async () => {\n if (!collectionUrl) return;\n\n setLoading(true);\n const token = localStorage.getItem('token');\n const headers = new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n });\n\n fetchUtils\n .fetchJson(collectionUrl, { headers })\n .then(({ json }) => {\n if (json && json.items) {\n setItems(json.items);\n } else if (json && json.orderedItems) {\n setItems(json.orderedItems);\n } else {\n setItems([]);\n }\n setError(false);\n setLoaded(true);\n setLoading(false);\n })\n .catch(() => {\n setError(true);\n setLoaded(true);\n setLoading(false);\n });\n }, [setItems, setLoaded, setLoading, setError, collectionUrl]);\n\n useEffect(() => {\n if (!loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, loading, loaded, error]);\n\n const addItem = useCallback(\n item => {\n setItems(oldItems => [...oldItems, item]);\n },\n [setItems]\n );\n\n const removeItem = useCallback(\n itemId => {\n setItems(oldItems => oldItems.filter(item => (typeof item === 'string' ? item !== itemId : item.id !== itemId)));\n },\n [setItems]\n );\n\n return { items, loading, loaded, error, refetch: fetch, addItem, removeItem, url: collectionUrl };\n};\n\nexport default useCollection;\n","import React from 'react';\nimport { useRecordContext } from 'react-admin';\nimport PostCommentForm from './PostCommentForm';\nimport CommentsList from './CommentsList';\nimport useCollection from '../../hooks/useCollection';\n\nconst CommentsField = ({ source, context, helperText, userResource, mentions }) => {\n const record = useRecordContext();\n const { items: comments, loading, addItem, removeItem } = useCollection(record.replies);\n if (!userResource) throw new Error('No userResource defined for CommentsField');\n return (\n <>\n \n \n \n );\n};\n\nCommentsField.defaultProps = {\n addLabel: true,\n label: 'Commentaires',\n source: 'id', // Ensure the field is always displayed\n context: 'id'\n};\n\nexport default CommentsField;\n","import React from 'react';\nimport { useGetOne, LinearProgress } from 'react-admin';\nimport { ReferenceArrayField } from '@semapps/field-components';\n\nconst CollectionList = ({ collectionUrl, resource, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error(' only accepts a single child');\n }\n\n // TODO use a simple fetch call, as the resource is not good and it is useless\n const { data: collection, loading } = useGetOne(resource, collectionUrl, { enabled: !!collectionUrl });\n\n if (loading) {\n return (\n
\n \n
\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport default CollectionList;\n","import React from 'react';\nimport CollectionList from './CollectionList';\n\nconst ReferenceCollectionField = ({ source, record, reference, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error(' only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n \n {children}\n \n );\n};\n\nReferenceCollectionField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceCollectionField;\n","class BlankNode {\n constructor (id) {\n this.value = id || ('b' + (++BlankNode.nextId))\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nBlankNode.prototype.termType = 'BlankNode'\n\nBlankNode.nextId = 0\n\nmodule.exports = BlankNode\n","class DefaultGraph {\n equals (other) {\n return !!other && other.termType === this.termType\n }\n}\n\nDefaultGraph.prototype.termType = 'DefaultGraph'\nDefaultGraph.prototype.value = ''\n\nmodule.exports = DefaultGraph\n","function fromTerm (original) {\n if (!original) {\n return null\n }\n\n if (original.termType === 'BlankNode') {\n return this.blankNode(original.value)\n }\n\n if (original.termType === 'DefaultGraph') {\n return this.defaultGraph()\n }\n\n if (original.termType === 'Literal') {\n return this.literal(original.value, original.language || this.namedNode(original.datatype.value))\n }\n\n if (original.termType === 'NamedNode') {\n return this.namedNode(original.value)\n }\n\n if (original.termType === 'Quad') {\n const subject = this.fromTerm(original.subject)\n const predicate = this.fromTerm(original.predicate)\n const object = this.fromTerm(original.object)\n const graph = this.fromTerm(original.graph)\n\n return this.quad(subject, predicate, object, graph)\n }\n\n if (original.termType === 'Variable') {\n return this.variable(original.value)\n }\n\n throw new Error(`unknown termType ${original.termType}`)\n}\n\nmodule.exports = fromTerm\n","class NamedNode {\n constructor (iri) {\n this.value = iri\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nNamedNode.prototype.termType = 'NamedNode'\n\nmodule.exports = NamedNode\n","const NamedNode = require('./NamedNode.js')\n\nclass Literal {\n constructor (value, language, datatype) {\n this.value = value\n this.datatype = Literal.stringDatatype\n this.language = ''\n\n if (language) {\n this.language = language\n this.datatype = Literal.langStringDatatype\n } else if (datatype) {\n this.datatype = datatype\n }\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value &&\n other.language === this.language && other.datatype.equals(this.datatype)\n }\n}\n\nLiteral.prototype.termType = 'Literal'\n\nLiteral.langStringDatatype = new NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString')\nLiteral.stringDatatype = new NamedNode('http://www.w3.org/2001/XMLSchema#string')\n\nmodule.exports = Literal\n","const DefaultGraph = require('./DefaultGraph.js')\n\nclass Quad {\n constructor (subject, predicate, object, graph) {\n this.subject = subject\n this.predicate = predicate\n this.object = object\n\n if (graph) {\n this.graph = graph\n } else {\n this.graph = new DefaultGraph()\n }\n }\n\n equals (other) {\n // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n return !!other && (other.termType === 'Quad' || !other.termType) &&\n other.subject.equals(this.subject) && other.predicate.equals(this.predicate) &&\n other.object.equals(this.object) && other.graph.equals(this.graph)\n }\n}\n\nQuad.prototype.termType = 'Quad'\nQuad.prototype.value = ''\n\nmodule.exports = Quad\n","class Variable {\n constructor (name) {\n this.value = name\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nVariable.prototype.termType = 'Variable'\n\nmodule.exports = Variable\n","const BlankNode = require('./BlankNode.js')\nconst DefaultGraph = require('./DefaultGraph.js')\nconst fromTermRaw = require('./fromTerm.js')\nconst Literal = require('./Literal.js')\nconst NamedNode = require('./NamedNode.js')\nconst Quad = require('./Quad.js')\nconst Variable = require('./Variable.js')\n\nfunction namedNode (value) {\n return new NamedNode(value)\n}\n\nfunction blankNode (value) {\n return new BlankNode(value)\n}\n\nfunction literal (value, languageOrDatatype) {\n if (typeof languageOrDatatype === 'string') {\n if (languageOrDatatype.indexOf(':') === -1) {\n return new Literal(value, languageOrDatatype)\n }\n\n return new Literal(value, null, DataFactory.namedNode(languageOrDatatype))\n }\n\n return new Literal(value, null, languageOrDatatype)\n}\n\nfunction variable (value) {\n return new Variable(value)\n}\n\nfunction defaultGraph () {\n return DataFactory.defaultGraphInstance\n}\n\nfunction triple (subject, predicate, object) {\n return DataFactory.quad(subject, predicate, object)\n}\n\nfunction quad (subject, predicate, object, graph) {\n return new Quad(subject, predicate, object, graph || DataFactory.defaultGraphInstance)\n}\n\nfunction fromTerm (original) {\n return fromTermRaw.call(DataFactory, original)\n}\n\nfunction fromQuad (original) {\n return fromTermRaw.call(DataFactory, original)\n}\n\nconst DataFactory = {\n namedNode,\n blankNode,\n literal,\n variable,\n defaultGraph,\n triple,\n quad,\n fromTerm,\n fromQuad,\n defaultGraphInstance: new DefaultGraph()\n}\n\nmodule.exports = DataFactory\n","const DataFactory = require('./lib/DataFactory.js')\n\nmodule.exports = DataFactory\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport DataFactory from '@rdfjs/data-model';\nimport { buildBlankNodesQuery } from '@semapps/semantic-data-provider';\nconst { namedNode, triple, variable } = DataFactory;\nconst SparqlGenerator = require('sparqljs').Generator;\nconst generator = new SparqlGenerator({\n /* prefixes, baseIRI, factory, sparqlStar */\n});\n\nconst useInbox = () => {\n const { identity } = useGetIdentity();\n\n const inboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.inbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'] || (identity?.id + '/sparql');\n }\n }, [identity]);\n\n const fetch = useCallback(\n async ({ filters }) => {\n if (!sparqlEndpoint || !inboxUrl) return;\n\n const baseTriples = [\n triple(namedNode(inboxUrl), namedNode('https://www.w3.org/ns/activitystreams#items'), variable('s1')),\n triple(variable('s1'), variable('p1'), variable('o1'))\n ];\n\n const baseQuery = {\n construct: baseTriples,\n where: [\n ...baseTriples\n ],\n }\n\n const token = localStorage.getItem('token');\n const asOntology = { prefix: \"as\", url: \"https://www.w3.org/ns/activitystreams#\" };\n const blankNodesQuery = buildBlankNodesQuery(['as:object'], baseQuery, [asOntology]);\n\n const sparqlJsParams = {\n type: 'query',\n queryType: 'CONSTRUCT',\n template: blankNodesQuery.construct,\n where: blankNodesQuery.where,\n prefixes: {\n as: 'https://www.w3.org/ns/activitystreams#'\n }\n };\n\n // let filtersWhereQuery = '';\n // if (filters) {\n // Object.keys(filters).forEach(predicate => {\n // if (filters[predicate]) {\n // const object = filters[predicate].startsWith('http') ? `<${filters[predicate]}>` : filters[predicate];\n // filtersWhereQuery += `?s1 ${predicate} ${object} .`;\n // }\n // });\n // }\n //\n // const query = `\n // PREFIX as: \n // CONSTRUCT {\n // ?s1 ?p1 ?o1 .\n // ${blankNodesQuery.construct}\n // }\n // WHERE {\n // <${inboxUrl}> as:items ?s1 .\n // ?s1 ?p1 ?o1 .\n // FILTER( (isIRI(?s1)) ) .\n // ${filtersWhereQuery}\n // ${blankNodesQuery.where}\n // }\n // `;\n\n const query = generator.stringify(sparqlJsParams);\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: token ? `Bearer ${token}` : undefined\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n },\n [sparqlEndpoint, inboxUrl]\n );\n\n return { fetch, url: inboxUrl, owner: identity?.id };\n};\n\nexport default useInbox;\n","import { useCallback } from 'react';\nimport { fetchUtils } from 'react-admin';\n\nconst useWebfinger = () => {\n // Post an activity to the logged user's outbox and return its URI\n const fetch = useCallback(async id => {\n // eslint-disable-next-line\n const [_, username, host] = id.split('@');\n if (host) {\n const protocol = host.includes(':') ? 'http' : 'https'; // If the host has a port, we are most likely on localhost\n const webfingerUrl = `${protocol}://${host}/.well-known/webfinger?resource=acct:${username}@${host}`;\n\n try {\n const { json } = await fetchUtils.fetchJson(webfingerUrl);\n\n const link = json.links.find(l => l.type === 'application/activity+json');\n\n return link ? link.href : null;\n } catch (e) {\n return null;\n }\n } else {\n return null;\n }\n }, []);\n\n return { fetch };\n};\n\nexport default useWebfinger;\n","import React, { useState, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n items: {\n background: '#fff',\n borderRadius: '0.5rem',\n boxShadow: '0 0 0 1px rgba(0, 0, 0, 0.05), 0px 10px 20px rgba(0, 0, 0, 0.1)',\n color: 'rgba(0, 0, 0, 0.8)',\n fontSize: '0.9rem',\n overflow: 'hidden',\n padding: '0.2rem',\n position: 'relative'\n },\n item: {\n background: 'transparent',\n border: '1px solid transparent',\n borderRadius: '0.4rem',\n display: 'block',\n margin: 0,\n padding: '0.2rem 0.4rem',\n textAlign: 'left',\n width: '100%',\n '&.selected': {\n borderColor: '#000'\n }\n }\n}));\n\nexport default forwardRef((props, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const classes = useStyles();\n\n const selectItem = index => {\n const item = props.items[index];\n\n if (item) {\n props.command({ id: item });\n }\n };\n\n const upHandler = () => {\n setSelectedIndex((selectedIndex + props.items.length - 1) % props.items.length);\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % props.items.length);\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => setSelectedIndex(0), [props.items]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }) => {\n if (event.key === 'ArrowUp') {\n upHandler();\n return true;\n }\n\n if (event.key === 'ArrowDown') {\n downHandler();\n return true;\n }\n\n if (event.key === 'Enter') {\n enterHandler();\n return true;\n }\n\n return false;\n }\n }));\n\n return (\n
\n {props.items.length ? (\n props.items.map((item, index) => (\n selectItem(index)}\n >\n {item.label}\n \n ))\n ) : (\n
Aucun résultat
\n )}\n
\n );\n});\n","import { ReactRenderer } from '@tiptap/react';\nimport tippy from 'tippy.js';\nimport MentionsList from './MentionsList';\n\nconst renderMentions = () => {\n let component;\n let popup;\n\n return {\n onStart: props => {\n component = new ReactRenderer(MentionsList, {\n props,\n editor: props.editor\n });\n\n popup = tippy('body', {\n getReferenceClientRect: props.clientRect,\n appendTo: () => document.body,\n content: component.element,\n showOnCreate: true,\n interactive: true,\n trigger: 'manual',\n placement: 'bottom-start'\n });\n },\n\n onUpdate(props) {\n component.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === 'Escape') {\n popup[0].hide();\n\n return true;\n }\n\n return component.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n component.destroy();\n }\n };\n};\n\nexport default renderMentions;\n","import { useMemo } from 'react';\nimport { useQuery } from 'react-admin';\nimport renderMentions from './renderMentions';\nimport { useDataModel } from '@semapps/semantic-data-provider';\n\nconst useMentions = userResource => {\n const userDataModel = useDataModel(userResource);\n\n // The \"enabled\" option doesn't work with useQueryWithStore\n const { data } = useQuery(\n {\n type: 'getList',\n resource: userResource,\n payload: {\n filter: {\n _predicates: [userDataModel?.fieldsMapping?.title],\n blankNodes: []\n }\n }\n },\n {\n enabled: !!userDataModel?.fieldsMapping?.title\n }\n );\n\n const availableMentions = useMemo(() => {\n if (data) {\n return data.map(item => ({ id: item.id, label: item[userDataModel?.fieldsMapping?.title] }));\n }\n }, [data]);\n\n const items = useMemo(() => {\n if (availableMentions) {\n return ({ query }) => {\n return availableMentions.filter(({ label }) => label.toLowerCase().startsWith(query.toLowerCase())).slice(0, 5);\n };\n }\n }, [availableMentions]);\n\n return {\n items,\n render: renderMentions\n };\n};\n\nexport default useMentions;\n"],"names":["ACTIVITY_TYPES","ACCEPT","ADD","ANNOUNCE","ARRIVE","BLOCK","CREATE","DELETE","DISLIKE","FLAG","FOLLOW","IGNORE","INVITE","JOIN","LEAVE","LIKE","LISTEN","MOVE","OFFER","QUESTION","REJECT","READ","REMOVE","TENTATIVE_REJECT","TENTATIVE_ACCEPT","TRAVAL","UNDO","UPDATE","VIEW","ACTOR_TYPES","APPLICATION","GROUP","ORGANIZATION","PERSON","SERVICE","OBJECT_TYPES","ARTICLE","AUDIO","DOCUMENT","EVENT","IMAGE","NOTE","PAGE","PLACE","PROFILE","RELATIONSHIP","TOMBSTONE","VIDEO","PUBLIC_URI","useOutbox","identity","useGetIdentity","outboxUrl","useMemo","_identity$webIdData","webIdData","outbox","sparqlEndpoint","_identity$webIdData2","_identity$webIdData2$","endpoints","id","post","useCallback","_ref","_asyncToGenerator","_regeneratorRuntime","mark","activity","token","_yield$fetchUtils$fet","headers","wrap","_context","prev","next","localStorage","getItem","fetchUtils","fetchJson","method","body","JSON","stringify","_objectSpread","@context","Headers","Content-Type","Authorization","sent","abrupt","get","stop","_callee","_x","apply","this","arguments","fetch","_callee2","blankNodesQuery","query","_yield$fetchUtils$fet2","json","_context2","buildBlankNodesQuery","concat","construct","where","Accept","undefined","url","owner","CustomMention","Mention","extend","renderHTML","node","HTMLAttributes","mergeAttributes","options","attrs","label","addAttributes","default","parseHTML","element","getAttribute","attributes","data-mention-label","data-mention-id","useStyles","makeStyles","theme","form","marginTop","container","paddingLeft","position","avatar","top","left","bottom","width","height","editorContent","& > div","backgroundColor","padding","borderWidth","borderRadius","borderBottom","minHeight","outline","& > div > p","marginBottom","fontFamily","typography","body1","marginBlockStart","marginBlockEnd","button","PostCommentForm","context","helperText","mentions","userResource","addItem","removeItem","record","useRecordContext","userDataModel","useDataModel","classes","notify","useNotify","_useState2","_slicedToArray","useState","expanded","setExpanded","_useState4","openAuth","setOpenAuth","onSubmit","_ref3","values","_ref2","reset","document","mentionedUsersUris","tempId","note","DOMParser","parseFromString","comment","Array","from","getElementsByClassName","forEach","userUri","value","userLabel","link","createElement","setAttribute","URL","window","location","href","origin","encodeURIComponent","textContent","parentNode","replaceChild","push","innerHTML","Date","now","type","attributedTo","content","inReplyTo","published","toISOString","to","t0","message","_x2","openAuthIfDisconnected","items","React","Fragment","Form","subscription","submitting","pristine","render","_ref4","_userDataModel$fields","handleSubmit","commentElement","getElementById","className","Box","onClick","Avatar","src","fieldsMapping","image","RichTextInput","source","toolbar","fullWidth","editorOptions","DefaultEditorOptions","onFocus","extensions","_toConsumableArray","configure","class","suggestion","editable","Button","size","variant","color","endIcon","SendIcon","disabled","AuthDialog","open","onClose","text","paddingTop","paddingBottom","fontWeight","& p","loading","zIndex","opacity","right","display","alignItems","justifyContent","CommentsList","comments","sort","a","b","map","_userDataModel$fields2","ReferenceField","reference","linkType","AvatarWithLabelField","Typography","TextField","title","DateField","showTime","RichTextField","CircularProgress","thickness","useCollection","predicateOrUrl","setItems","setLoading","_useState6","loaded","setLoaded","_useState8","error","setError","collectionUrl","startsWith","then","orderedItems","useEffect","item","oldItems","itemId","filter","refetch","CommentsField","_useCollection","replies","Error","defaultProps","addLabel","CollectionList","resource","children","rest","_objectWithoutProperties","_excluded","Children","count","_useGetOne","useGetOne","enabled","collection","data","style","LinearProgress","ReferenceArrayField","_extends","ReferenceCollectionField","BlankNode","constructor","nextId","equals","other","termType","prototype","module","DefaultGraph","original","blankNode","defaultGraph","literal","language","namedNode","datatype","subject","fromTerm","predicate","object","graph","quad","variable","NamedNode","iri","Literal","stringDatatype","langStringDatatype","Quad","Variable","name","DataFactory","languageOrDatatype","indexOf","defaultGraphInstance","fromTermRaw","call","fromQuad","triple","generator","SparqlGenerator","require","Generator","useInbox","inboxUrl","inbox","baseTriples","baseQuery","sparqlJsParams","filters","prefix","queryType","template","prefixes","as","useWebfinger","_id$split","_id$split2","username","host","protocol","webfingerUrl","split","includes","links","find","l","background","boxShadow","fontSize","overflow","border","margin","textAlign","&.selected","borderColor","MentionsList","forwardRef","props","ref","selectedIndex","setSelectedIndex","selectItem","index","command","useImperativeHandle","onKeyDown","event","key","length","renderMentions","component","popup","onStart","ReactRenderer","editor","tippy","getReferenceClientRect","clientRect","appendTo","showOnCreate","interactive","trigger","placement","onUpdate","updateProps","setProps","_component$ref","hide","onExit","destroy","useMentions","useQuery","payload","_predicates","blankNodes","availableMentions","_userDataModel$fields3","toLowerCase","slice"],"mappings":"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"} \ No newline at end of file diff --git a/src/frontend/packages/activitypub-components/package.json b/src/frontend/packages/activitypub-components/package.json index d654c3271..934c94a5e 100644 --- a/src/frontend/packages/activitypub-components/package.json +++ b/src/frontend/packages/activitypub-components/package.json @@ -17,10 +17,12 @@ "@semapps/auth-provider": "0.4.0-alpha.39", "@semapps/field-components": "0.4.0-alpha.39", "@semapps/semantic-data-provider": "0.4.0-alpha.39", + "@rdfjs/data-model": "^1.3.4", "@tiptap/core": "^2.0.0-beta.95", "@tiptap/extension-mention": "^2.0.0-beta.95", "@tiptap/suggestion": "^2.0.0-beta.95", "ra-richtext-tiptap": "^0.0.1", + "sparqljs": "^3.5.1", "tippy.js": "^6.3.7" }, "peerDependencies": { diff --git a/src/frontend/packages/activitypub-components/src/hooks/useInbox.js b/src/frontend/packages/activitypub-components/src/hooks/useInbox.js index ae3acaad6..a96bb8903 100644 --- a/src/frontend/packages/activitypub-components/src/hooks/useInbox.js +++ b/src/frontend/packages/activitypub-components/src/hooks/useInbox.js @@ -1,6 +1,12 @@ import { useCallback, useMemo } from 'react'; import { useGetIdentity, fetchUtils } from 'react-admin'; +import DataFactory from '@rdfjs/data-model'; import { buildBlankNodesQuery } from '@semapps/semantic-data-provider'; +const { namedNode, triple, variable } = DataFactory; +const SparqlGenerator = require('sparqljs').Generator; +const generator = new SparqlGenerator({ + /* prefixes, baseIRI, factory, sparqlStar */ +}); const useInbox = () => { const { identity } = useGetIdentity(); @@ -19,37 +25,60 @@ const useInbox = () => { const fetch = useCallback( async ({ filters }) => { - console.log('inboxUrl', inboxUrl, sparqlEndpoint); - if (!sparqlEndpoint || !inboxUrl) return; - const token = localStorage.getItem('token'); - const blankNodesQuery = buildBlankNodesQuery(['as:object']); + const baseTriples = [ + triple(namedNode(inboxUrl), namedNode('https://www.w3.org/ns/activitystreams#items'), variable('s1')), + triple(variable('s1'), variable('p1'), variable('o1')) + ]; - let filtersWhereQuery = ''; - if (filters) { - Object.keys(filters).forEach(predicate => { - if (filters[predicate]) { - const object = filters[predicate].startsWith('http') ? `<${filters[predicate]}>` : filters[predicate]; - filtersWhereQuery += `?s1 ${predicate} ${object} .`; - } - }); + const baseQuery = { + construct: baseTriples, + where: [ + ...baseTriples + ], } - const query = ` - PREFIX as: - CONSTRUCT { - ?s1 ?p1 ?o1 . - ${blankNodesQuery.construct} - } - WHERE { - <${inboxUrl}> as:items ?s1 . - ?s1 ?p1 ?o1 . - FILTER( (isIRI(?s1)) ) . - ${filtersWhereQuery} - ${blankNodesQuery.where} + const token = localStorage.getItem('token'); + const asOntology = { prefix: "as", url: "https://www.w3.org/ns/activitystreams#" }; + const blankNodesQuery = buildBlankNodesQuery(['as:object'], baseQuery, [asOntology]); + + const sparqlJsParams = { + type: 'query', + queryType: 'CONSTRUCT', + template: blankNodesQuery.construct, + where: blankNodesQuery.where, + prefixes: { + as: 'https://www.w3.org/ns/activitystreams#' } - `; + }; + + // let filtersWhereQuery = ''; + // if (filters) { + // Object.keys(filters).forEach(predicate => { + // if (filters[predicate]) { + // const object = filters[predicate].startsWith('http') ? `<${filters[predicate]}>` : filters[predicate]; + // filtersWhereQuery += `?s1 ${predicate} ${object} .`; + // } + // }); + // } + // + // const query = ` + // PREFIX as: + // CONSTRUCT { + // ?s1 ?p1 ?o1 . + // ${blankNodesQuery.construct} + // } + // WHERE { + // <${inboxUrl}> as:items ?s1 . + // ?s1 ?p1 ?o1 . + // FILTER( (isIRI(?s1)) ) . + // ${filtersWhereQuery} + // ${blankNodesQuery.where} + // } + // `; + + const query = generator.stringify(sparqlJsParams); const { json } = await fetchUtils.fetchJson(sparqlEndpoint, { method: 'POST',