{"version":3,"sources":["webpack:///./src/main/web/components/utils/ComponentUtils.ts","webpack:///./src/main/web/components/utils/Action.ts","webpack:///./src/main/web/components/utils/HideableLink.ts","webpack:///./src/main/web/components/utils/ControlledProps.ts","webpack:///./src/main/web/components/ui/overlay/OverlayDialogEvents.ts","webpack:///./src/main/web/components/ui/notification/index.ts","webpack:///./src/main/web/components/ui/overlay/index.ts","webpack:///./src/main/web/components/utils/index.ts","webpack:///./src/main/web/app/page/PageViewer.ts","webpack:///./src/main/web/components/ui/spinner/index.ts","webpack:///./src/main/web/components/ui/overlay/OverlayDialog.ts","webpack:///./src/main/web/app/bootstrap.ts","webpack:///./src/main/web/components/ui/notification/ErrorNotification.ts","webpack:///./src/main/web/components/ui/notification/ErrorPresenter.tsx","webpack:///./src/main/web/components/ui/overlay/OverlaySystem.ts","webpack:///./src/main/web/components/ui/overlay/OverlayDialogTrigger.ts","webpack:///./src/main/web/components/ui/overlay/OverlayDialogContent.ts","webpack:///./src/main/web/components/ui/spinner/Spinner.ts","webpack:///./src/main/web/components/utils/LoadingBackdrop.ts","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/n3/lib sync ^\\.\\/N3.*$","webpack:///./src/main/web/components/utils/Reparentable.tsx","webpack:///./components.json","webpack:///./src/main/web/components/ui/notification/NotificationSystem.ts"],"names":["isValidChild","child","Array","isArray","Boolean","type","hasBaseDerivedRelationship","baseConstructor","derivedConstructor","prototype","componentHasType","componentDisplayName","toString","displayName","name","universalChildren","children","length","Action","initalValue","pool","Kefir","fn","args","plug","constant","$property","toProperty","props","state","isVisible","onClick","this","setState","render","css","_","isUndefined","className","D","i","a","bind","linkText","Component","HideableLink","hasControlledProps","componentClass","propTypes","onControlledPropChange","event","EventMaker","CloseEvent","OverlaySystem","renderOverlaySystem","registerOverlaySystem","getOverlaySystem","prepareResultData","data","each","results","bindings","binding","map","head","vars","bindingVar","Rdf","literal","BrowserPersistence","context","cancellation","Cancellation","loadingTemplate","derive","loadPage","errorMessage","maybe","Nothing","loading","deriveAndCancel","loadAndParseTemplate","iri","params","observe","value","pageContent","error","err","Just","componentDidMount","unsubscribe","listen","eventType","callback","action","onCancel","componentDidUpdate","noScroll","window","scroll","scrollToAnchor","componentWillReceiveProps","nextProps","isEqual","componentWillUnmount","cancelAll","isJust","createElement","ErrorNotification","get","defaultExpanded","BaseSemanticContextProvider","repository","getCurrentRepository","div","id","noBackdrop","LoadingBackdrop","pageIri","pageContextIri","PageService","loadRenderedTemplate","flatMap","page","fromPromise","ModuleRegistry","parseHtmlToReact","templateHtml","then","res","fragment","getCurrentUrl","element","document","querySelector","scrollIntoView","PageViewerComponent","PageViewer","createFactory","Spinner","SpinnerComponent","SpinnerProps","Modal","ReactBootstrap","ModalHeader","Header","ModalTitle","Title","ModalBody","Body","OverlayDialog","b","block","assign","onHide","backdrop","dialogClassName","classNames","bsSize","undefined","title","closeButton","showDialog","Children","toArray","bodyComponent","find","bodyChild","only","show","hide","cancel","target","anchorComponent","anchorChild","preventDefault","cloneElement","OverlayComponent","initModuleRegistry","ReactErrorCatcher","initReactErrorCatcher","init","Panel","console","isTimeout","isTimeoutError","defaultTitleForError","CLASS_NAME","errorHeader","p","style","marginRight","color","span","collapsible","header","ErrorPresenter","status","wrapError","response","tryExtractResponseFromError","text","responseText","statusText","JSON","stringify","message","rawResponse","convertLineBreaks","parts","split","lines","push","_system","key","dialog","dialogs","set","remove","hideAll","clear","OrderedMap","modal","semanticContext","Maybe","fromNullable","c","getOrElse","SemanticContextProvider","OverlaySystemComponent","ref","_this","refs","OverlayTrigger","component","factory","OverlayContent","showMessage","showSpinner","Number","isFinite","spinnerDelay","showSpinnerTimeout","setTimeout","messageDelay","showMessageTimeout","clearTimeout","defaultProps","showBackdrop","showBackdropTimeout","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","webpackContextKeys","Object","resolve","module","exports","store","getMountNode","uid","inUse","mountNode","height","el","appendChild","renderChildrenIntoNode","removeMountNode","ReactDOM","unmountComponentAtNode","node","React","unstable_renderSubtreeIntoContainer","flex","overflowY","Reparentable","tagName","onLoaded","comp","default","__htmlTag","renderNotificationSystem","ReactNotificationSystem","allowHTML","NotificationItem","DefaultStyle","padding","fontSize","registerNotificationSystem","addNotification","notification","exception","removeNotification","uidOrNotification","clearNotifications"],"mappings":"8EAyBA,SAAgBA,aAAaC,GAC3B,MAAwB,iBAAVA,GAAgC,OAAVA,IAAmBC,MAAMC,QAAQF,IAAUG,QAASH,EAAcI,MAyCxG,SAAgBC,2BAA2BC,EAAsBC,GAC/D,OACEA,IAAuBD,GACtBC,EAAmBC,WAAaD,EAAmBC,qBAAqBF,E,iDA7C7E,4BAIA,4BAAgBG,iBAA0BT,EAAkBI,GAC1D,OACEL,aAAaC,IACbI,GACsB,mBAAfJ,EAAMI,MACG,mBAATA,GACPC,2BAA2BD,EAAMJ,EAAMI,OAO3C,gCAAgBM,qBAAqBV,GACnC,MAAqB,iBAAVA,GAAuC,iBAAVA,EAC/BA,EAAMW,WACJZ,aAAaC,GACI,iBAAfA,EAAMI,KACRJ,EAAMI,KAGLJ,EAAMI,KAAwBQ,aAAgBZ,EAAMI,KAAwBS,UAGtF,GAcJ,wDAaA,6BAAgBC,kBAAkBC,GAChC,OAAOd,MAAMC,QAAQa,IAAiC,IAApBA,EAASC,OAAeD,EAAS,GAAKA,I,sEC9D1E,YAOA,kBAAgBE,OAAUC,GACxB,IAAMC,EAAOC,EAAMD,OACbE,GAAU,SAAUC,GACxBH,EAAKI,KAAKH,EAAMI,SAASF,KAM3B,OAJIJ,GACFG,GAAGH,GAELG,GAAGI,UAAYN,EAAKO,aACbL,K,kFChBT,OACA,QACA,QAMA,cAIE,sBAAYM,GAAZ,MACE,YAAMA,IAAM,K,OACZ,EAAKC,MAAQ,CAAEC,WAAW,G,EAc9B,OApBkC,4BASxB,uBAAAC,QAAR,WACEC,KAAKJ,MAAMG,UACXC,KAAKC,SAAS,CAAEH,WAAW,KAG7B,uBAAAI,OAAA,WACE,IAAIC,EAAOC,EAAEC,YAAYL,KAAKJ,MAAMU,WAAoC,qCAAvBN,KAAKJ,MAAMU,UAC5D,OAAON,KAAKH,MAAMC,UACdS,EAAEC,EAAE,CAAEF,UAAWH,GAAOI,EAAEE,EAAE,CAAEV,QAASC,KAAKD,QAAQW,KAAKV,OAASA,KAAKJ,MAAMe,WAC7E,MAER,aApBA,CAAkC,EAAAC,WAArB,EAAAC,eAsBb,UAAeA,G,oECnBf,8BAAgBC,mBAAmBC,GACjC,OAAO3C,QACqB,mBAAnB2C,GAAiCA,EAAeC,WAAaD,EAAeC,UAAUC,0B,sECdjG,IASMC,EATN,OAS+CC,WAElC,EAAAC,WAAaF,EAAM,wB,iFCVhC,yBACA,yBACA,0B,iFCFA,SAAS,EAAAG,cAAA,EAAAA,cAAe,EAAAC,oBAAA,EAAAA,oBAAqB,EAAAC,sBAAA,EAAAA,sBAAuB,EAAAC,iBAAA,EAAAA,iBACpE,0B,iFCDA,QAGA,QAOA,6BAAgBC,kBAAkBC,GAChC,OAAOtB,EAAEuB,KAAKD,EAAKE,QAAQC,UAAU,SAACC,GACpC,OAAA1B,EAAE2B,IAAIL,EAAKM,KAAKC,MAAM,SAACC,GAAe,OAACJ,EAAQI,GAAcJ,EAAQI,GAAc,EAAAC,IAAIC,QAAQ,WAInG,yBACA,0BACA,0BACA,0BACA,0BAGA,aAAS,EAAAC,mBAAA,EAAAA,oB,iFCvBT,OACA,QACA,QACA,QACA,QAEA,QAEA,QACA,SACA,QACA,QACA,SACA,SACA,SAqBA,cAIE,6BAAYzC,EAAc0C,GAA1B,MACE,YAAM1C,EAAO0C,IAAQ,K,OAJN,EAAAC,aAAe,IAAI,EAAAC,aAC5B,EAAAC,gBAAkB,EAAKF,aAAaG,SAqEpC,EAAAC,SAAW,SAAC/C,GAClB,EAAKK,SAAS,CAAE2C,aAAcC,EAAMC,UAAmBC,SAAS,IAChE,EAAKN,gBAAkB,EAAKF,aAAaS,gBAAgB,EAAKP,iBAC9D,EAAKA,gBAAgBV,IAAI,EAAKkB,qBAAqBrD,EAAMsD,IAAKtD,EAAM0C,QAAS1C,EAAMuD,SAASC,QAAQ,CAClGC,MAAO,SAACC,GACN,EAAKrD,SAAS,CAAEqD,YAAW,EAAEP,SAAS,KAExCQ,MAAO,SAACC,GACN,EAAKvD,SAAS,CAAE2C,aAAcC,EAAMY,KAAKD,GAAMT,SAAS,QAzE5D,EAAKlD,MAAQ,CACXkD,SAAS,EACTH,aAAcC,EAAMC,W,EAmH1B,OA3HyC,mCAYhC,8BAAAY,kBAAP,sBACE1D,KAAK2C,SAAS3C,KAAKJ,OAGnB,IAAM+D,EAAc,EAAAC,OAAO,CACzBC,UAAW,YACXC,SAAU,SAAC5C,GACY,YAAjBA,EAAM6C,QACR,EAAKpB,SAAS,EAAK/C,UAIzBI,KAAKuC,aAAayB,SAASL,IAGtB,8BAAAM,mBAAP,WACOjE,KAAKJ,MAAMsE,WACdC,OAAOC,OAAO,EAAG,GACjBpE,KAAKqE,mBAIF,8BAAAC,0BAAP,SAAiCC,IACQ,IAAnC,EAAAC,QAAQxE,KAAKJ,MAAO2E,IACtBvE,KAAK2C,SAAS4B,IAIlB,8BAAAE,qBAAA,WACEzE,KAAKuC,aAAamC,aAGb,8BAAAxE,OAAP,WACE,OAAIF,KAAKH,MAAM+C,aAAa+B,OACnB,EAAAC,cAAc,EAAAC,kBAAmB,CAAEjC,aAAc5C,KAAKH,MAAM+C,aAAakC,MAAOC,iBAAiB,IAcnG,EAAAH,cACL,EAAAI,4BACA,CAAEC,WAAY,EAAAC,wBACd3E,EAAE4E,IACA,CAAEC,GAAI,oBACNpF,KAAKH,MAAMkD,UAAY/C,KAAKJ,MAAMyF,WAAa,EAAAT,cAAc,EAAAU,iBAAmB,KAChFtF,KAAKH,MAAMyD,eA0BT,8BAAAL,qBAAR,SACEsC,EACAC,EACArC,GAEA,OAAOsC,EAAYA,YAAYC,qBAAqBH,EAASC,EAAgBrC,GAC1EwC,SAAQ,SAACC,GACR,OAAAvG,EAAMwG,YACJ,EAAAC,eAAeC,iBACb,0CAEMH,EAAKI,aAAY,wCAGvBC,MACA,SAACC,GAAQ,OAACA,EAA0BtG,MAAMZ,gBAI/CW,cAGG,8BAAA0E,eAAR,WACE,IAAM8B,EAAW,EAAAC,gBAAgBD,WACjC,GAAIA,EAAU,CACZ,IAAME,EAAUC,SAASC,cAAcJ,GACnCE,GACFA,EAAQG,gBAAe,KAI/B,oBA3HA,CAAyC,EAAA5F,WAA5B,EAAA6F,sBA6HA,EAAAC,WAAa,EAAAC,cAAcF,GACxC,UAAe,EAAAC,Y,qECjKf,aAAS,EAAAE,QAAA,EAAAC,iBAA6B,EAAAC,aAAA,EAAAA,c,iFCAtC,OACA,QACA,SACA,QACA,SACA,OAEA,SAEA,SACA,QAEA,SACA,SACA,SACA,UAEMC,EAAQ,EAAAJ,cAAcK,EAAeD,OACrCE,EAAc,EAAAN,cAAcK,EAAeD,MAAMG,QACjDC,EAAa,EAAAR,cAAcK,EAAeD,MAAMK,OAChDC,EAAY,EAAAV,cAAcK,EAAeD,MAAMO,MAErD,QAYa,EAAAC,cAAyC,SAAC3H,GAErD,IAAMvB,GAAOuB,EAAMvB,MAAwB,UAAfuB,EAAMvB,MAAmC,aAAfuB,EAAMvB,KAAoC,QAAbuB,EAAMvB,KAEnFiC,EAAYV,EAAMU,UAAYV,EAAMU,UAAqB,aAATjC,EAAsB,mBAAqB,gBAE3FmJ,EAAIC,EAAMnH,GAGhB,OAAOyG,EACLW,EACE,GACA9H,EAEA,CACE+H,OAAQ/H,EAAM+H,OACdC,SAAmB,UAATvJ,GAAmB,SAC7BiC,UAAWkH,EAAE,IAAI5I,WACjBiJ,gBAAiBC,EAAW,eAAgBN,EAAE,UAAU5I,YACxDmJ,OAAwB,UAAfnI,EAAMvB,WAAmC2J,IAAfpI,EAAMvB,OAAuBuB,EAAMmI,OAAwB,KAAfnI,EAAMmI,SAGzFnI,EAAMqI,MACFhB,EAAY,CAAEiB,aAAa,EAAM5H,UAAWkH,EAAE,UAAU5I,YAAcuI,EAAW,GAAIvH,EAAMqI,QAC3F,KACJZ,EACE,CACE/G,UAAWkH,EAAE,QAAQ5I,YAEvBgB,EAAMZ,YA8CZ,kBACE,0BAAYY,EAA8B0C,GAA1C,MACE,YAAM1C,EAAO0C,IAAQ,K,OAmDf,EAAA6F,WAAa,WACnB,IAAMnJ,EAAW,EAAAoJ,SAASC,QAAQ,EAAKzI,MAAMZ,UACvCsJ,EAAgBlI,EAAEmI,KAAKvJ,GAAU,SAACf,GAAU,SAAAS,iBAAiBT,EAAO,cACpEuK,EAAa,EAAAJ,SAASK,KAAKH,GAAqC1I,MAAMZ,SAC5E,EAAAwC,mBAAmBkH,KACjB,EAAK9I,MAAMqI,MACX,EAAAV,cAAc,CACZmB,MAAM,EACNT,MAAO,EAAKrI,MAAMqI,MAClB5J,KAAM,EAAKuB,MAAMvB,KACjBiC,UAAW,EAAKV,MAAMU,UACtBqH,OAAQ,EAAKA,OACb3I,SAAUwJ,EACVT,OAAQ,EAAKnI,MAAMmI,WAKjB,EAAAJ,OAAS,WACf,EAAAnG,mBAAmBmH,KAAK,EAAK/I,MAAMqI,Q,EAEvC,OA1EsC,gCAKpC,2BAAAvE,kBAAA,sBACM1D,KAAKJ,MAAM8I,MAEb1I,KAAKmI,aAIHnI,KAAKJ,MAAMwF,IAIbpF,KAAK4I,OAAO7G,IACV,EAAA6B,OAAO,CACLiF,OAAQ7I,KAAKJ,MAAMwF,GACnBvB,UAAW,EAAAzC,cAEbgC,QAAQ,CACRC,MAAO,WACL,EAAKsE,aAMb,2BAAAlD,qBAAA,WACE,YAAMA,qBAAoB,WAC1BzE,KAAK2H,UAGP,2BAAAzH,OAAA,sBAEQlB,EAAW,EAAAoJ,SAASC,QAAQrI,KAAKJ,MAAMZ,UACvC8J,EAAkB1I,EAAEmI,KAAKvJ,GAAU,SAACf,GAAU,SAAAS,iBAAiBT,EAAO,cAE5E,GAAI6K,EAAiB,CACnB,IAAMC,EAAe,EAAAX,SAASK,KAAKK,GAAuClJ,MAAMZ,SAC1EY,EAAQ,CACZG,QAAS,SAACmB,GACRA,EAAM8H,iBACN,EAAKb,eAGT,OAAO,EAAAc,aAAaF,EAAanJ,GAEjC,OAAO,MAyBb,iBA1EA,CAAsC,EAAAgB,WAAzB,EAAAsI,mBA2Eb,UAAeA,G,qECtLf,OACA,OAIA,OAEA,aAEA,8BAAgBC,qBACd,EAAAC,kBAAkBC,wBAClB,EAAAvD,eAAewD,S,iFCbjB,OACA,QACA,QAEA,SAEMC,EAAQ,EAAA5C,cAAcK,EAAeuC,OAgB3C,cACE,2BAAY3J,G,OACV,YAAMA,IAAM,KAkChB,OApCuC,iCAKrC,4BAAA8D,kBAAA,WACE,IAAMH,EAAQvD,KAAKJ,MAAMgD,aACrBW,GAA0B,iBAAVA,GAClBiG,QAAQjG,MAAMA,IAIlB,4BAAArD,OAAA,WACU,IAAA0C,EAAA,WAAAA,aACF6G,EAAYC,eAAe9G,GAE3BqF,EAAQjI,KAAKJ,MAAMqI,OAsB7B,SAAS0B,qBAAqBpG,GAC5B,OAAOmG,eAAenG,GAAS,kBAAoB,6CAvBfoG,CAAqB/G,GACjDtC,EAAesJ,uBAAc5J,KAAKJ,MAAMU,WAAa,IACrDuJ,EAActJ,EAAEuJ,EACpB,GACAvJ,EAAEC,EAAE,CACFF,UAAW,6BACXyJ,MAAO,CAAEC,YAAa,OAAQC,MAAO,SAEvC1J,EAAE2J,KAAK,GAAIjC,IAEb,OAAOsB,EACL,CACEY,aAAa,EACbC,OAAQP,EACRvJ,UAAS,EACTyE,gBAAiB0E,GAAazJ,KAAKJ,MAAMmF,iBAE3CnC,EAAe,EAAAgC,cAAc,EAAAyF,eAAgB,CAAE9G,MAAOX,IAAkB5C,KAAKJ,MAAMZ,WAGzF,kBApCA,CAAuC,EAAA4B,WA0CvC,SAAS8I,eAAenG,GACtB,IAAMA,GAA0B,iBAAVA,EACpB,OAAO,EAED,IAAA+G,EAAA,EAAAA,OACR,OAAOA,GAAqB,MAAXA,EA/CN,EAAAzF,oBAkDb,UAAeA,G,iFCzEf,OACA,OACA,QAOA,wC,+CA4BA,OA5BoC,8BAClC,yBAAA3E,OAAA,WACE,OAAKF,KAAKJ,MAAM2D,MAGTvD,KAAKuK,UAAUvK,KAAKJ,MAAM2D,OAFxB,MAKX,yBAAAgH,UAAA,SAAUhH,GACR,IAAMiH,EAuBV,SAASC,4BAA4BlH,GACnC,IAAMA,GAA0B,iBAAVA,EACpB,OAEF,GAAI,WAAYA,GAAiC,iBAAjBA,EAAM+G,OAAqB,CACzD,IACME,EAAWjH,EAAMiH,SAQvB,MAAO,CAAEE,KAPe,iBAAbF,EACMA,EACc,iBAAbA,GAAkD,iBAAlBA,EAASE,KAC1CF,EAASE,MAERnH,EAAMoH,cAAgB,IAAM,KAAOpH,EAAMqH,YAAc,IAAM,IAAMC,KAAKC,UAAUN,GAEvEF,OAAQ/G,EAAM+G,QACtC,GAAI,YAAa/G,GAAS,gBAAiBA,EAAO,CACjD,QAAEwH,EAAA,EAAAA,QAASC,EAAA,EAAAA,YACjB,MAAO,CAAEN,KAASK,EAAO,KAAKC,GAEhC,OA1CmBP,CAA4BlH,GAC7C,GAAIiH,EACF,OAAOS,kBAAkBjL,KAAKJ,MAAMU,UAAWkK,EAASE,MACnD,GAAqB,iBAAVnH,GAAsB,YAAaA,EAAO,CAClD,IAAAwH,EAAA,EAAAA,QACR,OAAOE,kBAAkBjL,KAAKJ,MAAMU,UAAWyK,GAC1C,OAAI7M,MAAMC,QAAQoF,IAAUA,EAAMtE,OAAS,EAC3B,IAAjBsE,EAAMtE,OACDe,KAAKuK,UAAUhH,EAAM,IAErBhD,EAAE4E,IAAG,MAAL5E,EAAC,kBAAK,CAAED,UAAWN,KAAKJ,MAAMU,WAAa,4BAA+BiD,EAAMxB,IAAI/B,KAAKuK,cAG7E,iBAAVhH,IACTA,EAAQsH,KAAKC,UAAUvH,OAAOyE,EAAW,IAEpCiD,kBAAkBjL,KAAKJ,MAAMU,UAAWiD,KAGrD,eA5BA,CAAoC,EAAA3C,WAsDpC,SAASqK,kBAAkB3K,EAAmByK,GAC5C,IAAMG,EAAQH,EAAQI,MAAM,MAC5B,GAAqB,IAAjBD,EAAMjM,OACR,OAAO,uBAAKqB,UAAWA,IAGzB,IADA,IAAM8K,EAA0B,CAACF,EAAM,IAC9B1K,EAAI,EAAGA,EAAI0K,EAAMjM,OAAQuB,IAChC4K,EAAMC,KAAK,4BACXD,EAAMC,KAAKH,EAAM1K,IAEnB,OAAOD,EAAE4E,IAAG,MAAL5E,EAAC,kBAAK,CAAED,UAAS,IAAO8K,IAhEpB,EAAAf,kB,yEC4DTiB,E,QApEJ,OACA,QACA,QACA,QAEA,QAmBA,cACE,gCAAY1L,EAAc0C,GAA1B,MACE,YAAM1C,EAAO0C,IAAQ,K,OAsBhB,EAAAoG,KAAO,SAAC6C,EAAaC,EAA2BlJ,GACrD,EAAKrC,SAAS,CACZwL,QAAS,EAAK5L,MAAM4L,QAAQC,IAAIH,EAAK,CAAElF,QAASmF,EAAQlJ,QAAO,OAI5D,EAAAqG,KAAO,SAAC4C,GACb,EAAKtL,SAAS,CACZwL,QAAS,EAAK5L,MAAM4L,QAAQE,OAAOJ,MAIhC,EAAAK,QAAU,WACf,EAAK3L,SAAS,CACZwL,QAAS,EAAK5L,MAAM4L,QAAQI,WAlC9B,EAAKhM,MAAQ,CACX4L,QAAS,EAAAK,c,EAoCf,OAzCqC,sCASnC,iCAAA5L,OAAA,WACE,OAAOK,EAAE4E,IACP,GACAnF,KAAKH,MAAM4L,QACR1J,KAAI,SAACgK,EAAOR,GACX,IAAMS,EAAkBC,EAAMC,aAAaH,EAAMzJ,SAC9CP,KAAI,SAACoK,GAAM,OAAAA,EAAEH,mBACbI,UAAU,IACLnH,EAAA,EAAAA,WAAYpD,EAAA,EAAAA,SACpB,OAAO,EAAA+C,cAAc,EAAAyH,wBAAyB,CAAEd,IAAG,EAAEtG,WAAU,EAAEpD,SAAQ,GAAIkK,EAAM1F,YAEpFgC,YAqBT,uBAzCA,CAAqC,EAAAzH,WAoDrC,+BAAgBU,sBACd,OAAO,EAAAsD,cAAc0H,EAAwB,CAAEf,IAVtB,gBAU+CgB,IAV/C,mBAa3B,iCAAgBhL,sBAAsBiL,GACpClB,EAAUkB,EAAMC,KAAuB,eAGzC,4BAAgBjL,mBACd,OAAO8J,I,iFCrFT,OACA,QAGA,wC,+CAIA,OAJoC,8BAClC,yBAAApL,OAAA,WACE,OAAOK,EAAE4E,IAAI,GAAInF,KAAKJ,MAAMZ,WAEhC,eAJA,CAAoC,EAAA4B,WAAvB,EAAA8L,iBAOA,EAAAC,UAAYD,EACZ,EAAAE,QAAU,EAAAjG,cAAc,EAAAgG,WACrC,UAAe,EAAAA,W,iFCbf,OACA,QAGA,wC,+CAIA,OAJ6B,8BAC3B,yBAAAzM,OAAA,WACE,OAAOK,EAAE4E,IAAI,GAAInF,KAAKJ,MAAMZ,WAEhC,eAJA,CAA6B,EAAA4B,WAOhB,EAAA+L,UAAYE,EACZ,EAAAD,QAAU,EAAAjG,cAAc,EAAAgG,WACrC,UAAe,EAAAA,W,iFCbf,OACA,OACA,QAmBA,cA2BE,0BAAY/M,GAAZ,MACE,YAAMA,IAAM,K,OACZ,EAAKC,MAAQ,CACXiN,aAAa,EACbC,aAAa,G,EAcnB,OA7CsC,gCASpC,2BAAArJ,kBAAA,sBACMsJ,OAAOC,SAASjN,KAAKJ,MAAMsN,gBAC7BlN,KAAKmN,mBAAqBC,YAAW,WAAM,SAAKnN,SAAS,CAAE8M,aAAa,MAAS/M,KAAKJ,MAAMsN,eAE1FF,OAAOC,SAASjN,KAAKJ,MAAMyN,gBAC7BrN,KAAKsN,mBAAqBF,YAAW,WAAM,SAAKnN,SAAS,CAAE6M,aAAa,MAAS9M,KAAKJ,MAAMyN,gBAIhG,2BAAA5I,qBAAA,gBACyC,IAA5BzE,KAAKmN,oBACdI,aAAavN,KAAKmN,yBAEmB,IAA5BnN,KAAKsN,oBACdC,aAAavN,KAAKsN,qBAYtB,2BAAApN,OAAA,WACE,OAAOK,EAAE2J,KACP,CACE5J,UAAWwH,EAAW,iBAAkB9H,KAAKJ,MAAMU,WACnDyJ,MAAO/J,KAAKJ,MAAMmK,OAEpB/J,KAAKH,MAAMkN,YAAcxM,EAAEC,EAAE,CAAEF,UAAW,yBAA4B,KACtEN,KAAKH,MAAMiN,YAAcvM,EAAE2J,KAAK,CAAE5J,UAAW,2BAA6B,kBAAoB,OAzClF,iBAAAkN,aAAsC,CACpDN,aAAc,IACdG,aAAc,KA0ClB,iBA7CA,CAAsC,EAAAzM,WAAzB,EAAAiG,mBA+CA,EAAAD,QAAU,EAAAD,cAAcE,GACrC,UAAe,EAAAD,S,iFCrEf,OACA,QAEA,SAaA,cAGE,yBAAYhH,GAAZ,MACE,YAAMA,IAAM,K,OACZ,EAAKC,MAAQ,CACX4N,cAAc,G,EAepB,OArBqC,+BAUnC,0BAAA/J,kBAAA,sBACE1D,KAAK0N,oBAAsBN,YAAW,WAAM,SAAKnN,SAAS,CAAEwN,cAAc,MAAS,MAGrF,0BAAAhJ,qBAAA,WACE8I,aAAavN,KAAK0N,sBAGpB,0BAAAxN,OAAA,WACE,OAAOF,KAAKH,MAAM4N,aAAelN,EAAE4E,IAAI,CAAE7E,UAAW,qBAAuB,EAAAsE,cAAc,EAAAgC,UAAYrG,EAAE4E,IAAI,KAE/G,gBArBA,CAAqC,EAAAvE,WAAxB,EAAA0E,mB,gFCnCb,IAAIvD,EAAM,CACT,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,YAAa,IACb,eAAgB,IAChB,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,QAAS,IACT,aAAc,IACd,gBAAiB,IACjB,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,YAAa,IACb,eAAgB,IAChB,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,KAIf,SAAS4L,eAAeC,GACvB,IAAIxI,EAAKyI,sBAAsBD,GAC/B,OAAOE,EAAoB1I,GAE5B,SAASyI,sBAAsBD,GAC9B,IAAIE,EAAoBC,EAAEhM,EAAK6L,GAAM,CACpC,IAAII,EAAI,IAAIC,MAAM,uBAAyBL,EAAM,KAEjD,MADAI,EAAEE,KAAO,mBACHF,EAEP,OAAOjM,EAAI6L,GAEZD,eAAeQ,KAAO,SAASC,qBAC9B,OAAOC,OAAOF,KAAKpM,IAEpB4L,eAAeW,QAAUT,sBACzBU,EAAOC,QAAUb,eACjBA,eAAevI,GAAK,K,oBC3PpB,IAAIrD,EAAM,CACT,YAAa,IACb,eAAgB,IAChB,aAAc,IACd,gBAAiB,IACjB,YAAa,IACb,eAAgB,IAChB,mBAAoB,IACpB,sBAAuB,IACvB,mBAAoB,IACpB,sBAAuB,IACvB,WAAY,IACZ,cAAe,IACf,aAAc,IACd,gBAAiB,KAIlB,SAAS4L,eAAeC,GACvB,IAAIxI,EAAKyI,sBAAsBD,GAC/B,OAAOE,EAAoB1I,GAE5B,SAASyI,sBAAsBD,GAC9B,IAAIE,EAAoBC,EAAEhM,EAAK6L,GAAM,CACpC,IAAII,EAAI,IAAIC,MAAM,uBAAyBL,EAAM,KAEjD,MADAI,EAAEE,KAAO,mBACHF,EAEP,OAAOjM,EAAI6L,GAEZD,eAAeQ,KAAO,SAASC,qBAC9B,OAAOC,OAAOF,KAAKpM,IAEpB4L,eAAeW,QAAUT,sBACzBU,EAAOC,QAAUb,eACjBA,eAAevI,GAAK,K,yHCjBpB,OACA,QAcMqJ,EAEF,GAEJ,SAASC,aAAaC,GACpB,GAAKF,EAAME,GAQTF,EAAME,GAAKC,OAAQ,MARJ,CACf,IAAMC,EAAYvI,SAAS1B,cAAc,OACzCiK,EAAU9E,MAAM+E,OAAS,OACzBL,EAAME,GAAO,CACXE,UAAS,EACTD,OAAO,GAKX,OAAOH,EAAME,GAAKE,UAkBpB,0C,+CA+BA,OA/BkC,4BAIhC,uBAAAnL,kBAAA,WACE,IAAMmL,EAAYH,aAAa1O,KAAKJ,MAAM+O,KAC1C3O,KAAK+O,GAAGC,YAAYH,GACpB7O,KAAKiP,uBAAuBJ,IAG9B,uBAAA5K,mBAAA,WACE,IAAM4K,EAAYH,aAAa1O,KAAKJ,MAAM+O,KAC1C3O,KAAKiP,uBAAuBJ,IAG9B,uBAAApK,qBAAA,YA9BF,SAASyK,gBAAgBP,GACRF,EAAME,GACdC,OAAQ,EACfxB,YAAW,WACJqB,EAAME,GAAKC,QACdO,EAASC,uBAAuBX,EAAME,GAAKE,kBACpCJ,EAAME,MAEd,KAuBDO,CAAgBlP,KAAKJ,MAAM+O,MAG7B,uBAAAM,uBAAA,SAAuBI,GAKrB,IAAMhJ,EAAUiJ,EAAMrG,aAAajJ,KAAKJ,MAAMZ,SAAiB,CAACuM,IAAKvL,KAAKJ,MAAM+O,MAChFQ,EAASI,oCAAoCvP,KAAMqG,EAASgJ,IAG9D,uBAAAnP,OAAA,sBACE,OAAO,uBAAK6J,MAAO,CAACyF,KAAM,WAAYC,UAAW,QAASlD,IAAK,SAACwC,GAAS,EAAKA,GAAKA,MAEvF,aA/BA,CAAkCO,EAAM1O,WAA3B,EAAA8O,gB,oBClEbnB,EAAOC,QAAU,SAASmB,GACtB,SAASC,SAASC,GAChB,IAAKA,EAAKC,QACR,MAAM,IAAI7B,MAAM,6BAA+B0B,EAAU,KAE3DE,EAAKC,QAAQC,UAAYJ,EAGnB,MAAe,kBAAZA,EACM,+DAA4G1J,MACjH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,+DAAsH1J,MAC3H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,wJAAqG1J,MAC1G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,qCAA6H1J,MAClI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,kEAAqG1J,MAC1G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sBAAZF,EACM,sHAA8G1J,MACnH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,2GAAqG1J,MAC1G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,6DAAgI1J,MACrI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kBAAZF,EACM,sSAAkG1J,MACvG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,kLAAyG1J,MAC9G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iBAAZF,EACM,sHAA+F1J,MACpG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,0JAAqG1J,MAC1G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,6CAAZF,EACM,+GAAoJ1J,MACzJ,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uCAAZF,EACM,sHAAyI1J,MAC9I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qCAAZF,EACM,sHAA8I1J,MACnJ,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uCAAZF,EACM,2EAAsI1J,MAC3I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,oFAA0H1J,MAC/H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qCAAZF,EACM,oFAAkI1J,MACvI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uCAAZF,EACM,uGAAqI1J,MAC1I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,+BAAZF,EACM,2EAAsH1J,MAC3H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,+BAAZF,EACM,oFAAsH1J,MAC3H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,oFAA0H1J,MAC/H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kBAAZF,EACM,iFAAsG1J,MAC3G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,kHAAuH1J,MAC5H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kCAAZF,EACM,qEAAqI1J,MAC1I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mCAAZF,EACM,oJAAqI1J,MAC1I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mCAAZF,EACM,qEAAsI1J,MAC3I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,2BAAZF,EACM,8GAAqI1J,MAC1I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kCAAZF,EACM,4DAAkJ1J,MACvJ,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,+BAAZF,EACM,2bAA4I1J,MACjJ,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kCAAZF,EACM,0EAAkJ1J,MACvJ,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,kLAAgJ1J,MACrJ,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,2BAAZF,EACM,0HAAoH1J,MACzH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,gBAAZF,EACM,kEAAsG1J,MAC3G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,kEAA8G1J,MACnH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,6CAA8F1J,MACnG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,YAAZF,EACM,kCAAqF1J,MAC1F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,+DAA+G1J,MACpH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,+BAAZF,EACM,+DAAyH1J,MAC9H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,0BAAZF,EACM,oEAA8G1J,MACnH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mCAAZF,EACM,qCAAyH1J,MAC9H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,mCAA+G1J,MACpH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,qCAA8F1J,MACnG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,qCAA0F1J,MAC/F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,qCAA2G1J,MAChH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oCAAZF,EACM,kEAA2H1J,MAChI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,6BAAZF,EACM,qCAAoH1J,MACzH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iBAAZF,GASY,oBAAZA,EARM,sRAA8G1J,MACnH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAcE,kBAAZF,EACM,yYAAgG1J,MACrG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yBAAZF,EACM,0IAAuG1J,MAC5G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,8BAAZF,EACM,oCAAgH1J,MACrH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,6BAAZF,EACM,iHAA8G1J,MACnH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,+BAAZF,EACM,2FAA6G1J,MAClH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,+BAAZF,EACM,sIAA6G1J,MAClH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kCAAZF,EACM,0FAAoH1J,MACzH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,2EAAkH1J,MACvH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qCAAZF,EACM,yKAA0H1J,MAC/H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,kHAAmH1J,MACxH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uCAAZF,EACM,mEAA6H1J,MAClI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yBAAZF,EACM,mFAAsG1J,MAC3G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oCAAZF,EACM,mEAAkH1J,MACvH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,8BAAZF,EACM,2EAAsG1J,MAC3G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kCAAZF,EACM,kHAAmH1J,MACxH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oCAAZF,EACM,yNAAuH1J,MAC5H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sCAAZF,EACM,+IAA+H1J,MACpI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,wBAAZF,EACM,iKAAkH1J,MACvH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,2BAAZF,EACM,iGAA8G1J,MACnH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sBAAZF,EACM,oEAAuG1J,MAC5G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,8GAAoG1J,MACzG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kBAAZF,EACM,qGAAgG1J,MACrG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,wBAAZF,EACM,kEAAsG1J,MAC3G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sBAAZF,EACM,qCAAmG1J,MACxG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,aAAZF,EACM,6CAAoG1J,MACzG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,qCAAqH1J,MAC1H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,0BAAZF,EACM,kFAAgH1J,MACrH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kBAAZF,EACM,4IAAmG1J,MACxG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,8GAAsG1J,MAC3G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kBAAZF,EACM,yHAAmG1J,MACxG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,kEAAuF1J,MAC5F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,6BAAZF,EACM,+IAAgH1J,MACrH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,qIAAwH1J,MAC7H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,8GAA2G1J,MAChH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,0EAA+G1J,MACpH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,0BAAZF,EACM,yNAA8G1J,MACnH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,+BAAZF,EACM,kNAA8H1J,MACnI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,wOAAqH1J,MAC1H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uCAAZF,EACM,0EAA0H1J,MAC/H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,6BAAZF,EACM,+FAAwH1J,MAC7H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yBAAZF,EACM,yJAA4G1J,MACjH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,gCAAZF,EACM,2DAA+H1J,MACpI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,6DAAkG1J,MACvG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,gMAAwH1J,MAC7H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,oEAAqH1J,MAC1H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,kEAAgH1J,MACrH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,wCAAZF,EACM,2DAA2H1J,MAChI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sCAAZF,EACM,0EAAiH1J,MACtH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qCAAZF,EACM,0EAAgH1J,MACrH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,2BAAZF,EACM,2DAAmG1J,MACxG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,2BAAZF,EACM,kGAAoG1J,MACzG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sBAAZF,EACM,6CAAoG1J,MACzG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,8BAAZF,EACM,6CAAmH1J,MACxH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,8BAAZF,EACM,6CAAmH1J,MACxH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,cAAZF,EACM,wFAAiF1J,MACtF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,qCAAyF1J,MAC9F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,2DAAyF1J,MAC9F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,4JAA0F1J,MAC/F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,gCAAZF,EACM,4EAAoG1J,MACzG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iBAAZF,EACM,kCAA6F1J,MAClG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,aAAZF,EACM,wGAA2F1J,MAChG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,qCAAyG1J,MAC9G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iBAAZF,EACM,6JAAsG1J,MAC3G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,gCAAZF,EACM,qCAAkI1J,MACvI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,8BAAZF,EACM,qCAA8H1J,MACnI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,2BAAZF,EACM,qCAAwH1J,MAC7H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,qCAA0H1J,MAC/H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,aAAZF,EACM,2EAAoF1J,MACzF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iBAAZF,EACM,2DAAsG1J,MAC3G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,eAAZF,EACM,sEAAgG1J,MACrG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,qCAA+G1J,MACpH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,qCAA+G1J,MACpH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,6EAAuH1J,MAC5H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,+BAAZF,EACM,2DAAsI1J,MAC3I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,+BAAZF,EACM,2DAAsI1J,MAC3I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,aAAZF,EACM,+EAAkF1J,MACvF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,qCAA+F1J,MACpG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kBAAZF,EACM,qCAA2F1J,MAChG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,qCAA+F1J,MACpG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,6DAA4G1J,MACjH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sBAAZF,EACM,yLAA+F1J,MACpG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,6CAAZF,EACM,6DAAmI1J,MACxI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,6CAAZF,EACM,oEAAmI1J,MACxI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,wCAAZF,EACM,6DAA2H1J,MAChI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,wCAAZF,EACM,6DAA0H1J,MAC/H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,wCAAZF,EACM,6DAA0H1J,MAC/H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,kMAAsG1J,MAC3G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yBAAZF,EACM,sFAA6G1J,MAClH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yBAAZF,EACM,sFAA2G1J,MAChH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,qCAA0H1J,MAC/H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mCAAZF,EACM,qCAA8H1J,MACnI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yCAAZF,EACM,6EAAyH1J,MAC9H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qCAAZF,EACM,yEAAiH1J,MACtH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,2BAAZF,EACM,2DAAgH1J,MACrH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,mFAAyF1J,MAC9F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,sGAA2G1J,MAChH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kCAAZF,EACM,yeAAmH1J,MACxH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yBAAZF,EACM,sIAAgH1J,MACrH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,2BAAZF,EACM,mnBAAiH1J,MACtH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mCAAZF,EACM,qCAA+H1J,MACpI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sBAAZF,EACM,6DAAwG1J,MAC7G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,8BAAZF,EACM,oEAAuH1J,MAC5H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,wBAAZF,EACM,6DAAoH1J,MACzH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,+BAAZF,EACM,+EAAiI1J,MACtI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,qCAAkH1J,MACvH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,YAAZF,EACM,23BAA4F1J,MACjG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,0BAAZF,EACM,q5BAAuH1J,MAC5H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yBAAZF,EACM,6cAAqH1J,MAC1H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,mbAAoI1J,MACzI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,kGAA8G1J,MACnH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,gCAAZF,EACM,mbAA4I1J,MACjJ,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,6DAAuI1J,MAC5I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yBAAZF,EACM,2EAA0H1J,MAC/H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,kEAAsG1J,MAC3G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,yEAAiG1J,MACtG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,qCAA4F1J,MACjG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,2DAA8G1J,MACnH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,wBAAZF,EACM,gFAAgH1J,MACrH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,oHAAwH1J,MAC7H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,WAAZF,EACM,yCAAmE1J,MACxE,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,WAAZF,EACM,yCAAmE1J,MACxE,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,YAAZF,EACM,yCAAqE1J,MAC1E,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,WAAZF,EACM,yCAAmE1J,MACxE,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,yCAAsF1J,MAC3F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,gBAAZF,EACM,yCAA4E1J,MACjF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,yCAAkF1J,MACvF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,aAAZF,EACM,yCAAuE1J,MAC5E,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,yCAAkF1J,MACvF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,cAAZF,EACM,yCAAyE1J,MAC9E,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,yCAAoF1J,MACzF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,yCAA0F1J,MAC/F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,yCAAsF1J,MAC3F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,yCAAsF1J,MAC3F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,WAAZF,EACM,yCAAmE1J,MACxE,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,gBAAZF,EACM,yCAA4E1J,MACjF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,yCAAoF1J,MACzF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iBAAZF,EACM,yCAA8E1J,MACnF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,yCAA0F1J,MAC/F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,aAAZF,EACM,yCAAuE1J,MAC5E,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,gBAAZF,EACM,wCAA6E1J,MAClF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,yCAAsF1J,MAC3F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,yCAA0F1J,MAC/F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,4DAAqG1J,MAC1G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,sdAA0F1J,MAC/F,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,4GAAgG1J,MACrG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yBAAZF,EACM,oeAAwG1J,MAC7G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,2BAAZF,EACM,uIAA+H1J,MACpI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,gCAAZF,EACM,+fAAuI1J,MAC5I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,6eAAgG1J,MACrG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uCAAZF,EACM,oEAA8G1J,MACnH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,uBAAZF,EACM,weAA+G1J,MACpH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,wBAAZF,EACM,4gBAAwG1J,MAC7G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iBAAZF,EACM,kgBAAoG1J,MACzG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,eAAZF,EACM,8dAAwG1J,MAC7G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,8BAAZF,EACM,oFAA4G1J,MACjH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kBAAZF,EACM,0HAA8F1J,MACnG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,yEAA0G1J,MAC/G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sBAAZF,EACM,gFAAgG1J,MACrG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sBAAZF,EACM,0VAAoG1J,MACzG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,8CAAZF,EACM,oNAAoI1J,MACzI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mCAAZF,EACM,wGAAkJ1J,MACvJ,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,0BAAZF,EACM,yWAA0H1J,MAC/H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sCAAZF,EACM,kOAAiJ1J,MACtJ,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,kCAAZF,EACM,sSAA0H1J,MAC/H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yDAAZF,EACM,uGAAmL1J,MACxL,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,8DAAZF,EACM,mEAA4L1J,MACjM,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,2CAAZF,EACM,4EAAyJ1J,MAC9J,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,8CAAZF,EACM,gHAA+J1J,MACpK,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yCAAZF,EACM,iFAAsI1J,MAC3I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,sBAAZF,EACM,yFAAsG1J,MAC3G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,wGAAgG1J,MACrG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,0iCAAmG1J,MACxG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,2BAAZF,EACM,2+BAAgH1J,MACrH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,yBAAZF,EACM,sfAA4G1J,MACjH,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,qBAAZF,EACM,o4BAAqG1J,MAC1G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oCAAZF,EACM,u0BAAqH1J,MAC1H,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iCAAZF,EACM,+sBAA0I1J,MAC/I,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,4BAAZF,EACM,0aAAgI1J,MACrI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,iBAAZF,EACM,2fAAoG1J,MACzG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,6BAAZF,EACM,i4BAAkI1J,MACvI,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,eAAZF,EACM,kEAAkF1J,MACvF,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,0VAAgG1J,MACrG,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,mBAAZF,EACM,kEAAwG1J,MAC7G,SAAS4J,GAEP,OADAD,SAASC,GACFA,KAKE,oBAAZF,EACM,2DAAoG1J,MACzG,SAAS4J,GAEP,OADAD,SAASC,GACFA,UAJb,I,qEC7hEZ,IAIIvE,EAJJ,OACA,SAKA,oCAAgB0E,2BACd,OAAOV,EAAM1K,cAAcqL,EAAyB,CAClD1E,IAL4B,qBAM5BgB,IAN4B,qBAO5B2D,WAAW,EACXnG,MAAO,CACLoG,iBAAkB,CAChBC,aAAc,CACZC,QAAS,OACTC,SAAU,aAOpB,sCAAgBC,2BAA2B/D,GACzClB,EAAUkB,EAAMC,KAA4B,oBAG9C,2BAAgB+D,gBACdC,EACAC,GAKA,OAHIA,GACFlH,QAAQjG,MAAMmN,GAETpF,EAAQkF,gBAAgBC,IAGjC,8BAAgBE,mBAAmBC,GACjCtF,EAAQqF,mBAAmBC,IAG7B,8BAAgBC,qBACdvF,EAAQuF","file":"default~app~page-renderer-aa00f4ff4c074c5e1620.js","sourcesContent":["/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport { ReactElement, ReactNode, ComponentClass } from 'react';\n\n/**\n * Check if react component is a valid ReactElement element.\n * in latest html-to-react invalid node can be 'false' or 'null'.\n */\nexport function isValidChild(child: ReactNode): child is ReactElement {\n return typeof child === 'object' && child !== null && !Array.isArray(child) && Boolean((child as any).type);\n}\n\nexport function componentHasType

(child: ReactNode, type: ComponentClass): child is ReactElement

{\n return (\n isValidChild(child) &&\n type &&\n typeof child.type === 'function' &&\n typeof type === 'function' &&\n hasBaseDerivedRelationship(type, child.type)\n );\n}\n\n/**\n * Returns a human-readable name for a React child component.\n */\nexport function componentDisplayName(child: ReactNode) {\n if (typeof child === 'string' || typeof child === 'number') {\n return child.toString();\n } else if (isValidChild(child)) {\n if (typeof child.type === 'string') {\n return child.type;\n } else {\n type HasDisplayName = { displayName?: string; name?: string };\n return (child.type as HasDisplayName).displayName || (child.type as HasDisplayName).name;\n }\n } else {\n return undefined;\n }\n}\n\n/**\n * @returns true if class with baseConstructor is a base class of class\n * with derivedConstructor or if classes are the same; overwise false.\n *\n * @example\n * hasBaseDerivedRelationship(Mammal, Cat) === true\n * hasBaseDerivedRelationship(Dog, Dog) === true\n * hasBaseDerivedRelationship(Animal, Tomato) === false\n * hasBaseDerivedRelationship(Dog, Animal) === false\n */\nexport function hasBaseDerivedRelationship(baseConstructor: any, derivedConstructor: any) {\n return (\n derivedConstructor === baseConstructor ||\n (derivedConstructor.prototype && derivedConstructor.prototype instanceof baseConstructor)\n );\n}\n\n/**\n * Takes any {@ReactNode} children and retuns either an array or just a\n * single {@ReactElement} if the is only one child in the children array.\n * This is required to make the forms working with, for example, react-bootstrap\n * vertical tabs. See https://github.com/facebook/react/issues/4424 for details.\n */\nexport function universalChildren(children: ReactNode): ReactNode {\n return Array.isArray(children) && children.length === 1 ? children[0] : children;\n}\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport * as Kefir from 'kefir';\n\nexport interface Action {\n (args: T): void;\n $property: Kefir.Property;\n}\n\nexport function Action(initalValue?: T): Action {\n const pool = Kefir.pool();\n const fn: any = function (args: T): void {\n pool.plug(Kefir.constant(args));\n };\n if (initalValue) {\n fn(initalValue);\n }\n fn.$property = pool.toProperty();\n return fn;\n}\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport { Component } from 'react';\nimport * as D from 'react-dom-factories';\nimport * as _ from 'lodash';\n\n/*\nComponent to render a simple a href link \nwhich will be hidden after executing the onClick action.\n*/\nexport class HideableLink extends Component<\n { onClick: () => void; linkText: string; className?: string },\n { isVisible: boolean }\n> {\n constructor(props) {\n super(props);\n this.state = { isVisible: true };\n }\n\n private onClick() {\n this.props.onClick();\n this.setState({ isVisible: false });\n }\n\n render() {\n var css = !_.isUndefined(this.props.className) ? this.props.className : 'fa fa-angle-double-down pull-right';\n return this.state.isVisible\n ? D.i({ className: css }, D.a({ onClick: this.onClick.bind(this) }, this.props.linkText))\n : null;\n }\n}\n\nexport default HideableLink;\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nexport interface ControlledPropsHandler

{\n onControlledPropChange?: (change: Partial

) => void;\n}\n\n/**\n * Returns true if the specified component class supports controlled props mode\n * by having `onControlledPropChange` prop in its `propTypes`; otherwise returns false.\n *\n * In controlled mode component notifies about its state change using provided callback\n * instead of storing the change locally inside itself.\n */\nexport function hasControlledProps(componentClass: any): boolean {\n return Boolean(\n typeof componentClass === 'function' && componentClass.propTypes && componentClass.propTypes.onControlledPropChange\n );\n}\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nimport { EventMaker } from 'platform/api/events';\n\nexport interface OverlayDialogEvents {\n /*\n * Need to be triggered when dialog should be closed.\n */\n 'OverlayDialog.Close': {}\n}\n\nconst event: EventMaker = EventMaker;\n\nexport const CloseEvent = event('OverlayDialog.Close');\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nexport * from './NotificationSystem';\nexport * from './ErrorNotification';\nexport * from './ErrorPresenter';\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nexport { OverlaySystem, renderOverlaySystem, registerOverlaySystem, getOverlaySystem } from './OverlaySystem';\nexport * from './OverlayDialog';\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport * as _ from 'lodash';\n\nimport { SparqlClient } from 'platform/api/sparql';\nimport { Rdf } from 'platform/api/rdf';\n\n/**\n * Transform sparql results to make sure that there are values in the bindings\n * for all projection variables. This simplify handling of results in visualization\n * components.\n */\nexport function prepareResultData(data: SparqlClient.SparqlSelectResult) {\n return _.each(data.results.bindings, (binding) =>\n _.map(data.head.vars, (bindingVar) => (binding[bindingVar] ? binding[bindingVar] : Rdf.literal('')))\n );\n}\n\nexport * from './LoadingBackdrop';\nexport * from './ComponentUtils';\nexport * from './Action';\nexport * from './HideableLink';\nexport * from './ControlledProps';\n\n// temporary re-export to minimize merge conflicts\nexport { BrowserPersistence } from 'platform/api/persistence';\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport { createFactory, Component, ReactElement, createElement } from 'react';\nimport * as D from 'react-dom-factories';\nimport { isEqual } from 'lodash';\nimport * as maybe from 'data.maybe';\nimport * as Kefir from 'kefir';\n\nimport { Cancellation } from 'platform/api/async';\nimport { Rdf } from 'platform/api/rdf';\nimport { getCurrentUrl } from 'platform/api/navigation';\nimport * as PageService from 'platform/api/services/page';\nimport { listen, getCurrentRepository } from 'platform/api/navigation';\nimport { BaseSemanticContextProvider } from 'platform/api/components';\nimport { ModuleRegistry } from 'platform/api/module-loader';\nimport { ErrorNotification } from 'platform/components/ui/notification';\nimport { LoadingBackdrop } from 'platform/components/utils';\n\ninterface Props {\n iri: Rdf.Iri;\n context?: Rdf.Iri;\n params?: { [index: string]: string };\n noBackdrop?: boolean;\n\n /**\n * don't scroll to the top when page is loaded,\n * e.g it doesn't make any sense to do this in case of page-loader component.\n */\n noScroll?: boolean;\n}\n\ninterface State {\n pageContent?: Array> | ReactElement;\n loading: boolean;\n errorMessage?: Data.Maybe;\n}\n\nexport class PageViewerComponent extends Component {\n private readonly cancellation = new Cancellation();\n private loadingTemplate = this.cancellation.derive();\n\n constructor(props: Props, context: any) {\n super(props, context);\n this.state = {\n loading: true,\n errorMessage: maybe.Nothing(),\n };\n }\n\n public componentDidMount() {\n this.loadPage(this.props);\n\n /* when someone refreshes the page with API we need to reload the page*/\n const unsubscribe = listen({\n eventType: 'NAVIGATED',\n callback: (event) => {\n if (event.action === 'REFRESH') {\n this.loadPage(this.props);\n }\n },\n });\n this.cancellation.onCancel(unsubscribe);\n }\n\n public componentDidUpdate() {\n if (!this.props.noScroll) {\n window.scroll(0, 0); // scroll to top when we navigated to the page\n this.scrollToAnchor();\n }\n }\n\n public componentWillReceiveProps(nextProps) {\n if (isEqual(this.props, nextProps) === false) {\n this.loadPage(nextProps);\n }\n }\n\n componentWillUnmount() {\n this.cancellation.cancelAll();\n }\n\n public render() {\n if (this.state.errorMessage.isJust) {\n return createElement(ErrorNotification, { errorMessage: this.state.errorMessage.get(), defaultExpanded: true });\n }\n\n /* This special construction here is for a good reason!\n * In templates we support special attribute 'fixed-key' which\n * guaranties that if one navigates from page to page and there is\n * component with the same 'fixed-key', then it will not be remounted.\n *\n * To support this use case we should always preserve components tree root.\n * E.g when page content is loading we can't just replace\n * 'template-content' div with Spinner, because\n * then the whole tree will be destroyed.\n */\n\n return createElement(\n BaseSemanticContextProvider,\n { repository: getCurrentRepository() },\n D.div(\n { id: 'template-content' },\n this.state.loading && !this.props.noBackdrop ? createElement(LoadingBackdrop) : null,\n this.state.pageContent\n )\n );\n }\n\n private loadPage = (props: Props) => {\n this.setState({ errorMessage: maybe.Nothing(), loading: true });\n this.loadingTemplate = this.cancellation.deriveAndCancel(this.loadingTemplate);\n this.loadingTemplate.map(this.loadAndParseTemplate(props.iri, props.context, props.params)).observe({\n value: (pageContent) => {\n this.setState({ pageContent, loading: false });\n },\n error: (err) => {\n this.setState({ errorMessage: maybe.Just(err), loading: false });\n },\n });\n };\n\n /**\n * [loadResourceContent description]\n * @param {PageViewerProps} pageIri [description]\n * @param {Rdf.Iri} pageContextIri Optional parameter to request for a page rendering\n * with page context different to the resource being\n * requested.\n * @return {Kefir.Property} [description]\n */\n private loadAndParseTemplate(\n pageIri: Rdf.Iri,\n pageContextIri?: Rdf.Iri,\n params?: { [index: string]: string }\n ): Kefir.Property[] | ReactElement> {\n return PageService.PageService.loadRenderedTemplate(pageIri, pageContextIri, params)\n .flatMap((page) =>\n Kefir.fromPromise(\n ModuleRegistry.parseHtmlToReact(\n `\n

\n ${page.templateHtml}\n
\n `\n ).then(\n (res) => (res as ReactElement).props.children // get rid of artificial div\n )\n )\n )\n .toProperty();\n }\n\n private scrollToAnchor() {\n const fragment = getCurrentUrl().fragment();\n if (fragment) {\n const element = document.querySelector(fragment);\n if (element) {\n element.scrollIntoView(true);\n }\n }\n }\n}\n\nexport const PageViewer = createFactory(PageViewerComponent);\nexport default PageViewer;\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nexport { SpinnerComponent as Spinner, SpinnerProps } from './Spinner';\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport { Props as ReactProps, ReactElement, createFactory, Children, cloneElement, SFC } from 'react';\nimport * as ReactBootstrap from 'react-bootstrap';\nimport * as assign from 'object-assign';\nimport * as _ from 'lodash';\nimport * as block from 'bem-cn';\nimport * as classNames from 'classnames';\n\nimport { listen } from 'platform/api/events';\n\nimport { componentHasType } from 'platform/components/utils';\nimport { Component } from 'platform/api/components';\n\nimport { getOverlaySystem } from './OverlaySystem';\nimport OverlayDialogTrigger from './OverlayDialogTrigger';\nimport OverlayDialogContent from './OverlayDialogContent';\nimport { CloseEvent } from './OverlayDialogEvents';\n\nconst Modal = createFactory(ReactBootstrap.Modal);\nconst ModalHeader = createFactory(ReactBootstrap.Modal.Header);\nconst ModalTitle = createFactory(ReactBootstrap.Modal.Title);\nconst ModalBody = createFactory(ReactBootstrap.Modal.Body);\n\nimport './overlay-dialog.scss';\n\n// These props are delegates of OverlayProps\nexport interface OverlayDialogProps extends ReactBootstrap.ModalDialogProps {\n onHide: () => void;\n title?: string;\n type?: string;\n className?: string;\n show?: boolean;\n bsSize?: 'lg' | 'large' | 'sm' | 'small';\n}\n\nexport const OverlayDialog: SFC = (props: OverlayDialogProps) => {\n // if type is not set or incorrect we will default silently to modal\n const type = props.type && (props.type === 'modal' || props.type === 'lightbox') ? props.type : 'modal';\n // use provided classname or choose on type\n const className = props.className ? props.className : type === 'lightbox' ? 'overlay-lightbox' : 'overlay-modal';\n\n const b = block(className);\n\n\n return Modal(\n assign(\n {},\n props,\n // we don't want to have backdrop for lightbox\n {\n onHide: props.onHide,\n backdrop: type === 'modal' ? 'static' : false,\n className: b('').toString(),\n dialogClassName: classNames('modal-dialog', b('dialog').toString()),\n bsSize: (props.type === 'modal' || props.type === undefined) && props.bsSize ? props.bsSize : null,\n }\n ),\n props.title\n ? ModalHeader({ closeButton: true, className: b('header').toString() }, ModalTitle({}, props.title))\n : null,\n ModalBody(\n {\n className: b('body').toString(),\n },\n props.children\n )\n );\n};\n\nexport interface OverlayComponentProps extends ReactProps {\n /**\n * Dialog id, needs to be defined when components should listen to events.\n */\n id?: string;\n\n /**\n * Show dialog on mount.\n *\n * @default false\n */\n show?: boolean;\n\n // title to render\n title: string;\n // type could be 'dialog' or 'lightbox', lightbox will span over all space, dialog will be small\n type?: string;\n // what dialog css class to use. Defaults to 'overlay-modal'\n // when type=modal and 'overlay-lightbox' when type=lightbox\n // css should follow BEM, example is @overlay-dialog.less/.overlay-modal\n className?: string;\n // Size of dialog. It's used when type = 'modal'.\n // Default width of the dialog is 600px.\n // Width is 900px when bsSize is equal to 'lg' or 'large'\n // and 300px when bsSize is equal to 'sm' or 'small'.\n bsSize?: 'lg' | 'large' | 'sm' | 'small';\n}\n\n/**\n * Component that displays it's contents in page-wide lightbox/overlay.\n * @see OverlayProps for props documentation\n * Usage:\n * \n * \n * \n * \n * \n * content here\n * \n * \n */\nexport class OverlayComponent extends Component {\n constructor(props: OverlayComponentProps, context: any) {\n super(props, context);\n }\n\n componentDidMount() {\n if (this.props.show) {\n // show dialog immediately when component is mounted\n this.showDialog();\n }\n\n // if 'id' is defined then we should listen to events that can be send to the dialog component\n if (this.props.id) {\n /*\n * Hide the dialog on CloseEvent.\n */\n this.cancel.map(\n listen({\n target: this.props.id,\n eventType: CloseEvent,\n })\n ).observe({\n value: () => {\n this.onHide();\n }\n });\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.onHide();\n }\n\n render() {\n // 1. find anchor child and body child\n const children = Children.toArray(this.props.children);\n const anchorComponent = _.find(children, (child) => componentHasType(child, OverlayDialogTrigger));\n\n if (anchorComponent) {\n const anchorChild = (Children.only(anchorComponent) as ReactElement).props.children;\n const props = {\n onClick: (event: React.SyntheticEvent) => {\n event.preventDefault();\n this.showDialog();\n },\n };\n return cloneElement(anchorChild, props);\n } else {\n return null;\n }\n }\n\n private showDialog = () => {\n const children = Children.toArray(this.props.children);\n const bodyComponent = _.find(children, (child) => componentHasType(child, OverlayDialogContent));\n const bodyChild = (Children.only(bodyComponent) as ReactElement).props.children;\n getOverlaySystem().show(\n this.props.title,\n OverlayDialog({\n show: true,\n title: this.props.title,\n type: this.props.type,\n className: this.props.className,\n onHide: this.onHide,\n children: bodyChild,\n bsSize: this.props.bsSize,\n })\n );\n }\n\n private onHide = () => {\n getOverlaySystem().hide(this.props.title);\n }\n}\nexport default OverlayComponent;\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\n// this module is initialized immediately after initialization of 3-rd party libraries\n// and just before the main application module\nimport '@webcomponents/custom-elements';\nimport 'core-js';\n\n// native Custom Elements support only ES6 classes\n// see https://github.com/webcomponents/webcomponentsjs#custom-elements-es5-adapterjs\nimport '@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js';\n\nimport { ReactErrorCatcher, ModuleRegistry } from 'platform/api/module-loader';\n\nexport function initModuleRegistry() {\n ReactErrorCatcher.initReactErrorCatcher();\n ModuleRegistry.init();\n}\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport { Component, ReactNode, ReactElement, createElement, createFactory } from 'react';\nimport * as D from 'react-dom-factories';\nimport * as ReactBootstrap from 'react-bootstrap';\n\nimport { ErrorPresenter } from './ErrorPresenter';\n\nconst Panel = createFactory(ReactBootstrap.Panel);\n\nconst CLASS_NAME = 'error-notification';\n\ntype ErrorValue = string | { message: string } | { responseText: string } | { status: number } | ErrorValues;\n\ninterface ErrorValues extends ReadonlyArray {}\n\nexport interface ErrorNotificationProps {\n title?: string;\n errorMessage?: ErrorValue;\n className?: string;\n children?: ReactNode;\n defaultExpanded?: boolean;\n}\n\nexport class ErrorNotification extends Component {\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n const error = this.props.errorMessage;\n if (error && typeof error === 'object') {\n console.error(error);\n }\n }\n\n render() {\n const { errorMessage } = this.props;\n const isTimeout = isTimeoutError(errorMessage);\n\n const title = this.props.title || defaultTitleForError(errorMessage);\n const className = `${CLASS_NAME} ${this.props.className || ''}`;\n const errorHeader = D.p(\n {},\n D.i({\n className: 'fa fa-exclamation-triangle',\n style: { marginRight: '10px', color: 'red' },\n }),\n D.span({}, title)\n );\n return Panel(\n {\n collapsible: true,\n header: errorHeader,\n className,\n defaultExpanded: isTimeout || this.props.defaultExpanded,\n },\n errorMessage ? createElement(ErrorPresenter, { error: errorMessage }) : this.props.children\n );\n }\n}\n\nfunction defaultTitleForError(error: ErrorValue) {\n return isTimeoutError(error) ? 'Request Timeout' : 'Error occurred! Click to see more details.';\n}\n\nfunction isTimeoutError(error: ErrorValue): boolean {\n if (!(error && typeof error === 'object')) {\n return false;\n }\n const { status } = error as { status: number };\n return status && status === 504;\n}\n\nexport default ErrorNotification;\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\nimport * as React from 'react';\nimport { Component, ReactNode, ReactElement } from 'react';\nimport * as D from 'react-dom-factories';\n\nexport interface ErrorPresenterProps {\n error: any;\n className?: string;\n}\n\nexport class ErrorPresenter extends Component {\n render() {\n if (!this.props.error) {\n return null;\n }\n return this.wrapError(this.props.error);\n }\n\n wrapError(error: any): ReactElement {\n const response = tryExtractResponseFromError(error);\n if (response) {\n return convertLineBreaks(this.props.className, response.text);\n } else if (typeof error === 'object' && 'message' in error) {\n const { message } = error as { message: string };\n return convertLineBreaks(this.props.className, message);\n } else if (Array.isArray(error) && error.length > 0) {\n if (error.length === 1) {\n return this.wrapError(error[0]);\n } else {\n return D.div({ className: this.props.className }, 'Multiple errors occured:', ...error.map(this.wrapError));\n }\n } else {\n if (typeof error !== 'string') {\n error = JSON.stringify(error, undefined, 4);\n }\n return convertLineBreaks(this.props.className, error);\n }\n }\n}\n\ntype ErrorResponse = { text: string; status?: number } | undefined;\n\nfunction tryExtractResponseFromError(error: any): ErrorResponse {\n if (!(error && typeof error === 'object')) {\n return undefined;\n }\n if ('status' in error && typeof error.status === 'number') {\n let responseText: string;\n const response = error.response;\n if (typeof response === 'string') {\n responseText = response;\n } else if (typeof response === 'object' && typeof response.text === 'string') {\n responseText = response.text;\n } else {\n responseText = (error.responseText || '') + ' ' + (error.statusText || '') + ' ' + JSON.stringify(response);\n }\n return { text: responseText, status: error.status };\n } else if ('message' in error && 'rawResponse' in error) {\n const { message, rawResponse } = error as { message: string; rawResponse: string };\n return { text: `${message}\\n${rawResponse}` };\n }\n return undefined;\n}\n\nfunction convertLineBreaks(className: string, message: string): ReactElement {\n const parts = message.split('\\n');\n if (parts.length === 0) {\n return
;\n }\n const lines: Array = [parts[0]];\n for (let i = 1; i < parts.length; i++) {\n lines.push(
);\n lines.push(parts[i]);\n }\n return D.div({ className }, ...lines);\n}\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport { Props as ReactProps, Component, ReactElement, cloneElement, createElement } from 'react';\nimport * as D from 'react-dom-factories';\nimport { OrderedMap } from 'immutable';\nimport * as Maybe from 'data.maybe';\n\nimport { SemanticContext, SemanticContextProvider } from 'platform/api/components';\n\ninterface Props extends ReactProps {}\n\ninterface StateItem {\n element: ReactElement;\n context?: SemanticContext;\n}\ninterface State {\n dialogs: OrderedMap;\n}\n\n/**\n * This is the holder of temporary top-level component, as dialog or overlay\n * OverlaySystem should be placed high in DOM tree to avoid being detached by react.\n * (now it's done in App.ts)\n *\n * Multiple overlays can be displayed at the same time.\n */\nclass OverlaySystemComponent extends Component {\n constructor(props: Props, context) {\n super(props, context);\n\n this.state = {\n dialogs: OrderedMap(),\n };\n }\n\n render() {\n return D.div(\n {},\n this.state.dialogs\n .map((modal, key) => {\n const semanticContext = Maybe.fromNullable(modal.context)\n .map((c) => c.semanticContext)\n .getOrElse({});\n const { repository, bindings } = semanticContext;\n return createElement(SemanticContextProvider, { key, repository, bindings }, modal.element);\n })\n .toArray()\n );\n }\n\n public show = (key: string, dialog: ReactElement, context?: SemanticContext) => {\n this.setState({\n dialogs: this.state.dialogs.set(key, { element: dialog, context }),\n });\n };\n\n public hide = (key: string) => {\n this.setState({\n dialogs: this.state.dialogs.remove(key),\n });\n };\n\n public hideAll = () => {\n this.setState({\n dialogs: this.state.dialogs.clear(),\n });\n };\n}\n\nconst OVERLAY_SYSTEM_REF = 'overlaySystem';\nlet _system: OverlaySystemComponent;\n\nexport interface OverlaySystem {\n show(key: string, dialog: ReactElement, context?: SemanticContext): void;\n hide(key: string): void;\n hideAll(): void;\n}\n\nexport function renderOverlaySystem() {\n return createElement(OverlaySystemComponent, { key: OVERLAY_SYSTEM_REF, ref: OVERLAY_SYSTEM_REF });\n}\n\nexport function registerOverlaySystem(_this: React.Component) {\n _system = _this.refs[OVERLAY_SYSTEM_REF] as OverlaySystemComponent;\n}\n\nexport function getOverlaySystem(): OverlaySystem {\n return _system;\n}\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport { Props as ReactProps, Component, createFactory } from 'react';\nimport * as D from 'react-dom-factories';\n\ninterface Props extends ReactProps {}\nexport class OverlayTrigger extends Component {\n render() {\n return D.div({}, this.props.children);\n }\n}\n\nexport type component = OverlayTrigger;\nexport const component = OverlayTrigger;\nexport const factory = createFactory(component);\nexport default component;\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport { Props as ReactProps, Component, createFactory } from 'react';\nimport * as D from 'react-dom-factories';\n\nexport interface Props extends ReactProps {}\nclass OverlayContent extends Component {\n render() {\n return D.div({}, this.props.children);\n }\n}\n\nexport type component = OverlayContent;\nexport const component = OverlayContent;\nexport const factory = createFactory(component);\nexport default component;\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport * as classNames from 'classnames';\nimport { Component, CSSProperties, createFactory } from 'react';\nimport * as D from 'react-dom-factories';\n\nexport interface SpinnerProps {\n className?: string;\n /** Delay before spinning gear shows up. */\n spinnerDelay?: number;\n /** Delay before wait message shows up. */\n messageDelay?: number;\n style?: CSSProperties;\n}\n\nexport interface SpinnerState {\n showMessage?: boolean;\n showSpinner?: boolean;\n}\n\n/**\n * Shows spinner only if something takes more than 0.5 second.\n */\nexport class SpinnerComponent extends Component {\n static readonly defaultProps: Partial = {\n spinnerDelay: 500,\n messageDelay: 2000,\n };\n\n private showSpinnerTimeout: any;\n private showMessageTimeout: any;\n\n componentDidMount() {\n if (Number.isFinite(this.props.spinnerDelay)) {\n this.showSpinnerTimeout = setTimeout(() => this.setState({ showSpinner: true }), this.props.spinnerDelay);\n }\n if (Number.isFinite(this.props.messageDelay)) {\n this.showMessageTimeout = setTimeout(() => this.setState({ showMessage: true }), this.props.messageDelay);\n }\n }\n\n componentWillUnmount() {\n if (typeof this.showSpinnerTimeout !== 'undefined') {\n clearTimeout(this.showSpinnerTimeout);\n }\n if (typeof this.showMessageTimeout !== 'undefined') {\n clearTimeout(this.showMessageTimeout);\n }\n }\n\n constructor(props: SpinnerProps) {\n super(props);\n this.state = {\n showMessage: false,\n showSpinner: false,\n };\n }\n\n render() {\n return D.span(\n {\n className: classNames('system-spinner', this.props.className),\n style: this.props.style,\n },\n this.state.showSpinner ? D.i({ className: 'system-spinner__icon' }) : null,\n this.state.showMessage ? D.span({ className: 'system-spinner__message' }, 'Please wait...') : null\n );\n }\n}\n\nexport const Spinner = createFactory(SpinnerComponent);\nexport default Spinner;\n","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport { Component, createElement } from 'react';\nimport * as D from 'react-dom-factories';\n\nimport { Spinner } from 'platform/components/ui/spinner';\n\ninterface State {\n showBackdrop: boolean;\n}\n\n/**\n * Covers the full screen with an overlay. Useful when one need to prevent user\n * form clicking while something is in progress.\n *\n * Element is adaptable and is shown only in 0.5 seconds to avoid annoying flickering\n * if some action takes less then that.\n */\nexport class LoadingBackdrop extends Component<{}, State> {\n private showBackdropTimeout;\n\n constructor(props) {\n super(props);\n this.state = {\n showBackdrop: false,\n };\n }\n\n componentDidMount() {\n this.showBackdropTimeout = setTimeout(() => this.setState({ showBackdrop: true }), 500);\n }\n\n componentWillUnmount() {\n clearTimeout(this.showBackdropTimeout);\n }\n\n render() {\n return this.state.showBackdrop ? D.div({ className: 'modal-backdrop in' }, createElement(Spinner)) : D.div({});\n }\n}\n","var map = {\n\t\"./af\": 396,\n\t\"./af.js\": 396,\n\t\"./ar\": 397,\n\t\"./ar-dz\": 398,\n\t\"./ar-dz.js\": 398,\n\t\"./ar-kw\": 399,\n\t\"./ar-kw.js\": 399,\n\t\"./ar-ly\": 400,\n\t\"./ar-ly.js\": 400,\n\t\"./ar-ma\": 401,\n\t\"./ar-ma.js\": 401,\n\t\"./ar-sa\": 402,\n\t\"./ar-sa.js\": 402,\n\t\"./ar-tn\": 403,\n\t\"./ar-tn.js\": 403,\n\t\"./ar.js\": 397,\n\t\"./az\": 404,\n\t\"./az.js\": 404,\n\t\"./be\": 405,\n\t\"./be.js\": 405,\n\t\"./bg\": 406,\n\t\"./bg.js\": 406,\n\t\"./bn\": 407,\n\t\"./bn.js\": 407,\n\t\"./bo\": 408,\n\t\"./bo.js\": 408,\n\t\"./br\": 409,\n\t\"./br.js\": 409,\n\t\"./bs\": 410,\n\t\"./bs.js\": 410,\n\t\"./ca\": 411,\n\t\"./ca.js\": 411,\n\t\"./cs\": 412,\n\t\"./cs.js\": 412,\n\t\"./cv\": 413,\n\t\"./cv.js\": 413,\n\t\"./cy\": 414,\n\t\"./cy.js\": 414,\n\t\"./da\": 415,\n\t\"./da.js\": 415,\n\t\"./de\": 416,\n\t\"./de-at\": 417,\n\t\"./de-at.js\": 417,\n\t\"./de-ch\": 418,\n\t\"./de-ch.js\": 418,\n\t\"./de.js\": 416,\n\t\"./dv\": 419,\n\t\"./dv.js\": 419,\n\t\"./el\": 420,\n\t\"./el.js\": 420,\n\t\"./en-au\": 421,\n\t\"./en-au.js\": 421,\n\t\"./en-ca\": 422,\n\t\"./en-ca.js\": 422,\n\t\"./en-gb\": 423,\n\t\"./en-gb.js\": 423,\n\t\"./en-ie\": 424,\n\t\"./en-ie.js\": 424,\n\t\"./en-nz\": 425,\n\t\"./en-nz.js\": 425,\n\t\"./eo\": 426,\n\t\"./eo.js\": 426,\n\t\"./es\": 427,\n\t\"./es-do\": 428,\n\t\"./es-do.js\": 428,\n\t\"./es.js\": 427,\n\t\"./et\": 429,\n\t\"./et.js\": 429,\n\t\"./eu\": 430,\n\t\"./eu.js\": 430,\n\t\"./fa\": 431,\n\t\"./fa.js\": 431,\n\t\"./fi\": 432,\n\t\"./fi.js\": 432,\n\t\"./fo\": 433,\n\t\"./fo.js\": 433,\n\t\"./fr\": 434,\n\t\"./fr-ca\": 435,\n\t\"./fr-ca.js\": 435,\n\t\"./fr-ch\": 436,\n\t\"./fr-ch.js\": 436,\n\t\"./fr.js\": 434,\n\t\"./fy\": 437,\n\t\"./fy.js\": 437,\n\t\"./gd\": 438,\n\t\"./gd.js\": 438,\n\t\"./gl\": 439,\n\t\"./gl.js\": 439,\n\t\"./gom-latn\": 440,\n\t\"./gom-latn.js\": 440,\n\t\"./he\": 441,\n\t\"./he.js\": 441,\n\t\"./hi\": 442,\n\t\"./hi.js\": 442,\n\t\"./hr\": 443,\n\t\"./hr.js\": 443,\n\t\"./hu\": 444,\n\t\"./hu.js\": 444,\n\t\"./hy-am\": 445,\n\t\"./hy-am.js\": 445,\n\t\"./id\": 446,\n\t\"./id.js\": 446,\n\t\"./is\": 447,\n\t\"./is.js\": 447,\n\t\"./it\": 448,\n\t\"./it.js\": 448,\n\t\"./ja\": 449,\n\t\"./ja.js\": 449,\n\t\"./jv\": 450,\n\t\"./jv.js\": 450,\n\t\"./ka\": 451,\n\t\"./ka.js\": 451,\n\t\"./kk\": 452,\n\t\"./kk.js\": 452,\n\t\"./km\": 453,\n\t\"./km.js\": 453,\n\t\"./kn\": 454,\n\t\"./kn.js\": 454,\n\t\"./ko\": 455,\n\t\"./ko.js\": 455,\n\t\"./ky\": 456,\n\t\"./ky.js\": 456,\n\t\"./lb\": 457,\n\t\"./lb.js\": 457,\n\t\"./lo\": 458,\n\t\"./lo.js\": 458,\n\t\"./lt\": 459,\n\t\"./lt.js\": 459,\n\t\"./lv\": 460,\n\t\"./lv.js\": 460,\n\t\"./me\": 461,\n\t\"./me.js\": 461,\n\t\"./mi\": 462,\n\t\"./mi.js\": 462,\n\t\"./mk\": 463,\n\t\"./mk.js\": 463,\n\t\"./ml\": 464,\n\t\"./ml.js\": 464,\n\t\"./mr\": 465,\n\t\"./mr.js\": 465,\n\t\"./ms\": 466,\n\t\"./ms-my\": 467,\n\t\"./ms-my.js\": 467,\n\t\"./ms.js\": 466,\n\t\"./my\": 468,\n\t\"./my.js\": 468,\n\t\"./nb\": 469,\n\t\"./nb.js\": 469,\n\t\"./ne\": 470,\n\t\"./ne.js\": 470,\n\t\"./nl\": 471,\n\t\"./nl-be\": 472,\n\t\"./nl-be.js\": 472,\n\t\"./nl.js\": 471,\n\t\"./nn\": 473,\n\t\"./nn.js\": 473,\n\t\"./pa-in\": 474,\n\t\"./pa-in.js\": 474,\n\t\"./pl\": 475,\n\t\"./pl.js\": 475,\n\t\"./pt\": 476,\n\t\"./pt-br\": 477,\n\t\"./pt-br.js\": 477,\n\t\"./pt.js\": 476,\n\t\"./ro\": 478,\n\t\"./ro.js\": 478,\n\t\"./ru\": 479,\n\t\"./ru.js\": 479,\n\t\"./sd\": 480,\n\t\"./sd.js\": 480,\n\t\"./se\": 481,\n\t\"./se.js\": 481,\n\t\"./si\": 482,\n\t\"./si.js\": 482,\n\t\"./sk\": 483,\n\t\"./sk.js\": 483,\n\t\"./sl\": 484,\n\t\"./sl.js\": 484,\n\t\"./sq\": 485,\n\t\"./sq.js\": 485,\n\t\"./sr\": 486,\n\t\"./sr-cyrl\": 487,\n\t\"./sr-cyrl.js\": 487,\n\t\"./sr.js\": 486,\n\t\"./ss\": 488,\n\t\"./ss.js\": 488,\n\t\"./sv\": 489,\n\t\"./sv.js\": 489,\n\t\"./sw\": 490,\n\t\"./sw.js\": 490,\n\t\"./ta\": 491,\n\t\"./ta.js\": 491,\n\t\"./te\": 492,\n\t\"./te.js\": 492,\n\t\"./tet\": 493,\n\t\"./tet.js\": 493,\n\t\"./th\": 494,\n\t\"./th.js\": 494,\n\t\"./tl-ph\": 495,\n\t\"./tl-ph.js\": 495,\n\t\"./tlh\": 496,\n\t\"./tlh.js\": 496,\n\t\"./tr\": 497,\n\t\"./tr.js\": 497,\n\t\"./tzl\": 498,\n\t\"./tzl.js\": 498,\n\t\"./tzm\": 499,\n\t\"./tzm-latn\": 500,\n\t\"./tzm-latn.js\": 500,\n\t\"./tzm.js\": 499,\n\t\"./uk\": 501,\n\t\"./uk.js\": 501,\n\t\"./ur\": 502,\n\t\"./ur.js\": 502,\n\t\"./uz\": 503,\n\t\"./uz-latn\": 504,\n\t\"./uz-latn.js\": 504,\n\t\"./uz.js\": 503,\n\t\"./vi\": 505,\n\t\"./vi.js\": 505,\n\t\"./x-pseudo\": 506,\n\t\"./x-pseudo.js\": 506,\n\t\"./yo\": 507,\n\t\"./yo.js\": 507,\n\t\"./zh-cn\": 508,\n\t\"./zh-cn.js\": 508,\n\t\"./zh-hk\": 509,\n\t\"./zh-hk.js\": 509,\n\t\"./zh-tw\": 510,\n\t\"./zh-tw.js\": 510\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 940;","var map = {\n\t\"./N3Lexer\": 264,\n\t\"./N3Lexer.js\": 264,\n\t\"./N3Parser\": 265,\n\t\"./N3Parser.js\": 265,\n\t\"./N3Store\": 512,\n\t\"./N3Store.js\": 512,\n\t\"./N3StreamParser\": 513,\n\t\"./N3StreamParser.js\": 513,\n\t\"./N3StreamWriter\": 518,\n\t\"./N3StreamWriter.js\": 518,\n\t\"./N3Util\": 266,\n\t\"./N3Util.js\": 266,\n\t\"./N3Writer\": 270,\n\t\"./N3Writer.js\": 270\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 954;","/*\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2.1 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, you can receive a copy\n * of the GNU Lesser General Public License from http://www.gnu.org/\n */\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\n\n// based on https://leoasis.github.io/posts/2017/06/26/reparenting-a-component/\n//\n// When template is change we want some components to maintain their state,\n// e.g Clipboard is good example of such component.\n// It works by default with React when components tree stays the same and only\n// leaf elements are changing, but as soon as tree structure changes react will\n// re-render everything.\n// So we use this magical component to prevent re-render even in such situtatios.\n//\n// see https://github.com/facebook/react/issues/3965 for more info about\n// re-render and re-parenting in react\n\nconst store: {\n [key: string]: {inUse: boolean; mountNode: HTMLDivElement}\n} = {};\n\nfunction getMountNode(uid: string): HTMLDivElement {\n if (!store[uid]) {\n const mountNode = document.createElement('div');\n mountNode.style.height = '100%';\n store[uid] = {\n mountNode,\n inUse: true\n };\n } else {\n store[uid].inUse = true;\n }\n return store[uid].mountNode;\n}\n\nfunction removeMountNode(uid: string) {\n const record = store[uid];\n record.inUse = false;\n setTimeout(() => {\n if (!store[uid].inUse) {\n ReactDOM.unmountComponentAtNode(store[uid].mountNode);\n delete store[uid];\n }\n }, 5000);\n}\n\ninterface Props {\n uid: string\n}\n\nexport class Reparentable extends React.Component {\n\n private el: HTMLDivElement;\n\n componentDidMount() {\n const mountNode = getMountNode(this.props.uid);\n this.el.appendChild(mountNode);\n this.renderChildrenIntoNode(mountNode);\n }\n\n componentDidUpdate() {\n const mountNode = getMountNode(this.props.uid);\n this.renderChildrenIntoNode(mountNode);\n }\n\n componentWillUnmount() {\n removeMountNode(this.props.uid);\n }\n\n renderChildrenIntoNode(node: HTMLDivElement) {\n // We use this instead of `render` because this also handles\n // passing the context\n // for some reason children when used inside dashobard has key that cause\n // re-rendering, so we just drop it with clone.\n const element = React.cloneElement(this.props.children as any, {key: this.props.uid});\n ReactDOM.unstable_renderSubtreeIntoContainer(this, element, node);\n }\n\n render() {\n return
{ this.el = el; }}>
;\n }\n}\n","module.exports = function(tagName) {\n function onLoaded(comp) {\n if (!comp.default) {\n throw new Error('Failed to load component <' + tagName + '>');\n }\n comp.default.__htmlTag = tagName;\n }\n \n if(tagName === 'semantic-link') {\n return import(/* webpackChunkName: \"semantic-link\"*/'platform/api/navigation/components/ResourceLinkComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-link-container') {\n return import(/* webpackChunkName: \"semantic-link-container\"*/'platform/api/navigation/components/ResourceLinkContainer.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-table') {\n return import(/* webpackChunkName: \"semantic-table\"*/'platform/components/semantic/table/SemanticTable.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-table-row-selection') {\n return import(/* webpackChunkName: \"semantic-table-row-selection\"*/'platform/components/semantic/table/TableSelectionComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-query') {\n return import(/* webpackChunkName: \"semantic-query\"*/'platform/components/semantic/query/SemanticQuery.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-carousel') {\n return import(/* webpackChunkName: \"semantic-carousel\"*/'platform/components/semantic/carousel/SemanticCarousel.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-chart') {\n return import(/* webpackChunkName: \"semantic-chart\"*/'platform/components/semantic/chart/SemanticChart.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-chart-type-selector') {\n return import(/* webpackChunkName: \"semantic-chart-type-selector\"*/'platform/components/semantic/chart/SemanticChartTypeSelector.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-tree') {\n return import(/* webpackChunkName: \"semantic-tree\"*/'platform/components/semantic/tree/SemanticTree.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-lazy-tree') {\n return import(/* webpackChunkName: \"semantic-lazy-tree\"*/'platform/components/semantic/lazy-tree/LazyTree.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-map') {\n return import(/* webpackChunkName: \"semantic-map\"*/'platform/components/semantic/map/SemanticMap.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-graph') {\n return import(/* webpackChunkName: \"semantic-graph\"*/'platform/components/semantic/graph/SemanticGraph.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-graph-extension-expand-collapse') {\n return import(/* webpackChunkName: \"semantic-graph-extension-expand-collapse\"*/'platform/components/semantic/graph/extensions/CytoscapeExpandCollapse.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-graph-extension-navigator') {\n return import(/* webpackChunkName: \"semantic-graph-extension-navigator\"*/'platform/components/semantic/graph/extensions/CytoscapeNavigator.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-graph-extension-panzoom') {\n return import(/* webpackChunkName: \"semantic-graph-extension-panzoom\"*/'platform/components/semantic/graph/extensions/CytoscapePanZoomExtension.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-graph-layout-breadthfirst') {\n return import(/* webpackChunkName: \"semantic-graph-layout-breadthfirst\"*/'platform/components/semantic/graph/layouts/BreadthFirstLayout.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-graph-layout-circle') {\n return import(/* webpackChunkName: \"semantic-graph-layout-circle\"*/'platform/components/semantic/graph/layouts/CircleLayout.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-graph-layout-concentric') {\n return import(/* webpackChunkName: \"semantic-graph-layout-concentric\"*/'platform/components/semantic/graph/layouts/ConcentricLayout.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-graph-layout-cose-bilkent') {\n return import(/* webpackChunkName: \"semantic-graph-layout-cose-bilkent\"*/'platform/components/semantic/graph/layouts/CoseBilkentLayout.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-graph-layout-cose') {\n return import(/* webpackChunkName: \"semantic-graph-layout-cose\"*/'platform/components/semantic/graph/layouts/CoseLayout.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-graph-layout-grid') {\n return import(/* webpackChunkName: \"semantic-graph-layout-grid\"*/'platform/components/semantic/graph/layouts/GridLayout.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-graph-layout-preset') {\n return import(/* webpackChunkName: \"semantic-graph-layout-preset\"*/'platform/components/semantic/graph/layouts/PresetLayout.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-radar-plot') {\n return import(/* webpackChunkName: \"mp-radar-plot\"*/'platform/components/semantic/radar-plot/RadarPlot.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search') {\n return import(/* webpackChunkName: \"semantic-search\"*/'platform/components/semantic/search/web-components/SemanticSearch.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-query-keyword') {\n return import(/* webpackChunkName: \"semantic-search-query-keyword\"*/'platform/components/semantic/search/web-components/KeywordSearch.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-query-entities') {\n return import(/* webpackChunkName: \"semantic-search-query-entities\"*/'platform/components/semantic/search/web-components/EntitySearch.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-query-constant') {\n return import(/* webpackChunkName: \"semantic-search-query-constant\"*/'platform/components/semantic/search/web-components/QueryConstant.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-result') {\n return import(/* webpackChunkName: \"semantic-search-result\"*/'platform/components/semantic/search/web-components/SemanticSearchResult.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-result-holder') {\n return import(/* webpackChunkName: \"semantic-search-result-holder\"*/'platform/components/semantic/search/web-components/SemanticSearchResultHolder.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-form-query') {\n return import(/* webpackChunkName: \"semantic-search-form-query\"*/'platform/components/semantic/search/web-components/SemanticSearchFormQuery.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-domain-switch') {\n return import(/* webpackChunkName: \"semantic-search-domain-switch\"*/'platform/components/semantic/search/web-components/SemanticSearchDomainSwitch.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-table-result') {\n return import(/* webpackChunkName: \"semantic-search-table-result\"*/'platform/components/semantic/search/web-components/SemanticSearchTableResult.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-simple-search') {\n return import(/* webpackChunkName: \"semantic-simple-search\"*/'platform/components/semantic/simple-search/SimpleSearch.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-if') {\n return import(/* webpackChunkName: \"semantic-if\"*/'platform/components/semantic/conditional/SemanticIf.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-switch') {\n return import(/* webpackChunkName: \"semantic-switch\"*/'platform/components/semantic/conditional/SemanticSwitch.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-context') {\n return import(/* webpackChunkName: \"semantic-context\"*/'platform/api/components/SemanticContext.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-link') {\n return import(/* webpackChunkName: \"mp-link\"*/'platform/api/navigation/components/Link.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-resource-link') {\n return import(/* webpackChunkName: \"mp-resource-link\"*/'platform/api/navigation/components/ResourceLinkComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-resource-link-container') {\n return import(/* webpackChunkName: \"mp-resource-link-container\"*/'platform/api/navigation/components/ResourceLinkContainer.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-resource-thumbnail') {\n return import(/* webpackChunkName: \"mp-resource-thumbnail\"*/'platform/components/ui/thumbnail/ResourceThumbnail.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-resource-thumbnail-fallback') {\n return import(/* webpackChunkName: \"mp-resource-thumbnail-fallback\"*/'platform/components/ui/thumbnail/NoResourceThumbnail.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-navigate-to-resource') {\n return import(/* webpackChunkName: \"mp-navigate-to-resource\"*/'platform/api/navigation/components/NavigateToIri.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-event-trigger') {\n return import(/* webpackChunkName: \"mp-event-trigger\"*/'platform/components/events/EventTrigger.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-event-proxy') {\n return import(/* webpackChunkName: \"mp-event-proxy\"*/'platform/components/events/EventProxy.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-event-target-refresh') {\n return import(/* webpackChunkName: \"mp-event-target-refresh\"*/'platform/components/events/EventTargetRefresh.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-event-target-template-render') {\n return import(/* webpackChunkName: \"mp-event-target-template-render\"*/'platform/components/events/EventTargetTemplateRender.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-event-target-redirect') {\n return import(/* webpackChunkName: \"mp-event-target-redirect\"*/'platform/components/ui/redirect-action/RedirectAction.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'field-editor') {\n return import(/* webpackChunkName: \"field-editor\"*/'platform/components/forms/field-editor/FieldEditorComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-field-editor') {\n return import(/* webpackChunkName: \"mp-field-editor\"*/'platform/components/forms/field-editor/FieldEditorComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form') {\n return import(/* webpackChunkName: \"semantic-form\"*/'platform/components/forms/ResourceEditorForm.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-switch') {\n return import(/* webpackChunkName: \"semantic-form-switch\"*/'platform/components/forms/inputs/FormSwitch.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-switch-case') {\n return import(/* webpackChunkName: \"semantic-form-switch-case\"*/'platform/components/forms/inputs/FormSwitchCase.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-text-input') {\n return import(/* webpackChunkName: \"semantic-form-text-input\"*/'platform/components/forms/inputs/PlainTextInput.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-hidden-input') {\n return import(/* webpackChunkName: \"semantic-form-hidden-input\"*/'platform/components/forms/inputs/HiddenInput.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-select-input') {\n return import(/* webpackChunkName: \"semantic-form-select-input\"*/'platform/components/forms/inputs/SelectInput.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-checklist-input') {\n return import(/* webpackChunkName: \"semantic-form-checklist-input\"*/'platform/components/forms/inputs/ChecklistInput.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-checkbox-input') {\n return import(/* webpackChunkName: \"semantic-form-checkbox-input\"*/'platform/components/forms/inputs/CheckboxInput.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-autocomplete-input') {\n return import(/* webpackChunkName: \"semantic-form-autocomplete-input\"*/'platform/components/forms/inputs/AutocompleteInput.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-datetime-input') {\n return import(/* webpackChunkName: \"semantic-form-datetime-input\"*/'platform/components/forms/inputs/DatePickerInput.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-recover-notification') {\n return import(/* webpackChunkName: \"semantic-form-recover-notification\"*/'platform/components/forms/static/RecoverNotification.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-errors') {\n return import(/* webpackChunkName: \"semantic-form-errors\"*/'platform/components/forms/static/FormErrors.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-field-description') {\n return import(/* webpackChunkName: \"semantic-form-field-description\"*/'platform/components/forms/static/Description.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-field-label') {\n return import(/* webpackChunkName: \"semantic-form-field-label\"*/'platform/components/forms/static/Label.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-composite-input') {\n return import(/* webpackChunkName: \"semantic-form-composite-input\"*/'platform/components/forms/inputs/CompositeInput.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-tree-picker-input') {\n return import(/* webpackChunkName: \"semantic-form-tree-picker-input\"*/'platform/components/forms/inputs/TreePickerInput.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-drag-and-drop-input') {\n return import(/* webpackChunkName: \"semantic-form-drag-and-drop-input\"*/'platform/components/forms/inputs/drop/DragAndDropInput.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-tree-input') {\n return import(/* webpackChunkName: \"semantic-tree-input\"*/'platform/components/semantic/lazy-tree/SemanticTreeInput.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-field-visualization') {\n return import(/* webpackChunkName: \"mp-field-visualization\"*/'platform/components/forms/FieldBasedVisualization.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-code-highlight') {\n return import(/* webpackChunkName: \"mp-code-highlight\"*/'platform/components/documentation/CodeHighlight.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-code-example') {\n return import(/* webpackChunkName: \"mp-code-example\"*/'platform/components/documentation/CodeExample.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-code-block') {\n return import(/* webpackChunkName: \"mp-code-block\"*/'platform/components/documentation/CodeBlock.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-anonymous-hidden') {\n return import(/* webpackChunkName: \"mp-anonymous-hidden\"*/'platform/components/security/AnonymousHidden.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-has-permission') {\n return import(/* webpackChunkName: \"mp-has-permission\"*/'platform/components/security/HasPermission.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-error') {\n return import(/* webpackChunkName: \"mp-error\"*/'platform/components/ui/notification/ErrorNotification.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-user-language-switch') {\n return import(/* webpackChunkName: \"mp-user-language-switch\"*/'platform/components/language-switch/UserLanguageSwitch.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-graph-store-action') {\n return import(/* webpackChunkName: \"mp-graph-store-action\"*/'platform/components/admin/rdf-upload/GraphActionLink.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-rdf-upload') {\n return import(/* webpackChunkName: \"mp-rdf-upload\"*/'platform/components/admin/rdf-upload/RdfUpload.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-file-upload') {\n return import(/* webpackChunkName: \"mp-file-upload\"*/'platform/components/admin/file-upload/FileUpload.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-app-upload') {\n return import(/* webpackChunkName: \"mp-app-upload\"*/'platform/components/admin/app-upload/AppUpload.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-page-loader') {\n return import(/* webpackChunkName: \"mp-page-loader\"*/'platform/components/ui/page-loader.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-form-file-input') {\n return import(/* webpackChunkName: \"semantic-form-file-input\"*/'platform/components/forms/file-manager/FileInput.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-direct-file-uploader') {\n return import(/* webpackChunkName: \"mp-direct-file-uploader\"*/'platform/components/forms/file-manager/DirectFileUploader.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-file-uploader') {\n return import(/* webpackChunkName: \"mp-file-uploader\"*/'platform/components/forms/file-manager/FileUploader.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-file-visualizer') {\n return import(/* webpackChunkName: \"mp-file-visualizer\"*/'platform/components/forms/file-manager/FileVisualizer.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-admin-page-manager') {\n return import(/* webpackChunkName: \"mp-admin-page-manager\"*/'platform/components/admin/page-manager/PageManager.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-admin-namespace-manager') {\n return import(/* webpackChunkName: \"mp-admin-namespace-manager\"*/'platform/components/admin/namespace-manager/NamespaceManager.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-admin-config-manager') {\n return import(/* webpackChunkName: \"mp-admin-config-manager\"*/'platform/components/admin/config-manager/ConfigManager.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-admin-cache-invalidation-button') {\n return import(/* webpackChunkName: \"mp-admin-cache-invalidation-button\"*/'platform/components/admin/CacheInvalidationButton.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-admin-repository-mgmt') {\n return import(/* webpackChunkName: \"mp-admin-repository-mgmt\"*/'platform/components/admin/repositories/RepositoryManager.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-admin-log-browser') {\n return import(/* webpackChunkName: \"mp-admin-log-browser\"*/'platform/components/admin/log-browser/LogBrowser.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-logging-profile-selector') {\n return import(/* webpackChunkName: \"mp-logging-profile-selector\"*/'platform/components/admin/log-browser/LoggingProfileSelector.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-restart-wrapper') {\n return import(/* webpackChunkName: \"mp-restart-wrapper\"*/'platform/components/admin/RestartWrapper.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-account-manager') {\n return import(/* webpackChunkName: \"mp-account-manager\"*/'platform/components/admin/realm-manager/AccountManagerComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-sparql-download') {\n return import(/* webpackChunkName: \"mp-sparql-download\"*/'platform/components/semantic/results/SparqlDownloadComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-sparql-result-counts') {\n return import(/* webpackChunkName: \"mp-sparql-result-counts\"*/'platform/components/semantic/results/ResultsNumber.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-ldp-remove-from-container-action') {\n return import(/* webpackChunkName: \"mp-ldp-remove-from-container-action\"*/'platform/components/ldp/RemoveFromContainerAction.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-ldp-create-new-resource-action') {\n return import(/* webpackChunkName: \"mp-ldp-create-new-resource-action\"*/'platform/components/ldp/CreateNewResource.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-ldp-duplicate-resource-action') {\n return import(/* webpackChunkName: \"mp-ldp-duplicate-resource-action\"*/'platform/components/ldp/DuplicateResource.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-ldp-export-resource') {\n return import(/* webpackChunkName: \"mp-ldp-export-resource\"*/'platform/components/ldp/ExportResource.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-ldp-import-resource') {\n return import(/* webpackChunkName: \"mp-ldp-import-resource\"*/'platform/components/ldp/ImportResource.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-overlay-dialog') {\n return import(/* webpackChunkName: \"mp-overlay-dialog\"*/'platform/components/ui/overlay/OverlayDialog.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-overlay-dialog-content') {\n return import(/* webpackChunkName: \"mp-overlay-dialog-content\"*/'platform/components/ui/overlay/OverlayDialogContent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-overlay-dialog-trigger') {\n return import(/* webpackChunkName: \"mp-overlay-dialog-trigger\"*/'platform/components/ui/overlay/OverlayDialogTrigger.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-anchor') {\n return import(/* webpackChunkName: \"mp-anchor\"*/'platform/components/ui/scrollchor.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-platform-url') {\n return import(/* webpackChunkName: \"mp-platform-url\"*/'platform/components/ui/platform-url.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-nav-account') {\n return import(/* webpackChunkName: \"mp-nav-account\"*/'platform/app/navbar/NavAccountComponent').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-internal-page-editor') {\n return import(/* webpackChunkName: \"mp-internal-page-editor\"*/'platform/app/page/PageEditor.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-internal-sparql-endpoint') {\n return import(/* webpackChunkName: \"mp-internal-sparql-endpoint\"*/'platform/app/sparql/SparqlEndpoint.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-draggable') {\n return import(/* webpackChunkName: \"mp-draggable\"*/'platform/components/dnd/DraggableComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-print') {\n return import(/* webpackChunkName: \"mp-print\"*/'platform/components/ui/print/PrintComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-print-section') {\n return import(/* webpackChunkName: \"mp-print-section\"*/'platform/components/ui/print/PrintSectionComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-splitpane') {\n return import(/* webpackChunkName: \"mp-splitpane\"*/'platform/components/ui/splitpane/SplitPaneComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-splitpane-sidebar-closed') {\n return import(/* webpackChunkName: \"mp-splitpane-sidebar-closed\"*/'platform/components/ui/splitpane/SplitPaneSidebarClosedComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-splitpane-sidebar-open') {\n return import(/* webpackChunkName: \"mp-splitpane-sidebar-open\"*/'platform/components/ui/splitpane/SplitPaneSidebarOpenComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-splitpane-toggle-on') {\n return import(/* webpackChunkName: \"mp-splitpane-toggle-on\"*/'platform/components/ui/splitpane/SplitPaneToggleOnComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-splitpane-toggle-off') {\n return import(/* webpackChunkName: \"mp-splitpane-toggle-off\"*/'platform/components/ui/splitpane/SplitPaneToggleOffComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-label') {\n return import(/* webpackChunkName: \"mp-label\"*/'platform/components/ui/resource-label.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-highlight') {\n return import(/* webpackChunkName: \"mp-highlight\"*/'platform/components/ui/highlight/HighlightComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-popover') {\n return import(/* webpackChunkName: \"mp-popover\"*/'platform/components/ui/popover/PopoverComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-popover-trigger') {\n return import(/* webpackChunkName: \"mp-popover-trigger\"*/'platform/components/ui/popover/PopoverTriggerComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-popover-content') {\n return import(/* webpackChunkName: \"mp-popover-content\"*/'platform/components/ui/popover/PopoverContentComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-collapsible-div') {\n return import(/* webpackChunkName: \"mp-collapsible-div\"*/'platform/components/ui/collapsible-div/CollapsibleDivComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-collapsible-div-trigger') {\n return import(/* webpackChunkName: \"mp-collapsible-div-trigger\"*/'platform/components/ui/collapsible-div/CollapsibleDivTriggerComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-collapsible-div-content') {\n return import(/* webpackChunkName: \"mp-collapsible-div-content\"*/'platform/components/ui/collapsible-div/CollapsibleDivContentComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-panel') {\n return import(/* webpackChunkName: \"mp-panel\"*/'platform/components/ui/panel/Panel.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-panel-header') {\n return import(/* webpackChunkName: \"mp-panel-header\"*/'platform/components/ui/panel/PanelHeader.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-panel-body') {\n return import(/* webpackChunkName: \"mp-panel-body\"*/'platform/components/ui/panel/PanelBody.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-panel-footer') {\n return import(/* webpackChunkName: \"mp-panel-footer\"*/'platform/components/ui/panel/PanelFooter.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-text-truncate') {\n return import(/* webpackChunkName: \"mp-text-truncate\"*/'platform/components/ui/truncate/TextTruncateComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-set-management') {\n return import(/* webpackChunkName: \"mp-set-management\"*/'platform/components/sets/SetManagement.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-set-management-action-remove-set-item') {\n return import(/* webpackChunkName: \"mp-set-management-action-remove-set-item\"*/'platform/components/sets/actions/RemoveSetItemAction.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-set-management-action-fetch-set-items') {\n return import(/* webpackChunkName: \"mp-set-management-action-fetch-set-items\"*/'platform/components/sets/actions/FetchSetItemsAction.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-set-management-action-remove-set') {\n return import(/* webpackChunkName: \"mp-set-management-action-remove-set\"*/'platform/components/sets/actions/RemoveSetAction.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-set-management-action-manage-set') {\n return import(/* webpackChunkName: \"mp-set-management-action-manage-set\"*/'platform/components/sets/actions/ManageSetAction.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-set-management-action-rename-set') {\n return import(/* webpackChunkName: \"mp-set-management-action-rename-set\"*/'platform/components/sets/actions/RenameSetAction.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-set-management-single-set') {\n return import(/* webpackChunkName: \"mp-set-management-single-set\"*/'platform/components/sets/SingleSet.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-create-set-action') {\n return import(/* webpackChunkName: \"mp-create-set-action\"*/'platform/components/sets/CreateSetActionComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-component-toolbar') {\n return import(/* webpackChunkName: \"mp-component-toolbar\"*/'platform/components/persistence/ComponentToolbar.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-component-toolbar-actions') {\n return import(/* webpackChunkName: \"mp-component-toolbar-actions\"*/'platform/components/persistence/ComponentToolbarActions.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-component-toolbar-component') {\n return import(/* webpackChunkName: \"mp-component-toolbar-component\"*/'platform/components/persistence/ComponentToolbarComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-component-toolbar-action-download') {\n return import(/* webpackChunkName: \"mp-component-toolbar-action-download\"*/'platform/components/persistence/ActionDownload.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-component-toolbar-action-save') {\n return import(/* webpackChunkName: \"mp-component-toolbar-action-save\"*/'platform/components/persistence/ActionSave.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-persisted-component') {\n return import(/* webpackChunkName: \"mp-persisted-component\"*/'platform/components/persistence/PersistedComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-url-minifier') {\n return import(/* webpackChunkName: \"mp-url-minifier\"*/'platform/components/ui/url-minifier.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-documentation') {\n return import(/* webpackChunkName: \"mp-documentation\"*/'platform/components/documentation/ConfigDocComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-spin-query-template-editor') {\n return import(/* webpackChunkName: \"mp-spin-query-template-editor\"*/'platform/components/query-editor/QueryTemplate.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-spin-query-editor') {\n return import(/* webpackChunkName: \"mp-spin-query-editor\"*/'platform/components/query-editor/QueryEditorComponent.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-sparql-query-editor') {\n return import(/* webpackChunkName: \"mp-sparql-query-editor\"*/'platform/components/sparql-editor/SparqlQueryEditor.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-sparql-query-editor-context') {\n return import(/* webpackChunkName: \"mp-sparql-query-editor-context\"*/'platform/components/sparql-editor/SparqlQueryEditorContext.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-recent-queries') {\n return import(/* webpackChunkName: \"mp-recent-queries\"*/'platform/components/sparql-editor/RecentQueries.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-query-catalog-template') {\n return import(/* webpackChunkName: \"mp-query-catalog-template\"*/'platform/components/sparql-editor/QueryCatalogTemplate.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-selection-toggle') {\n return import(/* webpackChunkName: \"mp-selection-toggle\"*/'platform/components/ui/selection/SelectionToggleComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-selection-action-choice') {\n return import(/* webpackChunkName: \"mp-selection-action-choice\"*/'platform/components/ui/selection/SelectionActionChoiceComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-selection-group') {\n return import(/* webpackChunkName: \"mp-selection-group\"*/'platform/components/ui/selection/SelectionGroupComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'ontodia') {\n return import(/* webpackChunkName: \"ontodia\"*/'platform/components/3-rd-party/ontodia/Ontodia.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'diagram-search-result') {\n return import(/* webpackChunkName: \"diagram-search-result\"*/'platform/components/3-rd-party/ontodia/DiagramSearchResult.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'ontodia-nested-nodes') {\n return import(/* webpackChunkName: \"ontodia-nested-nodes\"*/'platform/components/3-rd-party/ontodia/OntodiaNestedNodes.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'ontodia-entity-metadata') {\n return import(/* webpackChunkName: \"ontodia-entity-metadata\"*/'platform/components/3-rd-party/ontodia/authoring/OntodiaEntityMetadata.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'ontodia-contents') {\n return import(/* webpackChunkName: \"ontodia-contents\"*/'platform/components/3-rd-party/ontodia/OntodiaContents.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'ontodia-field-configuration') {\n return import(/* webpackChunkName: \"ontodia-field-configuration\"*/'platform/components/3-rd-party/ontodia/authoring/OntodiaFieldConfiguration.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'ontodia-field-input-override') {\n return import(/* webpackChunkName: \"ontodia-field-input-override\"*/'platform/components/3-rd-party/ontodia/authoring/FieldInputOverride.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-copy-to-clipboard') {\n return import(/* webpackChunkName: \"mp-copy-to-clipboard\"*/'platform/components/copy-to-clipboard/CopyToClipboardComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-lang-literal') {\n return import(/* webpackChunkName: \"mp-lang-literal\"*/'platform/components/ui/lang-literal/LangLiteral.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-json-renderer') {\n return import(/* webpackChunkName: \"mp-json-renderer\"*/'platform/components/ui/json/json-renderer.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-file-download') {\n return import(/* webpackChunkName: \"mp-file-download\"*/'platform/components/ui/file-download.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-workflow-create') {\n return import(/* webpackChunkName: \"mp-workflow-create\"*/'platform/components/workflow/WorkflowCreateComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-workflow-manager') {\n return import(/* webpackChunkName: \"mp-workflow-manager\"*/'platform/components/workflow/WorkflowManagerComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'mp-workflow-selection-action') {\n return import(/* webpackChunkName: \"mp-workflow-selection-action\"*/'platform/components/workflow/WorkflowSelectionAction.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-row') {\n return import(/* webpackChunkName: \"bs-row\"*/'react-bootstrap/es/Row.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-col') {\n return import(/* webpackChunkName: \"bs-col\"*/'react-bootstrap/es/Col.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-tabs') {\n return import(/* webpackChunkName: \"bs-tabs\"*/'react-bootstrap/es/Tabs.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-tab') {\n return import(/* webpackChunkName: \"bs-tab\"*/'react-bootstrap/es/Tab.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-tab-container') {\n return import(/* webpackChunkName: \"bs-tab-container\"*/'react-bootstrap/es/TabContainer.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-tab-pane') {\n return import(/* webpackChunkName: \"bs-tab-pane\"*/'react-bootstrap/es/TabPane.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-tab-content') {\n return import(/* webpackChunkName: \"bs-tab-content\"*/'react-bootstrap/es/TabContent.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-panel') {\n return import(/* webpackChunkName: \"bs-panel\"*/'react-bootstrap/es/Panel.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-panel-group') {\n return import(/* webpackChunkName: \"bs-panel-group\"*/'react-bootstrap/es/PanelGroup.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-navbar') {\n return import(/* webpackChunkName: \"bs-navbar\"*/'react-bootstrap/es/Navbar.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-navbar-brand') {\n return import(/* webpackChunkName: \"bs-navbar-brand\"*/'react-bootstrap/es/NavbarBrand.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-navbar-collapse') {\n return import(/* webpackChunkName: \"bs-navbar-collapse\"*/'react-bootstrap/es/NavbarCollapse.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-navbar-header') {\n return import(/* webpackChunkName: \"bs-navbar-header\"*/'react-bootstrap/es/NavbarHeader.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-navbar-toggle') {\n return import(/* webpackChunkName: \"bs-navbar-toggle\"*/'react-bootstrap/es/NavbarToggle.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-nav') {\n return import(/* webpackChunkName: \"bs-nav\"*/'react-bootstrap/es/Nav.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-nav-item') {\n return import(/* webpackChunkName: \"bs-nav-item\"*/'react-bootstrap/es/NavItem.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-nav-dropdown') {\n return import(/* webpackChunkName: \"bs-nav-dropdown\"*/'react-bootstrap/es/NavDropdown.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-menu-item') {\n return import(/* webpackChunkName: \"bs-menu-item\"*/'react-bootstrap/es/MenuItem.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-dropdown-button') {\n return import(/* webpackChunkName: \"bs-dropdown-button\"*/'react-bootstrap/es/DropdownButton.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-alert') {\n return import(/* webpackChunkName: \"bs-alert\"*/'react-bootstrap/es/Alert.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-dropdown') {\n return import(/* webpackChunkName: \"bs-dropdown\"*/'react-bootstrap/es/Dropdown.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-dropdown-menu') {\n return import(/* webpackChunkName: \"bs-dropdown-menu\"*/'react-bootstrap/es/DropdownMenu.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'bs-dropdown-toggle') {\n return import(/* webpackChunkName: \"bs-dropdown-toggle\"*/'react-bootstrap/es/DropdownToggle.js').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-iiif-image-thumbnail') {\n return import(/* webpackChunkName: \"rs-iiif-image-thumbnail\"*/'platform/components/iiif/ImageThumbnail.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-image-upload') {\n return import(/* webpackChunkName: \"rs-image-upload\"*/'platform/widgets/image-upload-widget.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-iiif-overlay') {\n return import(/* webpackChunkName: \"rs-iiif-overlay\"*/'platform/components/iiif/OverlayComparison.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-iiif-side-by-side') {\n return import(/* webpackChunkName: \"rs-iiif-side-by-side\"*/'platform/components/iiif/SideBySideComparison.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-iiif-overlay-action') {\n return import(/* webpackChunkName: \"rs-iiif-overlay-action\"*/'platform/components/iiif/actions/OverlayComparisonActionComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-iiif-side-by-side-action') {\n return import(/* webpackChunkName: \"rs-iiif-side-by-side-action\"*/'platform/components/iiif/actions/SideBySideComparisonActionComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-iiif-mirador') {\n return import(/* webpackChunkName: \"rs-iiif-mirador\"*/'platform/components/iiif/ImageRegionEditor.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-argument-simple-belief-selector') {\n return import(/* webpackChunkName: \"rs-argument-simple-belief-selector\"*/'platform/components/arguments/Belief.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-quick-assertion') {\n return import(/* webpackChunkName: \"rs-quick-assertion\"*/'platform/components/arguments/QuickAssertionComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-simple-assertion') {\n return import(/* webpackChunkName: \"rs-simple-assertion\"*/'platform/components/arguments/SimpleAssertion.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-assertion') {\n return import(/* webpackChunkName: \"rs-assertion\"*/'platform/components/arguments/AssertionComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-premise') {\n return import(/* webpackChunkName: \"rs-premise\"*/'platform/components/arguments/premise/PremiseComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-object-representations') {\n return import(/* webpackChunkName: \"rs-object-representations\"*/'platform/widgets/ObjectRepresentationsWidget.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-visibility') {\n return import(/* webpackChunkName: \"rs-visibility\"*/'platform/components/common/ShareComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-collapsible') {\n return import(/* webpackChunkName: \"rs-collapsible\"*/'platform/components/collapsible/CollapsibleComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-browse-history') {\n return import(/* webpackChunkName: \"rs-browse-history\"*/'platform/widgets/BrowseHistoryComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-alignment-tool') {\n return import(/* webpackChunkName: \"rs-alignment-tool\"*/'platform/components/alignment/AlignmentTool.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-alignment-tool-create-alignment-action') {\n return import(/* webpackChunkName: \"rs-alignment-tool-create-alignment-action\"*/'platform/components/alignment/CreateAlignmentAction.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-result-context') {\n return import(/* webpackChunkName: \"semantic-search-result-context\"*/'platform/components/search/web-components/SemanticSearchContextualizedResult.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-facet') {\n return import(/* webpackChunkName: \"semantic-search-facet\"*/'platform/components/search/web-components/SemanticSearchFacet.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-facet-breadcrumbs') {\n return import(/* webpackChunkName: \"semantic-search-facet-breadcrumbs\"*/'platform/components/search/web-components/SemanticSearchFacetBreadcrumbs.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-query-builder') {\n return import(/* webpackChunkName: \"semantic-search-query-builder\"*/'platform/components/search/query-builder/QueryBuilder.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-action-use-result-in-extended-search') {\n return import(/* webpackChunkName: \"semantic-search-action-use-result-in-extended-search\"*/'platform/components/search/web-components/SemanticSearchUseResultInExtendedSearchAction.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-action-use-result-item-in-extended-search') {\n return import(/* webpackChunkName: \"semantic-search-action-use-result-item-in-extended-search\"*/'platform/components/search/web-components/SemanticSearchUseResultItemInExtendedSearchAction.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-action-save-set-result') {\n return import(/* webpackChunkName: \"semantic-search-action-save-set-result\"*/'platform/components/search/web-components/SemanticSearchSaveSetResultAction.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-action-save-search-result') {\n return import(/* webpackChunkName: \"semantic-search-action-save-search-result\"*/'platform/components/search/web-components/SemanticSearchSaveSearchResultAction.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-search-configuration-editor') {\n return import(/* webpackChunkName: \"semantic-search-configuration-editor\"*/'platform/components/search/configuration/ConfigurationSelector').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'semantic-timeline') {\n return import(/* webpackChunkName: \"semantic-timeline\"*/'platform/components/timeline/SemanticTimeline.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-guided-tour') {\n return import(/* webpackChunkName: \"rs-guided-tour\"*/'platform/components/guided-tour/GuidedTour.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-panel-system') {\n return import(/* webpackChunkName: \"rs-panel-system\"*/'platform/components/panel-system/PanelSystem.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-panel-system-holder') {\n return import(/* webpackChunkName: \"rs-panel-system-holder\"*/'platform/components/panel-system/PanelSystemHolder.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-iiif-viewer-panel') {\n return import(/* webpackChunkName: \"rs-iiif-viewer-panel\"*/'platform/components/panel-system/IIIFViewerPanel.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-ontodia-panel') {\n return import(/* webpackChunkName: \"rs-ontodia-panel\"*/'platform/components/panel-system/OntodiaPanel.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-ontodia-metadata-from-fields') {\n return import(/* webpackChunkName: \"rs-ontodia-metadata-from-fields\"*/'platform/components/ontodia/MetadataFromFields.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-text-annotation-workspace') {\n return import(/* webpackChunkName: \"rs-text-annotation-workspace\"*/'platform/components/text-annotation/components/TextAnnotationWorkspace.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-text-annotation-type') {\n return import(/* webpackChunkName: \"rs-text-annotation-type\"*/'platform/components/text-annotation/components/TextAnnotationType.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-dashboard') {\n return import(/* webpackChunkName: \"rs-dashboard\"*/'platform/components/dashboard/DashboardComponent.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-image-graph-authoring') {\n return import(/* webpackChunkName: \"rs-image-graph-authoring\"*/'platform/components/iiif/image-graph-authoring/ImageGraphAuthoring.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'with-types') {\n return import(/* webpackChunkName: \"with-types\"*/'platform/components/ui/WithTypes.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'rs-text-editor') {\n return import(/* webpackChunkName: \"rs-text-editor\"*/'platform/components/text-editor/TextEditor.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'two-side-panel') {\n return import(/* webpackChunkName: \"two-side-panel\"*/'platform/components/ui/two-side-panel/TwoSidePanel.tsx').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n if(tagName === 'inline-template') {\n return import(/* webpackChunkName: \"inline-template\"*/'platform/components/ui/template/InlineTemplate.ts').then(\n function(comp) {\n onLoaded(comp);\n return comp;\n }\n );\n }\n \n };","/**\n * ResearchSpace\n * Copyright (C) 2020, © Trustees of the British Museum\n * Copyright (C) 2015-2019, metaphacts GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n */\n\nimport * as React from 'react';\nimport * as ReactNotificationSystem from 'react-notification-system';\n\nconst NOTIFICATIAN_SYSTEM_REF = 'notificationSystem';\nlet _system: ReactNotificationSystem.System;\n\nexport function renderNotificationSystem() {\n return React.createElement(ReactNotificationSystem, {\n key: NOTIFICATIAN_SYSTEM_REF,\n ref: NOTIFICATIAN_SYSTEM_REF,\n allowHTML: true,\n style: {\n NotificationItem: {\n DefaultStyle: {\n padding: '20px',\n fontSize: '14px',\n },\n },\n },\n });\n}\n\nexport function registerNotificationSystem(_this: React.Component) {\n _system = _this.refs[NOTIFICATIAN_SYSTEM_REF] as ReactNotificationSystem.System;\n}\n\nexport function addNotification(\n notification: ReactNotificationSystem.Notification,\n exception?: any\n): ReactNotificationSystem.Notification {\n if (exception) {\n console.error(exception);\n }\n return _system.addNotification(notification);\n}\n\nexport function removeNotification(uidOrNotification: number | string | Notification): void {\n _system.removeNotification(uidOrNotification);\n}\n\nexport function clearNotifications() {\n _system.clearNotifications();\n}\n"],"sourceRoot":""}