@semapps/semantic-data-provider 0.3.9 → 0.4.0-alpha.10

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,2 +1,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r=require("react"),t=e(r),n=require("react-admin"),a=require("@material-ui/core/styles"),o=e(require("jsonld"));function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,r,t,n,a,o,i){try{var c=e[o](i),u=c.value}catch(e){return void t(e)}c.done?r(u):Promise.resolve(u).then(n,a)}function u(e){return function(){var r=this,t=arguments;return new Promise((function(n,a){var o=e.apply(r,t);function i(e){c(o,n,a,i,u,"next",e)}function u(e){c(o,n,a,i,u,"throw",e)}i(void 0)}))}}function s(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(){return(l=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function f(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?f(Object(t),!0).forEach((function(r){s(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):f(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function d(e,r){if(null==e)return{};var t,n,a=function(e,r){if(null==e)return{};var t,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}function y(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],n=!0,a=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(n=(i=c.next()).done)&&(t.push(i.value),!r||t.length!==r);n=!0);}catch(e){a=!0,o=e}finally{try{n||null==c.return||c.return()}finally{if(a)throw o}}return t}(e,r)||m(e,r)||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 m(e,r){if(e){if("string"==typeof e)return h(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?h(e,r):void 0}}function h(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function b(e){if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=m(e))){var r=0,t=function(){};return{s:t,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,a,o=!0,i=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){i=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(i)throw a}}}}var v=function(e){var r=e.record,a=e.source,o=d(e,["record","source"]);return(null==r?void 0:r[a])&&(Array.isArray(r[a])||(r[a]=[r[a]]),r[a]=r[a].map((function(e){return e["@id"]||e.id||e}))),t.createElement(n.ReferenceArrayField,l({record:r,source:a},o))};v.defaultProps={addLabel:!0};var g=function(e){var r=e.record,a=e.source,o=d(e,["record","source"]);return r[a]&&"object"===i(r[a])&&(r[a]=r[a]["@id"]||r[a].id),t.createElement(n.ReferenceField,l({record:r,source:a},o))};g.defaultProps={addLabel:!0};var x=function(e){var n=e.children,a=e.record,o=e.filter,i=e.source,c=d(e,["children","record","filter","source"]),u=y(r.useState(),2),s=u[0],l=u[1];return r.useEffect((function(){if(a&&i&&Array.isArray(null==a?void 0:a[i])){var e=null==a?void 0:a[i].filter((function(e){var r=!0;for(var t in o){var n=e[t];Array.isArray(n)?n.includes(o[t])||(r=!1):n!==o[t]&&(r=!1)}return r})),r=p({},a);r[i]=e.length>0?e:void 0,l(r)}}),[a,i,o]),t.createElement(t.Fragment,null,t.Children.map(n,(function(e,r){return t.cloneElement(e,p(p({},c),{},{record:s,addLabel:!0,source:i}))})))},j=function(e){var r=n.useResourceContext({});return t.createElement(n.ReferenceArrayInput,l({},e,{resource:r,format:function(r){return r?(Array.isArray(r)||(r=[r]),e.format&&(r=e.format(r)),r.map((function(e){return"object"===i(e)?e.id||e["@id"]:e}))):r}}))},w=a.makeStyles({form:{display:"flex"},input:{paddingRight:"20px"}}),O=a.makeStyles({root:{display:"none"}}),R=function(e){return e.split(":").map((function(e){return e[0].toUpperCase()+e.slice(1)})).join("")},E=function(e){var r,t={};if(e){var n,a=b(e);try{for(a.s();!(n=a.n()).done;){var o=n.value;r=o.includes("/")?o.split("/").reverse():[o],t=p(p({},t),r.reduce((function(e,r){return s({},r,p({"@embed":"@last"},e))}),{}))}}catch(e){a.e(e)}finally{a.f()}return t}},A=function(e){var r=e.types,t=e.params.filter,n=e.dereference,a=e.ontologies,o="";t&&(t.q&&t.q.length>0&&(o+='\n {\n SELECT ?s1\n WHERE {\n ?s1 ?p1 ?o1 .\n FILTER regex(lcase(str(?o1)), "'.concat(t.q.toLowerCase(),'")\n FILTER NOT EXISTS {?s1 a ?o1}\n }\n }\n '),delete t.q),Object.keys(t).forEach((function(e){if(t[e]){var r=t[e].startsWith("http")?"<".concat(t[e],">"):t[e];o+="?s1 ".concat(e," ").concat(r," .")}})));var i=function(e){var r=[];if(e)for(var t=e.reduce((function(e,r){return function e(r,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"root";if(t.includes("/")){var a=t.split(/\/(.+)/);r[a[0]]=n,e(r,a[1],a[0])}else r[t]=n;return r}(e,r)}),{}),n=0,a=Object.entries(t);n<a.length;n++){var o=y(a[n],2),i=o[0],c=o[1],u=R(i),s="root"===c?"1":R(c),l="root"===c?i:c;r[l]||(r[l]=[]),r[l].push("\n ?s".concat(s," ").concat(i," ?s").concat(u," .\n ?s").concat(u," ?p").concat(u," ?o").concat(u," .\n "))}return{construct:Object.values(r).map((function(e){return Object.values(e).join("\n")})).join("\n"),where:Object.values(r).map((function(e){return"OPTIONAL { ".concat(Object.values(e).join("\n")," }")})).join("\n")}}(n);return"\n ".concat(function(e){return e.map((function(e){return"PREFIX ".concat(e.prefix,": <").concat(e.url,">")})).join("\n")}(a),"\n CONSTRUCT {\n ?s1 ?p2 ?o2 .\n ").concat(i.construct,"\n }\n WHERE {\n ?s1 a ?type .\n FILTER( ?type IN (").concat(r.join(", "),") ) .\n FILTER( (isIRI(?s1)) ) .\n ").concat(o,"\n ").concat(i.where,"\n ?s1 ?p2 ?o2 .\n }\n ")},k=require("speakingurl"),S=function(e){var r={};return e.forEach((function(e){return r[e.prefix]=e.url})),r},P=function(e){return e&&e.rawFile&&e.rawFile instanceof File};exports.DateTimeInput=function(e){return t.createElement(n.DateTimeInput,l({},e,{format:function(e){return e&&e.replace(" ","T").replace("Z","")}}))},exports.FilterHandler=x,exports.GroupedReferenceHandler=function(e){var r=e.children,a=e.groupReference,o=e.groupLabel,i=e.groupHeader,c=e.filterProperty,u=d(e,["children","groupReference","groupLabel","groupHeader","filterProperty"]),s=n.useQueryWithStore({type:"getList",resource:a,payload:{}}).data;return t.createElement(t.Fragment,null,null==s?void 0:s.map((function(e,n){var a={};return a[c]=e.id,t.createElement(t.Fragment,null,i&&i(p(p({},u),{},{group:e})),t.createElement(x,l({},u,{filter:a,label:e[o]}),r))})))},exports.ImageField=function(e){var r=e.record,a=e.source,o=d(e,["record","source"]);return"string"==typeof r&&(r=s({},a,r)),t.createElement(n.ImageField,l({record:r,source:a},o))},exports.ReferenceArrayField=v,exports.ReferenceArrayInput=j,exports.ReferenceField=g,exports.ReferenceInput=function(e){var r=n.useResourceContext({});return t.createElement(n.ReferenceInput,l({},e,{resource:r,format:function(r){return r?(e.format&&(r=e.format(r)),"object"===i(r)?r.id||r["@id"]:r):r}}))},exports.ReificationArrayInput=function(e){var r=e.reificationClass,a=(e.children,d(e,["reificationClass","children"])),o=w(),i=O();return t.createElement(n.ArrayInput,a,t.createElement(n.SimpleFormIterator,{classes:{form:o.form}},t.Children.map(e.children,(function(e,r){return t.cloneElement(e,{className:o.input})})),t.createElement(n.TextInput,{className:i.root,source:"type",initialValue:r})))},exports.UriArrayField=v,exports.UriArrayInput=j,exports.dataProvider=function(e){var r,t,n,a,c,l,f,d=e.sparqlEndpoint,m=e.httpClient,h=e.resources,v=e.ontologies,g=e.jsonContext,x=e.uploadsContainerUri,j=e.returnFailedResources,w=void 0!==j&&j,O=function(){var e=u(regeneratorRuntime.mark((function e(r){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(x){e.next=2;break}throw new Error("No uploadsContainerUri defined for the data provider");case 2:return e.next=4,m(x,{method:"POST",body:r,headers:new Headers({Slug:(n=r.name,a=void 0,o=void 0,a="",o=n.split("."),o.length>1&&(a=o.pop(),n=o.join(".")),k(n,{lang:"fr"})+"."+a),"Content-Type":r.type})});case 4:if(201!==(t=e.sent).status){e.next=7;break}return e.abrupt("return",t.headers.get("Location"));case 7:case"end":return e.stop()}var n,a,o}),e)})));return function(r){return e.apply(this,arguments)}}(),R=function(){var e=u(regeneratorRuntime.mark((function e(r){var t,n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=regeneratorRuntime.keys(r);case 1:if((e.t1=e.t0()).done){e.next=22;break}if(t=e.t1.value,!r.hasOwnProperty(t)){e.next=20;break}if(!Array.isArray(r[t])){e.next=16;break}n=0;case 6:if(!(n<r[t].length)){e.next=14;break}if(!P(r[t][n])){e.next=11;break}return e.next=10,O(r[t][n].rawFile);case 10:r[t][n]=e.sent;case 11:n++,e.next=6;break;case 14:e.next=20;break;case 16:if(!P(r[t])){e.next=20;break}return e.next=19,O(r[t].rawFile);case 19:r[t]=e.sent;case 20:e.next=1;break;case 22:return e.abrupt("return",r);case 23:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),I=function(){var e=u(regeneratorRuntime.mark((function e(r,t){var n,a,i,c,u,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=A({types:h[r].types,params:p(p({},t),{},{filter:p(p({},h[r].filter),t.filter)}),dereference:h[r].dereference,ontologies:v}),e.next=3,m(d,{method:"POST",body:n});case 3:return a=e.sent,i=a.json,c=p({"@context":g||S(v),"@type":h[r].types,"@embed":"@never"},E(h[r].dereference)),e.next=8,o.frame(i,c,{omitGraph:!1});case 8:if(u=e.sent,1!==Object.keys(u).length){e.next=13;break}return e.abrupt("return",{data:[],total:0});case 13:return s=u["@graph"].map((function(e){return e.id=e.id||e["@id"],e})),t.sort&&(s=s.sort((function(e,r){return!e[t.sort.field]||!r[t.sort.field]||("ASC"===t.sort.order?e[t.sort.field].localeCompare(r[t.sort.field]):r[t.sort.field].localeCompare(e[t.sort.field]))}))),t.pagination&&(s=s.slice((t.pagination.page-1)*t.pagination.perPage,t.pagination.page*t.pagination.perPage)),e.abrupt("return",{data:s,total:u["@graph"].length});case 17:case"end":return e.stop()}}),e)})));return function(r,t){return e.apply(this,arguments)}}();return{getList:(f=u(regeneratorRuntime.mark((function e(r,t){var n,a,o,i,c,u,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(h[r],!(t.id||t["@id"]||h[r].fetchContainer)){e.next=27;break}return n=t.id||t["@id"]||h[r].containerUri,e.next=5,m(n);case 5:if(a=e.sent,o=a.json,l="ldp:Container",p=void 0,p=(f=o).type||f["@type"],!(Array.isArray(p)?p.includes(l):p===l)){e.next=15;break}return i=o["ldp:contains"].map((function(e){return e.id=e.id||e["@id"],e})),t.filter&&(t.filter.q&&delete t.filter.q,Object.keys(t.filter).length>0&&(i=i.filter((function(e){return Object.entries(t.filter).some((function(r){var t=y(r,2),n=t[0],a=t[1];return Array.isArray(e[n])?e[n].includes(a):e[n]===a}))})))),t.sort&&(i=i.sort((function(e,r){return!e[t.sort.field]||!r[t.sort.field]||("ASC"===t.sort.order?e[t.sort.field].localeCompare(r[t.sort.field]):r[t.sort.field].localeCompare(e[t.sort.field]))}))),t.pagination&&(i=i.slice((t.pagination.page-1)*t.pagination.perPage,t.pagination.page*t.pagination.perPage)),e.abrupt("return",{data:i,total:o["ldp:contains"].length});case 15:if(!o.first){e.next=20;break}return e.next=18,m(o.first);case 18:c=e.sent,o=c.json;case 20:if(u=["as:orderedItems","orderedItems","as:items","items"].find((function(e){return o[e]}))){e.next=23;break}return e.abrupt("return",{data:[],total:0});case 23:return s=o[u].map((function(e){return e.id=e.id||e["@id"],e})),e.abrupt("return",{data:s,total:o.totalItems});case 25:e.next=30;break;case 27:return e.next=29,I(r,t);case 29:return e.abrupt("return",e.sent);case 30:case"end":return e.stop()}var l,f,p}),e)}))),function(e,r){return f.apply(this,arguments)}),getOne:(l=u(regeneratorRuntime.mark((function e(r,t){var n,a,i,c,u,s,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return h[r],n=h[r],e.next=4,m(t.id);case 4:return a=e.sent,(i=a.json).id=i.id||i["@id"],e.next=9,o.compact(i,g||S(v));case 9:if(c=e.sent,n.forceArray){u=b(n.forceArray);try{for(u.s();!(s=u.n()).done;)l=s.value,c[l]&&!Array.isArray(c[l])&&(c[l]=[c[l]])}catch(e){u.e(e)}finally{u.f()}}return e.abrupt("return",{data:c});case 12:case"end":return e.stop()}}),e)}))),function(e,r){return l.apply(this,arguments)}),getMany:(c=u(regeneratorRuntime.mark((function e(r,t){var n,a,o,c,u,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=[],a=b(t.ids),e.prev=2,a.s();case 4:if((o=a.n()).done){e.next=21;break}return c="object"===i(c=o.value)?c["@id"]:c,e.prev=7,e.next=10,m(c);case 10:u=e.sent,(s=u.json).id=c,n.push(s),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(7),w&&n.push({id:c});case 19:e.next=4;break;case 21:e.next=26;break;case 23:e.prev=23,e.t1=e.catch(2),a.e(e.t1);case 26:return e.prev=26,a.f(),e.finish(26);case 29:return e.abrupt("return",{data:n});case 30:case"end":return e.stop()}}),e,null,[[2,23,26,29],[7,16]])}))),function(e,r){return c.apply(this,arguments)}),getManyReference:(a=u(regeneratorRuntime.mark((function e(r,t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.filter=p(p({},t.filter),{},s({},t.target,t.id)),e.next=3,I(r,t);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)}))),function(e,r){return a.apply(this,arguments)}),create:(n=u(regeneratorRuntime.mark((function e(r,t){var n,a,o,i,c,u,s,l,f,d;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return h[r],n=h[r],a=n.slugField,o=n.containerUri,i=n.types,c=new Headers,a&&c.set("Slug",Array.isArray(a)?a.map((function(e){return t.data[e]})).join(" "):t.data[a]),e.next=6,R(t.data);case 6:return t.data=e.sent,e.next=9,m(o,{method:"POST",headers:c,body:JSON.stringify(p({"@context":g||S(v),"@type":i},t.data))});case 9:return u=e.sent,s=u.headers,l=s.get("Location"),e.next=14,m(l);case 14:return f=e.sent,(d=f.json).id=d.id||d["@id"],e.abrupt("return",{data:d});case 18:case"end":return e.stop()}}),e)}))),function(e,r){return n.apply(this,arguments)}),update:(t=u(regeneratorRuntime.mark((function e(r,t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R(t.data);case 2:return t.data=e.sent,e.next=5,m(t.id,{method:"PUT",body:JSON.stringify(p({"@context":g||S(v)},t.data))});case 5:return e.abrupt("return",{data:t.data});case 6:case"end":return e.stop()}}),e)}))),function(e,r){return t.apply(this,arguments)}),updateMany:function(e,r){throw new Error("updateMany is not implemented yet")},delete:(r=u(regeneratorRuntime.mark((function e(r,t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,m(t.id,{method:"DELETE"});case 2:return e.abrupt("return",{data:{id:t.id}});case 3:case"end":return e.stop()}}),e)}))),function(e,t){return r.apply(this,arguments)}),deleteMany:function(e,r){throw new Error("deleteMany is not implemented yet")}}},exports.httpClient=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(r.headers||(r.headers=new Headers),r.method){case"POST":case"PATCH":case"PUT":r.headers.has("Accept")||r.headers.set("Accept","application/ld+json"),r.headers.has("Content-Type")||r.headers.set("Content-Type","application/ld+json");break;case"DELETE":break;case"GET":default:r.headers.has("Accept")||r.headers.set("Accept","application/ld+json")}var t=localStorage.getItem("token");return t&&r.headers.set("Authorization","Bearer ".concat(t)),n.fetchUtils.fetchJson(e,r)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("react-admin"),t=require("@material-ui/core/styles"),n=require("jsonld"),a=require("speakingurl"),o=require("crypto"),i=require("@rdfjs/data-model");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=u(e),c=u(n),l=u(a),f=u(o),p=u(i);function d(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function h(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?d(Object(t),!0).forEach((function(r){m(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):d(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function y(e){return(y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(e,r,t,n,a,o,i){try{var u=e[o](i),s=u.value}catch(e){return void t(e)}u.done?r(s):Promise.resolve(s).then(n,a)}function g(e){return function(){var r=this,t=arguments;return new Promise((function(n,a){var o=e.apply(r,t);function i(e){v(o,n,a,i,u,"next",e)}function u(e){v(o,n,a,i,u,"throw",e)}i(void 0)}))}}function m(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function b(){return(b=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function w(e,r){if(null==e)return{};var t,n,a=function(e,r){if(null==e)return{};var t,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}function x(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var n,a,o=[],i=!0,u=!1;try{for(t=t.call(e);!(i=(n=t.next()).done)&&(o.push(n.value),!r||o.length!==r);i=!0);}catch(e){u=!0,a=e}finally{try{i||null==t.return||t.return()}finally{if(u)throw a}}return o}(e,r)||S(e,r)||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 j(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||S(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 S(e,r){if(e){if("string"==typeof e)return j(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?j(e,r):void 0}}function j(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function O(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=S(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,u=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){u=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(u)throw o}}}}var E=["record","source"],C=["record","source"],R=function(e){var t=e.record,n=e.source,a=w(e,C);return null!=t&&t[n]&&(Array.isArray(t[n])||(t[n]=[t[n]]),t[n]=t[n].map((function(e){return e["@id"]||e.id||e}))),s.default.createElement(r.ReferenceArrayField,b({record:t,source:n},a))};R.defaultProps={addLabel:!0};var A=["record","source"],P=function(e){var t=e.record,n=e.source,a=w(e,A);return t[n]&&"object"===y(t[n])&&(t[n]=t[n]["@id"]||t[n].id),s.default.createElement(r.ReferenceField,b({record:t,source:n},a))};P.defaultProps={addLabel:!0};var T=["children","record","filter","source"],I=function(r){var t=r.children,n=r.record,a=r.filter,o=r.source,i=w(r,T),u=x(e.useState(),2),c=u[0],l=u[1];return e.useEffect((function(){if(n&&o&&Array.isArray(null==n?void 0:n[o])){var e=null==n?void 0:n[o].filter((function(e){var r=!0;for(var t in a){var n=e[t];Array.isArray(n)?n.includes(a[t])||(r=!1):n!==a[t]&&(r=!1)}return r})),r=h({},n);r[o]=e.length>0?e:void 0,l(r)}}),[n,o,a]),s.default.createElement(s.default.Fragment,null,s.default.Children.map(t,(function(e,r){return s.default.cloneElement(e,h(h({},i),{},{record:c,addLabel:!0,source:o}))})))},q=["children","groupReference","groupLabel","groupHeader","filterProperty"],_=function(e){var t=r.useResourceContext({});return s.default.createElement(r.ReferenceArrayInput,b({},e,{resource:t,format:function(r){return r?(Array.isArray(r)||(r=[r]),e.format&&(r=e.format(r)),r.map((function(e){return"object"===y(e)?e.id||e["@id"]:e}))):r}}))},U=["reificationClass","children"],B=t.makeStyles({form:{display:"flex"},input:{paddingRight:"20px"}}),F=t.makeStyles({root:{display:"none"}}),M=function(e,r){return Object.keys(r).find((function(t){return r[t][e]}))},H=function(e,r){return Object.keys(r).find((function(t){return e.startsWith(r[t].baseUrl)}))},L=function(){var e=g(regeneratorRuntime.mark((function e(r,t){var n,a,o,i,u,s,l,f,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=t.dataServers,i=t.httpClient,u=t.jsonContext,s=M("authServer",o),(l=H(r,o))===s||null===(n=o[s])||void 0===n||!n.proxyUrl||!0===(null===(a=o[l])||void 0===a?void 0:a.noProxy)){e.next=9;break}return e.next=6,i(o[s].proxyUrl,{method:"POST",headers:new Headers({"Content-Type":"application/x-www-form-urlencoded"}),body:new URLSearchParams({id:r})});case 6:e.t0=e.sent,e.next=12;break;case 9:return e.next=11,i(r,{noToken:l!==s});case 11:e.t0=e.sent;case 12:if(f=e.t0,(p=f.json).id=p.id||p["@id"],p["@context"]===u){e.next=19;break}return e.next=18,c.default.compact(p,u);case 18:p=e.sent;case 19:return e.abrupt("return",p);case 20:case"end":return e.stop()}}),e)})));return function(r,t){return e.apply(this,arguments)}}(),D=function(e){return function(){var r=g(regeneratorRuntime.mark((function r(t,n){var a,o,i,u,s,c,l,f,p,d,h,y,v,g;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(i=e.resources,u=i[t]){r.next=4;break}throw new Error("Resource ".concat(t," is not mapped in resources file"));case 4:return r.next=6,L(n.id,e);case 6:if(s=r.sent,null!==(a=u.list)&&void 0!==a&&a.forceArray){l=O(null===(c=u.list)||void 0===c?void 0:c.forceArray);try{for(l.s();!(f=l.n()).done;)p=f.value,s[p]&&!Array.isArray(s[p])&&(s[p]=[s[p]])}catch(e){l.e(e)}finally{l.f()}}if(null===(o=u.list)||void 0===o||!o.dereference){r.next=35;break}h=O(null===(d=u.list)||void 0===d?void 0:d.dereference),r.prev=10,h.s();case 12:if((y=h.n()).done){r.next=27;break}if(v=y.value,!s[v]||"string"!=typeof s[v]||!s[v].startsWith("http")){r.next=25;break}return r.prev=15,r.next=18,L(s[v],e);case 18:delete(g=r.sent)["@context"],s[v]=g,r.next=25;break;case 23:r.prev=23,r.t0=r.catch(15);case 25:r.next=12;break;case 27:r.next=32;break;case 29:r.prev=29,r.t1=r.catch(10),h.e(r.t1);case 32:return r.prev=32,h.f(),r.finish(32);case 35:return r.abrupt("return",{data:s});case 36:case"end":return r.stop()}}),r,null,[[10,29,32,35],[15,23]])})));return function(e,t){return r.apply(this,arguments)}}()},N="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function z(e,r){return e(r={exports:{}},r.exports),r.exports}var W=z((function(e){var r,t;r=N,t=function(){function e(e){var r=[];if(0===e.length)return"";if("string"!=typeof e[0])throw new TypeError("Url must be a string. Received "+e[0]);if(e[0].match(/^[^/:]+:\/*$/)&&e.length>1){var t=e.shift();e[0]=t+e[0]}e[0].match(/^file:\/\/\//)?e[0]=e[0].replace(/^([^/:]+):\/*/,"$1:///"):e[0]=e[0].replace(/^([^/:]+):\/*/,"$1://");for(var n=0;n<e.length;n++){var a=e[n];if("string"!=typeof a)throw new TypeError("Url must be a string. Received "+a);""!==a&&(n>0&&(a=a.replace(/^[\/]+/,"")),a=n<e.length-1?a.replace(/[\/]+$/,""):a.replace(/[\/]+$/,"/"),r.push(a))}var o=r.join("/"),i=(o=o.replace(/\/(\?|&|#[^!])/g,"$1")).split("?");return o=i.shift()+(i.length>0?"?":"")+i.join("&")}return function(){return e("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}},e.exports?e.exports=t():r.urljoin=t()})),$=function(e){return e&&e.rawFile&&e.rawFile instanceof File},J=function(e){var r=Object.keys(e.dataServers).find((function(r){return e.dataServers[r].uploadsContainer}));if(r)return W(e.dataServers[r].baseUrl,e.dataServers[r].uploadsContainer)},Y=function(){var e=g(regeneratorRuntime.mark((function e(r,t){var n,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=J(t)){e.next=3;break}throw new Error("You must define an uploadsContainer in one of the server's configuration");case 3:return e.next=5,t.httpClient(n,{method:"POST",body:r,headers:new Headers({Slug:(o=r.name,i=void 0,u=void 0,i="",u=o.split("."),u.length>1&&(i=u.pop(),o=u.join(".")),l.default(o,{lang:"fr"})+"."+i),"Content-Type":r.type})});case 5:if(201!==(a=e.sent).status){e.next=8;break}return e.abrupt("return",a.headers.get("Location"));case 8:case"end":return e.stop()}var o,i,u}),e)})));return function(r,t){return e.apply(this,arguments)}}(),G=function(){var e=g(regeneratorRuntime.mark((function e(r,t){var n,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=regeneratorRuntime.keys(r);case 1:if((e.t1=e.t0()).done){e.next=22;break}if(n=e.t1.value,!r.hasOwnProperty(n)){e.next=20;break}if(!Array.isArray(r[n])){e.next=16;break}a=0;case 6:if(!(a<r[n].length)){e.next=14;break}if(!$(r[n][a])){e.next=11;break}return e.next=10,Y(r[n][a].rawFile,t);case 10:r[n][a]=e.sent;case 11:a++,e.next=6;break;case 14:e.next=20;break;case 16:if(!$(r[n])){e.next=20;break}return e.next=19,Y(r[n].rawFile,t);case 19:r[n]=e.sent;case 20:e.next=1;break;case 22:return e.abrupt("return",r);case 23:case"end":return e.stop()}}),e)})));return function(r,t){return e.apply(this,arguments)}}(),Q=function(e,r,t){var n={},a=[];return Object.keys(t).forEach((function(o){Object.keys(t[o].containers).forEach((function(i){r&&!(Array.isArray(r)?r.includes(i):r===i)||Object.keys(t[o].containers[i]).forEach((function(r){e.includes(r)&&t[o].containers[i][r].map((function(e){var r=W(t[i].baseUrl,e);a.includes(r)||(a.push(r),n[o]||(n[o]=[]),n[o].push(r))}))}))}))})),n},V=function(e){return function(){var r=g(regeneratorRuntime.mark((function r(t,n){var a,o,i,u,s,c,l,f,p,d,y,v,g,m,b,w,x,k;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(i=e.dataServers,u=e.resources,s=e.httpClient,c=e.jsonContext,l=u[t],f=new Headers,null!==(a=l.fieldsMapping)&&void 0!==a&&a.title&&f.set("Slug",n.data[null===(p=l.fieldsMapping)||void 0===p?void 0:p.title]),null===(o=l.create)||void 0===o||!o.container){r.next=10;break}d=null===(v=l.create)||void 0===v?void 0:v.container,y=H(d,i),r.next=20;break;case 10:if(y=(null===(g=l.create)||void 0===g?void 0:g.server)||Object.keys(e.dataServers).find((function(r){return!0===e.dataServers[r].default}))){r.next=13;break}throw new Error("You must define a server for the creation, or a container, or a default server");case 13:if(m=Q(l.types,[y],i),(b=Object.keys(m))&&0!==b.length){r.next=17;break}throw new Error("No container with types ".concat(JSON.stringify(l.types)," found on server ").concat(y));case 17:if(!(b.length>1||m[b[0]].length>1)){r.next=19;break}throw new Error("More than one container detected with types ".concat(JSON.stringify(l.types)," on server ").concat(y));case 19:d=m[b[0]][0];case 20:return r.next=22,G(n.data,e);case 22:return n.data=r.sent,r.next=25,s(d,{method:"POST",headers:f,body:JSON.stringify(h({"@context":c,"@type":l.types},n.data)),noToken:!0!==i[y].authServer});case 25:return w=r.sent,x=w.headers,k=x.get("Location"),r.next=30,D(e)(t,{id:k});case 30:return r.abrupt("return",r.sent);case 31:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}()},X=function(e){return function(){var r=g(regeneratorRuntime.mark((function r(t,n){var a,o,i;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return a=e.dataServers,o=e.httpClient,i=H(n.id,a),r.next=4,o(n.id,{method:"DELETE",noToken:!i||!0!==a[i].authServer});case 4:return r.abrupt("return",{data:{id:n.id}});case 5:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}()},Z=function(e){return function(){var r=g(regeneratorRuntime.mark((function r(t,n){var a,o,i,u,s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:a=e.httpClient,o=[],i=O(n.ids),r.prev=3,i.s();case 5:if((u=i.n()).done){r.next=17;break}return s=u.value,r.prev=7,r.next=10,a(s,{method:"DELETE"});case 10:o.push(s),r.next=15;break;case 13:r.prev=13,r.t0=r.catch(7);case 15:r.next=5;break;case 17:r.next=22;break;case 19:r.prev=19,r.t1=r.catch(3),i.e(r.t1);case 22:return r.prev=22,i.f(),r.finish(22);case 25:return r.abrupt("return",{data:o});case 26:case"end":return r.stop()}}),r,null,[[3,19,22,25],[7,13]])})));return function(e,t){return r.apply(this,arguments)}}()},K=function(e,r,t){var n=[];if(Object.keys(t[r].containers[r]).forEach((function(a){e.includes(a)&&t[r].containers[r][a].map((function(e){var a=W(t[r].baseUrl,e);n.includes(a)||n.push(a)}))})),0===n.length)throw new Error("No container found matching with types ".concat(JSON.stringify(e),". You can set explicitely the create.container property of the resource."));if(n.length>1)throw new Error("More than one container found matching with types ".concat(JSON.stringify(e),". You must set the create.server or create.container property for the resource."));return n[0]},ee=function(e){return function(r){var t,n,a,o,i=e.dataServers,u=e.resources[r];if(!u)throw new Error("Resource ".concat(r," is not mapped in resources file"));if(null!==(t=u.create)&&void 0!==t&&t.container)return null===(a=u.create)||void 0===a?void 0:a.container;if(null!==(n=u.create)&&void 0!==n&&n.server)return K(u.types,null===(o=u.create)||void 0===o?void 0:o.server,i);var s=M("default",i);return K(u.types,s,i)}},re=function(){var e=g(regeneratorRuntime.mark((function e(r,t,n,a){var o,i,u,s,l,f,p,d;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=a.dataServers,i=a.httpClient,u=a.jsonContext,s=Object.keys(r).reduce((function(e,t){return h(h({},e),Object.fromEntries(r[t].map((function(e){return[e,t]}))))}),{}),l=Object.keys(s).map((function(e){return i(e,{noToken:!s[e]||!0!==o[s[e]].authServer}).then((function(e){var r=e.json;return r["@context"]!==u?c.default.compact(r,u):r})).then((function(r){if(t="ldp:Container",a=(n=r).type||n["@type"],Array.isArray(a)?a.includes(t):a===t)return r["ldp:contains"];throw new Error(e+" is not a LDP container");var t,n,a}))})),e.next=5,Promise.all(l);case 5:if(0!==(f=e.sent).length){e.next=10;break}return e.abrupt("return",{data:[],total:0});case 10:return f=(p=[].concat).apply.apply(p,k(f)),d=f.map((function(e){return e.id=e.id||e["@id"],e})),n.filter&&(n.filter.a&&(n.filter.type=n.filter.a,delete n.filter.a),n.filter.q&&delete n.filter.q,Object.keys(n.filter).length>0&&(d=d.filter((function(e){return Object.entries(n.filter).some((function(r){var t=x(r,2),n=t[0],a=t[1];return Array.isArray(e[n])?e[n].includes(a):e[n]===a}))})))),n.sort&&(d=d.sort((function(e,r){return!e[n.sort.field]||!r[n.sort.field]||("ASC"===n.sort.order?e[n.sort.field].localeCompare(r[n.sort.field]):r[n.sort.field].localeCompare(e[n.sort.field]))}))),n.pagination&&(d=d.slice((n.pagination.page-1)*n.pagination.perPage,n.pagination.page*n.pagination.perPage)),e.abrupt("return",{data:d,total:f.length});case 16:case"end":return e.stop()}}),e)})));return function(r,t,n,a){return e.apply(this,arguments)}}(),te=function(e){var r,t={};if(e){var n,a=O(e);try{for(a.s();!(n=a.n()).done;){var o=n.value;r=o.includes("/")?o.split("/").reverse():[o],t=h(h({},t),r.reduce((function(e,r){return m({},r,h({"@embed":"@last"},e))}),{}))}}catch(e){a.e(e)}finally{a.f()}return t}},ne=z((function(e,r){var t;e.exports=t=t||function(e,r){var t;if("undefined"!=typeof window&&window.crypto&&(t=window.crypto),"undefined"!=typeof self&&self.crypto&&(t=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(t=globalThis.crypto),!t&&"undefined"!=typeof window&&window.msCrypto&&(t=window.msCrypto),!t&&void 0!==N&&N.crypto&&(t=N.crypto),!t)try{t=f.default}catch(e){}var n=function(){if(t){if("function"==typeof t.getRandomValues)try{return t.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof t.randomBytes)try{return t.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},a=Object.create||function(){function e(){}return function(r){var t;return e.prototype=r,t=new e,e.prototype=null,t}}(),o={},i=o.lib={},u=i.Base={extend:function(e){var r=a(this);return e&&r.mixIn(e),r.hasOwnProperty("init")&&this.init!==r.init||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var r in e)e.hasOwnProperty(r)&&(this[r]=e[r]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},s=i.WordArray=u.extend({init:function(e,r){e=this.words=e||[],this.sigBytes=null!=r?r:4*e.length},toString:function(e){return(e||l).stringify(this)},concat:function(e){var r=this.words,t=e.words,n=this.sigBytes,a=e.sigBytes;if(this.clamp(),n%4)for(var o=0;o<a;o++){var i=t[o>>>2]>>>24-o%4*8&255;r[n+o>>>2]|=i<<24-(n+o)%4*8}else for(var u=0;u<a;u+=4)r[n+u>>>2]=t[u>>>2];return this.sigBytes+=a,this},clamp:function(){var r=this.words,t=this.sigBytes;r[t>>>2]&=4294967295<<32-t%4*8,r.length=e.ceil(t/4)},clone:function(){var e=u.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var r=[],t=0;t<e;t+=4)r.push(n());return new s.init(r,e)}}),c=o.enc={},l=c.Hex={stringify:function(e){for(var r=e.words,t=e.sigBytes,n=[],a=0;a<t;a++){var o=r[a>>>2]>>>24-a%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(e){for(var r=e.length,t=[],n=0;n<r;n+=2)t[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new s.init(t,r/2)}},p=c.Latin1={stringify:function(e){for(var r=e.words,t=e.sigBytes,n=[],a=0;a<t;a++){var o=r[a>>>2]>>>24-a%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var r=e.length,t=[],n=0;n<r;n++)t[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new s.init(t,r)}},d=c.Utf8={stringify:function(e){try{return decodeURIComponent(escape(p.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return p.parse(unescape(encodeURIComponent(e)))}},h=i.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=d.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(r){var t,n=this._data,a=n.words,o=n.sigBytes,i=this.blockSize,u=o/(4*i),c=(u=r?e.ceil(u):e.max((0|u)-this._minBufferSize,0))*i,l=e.min(4*c,o);if(c){for(var f=0;f<c;f+=i)this._doProcessBlock(a,f);t=a.splice(0,c),n.sigBytes-=l}return new s.init(t,l)},clone:function(){var e=u.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});i.Hasher=h.extend({cfg:u.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){h.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(r,t){return new e.init(t).finalize(r)}},_createHmacHelper:function(e){return function(r,t){return new y.HMAC.init(e,t).finalize(r)}}});var y=o.algo={};return o}(Math)})),ae=z((function(e,r){var t;e.exports=(t=ne,function(e){var r=t,n=r.lib,a=n.WordArray,o=n.Hasher,i=r.algo,u=[];!function(){for(var r=0;r<64;r++)u[r]=4294967296*e.abs(e.sin(r+1))|0}();var s=i.MD5=o.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,r){for(var t=0;t<16;t++){var n=r+t,a=e[n];e[n]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}var o=this._hash.words,i=e[r+0],s=e[r+1],d=e[r+2],h=e[r+3],y=e[r+4],v=e[r+5],g=e[r+6],m=e[r+7],b=e[r+8],w=e[r+9],x=e[r+10],k=e[r+11],S=e[r+12],j=e[r+13],O=e[r+14],E=e[r+15],C=o[0],R=o[1],A=o[2],P=o[3];C=c(C,R,A,P,i,7,u[0]),P=c(P,C,R,A,s,12,u[1]),A=c(A,P,C,R,d,17,u[2]),R=c(R,A,P,C,h,22,u[3]),C=c(C,R,A,P,y,7,u[4]),P=c(P,C,R,A,v,12,u[5]),A=c(A,P,C,R,g,17,u[6]),R=c(R,A,P,C,m,22,u[7]),C=c(C,R,A,P,b,7,u[8]),P=c(P,C,R,A,w,12,u[9]),A=c(A,P,C,R,x,17,u[10]),R=c(R,A,P,C,k,22,u[11]),C=c(C,R,A,P,S,7,u[12]),P=c(P,C,R,A,j,12,u[13]),A=c(A,P,C,R,O,17,u[14]),C=l(C,R=c(R,A,P,C,E,22,u[15]),A,P,s,5,u[16]),P=l(P,C,R,A,g,9,u[17]),A=l(A,P,C,R,k,14,u[18]),R=l(R,A,P,C,i,20,u[19]),C=l(C,R,A,P,v,5,u[20]),P=l(P,C,R,A,x,9,u[21]),A=l(A,P,C,R,E,14,u[22]),R=l(R,A,P,C,y,20,u[23]),C=l(C,R,A,P,w,5,u[24]),P=l(P,C,R,A,O,9,u[25]),A=l(A,P,C,R,h,14,u[26]),R=l(R,A,P,C,b,20,u[27]),C=l(C,R,A,P,j,5,u[28]),P=l(P,C,R,A,d,9,u[29]),A=l(A,P,C,R,m,14,u[30]),C=f(C,R=l(R,A,P,C,S,20,u[31]),A,P,v,4,u[32]),P=f(P,C,R,A,b,11,u[33]),A=f(A,P,C,R,k,16,u[34]),R=f(R,A,P,C,O,23,u[35]),C=f(C,R,A,P,s,4,u[36]),P=f(P,C,R,A,y,11,u[37]),A=f(A,P,C,R,m,16,u[38]),R=f(R,A,P,C,x,23,u[39]),C=f(C,R,A,P,j,4,u[40]),P=f(P,C,R,A,i,11,u[41]),A=f(A,P,C,R,h,16,u[42]),R=f(R,A,P,C,g,23,u[43]),C=f(C,R,A,P,w,4,u[44]),P=f(P,C,R,A,S,11,u[45]),A=f(A,P,C,R,E,16,u[46]),C=p(C,R=f(R,A,P,C,d,23,u[47]),A,P,i,6,u[48]),P=p(P,C,R,A,m,10,u[49]),A=p(A,P,C,R,O,15,u[50]),R=p(R,A,P,C,v,21,u[51]),C=p(C,R,A,P,S,6,u[52]),P=p(P,C,R,A,h,10,u[53]),A=p(A,P,C,R,x,15,u[54]),R=p(R,A,P,C,s,21,u[55]),C=p(C,R,A,P,b,6,u[56]),P=p(P,C,R,A,E,10,u[57]),A=p(A,P,C,R,g,15,u[58]),R=p(R,A,P,C,j,21,u[59]),C=p(C,R,A,P,y,6,u[60]),P=p(P,C,R,A,k,10,u[61]),A=p(A,P,C,R,d,15,u[62]),R=p(R,A,P,C,w,21,u[63]),o[0]=o[0]+C|0,o[1]=o[1]+R|0,o[2]=o[2]+A|0,o[3]=o[3]+P|0},_doFinalize:function(){var r=this._data,t=r.words,n=8*this._nDataBytes,a=8*r.sigBytes;t[a>>>5]|=128<<24-a%32;var o=e.floor(n/4294967296),i=n;t[15+(a+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t[14+(a+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),r.sigBytes=4*(t.length+1),this._process();for(var u=this._hash,s=u.words,c=0;c<4;c++){var l=s[c];s[c]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return u},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function c(e,r,t,n,a,o,i){var u=e+(r&t|~r&n)+a+i;return(u<<o|u>>>32-o)+r}function l(e,r,t,n,a,o,i){var u=e+(r&n|t&~n)+a+i;return(u<<o|u>>>32-o)+r}function f(e,r,t,n,a,o,i){var u=e+(r^t^n)+a+i;return(u<<o|u>>>32-o)+r}function p(e,r,t,n,a,o,i){var u=e+(t^(r|~n))+a+i;return(u<<o|u>>>32-o)+r}r.MD5=o._createHelper(s),r.HmacMD5=o._createHmacHelper(s)}(Math),t.MD5)})),oe=p.default.namedNode,ie=p.default.quad,ue=p.default.variable,se=function(e){return ae(e)},ce=function e(r){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return r.filter((function(e){return e.parentNode===t})).map((function(t){return{type:"optional",patterns:[{type:"bgp",triples:t.query},e(r,t.node)]}}))},le=function(e,r){var t=[],n=function(e){var r=[];if(e){var t,n=O(e);try{for(n.s();!(t=n.n()).done;){var a=t.value;if(a.includes("/"))for(var o=a.split("/"),i=1;i<=o.length;i++)r.push(o.slice(0,i).join("/"));else r.push(a)}}catch(e){n.e(e)}finally{n.f()}}return r}(e);if(n&&r&&r.length>0){var a,o=O(n);try{var i=function(){var e=a.value,n=function(e){return e.includes("/")&&e.split("/")[0]}(e),o=function(e){return e.includes("/")?e.split("/")[1]:e}(e),i=se(e),u=n?se(n):"1",s=o.split(":")[0],c=o.split(":")[1],l=r.find((function(e){return e.prefix===s})),f=[ie(ue("s"+u),oe(l.url+c),ue("s"+i)),ie(ue("s"+i),ue("p"+i),ue("o"+i))];t.push({node:e,parentNode:n,query:f,filter:""})};for(o.s();!(a=o.n()).done;)i()}catch(e){o.e(e)}finally{o.f()}return{construct:t.length>0?t.map((function(e){return e.query})).reduce((function(e,r){return e.concat(r)})):null,where:ce(t)}}return{construct:"",where:""}},fe=p.default.literal,pe=p.default.namedNode,de=p.default.quad,he=p.default.variable,ye=new(0,require("sparqljs").Generator)({}),ve=function(e){var r=e.containers,t=e.params.filter,n=e.dereference,a=e.ontologies,o={queryType:"CONSTRUCT",template:[de(he("s1"),he("p1"),he("o1"))],where:[{type:"bgp",triples:[de(he("s1"),he("p1"),he("o1"))]},{type:"filter",expression:{type:"operation",operator:"isiri",args:[he("s1")]}},{type:"filter",expression:{type:"operation",operator:"in",args:[he("containerUri"),r.map((function(e){return pe(e)}))]}},{type:"bgp",triples:[de(he("containerUri"),pe("http://www.w3.org/ns/ldp#contains"),he("s1"))]}],type:"query",prefixes:{}};a.map((function(e){o.prefixes=h(h({},o.prefixes),{},m({},e.prefix,e.url))}));var i=le(n,a);if(i&&i.construct&&(o.where=o.where.concat(i.where),o.template=o.template.concat(i.construct)),t&&Object.keys(t).length>0){var u=t.sparqlWhere&&Object.keys(t.sparqlWhere).length>0,s=t.q&&t.q.length>0;u&&o.where.push(t.sparqlWhere),s&&o.where.push({type:"group",patterns:[{queryType:"SELECT",variables:[he("s1")],where:[{type:"bgp",triples:[de(he("s1"),he("p1"),he("o1"))]},{type:"filter",expression:{type:"operation",operator:"regex",args:[{type:"operation",operator:"lcase",args:[{type:"operation",operator:"str",args:[he("o1")]}]},fe(t.q.toLowerCase(),"",pe("http://www.w3.org/2001/XMLSchema#string"))]}},{type:"filter",expression:{type:"operation",operator:"notexists",args:[{type:"bgp",triples:[de(he("s1"),pe("http://www.w3.org/1999/02/22-rdf-syntax-ns#type"),he("o1"))]}]}}],type:"query"}]}),Object.keys(t).forEach((function(e){if("sparqlWhere"!==e&&"q"!==e){var r="a"===e?t[e]:e,n=r.split(":")[0],i=r.split(":")[1],u=a.find((function(e){return e.prefix===n})),s="a"===e?"http://www.w3.org/1999/02/22-rdf-syntax-ns#type":u.url+i,c="a"===e?u.url+i:t[e];o.where.push({type:"bgp",triples:[de(he("s1"),pe(s),pe(c))]})}}))}var c=ye.stringify(o);return t.q&&delete t.q,c},ge=function(){var e=g(regeneratorRuntime.mark((function e(r,t,n,a){var o,i,u,s,l,f,p,d,y,v,g,m;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=a.dataServers,u=a.resources,s=a.httpClient,l=a.jsonContext,f=a.ontologies,p=u[t],d=h({"@context":l,"@type":p.types,"@embed":"@never"},te(null===(o=p.list)||void 0===o?void 0:o.dereference)),y=Object.keys(r).map((function(e){return new Promise((function(t,a){var o,u,l=ve({containers:r[e],params:h(h({},n),{},{filter:h(h({},null===(o=p.list)||void 0===o?void 0:o.filter),n.filter)}),dereference:null===(u=p.list)||void 0===u?void 0:u.dereference,ontologies:f});s(i[e].sparqlEndpoint,{method:"POST",body:l,noToken:!0!==i[e].authServer}).then((function(e){var r=e.json;return c.default.frame(r,d,{omitGraph:!1})})).then((function(e){t(e["@graph"]||[])})).catch((function(e){return a(e)}))}))})),e.next=6,Promise.all(y);case 6:if(0!==(v=e.sent).length){e.next=11;break}return e.abrupt("return",{data:[],total:0});case 11:return v=(g=[].concat).apply.apply(g,k(v)),m=v.map((function(e){return e.id=e.id||e["@id"],e})),n.sort&&(m=m.sort((function(e,r){return!e[n.sort.field]||!r[n.sort.field]||("ASC"===n.sort.order?e[n.sort.field].localeCompare(r[n.sort.field]):r[n.sort.field].localeCompare(e[n.sort.field]))}))),n.pagination&&(m=m.slice((n.pagination.page-1)*n.pagination.perPage,n.pagination.page*n.pagination.perPage)),e.abrupt("return",{data:m,total:v.length});case 16:case"end":return e.stop()}}),e)})));return function(r,t,n,a){return e.apply(this,arguments)}}(),me=function(e,r){var t={};return Object.keys(e).forEach((function(n){if(!r[n])throw new Error("No server found with key "+n);t[n]=[],e[n].forEach((function(e){t[n].push(W(r[n].baseUrl,e))}))})),t},be=function(e){return function(){var r=g(regeneratorRuntime.mark((function r(t){var n,a,o,i,u,s,c,l,f=arguments;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=f.length>1&&void 0!==f[1]?f[1]:{},i=e.dataServers,u=e.resources,s=u[t]){r.next=5;break}throw new Error("Resource ".concat(t," is not mapped in resources file"));case 5:if(c=null!==(n=s.list)&&void 0!==n&&n.containers&&Object.keys(s.list.containers).length>0?me(s.list.containers,i):Q(s.types,null===(l=s.list)||void 0===l?void 0:l.servers,i),console.log("containers",c),null===(a=s.list)||void 0===a||!a.fetchContainer){r.next=11;break}return r.abrupt("return",re(c,t,o,e));case 11:return r.abrupt("return",ge(c,t,o,e));case 12:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}()},we=function(e){return function(){var r=g(regeneratorRuntime.mark((function r(t,n){var a,o,i,u,s,c,l;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:a=e.returnFailedResources,o=[],i=O(n.ids),r.prev=3,i.s();case 5:if((u=i.n()).done){r.next=21;break}return s="object"===y(s=u.value)?s["@id"]:s,r.prev=8,r.next=11,D(e)(t,{id:s});case 11:c=r.sent,l=c.data,o.push(l),r.next=19;break;case 16:r.prev=16,r.t0=r.catch(8),a&&o.push({id:s});case 19:r.next=5;break;case 21:r.next=26;break;case 23:r.prev=23,r.t1=r.catch(3),i.e(r.t1);case 26:return r.prev=26,i.f(),r.finish(26);case 29:return r.abrupt("return",{data:o});case 30:case"end":return r.stop()}}),r,null,[[3,23,26,29],[8,16]])})));return function(e,t){return r.apply(this,arguments)}}()},xe=function(e){return function(){var r=g(regeneratorRuntime.mark((function r(t,n){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n.filter=h(h({},n.filter),{},m({},n.target,n.id)),delete n.target,r.next=4,be(e)(t,n);case 4:return r.abrupt("return",r.sent);case 5:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}()},ke=function(e){return function(){var r=g(regeneratorRuntime.mark((function r(t,n){var a,o,i,u;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return a=e.dataServers,o=e.httpClient,i=e.jsonContext,u=H(n.id,a),r.next=4,G(n.data,e);case 4:return n.data=r.sent,r.next=7,o(n.id,{method:"PUT",body:JSON.stringify(h({"@context":i},n.data)),noToken:!u||!0!==a[u].authServer});case 7:return r.abrupt("return",{data:n.data});case 8:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}()};function Se(e){this.message=e}Se.prototype=new Error,Se.prototype.name="InvalidCharacterError";var je="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var r=String(e).replace(/=+$/,"");if(r.length%4==1)throw new Se("'atob' failed: The string to be decoded is not correctly encoded.");for(var t,n,a=0,o=0,i="";n=r.charAt(o++);~n&&(t=a%4?64*t+n:n,a++%4)?i+=String.fromCharCode(255&t>>(-2*a&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return i};function Oe(e){var r=e.replace(/-/g,"+").replace(/_/g,"/");switch(r.length%4){case 0:break;case 2:r+="==";break;case 3:r+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(je(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t="0"+t),"%"+t})))}(r)}catch(e){return je(r)}}function Ee(e){this.message=e}function Ce(e,r){if("string"!=typeof e)throw new Ee("Invalid token specified");var t=!0===(r=r||{}).header?0:1;try{return JSON.parse(Oe(e.split(".")[t]))}catch(e){throw new Ee("Invalid token specified: "+e.message)}}Ee.prototype=new Error,Ee.prototype.name="InvalidTokenError";var Re=function(){var e=g(regeneratorRuntime.mark((function e(r){var t,n,a,o,i,u,s,c,l,f,p,d;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=r.dataServers,n=r.httpClient,a=localStorage.getItem("token"),o=M("pod",t),i=M("authServer",t),!a){e.next=24;break}return u=Ce(a),s=u.webId,e.prev=6,e.next=9,n(s);case 9:l=e.sent,f=l.json,c=f,e.next=20;break;case 14:return e.prev=14,e.t0=e.catch(6),console.error(e.t0),localStorage.removeItem("token"),window.location.reload(),e.abrupt("return");case 20:o&&(r.dataServers[o].name="My Pod",r.dataServers[o].baseUrl=W(s,"data"),r.dataServers[o].sparqlEndpoint=(null===(p=c.endpoints)||void 0===p?void 0:p["void:sparqlEndpoint"])||W(s,"sparql")),i&&(r.dataServers[i].proxyUrl=null===(d=c.endpoints)||void 0===d?void 0:d.proxyUrl),e.next=25;break;case 24:o&&delete r.dataServers[o];case 25:case"end":return e.stop()}}),e,null,[[6,14]])})));return function(r){return e.apply(this,arguments)}}(),Ae=function(){var e=g(regeneratorRuntime.mark((function e(r){var t,n,a,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=Object.values(r.dataServers).filter((function(e){return!0!==e.pod})).map((function(e){return r.httpClient(new URL("/.well-known/void",e.baseUrl)).then((function(e){return{data:e.json}})).catch((function(e){if(404===e.status)return{error:e};throw e}))})),e.prev=1,e.next=4,Promise.all(t);case 4:n=e.sent,a=O(n);try{for(a.s();!(o=a.n()).done;)o.value.data}catch(e){a.e(e)}finally{a.f()}e.next=11;break;case 9:e.prev=9,e.t0=e.catch(1);case 11:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(r){return e.apply(this,arguments)}}();exports.DateTimeInput=function(e){return s.default.createElement(r.DateTimeInput,b({},e,{format:function(e){return e&&e.replace(" ","T").replace("Z","")}}))},exports.FilterHandler=I,exports.GroupedReferenceHandler=function(e){var t=e.children,n=e.groupReference,a=e.groupLabel,o=e.groupHeader,i=e.filterProperty,u=w(e,q),c=r.useQueryWithStore({type:"getList",resource:n,payload:{}}).data;return s.default.createElement(s.default.Fragment,null,null==c?void 0:c.map((function(e,r){var n={};return n[i]=e.id,s.default.createElement(s.default.Fragment,null,o&&o(h(h({},u),{},{group:e})),s.default.createElement(I,b({},u,{filter:n,label:e[a]}),t))})))},exports.ImageField=function(e){var t=e.record,n=e.source,a=w(e,E);return"string"==typeof t&&(t=m({},n,t)),s.default.createElement(r.ImageField,b({record:t,source:n},a))},exports.ReferenceArrayField=R,exports.ReferenceArrayInput=_,exports.ReferenceField=P,exports.ReferenceInput=function(e){var t=r.useResourceContext({});return s.default.createElement(r.ReferenceInput,b({},e,{resource:t,format:function(r){return r?(e.format&&(r=e.format(r)),"object"===y(r)?r.id||r["@id"]:r):r}}))},exports.ReificationArrayInput=function(e){var t=e.reificationClass;e.children;var n=w(e,U),a=B(),o=F();return s.default.createElement(r.ArrayInput,n,s.default.createElement(r.SimpleFormIterator,{classes:{form:a.form}},s.default.Children.map(e.children,(function(e,r){return s.default.cloneElement(e,{className:a.input})})),s.default.createElement(r.TextInput,{className:o.root,source:"type",initialValue:t})))},exports.UriArrayField=R,exports.UriArrayInput=_,exports.buildDereferenceQuery=le,exports.buildSparqlQuery=ve,exports.dataProvider=function(e){if(!M("default",e.dataServers))throw new Error("You must define a default server in your dataServers config");e.jsonContext||(e.jsonContext=Object.fromEntries(e.ontologies.map((function(e){return[e.prefix,e.url]})))),e.returnFailedResources||(e.returnFailedResources=!1);var r=Re(e),t=Ae(e),n=function(e){return g(regeneratorRuntime.mark((function n(){var a=arguments;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,r;case 2:return n.next=4,t;case 4:return n.next=6,e.apply(void 0,a);case 6:return n.abrupt("return",n.sent);case 7:case"end":return n.stop()}}),n)})))};return{getList:n(be(e)),getOne:n(D(e)),getMany:n(we(e)),getManyReference:n(xe(e)),create:n(V(e)),update:n(ke(e)),updateMany:function(){throw new Error("updateMany is not implemented yet")},delete:n(X(e)),deleteMany:n(Z(e)),getCreateContainer:n(ee(e))}},exports.httpClient=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(t.headers||(t.headers=new Headers),t.method){case"POST":case"PATCH":case"PUT":t.headers.has("Accept")||t.headers.set("Accept","application/ld+json"),t.headers.has("Content-Type")||t.headers.set("Content-Type","application/ld+json");break;case"DELETE":break;case"GET":default:t.headers.has("Accept")||t.headers.set("Accept","application/ld+json")}if(!t.noToken){var n=localStorage.getItem("token");n&&t.headers.set("Authorization","Bearer ".concat(n))}return r.fetchUtils.fetchJson(e,t)},exports.useCreateContainer=function(t){var n=e.useContext(r.DataProviderContext),a=x(e.useState(),2),o=a[0],i=a[1];return e.useEffect((function(){t&&n.getCreateContainer(t).then((function(e){return i(e)}))}),[t]),o};
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/fields/ReferenceArrayField.js","../src/fields/ReferenceField.js","../src/dataHandling/FilterHandler.js","../src/inputs/ReferenceArrayInput.js","../src/inputs/ReificationArrayInput.js","../src/dereference.js","../src/buildSparqlQuery.js","../src/dataProvider.js","../src/inputs/DateTimeInput.js","../src/dataHandling/GroupedReferenceHandler.js","../src/fields/ImageField.js","../src/inputs/ReferenceInput.js","../src/httpClient.js"],"sourcesContent":["import React from 'react';\nimport { ReferenceArrayField as RaReferenceArrayField } from 'react-admin';\n\nconst ReferenceArrayField = ({ record, source, ...otherProps }) => {\n if (record?.[source]) {\n if (!Array.isArray(record[source])) {\n record[source] = [record[source]];\n }\n record[source] = record[source].map(i => i['@id'] || i.id || i);\n }\n return <RaReferenceArrayField record={record} source={source} {...otherProps} />;\n};\n\nReferenceArrayField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceArrayField;\n","import React from 'react';\nimport { ReferenceField as RaReferenceField } from 'react-admin';\n\nconst ReferenceField = ({ record, source, ...otherProps }) => {\n if (record[source]) {\n if (typeof record[source] === 'object') {\n record[source] = record[source]['@id'] || record[source].id;\n }\n }\n return <RaReferenceField record={record} source={source} {...otherProps} />;\n};\n\nReferenceField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceField;\n","import React, { useState, useEffect } from 'react';\nimport { ArrayField } from 'react-admin';\n\n/**\n * @example\n * <Show>\n * <FilterHandler\n * source=\"property\" // ex pair:organizationOfMembership\n * filter={{\n * 'propertyToFilter':'value'\n * }} // ex {{'pair:membershipRole':'http://localhost:3000/membership-roles/role-1'}}\n * >\n * <SingleFieldList>\n * </SingleFieldList>\n * </FilterHandler>\n * </Show>\n */\n\nconst FilterHandler = ({ children, record, filter, source, ...otherProps }) => {\n const [filtered, setFiltered] = useState();\n useEffect(() => {\n if (record && source && Array.isArray(record?.[source])) {\n const filteredData = record?.[source].filter(r => {\n let eq = true;\n for (const key in filter) {\n const value = r[key];\n if (Array.isArray(value)) {\n if (!value.includes(filter[key])) {\n eq = false;\n }\n } else {\n if (value !== filter[key]) {\n eq = false;\n }\n }\n }\n return eq;\n });\n let newRecord = {\n ...record\n };\n //undefined setted if no data to obtain no render in RightLabel or equivalent\n newRecord[source] = filteredData.length > 0 ? filteredData : undefined;\n setFiltered(newRecord);\n }\n }, [record, source, filter]);\n\n return (\n <>\n {React.Children.map(children, (child, i) => {\n return React.cloneElement(child, {\n ...otherProps,\n record: filtered,\n addLabel: true,\n source\n });\n })}\n </>\n );\n};\nexport default FilterHandler;\n","import React from 'react';\nimport { ReferenceArrayInput as RaReferenceArrayInput, useResourceContext } from 'react-admin';\n\nconst ReferenceArrayInput = props => {\n const resource = useResourceContext({});\n return (\n <RaReferenceArrayInput\n {...props}\n resource={resource}\n format={value => {\n // If there is no value, return immediately\n if (!value) return value;\n // if the linked field value is not an array, turns it into an array.\n // Necessary as JSON-LD are sometimes arrays, sometimes not (when there is one value)\n // and the ReferenceArrayInput component only accept arrays\n if (!Array.isArray(value)) value = [value];\n // If a format prop was defined, apply it to the array\n if (props.format) value = props.format(value);\n // If the values are objects with @id field, turn it to a simple string\n return value.map(v => (typeof v === 'object' ? v.id || v['@id'] : v));\n }}\n />\n );\n};\n\nexport default ReferenceArrayInput;\n","import React, { useEffect, useState } from 'react';\nimport { ArrayInput, SimpleFormIterator, TextInput } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useReferenceInputStyles = makeStyles({\n form: {\n display: 'flex'\n },\n input: {\n paddingRight: '20px'\n }\n});\n\nconst useHideInputStyles = makeStyles({\n root: {\n display: 'none'\n }\n});\n\nconst ReificationArrayInput = props => {\n const { reificationClass, children, ...otherProps } = props;\n const flexFormClasses = useReferenceInputStyles();\n const hideInputStyles = useHideInputStyles();\n\n return (\n <ArrayInput {...otherProps}>\n <SimpleFormIterator classes={{ form: flexFormClasses.form }}>\n {React.Children.map(props.children, (child, i) => {\n return React.cloneElement(child, {\n className: flexFormClasses.input\n });\n })}\n <TextInput className={hideInputStyles.root} source=\"type\" initialValue={reificationClass} />\n </SimpleFormIterator>\n </ArrayInput>\n );\n};\n\nexport default ReificationArrayInput;\n","// Return an object in the form of predicate => parentPredicate\nconst flattenPredicate = (accumulator, predicate, parent = 'root') => {\n if (predicate.includes('/')) {\n const matches = predicate.split(/\\/(.+)/);\n accumulator[matches[0]] = parent;\n flattenPredicate(accumulator, matches[1], matches[0]);\n } else {\n accumulator[predicate] = parent;\n }\n return accumulator;\n};\n\n// Transform ontology:predicate to OntologyPredicate in order to use it as a variable name\nconst generateSparqlVarName = predicate =>\n predicate\n .split(':')\n .map(s => s[0].toUpperCase() + s.slice(1))\n .join('');\n\nexport const buildDereferenceQuery = predicates => {\n let queries = [];\n\n if (predicates) {\n const flattenedPredicates = predicates.reduce((acc, predicate) => flattenPredicate(acc, predicate), {});\n\n for (const [predicate, parent] of Object.entries(flattenedPredicates)) {\n const varName = generateSparqlVarName(predicate);\n const parentVarName = parent === 'root' ? '1' : generateSparqlVarName(parent);\n\n // Group queries by parent, so that we can group WHERE triples in the same OPTIONAL tag\n const groupKey = parent === 'root' ? predicate : parent;\n if (!queries[groupKey]) queries[groupKey] = [];\n\n queries[groupKey].push(`\n ?s${parentVarName} ${predicate} ?s${varName} .\n ?s${varName} ?p${varName} ?o${varName} .\n `);\n }\n }\n\n return {\n construct: Object.values(queries)\n .map(groupedQueries => Object.values(groupedQueries).join('\\n'))\n .join('\\n'),\n where: Object.values(queries)\n .map(groupedQueries => `OPTIONAL { ${Object.values(groupedQueries).join('\\n')} }`)\n .join('\\n')\n };\n};\n\nexport const getEmbedFrame = paths => {\n let embedFrame = {},\n predicates;\n if (paths) {\n for (let path of paths) {\n if (path.includes('/')) {\n predicates = path.split('/').reverse();\n } else {\n predicates = [path];\n }\n embedFrame = {\n ...embedFrame,\n ...predicates.reduce(\n (accumulator, predicate) => ({\n [predicate]: {\n '@embed': '@last',\n ...accumulator\n }\n }),\n {}\n )\n };\n }\n return embedFrame;\n }\n};\n","import { buildDereferenceQuery } from './dereference';\n\nconst getPrefixRdf = ontologies => {\n return ontologies.map(ontology => `PREFIX ${ontology.prefix}: <${ontology.url}>`).join('\\n');\n};\n\nconst buildSparqlQuery = ({ types, params: { filter }, dereference, ontologies }) => {\n let whereQuery = '';\n\n if (filter) {\n if (filter.q && filter.q.length > 0) {\n whereQuery += `\n {\n SELECT ?s1\n WHERE {\n ?s1 ?p1 ?o1 .\n FILTER regex(lcase(str(?o1)), \"${filter.q.toLowerCase()}\")\n FILTER NOT EXISTS {?s1 a ?o1}\n }\n }\n `;\n delete filter.q;\n }\n Object.keys(filter).forEach(predicate => {\n if (filter[predicate]) {\n const object = filter[predicate].startsWith('http') ? `<${filter[predicate]}>` : filter[predicate];\n whereQuery += `?s1 ${predicate} ${object} .`;\n }\n });\n }\n\n const dereferenceQuery = buildDereferenceQuery(dereference);\n\n return `\n ${getPrefixRdf(ontologies)}\n CONSTRUCT {\n ?s1 ?p2 ?o2 .\n ${dereferenceQuery.construct}\n }\n WHERE {\n ?s1 a ?type .\n FILTER( ?type IN (${types.join(', ')}) ) .\n FILTER( (isIRI(?s1)) ) .\n ${whereQuery}\n ${dereferenceQuery.where}\n ?s1 ?p2 ?o2 .\n }\n `;\n};\n\nexport default buildSparqlQuery;\n","import jsonld from 'jsonld';\nimport buildSparqlQuery from './buildSparqlQuery';\nimport { getEmbedFrame } from './dereference';\nconst createSlug = require('speakingurl');\n\nconst buildJsonContext = ontologies => {\n let pattern = {};\n ontologies.forEach(ontology => (pattern[ontology.prefix] = ontology.url));\n return pattern;\n};\n\nconst isFile = o => o && o.rawFile && o.rawFile instanceof File;\n\nconst getSlugWithExtension = fileName => {\n let fileExtension = '';\n let splitFileName = fileName.split('.');\n if (splitFileName.length > 1) {\n fileExtension = splitFileName.pop();\n fileName = splitFileName.join('.');\n }\n return createSlug(fileName, { lang: 'fr' }) + '.' + fileExtension;\n};\n\nconst isType = (type, resource) => {\n const resourceType = resource.type || resource['@type'];\n return Array.isArray(resourceType) ? resourceType.includes(type) : resourceType === type;\n};\n\nconst dataProvider = ({\n sparqlEndpoint,\n httpClient,\n resources,\n ontologies,\n jsonContext,\n uploadsContainerUri,\n returnFailedResources = false\n}) => {\n const uploadFile = async rawFile => {\n if (!uploadsContainerUri) throw new Error('No uploadsContainerUri defined for the data provider');\n\n const response = await httpClient(uploadsContainerUri, {\n method: 'POST',\n body: rawFile,\n headers: new Headers({\n // We must sluggify the file name, because we can't use non-ASCII characters in the header\n // However we keep the extension apart (if it exists) so that it is not replaced with a -\n // TODO let the middleware guess the extension based on the content type\n Slug: getSlugWithExtension(rawFile.name),\n 'Content-Type': rawFile.type\n })\n });\n\n if (response.status === 201) {\n return response.headers.get('Location');\n }\n };\n\n /*\n * Look for raw files in the resource data.\n * If there are any, upload them and replace the file by its URL.\n */\n const uploadAllFiles = async resource => {\n for (let property in resource) {\n if (resource.hasOwnProperty(property)) {\n if (Array.isArray(resource[property])) {\n for (let i = 0; i < resource[property].length; i++) {\n if (isFile(resource[property][i])) {\n resource[property][i] = await uploadFile(resource[property][i].rawFile);\n }\n }\n } else {\n if (isFile(resource[property])) {\n resource[property] = await uploadFile(resource[property].rawFile);\n }\n }\n }\n }\n return resource;\n };\n\n const ExecuteSparql = async (resourceId, params) => {\n const sparqlQuery = buildSparqlQuery({\n types: resources[resourceId].types,\n params: { ...params, filter: { ...resources[resourceId].filter, ...params.filter } },\n dereference: resources[resourceId].dereference,\n ontologies\n });\n\n const { json } = await httpClient(sparqlEndpoint, {\n method: 'POST',\n body: sparqlQuery\n });\n\n const frame = {\n '@context': jsonContext || buildJsonContext(ontologies),\n '@type': resources[resourceId].types,\n // Embed only what we explicitly asked to dereference\n // Otherwise we may have same-type resources embedded in other resources\n '@embed': '@never',\n ...getEmbedFrame(resources[resourceId].dereference)\n };\n\n // omitGraph option force results to be in a @graph, even if we have a single result\n const compactJson = await jsonld.frame(json, frame, { omitGraph: false });\n\n if (Object.keys(compactJson).length === 1) {\n // If we have only the context, it means there is no match\n return { data: [], total: 0 };\n } else {\n // Add id in addition to @id, as this is what React-Admin expects\n let returnData = compactJson['@graph'].map(item => {\n item.id = item.id || item['@id'];\n return item;\n });\n\n if (params.sort) {\n returnData = returnData.sort((a, b) => {\n if (a[params.sort.field] && b[params.sort.field]) {\n if (params.sort.order === 'ASC') {\n return a[params.sort.field].localeCompare(b[params.sort.field]);\n } else {\n return b[params.sort.field].localeCompare(a[params.sort.field]);\n }\n } else {\n return true;\n }\n });\n }\n if (params.pagination) {\n returnData = returnData.slice(\n (params.pagination.page - 1) * params.pagination.perPage,\n params.pagination.page * params.pagination.perPage\n );\n }\n\n return { data: returnData, total: compactJson['@graph'].length };\n }\n };\n\n return {\n getList: async (resourceId, params) => {\n if (!resources[resourceId]) Error(`Resource ${resourceId} is not mapped in resources file`);\n\n if (params.id || params['@id'] || resources[resourceId].fetchContainer) {\n const url = params.id || params['@id'] || resources[resourceId].containerUri;\n let { json } = await httpClient(url);\n\n if (isType('ldp:Container', json)) {\n /*\n * LDP Container\n */\n let returnData = json['ldp:contains'].map(item => {\n item.id = item.id || item['@id'];\n return item;\n });\n\n // Apply filter to results\n if (params.filter) {\n // Remove search params from filter\n if (params.filter.q) {\n delete params.filter.q;\n }\n if (Object.keys(params.filter).length > 0) {\n returnData = returnData.filter(resource =>\n Object.entries(params.filter).some(([k, v]) =>\n Array.isArray(resource[k]) ? resource[k].includes(v) : resource[k] === v\n )\n );\n }\n }\n\n if (params.sort) {\n returnData = returnData.sort((a, b) => {\n if (a[params.sort.field] && b[params.sort.field]) {\n if (params.sort.order === 'ASC') {\n return a[params.sort.field].localeCompare(b[params.sort.field]);\n } else {\n return b[params.sort.field].localeCompare(a[params.sort.field]);\n }\n } else {\n return true;\n }\n });\n }\n if (params.pagination) {\n returnData = returnData.slice(\n (params.pagination.page - 1) * params.pagination.perPage,\n params.pagination.page * params.pagination.perPage\n );\n }\n\n return { data: returnData, total: json['ldp:contains'].length };\n } else {\n /*\n * ActivityPub collection\n */\n\n // If the collection is split amongst several pages, get the first page\n if (json.first) {\n const result = await httpClient(json.first);\n json = result.json;\n }\n\n const listProperty = ['as:orderedItems', 'orderedItems', 'as:items', 'items'].find(p => json[p]);\n if (!listProperty) return { data: [], total: 0 };\n\n // TODO fetch several pages depending on params.pagination\n\n let returnData = json[listProperty].map(item => {\n item.id = item.id || item['@id'];\n return item;\n });\n\n return { data: returnData, total: json.totalItems };\n }\n } else {\n return await ExecuteSparql(resourceId, params);\n // OTHER METHOD: FETCH ONLY RESOURCES URIs AND FETCH THEM INDEPENDENTLY\n // TODO compare the performance of the two methods, and eventually allow both of them\n //\n // const sparqlQuery = buildSparqlUriQuery({\n // types: resources[resourceId].types,\n // params: { ...params, filter: { ...resources[resourceId].filter, ...params.filter } },\n // ontologies\n // });\n //\n // let { json } = await httpClient(sparqlEndpoint, {\n // method: 'POST',\n // body: sparqlQuery\n // });\n //\n // const total = json.length;\n //\n // if (params.pagination) {\n // json = json.slice(\n // (params.pagination.page - 1) * params.pagination.perPage,\n // params.pagination.page * params.pagination.perPage\n // );\n // }\n //\n // let data = await Promise.allSettled(\n // json.map(result => httpClient(result.resource.value).then(result => result.json))\n // );\n //\n // // Ignore resources we were not able to fetch\n // data = data.filter(r => r.status === 'fulfilled').map(r => r.value);\n //\n // return { data, total };\n }\n },\n getOne: async (resourceId, params) => {\n if (!resources[resourceId]) {\n Error(`Resource ${resourceId} is not mapped in resources file`);\n }\n const dataModel = resources[resourceId];\n\n let { json } = await httpClient(params.id);\n json.id = json.id || json['@id'];\n // TODO compact only if remote context is different from local context\n const compactJson = await jsonld.compact(json, jsonContext || buildJsonContext(ontologies));\n // transform single value into array concidering forceArray predicates\n if (dataModel.forceArray) {\n for (const forceArrayItem of dataModel.forceArray) {\n if (compactJson[forceArrayItem] && !Array.isArray(compactJson[forceArrayItem])) {\n compactJson[forceArrayItem] = [compactJson[forceArrayItem]];\n }\n }\n }\n return { data: compactJson };\n },\n getMany: async (resourceId, params) => {\n let returnData = [];\n\n for (let id of params.ids) {\n id = typeof id === 'object' ? id['@id'] : id;\n\n try {\n let { json } = await httpClient(id);\n json.id = id;\n returnData.push(json);\n } catch (e) {\n // Catch if one resource fails to load\n // Otherwise no references will be show if only one is missing\n // See https://github.com/marmelab/react-admin/issues/5190\n if (returnFailedResources) {\n // Return only the ID of the resource\n returnData.push({ id });\n } else {\n // Do nothing. The resource will not appear in the results.\n }\n }\n }\n\n return { data: returnData };\n },\n getManyReference: async (resourceId, params) => {\n params.filter = { ...params.filter, [params.target]: params.id };\n return await ExecuteSparql(resourceId, params);\n },\n create: async (resourceId, params) => {\n if (!resources[resourceId]) Error(`Resource ${resourceId} is not mapped in resources file`);\n\n const { slugField, containerUri, types } = resources[resourceId];\n const headers = new Headers();\n\n if (slugField) {\n headers.set(\n 'Slug',\n Array.isArray(slugField) ? slugField.map(f => params.data[f]).join(' ') : params.data[slugField]\n );\n }\n\n // Upload files, if there are any\n params.data = await uploadAllFiles(params.data);\n\n const { headers: responseHeaders } = await httpClient(containerUri, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n '@context': jsonContext || buildJsonContext(ontologies),\n '@type': types,\n ...params.data\n })\n });\n\n // Retrieve newly-created resource\n const resourceUri = responseHeaders.get('Location');\n let { json } = await httpClient(resourceUri);\n json.id = json.id || json['@id'];\n return { data: json };\n },\n update: async (resourceId, params) => {\n // Upload files, if there are any\n params.data = await uploadAllFiles(params.data);\n await httpClient(params.id, {\n method: 'PUT',\n body: JSON.stringify({\n '@context': jsonContext || buildJsonContext(ontologies),\n ...params.data\n })\n });\n\n return { data: params.data };\n },\n updateMany: (resourceId, params) => {\n throw new Error('updateMany is not implemented yet');\n },\n delete: async (resourceId, params) => {\n await httpClient(params.id, {\n method: 'DELETE'\n });\n return { data: { id: params.id } };\n },\n deleteMany: (resourceId, params) => {\n throw new Error('deleteMany is not implemented yet');\n }\n };\n};\n\nexport default dataProvider;\n","import React from 'react';\nimport { DateTimeInput as RaDateTimeInput } from 'react-admin';\n\n/**\n * @deprecated Use the component from the @semapps/date-components instead\n */\nconst DateTimeInput = props => (\n <RaDateTimeInput {...props} format={value => value && value.replace(' ', 'T').replace('Z', '')} />\n);\n\nexport default DateTimeInput;\n","import React from 'react';\nimport { useQueryWithStore } from 'react-admin';\nimport { default as FilterHandler } from './FilterHandler';\n\n/*\n * @example Label used in examples\n * const Label = ({label, ...otherProps})=>{\n * return <h2>{label}</h2>\n * }\n *\n * @example show header for each group with group property thanks to groupHeader\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupHeader={({group,...otherProps}) => <Label {...otherProps} label={group['pair:label']}></Label> }\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </GroupedReferenceHandler>\n *\n * @example call chhildren with label thanks to groupLabel\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupLabel=\"property of RAresource display\" // property of React-Admin resource to display. children call whith props \"label\" filled by groupLabel property of groupReference\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <Label>\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </GroupedReferenceHandler>\n *\n * @example conditional show of group if no data in source. Conditionale groupHeader is not possible because GroupedArrayField define group before filter ; need use chhildren.\n * const ConditionalSourceDefinedHandler = ({record,source,children,...otherProps})=>{\n * if (record?.[source] && (!Array.isArray(record[source])||record[source].length>0)){\n * return React.Children.map(children, (child, i) => {\n * return React.cloneElement(child, {...otherProps,record,source});\n * })\n * }else{\n * return <></>\n * }\n * }\n *\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupLabel=\"property of RAresource display\" // property of React-Admin resource to display. children call whith props \"label\" filled by groupLabel property of groupReference\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <ConditionalSourceDefinedHandler>\n * <Label>\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </ConditionalSourceDefinedHandler>\n * </GroupedReferenceHandler>\n *\n *\n */\nconst GroupedReferenceHandler = ({\n children,\n groupReference,\n groupLabel,\n groupHeader,\n filterProperty,\n ...otherProps\n}) => {\n const { data } = useQueryWithStore({\n type: 'getList',\n resource: groupReference,\n payload: {}\n });\n\n return (\n <>\n {data?.map((data, index) => {\n let filter = {};\n filter[filterProperty] = data.id;\n return (\n <>\n {groupHeader && groupHeader({ ...otherProps, group: data })}\n <FilterHandler {...otherProps} filter={filter} label={data[groupLabel]}>\n {children}\n </FilterHandler>\n </>\n );\n })}\n </>\n );\n};\n\nexport default GroupedReferenceHandler;\n","import React from 'react';\nimport { ImageField as RaImageField } from 'react-admin';\n\nconst ImageField = ({ record, source, ...otherProps }) => {\n // For the display, we need to have the URI in a src property\n if (typeof record === 'string') record = { [source]: record };\n return <RaImageField record={record} source={source} {...otherProps} />;\n};\n\nexport default ImageField;\n","import React from 'react';\nimport { ReferenceInput as RaReferenceInput, useResourceContext } from 'react-admin';\n\nconst ReferenceInput = props => {\n const resource = useResourceContext({});\n return (\n <RaReferenceInput\n {...props}\n resource={resource}\n format={value => {\n // If there is no value, return immediately\n if (!value) return value;\n // If a format prop was defined, apply it\n if (props.format) value = props.format(value);\n // If the value is an object with an @id field, return the uri\n return typeof value === 'object' ? value.id || value['@id'] : value;\n }}\n />\n );\n};\n\nexport default ReferenceInput;\n","import { fetchUtils } from 'react-admin';\n\nconst httpClient = (url, options = {}) => {\n if (!options.headers) options.headers = new Headers();\n\n switch (options.method) {\n case 'POST':\n case 'PATCH':\n case 'PUT':\n if (!options.headers.has('Accept')) options.headers.set('Accept', 'application/ld+json');\n if (!options.headers.has('Content-Type')) options.headers.set('Content-Type', 'application/ld+json');\n break;\n\n case 'DELETE':\n break;\n\n case 'GET':\n default:\n if (!options.headers.has('Accept')) options.headers.set('Accept', 'application/ld+json');\n break;\n }\n\n const token = localStorage.getItem('token');\n if (token) options.headers.set('Authorization', `Bearer ${token}`);\n\n return fetchUtils.fetchJson(url, options);\n};\n\nexport default httpClient;\n"],"names":["ReferenceArrayField","record","source","otherProps","Array","isArray","map","i","id","React","RaReferenceArrayField","defaultProps","addLabel","ReferenceField","_typeof","RaReferenceField","FilterHandler","children","filter","useState","filtered","setFiltered","useEffect","filteredData","r","eq","key","value","includes","newRecord","length","undefined","Children","child","cloneElement","ReferenceArrayInput","props","resource","useResourceContext","RaReferenceArrayInput","format","v","useReferenceInputStyles","makeStyles","form","display","input","paddingRight","useHideInputStyles","root","generateSparqlVarName","predicate","split","s","toUpperCase","slice","join","getEmbedFrame","paths","predicates","embedFrame","path","reverse","reduce","accumulator","buildSparqlQuery","types","params","dereference","ontologies","whereQuery","q","toLowerCase","Object","keys","forEach","object","startsWith","dereferenceQuery","queries","flattenedPredicates","acc","flattenPredicate","parent","matches","entries","varName","parentVarName","groupKey","push","construct","values","groupedQueries","where","buildDereferenceQuery","ontology","prefix","url","getPrefixRdf","createSlug","require","buildJsonContext","pattern","isFile","o","rawFile","File","RaDateTimeInput","replace","groupReference","groupLabel","groupHeader","filterProperty","data","useQueryWithStore","type","payload","index","group","label","RaImageField","RaReferenceInput","reificationClass","flexFormClasses","hideInputStyles","ArrayInput","SimpleFormIterator","classes","className","TextInput","initialValue","sparqlEndpoint","httpClient","resources","jsonContext","uploadsContainerUri","returnFailedResources","uploadFile","Error","method","body","headers","Headers","Slug","fileName","name","fileExtension","splitFileName","pop","lang","response","status","get","uploadAllFiles","property","hasOwnProperty","ExecuteSparql","resourceId","sparqlQuery","json","frame","jsonld","omitGraph","compactJson","total","returnData","item","sort","a","b","field","order","localeCompare","pagination","page","perPage","getList","fetchContainer","containerUri","resourceType","some","k","first","result","listProperty","find","p","totalItems","getOne","dataModel","compact","forceArray","forceArrayItem","getMany","ids","getManyReference","target","create","slugField","set","f","JSON","stringify","responseHeaders","resourceUri","update","updateMany","deleteMany","options","has","token","localStorage","getItem","fetchUtils","fetchJson"],"mappings":"yiHAGMA,EAAsB,gBAAGC,IAAAA,OAAQC,IAAAA,OAAWC,kCAC5CF,MAAAA,SAAAA,EAASC,MACNE,MAAMC,QAAQJ,EAAOC,MACxBD,EAAOC,GAAU,CAACD,EAAOC,KAE3BD,EAAOC,GAAUD,EAAOC,GAAQI,KAAI,SAAAC,UAAKA,EAAE,QAAUA,EAAEC,IAAMD,MAExDE,gBAACC,yBAAsBT,OAAQA,EAAQC,OAAQA,GAAYC,KAGpEH,EAAoBW,aAAe,CACjCC,UAAU,OCXNC,EAAiB,gBAAGZ,IAAAA,OAAQC,IAAAA,OAAWC,kCACvCF,EAAOC,IACqB,WAA1BY,EAAOb,EAAOC,MAChBD,EAAOC,GAAUD,EAAOC,GAAQ,QAAUD,EAAOC,GAAQM,IAGtDC,gBAACM,oBAAiBd,OAAQA,EAAQC,OAAQA,GAAYC,KAG/DU,EAAeF,aAAe,CAC5BC,UAAU,OCKNI,EAAgB,gBAAGC,IAAAA,SAAUhB,IAAAA,OAAQiB,IAAAA,OAAQhB,IAAAA,OAAWC,mDAC5BgB,gBAAzBC,OAAUC,cACjBC,aAAU,cACJrB,GAAUC,GAAUE,MAAMC,QAAQJ,MAAAA,SAAAA,EAASC,IAAU,KACjDqB,EAAetB,MAAAA,SAAAA,EAASC,GAAQgB,QAAO,SAAAM,OACvCC,GAAK,MACJ,IAAMC,KAAOR,EAAQ,KAClBS,EAAQH,EAAEE,GACZtB,MAAMC,QAAQsB,GACXA,EAAMC,SAASV,EAAOQ,MACzBD,GAAK,GAGHE,IAAUT,EAAOQ,KACnBD,GAAK,UAIJA,KAELI,OACC5B,GAGL4B,EAAU3B,GAAUqB,EAAaO,OAAS,EAAIP,OAAeQ,EAC7DV,EAAYQ,MAEb,CAAC5B,EAAQC,EAAQgB,IAGlBT,gCACGA,EAAMuB,SAAS1B,IAAIW,GAAU,SAACgB,EAAO1B,UAC7BE,EAAMyB,aAAaD,SACrB9B,OACHF,OAAQmB,EACRR,UAAU,EACVV,OAAAA,UCnDJiC,EAAsB,SAAAC,OACpBC,EAAWC,qBAAmB,WAElC7B,gBAAC8B,2BACKH,GACJC,SAAUA,EACVG,OAAQ,SAAAb,UAEDA,GAIAvB,MAAMC,QAAQsB,KAAQA,EAAQ,CAACA,IAEhCS,EAAMI,SAAQb,EAAQS,EAAMI,OAAOb,IAEhCA,EAAMrB,KAAI,SAAAmC,SAAmB,WAAb3B,EAAO2B,GAAiBA,EAAEjC,IAAMiC,EAAE,OAASA,MAR/Cd,OCPrBe,EAA0BC,aAAW,CACzCC,KAAM,CACJC,QAAS,QAEXC,MAAO,CACLC,aAAc,UAIZC,EAAqBL,aAAW,CACpCM,KAAM,CACJJ,QAAS,UCFPK,EAAwB,SAAAC,UAC5BA,EACGC,MAAM,KACN9C,KAAI,SAAA+C,UAAKA,EAAE,GAAGC,cAAgBD,EAAEE,MAAM,MACtCC,KAAK,KAiCGC,EAAgB,SAAAC,OAEzBC,EADEC,EAAa,MAEbF,EAAO,WACQA,kCAAO,KAAfG,UAELF,EADEE,EAAKjC,SAAS,KACHiC,EAAKT,MAAM,KAAKU,UAEhB,CAACD,GAEhBD,SACKA,GACAD,EAAWI,QACZ,SAACC,EAAab,eACXA,cACW,SACPa,MAGP,2CAICJ,ICnELK,EAAmB,gBAAGC,IAAAA,MAAiBhD,IAAViD,OAAUjD,OAAUkD,IAAAA,YAAaC,IAAAA,WAC9DC,EAAa,GAEbpD,IACEA,EAAOqD,GAAKrD,EAAOqD,EAAEzC,OAAS,IAChCwC,+HAKqCpD,EAAOqD,EAAEC,gGAKvCtD,EAAOqD,GAEhBE,OAAOC,KAAKxD,GAAQyD,SAAQ,SAAAxB,MACtBjC,EAAOiC,GAAY,KACfyB,EAAS1D,EAAOiC,GAAW0B,WAAW,mBAAc3D,EAAOiC,QAAgBjC,EAAOiC,GACxFmB,iBAAqBnB,cAAayB,iBAKlCE,EDZ6B,SAAAnB,OAC/BoB,EAAU,MAEVpB,UACIqB,EAAsBrB,EAAWI,QAAO,SAACkB,EAAK9B,UAtB/B,SAAnB+B,EAAoBlB,EAAab,OAAWgC,yDAAS,UACrDhC,EAAUvB,SAAS,KAAM,KACrBwD,EAAUjC,EAAUC,MAAM,UAChCY,EAAYoB,EAAQ,IAAMD,EAC1BD,EAAiBlB,EAAaoB,EAAQ,GAAIA,EAAQ,SAElDpB,EAAYb,GAAagC,SAEpBnB,EAc6DkB,CAAiBD,EAAK9B,KAAY,UAElEsB,OAAOY,QAAQL,kBAAsB,iBAA3D7B,OAAWgC,OACfG,EAAUpC,EAAsBC,GAChCoC,EAA2B,SAAXJ,EAAoB,IAAMjC,EAAsBiC,GAGhEK,EAAsB,SAAXL,EAAoBhC,EAAYgC,EAC5CJ,EAAQS,KAAWT,EAAQS,GAAY,IAE5CT,EAAQS,GAAUC,2BACZF,cAAiBpC,gBAAemC,2BAChCA,gBAAaA,gBAAaA,uBAK7B,CACLI,UAAWjB,OAAOkB,OAAOZ,GACtBzE,KAAI,SAAAsF,UAAkBnB,OAAOkB,OAAOC,GAAgBpC,KAAK,SACzDA,KAAK,MACRqC,MAAOpB,OAAOkB,OAAOZ,GAClBzE,KAAI,SAAAsF,8BAAgCnB,OAAOkB,OAAOC,GAAgBpC,KAAK,eACvEA,KAAK,OCfesC,CAAsB1B,yBA7B5B,SAAAC,UACZA,EAAW/D,KAAI,SAAAyF,0BAAsBA,EAASC,qBAAYD,EAASE,YAAQzC,KAAK,MA+BnF0C,CAAa7B,4DAGXS,EAAiBY,wFAICxB,EAAMV,KAAK,8DAE7Bc,qBACAQ,EAAiBe,2CCzCnBM,EAAaC,QAAQ,eAErBC,EAAmB,SAAAhC,OACnBiC,EAAU,UACdjC,EAAWM,SAAQ,SAAAoB,UAAaO,EAAQP,EAASC,QAAUD,EAASE,OAC7DK,GAGHC,EAAS,SAAAC,UAAKA,GAAKA,EAAEC,SAAWD,EAAEC,mBAAmBC,4BCLrC,SAAAtE,UACpB3B,gBAACkG,qBAAoBvE,GAAOI,OAAQ,SAAAb,UAASA,GAASA,EAAMiF,QAAQ,IAAK,KAAKA,QAAQ,IAAK,iEC6D7D,gBAC9B3F,IAAAA,SACA4F,IAAAA,eACAC,IAAAA,WACAC,IAAAA,YACAC,IAAAA,eACG7G,iFAEK8G,EAASC,oBAAkB,CACjCC,KAAM,UACN9E,SAAUwE,EACVO,QAAS,KAHHH,YAONxG,gCACGwG,MAAAA,SAAAA,EAAM3G,KAAI,SAAC2G,EAAMI,OACZnG,EAAS,UACbA,EAAO8F,GAAkBC,EAAKzG,GAE5BC,gCACGsG,GAAeA,SAAiB5G,OAAYmH,MAAOL,KACpDxG,gBAACO,OAAkBb,GAAYe,OAAQA,EAAQqG,MAAON,EAAKH,KACxD7F,4BCxFI,gBAAGhB,IAAAA,OAAQC,IAAAA,OAAWC,iCAEjB,iBAAXF,IAAqBA,OAAYC,EAASD,IAC9CQ,gBAAC+G,gBAAavH,OAAQA,EAAQC,OAAQA,GAAYC,iHCHpC,SAAAiC,OACfC,EAAWC,qBAAmB,WAElC7B,gBAACgH,sBACKrF,GACJC,SAAUA,EACVG,OAAQ,SAAAb,UAEDA,GAEDS,EAAMI,SAAQb,EAAQS,EAAMI,OAAOb,IAEf,WAAjBb,EAAOa,GAAqBA,EAAMnB,IAAMmB,EAAM,OAASA,GAJ3CA,qCPQG,SAAAS,OACpBsF,EAA8CtF,EAA9CsF,iBAA+BvH,GAAeiC,EAA5BnB,WAA4BmB,oCAChDuF,EAAkBjF,IAClBkF,EAAkB5E,WAGtBvC,gBAACoH,aAAe1H,EACdM,gBAACqH,sBAAmBC,QAAS,CAAEnF,KAAM+E,EAAgB/E,OAClDnC,EAAMuB,SAAS1B,IAAI8B,EAAMnB,UAAU,SAACgB,EAAO1B,UACnCE,EAAMyB,aAAaD,EAAO,CAC/B+F,UAAWL,EAAgB7E,WAG/BrC,gBAACwH,aAAUD,UAAWJ,EAAgB3E,KAAM/C,OAAO,OAAOgI,aAAcR,4EGJ3D,8BACnBS,IAAAA,eACAC,IAAAA,WACAC,IAAAA,UACAhE,IAAAA,WACAiE,IAAAA,YACAC,IAAAA,wBACAC,sBAAAA,gBAEMC,8CAAa,WAAMhC,4FAClB8B,wBAA2B,IAAIG,MAAM,+EAEnBN,EAAWG,EAAqB,CACrDI,OAAQ,OACRC,KAAMnC,EACNoC,QAAS,IAAIC,QAAQ,CAInBC,MAlCqBC,EAkCMvC,EAAQwC,KAjCrCC,OAAAA,EACAC,OAAAA,EADAD,EAAgB,GAChBC,EAAgBH,EAAS5F,MAAM,KAC/B+F,EAAcrH,OAAS,IACzBoH,EAAgBC,EAAcC,MAC9BJ,EAAWG,EAAc3F,KAAK,MAEzB2C,EAAW6C,EAAU,CAAEK,KAAM,OAAU,IAAMH,kBA4B9BzC,EAAQU,mBAIJ,OAZlBmC,UAYOC,gDACJD,EAAST,QAAQW,IAAI,8CAxCL,IAAAR,EACvBE,EACAC,iEA8CEM,8CAAiB,WAAMpH,wHACNA,oDAAZqH,cACHrH,EAASsH,eAAeD,wBACtBtJ,MAAMC,QAAQgC,EAASqH,qBAChBnJ,EAAI,cAAGA,EAAI8B,EAASqH,GAAU5H,6BACjCyE,EAAOlE,EAASqH,GAAUnJ,sCACEkI,EAAWpG,EAASqH,GAAUnJ,GAAGkG,iBAA/DpE,EAASqH,GAAUnJ,kBAFwBA,uDAM3CgG,EAAOlE,EAASqH,sCACSjB,EAAWpG,EAASqH,GAAUjD,iBAAzDpE,EAASqH,kEAKVrH,qGAGHuH,8CAAgB,WAAOC,EAAY1F,0GACjC2F,EAAc7F,EAAiB,CACnCC,MAAOmE,EAAUwB,GAAY3F,MAC7BC,cAAaA,OAAQjD,cAAamH,EAAUwB,GAAY3I,QAAWiD,EAAOjD,UAC1EkD,YAAaiE,EAAUwB,GAAYzF,YACnCC,WAAAA,aAGqB+D,EAAWD,EAAgB,CAChDQ,OAAQ,OACRC,KAAMkB,2BAFAC,IAAAA,KAKFC,gBACQ1B,GAAejC,EAAiBhC,WACnCgE,EAAUwB,GAAY3F,eAGrB,UACPT,EAAc4E,EAAUwB,GAAYzF,uBAIf6F,EAAOD,MAAMD,EAAMC,EAAO,CAAEE,WAAW,cAA3DC,SAEkC,IAApC1F,OAAOC,KAAKyF,GAAarI,iDAEpB,CAAEmF,KAAM,GAAImD,MAAO,mBAGtBC,EAAaF,EAAY,UAAU7J,KAAI,SAAAgK,UACzCA,EAAK9J,GAAK8J,EAAK9J,IAAM8J,EAAK,OACnBA,KAGLnG,EAAOoG,OACTF,EAAaA,EAAWE,MAAK,SAACC,EAAGC,UAC3BD,EAAErG,EAAOoG,KAAKG,SAAUD,EAAEtG,EAAOoG,KAAKG,SACd,QAAtBvG,EAAOoG,KAAKI,MACPH,EAAErG,EAAOoG,KAAKG,OAAOE,cAAcH,EAAEtG,EAAOoG,KAAKG,QAEjDD,EAAEtG,EAAOoG,KAAKG,OAAOE,cAAcJ,EAAErG,EAAOoG,KAAKG,aAO5DvG,EAAO0G,aACTR,EAAaA,EAAW9G,OACrBY,EAAO0G,WAAWC,KAAO,GAAK3G,EAAO0G,WAAWE,QACjD5G,EAAO0G,WAAWC,KAAO3G,EAAO0G,WAAWE,4BAIxC,CAAE9D,KAAMoD,EAAYD,MAAOD,EAAY,UAAUrI,mHAIrD,CACLkJ,sCAAS,WAAOnB,EAAY1F,wGACrBkE,EAAUwB,KAEX1F,EAAO3D,IAAM2D,EAAO,QAAUkE,EAAUwB,GAAYoB,wCAChDhF,EAAM9B,EAAO3D,IAAM2D,EAAO,QAAUkE,EAAUwB,GAAYqB,sBAC3C9C,EAAWnC,sBAA1B8D,IAAAA,KA1HE5C,EA4HG,gBA3HXgE,OAAAA,EAAAA,GADc9I,EA4Hc0H,GA3HJ5C,MAAQ9E,EAAS,WACxCjC,MAAMC,QAAQ8K,GAAgBA,EAAavJ,SAASuF,GAAQgE,IAAiBhE,2BA8HxEkD,EAAaN,EAAK,gBAAgBzJ,KAAI,SAAAgK,UACxCA,EAAK9J,GAAK8J,EAAK9J,IAAM8J,EAAK,OACnBA,KAILnG,EAAOjD,SAELiD,EAAOjD,OAAOqD,UACTJ,EAAOjD,OAAOqD,EAEnBE,OAAOC,KAAKP,EAAOjD,QAAQY,OAAS,IACtCuI,EAAaA,EAAWnJ,QAAO,SAAAmB,UAC7BoC,OAAOY,QAAQlB,EAAOjD,QAAQkK,MAAK,yBAAEC,OAAG5I,cACtCrC,MAAMC,QAAQgC,EAASgJ,IAAMhJ,EAASgJ,GAAGzJ,SAASa,GAAKJ,EAASgJ,KAAO5I,UAM3E0B,EAAOoG,OACTF,EAAaA,EAAWE,MAAK,SAACC,EAAGC,UAC3BD,EAAErG,EAAOoG,KAAKG,SAAUD,EAAEtG,EAAOoG,KAAKG,SACd,QAAtBvG,EAAOoG,KAAKI,MACPH,EAAErG,EAAOoG,KAAKG,OAAOE,cAAcH,EAAEtG,EAAOoG,KAAKG,QAEjDD,EAAEtG,EAAOoG,KAAKG,OAAOE,cAAcJ,EAAErG,EAAOoG,KAAKG,aAO5DvG,EAAO0G,aACTR,EAAaA,EAAW9G,OACrBY,EAAO0G,WAAWC,KAAO,GAAK3G,EAAO0G,WAAWE,QACjD5G,EAAO0G,WAAWC,KAAO3G,EAAO0G,WAAWE,4BAIxC,CAAE9D,KAAMoD,EAAYD,MAAOL,EAAK,gBAAgBjI,qBAOnDiI,EAAKuB,wCACclD,EAAW2B,EAAKuB,eAA/BC,SACNxB,EAAOwB,EAAOxB,gBAGVyB,EAAe,CAAC,kBAAmB,eAAgB,WAAY,SAASC,MAAK,SAAAC,UAAK3B,EAAK2B,gDACnE,CAAEzE,KAAM,GAAImD,MAAO,mBAIzCC,EAAaN,EAAKyB,GAAclL,KAAI,SAAAgK,UACtCA,EAAK9J,GAAK8J,EAAK9J,IAAM8J,EAAK,OACnBA,uBAGF,CAAErD,KAAMoD,EAAYD,MAAOL,EAAK4B,8DAG5B/B,EAAcC,EAAY1F,8EAjMhC,IAACgD,EAAM9E,EACd8I,0DAkOJS,qCAAQ,WAAO/B,EAAY1F,4GACpBkE,EAAUwB,GAGTgC,EAAYxD,EAAUwB,YAEPzB,EAAWjE,EAAO3D,4BAAjCuJ,IAAAA,MACDvJ,GAAKuJ,EAAKvJ,IAAMuJ,EAAK,gBAEAE,EAAO6B,QAAQ/B,EAAMzB,GAAejC,EAAiBhC,cAAzE8F,SAEF0B,EAAUE,WAAY,KACKF,EAAUE,2CAA5BC,UACL7B,EAAY6B,KAAoB5L,MAAMC,QAAQ8J,EAAY6B,MAC5D7B,EAAY6B,GAAkB,CAAC7B,EAAY6B,6DAI1C,CAAE/E,KAAMkD,+FAEjB8B,sCAAS,WAAOpC,EAAY1F,mGACtBkG,EAAa,OAEFlG,EAAO+H,qEACpB1L,EAAmB,WAAdM,EADEN,WACuBA,EAAG,OAASA,qBAGnB4H,EAAW5H,qBAA1BuJ,IAAAA,MACDvJ,GAAKA,EACV6J,EAAW5E,KAAKsE,qDAKZvB,GAEF6B,EAAW5E,KAAK,CAAEjF,GAAAA,4KAOjB,CAAEyG,KAAMoD,0HAEjB8B,+CAAkB,WAAOtC,EAAY1F,0FACnCA,EAAOjD,cAAciD,EAAOjD,gBAASiD,EAAOiI,OAASjI,EAAO3D,cAC/CoJ,EAAcC,EAAY1F,qIAEzCkI,qCAAQ,WAAOxC,EAAY1F,kHACpBkE,EAAUwB,KAE4BxB,EAAUwB,GAA7CyC,IAAAA,UAAWpB,IAAAA,aAAchH,IAAAA,MAC3B2E,EAAU,IAAIC,QAEhBwD,GACFzD,EAAQ0D,IACN,OACAnM,MAAMC,QAAQiM,GAAaA,EAAUhM,KAAI,SAAAkM,UAAKrI,EAAO8C,KAAKuF,MAAIhJ,KAAK,KAAOW,EAAO8C,KAAKqF,aAKtE7C,EAAetF,EAAO8C,oBAA1C9C,EAAO8C,qBAEoCmB,EAAW8C,EAAc,CAClEvC,OAAQ,OACRE,QAAAA,EACAD,KAAM6D,KAAKC,wBACGpE,GAAejC,EAAiBhC,WACnCH,GACNC,EAAO8C,gCANG0F,IAAT9D,QAWF+D,EAAcD,EAAgBnD,IAAI,sBACnBpB,EAAWwE,4BAA1B7C,IAAAA,MACDvJ,GAAKuJ,EAAKvJ,IAAMuJ,EAAK,yBACnB,CAAE9C,KAAM8C,+FAEjB8C,qCAAQ,WAAOhD,EAAY1F,mGAELsF,EAAetF,EAAO8C,oBAA1C9C,EAAO8C,qBACDmB,EAAWjE,EAAO3D,GAAI,CAC1BmI,OAAQ,MACRC,KAAM6D,KAAKC,wBACGpE,GAAejC,EAAiBhC,IACzCF,EAAO8C,yCAIP,CAAEA,KAAM9C,EAAO8C,iGAExB6F,WAAY,SAACjD,EAAY1F,SACjB,IAAIuE,MAAM,2EAEV,WAAOmB,EAAY1F,mGACnBiE,EAAWjE,EAAO3D,GAAI,CAC1BmI,OAAQ,2CAEH,CAAE1B,KAAM,CAAEzG,GAAI2D,EAAO3D,gGAE9BuM,WAAY,SAAClD,EAAY1F,SACjB,IAAIuE,MAAM,2DKhWH,SAACzC,OAAK+G,yDAAU,UAC5BA,EAAQnE,UAASmE,EAAQnE,QAAU,IAAIC,SAEpCkE,EAAQrE,YACT,WACA,YACA,MACEqE,EAAQnE,QAAQoE,IAAI,WAAWD,EAAQnE,QAAQ0D,IAAI,SAAU,uBAC7DS,EAAQnE,QAAQoE,IAAI,iBAAiBD,EAAQnE,QAAQ0D,IAAI,eAAgB,iCAG3E,mBAGA,cAEES,EAAQnE,QAAQoE,IAAI,WAAWD,EAAQnE,QAAQ0D,IAAI,SAAU,2BAIhEW,EAAQC,aAAaC,QAAQ,gBAC/BF,GAAOF,EAAQnE,QAAQ0D,IAAI,iCAA2BW,IAEnDG,aAAWC,UAAUrH,EAAK+G"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/fields/ReferenceArrayField.js","../src/fields/ReferenceField.js","../src/dataHandling/FilterHandler.js","../src/inputs/ReferenceArrayInput.js","../src/inputs/ReificationArrayInput.js","../src/dataProvider/utils/getServerKeyFromType.js","../src/dataProvider/utils/getServerKeyFromUri.js","../src/dataProvider/utils/fetchResource.js","../src/dataProvider/methods/getOne.js","../../../node_modules/url-join/lib/url-join.js","../src/dataProvider/utils/uploadAllFiles.js","../src/dataProvider/utils/findContainersWithTypes.js","../src/dataProvider/methods/create.js","../src/dataProvider/methods/delete.js","../src/dataProvider/methods/deleteMany.js","../src/dataProvider/methods/getCreateContainer.js","../src/dataProvider/utils/fetchContainers.js","../src/dataProvider/utils/getEmbedFrame.js","../../../node_modules/crypto-js/core.js","../../../node_modules/crypto-js/md5.js","../src/dataProvider/utils/buildDereferenceQuery.js","../src/dataProvider/utils/buildSparqlQuery.js","../src/dataProvider/utils/fetchSparqlEndpoints.js","../src/dataProvider/utils/findContainersWithPath.js","../src/dataProvider/methods/getList.js","../src/dataProvider/methods/getMany.js","../src/dataProvider/methods/getManyReference.js","../src/dataProvider/methods/update.js","../../../node_modules/jwt-decode/build/jwt-decode.esm.js","../src/dataProvider/utils/fetchUserConfig.js","../src/dataProvider/utils/fetchVoidEndpoints.js","../src/inputs/DateTimeInput.js","../src/dataHandling/GroupedReferenceHandler.js","../src/fields/ImageField.js","../src/inputs/ReferenceInput.js","../src/dataProvider/dataProvider.js","../src/httpClient.js","../src/hooks/useCreateContainer.js"],"sourcesContent":["import React from 'react';\nimport { ReferenceArrayField as RaReferenceArrayField } from 'react-admin';\n\nconst ReferenceArrayField = ({ record, source, ...otherProps }) => {\n if (record?.[source]) {\n if (!Array.isArray(record[source])) {\n record[source] = [record[source]];\n }\n record[source] = record[source].map(i => i['@id'] || i.id || i);\n }\n return <RaReferenceArrayField record={record} source={source} {...otherProps} />;\n};\n\nReferenceArrayField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceArrayField;\n","import React from 'react';\nimport { ReferenceField as RaReferenceField } from 'react-admin';\n\nconst ReferenceField = ({ record, source, ...otherProps }) => {\n if (record[source]) {\n if (typeof record[source] === 'object') {\n record[source] = record[source]['@id'] || record[source].id;\n }\n }\n return <RaReferenceField record={record} source={source} {...otherProps} />;\n};\n\nReferenceField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceField;\n","import React, { useState, useEffect } from 'react';\n\n/**\n * @example\n * <Show>\n * <FilterHandler\n * source=\"property\" // ex pair:organizationOfMembership\n * filter={{\n * 'propertyToFilter':'value'\n * }} // ex {{'pair:membershipRole':'http://localhost:3000/membership-roles/role-1'}}\n * >\n * <SingleFieldList>\n * </SingleFieldList>\n * </FilterHandler>\n * </Show>\n */\n\nconst FilterHandler = ({ children, record, filter, source, ...otherProps }) => {\n const [filtered, setFiltered] = useState();\n useEffect(() => {\n if (record && source && Array.isArray(record?.[source])) {\n const filteredData = record?.[source].filter(r => {\n let eq = true;\n for (const key in filter) {\n const value = r[key];\n if (Array.isArray(value)) {\n if (!value.includes(filter[key])) {\n eq = false;\n }\n } else {\n if (value !== filter[key]) {\n eq = false;\n }\n }\n }\n return eq;\n });\n let newRecord = {\n ...record\n };\n //undefined setted if no data to obtain no render in RightLabel or equivalent\n newRecord[source] = filteredData.length > 0 ? filteredData : undefined;\n setFiltered(newRecord);\n }\n }, [record, source, filter]);\n\n return (\n <>\n {React.Children.map(children, (child, i) => {\n return React.cloneElement(child, {\n ...otherProps,\n record: filtered,\n addLabel: true,\n source\n });\n })}\n </>\n );\n};\nexport default FilterHandler;\n","import React from 'react';\nimport { ReferenceArrayInput as RaReferenceArrayInput, useResourceContext } from 'react-admin';\n\nconst ReferenceArrayInput = props => {\n const resource = useResourceContext({});\n return (\n <RaReferenceArrayInput\n {...props}\n resource={resource}\n format={value => {\n // If there is no value, return immediately\n if (!value) return value;\n // if the linked field value is not an array, turns it into an array.\n // Necessary as JSON-LD are sometimes arrays, sometimes not (when there is one value)\n // and the ReferenceArrayInput component only accept arrays\n if (!Array.isArray(value)) value = [value];\n // If a format prop was defined, apply it to the array\n if (props.format) value = props.format(value);\n // If the values are objects with @id field, turn it to a simple string\n return value.map(v => (typeof v === 'object' ? v.id || v['@id'] : v));\n }}\n />\n );\n};\n\nexport default ReferenceArrayInput;\n","import React, { useEffect, useState } from 'react';\nimport { ArrayInput, SimpleFormIterator, TextInput } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useReferenceInputStyles = makeStyles({\n form: {\n display: 'flex'\n },\n input: {\n paddingRight: '20px'\n }\n});\n\nconst useHideInputStyles = makeStyles({\n root: {\n display: 'none'\n }\n});\n\nconst ReificationArrayInput = props => {\n const { reificationClass, children, ...otherProps } = props;\n const flexFormClasses = useReferenceInputStyles();\n const hideInputStyles = useHideInputStyles();\n\n return (\n <ArrayInput {...otherProps}>\n <SimpleFormIterator classes={{ form: flexFormClasses.form }}>\n {React.Children.map(props.children, (child, i) => {\n return React.cloneElement(child, {\n className: flexFormClasses.input\n });\n })}\n <TextInput className={hideInputStyles.root} source=\"type\" initialValue={reificationClass} />\n </SimpleFormIterator>\n </ArrayInput>\n );\n};\n\nexport default ReificationArrayInput;\n","const getServerKeyFromType = (type, dataServers) => {\n return Object.keys(dataServers).find(key => {\n return dataServers[key][type];\n });\n};\n\nexport default getServerKeyFromType;\n","// Return the first server matching with the baseUrl\nconst getServerKeyFromUri = (uri, dataServers) => {\n return Object.keys(dataServers).find(key => {\n return uri.startsWith(dataServers[key].baseUrl);\n });\n};\n\nexport default getServerKeyFromUri;\n","import getServerKeyFromType from './getServerKeyFromType';\nimport getServerKeyFromUri from './getServerKeyFromUri';\nimport jsonld from 'jsonld';\n\nconst fetchResource = async (resourceUri, config) => {\n const { dataServers, httpClient, jsonContext } = config;\n\n const authServerKey = getServerKeyFromType('authServer', dataServers);\n const serverKey = getServerKeyFromUri(resourceUri, dataServers);\n\n // Fetch through proxy server if it is available\n let { json: data } =\n serverKey !== authServerKey && dataServers[authServerKey]?.proxyUrl && dataServers[serverKey]?.noProxy !== true\n ? await httpClient(dataServers[authServerKey].proxyUrl, {\n method: 'POST',\n headers: new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }),\n body: new URLSearchParams({ id: resourceUri })\n })\n : await httpClient(resourceUri, {\n noToken: serverKey !== authServerKey\n });\n\n data.id = data.id || data['@id'];\n\n // We compact only if the context is different between the frontend and the middleware\n // TODO deep compare if the context is an object\n if (data['@context'] !== jsonContext) {\n data = await jsonld.compact(data, jsonContext);\n }\n\n return data;\n};\n\nexport default fetchResource;\n","import fetchResource from '../utils/fetchResource';\n\nconst getOneMethod = config => async (resourceId, params) => {\n const { resources } = config;\n const dataModel = resources[resourceId];\n\n if (!dataModel) throw new Error(`Resource ${resourceId} is not mapped in resources file`);\n\n const data = await fetchResource(params.id, config);\n\n // Transform single value into array if forceArray is set\n if (dataModel.list?.forceArray) {\n for (const forceArrayItem of dataModel.list?.forceArray) {\n if (data[forceArrayItem] && !Array.isArray(data[forceArrayItem])) {\n data[forceArrayItem] = [data[forceArrayItem]];\n }\n }\n }\n\n if (dataModel.list?.dereference) {\n for (const dereferenceItem of dataModel.list?.dereference) {\n if (\n data[dereferenceItem] &&\n typeof data[dereferenceItem] === 'string' &&\n data[dereferenceItem].startsWith('http')\n ) {\n try {\n const dataToEmbed = await fetchResource(data[dereferenceItem], config);\n delete dataToEmbed['@context'];\n data[dereferenceItem] = dataToEmbed;\n } catch (e) {\n // Ignore errors (this may happen if user does not have rights to see the resource)\n }\n }\n }\n }\n\n return { data: data };\n};\n\nexport default getOneMethod;\n","(function (name, context, definition) {\n if (typeof module !== 'undefined' && module.exports) module.exports = definition();\n else if (typeof define === 'function' && define.amd) define(definition);\n else context[name] = definition();\n})('urljoin', this, function () {\n\n function normalize (strArray) {\n var resultArray = [];\n if (strArray.length === 0) { return ''; }\n\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n var first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (var i = 0; i < strArray.length; i++) {\n var component = strArray[i];\n\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n\n if (component === '') { continue; }\n\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[\\/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[\\/]+$/, '/');\n }\n\n resultArray.push(component);\n\n }\n\n var str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n var parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n return str;\n }\n\n return function () {\n var input;\n\n if (typeof arguments[0] === 'object') {\n input = arguments[0];\n } else {\n input = [].slice.call(arguments);\n }\n\n return normalize(input);\n };\n\n});\n","import createSlug from 'speakingurl';\nimport urlJoin from 'url-join';\n\nexport const getSlugWithExtension = fileName => {\n let fileExtension = '';\n let splitFileName = fileName.split('.');\n if (splitFileName.length > 1) {\n fileExtension = splitFileName.pop();\n fileName = splitFileName.join('.');\n }\n return createSlug(fileName, { lang: 'fr' }) + '.' + fileExtension;\n};\n\nexport const isFile = o => o && o.rawFile && o.rawFile instanceof File;\n\nconst getUploadsContainerUri = config => {\n const serverKey = Object.keys(config.dataServers).find(key => config.dataServers[key].uploadsContainer);\n if (serverKey) {\n return urlJoin(config.dataServers[serverKey].baseUrl, config.dataServers[serverKey].uploadsContainer);\n }\n};\n\nconst uploadFile = async (rawFile, config) => {\n const uploadsContainerUri = getUploadsContainerUri(config);\n if (!uploadsContainerUri) throw new Error(\"You must define an uploadsContainer in one of the server's configuration\");\n\n const response = await config.httpClient(uploadsContainerUri, {\n method: 'POST',\n body: rawFile,\n headers: new Headers({\n // We must sluggify the file name, because we can't use non-ASCII characters in the header\n // However we keep the extension apart (if it exists) so that it is not replaced with a -\n // TODO let the middleware guess the extension based on the content type\n Slug: getSlugWithExtension(rawFile.name),\n 'Content-Type': rawFile.type\n })\n });\n\n if (response.status === 201) {\n return response.headers.get('Location');\n }\n};\n\n/*\n * Look for raw files in the record data.\n * If there are any, upload them and replace the file by its URL.\n */\nconst uploadAllFiles = async (record, config) => {\n for (let property in record) {\n if (record.hasOwnProperty(property)) {\n if (Array.isArray(record[property])) {\n for (let i = 0; i < record[property].length; i++) {\n if (isFile(record[property][i])) {\n record[property][i] = await uploadFile(record[property][i].rawFile, config);\n }\n }\n } else {\n if (isFile(record[property])) {\n record[property] = await uploadFile(record[property].rawFile, config);\n }\n }\n }\n }\n return record;\n};\n\nexport default uploadAllFiles;\n","import urlJoin from 'url-join';\n\nconst findContainersWithTypes = (types, servers, dataServers) => {\n let containers = {};\n let existingContainers = [];\n Object.keys(dataServers).forEach(key1 => {\n Object.keys(dataServers[key1].containers).forEach(key2 => {\n if (!servers || (Array.isArray(servers) ? servers.includes(key2) : servers === key2)) {\n Object.keys(dataServers[key1].containers[key2]).forEach(type => {\n if (types.includes(type)) {\n dataServers[key1].containers[key2][type].map(path => {\n const containerUri = urlJoin(dataServers[key2].baseUrl, path);\n\n // Avoid returning the same container several times\n if (!existingContainers.includes(containerUri)) {\n existingContainers.push(containerUri);\n\n if (!containers[key1]) containers[key1] = [];\n containers[key1].push(containerUri);\n }\n });\n }\n });\n }\n });\n });\n return containers;\n};\n\nexport default findContainersWithTypes;\n","import getOne from './getOne';\nimport uploadAllFiles from '../utils/uploadAllFiles';\nimport findContainersWithTypes from '../utils/findContainersWithTypes';\nimport getServerKeyFromUri from '../utils/getServerKeyFromUri';\n\nconst createMethod = config => async (resourceId, params) => {\n const { dataServers, resources, httpClient, jsonContext } = config;\n const dataModel = resources[resourceId];\n\n if (!dataModel) Error(`Resource ${resourceId} is not mapped in resources file`);\n\n const headers = new Headers();\n\n if (dataModel.fieldsMapping?.title) {\n headers.set('Slug', params.data[dataModel.fieldsMapping?.title]);\n }\n\n let containerUri, serverKey;\n if (dataModel.create?.container) {\n containerUri = dataModel.create?.container;\n serverKey = getServerKeyFromUri(containerUri, dataServers);\n } else {\n serverKey =\n dataModel.create?.server || Object.keys(config.dataServers).find(key => config.dataServers[key].default === true);\n if (!serverKey) throw new Error('You must define a server for the creation, or a container, or a default server');\n\n const containers = findContainersWithTypes(dataModel.types, [serverKey], dataServers);\n // Extract the containerUri from the results (and ensure there is only one)\n const serverKeys = Object.keys(containers);\n\n if (!serverKeys || serverKeys.length === 0)\n throw new Error(`No container with types ${JSON.stringify(dataModel.types)} found on server ${serverKey}`);\n if (serverKeys.length > 1 || containers[serverKeys[0]].length > 1)\n throw new Error(\n `More than one container detected with types ${JSON.stringify(dataModel.types)} on server ${serverKey}`\n );\n containerUri = containers[serverKeys[0]][0];\n }\n\n // Upload files, if there are any\n params.data = await uploadAllFiles(params.data, config);\n\n const { headers: responseHeaders } = await httpClient(containerUri, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n '@context': jsonContext,\n '@type': dataModel.types,\n ...params.data\n }),\n noToken: dataServers[serverKey].authServer !== true\n });\n\n // Retrieve newly-created resource\n const resourceUri = responseHeaders.get('Location');\n return await getOne(config)(resourceId, { id: resourceUri });\n};\n\nexport default createMethod;\n","import getServerKeyFromUri from '../utils/getServerKeyFromUri';\n\nconst deleteMethod = config => async (resourceId, params) => {\n const { dataServers, httpClient } = config;\n const serverKey = getServerKeyFromUri(params.id, dataServers);\n\n await httpClient(params.id, {\n method: 'DELETE',\n noToken: !serverKey || dataServers[serverKey].authServer !== true\n });\n\n return { data: { id: params.id } };\n};\n\nexport default deleteMethod;\n","const deleteManyMethod = config => async (resourceId, params) => {\n const { httpClient } = config;\n let ids = [];\n\n for (let id of params.ids) {\n try {\n await httpClient(id, {\n method: 'DELETE'\n });\n ids.push(id);\n } catch (e) {\n // Do nothing if we fail to delete a resource\n }\n }\n\n return { data: ids };\n};\n\nexport default deleteManyMethod;\n","import urlJoin from 'url-join';\nimport getServerKeyFromType from '../utils/getServerKeyFromType';\n\nconst findCreateContainerWithTypes = (types, createServerKey, dataServers) => {\n let containers = [];\n Object.keys(dataServers[createServerKey].containers[createServerKey]).forEach(type => {\n if (types.includes(type)) {\n dataServers[createServerKey].containers[createServerKey][type].map(path => {\n const containerUri = urlJoin(dataServers[createServerKey].baseUrl, path);\n if (!containers.includes(containerUri)) {\n containers.push(containerUri);\n }\n });\n }\n });\n\n if (containers.length === 0) {\n throw new Error(\n `No container found matching with types ${JSON.stringify(\n types\n )}. You can set explicitely the create.container property of the resource.`\n );\n } else if (containers.length > 1) {\n throw new Error(\n `More than one container found matching with types ${JSON.stringify(\n types\n )}. You must set the create.server or create.container property for the resource.`\n );\n }\n\n return containers[0];\n};\n\nconst getCreateContainer = config => resourceId => {\n let { dataServers, resources } = config;\n const dataModel = resources[resourceId];\n\n if (!dataModel) throw new Error(`Resource ${resourceId} is not mapped in resources file`);\n\n if (dataModel.create?.container) {\n return dataModel.create?.container;\n } else if (dataModel.create?.server) {\n return findCreateContainerWithTypes(dataModel.types, dataModel.create?.server, dataServers);\n } else {\n const defaultServerKey = getServerKeyFromType('default', dataServers);\n return findCreateContainerWithTypes(dataModel.types, defaultServerKey, dataServers);\n }\n};\n\nexport default getCreateContainer;\n","import jsonld from 'jsonld';\n\nexport const isType = (type, resource) => {\n const resourceType = resource.type || resource['@type'];\n return Array.isArray(resourceType) ? resourceType.includes(type) : resourceType === type;\n};\n\nconst fetchContainers = async (containers, resourceId, params, config) => {\n const { dataServers, httpClient, jsonContext } = config;\n\n // Transform in an containerUri:serverKey object\n const containersServers = Object.keys(containers).reduce(\n (acc, serverKey) => ({\n ...acc,\n ...Object.fromEntries(containers[serverKey].map(containerUri => [containerUri, serverKey]))\n }),\n {}\n );\n\n const fetchPromises = Object.keys(containersServers).map(containerUri =>\n httpClient(containerUri, {\n noToken: !containersServers[containerUri] || dataServers[containersServers[containerUri]].authServer !== true\n })\n .then(({ json }) => {\n // If container's context is different, compact it to have an uniform result\n // TODO deep compare if the context is an object\n if (json['@context'] !== jsonContext) {\n return jsonld.compact(json, jsonContext);\n } else {\n return json;\n }\n })\n .then(json => {\n if (isType('ldp:Container', json)) {\n return json['ldp:contains'];\n } else {\n throw new Error(containerUri + ' is not a LDP container');\n }\n })\n );\n\n // Fetch simultaneously all containers\n let results = await Promise.all(fetchPromises);\n\n if (results.length === 0) {\n return { data: [], total: 0 };\n } else {\n // Merge all results in one array\n results = [].concat.apply(...results);\n\n let returnData = results.map(item => {\n item.id = item.id || item['@id'];\n return item;\n });\n\n // Apply filter to results\n if (params.filter) {\n // For SPARQL queries, we use \"a\" to filter types, but in containers it must be \"type\"\n if (params.filter.a) {\n params.filter.type = params.filter.a;\n delete params.filter.a;\n }\n\n // Remove search params from filter\n if (params.filter.q) {\n delete params.filter.q;\n }\n if (Object.keys(params.filter).length > 0) {\n returnData = returnData.filter(resource =>\n Object.entries(params.filter).some(([k, v]) =>\n Array.isArray(resource[k]) ? resource[k].includes(v) : resource[k] === v\n )\n );\n }\n }\n\n if (params.sort) {\n returnData = returnData.sort((a, b) => {\n if (a[params.sort.field] && b[params.sort.field]) {\n if (params.sort.order === 'ASC') {\n return a[params.sort.field].localeCompare(b[params.sort.field]);\n } else {\n return b[params.sort.field].localeCompare(a[params.sort.field]);\n }\n } else {\n return true;\n }\n });\n }\n if (params.pagination) {\n returnData = returnData.slice(\n (params.pagination.page - 1) * params.pagination.perPage,\n params.pagination.page * params.pagination.perPage\n );\n }\n\n return { data: returnData, total: results.length };\n }\n};\n\nexport default fetchContainers;\n","const getEmbedFrame = paths => {\n let embedFrame = {},\n predicates;\n if (paths) {\n for (let path of paths) {\n if (path.includes('/')) {\n predicates = path.split('/').reverse();\n } else {\n predicates = [path];\n }\n embedFrame = {\n ...embedFrame,\n ...predicates.reduce(\n (accumulator, predicate) => ({\n [predicate]: {\n '@embed': '@last',\n ...accumulator\n }\n }),\n {}\n )\n };\n }\n return embedFrame;\n }\n};\n\nexport default getEmbedFrame;\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working varialbes\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));","import md5 from 'crypto-js/md5';\nimport DataFactory from '@rdfjs/data-model';\nconst { namedNode, quad, variable } = DataFactory;\n\n// Transform ['ont:predicate1/ont:predicate2'] to ['ont:predicate1', 'ont:predicate1/ont:predicate2']\nconst extractNodes = predicates => {\n let nodes = [];\n if (predicates) {\n for (let predicate of predicates) {\n if (predicate.includes('/')) {\n const nodeNames = predicate.split('/');\n for (let i = 1; i <= nodeNames.length; i++) {\n nodes.push(nodeNames.slice(0, i).join('/'));\n }\n } else {\n nodes.push(predicate);\n }\n }\n }\n return nodes;\n};\n\nconst generateSparqlVarName = node => md5(node);\n\nconst getParentNode = node => node.includes('/') && node.split('/')[0];\n\nconst getPredicate = node => (node.includes('/') ? node.split('/')[1] : node);\n\nconst buildOptionalQuery = (queries, parentNode = false) =>\n queries\n .filter(q => q.parentNode === parentNode)\n .map(q => ({\n type: 'optional',\n patterns: [\n {\n type: 'bgp',\n triples: q.query\n },\n buildOptionalQuery(queries, q.node)\n ]\n }));\n\nconst buildDereferenceQuery = (predicates, ontologies) => {\n let queries = [];\n const nodes = extractNodes(predicates);\n\n if (nodes && ontologies && ontologies.length > 0) {\n for (let node of nodes) {\n const parentNode = getParentNode(node);\n const predicate = getPredicate(node);\n const varName = generateSparqlVarName(node);\n const parentVarName = parentNode ? generateSparqlVarName(parentNode) : '1';\n const filterPrefix = predicate.split(':')[0];\n const filterValue = predicate.split(':')[1];\n const filterOntology = ontologies.find(ontology => ontology.prefix === filterPrefix);\n const query = [\n quad(variable('s' + parentVarName), namedNode(filterOntology.url + filterValue), variable('s' + varName)),\n quad(variable('s' + varName), variable('p' + varName), variable('o' + varName))\n ];\n\n queries.push({\n node,\n parentNode,\n query: query,\n filter: '' // `FILTER(isBLANK(?s${varName})) .`\n });\n }\n return {\n construct: queries.length > 0 ? queries.map(q => q.query).reduce((pre, cur) => pre.concat(cur)) : null,\n where: buildOptionalQuery(queries)\n };\n } else {\n return {\n construct: '',\n where: ''\n };\n }\n};\n\nexport default buildDereferenceQuery;\n","import buildDereferenceQuery from './buildDereferenceQuery';\nimport DataFactory from '@rdfjs/data-model';\nconst { literal, namedNode, quad, variable } = DataFactory;\n\n// Regenerate a SPARQL query from a JSON object\nlet SparqlGenerator = require('sparqljs').Generator;\nlet generator = new SparqlGenerator({\n /* prefixes, baseIRI, factory, sparqlStar */\n});\n\nconst buildSparqlQuery = ({ containers, params: { filter }, dereference, ontologies }) => {\n // sparqljsParams : init CONSTRUCT clause\n let sparqljsParams = {\n queryType: 'CONSTRUCT',\n template: [quad(variable('s1'), variable('p1'), variable('o1'))],\n where: [\n {\n type: 'bgp',\n triples: [quad(variable('s1'), variable('p1'), variable('o1'))]\n },\n {\n type: 'filter',\n expression: {\n type: 'operation',\n operator: 'isiri',\n args: [variable('s1')]\n }\n },\n {\n type: 'filter',\n expression: {\n type: 'operation',\n operator: 'in',\n args: [variable('containerUri'), containers.map(containerUri => namedNode(containerUri))]\n }\n },\n {\n type: 'bgp',\n triples: [quad(variable('containerUri'), namedNode('http://www.w3.org/ns/ldp#contains'), variable('s1'))]\n }\n ],\n type: 'query',\n prefixes: {}\n };\n\n // sparqljsParams : prefixes property fill from ontologies\n ontologies.map(ontology => {\n sparqljsParams.prefixes = {\n ...sparqljsParams.prefixes,\n [ontology.prefix]: ontology.url\n };\n });\n\n // sparqljsParams : build dereference\n const dereferenceQueryForSparqlJs = buildDereferenceQuery(dereference, ontologies);\n if (dereferenceQueryForSparqlJs && dereferenceQueryForSparqlJs.construct) {\n sparqljsParams.where = sparqljsParams.where.concat(dereferenceQueryForSparqlJs.where);\n sparqljsParams.template = sparqljsParams.template.concat(dereferenceQueryForSparqlJs.construct);\n }\n\n // sparqljsParams : check for filters\n if (filter && Object.keys(filter).length > 0) {\n const isSPARQLFilter = filter.sparqlWhere && Object.keys(filter.sparqlWhere).length > 0;\n const isQFilter = filter.q && filter.q.length > 0;\n\n // sparqljs filter \"sparqlWhere\" :\n if (isSPARQLFilter) {\n /* \n Example of sparqlWhere usage : \n - url :\n http://localhost:5000/Organization?filter=%7B%22q%22%3A%20%22orga%22%2C%22sparqlWhere%22%3A%20%7B%0A%22type%22%3A%20%22bgp%22%2C%0A%22triples%22%3A%20%5B%7B%0A%22subject%22%3A%20%7B%0A%22termType%22%3A%20%22Variable%22%2C%0A%22value%22%3A%20%22s1%22%0A%7D%2C%0A%22predicate%22%3A%20%7B%0A%22termType%22%3A%20%22NameNode%22%2C%0A%22value%22%3A%20%22http%3A%2F%2Fvirtual-assembly.org%2Fontologies%2Fpair%23label%22%0A%7D%2C%0A%22object%22%3A%20%7B%0A%22termType%22%3A%20%22Literal%22%2C%0A%22value%22%3A%20%22orga2%22%0A%7D%0A%7D%5D%0A%7D%7D\n - json :\n {\n \"q\": \"orga\",\n \"sparqlWhere\": {\n \"type\": \"bgp\",\n \"triples\": [{\n \"subject\": {\"termType\": \"Variable\",\"value\": \"s1\"},\n \"predicate\": {\"termType\": \"NameNode\",\"value\": \"http://virtual-assembly.org/ontologies/pair#label\"},\n \"object\": {\"termType\": \"Literal\",\"value\": \"orga2\"}\n }]\n }\n }\n */\n sparqljsParams.where.push(filter.sparqlWhere);\n }\n\n // sparqljs filter \"q\" (full-text search) :\n if (isQFilter) {\n sparqljsParams.where.push({\n type: 'group',\n patterns: [\n {\n queryType: 'SELECT',\n variables: [variable('s1')],\n where: [\n {\n type: 'bgp',\n triples: [quad(variable('s1'), variable('p1'), variable('o1'))]\n },\n {\n type: 'filter',\n expression: {\n type: 'operation',\n operator: 'regex',\n args: [\n {\n type: 'operation',\n operator: 'lcase',\n args: [\n {\n type: 'operation',\n operator: 'str',\n args: [variable('o1')]\n }\n ]\n },\n literal(filter.q.toLowerCase(), '', namedNode('http://www.w3.org/2001/XMLSchema#string'))\n ]\n }\n },\n {\n type: 'filter',\n expression: {\n type: 'operation',\n operator: 'notexists',\n args: [\n {\n type: 'bgp',\n triples: [\n quad(\n variable('s1'),\n namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),\n variable('o1')\n )\n ]\n }\n ]\n }\n }\n ],\n type: 'query'\n }\n ]\n });\n }\n\n // sparqljs \"a\" and other filters :\n // SPARQL keyword a = filter based on the class of a resource (example => 'a': 'pair:OrganizationType')\n // Other filters are based on a value (example => 'petr:hasAudience': 'http://localhost:3000/audiences/tout-public')\n Object.keys(filter).forEach(filterKey => {\n if (filterKey !== 'sparqlWhere' && filterKey !== 'q') {\n const filterItem = filterKey === 'a' ? filter[filterKey] : filterKey;\n const filterPrefix = filterItem.split(':')[0];\n const filterValue = filterItem.split(':')[1];\n const filterOntology = ontologies.find(ontology => ontology.prefix === filterPrefix);\n const filterPredicateValue =\n filterKey === 'a' ? 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type' : filterOntology.url + filterValue;\n const filterObjectValue = filterKey === 'a' ? filterOntology.url + filterValue : filter[filterKey];\n\n sparqljsParams.where.push({\n type: 'bgp',\n triples: [quad(variable('s1'), namedNode(filterPredicateValue), namedNode(filterObjectValue))]\n });\n }\n });\n }\n\n const sparqljsQuery = generator.stringify(sparqljsParams);\n\n if (filter.q) {\n delete filter.q;\n }\n\n return sparqljsQuery;\n};\n\nexport default buildSparqlQuery;\n","import getEmbedFrame from './getEmbedFrame';\nimport buildSparqlQuery from './buildSparqlQuery';\nimport jsonld from 'jsonld';\n\nconst fetchSparqlEndpoints = async (containers, resourceId, params, config) => {\n const { dataServers, resources, httpClient, jsonContext, ontologies } = config;\n const dataModel = resources[resourceId];\n\n const frame = {\n '@context': jsonContext,\n '@type': dataModel.types,\n // Embed only what we explicitly asked to dereference\n // Otherwise we may have same-type resources embedded in other resources\n '@embed': '@never',\n ...getEmbedFrame(dataModel.list?.dereference)\n };\n\n const sparqlQueryPromises = Object.keys(containers).map(\n serverKey =>\n new Promise((resolve, reject) => {\n const sparqlQuery = buildSparqlQuery({\n containers: containers[serverKey],\n params: { ...params, filter: { ...dataModel.list?.filter, ...params.filter } },\n dereference: dataModel.list?.dereference,\n ontologies\n });\n\n httpClient(dataServers[serverKey].sparqlEndpoint, {\n method: 'POST',\n body: sparqlQuery,\n noToken: dataServers[serverKey].authServer !== true\n })\n .then(({ json }) => {\n // omitGraph option force results to be in a @graph, even if we have a single result\n return jsonld.frame(json, frame, { omitGraph: false });\n })\n .then(compactJson => {\n resolve(compactJson['@graph'] || []);\n })\n .catch(e => reject(e));\n })\n );\n\n // Run simultaneous SPARQL queries\n let results = await Promise.all(sparqlQueryPromises);\n\n if (results.length === 0) {\n return { data: [], total: 0 };\n } else {\n // Merge all results in one array\n results = [].concat.apply(...results);\n\n // Add id in addition to @id, as this is what React-Admin expects\n let returnData = results.map(item => {\n item.id = item.id || item['@id'];\n return item;\n });\n\n // TODO sort and paginate the results in the SPARQL query to improve performances\n if (params.sort) {\n returnData = returnData.sort((a, b) => {\n if (a[params.sort.field] && b[params.sort.field]) {\n if (params.sort.order === 'ASC') {\n return a[params.sort.field].localeCompare(b[params.sort.field]);\n } else {\n return b[params.sort.field].localeCompare(a[params.sort.field]);\n }\n } else {\n return true;\n }\n });\n }\n if (params.pagination) {\n returnData = returnData.slice(\n (params.pagination.page - 1) * params.pagination.perPage,\n params.pagination.page * params.pagination.perPage\n );\n }\n\n return { data: returnData, total: results.length };\n }\n};\n\nexport default fetchSparqlEndpoints;\n","import urlJoin from 'url-join';\n\nconst findContainersWithPaths = (paths, dataServers) => {\n let containers = {};\n Object.keys(paths).forEach(serverKey => {\n if (dataServers[serverKey]) {\n containers[serverKey] = [];\n paths[serverKey].forEach(path => {\n containers[serverKey].push(urlJoin(dataServers[serverKey].baseUrl, path));\n });\n } else {\n throw new Error('No server found with key ' + serverKey);\n }\n });\n return containers;\n};\n\nexport default findContainersWithPaths;\n","import findContainersWithTypes from '../utils/findContainersWithTypes';\nimport fetchContainers from '../utils/fetchContainers';\nimport fetchSparqlEndpoints from '../utils/fetchSparqlEndpoints';\nimport findContainersWithPaths from '../utils/findContainersWithPath';\n\nconst getListMethod = config => async (resourceId, params = {}) => {\n let { dataServers, resources } = config;\n const dataModel = resources[resourceId];\n\n if (!dataModel) throw new Error(`Resource ${resourceId} is not mapped in resources file`);\n\n let containers;\n if (dataModel.list?.containers && Object.keys(dataModel.list.containers).length > 0) {\n // If containers are set explicitly, use them\n containers = findContainersWithPaths(dataModel.list.containers, dataServers);\n } else {\n containers = findContainersWithTypes(dataModel.types, dataModel.list?.servers, dataServers);\n }\n\n console.log('containers', containers);\n\n if (dataModel.list?.fetchContainer) {\n return fetchContainers(containers, resourceId, params, config);\n } else {\n return fetchSparqlEndpoints(containers, resourceId, params, config);\n }\n};\n\nexport default getListMethod;\n","import getOne from './getOne';\n\nconst getManyMethod = config => async (resourceId, params) => {\n const { returnFailedResources } = config;\n\n let returnData = [];\n\n for (let id of params.ids) {\n id = typeof id === 'object' ? id['@id'] : id;\n\n try {\n const { data } = await getOne(config)(resourceId, { id });\n returnData.push(data);\n } catch (e) {\n // Catch if one resource fails to load\n // Otherwise no references will be show if only one is missing\n // See https://github.com/marmelab/react-admin/issues/5190\n if (returnFailedResources) {\n // Return only the ID of the resource\n returnData.push({ id });\n } else {\n // Do nothing. The resource will not appear in the results.\n }\n }\n }\n\n return { data: returnData };\n};\n\nexport default getManyMethod;\n","import getList from './getList';\n\nconst getManyReferenceMethod = config => async (resourceId, params) => {\n params.filter = { ...params.filter, [params.target]: params.id };\n delete params.target;\n return await getList(config)(resourceId, params);\n};\n\nexport default getManyReferenceMethod;\n","import uploadAllFiles from '../utils/uploadAllFiles';\nimport getServerKeyFromUri from '../utils/getServerKeyFromUri';\n\nconst updateMethod = config => async (resourceId, params) => {\n const { dataServers, httpClient, jsonContext } = config;\n const serverKey = getServerKeyFromUri(params.id, dataServers);\n\n // Upload files, if there are any\n params.data = await uploadAllFiles(params.data, config);\n\n await httpClient(params.id, {\n method: 'PUT',\n body: JSON.stringify({\n '@context': jsonContext,\n ...params.data\n }),\n noToken: !serverKey || dataServers[serverKey].authServer !== true\n });\n\n return { data: params.data };\n};\n\nexport default updateMethod;\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import jwtDecode from 'jwt-decode';\nimport getServerKeyFromType from './getServerKeyFromType';\nimport urlJoin from 'url-join';\n\nconst fetchUserConfig = async config => {\n const { dataServers, httpClient } = config;\n const token = localStorage.getItem('token');\n const podKey = getServerKeyFromType('pod', dataServers);\n const authServerKey = getServerKeyFromType('authServer', dataServers);\n\n // If the user is logged in\n if (token) {\n const { webId } = jwtDecode(token);\n let userData;\n\n try {\n const { json } = await httpClient(webId);\n userData = json;\n } catch (e) {\n console.error(e);\n // If the webId cannot be fetched, assume an invalid token and disconnect the user\n localStorage.removeItem('token');\n window.location.reload();\n return;\n }\n\n // If we have a POD server\n if (podKey) {\n // Fill the config provided to the data provider\n // We must modify the config object directly\n config.dataServers[podKey].name = 'My Pod';\n config.dataServers[podKey].baseUrl = urlJoin(webId, 'data'); // TODO find POD URI from user profile\n config.dataServers[podKey].sparqlEndpoint =\n userData.endpoints?.['void:sparqlEndpoint'] || urlJoin(webId, 'sparql');\n }\n\n if (authServerKey) {\n // Fill the config provided to the data provider\n // We must modify the config object directly\n config.dataServers[authServerKey].proxyUrl = userData.endpoints?.proxyUrl;\n }\n } else {\n if (podKey) {\n // If the user is not logged in, ignore the POD server\n delete config.dataServers[podKey];\n }\n }\n};\n\nexport default fetchUserConfig;\n","const fetchVoidEndpoints = async config => {\n const fetchPromises = Object.values(config.dataServers)\n .filter(server => server.pod !== true)\n .map(server =>\n config\n .httpClient(new URL('/.well-known/void', server.baseUrl))\n .then(result => ({ data: result.json }))\n .catch(e => {\n if (e.status === 404) {\n return { error: e };\n } else {\n throw e;\n }\n })\n );\n\n try {\n const results = await Promise.all(fetchPromises);\n for (let result of results) {\n // Ignore unfetchable endpoints\n if (result.data) {\n // TODO modify config.dataServers based on the VOID configs returned\n }\n }\n } catch (e) {\n // Do not throw error if no endpoint found\n }\n};\n\nexport default fetchVoidEndpoints;\n","import React from 'react';\nimport { DateTimeInput as RaDateTimeInput } from 'react-admin';\n\n/**\n * @deprecated Use the component from the @semapps/date-components instead\n */\nconst DateTimeInput = props => (\n <RaDateTimeInput {...props} format={value => value && value.replace(' ', 'T').replace('Z', '')} />\n);\n\nexport default DateTimeInput;\n","import React from 'react';\nimport { useQueryWithStore } from 'react-admin';\nimport { default as FilterHandler } from './FilterHandler';\n\n/*\n * @example Label used in examples\n * const Label = ({label, ...otherProps})=>{\n * return <h2>{label}</h2>\n * }\n *\n * @example show header for each group with group property thanks to groupHeader\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupHeader={({group,...otherProps}) => <Label {...otherProps} label={group['pair:label']}></Label> }\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </GroupedReferenceHandler>\n *\n * @example call chhildren with label thanks to groupLabel\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupLabel=\"property of RAresource display\" // property of React-Admin resource to display. children call whith props \"label\" filled by groupLabel property of groupReference\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <Label>\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </GroupedReferenceHandler>\n *\n * @example conditional show of group if no data in source. Conditionale groupHeader is not possible because GroupedArrayField define group before filter ; need use chhildren.\n * const ConditionalSourceDefinedHandler = ({record,source,children,...otherProps})=>{\n * if (record?.[source] && (!Array.isArray(record[source])||record[source].length>0)){\n * return React.Children.map(children, (child, i) => {\n * return React.cloneElement(child, {...otherProps,record,source});\n * })\n * }else{\n * return <></>\n * }\n * }\n *\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupLabel=\"property of RAresource display\" // property of React-Admin resource to display. children call whith props \"label\" filled by groupLabel property of groupReference\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <ConditionalSourceDefinedHandler>\n * <Label>\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </ConditionalSourceDefinedHandler>\n * </GroupedReferenceHandler>\n *\n *\n */\nconst GroupedReferenceHandler = ({\n children,\n groupReference,\n groupLabel,\n groupHeader,\n filterProperty,\n ...otherProps\n}) => {\n const { data } = useQueryWithStore({\n type: 'getList',\n resource: groupReference,\n payload: {}\n });\n\n return (\n <>\n {data?.map((data, index) => {\n let filter = {};\n filter[filterProperty] = data.id;\n return (\n <>\n {groupHeader && groupHeader({ ...otherProps, group: data })}\n <FilterHandler {...otherProps} filter={filter} label={data[groupLabel]}>\n {children}\n </FilterHandler>\n </>\n );\n })}\n </>\n );\n};\n\nexport default GroupedReferenceHandler;\n","import React from 'react';\nimport { ImageField as RaImageField } from 'react-admin';\n\nconst ImageField = ({ record, source, ...otherProps }) => {\n // For the display, we need to have the URI in a src property\n if (typeof record === 'string') record = { [source]: record };\n return <RaImageField record={record} source={source} {...otherProps} />;\n};\n\nexport default ImageField;\n","import React from 'react';\nimport { ReferenceInput as RaReferenceInput, useResourceContext } from 'react-admin';\n\nconst ReferenceInput = props => {\n const resource = useResourceContext({});\n return (\n <RaReferenceInput\n {...props}\n resource={resource}\n format={value => {\n // If there is no value, return immediately\n if (!value) return value;\n // If a format prop was defined, apply it\n if (props.format) value = props.format(value);\n // If the value is an object with an @id field, return the uri\n return typeof value === 'object' ? value.id || value['@id'] : value;\n }}\n />\n );\n};\n\nexport default ReferenceInput;\n","import createMethod from './methods/create';\nimport deleteMethod from './methods/delete';\nimport deleteManyMethod from './methods/deleteMany';\nimport getCreateContainerMethod from './methods/getCreateContainer';\nimport getListMethod from './methods/getList';\nimport getManyMethod from './methods/getMany';\nimport getManyReferenceMethod from './methods/getManyReference';\nimport getOneMethod from './methods/getOne';\nimport updateMethod from './methods/update';\nimport fetchUserConfig from './utils/fetchUserConfig';\nimport fetchVoidEndpoints from './utils/fetchVoidEndpoints';\nimport getServerKeyFromType from './utils/getServerKeyFromType';\n\nconst dataProvider = config => {\n // TODO verify all data provider config + data models\n if (!getServerKeyFromType('default', config.dataServers))\n throw new Error('You must define a default server in your dataServers config');\n\n if (!config.jsonContext) config.jsonContext = Object.fromEntries(config.ontologies.map(o => [o.prefix, o.url]));\n if (!config.returnFailedResources) config.returnFailedResources = false;\n\n const fetchUserConfigPromise = fetchUserConfig(config);\n const fetchVoidEndpointsPromise = fetchVoidEndpoints(config);\n\n const waitForVoidEndpoints = method => async (...arg) => {\n await fetchUserConfigPromise;\n await fetchVoidEndpointsPromise; // Return immediately if promise is fulfilled\n return await method(...arg);\n };\n\n return {\n getList: waitForVoidEndpoints(getListMethod(config)),\n getOne: waitForVoidEndpoints(getOneMethod(config)),\n getMany: waitForVoidEndpoints(getManyMethod(config)),\n getManyReference: waitForVoidEndpoints(getManyReferenceMethod(config)),\n create: waitForVoidEndpoints(createMethod(config)),\n update: waitForVoidEndpoints(updateMethod(config)),\n updateMany: () => {\n throw new Error('updateMany is not implemented yet');\n },\n delete: waitForVoidEndpoints(deleteMethod(config)),\n deleteMany: waitForVoidEndpoints(deleteManyMethod(config)),\n getCreateContainer: waitForVoidEndpoints(getCreateContainerMethod(config))\n };\n};\n\nexport default dataProvider;\n","import { fetchUtils } from 'react-admin';\n\nconst httpClient = (url, options = {}) => {\n if (!options.headers) options.headers = new Headers();\n\n switch (options.method) {\n case 'POST':\n case 'PATCH':\n case 'PUT':\n if (!options.headers.has('Accept')) options.headers.set('Accept', 'application/ld+json');\n if (!options.headers.has('Content-Type')) options.headers.set('Content-Type', 'application/ld+json');\n break;\n\n case 'DELETE':\n break;\n\n case 'GET':\n default:\n if (!options.headers.has('Accept')) options.headers.set('Accept', 'application/ld+json');\n break;\n }\n\n if (!options.noToken) {\n const token = localStorage.getItem('token');\n if (token) options.headers.set('Authorization', `Bearer ${token}`);\n }\n\n return fetchUtils.fetchJson(url, options);\n};\n\nexport default httpClient;\n","import { useContext, useState, useEffect } from 'react';\nimport { DataProviderContext } from 'react-admin';\n\nconst useCreateContainer = resourceId => {\n // Get the raw data provider, since useDataProvider returns a wrapper\n const dataProvider = useContext(DataProviderContext);\n const [createContainer, setCreateContainer] = useState();\n\n useEffect(() => {\n if (resourceId) {\n dataProvider.getCreateContainer(resourceId).then(containerUri => setCreateContainer(containerUri));\n }\n }, [resourceId]);\n\n return createContainer;\n};\n\nexport default useCreateContainer;\n"],"names":["ReferenceArrayField","record","source","otherProps","Array","isArray","map","i","id","React","RaReferenceArrayField","defaultProps","addLabel","ReferenceField","_typeof","RaReferenceField","FilterHandler","children","filter","useState","filtered","setFiltered","useEffect","filteredData","r","eq","key","value","includes","newRecord","length","undefined","Children","child","cloneElement","ReferenceArrayInput","props","resource","useResourceContext","RaReferenceArrayInput","format","v","useReferenceInputStyles","makeStyles","form","display","input","paddingRight","useHideInputStyles","root","getServerKeyFromType","type","dataServers","Object","keys","find","getServerKeyFromUri","uri","startsWith","baseUrl","fetchResource","resourceUri","config","httpClient","jsonContext","authServerKey","serverKey","_dataServers$authServ","proxyUrl","noProxy","method","headers","Headers","body","URLSearchParams","noToken","data","json","jsonld","compact","getOneMethod","resourceId","params","resources","dataModel","Error","list","_dataModel$list","forceArray","_dataModel$list2","forceArrayItem","_dataModel$list3","dereference","_dataModel$list4","dereferenceItem","dataToEmbed","context","definition","this","normalize","strArray","resultArray","TypeError","match","first","shift","replace","component","push","str","join","parts","split","arguments","slice","call","module","exports","isFile","o","rawFile","File","getUploadsContainerUri","uploadsContainer","urlJoin","uploadFile","uploadsContainerUri","Slug","fileName","name","fileExtension","splitFileName","pop","createSlug","lang","response","status","get","uploadAllFiles","property","hasOwnProperty","findContainersWithTypes","types","servers","containers","existingContainers","forEach","key1","key2","path","containerUri","createMethod","fieldsMapping","_dataModel$fieldsMapp","title","set","_dataModel$fieldsMapp2","create","_dataModel$create","container","_dataModel$create2","server","serverKeys","JSON","stringify","authServer","responseHeaders","getOne","deleteMethod","deleteManyMethod","ids","findCreateContainerWithTypes","createServerKey","getCreateContainer","_dataModel$create3","_dataModel$create4","defaultServerKey","fetchContainers","containersServers","reduce","acc","fromEntries","fetchPromises","then","resourceType","Promise","all","results","total","concat","apply","returnData","item","a","q","entries","some","k","sort","b","field","order","localeCompare","pagination","page","perPage","getEmbedFrame","paths","predicates","embedFrame","reverse","accumulator","predicate","CryptoJS","Math","crypto","window","self","globalThis","msCrypto","global","require","err","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","F","obj","subtype","prototype","C","C_lib","lib","Base","extend","overrides","mixIn","init","$super","instance","properties","propertyName","toString","clone","WordArray","words","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","j","ceil","random","nBytes","C_enc","enc","hexChars","bite","parse","hexStr","hexStrLength","parseInt","substr","Latin1","latin1Chars","String","fromCharCode","latin1Str","latin1StrLength","charCodeAt","Utf8","decodeURIComponent","escape","e","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","doFlush","processedWords","dataWords","dataSigBytes","blockSize","nBlocksReady","nWordsReady","max","_minBufferSize","nBytesReady","min","offset","_doProcessBlock","splice","Hasher","cfg","_doReset","update","messageUpdate","finalize","_doFinalize","_createHelper","hasher","message","_createHmacHelper","C_algo","HMAC","algo","T","abs","sin","MD5","_hash","M","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","c","d","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","floor","nBitsTotalL","hash","H_i","x","s","t","n","HmacMD5","namedNode","DataFactory","quad","variable","generateSparqlVarName","node","md5","buildOptionalQuery","queries","parentNode","patterns","triples","query","buildDereferenceQuery","ontologies","nodes","nodeNames","extractNodes","getParentNode","getPredicate","varName","parentVarName","filterPrefix","filterValue","filterOntology","ontology","prefix","url","construct","pre","cur","where","literal","generator","SparqlGenerator","Generator","buildSparqlQuery","sparqljsParams","queryType","template","expression","operator","args","prefixes","dereferenceQueryForSparqlJs","isSPARQLFilter","sparqlWhere","isQFilter","variables","toLowerCase","filterKey","filterItem","filterPredicateValue","filterObjectValue","sparqljsQuery","fetchSparqlEndpoints","frame","sparqlQueryPromises","resolve","reject","sparqlQuery","sparqlEndpoint","omitGraph","compactJson","findContainersWithPaths","getListMethod","console","log","fetchContainer","getManyMethod","returnFailedResources","getManyReferenceMethod","target","getList","updateMethod","InvalidCharacterError","atob","bind","bs","buffer","bc","idx","output","charAt","indexOf","fetchUserConfig","token","localStorage","getItem","podKey","jwtDecode","webId","userData","error","removeItem","location","reload","endpoints","_userData$endpoints2","fetchVoidEndpoints","values","pod","URL","result","RaDateTimeInput","groupReference","groupLabel","groupHeader","filterProperty","useQueryWithStore","payload","index","group","label","RaImageField","RaReferenceInput","reificationClass","flexFormClasses","hideInputStyles","ArrayInput","SimpleFormIterator","classes","className","TextInput","initialValue","fetchUserConfigPromise","fetchVoidEndpointsPromise","waitForVoidEndpoints","getMany","getManyReference","updateMany","deleteMany","getCreateContainerMethod","options","has","fetchUtils","fetchJson","dataProvider","useContext","DataProviderContext","createContainer","setCreateContainer"],"mappings":"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"}
package/dist/index.es.js CHANGED
@@ -1,2 +1,2 @@
1
- import e,{useState as r,useEffect as t}from"react";import{ImageField as n,ReferenceArrayField as a,ReferenceField as o,useQueryWithStore as i,DateTimeInput as c,useResourceContext as u,ReferenceArrayInput as s,ReferenceInput as f,ArrayInput as l,SimpleFormIterator as p,TextInput as d,fetchUtils as m}from"react-admin";import{makeStyles as y}from"@material-ui/core/styles";import h from"jsonld";function b(e){return(b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(e,r,t,n,a,o,i){try{var c=e[o](i),u=c.value}catch(e){return void t(e)}c.done?r(u):Promise.resolve(u).then(n,a)}function g(e){return function(){var r=this,t=arguments;return new Promise((function(n,a){var o=e.apply(r,t);function i(e){v(o,n,a,i,c,"next",e)}function c(e){v(o,n,a,i,c,"throw",e)}i(void 0)}))}}function x(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function w(){return(w=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function j(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function O(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?j(Object(t),!0).forEach((function(r){x(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):j(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function E(e,r){if(null==e)return{};var t,n,a=function(e,r){if(null==e)return{};var t,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}function k(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],n=!0,a=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(n=(i=c.next()).done)&&(t.push(i.value),!r||t.length!==r);n=!0);}catch(e){a=!0,o=e}finally{try{n||null==c.return||c.return()}finally{if(a)throw o}}return t}(e,r)||A(e,r)||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 A(e,r){if(e){if("string"==typeof e)return R(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?R(e,r):void 0}}function R(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function S(e){if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=A(e))){var r=0,t=function(){};return{s:t,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,a,o=!0,i=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){i=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(i)throw a}}}}var P=function(r){var t=r.record,a=r.source,o=E(r,["record","source"]);return"string"==typeof t&&(t=x({},a,t)),e.createElement(n,w({record:t,source:a},o))},T=function(r){var t=r.record,n=r.source,o=E(r,["record","source"]);return(null==t?void 0:t[n])&&(Array.isArray(t[n])||(t[n]=[t[n]]),t[n]=t[n].map((function(e){return e["@id"]||e.id||e}))),e.createElement(a,w({record:t,source:n},o))};T.defaultProps={addLabel:!0};var C=function(r){var t=r.record,n=r.source,a=E(r,["record","source"]);return t[n]&&"object"===b(t[n])&&(t[n]=t[n]["@id"]||t[n].id),e.createElement(o,w({record:t,source:n},a))};C.defaultProps={addLabel:!0};var I=function(n){var a=n.children,o=n.record,i=n.filter,c=n.source,u=E(n,["children","record","filter","source"]),s=k(r(),2),f=s[0],l=s[1];return t((function(){if(o&&c&&Array.isArray(null==o?void 0:o[c])){var e=null==o?void 0:o[c].filter((function(e){var r=!0;for(var t in i){var n=e[t];Array.isArray(n)?n.includes(i[t])||(r=!1):n!==i[t]&&(r=!1)}return r})),r=O({},o);r[c]=e.length>0?e:void 0,l(r)}}),[o,c,i]),e.createElement(e.Fragment,null,e.Children.map(a,(function(r,t){return e.cloneElement(r,O(O({},u),{},{record:f,addLabel:!0,source:c}))})))},F=function(r){var t=r.children,n=r.groupReference,a=r.groupLabel,o=r.groupHeader,c=r.filterProperty,u=E(r,["children","groupReference","groupLabel","groupHeader","filterProperty"]),s=i({type:"getList",resource:n,payload:{}}).data;return e.createElement(e.Fragment,null,null==s?void 0:s.map((function(r,n){var i={};return i[c]=r.id,e.createElement(e.Fragment,null,o&&o(O(O({},u),{},{group:r})),e.createElement(I,w({},u,{filter:i,label:r[a]}),t))})))},L=function(r){return e.createElement(c,w({},r,{format:function(e){return e&&e.replace(" ","T").replace("Z","")}}))},U=function(r){var t=u({});return e.createElement(s,w({},r,{resource:t,format:function(e){return e?(Array.isArray(e)||(e=[e]),r.format&&(e=r.format(e)),e.map((function(e){return"object"===b(e)?e.id||e["@id"]:e}))):e}}))},N=function(r){var t=u({});return e.createElement(f,w({},r,{resource:t,format:function(e){return e?(r.format&&(e=r.format(e)),"object"===b(e)?e.id||e["@id"]:e):e}}))},q=y({form:{display:"flex"},input:{paddingRight:"20px"}}),H=y({root:{display:"none"}}),D=function(r){var t=r.reificationClass,n=(r.children,E(r,["reificationClass","children"])),a=q(),o=H();return e.createElement(l,n,e.createElement(p,{classes:{form:a.form}},e.Children.map(r.children,(function(r,t){return e.cloneElement(r,{className:a.input})})),e.createElement(d,{className:o.root,source:"type",initialValue:t})))},M=function(e){return e.split(":").map((function(e){return e[0].toUpperCase()+e.slice(1)})).join("")},J=function(e){var r,t={};if(e){var n,a=S(e);try{for(a.s();!(n=a.n()).done;){var o=n.value;r=o.includes("/")?o.split("/").reverse():[o],t=O(O({},t),r.reduce((function(e,r){return x({},r,O({"@embed":"@last"},e))}),{}))}}catch(e){a.e(e)}finally{a.f()}return t}},W=function(e){var r=e.types,t=e.params.filter,n=e.dereference,a=e.ontologies,o="";t&&(t.q&&t.q.length>0&&(o+='\n {\n SELECT ?s1\n WHERE {\n ?s1 ?p1 ?o1 .\n FILTER regex(lcase(str(?o1)), "'.concat(t.q.toLowerCase(),'")\n FILTER NOT EXISTS {?s1 a ?o1}\n }\n }\n '),delete t.q),Object.keys(t).forEach((function(e){if(t[e]){var r=t[e].startsWith("http")?"<".concat(t[e],">"):t[e];o+="?s1 ".concat(e," ").concat(r," .")}})));var i=function(e){var r=[];if(e)for(var t=e.reduce((function(e,r){return function e(r,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"root";if(t.includes("/")){var a=t.split(/\/(.+)/);r[a[0]]=n,e(r,a[1],a[0])}else r[t]=n;return r}(e,r)}),{}),n=0,a=Object.entries(t);n<a.length;n++){var o=k(a[n],2),i=o[0],c=o[1],u=M(i),s="root"===c?"1":M(c),f="root"===c?i:c;r[f]||(r[f]=[]),r[f].push("\n ?s".concat(s," ").concat(i," ?s").concat(u," .\n ?s").concat(u," ?p").concat(u," ?o").concat(u," .\n "))}return{construct:Object.values(r).map((function(e){return Object.values(e).join("\n")})).join("\n"),where:Object.values(r).map((function(e){return"OPTIONAL { ".concat(Object.values(e).join("\n")," }")})).join("\n")}}(n);return"\n ".concat(function(e){return e.map((function(e){return"PREFIX ".concat(e.prefix,": <").concat(e.url,">")})).join("\n")}(a),"\n CONSTRUCT {\n ?s1 ?p2 ?o2 .\n ").concat(i.construct,"\n }\n WHERE {\n ?s1 a ?type .\n FILTER( ?type IN (").concat(r.join(", "),") ) .\n FILTER( (isIRI(?s1)) ) .\n ").concat(o,"\n ").concat(i.where,"\n ?s1 ?p2 ?o2 .\n }\n ")},G=require("speakingurl"),X=function(e){var r={};return e.forEach((function(e){return r[e.prefix]=e.url})),r},z=function(e){return e&&e.rawFile&&e.rawFile instanceof File},B=function(e){var r,t,n,a,o,i,c,u=e.sparqlEndpoint,s=e.httpClient,f=e.resources,l=e.ontologies,p=e.jsonContext,d=e.uploadsContainerUri,m=e.returnFailedResources,y=void 0!==m&&m,v=function(){var e=g(regeneratorRuntime.mark((function e(r){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(d){e.next=2;break}throw new Error("No uploadsContainerUri defined for the data provider");case 2:return e.next=4,s(d,{method:"POST",body:r,headers:new Headers({Slug:(n=r.name,a=void 0,o=void 0,a="",o=n.split("."),o.length>1&&(a=o.pop(),n=o.join(".")),G(n,{lang:"fr"})+"."+a),"Content-Type":r.type})});case 4:if(201!==(t=e.sent).status){e.next=7;break}return e.abrupt("return",t.headers.get("Location"));case 7:case"end":return e.stop()}var n,a,o}),e)})));return function(r){return e.apply(this,arguments)}}(),w=function(){var e=g(regeneratorRuntime.mark((function e(r){var t,n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=regeneratorRuntime.keys(r);case 1:if((e.t1=e.t0()).done){e.next=22;break}if(t=e.t1.value,!r.hasOwnProperty(t)){e.next=20;break}if(!Array.isArray(r[t])){e.next=16;break}n=0;case 6:if(!(n<r[t].length)){e.next=14;break}if(!z(r[t][n])){e.next=11;break}return e.next=10,v(r[t][n].rawFile);case 10:r[t][n]=e.sent;case 11:n++,e.next=6;break;case 14:e.next=20;break;case 16:if(!z(r[t])){e.next=20;break}return e.next=19,v(r[t].rawFile);case 19:r[t]=e.sent;case 20:e.next=1;break;case 22:return e.abrupt("return",r);case 23:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),j=function(){var e=g(regeneratorRuntime.mark((function e(r,t){var n,a,o,i,c,d;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=W({types:f[r].types,params:O(O({},t),{},{filter:O(O({},f[r].filter),t.filter)}),dereference:f[r].dereference,ontologies:l}),e.next=3,s(u,{method:"POST",body:n});case 3:return a=e.sent,o=a.json,i=O({"@context":p||X(l),"@type":f[r].types,"@embed":"@never"},J(f[r].dereference)),e.next=8,h.frame(o,i,{omitGraph:!1});case 8:if(c=e.sent,1!==Object.keys(c).length){e.next=13;break}return e.abrupt("return",{data:[],total:0});case 13:return d=c["@graph"].map((function(e){return e.id=e.id||e["@id"],e})),t.sort&&(d=d.sort((function(e,r){return!e[t.sort.field]||!r[t.sort.field]||("ASC"===t.sort.order?e[t.sort.field].localeCompare(r[t.sort.field]):r[t.sort.field].localeCompare(e[t.sort.field]))}))),t.pagination&&(d=d.slice((t.pagination.page-1)*t.pagination.perPage,t.pagination.page*t.pagination.perPage)),e.abrupt("return",{data:d,total:c["@graph"].length});case 17:case"end":return e.stop()}}),e)})));return function(r,t){return e.apply(this,arguments)}}();return{getList:(c=g(regeneratorRuntime.mark((function e(r,t){var n,a,o,i,c,u,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(f[r],!(t.id||t["@id"]||f[r].fetchContainer)){e.next=27;break}return n=t.id||t["@id"]||f[r].containerUri,e.next=5,s(n);case 5:if(a=e.sent,o=a.json,p="ldp:Container",m=void 0,m=(d=o).type||d["@type"],!(Array.isArray(m)?m.includes(p):m===p)){e.next=15;break}return i=o["ldp:contains"].map((function(e){return e.id=e.id||e["@id"],e})),t.filter&&(t.filter.q&&delete t.filter.q,Object.keys(t.filter).length>0&&(i=i.filter((function(e){return Object.entries(t.filter).some((function(r){var t=k(r,2),n=t[0],a=t[1];return Array.isArray(e[n])?e[n].includes(a):e[n]===a}))})))),t.sort&&(i=i.sort((function(e,r){return!e[t.sort.field]||!r[t.sort.field]||("ASC"===t.sort.order?e[t.sort.field].localeCompare(r[t.sort.field]):r[t.sort.field].localeCompare(e[t.sort.field]))}))),t.pagination&&(i=i.slice((t.pagination.page-1)*t.pagination.perPage,t.pagination.page*t.pagination.perPage)),e.abrupt("return",{data:i,total:o["ldp:contains"].length});case 15:if(!o.first){e.next=20;break}return e.next=18,s(o.first);case 18:c=e.sent,o=c.json;case 20:if(u=["as:orderedItems","orderedItems","as:items","items"].find((function(e){return o[e]}))){e.next=23;break}return e.abrupt("return",{data:[],total:0});case 23:return l=o[u].map((function(e){return e.id=e.id||e["@id"],e})),e.abrupt("return",{data:l,total:o.totalItems});case 25:e.next=30;break;case 27:return e.next=29,j(r,t);case 29:return e.abrupt("return",e.sent);case 30:case"end":return e.stop()}var p,d,m}),e)}))),function(e,r){return c.apply(this,arguments)}),getOne:(i=g(regeneratorRuntime.mark((function e(r,t){var n,a,o,i,c,u,d;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f[r],n=f[r],e.next=4,s(t.id);case 4:return a=e.sent,(o=a.json).id=o.id||o["@id"],e.next=9,h.compact(o,p||X(l));case 9:if(i=e.sent,n.forceArray){c=S(n.forceArray);try{for(c.s();!(u=c.n()).done;)d=u.value,i[d]&&!Array.isArray(i[d])&&(i[d]=[i[d]])}catch(e){c.e(e)}finally{c.f()}}return e.abrupt("return",{data:i});case 12:case"end":return e.stop()}}),e)}))),function(e,r){return i.apply(this,arguments)}),getMany:(o=g(regeneratorRuntime.mark((function e(r,t){var n,a,o,i,c,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=[],a=S(t.ids),e.prev=2,a.s();case 4:if((o=a.n()).done){e.next=21;break}return i="object"===b(i=o.value)?i["@id"]:i,e.prev=7,e.next=10,s(i);case 10:c=e.sent,(u=c.json).id=i,n.push(u),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(7),y&&n.push({id:i});case 19:e.next=4;break;case 21:e.next=26;break;case 23:e.prev=23,e.t1=e.catch(2),a.e(e.t1);case 26:return e.prev=26,a.f(),e.finish(26);case 29:return e.abrupt("return",{data:n});case 30:case"end":return e.stop()}}),e,null,[[2,23,26,29],[7,16]])}))),function(e,r){return o.apply(this,arguments)}),getManyReference:(a=g(regeneratorRuntime.mark((function e(r,t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.filter=O(O({},t.filter),{},x({},t.target,t.id)),e.next=3,j(r,t);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)}))),function(e,r){return a.apply(this,arguments)}),create:(n=g(regeneratorRuntime.mark((function e(r,t){var n,a,o,i,c,u,d,m,y,h;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f[r],n=f[r],a=n.slugField,o=n.containerUri,i=n.types,c=new Headers,a&&c.set("Slug",Array.isArray(a)?a.map((function(e){return t.data[e]})).join(" "):t.data[a]),e.next=6,w(t.data);case 6:return t.data=e.sent,e.next=9,s(o,{method:"POST",headers:c,body:JSON.stringify(O({"@context":p||X(l),"@type":i},t.data))});case 9:return u=e.sent,d=u.headers,m=d.get("Location"),e.next=14,s(m);case 14:return y=e.sent,(h=y.json).id=h.id||h["@id"],e.abrupt("return",{data:h});case 18:case"end":return e.stop()}}),e)}))),function(e,r){return n.apply(this,arguments)}),update:(t=g(regeneratorRuntime.mark((function e(r,t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,w(t.data);case 2:return t.data=e.sent,e.next=5,s(t.id,{method:"PUT",body:JSON.stringify(O({"@context":p||X(l)},t.data))});case 5:return e.abrupt("return",{data:t.data});case 6:case"end":return e.stop()}}),e)}))),function(e,r){return t.apply(this,arguments)}),updateMany:function(e,r){throw new Error("updateMany is not implemented yet")},delete:(r=g(regeneratorRuntime.mark((function e(r,t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,s(t.id,{method:"DELETE"});case 2:return e.abrupt("return",{data:{id:t.id}});case 3:case"end":return e.stop()}}),e)}))),function(e,t){return r.apply(this,arguments)}),deleteMany:function(e,r){throw new Error("deleteMany is not implemented yet")}}},V=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(r.headers||(r.headers=new Headers),r.method){case"POST":case"PATCH":case"PUT":r.headers.has("Accept")||r.headers.set("Accept","application/ld+json"),r.headers.has("Content-Type")||r.headers.set("Content-Type","application/ld+json");break;case"DELETE":break;case"GET":default:r.headers.has("Accept")||r.headers.set("Accept","application/ld+json")}var t=localStorage.getItem("token");return t&&r.headers.set("Authorization","Bearer ".concat(t)),m.fetchJson(e,r)};export{L as DateTimeInput,I as FilterHandler,F as GroupedReferenceHandler,P as ImageField,T as ReferenceArrayField,U as ReferenceArrayInput,C as ReferenceField,N as ReferenceInput,D as ReificationArrayInput,T as UriArrayField,U as UriArrayInput,B as dataProvider,V as httpClient};
1
+ import e,{useState as r,useEffect as t,useContext as n}from"react";import{ImageField as a,ReferenceArrayField as o,ReferenceField as i,useQueryWithStore as s,DateTimeInput as c,useResourceContext as u,ReferenceArrayInput as f,ReferenceInput as l,ArrayInput as p,SimpleFormIterator as d,TextInput as h,DataProviderContext as v,fetchUtils as y}from"react-admin";import{makeStyles as m}from"@material-ui/core/styles";import g from"jsonld";import b from"speakingurl";import w from"crypto";import x from"@rdfjs/data-model";function k(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function S(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?k(Object(t),!0).forEach((function(r){C(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):k(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function j(e){return(j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function O(e,r,t,n,a,o,i){try{var s=e[o](i),c=s.value}catch(e){return void t(e)}s.done?r(c):Promise.resolve(c).then(n,a)}function E(e){return function(){var r=this,t=arguments;return new Promise((function(n,a){var o=e.apply(r,t);function i(e){O(o,n,a,i,s,"next",e)}function s(e){O(o,n,a,i,s,"throw",e)}i(void 0)}))}}function C(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function R(){return(R=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function A(e,r){if(null==e)return{};var t,n,a=function(e,r){if(null==e)return{};var t,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}function P(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var n,a,o=[],i=!0,s=!1;try{for(t=t.call(e);!(i=(n=t.next()).done)&&(o.push(n.value),!r||o.length!==r);i=!0);}catch(e){s=!0,a=e}finally{try{i||null==t.return||t.return()}finally{if(s)throw a}}return o}(e,r)||_(e,r)||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 T(e){return function(e){if(Array.isArray(e))return U(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||_(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 _(e,r){if(e){if("string"==typeof e)return U(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?U(e,r):void 0}}function U(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function I(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=_(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,s=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){s=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(s)throw o}}}}var q=["record","source"],B=function(r){var t=r.record,n=r.source,o=A(r,q);return"string"==typeof t&&(t=C({},n,t)),e.createElement(a,R({record:t,source:n},o))},L=["record","source"],M=function(r){var t=r.record,n=r.source,a=A(r,L);return null!=t&&t[n]&&(Array.isArray(t[n])||(t[n]=[t[n]]),t[n]=t[n].map((function(e){return e["@id"]||e.id||e}))),e.createElement(o,R({record:t,source:n},a))};M.defaultProps={addLabel:!0};var F=["record","source"],H=function(r){var t=r.record,n=r.source,a=A(r,F);return t[n]&&"object"===j(t[n])&&(t[n]=t[n]["@id"]||t[n].id),e.createElement(i,R({record:t,source:n},a))};H.defaultProps={addLabel:!0};var N=["children","record","filter","source"],D=function(n){var a=n.children,o=n.record,i=n.filter,s=n.source,c=A(n,N),u=P(r(),2),f=u[0],l=u[1];return t((function(){if(o&&s&&Array.isArray(null==o?void 0:o[s])){var e=null==o?void 0:o[s].filter((function(e){var r=!0;for(var t in i){var n=e[t];Array.isArray(n)?n.includes(i[t])||(r=!1):n!==i[t]&&(r=!1)}return r})),r=S({},o);r[s]=e.length>0?e:void 0,l(r)}}),[o,s,i]),e.createElement(e.Fragment,null,e.Children.map(a,(function(r,t){return e.cloneElement(r,S(S({},c),{},{record:f,addLabel:!0,source:s}))})))},z=["children","groupReference","groupLabel","groupHeader","filterProperty"],$=function(r){var t=r.children,n=r.groupReference,a=r.groupLabel,o=r.groupHeader,i=r.filterProperty,c=A(r,z),u=s({type:"getList",resource:n,payload:{}}).data;return e.createElement(e.Fragment,null,null==u?void 0:u.map((function(r,n){var s={};return s[i]=r.id,e.createElement(e.Fragment,null,o&&o(S(S({},c),{},{group:r})),e.createElement(D,R({},c,{filter:s,label:r[a]}),t))})))},J=function(r){return e.createElement(c,R({},r,{format:function(e){return e&&e.replace(" ","T").replace("Z","")}}))},W=function(r){var t=u({});return e.createElement(f,R({},r,{resource:t,format:function(e){return e?(Array.isArray(e)||(e=[e]),r.format&&(e=r.format(e)),e.map((function(e){return"object"===j(e)?e.id||e["@id"]:e}))):e}}))},Y=function(r){var t=u({});return e.createElement(l,R({},r,{resource:t,format:function(e){return e?(r.format&&(e=r.format(e)),"object"===j(e)?e.id||e["@id"]:e):e}}))},G=["reificationClass","children"],V=m({form:{display:"flex"},input:{paddingRight:"20px"}}),X=m({root:{display:"none"}}),Z=function(r){var t=r.reificationClass;r.children;var n=A(r,G),a=V(),o=X();return e.createElement(p,n,e.createElement(d,{classes:{form:a.form}},e.Children.map(r.children,(function(r,t){return e.cloneElement(r,{className:a.input})})),e.createElement(h,{className:o.root,source:"type",initialValue:t})))},K=function(e){var a=n(v),o=P(r(),2),i=o[0],s=o[1];return t((function(){e&&a.getCreateContainer(e).then((function(e){return s(e)}))}),[e]),i},Q=function(e,r){return Object.keys(r).find((function(t){return r[t][e]}))},ee=function(e,r){return Object.keys(r).find((function(t){return e.startsWith(r[t].baseUrl)}))},re=function(){var e=E(regeneratorRuntime.mark((function e(r,t){var n,a,o,i,s,c,u,f,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=t.dataServers,i=t.httpClient,s=t.jsonContext,c=Q("authServer",o),(u=ee(r,o))===c||null===(n=o[c])||void 0===n||!n.proxyUrl||!0===(null===(a=o[u])||void 0===a?void 0:a.noProxy)){e.next=9;break}return e.next=6,i(o[c].proxyUrl,{method:"POST",headers:new Headers({"Content-Type":"application/x-www-form-urlencoded"}),body:new URLSearchParams({id:r})});case 6:e.t0=e.sent,e.next=12;break;case 9:return e.next=11,i(r,{noToken:u!==c});case 11:e.t0=e.sent;case 12:if(f=e.t0,(l=f.json).id=l.id||l["@id"],l["@context"]===s){e.next=19;break}return e.next=18,g.compact(l,s);case 18:l=e.sent;case 19:return e.abrupt("return",l);case 20:case"end":return e.stop()}}),e)})));return function(r,t){return e.apply(this,arguments)}}(),te=function(e){return function(){var r=E(regeneratorRuntime.mark((function r(t,n){var a,o,i,s,c,u,f,l,p,d,h,v,y,m;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(i=e.resources,s=i[t]){r.next=4;break}throw new Error("Resource ".concat(t," is not mapped in resources file"));case 4:return r.next=6,re(n.id,e);case 6:if(c=r.sent,null!==(a=s.list)&&void 0!==a&&a.forceArray){f=I(null===(u=s.list)||void 0===u?void 0:u.forceArray);try{for(f.s();!(l=f.n()).done;)p=l.value,c[p]&&!Array.isArray(c[p])&&(c[p]=[c[p]])}catch(e){f.e(e)}finally{f.f()}}if(null===(o=s.list)||void 0===o||!o.dereference){r.next=35;break}h=I(null===(d=s.list)||void 0===d?void 0:d.dereference),r.prev=10,h.s();case 12:if((v=h.n()).done){r.next=27;break}if(y=v.value,!c[y]||"string"!=typeof c[y]||!c[y].startsWith("http")){r.next=25;break}return r.prev=15,r.next=18,re(c[y],e);case 18:delete(m=r.sent)["@context"],c[y]=m,r.next=25;break;case 23:r.prev=23,r.t0=r.catch(15);case 25:r.next=12;break;case 27:r.next=32;break;case 29:r.prev=29,r.t1=r.catch(10),h.e(r.t1);case 32:return r.prev=32,h.f(),r.finish(32);case 35:return r.abrupt("return",{data:c});case 36:case"end":return r.stop()}}),r,null,[[10,29,32,35],[15,23]])})));return function(e,t){return r.apply(this,arguments)}}()},ne="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function ae(e,r){return e(r={exports:{}},r.exports),r.exports}var oe=ae((function(e){var r,t;r=ne,t=function(){function e(e){var r=[];if(0===e.length)return"";if("string"!=typeof e[0])throw new TypeError("Url must be a string. Received "+e[0]);if(e[0].match(/^[^/:]+:\/*$/)&&e.length>1){var t=e.shift();e[0]=t+e[0]}e[0].match(/^file:\/\/\//)?e[0]=e[0].replace(/^([^/:]+):\/*/,"$1:///"):e[0]=e[0].replace(/^([^/:]+):\/*/,"$1://");for(var n=0;n<e.length;n++){var a=e[n];if("string"!=typeof a)throw new TypeError("Url must be a string. Received "+a);""!==a&&(n>0&&(a=a.replace(/^[\/]+/,"")),a=n<e.length-1?a.replace(/[\/]+$/,""):a.replace(/[\/]+$/,"/"),r.push(a))}var o=r.join("/"),i=(o=o.replace(/\/(\?|&|#[^!])/g,"$1")).split("?");return o=i.shift()+(i.length>0?"?":"")+i.join("&")}return function(){return e("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}},e.exports?e.exports=t():r.urljoin=t()})),ie=function(e){return e&&e.rawFile&&e.rawFile instanceof File},se=function(e){var r=Object.keys(e.dataServers).find((function(r){return e.dataServers[r].uploadsContainer}));if(r)return oe(e.dataServers[r].baseUrl,e.dataServers[r].uploadsContainer)},ce=function(){var e=E(regeneratorRuntime.mark((function e(r,t){var n,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=se(t)){e.next=3;break}throw new Error("You must define an uploadsContainer in one of the server's configuration");case 3:return e.next=5,t.httpClient(n,{method:"POST",body:r,headers:new Headers({Slug:(o=r.name,i=void 0,s=void 0,i="",s=o.split("."),s.length>1&&(i=s.pop(),o=s.join(".")),b(o,{lang:"fr"})+"."+i),"Content-Type":r.type})});case 5:if(201!==(a=e.sent).status){e.next=8;break}return e.abrupt("return",a.headers.get("Location"));case 8:case"end":return e.stop()}var o,i,s}),e)})));return function(r,t){return e.apply(this,arguments)}}(),ue=function(){var e=E(regeneratorRuntime.mark((function e(r,t){var n,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=regeneratorRuntime.keys(r);case 1:if((e.t1=e.t0()).done){e.next=22;break}if(n=e.t1.value,!r.hasOwnProperty(n)){e.next=20;break}if(!Array.isArray(r[n])){e.next=16;break}a=0;case 6:if(!(a<r[n].length)){e.next=14;break}if(!ie(r[n][a])){e.next=11;break}return e.next=10,ce(r[n][a].rawFile,t);case 10:r[n][a]=e.sent;case 11:a++,e.next=6;break;case 14:e.next=20;break;case 16:if(!ie(r[n])){e.next=20;break}return e.next=19,ce(r[n].rawFile,t);case 19:r[n]=e.sent;case 20:e.next=1;break;case 22:return e.abrupt("return",r);case 23:case"end":return e.stop()}}),e)})));return function(r,t){return e.apply(this,arguments)}}(),fe=function(e,r,t){var n={},a=[];return Object.keys(t).forEach((function(o){Object.keys(t[o].containers).forEach((function(i){r&&!(Array.isArray(r)?r.includes(i):r===i)||Object.keys(t[o].containers[i]).forEach((function(r){e.includes(r)&&t[o].containers[i][r].map((function(e){var r=oe(t[i].baseUrl,e);a.includes(r)||(a.push(r),n[o]||(n[o]=[]),n[o].push(r))}))}))}))})),n},le=function(e){return function(){var r=E(regeneratorRuntime.mark((function r(t,n){var a,o,i,s,c,u,f,l,p,d,h,v,y,m,g,b,w,x;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(i=e.dataServers,s=e.resources,c=e.httpClient,u=e.jsonContext,f=s[t],l=new Headers,null!==(a=f.fieldsMapping)&&void 0!==a&&a.title&&l.set("Slug",n.data[null===(p=f.fieldsMapping)||void 0===p?void 0:p.title]),null===(o=f.create)||void 0===o||!o.container){r.next=10;break}d=null===(v=f.create)||void 0===v?void 0:v.container,h=ee(d,i),r.next=20;break;case 10:if(h=(null===(y=f.create)||void 0===y?void 0:y.server)||Object.keys(e.dataServers).find((function(r){return!0===e.dataServers[r].default}))){r.next=13;break}throw new Error("You must define a server for the creation, or a container, or a default server");case 13:if(m=fe(f.types,[h],i),(g=Object.keys(m))&&0!==g.length){r.next=17;break}throw new Error("No container with types ".concat(JSON.stringify(f.types)," found on server ").concat(h));case 17:if(!(g.length>1||m[g[0]].length>1)){r.next=19;break}throw new Error("More than one container detected with types ".concat(JSON.stringify(f.types)," on server ").concat(h));case 19:d=m[g[0]][0];case 20:return r.next=22,ue(n.data,e);case 22:return n.data=r.sent,r.next=25,c(d,{method:"POST",headers:l,body:JSON.stringify(S({"@context":u,"@type":f.types},n.data)),noToken:!0!==i[h].authServer});case 25:return b=r.sent,w=b.headers,x=w.get("Location"),r.next=30,te(e)(t,{id:x});case 30:return r.abrupt("return",r.sent);case 31:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}()},pe=function(e){return function(){var r=E(regeneratorRuntime.mark((function r(t,n){var a,o,i;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return a=e.dataServers,o=e.httpClient,i=ee(n.id,a),r.next=4,o(n.id,{method:"DELETE",noToken:!i||!0!==a[i].authServer});case 4:return r.abrupt("return",{data:{id:n.id}});case 5:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}()},de=function(e){return function(){var r=E(regeneratorRuntime.mark((function r(t,n){var a,o,i,s,c;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:a=e.httpClient,o=[],i=I(n.ids),r.prev=3,i.s();case 5:if((s=i.n()).done){r.next=17;break}return c=s.value,r.prev=7,r.next=10,a(c,{method:"DELETE"});case 10:o.push(c),r.next=15;break;case 13:r.prev=13,r.t0=r.catch(7);case 15:r.next=5;break;case 17:r.next=22;break;case 19:r.prev=19,r.t1=r.catch(3),i.e(r.t1);case 22:return r.prev=22,i.f(),r.finish(22);case 25:return r.abrupt("return",{data:o});case 26:case"end":return r.stop()}}),r,null,[[3,19,22,25],[7,13]])})));return function(e,t){return r.apply(this,arguments)}}()},he=function(e,r,t){var n=[];if(Object.keys(t[r].containers[r]).forEach((function(a){e.includes(a)&&t[r].containers[r][a].map((function(e){var a=oe(t[r].baseUrl,e);n.includes(a)||n.push(a)}))})),0===n.length)throw new Error("No container found matching with types ".concat(JSON.stringify(e),". You can set explicitely the create.container property of the resource."));if(n.length>1)throw new Error("More than one container found matching with types ".concat(JSON.stringify(e),". You must set the create.server or create.container property for the resource."));return n[0]},ve=function(e){return function(r){var t,n,a,o,i=e.dataServers,s=e.resources[r];if(!s)throw new Error("Resource ".concat(r," is not mapped in resources file"));if(null!==(t=s.create)&&void 0!==t&&t.container)return null===(a=s.create)||void 0===a?void 0:a.container;if(null!==(n=s.create)&&void 0!==n&&n.server)return he(s.types,null===(o=s.create)||void 0===o?void 0:o.server,i);var c=Q("default",i);return he(s.types,c,i)}},ye=function(){var e=E(regeneratorRuntime.mark((function e(r,t,n,a){var o,i,s,c,u,f,l,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=a.dataServers,i=a.httpClient,s=a.jsonContext,c=Object.keys(r).reduce((function(e,t){return S(S({},e),Object.fromEntries(r[t].map((function(e){return[e,t]}))))}),{}),u=Object.keys(c).map((function(e){return i(e,{noToken:!c[e]||!0!==o[c[e]].authServer}).then((function(e){var r=e.json;return r["@context"]!==s?g.compact(r,s):r})).then((function(r){if(t="ldp:Container",a=(n=r).type||n["@type"],Array.isArray(a)?a.includes(t):a===t)return r["ldp:contains"];throw new Error(e+" is not a LDP container");var t,n,a}))})),e.next=5,Promise.all(u);case 5:if(0!==(f=e.sent).length){e.next=10;break}return e.abrupt("return",{data:[],total:0});case 10:return f=(l=[].concat).apply.apply(l,T(f)),p=f.map((function(e){return e.id=e.id||e["@id"],e})),n.filter&&(n.filter.a&&(n.filter.type=n.filter.a,delete n.filter.a),n.filter.q&&delete n.filter.q,Object.keys(n.filter).length>0&&(p=p.filter((function(e){return Object.entries(n.filter).some((function(r){var t=P(r,2),n=t[0],a=t[1];return Array.isArray(e[n])?e[n].includes(a):e[n]===a}))})))),n.sort&&(p=p.sort((function(e,r){return!e[n.sort.field]||!r[n.sort.field]||("ASC"===n.sort.order?e[n.sort.field].localeCompare(r[n.sort.field]):r[n.sort.field].localeCompare(e[n.sort.field]))}))),n.pagination&&(p=p.slice((n.pagination.page-1)*n.pagination.perPage,n.pagination.page*n.pagination.perPage)),e.abrupt("return",{data:p,total:f.length});case 16:case"end":return e.stop()}}),e)})));return function(r,t,n,a){return e.apply(this,arguments)}}(),me=function(e){var r,t={};if(e){var n,a=I(e);try{for(a.s();!(n=a.n()).done;){var o=n.value;r=o.includes("/")?o.split("/").reverse():[o],t=S(S({},t),r.reduce((function(e,r){return C({},r,S({"@embed":"@last"},e))}),{}))}}catch(e){a.e(e)}finally{a.f()}return t}},ge=ae((function(e,r){var t;e.exports=t=t||function(e,r){var t;if("undefined"!=typeof window&&window.crypto&&(t=window.crypto),"undefined"!=typeof self&&self.crypto&&(t=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(t=globalThis.crypto),!t&&"undefined"!=typeof window&&window.msCrypto&&(t=window.msCrypto),!t&&void 0!==ne&&ne.crypto&&(t=ne.crypto),!t)try{t=w}catch(e){}var n=function(){if(t){if("function"==typeof t.getRandomValues)try{return t.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof t.randomBytes)try{return t.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},a=Object.create||function(){function e(){}return function(r){var t;return e.prototype=r,t=new e,e.prototype=null,t}}(),o={},i=o.lib={},s=i.Base={extend:function(e){var r=a(this);return e&&r.mixIn(e),r.hasOwnProperty("init")&&this.init!==r.init||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var r in e)e.hasOwnProperty(r)&&(this[r]=e[r]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=i.WordArray=s.extend({init:function(e,r){e=this.words=e||[],this.sigBytes=null!=r?r:4*e.length},toString:function(e){return(e||f).stringify(this)},concat:function(e){var r=this.words,t=e.words,n=this.sigBytes,a=e.sigBytes;if(this.clamp(),n%4)for(var o=0;o<a;o++){var i=t[o>>>2]>>>24-o%4*8&255;r[n+o>>>2]|=i<<24-(n+o)%4*8}else for(var s=0;s<a;s+=4)r[n+s>>>2]=t[s>>>2];return this.sigBytes+=a,this},clamp:function(){var r=this.words,t=this.sigBytes;r[t>>>2]&=4294967295<<32-t%4*8,r.length=e.ceil(t/4)},clone:function(){var e=s.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var r=[],t=0;t<e;t+=4)r.push(n());return new c.init(r,e)}}),u=o.enc={},f=u.Hex={stringify:function(e){for(var r=e.words,t=e.sigBytes,n=[],a=0;a<t;a++){var o=r[a>>>2]>>>24-a%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(e){for(var r=e.length,t=[],n=0;n<r;n+=2)t[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new c.init(t,r/2)}},l=u.Latin1={stringify:function(e){for(var r=e.words,t=e.sigBytes,n=[],a=0;a<t;a++){var o=r[a>>>2]>>>24-a%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var r=e.length,t=[],n=0;n<r;n++)t[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new c.init(t,r)}},p=u.Utf8={stringify:function(e){try{return decodeURIComponent(escape(l.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return l.parse(unescape(encodeURIComponent(e)))}},d=i.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=p.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(r){var t,n=this._data,a=n.words,o=n.sigBytes,i=this.blockSize,s=o/(4*i),u=(s=r?e.ceil(s):e.max((0|s)-this._minBufferSize,0))*i,f=e.min(4*u,o);if(u){for(var l=0;l<u;l+=i)this._doProcessBlock(a,l);t=a.splice(0,u),n.sigBytes-=f}return new c.init(t,f)},clone:function(){var e=s.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});i.Hasher=d.extend({cfg:s.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){d.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(r,t){return new e.init(t).finalize(r)}},_createHmacHelper:function(e){return function(r,t){return new h.HMAC.init(e,t).finalize(r)}}});var h=o.algo={};return o}(Math)})),be=ae((function(e,r){var t;e.exports=(t=ge,function(e){var r=t,n=r.lib,a=n.WordArray,o=n.Hasher,i=r.algo,s=[];!function(){for(var r=0;r<64;r++)s[r]=4294967296*e.abs(e.sin(r+1))|0}();var c=i.MD5=o.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,r){for(var t=0;t<16;t++){var n=r+t,a=e[n];e[n]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}var o=this._hash.words,i=e[r+0],c=e[r+1],d=e[r+2],h=e[r+3],v=e[r+4],y=e[r+5],m=e[r+6],g=e[r+7],b=e[r+8],w=e[r+9],x=e[r+10],k=e[r+11],S=e[r+12],j=e[r+13],O=e[r+14],E=e[r+15],C=o[0],R=o[1],A=o[2],P=o[3];C=u(C,R,A,P,i,7,s[0]),P=u(P,C,R,A,c,12,s[1]),A=u(A,P,C,R,d,17,s[2]),R=u(R,A,P,C,h,22,s[3]),C=u(C,R,A,P,v,7,s[4]),P=u(P,C,R,A,y,12,s[5]),A=u(A,P,C,R,m,17,s[6]),R=u(R,A,P,C,g,22,s[7]),C=u(C,R,A,P,b,7,s[8]),P=u(P,C,R,A,w,12,s[9]),A=u(A,P,C,R,x,17,s[10]),R=u(R,A,P,C,k,22,s[11]),C=u(C,R,A,P,S,7,s[12]),P=u(P,C,R,A,j,12,s[13]),A=u(A,P,C,R,O,17,s[14]),C=f(C,R=u(R,A,P,C,E,22,s[15]),A,P,c,5,s[16]),P=f(P,C,R,A,m,9,s[17]),A=f(A,P,C,R,k,14,s[18]),R=f(R,A,P,C,i,20,s[19]),C=f(C,R,A,P,y,5,s[20]),P=f(P,C,R,A,x,9,s[21]),A=f(A,P,C,R,E,14,s[22]),R=f(R,A,P,C,v,20,s[23]),C=f(C,R,A,P,w,5,s[24]),P=f(P,C,R,A,O,9,s[25]),A=f(A,P,C,R,h,14,s[26]),R=f(R,A,P,C,b,20,s[27]),C=f(C,R,A,P,j,5,s[28]),P=f(P,C,R,A,d,9,s[29]),A=f(A,P,C,R,g,14,s[30]),C=l(C,R=f(R,A,P,C,S,20,s[31]),A,P,y,4,s[32]),P=l(P,C,R,A,b,11,s[33]),A=l(A,P,C,R,k,16,s[34]),R=l(R,A,P,C,O,23,s[35]),C=l(C,R,A,P,c,4,s[36]),P=l(P,C,R,A,v,11,s[37]),A=l(A,P,C,R,g,16,s[38]),R=l(R,A,P,C,x,23,s[39]),C=l(C,R,A,P,j,4,s[40]),P=l(P,C,R,A,i,11,s[41]),A=l(A,P,C,R,h,16,s[42]),R=l(R,A,P,C,m,23,s[43]),C=l(C,R,A,P,w,4,s[44]),P=l(P,C,R,A,S,11,s[45]),A=l(A,P,C,R,E,16,s[46]),C=p(C,R=l(R,A,P,C,d,23,s[47]),A,P,i,6,s[48]),P=p(P,C,R,A,g,10,s[49]),A=p(A,P,C,R,O,15,s[50]),R=p(R,A,P,C,y,21,s[51]),C=p(C,R,A,P,S,6,s[52]),P=p(P,C,R,A,h,10,s[53]),A=p(A,P,C,R,x,15,s[54]),R=p(R,A,P,C,c,21,s[55]),C=p(C,R,A,P,b,6,s[56]),P=p(P,C,R,A,E,10,s[57]),A=p(A,P,C,R,m,15,s[58]),R=p(R,A,P,C,j,21,s[59]),C=p(C,R,A,P,v,6,s[60]),P=p(P,C,R,A,k,10,s[61]),A=p(A,P,C,R,d,15,s[62]),R=p(R,A,P,C,w,21,s[63]),o[0]=o[0]+C|0,o[1]=o[1]+R|0,o[2]=o[2]+A|0,o[3]=o[3]+P|0},_doFinalize:function(){var r=this._data,t=r.words,n=8*this._nDataBytes,a=8*r.sigBytes;t[a>>>5]|=128<<24-a%32;var o=e.floor(n/4294967296),i=n;t[15+(a+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t[14+(a+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),r.sigBytes=4*(t.length+1),this._process();for(var s=this._hash,c=s.words,u=0;u<4;u++){var f=c[u];c[u]=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8)}return s},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function u(e,r,t,n,a,o,i){var s=e+(r&t|~r&n)+a+i;return(s<<o|s>>>32-o)+r}function f(e,r,t,n,a,o,i){var s=e+(r&n|t&~n)+a+i;return(s<<o|s>>>32-o)+r}function l(e,r,t,n,a,o,i){var s=e+(r^t^n)+a+i;return(s<<o|s>>>32-o)+r}function p(e,r,t,n,a,o,i){var s=e+(t^(r|~n))+a+i;return(s<<o|s>>>32-o)+r}r.MD5=o._createHelper(c),r.HmacMD5=o._createHmacHelper(c)}(Math),t.MD5)})),we=x.namedNode,xe=x.quad,ke=x.variable,Se=function(e){return be(e)},je=function e(r){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return r.filter((function(e){return e.parentNode===t})).map((function(t){return{type:"optional",patterns:[{type:"bgp",triples:t.query},e(r,t.node)]}}))},Oe=function(e,r){var t=[],n=function(e){var r=[];if(e){var t,n=I(e);try{for(n.s();!(t=n.n()).done;){var a=t.value;if(a.includes("/"))for(var o=a.split("/"),i=1;i<=o.length;i++)r.push(o.slice(0,i).join("/"));else r.push(a)}}catch(e){n.e(e)}finally{n.f()}}return r}(e);if(n&&r&&r.length>0){var a,o=I(n);try{var i=function(){var e=a.value,n=function(e){return e.includes("/")&&e.split("/")[0]}(e),o=function(e){return e.includes("/")?e.split("/")[1]:e}(e),i=Se(e),s=n?Se(n):"1",c=o.split(":")[0],u=o.split(":")[1],f=r.find((function(e){return e.prefix===c})),l=[xe(ke("s"+s),we(f.url+u),ke("s"+i)),xe(ke("s"+i),ke("p"+i),ke("o"+i))];t.push({node:e,parentNode:n,query:l,filter:""})};for(o.s();!(a=o.n()).done;)i()}catch(e){o.e(e)}finally{o.f()}return{construct:t.length>0?t.map((function(e){return e.query})).reduce((function(e,r){return e.concat(r)})):null,where:je(t)}}return{construct:"",where:""}},Ee=x.literal,Ce=x.namedNode,Re=x.quad,Ae=x.variable,Pe=new(0,require("sparqljs").Generator)({}),Te=function(e){var r=e.containers,t=e.params.filter,n=e.dereference,a=e.ontologies,o={queryType:"CONSTRUCT",template:[Re(Ae("s1"),Ae("p1"),Ae("o1"))],where:[{type:"bgp",triples:[Re(Ae("s1"),Ae("p1"),Ae("o1"))]},{type:"filter",expression:{type:"operation",operator:"isiri",args:[Ae("s1")]}},{type:"filter",expression:{type:"operation",operator:"in",args:[Ae("containerUri"),r.map((function(e){return Ce(e)}))]}},{type:"bgp",triples:[Re(Ae("containerUri"),Ce("http://www.w3.org/ns/ldp#contains"),Ae("s1"))]}],type:"query",prefixes:{}};a.map((function(e){o.prefixes=S(S({},o.prefixes),{},C({},e.prefix,e.url))}));var i=Oe(n,a);if(i&&i.construct&&(o.where=o.where.concat(i.where),o.template=o.template.concat(i.construct)),t&&Object.keys(t).length>0){var s=t.sparqlWhere&&Object.keys(t.sparqlWhere).length>0,c=t.q&&t.q.length>0;s&&o.where.push(t.sparqlWhere),c&&o.where.push({type:"group",patterns:[{queryType:"SELECT",variables:[Ae("s1")],where:[{type:"bgp",triples:[Re(Ae("s1"),Ae("p1"),Ae("o1"))]},{type:"filter",expression:{type:"operation",operator:"regex",args:[{type:"operation",operator:"lcase",args:[{type:"operation",operator:"str",args:[Ae("o1")]}]},Ee(t.q.toLowerCase(),"",Ce("http://www.w3.org/2001/XMLSchema#string"))]}},{type:"filter",expression:{type:"operation",operator:"notexists",args:[{type:"bgp",triples:[Re(Ae("s1"),Ce("http://www.w3.org/1999/02/22-rdf-syntax-ns#type"),Ae("o1"))]}]}}],type:"query"}]}),Object.keys(t).forEach((function(e){if("sparqlWhere"!==e&&"q"!==e){var r="a"===e?t[e]:e,n=r.split(":")[0],i=r.split(":")[1],s=a.find((function(e){return e.prefix===n})),c="a"===e?"http://www.w3.org/1999/02/22-rdf-syntax-ns#type":s.url+i,u="a"===e?s.url+i:t[e];o.where.push({type:"bgp",triples:[Re(Ae("s1"),Ce(c),Ce(u))]})}}))}var u=Pe.stringify(o);return t.q&&delete t.q,u},_e=function(){var e=E(regeneratorRuntime.mark((function e(r,t,n,a){var o,i,s,c,u,f,l,p,d,h,v,y;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=a.dataServers,s=a.resources,c=a.httpClient,u=a.jsonContext,f=a.ontologies,l=s[t],p=S({"@context":u,"@type":l.types,"@embed":"@never"},me(null===(o=l.list)||void 0===o?void 0:o.dereference)),d=Object.keys(r).map((function(e){return new Promise((function(t,a){var o,s,u=Te({containers:r[e],params:S(S({},n),{},{filter:S(S({},null===(o=l.list)||void 0===o?void 0:o.filter),n.filter)}),dereference:null===(s=l.list)||void 0===s?void 0:s.dereference,ontologies:f});c(i[e].sparqlEndpoint,{method:"POST",body:u,noToken:!0!==i[e].authServer}).then((function(e){var r=e.json;return g.frame(r,p,{omitGraph:!1})})).then((function(e){t(e["@graph"]||[])})).catch((function(e){return a(e)}))}))})),e.next=6,Promise.all(d);case 6:if(0!==(h=e.sent).length){e.next=11;break}return e.abrupt("return",{data:[],total:0});case 11:return h=(v=[].concat).apply.apply(v,T(h)),y=h.map((function(e){return e.id=e.id||e["@id"],e})),n.sort&&(y=y.sort((function(e,r){return!e[n.sort.field]||!r[n.sort.field]||("ASC"===n.sort.order?e[n.sort.field].localeCompare(r[n.sort.field]):r[n.sort.field].localeCompare(e[n.sort.field]))}))),n.pagination&&(y=y.slice((n.pagination.page-1)*n.pagination.perPage,n.pagination.page*n.pagination.perPage)),e.abrupt("return",{data:y,total:h.length});case 16:case"end":return e.stop()}}),e)})));return function(r,t,n,a){return e.apply(this,arguments)}}(),Ue=function(e,r){var t={};return Object.keys(e).forEach((function(n){if(!r[n])throw new Error("No server found with key "+n);t[n]=[],e[n].forEach((function(e){t[n].push(oe(r[n].baseUrl,e))}))})),t},Ie=function(e){return function(){var r=E(regeneratorRuntime.mark((function r(t){var n,a,o,i,s,c,u,f,l=arguments;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=l.length>1&&void 0!==l[1]?l[1]:{},i=e.dataServers,s=e.resources,c=s[t]){r.next=5;break}throw new Error("Resource ".concat(t," is not mapped in resources file"));case 5:if(u=null!==(n=c.list)&&void 0!==n&&n.containers&&Object.keys(c.list.containers).length>0?Ue(c.list.containers,i):fe(c.types,null===(f=c.list)||void 0===f?void 0:f.servers,i),console.log("containers",u),null===(a=c.list)||void 0===a||!a.fetchContainer){r.next=11;break}return r.abrupt("return",ye(u,t,o,e));case 11:return r.abrupt("return",_e(u,t,o,e));case 12:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}()},qe=function(e){return function(){var r=E(regeneratorRuntime.mark((function r(t,n){var a,o,i,s,c,u,f;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:a=e.returnFailedResources,o=[],i=I(n.ids),r.prev=3,i.s();case 5:if((s=i.n()).done){r.next=21;break}return c="object"===j(c=s.value)?c["@id"]:c,r.prev=8,r.next=11,te(e)(t,{id:c});case 11:u=r.sent,f=u.data,o.push(f),r.next=19;break;case 16:r.prev=16,r.t0=r.catch(8),a&&o.push({id:c});case 19:r.next=5;break;case 21:r.next=26;break;case 23:r.prev=23,r.t1=r.catch(3),i.e(r.t1);case 26:return r.prev=26,i.f(),r.finish(26);case 29:return r.abrupt("return",{data:o});case 30:case"end":return r.stop()}}),r,null,[[3,23,26,29],[8,16]])})));return function(e,t){return r.apply(this,arguments)}}()},Be=function(e){return function(){var r=E(regeneratorRuntime.mark((function r(t,n){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n.filter=S(S({},n.filter),{},C({},n.target,n.id)),delete n.target,r.next=4,Ie(e)(t,n);case 4:return r.abrupt("return",r.sent);case 5:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}()},Le=function(e){return function(){var r=E(regeneratorRuntime.mark((function r(t,n){var a,o,i,s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return a=e.dataServers,o=e.httpClient,i=e.jsonContext,s=ee(n.id,a),r.next=4,ue(n.data,e);case 4:return n.data=r.sent,r.next=7,o(n.id,{method:"PUT",body:JSON.stringify(S({"@context":i},n.data)),noToken:!s||!0!==a[s].authServer});case 7:return r.abrupt("return",{data:n.data});case 8:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}()};function Me(e){this.message=e}Me.prototype=new Error,Me.prototype.name="InvalidCharacterError";var Fe="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var r=String(e).replace(/=+$/,"");if(r.length%4==1)throw new Me("'atob' failed: The string to be decoded is not correctly encoded.");for(var t,n,a=0,o=0,i="";n=r.charAt(o++);~n&&(t=a%4?64*t+n:n,a++%4)?i+=String.fromCharCode(255&t>>(-2*a&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return i};function He(e){var r=e.replace(/-/g,"+").replace(/_/g,"/");switch(r.length%4){case 0:break;case 2:r+="==";break;case 3:r+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(Fe(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t="0"+t),"%"+t})))}(r)}catch(e){return Fe(r)}}function Ne(e){this.message=e}function De(e,r){if("string"!=typeof e)throw new Ne("Invalid token specified");var t=!0===(r=r||{}).header?0:1;try{return JSON.parse(He(e.split(".")[t]))}catch(e){throw new Ne("Invalid token specified: "+e.message)}}Ne.prototype=new Error,Ne.prototype.name="InvalidTokenError";var ze=function(){var e=E(regeneratorRuntime.mark((function e(r){var t,n,a,o,i,s,c,u,f,l,p,d;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=r.dataServers,n=r.httpClient,a=localStorage.getItem("token"),o=Q("pod",t),i=Q("authServer",t),!a){e.next=24;break}return s=De(a),c=s.webId,e.prev=6,e.next=9,n(c);case 9:f=e.sent,l=f.json,u=l,e.next=20;break;case 14:return e.prev=14,e.t0=e.catch(6),console.error(e.t0),localStorage.removeItem("token"),window.location.reload(),e.abrupt("return");case 20:o&&(r.dataServers[o].name="My Pod",r.dataServers[o].baseUrl=oe(c,"data"),r.dataServers[o].sparqlEndpoint=(null===(p=u.endpoints)||void 0===p?void 0:p["void:sparqlEndpoint"])||oe(c,"sparql")),i&&(r.dataServers[i].proxyUrl=null===(d=u.endpoints)||void 0===d?void 0:d.proxyUrl),e.next=25;break;case 24:o&&delete r.dataServers[o];case 25:case"end":return e.stop()}}),e,null,[[6,14]])})));return function(r){return e.apply(this,arguments)}}(),$e=function(){var e=E(regeneratorRuntime.mark((function e(r){var t,n,a,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=Object.values(r.dataServers).filter((function(e){return!0!==e.pod})).map((function(e){return r.httpClient(new URL("/.well-known/void",e.baseUrl)).then((function(e){return{data:e.json}})).catch((function(e){if(404===e.status)return{error:e};throw e}))})),e.prev=1,e.next=4,Promise.all(t);case 4:n=e.sent,a=I(n);try{for(a.s();!(o=a.n()).done;)o.value.data}catch(e){a.e(e)}finally{a.f()}e.next=11;break;case 9:e.prev=9,e.t0=e.catch(1);case 11:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(r){return e.apply(this,arguments)}}(),Je=function(e){if(!Q("default",e.dataServers))throw new Error("You must define a default server in your dataServers config");e.jsonContext||(e.jsonContext=Object.fromEntries(e.ontologies.map((function(e){return[e.prefix,e.url]})))),e.returnFailedResources||(e.returnFailedResources=!1);var r=ze(e),t=$e(e),n=function(e){return E(regeneratorRuntime.mark((function n(){var a=arguments;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,r;case 2:return n.next=4,t;case 4:return n.next=6,e.apply(void 0,a);case 6:return n.abrupt("return",n.sent);case 7:case"end":return n.stop()}}),n)})))};return{getList:n(Ie(e)),getOne:n(te(e)),getMany:n(qe(e)),getManyReference:n(Be(e)),create:n(le(e)),update:n(Le(e)),updateMany:function(){throw new Error("updateMany is not implemented yet")},delete:n(pe(e)),deleteMany:n(de(e)),getCreateContainer:n(ve(e))}},We=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(r.headers||(r.headers=new Headers),r.method){case"POST":case"PATCH":case"PUT":r.headers.has("Accept")||r.headers.set("Accept","application/ld+json"),r.headers.has("Content-Type")||r.headers.set("Content-Type","application/ld+json");break;case"DELETE":break;case"GET":default:r.headers.has("Accept")||r.headers.set("Accept","application/ld+json")}if(!r.noToken){var t=localStorage.getItem("token");t&&r.headers.set("Authorization","Bearer ".concat(t))}return y.fetchJson(e,r)};export{J as DateTimeInput,D as FilterHandler,$ as GroupedReferenceHandler,B as ImageField,M as ReferenceArrayField,W as ReferenceArrayInput,H as ReferenceField,Y as ReferenceInput,Z as ReificationArrayInput,M as UriArrayField,W as UriArrayInput,Oe as buildDereferenceQuery,Te as buildSparqlQuery,Je as dataProvider,We as httpClient,K as useCreateContainer};
2
2
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/fields/ImageField.js","../src/fields/ReferenceArrayField.js","../src/fields/ReferenceField.js","../src/dataHandling/FilterHandler.js","../src/dataHandling/GroupedReferenceHandler.js","../src/inputs/DateTimeInput.js","../src/inputs/ReferenceArrayInput.js","../src/inputs/ReferenceInput.js","../src/inputs/ReificationArrayInput.js","../src/dereference.js","../src/buildSparqlQuery.js","../src/dataProvider.js","../src/httpClient.js"],"sourcesContent":["import React from 'react';\nimport { ImageField as RaImageField } from 'react-admin';\n\nconst ImageField = ({ record, source, ...otherProps }) => {\n // For the display, we need to have the URI in a src property\n if (typeof record === 'string') record = { [source]: record };\n return <RaImageField record={record} source={source} {...otherProps} />;\n};\n\nexport default ImageField;\n","import React from 'react';\nimport { ReferenceArrayField as RaReferenceArrayField } from 'react-admin';\n\nconst ReferenceArrayField = ({ record, source, ...otherProps }) => {\n if (record?.[source]) {\n if (!Array.isArray(record[source])) {\n record[source] = [record[source]];\n }\n record[source] = record[source].map(i => i['@id'] || i.id || i);\n }\n return <RaReferenceArrayField record={record} source={source} {...otherProps} />;\n};\n\nReferenceArrayField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceArrayField;\n","import React from 'react';\nimport { ReferenceField as RaReferenceField } from 'react-admin';\n\nconst ReferenceField = ({ record, source, ...otherProps }) => {\n if (record[source]) {\n if (typeof record[source] === 'object') {\n record[source] = record[source]['@id'] || record[source].id;\n }\n }\n return <RaReferenceField record={record} source={source} {...otherProps} />;\n};\n\nReferenceField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceField;\n","import React, { useState, useEffect } from 'react';\nimport { ArrayField } from 'react-admin';\n\n/**\n * @example\n * <Show>\n * <FilterHandler\n * source=\"property\" // ex pair:organizationOfMembership\n * filter={{\n * 'propertyToFilter':'value'\n * }} // ex {{'pair:membershipRole':'http://localhost:3000/membership-roles/role-1'}}\n * >\n * <SingleFieldList>\n * </SingleFieldList>\n * </FilterHandler>\n * </Show>\n */\n\nconst FilterHandler = ({ children, record, filter, source, ...otherProps }) => {\n const [filtered, setFiltered] = useState();\n useEffect(() => {\n if (record && source && Array.isArray(record?.[source])) {\n const filteredData = record?.[source].filter(r => {\n let eq = true;\n for (const key in filter) {\n const value = r[key];\n if (Array.isArray(value)) {\n if (!value.includes(filter[key])) {\n eq = false;\n }\n } else {\n if (value !== filter[key]) {\n eq = false;\n }\n }\n }\n return eq;\n });\n let newRecord = {\n ...record\n };\n //undefined setted if no data to obtain no render in RightLabel or equivalent\n newRecord[source] = filteredData.length > 0 ? filteredData : undefined;\n setFiltered(newRecord);\n }\n }, [record, source, filter]);\n\n return (\n <>\n {React.Children.map(children, (child, i) => {\n return React.cloneElement(child, {\n ...otherProps,\n record: filtered,\n addLabel: true,\n source\n });\n })}\n </>\n );\n};\nexport default FilterHandler;\n","import React from 'react';\nimport { useQueryWithStore } from 'react-admin';\nimport { default as FilterHandler } from './FilterHandler';\n\n/*\n * @example Label used in examples\n * const Label = ({label, ...otherProps})=>{\n * return <h2>{label}</h2>\n * }\n *\n * @example show header for each group with group property thanks to groupHeader\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupHeader={({group,...otherProps}) => <Label {...otherProps} label={group['pair:label']}></Label> }\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </GroupedReferenceHandler>\n *\n * @example call chhildren with label thanks to groupLabel\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupLabel=\"property of RAresource display\" // property of React-Admin resource to display. children call whith props \"label\" filled by groupLabel property of groupReference\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <Label>\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </GroupedReferenceHandler>\n *\n * @example conditional show of group if no data in source. Conditionale groupHeader is not possible because GroupedArrayField define group before filter ; need use chhildren.\n * const ConditionalSourceDefinedHandler = ({record,source,children,...otherProps})=>{\n * if (record?.[source] && (!Array.isArray(record[source])||record[source].length>0)){\n * return React.Children.map(children, (child, i) => {\n * return React.cloneElement(child, {...otherProps,record,source});\n * })\n * }else{\n * return <></>\n * }\n * }\n *\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupLabel=\"property of RAresource display\" // property of React-Admin resource to display. children call whith props \"label\" filled by groupLabel property of groupReference\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <ConditionalSourceDefinedHandler>\n * <Label>\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </ConditionalSourceDefinedHandler>\n * </GroupedReferenceHandler>\n *\n *\n */\nconst GroupedReferenceHandler = ({\n children,\n groupReference,\n groupLabel,\n groupHeader,\n filterProperty,\n ...otherProps\n}) => {\n const { data } = useQueryWithStore({\n type: 'getList',\n resource: groupReference,\n payload: {}\n });\n\n return (\n <>\n {data?.map((data, index) => {\n let filter = {};\n filter[filterProperty] = data.id;\n return (\n <>\n {groupHeader && groupHeader({ ...otherProps, group: data })}\n <FilterHandler {...otherProps} filter={filter} label={data[groupLabel]}>\n {children}\n </FilterHandler>\n </>\n );\n })}\n </>\n );\n};\n\nexport default GroupedReferenceHandler;\n","import React from 'react';\nimport { DateTimeInput as RaDateTimeInput } from 'react-admin';\n\n/**\n * @deprecated Use the component from the @semapps/date-components instead\n */\nconst DateTimeInput = props => (\n <RaDateTimeInput {...props} format={value => value && value.replace(' ', 'T').replace('Z', '')} />\n);\n\nexport default DateTimeInput;\n","import React from 'react';\nimport { ReferenceArrayInput as RaReferenceArrayInput, useResourceContext } from 'react-admin';\n\nconst ReferenceArrayInput = props => {\n const resource = useResourceContext({});\n return (\n <RaReferenceArrayInput\n {...props}\n resource={resource}\n format={value => {\n // If there is no value, return immediately\n if (!value) return value;\n // if the linked field value is not an array, turns it into an array.\n // Necessary as JSON-LD are sometimes arrays, sometimes not (when there is one value)\n // and the ReferenceArrayInput component only accept arrays\n if (!Array.isArray(value)) value = [value];\n // If a format prop was defined, apply it to the array\n if (props.format) value = props.format(value);\n // If the values are objects with @id field, turn it to a simple string\n return value.map(v => (typeof v === 'object' ? v.id || v['@id'] : v));\n }}\n />\n );\n};\n\nexport default ReferenceArrayInput;\n","import React from 'react';\nimport { ReferenceInput as RaReferenceInput, useResourceContext } from 'react-admin';\n\nconst ReferenceInput = props => {\n const resource = useResourceContext({});\n return (\n <RaReferenceInput\n {...props}\n resource={resource}\n format={value => {\n // If there is no value, return immediately\n if (!value) return value;\n // If a format prop was defined, apply it\n if (props.format) value = props.format(value);\n // If the value is an object with an @id field, return the uri\n return typeof value === 'object' ? value.id || value['@id'] : value;\n }}\n />\n );\n};\n\nexport default ReferenceInput;\n","import React, { useEffect, useState } from 'react';\nimport { ArrayInput, SimpleFormIterator, TextInput } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useReferenceInputStyles = makeStyles({\n form: {\n display: 'flex'\n },\n input: {\n paddingRight: '20px'\n }\n});\n\nconst useHideInputStyles = makeStyles({\n root: {\n display: 'none'\n }\n});\n\nconst ReificationArrayInput = props => {\n const { reificationClass, children, ...otherProps } = props;\n const flexFormClasses = useReferenceInputStyles();\n const hideInputStyles = useHideInputStyles();\n\n return (\n <ArrayInput {...otherProps}>\n <SimpleFormIterator classes={{ form: flexFormClasses.form }}>\n {React.Children.map(props.children, (child, i) => {\n return React.cloneElement(child, {\n className: flexFormClasses.input\n });\n })}\n <TextInput className={hideInputStyles.root} source=\"type\" initialValue={reificationClass} />\n </SimpleFormIterator>\n </ArrayInput>\n );\n};\n\nexport default ReificationArrayInput;\n","// Return an object in the form of predicate => parentPredicate\nconst flattenPredicate = (accumulator, predicate, parent = 'root') => {\n if (predicate.includes('/')) {\n const matches = predicate.split(/\\/(.+)/);\n accumulator[matches[0]] = parent;\n flattenPredicate(accumulator, matches[1], matches[0]);\n } else {\n accumulator[predicate] = parent;\n }\n return accumulator;\n};\n\n// Transform ontology:predicate to OntologyPredicate in order to use it as a variable name\nconst generateSparqlVarName = predicate =>\n predicate\n .split(':')\n .map(s => s[0].toUpperCase() + s.slice(1))\n .join('');\n\nexport const buildDereferenceQuery = predicates => {\n let queries = [];\n\n if (predicates) {\n const flattenedPredicates = predicates.reduce((acc, predicate) => flattenPredicate(acc, predicate), {});\n\n for (const [predicate, parent] of Object.entries(flattenedPredicates)) {\n const varName = generateSparqlVarName(predicate);\n const parentVarName = parent === 'root' ? '1' : generateSparqlVarName(parent);\n\n // Group queries by parent, so that we can group WHERE triples in the same OPTIONAL tag\n const groupKey = parent === 'root' ? predicate : parent;\n if (!queries[groupKey]) queries[groupKey] = [];\n\n queries[groupKey].push(`\n ?s${parentVarName} ${predicate} ?s${varName} .\n ?s${varName} ?p${varName} ?o${varName} .\n `);\n }\n }\n\n return {\n construct: Object.values(queries)\n .map(groupedQueries => Object.values(groupedQueries).join('\\n'))\n .join('\\n'),\n where: Object.values(queries)\n .map(groupedQueries => `OPTIONAL { ${Object.values(groupedQueries).join('\\n')} }`)\n .join('\\n')\n };\n};\n\nexport const getEmbedFrame = paths => {\n let embedFrame = {},\n predicates;\n if (paths) {\n for (let path of paths) {\n if (path.includes('/')) {\n predicates = path.split('/').reverse();\n } else {\n predicates = [path];\n }\n embedFrame = {\n ...embedFrame,\n ...predicates.reduce(\n (accumulator, predicate) => ({\n [predicate]: {\n '@embed': '@last',\n ...accumulator\n }\n }),\n {}\n )\n };\n }\n return embedFrame;\n }\n};\n","import { buildDereferenceQuery } from './dereference';\n\nconst getPrefixRdf = ontologies => {\n return ontologies.map(ontology => `PREFIX ${ontology.prefix}: <${ontology.url}>`).join('\\n');\n};\n\nconst buildSparqlQuery = ({ types, params: { filter }, dereference, ontologies }) => {\n let whereQuery = '';\n\n if (filter) {\n if (filter.q && filter.q.length > 0) {\n whereQuery += `\n {\n SELECT ?s1\n WHERE {\n ?s1 ?p1 ?o1 .\n FILTER regex(lcase(str(?o1)), \"${filter.q.toLowerCase()}\")\n FILTER NOT EXISTS {?s1 a ?o1}\n }\n }\n `;\n delete filter.q;\n }\n Object.keys(filter).forEach(predicate => {\n if (filter[predicate]) {\n const object = filter[predicate].startsWith('http') ? `<${filter[predicate]}>` : filter[predicate];\n whereQuery += `?s1 ${predicate} ${object} .`;\n }\n });\n }\n\n const dereferenceQuery = buildDereferenceQuery(dereference);\n\n return `\n ${getPrefixRdf(ontologies)}\n CONSTRUCT {\n ?s1 ?p2 ?o2 .\n ${dereferenceQuery.construct}\n }\n WHERE {\n ?s1 a ?type .\n FILTER( ?type IN (${types.join(', ')}) ) .\n FILTER( (isIRI(?s1)) ) .\n ${whereQuery}\n ${dereferenceQuery.where}\n ?s1 ?p2 ?o2 .\n }\n `;\n};\n\nexport default buildSparqlQuery;\n","import jsonld from 'jsonld';\nimport buildSparqlQuery from './buildSparqlQuery';\nimport { getEmbedFrame } from './dereference';\nconst createSlug = require('speakingurl');\n\nconst buildJsonContext = ontologies => {\n let pattern = {};\n ontologies.forEach(ontology => (pattern[ontology.prefix] = ontology.url));\n return pattern;\n};\n\nconst isFile = o => o && o.rawFile && o.rawFile instanceof File;\n\nconst getSlugWithExtension = fileName => {\n let fileExtension = '';\n let splitFileName = fileName.split('.');\n if (splitFileName.length > 1) {\n fileExtension = splitFileName.pop();\n fileName = splitFileName.join('.');\n }\n return createSlug(fileName, { lang: 'fr' }) + '.' + fileExtension;\n};\n\nconst isType = (type, resource) => {\n const resourceType = resource.type || resource['@type'];\n return Array.isArray(resourceType) ? resourceType.includes(type) : resourceType === type;\n};\n\nconst dataProvider = ({\n sparqlEndpoint,\n httpClient,\n resources,\n ontologies,\n jsonContext,\n uploadsContainerUri,\n returnFailedResources = false\n}) => {\n const uploadFile = async rawFile => {\n if (!uploadsContainerUri) throw new Error('No uploadsContainerUri defined for the data provider');\n\n const response = await httpClient(uploadsContainerUri, {\n method: 'POST',\n body: rawFile,\n headers: new Headers({\n // We must sluggify the file name, because we can't use non-ASCII characters in the header\n // However we keep the extension apart (if it exists) so that it is not replaced with a -\n // TODO let the middleware guess the extension based on the content type\n Slug: getSlugWithExtension(rawFile.name),\n 'Content-Type': rawFile.type\n })\n });\n\n if (response.status === 201) {\n return response.headers.get('Location');\n }\n };\n\n /*\n * Look for raw files in the resource data.\n * If there are any, upload them and replace the file by its URL.\n */\n const uploadAllFiles = async resource => {\n for (let property in resource) {\n if (resource.hasOwnProperty(property)) {\n if (Array.isArray(resource[property])) {\n for (let i = 0; i < resource[property].length; i++) {\n if (isFile(resource[property][i])) {\n resource[property][i] = await uploadFile(resource[property][i].rawFile);\n }\n }\n } else {\n if (isFile(resource[property])) {\n resource[property] = await uploadFile(resource[property].rawFile);\n }\n }\n }\n }\n return resource;\n };\n\n const ExecuteSparql = async (resourceId, params) => {\n const sparqlQuery = buildSparqlQuery({\n types: resources[resourceId].types,\n params: { ...params, filter: { ...resources[resourceId].filter, ...params.filter } },\n dereference: resources[resourceId].dereference,\n ontologies\n });\n\n const { json } = await httpClient(sparqlEndpoint, {\n method: 'POST',\n body: sparqlQuery\n });\n\n const frame = {\n '@context': jsonContext || buildJsonContext(ontologies),\n '@type': resources[resourceId].types,\n // Embed only what we explicitly asked to dereference\n // Otherwise we may have same-type resources embedded in other resources\n '@embed': '@never',\n ...getEmbedFrame(resources[resourceId].dereference)\n };\n\n // omitGraph option force results to be in a @graph, even if we have a single result\n const compactJson = await jsonld.frame(json, frame, { omitGraph: false });\n\n if (Object.keys(compactJson).length === 1) {\n // If we have only the context, it means there is no match\n return { data: [], total: 0 };\n } else {\n // Add id in addition to @id, as this is what React-Admin expects\n let returnData = compactJson['@graph'].map(item => {\n item.id = item.id || item['@id'];\n return item;\n });\n\n if (params.sort) {\n returnData = returnData.sort((a, b) => {\n if (a[params.sort.field] && b[params.sort.field]) {\n if (params.sort.order === 'ASC') {\n return a[params.sort.field].localeCompare(b[params.sort.field]);\n } else {\n return b[params.sort.field].localeCompare(a[params.sort.field]);\n }\n } else {\n return true;\n }\n });\n }\n if (params.pagination) {\n returnData = returnData.slice(\n (params.pagination.page - 1) * params.pagination.perPage,\n params.pagination.page * params.pagination.perPage\n );\n }\n\n return { data: returnData, total: compactJson['@graph'].length };\n }\n };\n\n return {\n getList: async (resourceId, params) => {\n if (!resources[resourceId]) Error(`Resource ${resourceId} is not mapped in resources file`);\n\n if (params.id || params['@id'] || resources[resourceId].fetchContainer) {\n const url = params.id || params['@id'] || resources[resourceId].containerUri;\n let { json } = await httpClient(url);\n\n if (isType('ldp:Container', json)) {\n /*\n * LDP Container\n */\n let returnData = json['ldp:contains'].map(item => {\n item.id = item.id || item['@id'];\n return item;\n });\n\n // Apply filter to results\n if (params.filter) {\n // Remove search params from filter\n if (params.filter.q) {\n delete params.filter.q;\n }\n if (Object.keys(params.filter).length > 0) {\n returnData = returnData.filter(resource =>\n Object.entries(params.filter).some(([k, v]) =>\n Array.isArray(resource[k]) ? resource[k].includes(v) : resource[k] === v\n )\n );\n }\n }\n\n if (params.sort) {\n returnData = returnData.sort((a, b) => {\n if (a[params.sort.field] && b[params.sort.field]) {\n if (params.sort.order === 'ASC') {\n return a[params.sort.field].localeCompare(b[params.sort.field]);\n } else {\n return b[params.sort.field].localeCompare(a[params.sort.field]);\n }\n } else {\n return true;\n }\n });\n }\n if (params.pagination) {\n returnData = returnData.slice(\n (params.pagination.page - 1) * params.pagination.perPage,\n params.pagination.page * params.pagination.perPage\n );\n }\n\n return { data: returnData, total: json['ldp:contains'].length };\n } else {\n /*\n * ActivityPub collection\n */\n\n // If the collection is split amongst several pages, get the first page\n if (json.first) {\n const result = await httpClient(json.first);\n json = result.json;\n }\n\n const listProperty = ['as:orderedItems', 'orderedItems', 'as:items', 'items'].find(p => json[p]);\n if (!listProperty) return { data: [], total: 0 };\n\n // TODO fetch several pages depending on params.pagination\n\n let returnData = json[listProperty].map(item => {\n item.id = item.id || item['@id'];\n return item;\n });\n\n return { data: returnData, total: json.totalItems };\n }\n } else {\n return await ExecuteSparql(resourceId, params);\n // OTHER METHOD: FETCH ONLY RESOURCES URIs AND FETCH THEM INDEPENDENTLY\n // TODO compare the performance of the two methods, and eventually allow both of them\n //\n // const sparqlQuery = buildSparqlUriQuery({\n // types: resources[resourceId].types,\n // params: { ...params, filter: { ...resources[resourceId].filter, ...params.filter } },\n // ontologies\n // });\n //\n // let { json } = await httpClient(sparqlEndpoint, {\n // method: 'POST',\n // body: sparqlQuery\n // });\n //\n // const total = json.length;\n //\n // if (params.pagination) {\n // json = json.slice(\n // (params.pagination.page - 1) * params.pagination.perPage,\n // params.pagination.page * params.pagination.perPage\n // );\n // }\n //\n // let data = await Promise.allSettled(\n // json.map(result => httpClient(result.resource.value).then(result => result.json))\n // );\n //\n // // Ignore resources we were not able to fetch\n // data = data.filter(r => r.status === 'fulfilled').map(r => r.value);\n //\n // return { data, total };\n }\n },\n getOne: async (resourceId, params) => {\n if (!resources[resourceId]) {\n Error(`Resource ${resourceId} is not mapped in resources file`);\n }\n const dataModel = resources[resourceId];\n\n let { json } = await httpClient(params.id);\n json.id = json.id || json['@id'];\n // TODO compact only if remote context is different from local context\n const compactJson = await jsonld.compact(json, jsonContext || buildJsonContext(ontologies));\n // transform single value into array concidering forceArray predicates\n if (dataModel.forceArray) {\n for (const forceArrayItem of dataModel.forceArray) {\n if (compactJson[forceArrayItem] && !Array.isArray(compactJson[forceArrayItem])) {\n compactJson[forceArrayItem] = [compactJson[forceArrayItem]];\n }\n }\n }\n return { data: compactJson };\n },\n getMany: async (resourceId, params) => {\n let returnData = [];\n\n for (let id of params.ids) {\n id = typeof id === 'object' ? id['@id'] : id;\n\n try {\n let { json } = await httpClient(id);\n json.id = id;\n returnData.push(json);\n } catch (e) {\n // Catch if one resource fails to load\n // Otherwise no references will be show if only one is missing\n // See https://github.com/marmelab/react-admin/issues/5190\n if (returnFailedResources) {\n // Return only the ID of the resource\n returnData.push({ id });\n } else {\n // Do nothing. The resource will not appear in the results.\n }\n }\n }\n\n return { data: returnData };\n },\n getManyReference: async (resourceId, params) => {\n params.filter = { ...params.filter, [params.target]: params.id };\n return await ExecuteSparql(resourceId, params);\n },\n create: async (resourceId, params) => {\n if (!resources[resourceId]) Error(`Resource ${resourceId} is not mapped in resources file`);\n\n const { slugField, containerUri, types } = resources[resourceId];\n const headers = new Headers();\n\n if (slugField) {\n headers.set(\n 'Slug',\n Array.isArray(slugField) ? slugField.map(f => params.data[f]).join(' ') : params.data[slugField]\n );\n }\n\n // Upload files, if there are any\n params.data = await uploadAllFiles(params.data);\n\n const { headers: responseHeaders } = await httpClient(containerUri, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n '@context': jsonContext || buildJsonContext(ontologies),\n '@type': types,\n ...params.data\n })\n });\n\n // Retrieve newly-created resource\n const resourceUri = responseHeaders.get('Location');\n let { json } = await httpClient(resourceUri);\n json.id = json.id || json['@id'];\n return { data: json };\n },\n update: async (resourceId, params) => {\n // Upload files, if there are any\n params.data = await uploadAllFiles(params.data);\n await httpClient(params.id, {\n method: 'PUT',\n body: JSON.stringify({\n '@context': jsonContext || buildJsonContext(ontologies),\n ...params.data\n })\n });\n\n return { data: params.data };\n },\n updateMany: (resourceId, params) => {\n throw new Error('updateMany is not implemented yet');\n },\n delete: async (resourceId, params) => {\n await httpClient(params.id, {\n method: 'DELETE'\n });\n return { data: { id: params.id } };\n },\n deleteMany: (resourceId, params) => {\n throw new Error('deleteMany is not implemented yet');\n }\n };\n};\n\nexport default dataProvider;\n","import { fetchUtils } from 'react-admin';\n\nconst httpClient = (url, options = {}) => {\n if (!options.headers) options.headers = new Headers();\n\n switch (options.method) {\n case 'POST':\n case 'PATCH':\n case 'PUT':\n if (!options.headers.has('Accept')) options.headers.set('Accept', 'application/ld+json');\n if (!options.headers.has('Content-Type')) options.headers.set('Content-Type', 'application/ld+json');\n break;\n\n case 'DELETE':\n break;\n\n case 'GET':\n default:\n if (!options.headers.has('Accept')) options.headers.set('Accept', 'application/ld+json');\n break;\n }\n\n const token = localStorage.getItem('token');\n if (token) options.headers.set('Authorization', `Bearer ${token}`);\n\n return fetchUtils.fetchJson(url, options);\n};\n\nexport default httpClient;\n"],"names":["ImageField","record","source","otherProps","React","RaImageField","ReferenceArrayField","Array","isArray","map","i","id","RaReferenceArrayField","defaultProps","addLabel","ReferenceField","_typeof","RaReferenceField","FilterHandler","children","filter","useState","filtered","setFiltered","useEffect","filteredData","r","eq","key","value","includes","newRecord","length","undefined","Children","child","cloneElement","GroupedReferenceHandler","groupReference","groupLabel","groupHeader","filterProperty","data","useQueryWithStore","type","resource","payload","index","group","label","DateTimeInput","props","RaDateTimeInput","format","replace","ReferenceArrayInput","useResourceContext","RaReferenceArrayInput","v","ReferenceInput","RaReferenceInput","useReferenceInputStyles","makeStyles","form","display","input","paddingRight","useHideInputStyles","root","ReificationArrayInput","reificationClass","flexFormClasses","hideInputStyles","ArrayInput","SimpleFormIterator","classes","className","TextInput","initialValue","generateSparqlVarName","predicate","split","s","toUpperCase","slice","join","getEmbedFrame","paths","predicates","embedFrame","path","reverse","reduce","accumulator","buildSparqlQuery","types","params","dereference","ontologies","whereQuery","q","toLowerCase","Object","keys","forEach","object","startsWith","dereferenceQuery","queries","flattenedPredicates","acc","flattenPredicate","parent","matches","entries","varName","parentVarName","groupKey","push","construct","values","groupedQueries","where","buildDereferenceQuery","ontology","prefix","url","getPrefixRdf","createSlug","require","buildJsonContext","pattern","isFile","o","rawFile","File","dataProvider","sparqlEndpoint","httpClient","resources","jsonContext","uploadsContainerUri","returnFailedResources","uploadFile","Error","method","body","headers","Headers","Slug","fileName","name","fileExtension","splitFileName","pop","lang","response","status","get","uploadAllFiles","property","hasOwnProperty","ExecuteSparql","resourceId","sparqlQuery","json","frame","jsonld","omitGraph","compactJson","total","returnData","item","sort","a","b","field","order","localeCompare","pagination","page","perPage","getList","fetchContainer","containerUri","resourceType","some","k","first","result","listProperty","find","p","totalItems","getOne","dataModel","compact","forceArray","forceArrayItem","getMany","ids","getManyReference","target","create","slugField","set","f","JSON","stringify","responseHeaders","resourceUri","update","updateMany","deleteMany","options","has","token","localStorage","getItem","fetchUtils","fetchJson"],"mappings":"srHAGMA,EAAa,gBAAGC,IAAAA,OAAQC,IAAAA,OAAWC,iCAEjB,iBAAXF,IAAqBA,OAAYC,EAASD,IAC9CG,gBAACC,KAAaJ,OAAQA,EAAQC,OAAQA,GAAYC,KCHrDG,EAAsB,gBAAGL,IAAAA,OAAQC,IAAAA,OAAWC,kCAC5CF,MAAAA,SAAAA,EAASC,MACNK,MAAMC,QAAQP,EAAOC,MACxBD,EAAOC,GAAU,CAACD,EAAOC,KAE3BD,EAAOC,GAAUD,EAAOC,GAAQO,KAAI,SAAAC,UAAKA,EAAE,QAAUA,EAAEC,IAAMD,MAExDN,gBAACQ,KAAsBX,OAAQA,EAAQC,OAAQA,GAAYC,KAGpEG,EAAoBO,aAAe,CACjCC,UAAU,OCXNC,EAAiB,gBAAGd,IAAAA,OAAQC,IAAAA,OAAWC,kCACvCF,EAAOC,IACqB,WAA1Bc,EAAOf,EAAOC,MAChBD,EAAOC,GAAUD,EAAOC,GAAQ,QAAUD,EAAOC,GAAQS,IAGtDP,gBAACa,KAAiBhB,OAAQA,EAAQC,OAAQA,GAAYC,KAG/DY,EAAeF,aAAe,CAC5BC,UAAU,OCKNI,EAAgB,gBAAGC,IAAAA,SAAUlB,IAAAA,OAAQmB,IAAAA,OAAQlB,IAAAA,OAAWC,mDAC5BkB,OAAzBC,OAAUC,cACjBC,GAAU,cACJvB,GAAUC,GAAUK,MAAMC,QAAQP,MAAAA,SAAAA,EAASC,IAAU,KACjDuB,EAAexB,MAAAA,SAAAA,EAASC,GAAQkB,QAAO,SAAAM,OACvCC,GAAK,MACJ,IAAMC,KAAOR,EAAQ,KAClBS,EAAQH,EAAEE,GACZrB,MAAMC,QAAQqB,GACXA,EAAMC,SAASV,EAAOQ,MACzBD,GAAK,GAGHE,IAAUT,EAAOQ,KACnBD,GAAK,UAIJA,KAELI,OACC9B,GAGL8B,EAAU7B,GAAUuB,EAAaO,OAAS,EAAIP,OAAeQ,EAC7DV,EAAYQ,MAEb,CAAC9B,EAAQC,EAAQkB,IAGlBhB,gCACGA,EAAM8B,SAASzB,IAAIU,GAAU,SAACgB,EAAOzB,UAC7BN,EAAMgC,aAAaD,SACrBhC,OACHF,OAAQqB,EACRR,UAAU,EACVZ,OAAAA,UCcJmC,EAA0B,gBAC9BlB,IAAAA,SACAmB,IAAAA,eACAC,IAAAA,WACAC,IAAAA,YACAC,IAAAA,eACGtC,iFAEKuC,EAASC,EAAkB,CACjCC,KAAM,UACNC,SAAUP,EACVQ,QAAS,KAHHJ,YAONtC,gCACGsC,MAAAA,SAAAA,EAAMjC,KAAI,SAACiC,EAAMK,OACZ3B,EAAS,UACbA,EAAOqB,GAAkBC,EAAK/B,GAE5BP,gCACGoC,GAAeA,SAAiBrC,OAAY6C,MAAON,KACpDtC,gBAACc,OAAkBf,GAAYiB,OAAQA,EAAQ6B,MAAOP,EAAKH,KACxDpB,SCrFT+B,EAAgB,SAAAC,UACpB/C,gBAACgD,OAAoBD,GAAOE,OAAQ,SAAAxB,UAASA,GAASA,EAAMyB,QAAQ,IAAK,KAAKA,QAAQ,IAAK,SCJvFC,EAAsB,SAAAJ,OACpBN,EAAWW,EAAmB,WAElCpD,gBAACqD,OACKN,GACJN,SAAUA,EACVQ,OAAQ,SAAAxB,UAEDA,GAIAtB,MAAMC,QAAQqB,KAAQA,EAAQ,CAACA,IAEhCsB,EAAME,SAAQxB,EAAQsB,EAAME,OAAOxB,IAEhCA,EAAMpB,KAAI,SAAAiD,SAAmB,WAAb1C,EAAO0C,GAAiBA,EAAE/C,IAAM+C,EAAE,OAASA,MAR/C7B,OCRrB8B,EAAiB,SAAAR,OACfN,EAAWW,EAAmB,WAElCpD,gBAACwD,OACKT,GACJN,SAAUA,EACVQ,OAAQ,SAAAxB,UAEDA,GAEDsB,EAAME,SAAQxB,EAAQsB,EAAME,OAAOxB,IAEf,WAAjBb,EAAOa,GAAqBA,EAAMlB,IAAMkB,EAAM,OAASA,GAJ3CA,OCPrBgC,EAA0BC,EAAW,CACzCC,KAAM,CACJC,QAAS,QAEXC,MAAO,CACLC,aAAc,UAIZC,EAAqBL,EAAW,CACpCM,KAAM,CACJJ,QAAS,UAIPK,EAAwB,SAAAlB,OACpBmB,EAA8CnB,EAA9CmB,iBAA+BnE,GAAegD,EAA5BhC,WAA4BgC,oCAChDoB,EAAkBV,IAClBW,EAAkBL,WAGtB/D,gBAACqE,EAAetE,EACdC,gBAACsE,GAAmBC,QAAS,CAAEZ,KAAMQ,EAAgBR,OAClD3D,EAAM8B,SAASzB,IAAI0C,EAAMhC,UAAU,SAACgB,EAAOzB,UACnCN,EAAMgC,aAAaD,EAAO,CAC/ByC,UAAWL,EAAgBN,WAG/B7D,gBAACyE,GAAUD,UAAWJ,EAAgBJ,KAAMlE,OAAO,OAAO4E,aAAcR,OCnB1ES,EAAwB,SAAAC,UAC5BA,EACGC,MAAM,KACNxE,KAAI,SAAAyE,UAAKA,EAAE,GAAGC,cAAgBD,EAAEE,MAAM,MACtCC,KAAK,KAiCGC,EAAgB,SAAAC,OAEzBC,EADEC,EAAa,MAEbF,EAAO,WACQA,kCAAO,KAAfG,UAELF,EADEE,EAAK5D,SAAS,KACH4D,EAAKT,MAAM,KAAKU,UAEhB,CAACD,GAEhBD,SACKA,GACAD,EAAWI,QACZ,SAACC,EAAab,eACXA,cACW,SACPa,MAGP,2CAICJ,ICnELK,EAAmB,gBAAGC,IAAAA,MAAiB3E,IAAV4E,OAAU5E,OAAU6E,IAAAA,YAAaC,IAAAA,WAC9DC,EAAa,GAEb/E,IACEA,EAAOgF,GAAKhF,EAAOgF,EAAEpE,OAAS,IAChCmE,+HAKqC/E,EAAOgF,EAAEC,gGAKvCjF,EAAOgF,GAEhBE,OAAOC,KAAKnF,GAAQoF,SAAQ,SAAAxB,MACtB5D,EAAO4D,GAAY,KACfyB,EAASrF,EAAO4D,GAAW0B,WAAW,mBAActF,EAAO4D,QAAgB5D,EAAO4D,GACxFmB,iBAAqBnB,cAAayB,iBAKlCE,EDZ6B,SAAAnB,OAC/BoB,EAAU,MAEVpB,UACIqB,EAAsBrB,EAAWI,QAAO,SAACkB,EAAK9B,UAtB/B,SAAnB+B,EAAoBlB,EAAab,OAAWgC,yDAAS,UACrDhC,EAAUlD,SAAS,KAAM,KACrBmF,EAAUjC,EAAUC,MAAM,UAChCY,EAAYoB,EAAQ,IAAMD,EAC1BD,EAAiBlB,EAAaoB,EAAQ,GAAIA,EAAQ,SAElDpB,EAAYb,GAAagC,SAEpBnB,EAc6DkB,CAAiBD,EAAK9B,KAAY,UAElEsB,OAAOY,QAAQL,kBAAsB,iBAA3D7B,OAAWgC,OACfG,EAAUpC,EAAsBC,GAChCoC,EAA2B,SAAXJ,EAAoB,IAAMjC,EAAsBiC,GAGhEK,EAAsB,SAAXL,EAAoBhC,EAAYgC,EAC5CJ,EAAQS,KAAWT,EAAQS,GAAY,IAE5CT,EAAQS,GAAUC,2BACZF,cAAiBpC,gBAAemC,2BAChCA,gBAAaA,gBAAaA,uBAK7B,CACLI,UAAWjB,OAAOkB,OAAOZ,GACtBnG,KAAI,SAAAgH,UAAkBnB,OAAOkB,OAAOC,GAAgBpC,KAAK,SACzDA,KAAK,MACRqC,MAAOpB,OAAOkB,OAAOZ,GAClBnG,KAAI,SAAAgH,8BAAgCnB,OAAOkB,OAAOC,GAAgBpC,KAAK,eACvEA,KAAK,OCfesC,CAAsB1B,yBA7B5B,SAAAC,UACZA,EAAWzF,KAAI,SAAAmH,0BAAsBA,EAASC,qBAAYD,EAASE,YAAQzC,KAAK,MA+BnF0C,CAAa7B,4DAGXS,EAAiBY,wFAICxB,EAAMV,KAAK,8DAE7Bc,qBACAQ,EAAiBe,2CCzCnBM,EAAaC,QAAQ,eAErBC,EAAmB,SAAAhC,OACnBiC,EAAU,UACdjC,EAAWM,SAAQ,SAAAoB,UAAaO,EAAQP,EAASC,QAAUD,EAASE,OAC7DK,GAGHC,EAAS,SAAAC,UAAKA,GAAKA,EAAEC,SAAWD,EAAEC,mBAAmBC,MAiBrDC,EAAe,8BACnBC,IAAAA,eACAC,IAAAA,WACAC,IAAAA,UACAzC,IAAAA,WACA0C,IAAAA,YACAC,IAAAA,wBACAC,sBAAAA,gBAEMC,8CAAa,WAAMT,4FAClBO,wBAA2B,IAAIG,MAAM,+EAEnBN,EAAWG,EAAqB,CACrDI,OAAQ,OACRC,KAAMZ,EACNa,QAAS,IAAIC,QAAQ,CAInBC,MAlCqBC,EAkCMhB,EAAQiB,KAjCrCC,OAAAA,EACAC,OAAAA,EADAD,EAAgB,GAChBC,EAAgBH,EAASrE,MAAM,KAC/BwE,EAAczH,OAAS,IACzBwH,EAAgBC,EAAcC,MAC9BJ,EAAWG,EAAcpE,KAAK,MAEzB2C,EAAWsB,EAAU,CAAEK,KAAM,OAAU,IAAMH,kBA4B9BlB,EAAQ1F,mBAIJ,OAZlBgH,UAYOC,gDACJD,EAAST,QAAQW,IAAI,8CAxCL,IAAAR,EACvBE,EACAC,iEA8CEM,8CAAiB,WAAMlH,wHACNA,oDAAZmH,cACHnH,EAASoH,eAAeD,wBACtBzJ,MAAMC,QAAQqC,EAASmH,qBAChBtJ,EAAI,cAAGA,EAAImC,EAASmH,GAAUhI,6BACjCoG,EAAOvF,EAASmH,GAAUtJ,sCACEqI,EAAWlG,EAASmH,GAAUtJ,GAAG4H,iBAA/DzF,EAASmH,GAAUtJ,kBAFwBA,uDAM3C0H,EAAOvF,EAASmH,sCACSjB,EAAWlG,EAASmH,GAAU1B,iBAAzDzF,EAASmH,kEAKVnH,qGAGHqH,8CAAgB,WAAOC,EAAYnE,0GACjCoE,EAActE,EAAiB,CACnCC,MAAO4C,EAAUwB,GAAYpE,MAC7BC,cAAaA,OAAQ5E,cAAauH,EAAUwB,GAAY/I,QAAW4E,EAAO5E,UAC1E6E,YAAa0C,EAAUwB,GAAYlE,YACnCC,WAAAA,aAGqBwC,EAAWD,EAAgB,CAChDQ,OAAQ,OACRC,KAAMkB,2BAFAC,IAAAA,KAKFC,gBACQ1B,GAAeV,EAAiBhC,WACnCyC,EAAUwB,GAAYpE,eAGrB,UACPT,EAAcqD,EAAUwB,GAAYlE,uBAIfsE,EAAOD,MAAMD,EAAMC,EAAO,CAAEE,WAAW,cAA3DC,SAEkC,IAApCnE,OAAOC,KAAKkE,GAAazI,iDAEpB,CAAEU,KAAM,GAAIgI,MAAO,mBAGtBC,EAAaF,EAAY,UAAUhK,KAAI,SAAAmK,UACzCA,EAAKjK,GAAKiK,EAAKjK,IAAMiK,EAAK,OACnBA,KAGL5E,EAAO6E,OACTF,EAAaA,EAAWE,MAAK,SAACC,EAAGC,UAC3BD,EAAE9E,EAAO6E,KAAKG,SAAUD,EAAE/E,EAAO6E,KAAKG,SACd,QAAtBhF,EAAO6E,KAAKI,MACPH,EAAE9E,EAAO6E,KAAKG,OAAOE,cAAcH,EAAE/E,EAAO6E,KAAKG,QAEjDD,EAAE/E,EAAO6E,KAAKG,OAAOE,cAAcJ,EAAE9E,EAAO6E,KAAKG,aAO5DhF,EAAOmF,aACTR,EAAaA,EAAWvF,OACrBY,EAAOmF,WAAWC,KAAO,GAAKpF,EAAOmF,WAAWE,QACjDrF,EAAOmF,WAAWC,KAAOpF,EAAOmF,WAAWE,4BAIxC,CAAE3I,KAAMiI,EAAYD,MAAOD,EAAY,UAAUzI,mHAIrD,CACLsJ,sCAAS,WAAOnB,EAAYnE,wGACrB2C,EAAUwB,KAEXnE,EAAOrF,IAAMqF,EAAO,QAAU2C,EAAUwB,GAAYoB,wCAChDzD,EAAM9B,EAAOrF,IAAMqF,EAAO,QAAU2C,EAAUwB,GAAYqB,sBAC3C9C,EAAWZ,sBAA1BuC,IAAAA,KA1HEzH,EA4HG,gBA3HX6I,OAAAA,EAAAA,GADc5I,EA4HcwH,GA3HJzH,MAAQC,EAAS,WACxCtC,MAAMC,QAAQiL,GAAgBA,EAAa3J,SAASc,GAAQ6I,IAAiB7I,2BA8HxE+H,EAAaN,EAAK,gBAAgB5J,KAAI,SAAAmK,UACxCA,EAAKjK,GAAKiK,EAAKjK,IAAMiK,EAAK,OACnBA,KAIL5E,EAAO5E,SAEL4E,EAAO5E,OAAOgF,UACTJ,EAAO5E,OAAOgF,EAEnBE,OAAOC,KAAKP,EAAO5E,QAAQY,OAAS,IACtC2I,EAAaA,EAAWvJ,QAAO,SAAAyB,UAC7ByD,OAAOY,QAAQlB,EAAO5E,QAAQsK,MAAK,yBAAEC,OAAGjI,cACtCnD,MAAMC,QAAQqC,EAAS8I,IAAM9I,EAAS8I,GAAG7J,SAAS4B,GAAKb,EAAS8I,KAAOjI,UAM3EsC,EAAO6E,OACTF,EAAaA,EAAWE,MAAK,SAACC,EAAGC,UAC3BD,EAAE9E,EAAO6E,KAAKG,SAAUD,EAAE/E,EAAO6E,KAAKG,SACd,QAAtBhF,EAAO6E,KAAKI,MACPH,EAAE9E,EAAO6E,KAAKG,OAAOE,cAAcH,EAAE/E,EAAO6E,KAAKG,QAEjDD,EAAE/E,EAAO6E,KAAKG,OAAOE,cAAcJ,EAAE9E,EAAO6E,KAAKG,aAO5DhF,EAAOmF,aACTR,EAAaA,EAAWvF,OACrBY,EAAOmF,WAAWC,KAAO,GAAKpF,EAAOmF,WAAWE,QACjDrF,EAAOmF,WAAWC,KAAOpF,EAAOmF,WAAWE,4BAIxC,CAAE3I,KAAMiI,EAAYD,MAAOL,EAAK,gBAAgBrI,qBAOnDqI,EAAKuB,wCACclD,EAAW2B,EAAKuB,eAA/BC,SACNxB,EAAOwB,EAAOxB,gBAGVyB,EAAe,CAAC,kBAAmB,eAAgB,WAAY,SAASC,MAAK,SAAAC,UAAK3B,EAAK2B,gDACnE,CAAEtJ,KAAM,GAAIgI,MAAO,mBAIzCC,EAAaN,EAAKyB,GAAcrL,KAAI,SAAAmK,UACtCA,EAAKjK,GAAKiK,EAAKjK,IAAMiK,EAAK,OACnBA,uBAGF,CAAElI,KAAMiI,EAAYD,MAAOL,EAAK4B,8DAG5B/B,EAAcC,EAAYnE,8EAjMhC,IAACpD,EAAMC,EACd4I,0DAkOJS,qCAAQ,WAAO/B,EAAYnE,4GACpB2C,EAAUwB,GAGTgC,EAAYxD,EAAUwB,YAEPzB,EAAW1C,EAAOrF,4BAAjC0J,IAAAA,MACD1J,GAAK0J,EAAK1J,IAAM0J,EAAK,gBAEAE,EAAO6B,QAAQ/B,EAAMzB,GAAeV,EAAiBhC,cAAzEuE,SAEF0B,EAAUE,WAAY,KACKF,EAAUE,2CAA5BC,UACL7B,EAAY6B,KAAoB/L,MAAMC,QAAQiK,EAAY6B,MAC5D7B,EAAY6B,GAAkB,CAAC7B,EAAY6B,6DAI1C,CAAE5J,KAAM+H,+FAEjB8B,sCAAS,WAAOpC,EAAYnE,mGACtB2E,EAAa,OAEF3E,EAAOwG,qEACpB7L,EAAmB,WAAdK,EADEL,WACuBA,EAAG,OAASA,qBAGnB+H,EAAW/H,qBAA1B0J,IAAAA,MACD1J,GAAKA,EACVgK,EAAWrD,KAAK+C,qDAKZvB,GAEF6B,EAAWrD,KAAK,CAAE3G,GAAAA,4KAOjB,CAAE+B,KAAMiI,0HAEjB8B,+CAAkB,WAAOtC,EAAYnE,0FACnCA,EAAO5E,cAAc4E,EAAO5E,gBAAS4E,EAAO0G,OAAS1G,EAAOrF,cAC/CuJ,EAAcC,EAAYnE,qIAEzC2G,qCAAQ,WAAOxC,EAAYnE,kHACpB2C,EAAUwB,KAE4BxB,EAAUwB,GAA7CyC,IAAAA,UAAWpB,IAAAA,aAAczF,IAAAA,MAC3BoD,EAAU,IAAIC,QAEhBwD,GACFzD,EAAQ0D,IACN,OACAtM,MAAMC,QAAQoM,GAAaA,EAAUnM,KAAI,SAAAqM,UAAK9G,EAAOtD,KAAKoK,MAAIzH,KAAK,KAAOW,EAAOtD,KAAKkK,aAKtE7C,EAAe/D,EAAOtD,oBAA1CsD,EAAOtD,qBAEoCgG,EAAW8C,EAAc,CAClEvC,OAAQ,OACRE,QAAAA,EACAD,KAAM6D,KAAKC,wBACGpE,GAAeV,EAAiBhC,WACnCH,GACNC,EAAOtD,gCANGuK,IAAT9D,QAWF+D,EAAcD,EAAgBnD,IAAI,sBACnBpB,EAAWwE,4BAA1B7C,IAAAA,MACD1J,GAAK0J,EAAK1J,IAAM0J,EAAK,yBACnB,CAAE3H,KAAM2H,+FAEjB8C,qCAAQ,WAAOhD,EAAYnE,mGAEL+D,EAAe/D,EAAOtD,oBAA1CsD,EAAOtD,qBACDgG,EAAW1C,EAAOrF,GAAI,CAC1BsI,OAAQ,MACRC,KAAM6D,KAAKC,wBACGpE,GAAeV,EAAiBhC,IACzCF,EAAOtD,yCAIP,CAAEA,KAAMsD,EAAOtD,iGAExB0K,WAAY,SAACjD,EAAYnE,SACjB,IAAIgD,MAAM,2EAEV,WAAOmB,EAAYnE,mGACnB0C,EAAW1C,EAAOrF,GAAI,CAC1BsI,OAAQ,2CAEH,CAAEvG,KAAM,CAAE/B,GAAIqF,EAAOrF,gGAE9B0M,WAAY,SAAClD,EAAYnE,SACjB,IAAIgD,MAAM,wCChWhBN,EAAa,SAACZ,OAAKwF,yDAAU,UAC5BA,EAAQnE,UAASmE,EAAQnE,QAAU,IAAIC,SAEpCkE,EAAQrE,YACT,WACA,YACA,MACEqE,EAAQnE,QAAQoE,IAAI,WAAWD,EAAQnE,QAAQ0D,IAAI,SAAU,uBAC7DS,EAAQnE,QAAQoE,IAAI,iBAAiBD,EAAQnE,QAAQ0D,IAAI,eAAgB,iCAG3E,mBAGA,cAEES,EAAQnE,QAAQoE,IAAI,WAAWD,EAAQnE,QAAQ0D,IAAI,SAAU,2BAIhEW,EAAQC,aAAaC,QAAQ,gBAC/BF,GAAOF,EAAQnE,QAAQ0D,IAAI,iCAA2BW,IAEnDG,EAAWC,UAAU9F,EAAKwF"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/fields/ImageField.js","../src/fields/ReferenceArrayField.js","../src/fields/ReferenceField.js","../src/dataHandling/FilterHandler.js","../src/dataHandling/GroupedReferenceHandler.js","../src/inputs/DateTimeInput.js","../src/inputs/ReferenceArrayInput.js","../src/inputs/ReferenceInput.js","../src/inputs/ReificationArrayInput.js","../src/hooks/useCreateContainer.js","../src/dataProvider/utils/getServerKeyFromType.js","../src/dataProvider/utils/getServerKeyFromUri.js","../src/dataProvider/utils/fetchResource.js","../src/dataProvider/methods/getOne.js","../../../node_modules/url-join/lib/url-join.js","../src/dataProvider/utils/uploadAllFiles.js","../src/dataProvider/utils/findContainersWithTypes.js","../src/dataProvider/methods/create.js","../src/dataProvider/methods/delete.js","../src/dataProvider/methods/deleteMany.js","../src/dataProvider/methods/getCreateContainer.js","../src/dataProvider/utils/fetchContainers.js","../src/dataProvider/utils/getEmbedFrame.js","../../../node_modules/crypto-js/core.js","../../../node_modules/crypto-js/md5.js","../src/dataProvider/utils/buildDereferenceQuery.js","../src/dataProvider/utils/buildSparqlQuery.js","../src/dataProvider/utils/fetchSparqlEndpoints.js","../src/dataProvider/utils/findContainersWithPath.js","../src/dataProvider/methods/getList.js","../src/dataProvider/methods/getMany.js","../src/dataProvider/methods/getManyReference.js","../src/dataProvider/methods/update.js","../../../node_modules/jwt-decode/build/jwt-decode.esm.js","../src/dataProvider/utils/fetchUserConfig.js","../src/dataProvider/utils/fetchVoidEndpoints.js","../src/dataProvider/dataProvider.js","../src/httpClient.js"],"sourcesContent":["import React from 'react';\nimport { ImageField as RaImageField } from 'react-admin';\n\nconst ImageField = ({ record, source, ...otherProps }) => {\n // For the display, we need to have the URI in a src property\n if (typeof record === 'string') record = { [source]: record };\n return <RaImageField record={record} source={source} {...otherProps} />;\n};\n\nexport default ImageField;\n","import React from 'react';\nimport { ReferenceArrayField as RaReferenceArrayField } from 'react-admin';\n\nconst ReferenceArrayField = ({ record, source, ...otherProps }) => {\n if (record?.[source]) {\n if (!Array.isArray(record[source])) {\n record[source] = [record[source]];\n }\n record[source] = record[source].map(i => i['@id'] || i.id || i);\n }\n return <RaReferenceArrayField record={record} source={source} {...otherProps} />;\n};\n\nReferenceArrayField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceArrayField;\n","import React from 'react';\nimport { ReferenceField as RaReferenceField } from 'react-admin';\n\nconst ReferenceField = ({ record, source, ...otherProps }) => {\n if (record[source]) {\n if (typeof record[source] === 'object') {\n record[source] = record[source]['@id'] || record[source].id;\n }\n }\n return <RaReferenceField record={record} source={source} {...otherProps} />;\n};\n\nReferenceField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceField;\n","import React, { useState, useEffect } from 'react';\n\n/**\n * @example\n * <Show>\n * <FilterHandler\n * source=\"property\" // ex pair:organizationOfMembership\n * filter={{\n * 'propertyToFilter':'value'\n * }} // ex {{'pair:membershipRole':'http://localhost:3000/membership-roles/role-1'}}\n * >\n * <SingleFieldList>\n * </SingleFieldList>\n * </FilterHandler>\n * </Show>\n */\n\nconst FilterHandler = ({ children, record, filter, source, ...otherProps }) => {\n const [filtered, setFiltered] = useState();\n useEffect(() => {\n if (record && source && Array.isArray(record?.[source])) {\n const filteredData = record?.[source].filter(r => {\n let eq = true;\n for (const key in filter) {\n const value = r[key];\n if (Array.isArray(value)) {\n if (!value.includes(filter[key])) {\n eq = false;\n }\n } else {\n if (value !== filter[key]) {\n eq = false;\n }\n }\n }\n return eq;\n });\n let newRecord = {\n ...record\n };\n //undefined setted if no data to obtain no render in RightLabel or equivalent\n newRecord[source] = filteredData.length > 0 ? filteredData : undefined;\n setFiltered(newRecord);\n }\n }, [record, source, filter]);\n\n return (\n <>\n {React.Children.map(children, (child, i) => {\n return React.cloneElement(child, {\n ...otherProps,\n record: filtered,\n addLabel: true,\n source\n });\n })}\n </>\n );\n};\nexport default FilterHandler;\n","import React from 'react';\nimport { useQueryWithStore } from 'react-admin';\nimport { default as FilterHandler } from './FilterHandler';\n\n/*\n * @example Label used in examples\n * const Label = ({label, ...otherProps})=>{\n * return <h2>{label}</h2>\n * }\n *\n * @example show header for each group with group property thanks to groupHeader\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupHeader={({group,...otherProps}) => <Label {...otherProps} label={group['pair:label']}></Label> }\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </GroupedReferenceHandler>\n *\n * @example call chhildren with label thanks to groupLabel\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupLabel=\"property of RAresource display\" // property of React-Admin resource to display. children call whith props \"label\" filled by groupLabel property of groupReference\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <Label>\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </GroupedReferenceHandler>\n *\n * @example conditional show of group if no data in source. Conditionale groupHeader is not possible because GroupedArrayField define group before filter ; need use chhildren.\n * const ConditionalSourceDefinedHandler = ({record,source,children,...otherProps})=>{\n * if (record?.[source] && (!Array.isArray(record[source])||record[source].length>0)){\n * return React.Children.map(children, (child, i) => {\n * return React.cloneElement(child, {...otherProps,record,source});\n * })\n * }else{\n * return <></>\n * }\n * }\n *\n * <GroupedReferenceHandler\n * source=\"property\" // predicat of main record to show / ex pair:organizationOfMembership\n * groupReference=\"RAresource\" // React-Admin resource reference. this is the \"group by\" ressource. / ex MembershipRole\n * groupLabel=\"property of RAresource display\" // property of React-Admin resource to display. children call whith props \"label\" filled by groupLabel property of groupReference\n * filterProperty=\"property of source filtered by groupReference\"\n * addLabel={false}\n * >\n * <ConditionalSourceDefinedHandler>\n * <Label>\n * <ArrayField source=\"property\"> // same props as GroupedArrayField source\n * <GridList>\n * </GridList>\n * </ArrayField>\n * </ConditionalSourceDefinedHandler>\n * </GroupedReferenceHandler>\n *\n *\n */\nconst GroupedReferenceHandler = ({\n children,\n groupReference,\n groupLabel,\n groupHeader,\n filterProperty,\n ...otherProps\n}) => {\n const { data } = useQueryWithStore({\n type: 'getList',\n resource: groupReference,\n payload: {}\n });\n\n return (\n <>\n {data?.map((data, index) => {\n let filter = {};\n filter[filterProperty] = data.id;\n return (\n <>\n {groupHeader && groupHeader({ ...otherProps, group: data })}\n <FilterHandler {...otherProps} filter={filter} label={data[groupLabel]}>\n {children}\n </FilterHandler>\n </>\n );\n })}\n </>\n );\n};\n\nexport default GroupedReferenceHandler;\n","import React from 'react';\nimport { DateTimeInput as RaDateTimeInput } from 'react-admin';\n\n/**\n * @deprecated Use the component from the @semapps/date-components instead\n */\nconst DateTimeInput = props => (\n <RaDateTimeInput {...props} format={value => value && value.replace(' ', 'T').replace('Z', '')} />\n);\n\nexport default DateTimeInput;\n","import React from 'react';\nimport { ReferenceArrayInput as RaReferenceArrayInput, useResourceContext } from 'react-admin';\n\nconst ReferenceArrayInput = props => {\n const resource = useResourceContext({});\n return (\n <RaReferenceArrayInput\n {...props}\n resource={resource}\n format={value => {\n // If there is no value, return immediately\n if (!value) return value;\n // if the linked field value is not an array, turns it into an array.\n // Necessary as JSON-LD are sometimes arrays, sometimes not (when there is one value)\n // and the ReferenceArrayInput component only accept arrays\n if (!Array.isArray(value)) value = [value];\n // If a format prop was defined, apply it to the array\n if (props.format) value = props.format(value);\n // If the values are objects with @id field, turn it to a simple string\n return value.map(v => (typeof v === 'object' ? v.id || v['@id'] : v));\n }}\n />\n );\n};\n\nexport default ReferenceArrayInput;\n","import React from 'react';\nimport { ReferenceInput as RaReferenceInput, useResourceContext } from 'react-admin';\n\nconst ReferenceInput = props => {\n const resource = useResourceContext({});\n return (\n <RaReferenceInput\n {...props}\n resource={resource}\n format={value => {\n // If there is no value, return immediately\n if (!value) return value;\n // If a format prop was defined, apply it\n if (props.format) value = props.format(value);\n // If the value is an object with an @id field, return the uri\n return typeof value === 'object' ? value.id || value['@id'] : value;\n }}\n />\n );\n};\n\nexport default ReferenceInput;\n","import React, { useEffect, useState } from 'react';\nimport { ArrayInput, SimpleFormIterator, TextInput } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useReferenceInputStyles = makeStyles({\n form: {\n display: 'flex'\n },\n input: {\n paddingRight: '20px'\n }\n});\n\nconst useHideInputStyles = makeStyles({\n root: {\n display: 'none'\n }\n});\n\nconst ReificationArrayInput = props => {\n const { reificationClass, children, ...otherProps } = props;\n const flexFormClasses = useReferenceInputStyles();\n const hideInputStyles = useHideInputStyles();\n\n return (\n <ArrayInput {...otherProps}>\n <SimpleFormIterator classes={{ form: flexFormClasses.form }}>\n {React.Children.map(props.children, (child, i) => {\n return React.cloneElement(child, {\n className: flexFormClasses.input\n });\n })}\n <TextInput className={hideInputStyles.root} source=\"type\" initialValue={reificationClass} />\n </SimpleFormIterator>\n </ArrayInput>\n );\n};\n\nexport default ReificationArrayInput;\n","import { useContext, useState, useEffect } from 'react';\nimport { DataProviderContext } from 'react-admin';\n\nconst useCreateContainer = resourceId => {\n // Get the raw data provider, since useDataProvider returns a wrapper\n const dataProvider = useContext(DataProviderContext);\n const [createContainer, setCreateContainer] = useState();\n\n useEffect(() => {\n if (resourceId) {\n dataProvider.getCreateContainer(resourceId).then(containerUri => setCreateContainer(containerUri));\n }\n }, [resourceId]);\n\n return createContainer;\n};\n\nexport default useCreateContainer;\n","const getServerKeyFromType = (type, dataServers) => {\n return Object.keys(dataServers).find(key => {\n return dataServers[key][type];\n });\n};\n\nexport default getServerKeyFromType;\n","// Return the first server matching with the baseUrl\nconst getServerKeyFromUri = (uri, dataServers) => {\n return Object.keys(dataServers).find(key => {\n return uri.startsWith(dataServers[key].baseUrl);\n });\n};\n\nexport default getServerKeyFromUri;\n","import getServerKeyFromType from './getServerKeyFromType';\nimport getServerKeyFromUri from './getServerKeyFromUri';\nimport jsonld from 'jsonld';\n\nconst fetchResource = async (resourceUri, config) => {\n const { dataServers, httpClient, jsonContext } = config;\n\n const authServerKey = getServerKeyFromType('authServer', dataServers);\n const serverKey = getServerKeyFromUri(resourceUri, dataServers);\n\n // Fetch through proxy server if it is available\n let { json: data } =\n serverKey !== authServerKey && dataServers[authServerKey]?.proxyUrl && dataServers[serverKey]?.noProxy !== true\n ? await httpClient(dataServers[authServerKey].proxyUrl, {\n method: 'POST',\n headers: new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }),\n body: new URLSearchParams({ id: resourceUri })\n })\n : await httpClient(resourceUri, {\n noToken: serverKey !== authServerKey\n });\n\n data.id = data.id || data['@id'];\n\n // We compact only if the context is different between the frontend and the middleware\n // TODO deep compare if the context is an object\n if (data['@context'] !== jsonContext) {\n data = await jsonld.compact(data, jsonContext);\n }\n\n return data;\n};\n\nexport default fetchResource;\n","import fetchResource from '../utils/fetchResource';\n\nconst getOneMethod = config => async (resourceId, params) => {\n const { resources } = config;\n const dataModel = resources[resourceId];\n\n if (!dataModel) throw new Error(`Resource ${resourceId} is not mapped in resources file`);\n\n const data = await fetchResource(params.id, config);\n\n // Transform single value into array if forceArray is set\n if (dataModel.list?.forceArray) {\n for (const forceArrayItem of dataModel.list?.forceArray) {\n if (data[forceArrayItem] && !Array.isArray(data[forceArrayItem])) {\n data[forceArrayItem] = [data[forceArrayItem]];\n }\n }\n }\n\n if (dataModel.list?.dereference) {\n for (const dereferenceItem of dataModel.list?.dereference) {\n if (\n data[dereferenceItem] &&\n typeof data[dereferenceItem] === 'string' &&\n data[dereferenceItem].startsWith('http')\n ) {\n try {\n const dataToEmbed = await fetchResource(data[dereferenceItem], config);\n delete dataToEmbed['@context'];\n data[dereferenceItem] = dataToEmbed;\n } catch (e) {\n // Ignore errors (this may happen if user does not have rights to see the resource)\n }\n }\n }\n }\n\n return { data: data };\n};\n\nexport default getOneMethod;\n","(function (name, context, definition) {\n if (typeof module !== 'undefined' && module.exports) module.exports = definition();\n else if (typeof define === 'function' && define.amd) define(definition);\n else context[name] = definition();\n})('urljoin', this, function () {\n\n function normalize (strArray) {\n var resultArray = [];\n if (strArray.length === 0) { return ''; }\n\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n var first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (var i = 0; i < strArray.length; i++) {\n var component = strArray[i];\n\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n\n if (component === '') { continue; }\n\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[\\/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[\\/]+$/, '/');\n }\n\n resultArray.push(component);\n\n }\n\n var str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n var parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n return str;\n }\n\n return function () {\n var input;\n\n if (typeof arguments[0] === 'object') {\n input = arguments[0];\n } else {\n input = [].slice.call(arguments);\n }\n\n return normalize(input);\n };\n\n});\n","import createSlug from 'speakingurl';\nimport urlJoin from 'url-join';\n\nexport const getSlugWithExtension = fileName => {\n let fileExtension = '';\n let splitFileName = fileName.split('.');\n if (splitFileName.length > 1) {\n fileExtension = splitFileName.pop();\n fileName = splitFileName.join('.');\n }\n return createSlug(fileName, { lang: 'fr' }) + '.' + fileExtension;\n};\n\nexport const isFile = o => o && o.rawFile && o.rawFile instanceof File;\n\nconst getUploadsContainerUri = config => {\n const serverKey = Object.keys(config.dataServers).find(key => config.dataServers[key].uploadsContainer);\n if (serverKey) {\n return urlJoin(config.dataServers[serverKey].baseUrl, config.dataServers[serverKey].uploadsContainer);\n }\n};\n\nconst uploadFile = async (rawFile, config) => {\n const uploadsContainerUri = getUploadsContainerUri(config);\n if (!uploadsContainerUri) throw new Error(\"You must define an uploadsContainer in one of the server's configuration\");\n\n const response = await config.httpClient(uploadsContainerUri, {\n method: 'POST',\n body: rawFile,\n headers: new Headers({\n // We must sluggify the file name, because we can't use non-ASCII characters in the header\n // However we keep the extension apart (if it exists) so that it is not replaced with a -\n // TODO let the middleware guess the extension based on the content type\n Slug: getSlugWithExtension(rawFile.name),\n 'Content-Type': rawFile.type\n })\n });\n\n if (response.status === 201) {\n return response.headers.get('Location');\n }\n};\n\n/*\n * Look for raw files in the record data.\n * If there are any, upload them and replace the file by its URL.\n */\nconst uploadAllFiles = async (record, config) => {\n for (let property in record) {\n if (record.hasOwnProperty(property)) {\n if (Array.isArray(record[property])) {\n for (let i = 0; i < record[property].length; i++) {\n if (isFile(record[property][i])) {\n record[property][i] = await uploadFile(record[property][i].rawFile, config);\n }\n }\n } else {\n if (isFile(record[property])) {\n record[property] = await uploadFile(record[property].rawFile, config);\n }\n }\n }\n }\n return record;\n};\n\nexport default uploadAllFiles;\n","import urlJoin from 'url-join';\n\nconst findContainersWithTypes = (types, servers, dataServers) => {\n let containers = {};\n let existingContainers = [];\n Object.keys(dataServers).forEach(key1 => {\n Object.keys(dataServers[key1].containers).forEach(key2 => {\n if (!servers || (Array.isArray(servers) ? servers.includes(key2) : servers === key2)) {\n Object.keys(dataServers[key1].containers[key2]).forEach(type => {\n if (types.includes(type)) {\n dataServers[key1].containers[key2][type].map(path => {\n const containerUri = urlJoin(dataServers[key2].baseUrl, path);\n\n // Avoid returning the same container several times\n if (!existingContainers.includes(containerUri)) {\n existingContainers.push(containerUri);\n\n if (!containers[key1]) containers[key1] = [];\n containers[key1].push(containerUri);\n }\n });\n }\n });\n }\n });\n });\n return containers;\n};\n\nexport default findContainersWithTypes;\n","import getOne from './getOne';\nimport uploadAllFiles from '../utils/uploadAllFiles';\nimport findContainersWithTypes from '../utils/findContainersWithTypes';\nimport getServerKeyFromUri from '../utils/getServerKeyFromUri';\n\nconst createMethod = config => async (resourceId, params) => {\n const { dataServers, resources, httpClient, jsonContext } = config;\n const dataModel = resources[resourceId];\n\n if (!dataModel) Error(`Resource ${resourceId} is not mapped in resources file`);\n\n const headers = new Headers();\n\n if (dataModel.fieldsMapping?.title) {\n headers.set('Slug', params.data[dataModel.fieldsMapping?.title]);\n }\n\n let containerUri, serverKey;\n if (dataModel.create?.container) {\n containerUri = dataModel.create?.container;\n serverKey = getServerKeyFromUri(containerUri, dataServers);\n } else {\n serverKey =\n dataModel.create?.server || Object.keys(config.dataServers).find(key => config.dataServers[key].default === true);\n if (!serverKey) throw new Error('You must define a server for the creation, or a container, or a default server');\n\n const containers = findContainersWithTypes(dataModel.types, [serverKey], dataServers);\n // Extract the containerUri from the results (and ensure there is only one)\n const serverKeys = Object.keys(containers);\n\n if (!serverKeys || serverKeys.length === 0)\n throw new Error(`No container with types ${JSON.stringify(dataModel.types)} found on server ${serverKey}`);\n if (serverKeys.length > 1 || containers[serverKeys[0]].length > 1)\n throw new Error(\n `More than one container detected with types ${JSON.stringify(dataModel.types)} on server ${serverKey}`\n );\n containerUri = containers[serverKeys[0]][0];\n }\n\n // Upload files, if there are any\n params.data = await uploadAllFiles(params.data, config);\n\n const { headers: responseHeaders } = await httpClient(containerUri, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n '@context': jsonContext,\n '@type': dataModel.types,\n ...params.data\n }),\n noToken: dataServers[serverKey].authServer !== true\n });\n\n // Retrieve newly-created resource\n const resourceUri = responseHeaders.get('Location');\n return await getOne(config)(resourceId, { id: resourceUri });\n};\n\nexport default createMethod;\n","import getServerKeyFromUri from '../utils/getServerKeyFromUri';\n\nconst deleteMethod = config => async (resourceId, params) => {\n const { dataServers, httpClient } = config;\n const serverKey = getServerKeyFromUri(params.id, dataServers);\n\n await httpClient(params.id, {\n method: 'DELETE',\n noToken: !serverKey || dataServers[serverKey].authServer !== true\n });\n\n return { data: { id: params.id } };\n};\n\nexport default deleteMethod;\n","const deleteManyMethod = config => async (resourceId, params) => {\n const { httpClient } = config;\n let ids = [];\n\n for (let id of params.ids) {\n try {\n await httpClient(id, {\n method: 'DELETE'\n });\n ids.push(id);\n } catch (e) {\n // Do nothing if we fail to delete a resource\n }\n }\n\n return { data: ids };\n};\n\nexport default deleteManyMethod;\n","import urlJoin from 'url-join';\nimport getServerKeyFromType from '../utils/getServerKeyFromType';\n\nconst findCreateContainerWithTypes = (types, createServerKey, dataServers) => {\n let containers = [];\n Object.keys(dataServers[createServerKey].containers[createServerKey]).forEach(type => {\n if (types.includes(type)) {\n dataServers[createServerKey].containers[createServerKey][type].map(path => {\n const containerUri = urlJoin(dataServers[createServerKey].baseUrl, path);\n if (!containers.includes(containerUri)) {\n containers.push(containerUri);\n }\n });\n }\n });\n\n if (containers.length === 0) {\n throw new Error(\n `No container found matching with types ${JSON.stringify(\n types\n )}. You can set explicitely the create.container property of the resource.`\n );\n } else if (containers.length > 1) {\n throw new Error(\n `More than one container found matching with types ${JSON.stringify(\n types\n )}. You must set the create.server or create.container property for the resource.`\n );\n }\n\n return containers[0];\n};\n\nconst getCreateContainer = config => resourceId => {\n let { dataServers, resources } = config;\n const dataModel = resources[resourceId];\n\n if (!dataModel) throw new Error(`Resource ${resourceId} is not mapped in resources file`);\n\n if (dataModel.create?.container) {\n return dataModel.create?.container;\n } else if (dataModel.create?.server) {\n return findCreateContainerWithTypes(dataModel.types, dataModel.create?.server, dataServers);\n } else {\n const defaultServerKey = getServerKeyFromType('default', dataServers);\n return findCreateContainerWithTypes(dataModel.types, defaultServerKey, dataServers);\n }\n};\n\nexport default getCreateContainer;\n","import jsonld from 'jsonld';\n\nexport const isType = (type, resource) => {\n const resourceType = resource.type || resource['@type'];\n return Array.isArray(resourceType) ? resourceType.includes(type) : resourceType === type;\n};\n\nconst fetchContainers = async (containers, resourceId, params, config) => {\n const { dataServers, httpClient, jsonContext } = config;\n\n // Transform in an containerUri:serverKey object\n const containersServers = Object.keys(containers).reduce(\n (acc, serverKey) => ({\n ...acc,\n ...Object.fromEntries(containers[serverKey].map(containerUri => [containerUri, serverKey]))\n }),\n {}\n );\n\n const fetchPromises = Object.keys(containersServers).map(containerUri =>\n httpClient(containerUri, {\n noToken: !containersServers[containerUri] || dataServers[containersServers[containerUri]].authServer !== true\n })\n .then(({ json }) => {\n // If container's context is different, compact it to have an uniform result\n // TODO deep compare if the context is an object\n if (json['@context'] !== jsonContext) {\n return jsonld.compact(json, jsonContext);\n } else {\n return json;\n }\n })\n .then(json => {\n if (isType('ldp:Container', json)) {\n return json['ldp:contains'];\n } else {\n throw new Error(containerUri + ' is not a LDP container');\n }\n })\n );\n\n // Fetch simultaneously all containers\n let results = await Promise.all(fetchPromises);\n\n if (results.length === 0) {\n return { data: [], total: 0 };\n } else {\n // Merge all results in one array\n results = [].concat.apply(...results);\n\n let returnData = results.map(item => {\n item.id = item.id || item['@id'];\n return item;\n });\n\n // Apply filter to results\n if (params.filter) {\n // For SPARQL queries, we use \"a\" to filter types, but in containers it must be \"type\"\n if (params.filter.a) {\n params.filter.type = params.filter.a;\n delete params.filter.a;\n }\n\n // Remove search params from filter\n if (params.filter.q) {\n delete params.filter.q;\n }\n if (Object.keys(params.filter).length > 0) {\n returnData = returnData.filter(resource =>\n Object.entries(params.filter).some(([k, v]) =>\n Array.isArray(resource[k]) ? resource[k].includes(v) : resource[k] === v\n )\n );\n }\n }\n\n if (params.sort) {\n returnData = returnData.sort((a, b) => {\n if (a[params.sort.field] && b[params.sort.field]) {\n if (params.sort.order === 'ASC') {\n return a[params.sort.field].localeCompare(b[params.sort.field]);\n } else {\n return b[params.sort.field].localeCompare(a[params.sort.field]);\n }\n } else {\n return true;\n }\n });\n }\n if (params.pagination) {\n returnData = returnData.slice(\n (params.pagination.page - 1) * params.pagination.perPage,\n params.pagination.page * params.pagination.perPage\n );\n }\n\n return { data: returnData, total: results.length };\n }\n};\n\nexport default fetchContainers;\n","const getEmbedFrame = paths => {\n let embedFrame = {},\n predicates;\n if (paths) {\n for (let path of paths) {\n if (path.includes('/')) {\n predicates = path.split('/').reverse();\n } else {\n predicates = [path];\n }\n embedFrame = {\n ...embedFrame,\n ...predicates.reduce(\n (accumulator, predicate) => ({\n [predicate]: {\n '@embed': '@last',\n ...accumulator\n }\n }),\n {}\n )\n };\n }\n return embedFrame;\n }\n};\n\nexport default getEmbedFrame;\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working varialbes\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));","import md5 from 'crypto-js/md5';\nimport DataFactory from '@rdfjs/data-model';\nconst { namedNode, quad, variable } = DataFactory;\n\n// Transform ['ont:predicate1/ont:predicate2'] to ['ont:predicate1', 'ont:predicate1/ont:predicate2']\nconst extractNodes = predicates => {\n let nodes = [];\n if (predicates) {\n for (let predicate of predicates) {\n if (predicate.includes('/')) {\n const nodeNames = predicate.split('/');\n for (let i = 1; i <= nodeNames.length; i++) {\n nodes.push(nodeNames.slice(0, i).join('/'));\n }\n } else {\n nodes.push(predicate);\n }\n }\n }\n return nodes;\n};\n\nconst generateSparqlVarName = node => md5(node);\n\nconst getParentNode = node => node.includes('/') && node.split('/')[0];\n\nconst getPredicate = node => (node.includes('/') ? node.split('/')[1] : node);\n\nconst buildOptionalQuery = (queries, parentNode = false) =>\n queries\n .filter(q => q.parentNode === parentNode)\n .map(q => ({\n type: 'optional',\n patterns: [\n {\n type: 'bgp',\n triples: q.query\n },\n buildOptionalQuery(queries, q.node)\n ]\n }));\n\nconst buildDereferenceQuery = (predicates, ontologies) => {\n let queries = [];\n const nodes = extractNodes(predicates);\n\n if (nodes && ontologies && ontologies.length > 0) {\n for (let node of nodes) {\n const parentNode = getParentNode(node);\n const predicate = getPredicate(node);\n const varName = generateSparqlVarName(node);\n const parentVarName = parentNode ? generateSparqlVarName(parentNode) : '1';\n const filterPrefix = predicate.split(':')[0];\n const filterValue = predicate.split(':')[1];\n const filterOntology = ontologies.find(ontology => ontology.prefix === filterPrefix);\n const query = [\n quad(variable('s' + parentVarName), namedNode(filterOntology.url + filterValue), variable('s' + varName)),\n quad(variable('s' + varName), variable('p' + varName), variable('o' + varName))\n ];\n\n queries.push({\n node,\n parentNode,\n query: query,\n filter: '' // `FILTER(isBLANK(?s${varName})) .`\n });\n }\n return {\n construct: queries.length > 0 ? queries.map(q => q.query).reduce((pre, cur) => pre.concat(cur)) : null,\n where: buildOptionalQuery(queries)\n };\n } else {\n return {\n construct: '',\n where: ''\n };\n }\n};\n\nexport default buildDereferenceQuery;\n","import buildDereferenceQuery from './buildDereferenceQuery';\nimport DataFactory from '@rdfjs/data-model';\nconst { literal, namedNode, quad, variable } = DataFactory;\n\n// Regenerate a SPARQL query from a JSON object\nlet SparqlGenerator = require('sparqljs').Generator;\nlet generator = new SparqlGenerator({\n /* prefixes, baseIRI, factory, sparqlStar */\n});\n\nconst buildSparqlQuery = ({ containers, params: { filter }, dereference, ontologies }) => {\n // sparqljsParams : init CONSTRUCT clause\n let sparqljsParams = {\n queryType: 'CONSTRUCT',\n template: [quad(variable('s1'), variable('p1'), variable('o1'))],\n where: [\n {\n type: 'bgp',\n triples: [quad(variable('s1'), variable('p1'), variable('o1'))]\n },\n {\n type: 'filter',\n expression: {\n type: 'operation',\n operator: 'isiri',\n args: [variable('s1')]\n }\n },\n {\n type: 'filter',\n expression: {\n type: 'operation',\n operator: 'in',\n args: [variable('containerUri'), containers.map(containerUri => namedNode(containerUri))]\n }\n },\n {\n type: 'bgp',\n triples: [quad(variable('containerUri'), namedNode('http://www.w3.org/ns/ldp#contains'), variable('s1'))]\n }\n ],\n type: 'query',\n prefixes: {}\n };\n\n // sparqljsParams : prefixes property fill from ontologies\n ontologies.map(ontology => {\n sparqljsParams.prefixes = {\n ...sparqljsParams.prefixes,\n [ontology.prefix]: ontology.url\n };\n });\n\n // sparqljsParams : build dereference\n const dereferenceQueryForSparqlJs = buildDereferenceQuery(dereference, ontologies);\n if (dereferenceQueryForSparqlJs && dereferenceQueryForSparqlJs.construct) {\n sparqljsParams.where = sparqljsParams.where.concat(dereferenceQueryForSparqlJs.where);\n sparqljsParams.template = sparqljsParams.template.concat(dereferenceQueryForSparqlJs.construct);\n }\n\n // sparqljsParams : check for filters\n if (filter && Object.keys(filter).length > 0) {\n const isSPARQLFilter = filter.sparqlWhere && Object.keys(filter.sparqlWhere).length > 0;\n const isQFilter = filter.q && filter.q.length > 0;\n\n // sparqljs filter \"sparqlWhere\" :\n if (isSPARQLFilter) {\n /* \n Example of sparqlWhere usage : \n - url :\n http://localhost:5000/Organization?filter=%7B%22q%22%3A%20%22orga%22%2C%22sparqlWhere%22%3A%20%7B%0A%22type%22%3A%20%22bgp%22%2C%0A%22triples%22%3A%20%5B%7B%0A%22subject%22%3A%20%7B%0A%22termType%22%3A%20%22Variable%22%2C%0A%22value%22%3A%20%22s1%22%0A%7D%2C%0A%22predicate%22%3A%20%7B%0A%22termType%22%3A%20%22NameNode%22%2C%0A%22value%22%3A%20%22http%3A%2F%2Fvirtual-assembly.org%2Fontologies%2Fpair%23label%22%0A%7D%2C%0A%22object%22%3A%20%7B%0A%22termType%22%3A%20%22Literal%22%2C%0A%22value%22%3A%20%22orga2%22%0A%7D%0A%7D%5D%0A%7D%7D\n - json :\n {\n \"q\": \"orga\",\n \"sparqlWhere\": {\n \"type\": \"bgp\",\n \"triples\": [{\n \"subject\": {\"termType\": \"Variable\",\"value\": \"s1\"},\n \"predicate\": {\"termType\": \"NameNode\",\"value\": \"http://virtual-assembly.org/ontologies/pair#label\"},\n \"object\": {\"termType\": \"Literal\",\"value\": \"orga2\"}\n }]\n }\n }\n */\n sparqljsParams.where.push(filter.sparqlWhere);\n }\n\n // sparqljs filter \"q\" (full-text search) :\n if (isQFilter) {\n sparqljsParams.where.push({\n type: 'group',\n patterns: [\n {\n queryType: 'SELECT',\n variables: [variable('s1')],\n where: [\n {\n type: 'bgp',\n triples: [quad(variable('s1'), variable('p1'), variable('o1'))]\n },\n {\n type: 'filter',\n expression: {\n type: 'operation',\n operator: 'regex',\n args: [\n {\n type: 'operation',\n operator: 'lcase',\n args: [\n {\n type: 'operation',\n operator: 'str',\n args: [variable('o1')]\n }\n ]\n },\n literal(filter.q.toLowerCase(), '', namedNode('http://www.w3.org/2001/XMLSchema#string'))\n ]\n }\n },\n {\n type: 'filter',\n expression: {\n type: 'operation',\n operator: 'notexists',\n args: [\n {\n type: 'bgp',\n triples: [\n quad(\n variable('s1'),\n namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),\n variable('o1')\n )\n ]\n }\n ]\n }\n }\n ],\n type: 'query'\n }\n ]\n });\n }\n\n // sparqljs \"a\" and other filters :\n // SPARQL keyword a = filter based on the class of a resource (example => 'a': 'pair:OrganizationType')\n // Other filters are based on a value (example => 'petr:hasAudience': 'http://localhost:3000/audiences/tout-public')\n Object.keys(filter).forEach(filterKey => {\n if (filterKey !== 'sparqlWhere' && filterKey !== 'q') {\n const filterItem = filterKey === 'a' ? filter[filterKey] : filterKey;\n const filterPrefix = filterItem.split(':')[0];\n const filterValue = filterItem.split(':')[1];\n const filterOntology = ontologies.find(ontology => ontology.prefix === filterPrefix);\n const filterPredicateValue =\n filterKey === 'a' ? 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type' : filterOntology.url + filterValue;\n const filterObjectValue = filterKey === 'a' ? filterOntology.url + filterValue : filter[filterKey];\n\n sparqljsParams.where.push({\n type: 'bgp',\n triples: [quad(variable('s1'), namedNode(filterPredicateValue), namedNode(filterObjectValue))]\n });\n }\n });\n }\n\n const sparqljsQuery = generator.stringify(sparqljsParams);\n\n if (filter.q) {\n delete filter.q;\n }\n\n return sparqljsQuery;\n};\n\nexport default buildSparqlQuery;\n","import getEmbedFrame from './getEmbedFrame';\nimport buildSparqlQuery from './buildSparqlQuery';\nimport jsonld from 'jsonld';\n\nconst fetchSparqlEndpoints = async (containers, resourceId, params, config) => {\n const { dataServers, resources, httpClient, jsonContext, ontologies } = config;\n const dataModel = resources[resourceId];\n\n const frame = {\n '@context': jsonContext,\n '@type': dataModel.types,\n // Embed only what we explicitly asked to dereference\n // Otherwise we may have same-type resources embedded in other resources\n '@embed': '@never',\n ...getEmbedFrame(dataModel.list?.dereference)\n };\n\n const sparqlQueryPromises = Object.keys(containers).map(\n serverKey =>\n new Promise((resolve, reject) => {\n const sparqlQuery = buildSparqlQuery({\n containers: containers[serverKey],\n params: { ...params, filter: { ...dataModel.list?.filter, ...params.filter } },\n dereference: dataModel.list?.dereference,\n ontologies\n });\n\n httpClient(dataServers[serverKey].sparqlEndpoint, {\n method: 'POST',\n body: sparqlQuery,\n noToken: dataServers[serverKey].authServer !== true\n })\n .then(({ json }) => {\n // omitGraph option force results to be in a @graph, even if we have a single result\n return jsonld.frame(json, frame, { omitGraph: false });\n })\n .then(compactJson => {\n resolve(compactJson['@graph'] || []);\n })\n .catch(e => reject(e));\n })\n );\n\n // Run simultaneous SPARQL queries\n let results = await Promise.all(sparqlQueryPromises);\n\n if (results.length === 0) {\n return { data: [], total: 0 };\n } else {\n // Merge all results in one array\n results = [].concat.apply(...results);\n\n // Add id in addition to @id, as this is what React-Admin expects\n let returnData = results.map(item => {\n item.id = item.id || item['@id'];\n return item;\n });\n\n // TODO sort and paginate the results in the SPARQL query to improve performances\n if (params.sort) {\n returnData = returnData.sort((a, b) => {\n if (a[params.sort.field] && b[params.sort.field]) {\n if (params.sort.order === 'ASC') {\n return a[params.sort.field].localeCompare(b[params.sort.field]);\n } else {\n return b[params.sort.field].localeCompare(a[params.sort.field]);\n }\n } else {\n return true;\n }\n });\n }\n if (params.pagination) {\n returnData = returnData.slice(\n (params.pagination.page - 1) * params.pagination.perPage,\n params.pagination.page * params.pagination.perPage\n );\n }\n\n return { data: returnData, total: results.length };\n }\n};\n\nexport default fetchSparqlEndpoints;\n","import urlJoin from 'url-join';\n\nconst findContainersWithPaths = (paths, dataServers) => {\n let containers = {};\n Object.keys(paths).forEach(serverKey => {\n if (dataServers[serverKey]) {\n containers[serverKey] = [];\n paths[serverKey].forEach(path => {\n containers[serverKey].push(urlJoin(dataServers[serverKey].baseUrl, path));\n });\n } else {\n throw new Error('No server found with key ' + serverKey);\n }\n });\n return containers;\n};\n\nexport default findContainersWithPaths;\n","import findContainersWithTypes from '../utils/findContainersWithTypes';\nimport fetchContainers from '../utils/fetchContainers';\nimport fetchSparqlEndpoints from '../utils/fetchSparqlEndpoints';\nimport findContainersWithPaths from '../utils/findContainersWithPath';\n\nconst getListMethod = config => async (resourceId, params = {}) => {\n let { dataServers, resources } = config;\n const dataModel = resources[resourceId];\n\n if (!dataModel) throw new Error(`Resource ${resourceId} is not mapped in resources file`);\n\n let containers;\n if (dataModel.list?.containers && Object.keys(dataModel.list.containers).length > 0) {\n // If containers are set explicitly, use them\n containers = findContainersWithPaths(dataModel.list.containers, dataServers);\n } else {\n containers = findContainersWithTypes(dataModel.types, dataModel.list?.servers, dataServers);\n }\n\n console.log('containers', containers);\n\n if (dataModel.list?.fetchContainer) {\n return fetchContainers(containers, resourceId, params, config);\n } else {\n return fetchSparqlEndpoints(containers, resourceId, params, config);\n }\n};\n\nexport default getListMethod;\n","import getOne from './getOne';\n\nconst getManyMethod = config => async (resourceId, params) => {\n const { returnFailedResources } = config;\n\n let returnData = [];\n\n for (let id of params.ids) {\n id = typeof id === 'object' ? id['@id'] : id;\n\n try {\n const { data } = await getOne(config)(resourceId, { id });\n returnData.push(data);\n } catch (e) {\n // Catch if one resource fails to load\n // Otherwise no references will be show if only one is missing\n // See https://github.com/marmelab/react-admin/issues/5190\n if (returnFailedResources) {\n // Return only the ID of the resource\n returnData.push({ id });\n } else {\n // Do nothing. The resource will not appear in the results.\n }\n }\n }\n\n return { data: returnData };\n};\n\nexport default getManyMethod;\n","import getList from './getList';\n\nconst getManyReferenceMethod = config => async (resourceId, params) => {\n params.filter = { ...params.filter, [params.target]: params.id };\n delete params.target;\n return await getList(config)(resourceId, params);\n};\n\nexport default getManyReferenceMethod;\n","import uploadAllFiles from '../utils/uploadAllFiles';\nimport getServerKeyFromUri from '../utils/getServerKeyFromUri';\n\nconst updateMethod = config => async (resourceId, params) => {\n const { dataServers, httpClient, jsonContext } = config;\n const serverKey = getServerKeyFromUri(params.id, dataServers);\n\n // Upload files, if there are any\n params.data = await uploadAllFiles(params.data, config);\n\n await httpClient(params.id, {\n method: 'PUT',\n body: JSON.stringify({\n '@context': jsonContext,\n ...params.data\n }),\n noToken: !serverKey || dataServers[serverKey].authServer !== true\n });\n\n return { data: params.data };\n};\n\nexport default updateMethod;\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import jwtDecode from 'jwt-decode';\nimport getServerKeyFromType from './getServerKeyFromType';\nimport urlJoin from 'url-join';\n\nconst fetchUserConfig = async config => {\n const { dataServers, httpClient } = config;\n const token = localStorage.getItem('token');\n const podKey = getServerKeyFromType('pod', dataServers);\n const authServerKey = getServerKeyFromType('authServer', dataServers);\n\n // If the user is logged in\n if (token) {\n const { webId } = jwtDecode(token);\n let userData;\n\n try {\n const { json } = await httpClient(webId);\n userData = json;\n } catch (e) {\n console.error(e);\n // If the webId cannot be fetched, assume an invalid token and disconnect the user\n localStorage.removeItem('token');\n window.location.reload();\n return;\n }\n\n // If we have a POD server\n if (podKey) {\n // Fill the config provided to the data provider\n // We must modify the config object directly\n config.dataServers[podKey].name = 'My Pod';\n config.dataServers[podKey].baseUrl = urlJoin(webId, 'data'); // TODO find POD URI from user profile\n config.dataServers[podKey].sparqlEndpoint =\n userData.endpoints?.['void:sparqlEndpoint'] || urlJoin(webId, 'sparql');\n }\n\n if (authServerKey) {\n // Fill the config provided to the data provider\n // We must modify the config object directly\n config.dataServers[authServerKey].proxyUrl = userData.endpoints?.proxyUrl;\n }\n } else {\n if (podKey) {\n // If the user is not logged in, ignore the POD server\n delete config.dataServers[podKey];\n }\n }\n};\n\nexport default fetchUserConfig;\n","const fetchVoidEndpoints = async config => {\n const fetchPromises = Object.values(config.dataServers)\n .filter(server => server.pod !== true)\n .map(server =>\n config\n .httpClient(new URL('/.well-known/void', server.baseUrl))\n .then(result => ({ data: result.json }))\n .catch(e => {\n if (e.status === 404) {\n return { error: e };\n } else {\n throw e;\n }\n })\n );\n\n try {\n const results = await Promise.all(fetchPromises);\n for (let result of results) {\n // Ignore unfetchable endpoints\n if (result.data) {\n // TODO modify config.dataServers based on the VOID configs returned\n }\n }\n } catch (e) {\n // Do not throw error if no endpoint found\n }\n};\n\nexport default fetchVoidEndpoints;\n","import createMethod from './methods/create';\nimport deleteMethod from './methods/delete';\nimport deleteManyMethod from './methods/deleteMany';\nimport getCreateContainerMethod from './methods/getCreateContainer';\nimport getListMethod from './methods/getList';\nimport getManyMethod from './methods/getMany';\nimport getManyReferenceMethod from './methods/getManyReference';\nimport getOneMethod from './methods/getOne';\nimport updateMethod from './methods/update';\nimport fetchUserConfig from './utils/fetchUserConfig';\nimport fetchVoidEndpoints from './utils/fetchVoidEndpoints';\nimport getServerKeyFromType from './utils/getServerKeyFromType';\n\nconst dataProvider = config => {\n // TODO verify all data provider config + data models\n if (!getServerKeyFromType('default', config.dataServers))\n throw new Error('You must define a default server in your dataServers config');\n\n if (!config.jsonContext) config.jsonContext = Object.fromEntries(config.ontologies.map(o => [o.prefix, o.url]));\n if (!config.returnFailedResources) config.returnFailedResources = false;\n\n const fetchUserConfigPromise = fetchUserConfig(config);\n const fetchVoidEndpointsPromise = fetchVoidEndpoints(config);\n\n const waitForVoidEndpoints = method => async (...arg) => {\n await fetchUserConfigPromise;\n await fetchVoidEndpointsPromise; // Return immediately if promise is fulfilled\n return await method(...arg);\n };\n\n return {\n getList: waitForVoidEndpoints(getListMethod(config)),\n getOne: waitForVoidEndpoints(getOneMethod(config)),\n getMany: waitForVoidEndpoints(getManyMethod(config)),\n getManyReference: waitForVoidEndpoints(getManyReferenceMethod(config)),\n create: waitForVoidEndpoints(createMethod(config)),\n update: waitForVoidEndpoints(updateMethod(config)),\n updateMany: () => {\n throw new Error('updateMany is not implemented yet');\n },\n delete: waitForVoidEndpoints(deleteMethod(config)),\n deleteMany: waitForVoidEndpoints(deleteManyMethod(config)),\n getCreateContainer: waitForVoidEndpoints(getCreateContainerMethod(config))\n };\n};\n\nexport default dataProvider;\n","import { fetchUtils } from 'react-admin';\n\nconst httpClient = (url, options = {}) => {\n if (!options.headers) options.headers = new Headers();\n\n switch (options.method) {\n case 'POST':\n case 'PATCH':\n case 'PUT':\n if (!options.headers.has('Accept')) options.headers.set('Accept', 'application/ld+json');\n if (!options.headers.has('Content-Type')) options.headers.set('Content-Type', 'application/ld+json');\n break;\n\n case 'DELETE':\n break;\n\n case 'GET':\n default:\n if (!options.headers.has('Accept')) options.headers.set('Accept', 'application/ld+json');\n break;\n }\n\n if (!options.noToken) {\n const token = localStorage.getItem('token');\n if (token) options.headers.set('Authorization', `Bearer ${token}`);\n }\n\n return fetchUtils.fetchJson(url, options);\n};\n\nexport default httpClient;\n"],"names":["ImageField","record","source","otherProps","React","RaImageField","ReferenceArrayField","Array","isArray","map","i","id","RaReferenceArrayField","defaultProps","addLabel","ReferenceField","_typeof","RaReferenceField","FilterHandler","children","filter","useState","filtered","setFiltered","useEffect","filteredData","r","eq","key","value","includes","newRecord","length","undefined","Children","child","cloneElement","GroupedReferenceHandler","groupReference","groupLabel","groupHeader","filterProperty","data","useQueryWithStore","type","resource","payload","index","group","label","DateTimeInput","props","RaDateTimeInput","format","replace","ReferenceArrayInput","useResourceContext","RaReferenceArrayInput","v","ReferenceInput","RaReferenceInput","useReferenceInputStyles","makeStyles","form","display","input","paddingRight","useHideInputStyles","root","ReificationArrayInput","reificationClass","flexFormClasses","hideInputStyles","ArrayInput","SimpleFormIterator","classes","className","TextInput","initialValue","useCreateContainer","resourceId","dataProvider","useContext","DataProviderContext","createContainer","setCreateContainer","getCreateContainer","then","containerUri","getServerKeyFromType","dataServers","Object","keys","find","getServerKeyFromUri","uri","startsWith","baseUrl","fetchResource","resourceUri","config","httpClient","jsonContext","authServerKey","serverKey","_dataServers$authServ","proxyUrl","noProxy","method","headers","Headers","body","URLSearchParams","noToken","json","jsonld","compact","getOneMethod","params","resources","dataModel","Error","list","_dataModel$list","forceArray","_dataModel$list2","forceArrayItem","_dataModel$list3","dereference","_dataModel$list4","dereferenceItem","dataToEmbed","context","definition","this","normalize","strArray","resultArray","TypeError","match","first","shift","component","push","str","join","parts","split","arguments","slice","call","module","exports","isFile","o","rawFile","File","getUploadsContainerUri","uploadsContainer","urlJoin","uploadFile","uploadsContainerUri","Slug","fileName","name","fileExtension","splitFileName","pop","createSlug","lang","response","status","get","uploadAllFiles","property","hasOwnProperty","findContainersWithTypes","types","servers","containers","existingContainers","forEach","key1","key2","path","createMethod","fieldsMapping","_dataModel$fieldsMapp","title","set","_dataModel$fieldsMapp2","create","_dataModel$create","container","_dataModel$create2","server","serverKeys","JSON","stringify","authServer","responseHeaders","getOne","deleteMethod","deleteManyMethod","ids","findCreateContainerWithTypes","createServerKey","_dataModel$create3","_dataModel$create4","defaultServerKey","fetchContainers","containersServers","reduce","acc","fromEntries","fetchPromises","resourceType","Promise","all","results","total","concat","apply","returnData","item","a","q","entries","some","k","sort","b","field","order","localeCompare","pagination","page","perPage","getEmbedFrame","paths","predicates","embedFrame","reverse","accumulator","predicate","CryptoJS","Math","crypto","window","self","globalThis","msCrypto","global","require","err","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","F","obj","subtype","prototype","C","C_lib","lib","Base","extend","overrides","mixIn","init","$super","instance","properties","propertyName","toString","clone","WordArray","words","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","j","ceil","random","nBytes","C_enc","enc","hexChars","bite","parse","hexStr","hexStrLength","parseInt","substr","Latin1","latin1Chars","String","fromCharCode","latin1Str","latin1StrLength","charCodeAt","Utf8","decodeURIComponent","escape","e","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","doFlush","processedWords","dataWords","dataSigBytes","blockSize","nBlocksReady","nWordsReady","max","_minBufferSize","nBytesReady","min","offset","_doProcessBlock","splice","Hasher","cfg","_doReset","update","messageUpdate","finalize","_doFinalize","_createHelper","hasher","message","_createHmacHelper","C_algo","HMAC","algo","T","abs","sin","MD5","_hash","M","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","c","d","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","floor","nBitsTotalL","hash","H_i","x","s","t","n","HmacMD5","namedNode","DataFactory","quad","variable","generateSparqlVarName","node","md5","buildOptionalQuery","queries","parentNode","patterns","triples","query","buildDereferenceQuery","ontologies","nodes","nodeNames","extractNodes","getParentNode","getPredicate","varName","parentVarName","filterPrefix","filterValue","filterOntology","ontology","prefix","url","construct","pre","cur","where","literal","generator","SparqlGenerator","Generator","buildSparqlQuery","sparqljsParams","queryType","template","expression","operator","args","prefixes","dereferenceQueryForSparqlJs","isSPARQLFilter","sparqlWhere","isQFilter","variables","toLowerCase","filterKey","filterItem","filterPredicateValue","filterObjectValue","sparqljsQuery","fetchSparqlEndpoints","frame","sparqlQueryPromises","resolve","reject","sparqlQuery","sparqlEndpoint","omitGraph","compactJson","findContainersWithPaths","getListMethod","console","log","fetchContainer","getManyMethod","returnFailedResources","getManyReferenceMethod","target","getList","updateMethod","InvalidCharacterError","atob","bind","bs","buffer","bc","idx","output","charAt","indexOf","fetchUserConfig","token","localStorage","getItem","podKey","jwtDecode","webId","userData","error","removeItem","location","reload","endpoints","_userData$endpoints2","fetchVoidEndpoints","values","pod","URL","result","fetchUserConfigPromise","fetchVoidEndpointsPromise","waitForVoidEndpoints","getMany","getManyReference","updateMany","deleteMany","getCreateContainerMethod","options","has","fetchUtils","fetchJson"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@semapps/semantic-data-provider",
3
- "version": "0.3.9",
3
+ "version": "0.4.0-alpha.10",
4
4
  "description": "React-Admin data provider for LDP servers",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Virtual Assembly",
@@ -14,8 +14,13 @@
14
14
  "dev": "rollup --watch --sourcemap --config"
15
15
  },
16
16
  "dependencies": {
17
+ "@rdfjs/data-model": "^1.3.4",
18
+ "crypto-js": "^4.1.1",
17
19
  "jsonld": "^5.2.0",
18
- "speakingurl": "^14.0.1"
20
+ "jwt-decode": "^3.0.0",
21
+ "sparqljs": "^3.5.1",
22
+ "speakingurl": "^14.0.1",
23
+ "url-join": "^4.0.1"
19
24
  },
20
25
  "peerDependencies": {
21
26
  "react": "^16.13.1 || ^17.0.0",
@@ -35,5 +40,5 @@
35
40
  "rollup-plugin-replace": "^2.2.0",
36
41
  "rollup-plugin-terser": "^5.3.0"
37
42
  },
38
- "gitHead": "24773d8b54605e16a255c493ad07e34b12381456"
43
+ "gitHead": "a8a454d66989089d7b11eda686d93c54671c0fb3"
39
44
  }