graphdb-workbench 2.1.0 → 2.1.1-TR2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{10.018ca946a702a519142b.bundle.js → 10.5c9aa6773dd62b4ed854.bundle.js} +2 -2
- package/dist/10.5c9aa6773dd62b4ed854.bundle.js.map +1 -0
- package/dist/{11.52641542d9a31c527b7c.bundle.js → 11.8983e1d1c930328e9b0d.bundle.js} +2 -2
- package/dist/11.8983e1d1c930328e9b0d.bundle.js.map +1 -0
- package/dist/135.c1de0deb98c8a45a4b21.bundle.js +1 -1
- package/dist/135.c1de0deb98c8a45a4b21.bundle.js.map +1 -1
- package/dist/{15.510970e84b3d1a7768c2.bundle.js → 15.9ce4fa5c14638d63736a.bundle.js} +2 -2
- package/dist/{15.510970e84b3d1a7768c2.bundle.js.map → 15.9ce4fa5c14638d63736a.bundle.js.map} +1 -1
- package/dist/162.7c19d57c3792c9ca08d0.bundle.js +2 -0
- package/dist/162.7c19d57c3792c9ca08d0.bundle.js.map +1 -0
- package/dist/18.201bf87e7629b325646c.bundle.js +1 -1
- package/dist/18.201bf87e7629b325646c.bundle.js.map +1 -1
- package/dist/25.42f3d944b5ec15e01ceb.bundle.js +2 -0
- package/dist/25.42f3d944b5ec15e01ceb.bundle.js.map +1 -0
- package/dist/{3.1b96b660b1d11c328e50.bundle.js → 3.0a892888d711fa9009b7.bundle.js} +2 -2
- package/dist/3.0a892888d711fa9009b7.bundle.js.map +1 -0
- package/dist/30.4b987e71408e0643680a.bundle.js +1 -1
- package/dist/30.4b987e71408e0643680a.bundle.js.map +1 -1
- package/dist/31.5af5b75cd1ac5d00370e.bundle.js +1 -1
- package/dist/31.5af5b75cd1ac5d00370e.bundle.js.map +1 -1
- package/dist/36.618ccd9d5a8d4d11cb47.bundle.js +2 -0
- package/dist/36.618ccd9d5a8d4d11cb47.bundle.js.map +1 -0
- package/dist/39.88a2db4f9ab5946bf2cd.bundle.js +2 -0
- package/dist/39.88a2db4f9ab5946bf2cd.bundle.js.map +1 -0
- package/dist/55.5b44653775bb1592cb26.bundle.js +2 -0
- package/dist/55.5b44653775bb1592cb26.bundle.js.map +1 -0
- package/dist/83.73515cde0a2215275d32.bundle.js +1 -1
- package/dist/83.73515cde0a2215275d32.bundle.js.map +1 -1
- package/dist/93.d4fb5fe720a8d95b2b37.bundle.js +2 -0
- package/dist/93.d4fb5fe720a8d95b2b37.bundle.js.map +1 -0
- package/dist/{bundle.2b813785fc0b4f08d48c.bundle.js → bundle.d68a2441048bc7e965e6.bundle.js} +3 -3
- package/dist/bundle.d68a2441048bc7e965e6.bundle.js.map +1 -0
- package/dist/index.html +3 -3
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/js/angular/security/templates/user.html +4 -2
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +3 -3
- package/dist/pages/create-index.html +4 -4
- package/dist/pages/dependencies.html +1 -1
- package/dist/pages/domainRangeInfo.html +2 -2
- package/dist/pages/edit.html +1 -1
- package/dist/pages/explore.html +1 -1
- package/dist/pages/export.html +1 -1
- package/dist/pages/find.html +1 -1
- package/dist/pages/graph-config/saveGraphConfig.html +11 -11
- package/dist/pages/graphs-visualizations.html +7 -7
- package/dist/pages/guides.html +1 -1
- package/dist/pages/import.html +1 -1
- package/dist/pages/jdbc-create.html +5 -5
- package/dist/pages/monitor/queries.html +2 -3
- package/dist/pages/monitor/resources.html +2 -2
- package/dist/pages/namespaces.html +2 -2
- package/dist/pages/plugins.html +1 -1
- package/dist/pages/rdfClassHierarchyInfo.html +7 -7
- package/dist/pages/rdfrank.html +2 -2
- package/dist/pages/repositories.html +2 -2
- package/dist/pages/repository.html +2 -2
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-template-create.html +5 -5
- package/dist/pages/sparql.html +3 -3
- package/dist/pages/webapi.html +2 -2
- package/dist/res/swagger/index.html +27 -27
- package/package.json +1 -1
- package/dist/10.018ca946a702a519142b.bundle.js.map +0 -1
- package/dist/11.52641542d9a31c527b7c.bundle.js.map +0 -1
- package/dist/162.611f7dba5a7f2ab9fa7b.bundle.js +0 -2
- package/dist/162.611f7dba5a7f2ab9fa7b.bundle.js.map +0 -1
- package/dist/25.9c19fb9c35fcd792dff5.bundle.js +0 -2
- package/dist/25.9c19fb9c35fcd792dff5.bundle.js.map +0 -1
- package/dist/3.1b96b660b1d11c328e50.bundle.js.map +0 -1
- package/dist/36.991eae8184e7b5fa5cbf.bundle.js +0 -2
- package/dist/36.991eae8184e7b5fa5cbf.bundle.js.map +0 -1
- package/dist/39.3f07a4be36e81e42c86e.bundle.js +0 -2
- package/dist/39.3f07a4be36e81e42c86e.bundle.js.map +0 -1
- package/dist/55.975653547fd9764a2a71.bundle.js +0 -2
- package/dist/55.975653547fd9764a2a71.bundle.js.map +0 -1
- package/dist/93.5f0ae85fb24657fd13c5.bundle.js +0 -2
- package/dist/93.5f0ae85fb24657fd13c5.bundle.js.map +0 -1
- package/dist/bundle.2b813785fc0b4f08d48c.bundle.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[135],{201:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/rdf-resource-search.css?v=2.1.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[135],{201:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/rdf-resource-search.css?v=2.1.1-TR2" rel="stylesheet"/>\n\n<div ng-if="getActiveRepository() && hasActiveLocation() && isNotLoading()" ng-cloak>\n <div id="search-box" class="card search-rdf-input" ng-keydown="onKeyDown($event)" ng-if="!isHomePage()">\n <div class="card-block">\n <search-resource-input namespacespromise="getNamespacesPromise"\n autocompletepromisestatus="getAutocompletePromise"\n empty="empty"\n open-in-new-tab="true"\n preserve-search="true"\n radio-buttons="true"\n clear-input-icon="true">\n </search-resource-input>\n <button class="btn btn-link close-rdf-search-btn"\n tooltip="{{\'search.resource.close.msg\' | translate}}" tooltip-placement="bottom"\n tooltip-trigger="mouseenter"\n ng-click="hideInput()">\n <i class="icon-close icon-2x" aria-hidden="true"></i>\n </button>\n </div>\n </div>\n <button class="btn btn-link search-rdf-btn"\n tooltip="{{\'search.resources.msg\' | translate}}"\n tooltip-placement="bottom"\n tooltip-trigger="mouseenter"\n ng-click="showInput()">\n <i class="icon-search icon-2x" aria-hidden="true"></i>\n </button>\n</div>\n';return __p}}}]);
|
|
2
2
|
//# sourceMappingURL=135.c1de0deb98c8a45a4b21.bundle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html"],"names":["module","exports","obj","__t","__p"],"mappings":"wFAAAA,OAAOC,QAAU,SAASC,KAC1BA,MAAQA,IAAM,IACd,IAAIC,IAAKC,IAAM,GACf,KAAMF,IACNE,KAAO,u+CAGP,OAAOA","file":"135.c1de0deb98c8a45a4b21.bundle.js","sourcesContent":["module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '';\nwith (obj) {\n__p += '<link href=\"css/rdf-resource-search.css?v=2.1.
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html"],"names":["module","exports","obj","__t","__p"],"mappings":"wFAAAA,OAAOC,QAAU,SAASC,KAC1BA,MAAQA,IAAM,IACd,IAAIC,IAAKC,IAAM,GACf,KAAMF,IACNE,KAAO,u+CAGP,OAAOA","file":"135.c1de0deb98c8a45a4b21.bundle.js","sourcesContent":["module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '';\nwith (obj) {\n__p += '<link href=\"css/rdf-resource-search.css?v=2.1.1-TR2\" rel=\"stylesheet\"/>\\n\\n<div ng-if=\"getActiveRepository() && hasActiveLocation() && isNotLoading()\" ng-cloak>\\n <div id=\"search-box\" class=\"card search-rdf-input\" ng-keydown=\"onKeyDown($event)\" ng-if=\"!isHomePage()\">\\n <div class=\"card-block\">\\n <search-resource-input namespacespromise=\"getNamespacesPromise\"\\n autocompletepromisestatus=\"getAutocompletePromise\"\\n empty=\"empty\"\\n open-in-new-tab=\"true\"\\n preserve-search=\"true\"\\n radio-buttons=\"true\"\\n clear-input-icon=\"true\">\\n </search-resource-input>\\n <button class=\"btn btn-link close-rdf-search-btn\"\\n tooltip=\"{{\\'search.resource.close.msg\\' | translate}}\" tooltip-placement=\"bottom\"\\n tooltip-trigger=\"mouseenter\"\\n ng-click=\"hideInput()\">\\n <i class=\"icon-close icon-2x\" aria-hidden=\"true\"></i>\\n </button>\\n </div>\\n </div>\\n <button class=\"btn btn-link search-rdf-btn\"\\n tooltip=\"{{\\'search.resources.msg\\' | translate}}\"\\n tooltip-placement=\"bottom\"\\n tooltip-trigger=\"mouseenter\"\\n ng-click=\"showInput()\">\\n <i class=\"icon-search icon-2x\" aria-hidden=\"true\"></i>\\n </button>\\n</div>\\n';\n\n}\nreturn __p\n}"],"sourceRoot":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
(window.webpackJsonp=window.webpackJsonp||[]).push([[15,48,53,55],{101:function(e,t,n){"use strict";n.r(t);n(4),n(11),n(57),n(95),n(58),n(252),n(257),n(56);angular.module("graphdb.framework.explore",["ngRoute","toastr","xeditable","angucomplete-alt-onto","graphdb.framework.explore.services","graphdb.framework.explore.controllers","graphdb.framework.explore.directives","graphdb.framework.core.directives.fittext"])},257:function(e,t){
|
|
2
2
|
/*! Copyright (c) 2014 Hidenari Nozaki and contributors | Licensed under the MIT license */
|
|
3
|
-
!function(e,t){"use strict";!function(e){e.module("angucomplete-alt-onto",[]).directive("angucompleteAltOnto",["$q","$parse","$http","$sce","$timeout","$templateCache","$interpolate","$rootScope",function(e,t,n,r,l,i,o,a){function u(t,i,o,a){var u,s,c,d,g,p,h=i.find("input"),f=3,m=null,w="autocomplete-required",v=null,b=null,x=i[0].querySelector(".angucomplete-dropdown"),y=!1,S=null;function C(e,n){e&&("object"==typeof e?(t.uri=R(e),M({originalObject:e})):"string"==typeof e&&e.length>0?t.uri=e:console&&console.error&&console.error("Tried to set "+(n?"initial":"")+" value of angucomplete to",e,"which is an invalid value"),F(!0))}function I(e){S=null,t.hideResults(e),document.body.removeEventListener("click",I)}function $(e){return e.which?e.which:e.keyCode}function M(e){"function"==typeof t.selectedObject?t.selectedObject(e):t.selectedObject=e,F(!!e)}function R(e){return t.titleField.split(",").map((function(t){return L(e,t)})).join(" ")}function L(e,t){var n,r;if(t){n=t.split("."),r=e;for(var l=0;l<n.length;l++)r=r[n[l]]}else r=e;return r}function D(e,n){var l,i,o;if(o=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),e)return e.match&&e.replace||(e=e.toString()),l=(i=e.match(o))?e.replace(o,'<span class="'+t.matchClass+'">'+i[0]+"</span>"):e,r.trustAsHtml(l)}function F(e){t.notEmpty=e,v=t.uri,t.fieldRequired&&a&&t.inputName&&a[t.inputName].$setValidity(w,e)}function j(e){!t.overrideSuggestions||t.selectedObject&&t.selectedObject.originalObject===t.uri||(e&&e.preventDefault(),l.cancel(m),H(),M({originalObject:t.uri}),t.clearSelected&&(t.uri=null),z())}function X(){return i[0].querySelectorAll(".angucomplete-row")[t.currentIndex]}function k(e){x.scrollTop=x.scrollTop+e}function U(){var e=t.results[t.currentIndex];if(t.matchClass){var n=R(e.originalObject);n=n.replace(/<b>|<\/b>/g,""),h.val(n)}else h.val(e.title)}function O(e){return function(n,r,l,i){r||l||i||!n.data||(n=n.data),t.searching=!1,B(L(s(n),t.remoteUrlDataField),e)}}function q(e,n,r,l){0!==n&&-1!==n&&(n||r||l||(n=e.status),t.remoteUrlErrorCallback?t.remoteUrlErrorCallback(e,n,r,l):console&&console.error&&console.error("http error"))}function H(){b&&b.resolve()}function T(r){var l={},i=t.remoteUrl+encodeuriComponent(r);t.remoteUrlRequestFormatter&&(l={params:t.remoteUrlRequestFormatter(r)},i=t.remoteUrl),t.remoteUrlRequestWithCredentials&&(l.withCredentials=!0),H(),b=e.defer(),l.timeout=b.promise,n.get(i,l).success(O(r)).error(q)}function N(n){H(),b=e.defer(),t.remoteApiHandler(n,b.promise).then(O(n)).catch(q)}function z(){t.showDropdown=!1,t.results=[],x&&(x.scrollTop=0)}function E(){t.showDropdown=d,t.currentIndex=t.focusFirst?0:-1,t.results=[]}function A(e){!e||e.length<f||(t.localData?t.$apply((function(){var n;n=void 0!==t.localSearch()?t.localSearch()(e):function(e){var n,r,l,i,o=t.searchFields.split(","),a=[];for(void 0!==t.parseInput()&&(e=t.parseInput()(e)),n=0;n<t.localData.length;n++){for(r=!1,l=0;l<o.length;l++)i=L(t.localData[n],o[l])||"",r=r||i.toString().toLowerCase().indexOf(e.toString().toLowerCase())>=0;r&&(a[a.length]=t.localData[n])}return a}(e),t.searching=!1,B(n,e)})):t.remoteApiHandler?N(e):T(e))}function B(e,n){var r,l,i,o,a,u;if(e&&e.length>0)for(t.results=[],r=0;r<e.length;r++)t.titleField&&""!==t.titleField&&(o=a=R(e[r])),l="",t.descriptionField&&(l=u=L(e[r],t.descriptionField)),i="",t.imageField&&(i=L(e[r],t.imageField)),t.matchClass&&(a=D(o,n),u=D(l,n)),t.results[t.results.length]={title:a,description:u,image:i,originalObject:e[r]};else t.results=[];t.autoMatch&&1===t.results.length&&function(e,n,r){if(!r)return!1;for(var l in n)if(n[l].toLowerCase()===r.toLowerCase())return t.selectResult(e),!0;return!1}(t.results[0],{title:o,desc:l||""},t.uri)?t.showDropdown=!1:0!==t.results.length||g?t.showDropdown=!0:t.showDropdown=!1}function V(){t.localData?B(t.localData,""):t.remoteApiHandler?N(""):T("")}i.on("mousedown",(function(e){e.target.id?(S=e.target.id)===t.id+"_dropdown"&&document.body.addEventListener("click",I):S=e.target.className})),t.currentIndex=t.focusFirst?0:null,t.searching=!1,c=t.$watch("initialValue",(function(e){e&&(c(),C(e,!0))})),t.$watch("fieldRequired",(function(e,n){e!==n&&(e?v&&-1!==t.currentIndex?F(!0):F(!1):a[t.inputName].$setValidity(w,!0))})),t.$on("angucomplete-alt:clearInput",(function(e,n){n&&n!==t.id||(t.uri=null,M(),F(!1),z())})),t.$on("angucomplete-alt:changeInput",(function(e,n,r){n&&n===t.id&&C(r)})),t.onFocusHandler=function(){t.focusIn&&t.focusIn(),0!==f||t.uri&&0!==t.uri.length||(t.currentIndex=t.focusFirst?0:t.currentIndex,t.showDropdown=!0,V())},t.hideResults=function(){S&&(S===t.id+"_dropdown"||S.indexOf("angucomplete")>=0)?S=null:(u=l((function(){z(),t.$apply((function(){t.uri&&t.uri.length>0&&h.val(t.uri)}))}),200),H(),t.focusOut&&t.focusOut(),t.overrideSuggestions&&t.uri&&t.uri.length>0&&-1===t.currentIndex&&j())},t.resetHideResults=function(){u&&l.cancel(u)},t.hoverRow=function(e){t.currentIndex=e},t.selectResult=function(e){t.matchClass&&(e.title=R(e.originalObject),"string"==typeof e.title&&(e.title=e.title.replace(/<b>|<\/b>/g,"")),e.description=L(e.originalObject,t.descriptionField)),t.clearSelected?t.uri=null:t.uri=e.title,M(e),z()},t.inputChangeHandler=function(e){return e.length<f?(H(),z()):0===e.length&&0===f&&(t.searching=!1,V()),t.inputChanged&&(e=t.inputChanged(e)),e},t.fieldRequiredClass&&""!==t.fieldRequiredClass&&(w=t.fieldRequiredClass),t.minlength&&""!==t.minlength&&(f=parseInt(t.minlength,10)),t.pause||(t.pause=500),t.clearSelected||(t.clearSelected=!1),t.overrideSuggestions||(t.overrideSuggestions=!1),t.fieldRequired&&a&&(t.initialValue?F(!0):F(!1)),t.inputType=o.type?o.type:"text",t.textSearching=o.textSearching?o.textSearching:"Searching...",t.textNoResults=o.textNoResults?o.textNoResults:"No results found",d="false"!==t.textSearching,g="false"!==t.textNoResults,t.maxlength=o.maxlength?o.maxlength:524288,h.on("keydown",(function(e){var n=$(e),r=null,l=null;13===n&&t.results?(t.currentIndex>=0&&t.currentIndex<t.results.length?(e.preventDefault(),t.selectResult(t.results[t.currentIndex])):(j(e),z()),t.$apply()):40===n&&t.results?(e.preventDefault(),t.currentIndex+1<t.results.length&&t.showDropdown&&(t.$apply((function(){t.currentIndex++,U()})),y&&(r=X(),x.getBoundingClientRect().top+parseInt(getComputedStyle(x).maxHeight,10)<r.getBoundingClientRect().bottom&&k(function(e){var t=getComputedStyle(e);return e.offsetHeight+parseInt(t.marginTop,10)+parseInt(t.marginBottom,10)}(r))))):38===n&&t.results?(e.preventDefault(),t.currentIndex>=1?(t.$apply((function(){t.currentIndex--,U()})),y&&(l=X().getBoundingClientRect().top-(x.getBoundingClientRect().top+parseInt(getComputedStyle(x).paddingTop,10)))<0&&k(l-1)):0===t.currentIndex&&t.$apply((function(){t.currentIndex=-1,h.val(t.uri)}))):9===n?t.results&&t.results.length>0&&t.showDropdown?-1===t.currentIndex&&t.overrideSuggestions?j():(-1===t.currentIndex&&(t.currentIndex=0),t.selectResult(t.results[t.currentIndex]),t.$digest()):t.uri&&t.uri.length>0&&j():27===n&&e.preventDefault()})),h.on("keyup",(function(e){var n=$(e);if(37!==n&&39!==n)if(38===n||13===n)e.preventDefault();else if(40===n)e.preventDefault(),!t.showDropdown&&t.uri&&t.uri.length>=f&&(E(),t.searching=!0,A(t.uri));else if(27===n)z(),t.$apply((function(){h.val(t.uri)}));else{if(0===f&&!t.uri)return;t.uri&&""!==t.uri?t.uri.length>=f&&(E(),m&&l.cancel(m),t.searching=!0,m=l((function(){A(t.uri)}),t.pause)):t.showDropdown=!1,v&&v!==t.uri&&!t.clearSelected&&t.$apply((function(){M()}))}})),p="remoteUrlResponseFormatter",s=function(e){return t[p]?t[p](e):e},l((function(){var e=getComputedStyle(x);y=e.maxHeight&&"auto"===e.overflowY}))}return i.put("/angucomplete-alt/index.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}"> <input id="{{id}}_value" name="{{inputName}}" tabindex="{{fieldTabindex}}" ng-class="{\'angucomplete-input-not-empty\': notEmpty}" ng-model="uri" ng-disabled="disableInput" type="{{inputType}}" placeholder="{{placeholder}}" maxlength="{{maxlength}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(uri)" style="overflow: hidden; padding-right: .5em;"/> <div id="{{id}}_dropdown" class="angucomplete-dropdown" ng-show="disableSuggestions && showDropdown"> <div class="angucomplete-searching" ng-show="searching" ng-bind="textSearching"></div> <div class="angucomplete-searching" ng-show="!searching && (!results || results.length == 0)" ng-bind="textNoResults"></div> <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}"> <div ng-if="imageField" class="angucomplete-image-holder"> <img ng-if="result.image && result.image != \'\'" ng-src="{{result.image}}" class="angucomplete-image"/> <div ng-if="!result.image && result.image != \'\'" class="angucomplete-image-default"></div> </div> <div class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title"></div> <div class="angucomplete-title" ng-if="!matchClass">{{ result.title }}</div> <div ng-if="matchClass && result.description && result.description != \'\'" class="angucomplete-description" ng-bind-html="result.description"></div> <div ng-if="!matchClass && result.description && result.description != \'\'" class="angucomplete-description">{{result.description}}</div> </div> </div></div>'),{restrict:"EA",require:"^?form",scope:{selectedObject:"=",disableInput:"=",disableSuggestions:"=",initialValue:"=",localData:"=",localSearch:"&",remoteUrlRequestFormatter:"=",remoteUrlRequestWithCredentials:"@",remoteUrlResponseFormatter:"=",remoteUrlErrorCallback:"=",remoteApiHandler:"=",id:"@",type:"@",placeholder:"@",remoteUrl:"@",remoteUrlDataField:"@",titleField:"@",descriptionField:"@",imageField:"@",inputClass:"@",pause:"@",searchFields:"@",minlength:"@",matchClass:"@",clearSelected:"@",overrideSuggestions:"@",fieldRequired:"=",fieldRequiredClass:"@",inputChanged:"=",autoMatch:"@",focusOut:"&",focusIn:"&",fieldTabindex:"@",inputName:"@",focusFirst:"@",parseInput:"&"},templateUrl:function(e,t){return t.templateUrl||"/angucomplete-alt/index.html"},compile:function(e){var t=o.startSymbol(),n=o.endSymbol();if("{{"!==t||"}}"!==n){var r=e.html().replace(/\{\{/g,t).replace(/\}\}/g,n);e.html(r)}return u}}}])}(window.angular)}()},56:function(e,t){function n(e){return{restrict:"A",scope:{min:"=",max:"="},link:function(t,n,r){const l={debounce:_.debounce,delay:100,loadDelay:10,compressor:1,min:r.fitTextMin||"inherit",max:r.fitTextMax||"inherit",calcSize:10,lines:1},i=n.parent(),o=n[0],a=o.style,u=window.getComputedStyle(n[0],null),s=n.children().length||l.lines,c="inherit"===l.min?u["font-size"]:l.min,d="inherit"===l.max?u["font-size"]:l.max,g=u["line-height"],p=u.display;let h;function f(){const e=l.calcSize*s/o.offsetWidth/s;return Math.max(Math.min(function(e){const t=parseFloat(getComputedStyle(i[0]).paddingLeft),n=parseFloat(getComputedStyle(i[0]).paddingRight);return(i[0].offsetWidth-(t+n))*e*l.compressor}(e),parseFloat(d)),parseFloat(c))}function m(){h&&e.cancel(h),h=e((function(){o.offsetHeight*o.offsetWidth!=0&&(a.fontSize=l.calcSize+"px",a.lineHeight="1",a.display="inline-block",a.fontSize=f()+"px",a.lineHeight=g,a.display=p)}),l.loadDelay)}t.$watch((function(){return[i[0].offsetWidth,n[0].offsetWidth].join("_")}),(function(){m()})),$(window).on("resize",l.debounce((function(){t.$apply(m)}),l.delay)),t.$on("$destroy",(function(){h&&e.cancel(h),$(window).off("resize")}))}}}angular.module("graphdb.framework.core.directives.fittext",[]).directive("fitText",n),n.$inject=["$timeout"]},57:function(e,t){function n(){return{transformToTrig:function(e){let t="";const n={};for(let t=0;t<e.length;t++){const r=e[t];if(void 0===r.context?r.context="":r.context=_.trim(r.context),angular.isUndefined(n[r.context])){const e=[];e.push(r),n[r.context]=e}else n[r.context].push(r)}const r=Object.keys(n);for(let e=0;e<r.length;e++){const l=r[e];t+=""===l?"\n{":"\n<"+l+"> {";const i=n[l];for(let e=0;e<i.length;e++){const n=i[e];t+="\n\t<"+n.subject+"> <"+n.predicate+"> ","uri"===n.object.type?t+="<"+n.object.value+"> .":t+='"'+n.object.value+'"'+(n.object.datatype?"^^<"+n.object.datatype+">":n.object.lang?"@"+n.object.lang:"")+" ."}t+="\n}"}return t},buildStatements:function(e,t){const n=[];if(!_.isEmpty(e.data)){const r=e.data[t],l=Object.keys(r);for(let e=0;e<l.length;e++){const i=l[e],o=r[i];for(let e=0;e<o.length;e++){const r=o[e];for(let e=0;e<r.graphs.length;e++){let l=r.graphs[e];"http://www.ontotext.com/explicit"===l&&(l=""),r.lang&&(r.datatype=""),r.datatype||(r.datatype=""),n.push({subject:t,predicate:i,object:{value:r.value,type:r.type,datatype:r.datatype,lang:r.lang},context:l})}}}}return n},getDatatypeOptions:function(){return[{value:"",label:"string"},{value:"http://www.w3.org/2001/XMLSchema#boolean",label:"boolean"},{value:"http://www.w3.org/2001/XMLSchema#decimal",label:"decimal"},{value:"http://www.w3.org/2001/XMLSchema#integer",label:"integer"},{value:"http://www.w3.org/2001/XMLSchema#double",label:"double"},{value:"http://www.w3.org/2001/XMLSchema#float",label:"float"},{value:"http://www.w3.org/2001/XMLSchema#date",label:"date"},{value:"http://www.w3.org/2001/XMLSchema#time",label:"time"},{value:"http://www.w3.org/2001/XMLSchema#dateTime",label:"date time"},{value:"http://www.w3.org/2001/XMLSchema#byte",label:"byte"},{value:"http://www.w3.org/2001/XMLSchema#short",label:"short"},{value:"http://www.w3.org/2001/XMLSchema#int",label:"int"},{value:"http://www.w3.org/2001/XMLSchema#long",label:"long"},{value:"http://www.w3.org/2001/XMLSchema#unsignedByte",label:"unsigned byte"},{value:"http://www.w3.org/2001/XMLSchema#unsignedShort",label:"unsigned short"},{value:"http://www.w3.org/2001/XMLSchema#unsignedInt",label:"unsigned int"},{value:"http://www.w3.org/2001/XMLSchema#unsignedLong",label:"unsigned long"},{value:"http://www.w3.org/2001/XMLSchema#positoveInteger",label:"positive integer"},{value:"http://www.w3.org/2001/XMLSchema#nonNegativeInteger",label:"non-negative integer"},{value:"http://www.w3.org/2001/XMLSchema#negativeInteger",label:"negative integer"},{value:"http://www.w3.org/2001/XMLSchema#nonPositiveInteger",label:"non-positive integer"},{value:"http://www.w3.org/2001/XMLSchema#gYear",label:"gYear"},{value:"http://www.w3.org/2001/XMLSchema#gMonth",label:"gMonth"},{value:"http://www.w3.org/2001/XMLSchema#gDay",label:"gDay"},{value:"http://www.w3.org/2001/XMLSchema#gYearMonth",label:"gYearMonth"},{value:"http://www.w3.org/2001/XMLSchema#gMonthDay",label:"gMonthDay"},{value:"http://www.w3.org/2001/XMLSchema#duration",label:"duration"},{value:"http://www.w3.org/2001/XMLSchema#hexBinary",label:"hex binary"},{value:"http://www.w3.org/2001/XMLSchema#base64Binary",label:"base64 binary"}]}}}angular.module("graphdb.framework.explore.services",[]).factory("StatementsService",n),n.$inject=[]},58:function(e,t,n){"use strict";n.r(t);n(13);angular.module("graphdb.framework.explore.directives",["graphdb.framework.utils.uriutils"]).directive("uri",["UriUtils",function(e){return{require:"ngModel",link:function(t,n,r,l){l.$parsers.unshift((function(t){if(!angular.isUndefined(t)&&t.length>0){const n=e.validateRdfUri(t);return l.$setValidity("searchStr",n),n?t:void 0}return l.$setValidity("searchStr",!0),t})),l.$formatters.unshift((function(t){return angular.isUndefined(t)||l.$setValidity("searchStr",e.validateRdfUri),t}))}}}])}}]);
|
|
4
|
-
//# sourceMappingURL=15.
|
|
3
|
+
!function(e,t){"use strict";!function(e){e.module("angucomplete-alt-onto",[]).directive("angucompleteAltOnto",["$q","$parse","$http","$sce","$timeout","$templateCache","$interpolate","$rootScope",function(e,t,n,r,l,i,o,a){function u(t,i,o,a){var u,s,c,d,g,p,h=i.find("input"),f=3,m=null,w="autocomplete-required",v=null,b=null,x=i[0].querySelector(".angucomplete-dropdown"),y=!1,S=null;function C(e,n){e&&("object"==typeof e?(t.uri=R(e),M({originalObject:e})):"string"==typeof e&&e.length>0?t.uri=e:console&&console.error&&console.error("Tried to set "+(n?"initial":"")+" value of angucomplete to",e,"which is an invalid value"),F(!0))}function I(e){S=null,t.hideResults(e),document.body.removeEventListener("click",I)}function $(e){return e.which?e.which:e.keyCode}function M(e){"function"==typeof t.selectedObject?t.selectedObject(e):t.selectedObject=e,F(!!e)}function R(e){return t.titleField.split(",").map((function(t){return L(e,t)})).join(" ")}function L(e,t){var n,r;if(t){n=t.split("."),r=e;for(var l=0;l<n.length;l++)r=r[n[l]]}else r=e;return r}function D(e,n){var l,i,o;if(o=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),e)return e.match&&e.replace||(e=e.toString()),l=(i=e.match(o))?e.replace(o,'<span class="'+t.matchClass+'">'+i[0]+"</span>"):e,r.trustAsHtml(l)}function F(e){t.notEmpty=e,v=t.uri,t.fieldRequired&&a&&t.inputName&&a[t.inputName].$setValidity(w,e)}function j(e){!t.overrideSuggestions||t.selectedObject&&t.selectedObject.originalObject===t.uri||(e&&e.preventDefault(),l.cancel(m),H(),M({originalObject:t.uri}),t.clearSelected&&(t.uri=null),z())}function X(){return i[0].querySelectorAll(".angucomplete-row")[t.currentIndex]}function k(e){x.scrollTop=x.scrollTop+e}function U(){var e=t.results[t.currentIndex];if(t.matchClass){var n=R(e.originalObject);n=n.replace(/<b>|<\/b>/g,""),h.val(n)}else h.val(e.title)}function O(e){return function(n,r,l,i){r||l||i||!n.data||(n=n.data),t.searching=!1,B(L(s(n),t.remoteUrlDataField),e)}}function q(e,n,r,l){0!==n&&-1!==n&&(n||r||l||(n=e.status),t.remoteUrlErrorCallback?t.remoteUrlErrorCallback(e,n,r,l):console&&console.error&&console.error("http error"))}function H(){b&&b.resolve()}function T(r){var l={},i=t.remoteUrl+encodeuriComponent(r);t.remoteUrlRequestFormatter&&(l={params:t.remoteUrlRequestFormatter(r)},i=t.remoteUrl),t.remoteUrlRequestWithCredentials&&(l.withCredentials=!0),H(),b=e.defer(),l.timeout=b.promise,n.get(i,l).success(O(r)).error(q)}function N(n){H(),b=e.defer(),t.remoteApiHandler(n,b.promise).then(O(n)).catch(q)}function z(){t.showDropdown=!1,t.results=[],x&&(x.scrollTop=0)}function E(){t.showDropdown=d,t.currentIndex=t.focusFirst?0:-1,t.results=[]}function A(e){!e||e.length<f||(t.localData?t.$apply((function(){var n;n=void 0!==t.localSearch()?t.localSearch()(e):function(e){var n,r,l,i,o=t.searchFields.split(","),a=[];for(void 0!==t.parseInput()&&(e=t.parseInput()(e)),n=0;n<t.localData.length;n++){for(r=!1,l=0;l<o.length;l++)i=L(t.localData[n],o[l])||"",r=r||i.toString().toLowerCase().indexOf(e.toString().toLowerCase())>=0;r&&(a[a.length]=t.localData[n])}return a}(e),t.searching=!1,B(n,e)})):t.remoteApiHandler?N(e):T(e))}function B(e,n){var r,l,i,o,a,u;if(e&&e.length>0)for(t.results=[],r=0;r<e.length;r++)t.titleField&&""!==t.titleField&&(o=a=R(e[r])),l="",t.descriptionField&&(l=u=L(e[r],t.descriptionField)),i="",t.imageField&&(i=L(e[r],t.imageField)),t.matchClass&&(a=D(o,n),u=D(l,n)),t.results[t.results.length]={title:a,description:u,image:i,originalObject:e[r]};else t.results=[];t.autoMatch&&1===t.results.length&&function(e,n,r){if(!r)return!1;for(var l in n)if(n[l].toLowerCase()===r.toLowerCase())return t.selectResult(e),!0;return!1}(t.results[0],{title:o,desc:l||""},t.uri)?t.showDropdown=!1:0!==t.results.length||g?t.showDropdown=!0:t.showDropdown=!1}function V(){t.localData?B(t.localData,""):t.remoteApiHandler?N(""):T("")}i.on("mousedown",(function(e){e.target.id?(S=e.target.id)===t.id+"_dropdown"&&document.body.addEventListener("click",I):S=e.target.className})),t.currentIndex=t.focusFirst?0:null,t.searching=!1,c=t.$watch("initialValue",(function(e){e&&(c(),C(e,!0))})),t.$watch("fieldRequired",(function(e,n){e!==n&&(e?v&&-1!==t.currentIndex?F(!0):F(!1):a[t.inputName].$setValidity(w,!0))})),t.$on("angucomplete-alt:clearInput",(function(e,n){n&&n!==t.id||(t.uri=null,M(),F(!1),z())})),t.$on("angucomplete-alt:changeInput",(function(e,n,r){n&&n===t.id&&C(r)})),t.onFocusHandler=function(){t.focusIn&&t.focusIn(),0!==f||t.uri&&0!==t.uri.length||(t.currentIndex=t.focusFirst?0:t.currentIndex,t.showDropdown=!0,V())},t.hideResults=function(){S&&(S===t.id+"_dropdown"||S.indexOf("angucomplete")>=0)?S=null:(u=l((function(){z(),t.$apply((function(){t.uri&&t.uri.length>0&&h.val(t.uri)}))}),200),H(),t.focusOut&&t.focusOut(),t.overrideSuggestions&&t.uri&&t.uri.length>0&&-1===t.currentIndex&&j())},t.resetHideResults=function(){u&&l.cancel(u)},t.hoverRow=function(e){t.currentIndex=e},t.selectResult=function(e){t.matchClass&&(e.title=R(e.originalObject),"string"==typeof e.title&&(e.title=e.title.replace(/<b>|<\/b>/g,"")),e.description=L(e.originalObject,t.descriptionField)),t.clearSelected?t.uri=null:t.uri=e.title,M(e),z()},t.inputChangeHandler=function(e){return e.length<f?(H(),z()):0===e.length&&0===f&&(t.searching=!1,V()),t.inputChanged&&(e=t.inputChanged(e)),e},t.fieldRequiredClass&&""!==t.fieldRequiredClass&&(w=t.fieldRequiredClass),t.minlength&&""!==t.minlength&&(f=parseInt(t.minlength,10)),t.pause||(t.pause=500),t.clearSelected||(t.clearSelected=!1),t.overrideSuggestions||(t.overrideSuggestions=!1),t.fieldRequired&&a&&(t.initialValue?F(!0):F(!1)),t.inputType=o.type?o.type:"text",t.textSearching=o.textSearching?o.textSearching:"Searching...",t.textNoResults=o.textNoResults?o.textNoResults:"No results found",d="false"!==t.textSearching,g="false"!==t.textNoResults,t.maxlength=o.maxlength?o.maxlength:524288,h.on("keydown",(function(e){var n=$(e),r=null,l=null;13===n&&t.results?(t.currentIndex>=0&&t.currentIndex<t.results.length?(e.preventDefault(),t.selectResult(t.results[t.currentIndex])):(j(e),z()),t.$apply()):40===n&&t.results?(e.preventDefault(),t.currentIndex+1<t.results.length&&t.showDropdown&&(t.$apply((function(){t.currentIndex++,U()})),y&&(r=X(),x.getBoundingClientRect().top+parseInt(getComputedStyle(x).maxHeight,10)<r.getBoundingClientRect().bottom&&k(function(e){var t=getComputedStyle(e);return e.offsetHeight+parseInt(t.marginTop,10)+parseInt(t.marginBottom,10)}(r))))):38===n&&t.results?(e.preventDefault(),t.currentIndex>=1?(t.$apply((function(){t.currentIndex--,U()})),y&&(l=X().getBoundingClientRect().top-(x.getBoundingClientRect().top+parseInt(getComputedStyle(x).paddingTop,10)))<0&&k(l-1)):0===t.currentIndex&&t.$apply((function(){t.currentIndex=-1,h.val(t.uri)}))):9===n?t.results&&t.results.length>0&&t.showDropdown?-1===t.currentIndex&&t.overrideSuggestions?j():(-1===t.currentIndex&&(t.currentIndex=0),t.selectResult(t.results[t.currentIndex]),t.$digest()):t.uri&&t.uri.length>0&&j():27===n&&e.preventDefault()})),h.on("keyup",(function(e){var n=$(e);if(37!==n&&39!==n)if(38===n||13===n)e.preventDefault();else if(40===n)e.preventDefault(),!t.showDropdown&&t.uri&&t.uri.length>=f&&(E(),t.searching=!0,A(t.uri));else if(27===n)z(),t.$apply((function(){h.val(t.uri)}));else{if(0===f&&!t.uri)return;t.uri&&""!==t.uri?t.uri.length>=f&&(E(),m&&l.cancel(m),t.searching=!0,m=l((function(){A(t.uri)}),t.pause)):t.showDropdown=!1,v&&v!==t.uri&&!t.clearSelected&&t.$apply((function(){M()}))}})),p="remoteUrlResponseFormatter",s=function(e){return t[p]?t[p](e):e},l((function(){var e=getComputedStyle(x);y=e.maxHeight&&"auto"===e.overflowY}))}return i.put("/angucomplete-alt/index.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}"> <input id="{{id}}_value" name="{{inputName}}" tabindex="{{fieldTabindex}}" ng-class="{\'angucomplete-input-not-empty\': notEmpty}" ng-model="uri" ng-disabled="disableInput" type="{{inputType}}" placeholder="{{placeholder}}" maxlength="{{maxlength}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(uri)" style="overflow: hidden; padding-right: .5em;"/> <div id="{{id}}_dropdown" class="angucomplete-dropdown" ng-show="disableSuggestions && showDropdown"> <div class="angucomplete-searching" ng-show="searching" ng-bind="textSearching"></div> <div class="angucomplete-searching" ng-show="!searching && (!results || results.length == 0)" ng-bind="textNoResults"></div> <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}"> <div ng-if="imageField" class="angucomplete-image-holder"> <img ng-if="result.image && result.image != \'\'" ng-src="{{result.image}}" class="angucomplete-image"/> <div ng-if="!result.image && result.image != \'\'" class="angucomplete-image-default"></div> </div> <div class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title"></div> <div class="angucomplete-title" ng-if="!matchClass">{{ result.title }}</div> <div ng-if="matchClass && result.description && result.description != \'\'" class="angucomplete-description" ng-bind-html="result.description"></div> <div ng-if="!matchClass && result.description && result.description != \'\'" class="angucomplete-description">{{result.description}}</div> </div> </div></div>'),{restrict:"EA",require:"^?form",scope:{selectedObject:"=",disableInput:"=",disableSuggestions:"=",initialValue:"=",localData:"=",localSearch:"&",remoteUrlRequestFormatter:"=",remoteUrlRequestWithCredentials:"@",remoteUrlResponseFormatter:"=",remoteUrlErrorCallback:"=",remoteApiHandler:"=",id:"@",type:"@",placeholder:"@",remoteUrl:"@",remoteUrlDataField:"@",titleField:"@",descriptionField:"@",imageField:"@",inputClass:"@",pause:"@",searchFields:"@",minlength:"@",matchClass:"@",clearSelected:"@",overrideSuggestions:"@",fieldRequired:"=",fieldRequiredClass:"@",inputChanged:"=",autoMatch:"@",focusOut:"&",focusIn:"&",fieldTabindex:"@",inputName:"@",focusFirst:"@",parseInput:"&"},templateUrl:function(e,t){return t.templateUrl||"/angucomplete-alt/index.html"},compile:function(e){var t=o.startSymbol(),n=o.endSymbol();if("{{"!==t||"}}"!==n){var r=e.html().replace(/\{\{/g,t).replace(/\}\}/g,n);e.html(r)}return u}}}])}(window.angular)}()},56:function(e,t){function n(e){return{restrict:"A",scope:{min:"=",max:"="},link:function(t,n,r){const l={debounce:_.debounce,delay:100,loadDelay:10,compressor:1,min:r.fitTextMin||"inherit",max:r.fitTextMax||"inherit",calcSize:10,lines:1},i=n.parent(),o=n[0],a=o.style,u=window.getComputedStyle(n[0],null),s=n.children().length||l.lines,c="inherit"===l.min?u["font-size"]:l.min,d="inherit"===l.max?u["font-size"]:l.max,g=u["line-height"],p=u.display;let h;function f(){const e=l.calcSize*s/o.offsetWidth/s;return Math.max(Math.min(function(e){const t=parseFloat(getComputedStyle(i[0]).paddingLeft),n=parseFloat(getComputedStyle(i[0]).paddingRight);return(i[0].offsetWidth-(t+n))*e*l.compressor}(e),parseFloat(d)),parseFloat(c))}function m(){h&&e.cancel(h),h=e((function(){o.offsetHeight*o.offsetWidth!=0&&(a.fontSize=l.calcSize+"px",a.lineHeight="1",a.display="inline-block",a.fontSize=f()+"px",a.lineHeight=g,a.display=p)}),l.loadDelay)}t.$watch((function(){return[i[0].offsetWidth,n[0].offsetWidth].join("_")}),(function(){m()})),$(window).on("resize",l.debounce((function(){t.$apply(m)}),l.delay)),t.$on("$destroy",(function(){h&&e.cancel(h),$(window).off("resize")}))}}}angular.module("graphdb.framework.core.directives.fittext",[]).directive("fitText",n),n.$inject=["$timeout"]},57:function(e,t){function n(){return{transformToTrig:function(e){let t="";const n={};for(let t=0;t<e.length;t++){const r=e[t];if(void 0===r.context?r.context="":r.context=_.trim(r.context),angular.isUndefined(n[r.context])){const e=[];e.push(r),n[r.context]=e}else n[r.context].push(r)}const r=Object.keys(n);for(let e=0;e<r.length;e++){const l=r[e];t+=""===l?"\n{":"\n<"+l+"> {";const i=n[l];for(let e=0;e<i.length;e++){const n=i[e];t+="\n\t<"+n.subject+"> <"+n.predicate+"> ","uri"===n.object.type?t+="<"+n.object.value+"> .":t+='"""'+n.object.value+'"""'+(n.object.datatype?"^^<"+n.object.datatype+">":n.object.lang?"@"+n.object.lang:"")+" ."}t+="\n}"}return t},buildStatements:function(e,t){const n=[];if(!_.isEmpty(e.data)){const r=e.data[t],l=Object.keys(r);for(let e=0;e<l.length;e++){const i=l[e],o=r[i];for(let e=0;e<o.length;e++){const r=o[e];for(let e=0;e<r.graphs.length;e++){let l=r.graphs[e];"http://www.ontotext.com/explicit"===l&&(l=""),r.lang&&(r.datatype=""),r.datatype||(r.datatype=""),n.push({subject:t,predicate:i,object:{value:r.value,type:r.type,datatype:r.datatype,lang:r.lang},context:l})}}}}return n},getDatatypeOptions:function(){return[{value:"",label:"string"},{value:"http://www.w3.org/2001/XMLSchema#boolean",label:"boolean"},{value:"http://www.w3.org/2001/XMLSchema#decimal",label:"decimal"},{value:"http://www.w3.org/2001/XMLSchema#integer",label:"integer"},{value:"http://www.w3.org/2001/XMLSchema#double",label:"double"},{value:"http://www.w3.org/2001/XMLSchema#float",label:"float"},{value:"http://www.w3.org/2001/XMLSchema#date",label:"date"},{value:"http://www.w3.org/2001/XMLSchema#time",label:"time"},{value:"http://www.w3.org/2001/XMLSchema#dateTime",label:"date time"},{value:"http://www.w3.org/2001/XMLSchema#byte",label:"byte"},{value:"http://www.w3.org/2001/XMLSchema#short",label:"short"},{value:"http://www.w3.org/2001/XMLSchema#int",label:"int"},{value:"http://www.w3.org/2001/XMLSchema#long",label:"long"},{value:"http://www.w3.org/2001/XMLSchema#unsignedByte",label:"unsigned byte"},{value:"http://www.w3.org/2001/XMLSchema#unsignedShort",label:"unsigned short"},{value:"http://www.w3.org/2001/XMLSchema#unsignedInt",label:"unsigned int"},{value:"http://www.w3.org/2001/XMLSchema#unsignedLong",label:"unsigned long"},{value:"http://www.w3.org/2001/XMLSchema#positoveInteger",label:"positive integer"},{value:"http://www.w3.org/2001/XMLSchema#nonNegativeInteger",label:"non-negative integer"},{value:"http://www.w3.org/2001/XMLSchema#negativeInteger",label:"negative integer"},{value:"http://www.w3.org/2001/XMLSchema#nonPositiveInteger",label:"non-positive integer"},{value:"http://www.w3.org/2001/XMLSchema#gYear",label:"gYear"},{value:"http://www.w3.org/2001/XMLSchema#gMonth",label:"gMonth"},{value:"http://www.w3.org/2001/XMLSchema#gDay",label:"gDay"},{value:"http://www.w3.org/2001/XMLSchema#gYearMonth",label:"gYearMonth"},{value:"http://www.w3.org/2001/XMLSchema#gMonthDay",label:"gMonthDay"},{value:"http://www.w3.org/2001/XMLSchema#duration",label:"duration"},{value:"http://www.w3.org/2001/XMLSchema#hexBinary",label:"hex binary"},{value:"http://www.w3.org/2001/XMLSchema#base64Binary",label:"base64 binary"}]}}}angular.module("graphdb.framework.explore.services",[]).factory("StatementsService",n),n.$inject=[]},58:function(e,t,n){"use strict";n.r(t);n(13);angular.module("graphdb.framework.explore.directives",["graphdb.framework.utils.uriutils"]).directive("uri",["UriUtils",function(e){return{require:"ngModel",link:function(t,n,r,l){l.$parsers.unshift((function(t){if(!angular.isUndefined(t)&&t.length>0){const n=e.validateRdfUri(t);return l.$setValidity("searchStr",n),n?t:void 0}return l.$setValidity("searchStr",!0),t})),l.$formatters.unshift((function(t){return angular.isUndefined(t)||l.$setValidity("searchStr",e.validateRdfUri),t}))}}}])}}]);
|
|
4
|
+
//# sourceMappingURL=15.9ce4fa5c14638d63736a.bundle.js.map
|
package/dist/{15.510970e84b3d1a7768c2.bundle.js.map → 15.9ce4fa5c14638d63736a.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/explore/app.js","webpack:///./src/js/lib/angucomplete-alt/angucomplete-alt-onto.min.js","webpack:///./src/js/angular/core/directives/fit-text.directive.js","webpack:///./src/js/angular/explore/statements.service.js","webpack:///./src/js/angular/explore/directives.js"],"names":["angular","module","root","factory","directive","$q","$parse","$http","$sce","$timeout","$templateCache","$interpolate","$rootScope","link","scope","elem","attrs","ctrl","hideTimer","responseFormatter","unbindInitialValue","displaySearching","displayNoResults","fn","inputField","find","minlength","searchTimer","requiredClassName","validState","httpCanceller","dd","querySelector","isScrollOn","mousedownOn","handleInputChange","newval","initial","uri","extractTitle","callOrAssign","originalObject","length","console","error","handleRequired","clickoutHandlerForDropdown","event","hideResults","document","body","removeEventListener","ie8EventNormalizer","which","keyCode","value","selectedObject","data","titleField","split","map","field","extractValue","join","obj","key","keys","result","i","findMatchString","target","str","matches","re","RegExp","replace","match","toString","matchClass","trustAsHtml","valid","notEmpty","fieldRequired","inputName","$setValidity","handleOverrideSuggestions","overrideSuggestions","preventDefault","cancel","cancelHttpRequest","clearSelected","clearResults","dropdownRow","querySelectorAll","currentIndex","dropdownScrollTopTo","offset","scrollTop","updateInputField","current","results","extractedTitle","val","title","httpSuccessCallbackGen","responseData","status","headers","config","searching","processResults","remoteUrlDataField","httpErrorCallback","errorRes","remoteUrlErrorCallback","resolve","getRemoteResults","params","url","remoteUrl","encodeuriComponent","remoteUrlRequestFormatter","remoteUrlRequestWithCredentials","withCredentials","defer","timeout","promise","get","success","getRemoteResultsWithCustomHandler","remoteApiHandler","then","catch","showDropdown","initResults","focusFirst","searchTimerComplete","localData","$apply","localSearch","s","searchFields","parseInput","toLowerCase","indexOf","getLocalResults","description","image","text","formattedText","formattedDesc","descriptionField","imageField","autoMatch","selectResult","checkExactMatch","desc","showAll","on","id","addEventListener","className","$watch","oldval","$on","elementId","onFocusHandler","focusIn","focusOut","resetHideResults","hoverRow","index","inputChangeHandler","inputChanged","fieldRequiredClass","parseInt","pause","initialValue","inputType","type","textSearching","textNoResults","maxlength","row","rowTop","getBoundingClientRect","top","getComputedStyle","maxHeight","bottom","css","offsetHeight","marginTop","marginBottom","dropdownRowOffsetHeight","paddingTop","$digest","overflowY","put","restrict","require","disableInput","disableSuggestions","remoteUrlResponseFormatter","placeholder","inputClass","fieldTabindex","templateUrl","element","compile","tElement","startSym","startSymbol","endSym","endSymbol","interpolatedHtml","html","window","fitTextDirective","min","max","_","debounce","fitTextMin","fitTextMax","parent","domElem","domElemStyle","style","computed","newlines","children","lines","minFontSize","maxFontSize","lineHeight","display","resizePromise","calculate","ratio","calcSize","offsetWidth","Math","paddingLeft","parseFloat","paddingRight","compressor","getMaxFontSize","resizer","fontSize","loadDelay","$","delay","off","$inject","StatementsService","transformToTrig","statements","contexts","statement","undefined","context","trim","isUndefined","cstatement","push","ckeys","Object","j","subject","predicate","object","datatype","lang","buildStatements","res","isEmpty","graph","predicates","objects","k","graphs","getDatatypeOptions","label","UriUtils","attr","ngModel","$parsers","unshift","isValidUri","validateRdfUri","$formatters"],"mappings":"oGAAA,wDAoBAA,QAAQC,OAAO,4BAXC,CACZ,UACA,SACA,YACA,wBACA,qCACA,wCACA,uCACA,+C;;CCRH,SAAUC,EAAMC,GACf,cAWQ,SAAUH,GAGlBA,EAAQC,OAAO,wBAAyB,IAAIG,UAAU,sBAAuB,CAAC,KAAM,SAAU,QAAS,OAAQ,WAAY,iBAAkB,eAAgB,aAAc,SAAUC,EAAIC,EAAQC,EAAOC,EAAMC,EAAUC,EAAgBC,EAAcC,GA0CpP,SAASC,EAAKC,EAAOC,EAAMC,EAAOC,GAChC,IAGIC,EAEAC,EAMAC,EACAC,EACAC,EAoG4BC,EAjH5BC,EAAaT,EAAKU,KAAK,SACvBC,EAlCW,EAmCXC,EAAc,KAEdC,EA/Be,wBAiCfC,EAAa,KACbC,EAAgB,KAChBC,EAAKhB,EAAK,GAAGiB,cAAc,0BAC3BC,GAAa,EACbC,EAAc,KA0DlB,SAASC,EAAkBC,EAAQC,GAC7BD,IACoB,iBAAXA,GACTtB,EAAMwB,IAAMC,EAAaH,GACzBI,EAAa,CAACC,eAAgBL,KACH,iBAAXA,GAAuBA,EAAOM,OAAS,EACvD5B,EAAMwB,IAAMF,EAERO,SAAWA,QAAQC,OACrBD,QAAQC,MAAM,iBAAqBP,EAAU,UAAY,IAAM,4BAA6BD,EAAQ,6BAIxGS,GAAe,IAKnB,SAASC,EAA2BC,GAClCb,EAAc,KACdpB,EAAMkC,YAAYD,GAClBE,SAASC,KAAKC,oBAAoB,QAASL,GAI7C,SAASM,EAAmBL,GAC1B,OAAOA,EAAMM,MAAQN,EAAMM,MAAQN,EAAMO,QAG3C,SAASd,EAAae,GACgB,mBAAzBzC,EAAM0C,eACf1C,EAAM0C,eAAeD,GAGrBzC,EAAM0C,eAAiBD,EAIvBV,IADEU,GAuBN,SAAShB,EAAakB,GAEpB,OAAO3C,EAAM4C,WAAWC,MAAM,KAC3BC,KAAI,SAASC,GACZ,OAAOC,EAAaL,EAAMI,MAE3BE,KAAK,KAGV,SAASD,EAAaE,EAAKC,GACzB,IAAIC,EAAMC,EACV,GAAIF,EAAK,CACPC,EAAMD,EAAIN,MAAM,KAChBQ,EAASH,EACT,IAAK,IAAII,EAAI,EAAGA,EAAIF,EAAKxB,OAAQ0B,IAC/BD,EAASA,EAAOD,EAAKE,SAIvBD,EAASH,EAGX,OAAOG,EAGT,SAASE,EAAgBC,EAAQC,GAC/B,IAAIJ,EAAQK,EAASC,EAIrB,GADAA,EAAK,IAAIC,OAAOH,EAAII,QAAQ,sBAAuB,QAAS,KACvDL,EAUL,OATKA,EAAOM,OAAUN,EAAOK,UAAWL,EAASA,EAAOO,YAGtDV,GAFFK,EAAUF,EAAOM,MAAMH,IAEZH,EAAOK,QAAQF,EACpB,gBAAiB3D,EAAMgE,WAAY,KAAMN,EAAQ,GAAI,WAGhDF,EAEJ9D,EAAKuE,YAAYZ,GAG1B,SAAStB,EAAemC,GACtBlE,EAAMmE,SAAWD,EACjBnD,EAAaf,EAAMwB,IACfxB,EAAMoE,eAAiBjE,GAAQH,EAAMqE,WACvClE,EAAKH,EAAMqE,WAAWC,aAAaxD,EAAmBoD,GAyD1D,SAASK,EAA0BtC,IAC7BjC,EAAMwE,qBACJxE,EAAM0C,gBAAkB1C,EAAM0C,eAAef,iBAAmB3B,EAAMwB,MACtES,GACFA,EAAMwC,iBAIR9E,EAAS+E,OAAO7D,GAEhB8D,IA1HFjD,EAAa,CAACC,eA4HG3B,EAAMwB,MA1HnBxB,EAAM4E,gBACR5E,EAAMwB,IAAM,MAEdqD,KAsIF,SAASC,IACP,OAAO7E,EAAK,GAAG8E,iBAAiB,qBAAqB/E,EAAMgF,cAS7D,SAASC,EAAoBC,GAC3BjE,EAAGkE,UAAYlE,EAAGkE,UAAYD,EAGhC,SAASE,IACP,IAAIC,EAAUrF,EAAMsF,QAAQtF,EAAMgF,cAClC,GAAIhF,EAAMgE,WAAY,CACpB,IAAIuB,EAAiB9D,EAAa4D,EAAQ1D,gBAC1C4D,EAAiBA,EAAe1B,QAAQ,aAAc,IACtDnD,EAAW8E,IAAID,QAGf7E,EAAW8E,IAAIH,EAAQI,OAoF3B,SAASC,EAAuBjC,GAC9B,OAAO,SAASkC,EAAcC,EAAQC,EAASC,GAExCF,GAAWC,GAAYC,IAAUH,EAAahD,OACjDgD,EAAeA,EAAahD,MAE9B3C,EAAM+F,WAAY,EAClBC,EAAehD,EAAa3C,EAAkBsF,GAAe3F,EAAMiG,oBAAqBxC,IAI5F,SAASyC,EAAkBC,EAAUP,EAAQC,EAASC,GAErC,IAAXF,IAA4B,IAAZA,IAGfA,GAAWC,GAAYC,IAC1BF,EAASO,EAASP,QAEhB5F,EAAMoG,uBACRpG,EAAMoG,uBAAuBD,EAAUP,EAAQC,EAASC,GAGpDjE,SAAWA,QAAQC,OACrBD,QAAQC,MAAM,eAKpB,SAAS6C,IACH3D,GACFA,EAAcqF,UAIlB,SAASC,EAAiB7C,GACxB,IAAI8C,EAAS,GACTC,EAAMxG,EAAMyG,UAAYC,mBAAmBjD,GAC3CzD,EAAM2G,4BACRJ,EAAS,CAACA,OAAQvG,EAAM2G,0BAA0BlD,IAClD+C,EAAMxG,EAAMyG,WAERzG,EAAM4G,kCACVL,EAAOM,iBAAkB,GAE3BlC,IACA3D,EAAgBzB,EAAGuH,QACnBP,EAAOQ,QAAU/F,EAAcgG,QAC/BvH,EAAMwH,IAAIT,EAAKD,GACZW,QAAQxB,EAAuBjC,IAC/B3B,MAAMoE,GAGX,SAASiB,EAAkC1D,GACzCkB,IAEA3D,EAAgBzB,EAAGuH,QAEnB9G,EAAMoH,iBAAiB3D,EAAKzC,EAAcgG,SACvCK,KAAK3B,EAAuBjC,IAC5B6D,MAAMpB,GASX,SAASrB,IACP7E,EAAMuH,cAAe,EACrBvH,EAAMsF,QAAU,GACZrE,IACFA,EAAGkE,UAAY,GAInB,SAASqC,IACPxH,EAAMuH,aAAehH,EACrBP,EAAMgF,aAAehF,EAAMyH,WAAa,GAAK,EAC7CzH,EAAMsF,QAAU,GAoClB,SAASoC,EAAoBjE,IAEtBA,GAAOA,EAAI7B,OAAShB,IAGrBZ,EAAM2H,UACR3H,EAAM4H,QAAO,WACX,IAAIlE,EAEFA,OADiC,IAAxB1D,EAAM6H,cACL7H,EAAM6H,aAAN7H,CAAoByD,GA1CtC,SAAyBA,GACvB,IAAIH,EAAGQ,EAAOgE,EAAGrF,EACbsF,EAAe/H,EAAM+H,aAAalF,MAAM,KACxCa,EAAU,GAId,SAHkC,IAAvB1D,EAAMgI,eACfvE,EAAMzD,EAAMgI,YAANhI,CAAmByD,IAEtBH,EAAI,EAAGA,EAAItD,EAAM2H,UAAU/F,OAAQ0B,IAAK,CAG3C,IAFAQ,GAAQ,EAEHgE,EAAI,EAAGA,EAAIC,EAAanG,OAAQkG,IACnCrF,EAAQO,EAAahD,EAAM2H,UAAUrE,GAAIyE,EAAaD,KAAO,GAC7DhE,EAAQA,GAAUrB,EAAMsB,WAAWkE,cAAcC,QAAQzE,EAAIM,WAAWkE,gBAAkB,EAGxFnE,IACFJ,EAAQA,EAAQ9B,QAAU5B,EAAM2H,UAAUrE,IAG9C,OAAOI,EAyBSyE,CAAgB1E,GAE5BzD,EAAM+F,WAAY,EAClBC,EAAetC,EAASD,MAGnBzD,EAAMoH,iBACbD,EAAkC1D,GAElC6C,EAAiB7C,IAIrB,SAASuC,EAAeL,EAAclC,GACpC,IAAIH,EAAG8E,EAAaC,EAAOC,EAAMC,EAAeC,EAEhD,GAAI7C,GAAgBA,EAAa/D,OAAS,EAGxC,IAFA5B,EAAMsF,QAAU,GAEXhC,EAAI,EAAGA,EAAIqC,EAAa/D,OAAQ0B,IAC/BtD,EAAM4C,YAAmC,KAArB5C,EAAM4C,aAC5B0F,EAAOC,EAAgB9G,EAAakE,EAAarC,KAGnD8E,EAAc,GACVpI,EAAMyI,mBACRL,EAAcI,EAAgBxF,EAAa2C,EAAarC,GAAItD,EAAMyI,mBAGpEJ,EAAQ,GACJrI,EAAM0I,aACRL,EAAQrF,EAAa2C,EAAarC,GAAItD,EAAM0I,aAG1C1I,EAAMgE,aACRuE,EAAgBhF,EAAgB+E,EAAM7E,GACtC+E,EAAgBjF,EAAgB6E,EAAa3E,IAG/CzD,EAAMsF,QAAQtF,EAAMsF,QAAQ1D,QAAU,CACpC6D,MAAO8C,EACPH,YAAaI,EACbH,MAAOA,EACP1G,eAAgBgE,EAAarC,SAKjCtD,EAAMsF,QAAU,GAGdtF,EAAM2I,WAAsC,IAAzB3I,EAAMsF,QAAQ1D,QAzEvC,SAAyByB,EAAQH,EAAKO,GACpC,IAAKA,EAAO,OAAO,EACnB,IAAI,IAAIN,KAAOD,EACb,GAAGA,EAAIC,GAAK8E,gBAAkBxE,EAAIwE,cAEhC,OADAjI,EAAM4I,aAAavF,IACZ,EAGX,OAAO,EAkEHwF,CAAgB7I,EAAMsF,QAAQ,GAC5B,CAACG,MAAO6C,EAAMQ,KAAMV,GAAe,IAAKpI,EAAMwB,KAClDxB,EAAMuH,cAAe,EACa,IAAzBvH,EAAMsF,QAAQ1D,QAAiBpB,EAGxCR,EAAMuH,cAAe,EAFrBvH,EAAMuH,cAAe,EAMzB,SAASwB,IACH/I,EAAM2H,UACR3B,EAAehG,EAAM2H,UAAW,IAEzB3H,EAAMoH,iBACbD,EAAkC,IAGlCb,EAAiB,IAliBrBrG,EAAK+I,GAAG,aAAa,SAAS/G,GACxBA,EAAMuB,OAAOyF,IACf7H,EAAca,EAAMuB,OAAOyF,MACPjJ,EAAMiJ,GAAK,aAC7B9G,SAASC,KAAK8G,iBAAiB,QAASlH,GAI1CZ,EAAca,EAAMuB,OAAO2F,aAI/BnJ,EAAMgF,aAAehF,EAAMyH,WAAa,EAAI,KAC5CzH,EAAM+F,WAAY,EAClBzF,EAAqBN,EAAMoJ,OAAO,gBAAgB,SAAS9H,GACrDA,IAEFhB,IAEAe,EAAkBC,GAAQ,OAI9BtB,EAAMoJ,OAAO,iBAAiB,SAAS9H,EAAQ+H,GACzC/H,IAAW+H,IACR/H,EAGKP,IAAsC,IAAxBf,EAAMgF,aAI5BjD,GAAe,GAHfA,GAAe,GAHf5B,EAAKH,EAAMqE,WAAWC,aAAaxD,GAAmB,OAW5Dd,EAAMsJ,IAAI,+BAA+B,SAAUrH,EAAOsH,GACnDA,GAAaA,IAAcvJ,EAAMiJ,KACpCjJ,EAAMwB,IAAM,KACZE,IACAK,GAAe,GACf8C,QAIJ7E,EAAMsJ,IAAI,gCAAgC,SAAUrH,EAAOsH,EAAWjI,GAC9DiI,GAAaA,IAAcvJ,EAAMiJ,IACrC5H,EAAkBC,MAsftBtB,EAAMwJ,eAAiB,WACjBxJ,EAAMyJ,SACRzJ,EAAMyJ,UAEU,IAAd7I,GAAqBZ,EAAMwB,KAA4B,IAArBxB,EAAMwB,IAAII,SAC9C5B,EAAMgF,aAAehF,EAAMyH,WAAa,EAAIzH,EAAMgF,aAClDhF,EAAMuH,cAAe,EACrBwB,MAIJ/I,EAAMkC,YAAc,WACdd,IACCA,IAAgBpB,EAAMiJ,GAAK,aAC3B7H,EAAY8G,QAAQ,iBAAmB,GAC1C9G,EAAc,MAGdhB,EAAYT,GAAS,WACnBkF,IACA7E,EAAM4H,QAAO,WACP5H,EAAMwB,KAAOxB,EAAMwB,IAAII,OAAS,GAClClB,EAAW8E,IAAIxF,EAAMwB,UA1mBd,KA8mBbmD,IAEI3E,EAAM0J,UACR1J,EAAM0J,WAGJ1J,EAAMwE,qBACJxE,EAAMwB,KAAOxB,EAAMwB,IAAII,OAAS,IAA6B,IAAxB5B,EAAMgF,cAC7CT,MAMRvE,EAAM2J,iBAAmB,WACnBvJ,GACFT,EAAS+E,OAAOtE,IAIpBJ,EAAM4J,SAAW,SAASC,GACxB7J,EAAMgF,aAAe6E,GAGvB7J,EAAM4I,aAAe,SAASvF,GAExBrD,EAAMgE,aACRX,EAAOoC,MAAQhE,EAAa4B,EAAO1B,gBACP,iBAAjB0B,EAAOoC,QAChBpC,EAAOoC,MAAQpC,EAAOoC,MAAM5B,QAAQ,aAAc,KAEpDR,EAAO+E,YAAcpF,EAAaK,EAAO1B,eAAgB3B,EAAMyI,mBAG7DzI,EAAM4E,cACR5E,EAAMwB,IAAM,KAGZxB,EAAMwB,IAAM6B,EAAOoC,MAErB/D,EAAa2B,GACbwB,KAGF7E,EAAM8J,mBAAqB,SAASrG,GAalC,OAZIA,EAAI7B,OAAShB,GACf+D,IACAE,KAEsB,IAAfpB,EAAI7B,QAA8B,IAAdhB,IAC3BZ,EAAM+F,WAAY,EAClBgD,KAGE/I,EAAM+J,eACRtG,EAAMzD,EAAM+J,aAAatG,IAEpBA,GAILzD,EAAMgK,oBAAmD,KAA7BhK,EAAMgK,qBACpClJ,EAAoBd,EAAMgK,oBAIxBhK,EAAMY,WAAiC,KAApBZ,EAAMY,YAC3BA,EAAYqJ,SAASjK,EAAMY,UAAW,KAInCZ,EAAMkK,QACTlK,EAAMkK,MAvrBE,KA2rBLlK,EAAM4E,gBACT5E,EAAM4E,eAAgB,GAInB5E,EAAMwE,sBACTxE,EAAMwE,qBAAsB,GAI1BxE,EAAMoE,eAAiBjE,IAErBH,EAAMmK,aACRpI,GAAe,GAGfA,GAAe,IAInB/B,EAAMoK,UAAYlK,EAAMmK,KAAOnK,EAAMmK,KAAO,OAG5CrK,EAAMsK,cAAgBpK,EAAMoK,cAAgBpK,EAAMoK,cA7sB/B,eA8sBnBtK,EAAMuK,cAAgBrK,EAAMqK,cAAgBrK,EAAMqK,cA7sB/B,mBA8sBnBhK,EAA2C,UAAxBP,EAAMsK,cACzB9J,EAA2C,UAAxBR,EAAMuK,cAGzBvK,EAAMwK,UAAYtK,EAAMsK,UAAYtK,EAAMsK,UAztB3B,OA4tBf9J,EAAWsI,GAAG,WA/Zd,SAAwB/G,GACtB,IAAIM,EAAQD,EAAmBL,GAC3BwI,EAAM,KACNC,EAAS,KApUH,KAsUNnI,GAAoBvC,EAAMsF,SACxBtF,EAAMgF,cAAgB,GAAKhF,EAAMgF,aAAehF,EAAMsF,QAAQ1D,QAChEK,EAAMwC,iBACNzE,EAAM4I,aAAa5I,EAAMsF,QAAQtF,EAAMgF,iBAEvCT,EAA0BtC,GAC1B4C,KAEF7E,EAAM4H,UAnVE,KAoVCrF,GAAoBvC,EAAMsF,SACnCrD,EAAMwC,iBACDzE,EAAMgF,aAAe,EAAKhF,EAAMsF,QAAQ1D,QAAU5B,EAAMuH,eAC3DvH,EAAM4H,QAAO,WACX5H,EAAMgF,eACNI,OAGEjE,IACFsJ,EAAM3F,IArDL7D,EAAG0J,wBAAwBC,IAChCX,SAASY,iBAAiB5J,GAAI6J,UAAW,IAqDdL,EAAIE,wBAAwBI,QACjD9F,EA9DV,SAAiCwF,GAC/B,IAAIO,EAAMH,iBAAiBJ,GAC3B,OAAOA,EAAIQ,aACThB,SAASe,EAAIE,UAAW,IAAMjB,SAASe,EAAIG,aAAc,IA2D/BC,CAAwBX,OA7V1C,KAiWClI,GAAoBvC,EAAMsF,SACnCrD,EAAMwC,iBACFzE,EAAMgF,cAAgB,GACxBhF,EAAM4H,QAAO,WACX5H,EAAMgF,eACNI,OAGEjE,IACFuJ,EA3DC5F,IAAc6F,wBAAwBC,KAC1C3J,EAAG0J,wBAAwBC,IAC3BX,SAASY,iBAAiB5J,GAAIoK,WAAY,MA0D1B,GACXpG,EAAoByF,EAAS,IAIH,IAAvB1K,EAAMgF,cACbhF,EAAM4H,QAAO,WACX5H,EAAMgF,cAAgB,EACtBtE,EAAW8E,IAAIxF,EAAMwB,SA/WhB,IAkXAe,EACLvC,EAAMsF,SAAWtF,EAAMsF,QAAQ1D,OAAS,GAAK5B,EAAMuH,cACzB,IAAxBvH,EAAMgF,cAAuBhF,EAAMwE,oBAGrCD,MAG4B,IAAxBvE,EAAMgF,eACRhF,EAAMgF,aAAe,GAEvBhF,EAAM4I,aAAa5I,EAAMsF,QAAQtF,EAAMgF,eACvChF,EAAMsL,WAOJtL,EAAMwB,KAAOxB,EAAMwB,IAAII,OAAS,GAClC2C,IAxYI,KA2YChC,GAGTN,EAAMwC,oBAoVV/D,EAAWsI,GAAG,SA1gBd,SAAsB/G,GACpB,IAAIM,EAAQD,EAAmBL,GAC/B,GA3NU,KA2NNM,GA7NM,KA6NcA,EAKxB,GAjOU,KAiONA,GA9NM,KA8NcA,EACtBN,EAAMwC,sBAEH,GAtOK,KAsODlC,EACPN,EAAMwC,kBACDzE,EAAMuH,cAAgBvH,EAAMwB,KAAOxB,EAAMwB,IAAII,QAAUhB,IAC1D4G,IACAxH,EAAM+F,WAAY,EAClB2B,EAAoB1H,EAAMwB,WAGzB,GA1OK,KA0ODe,EACPsC,IACA7E,EAAM4H,QAAO,WACXlH,EAAW8E,IAAIxF,EAAMwB,YAGpB,CACH,GAAkB,IAAdZ,IAAoBZ,EAAMwB,IAC5B,OAGGxB,EAAMwB,KAAqB,KAAdxB,EAAMwB,IAEbxB,EAAMwB,IAAII,QAAUhB,IAC7B4G,IAEI3G,GACFlB,EAAS+E,OAAO7D,GAGlBb,EAAM+F,WAAY,EAElBlF,EAAclB,GAAS,WACrB+H,EAAoB1H,EAAMwB,OACzBxB,EAAMkK,QAZTlK,EAAMuH,cAAe,EAenBxG,GAAcA,IAAef,EAAMwB,MAAQxB,EAAM4E,eACnD5E,EAAM4H,QAAO,WACXlG,WAjHwBjB,EA+kBW,6BAA3CJ,EA9kBS,SAASsC,GACd,OAAO3C,EAAMS,GAAMT,EAAMS,GAAIkC,GAAQA,GAglBzChD,GAAS,WACP,IAAIqL,EAAMH,iBAAiB5J,GAC3BE,EAAa6J,EAAIF,WAA+B,SAAlBE,EAAIO,aAItC,OA9tBA3L,EAAe4L,IAHI,+BAIf,g3DA6tBG,CACLC,SAAU,KACVC,QAAS,SACT1L,MAAO,CACL0C,eAAgB,IAChBiJ,aAAc,IACdC,mBAAoB,IACpBzB,aAAc,IACdxC,UAAW,IACXE,YAAa,IACblB,0BAA2B,IAC3BC,gCAAiC,IACjCiF,2BAA4B,IAC5BzF,uBAAwB,IACxBgB,iBAAkB,IAClB6B,GAAI,IACJoB,KAAM,IACNyB,YAAa,IACbrF,UAAW,IACXR,mBAAoB,IACpBrD,WAAY,IACZ6F,iBAAkB,IAClBC,WAAY,IACZqD,WAAY,IACZ7B,MAAO,IACPnC,aAAc,IACdnH,UAAW,IACXoD,WAAY,IACZY,cAAe,IACfJ,oBAAqB,IACrBJ,cAAe,IACf4F,mBAAoB,IACpBD,aAAc,IACdpB,UAAW,IACXe,SAAU,IACVD,QAAS,IACTuC,cAAe,IACf3H,UAAW,IACXoD,WAAY,IACZO,WAAY,KAEdiE,YAAa,SAASC,EAAShM,GAC7B,OAAOA,EAAM+L,aA3wBE,gCA6wBjBE,QAAS,SAASC,GAChB,IAAIC,EAAWxM,EAAayM,cACxBC,EAAS1M,EAAa2M,YAC1B,GAAmB,OAAbH,GAAgC,OAAXE,EAAkB,CAC3C,IAAIE,EAAmBL,EAASM,OAC7B7I,QAAQ,QAASwI,GACjBxI,QAAQ,QAAS0I,GACpBH,EAASM,KAAKD,GAEhB,OAAO1M,OA9yBXV,CAEFsN,OAFezN,SAVjB,I,iBCFA,SAAS0N,EAAiBjN,GACtB,MAAO,CACH8L,SAAU,IACVzL,MAAO,CACH6M,IAAK,IACLC,IAAK,KAET/M,KAAM,SAAUC,EAAOkM,EAAShM,GAE5B,MAAM4F,EAAS,CACX,SAAYiH,EAAEC,SACd,MAAS,IACT,UAAa,GACb,WAAc,EACd,IAAO9M,EAAM+M,YAAc,UAC3B,IAAO/M,EAAMgN,YAAc,UAC3B,SAAY,GACZ,MAAS,GAGPC,EAASjB,EAAQiB,SACjBC,EAAUlB,EAAQ,GAClBmB,EAAeD,EAAQE,MACvBC,EAAWZ,OAAO9B,iBAAiBqB,EAAQ,GAAI,MAC/CsB,EAAWtB,EAAQuB,WAAW7L,QAAUkE,EAAO4H,MAC/CC,EAA6B,YAAf7H,EAAO+G,IAAoBU,EAAS,aAAezH,EAAO+G,IACxEe,EAA6B,YAAf9H,EAAOgH,IAAoBS,EAAS,aAAezH,EAAOgH,IACxEe,EAAaN,EAAS,eACtBO,EAAUP,EAAkB,QAClC,IAAIQ,EAEJ,SAASC,IACL,MAAMC,EAASnI,EAAOoI,SAAWV,EAAYJ,EAAQe,YAAcX,EACnE,OAAOY,KAAKtB,IAAIsB,KAAKvB,IAGzB,SAAwBoB,GACpB,MAAMI,EAAcC,WAAWzD,iBAAiBsC,EAAO,IAAIkB,aACrDE,EAAeD,WAAWzD,iBAAiBsC,EAAO,IAAIoB,cAE5D,OAAQpB,EAAO,GAAGgB,aAAeE,EAAcE,IAAiBN,EAAQnI,EAAO0I,WAPtDC,CAAeR,GAAQK,WAAWV,IAAeU,WAAWX,IA0BzF,SAASe,IACDX,GACApO,EAAS+E,OAAOqJ,GAGpBA,EAAgBpO,GAAS,WApBrByN,EAAQnC,aAAemC,EAAQe,aAAgB,IAKnDd,EAAasB,SAAW7I,EAAOoI,SAAW,KAC1Cb,EAAaQ,WAAa,IAC1BR,EAAaS,QAAU,eAGvBT,EAAasB,SAAWX,IAAc,KACtCX,EAAaQ,WAAaA,EAC1BR,EAAaS,QAAUA,KAUpBhI,EAAO8I,WAGd5O,EAAMoJ,QAAO,WACT,MAAO,CACH+D,EAAO,GAAGgB,YACVjC,EAAQ,GAAGiC,aACblL,KAAK,QACR,WACCyL,OAGJG,EAAElC,QAAQ3D,GAAG,SAAUlD,EAAOkH,UAAS,WACnChN,EAAM4H,OAAO8G,KACd5I,EAAOgJ,QAEV9O,EAAMsJ,IAAI,YAAY,WACdyE,GACApO,EAAS+E,OAAOqJ,GAEpBc,EAAElC,QAAQoC,IAAI,eA5F9B7P,QACKC,OAAO,4CAA6C,IACpDG,UAAU,UAAWsN,GAE1BA,EAAiBoC,QAAU,CAAC,a,iBCC5B,SAASC,IAoLL,MAAO,CACHC,gBApLJ,SAAyBC,GACrB,IAAIxM,EAAO,GACX,MAAMyM,EAAW,GAEjB,IAAK,IAAI9L,EAAI,EAAGA,EAAI6L,EAAWvN,OAAQ0B,IAAK,CACxC,MAAM+L,EAAYF,EAAW7L,GAM7B,QAL0BgM,IAAtBD,EAAUE,QACVF,EAAUE,QAAU,GAEpBF,EAAUE,QAAUxC,EAAEyC,KAAKH,EAAUE,SAErCrQ,QAAQuQ,YAAYL,EAASC,EAAUE,UAAW,CAClD,MAAMG,EAAa,GACnBA,EAAWC,KAAKN,GAChBD,EAASC,EAAUE,SAAWG,OAE9BN,EAASC,EAAUE,SAASI,KAAKN,GAIzC,MAAMO,EAAQC,OAAOzM,KAAKgM,GAC1B,IAAK,IAAI9L,EAAI,EAAGA,EAAIsM,EAAMhO,OAAQ0B,IAAK,CACnC,MAAMH,EAAMyM,EAAMtM,GAEdX,GADQ,KAARQ,EACQ,MAEA,MAAQA,EAAM,MAG1B,MAAMV,EAAQ2M,EAASjM,GACvB,IAAK,IAAI2M,EAAI,EAAGA,EAAIrN,EAAMb,OAAQkO,IAAK,CACnC,MAAMT,EAAY5M,EAAMqN,GACxBnN,GAAQ,QAAU0M,EAAUU,QAAU,MAAQV,EAAUW,UAAY,KACtC,QAA1BX,EAAUY,OAAO5F,KACjB1H,GAAQ,IAAM0M,EAAUY,OAAOxN,MAAQ,MAEvCE,GAAQ,IAAM0M,EAAUY,OAAOxN,MAAQ,KAAO4M,EAAUY,OAAOC,SAAW,MAAQb,EAAUY,OAAOC,SAAW,IAAOb,EAAUY,OAAOE,KAAO,IAAMd,EAAUY,OAAOE,KAAO,IAAO,KAI1LxN,GAAQ,MAGZ,OAAOA,GA0IPyN,gBAvIJ,SAAyBC,EAAK7O,GAC1B,MAAM2N,EAAa,GACnB,IAAKpC,EAAEuD,QAAQD,EAAI1N,MAAO,CACtB,MAAM4N,EAAQF,EAAI1N,KAAKnB,GACjBgP,EAAaX,OAAOzM,KAAKmN,GAC/B,IAAK,IAAIjN,EAAI,EAAGA,EAAIkN,EAAW5O,OAAQ0B,IAAK,CACxC,MAAM0M,EAAYQ,EAAWlN,GACvBmN,EAAUF,EAAMP,GACtB,IAAK,IAAIF,EAAI,EAAGA,EAAIW,EAAQ7O,OAAQkO,IAAK,CACrC,MAAMG,EAASQ,EAAQX,GACvB,IAAK,IAAIY,EAAI,EAAGA,EAAIT,EAAOU,OAAO/O,OAAQ8O,IAAK,CAC3C,IAAInB,EAAUU,EAAOU,OAAOD,GACZ,qCAAZnB,IAEAA,EAAU,IAEVU,EAAOE,OACPF,EAAOC,SAAW,IAEjBD,EAAOC,WACRD,EAAOC,SAAW,IAEtBf,EAAWQ,KAAK,CACZI,QAASvO,EACTwO,UAAWA,EACXC,OAAQ,CACJxN,MAAOwN,EAAOxN,MACd4H,KAAM4F,EAAO5F,KACb6F,SAAUD,EAAOC,SACjBC,KAAMF,EAAOE,MAEjBZ,QAASA,OAM7B,OAAOJ,GAmGPyB,mBAhGJ,WACI,MAAO,CACH,CACInO,MAAO,GACPoO,MAAO,UACR,CACCpO,MAAO,2CACPoO,MAAO,WACR,CACCpO,MAAO,2CACPoO,MAAO,WACR,CACCpO,MAAO,2CACPoO,MAAO,WACR,CACCpO,MAAO,0CACPoO,MAAO,UACR,CACCpO,MAAO,yCACPoO,MAAO,SACR,CACCpO,MAAO,wCACPoO,MAAO,QACR,CACCpO,MAAO,wCACPoO,MAAO,QACR,CACCpO,MAAO,4CACPoO,MAAO,aACR,CACCpO,MAAO,wCACPoO,MAAO,QACR,CACCpO,MAAO,yCACPoO,MAAO,SACR,CACCpO,MAAO,uCACPoO,MAAO,OACR,CACCpO,MAAO,wCACPoO,MAAO,QACR,CACCpO,MAAO,gDACPoO,MAAO,iBACR,CACCpO,MAAO,iDACPoO,MAAO,kBACR,CACCpO,MAAO,+CACPoO,MAAO,gBACR,CACCpO,MAAO,gDACPoO,MAAO,iBACR,CACCpO,MAAO,mDACPoO,MAAO,oBACR,CACCpO,MAAO,sDACPoO,MAAO,wBACR,CACCpO,MAAO,mDACPoO,MAAO,oBACR,CACCpO,MAAO,sDACPoO,MAAO,wBACR,CACCpO,MAAO,yCACPoO,MAAO,SACR,CACCpO,MAAO,0CACPoO,MAAO,UACR,CACCpO,MAAO,wCACPoO,MAAO,QACR,CACCpO,MAAO,8CACPoO,MAAO,cACR,CACCpO,MAAO,6CACPoO,MAAO,aACR,CACCpO,MAAO,4CACPoO,MAAO,YACR,CACCpO,MAAO,6CACPoO,MAAO,cACR,CACCpO,MAAO,gDACPoO,MAAO,oBArLvB3R,QACKC,OAAO,qCAAsC,IAC7CE,QAAQ,oBAAqB4P,GAElCA,EAAkBD,QAAU,I,gCCJ5B,aAE0B9P,QAAQC,OAAO,uCAAwC,CAC7E,qCAGcG,UAAU,MAAO,CAAC,WAAY,SAAUwR,GACtD,MAAO,CACHpF,QAAS,UACT3L,KAAM,SAAUC,EAAOC,EAAM8Q,EAAMC,GAG/BA,EAAQC,SAASC,SAAQ,SAAUzO,GAC/B,IAAKvD,QAAQuQ,YAAYhN,IAAUA,EAAMb,OAAS,EAAG,CACjD,MAAMuP,EAAaL,EAASM,eAAe3O,GAE3C,OADAuO,EAAQ1M,aAAa,YAAa6M,GAC3BA,EAAa1O,OAAQ6M,EAG5B,OADA0B,EAAQ1M,aAAa,aAAa,GAC3B7B,KAKfuO,EAAQK,YAAYH,SAAQ,SAAUzO,GAIlC,OAHKvD,QAAQuQ,YAAYhN,IACrBuO,EAAQ1M,aAAa,YAAawM,EAASM,gBAExC3O","file":"15.510970e84b3d1a7768c2.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/explore/statements.service';\nimport 'angular/explore/controllers';\nimport 'angular/explore/directives';\nimport 'angular-xeditable/dist/js/xeditable.min';\nimport 'lib/angucomplete-alt/angucomplete-alt-onto.min';\nimport 'angular/core/directives/fit-text.directive';\n\nconst modules = [\n 'ngRoute',\n 'toastr',\n 'xeditable',\n 'angucomplete-alt-onto',\n 'graphdb.framework.explore.services',\n 'graphdb.framework.explore.controllers',\n 'graphdb.framework.explore.directives',\n 'graphdb.framework.core.directives.fittext'\n];\n\nangular.module('graphdb.framework.explore', modules);\n","/*\n * angucomplete-alt\n * Autocomplete directive for AngularJS\n * This is a fork of Daryl Rowland's angucomplete with some extra features.\n * By Hidenari Nozaki\n */\n\n/*! Copyright (c) 2014 Hidenari Nozaki and contributors | Licensed under the MIT license */\n\n(function (root, factory) {\n 'use strict';\n// if (typeof module !== 'undefined' && module.exports) {\n// // CommonJS\n// module.exports = factory(require('angular'));\n// } else if (typeof define === 'function' && define.amd) {\n// // AMD\n// define(['angular'], factory);\n// } else {\n// // Global Variables\n factory(root.angular);\n// }\n}(window, function (angular) {\n 'use strict';\n\n angular.module('angucomplete-alt-onto', []).directive('angucompleteAltOnto', ['$q', '$parse', '$http', '$sce', '$timeout', '$templateCache', '$interpolate', '$rootScope', function ($q, $parse, $http, $sce, $timeout, $templateCache, $interpolate, $rootScope) {\n // keyboard events\n var KEY_DW = 40;\n var KEY_RT = 39;\n var KEY_UP = 38;\n var KEY_LF = 37;\n var KEY_ES = 27;\n var KEY_EN = 13;\n var KEY_TAB = 9;\n\n var MIN_LENGTH = 3;\n var MAX_LENGTH = 524288; // the default max length per the html maxlength attribute\n var PAUSE = 500;\n var BLUR_TIMEOUT = 200;\n\n // string constants\n var REQUIRED_CLASS = 'autocomplete-required';\n var TEXT_SEARCHING = 'Searching...';\n var TEXT_NORESULTS = 'No results found';\n var TEMPLATE_URL = '/angucomplete-alt/index.html';\n\n // Set the default template for this directive\n $templateCache.put(TEMPLATE_URL,\n '<div class=\"angucomplete-holder\" ng-class=\"{\\'angucomplete-dropdown-visible\\': showDropdown}\">' +\n ' <input id=\"{{id}}_value\" name=\"{{inputName}}\" tabindex=\"{{fieldTabindex}}\" ng-class=\"{\\'angucomplete-input-not-empty\\': notEmpty}\" ng-model=\"uri\" ng-disabled=\"disableInput\" type=\"{{inputType}}\" placeholder=\"{{placeholder}}\" maxlength=\"{{maxlength}}\" ng-focus=\"onFocusHandler()\" class=\"{{inputClass}}\" ng-focus=\"resetHideResults()\" ng-blur=\"hideResults($event)\" autocapitalize=\"off\" autocorrect=\"off\" autocomplete=\"off\" ng-change=\"inputChangeHandler(uri)\" style=\"overflow: hidden; padding-right: .5em;\"/>' +\n ' <div id=\"{{id}}_dropdown\" class=\"angucomplete-dropdown\" ng-show=\"disableSuggestions && showDropdown\">' +\n ' <div class=\"angucomplete-searching\" ng-show=\"searching\" ng-bind=\"textSearching\"></div>' +\n ' <div class=\"angucomplete-searching\" ng-show=\"!searching && (!results || results.length == 0)\" ng-bind=\"textNoResults\"></div>' +\n ' <div class=\"angucomplete-row\" ng-repeat=\"result in results\" ng-click=\"selectResult(result)\" ng-mouseenter=\"hoverRow($index)\" ng-class=\"{\\'angucomplete-selected-row\\': $index == currentIndex}\">' +\n ' <div ng-if=\"imageField\" class=\"angucomplete-image-holder\">' +\n ' <img ng-if=\"result.image && result.image != \\'\\'\" ng-src=\"{{result.image}}\" class=\"angucomplete-image\"/>' +\n ' <div ng-if=\"!result.image && result.image != \\'\\'\" class=\"angucomplete-image-default\"></div>' +\n ' </div>' +\n ' <div class=\"angucomplete-title\" ng-if=\"matchClass\" ng-bind-html=\"result.title\"></div>' +\n ' <div class=\"angucomplete-title\" ng-if=\"!matchClass\">{{ result.title }}</div>' +\n ' <div ng-if=\"matchClass && result.description && result.description != \\'\\'\" class=\"angucomplete-description\" ng-bind-html=\"result.description\"></div>' +\n ' <div ng-if=\"!matchClass && result.description && result.description != \\'\\'\" class=\"angucomplete-description\">{{result.description}}</div>' +\n ' </div>' +\n ' </div>' +\n '</div>'\n );\n\n function link(scope, elem, attrs, ctrl) {\n var inputField = elem.find('input');\n var minlength = MIN_LENGTH;\n var searchTimer = null;\n var hideTimer;\n var requiredClassName = REQUIRED_CLASS;\n var responseFormatter;\n var validState = null;\n var httpCanceller = null;\n var dd = elem[0].querySelector('.angucomplete-dropdown');\n var isScrollOn = false;\n var mousedownOn = null;\n var unbindInitialValue;\n var displaySearching;\n var displayNoResults;\n\n\n elem.on('mousedown', function(event) {\n if (event.target.id) {\n mousedownOn = event.target.id;\n if (mousedownOn === scope.id + '_dropdown') {\n document.body.addEventListener('click', clickoutHandlerForDropdown);\n }\n }\n else {\n mousedownOn = event.target.className;\n }\n });\n\n scope.currentIndex = scope.focusFirst ? 0 : null;\n scope.searching = false;\n unbindInitialValue = scope.$watch('initialValue', function(newval) {\n if (newval) {\n // remove scope listener\n unbindInitialValue();\n // change input\n handleInputChange(newval, true);\n }\n });\n\n scope.$watch('fieldRequired', function(newval, oldval) {\n if (newval !== oldval) {\n if (!newval) {\n ctrl[scope.inputName].$setValidity(requiredClassName, true);\n }\n else if (!validState || scope.currentIndex === -1) {\n handleRequired(false);\n }\n else {\n handleRequired(true);\n }\n }\n });\n\n scope.$on('angucomplete-alt:clearInput', function (event, elementId) {\n if (!elementId || elementId === scope.id) {\n scope.uri = null;\n callOrAssign();\n handleRequired(false);\n clearResults();\n }\n });\n\n scope.$on('angucomplete-alt:changeInput', function (event, elementId, newval) {\n if (!!elementId && elementId === scope.id) {\n handleInputChange(newval);\n }\n });\n\n function handleInputChange(newval, initial) {\n if (newval) {\n if (typeof newval === 'object') {\n scope.uri = extractTitle(newval);\n callOrAssign({originalObject: newval});\n } else if (typeof newval === 'string' && newval.length > 0) {\n scope.uri = newval;\n } else {\n if (console && console.error) {\n console.error('Tried to set ' + (!!initial ? 'initial' : '') + ' value of angucomplete to', newval, 'which is an invalid value');\n }\n }\n\n handleRequired(true);\n }\n }\n\n // #194 dropdown list not consistent in collapsing (bug).\n function clickoutHandlerForDropdown(event) {\n mousedownOn = null;\n scope.hideResults(event);\n document.body.removeEventListener('click', clickoutHandlerForDropdown);\n }\n\n // for IE8 quirkiness about event.which\n function ie8EventNormalizer(event) {\n return event.which ? event.which : event.keyCode;\n }\n\n function callOrAssign(value) {\n if (typeof scope.selectedObject === 'function') {\n scope.selectedObject(value);\n }\n else {\n scope.selectedObject = value;\n }\n\n if (value) {\n handleRequired(true);\n }\n else {\n handleRequired(false);\n }\n }\n\n function callFunctionOrIdentity(fn) {\n return function(data) {\n return scope[fn] ? scope[fn](data) : data;\n };\n }\n\n function setInputString(str) {\n callOrAssign({originalObject: str});\n\n if (scope.clearSelected) {\n scope.uri = null;\n }\n clearResults();\n }\n\n function extractTitle(data) {\n // split title fields and run extractValue for each and join with ' '\n return scope.titleField.split(',')\n .map(function(field) {\n return extractValue(data, field);\n })\n .join(' ');\n }\n\n function extractValue(obj, key) {\n var keys, result;\n if (key) {\n keys= key.split('.');\n result = obj;\n for (var i = 0; i < keys.length; i++) {\n result = result[keys[i]];\n }\n }\n else {\n result = obj;\n }\n\n return result;\n }\n\n function findMatchString(target, str) {\n var result, matches, re;\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n // Escape user input to be treated as a literal string within a regular expression\n re = new RegExp(str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'i');\n if (!target) { return; }\n if (!target.match || !target.replace) { target = target.toString(); }\n matches = target.match(re);\n if (matches) {\n result = target.replace(re,\n '<span class=\"'+ scope.matchClass +'\">'+ matches[0] +'</span>');\n }\n else {\n result = target;\n }\n return $sce.trustAsHtml(result);\n }\n\n function handleRequired(valid) {\n scope.notEmpty = valid;\n validState = scope.uri;\n if (scope.fieldRequired && ctrl && scope.inputName) {\n ctrl[scope.inputName].$setValidity(requiredClassName, valid);\n }\n }\n\n function keyupHandler(event) {\n var which = ie8EventNormalizer(event);\n if (which === KEY_LF || which === KEY_RT) {\n // do nothing\n return;\n }\n\n if (which === KEY_UP || which === KEY_EN) {\n event.preventDefault();\n }\n else if (which === KEY_DW) {\n event.preventDefault();\n if (!scope.showDropdown && scope.uri && scope.uri.length >= minlength) {\n initResults();\n scope.searching = true;\n searchTimerComplete(scope.uri);\n }\n }\n else if (which === KEY_ES) {\n clearResults();\n scope.$apply(function() {\n inputField.val(scope.uri);\n });\n }\n else {\n if (minlength === 0 && !scope.uri) {\n return;\n }\n\n if (!scope.uri || scope.uri === '') {\n scope.showDropdown = false;\n } else if (scope.uri.length >= minlength) {\n initResults();\n\n if (searchTimer) {\n $timeout.cancel(searchTimer);\n }\n\n scope.searching = true;\n\n searchTimer = $timeout(function() {\n searchTimerComplete(scope.uri);\n }, scope.pause);\n }\n\n if (validState && validState !== scope.uri && !scope.clearSelected) {\n scope.$apply(function() {\n callOrAssign();\n });\n }\n }\n }\n\n function handleOverrideSuggestions(event) {\n if (scope.overrideSuggestions &&\n !(scope.selectedObject && scope.selectedObject.originalObject === scope.uri)) {\n if (event) {\n event.preventDefault();\n }\n\n // cancel search timer\n $timeout.cancel(searchTimer);\n // cancel http request\n cancelHttpRequest();\n\n setInputString(scope.uri);\n }\n }\n\n function dropdownRowOffsetHeight(row) {\n var css = getComputedStyle(row);\n return row.offsetHeight +\n parseInt(css.marginTop, 10) + parseInt(css.marginBottom, 10);\n }\n\n function dropdownHeight() {\n return dd.getBoundingClientRect().top +\n parseInt(getComputedStyle(dd).maxHeight, 10);\n }\n\n function dropdownRow() {\n return elem[0].querySelectorAll('.angucomplete-row')[scope.currentIndex];\n }\n\n function dropdownRowTop() {\n return dropdownRow().getBoundingClientRect().top -\n (dd.getBoundingClientRect().top +\n parseInt(getComputedStyle(dd).paddingTop, 10));\n }\n\n function dropdownScrollTopTo(offset) {\n dd.scrollTop = dd.scrollTop + offset;\n }\n\n function updateInputField(){\n var current = scope.results[scope.currentIndex];\n if (scope.matchClass) {\n var extractedTitle = extractTitle(current.originalObject);\n extractedTitle = extractedTitle.replace(/<b>|<\\/b>/g, \"\");\n inputField.val(extractedTitle);\n }\n else {\n inputField.val(current.title);\n }\n }\n\n function keydownHandler(event) {\n var which = ie8EventNormalizer(event);\n var row = null;\n var rowTop = null;\n\n if (which === KEY_EN && scope.results) {\n if (scope.currentIndex >= 0 && scope.currentIndex < scope.results.length) {\n event.preventDefault();\n scope.selectResult(scope.results[scope.currentIndex]);\n } else {\n handleOverrideSuggestions(event);\n clearResults();\n }\n scope.$apply();\n } else if (which === KEY_DW && scope.results) {\n event.preventDefault();\n if ((scope.currentIndex + 1) < scope.results.length && scope.showDropdown) {\n scope.$apply(function() {\n scope.currentIndex ++;\n updateInputField();\n });\n\n if (isScrollOn) {\n row = dropdownRow();\n if (dropdownHeight() < row.getBoundingClientRect().bottom) {\n dropdownScrollTopTo(dropdownRowOffsetHeight(row));\n }\n }\n }\n } else if (which === KEY_UP && scope.results) {\n event.preventDefault();\n if (scope.currentIndex >= 1) {\n scope.$apply(function() {\n scope.currentIndex --;\n updateInputField();\n });\n\n if (isScrollOn) {\n rowTop = dropdownRowTop();\n if (rowTop < 0) {\n dropdownScrollTopTo(rowTop - 1);\n }\n }\n }\n else if (scope.currentIndex === 0) {\n scope.$apply(function() {\n scope.currentIndex = -1;\n inputField.val(scope.uri);\n });\n }\n } else if (which === KEY_TAB) {\n if (scope.results && scope.results.length > 0 && scope.showDropdown) {\n if (scope.currentIndex === -1 && scope.overrideSuggestions) {\n // intentionally not sending event so that it does not\n // prevent default tab behavior\n handleOverrideSuggestions();\n }\n else {\n if (scope.currentIndex === -1) {\n scope.currentIndex = 0;\n }\n scope.selectResult(scope.results[scope.currentIndex]);\n scope.$digest();\n }\n }\n else {\n // no results\n // intentionally not sending event so that it does not\n // prevent default tab behavior\n if (scope.uri && scope.uri.length > 0) {\n handleOverrideSuggestions();\n }\n }\n } else if (which === KEY_ES) {\n // This is very specific to IE10/11 #272\n // without this, IE clears the input text\n event.preventDefault();\n }\n }\n\n function httpSuccessCallbackGen(str) {\n return function(responseData, status, headers, config) {\n // normalize return obejct from promise\n if (!status && !headers && !config && responseData.data) {\n responseData = responseData.data;\n }\n scope.searching = false;\n processResults(extractValue(responseFormatter(responseData), scope.remoteUrlDataField), str);\n };\n }\n\n function httpErrorCallback(errorRes, status, headers, config) {\n // cancelled/aborted\n if (status === 0 || status === -1) { return; }\n\n // normalize return obejct from promise\n if (!status && !headers && !config) {\n status = errorRes.status;\n }\n if (scope.remoteUrlErrorCallback) {\n scope.remoteUrlErrorCallback(errorRes, status, headers, config);\n }\n else {\n if (console && console.error) {\n console.error('http error');\n }\n }\n }\n\n function cancelHttpRequest() {\n if (httpCanceller) {\n httpCanceller.resolve();\n }\n }\n\n function getRemoteResults(str) {\n var params = {},\n url = scope.remoteUrl + encodeuriComponent(str);\n if (scope.remoteUrlRequestFormatter) {\n params = {params: scope.remoteUrlRequestFormatter(str)};\n url = scope.remoteUrl;\n }\n if (!!scope.remoteUrlRequestWithCredentials) {\n params.withCredentials = true;\n }\n cancelHttpRequest();\n httpCanceller = $q.defer();\n params.timeout = httpCanceller.promise;\n $http.get(url, params)\n .success(httpSuccessCallbackGen(str))\n .error(httpErrorCallback);\n }\n\n function getRemoteResultsWithCustomHandler(str) {\n cancelHttpRequest();\n\n httpCanceller = $q.defer();\n\n scope.remoteApiHandler(str, httpCanceller.promise)\n .then(httpSuccessCallbackGen(str))\n .catch(httpErrorCallback);\n\n /* IE8 compatible\n scope.remoteApiHandler(str, httpCanceller.promise)\n ['then'](httpSuccessCallbackGen(str))\n ['catch'](httpErrorCallback);\n */\n }\n\n function clearResults() {\n scope.showDropdown = false;\n scope.results = [];\n if (dd) {\n dd.scrollTop = 0;\n }\n }\n\n function initResults() {\n scope.showDropdown = displaySearching;\n scope.currentIndex = scope.focusFirst ? 0 : -1;\n scope.results = [];\n }\n\n function getLocalResults(str) {\n var i, match, s, value,\n searchFields = scope.searchFields.split(','),\n matches = [];\n if (typeof scope.parseInput() !== 'undefined') {\n str = scope.parseInput()(str);\n }\n for (i = 0; i < scope.localData.length; i++) {\n match = false;\n\n for (s = 0; s < searchFields.length; s++) {\n value = extractValue(scope.localData[i], searchFields[s]) || '';\n match = match || (value.toString().toLowerCase().indexOf(str.toString().toLowerCase()) >= 0);\n }\n\n if (match) {\n matches[matches.length] = scope.localData[i];\n }\n }\n return matches;\n }\n\n function checkExactMatch(result, obj, str){\n if (!str) { return false; }\n for(var key in obj){\n if(obj[key].toLowerCase() === str.toLowerCase()){\n scope.selectResult(result);\n return true;\n }\n }\n return false;\n }\n\n function searchTimerComplete(str) {\n // Begin the search\n if (!str || str.length < minlength) {\n return;\n }\n if (scope.localData) {\n scope.$apply(function() {\n var matches;\n if (typeof scope.localSearch() !== 'undefined') {\n matches = scope.localSearch()(str);\n } else {\n matches = getLocalResults(str);\n }\n scope.searching = false;\n processResults(matches, str);\n });\n }\n else if (scope.remoteApiHandler) {\n getRemoteResultsWithCustomHandler(str);\n } else {\n getRemoteResults(str);\n }\n }\n\n function processResults(responseData, str) {\n var i, description, image, text, formattedText, formattedDesc;\n\n if (responseData && responseData.length > 0) {\n scope.results = [];\n\n for (i = 0; i < responseData.length; i++) {\n if (scope.titleField && scope.titleField !== '') {\n text = formattedText = extractTitle(responseData[i]);\n }\n\n description = '';\n if (scope.descriptionField) {\n description = formattedDesc = extractValue(responseData[i], scope.descriptionField);\n }\n\n image = '';\n if (scope.imageField) {\n image = extractValue(responseData[i], scope.imageField);\n }\n\n if (scope.matchClass) {\n formattedText = findMatchString(text, str);\n formattedDesc = findMatchString(description, str);\n }\n\n scope.results[scope.results.length] = {\n title: formattedText,\n description: formattedDesc,\n image: image,\n originalObject: responseData[i]\n };\n }\n\n } else {\n scope.results = [];\n }\n\n if (scope.autoMatch && scope.results.length === 1 &&\n checkExactMatch(scope.results[0],\n {title: text, desc: description || ''}, scope.uri)) {\n scope.showDropdown = false;\n } else if (scope.results.length === 0 && !displayNoResults) {\n scope.showDropdown = false;\n } else {\n scope.showDropdown = true;\n }\n }\n\n function showAll() {\n if (scope.localData) {\n processResults(scope.localData, '');\n }\n else if (scope.remoteApiHandler) {\n getRemoteResultsWithCustomHandler('');\n }\n else {\n getRemoteResults('');\n }\n }\n\n scope.onFocusHandler = function() {\n if (scope.focusIn) {\n scope.focusIn();\n }\n if (minlength === 0 && (!scope.uri || scope.uri.length === 0)) {\n scope.currentIndex = scope.focusFirst ? 0 : scope.currentIndex;\n scope.showDropdown = true;\n showAll();\n }\n };\n\n scope.hideResults = function() {\n if (mousedownOn &&\n (mousedownOn === scope.id + '_dropdown' ||\n mousedownOn.indexOf('angucomplete') >= 0)) {\n mousedownOn = null;\n }\n else {\n hideTimer = $timeout(function() {\n clearResults();\n scope.$apply(function() {\n if (scope.uri && scope.uri.length > 0) {\n inputField.val(scope.uri);\n }\n });\n }, BLUR_TIMEOUT);\n cancelHttpRequest();\n\n if (scope.focusOut) {\n scope.focusOut();\n }\n\n if (scope.overrideSuggestions) {\n if (scope.uri && scope.uri.length > 0 && scope.currentIndex === -1) {\n handleOverrideSuggestions();\n }\n }\n }\n };\n\n scope.resetHideResults = function() {\n if (hideTimer) {\n $timeout.cancel(hideTimer);\n }\n };\n\n scope.hoverRow = function(index) {\n scope.currentIndex = index;\n };\n\n scope.selectResult = function(result) {\n // Restore original values\n if (scope.matchClass) {\n result.title = extractTitle(result.originalObject);\n if (typeof result.title === \"string\") {\n result.title = result.title.replace(/<b>|<\\/b>/g, \"\");\n }\n result.description = extractValue(result.originalObject, scope.descriptionField);\n }\n\n if (scope.clearSelected) {\n scope.uri = null;\n }\n else {\n scope.uri = result.title;\n }\n callOrAssign(result);\n clearResults();\n };\n\n scope.inputChangeHandler = function(str) {\n if (str.length < minlength) {\n cancelHttpRequest();\n clearResults();\n }\n else if (str.length === 0 && minlength === 0) {\n scope.searching = false;\n showAll();\n }\n\n if (scope.inputChanged) {\n str = scope.inputChanged(str);\n }\n return str;\n };\n\n // check required\n if (scope.fieldRequiredClass && scope.fieldRequiredClass !== '') {\n requiredClassName = scope.fieldRequiredClass;\n }\n\n // check min length\n if (scope.minlength && scope.minlength !== '') {\n minlength = parseInt(scope.minlength, 10);\n }\n\n // check pause time\n if (!scope.pause) {\n scope.pause = PAUSE;\n }\n\n // check clearSelected\n if (!scope.clearSelected) {\n scope.clearSelected = false;\n }\n\n // check override suggestions\n if (!scope.overrideSuggestions) {\n scope.overrideSuggestions = false;\n }\n\n // check required field\n if (scope.fieldRequired && ctrl) {\n // check initial value, if given, set validitity to true\n if (scope.initialValue) {\n handleRequired(true);\n }\n else {\n handleRequired(false);\n }\n }\n\n scope.inputType = attrs.type ? attrs.type : 'text';\n\n // set strings for \"Searching...\" and \"No results\"\n scope.textSearching = attrs.textSearching ? attrs.textSearching : TEXT_SEARCHING;\n scope.textNoResults = attrs.textNoResults ? attrs.textNoResults : TEXT_NORESULTS;\n displaySearching = scope.textSearching === 'false' ? false : true;\n displayNoResults = scope.textNoResults === 'false' ? false : true;\n\n // set max length (default to maxlength deault from html\n scope.maxlength = attrs.maxlength ? attrs.maxlength : MAX_LENGTH;\n\n // register events\n inputField.on('keydown', keydownHandler);\n inputField.on('keyup', keyupHandler);\n\n // set response formatter\n responseFormatter = callFunctionOrIdentity('remoteUrlResponseFormatter');\n\n // set isScrollOn\n $timeout(function() {\n var css = getComputedStyle(dd);\n isScrollOn = css.maxHeight && css.overflowY === 'auto';\n });\n }\n\n return {\n restrict: 'EA',\n require: '^?form',\n scope: {\n selectedObject: '=',\n disableInput: '=',\n disableSuggestions: '=',\n initialValue: '=',\n localData: '=',\n localSearch: '&',\n remoteUrlRequestFormatter: '=',\n remoteUrlRequestWithCredentials: '@',\n remoteUrlResponseFormatter: '=',\n remoteUrlErrorCallback: '=',\n remoteApiHandler: '=',\n id: '@',\n type: '@',\n placeholder: '@',\n remoteUrl: '@',\n remoteUrlDataField: '@',\n titleField: '@',\n descriptionField: '@',\n imageField: '@',\n inputClass: '@',\n pause: '@',\n searchFields: '@',\n minlength: '@',\n matchClass: '@',\n clearSelected: '@',\n overrideSuggestions: '@',\n fieldRequired: '=',\n fieldRequiredClass: '@',\n inputChanged: '=',\n autoMatch: '@',\n focusOut: '&',\n focusIn: '&',\n fieldTabindex: '@',\n inputName: '@',\n focusFirst: '@',\n parseInput: '&'\n },\n templateUrl: function(element, attrs) {\n return attrs.templateUrl || TEMPLATE_URL;\n },\n compile: function(tElement) {\n var startSym = $interpolate.startSymbol();\n var endSym = $interpolate.endSymbol();\n if (!(startSym === '{{' && endSym === '}}')) {\n var interpolatedHtml = tElement.html()\n .replace(/\\{\\{/g, startSym)\n .replace(/\\}\\}/g, endSym);\n tElement.html(interpolatedHtml);\n }\n return link;\n }\n };\n }]);\n\n}));","// This is a rework of the ng-FitText.js which can be found here https://github.com/patrickmarabeas/ng-FitText.js\nangular\n .module('graphdb.framework.core.directives.fittext', [])\n .directive('fitText', fitTextDirective);\n\nfitTextDirective.$inject = ['$timeout'];\n\nfunction fitTextDirective($timeout) {\n return {\n restrict: 'A',\n scope: {\n min: '=',\n max: '='\n },\n link: function (scope, element, attrs) {\n\n const config = {\n 'debounce': _.debounce,\n 'delay': 100,\n 'loadDelay': 10,\n 'compressor': 1,\n 'min': attrs.fitTextMin || 'inherit',\n 'max': attrs.fitTextMax || 'inherit',\n 'calcSize': 10,\n 'lines': 1\n };\n\n const parent = element.parent();\n const domElem = element[0];\n const domElemStyle = domElem.style;\n const computed = window.getComputedStyle(element[0], null);\n const newlines = element.children().length || config.lines;\n const minFontSize = config.min === 'inherit' ? computed['font-size'] : config.min;\n const maxFontSize = config.max === 'inherit' ? computed['font-size'] : config.max;\n const lineHeight = computed['line-height'];\n const display = computed['display'];\n let resizePromise;\n\n function calculate() {\n const ratio = (config.calcSize * newlines) / domElem.offsetWidth / newlines;\n return Math.max(Math.min(getMaxFontSize(ratio), parseFloat(maxFontSize)), parseFloat(minFontSize));\n }\n\n function getMaxFontSize(ratio) {\n const paddingLeft = parseFloat(getComputedStyle(parent[0]).paddingLeft);\n const paddingRight = parseFloat(getComputedStyle(parent[0]).paddingRight);\n\n return (parent[0].offsetWidth - (paddingLeft + paddingRight)) * ratio * config.compressor;\n }\n\n function resize() {\n if (domElem.offsetHeight * domElem.offsetWidth === 0) {\n return;\n }\n\n // Preset standard values for making the size calculation\n domElemStyle.fontSize = config.calcSize + 'px';\n domElemStyle.lineHeight = '1';\n domElemStyle.display = 'inline-block';\n\n // Set usage values\n domElemStyle.fontSize = calculate() + 'px';\n domElemStyle.lineHeight = lineHeight;\n domElemStyle.display = display;\n }\n\n function resizer() {\n if (resizePromise) {\n $timeout.cancel(resizePromise);\n }\n\n resizePromise = $timeout(function () {\n resize();\n }, config.loadDelay);\n }\n\n scope.$watch(function () {\n return [\n parent[0].offsetWidth,\n element[0].offsetWidth\n ].join('_');\n }, function () {\n resizer();\n });\n\n $(window).on('resize', config.debounce(function () {\n scope.$apply(resizer)\n }, config.delay));\n\n scope.$on('$destroy', function () {\n if (resizePromise) {\n $timeout.cancel(resizePromise);\n }\n $(window).off('resize');\n });\n }\n };\n}\n","angular\n .module('graphdb.framework.explore.services', [])\n .factory('StatementsService', StatementsService);\n\nStatementsService.$inject = [];\n\nfunction StatementsService() {\n function transformToTrig(statements) {\n let data = '';\n const contexts = {};\n\n for (let i = 0; i < statements.length; i++) {\n const statement = statements[i];\n if (statement.context === undefined) {\n statement.context = '';\n } else {\n statement.context = _.trim(statement.context);\n }\n if (angular.isUndefined(contexts[statement.context])) {\n const cstatement = [];\n cstatement.push(statement);\n contexts[statement.context] = cstatement;\n } else {\n contexts[statement.context].push(statement);\n }\n }\n\n const ckeys = Object.keys(contexts);\n for (let i = 0; i < ckeys.length; i++) {\n const key = ckeys[i];\n if (key === '') {\n data += '\\n{';\n } else {\n data += '\\n<' + key + '> {';\n }\n\n const value = contexts[key];\n for (let j = 0; j < value.length; j++) {\n const statement = value[j];\n data += '\\n\\t<' + statement.subject + '> <' + statement.predicate + '> ';\n if (statement.object.type === 'uri') {\n data += '<' + statement.object.value + '> .';\n } else {\n data += '\"' + statement.object.value + '\"' + (statement.object.datatype ? '^^<' + statement.object.datatype + '>' : (statement.object.lang ? '@' + statement.object.lang : '')) + ' .';\n }\n }\n\n data += '\\n}';\n }\n\n return data;\n }\n\n function buildStatements(res, uri) {\n const statements = [];\n if (!_.isEmpty(res.data)) {\n const graph = res.data[uri];\n const predicates = Object.keys(graph);\n for (let i = 0; i < predicates.length; i++) {\n const predicate = predicates[i];\n const objects = graph[predicate];\n for (let j = 0; j < objects.length; j++) {\n const object = objects[j];\n for (let k = 0; k < object.graphs.length; k++) {\n let context = object.graphs[k];\n if (context === 'http://www.ontotext.com/explicit') {\n // Statements in the default context are special\n context = '';\n }\n if (object.lang) {\n object.datatype = '';\n }\n if (!object.datatype) {\n object.datatype = '';\n }\n statements.push({\n subject: uri,\n predicate: predicate,\n object: {\n value: object.value,\n type: object.type,\n datatype: object.datatype,\n lang: object.lang\n },\n context: context\n });\n }\n }\n }\n }\n return statements;\n }\n\n function getDatatypeOptions() {\n return [\n {\n value: '',\n label: 'string'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#boolean',\n label: 'boolean'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#decimal',\n label: 'decimal'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#integer',\n label: 'integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#double',\n label: 'double'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#float',\n label: 'float'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#date',\n label: 'date'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#time',\n label: 'time'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#dateTime',\n label: 'date time'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#byte',\n label: 'byte'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#short',\n label: 'short'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#int',\n label: 'int'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#long',\n label: 'long'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedByte',\n label: 'unsigned byte'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedShort',\n label: 'unsigned short'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedInt',\n label: 'unsigned int'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedLong',\n label: 'unsigned long'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#positoveInteger',\n label: 'positive integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#nonNegativeInteger',\n label: 'non-negative integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#negativeInteger',\n label: 'negative integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#nonPositiveInteger',\n label: 'non-positive integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gYear',\n label: 'gYear'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gMonth',\n label: 'gMonth'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gDay',\n label: 'gDay'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gYearMonth',\n label: 'gYearMonth'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gMonthDay',\n label: 'gMonthDay'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#duration',\n label: 'duration'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#hexBinary',\n label: 'hex binary'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#base64Binary',\n label: 'base64 binary'\n }\n ];\n }\n\n return {\n transformToTrig: transformToTrig,\n buildStatements: buildStatements,\n getDatatypeOptions: getDatatypeOptions\n };\n}\n","import 'angular/utils/uri-utils';\n\nconst exploreDirectives = angular.module('graphdb.framework.explore.directives', [\n 'graphdb.framework.utils.uriutils'\n]);\n\nexploreDirectives.directive('uri', ['UriUtils', function (UriUtils) {\n return {\n require: 'ngModel',\n link: function (scope, elem, attr, ngModel) {\n\n //For DOM -> model validation\n ngModel.$parsers.unshift(function (value) {\n if (!angular.isUndefined(value) && value.length > 0) {\n const isValidUri = UriUtils.validateRdfUri(value);\n ngModel.$setValidity('searchStr', isValidUri);\n return isValidUri ? value : undefined;\n } else {\n ngModel.$setValidity('searchStr', true);\n return value;\n }\n });\n\n //For model -> DOM validation\n ngModel.$formatters.unshift(function (value) {\n if (!angular.isUndefined(value)) {\n ngModel.$setValidity('searchStr', UriUtils.validateRdfUri);\n }\n return value;\n });\n }\n };\n}]);\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/explore/app.js","webpack:///./src/js/lib/angucomplete-alt/angucomplete-alt-onto.min.js","webpack:///./src/js/angular/core/directives/fit-text.directive.js","webpack:///./src/js/angular/explore/statements.service.js","webpack:///./src/js/angular/explore/directives.js"],"names":["angular","module","root","factory","directive","$q","$parse","$http","$sce","$timeout","$templateCache","$interpolate","$rootScope","link","scope","elem","attrs","ctrl","hideTimer","responseFormatter","unbindInitialValue","displaySearching","displayNoResults","fn","inputField","find","minlength","searchTimer","requiredClassName","validState","httpCanceller","dd","querySelector","isScrollOn","mousedownOn","handleInputChange","newval","initial","uri","extractTitle","callOrAssign","originalObject","length","console","error","handleRequired","clickoutHandlerForDropdown","event","hideResults","document","body","removeEventListener","ie8EventNormalizer","which","keyCode","value","selectedObject","data","titleField","split","map","field","extractValue","join","obj","key","keys","result","i","findMatchString","target","str","matches","re","RegExp","replace","match","toString","matchClass","trustAsHtml","valid","notEmpty","fieldRequired","inputName","$setValidity","handleOverrideSuggestions","overrideSuggestions","preventDefault","cancel","cancelHttpRequest","clearSelected","clearResults","dropdownRow","querySelectorAll","currentIndex","dropdownScrollTopTo","offset","scrollTop","updateInputField","current","results","extractedTitle","val","title","httpSuccessCallbackGen","responseData","status","headers","config","searching","processResults","remoteUrlDataField","httpErrorCallback","errorRes","remoteUrlErrorCallback","resolve","getRemoteResults","params","url","remoteUrl","encodeuriComponent","remoteUrlRequestFormatter","remoteUrlRequestWithCredentials","withCredentials","defer","timeout","promise","get","success","getRemoteResultsWithCustomHandler","remoteApiHandler","then","catch","showDropdown","initResults","focusFirst","searchTimerComplete","localData","$apply","localSearch","s","searchFields","parseInput","toLowerCase","indexOf","getLocalResults","description","image","text","formattedText","formattedDesc","descriptionField","imageField","autoMatch","selectResult","checkExactMatch","desc","showAll","on","id","addEventListener","className","$watch","oldval","$on","elementId","onFocusHandler","focusIn","focusOut","resetHideResults","hoverRow","index","inputChangeHandler","inputChanged","fieldRequiredClass","parseInt","pause","initialValue","inputType","type","textSearching","textNoResults","maxlength","row","rowTop","getBoundingClientRect","top","getComputedStyle","maxHeight","bottom","css","offsetHeight","marginTop","marginBottom","dropdownRowOffsetHeight","paddingTop","$digest","overflowY","put","restrict","require","disableInput","disableSuggestions","remoteUrlResponseFormatter","placeholder","inputClass","fieldTabindex","templateUrl","element","compile","tElement","startSym","startSymbol","endSym","endSymbol","interpolatedHtml","html","window","fitTextDirective","min","max","_","debounce","fitTextMin","fitTextMax","parent","domElem","domElemStyle","style","computed","newlines","children","lines","minFontSize","maxFontSize","lineHeight","display","resizePromise","calculate","ratio","calcSize","offsetWidth","Math","paddingLeft","parseFloat","paddingRight","compressor","getMaxFontSize","resizer","fontSize","loadDelay","$","delay","off","$inject","StatementsService","transformToTrig","statements","contexts","statement","undefined","context","trim","isUndefined","cstatement","push","ckeys","Object","j","subject","predicate","object","datatype","lang","buildStatements","res","isEmpty","graph","predicates","objects","k","graphs","getDatatypeOptions","label","UriUtils","attr","ngModel","$parsers","unshift","isValidUri","validateRdfUri","$formatters"],"mappings":"oGAAA,wDAoBAA,QAAQC,OAAO,4BAXC,CACZ,UACA,SACA,YACA,wBACA,qCACA,wCACA,uCACA,+C;;CCRH,SAAUC,EAAMC,GACf,cAWQ,SAAUH,GAGlBA,EAAQC,OAAO,wBAAyB,IAAIG,UAAU,sBAAuB,CAAC,KAAM,SAAU,QAAS,OAAQ,WAAY,iBAAkB,eAAgB,aAAc,SAAUC,EAAIC,EAAQC,EAAOC,EAAMC,EAAUC,EAAgBC,EAAcC,GA0CpP,SAASC,EAAKC,EAAOC,EAAMC,EAAOC,GAChC,IAGIC,EAEAC,EAMAC,EACAC,EACAC,EAoG4BC,EAjH5BC,EAAaT,EAAKU,KAAK,SACvBC,EAlCW,EAmCXC,EAAc,KAEdC,EA/Be,wBAiCfC,EAAa,KACbC,EAAgB,KAChBC,EAAKhB,EAAK,GAAGiB,cAAc,0BAC3BC,GAAa,EACbC,EAAc,KA0DlB,SAASC,EAAkBC,EAAQC,GAC7BD,IACoB,iBAAXA,GACTtB,EAAMwB,IAAMC,EAAaH,GACzBI,EAAa,CAACC,eAAgBL,KACH,iBAAXA,GAAuBA,EAAOM,OAAS,EACvD5B,EAAMwB,IAAMF,EAERO,SAAWA,QAAQC,OACrBD,QAAQC,MAAM,iBAAqBP,EAAU,UAAY,IAAM,4BAA6BD,EAAQ,6BAIxGS,GAAe,IAKnB,SAASC,EAA2BC,GAClCb,EAAc,KACdpB,EAAMkC,YAAYD,GAClBE,SAASC,KAAKC,oBAAoB,QAASL,GAI7C,SAASM,EAAmBL,GAC1B,OAAOA,EAAMM,MAAQN,EAAMM,MAAQN,EAAMO,QAG3C,SAASd,EAAae,GACgB,mBAAzBzC,EAAM0C,eACf1C,EAAM0C,eAAeD,GAGrBzC,EAAM0C,eAAiBD,EAIvBV,IADEU,GAuBN,SAAShB,EAAakB,GAEpB,OAAO3C,EAAM4C,WAAWC,MAAM,KAC3BC,KAAI,SAASC,GACZ,OAAOC,EAAaL,EAAMI,MAE3BE,KAAK,KAGV,SAASD,EAAaE,EAAKC,GACzB,IAAIC,EAAMC,EACV,GAAIF,EAAK,CACPC,EAAMD,EAAIN,MAAM,KAChBQ,EAASH,EACT,IAAK,IAAII,EAAI,EAAGA,EAAIF,EAAKxB,OAAQ0B,IAC/BD,EAASA,EAAOD,EAAKE,SAIvBD,EAASH,EAGX,OAAOG,EAGT,SAASE,EAAgBC,EAAQC,GAC/B,IAAIJ,EAAQK,EAASC,EAIrB,GADAA,EAAK,IAAIC,OAAOH,EAAII,QAAQ,sBAAuB,QAAS,KACvDL,EAUL,OATKA,EAAOM,OAAUN,EAAOK,UAAWL,EAASA,EAAOO,YAGtDV,GAFFK,EAAUF,EAAOM,MAAMH,IAEZH,EAAOK,QAAQF,EACpB,gBAAiB3D,EAAMgE,WAAY,KAAMN,EAAQ,GAAI,WAGhDF,EAEJ9D,EAAKuE,YAAYZ,GAG1B,SAAStB,EAAemC,GACtBlE,EAAMmE,SAAWD,EACjBnD,EAAaf,EAAMwB,IACfxB,EAAMoE,eAAiBjE,GAAQH,EAAMqE,WACvClE,EAAKH,EAAMqE,WAAWC,aAAaxD,EAAmBoD,GAyD1D,SAASK,EAA0BtC,IAC7BjC,EAAMwE,qBACJxE,EAAM0C,gBAAkB1C,EAAM0C,eAAef,iBAAmB3B,EAAMwB,MACtES,GACFA,EAAMwC,iBAIR9E,EAAS+E,OAAO7D,GAEhB8D,IA1HFjD,EAAa,CAACC,eA4HG3B,EAAMwB,MA1HnBxB,EAAM4E,gBACR5E,EAAMwB,IAAM,MAEdqD,KAsIF,SAASC,IACP,OAAO7E,EAAK,GAAG8E,iBAAiB,qBAAqB/E,EAAMgF,cAS7D,SAASC,EAAoBC,GAC3BjE,EAAGkE,UAAYlE,EAAGkE,UAAYD,EAGhC,SAASE,IACP,IAAIC,EAAUrF,EAAMsF,QAAQtF,EAAMgF,cAClC,GAAIhF,EAAMgE,WAAY,CACpB,IAAIuB,EAAiB9D,EAAa4D,EAAQ1D,gBAC1C4D,EAAiBA,EAAe1B,QAAQ,aAAc,IACtDnD,EAAW8E,IAAID,QAGf7E,EAAW8E,IAAIH,EAAQI,OAoF3B,SAASC,EAAuBjC,GAC9B,OAAO,SAASkC,EAAcC,EAAQC,EAASC,GAExCF,GAAWC,GAAYC,IAAUH,EAAahD,OACjDgD,EAAeA,EAAahD,MAE9B3C,EAAM+F,WAAY,EAClBC,EAAehD,EAAa3C,EAAkBsF,GAAe3F,EAAMiG,oBAAqBxC,IAI5F,SAASyC,EAAkBC,EAAUP,EAAQC,EAASC,GAErC,IAAXF,IAA4B,IAAZA,IAGfA,GAAWC,GAAYC,IAC1BF,EAASO,EAASP,QAEhB5F,EAAMoG,uBACRpG,EAAMoG,uBAAuBD,EAAUP,EAAQC,EAASC,GAGpDjE,SAAWA,QAAQC,OACrBD,QAAQC,MAAM,eAKpB,SAAS6C,IACH3D,GACFA,EAAcqF,UAIlB,SAASC,EAAiB7C,GACxB,IAAI8C,EAAS,GACTC,EAAMxG,EAAMyG,UAAYC,mBAAmBjD,GAC3CzD,EAAM2G,4BACRJ,EAAS,CAACA,OAAQvG,EAAM2G,0BAA0BlD,IAClD+C,EAAMxG,EAAMyG,WAERzG,EAAM4G,kCACVL,EAAOM,iBAAkB,GAE3BlC,IACA3D,EAAgBzB,EAAGuH,QACnBP,EAAOQ,QAAU/F,EAAcgG,QAC/BvH,EAAMwH,IAAIT,EAAKD,GACZW,QAAQxB,EAAuBjC,IAC/B3B,MAAMoE,GAGX,SAASiB,EAAkC1D,GACzCkB,IAEA3D,EAAgBzB,EAAGuH,QAEnB9G,EAAMoH,iBAAiB3D,EAAKzC,EAAcgG,SACvCK,KAAK3B,EAAuBjC,IAC5B6D,MAAMpB,GASX,SAASrB,IACP7E,EAAMuH,cAAe,EACrBvH,EAAMsF,QAAU,GACZrE,IACFA,EAAGkE,UAAY,GAInB,SAASqC,IACPxH,EAAMuH,aAAehH,EACrBP,EAAMgF,aAAehF,EAAMyH,WAAa,GAAK,EAC7CzH,EAAMsF,QAAU,GAoClB,SAASoC,EAAoBjE,IAEtBA,GAAOA,EAAI7B,OAAShB,IAGrBZ,EAAM2H,UACR3H,EAAM4H,QAAO,WACX,IAAIlE,EAEFA,OADiC,IAAxB1D,EAAM6H,cACL7H,EAAM6H,aAAN7H,CAAoByD,GA1CtC,SAAyBA,GACvB,IAAIH,EAAGQ,EAAOgE,EAAGrF,EACbsF,EAAe/H,EAAM+H,aAAalF,MAAM,KACxCa,EAAU,GAId,SAHkC,IAAvB1D,EAAMgI,eACfvE,EAAMzD,EAAMgI,YAANhI,CAAmByD,IAEtBH,EAAI,EAAGA,EAAItD,EAAM2H,UAAU/F,OAAQ0B,IAAK,CAG3C,IAFAQ,GAAQ,EAEHgE,EAAI,EAAGA,EAAIC,EAAanG,OAAQkG,IACnCrF,EAAQO,EAAahD,EAAM2H,UAAUrE,GAAIyE,EAAaD,KAAO,GAC7DhE,EAAQA,GAAUrB,EAAMsB,WAAWkE,cAAcC,QAAQzE,EAAIM,WAAWkE,gBAAkB,EAGxFnE,IACFJ,EAAQA,EAAQ9B,QAAU5B,EAAM2H,UAAUrE,IAG9C,OAAOI,EAyBSyE,CAAgB1E,GAE5BzD,EAAM+F,WAAY,EAClBC,EAAetC,EAASD,MAGnBzD,EAAMoH,iBACbD,EAAkC1D,GAElC6C,EAAiB7C,IAIrB,SAASuC,EAAeL,EAAclC,GACpC,IAAIH,EAAG8E,EAAaC,EAAOC,EAAMC,EAAeC,EAEhD,GAAI7C,GAAgBA,EAAa/D,OAAS,EAGxC,IAFA5B,EAAMsF,QAAU,GAEXhC,EAAI,EAAGA,EAAIqC,EAAa/D,OAAQ0B,IAC/BtD,EAAM4C,YAAmC,KAArB5C,EAAM4C,aAC5B0F,EAAOC,EAAgB9G,EAAakE,EAAarC,KAGnD8E,EAAc,GACVpI,EAAMyI,mBACRL,EAAcI,EAAgBxF,EAAa2C,EAAarC,GAAItD,EAAMyI,mBAGpEJ,EAAQ,GACJrI,EAAM0I,aACRL,EAAQrF,EAAa2C,EAAarC,GAAItD,EAAM0I,aAG1C1I,EAAMgE,aACRuE,EAAgBhF,EAAgB+E,EAAM7E,GACtC+E,EAAgBjF,EAAgB6E,EAAa3E,IAG/CzD,EAAMsF,QAAQtF,EAAMsF,QAAQ1D,QAAU,CACpC6D,MAAO8C,EACPH,YAAaI,EACbH,MAAOA,EACP1G,eAAgBgE,EAAarC,SAKjCtD,EAAMsF,QAAU,GAGdtF,EAAM2I,WAAsC,IAAzB3I,EAAMsF,QAAQ1D,QAzEvC,SAAyByB,EAAQH,EAAKO,GACpC,IAAKA,EAAO,OAAO,EACnB,IAAI,IAAIN,KAAOD,EACb,GAAGA,EAAIC,GAAK8E,gBAAkBxE,EAAIwE,cAEhC,OADAjI,EAAM4I,aAAavF,IACZ,EAGX,OAAO,EAkEHwF,CAAgB7I,EAAMsF,QAAQ,GAC5B,CAACG,MAAO6C,EAAMQ,KAAMV,GAAe,IAAKpI,EAAMwB,KAClDxB,EAAMuH,cAAe,EACa,IAAzBvH,EAAMsF,QAAQ1D,QAAiBpB,EAGxCR,EAAMuH,cAAe,EAFrBvH,EAAMuH,cAAe,EAMzB,SAASwB,IACH/I,EAAM2H,UACR3B,EAAehG,EAAM2H,UAAW,IAEzB3H,EAAMoH,iBACbD,EAAkC,IAGlCb,EAAiB,IAliBrBrG,EAAK+I,GAAG,aAAa,SAAS/G,GACxBA,EAAMuB,OAAOyF,IACf7H,EAAca,EAAMuB,OAAOyF,MACPjJ,EAAMiJ,GAAK,aAC7B9G,SAASC,KAAK8G,iBAAiB,QAASlH,GAI1CZ,EAAca,EAAMuB,OAAO2F,aAI/BnJ,EAAMgF,aAAehF,EAAMyH,WAAa,EAAI,KAC5CzH,EAAM+F,WAAY,EAClBzF,EAAqBN,EAAMoJ,OAAO,gBAAgB,SAAS9H,GACrDA,IAEFhB,IAEAe,EAAkBC,GAAQ,OAI9BtB,EAAMoJ,OAAO,iBAAiB,SAAS9H,EAAQ+H,GACzC/H,IAAW+H,IACR/H,EAGKP,IAAsC,IAAxBf,EAAMgF,aAI5BjD,GAAe,GAHfA,GAAe,GAHf5B,EAAKH,EAAMqE,WAAWC,aAAaxD,GAAmB,OAW5Dd,EAAMsJ,IAAI,+BAA+B,SAAUrH,EAAOsH,GACnDA,GAAaA,IAAcvJ,EAAMiJ,KACpCjJ,EAAMwB,IAAM,KACZE,IACAK,GAAe,GACf8C,QAIJ7E,EAAMsJ,IAAI,gCAAgC,SAAUrH,EAAOsH,EAAWjI,GAC9DiI,GAAaA,IAAcvJ,EAAMiJ,IACrC5H,EAAkBC,MAsftBtB,EAAMwJ,eAAiB,WACjBxJ,EAAMyJ,SACRzJ,EAAMyJ,UAEU,IAAd7I,GAAqBZ,EAAMwB,KAA4B,IAArBxB,EAAMwB,IAAII,SAC9C5B,EAAMgF,aAAehF,EAAMyH,WAAa,EAAIzH,EAAMgF,aAClDhF,EAAMuH,cAAe,EACrBwB,MAIJ/I,EAAMkC,YAAc,WACdd,IACCA,IAAgBpB,EAAMiJ,GAAK,aAC3B7H,EAAY8G,QAAQ,iBAAmB,GAC1C9G,EAAc,MAGdhB,EAAYT,GAAS,WACnBkF,IACA7E,EAAM4H,QAAO,WACP5H,EAAMwB,KAAOxB,EAAMwB,IAAII,OAAS,GAClClB,EAAW8E,IAAIxF,EAAMwB,UA1mBd,KA8mBbmD,IAEI3E,EAAM0J,UACR1J,EAAM0J,WAGJ1J,EAAMwE,qBACJxE,EAAMwB,KAAOxB,EAAMwB,IAAII,OAAS,IAA6B,IAAxB5B,EAAMgF,cAC7CT,MAMRvE,EAAM2J,iBAAmB,WACnBvJ,GACFT,EAAS+E,OAAOtE,IAIpBJ,EAAM4J,SAAW,SAASC,GACxB7J,EAAMgF,aAAe6E,GAGvB7J,EAAM4I,aAAe,SAASvF,GAExBrD,EAAMgE,aACRX,EAAOoC,MAAQhE,EAAa4B,EAAO1B,gBACP,iBAAjB0B,EAAOoC,QAChBpC,EAAOoC,MAAQpC,EAAOoC,MAAM5B,QAAQ,aAAc,KAEpDR,EAAO+E,YAAcpF,EAAaK,EAAO1B,eAAgB3B,EAAMyI,mBAG7DzI,EAAM4E,cACR5E,EAAMwB,IAAM,KAGZxB,EAAMwB,IAAM6B,EAAOoC,MAErB/D,EAAa2B,GACbwB,KAGF7E,EAAM8J,mBAAqB,SAASrG,GAalC,OAZIA,EAAI7B,OAAShB,GACf+D,IACAE,KAEsB,IAAfpB,EAAI7B,QAA8B,IAAdhB,IAC3BZ,EAAM+F,WAAY,EAClBgD,KAGE/I,EAAM+J,eACRtG,EAAMzD,EAAM+J,aAAatG,IAEpBA,GAILzD,EAAMgK,oBAAmD,KAA7BhK,EAAMgK,qBACpClJ,EAAoBd,EAAMgK,oBAIxBhK,EAAMY,WAAiC,KAApBZ,EAAMY,YAC3BA,EAAYqJ,SAASjK,EAAMY,UAAW,KAInCZ,EAAMkK,QACTlK,EAAMkK,MAvrBE,KA2rBLlK,EAAM4E,gBACT5E,EAAM4E,eAAgB,GAInB5E,EAAMwE,sBACTxE,EAAMwE,qBAAsB,GAI1BxE,EAAMoE,eAAiBjE,IAErBH,EAAMmK,aACRpI,GAAe,GAGfA,GAAe,IAInB/B,EAAMoK,UAAYlK,EAAMmK,KAAOnK,EAAMmK,KAAO,OAG5CrK,EAAMsK,cAAgBpK,EAAMoK,cAAgBpK,EAAMoK,cA7sB/B,eA8sBnBtK,EAAMuK,cAAgBrK,EAAMqK,cAAgBrK,EAAMqK,cA7sB/B,mBA8sBnBhK,EAA2C,UAAxBP,EAAMsK,cACzB9J,EAA2C,UAAxBR,EAAMuK,cAGzBvK,EAAMwK,UAAYtK,EAAMsK,UAAYtK,EAAMsK,UAztB3B,OA4tBf9J,EAAWsI,GAAG,WA/Zd,SAAwB/G,GACtB,IAAIM,EAAQD,EAAmBL,GAC3BwI,EAAM,KACNC,EAAS,KApUH,KAsUNnI,GAAoBvC,EAAMsF,SACxBtF,EAAMgF,cAAgB,GAAKhF,EAAMgF,aAAehF,EAAMsF,QAAQ1D,QAChEK,EAAMwC,iBACNzE,EAAM4I,aAAa5I,EAAMsF,QAAQtF,EAAMgF,iBAEvCT,EAA0BtC,GAC1B4C,KAEF7E,EAAM4H,UAnVE,KAoVCrF,GAAoBvC,EAAMsF,SACnCrD,EAAMwC,iBACDzE,EAAMgF,aAAe,EAAKhF,EAAMsF,QAAQ1D,QAAU5B,EAAMuH,eAC3DvH,EAAM4H,QAAO,WACX5H,EAAMgF,eACNI,OAGEjE,IACFsJ,EAAM3F,IArDL7D,EAAG0J,wBAAwBC,IAChCX,SAASY,iBAAiB5J,GAAI6J,UAAW,IAqDdL,EAAIE,wBAAwBI,QACjD9F,EA9DV,SAAiCwF,GAC/B,IAAIO,EAAMH,iBAAiBJ,GAC3B,OAAOA,EAAIQ,aACThB,SAASe,EAAIE,UAAW,IAAMjB,SAASe,EAAIG,aAAc,IA2D/BC,CAAwBX,OA7V1C,KAiWClI,GAAoBvC,EAAMsF,SACnCrD,EAAMwC,iBACFzE,EAAMgF,cAAgB,GACxBhF,EAAM4H,QAAO,WACX5H,EAAMgF,eACNI,OAGEjE,IACFuJ,EA3DC5F,IAAc6F,wBAAwBC,KAC1C3J,EAAG0J,wBAAwBC,IAC3BX,SAASY,iBAAiB5J,GAAIoK,WAAY,MA0D1B,GACXpG,EAAoByF,EAAS,IAIH,IAAvB1K,EAAMgF,cACbhF,EAAM4H,QAAO,WACX5H,EAAMgF,cAAgB,EACtBtE,EAAW8E,IAAIxF,EAAMwB,SA/WhB,IAkXAe,EACLvC,EAAMsF,SAAWtF,EAAMsF,QAAQ1D,OAAS,GAAK5B,EAAMuH,cACzB,IAAxBvH,EAAMgF,cAAuBhF,EAAMwE,oBAGrCD,MAG4B,IAAxBvE,EAAMgF,eACRhF,EAAMgF,aAAe,GAEvBhF,EAAM4I,aAAa5I,EAAMsF,QAAQtF,EAAMgF,eACvChF,EAAMsL,WAOJtL,EAAMwB,KAAOxB,EAAMwB,IAAII,OAAS,GAClC2C,IAxYI,KA2YChC,GAGTN,EAAMwC,oBAoVV/D,EAAWsI,GAAG,SA1gBd,SAAsB/G,GACpB,IAAIM,EAAQD,EAAmBL,GAC/B,GA3NU,KA2NNM,GA7NM,KA6NcA,EAKxB,GAjOU,KAiONA,GA9NM,KA8NcA,EACtBN,EAAMwC,sBAEH,GAtOK,KAsODlC,EACPN,EAAMwC,kBACDzE,EAAMuH,cAAgBvH,EAAMwB,KAAOxB,EAAMwB,IAAII,QAAUhB,IAC1D4G,IACAxH,EAAM+F,WAAY,EAClB2B,EAAoB1H,EAAMwB,WAGzB,GA1OK,KA0ODe,EACPsC,IACA7E,EAAM4H,QAAO,WACXlH,EAAW8E,IAAIxF,EAAMwB,YAGpB,CACH,GAAkB,IAAdZ,IAAoBZ,EAAMwB,IAC5B,OAGGxB,EAAMwB,KAAqB,KAAdxB,EAAMwB,IAEbxB,EAAMwB,IAAII,QAAUhB,IAC7B4G,IAEI3G,GACFlB,EAAS+E,OAAO7D,GAGlBb,EAAM+F,WAAY,EAElBlF,EAAclB,GAAS,WACrB+H,EAAoB1H,EAAMwB,OACzBxB,EAAMkK,QAZTlK,EAAMuH,cAAe,EAenBxG,GAAcA,IAAef,EAAMwB,MAAQxB,EAAM4E,eACnD5E,EAAM4H,QAAO,WACXlG,WAjHwBjB,EA+kBW,6BAA3CJ,EA9kBS,SAASsC,GACd,OAAO3C,EAAMS,GAAMT,EAAMS,GAAIkC,GAAQA,GAglBzChD,GAAS,WACP,IAAIqL,EAAMH,iBAAiB5J,GAC3BE,EAAa6J,EAAIF,WAA+B,SAAlBE,EAAIO,aAItC,OA9tBA3L,EAAe4L,IAHI,+BAIf,g3DA6tBG,CACLC,SAAU,KACVC,QAAS,SACT1L,MAAO,CACL0C,eAAgB,IAChBiJ,aAAc,IACdC,mBAAoB,IACpBzB,aAAc,IACdxC,UAAW,IACXE,YAAa,IACblB,0BAA2B,IAC3BC,gCAAiC,IACjCiF,2BAA4B,IAC5BzF,uBAAwB,IACxBgB,iBAAkB,IAClB6B,GAAI,IACJoB,KAAM,IACNyB,YAAa,IACbrF,UAAW,IACXR,mBAAoB,IACpBrD,WAAY,IACZ6F,iBAAkB,IAClBC,WAAY,IACZqD,WAAY,IACZ7B,MAAO,IACPnC,aAAc,IACdnH,UAAW,IACXoD,WAAY,IACZY,cAAe,IACfJ,oBAAqB,IACrBJ,cAAe,IACf4F,mBAAoB,IACpBD,aAAc,IACdpB,UAAW,IACXe,SAAU,IACVD,QAAS,IACTuC,cAAe,IACf3H,UAAW,IACXoD,WAAY,IACZO,WAAY,KAEdiE,YAAa,SAASC,EAAShM,GAC7B,OAAOA,EAAM+L,aA3wBE,gCA6wBjBE,QAAS,SAASC,GAChB,IAAIC,EAAWxM,EAAayM,cACxBC,EAAS1M,EAAa2M,YAC1B,GAAmB,OAAbH,GAAgC,OAAXE,EAAkB,CAC3C,IAAIE,EAAmBL,EAASM,OAC7B7I,QAAQ,QAASwI,GACjBxI,QAAQ,QAAS0I,GACpBH,EAASM,KAAKD,GAEhB,OAAO1M,OA9yBXV,CAEFsN,OAFezN,SAVjB,I,iBCFA,SAAS0N,EAAiBjN,GACtB,MAAO,CACH8L,SAAU,IACVzL,MAAO,CACH6M,IAAK,IACLC,IAAK,KAET/M,KAAM,SAAUC,EAAOkM,EAAShM,GAE5B,MAAM4F,EAAS,CACX,SAAYiH,EAAEC,SACd,MAAS,IACT,UAAa,GACb,WAAc,EACd,IAAO9M,EAAM+M,YAAc,UAC3B,IAAO/M,EAAMgN,YAAc,UAC3B,SAAY,GACZ,MAAS,GAGPC,EAASjB,EAAQiB,SACjBC,EAAUlB,EAAQ,GAClBmB,EAAeD,EAAQE,MACvBC,EAAWZ,OAAO9B,iBAAiBqB,EAAQ,GAAI,MAC/CsB,EAAWtB,EAAQuB,WAAW7L,QAAUkE,EAAO4H,MAC/CC,EAA6B,YAAf7H,EAAO+G,IAAoBU,EAAS,aAAezH,EAAO+G,IACxEe,EAA6B,YAAf9H,EAAOgH,IAAoBS,EAAS,aAAezH,EAAOgH,IACxEe,EAAaN,EAAS,eACtBO,EAAUP,EAAkB,QAClC,IAAIQ,EAEJ,SAASC,IACL,MAAMC,EAASnI,EAAOoI,SAAWV,EAAYJ,EAAQe,YAAcX,EACnE,OAAOY,KAAKtB,IAAIsB,KAAKvB,IAGzB,SAAwBoB,GACpB,MAAMI,EAAcC,WAAWzD,iBAAiBsC,EAAO,IAAIkB,aACrDE,EAAeD,WAAWzD,iBAAiBsC,EAAO,IAAIoB,cAE5D,OAAQpB,EAAO,GAAGgB,aAAeE,EAAcE,IAAiBN,EAAQnI,EAAO0I,WAPtDC,CAAeR,GAAQK,WAAWV,IAAeU,WAAWX,IA0BzF,SAASe,IACDX,GACApO,EAAS+E,OAAOqJ,GAGpBA,EAAgBpO,GAAS,WApBrByN,EAAQnC,aAAemC,EAAQe,aAAgB,IAKnDd,EAAasB,SAAW7I,EAAOoI,SAAW,KAC1Cb,EAAaQ,WAAa,IAC1BR,EAAaS,QAAU,eAGvBT,EAAasB,SAAWX,IAAc,KACtCX,EAAaQ,WAAaA,EAC1BR,EAAaS,QAAUA,KAUpBhI,EAAO8I,WAGd5O,EAAMoJ,QAAO,WACT,MAAO,CACH+D,EAAO,GAAGgB,YACVjC,EAAQ,GAAGiC,aACblL,KAAK,QACR,WACCyL,OAGJG,EAAElC,QAAQ3D,GAAG,SAAUlD,EAAOkH,UAAS,WACnChN,EAAM4H,OAAO8G,KACd5I,EAAOgJ,QAEV9O,EAAMsJ,IAAI,YAAY,WACdyE,GACApO,EAAS+E,OAAOqJ,GAEpBc,EAAElC,QAAQoC,IAAI,eA5F9B7P,QACKC,OAAO,4CAA6C,IACpDG,UAAU,UAAWsN,GAE1BA,EAAiBoC,QAAU,CAAC,a,iBCC5B,SAASC,IAoLL,MAAO,CACHC,gBApLJ,SAAyBC,GACrB,IAAIxM,EAAO,GACX,MAAMyM,EAAW,GAEjB,IAAK,IAAI9L,EAAI,EAAGA,EAAI6L,EAAWvN,OAAQ0B,IAAK,CACxC,MAAM+L,EAAYF,EAAW7L,GAM7B,QAL0BgM,IAAtBD,EAAUE,QACVF,EAAUE,QAAU,GAEpBF,EAAUE,QAAUxC,EAAEyC,KAAKH,EAAUE,SAErCrQ,QAAQuQ,YAAYL,EAASC,EAAUE,UAAW,CAClD,MAAMG,EAAa,GACnBA,EAAWC,KAAKN,GAChBD,EAASC,EAAUE,SAAWG,OAE9BN,EAASC,EAAUE,SAASI,KAAKN,GAIzC,MAAMO,EAAQC,OAAOzM,KAAKgM,GAC1B,IAAK,IAAI9L,EAAI,EAAGA,EAAIsM,EAAMhO,OAAQ0B,IAAK,CACnC,MAAMH,EAAMyM,EAAMtM,GAEdX,GADQ,KAARQ,EACQ,MAEA,MAAQA,EAAM,MAG1B,MAAMV,EAAQ2M,EAASjM,GACvB,IAAK,IAAI2M,EAAI,EAAGA,EAAIrN,EAAMb,OAAQkO,IAAK,CACnC,MAAMT,EAAY5M,EAAMqN,GACxBnN,GAAQ,QAAU0M,EAAUU,QAAU,MAAQV,EAAUW,UAAY,KACtC,QAA1BX,EAAUY,OAAO5F,KACjB1H,GAAQ,IAAM0M,EAAUY,OAAOxN,MAAQ,MAEvCE,GAAQ,MAAQ0M,EAAUY,OAAOxN,MAAQ,OAAS4M,EAAUY,OAAOC,SAAW,MAAQb,EAAUY,OAAOC,SAAW,IAAOb,EAAUY,OAAOE,KAAO,IAAMd,EAAUY,OAAOE,KAAO,IAAO,KAI9LxN,GAAQ,MAGZ,OAAOA,GA0IPyN,gBAvIJ,SAAyBC,EAAK7O,GAC1B,MAAM2N,EAAa,GACnB,IAAKpC,EAAEuD,QAAQD,EAAI1N,MAAO,CACtB,MAAM4N,EAAQF,EAAI1N,KAAKnB,GACjBgP,EAAaX,OAAOzM,KAAKmN,GAC/B,IAAK,IAAIjN,EAAI,EAAGA,EAAIkN,EAAW5O,OAAQ0B,IAAK,CACxC,MAAM0M,EAAYQ,EAAWlN,GACvBmN,EAAUF,EAAMP,GACtB,IAAK,IAAIF,EAAI,EAAGA,EAAIW,EAAQ7O,OAAQkO,IAAK,CACrC,MAAMG,EAASQ,EAAQX,GACvB,IAAK,IAAIY,EAAI,EAAGA,EAAIT,EAAOU,OAAO/O,OAAQ8O,IAAK,CAC3C,IAAInB,EAAUU,EAAOU,OAAOD,GACZ,qCAAZnB,IAEAA,EAAU,IAEVU,EAAOE,OACPF,EAAOC,SAAW,IAEjBD,EAAOC,WACRD,EAAOC,SAAW,IAEtBf,EAAWQ,KAAK,CACZI,QAASvO,EACTwO,UAAWA,EACXC,OAAQ,CACJxN,MAAOwN,EAAOxN,MACd4H,KAAM4F,EAAO5F,KACb6F,SAAUD,EAAOC,SACjBC,KAAMF,EAAOE,MAEjBZ,QAASA,OAM7B,OAAOJ,GAmGPyB,mBAhGJ,WACI,MAAO,CACH,CACInO,MAAO,GACPoO,MAAO,UACR,CACCpO,MAAO,2CACPoO,MAAO,WACR,CACCpO,MAAO,2CACPoO,MAAO,WACR,CACCpO,MAAO,2CACPoO,MAAO,WACR,CACCpO,MAAO,0CACPoO,MAAO,UACR,CACCpO,MAAO,yCACPoO,MAAO,SACR,CACCpO,MAAO,wCACPoO,MAAO,QACR,CACCpO,MAAO,wCACPoO,MAAO,QACR,CACCpO,MAAO,4CACPoO,MAAO,aACR,CACCpO,MAAO,wCACPoO,MAAO,QACR,CACCpO,MAAO,yCACPoO,MAAO,SACR,CACCpO,MAAO,uCACPoO,MAAO,OACR,CACCpO,MAAO,wCACPoO,MAAO,QACR,CACCpO,MAAO,gDACPoO,MAAO,iBACR,CACCpO,MAAO,iDACPoO,MAAO,kBACR,CACCpO,MAAO,+CACPoO,MAAO,gBACR,CACCpO,MAAO,gDACPoO,MAAO,iBACR,CACCpO,MAAO,mDACPoO,MAAO,oBACR,CACCpO,MAAO,sDACPoO,MAAO,wBACR,CACCpO,MAAO,mDACPoO,MAAO,oBACR,CACCpO,MAAO,sDACPoO,MAAO,wBACR,CACCpO,MAAO,yCACPoO,MAAO,SACR,CACCpO,MAAO,0CACPoO,MAAO,UACR,CACCpO,MAAO,wCACPoO,MAAO,QACR,CACCpO,MAAO,8CACPoO,MAAO,cACR,CACCpO,MAAO,6CACPoO,MAAO,aACR,CACCpO,MAAO,4CACPoO,MAAO,YACR,CACCpO,MAAO,6CACPoO,MAAO,cACR,CACCpO,MAAO,gDACPoO,MAAO,oBArLvB3R,QACKC,OAAO,qCAAsC,IAC7CE,QAAQ,oBAAqB4P,GAElCA,EAAkBD,QAAU,I,gCCJ5B,aAE0B9P,QAAQC,OAAO,uCAAwC,CAC7E,qCAGcG,UAAU,MAAO,CAAC,WAAY,SAAUwR,GACtD,MAAO,CACHpF,QAAS,UACT3L,KAAM,SAAUC,EAAOC,EAAM8Q,EAAMC,GAG/BA,EAAQC,SAASC,SAAQ,SAAUzO,GAC/B,IAAKvD,QAAQuQ,YAAYhN,IAAUA,EAAMb,OAAS,EAAG,CACjD,MAAMuP,EAAaL,EAASM,eAAe3O,GAE3C,OADAuO,EAAQ1M,aAAa,YAAa6M,GAC3BA,EAAa1O,OAAQ6M,EAG5B,OADA0B,EAAQ1M,aAAa,aAAa,GAC3B7B,KAKfuO,EAAQK,YAAYH,SAAQ,SAAUzO,GAIlC,OAHKvD,QAAQuQ,YAAYhN,IACrBuO,EAAQ1M,aAAa,YAAawM,EAASM,gBAExC3O","file":"15.9ce4fa5c14638d63736a.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/explore/statements.service';\nimport 'angular/explore/controllers';\nimport 'angular/explore/directives';\nimport 'angular-xeditable/dist/js/xeditable.min';\nimport 'lib/angucomplete-alt/angucomplete-alt-onto.min';\nimport 'angular/core/directives/fit-text.directive';\n\nconst modules = [\n 'ngRoute',\n 'toastr',\n 'xeditable',\n 'angucomplete-alt-onto',\n 'graphdb.framework.explore.services',\n 'graphdb.framework.explore.controllers',\n 'graphdb.framework.explore.directives',\n 'graphdb.framework.core.directives.fittext'\n];\n\nangular.module('graphdb.framework.explore', modules);\n","/*\n * angucomplete-alt\n * Autocomplete directive for AngularJS\n * This is a fork of Daryl Rowland's angucomplete with some extra features.\n * By Hidenari Nozaki\n */\n\n/*! Copyright (c) 2014 Hidenari Nozaki and contributors | Licensed under the MIT license */\n\n(function (root, factory) {\n 'use strict';\n// if (typeof module !== 'undefined' && module.exports) {\n// // CommonJS\n// module.exports = factory(require('angular'));\n// } else if (typeof define === 'function' && define.amd) {\n// // AMD\n// define(['angular'], factory);\n// } else {\n// // Global Variables\n factory(root.angular);\n// }\n}(window, function (angular) {\n 'use strict';\n\n angular.module('angucomplete-alt-onto', []).directive('angucompleteAltOnto', ['$q', '$parse', '$http', '$sce', '$timeout', '$templateCache', '$interpolate', '$rootScope', function ($q, $parse, $http, $sce, $timeout, $templateCache, $interpolate, $rootScope) {\n // keyboard events\n var KEY_DW = 40;\n var KEY_RT = 39;\n var KEY_UP = 38;\n var KEY_LF = 37;\n var KEY_ES = 27;\n var KEY_EN = 13;\n var KEY_TAB = 9;\n\n var MIN_LENGTH = 3;\n var MAX_LENGTH = 524288; // the default max length per the html maxlength attribute\n var PAUSE = 500;\n var BLUR_TIMEOUT = 200;\n\n // string constants\n var REQUIRED_CLASS = 'autocomplete-required';\n var TEXT_SEARCHING = 'Searching...';\n var TEXT_NORESULTS = 'No results found';\n var TEMPLATE_URL = '/angucomplete-alt/index.html';\n\n // Set the default template for this directive\n $templateCache.put(TEMPLATE_URL,\n '<div class=\"angucomplete-holder\" ng-class=\"{\\'angucomplete-dropdown-visible\\': showDropdown}\">' +\n ' <input id=\"{{id}}_value\" name=\"{{inputName}}\" tabindex=\"{{fieldTabindex}}\" ng-class=\"{\\'angucomplete-input-not-empty\\': notEmpty}\" ng-model=\"uri\" ng-disabled=\"disableInput\" type=\"{{inputType}}\" placeholder=\"{{placeholder}}\" maxlength=\"{{maxlength}}\" ng-focus=\"onFocusHandler()\" class=\"{{inputClass}}\" ng-focus=\"resetHideResults()\" ng-blur=\"hideResults($event)\" autocapitalize=\"off\" autocorrect=\"off\" autocomplete=\"off\" ng-change=\"inputChangeHandler(uri)\" style=\"overflow: hidden; padding-right: .5em;\"/>' +\n ' <div id=\"{{id}}_dropdown\" class=\"angucomplete-dropdown\" ng-show=\"disableSuggestions && showDropdown\">' +\n ' <div class=\"angucomplete-searching\" ng-show=\"searching\" ng-bind=\"textSearching\"></div>' +\n ' <div class=\"angucomplete-searching\" ng-show=\"!searching && (!results || results.length == 0)\" ng-bind=\"textNoResults\"></div>' +\n ' <div class=\"angucomplete-row\" ng-repeat=\"result in results\" ng-click=\"selectResult(result)\" ng-mouseenter=\"hoverRow($index)\" ng-class=\"{\\'angucomplete-selected-row\\': $index == currentIndex}\">' +\n ' <div ng-if=\"imageField\" class=\"angucomplete-image-holder\">' +\n ' <img ng-if=\"result.image && result.image != \\'\\'\" ng-src=\"{{result.image}}\" class=\"angucomplete-image\"/>' +\n ' <div ng-if=\"!result.image && result.image != \\'\\'\" class=\"angucomplete-image-default\"></div>' +\n ' </div>' +\n ' <div class=\"angucomplete-title\" ng-if=\"matchClass\" ng-bind-html=\"result.title\"></div>' +\n ' <div class=\"angucomplete-title\" ng-if=\"!matchClass\">{{ result.title }}</div>' +\n ' <div ng-if=\"matchClass && result.description && result.description != \\'\\'\" class=\"angucomplete-description\" ng-bind-html=\"result.description\"></div>' +\n ' <div ng-if=\"!matchClass && result.description && result.description != \\'\\'\" class=\"angucomplete-description\">{{result.description}}</div>' +\n ' </div>' +\n ' </div>' +\n '</div>'\n );\n\n function link(scope, elem, attrs, ctrl) {\n var inputField = elem.find('input');\n var minlength = MIN_LENGTH;\n var searchTimer = null;\n var hideTimer;\n var requiredClassName = REQUIRED_CLASS;\n var responseFormatter;\n var validState = null;\n var httpCanceller = null;\n var dd = elem[0].querySelector('.angucomplete-dropdown');\n var isScrollOn = false;\n var mousedownOn = null;\n var unbindInitialValue;\n var displaySearching;\n var displayNoResults;\n\n\n elem.on('mousedown', function(event) {\n if (event.target.id) {\n mousedownOn = event.target.id;\n if (mousedownOn === scope.id + '_dropdown') {\n document.body.addEventListener('click', clickoutHandlerForDropdown);\n }\n }\n else {\n mousedownOn = event.target.className;\n }\n });\n\n scope.currentIndex = scope.focusFirst ? 0 : null;\n scope.searching = false;\n unbindInitialValue = scope.$watch('initialValue', function(newval) {\n if (newval) {\n // remove scope listener\n unbindInitialValue();\n // change input\n handleInputChange(newval, true);\n }\n });\n\n scope.$watch('fieldRequired', function(newval, oldval) {\n if (newval !== oldval) {\n if (!newval) {\n ctrl[scope.inputName].$setValidity(requiredClassName, true);\n }\n else if (!validState || scope.currentIndex === -1) {\n handleRequired(false);\n }\n else {\n handleRequired(true);\n }\n }\n });\n\n scope.$on('angucomplete-alt:clearInput', function (event, elementId) {\n if (!elementId || elementId === scope.id) {\n scope.uri = null;\n callOrAssign();\n handleRequired(false);\n clearResults();\n }\n });\n\n scope.$on('angucomplete-alt:changeInput', function (event, elementId, newval) {\n if (!!elementId && elementId === scope.id) {\n handleInputChange(newval);\n }\n });\n\n function handleInputChange(newval, initial) {\n if (newval) {\n if (typeof newval === 'object') {\n scope.uri = extractTitle(newval);\n callOrAssign({originalObject: newval});\n } else if (typeof newval === 'string' && newval.length > 0) {\n scope.uri = newval;\n } else {\n if (console && console.error) {\n console.error('Tried to set ' + (!!initial ? 'initial' : '') + ' value of angucomplete to', newval, 'which is an invalid value');\n }\n }\n\n handleRequired(true);\n }\n }\n\n // #194 dropdown list not consistent in collapsing (bug).\n function clickoutHandlerForDropdown(event) {\n mousedownOn = null;\n scope.hideResults(event);\n document.body.removeEventListener('click', clickoutHandlerForDropdown);\n }\n\n // for IE8 quirkiness about event.which\n function ie8EventNormalizer(event) {\n return event.which ? event.which : event.keyCode;\n }\n\n function callOrAssign(value) {\n if (typeof scope.selectedObject === 'function') {\n scope.selectedObject(value);\n }\n else {\n scope.selectedObject = value;\n }\n\n if (value) {\n handleRequired(true);\n }\n else {\n handleRequired(false);\n }\n }\n\n function callFunctionOrIdentity(fn) {\n return function(data) {\n return scope[fn] ? scope[fn](data) : data;\n };\n }\n\n function setInputString(str) {\n callOrAssign({originalObject: str});\n\n if (scope.clearSelected) {\n scope.uri = null;\n }\n clearResults();\n }\n\n function extractTitle(data) {\n // split title fields and run extractValue for each and join with ' '\n return scope.titleField.split(',')\n .map(function(field) {\n return extractValue(data, field);\n })\n .join(' ');\n }\n\n function extractValue(obj, key) {\n var keys, result;\n if (key) {\n keys= key.split('.');\n result = obj;\n for (var i = 0; i < keys.length; i++) {\n result = result[keys[i]];\n }\n }\n else {\n result = obj;\n }\n\n return result;\n }\n\n function findMatchString(target, str) {\n var result, matches, re;\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n // Escape user input to be treated as a literal string within a regular expression\n re = new RegExp(str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'i');\n if (!target) { return; }\n if (!target.match || !target.replace) { target = target.toString(); }\n matches = target.match(re);\n if (matches) {\n result = target.replace(re,\n '<span class=\"'+ scope.matchClass +'\">'+ matches[0] +'</span>');\n }\n else {\n result = target;\n }\n return $sce.trustAsHtml(result);\n }\n\n function handleRequired(valid) {\n scope.notEmpty = valid;\n validState = scope.uri;\n if (scope.fieldRequired && ctrl && scope.inputName) {\n ctrl[scope.inputName].$setValidity(requiredClassName, valid);\n }\n }\n\n function keyupHandler(event) {\n var which = ie8EventNormalizer(event);\n if (which === KEY_LF || which === KEY_RT) {\n // do nothing\n return;\n }\n\n if (which === KEY_UP || which === KEY_EN) {\n event.preventDefault();\n }\n else if (which === KEY_DW) {\n event.preventDefault();\n if (!scope.showDropdown && scope.uri && scope.uri.length >= minlength) {\n initResults();\n scope.searching = true;\n searchTimerComplete(scope.uri);\n }\n }\n else if (which === KEY_ES) {\n clearResults();\n scope.$apply(function() {\n inputField.val(scope.uri);\n });\n }\n else {\n if (minlength === 0 && !scope.uri) {\n return;\n }\n\n if (!scope.uri || scope.uri === '') {\n scope.showDropdown = false;\n } else if (scope.uri.length >= minlength) {\n initResults();\n\n if (searchTimer) {\n $timeout.cancel(searchTimer);\n }\n\n scope.searching = true;\n\n searchTimer = $timeout(function() {\n searchTimerComplete(scope.uri);\n }, scope.pause);\n }\n\n if (validState && validState !== scope.uri && !scope.clearSelected) {\n scope.$apply(function() {\n callOrAssign();\n });\n }\n }\n }\n\n function handleOverrideSuggestions(event) {\n if (scope.overrideSuggestions &&\n !(scope.selectedObject && scope.selectedObject.originalObject === scope.uri)) {\n if (event) {\n event.preventDefault();\n }\n\n // cancel search timer\n $timeout.cancel(searchTimer);\n // cancel http request\n cancelHttpRequest();\n\n setInputString(scope.uri);\n }\n }\n\n function dropdownRowOffsetHeight(row) {\n var css = getComputedStyle(row);\n return row.offsetHeight +\n parseInt(css.marginTop, 10) + parseInt(css.marginBottom, 10);\n }\n\n function dropdownHeight() {\n return dd.getBoundingClientRect().top +\n parseInt(getComputedStyle(dd).maxHeight, 10);\n }\n\n function dropdownRow() {\n return elem[0].querySelectorAll('.angucomplete-row')[scope.currentIndex];\n }\n\n function dropdownRowTop() {\n return dropdownRow().getBoundingClientRect().top -\n (dd.getBoundingClientRect().top +\n parseInt(getComputedStyle(dd).paddingTop, 10));\n }\n\n function dropdownScrollTopTo(offset) {\n dd.scrollTop = dd.scrollTop + offset;\n }\n\n function updateInputField(){\n var current = scope.results[scope.currentIndex];\n if (scope.matchClass) {\n var extractedTitle = extractTitle(current.originalObject);\n extractedTitle = extractedTitle.replace(/<b>|<\\/b>/g, \"\");\n inputField.val(extractedTitle);\n }\n else {\n inputField.val(current.title);\n }\n }\n\n function keydownHandler(event) {\n var which = ie8EventNormalizer(event);\n var row = null;\n var rowTop = null;\n\n if (which === KEY_EN && scope.results) {\n if (scope.currentIndex >= 0 && scope.currentIndex < scope.results.length) {\n event.preventDefault();\n scope.selectResult(scope.results[scope.currentIndex]);\n } else {\n handleOverrideSuggestions(event);\n clearResults();\n }\n scope.$apply();\n } else if (which === KEY_DW && scope.results) {\n event.preventDefault();\n if ((scope.currentIndex + 1) < scope.results.length && scope.showDropdown) {\n scope.$apply(function() {\n scope.currentIndex ++;\n updateInputField();\n });\n\n if (isScrollOn) {\n row = dropdownRow();\n if (dropdownHeight() < row.getBoundingClientRect().bottom) {\n dropdownScrollTopTo(dropdownRowOffsetHeight(row));\n }\n }\n }\n } else if (which === KEY_UP && scope.results) {\n event.preventDefault();\n if (scope.currentIndex >= 1) {\n scope.$apply(function() {\n scope.currentIndex --;\n updateInputField();\n });\n\n if (isScrollOn) {\n rowTop = dropdownRowTop();\n if (rowTop < 0) {\n dropdownScrollTopTo(rowTop - 1);\n }\n }\n }\n else if (scope.currentIndex === 0) {\n scope.$apply(function() {\n scope.currentIndex = -1;\n inputField.val(scope.uri);\n });\n }\n } else if (which === KEY_TAB) {\n if (scope.results && scope.results.length > 0 && scope.showDropdown) {\n if (scope.currentIndex === -1 && scope.overrideSuggestions) {\n // intentionally not sending event so that it does not\n // prevent default tab behavior\n handleOverrideSuggestions();\n }\n else {\n if (scope.currentIndex === -1) {\n scope.currentIndex = 0;\n }\n scope.selectResult(scope.results[scope.currentIndex]);\n scope.$digest();\n }\n }\n else {\n // no results\n // intentionally not sending event so that it does not\n // prevent default tab behavior\n if (scope.uri && scope.uri.length > 0) {\n handleOverrideSuggestions();\n }\n }\n } else if (which === KEY_ES) {\n // This is very specific to IE10/11 #272\n // without this, IE clears the input text\n event.preventDefault();\n }\n }\n\n function httpSuccessCallbackGen(str) {\n return function(responseData, status, headers, config) {\n // normalize return obejct from promise\n if (!status && !headers && !config && responseData.data) {\n responseData = responseData.data;\n }\n scope.searching = false;\n processResults(extractValue(responseFormatter(responseData), scope.remoteUrlDataField), str);\n };\n }\n\n function httpErrorCallback(errorRes, status, headers, config) {\n // cancelled/aborted\n if (status === 0 || status === -1) { return; }\n\n // normalize return obejct from promise\n if (!status && !headers && !config) {\n status = errorRes.status;\n }\n if (scope.remoteUrlErrorCallback) {\n scope.remoteUrlErrorCallback(errorRes, status, headers, config);\n }\n else {\n if (console && console.error) {\n console.error('http error');\n }\n }\n }\n\n function cancelHttpRequest() {\n if (httpCanceller) {\n httpCanceller.resolve();\n }\n }\n\n function getRemoteResults(str) {\n var params = {},\n url = scope.remoteUrl + encodeuriComponent(str);\n if (scope.remoteUrlRequestFormatter) {\n params = {params: scope.remoteUrlRequestFormatter(str)};\n url = scope.remoteUrl;\n }\n if (!!scope.remoteUrlRequestWithCredentials) {\n params.withCredentials = true;\n }\n cancelHttpRequest();\n httpCanceller = $q.defer();\n params.timeout = httpCanceller.promise;\n $http.get(url, params)\n .success(httpSuccessCallbackGen(str))\n .error(httpErrorCallback);\n }\n\n function getRemoteResultsWithCustomHandler(str) {\n cancelHttpRequest();\n\n httpCanceller = $q.defer();\n\n scope.remoteApiHandler(str, httpCanceller.promise)\n .then(httpSuccessCallbackGen(str))\n .catch(httpErrorCallback);\n\n /* IE8 compatible\n scope.remoteApiHandler(str, httpCanceller.promise)\n ['then'](httpSuccessCallbackGen(str))\n ['catch'](httpErrorCallback);\n */\n }\n\n function clearResults() {\n scope.showDropdown = false;\n scope.results = [];\n if (dd) {\n dd.scrollTop = 0;\n }\n }\n\n function initResults() {\n scope.showDropdown = displaySearching;\n scope.currentIndex = scope.focusFirst ? 0 : -1;\n scope.results = [];\n }\n\n function getLocalResults(str) {\n var i, match, s, value,\n searchFields = scope.searchFields.split(','),\n matches = [];\n if (typeof scope.parseInput() !== 'undefined') {\n str = scope.parseInput()(str);\n }\n for (i = 0; i < scope.localData.length; i++) {\n match = false;\n\n for (s = 0; s < searchFields.length; s++) {\n value = extractValue(scope.localData[i], searchFields[s]) || '';\n match = match || (value.toString().toLowerCase().indexOf(str.toString().toLowerCase()) >= 0);\n }\n\n if (match) {\n matches[matches.length] = scope.localData[i];\n }\n }\n return matches;\n }\n\n function checkExactMatch(result, obj, str){\n if (!str) { return false; }\n for(var key in obj){\n if(obj[key].toLowerCase() === str.toLowerCase()){\n scope.selectResult(result);\n return true;\n }\n }\n return false;\n }\n\n function searchTimerComplete(str) {\n // Begin the search\n if (!str || str.length < minlength) {\n return;\n }\n if (scope.localData) {\n scope.$apply(function() {\n var matches;\n if (typeof scope.localSearch() !== 'undefined') {\n matches = scope.localSearch()(str);\n } else {\n matches = getLocalResults(str);\n }\n scope.searching = false;\n processResults(matches, str);\n });\n }\n else if (scope.remoteApiHandler) {\n getRemoteResultsWithCustomHandler(str);\n } else {\n getRemoteResults(str);\n }\n }\n\n function processResults(responseData, str) {\n var i, description, image, text, formattedText, formattedDesc;\n\n if (responseData && responseData.length > 0) {\n scope.results = [];\n\n for (i = 0; i < responseData.length; i++) {\n if (scope.titleField && scope.titleField !== '') {\n text = formattedText = extractTitle(responseData[i]);\n }\n\n description = '';\n if (scope.descriptionField) {\n description = formattedDesc = extractValue(responseData[i], scope.descriptionField);\n }\n\n image = '';\n if (scope.imageField) {\n image = extractValue(responseData[i], scope.imageField);\n }\n\n if (scope.matchClass) {\n formattedText = findMatchString(text, str);\n formattedDesc = findMatchString(description, str);\n }\n\n scope.results[scope.results.length] = {\n title: formattedText,\n description: formattedDesc,\n image: image,\n originalObject: responseData[i]\n };\n }\n\n } else {\n scope.results = [];\n }\n\n if (scope.autoMatch && scope.results.length === 1 &&\n checkExactMatch(scope.results[0],\n {title: text, desc: description || ''}, scope.uri)) {\n scope.showDropdown = false;\n } else if (scope.results.length === 0 && !displayNoResults) {\n scope.showDropdown = false;\n } else {\n scope.showDropdown = true;\n }\n }\n\n function showAll() {\n if (scope.localData) {\n processResults(scope.localData, '');\n }\n else if (scope.remoteApiHandler) {\n getRemoteResultsWithCustomHandler('');\n }\n else {\n getRemoteResults('');\n }\n }\n\n scope.onFocusHandler = function() {\n if (scope.focusIn) {\n scope.focusIn();\n }\n if (minlength === 0 && (!scope.uri || scope.uri.length === 0)) {\n scope.currentIndex = scope.focusFirst ? 0 : scope.currentIndex;\n scope.showDropdown = true;\n showAll();\n }\n };\n\n scope.hideResults = function() {\n if (mousedownOn &&\n (mousedownOn === scope.id + '_dropdown' ||\n mousedownOn.indexOf('angucomplete') >= 0)) {\n mousedownOn = null;\n }\n else {\n hideTimer = $timeout(function() {\n clearResults();\n scope.$apply(function() {\n if (scope.uri && scope.uri.length > 0) {\n inputField.val(scope.uri);\n }\n });\n }, BLUR_TIMEOUT);\n cancelHttpRequest();\n\n if (scope.focusOut) {\n scope.focusOut();\n }\n\n if (scope.overrideSuggestions) {\n if (scope.uri && scope.uri.length > 0 && scope.currentIndex === -1) {\n handleOverrideSuggestions();\n }\n }\n }\n };\n\n scope.resetHideResults = function() {\n if (hideTimer) {\n $timeout.cancel(hideTimer);\n }\n };\n\n scope.hoverRow = function(index) {\n scope.currentIndex = index;\n };\n\n scope.selectResult = function(result) {\n // Restore original values\n if (scope.matchClass) {\n result.title = extractTitle(result.originalObject);\n if (typeof result.title === \"string\") {\n result.title = result.title.replace(/<b>|<\\/b>/g, \"\");\n }\n result.description = extractValue(result.originalObject, scope.descriptionField);\n }\n\n if (scope.clearSelected) {\n scope.uri = null;\n }\n else {\n scope.uri = result.title;\n }\n callOrAssign(result);\n clearResults();\n };\n\n scope.inputChangeHandler = function(str) {\n if (str.length < minlength) {\n cancelHttpRequest();\n clearResults();\n }\n else if (str.length === 0 && minlength === 0) {\n scope.searching = false;\n showAll();\n }\n\n if (scope.inputChanged) {\n str = scope.inputChanged(str);\n }\n return str;\n };\n\n // check required\n if (scope.fieldRequiredClass && scope.fieldRequiredClass !== '') {\n requiredClassName = scope.fieldRequiredClass;\n }\n\n // check min length\n if (scope.minlength && scope.minlength !== '') {\n minlength = parseInt(scope.minlength, 10);\n }\n\n // check pause time\n if (!scope.pause) {\n scope.pause = PAUSE;\n }\n\n // check clearSelected\n if (!scope.clearSelected) {\n scope.clearSelected = false;\n }\n\n // check override suggestions\n if (!scope.overrideSuggestions) {\n scope.overrideSuggestions = false;\n }\n\n // check required field\n if (scope.fieldRequired && ctrl) {\n // check initial value, if given, set validitity to true\n if (scope.initialValue) {\n handleRequired(true);\n }\n else {\n handleRequired(false);\n }\n }\n\n scope.inputType = attrs.type ? attrs.type : 'text';\n\n // set strings for \"Searching...\" and \"No results\"\n scope.textSearching = attrs.textSearching ? attrs.textSearching : TEXT_SEARCHING;\n scope.textNoResults = attrs.textNoResults ? attrs.textNoResults : TEXT_NORESULTS;\n displaySearching = scope.textSearching === 'false' ? false : true;\n displayNoResults = scope.textNoResults === 'false' ? false : true;\n\n // set max length (default to maxlength deault from html\n scope.maxlength = attrs.maxlength ? attrs.maxlength : MAX_LENGTH;\n\n // register events\n inputField.on('keydown', keydownHandler);\n inputField.on('keyup', keyupHandler);\n\n // set response formatter\n responseFormatter = callFunctionOrIdentity('remoteUrlResponseFormatter');\n\n // set isScrollOn\n $timeout(function() {\n var css = getComputedStyle(dd);\n isScrollOn = css.maxHeight && css.overflowY === 'auto';\n });\n }\n\n return {\n restrict: 'EA',\n require: '^?form',\n scope: {\n selectedObject: '=',\n disableInput: '=',\n disableSuggestions: '=',\n initialValue: '=',\n localData: '=',\n localSearch: '&',\n remoteUrlRequestFormatter: '=',\n remoteUrlRequestWithCredentials: '@',\n remoteUrlResponseFormatter: '=',\n remoteUrlErrorCallback: '=',\n remoteApiHandler: '=',\n id: '@',\n type: '@',\n placeholder: '@',\n remoteUrl: '@',\n remoteUrlDataField: '@',\n titleField: '@',\n descriptionField: '@',\n imageField: '@',\n inputClass: '@',\n pause: '@',\n searchFields: '@',\n minlength: '@',\n matchClass: '@',\n clearSelected: '@',\n overrideSuggestions: '@',\n fieldRequired: '=',\n fieldRequiredClass: '@',\n inputChanged: '=',\n autoMatch: '@',\n focusOut: '&',\n focusIn: '&',\n fieldTabindex: '@',\n inputName: '@',\n focusFirst: '@',\n parseInput: '&'\n },\n templateUrl: function(element, attrs) {\n return attrs.templateUrl || TEMPLATE_URL;\n },\n compile: function(tElement) {\n var startSym = $interpolate.startSymbol();\n var endSym = $interpolate.endSymbol();\n if (!(startSym === '{{' && endSym === '}}')) {\n var interpolatedHtml = tElement.html()\n .replace(/\\{\\{/g, startSym)\n .replace(/\\}\\}/g, endSym);\n tElement.html(interpolatedHtml);\n }\n return link;\n }\n };\n }]);\n\n}));","// This is a rework of the ng-FitText.js which can be found here https://github.com/patrickmarabeas/ng-FitText.js\nangular\n .module('graphdb.framework.core.directives.fittext', [])\n .directive('fitText', fitTextDirective);\n\nfitTextDirective.$inject = ['$timeout'];\n\nfunction fitTextDirective($timeout) {\n return {\n restrict: 'A',\n scope: {\n min: '=',\n max: '='\n },\n link: function (scope, element, attrs) {\n\n const config = {\n 'debounce': _.debounce,\n 'delay': 100,\n 'loadDelay': 10,\n 'compressor': 1,\n 'min': attrs.fitTextMin || 'inherit',\n 'max': attrs.fitTextMax || 'inherit',\n 'calcSize': 10,\n 'lines': 1\n };\n\n const parent = element.parent();\n const domElem = element[0];\n const domElemStyle = domElem.style;\n const computed = window.getComputedStyle(element[0], null);\n const newlines = element.children().length || config.lines;\n const minFontSize = config.min === 'inherit' ? computed['font-size'] : config.min;\n const maxFontSize = config.max === 'inherit' ? computed['font-size'] : config.max;\n const lineHeight = computed['line-height'];\n const display = computed['display'];\n let resizePromise;\n\n function calculate() {\n const ratio = (config.calcSize * newlines) / domElem.offsetWidth / newlines;\n return Math.max(Math.min(getMaxFontSize(ratio), parseFloat(maxFontSize)), parseFloat(minFontSize));\n }\n\n function getMaxFontSize(ratio) {\n const paddingLeft = parseFloat(getComputedStyle(parent[0]).paddingLeft);\n const paddingRight = parseFloat(getComputedStyle(parent[0]).paddingRight);\n\n return (parent[0].offsetWidth - (paddingLeft + paddingRight)) * ratio * config.compressor;\n }\n\n function resize() {\n if (domElem.offsetHeight * domElem.offsetWidth === 0) {\n return;\n }\n\n // Preset standard values for making the size calculation\n domElemStyle.fontSize = config.calcSize + 'px';\n domElemStyle.lineHeight = '1';\n domElemStyle.display = 'inline-block';\n\n // Set usage values\n domElemStyle.fontSize = calculate() + 'px';\n domElemStyle.lineHeight = lineHeight;\n domElemStyle.display = display;\n }\n\n function resizer() {\n if (resizePromise) {\n $timeout.cancel(resizePromise);\n }\n\n resizePromise = $timeout(function () {\n resize();\n }, config.loadDelay);\n }\n\n scope.$watch(function () {\n return [\n parent[0].offsetWidth,\n element[0].offsetWidth\n ].join('_');\n }, function () {\n resizer();\n });\n\n $(window).on('resize', config.debounce(function () {\n scope.$apply(resizer)\n }, config.delay));\n\n scope.$on('$destroy', function () {\n if (resizePromise) {\n $timeout.cancel(resizePromise);\n }\n $(window).off('resize');\n });\n }\n };\n}\n","angular\n .module('graphdb.framework.explore.services', [])\n .factory('StatementsService', StatementsService);\n\nStatementsService.$inject = [];\n\nfunction StatementsService() {\n function transformToTrig(statements) {\n let data = '';\n const contexts = {};\n\n for (let i = 0; i < statements.length; i++) {\n const statement = statements[i];\n if (statement.context === undefined) {\n statement.context = '';\n } else {\n statement.context = _.trim(statement.context);\n }\n if (angular.isUndefined(contexts[statement.context])) {\n const cstatement = [];\n cstatement.push(statement);\n contexts[statement.context] = cstatement;\n } else {\n contexts[statement.context].push(statement);\n }\n }\n\n const ckeys = Object.keys(contexts);\n for (let i = 0; i < ckeys.length; i++) {\n const key = ckeys[i];\n if (key === '') {\n data += '\\n{';\n } else {\n data += '\\n<' + key + '> {';\n }\n\n const value = contexts[key];\n for (let j = 0; j < value.length; j++) {\n const statement = value[j];\n data += '\\n\\t<' + statement.subject + '> <' + statement.predicate + '> ';\n if (statement.object.type === 'uri') {\n data += '<' + statement.object.value + '> .';\n } else {\n data += '\"\"\"' + statement.object.value + '\"\"\"' + (statement.object.datatype ? '^^<' + statement.object.datatype + '>' : (statement.object.lang ? '@' + statement.object.lang : '')) + ' .';\n }\n }\n\n data += '\\n}';\n }\n\n return data;\n }\n\n function buildStatements(res, uri) {\n const statements = [];\n if (!_.isEmpty(res.data)) {\n const graph = res.data[uri];\n const predicates = Object.keys(graph);\n for (let i = 0; i < predicates.length; i++) {\n const predicate = predicates[i];\n const objects = graph[predicate];\n for (let j = 0; j < objects.length; j++) {\n const object = objects[j];\n for (let k = 0; k < object.graphs.length; k++) {\n let context = object.graphs[k];\n if (context === 'http://www.ontotext.com/explicit') {\n // Statements in the default context are special\n context = '';\n }\n if (object.lang) {\n object.datatype = '';\n }\n if (!object.datatype) {\n object.datatype = '';\n }\n statements.push({\n subject: uri,\n predicate: predicate,\n object: {\n value: object.value,\n type: object.type,\n datatype: object.datatype,\n lang: object.lang\n },\n context: context\n });\n }\n }\n }\n }\n return statements;\n }\n\n function getDatatypeOptions() {\n return [\n {\n value: '',\n label: 'string'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#boolean',\n label: 'boolean'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#decimal',\n label: 'decimal'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#integer',\n label: 'integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#double',\n label: 'double'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#float',\n label: 'float'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#date',\n label: 'date'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#time',\n label: 'time'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#dateTime',\n label: 'date time'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#byte',\n label: 'byte'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#short',\n label: 'short'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#int',\n label: 'int'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#long',\n label: 'long'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedByte',\n label: 'unsigned byte'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedShort',\n label: 'unsigned short'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedInt',\n label: 'unsigned int'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedLong',\n label: 'unsigned long'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#positoveInteger',\n label: 'positive integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#nonNegativeInteger',\n label: 'non-negative integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#negativeInteger',\n label: 'negative integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#nonPositiveInteger',\n label: 'non-positive integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gYear',\n label: 'gYear'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gMonth',\n label: 'gMonth'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gDay',\n label: 'gDay'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gYearMonth',\n label: 'gYearMonth'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gMonthDay',\n label: 'gMonthDay'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#duration',\n label: 'duration'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#hexBinary',\n label: 'hex binary'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#base64Binary',\n label: 'base64 binary'\n }\n ];\n }\n\n return {\n transformToTrig: transformToTrig,\n buildStatements: buildStatements,\n getDatatypeOptions: getDatatypeOptions\n };\n}\n","import 'angular/utils/uri-utils';\n\nconst exploreDirectives = angular.module('graphdb.framework.explore.directives', [\n 'graphdb.framework.utils.uriutils'\n]);\n\nexploreDirectives.directive('uri', ['UriUtils', function (UriUtils) {\n return {\n require: 'ngModel',\n link: function (scope, elem, attr, ngModel) {\n\n //For DOM -> model validation\n ngModel.$parsers.unshift(function (value) {\n if (!angular.isUndefined(value) && value.length > 0) {\n const isValidUri = UriUtils.validateRdfUri(value);\n ngModel.$setValidity('searchStr', isValidUri);\n return isValidUri ? value : undefined;\n } else {\n ngModel.$setValidity('searchStr', true);\n return value;\n }\n });\n\n //For model -> DOM validation\n ngModel.$formatters.unshift(function (value) {\n if (!angular.isUndefined(value)) {\n ngModel.$setValidity('searchStr', UriUtils.validateRdfUri);\n }\n return value;\n });\n }\n };\n}]);\n"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[162],{228:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<h1>{{pageTitle}}</h1>\n\n<div id="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" tooltip="{{\'security.table.username\' | translate}}" tooltip-trigger="mouseenter"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" tooltip="{{\'security.password.placeholder\' | translate}}" tooltip-trigger="mouseenter"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" tooltip="{{\'security.password.confirm\' | translate}}" tooltip-trigger="mouseenter"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top" tooltip-trigger="mouseenter"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top" tooltip-trigger="mouseenter"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top" tooltip-trigger="mouseenter"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-primary small" tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\n\t\t\t\t\t\t<div class="mb-1">\n\t\t\t\t\t\t\t<label class="col-lg-5">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n\t\t\t\t\t\t\t<div class="radio">\n\t\t\t\t\t\t\t\t<label class="px-1">\n\t\t\t\t\t\t\t\t\t<input type="radio" value="light" ng-model="workbenchSettings.theme" ng-change="setWorkbenchTheme()"/>\n\t\t\t\t\t\t\t\t\t{{\'security.workbench.settings.theme.light\' | translate}}\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t<label class="px-1">\n\t\t\t\t\t\t\t\t\t<input type="radio" value="dark" ng-model="workbenchSettings.theme" ng-change="setWorkbenchTheme()"/>\n\t\t\t\t\t\t\t\t\t{{\'security.workbench.settings.theme.dark\' | translate}}\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<table class="table table-hover table-sm" aria-describedby="User rights table">\n\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th id="repositoryIdColumn">{{\'security.repository.title\' | translate}}</th>\n\t\t\t\t\t\t\t\t\t<th id="readRightsColumn" class="text-xs-center"><em class="icon-eye icon-lg" tooltip="{{\'security.tooltip.read\' | translate}}" tooltip-trigger="mouseenter"></em></th>\n\t\t\t\t\t\t\t\t\t<th id="writeRightColumn" class="text-xs-center"><em class="icon-edit icon-lg" tooltip="{{\'security.tooltip.write\' | translate}}" tooltip-trigger="mouseenter"></em></th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td>{{\'security.any.data.repo\' | translate}}\n\t\t\t\t\t\t\t\t\t\t<em class="icon-info text-primary" tooltip="{{\'security.data.repos\' | translate}}"></em>\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t<td class="text-xs-center">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </td>\n\t\t\t\t\t\t\t\t\t<td class="text-xs-center">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']">\n\t\t\t\t\t\t\t\t\t<td class="repository-name">{{repository.id}}<small> · {{repository.location ? repository.location : \'Local\'}}</small></td>\n\t\t\t\t\t\t\t\t\t<td class="text-xs-center read-rights"><input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n\t\t\t\t\t\t\t\t\t<td class="text-xs-center write-rights"><input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="mb-3">\n\t\t\t<button id="wb-user-submit" class="btn btn-primary" type="submit">{{saveButtonText}}</button>\n\t\t\t<button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
|
|
2
|
+
//# sourceMappingURL=162.7c19d57c3792c9ca08d0.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/security/templates/user.html"],"names":["module","exports","obj","__t","__p"],"mappings":"wFAAAA,OAAOC,QAAU,SAASC,KAC1BA,MAAQA,IAAM,IACd,IAAIC,IAAKC,IAAM,GACf,KAAMF,IACNE,KAAO,wpcAGP,OAAOA","file":"162.7c19d57c3792c9ca08d0.bundle.js","sourcesContent":["module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '';\nwith (obj) {\n__p += '<script type=\"text/ng-template\" id=\"popover-content-user.html\">\\n\t<h5>{{\\'security.user.may\\' | translate}}</h5>\\n\t<ul>\\n <li>{{\\'security.use.gdb\\' | translate}}</li>\\n\t <li>{{\\'security.grant.read.access\\' | translate}}</li>\\n\t\t<li>{{\\'security.grant.read.write.access\\' | translate}}</li>\\n </ul>\\n</script>\\n\\n<script type=\"text/ng-template\" id=\"popover-content-repo-manager.html\">\\n\t<h5>{{\\'security.repo.manager.may\\' | translate}}</h5>\\n\t<ul>\\n\t\t<li>{{\\'security.use.gdb\\' | translate}}</li>\\n\t\t<li>{{\\'security.read.write.all.repos\\' | translate}}</li>\\n\t\t<li>{{\\'security.create.edit.delete.repos\\' | translate}}</li>\\n\t\t<li>{{\\'security.access.monitoring\\' | translate}}</li>\\n\t</ul>\\n</script>\\n\\n<script type=\"text/ng-template\" id=\"popover-content-admin.html\">\\n\t<h5>{{\\'security.admin.may\\' | translate}}</h5>\\n\t<ul>\\n\t\t<li>{{\\'security.use.gdb\\' | translate}}</li>\\n\t\t<li>{{\\'security.read.write.all.repos\\' | translate}}</li>\\n\t\t<li>{{\\'security.create.edit.delete.repos\\' | translate}}</li>\\n\t\t<li>{{\\'security.access.monitoring\\' | translate}}</li>\\n\t\t<li>{{\\'security.attach.remote.locations\\' | translate}}</li>\\n\t\t<li>{{\\'security.manage.users.access\\' | translate}}</li>\\n\t\t<li>{{\\'security.manage.cluster\\' | translate}}</li>\\n\t\t<li>{{\\'security.view.sys.info\\' | translate}}</li>\\n\t</ul>\\n</script>\\n\\n<h1>{{pageTitle}}</h1>\\n\\n<div id=\"wb-user\" ng-hide=\"loader\">\\n\t<form name=\"form\" class=\"form newUserForm userForm editUserContainer\" ng-submit=\"submit()\" novalidate>\\n\t\t<div class=\"row\">\\n\t\t\t<div class=\"col-md-6\">\\n\t\t\t\t<div class=\"card login-credentials\" ng-hide=\"isOverrideAuth() || !isLocalAuthentication()\">\\n\t\t\t\t\t<div class=\"card-block\">\\n\t\t\t\t\t\t<h3>{{\\'view.login.title\\' | translate}}</h3>\\n\t\t\t\t\t\t<div class=\"form-group\" ng-class=\"{\\'has-danger\\': usernameError}\">\\n\t\t\t\t\t\t\t<div class=\"input-group\">\\n\t\t\t\t\t\t\t\t<span class=\"input-group-addon\" tooltip=\"{{\\'security.table.username\\' | translate}}\" tooltip-trigger=\"mouseenter\"><em class=\"icon-user icon-2x text-muted\"></em></span>\\n\t\t\t\t\t\t\t\t<input id=\"wb-user-username\" placeholder=\"{{\\'security.table.username\\' | translate}}\" name=\"username\" class=\"form-control form-control-lg\" type=\"text\" ng-model=\"user.username\" ng-readonly=\"mode !== \\'add\\'\">\\n\t\t\t\t\t\t\t</div>\\n\t\t\t\t\t\t\t<div ng-show=\"usernameError\" class=\"form-control-feedback\">{{usernameError}}</div>\\n\t\t\t\t\t\t</div>\\n\t\t\t\t\t\t<div class=\"form-group\" ng-class=\"{\\'has-danger\\': passwordError}\">\\n\t\t\t\t\t\t\t<div class=\"input-group\">\\n\t\t\t\t\t\t\t\t<span class=\"input-group-addon\" tooltip=\"{{\\'security.password.placeholder\\' | translate}}\" tooltip-trigger=\"mouseenter\"><em class=\"icon-lock icon-2x text-muted\"></em></span>\\n\t\t\t\t\t\t\t\t<input id=\"wb-user-password\" placeholder=\"{{passwordPlaceholder | translate}}\" name=\"password\" class=\"form-control form-control-lg\" type=\"password\"\tng-model=\"user.password\" ng-hide=\"user.external || hasExternalAuthUser()\" ng-readonly=\"noPassword\">\\n\t\t\t\t\t\t\t\t<span ng-show=\"user.external || hasExternalAuthUser()\">{{\\'security.auth.from.external.module\\' | translate}}</span>\\n\t\t\t\t\t\t\t</div>\\n\t\t\t\t\t\t\t<div ng-show=\"passwordError\" class=\"form-control-feedback\">{{passwordError}}</div>\\n\t\t\t\t\t\t</div>\\n\t\t\t\t\t\t<div class=\"form-group\" ng-class=\"{\\'has-danger\\': confirmPasswordError}\" ng-hide=\"user.external || hasExternalAuthUser()\">\\n\t\t\t\t\t\t\t<div class=\"input-group\">\\n\t\t\t\t\t\t\t\t<span class=\"input-group-addon\" tooltip=\"{{\\'security.password.confirm\\' | translate}}\" tooltip-trigger=\"mouseenter\"><em class=\"icon-lock icon-2x text-muted\"></em></span>\\n\t\t\t\t\t\t\t\t<input id=\"wb-user-confirmpassword\" placeholder=\"{{\\'security.password.confirm\\' | translate}}\" name=\"password_confirm\" class=\"form-control form-control-lg\" type=\"password\" ng-model=\"user.confirmpassword\" ng-readonly=\"noPassword\">\\n\t\t\t\t\t\t\t</div>\\n\t\t\t\t\t\t\t<div ng-show=\"confirmPasswordError\" class=\"form-control-feedback\">{{confirmPasswordError}}</div>\\n\t\t\t\t\t\t</div>\\n <div>\\n <label class=\"d-block\">\\n <input type=\"checkbox\" id=\"noPassword\" ng-model=\"noPassword\" ng-change=\"setNoPassword()\">\\n <span ng-show=\"mode === \\'add\\'\">{{\\'security.dont.set.password\\' | translate}} </span>\\n <span ng-show=\"mode !== \\'add\\'\">{{\\'security.unset.password\\' | translate}} </span>\\n </label>\\n </div>\\n\t\t\t\t\t</div>\\n\t\t\t\t</div>\\n\\n\t\t\t\t<div class=\"card sparql-editor-settings\" id=\"user-settings\">\\n\t\t\t\t\t<div class=\"card-block\">\\n\t\t\t\t\t\t<h3>{{\\'security.user.settings\\' | translate}}</h3>\\n\\n\t\t\t\t\t\t<div id=\"sameas-on\" class=\"mb-1\">\\n\t\t\t\t\t\t\t<span class=\"sameas-label\">\\n\t\t\t\t\t\t\t\t{{\\'security.expand.sameAs.is\\' | translate}}\\n\t\t\t\t\t\t\t\t<span class=\"tag {{user.appSettings.DEFAULT_SAMEAS ? \\'tag-primary\\' : \\'tag-default\\'}}\">\\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \\'common.on.btn\\' : \\'common.off.btn\\' | translate}}\\n\t\t\t\t\t\t\t\t</span>\\n\t\t\t\t\t\t\t</span>\\n\t\t\t\t\t\t\t<span tooltip=\"{{shouldDisableSameAs() ? \\'core.require.inferred\\' : \\'security.tooltip.click.me\\' | translate}}\" tooltip-placement=\"top\" tooltip-trigger=\"mouseenter\"\\n\t\t\t\t\t\t\t\t ng-click=\"user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS\"\\n\t\t\t\t\t\t\t\t class=\"switch mr-0\">\\n\t\t\t\t\t\t\t\t<input id=\"sameAsCheck\" type=\"checkbox\" class=\"switch\"\\n ng-checked=\"user.appSettings.DEFAULT_SAMEAS\"\\n ng-disabled=\"shouldDisableSameAs()\"/>\\n\t\t\t\t\t\t\t\t<label for=\"sameas-on\"></label>\\n\t\t\t\t\t\t\t</span>\\n\t\t\t\t\t\t\t{{\\'security.default.editor.graph\\' | translate}}\\n\t\t\t\t\t\t</div>\\n\\n\t\t\t\t\t\t<div id=\"inference-on\" class=\"mb-1\">\\n\t\t\t\t\t\t\t<span class=\"inference-label\">\\n\t\t\t\t\t\t\t\t{{\\'security.inference.is\\' | translate}}\\n\t\t\t\t\t\t\t\t<span class=\"tag {{user.appSettings.DEFAULT_INFERENCE ? \\'tag-primary\\' : \\'tag-default\\'}}\">\\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \\'common.on.btn\\' : \\'common.off.btn\\' | translate}}\\n\t\t\t\t\t\t\t\t</span>\\n\t\t\t\t\t\t\t</span>\\n\t\t\t\t\t\t\t<span tooltip=\"{{\\'security.tooltip.click.me\\' | translate}}\" tooltip-placement=\"top\" tooltip-trigger=\"mouseenter\"\\n\t\t\t\t\t\t\t\t ng-click=\"user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE\"\\n\t\t\t\t\t\t\t\t class=\"switch mr-0\">\\n\t\t\t\t\t\t\t\t<input type=\"checkbox\" class=\"switch\" ng-checked=\"user.appSettings.DEFAULT_INFERENCE\"/>\\n\t\t\t\t\t\t\t\t<label for=\"inference-on\"></label>\\n\t\t\t\t\t\t\t</span>\\n {{\\'security.default.editor.graph\\' | translate}}\\n\t\t\t\t\t\t</div>\\n\\n <div id=\"schema-on\" class=\"mb-1\">\\n\t\t\t\t\t\t\t<span class=\"schema-label\">\\n\t\t\t\t\t\t\t\t{{\\'security.show.schema\\' | translate}}\\n\t\t\t\t\t\t\t\t<span class=\"tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \\'tag-primary\\' : \\'tag-default\\'}}\">\\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \\'common.on.btn\\' : \\'common.off.btn\\' | translate}}\\n\t\t\t\t\t\t\t\t</span>\\n <span tooltip=\"{{\\'security.tooltip.click.me\\' | translate}}\" tooltip-placement=\"top\" tooltip-trigger=\"mouseenter\"\\n ng-click=\"user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA\"\\n class=\"switch mr-0\">\\n\t\t\t\t\t\t\t\t<input type=\"checkbox\" class=\"switch\" ng-checked=\"user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA\"/>\\n\t\t\t\t\t\t\t\t<label for=\"schema-on\"></label>\\n\t\t\t\t\t\t\t</span>\\n {{\\'security.default.visual.graph\\' | translate}}\\n\t\t\t\t\t\t\t</span>\\n </div>\\n\\n\t\t\t\t\t\t<label class=\"d-block\">\\n\t\t\t\t\t\t\t<input type=\"checkbox\" ng-model=\"user.appSettings.EXECUTE_COUNT\" id=\"defaultCount\" checked=\"appSettings.EXECUTE_COUNT\">\\n\t\t\t\t\t\t\t{{\\'security.count.total.results\\' | translate}}\\n\t\t\t\t\t\t</label>\\n\\n\t\t\t\t\t\t<label class=\"d-block\">\\n\t\t\t\t\t\t\t<input type=\"checkbox\" ng-model=\"user.appSettings.IGNORE_SHARED_QUERIES\" id=\"ignore-shared\" checked=\"appSettings.IGNORE_SHARED_QUERIES\">\\n\t\t\t\t\t\t\t{{\\'security.ignore.shared.queries\\' | translate}}\\n\t\t\t\t\t\t</label>\\n\\n\t\t\t\t\t</div>\\n\t\t\t\t</div>\\n\\n\t\t\t\t<div class=\"card\" id=\"workbench-settings\" ng-if=\"showWorkbenchSettings\">\\n\t\t\t\t\t<div class=\"card-block\">\\n\t\t\t\t\t\t<h3>{{\\'security.workbench.settings.title\\' | translate}}\\n\t\t\t\t\t\t\t<em class=\"icon-info text-primary small\" tooltip=\"{{\\'security.workbench.settings.theme.tooltip\\' | translate}}\"></em></h3>\\n\\n\t\t\t\t\t\t<div class=\"mb-1\">\\n\t\t\t\t\t\t\t<label class=\"col-lg-5\">{{\\'security.workbench.settings.theme.label\\' | translate}}</label>\\n\t\t\t\t\t\t\t<div class=\"radio\">\\n\t\t\t\t\t\t\t\t<label class=\"px-1\">\\n\t\t\t\t\t\t\t\t\t<input type=\"radio\" value=\"light\" ng-model=\"workbenchSettings.theme\" ng-change=\"setWorkbenchTheme()\"/>\\n\t\t\t\t\t\t\t\t\t{{\\'security.workbench.settings.theme.light\\' | translate}}\\n\t\t\t\t\t\t\t\t</label>\\n\t\t\t\t\t\t\t\t<label class=\"px-1\">\\n\t\t\t\t\t\t\t\t\t<input type=\"radio\" value=\"dark\" ng-model=\"workbenchSettings.theme\" ng-change=\"setWorkbenchTheme()\"/>\\n\t\t\t\t\t\t\t\t\t{{\\'security.workbench.settings.theme.dark\\' | translate}}\\n\t\t\t\t\t\t\t\t</label>\\n\t\t\t\t\t\t\t</div>\\n\t\t\t\t\t\t</div>\\n\t\t\t\t\t</div>\\n\t\t\t\t</div>\\n\\n\t\t\t</div>\\n\\n\t\t\t<div class=\"col-md-6\" ng-hide=\"!isLocalAuthentication()\">\\n\t\t\t\t<div class=\"card user-role\" id=\"user-roles\">\\n\t\t\t\t\t<div class=\"card-block\">\\n\t\t\t\t\t\t<h3>{{\\'security.user.role\\' | translate}}</h3>\\n\t\t\t\t\t\t<label class=\"mr-1\"\\n\t\t\t\t\t\t\t popover-template=\"\\'popover-content-user.html\\'\"\\n\t\t\t\t\t\t\t popover-trigger=\"mouseenter\"\\n\t\t\t\t\t\t\t popover-placement=\"bottom\">\\n\t\t\t\t\t\t\t<input type=\"radio\" ng-model=\"userType\" id=\"roleUser\" value=\"user\" ng-disabled=\"hasEditRestrictions()\" >\\n\t\t\t\t\t\t\t{{\\'security.user.label\\' | translate}}\\n\t\t\t\t\t\t</label>\\n\t\t\t\t\t\t<label class=\"mr-1\"\\n\t\t\t\t\t\t\t popover-template=\"\\'popover-content-repo-manager.html\\'\"\\n\t\t\t\t\t\t\t popover-trigger=\"mouseenter\"\\n\t\t\t\t\t\t\t popover-placement=\"bottom\">\\n\t\t\t\t\t\t\t<input type=\"radio\" ng-model=\"userType\" id=\"roleRepoAdmin\" value=\"repoManager\" ng-disabled=\"hasEditRestrictions()\">\\n\t\t\t\t\t\t\t{{\\'security.repo.manager.label\\' | translate}}\\n\t\t\t\t\t\t</label>\\n\t\t\t\t\t\t<label popover-template=\"\\'popover-content-admin.html\\'\"\\n\t\t\t\t\t\t\t popover-trigger=\"mouseenter\"\\n\t\t\t\t\t\t\t popover-placement=\"bottom\">\\n\t\t\t\t\t\t\t<input type=\"radio\" ng-model=\"userType\" id=\"roleAdmin\" value=\"admin\" ng-disabled=\"hasEditRestrictions()\">\\n\t\t\t\t\t\t\t{{\\'security.admin.label\\' | translate}}\\n\t\t\t\t\t\t</label>\\n\t\t\t\t\t</div>\\n\t\t\t\t</div>\\n\\n\t\t\t\t<div id=\"user-repos\" class=\"card user-repositories\">\\n\t\t\t\t\t<div class=\"card-block\">\\n\t\t\t\t\t\t<h3>{{\\'security.repo.rights\\' | translate}}</h3>\\n\t\t\t\t\t\t<div class=\"has-danger\">\\n\t\t\t\t\t\t\t<p ng-show=\"repositoryCheckError\" class=\"form-control-feedback\">\\n\t\t\t\t\t\t\t\t{{\\'security.user.rights\\' | translate}}\\n\t\t\t\t\t\t\t</p>\\n\t\t\t\t\t\t</div>\\n\t\t\t\t\t\t<table class=\"table table-hover table-sm\" aria-describedby=\"User rights table\">\\n\t\t\t\t\t\t\t<thead>\\n\t\t\t\t\t\t\t\t<tr>\\n\t\t\t\t\t\t\t\t\t<th id=\"repositoryIdColumn\">{{\\'security.repository.title\\' | translate}}</th>\\n\t\t\t\t\t\t\t\t\t<th id=\"readRightsColumn\" class=\"text-xs-center\"><em class=\"icon-eye icon-lg\" tooltip=\"{{\\'security.tooltip.read\\' | translate}}\" tooltip-trigger=\"mouseenter\"></em></th>\\n\t\t\t\t\t\t\t\t\t<th id=\"writeRightColumn\" class=\"text-xs-center\"><em class=\"icon-edit icon-lg\" tooltip=\"{{\\'security.tooltip.write\\' | translate}}\" tooltip-trigger=\"mouseenter\"></em></th>\\n\t\t\t\t\t\t\t\t</tr>\\n\t\t\t\t\t\t\t</thead>\\n\t\t\t\t\t\t\t<tbody>\\n\t\t\t\t\t\t\t\t<tr>\\n\t\t\t\t\t\t\t\t\t<td>{{\\'security.any.data.repo\\' | translate}}\\n\t\t\t\t\t\t\t\t\t\t<em class=\"icon-info text-primary\" tooltip=\"{{\\'security.data.repos\\' | translate}}\"></em>\\n\t\t\t\t\t\t\t\t\t</td>\\n\t\t\t\t\t\t\t\t\t<td class=\"text-xs-center\">\\n <input class=\"read\" type=\"checkbox\" ng-model=\"grantedAuthorities.READ_REPO[\\'*\\']\" ng-checked=\"hasReadPermission(\\'*\\')\" ng-disabled=\"readCheckDisabled(\\'*\\')\" ng-click=\"setGrantedAuthorities()\">\\n </td>\\n\t\t\t\t\t\t\t\t\t<td class=\"text-xs-center\">\\n <input class=\"write\" type=\"checkbox\" ng-model=\"grantedAuthorities.WRITE_REPO[\\'*\\']\" ng-checked=\"hasWritePermission(\\'*\\')\" ng-disabled=\"writeCheckDisabled(\\'*\\')\" ng-click=\"setGrantedAuthorities()\">\\n </td>\\n\t\t\t\t\t\t\t\t</tr>\\n\t\t\t\t\t\t\t\t<tr ng-repeat=\"repository in getReadableRepositories() | orderBy: [\\'location\\', \\'id\\']\">\\n\t\t\t\t\t\t\t\t\t<td class=\"repository-name\">{{repository.id}}<small> · {{repository.location ? repository.location : \\'Local\\'}}</small></td>\\n\t\t\t\t\t\t\t\t\t<td class=\"text-xs-center read-rights\"><input class=\"read\" type=\"checkbox\" ng-model=\"grantedAuthorities.READ_REPO[createUniqueKey(repository)]\" ng-checked=\"hasReadPermission(repository)\" ng-disabled=\"readCheckDisabled(repository)\" ng-click=\"setGrantedAuthorities()\"></td>\\n\t\t\t\t\t\t\t\t\t<td class=\"text-xs-center write-rights\"><input class=\"write\" type=\"checkbox\" ng-model=\"grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]\" ng-checked=\"hasWritePermission(repository)\" ng-disabled=\"writeCheckDisabled(repository)\" ng-click=\"setGrantedAuthorities()\"></td>\\n\t\t\t\t\t\t\t\t</tr>\\n\t\t\t\t\t\t\t</tbody>\\n\t\t\t\t\t\t</table>\\n\t\t\t\t\t</div>\\n\t\t\t\t</div>\\n </div>\\n\t\t</div>\\n\\n\t\t<div class=\"mb-3\">\\n\t\t\t<button id=\"wb-user-submit\" class=\"btn btn-primary\" type=\"submit\">{{saveButtonText}}</button>\\n\t\t\t<button id=\"wb-user-goBack\" class=\"btn btn-secondary\" type=\"button\" ng-click=\"goBack()\">{{\\'common.cancel.btn\\' | translate}}</button>\\n\t\t</div>\\n\t</form>\\n</div>\\n<div class=\"ot-loader ot-main-loader\" onto-loader size=\"50\" ng-show=\"loader\"></div>\\n\\n\\n\\n';\n\n}\nreturn __p\n}"],"sourceRoot":""}
|