{"version":3,"sources":["../node_modules/@uiw/react-codemirror/node_modules/codemirror/mode lazy /^/.//.*/.js$/ groupOptions: {} namespace object","reportWebVitals.js","SiteWrapper.jsx","lib/export_graphs.js","lib/get_cookie.js","pages/TiddlyWiki.js","pages/TiddlyMapView.jsx","pages/TiddlyMapExport/index.jsx","components/Sparql/Graph.jsx","pages/TiddlyMapExport/show.jsx","pages/SparqlRequest.jsx","utils/queryResultExtractor.js","pages/OntologyLoading.jsx","pages/TiddlersMapping.jsx","App.js","index.js"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","all","slice","t","keys","Object","module","exports","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","SiteWrapper","withRouter","NavLink","Wrapper","headerProps","href","imageURL","this","props","children","React","exportGraphs","views","download","setField","tiddler","field","value","tRef","window","$tw","Tiddler","fields","title","getTiddlerRef","tObj","wiki","getTiddler","text","addTiddler","convert","col","outputType","array","Array","isArray","result","forEach","key","push","getValues","length","console","log","document","getElementsByTagName","selectViewsEl","opt","options","fae","i","view","graph","$tm","adapter","getGraph","nodes","edges","JSON","stringify","rootWidget","dispatchEvent","type","param","paramObject","filename","EXCLUDED_TAGS","node_ids","each","tiddly","includes","filter","getTags","getCookie","name","cookieValue","cookie","cookies","split","trim","substring","decodeURIComponent","$","DataTable","csrftoken","axios","defaults","headers","common","TiddlyWiki","iframeId","useState","setWiki","setViews","loadingView","setLoadingView","isConvertingClasses","setIsConvertingClasses","isExportingAllRDF","setIsExportingAllRDF","datatable","useRef","useEffect","get","data","loadViews","useCallback","attributes","putScriptInIframes","script","scriptId","Date","getTime","$iframes","thisDoc","contentWindow","getElementById","scriptObj","createElement","innerHTML","body","appendChild","executeInIFrame","resultHolder","toFullScreen","setTimeout","displayView","copyGraphExporterScript","graphExporter","readGraph","tries","g","reject","warn","catch","toRDFFromTag","promiseChain","json_content","values","post","content_hash","MD5","toString","tiddly_map_view_id","toast","success","errors","response","error","detail","message","rdfQuery","query","params","URLSearchParams","append","Accept","rdfInstanceClassesToTags","results","bindings","reduce","prev","className","class","label","getLocalizedClasses","localizedClasses","instanceURI","subject","typeURI","object","instanceClasses","cur","tags","setTiddlMapTags","rdfClasses","tiddlers","s","reverseClassHierarchy","classes","hierarchy","parentName","child","Content","Body","Fragment","onClick","tiddly_map_views","disabled","color","height","width","h","tiddlersClasses","childName","url","wiki_link","display","position","allowFullScreen","onLoad","a","b","c","ref","cellSpacing","last_export","obsolete","created_at","to","pathname","state","tiddlyMapExport","TiddlyMapView","TiddlyMapExport","tiddlyMapViewId","match","tiddlyMapExports","setTiddlyMapExports","setTiddlyMapView","currentExport","setCurrentExport","index","style","opacity","undefined","icon","faExclamationTriangle","missing_log","ontology_hash","Graph","domReference","network","current","Network","n","indexOf","edge","arrows","enabled","physics","repulsion","centralGravity","springLength","springConstant","nodeDistance","damping","solver","autoResize","on","event","destroy","Math","ceil","curr","maxWidth","minWidth","maxHeight","marginLeft","marginRight","every","defaultProps","tiddlyMapExportId","mapExport","setMapExport","visibleExportGraphIds","setVisibleExportGraphIds","visibleErrorType","setVisibleErrorType","displayEdge","fromLabel","conversion_log","from","toLabel","REGEXP_ID","useMemo","generateNodeID","node","res","exec","getNodeData","nodeId","displayNode","hasErrors","titles","nodeData","hasTitle","join","ntuplesToNodes","tuples","ntuple","replace","find","rawData","errorMap","matrix","ontology","errorType","Button","marginBottom","Collapse","isOpen","nodeType","conversions","ntuples","predicate","displayNtuple","Element","Scroll","scroller","SparqlRequest","localStorage","getItem","setQuery","queriesSnippets","setQueriesSnippets","selectedQuerrySnippet","setSelectedQuerySnippet","isRequestConstruct","setisRequestConstruct","queryResultGraph","setQueryResultGraph","queryResultData","setQueryResultData","queryName","setQueryName","fetchQueries","setItem","Header","Title","placeholder","aria-label","aria-describedby","onChange","target","formData","FormData","saveQuery","query_name","query_string","mode","indentWithTabs","viewportMargin","editor","queryString","getValue","updateQuery","queryResult","_label","l","shape","edgeName","flat","resultsToGraphData","row","k","resultsToDataTable","scrollTo","duration","delay","smooth","offset","err","status","statusText","config","page_size","length_menu","button","print","csv","records","columns","columnName","align","sortable","OntologyLoading","excelClassesFile","setExcelClassesFile","owlClassesFile","setOwlClassesFile","accept","file","files","Footer","Error404","App","exact","path","component","TiddlyMapExportList","TiddlyMapExportShow","TiddlersMapping","ReactDOM","render"],"mappings":"qXAAA,IAAIA,EAAM,CACT,eAAgB,CACf,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,mBAAoB,CACnB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,mBAAoB,CACnB,IACA,GAED,uBAAwB,CACvB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,iCAAkC,CACjC,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,eAAgB,CACf,IACA,GAED,qBAAsB,CACrB,IACA,IAED,WAAY,CACX,IACA,IAED,iBAAkB,CACjB,IACA,EACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,EACA,EACA,IAED,6BAA8B,CAC7B,IACA,IAED,eAAgB,CACf,IACA,IAED,mBAAoB,CACnB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,eAAgB,CACf,IACA,IAED,qBAAsB,CACrB,IACA,IAED,eAAgB,CACf,IACA,IAED,qBAAsB,CACrB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,eAAgB,CACf,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,eAAgB,CACf,IACA,IAED,eAAgB,CACf,IACA,EACA,IAED,uBAAwB,CACvB,IACA,IAED,aAAc,CACb,IACA,IAED,qBAAsB,CACrB,IACA,IAED,iBAAkB,CACjB,IACA,EACA,EACA,IAED,6BAA8B,CAC7B,IACA,IAED,yCAA0C,CACzC,IACA,IAED,uBAAwB,CACvB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,iCAAkC,CACjC,IACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,EACA,IAED,iBAAkB,CACjB,IACA,IAED,eAAgB,CACf,IACA,IAED,6BAA8B,CAC7B,IACA,GAED,qBAAsB,CACrB,IACA,IAED,eAAgB,CACf,IACA,EACA,IAED,mBAAoB,CACnB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,eAAgB,CACf,IACA,IAED,yBAA0B,CACzB,IACA,GAED,+BAAgC,CAC/B,IACA,IAED,iBAAkB,CACjB,IACA,IAED,YAAa,CACZ,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,aAAc,CACb,IACA,IAED,qBAAsB,CACrB,IACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,iBAAkB,CACjB,IACA,IAED,eAAgB,CACf,IACA,EACA,EACA,EACA,IAED,eAAgB,CACf,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,eAAgB,CACf,IACA,EACA,EACA,GAED,qBAAsB,CACrB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,WAAY,CACX,IACA,IAED,WAAY,CACX,IACA,IAED,eAAgB,CACf,IACA,IAED,eAAgB,CACf,IACA,IAED,iBAAkB,CACjB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,eAAgB,CACf,IACA,IAED,iBAAkB,CACjB,IACA,EACA,IAED,qBAAsB,CACrB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,iBAAkB,CACjB,IACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,IAED,qBAAsB,CACrB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,eAAgB,CACf,IACA,EACA,EACA,IAED,qBAAsB,CACrB,IACA,IAED,+BAAgC,CAC/B,IACA,KAED,eAAgB,CACf,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,GAED,mBAAoB,CACnB,IACA,KAED,eAAgB,CACf,IACA,KAED,uBAAwB,CACvB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,iBAAkB,C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","file":"static/js/main.481830fc.chunk.js","sourcesContent":["var map = {\n\t\"./apl/apl.js\": [\n\t\t410,\n\t\t30\n\t],\n\t\"./asciiarmor/asciiarmor.js\": [\n\t\t411,\n\t\t31\n\t],\n\t\"./asn.1/asn.1.js\": [\n\t\t412,\n\t\t32\n\t],\n\t\"./asterisk/asterisk.js\": [\n\t\t413,\n\t\t33\n\t],\n\t\"./brainfuck/brainfuck.js\": [\n\t\t414,\n\t\t34\n\t],\n\t\"./clike/clike.js\": [\n\t\t399,\n\t\t2\n\t],\n\t\"./clojure/clojure.js\": [\n\t\t415,\n\t\t35\n\t],\n\t\"./cmake/cmake.js\": [\n\t\t416,\n\t\t36\n\t],\n\t\"./cobol/cobol.js\": [\n\t\t417,\n\t\t37\n\t],\n\t\"./coffeescript/coffeescript.js\": [\n\t\t400,\n\t\t38\n\t],\n\t\"./commonlisp/commonlisp.js\": [\n\t\t418,\n\t\t39\n\t],\n\t\"./crystal/crystal.js\": [\n\t\t419,\n\t\t40\n\t],\n\t\"./css/css.js\": [\n\t\t396,\n\t\t1\n\t],\n\t\"./cypher/cypher.js\": [\n\t\t420,\n\t\t41\n\t],\n\t\"./d/d.js\": [\n\t\t421,\n\t\t42\n\t],\n\t\"./dart/dart.js\": [\n\t\t422,\n\t\t2,\n\t\t43\n\t],\n\t\"./diff/diff.js\": [\n\t\t423,\n\t\t44\n\t],\n\t\"./django/django.js\": [\n\t\t424,\n\t\t0,\n\t\t1,\n\t\t11\n\t],\n\t\"./dockerfile/dockerfile.js\": [\n\t\t425,\n\t\t21\n\t],\n\t\"./dtd/dtd.js\": [\n\t\t426,\n\t\t45\n\t],\n\t\"./dylan/dylan.js\": [\n\t\t427,\n\t\t46\n\t],\n\t\"./ebnf/ebnf.js\": [\n\t\t428,\n\t\t47\n\t],\n\t\"./ecl/ecl.js\": [\n\t\t429,\n\t\t48\n\t],\n\t\"./eiffel/eiffel.js\": [\n\t\t430,\n\t\t49\n\t],\n\t\"./elm/elm.js\": [\n\t\t431,\n\t\t50\n\t],\n\t\"./erlang/erlang.js\": [\n\t\t432,\n\t\t51\n\t],\n\t\"./factor/factor.js\": [\n\t\t433,\n\t\t22\n\t],\n\t\"./fcl/fcl.js\": [\n\t\t434,\n\t\t52\n\t],\n\t\"./forth/forth.js\": [\n\t\t435,\n\t\t53\n\t],\n\t\"./fortran/fortran.js\": [\n\t\t436,\n\t\t54\n\t],\n\t\"./gas/gas.js\": [\n\t\t437,\n\t\t55\n\t],\n\t\"./gfm/gfm.js\": [\n\t\t438,\n\t\t4,\n\t\t20\n\t],\n\t\"./gherkin/gherkin.js\": [\n\t\t439,\n\t\t56\n\t],\n\t\"./go/go.js\": [\n\t\t440,\n\t\t57\n\t],\n\t\"./groovy/groovy.js\": [\n\t\t441,\n\t\t58\n\t],\n\t\"./haml/haml.js\": [\n\t\t442,\n\t\t0,\n\t\t1,\n\t\t14\n\t],\n\t\"./handlebars/handlebars.js\": [\n\t\t401,\n\t\t16\n\t],\n\t\"./haskell-literate/haskell-literate.js\": [\n\t\t443,\n\t\t26\n\t],\n\t\"./haskell/haskell.js\": [\n\t\t402,\n\t\t59\n\t],\n\t\"./haxe/haxe.js\": [\n\t\t444,\n\t\t60\n\t],\n\t\"./htmlembedded/htmlembedded.js\": [\n\t\t445,\n\t\t0,\n\t\t1,\n\t\t10\n\t],\n\t\"./htmlmixed/htmlmixed.js\": [\n\t\t395,\n\t\t0,\n\t\t1,\n\t\t27\n\t],\n\t\"./http/http.js\": [\n\t\t446,\n\t\t61\n\t],\n\t\"./idl/idl.js\": [\n\t\t447,\n\t\t62\n\t],\n\t\"./javascript/javascript.js\": [\n\t\t397,\n\t\t0\n\t],\n\t\"./jinja2/jinja2.js\": [\n\t\t448,\n\t\t63\n\t],\n\t\"./jsx/jsx.js\": [\n\t\t449,\n\t\t0,\n\t\t28\n\t],\n\t\"./julia/julia.js\": [\n\t\t450,\n\t\t64\n\t],\n\t\"./livescript/livescript.js\": [\n\t\t451,\n\t\t65\n\t],\n\t\"./lua/lua.js\": [\n\t\t452,\n\t\t66\n\t],\n\t\"./markdown/markdown.js\": [\n\t\t407,\n\t\t4\n\t],\n\t\"./mathematica/mathematica.js\": [\n\t\t453,\n\t\t67\n\t],\n\t\"./mbox/mbox.js\": [\n\t\t454,\n\t\t68\n\t],\n\t\"./meta.js\": [\n\t\t92\n\t],\n\t\"./mirc/mirc.js\": [\n\t\t455,\n\t\t69\n\t],\n\t\"./mllike/mllike.js\": [\n\t\t456,\n\t\t70\n\t],\n\t\"./modelica/modelica.js\": [\n\t\t457,\n\t\t71\n\t],\n\t\"./mscgen/mscgen.js\": [\n\t\t458,\n\t\t72\n\t],\n\t\"./mumps/mumps.js\": [\n\t\t459,\n\t\t73\n\t],\n\t\"./nginx/nginx.js\": [\n\t\t460,\n\t\t74\n\t],\n\t\"./nsis/nsis.js\": [\n\t\t461,\n\t\t23\n\t],\n\t\"./ntriples/ntriples.js\": [\n\t\t462,\n\t\t75\n\t],\n\t\"./octave/octave.js\": [\n\t\t463,\n\t\t76\n\t],\n\t\"./oz/oz.js\": [\n\t\t464,\n\t\t77\n\t],\n\t\"./pascal/pascal.js\": [\n\t\t465,\n\t\t78\n\t],\n\t\"./pegjs/pegjs.js\": [\n\t\t466,\n\t\t0,\n\t\t79\n\t],\n\t\"./perl/perl.js\": [\n\t\t467,\n\t\t80\n\t],\n\t\"./php/php.js\": [\n\t\t468,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t17\n\t],\n\t\"./pig/pig.js\": [\n\t\t469,\n\t\t81\n\t],\n\t\"./powershell/powershell.js\": [\n\t\t470,\n\t\t82\n\t],\n\t\"./properties/properties.js\": [\n\t\t471,\n\t\t83\n\t],\n\t\"./protobuf/protobuf.js\": [\n\t\t472,\n\t\t84\n\t],\n\t\"./pug/pug.js\": [\n\t\t408,\n\t\t0,\n\t\t1,\n\t\t3\n\t],\n\t\"./puppet/puppet.js\": [\n\t\t473,\n\t\t85\n\t],\n\t\"./python/python.js\": [\n\t\t403,\n\t\t86\n\t],\n\t\"./q/q.js\": [\n\t\t474,\n\t\t87\n\t],\n\t\"./r/r.js\": [\n\t\t475,\n\t\t88\n\t],\n\t\"./rpm/rpm.js\": [\n\t\t476,\n\t\t89\n\t],\n\t\"./rst/rst.js\": [\n\t\t477,\n\t\t13\n\t],\n\t\"./ruby/ruby.js\": [\n\t\t398,\n\t\t90\n\t],\n\t\"./rust/rust.js\": [\n\t\t478,\n\t\t24\n\t],\n\t\"./sas/sas.js\": [\n\t\t479,\n\t\t91\n\t],\n\t\"./sass/sass.js\": [\n\t\t405,\n\t\t1,\n\t\t92\n\t],\n\t\"./scheme/scheme.js\": [\n\t\t480,\n\t\t93\n\t],\n\t\"./shell/shell.js\": [\n\t\t481,\n\t\t94\n\t],\n\t\"./sieve/sieve.js\": [\n\t\t482,\n\t\t95\n\t],\n\t\"./slim/slim.js\": [\n\t\t483,\n\t\t0,\n\t\t1,\n\t\t15\n\t],\n\t\"./smalltalk/smalltalk.js\": [\n\t\t484,\n\t\t96\n\t],\n\t\"./smarty/smarty.js\": [\n\t\t485,\n\t\t97\n\t],\n\t\"./solr/solr.js\": [\n\t\t486,\n\t\t98\n\t],\n\t\"./soy/soy.js\": [\n\t\t487,\n\t\t0,\n\t\t1,\n\t\t18\n\t],\n\t\"./sparql/sparql.js\": [\n\t\t488,\n\t\t99\n\t],\n\t\"./spreadsheet/spreadsheet.js\": [\n\t\t489,\n\t\t100\n\t],\n\t\"./sql/sql.js\": [\n\t\t490,\n\t\t101\n\t],\n\t\"./stex/stex.js\": [\n\t\t404,\n\t\t102\n\t],\n\t\"./stylus/stylus.js\": [\n\t\t409,\n\t\t5\n\t],\n\t\"./swift/swift.js\": [\n\t\t491,\n\t\t103\n\t],\n\t\"./tcl/tcl.js\": [\n\t\t492,\n\t\t104\n\t],\n\t\"./textile/textile.js\": [\n\t\t493,\n\t\t105\n\t],\n\t\"./tiddlywiki/tiddlywiki.js\": [\n\t\t494,\n\t\t106\n\t],\n\t\"./tiki/tiki.js\": [\n\t\t495,\n\t\t107\n\t],\n\t\"./toml/toml.js\": [\n\t\t496,\n\t\t108\n\t],\n\t\"./tornado/tornado.js\": [\n\t\t497,\n\t\t0,\n\t\t1,\n\t\t12\n\t],\n\t\"./troff/troff.js\": [\n\t\t498,\n\t\t109\n\t],\n\t\"./ttcn-cfg/ttcn-cfg.js\": [\n\t\t500,\n\t\t110\n\t],\n\t\"./ttcn/ttcn.js\": [\n\t\t499,\n\t\t111\n\t],\n\t\"./turtle/turtle.js\": [\n\t\t501,\n\t\t112\n\t],\n\t\"./twig/twig.js\": [\n\t\t502,\n\t\t19\n\t],\n\t\"./vb/vb.js\": [\n\t\t503,\n\t\t113\n\t],\n\t\"./vbscript/vbscript.js\": [\n\t\t504,\n\t\t114\n\t],\n\t\"./velocity/velocity.js\": [\n\t\t505,\n\t\t115\n\t],\n\t\"./verilog/verilog.js\": [\n\t\t506,\n\t\t116\n\t],\n\t\"./vhdl/vhdl.js\": [\n\t\t507,\n\t\t117\n\t],\n\t\"./vue/vue.js\": [\n\t\t508,\n\t\t0,\n\t\t1,\n\t\t5,\n\t\t3,\n\t\t9\n\t],\n\t\"./wast/wast.js\": [\n\t\t509,\n\t\t25\n\t],\n\t\"./webidl/webidl.js\": [\n\t\t510,\n\t\t118\n\t],\n\t\"./xml/xml.js\": [\n\t\t394,\n\t\t119\n\t],\n\t\"./xquery/xquery.js\": [\n\t\t511,\n\t\t120\n\t],\n\t\"./yacas/yacas.js\": [\n\t\t512,\n\t\t121\n\t],\n\t\"./yaml-frontmatter/yaml-frontmatter.js\": [\n\t\t513,\n\t\t29\n\t],\n\t\"./yaml/yaml.js\": [\n\t\t406,\n\t\t122\n\t],\n\t\"./z80/z80.js\": [\n\t\t514,\n\t\t123\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 337;\nmodule.exports = webpackAsyncContext;","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","// @flow\n\nimport * as React from \"react\";\nimport { NavLink, withRouter } from \"react-router-dom\";\n\nimport { ToastContainer } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport {\n Site,\n RouterContextProvider,\n} from \"tabler-react\";\n\n\nconst navBarItems = [\n {\n value: \"Administration\",\n to: \"/admin\",\n icon: \"home\",\n useExact: true,\n },\n {\n value: \"API\",\n to: '/api',\n icon: \"box\",\n useExact: true,\n },\n {\n value: \"TiddlyWiki\",\n icon: \"git-merge\",\n to: \"/tiddly_wikis\", \n prefix: \"fa\",\n LinkComponent: withRouter(NavLink) \n },\n {\n value: \"Constructeur de requête\",\n icon: \"git-merge\",\n to: \"/sparql_request\", \n prefix: \"fa\",\n LinkComponent: withRouter(NavLink) \n },\n {\n value: \"Ontologie\",\n icon: \"upload\",\n to: \"/ontology\", \n prefix: \"fa\",\n LinkComponent: withRouter(NavLink) \n },\n // {\n // value: \"Fuseki\",\n // icon: \"database\",\n // to: \"/fuseki/\", \n // prefix: \"fa\",\n // LinkComponent: withRouter(NavLink) \n // },\n {\n value: \"Tiddlers\",\n icon: \"git-merge\",\n to: \"/tiddlers\", \n prefix: \"fa\",\n LinkComponent: withRouter(NavLink) \n },\n // {\n // value: \"Pages\",\n // icon: \"file\",\n // subItems: [\n // { value: \"Profile\", to: \"/profile\", LinkComponent: withRouter(NavLink) },\n // { value: \"Login\", to: \"/login\", LinkComponent: withRouter(NavLink) },\n // {\n // value: \"Register\",\n // to: \"/register\",\n // LinkComponent: withRouter(NavLink),\n // },\n // {\n // value: \"Forgot password\",\n // to: \"/forgot-password\",\n // LinkComponent: withRouter(NavLink),\n // },\n // { value: \"400 error\", to: \"/400\", LinkComponent: withRouter(NavLink) },\n // { value: \"401 error\", to: \"/401\", LinkComponent: withRouter(NavLink) },\n // { value: \"403 error\", to: \"/403\", LinkComponent: withRouter(NavLink) },\n // { value: \"404 error\", to: \"/404\", LinkComponent: withRouter(NavLink) },\n // { value: \"500 error\", to: \"/500\", LinkComponent: withRouter(NavLink) },\n // { value: \"503 error\", to: \"/503\", LinkComponent: withRouter(NavLink) },\n // { value: \"Email\", to: \"/email\", LinkComponent: withRouter(NavLink) },\n // {\n // value: \"Empty page\",\n // to: \"/empty-page\",\n // LinkComponent: withRouter(NavLink),\n // },\n // { value: \"RTL\", to: \"/rtl\", LinkComponent: withRouter(NavLink) },\n // ],\n // },\n // {\n // value: \"Forms\",\n // to: \"/form-elements\",\n // icon: \"check-square\",\n // LinkComponent: withRouter(NavLink),\n // },\n // {\n // value: \"Gallery\",\n // to: \"/gallery\",\n // icon: \"image\",\n // LinkComponent: withRouter(NavLink),\n // },\n // {\n // icon: \"file-text\",\n // value: \"Documentation\",\n // to:\n // process.env.NODE_ENV === \"production\"\n // ? \"https://tabler.github.io/tabler-react/documentation\"\n // : \"/documentation\",\n // },\n];\n\nclass SiteWrapper extends React.Component {\n render() {\n return (\n \n \n {this.props.children}\n \n );\n }\n}\n\nexport default SiteWrapper;\n","const exportGraphs = ({ views = [], download = true }) => {\n // Project APRIL\n // Export all the tiddly Views (graphs) as a json file\n // Maybe, not use tiddly chrome extension, open the HTML file directly with Chrome\n // Open the console (F12 key), copy and past this js code in console and press enter\n // accept to save json\n // https://github.com/felixhayashi/TW5-TiddlyMap/blob/81322038e4ecc107dc6af2e38e6cfde567fca7e9/src/plugins/felixhayashi/tiddlymap/js/services/Listener.js#L98\n\n // https://github.com/felixhayashi/TW5-TiddlyMap/blob/81322038e4ecc107dc6af2e38e6cfde567fca7e9/src/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki.js#L106\n function setField(tiddler, field, value) {\n const tRef = getTiddlerRef(tiddler);\n const fields = { title: tRef };\n fields[field] = value\n\n // do not use any tObj provided, it may result in a lost update!\n let tObj = window.$tw.wiki.getTiddler(tRef, true);\n\n if (field !== 'text' && tObj && !tObj.fields.text) {\n fields.text = '';\n }\n\n tObj = new window.$tw.Tiddler(tObj, fields);\n window.$tw.wiki.addTiddler(tObj);\n\n return tObj;\n }\n\n // https://github.com/felixhayashi/TW5-TiddlyMap/blob/81322038e4ecc107dc6af2e38e6cfde567fca7e9/src/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap.js#L58\n function getValues(col) {\n if (Array.isArray(col)) {\n return col; // bounce back.\n }\n\n // else if (col instanceof vis.DataSet) { // a dataset\n\n // return col.get({ returnType: 'Array' });\n\n // }\n\n const result = [];\n const keys = Object.keys(col);\n keys.forEach(key => {\n result.push(col[key]);\n })\n\n return result;\n };\n\n //https://github.com/felixhayashi/TW5-TiddlyMap/blob/81322038e4ecc107dc6af2e38e6cfde567fca7e9/src/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap.js#L92\n function convert(col, outputType) {\n if (typeof col !== 'object') {\n //throw new InvalidArgumentException(col, outputType);\n }\n\n if (outputType === 'object') {\n outputType = 'hashmap';\n }\n\n const mapper = {\n array: col => getValues(col),\n // hashmap: col =>\n // col instanceof vis.DataSet ? col.get({ returnType: 'Object' }) : col,\n // dataset: col =>\n // col instanceof vis.DataSet ? col : (!Array.isArray(col) ? getValues(col) : new vis.DataSet(col))\n };\n\n return mapper[outputType](col);\n\n };\n\n // https://github.com/felixhayashi/TW5-TiddlyMap/blob/81322038e4ecc107dc6af2e38e6cfde567fca7e9/src/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki.js#L27\n function getTiddlerRef(tiddler) {\n if (tiddler instanceof window.$tw.Tiddler) {\n return tiddler.fields.title;\n } else if (typeof tiddler === 'string') {\n return tiddler;\n } else {\n\n }\n };\n\n function getTags(wiki, nodes) {\n const EXCLUDED_TAGS = [\n \"bag\",\n \"created\",\n \"modified\",\n \"revision\",\n \"title\",\n // \"tmap.fa-icon\",\n \"tmap.id\",\n \"tmap.style\",\n \"tmap.edges\",\n \"type\"\n ]\n\n const node_ids = Object.keys(nodes);\n\n wiki.each((tiddly) => {\n if (node_ids.includes(tiddly.fields[\"tmap.id\"])) {\n Object.keys(tiddly.fields)\n .filter(field => {\n return !EXCLUDED_TAGS.includes(field)\n })\n .forEach(key => {\n nodes[tiddly.fields[\"tmap.id\"]][key] = tiddly.fields[key]\n })\n }\n })\n }\n\n\n // list all the views in the select\n if (!views.length) {\n console.log(document.getElementsByTagName(\"select\"))\n var selectViewsEl = document.getElementsByTagName(\"select\")[0];\n console.log({ selectViewsEl })\n console.log({ opt: selectViewsEl.options })\n console.log({ fae: selectViewsEl.options.forEach })\n for (var i = 0; i < selectViewsEl.options.length; i++) {\n views.push(selectViewsEl.options[i].value); //second console output\n }\n }\n\n console.log(\"Nb views: \" + views.length);\n\n // export graph\n if (!download) {\n return views.map(view => {\n\n var graph = window.$tm.adapter.getGraph({ view });\n getTags(window.$tm.adapter.wiki, graph.nodes);\n console.log(graph)\n return graph;\n })\n }\n return views.forEach(view => {\n var graph = window.$tm.adapter.getGraph({ view });\n if (graph) {\n graph.nodes = convert(graph.nodes, 'array');\n graph.edges = convert(graph.edges, 'array');\n console.log({ download, views, graph })\n if (!download) { return console.log({ graph }) || { view, graph }; }\n const tRef = '$:/temp/tmap/export';\n\n setField(tRef, 'text', JSON.stringify(graph, null, 2));\n\n window.$tw.rootWidget.dispatchEvent({\n type: 'tm-download-file',\n param: tRef,\n paramObject: {\n filename: `${view}.json`\n }\n });\n } else {\n console.log(\"Fail to extract graph for view: \" + view)\n }\n })\n}\n\nexport default exportGraphs\n","function getCookie(name) {\n let cookieValue = null;\n if (document.cookie && document.cookie !== '') {\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim();\n // Does this cookie string begin with the name we want?\n if (cookie.substring(0, name.length + 1) === (name + '=')) {\n cookieValue = decodeURIComponent(cookie.substring(name.length + 1));\n break;\n }\n }\n }\n return cookieValue;\n}\n\nexport default getCookie;","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport SiteWrapper from '../SiteWrapper';\nimport { Page, Card, Button } from 'tabler-react';\nimport axios from 'axios';\nimport { Link } from 'react-router-dom'\n\nimport DataTable from 'datatables.net';\nimport Iframe from 'react-iframe';\nimport graphExporter from '../lib/export_graphs';\nimport $ from 'jquery';\nimport getCookie from '../lib/get_cookie'\nimport MD5 from \"crypto-js/md5\";\nimport { toast } from 'react-toastify';\nimport Loader from 'react-loader-spinner'\n\n$.DataTable = DataTable;\n\nconst csrftoken = getCookie('csrftoken');\naxios.defaults.headers.common['X-CSRFToken'] = csrftoken;\n\n\nconst TiddlyWiki = ({ id }) => {\n\tconst iframeId = `tiddly-map-frame`;\n\n\tconst [wiki, setWiki] = useState();\n const [views, setViews] = useState([])\n\tconst [loadingView, setLoadingView] = useState(-1);\n const [isConvertingClasses, setIsConvertingClasses] = useState(false)\n const [isExportingAllRDF, setIsExportingAllRDF] = useState(false)\n\n\tconst datatable = useRef();\n\n\tuseEffect(\n\t\t() => {\n\t\t\tif (id) {\n\t\t\t\taxios.get(`/api/tiddly_wiki/${id}.json`).then(({ data }) => setWiki(data));\n\t\t\t} else {\n\t\t\t\taxios.get(`/api/tiddly_wiki/first`).then(({ data }) => setWiki(data.data));\n\t\t\t}\n\t\t},\n\t\t[id]\n\t);\n\n const loadViews = useCallback(() => {\n wiki && wiki.id && axios.get(`/api/tiddly_wiki/${wiki.id}/tiddly_map_views`).then(({ data: { data } }) => setViews(data.map(view => ({...view.attributes, id: view.id}))));\n }, [wiki])\n\n\tuseEffect(\n\t\t() => {\n if(wiki && wiki.id){ loadViews() }\n\t\t},\n\t\t[wiki, loadViews]\n\t);\n\n\n\t/**\n\t * Write javascript code into iFrame\n\t * @param {string} script The content of code\n\t * @param {*} scriptId The id of the script, for caching purpose\n\t */\n\tconst putScriptInIframes = useCallback(\n\t\t(script, scriptId = new Date().getTime()) => {\n\t\t\tvar $iframes = $(`#${iframeId}`);\n\t\t\t$iframes.each(function () {\n\t\t\t\tvar thisDoc = this.contentWindow.document;\n\t\t\t\tif (!thisDoc.getElementById(scriptId)) {\n\t\t\t\t\tvar scriptObj = thisDoc.createElement('script');\n\t\t\t\t\tscriptObj.type = 'text/javascript';\n\t\t\t\t\tscriptObj.id = scriptId;\n\t\t\t\t\tscriptObj.innerHTML = script;\n\t\t\t\t\tthisDoc.body.appendChild(scriptObj);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\t[iframeId]\n\t);\n\n\t/**\n\t * Executes javascript code into iFrame\n\t * @param {string} script The script to execute\n\t */\n\tconst executeInIFrame = useCallback(\n\t\t(script) => {\n\t\t\tconst resultHolder = `result${new Date().getTime()}`;\n\t\t\tputScriptInIframes(`window.${resultHolder} = () => {${script}};`);\n\t\t\tputScriptInIframes(`window.${resultHolder}_result = window.${resultHolder}()`);\n\t\t\tvar $iframes = $(`#${iframeId}`);\n\t\t\tlet result;\n\t\t\t$iframes.each(function () {\n\t\t\t\tresult = this.contentWindow[`${resultHolder}_result`];\n\t\t\t});\n\t\t\t// console.log({ script, result, iframeId, j: $(`#${iframeId}`) });\n\t\t\treturn result;\n\t\t},\n\t\t[putScriptInIframes, iframeId]\n\t);\n\n\t/**\n\t * Display TiddlyMap as full screen\n\t */\n\tconst toFullScreen = useCallback(\n\t\t() => {\n\t\t\tconst tiddlyMapReady = executeInIFrame(\n\t\t\t\t`return document.getElementsByClassName('tmap-fullscreen-button').length > 0`\n\t\t\t);\n\t\t\tif (tiddlyMapReady) {\n\t\t\t\texecuteInIFrame(`document.getElementsByClassName('tmap-fullscreen-button')[0].click();`);\n\t\t\t} else {\n\t\t\t\tsetTimeout(toFullScreen, 3000);\n\t\t\t}\n\t\t},\n\t\t[executeInIFrame]\n\t);\n\n\twindow.executeInIFrame = executeInIFrame;\n\n\t/**\n\t * Changes the displayed TiddlyMap view\n\t * @param {object} view The view to display\n\t */\n\tconst displayView = useCallback(\n\t\t(view) => executeInIFrame(`$tm.utils.setText($tm.ref.defaultViewHolder, '${view.name}')`),\n\t\t[executeInIFrame]\n\t);\n\n\t/**\n\t * Copy export script into iFrame\n\t */\n\tconst copyGraphExporterScript = useCallback(\n\t\t() => putScriptInIframes(`window.exportGraphs = ${graphExporter}`, 'exportGraph'),\n\t\t[putScriptInIframes]\n\t);\n\n\tuseEffect(\n\t\t() => {\n\t\t\ttoFullScreen();\n\t\t\tcopyGraphExporterScript();\n\t\t},\n\t\t[wiki, toFullScreen, copyGraphExporterScript]\n\t);\n\n\t/**\n\t * exports all views\n\t */\n\tconst saveAll = () => {\n\t\tputScriptInIframes(\n\t\t\t`exportGraphs(${JSON.stringify({ views: wiki.attributes.tiddly_map_views.map(({ name }) => name), download: true })})`\n\t\t);\n\t};\n\n\t/**\n\t * Exports the given view\n\t * @param {object} graph \n\t */\n\tconst exportGraph = (graph) => {\n\t\tputScriptInIframes(`exportGraphs(${JSON.stringify({ views: [graph.name], download: true })})`);\n\t};\n\n\t/**\n\t * Get the content of the view export\n\t * \n\t * @param {object} graph \n\t */\n\tconst readGraph = (graph, tries = 15) => {\n\t\tlet g = executeInIFrame(`return exportGraphs(${JSON.stringify({ views: [graph.name], download: false })})`);\n\t\tconsole.log(g)\n\t\tif (g) { return Promise.resolve(g) }\n\t\tif (tries === 1) { return Promise.reject(`Graph ${graph} could not be read`) }\n\t\tconsole.warn(`Retry to get graph \"${graph.name}\" (${tries - 1} tries left)`)\n\t\treturn new Promise((resolve, reject) => setTimeout(() => readGraph(graph, tries - 1)\n\t\t\t.then(resolve)\n\t\t\t.catch(reject), 3000))\n\t};\n\n\t/**\n\t * Converts and export TiddlyMap view to the RDF store\n\t * \n\t * @param {object} graph \n\t * @param {Promise} promiseChain \n\t */\n\tconst toRDF = (graph, promiseChain = Promise.resolve()) => { // Looks like this only works when graph is displayed\n\t\tsetLoadingView(graph.id)\n\t\treturn readGraph(graph)\n .then(g => {\n\t\t\ttry {\n\t\t\t\tif (!g) { throw new Error(`Graph ${graph} could not be read`) }\n\t\t\t\tconst { edges, nodes } = g[0];\n\t\t\t\tconst json_content = {\n\t\t\t\t\tedges: Object.values(edges),\n\t\t\t\t\tnodes: Object.values(nodes)\n\t\t\t\t}\n\t\t\t\treturn promiseChain.then(() =>\n\t\t\t\t\taxios.post(`/api/tiddly_map_exports/rdf`, {\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tjson_content,\n\t\t\t\t\t\t\t\tcontent_hash: MD5(JSON.stringify(json_content)).toString(),\n\t\t\t\t\t\t\t\ttiddly_map_view_id: graph.id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttype: 'TiddlyMapExport'\n\t\t\t\t\t\t},\n\t\t\t\t\t}, {\n\t\t\t\t\t\theaders: { 'Content-Type': 'application/vnd.api+json' }\n\t\t\t\t\t})\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\ttoast.success(`Graph ${graph.name} exporté`)\n\t\t\t\t\t\t\tsetLoadingView(-1)\n loadViews()\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(({ response: { data: errors } }) => {\n\t\t\t\t\t\t\tconsole.log(errors)\n\t\t\t\t\t\t\ttoast.error(`Échec de l'importation du graph ${graph.name}: ${(errors?.errors || []).map(e => console.log(e) || e.detail)}`)\n\t\t\t\t\t\t\tsetLoadingView(-1)\n\t\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t\ttoast.error(`Échec de l'importation du graph ${graph.name}: ${e.message}`)\n\t\t\t\tsetLoadingView(-1)\n\t\t\t}\n\t\t})\n .catch(error => toast.error(error.message))\n\t};\n\n\n\tconst toRDFFromTag = (graph, promiseChain = Promise.resolve()) => { // Looks like this only works when graph is displayed\n\t\tsetLoadingView(graph.id)\n\t\treturn readGraph(graph)\n .then(g => {\n\t\t\ttry {\n\t\t\t\tif (!g) { throw new Error(`Graph ${graph} could not be read`) }\n\t\t\t\tconst { edges, nodes } = g[0];\n\t\t\t\tconst json_content = {\n\t\t\t\t\tedges: Object.values(edges),\n\t\t\t\t\tnodes: Object.values(nodes)\n\t\t\t\t}\n\t\t\t\treturn promiseChain.then(() =>\n\t\t\t\t\taxios.post(`api/tiddly_map_exports/rdf_from_tags`, {\n\t\t\t\t\t//axios.post(`api/tiddly_map_exports/rdf`, {\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tjson_content,\n\t\t\t\t\t\t\t\tcontent_hash: MD5(JSON.stringify(json_content)).toString(),\n\t\t\t\t\t\t\t\ttiddly_map_view_id: graph.id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttype: 'TiddlyMapExport'\n\t\t\t\t\t\t},\n\t\t\t\t\t}, {\n\t\t\t\t\t\theaders: { 'Content-Type': 'application/vnd.api+json' }\n\t\t\t\t\t})\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\ttoast.success(`Graph ${graph.name} exporté par tags`)\n\t\t\t\t\t\t\tsetLoadingView(-1)\n loadViews()\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(({ response: { data: errors } }) => {\n\t\t\t\t\t\t\tconsole.log(errors)\n\t\t\t\t\t\t\ttoast.error(`Échec de l'importation à partir des tags du graph ${graph.name}: ${(errors?.errors || []).map(e => console.log(e) || e.detail)}`)\n\t\t\t\t\t\t\tsetLoadingView(-1)\n\t\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t\ttoast.error(`Échec de l'importation à partir des tags du graph ${graph.name}: ${e.message}`)\n\t\t\t\tsetLoadingView(-1)\n\t\t\t}\n\t\t})\n .catch(error => toast.error(error.message))\n\t};\n\n\t/**\n\t * Exports all TiddlyMap views into the RDF store\n\t */\n\tconst exportAllViews = () => {\n\t\tsetIsExportingAllRDF(true);\n\n\t\tlet promiseChain = Promise.resolve();\n\n\t\treturn Promise.all(wiki.attributes.tiddly_map_views.map((view) => (\n\t\t\ttoRDFFromTag(view, promiseChain)\n\t\t)))\n .then(() => setIsExportingAllRDF(false));\n\t};\n\n const rdfQuery = (query) => {\n\t\tconst params = new URLSearchParams();\n\t\tparams.append('query', query);\n\t\treturn axios.post('/fuseki/ds/sparql', params, {\n\t\t\theaders: {\n\t\t\t\tAccept: 'application/json'\n\t\t\t}\n\t\t})\n }\n\n /**\n * Get the localized label of all the classes\n * \n * @returns {object} A map of className / localized labels\n * @example\n * \n * getLocalizedClasses('fr')\n * // {\n * // https://data.april.fr/def/april#ARS: \"ARS\"\n * // https://data.april.fr/def/april#Absence: \"Absence\"\n * // https://data.april.fr/def/april#AbsoluteValueNumber: \"Nombre Valeur Absolue\",\n * // [...]\n * // }\n */\n const getLocalizedClasses = (locale = 'fr') => {\n const query = `PREFIX rdf: \n PREFIX rdfs: \n \n SELECT DISTINCT ?class ?label\n WHERE {\n GRAPH ?g {\n ?class a ?type.\n ?class rdfs:label ?label.\n FILTER(LANG(?label) = \"${locale}\")\n }\n }`\n return rdfQuery(query).then(({ data }) => data.results.bindings.reduce((\n prev, {\n\t\t\tclass: { value: className },\n\t\t\tlabel: { value: label },\n }\n\t\t) => {\n prev[className] = label;\n return prev;\n }, {}));\n }\n\n /**\n * Ajoute à chaque tiddler un tag par classe RDF définissant l'instance\n * @returns {Promise}\n */\n\tconst rdfInstanceClassesToTags = () => {\n\t\tconst query = `PREFIX rdf: \n PREFIX rdfs: \n \n SELECT DISTINCT ?subject ?title ?object\n WHERE {\n GRAPH ?g {\n ?subject rdf:type ?object .\n ?subject rdfs:label ?title . \n }\n }`\n\t\treturn getLocalizedClasses()\n .then((localizedClasses) => (\n console.log(localizedClasses) || \n rdfQuery(query).then(({ data }) => data.results.bindings.map(({\n subject: { value: instanceURI },\n object: { value: typeURI },\n title: { value: label }\n }) => ({\n id: instanceURI.split('/id/')[1],\n className: typeURI,\n label\n })))\n .then(instanceClasses => instanceClasses.reduce((prev, cur) => {\n if (!prev[cur.id]) { prev[cur.id] = { id: cur.id, tags: [], title: cur.label } }\n prev[cur.id].tags.push(localizedClasses[cur.className])\n return prev\n }, {}))\n .then(instanceClasses => setTiddlMapTags(Object.values(instanceClasses)))\n )\n )\n\t}\n\n /**\n * Enregistre les tags dans TiddlyWiki selon les noms de tiddlers et leur(s) classe(s) \n * fournis en paramètre\n * \n * @param {object[]} rdfClasses Les objets représentant les classes de chaque tiddler \n * @returns {Promise} La promesse\n */\n\tconst setTiddlMapTags = (rdfClasses) => {\n console.log({ rdfClasses, tiddlers: rdfClasses.map(({ title, tags}) => {\n const res ={ title, tags}\n return res;\n }) })\n const s = `\n const tiddlersData = JSON.parse(\\`${JSON.stringify(\n rdfClasses.map(({ title, tags}) => {\n const res ={ title, tags}\n return res;\n })\n )}\\`)\n const newTiddlersData = []\n tiddlersData.forEach(({ title, tags }) => {\n const tiddler = window.$tw.wiki.getTiddler(title)\n if(tiddler){\n newTiddlersData.push({ ...tiddler.fields, tags })\n } else {\n newTiddlersData.push({ title, tags })\n }\n })\n const res = window.$tw.wiki.addTiddlers(newTiddlersData)\n return res\n `;\n\n return executeInIFrame(s)\n\t}\n\n /**\n * Obtient les classes selon l'ontologie téléversée et les convertit\n * en tag TiddlyWiki. Au besoin, créé les Tiddlers représentant un tag\n * si il n'existe pas.\n * \n * @returns {Promise} La promesse\n */\n const rdfClassesToTags = () => axios.get(`/api/parsed_ontology_classes`)\n .then(({ data: { classes }}) => {\n const h = reverseClassHierarchy(classes)\n const tiddlersClasses = Object.keys(h).map(childName => {\n return {\n title: childName,\n tags: h[childName]\n }\n })\n console.log({ h, tiddlersClasses })\n return setTiddlMapTags(tiddlersClasses)\n })\n\n /**\n * Renverse la hierarchie fournie par l'API.\n * \n * @example\n * \n * const classes = {\n * name: \"Kind Of Document\",\n * children: [{ \n * name: \"Information Nature\", \n * children: [{\n * name: \"Answer\", \n * children: []\n * }]\n * }]\n * }\n * \n * reverseClassHierarchy(classes)\n * // Résultat: {\n * // \"Answer\": [\"Information Nature\"],\n * // \"Information Nature\": [\"Kind Of Document\"]\n * // }\n * @param {object[]} classes Les classes parentes \n * @param {object} hierarchy La hierarchie inversée\n * @returns {object} La hiérarchie inversée finale\n */\n const reverseClassHierarchy = (classes, hierarchy = {}) => {\n \n classes.forEach( ({ name: parentName, children }) => {\n // Réinitialisation de la classe parente au besoin\n hierarchy[parentName] = hierarchy[parentName] || []\n\n // Inversion parent/enfant\n children.forEach(child => {\n hierarchy[child.name] = hierarchy[child.name] || []\n hierarchy[child.name].push(parentName)\n })\n\n // Récurcivité\n reverseClassHierarchy(children, hierarchy)\n })\n return hierarchy;\n }\n\n /**\n * Convertit les classes RDF trouvées dans Fuseki en tags TiddlyWiki\n * @returns {Promise} La promesse\n */\n\tconst rdfClassesToTiddlyMapTag = () => {\n setIsConvertingClasses(true);\n return Promise.all([\n rdfInstanceClassesToTags(),\n rdfClassesToTags(),\n ])\n .then(() => toast.success(`Conversion des classes RDF en tags terminée`))\n .catch((error) => toast.error(\n `Échec de la conversion des classes RDF en tags: ${error.message}`)\n )\n .then(() => setIsConvertingClasses(false))\n }\n\treturn (\n\t\t\n \t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t{wiki && console.log({ a, b, c })}\n\t\t\t\t\t\t\t/>}\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tNom\n\t\t\t\t\t\t\t\t\t\tCréé le\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{views &&\n\t\t\t\t\t\t\t\t\t\tviews.map((view) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t displayView(view)}>{view.name}\n\t\t\t\t\t\t\t\t\t\t\t\t{view.created_at}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t displayView(view)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mx-1 btn-sm btn btn-primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tVisualiser\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t exportGraph(view)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mx-1 btn-sm btn btn-primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTélécharger\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t toRDFFromTag(view)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mx-1 btn-sm btn btn-success\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingView !== view.id ?\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"TAGS to RDF\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n \n Exportations\n \n\n \n Dernière exportation\n \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default TiddlyWiki;\n","const TiddlyMapView = () => null\n\nexport default TiddlyMapView","import axios from \"axios\"\nimport { useEffect, useState } from \"react\"\nimport SiteWrapper from '../../SiteWrapper';\nimport { Link } from 'react-router-dom'\nimport { Page, Card } from 'tabler-react';\nimport { Button } from 'tabler-react';\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons\";\n\nconst TiddlyMapExport = ({ match: { params: { id: tiddlyMapViewId } } }) => {\n const [tiddlyMapExports, setTiddlyMapExports] = useState([])\n const [tiddlyMapView, setTiddlyMapView] = useState()\n const [currentExport, setCurrentExport ] = useState()\n useEffect(() => {\n axios.get(`/api/tiddly_map_views/${tiddlyMapViewId}/exports`)\n .then(({ data: { data } }) => setTiddlyMapExports(data))\n axios.get(`/api/tiddly_map_views/${tiddlyMapViewId}`)\n .then(({ data: { data } }) => setTiddlyMapView(data))\n }, [tiddlyMapViewId])\n\n useEffect(() => {\n if(tiddlyMapExports.length && !currentExport){\n setCurrentExport(tiddlyMapExports[tiddlyMapExports.length - 1])\n }\n }, [tiddlyMapExports, currentExport])\n\n useEffect(() => {\n if(currentExport){\n axios.get(`/api/tiddly_map_exports/${currentExport.id}`)\n }\n }, [currentExport])\n\n return (\n \n \n \n \n \n \n \n ID\n Date création\n Nombre de noeuds\n Nombre de liens\n Éléments manquants\n Onotology ID\n Action \n \n \n \n {tiddlyMapExports.map((data, index) => (\n \n \n \n \n {data.attributes.obsolete && }\n\n {data.id}\n \n {data.attributes.created_at}\n {data.attributes.json_content.nodes.length}\n {data.attributes.json_content.edges.length}\n {data.attributes.missing_log?.length}\n {data.attributes.ontology_hash}\n \n \n \n \n \n \n ))}\n \n \n \n \n \n \n )\n}\n\nexport default TiddlyMapExport","import React, { useEffect, useRef } from \"react\";\nimport PropTypes from 'prop-types'\nimport { Network } from 'vis-network'\n\nconst Graph = ({ nodes, edges }) => {\n // ref for fom access\n const domReference = useRef(null)\n useEffect(() => {\n // use vis with created ref\n if (edges.length && nodes.length) {\n const network =\n domReference.current &&\n new Network(domReference.current,\n {\n nodes: nodes.filter((n, i, a) => a.indexOf(n) === i),\n edges: edges.filter((e, i, a) => a.indexOf(e) === i)\n .map(edge => ({\n ...edge,\n arrows: {\n to: {\n enabled: true,\n },\n },\n }))\n },\n {\n physics: {\n enabled: true,\n repulsion: {\n centralGravity: 0.0,\n springLength: 100,\n springConstant: 0.01,\n nodeDistance: 100,\n damping: 0.09\n },\n solver: 'repulsion'\n },\n autoResize: true,\n edges: {\n color: \"#411811\",\n },\n })\n\n network?.on(\"selectNode\", (event) => {\n if (event.nodes?.length === 1) {\n console.log(event.nodes)\n // window.location.href = event.nodes[0];\n }\n })\n\n return () => {\n if (network) {\n network.destroy()\n }\n }\n }\n\n\n }, [domReference, nodes, edges])\n\n const approxLinesOfText = Math.ceil(\n nodes.reduce((prev, curr) => prev + (curr.label?.length || 0), 0) / 14\n );\n\n const height = 2 * (approxLinesOfText + edges.length);\n\n return (\n
e && e.length) ? 'inherit' : 'none'\n }} />\n )\n\n}\n\nGraph.propTypes = {\n nodes: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n label: PropTypes.string.isRequired,\n })).isRequired,\n edges: PropTypes.arrayOf(PropTypes.shape({\n from: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n })).isRequired\n}\n\nGraph.defaultProps = {\n nodes: [],\n edges: []\n}\n\nexport default Graph\n","import axios from 'axios';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport SiteWrapper from '../../SiteWrapper';\nimport { Page, Card } from 'tabler-react';\nimport Graph from '../../components/Sparql/Graph'\nimport { Collapse, Button } from 'reactstrap';\n\nconst TiddlyMapExport = ({ match: { params: { id: tiddlyMapExportId } } }) => {\n const [mapExport, setMapExport] = useState()\n const [tiddlyMapView, setTiddlyMapView] = useState()\n const [visibleExportGraphIds, setVisibleExportGraphIds] = useState([])\n const [visibleErrorType, setVisibleErrorType] = useState()\n\n useEffect(() => {\n mapExport && mapExport.attributes.tiddly_map_view_id && axios.get(`/api/tiddly_map_views/${mapExport.attributes.tiddly_map_view_id}`)\n .then(({ data: { data } }) => setTiddlyMapView(data))\n }, [mapExport])\n\n useEffect(() => {\n axios.get(`/api/tiddly_map_exports/${tiddlyMapExportId}`)\n .then(({ data: { data } }) => setMapExport(data))\n }, [tiddlyMapExportId])\n\n const displayEdge = (edge) => {\n const fromLabel = mapExport.attributes.conversion_log.nodes[edge.from].label\n const toLabel = mapExport.attributes.conversion_log.nodes[edge.to].label\n return

\n {fromLabel}\n {edge.type}\n {toLabel}\n

\n }\n\n const REGEXP_ID = useMemo(() => /\"*([\\d]{4}-[\\d]{2}-[\\d]{2}T[\\d]{2}:[\\d]{2}:[\\d]{2})*\"*.*\\/([^/>]+)>?\\.?$/, [])\n\n\n const generateNodeID = useCallback((node) => {\n const res = REGEXP_ID.exec(node);\n if (!res || res.length < 3) { return new Date().getTime() }\n return res[2];\n }, [REGEXP_ID])\n\n const getNodeData = useCallback((node) => {\n const nodeId = generateNodeID(node)\n return nodeId\n ? mapExport.attributes.conversion_log.nodes[nodeId]\n : null\n }, [mapExport, generateNodeID])\n\n const displayNode = (node) => {\n const titles = []\n const nodeData = getNodeData(node);\n let hasErrors = false;\n titles.push(nodeData && nodeData.label)\n hasErrors = !(nodeData)\n const hasTitle = titles.filter(n => n).length\n return )}\n className={hasErrors ? 'text-error' : undefined}\n >\n {hasTitle\n ? titles.join(
)\n : node\n }
\n {hasTitle ? {node} : null}\n \n }\n\n const displayNtuple = (ntuple) => {\n const { 0: subject, 1: predicate, 2: object } = ntuple.replace(/\\.$/, '').split(' ')\n\n return \n {displayNode(subject)}\n {predicate}\n {displayNode(object)}\n \n }\n\n const getNodesFromEdge = (edge) => {\n return [edge.from, edge.to].map(nodeId => mapExport.attributes.conversion_log.nodes[nodeId])\n }\n\n const ntuplesToEdges = (tuples) => {\n return tuples.map(ntuple => {\n const { 0: from, 1: label, 2: to } = ntuple.replace(/\\.$/, '').split(' ')\n const fromId = generateNodeID(from) || []\n const toId = generateNodeID(to) || []\n return { from: fromId || from, label, to: toId || to }\n })\n }\n\n const ntuplesToNodes = (tuples) => {\n const nodes = []\n tuples.forEach(ntuple => {\n const n = [];\n const { 0: from, 2: to } = ntuple.replace(/\\.$/, '').split(/[\\s]/)\n n.push(from)\n n.push(to)\n n.forEach(node => {\n let nodeData = getNodeData(node)\n if (nodeData) {\n\n if (!nodes.find(n => n.id === nodeData.id)) {\n nodes.push(nodeData)\n }\n } else {\n const nodeId = generateNodeID(node) || []\n const rawData = { id: nodeId || node, label: node }\n if (!nodes.find(n => n.id === rawData.id)) {\n nodes.push(rawData)\n }\n }\n })\n })\n return nodes;\n }\n\n const errorMap = useMemo(() => mapExport && mapExport.attributes && mapExport.attributes.missing_log.reduce((prev, cur) => {\n switch (cur.error) {\n case 'Edge label not found in matrix':\n case 'Node label not found in matrix':\n prev.matrix.push(cur);\n break;\n case 'Node type not found in Ontology':\n case 'Edge type not found in Ontology':\n prev.ontology.push(cur);\n break;\n case 'Node attribute type unknown':\n case 'Edge attribute type unknown':\n prev.attributes.push(cur);\n break;\n default:\n console.error('Unknown error type: ', cur)\n }\n return prev;\n }, { matrix: [], ontology: [], attributes: [] }),\n [mapExport]);\n console.log(errorMap)\n return (\n \n \n \n \n

Erreurs:

\n {errorMap && Object.keys(errorMap).map(errorType => (\n \n ))}\n
\n {mapExport && mapExport.attributes.missing_log.length && Object.keys(errorMap).map(errorType =>\n \n\n \n \n \n Éléments manquant\n Erreur\n Type recherché (OWL)\n \n \n \n {errorMap[errorType].map(data => (\n \n {data.label}\n {data.error}\n {data.nodeType}\n \n ))}\n \n \n \n )\n }\n
\n
\n \n\n

Conversions:

\n\n {mapExport && mapExport.attributes.conversion_log.conversions && mapExport.attributes.conversion_log.conversions.map(log => (\n
\n
{displayEdge(log.edge)}
\n { console.log({ visibleExportGraphIds, id: log.edge.id }) ||\n visibleExportGraphIds.includes(log.edge.id)\n ?\n \n : \n }\n\n \n \n \n Subject\n Predicate\n Object\n \n \n \n {log.ntuples.map(ntuple => displayNtuple(ntuple))}\n \n \n
\n ))}\n
\n
\n
\n
)\n}\n\nexport default TiddlyMapExport","import Graph from \"../components/Sparql/Graph\"\nimport SiteWrapper from '../SiteWrapper';\nimport { Page, Card } from 'tabler-react';\nimport React, { useEffect, useState } from 'react'\nimport axios from 'axios'\nimport { resultsToGraphData, resultsToDataTable } from \"../utils/queryResultExtractor\"\nimport CodeMirror from '@uiw/react-codemirror';\nimport 'codemirror/keymap/sublime';\nimport 'codemirror/theme/monokai.css';\nimport ReactDatatable from '@ashvin27/react-datatable';\nimport { toast } from 'react-toastify';\nimport Scroll from 'react-scroll';\nconst Element = Scroll.Element;\nconst scroller = Scroll.scroller;\n\nconst SparqlRequest = () => {\n\n const [query, setQuery] = useState(localStorage.getItem(\"last_request\"))\n\n const [queriesSnippets, setQueriesSnippets] = useState([])\n const [selectedQuerrySnippet, setSelectedQuerySnippet] = useState(\"\")\n\n const [isRequestConstruct, setisRequestConstruct] = useState(false)\n\n const [queryResultGraph, setQueryResultGraph] = useState([])\n const [queryResultData, setQueryResultData] = useState([])\n\n const [queryName, setQueryName] = useState(\"\")\n\n useEffect(() => {\n fetchQueries()\n }, [])\n\n /**\n * Obtient les 25 dernières requêtes enregistrées\n */\n const fetchQueries = () => {\n axios.get(`/api/queries/25/recent`)\n .then(({ data: { data } }) => setQueriesSnippets(data))\n }\n\n /**\n * Exécute la requête écrite\n */\n const execRequest = () => {\n const params = new URLSearchParams();\n params.append('query', query);\n axios.post('/fuseki/ds/sparql', params, {\n headers: { \n Accept: isRequestConstruct ? 'application/ld+json' : 'application/json' \n } \n }).then(({ data }) => {\n if(isRequestConstruct){\n // Draw graph\n setQueryResultGraph(\n resultsToGraphData(data)\n )\n setQueryResultData([])\n } else {\n // Fill data table\n setQueryResultData(resultsToDataTable(data))\n setQueryResultGraph([])\n }\n // Somewhere else, even another file\n scroller.scrollTo('result', {\n duration: 500,\n delay: 100,\n smooth: true,\n offset: 50, // Scrolls to element + 50 pixels down the page\n })\n })\n .catch(err => {\n console.error(err)\n switch(err.response?.status) {\n case 400:\n toast.error(\"Erreur dans la synthaxe sparql.\")\n break;\n default:\n toast.error(err.statusText)\n }\n\n })\n }\n\n useEffect(() => {\n localStorage.setItem(\"last_request\", query)\n setisRequestConstruct(query.includes('CONSTRUCT '))\n }, [query])\n\n const saveQuery = () => {\n const formData = new FormData();\n\n formData.append('query_name', queryName);\n formData.append('query_string', query);\n \n axios.post(`/api/queries/`, formData)\n .then(() => fetchQueries())\n }\n\n const loadQuerySnippet = () => {\n if(selectedQuerrySnippet.attributes){\n setQuery(selectedQuerrySnippet.attributes.query_string)\n }\n }\n\n const adaptQuery = (queryString) => {\n if (queryString.slice(-1) !== '\\n') {\n return queryString + '\\n'\n }\n\n return queryString\n }\n\n const updateQuery = (editor) => {\n setQuery(adaptQuery(editor.getValue()))\n }\n\n return (\n \n \n\n
\n
\n\n
\n \n\n \n Requete Sparql\n \n\n \n\n
\n\n Enregistrer la requete\n setQueryName(e.target.value)} />\n { saveQuery() }}>\n Confirmer\n \n
\n\n
\n \n { setSelectedQuerySnippet(queriesSnippets[e.target.value]) }}\n >\n {\n (queriesSnippets || []).map((query, index) => {\n return (\n \n )\n })\n }\n \n loadQuerySnippet()}>\n Charger\n \n
\n\n\n updateQuery(editor)}\n\n />\n\n
\n \n Executer\n \n
\n
\n
\n
\n\n {/*
*/}\n
\n \n \n\n \n Résultat\n \n\n \n
\n \n
\n
\n ({\n key: columnName,\n text: columnName,\n align: \"left\",\n sortable: true,\n }))\n : []}\n />\n
\n
\n\n
\n
\n
\n\n
\n
\n\n
\n
\n )\n}\n\nexport default SparqlRequest;\n","const DEFAULT_LANGUAGE = 'fr';\n\nconst resultsToGraphData = (queryResult) => {\n let edges = []\n let nodes = []\n console.log(\"Converting query results into graph data : \")\n console.log(queryResult)\n\n if(queryResult['@graph']){\n console.log(\"result is in json ld format ! \")\n\n queryResult['@graph'].forEach(node => {\n if(node['@id']){\n\n // Get the label of the node\n let label = node.label;\n if(Array.isArray(label)){\n const _label = node.label.find(l => l['@language'] === DEFAULT_LANGUAGE)\n label = _label['@value']\n }\n\n // Keep the found node\n nodes.push({\n id: node['@id'], label, \n shape: label ? undefined : 'diamond' // If no label, this is an intermediate node\n })\n console.log(\"Found node\", {id: node['@id'], label})\n\n // Create the node's edges\n Object.keys(node).forEach(edgeName => {\n const edge = queryResult['@context'][edgeName]\n console.log(label, \" - Checking edge\", edgeName, { edge })\n if(['label'].indexOf(edgeName) < 0 && edge){\n console.log('Attribute to keep found:', edgeName)\n console.log(edgeName, node[edgeName])\n\n const from = node['@id']\n const tos = [node[edgeName]].flat()\n tos.forEach(to => {\n if(typeof to === 'string'){\n edges.push({\n from,\n to,\n label: edgeName,\n })\n }\n })\n }\n })\n }\n })\n }\n\n // Create missing nodes\n edges.forEach(({ to }) => {\n if(to && nodes.map(({ id }) => id).indexOf(to) < 0){\n console.warn('Creating missing node:', {id: to, label: to })\n nodes.push({id: to, label: to })\n }\n })\n\n return {edges, nodes: nodes}\n}\n\n\n/**\n * Formatte les données reçues de Fuseki en un format interprétable pour construire un tableau HTML\n * @param {object} queryResult \n * @returns {Array[Object]} Retourne le résultat formatté\n */\nconst resultsToDataTable = (queryResult) => {\n\n /* Named variable in query\n * @example:\n * SELECT ?subject ?a ?object\n * FROM \n * WHERE {\n * ?s ?a ?o.\n * ?s rdfs:label ?subject.\n * ?o rdfs:label ?object\n * }\n * LIMIT 25\n */\n\n if(!queryResult){ return [] }\n const result = []\n if(queryResult && queryResult.results){\n queryResult.results.bindings.forEach((value) => {\n const row = {}\n Object.keys(value).forEach(k => {\n row[k] = value[k].value\n })\n result.push(row)\n })}\n console.log({ result })\n return result\n}\nexport { resultsToDataTable, resultsToGraphData }","import axios from 'axios';\nimport React, { useState } from 'react'\nimport { Page, Card } from 'tabler-react';\nimport SiteWrapper from '../SiteWrapper';\nimport { toast } from 'react-toastify';\n\nconst OntologyLoading = () => {\n const [excelClassesFile, setExcelClassesFile] = useState('')\n const [owlClassesFile, setOwlClassesFile] = useState('')\n\n const uploadExcelFile = () => {\n if (excelClassesFile !== '') {\n var data = new FormData()\n data.append('file', excelClassesFile)\n axios.post('/api/excel_classes', data)\n .then((result) => {\n toast.success('Fichier mis a jour avec succès !')\n })\n .catch((error) => {\n toast.error(\"Une erreur s'est produite.\")\n console.log(error)\n })\n } else {\n toast.error(\"Aucun fichier selectionné.\")\n }\n\n }\n\n const loadExcelFile = (file) => {\n setExcelClassesFile(file)\n }\n\n const uploadOwlFile = () => {\n if (owlClassesFile !== '') {\n var data = new FormData()\n data.append('file', owlClassesFile)\n axios.post('/api/owl_classes', data)\n .then((result) => {\n toast.success('Fichier mis a jour avec succès !')\n })\n .catch((error) => {\n toast.error(\"Une erreur s'est produite.\")\n console.log(error)\n })\n } else {\n toast.error(\"Aucun fichier selectionné.\")\n\n }\n\n\n }\n\n const loadOwlFile = (file) => {\n setOwlClassesFile(file)\n }\n\n\n\n return (\n \n \n
\n
\n\n
\n \n\n \n Ontologie classes (OWL)\n \n\n \n loadOwlFile(e.target.files[0])} />\n\n \n \n \n Téléverser\n \n \n Télécharger la dernière version\n \n \n\n \n
\n\n {/*
*/}\n
\n \n\n \n Instances et leurs classes (Excel)\n \n \n loadExcelFile(e.target.files[0])} />\n \n \n \n Téléverser\n \n \n Télécharger la dernière version\n \n \n\n \n
\n\n
\n
\n\n
\n
\n )\n}\n\nexport default OntologyLoading;","import { Page, Card } from 'tabler-react';\nimport SiteWrapper from '../SiteWrapper';\n\nconst OntologyLoading = () => {\n\treturn (\n \n \n\n
\n
\n\n
\n \n\n \n Tiddlers lists\n \n\n \n\n
\n\n tiddlers 1\n\t\t\t\t\ttiddlers 2\n\t\t\t\t\ttiddlers 3\n\t\t\t\t\ttiddlers 4\n\t\t\t\t\ttiddlers 5\t\t\t\t\t\n\n\n
\n
\n
\n
\n\n {/*
*/}\n
\n \n\n \n Tiddlers alignement\n \n\n \n here goes alignment\n \n\n \n
\n\n
\n
\n\n
\n
\n )\n}\nexport default OntologyLoading;","import * as React from \"react\";\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\nimport \"tabler-react/dist/Tabler.css\";\nimport './App.css'\nimport TiddlyWiki from './pages/TiddlyWiki'\nimport TiddlyMapView from './pages/TiddlyMapView'\nimport TiddlyMapExportList from './pages/TiddlyMapExport/index'\nimport TiddlyMapExportShow from './pages/TiddlyMapExport/show'\nimport SparqlRequest from './pages/SparqlRequest'\nimport OntologyLoading from './pages/OntologyLoading'\nimport TiddlersMapping from './pages/TiddlersMapping'\n\nconst Error404 = () =>

404 PAGE

\n\nconst App = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n\t\t \n {/* */}\n {/* \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n */}\n \n \n \n \n );\n}\n\nexport default App;","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport 'bootstrap/dist/css/bootstrap.min.css'; // add this\nimport './index.css';\nimport '@neos21/bootstrap3-glyphicons/dist/css/bootstrap3-glyphicons.min.css'\nimport reportWebVitals from './reportWebVitals';\nimport App from './App';\n\nReactDOM.render(, document.getElementById('root'));\nreportWebVitals(console.log);\n"],"sourceRoot":""}