@semapps/activitypub-components 0.4.10 → 0.4.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
1
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react-admin"),r=require("ra-richtext-tiptap"),n=require("@tiptap/extension-placeholder"),o=require("react-final-form"),i=require("@material-ui/core"),a=require("@material-ui/icons/Send"),u=require("@semapps/semantic-data-provider"),l=require("@semapps/auth-provider"),c=require("@tiptap/core"),s=require("@tiptap/extension-mention"),d=require("@semapps/field-components"),f=require("@tiptap/react"),p=require("tippy.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=m(e),v=m(n),y=m(a),b=m(s),g=m(p);function w(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 E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?w(Object(r),!0).forEach((function(t){I(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):w(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function x(){
2
2
  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
3
- x=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 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,i=Object.create(o.prototype),a=new T(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 L()}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=w(a,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,a),i}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,i){function a(){return new t((function(n,a){!function n(o,i,a,u){var l=c(e[o],e,i);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,a,u)}),(function(e){n("throw",e,a,u)})):t.resolve(d).then((function(e){s.value=e,a(s)}),(function(e){return n("throw",e,a,u)}))}u(l.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=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 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 O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,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,i=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:L}}function L(){return{value:void 0,done:!0}}return f.prototype=p,u(y,"constructor",p),u(p,"constructor",f),f.displayName=u(p,a,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,u(e,a,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},b(g.prototype),u(g.prototype,i,(function(){return this})),e.AsyncIterator=g,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new g(l(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},b(y),u(y,a,"Generator"),u(y,o,(function(){return this})),u(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=I,T.prototype={constructor:T,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(O),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return a.type="throw",a.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(u&&l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,s):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),s},finish:function(e){for(var t=this.tryEntries.length-1;t>=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 O(e,t,r,n,o,i,a){try{var u=e[i](a),l=u.value}catch(e){return void r(e)}u.done?t(l):Promise.resolve(l).then(n,o)}function T(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){O(i,n,o,a,u,"next",e)}function u(e){O(i,n,o,a,u,"throw",e)}a(void 0)}))}}function I(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function L(){return(L=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function k(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function A(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,u=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,o=e}finally{try{a||null==r.return||r.return()}finally{if(u)throw o}}return i}(e,t)||R(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 C(e){return function(e){if(Array.isArray(e))return S(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||R(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 R(e,t){if(e){if("string"==typeof e)return S(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)?S(e,t):void 0}}function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var P={ARTICLE:"Article",AUDIO:"Audio",DOCUMENT:"Document",EVENT:"Event",IMAGE:"Image",NOTE:"Note",PAGE:"Page",PLACE:"Place",PROFILE:"Profile",RELATIONSHIP:"Relationship",TOMBSTONE:"Tombstone",VIDEO:"Video"},N="https://www.w3.org/ns/activitystreams#Public",j=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.outbox}),[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{post:e.useCallback(function(){var e=T(x().mark((function e(r){var o,i,a;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=localStorage.getItem("token"),e.next=3,t.fetchUtils.fetchJson(n,{method:"POST",body:JSON.stringify(E({"@context":"https://www.w3.org/ns/activitystreams"},r)),headers:new Headers({"Content-Type":"application/ld+json",Authorization:"Bearer ".concat(o)})});case 3:return i=e.sent,a=i.headers,e.abrupt("return",a.get("Location"));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[n]),fetch:e.useCallback(T(x().mark((function e(){var r,i,a,l,c;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o&&n){e.next=2;break}return e.abrupt("return");case 2:return r=localStorage.getItem("token"),i=u.buildBlankNodesQuery(["as:object"]),a="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(i.construct,"\n }\n WHERE {\n <").concat(n,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ").concat(i.where,"\n }\n "),e.next=7,t.fetchUtils.fetchJson(o,{method:"POST",body:a,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}},D=b.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}:{}}}}}}),M=i.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"},"& > div > p.is-editor-empty:first-child::before":{color:"grey",content:"attr(data-placeholder)",float:"left",height:0,pointerEvents:"none"},marginBottom:-19},button:{marginBottom:15}}})),F=function(n){var a=n.context,c=n.placeholder,s=n.helperText,d=n.mentions,f=n.userResource,p=n.addItem,m=n.removeItem,b=t.useRecordContext(),g=t.useGetIdentity().identity,w=u.useDataModel(f),O=M(),I=t.useNotify(),L=j(),k=A(e.useState(!1),2),R=k[0],S=k[1],F=A(e.useState(!1),2),B=F[0],U=F[1],_=e.useCallback(function(){var e=T(x().mark((function e(t,r){var n,o,i,u,l,c;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.reset,o=(new DOMParser).parseFromString(t.comment,"text/html"),i=Array.from(o.body.getElementsByClassName("mention")),u=[],i.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+"/"+f+"/"+encodeURIComponent(t)+"/show"),n.textContent="@"+r,e.parentNode.replaceChild(n,e),u.push(t)})),"undefined"!==o.body.innerHTML){e.next=9;break}I("Votre commentaire est vide","error"),e.next=24;break;case 9:return l=Date.now(),c={type:P.NOTE,attributedTo:L.owner,content:o.body.innerHTML,inReplyTo:b[a],published:(new Date).toISOString()},e.prev=11,p(E({id:l},c)),n(),S(!1),e.next=17,L.post(E(E({},c),{},{to:[].concat(u,[N])}));case 17:I("Commentaire posté avec succès","success"),e.next=24;break;case 20:e.prev=20,e.t0=e.catch(11),m(l),I(e.t0.message,"error");case 24:case"end":return e.stop()}}),e,null,[[11,20]])})));return function(t,r){return e.apply(this,arguments)}}(),[L,I,S,p,m]),H=e.useCallback((function(){g.id||U(!0)}),[g,U]);return d&&!d.items||!g?null:h.default.createElement(h.default.Fragment,null,h.default.createElement(o.Form,{onSubmit:_,subscription:{submitting:!0,pristine:!0},render:function(e){var t,n,o,a,u=e.handleSubmit,l=e.submitting;if(e.pristine){var f=document.getElementById("comment");f&&""!==f.textContent&&(f.innerHTML="")}return h.default.createElement("form",{onSubmit:u,className:O.form},h.default.createElement(i.Box,{className:O.container,onClick:H},h.default.createElement(i.Avatar,{src:(null==g||null===(t=g.webIdData)||void 0===t?void 0:t[null==w||null===(n=w.fieldsMapping)||void 0===n?void 0:n.image])||(null==g||null===(o=g.profileData)||void 0===o?void 0:o[null==w||null===(a=w.fieldsMapping)||void 0===a?void 0:a.image]),className:O.avatar}),h.default.createElement(r.RichTextInput,{source:"comment",label:"",toolbar:null,fullWidth:!0,classes:{editorContent:O.editorContent},editorOptions:E(E({},r.DefaultEditorOptions),{},{onFocus:function(){S(!0)},extensions:[].concat(C(r.DefaultEditorOptions.extensions),[c?v.default.configure({placeholder:c}):null,d?D.configure({HTMLAttributes:{class:"mention"},suggestion:d}):null]),editable:!!g.id}),helperText:s}),R&&h.default.createElement(i.Button,{type:"submit",size:"small",variant:"contained",color:"primary",endIcon:h.default.createElement(y.default,null),disabled:l,className:O.button},"Envoyer")))}}),h.default.createElement(l.AuthDialog,{open:B,onClose:function(){return U(!1)},message:"Pour poster un commentaire, vous devez être connecté."}))},B=i.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}}})),U=function(e){var r=e.comments,n=e.userResource,o=e.loading,a=B(),l=u.useDataModel(n);return h.default.createElement(i.Box,{position:"relative"},r&&r.sort((function(e,t){return new Date(t.published)-new Date(e.published)})).map((function(e){var r,o;return h.default.createElement(i.Box,{className:a.container},h.default.createElement(i.Box,{className:a.avatar},h.default.createElement(d.ReferenceField,{record:e,reference:n,source:"attributedTo",linkType:"show"},h.default.createElement(d.AvatarWithLabelField,{image:null==l||null===(r=l.fieldsMapping)||void 0===r?void 0:r.image}))),h.default.createElement(i.Box,{className:a.text},h.default.createElement(i.Typography,{variant:"body2"},h.default.createElement(d.ReferenceField,{record:e,reference:n,source:"attributedTo",linkType:"show"},h.default.createElement(t.TextField,{variant:"body2",source:null==l||null===(o=l.fieldsMapping)||void 0===o?void 0:o.title,className:a.label}))," • ",h.default.createElement(t.DateField,{record:e,variant:"body2",source:"published",showTime:!0})),h.default.createElement(t.RichTextField,{record:e,variant:"body1",source:"content",className:a.content})))})),o&&h.default.createElement(i.Box,{minHeight:200},h.default.createElement(i.Box,{alignItems:"center",className:a.loading},h.default.createElement(i.CircularProgress,{size:60,thickness:6}))))},_=function(r){var n=t.useGetIdentity(),o=n.identity,i=n.loaded,a=A(e.useState([]),2),u=a[0],l=a[1],c=A(e.useState(!1),2),s=c[0],d=c[1],f=A(e.useState(!1),2),p=f[0],m=f[1],h=A(e.useState(!1),2),v=h[0],y=h[1],b=e.useMemo((function(){if(r){if(r.startsWith("http"))return r;var e;if(null!=o&&o.webIdData)return null==o||null===(e=o.webIdData)||void 0===e?void 0:e[r]}}),[o,r]),g=e.useCallback(T(x().mark((function e(){var r,n,i,a;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(b){e.next=2;break}return e.abrupt("return");case 2:d(!0),r=new Headers({Accept:"application/ld+json"}),n=(null==o?void 0:o.id)&&new URL(o.id).origin,i=new URL(b).origin,a=localStorage.getItem("token"),n===i&&a&&r.set("Authorization","Bearer ".concat(a)),t.fetchUtils.fetchJson(b,{headers:r}).then((function(e){var t=e.json;t&&t.items?l(t.items):t&&t.orderedItems?l(t.orderedItems):l([]),y(!1),m(!0),d(!1)})).catch((function(){y(!0),m(!0),d(!1)}));case 9:case"end":return e.stop()}}),e)}))),[l,m,d,y,b,o]);e.useEffect((function(){!i||s||p||v||g()}),[g,i,s,p,v]);var w=e.useCallback((function(e){l((function(t){return[].concat(C(t),[e])}))}),[l]),E=e.useCallback((function(e){l((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[l]);return{items:u,loading:s,loaded:p,error:v,refetch:g,addItem:w,removeItem:E,url:b}},H=function(e){e.source;var r=e.context,n=e.helperText,o=e.placeholder,i=e.userResource,a=e.mentions,u=t.useRecordContext(),l=_(u.replies),c=l.items,s=l.loading,d=l.addItem,f=l.removeItem;if(!i)throw new Error("No userResource defined for CommentsField");return h.default.createElement(h.default.Fragment,null,h.default.createElement(F,{context:r,helperText:n,userResource:i,placeholder:o,mentions:a,addItem:d,removeItem:f}),h.default.createElement(U,{comments:c,loading:s,userResource:i}))};H.defaultProps={addLabel:!0,label:"Commentaires",placeholder:"Commencez à taper votre commentaire...",source:"id",context:"id"};var G=["collectionUrl","resource","children"],q=function(e){var r=e.collectionUrl,n=e.resource,o=e.children,i=k(e,G);if(1!==h.default.Children.count(o))throw new Error("<CollectionList> only accepts a single child");var a=t.useGetOne(n,r,{enabled:!!r}),u=a.data;return a.loading?h.default.createElement("div",{style:{marginTop:8}},h.default.createElement(t.LinearProgress,null)):u?h.default.createElement(d.ReferenceArrayField,L({reference:n,record:u,source:"items"},i),o):null},V=["source","record","reference","children"],W=function(e){var t=e.source,r=e.record,n=e.reference,o=e.children,i=k(e,V);if(1!==h.default.Children.count(o))throw new Error("<ReferenceCollectionField> only accepts a single child");return r&&r[t]?h.default.createElement(q,L({resource:n,collectionUrl:r[t]},i),o):null};W.defaultProps={addLabel:!0};var z=i.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"}}}})),J=e.forwardRef((function(t,r){var n=A(e.useState(0),2),o=n[0],i=n[1],a=z(),u=function(e){var r=t.items[e];r&&t.command({id:r})};return e.useEffect((function(){return i(0)}),[t.items]),e.useImperativeHandle(r,(function(){return{onKeyDown:function(e){var r=e.event;return"ArrowUp"===r.key?(i((o+t.items.length-1)%t.items.length),!0):"ArrowDown"===r.key?(i((o+1)%t.items.length),!0):"Enter"===r.key&&(u(o),!0)}}})),h.default.createElement("div",{className:a.items},t.items.length?t.items.map((function(e,t){return h.default.createElement("button",{className:a.item+(t===o?" selected":""),key:t,onClick:function(){return u(t)}},e.label)})):h.default.createElement("div",{className:a.item},"Aucun résultat"))})),K=function(){var e,t;return{onStart:function(r){e=new f.ReactRenderer(J,{props:r,editor:r.editor}),t=g.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=q,exports.CommentsField=H,exports.OBJECT_TYPES=P,exports.PUBLIC_URI=N,exports.ReferenceCollectionField=W,exports.useCollection=_,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=T(x().mark((function e(r){var i,a,l,c,s,d,f;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=r.filters,console.log("inboxUrl",n,o),o&&n){e.next=4;break}return e.abrupt("return");case 4:return a=localStorage.getItem("token"),l=u.buildBlankNodesQuery(["as:object"]),c="",i&&Object.keys(i).forEach((function(e){if(i[e]){var t=i[e].startsWith("http")?"<".concat(i[e],">"):i[e];c+="?s1 ".concat(e," ").concat(t," .")}})),s="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(l.construct,"\n }\n WHERE {\n <").concat(n,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ").concat(c,"\n ").concat(l.where,"\n }\n "),e.next=11,t.fetchUtils.fetchJson(o,{method:"POST",body:s,headers:new Headers({Accept:"application/ld+json",Authorization:a?"Bearer ".concat(a):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,i=u.useDataModel(r),a=t.useQuery({type:"getList",resource:r,payload:{filter:{_predicates:[null==i||null===(n=i.fieldsMapping)||void 0===n?void 0:n.title],blankNodes:[]}}},{enabled:!(null==i||null===(o=i.fieldsMapping)||void 0===o||!o.title)}).data,l=e.useMemo((function(){if(a)return a.map((function(e){var t;return{id:e.id,label:e[null==i||null===(t=i.fieldsMapping)||void 0===t?void 0:t.title]}}))}),[a]);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:K}},exports.useOutbox=j,exports.useWebfinger=function(){return{fetch:e.useCallback(function(){var e=T(x().mark((function e(r){var n,o,i,a,u,l,c,s,d;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.split("@"),(o=A(n,3))[0],i=o[1],!(a=o[2])){e.next=18;break}return u=a.includes(":")?"http":"https",l="".concat(u,"://").concat(a,"/.well-known/webfinger?resource=acct:").concat(i,"@").concat(a),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)}}(),[])}};
3
+ x=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 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,i=Object.create(o.prototype),a=new T(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 L()}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=w(a,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,a),i}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,i){function a(){return new t((function(n,a){!function n(o,i,a,u){var l=c(e[o],e,i);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,a,u)}),(function(e){n("throw",e,a,u)})):t.resolve(d).then((function(e){s.value=e,a(s)}),(function(e){return n("throw",e,a,u)}))}u(l.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=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 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 O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,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,i=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:L}}function L(){return{value:void 0,done:!0}}return f.prototype=p,u(y,"constructor",p),u(p,"constructor",f),f.displayName=u(p,a,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,u(e,a,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},b(g.prototype),u(g.prototype,i,(function(){return this})),e.AsyncIterator=g,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new g(l(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},b(y),u(y,a,"Generator"),u(y,o,(function(){return this})),u(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=I,T.prototype={constructor:T,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(O),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return a.type="throw",a.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(u&&l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,s):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),s},finish:function(e){for(var t=this.tryEntries.length-1;t>=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 O(e,t,r,n,o,i,a){try{var u=e[i](a),l=u.value}catch(e){return void r(e)}u.done?t(l):Promise.resolve(l).then(n,o)}function T(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){O(i,n,o,a,u,"next",e)}function u(e){O(i,n,o,a,u,"throw",e)}a(void 0)}))}}function I(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function L(){return(L=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function A(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=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,i=[],a=!0,u=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,o=e}finally{try{a||null==r.return||r.return()}finally{if(u)throw o}}return i}(e,t)||R(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 C(e){return function(e){if(Array.isArray(e))return S(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||R(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 R(e,t){if(e){if("string"==typeof e)return S(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)?S(e,t):void 0}}function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var P={ARTICLE:"Article",AUDIO:"Audio",DOCUMENT:"Document",EVENT:"Event",IMAGE:"Image",NOTE:"Note",PAGE:"Page",PLACE:"Place",PROFILE:"Profile",RELATIONSHIP:"Relationship",TOMBSTONE:"Tombstone",VIDEO:"Video"},N="https://www.w3.org/ns/activitystreams#Public",j=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.outbox}),[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{post:e.useCallback(function(){var e=T(x().mark((function e(r){var o,i,a;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=localStorage.getItem("token"),e.next=3,t.fetchUtils.fetchJson(n,{method:"POST",body:JSON.stringify(E({"@context":"https://www.w3.org/ns/activitystreams"},r)),headers:new Headers({"Content-Type":"application/ld+json",Authorization:"Bearer ".concat(o)})});case 3:return i=e.sent,a=i.headers,e.abrupt("return",a.get("Location"));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[n]),fetch:e.useCallback(T(x().mark((function e(){var r,i,a,l,c;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o&&n){e.next=2;break}return e.abrupt("return");case 2:return r=localStorage.getItem("token"),i=u.buildBlankNodesQuery(["as:object"]),a="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(i.construct,"\n }\n WHERE {\n <").concat(n,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ").concat(i.where,"\n }\n "),e.next=7,t.fetchUtils.fetchJson(o,{method:"POST",body:a,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}},D=b.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}:{}}}}}}),M=i.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"},"& > div > p.is-editor-empty:first-child::before":{color:"grey",content:"attr(data-placeholder)",float:"left",height:0,pointerEvents:"none"},marginBottom:-19},button:{marginBottom:15}}})),F=function(n){var a=n.context,c=n.placeholder,s=n.helperText,d=n.mentions,f=n.userResource,p=n.addItem,m=n.removeItem,b=t.useRecordContext(),g=t.useGetIdentity().identity,w=u.useDataModel(f),O=M(),I=t.useNotify(),L=j(),A=k(e.useState(!1),2),R=A[0],S=A[1],F=k(e.useState(!1),2),B=F[0],U=F[1],_=e.useCallback(function(){var e=T(x().mark((function e(t,r){var n,o,i,u,l,c;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.reset,o=(new DOMParser).parseFromString(t.comment,"text/html"),i=Array.from(o.body.getElementsByClassName("mention")),u=[],i.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+"/"+f+"/"+encodeURIComponent(t)+"/show"),n.textContent="@"+r,e.parentNode.replaceChild(n,e),u.push(t)})),"undefined"!==o.body.innerHTML){e.next=9;break}I("Votre commentaire est vide","error"),e.next=24;break;case 9:return l=Date.now(),c={type:P.NOTE,attributedTo:L.owner,content:o.body.innerHTML,inReplyTo:b[a],published:(new Date).toISOString()},e.prev=11,p(E({id:l},c)),n(),S(!1),e.next=17,L.post(E(E({},c),{},{to:[].concat(u,[N])}));case 17:I("Commentaire posté avec succès","success"),e.next=24;break;case 20:e.prev=20,e.t0=e.catch(11),m(l),I(e.t0.message,"error");case 24:case"end":return e.stop()}}),e,null,[[11,20]])})));return function(t,r){return e.apply(this,arguments)}}(),[L,I,S,p,m]),H=e.useCallback((function(){g.id||U(!0)}),[g,U]);return d&&!d.items||!g?null:h.default.createElement(h.default.Fragment,null,h.default.createElement(o.Form,{onSubmit:_,subscription:{submitting:!0,pristine:!0},render:function(e){var t,n,o,a,u=e.handleSubmit,l=e.submitting;if(e.pristine){var f=document.getElementById("comment");f&&""!==f.textContent&&(f.innerHTML="")}return h.default.createElement("form",{onSubmit:u,className:O.form},h.default.createElement(i.Box,{className:O.container,onClick:H},h.default.createElement(i.Avatar,{src:(null==g||null===(t=g.webIdData)||void 0===t?void 0:t[null==w||null===(n=w.fieldsMapping)||void 0===n?void 0:n.image])||(null==g||null===(o=g.profileData)||void 0===o?void 0:o[null==w||null===(a=w.fieldsMapping)||void 0===a?void 0:a.image]),className:O.avatar}),h.default.createElement(r.RichTextInput,{source:"comment",label:"",toolbar:null,fullWidth:!0,classes:{editorContent:O.editorContent},editorOptions:E(E({},r.DefaultEditorOptions),{},{onFocus:function(){S(!0)},extensions:[].concat(C(r.DefaultEditorOptions.extensions),[c?v.default.configure({placeholder:c}):null,d?D.configure({HTMLAttributes:{class:"mention"},suggestion:d}):null]),editable:!!g.id}),helperText:s}),R&&h.default.createElement(i.Button,{type:"submit",size:"small",variant:"contained",color:"primary",endIcon:h.default.createElement(y.default,null),disabled:l,className:O.button},"Envoyer")))}}),h.default.createElement(l.AuthDialog,{open:B,onClose:function(){return U(!1)},message:"Pour poster un commentaire, vous devez être connecté."}))},B=i.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}}})),U=function(e){var r=e.comments,n=e.userResource,o=e.loading,a=B(),l=u.useDataModel(n);return h.default.createElement(i.Box,{position:"relative"},r&&r.sort((function(e,t){return new Date(t.published)-new Date(e.published)})).map((function(e){var r,o;return h.default.createElement(i.Box,{className:a.container},h.default.createElement(i.Box,{className:a.avatar},h.default.createElement(d.ReferenceField,{record:e,reference:n,source:"attributedTo",linkType:"show"},h.default.createElement(d.AvatarWithLabelField,{image:null==l||null===(r=l.fieldsMapping)||void 0===r?void 0:r.image}))),h.default.createElement(i.Box,{className:a.text},h.default.createElement(i.Typography,{variant:"body2"},h.default.createElement(d.ReferenceField,{record:e,reference:n,source:"attributedTo",linkType:"show"},h.default.createElement(t.TextField,{variant:"body2",source:null==l||null===(o=l.fieldsMapping)||void 0===o?void 0:o.title,className:a.label}))," • ",h.default.createElement(t.DateField,{record:e,variant:"body2",source:"published",showTime:!0})),h.default.createElement(t.RichTextField,{record:e,variant:"body1",source:"content",className:a.content})))})),o&&h.default.createElement(i.Box,{minHeight:200},h.default.createElement(i.Box,{alignItems:"center",className:a.loading},h.default.createElement(i.CircularProgress,{size:60,thickness:6}))))},_=function(e){return e?Array.isArray(e)?e:[e]:[]},H=function(r){var n=t.useGetIdentity(),o=n.identity,i=n.loaded,a=k(e.useState([]),2),u=a[0],l=a[1],c=k(e.useState(!1),2),s=c[0],d=c[1],f=k(e.useState(!1),2),p=f[0],m=f[1],h=k(e.useState(!1),2),v=h[0],y=h[1],b=e.useMemo((function(){if(r){if(r.startsWith("http"))return r;var e;if(null!=o&&o.webIdData)return null==o||null===(e=o.webIdData)||void 0===e?void 0:e[r]}}),[o,r]),g=e.useCallback(T(x().mark((function e(){var r,n,i,a;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(b){e.next=2;break}return e.abrupt("return");case 2:d(!0),r=new Headers({Accept:"application/ld+json"}),n=(null==o?void 0:o.id)&&new URL(o.id).origin,i=new URL(b).origin,a=localStorage.getItem("token"),n===i&&a&&r.set("Authorization","Bearer ".concat(a)),t.fetchUtils.fetchJson(b,{headers:r}).then((function(e){var t=e.json;t&&t.items?l(_(t.items)):t&&t.orderedItems?l(_(t.orderedItems)):l([]),y(!1),m(!0),d(!1)})).catch((function(){y(!0),m(!0),d(!1)}));case 9:case"end":return e.stop()}}),e)}))),[l,m,d,y,b,o]);e.useEffect((function(){!i||s||p||v||g()}),[g,i,s,p,v]);var w=e.useCallback((function(e){l((function(t){return[].concat(C(t),[e])}))}),[l]),E=e.useCallback((function(e){l((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[l]);return{items:u,loading:s,loaded:p,error:v,refetch:g,addItem:w,removeItem:E,url:b}},G=function(e){e.source;var r=e.context,n=e.helperText,o=e.placeholder,i=e.userResource,a=e.mentions,u=t.useRecordContext(),l=H(u.replies),c=l.items,s=l.loading,d=l.addItem,f=l.removeItem;if(!i)throw new Error("No userResource defined for CommentsField");return h.default.createElement(h.default.Fragment,null,h.default.createElement(F,{context:r,helperText:n,userResource:i,placeholder:o,mentions:a,addItem:d,removeItem:f}),h.default.createElement(U,{comments:c,loading:s,userResource:i}))};G.defaultProps={addLabel:!0,label:"Commentaires",placeholder:"Commencez à taper votre commentaire...",source:"id",context:"id"};var q=["collectionUrl","resource","children"],V=function(e){var r=e.collectionUrl,n=e.resource,o=e.children,i=A(e,q);if(1!==h.default.Children.count(o))throw new Error("<CollectionList> only accepts a single child");var a=t.useGetOne(n,r,{enabled:!!r}),u=a.data;return a.loading?h.default.createElement("div",{style:{marginTop:8}},h.default.createElement(t.LinearProgress,null)):u?h.default.createElement(d.ReferenceArrayField,L({reference:n,record:u,source:"items"},i),o):null},W=["source","record","reference","children"],z=function(e){var t=e.source,r=e.record,n=e.reference,o=e.children,i=A(e,W);if(1!==h.default.Children.count(o))throw new Error("<ReferenceCollectionField> only accepts a single child");return r&&r[t]?h.default.createElement(V,L({resource:n,collectionUrl:r[t]},i),o):null};z.defaultProps={addLabel:!0};var J=i.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"}}}})),K=e.forwardRef((function(t,r){var n=k(e.useState(0),2),o=n[0],i=n[1],a=J(),u=function(e){var r=t.items[e];r&&t.command({id:r})};return e.useEffect((function(){return i(0)}),[t.items]),e.useImperativeHandle(r,(function(){return{onKeyDown:function(e){var r=e.event;return"ArrowUp"===r.key?(i((o+t.items.length-1)%t.items.length),!0):"ArrowDown"===r.key?(i((o+1)%t.items.length),!0):"Enter"===r.key&&(u(o),!0)}}})),h.default.createElement("div",{className:a.items},t.items.length?t.items.map((function(e,t){return h.default.createElement("button",{className:a.item+(t===o?" selected":""),key:t,onClick:function(){return u(t)}},e.label)})):h.default.createElement("div",{className:a.item},"Aucun résultat"))})),Y=function(){var e,t;return{onStart:function(r){e=new f.ReactRenderer(K,{props:r,editor:r.editor}),t=g.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=V,exports.CommentsField=G,exports.OBJECT_TYPES=P,exports.PUBLIC_URI=N,exports.ReferenceCollectionField=z,exports.useCollection=H,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=T(x().mark((function e(r){var i,a,l,c,s,d,f;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=r.filters,console.log("inboxUrl",n,o),o&&n){e.next=4;break}return e.abrupt("return");case 4:return a=localStorage.getItem("token"),l=u.buildBlankNodesQuery(["as:object"]),c="",i&&Object.keys(i).forEach((function(e){if(i[e]){var t=i[e].startsWith("http")?"<".concat(i[e],">"):i[e];c+="?s1 ".concat(e," ").concat(t," .")}})),s="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(l.construct,"\n }\n WHERE {\n <").concat(n,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ").concat(c,"\n ").concat(l.where,"\n }\n "),e.next=11,t.fetchUtils.fetchJson(o,{method:"POST",body:s,headers:new Headers({Accept:"application/ld+json",Authorization:a?"Bearer ".concat(a):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,i=u.useDataModel(r),a=t.useQuery({type:"getList",resource:r,payload:{filter:{_predicates:[null==i||null===(n=i.fieldsMapping)||void 0===n?void 0:n.title],blankNodes:[]}}},{enabled:!(null==i||null===(o=i.fieldsMapping)||void 0===o||!o.title)}).data,l=e.useMemo((function(){if(a)return a.map((function(e){var t;return{id:e.id,label:e[null==i||null===(t=i.fieldsMapping)||void 0===t?void 0:t.title]}}))}),[a]);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:Y}},exports.useOutbox=j,exports.useWebfinger=function(){return{fetch:e.useCallback(function(){var e=T(x().mark((function e(r){var n,o,i,a,u,l,c,s,d;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.split("@"),(o=k(n,3))[0],i=o[1],!(a=o[2])){e.next=18;break}return u=a.includes(":")?"http":"https",l="".concat(u,"://").concat(a,"/.well-known/webfinger?resource=acct:").concat(i,"@").concat(a),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)}}(),[])}};
4
4
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +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: <https://www.w3.org/ns/activitystreams#>\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 Placeholder from '@tiptap/extension-placeholder';\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 '& > div > p.is-editor-empty:first-child::before': {\n color: 'grey',\n content: 'attr(data-placeholder)',\n float: 'left',\n height: 0,\n pointerEvents: 'none'\n },\n marginBottom: -19 // To hide helper text block\n },\n button: {\n marginBottom: 15\n }\n}));\n\nconst PostCommentForm = ({ context, placeholder, 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 <Form\n onSubmit={onSubmit}\n subscription={{ submitting: true, pristine: true }}\n render={({ handleSubmit, submitting, pristine }) => {\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.textContent !== '') commentElement.innerHTML = '';\n }\n return (\n <form onSubmit={handleSubmit} className={classes.form}>\n <Box className={classes.container} onClick={openAuthIfDisconnected}>\n <Avatar\n src={\n identity?.webIdData?.[userDataModel?.fieldsMapping?.image] ||\n identity?.profileData?.[userDataModel?.fieldsMapping?.image]\n }\n className={classes.avatar}\n />\n <RichTextInput\n source=\"comment\"\n label=\"\"\n toolbar={null}\n fullWidth\n classes={{ editorContent: classes.editorContent }}\n editorOptions={{\n ...DefaultEditorOptions,\n onFocus() {\n setExpanded(true);\n },\n extensions: [\n ...DefaultEditorOptions.extensions,\n placeholder ? Placeholder.configure({ placeholder }) : null,\n mentions\n ? CustomMention.configure({\n HTMLAttributes: {\n class: 'mention'\n },\n suggestion: mentions\n })\n : null\n ],\n // Disable editor if user is not connected\n editable: !!identity.id\n }}\n helperText={helperText}\n />\n {expanded && (\n <Button\n type=\"submit\"\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n endIcon={<SendIcon />}\n disabled={submitting}\n className={classes.button}\n >\n Envoyer\n </Button>\n )}\n </Box>\n </form>\n );\n }}\n />\n <AuthDialog\n open={openAuth}\n onClose={() => 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 <Box position=\"relative\">\n {comments &&\n comments\n .sort((a, b) => new Date(b.published) - new Date(a.published))\n .map(comment => (\n <Box className={classes.container}>\n <Box className={classes.avatar}>\n <ReferenceField record={comment} reference={userResource} source=\"attributedTo\" linkType=\"show\">\n <AvatarWithLabelField image={userDataModel?.fieldsMapping?.image} />\n </ReferenceField>\n </Box>\n <Box className={classes.text}>\n <Typography variant=\"body2\">\n <ReferenceField record={comment} reference={userResource} source=\"attributedTo\" linkType=\"show\">\n <TextField variant=\"body2\" source={userDataModel?.fieldsMapping?.title} className={classes.label} />\n </ReferenceField>\n &nbsp;•&nbsp;\n <DateField record={comment} variant=\"body2\" source=\"published\" showTime />\n </Typography>\n <RichTextField record={comment} variant=\"body1\" source=\"content\" className={classes.content} />\n </Box>\n </Box>\n ))}\n {loading && (\n <Box minHeight={200}>\n <Box alignItems=\"center\" className={classes.loading}>\n <CircularProgress size={60} thickness={6} />\n </Box>\n </Box>\n )}\n </Box>\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, loaded: identityLoaded } = 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\n const headers = new Headers({ Accept: 'application/ld+json' });\n\n // Add authorization token if it is set and if the user is on the same server as the collection\n const identityOrigin = identity?.id && (new URL(identity.id)).origin;\n const collectionOrigin = (new URL(collectionUrl)).origin;\n const token = localStorage.getItem('token');\n if (identityOrigin === collectionOrigin && token) {\n headers.set('Authorization', `Bearer ${token}`)\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, identity]);\n\n useEffect(() => {\n if (identityLoaded && !loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, identityLoaded, 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, placeholder, 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 <PostCommentForm\n context={context}\n helperText={helperText}\n userResource={userResource}\n placeholder={placeholder}\n mentions={mentions}\n addItem={addItem}\n removeItem={removeItem}\n />\n <CommentsList comments={comments} loading={loading} userResource={userResource} />\n </>\n );\n};\n\nCommentsField.defaultProps = {\n addLabel: true,\n label: 'Commentaires',\n placeholder: 'Commencez à taper votre commentaire...',\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('<CollectionList> 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 <div style={{ marginTop: 8 }}>\n <LinearProgress />\n </div>\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n <ReferenceArrayField reference={resource} record={collection} source=\"items\" {...rest}>\n {children}\n </ReferenceArrayField>\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('<ReferenceCollectionField> only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n <CollectionList resource={reference} collectionUrl={record[source]} {...rest}>\n {children}\n </CollectionList>\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: <https://www.w3.org/ns/activitystreams#>\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 <div className={classes.items}>\n {props.items.length ? (\n props.items.map((item, index) => (\n <button\n className={classes.item + (index === selectedIndex ? ' selected' : '')}\n key={index}\n onClick={() => selectItem(index)}\n >\n {item.label}\n </button>\n ))\n ) : (\n <div className={classes.item}>Aucun résultat</div>\n )}\n </div>\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","& > div > p.is-editor-empty:first-child::before","color","content","float","pointerEvents","button","PostCommentForm","context","placeholder","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","inReplyTo","published","toISOString","to","t0","message","_x2","openAuthIfDisconnected","items","React","Fragment","Form","subscription","submitting","pristine","render","_ref4","_userDataModel$fields","_identity$profileData","_userDataModel$fields2","handleSubmit","commentElement","getElementById","className","Box","onClick","Avatar","src","fieldsMapping","image","profileData","RichTextInput","source","toolbar","fullWidth","editorOptions","DefaultEditorOptions","onFocus","extensions","_toConsumableArray","Placeholder","configure","class","suggestion","editable","Button","size","variant","endIcon","SendIcon","disabled","AuthDialog","open","onClose","text","paddingTop","paddingBottom","fontWeight","& p","loading","zIndex","opacity","right","display","alignItems","justifyContent","CommentsList","comments","sort","a","b","map","ReferenceField","reference","linkType","AvatarWithLabelField","Typography","TextField","title","DateField","showTime","RichTextField","CircularProgress","thickness","useCollection","predicateOrUrl","_useGetIdentity","identityLoaded","loaded","setItems","setLoading","_useState6","setLoaded","_useState8","error","setError","collectionUrl","startsWith","identityOrigin","collectionOrigin","set","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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"}
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/utils.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: <https://www.w3.org/ns/activitystreams#>\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 Placeholder from '@tiptap/extension-placeholder';\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 '& > div > p.is-editor-empty:first-child::before': {\n color: 'grey',\n content: 'attr(data-placeholder)',\n float: 'left',\n height: 0,\n pointerEvents: 'none'\n },\n marginBottom: -19 // To hide helper text block\n },\n button: {\n marginBottom: 15\n }\n}));\n\nconst PostCommentForm = ({ context, placeholder, 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 <Form\n onSubmit={onSubmit}\n subscription={{ submitting: true, pristine: true }}\n render={({ handleSubmit, submitting, pristine }) => {\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.textContent !== '') commentElement.innerHTML = '';\n }\n return (\n <form onSubmit={handleSubmit} className={classes.form}>\n <Box className={classes.container} onClick={openAuthIfDisconnected}>\n <Avatar\n src={\n identity?.webIdData?.[userDataModel?.fieldsMapping?.image] ||\n identity?.profileData?.[userDataModel?.fieldsMapping?.image]\n }\n className={classes.avatar}\n />\n <RichTextInput\n source=\"comment\"\n label=\"\"\n toolbar={null}\n fullWidth\n classes={{ editorContent: classes.editorContent }}\n editorOptions={{\n ...DefaultEditorOptions,\n onFocus() {\n setExpanded(true);\n },\n extensions: [\n ...DefaultEditorOptions.extensions,\n placeholder ? Placeholder.configure({ placeholder }) : null,\n mentions\n ? CustomMention.configure({\n HTMLAttributes: {\n class: 'mention'\n },\n suggestion: mentions\n })\n : null\n ],\n // Disable editor if user is not connected\n editable: !!identity.id\n }}\n helperText={helperText}\n />\n {expanded && (\n <Button\n type=\"submit\"\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n endIcon={<SendIcon />}\n disabled={submitting}\n className={classes.button}\n >\n Envoyer\n </Button>\n )}\n </Box>\n </form>\n );\n }}\n />\n <AuthDialog\n open={openAuth}\n onClose={() => 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 <Box position=\"relative\">\n {comments &&\n comments\n .sort((a, b) => new Date(b.published) - new Date(a.published))\n .map(comment => (\n <Box className={classes.container}>\n <Box className={classes.avatar}>\n <ReferenceField record={comment} reference={userResource} source=\"attributedTo\" linkType=\"show\">\n <AvatarWithLabelField image={userDataModel?.fieldsMapping?.image} />\n </ReferenceField>\n </Box>\n <Box className={classes.text}>\n <Typography variant=\"body2\">\n <ReferenceField record={comment} reference={userResource} source=\"attributedTo\" linkType=\"show\">\n <TextField variant=\"body2\" source={userDataModel?.fieldsMapping?.title} className={classes.label} />\n </ReferenceField>\n &nbsp;•&nbsp;\n <DateField record={comment} variant=\"body2\" source=\"published\" showTime />\n </Typography>\n <RichTextField record={comment} variant=\"body1\" source=\"content\" className={classes.content} />\n </Box>\n </Box>\n ))}\n {loading && (\n <Box minHeight={200}>\n <Box alignItems=\"center\" className={classes.loading}>\n <CircularProgress size={60} thickness={6} />\n </Box>\n </Box>\n )}\n </Box>\n );\n};\n\nexport default CommentsList;\n","export const arrayOf = value => {\n // If the field is null-ish, we suppose there are no values.\n if (!value) {\n return [];\n }\n // Return as is.\n if (Array.isArray(value)) {\n return value;\n }\n // Single value is made an array.\n return [value];\n};\n\nexport default {\n arrayOf\n};\n","import { useCallback, useMemo, useState, useEffect } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { arrayOf } from '../utils';\n\nconst useCollection = predicateOrUrl => {\n const { identity, loaded: identityLoaded } = 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\n const headers = new Headers({ Accept: 'application/ld+json' });\n\n // Add authorization token if it is set and if the user is on the same server as the collection\n const identityOrigin = identity?.id && (new URL(identity.id)).origin;\n const collectionOrigin = (new URL(collectionUrl)).origin;\n const token = localStorage.getItem('token');\n if (identityOrigin === collectionOrigin && token) {\n headers.set('Authorization', `Bearer ${token}`)\n }\n\n fetchUtils\n .fetchJson(collectionUrl, { headers })\n .then(({ json }) => {\n if (json && json.items) {\n setItems(arrayOf(json.items));\n } else if (json && json.orderedItems) {\n setItems(arrayOf(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, identity]);\n\n useEffect(() => {\n if (identityLoaded && !loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, identityLoaded, 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, placeholder, 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 <PostCommentForm\n context={context}\n helperText={helperText}\n userResource={userResource}\n placeholder={placeholder}\n mentions={mentions}\n addItem={addItem}\n removeItem={removeItem}\n />\n <CommentsList comments={comments} loading={loading} userResource={userResource} />\n </>\n );\n};\n\nCommentsField.defaultProps = {\n addLabel: true,\n label: 'Commentaires',\n placeholder: 'Commencez à taper votre commentaire...',\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('<CollectionList> 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 <div style={{ marginTop: 8 }}>\n <LinearProgress />\n </div>\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n <ReferenceArrayField reference={resource} record={collection} source=\"items\" {...rest}>\n {children}\n </ReferenceArrayField>\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('<ReferenceCollectionField> only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n <CollectionList resource={reference} collectionUrl={record[source]} {...rest}>\n {children}\n </CollectionList>\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: <https://www.w3.org/ns/activitystreams#>\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 <div className={classes.items}>\n {props.items.length ? (\n props.items.map((item, index) => (\n <button\n className={classes.item + (index === selectedIndex ? ' selected' : '')}\n key={index}\n onClick={() => selectItem(index)}\n >\n {item.label}\n </button>\n ))\n ) : (\n <div className={classes.item}>Aucun résultat</div>\n )}\n </div>\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","& > div > p.is-editor-empty:first-child::before","color","content","float","pointerEvents","button","PostCommentForm","context","placeholder","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","inReplyTo","published","toISOString","to","t0","message","_x2","openAuthIfDisconnected","items","React","Fragment","Form","subscription","submitting","pristine","render","_ref4","_userDataModel$fields","_identity$profileData","_userDataModel$fields2","handleSubmit","commentElement","getElementById","className","Box","onClick","Avatar","src","fieldsMapping","image","profileData","RichTextInput","source","toolbar","fullWidth","editorOptions","DefaultEditorOptions","onFocus","extensions","_toConsumableArray","Placeholder","configure","class","suggestion","editable","Button","size","variant","endIcon","SendIcon","disabled","AuthDialog","open","onClose","text","paddingTop","paddingBottom","fontWeight","& p","loading","zIndex","opacity","right","display","alignItems","justifyContent","CommentsList","comments","sort","a","b","map","ReferenceField","reference","linkType","AvatarWithLabelField","Typography","TextField","title","DateField","showTime","RichTextField","CircularProgress","thickness","arrayOf","isArray","useCollection","predicateOrUrl","_useGetIdentity","identityLoaded","loaded","setItems","setLoading","_useState6","setLoaded","_useState8","error","setError","collectionUrl","startsWith","identityOrigin","collectionOrigin","set","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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"}
package/dist/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
1
  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 l,useRecordContext as u,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 g}from"ra-richtext-tiptap";import b from"@tiptap/extension-placeholder";import{Form as w}from"react-final-form";import{makeStyles as E,Box as x,Avatar as O,Button as T,Typography as I,CircularProgress as L}from"@material-ui/core";import A from"@material-ui/icons/Send";import{buildBlankNodesQuery as k,useDataModel as R}from"@semapps/semantic-data-provider";import{AuthDialog as j}from"@semapps/auth-provider";import{mergeAttributes as N}from"@tiptap/core";import C from"@tiptap/extension-mention";import{ReferenceField as S,AvatarWithLabelField as P,ReferenceArrayField as D}from"@semapps/field-components";import{ReactRenderer as F}from"@tiptap/react";import M from"tippy.js";function H(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 U(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?H(Object(r),!0).forEach((function(t){V(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):H(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function B(){
2
2
  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
3
- B=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 l(e,t,r,n){var o=t&&t.prototype instanceof d?t:d,i=Object.create(o.prototype),a=new O(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 l=u(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,a),i}function u(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={};c(m,o,(function(){return this}));var h=Object.getPrototypeOf,v=h&&h(h(T([])));v&&v!==t&&r.call(v,o)&&(m=v);var y=p.prototype=d.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 l=u(e[o],e,i);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,a,c)}),(function(e){n("throw",e,a,c)})):t.resolve(d).then((function(e){s.value=e,a(s)}),(function(e){return n("throw",e,a,c)}))}c(l.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=u(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 x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function T(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<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:I}}function I(){return{value:void 0,done:!0}}return f.prototype=p,c(y,"constructor",p),c(p,"constructor",f),f.displayName=c(p,a,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,c(e,a,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},g(b.prototype),c(b.prototype,i,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new b(l(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},g(y),c(y,a,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=T,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return a.type="throw",a.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=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"),l=r.call(i,"finallyLoc");if(c&&l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,s):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),s},finish:function(e){for(var t=this.tryEntries.length-1;t>=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 _(e,t,r,n,o,i,a){try{var c=e[i](a),l=c.value}catch(e){return void r(e)}c.done?t(l):Promise.resolve(l).then(n,o)}function G(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){_(i,n,o,a,c,"next",e)}function c(e){_(i,n,o,a,c,"throw",e)}a(void 0)}))}}function V(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function z(){return(z=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function J(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function W(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)||q(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 Q(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||q(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 q(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<t;r++)n[r]=e[r];return n}var X={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"},Y={APPLICATION:"Application",GROUP:"Group",ORGANIZATION:"Organization",PERSON:"Person",SERVICE:"Service"},Z={ARTICLE:"Article",AUDIO:"Audio",DOCUMENT:"Document",EVENT:"Event",IMAGE:"Image",NOTE:"Note",PAGE:"Page",PLACE:"Place",PROFILE:"Profile",RELATIONSHIP:"Relationship",TOMBSTONE:"Tombstone",VIDEO:"Video"},$="https://www.w3.org/ns/activitystreams#Public",ee=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.outbox}),[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{post:r(function(){var e=G(B().mark((function e(t){var r,o,i;return B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=localStorage.getItem("token"),e.next=3,l.fetchJson(n,{method:"POST",body:JSON.stringify(U({"@context":"https://www.w3.org/ns/activitystreams"},t)),headers:new Headers({"Content-Type":"application/ld+json",Authorization:"Bearer ".concat(r)})});case 3:return o=e.sent,i=o.headers,e.abrupt("return",i.get("Location"));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[n]),fetch:r(G(B().mark((function e(){var t,r,i,a,c;return B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o&&n){e.next=2;break}return e.abrupt("return");case 2:return t=localStorage.getItem("token"),r=k(["as:object"]),i="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\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,l.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}},te=C.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}:{}}}}}}),re=E((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"},"& > div > p.is-editor-empty:first-child::before":{color:"grey",content:"attr(data-placeholder)",float:"left",height:0,pointerEvents:"none"},marginBottom:-19},button:{marginBottom:15}}})),ne=function(t){var o=t.context,i=t.placeholder,a=t.helperText,l=t.mentions,d=t.userResource,f=t.addItem,p=t.removeItem,m=u(),h=c().identity,v=R(d),E=re(),I=s(),L=ee(),k=W(n(!1),2),N=k[0],C=k[1],S=W(n(!1),2),P=S[0],D=S[1],F=r(function(){var e=G(B().mark((function e(t,r){var n,i,a,c,l,u;return B().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+"/"+d+"/"+encodeURIComponent(t)+"/show"),n.textContent="@"+r,e.parentNode.replaceChild(n,e),c.push(t)})),"undefined"!==i.body.innerHTML){e.next=9;break}I("Votre commentaire est vide","error"),e.next=24;break;case 9:return l=Date.now(),u={type:Z.NOTE,attributedTo:L.owner,content:i.body.innerHTML,inReplyTo:m[o],published:(new Date).toISOString()},e.prev=11,f(U({id:l},u)),n(),C(!1),e.next=17,L.post(U(U({},u),{},{to:[].concat(c,[$])}));case 17:I("Commentaire posté avec succès","success"),e.next=24;break;case 20:e.prev=20,e.t0=e.catch(11),p(l),I(e.t0.message,"error");case 24:case"end":return e.stop()}}),e,null,[[11,20]])})));return function(t,r){return e.apply(this,arguments)}}(),[L,I,C,f,p]),M=r((function(){h.id||D(!0)}),[h,D]);return l&&!l.items||!h?null:e.createElement(e.Fragment,null,e.createElement(w,{onSubmit:F,subscription:{submitting:!0,pristine:!0},render:function(t){var r,n,o,c,u=t.handleSubmit,s=t.submitting;if(t.pristine){var d=document.getElementById("comment");d&&""!==d.textContent&&(d.innerHTML="")}return e.createElement("form",{onSubmit:u,className:E.form},e.createElement(x,{className:E.container,onClick:M},e.createElement(O,{src:(null==h||null===(r=h.webIdData)||void 0===r?void 0:r[null==v||null===(n=v.fieldsMapping)||void 0===n?void 0:n.image])||(null==h||null===(o=h.profileData)||void 0===o?void 0:o[null==v||null===(c=v.fieldsMapping)||void 0===c?void 0:c.image]),className:E.avatar}),e.createElement(y,{source:"comment",label:"",toolbar:null,fullWidth:!0,classes:{editorContent:E.editorContent},editorOptions:U(U({},g),{},{onFocus:function(){C(!0)},extensions:[].concat(K(g.extensions),[i?b.configure({placeholder:i}):null,l?te.configure({HTMLAttributes:{class:"mention"},suggestion:l}):null]),editable:!!h.id}),helperText:a}),N&&e.createElement(T,{type:"submit",size:"small",variant:"contained",color:"primary",endIcon:e.createElement(A,null),disabled:s,className:E.button},"Envoyer")))}}),e.createElement(j,{open:P,onClose:function(){return D(!1)},message:"Pour poster un commentaire, vous devez être connecté."}))},oe=E((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}}})),ie=function(t){var r=t.comments,n=t.userResource,o=t.loading,i=oe(),a=R(n);return e.createElement(x,{position:"relative"},r&&r.sort((function(e,t){return new Date(t.published)-new Date(e.published)})).map((function(t){var r,o;return e.createElement(x,{className:i.container},e.createElement(x,{className:i.avatar},e.createElement(S,{record:t,reference:n,source:"attributedTo",linkType:"show"},e.createElement(P,{image:null==a||null===(r=a.fieldsMapping)||void 0===r?void 0:r.image}))),e.createElement(x,{className:i.text},e.createElement(I,{variant:"body2"},e.createElement(S,{record:t,reference:n,source:"attributedTo",linkType:"show"},e.createElement(d,{variant:"body2",source:null==a||null===(o=a.fieldsMapping)||void 0===o?void 0:o.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(x,{minHeight:200},e.createElement(x,{alignItems:"center",className:i.loading},e.createElement(L,{size:60,thickness:6}))))},ae=function(e){var i=c(),a=i.identity,u=i.loaded,s=W(n([]),2),d=s[0],f=s[1],p=W(n(!1),2),m=p[0],h=p[1],v=W(n(!1),2),y=v[0],g=v[1],b=W(n(!1),2),w=b[0],E=b[1],x=t((function(){if(e){if(e.startsWith("http"))return e;var t;if(null!=a&&a.webIdData)return null==a||null===(t=a.webIdData)||void 0===t?void 0:t[e]}}),[a,e]),O=r(G(B().mark((function e(){var t,r,n,o;return B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(x){e.next=2;break}return e.abrupt("return");case 2:h(!0),t=new Headers({Accept:"application/ld+json"}),r=(null==a?void 0:a.id)&&new URL(a.id).origin,n=new URL(x).origin,o=localStorage.getItem("token"),r===n&&o&&t.set("Authorization","Bearer ".concat(o)),l.fetchJson(x,{headers:t}).then((function(e){var t=e.json;t&&t.items?f(t.items):t&&t.orderedItems?f(t.orderedItems):f([]),E(!1),g(!0),h(!1)})).catch((function(){E(!0),g(!0),h(!1)}));case 9:case"end":return e.stop()}}),e)}))),[f,g,h,E,x,a]);o((function(){!u||m||y||w||O()}),[O,u,m,y,w]);var T=r((function(e){f((function(t){return[].concat(K(t),[e])}))}),[f]),I=r((function(e){f((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[f]);return{items:d,loading:m,loaded:y,error:w,refetch:O,addItem:T,removeItem:I,url:x}},ce=function(t){t.source;var r=t.context,n=t.helperText,o=t.placeholder,i=t.userResource,a=t.mentions,c=u(),l=ae(c.replies),s=l.items,d=l.loading,f=l.addItem,p=l.removeItem;if(!i)throw new Error("No userResource defined for CommentsField");return e.createElement(e.Fragment,null,e.createElement(ne,{context:r,helperText:n,userResource:i,placeholder:o,mentions:a,addItem:f,removeItem:p}),e.createElement(ie,{comments:s,loading:d,userResource:i}))};ce.defaultProps={addLabel:!0,label:"Commentaires",placeholder:"Commencez à taper votre commentaire...",source:"id",context:"id"};var le=["collectionUrl","resource","children"],ue=function(t){var r=t.collectionUrl,n=t.resource,o=t.children,i=J(t,le);if(1!==e.Children.count(o))throw new Error("<CollectionList> 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(D,z({reference:n,record:c,source:"items"},i),o):null},se=["source","record","reference","children"],de=function(t){var r=t.source,n=t.record,o=t.reference,i=t.children,a=J(t,se);if(1!==e.Children.count(i))throw new Error("<ReferenceCollectionField> only accepts a single child");return n&&n[r]?e.createElement(ue,z({resource:o,collectionUrl:n[r]},a),i):null};de.defaultProps={addLabel:!0};var fe=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=G(B().mark((function e(t){var r,i,a,c,u,s,d;return B().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=k(["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," .")}})),u="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\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,l.fetchJson(o,{method:"POST",body:u,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}},pe=function(){return{fetch:r(function(){var e=G(B().mark((function e(t){var r,n,o,i,a,c,u,s,d;return B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.split("@"),(n=W(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,l.fetchJson(c);case 7:return u=e.sent,s=u.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)}}(),[])}},me=E((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"}}}})),he=i((function(t,r){var i=W(n(0),2),c=i[0],l=i[1],u=me(),s=function(e){var r=t.items[e];r&&t.command({id:r})};return o((function(){return l(0)}),[t.items]),a(r,(function(){return{onKeyDown:function(e){var r=e.event;return"ArrowUp"===r.key?(l((c+t.items.length-1)%t.items.length),!0):"ArrowDown"===r.key?(l((c+1)%t.items.length),!0):"Enter"===r.key&&(s(c),!0)}}})),e.createElement("div",{className:u.items},t.items.length?t.items.map((function(t,r){return e.createElement("button",{className:u.item+(r===c?" selected":""),key:r,onClick:function(){return s(r)}},t.label)})):e.createElement("div",{className:u.item},"Aucun résultat"))})),ve=function(){var e,t;return{onStart:function(r){e=new F(he,{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()}}},ye=function(e){var r,n,o=R(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:ve}};export{X as ACTIVITY_TYPES,Y as ACTOR_TYPES,ue as CollectionList,ce as CommentsField,Z as OBJECT_TYPES,$ as PUBLIC_URI,de as ReferenceCollectionField,ae as useCollection,fe as useInbox,ye as useMentions,ee as useOutbox,pe as useWebfinger};
3
+ B=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 l(e,t,r,n){var o=t&&t.prototype instanceof d?t:d,i=Object.create(o.prototype),a=new O(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 l=u(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,a),i}function u(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={};c(m,o,(function(){return this}));var h=Object.getPrototypeOf,v=h&&h(h(T([])));v&&v!==t&&r.call(v,o)&&(m=v);var y=p.prototype=d.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 l=u(e[o],e,i);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,a,c)}),(function(e){n("throw",e,a,c)})):t.resolve(d).then((function(e){s.value=e,a(s)}),(function(e){return n("throw",e,a,c)}))}c(l.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=u(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 x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function T(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<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:I}}function I(){return{value:void 0,done:!0}}return f.prototype=p,c(y,"constructor",p),c(p,"constructor",f),f.displayName=c(p,a,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,c(e,a,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},g(b.prototype),c(b.prototype,i,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new b(l(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},g(y),c(y,a,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=T,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return a.type="throw",a.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=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"),l=r.call(i,"finallyLoc");if(c&&l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,s):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),s},finish:function(e){for(var t=this.tryEntries.length-1;t>=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 _(e,t,r,n,o,i,a){try{var c=e[i](a),l=c.value}catch(e){return void r(e)}c.done?t(l):Promise.resolve(l).then(n,o)}function G(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){_(i,n,o,a,c,"next",e)}function c(e){_(i,n,o,a,c,"throw",e)}a(void 0)}))}}function V(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function z(){return(z=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function J(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function W(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)||q(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 Q(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||q(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 q(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<t;r++)n[r]=e[r];return n}var X={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"},Y={APPLICATION:"Application",GROUP:"Group",ORGANIZATION:"Organization",PERSON:"Person",SERVICE:"Service"},Z={ARTICLE:"Article",AUDIO:"Audio",DOCUMENT:"Document",EVENT:"Event",IMAGE:"Image",NOTE:"Note",PAGE:"Page",PLACE:"Place",PROFILE:"Profile",RELATIONSHIP:"Relationship",TOMBSTONE:"Tombstone",VIDEO:"Video"},$="https://www.w3.org/ns/activitystreams#Public",ee=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.outbox}),[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{post:r(function(){var e=G(B().mark((function e(t){var r,o,i;return B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=localStorage.getItem("token"),e.next=3,l.fetchJson(n,{method:"POST",body:JSON.stringify(U({"@context":"https://www.w3.org/ns/activitystreams"},t)),headers:new Headers({"Content-Type":"application/ld+json",Authorization:"Bearer ".concat(r)})});case 3:return o=e.sent,i=o.headers,e.abrupt("return",i.get("Location"));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[n]),fetch:r(G(B().mark((function e(){var t,r,i,a,c;return B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o&&n){e.next=2;break}return e.abrupt("return");case 2:return t=localStorage.getItem("token"),r=k(["as:object"]),i="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\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,l.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}},te=C.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}:{}}}}}}),re=E((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"},"& > div > p.is-editor-empty:first-child::before":{color:"grey",content:"attr(data-placeholder)",float:"left",height:0,pointerEvents:"none"},marginBottom:-19},button:{marginBottom:15}}})),ne=function(t){var o=t.context,i=t.placeholder,a=t.helperText,l=t.mentions,d=t.userResource,f=t.addItem,p=t.removeItem,m=u(),h=c().identity,v=R(d),E=re(),I=s(),L=ee(),k=W(n(!1),2),N=k[0],C=k[1],S=W(n(!1),2),P=S[0],D=S[1],F=r(function(){var e=G(B().mark((function e(t,r){var n,i,a,c,l,u;return B().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+"/"+d+"/"+encodeURIComponent(t)+"/show"),n.textContent="@"+r,e.parentNode.replaceChild(n,e),c.push(t)})),"undefined"!==i.body.innerHTML){e.next=9;break}I("Votre commentaire est vide","error"),e.next=24;break;case 9:return l=Date.now(),u={type:Z.NOTE,attributedTo:L.owner,content:i.body.innerHTML,inReplyTo:m[o],published:(new Date).toISOString()},e.prev=11,f(U({id:l},u)),n(),C(!1),e.next=17,L.post(U(U({},u),{},{to:[].concat(c,[$])}));case 17:I("Commentaire posté avec succès","success"),e.next=24;break;case 20:e.prev=20,e.t0=e.catch(11),p(l),I(e.t0.message,"error");case 24:case"end":return e.stop()}}),e,null,[[11,20]])})));return function(t,r){return e.apply(this,arguments)}}(),[L,I,C,f,p]),M=r((function(){h.id||D(!0)}),[h,D]);return l&&!l.items||!h?null:e.createElement(e.Fragment,null,e.createElement(w,{onSubmit:F,subscription:{submitting:!0,pristine:!0},render:function(t){var r,n,o,c,u=t.handleSubmit,s=t.submitting;if(t.pristine){var d=document.getElementById("comment");d&&""!==d.textContent&&(d.innerHTML="")}return e.createElement("form",{onSubmit:u,className:E.form},e.createElement(x,{className:E.container,onClick:M},e.createElement(O,{src:(null==h||null===(r=h.webIdData)||void 0===r?void 0:r[null==v||null===(n=v.fieldsMapping)||void 0===n?void 0:n.image])||(null==h||null===(o=h.profileData)||void 0===o?void 0:o[null==v||null===(c=v.fieldsMapping)||void 0===c?void 0:c.image]),className:E.avatar}),e.createElement(y,{source:"comment",label:"",toolbar:null,fullWidth:!0,classes:{editorContent:E.editorContent},editorOptions:U(U({},g),{},{onFocus:function(){C(!0)},extensions:[].concat(K(g.extensions),[i?b.configure({placeholder:i}):null,l?te.configure({HTMLAttributes:{class:"mention"},suggestion:l}):null]),editable:!!h.id}),helperText:a}),N&&e.createElement(T,{type:"submit",size:"small",variant:"contained",color:"primary",endIcon:e.createElement(A,null),disabled:s,className:E.button},"Envoyer")))}}),e.createElement(j,{open:P,onClose:function(){return D(!1)},message:"Pour poster un commentaire, vous devez être connecté."}))},oe=E((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}}})),ie=function(t){var r=t.comments,n=t.userResource,o=t.loading,i=oe(),a=R(n);return e.createElement(x,{position:"relative"},r&&r.sort((function(e,t){return new Date(t.published)-new Date(e.published)})).map((function(t){var r,o;return e.createElement(x,{className:i.container},e.createElement(x,{className:i.avatar},e.createElement(S,{record:t,reference:n,source:"attributedTo",linkType:"show"},e.createElement(P,{image:null==a||null===(r=a.fieldsMapping)||void 0===r?void 0:r.image}))),e.createElement(x,{className:i.text},e.createElement(I,{variant:"body2"},e.createElement(S,{record:t,reference:n,source:"attributedTo",linkType:"show"},e.createElement(d,{variant:"body2",source:null==a||null===(o=a.fieldsMapping)||void 0===o?void 0:o.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(x,{minHeight:200},e.createElement(x,{alignItems:"center",className:i.loading},e.createElement(L,{size:60,thickness:6}))))},ae=function(e){return e?Array.isArray(e)?e:[e]:[]},ce=function(e){var i=c(),a=i.identity,u=i.loaded,s=W(n([]),2),d=s[0],f=s[1],p=W(n(!1),2),m=p[0],h=p[1],v=W(n(!1),2),y=v[0],g=v[1],b=W(n(!1),2),w=b[0],E=b[1],x=t((function(){if(e){if(e.startsWith("http"))return e;var t;if(null!=a&&a.webIdData)return null==a||null===(t=a.webIdData)||void 0===t?void 0:t[e]}}),[a,e]),O=r(G(B().mark((function e(){var t,r,n,o;return B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(x){e.next=2;break}return e.abrupt("return");case 2:h(!0),t=new Headers({Accept:"application/ld+json"}),r=(null==a?void 0:a.id)&&new URL(a.id).origin,n=new URL(x).origin,o=localStorage.getItem("token"),r===n&&o&&t.set("Authorization","Bearer ".concat(o)),l.fetchJson(x,{headers:t}).then((function(e){var t=e.json;t&&t.items?f(ae(t.items)):t&&t.orderedItems?f(ae(t.orderedItems)):f([]),E(!1),g(!0),h(!1)})).catch((function(){E(!0),g(!0),h(!1)}));case 9:case"end":return e.stop()}}),e)}))),[f,g,h,E,x,a]);o((function(){!u||m||y||w||O()}),[O,u,m,y,w]);var T=r((function(e){f((function(t){return[].concat(K(t),[e])}))}),[f]),I=r((function(e){f((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[f]);return{items:d,loading:m,loaded:y,error:w,refetch:O,addItem:T,removeItem:I,url:x}},le=function(t){t.source;var r=t.context,n=t.helperText,o=t.placeholder,i=t.userResource,a=t.mentions,c=u(),l=ce(c.replies),s=l.items,d=l.loading,f=l.addItem,p=l.removeItem;if(!i)throw new Error("No userResource defined for CommentsField");return e.createElement(e.Fragment,null,e.createElement(ne,{context:r,helperText:n,userResource:i,placeholder:o,mentions:a,addItem:f,removeItem:p}),e.createElement(ie,{comments:s,loading:d,userResource:i}))};le.defaultProps={addLabel:!0,label:"Commentaires",placeholder:"Commencez à taper votre commentaire...",source:"id",context:"id"};var ue=["collectionUrl","resource","children"],se=function(t){var r=t.collectionUrl,n=t.resource,o=t.children,i=J(t,ue);if(1!==e.Children.count(o))throw new Error("<CollectionList> 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(D,z({reference:n,record:c,source:"items"},i),o):null},de=["source","record","reference","children"],fe=function(t){var r=t.source,n=t.record,o=t.reference,i=t.children,a=J(t,de);if(1!==e.Children.count(i))throw new Error("<ReferenceCollectionField> only accepts a single child");return n&&n[r]?e.createElement(se,z({resource:o,collectionUrl:n[r]},a),i):null};fe.defaultProps={addLabel:!0};var pe=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=G(B().mark((function e(t){var r,i,a,c,u,s,d;return B().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=k(["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," .")}})),u="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\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,l.fetchJson(o,{method:"POST",body:u,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}},me=function(){return{fetch:r(function(){var e=G(B().mark((function e(t){var r,n,o,i,a,c,u,s,d;return B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.split("@"),(n=W(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,l.fetchJson(c);case 7:return u=e.sent,s=u.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)}}(),[])}},he=E((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"}}}})),ve=i((function(t,r){var i=W(n(0),2),c=i[0],l=i[1],u=he(),s=function(e){var r=t.items[e];r&&t.command({id:r})};return o((function(){return l(0)}),[t.items]),a(r,(function(){return{onKeyDown:function(e){var r=e.event;return"ArrowUp"===r.key?(l((c+t.items.length-1)%t.items.length),!0):"ArrowDown"===r.key?(l((c+1)%t.items.length),!0):"Enter"===r.key&&(s(c),!0)}}})),e.createElement("div",{className:u.items},t.items.length?t.items.map((function(t,r){return e.createElement("button",{className:u.item+(r===c?" selected":""),key:r,onClick:function(){return s(r)}},t.label)})):e.createElement("div",{className:u.item},"Aucun résultat"))})),ye=function(){var e,t;return{onStart:function(r){e=new F(ve,{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()}}},ge=function(e){var r,n,o=R(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:ye}};export{X as ACTIVITY_TYPES,Y as ACTOR_TYPES,se as CollectionList,le as CommentsField,Z as OBJECT_TYPES,$ as PUBLIC_URI,fe as ReferenceCollectionField,ce as useCollection,pe as useInbox,ge as useMentions,ee as useOutbox,me as useWebfinger};
4
4
  //# sourceMappingURL=index.es.js.map
@@ -1 +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: <https://www.w3.org/ns/activitystreams#>\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 Placeholder from '@tiptap/extension-placeholder';\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 '& > div > p.is-editor-empty:first-child::before': {\n color: 'grey',\n content: 'attr(data-placeholder)',\n float: 'left',\n height: 0,\n pointerEvents: 'none'\n },\n marginBottom: -19 // To hide helper text block\n },\n button: {\n marginBottom: 15\n }\n}));\n\nconst PostCommentForm = ({ context, placeholder, 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 <Form\n onSubmit={onSubmit}\n subscription={{ submitting: true, pristine: true }}\n render={({ handleSubmit, submitting, pristine }) => {\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.textContent !== '') commentElement.innerHTML = '';\n }\n return (\n <form onSubmit={handleSubmit} className={classes.form}>\n <Box className={classes.container} onClick={openAuthIfDisconnected}>\n <Avatar\n src={\n identity?.webIdData?.[userDataModel?.fieldsMapping?.image] ||\n identity?.profileData?.[userDataModel?.fieldsMapping?.image]\n }\n className={classes.avatar}\n />\n <RichTextInput\n source=\"comment\"\n label=\"\"\n toolbar={null}\n fullWidth\n classes={{ editorContent: classes.editorContent }}\n editorOptions={{\n ...DefaultEditorOptions,\n onFocus() {\n setExpanded(true);\n },\n extensions: [\n ...DefaultEditorOptions.extensions,\n placeholder ? Placeholder.configure({ placeholder }) : null,\n mentions\n ? CustomMention.configure({\n HTMLAttributes: {\n class: 'mention'\n },\n suggestion: mentions\n })\n : null\n ],\n // Disable editor if user is not connected\n editable: !!identity.id\n }}\n helperText={helperText}\n />\n {expanded && (\n <Button\n type=\"submit\"\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n endIcon={<SendIcon />}\n disabled={submitting}\n className={classes.button}\n >\n Envoyer\n </Button>\n )}\n </Box>\n </form>\n );\n }}\n />\n <AuthDialog\n open={openAuth}\n onClose={() => 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 <Box position=\"relative\">\n {comments &&\n comments\n .sort((a, b) => new Date(b.published) - new Date(a.published))\n .map(comment => (\n <Box className={classes.container}>\n <Box className={classes.avatar}>\n <ReferenceField record={comment} reference={userResource} source=\"attributedTo\" linkType=\"show\">\n <AvatarWithLabelField image={userDataModel?.fieldsMapping?.image} />\n </ReferenceField>\n </Box>\n <Box className={classes.text}>\n <Typography variant=\"body2\">\n <ReferenceField record={comment} reference={userResource} source=\"attributedTo\" linkType=\"show\">\n <TextField variant=\"body2\" source={userDataModel?.fieldsMapping?.title} className={classes.label} />\n </ReferenceField>\n &nbsp;•&nbsp;\n <DateField record={comment} variant=\"body2\" source=\"published\" showTime />\n </Typography>\n <RichTextField record={comment} variant=\"body1\" source=\"content\" className={classes.content} />\n </Box>\n </Box>\n ))}\n {loading && (\n <Box minHeight={200}>\n <Box alignItems=\"center\" className={classes.loading}>\n <CircularProgress size={60} thickness={6} />\n </Box>\n </Box>\n )}\n </Box>\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, loaded: identityLoaded } = 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\n const headers = new Headers({ Accept: 'application/ld+json' });\n\n // Add authorization token if it is set and if the user is on the same server as the collection\n const identityOrigin = identity?.id && (new URL(identity.id)).origin;\n const collectionOrigin = (new URL(collectionUrl)).origin;\n const token = localStorage.getItem('token');\n if (identityOrigin === collectionOrigin && token) {\n headers.set('Authorization', `Bearer ${token}`)\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, identity]);\n\n useEffect(() => {\n if (identityLoaded && !loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, identityLoaded, 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, placeholder, 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 <PostCommentForm\n context={context}\n helperText={helperText}\n userResource={userResource}\n placeholder={placeholder}\n mentions={mentions}\n addItem={addItem}\n removeItem={removeItem}\n />\n <CommentsList comments={comments} loading={loading} userResource={userResource} />\n </>\n );\n};\n\nCommentsField.defaultProps = {\n addLabel: true,\n label: 'Commentaires',\n placeholder: 'Commencez à taper votre commentaire...',\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('<CollectionList> 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 <div style={{ marginTop: 8 }}>\n <LinearProgress />\n </div>\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n <ReferenceArrayField reference={resource} record={collection} source=\"items\" {...rest}>\n {children}\n </ReferenceArrayField>\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('<ReferenceCollectionField> only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n <CollectionList resource={reference} collectionUrl={record[source]} {...rest}>\n {children}\n </CollectionList>\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: <https://www.w3.org/ns/activitystreams#>\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 <div className={classes.items}>\n {props.items.length ? (\n props.items.map((item, index) => (\n <button\n className={classes.item + (index === selectedIndex ? ' selected' : '')}\n key={index}\n onClick={() => selectItem(index)}\n >\n {item.label}\n </button>\n ))\n ) : (\n <div className={classes.item}>Aucun résultat</div>\n )}\n </div>\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","& > div > p.is-editor-empty:first-child::before","color","content","float","pointerEvents","button","PostCommentForm","context","placeholder","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","inReplyTo","published","toISOString","to","t0","message","_x2","openAuthIfDisconnected","items","React","Fragment","Form","subscription","submitting","pristine","render","_ref4","_userDataModel$fields","_identity$profileData","_userDataModel$fields2","handleSubmit","commentElement","getElementById","className","Box","onClick","Avatar","src","fieldsMapping","image","profileData","RichTextInput","source","toolbar","fullWidth","editorOptions","DefaultEditorOptions","onFocus","extensions","_toConsumableArray","Placeholder","configure","class","suggestion","editable","Button","size","variant","endIcon","SendIcon","disabled","AuthDialog","open","onClose","text","paddingTop","paddingBottom","fontWeight","& p","loading","zIndex","opacity","right","display","alignItems","justifyContent","CommentsList","comments","sort","a","b","map","ReferenceField","reference","linkType","AvatarWithLabelField","Typography","TextField","title","DateField","showTime","RichTextField","CircularProgress","thickness","useCollection","predicateOrUrl","_useGetIdentity","identityLoaded","loaded","setItems","setLoading","_useState6","setLoaded","_useState8","error","setError","collectionUrl","startsWith","identityOrigin","collectionOrigin","set","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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"}
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/utils.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: <https://www.w3.org/ns/activitystreams#>\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 Placeholder from '@tiptap/extension-placeholder';\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 '& > div > p.is-editor-empty:first-child::before': {\n color: 'grey',\n content: 'attr(data-placeholder)',\n float: 'left',\n height: 0,\n pointerEvents: 'none'\n },\n marginBottom: -19 // To hide helper text block\n },\n button: {\n marginBottom: 15\n }\n}));\n\nconst PostCommentForm = ({ context, placeholder, 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 <Form\n onSubmit={onSubmit}\n subscription={{ submitting: true, pristine: true }}\n render={({ handleSubmit, submitting, pristine }) => {\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.textContent !== '') commentElement.innerHTML = '';\n }\n return (\n <form onSubmit={handleSubmit} className={classes.form}>\n <Box className={classes.container} onClick={openAuthIfDisconnected}>\n <Avatar\n src={\n identity?.webIdData?.[userDataModel?.fieldsMapping?.image] ||\n identity?.profileData?.[userDataModel?.fieldsMapping?.image]\n }\n className={classes.avatar}\n />\n <RichTextInput\n source=\"comment\"\n label=\"\"\n toolbar={null}\n fullWidth\n classes={{ editorContent: classes.editorContent }}\n editorOptions={{\n ...DefaultEditorOptions,\n onFocus() {\n setExpanded(true);\n },\n extensions: [\n ...DefaultEditorOptions.extensions,\n placeholder ? Placeholder.configure({ placeholder }) : null,\n mentions\n ? CustomMention.configure({\n HTMLAttributes: {\n class: 'mention'\n },\n suggestion: mentions\n })\n : null\n ],\n // Disable editor if user is not connected\n editable: !!identity.id\n }}\n helperText={helperText}\n />\n {expanded && (\n <Button\n type=\"submit\"\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n endIcon={<SendIcon />}\n disabled={submitting}\n className={classes.button}\n >\n Envoyer\n </Button>\n )}\n </Box>\n </form>\n );\n }}\n />\n <AuthDialog\n open={openAuth}\n onClose={() => 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 <Box position=\"relative\">\n {comments &&\n comments\n .sort((a, b) => new Date(b.published) - new Date(a.published))\n .map(comment => (\n <Box className={classes.container}>\n <Box className={classes.avatar}>\n <ReferenceField record={comment} reference={userResource} source=\"attributedTo\" linkType=\"show\">\n <AvatarWithLabelField image={userDataModel?.fieldsMapping?.image} />\n </ReferenceField>\n </Box>\n <Box className={classes.text}>\n <Typography variant=\"body2\">\n <ReferenceField record={comment} reference={userResource} source=\"attributedTo\" linkType=\"show\">\n <TextField variant=\"body2\" source={userDataModel?.fieldsMapping?.title} className={classes.label} />\n </ReferenceField>\n &nbsp;•&nbsp;\n <DateField record={comment} variant=\"body2\" source=\"published\" showTime />\n </Typography>\n <RichTextField record={comment} variant=\"body1\" source=\"content\" className={classes.content} />\n </Box>\n </Box>\n ))}\n {loading && (\n <Box minHeight={200}>\n <Box alignItems=\"center\" className={classes.loading}>\n <CircularProgress size={60} thickness={6} />\n </Box>\n </Box>\n )}\n </Box>\n );\n};\n\nexport default CommentsList;\n","export const arrayOf = value => {\n // If the field is null-ish, we suppose there are no values.\n if (!value) {\n return [];\n }\n // Return as is.\n if (Array.isArray(value)) {\n return value;\n }\n // Single value is made an array.\n return [value];\n};\n\nexport default {\n arrayOf\n};\n","import { useCallback, useMemo, useState, useEffect } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { arrayOf } from '../utils';\n\nconst useCollection = predicateOrUrl => {\n const { identity, loaded: identityLoaded } = 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\n const headers = new Headers({ Accept: 'application/ld+json' });\n\n // Add authorization token if it is set and if the user is on the same server as the collection\n const identityOrigin = identity?.id && (new URL(identity.id)).origin;\n const collectionOrigin = (new URL(collectionUrl)).origin;\n const token = localStorage.getItem('token');\n if (identityOrigin === collectionOrigin && token) {\n headers.set('Authorization', `Bearer ${token}`)\n }\n\n fetchUtils\n .fetchJson(collectionUrl, { headers })\n .then(({ json }) => {\n if (json && json.items) {\n setItems(arrayOf(json.items));\n } else if (json && json.orderedItems) {\n setItems(arrayOf(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, identity]);\n\n useEffect(() => {\n if (identityLoaded && !loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, identityLoaded, 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, placeholder, 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 <PostCommentForm\n context={context}\n helperText={helperText}\n userResource={userResource}\n placeholder={placeholder}\n mentions={mentions}\n addItem={addItem}\n removeItem={removeItem}\n />\n <CommentsList comments={comments} loading={loading} userResource={userResource} />\n </>\n );\n};\n\nCommentsField.defaultProps = {\n addLabel: true,\n label: 'Commentaires',\n placeholder: 'Commencez à taper votre commentaire...',\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('<CollectionList> 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 <div style={{ marginTop: 8 }}>\n <LinearProgress />\n </div>\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n <ReferenceArrayField reference={resource} record={collection} source=\"items\" {...rest}>\n {children}\n </ReferenceArrayField>\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('<ReferenceCollectionField> only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n <CollectionList resource={reference} collectionUrl={record[source]} {...rest}>\n {children}\n </CollectionList>\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: <https://www.w3.org/ns/activitystreams#>\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 <div className={classes.items}>\n {props.items.length ? (\n props.items.map((item, index) => (\n <button\n className={classes.item + (index === selectedIndex ? ' selected' : '')}\n key={index}\n onClick={() => selectItem(index)}\n >\n {item.label}\n </button>\n ))\n ) : (\n <div className={classes.item}>Aucun résultat</div>\n )}\n </div>\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","& > div > p.is-editor-empty:first-child::before","color","content","float","pointerEvents","button","PostCommentForm","context","placeholder","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","inReplyTo","published","toISOString","to","t0","message","_x2","openAuthIfDisconnected","items","React","Fragment","Form","subscription","submitting","pristine","render","_ref4","_userDataModel$fields","_identity$profileData","_userDataModel$fields2","handleSubmit","commentElement","getElementById","className","Box","onClick","Avatar","src","fieldsMapping","image","profileData","RichTextInput","source","toolbar","fullWidth","editorOptions","DefaultEditorOptions","onFocus","extensions","_toConsumableArray","Placeholder","configure","class","suggestion","editable","Button","size","variant","endIcon","SendIcon","disabled","AuthDialog","open","onClose","text","paddingTop","paddingBottom","fontWeight","& p","loading","zIndex","opacity","right","display","alignItems","justifyContent","CommentsList","comments","sort","a","b","map","ReferenceField","reference","linkType","AvatarWithLabelField","Typography","TextField","title","DateField","showTime","RichTextField","CircularProgress","thickness","arrayOf","isArray","useCollection","predicateOrUrl","_useGetIdentity","identityLoaded","loaded","setItems","setLoading","_useState6","setLoaded","_useState8","error","setError","collectionUrl","startsWith","identityOrigin","collectionOrigin","set","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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@semapps/activitypub-components",
3
- "version": "0.4.10",
3
+ "version": "0.4.11",
4
4
  "description": "React-Admin components for ActivityPub display",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Virtual Assembly",
@@ -14,9 +14,9 @@
14
14
  "dev": "rollup --watch --sourcemap --config"
15
15
  },
16
16
  "dependencies": {
17
- "@semapps/auth-provider": "0.4.10",
18
- "@semapps/field-components": "0.4.10",
19
- "@semapps/semantic-data-provider": "0.4.10",
17
+ "@semapps/auth-provider": "0.4.11",
18
+ "@semapps/field-components": "0.4.11",
19
+ "@semapps/semantic-data-provider": "0.4.11",
20
20
  "@tiptap/core": "^2.0.0-beta.95",
21
21
  "@tiptap/extension-mention": "^2.0.0-beta.95",
22
22
  "@tiptap/extension-placeholder": "^2.0.0-beta.95",
@@ -44,5 +44,5 @@
44
44
  "rollup-plugin-terser": "^5.3.0",
45
45
  "rollup-pluginutils": "^2.8.2"
46
46
  },
47
- "gitHead": "41355d83318e0dfbdcfb7982819f385c3554de4d"
47
+ "gitHead": "0c86bc707d3d005703285756962b5548a65326bd"
48
48
  }