graphdb-workbench 2.2.1 → 2.2.2-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.
Files changed (118) hide show
  1. package/dist/{108.19b6e7d30df333e42876.bundle.js → 108.3c3f9c242e6a3e18fff5.bundle.js} +2 -2
  2. package/dist/108.3c3f9c242e6a3e18fff5.bundle.js.map +1 -0
  3. package/dist/11.f4c5533cd200c8568ff6.bundle.js +1 -1
  4. package/dist/11.f4c5533cd200c8568ff6.bundle.js.map +1 -1
  5. package/dist/111.a12fdfab1d11ab373ecf.bundle.js +2 -0
  6. package/dist/111.a12fdfab1d11ab373ecf.bundle.js.map +1 -0
  7. package/dist/112.8cd13d27736494201244.bundle.js +2 -0
  8. package/dist/112.8cd13d27736494201244.bundle.js.map +1 -0
  9. package/dist/{12.d9d71e44fdefd12ffbd9.bundle.js → 12.f348b65d06b0213c492e.bundle.js} +2 -2
  10. package/dist/12.f348b65d06b0213c492e.bundle.js.map +1 -0
  11. package/dist/{13.c983d32d3e92f49cd670.bundle.js → 13.fc8afecbe1a39b84c1db.bundle.js} +2 -2
  12. package/dist/13.fc8afecbe1a39b84c1db.bundle.js.map +1 -0
  13. package/dist/{14.8661d578dfadafbcdf84.bundle.js → 14.457cf038826e0d9e033e.bundle.js} +2 -2
  14. package/dist/14.457cf038826e0d9e033e.bundle.js.map +1 -0
  15. package/dist/148.dd250d3cc5aafade33c6.bundle.js +1 -1
  16. package/dist/148.dd250d3cc5aafade33c6.bundle.js.map +1 -1
  17. package/dist/{15.6eada6724367dcd05007.bundle.js → 15.874aa7b7f7972283a629.bundle.js} +2 -2
  18. package/dist/15.874aa7b7f7972283a629.bundle.js.map +1 -0
  19. package/dist/20.fbcb31706f03a07e8827.bundle.js +1 -1
  20. package/dist/20.fbcb31706f03a07e8827.bundle.js.map +1 -1
  21. package/dist/{21.7f0a59ea2ad9340dcb2f.bundle.js → 21.ea150df1291050bc1c4a.bundle.js} +2 -2
  22. package/dist/21.ea150df1291050bc1c4a.bundle.js.map +1 -0
  23. package/dist/27.83b24ef9ec0fd6964d92.bundle.js +1 -1
  24. package/dist/27.83b24ef9ec0fd6964d92.bundle.js.map +1 -1
  25. package/dist/33.4d23fa109c9184727386.bundle.js +1 -1
  26. package/dist/33.4d23fa109c9184727386.bundle.js.map +1 -1
  27. package/dist/34.f019d485e103b291488a.bundle.js +2 -0
  28. package/dist/34.f019d485e103b291488a.bundle.js.map +1 -0
  29. package/dist/40.50b40301c8cc69a70457.bundle.js +1 -1
  30. package/dist/40.50b40301c8cc69a70457.bundle.js.map +1 -1
  31. package/dist/44.568afd25b8a568b1c18d.bundle.js +2 -0
  32. package/dist/44.568afd25b8a568b1c18d.bundle.js.map +1 -0
  33. package/dist/45.ff1425adb8765ead76fa.bundle.js +2 -0
  34. package/dist/45.ff1425adb8765ead76fa.bundle.js.map +1 -0
  35. package/dist/46.e92017f79bee05197e4a.bundle.js +2 -0
  36. package/dist/46.e92017f79bee05197e4a.bundle.js.map +1 -0
  37. package/dist/47.099bba66b99e58961fd9.bundle.js +2 -0
  38. package/dist/47.099bba66b99e58961fd9.bundle.js.map +1 -0
  39. package/dist/48.5a84d14ed4cb41f91fca.bundle.js +2 -0
  40. package/dist/48.5a84d14ed4cb41f91fca.bundle.js.map +1 -0
  41. package/dist/49.ad3b75a5d0c8679165b9.bundle.js +2 -0
  42. package/dist/49.ad3b75a5d0c8679165b9.bundle.js.map +1 -0
  43. package/dist/50.5114c92299726180a264.bundle.js +2 -0
  44. package/dist/50.5114c92299726180a264.bundle.js.map +1 -0
  45. package/dist/51.f884748db1436a79a134.bundle.js +2 -0
  46. package/dist/51.f884748db1436a79a134.bundle.js.map +1 -0
  47. package/dist/52.351e9098a43e13a6f2da.bundle.js +2 -0
  48. package/dist/52.351e9098a43e13a6f2da.bundle.js.map +1 -0
  49. package/dist/94.38349f52df66313fbcc0.bundle.js +1 -1
  50. package/dist/94.38349f52df66313fbcc0.bundle.js.map +1 -1
  51. package/dist/{bundle.119af3621ec41f8cbf04.bundle.js → bundle.f540ee201846422b1cb9.bundle.js} +3 -3
  52. package/dist/bundle.f540ee201846422b1cb9.bundle.js.map +1 -0
  53. package/dist/css/jmx.css +11 -1
  54. package/dist/i18n/locale-en.json +22 -6
  55. package/dist/i18n/locale-fr.json +61 -15
  56. package/dist/index.html +3 -3
  57. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  58. package/dist/pages/autocomplete.html +1 -1
  59. package/dist/pages/choose-repository-type.html +1 -1
  60. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  61. package/dist/pages/create-index.html +4 -4
  62. package/dist/pages/dependencies.html +1 -1
  63. package/dist/pages/domainRangeInfo.html +2 -2
  64. package/dist/pages/edit.html +1 -1
  65. package/dist/pages/explore.html +1 -1
  66. package/dist/pages/export.html +1 -1
  67. package/dist/pages/find.html +1 -1
  68. package/dist/pages/graph-config/saveGraphConfig.html +11 -11
  69. package/dist/pages/graphs-visualizations.html +7 -7
  70. package/dist/pages/guides.html +1 -1
  71. package/dist/pages/import.html +1 -1
  72. package/dist/pages/jdbc-create.html +5 -5
  73. package/dist/pages/monitor/queries.html +1 -1
  74. package/dist/pages/monitor/resources.html +121 -31
  75. package/dist/pages/namespaces.html +2 -2
  76. package/dist/pages/plugins.html +1 -1
  77. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  78. package/dist/pages/rdfrank.html +2 -2
  79. package/dist/pages/repositories.html +2 -2
  80. package/dist/pages/repository.html +2 -2
  81. package/dist/pages/similarity-indexes.html +1 -1
  82. package/dist/pages/sparql-template-create.html +5 -5
  83. package/dist/pages/sparql.html +3 -3
  84. package/dist/pages/webapi.html +2 -2
  85. package/dist/plugins.js +4 -3
  86. package/dist/res/swagger/index.html +27 -27
  87. package/package.json +1 -1
  88. package/dist/108.19b6e7d30df333e42876.bundle.js.map +0 -1
  89. package/dist/111.4845cf402b3a4c3c006c.bundle.js +0 -2
  90. package/dist/111.4845cf402b3a4c3c006c.bundle.js.map +0 -1
  91. package/dist/112.99c50f08e6724346dc3a.bundle.js +0 -2
  92. package/dist/112.99c50f08e6724346dc3a.bundle.js.map +0 -1
  93. package/dist/12.d9d71e44fdefd12ffbd9.bundle.js.map +0 -1
  94. package/dist/13.c983d32d3e92f49cd670.bundle.js.map +0 -1
  95. package/dist/14.8661d578dfadafbcdf84.bundle.js.map +0 -1
  96. package/dist/15.6eada6724367dcd05007.bundle.js.map +0 -1
  97. package/dist/21.7f0a59ea2ad9340dcb2f.bundle.js.map +0 -1
  98. package/dist/34.01b159cdf635ac9d0dd7.bundle.js +0 -2
  99. package/dist/34.01b159cdf635ac9d0dd7.bundle.js.map +0 -1
  100. package/dist/44.4d7cb09cdd1413d5f879.bundle.js +0 -2
  101. package/dist/44.4d7cb09cdd1413d5f879.bundle.js.map +0 -1
  102. package/dist/45.8c6f6eba4736e953c2bc.bundle.js +0 -2
  103. package/dist/45.8c6f6eba4736e953c2bc.bundle.js.map +0 -1
  104. package/dist/46.3a0da10162409588560c.bundle.js +0 -2
  105. package/dist/46.3a0da10162409588560c.bundle.js.map +0 -1
  106. package/dist/47.049aedaa6cfccef06f69.bundle.js +0 -2
  107. package/dist/47.049aedaa6cfccef06f69.bundle.js.map +0 -1
  108. package/dist/48.d7b02a85dfa52084b1c4.bundle.js +0 -2
  109. package/dist/48.d7b02a85dfa52084b1c4.bundle.js.map +0 -1
  110. package/dist/49.2e7858348448fdde1332.bundle.js +0 -2
  111. package/dist/49.2e7858348448fdde1332.bundle.js.map +0 -1
  112. package/dist/50.1650ec02515a7dce98a5.bundle.js +0 -2
  113. package/dist/50.1650ec02515a7dce98a5.bundle.js.map +0 -1
  114. package/dist/51.c597233d286f68e37481.bundle.js +0 -2
  115. package/dist/51.c597233d286f68e37481.bundle.js.map +0 -1
  116. package/dist/52.0ea1cd862aeb2461a9c4.bundle.js +0 -2
  117. package/dist/52.0ea1cd862aeb2461a9c4.bundle.js.map +0 -1
  118. package/dist/bundle.119af3621ec41f8cbf04.bundle.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/settings/app.js","webpack:///./src/js/angular/repositories/app.js","webpack:///./src/js/angular/settings/controllers.js","webpack:///./src/js/angular/repositories/ontop-repo.directive.js","webpack:///./src/js/angular/repositories/fedx-repo.directive.js"],"names":["config","$httpProvider","interceptors","push","run","$rootScope","$location","$licenseService","$on","isLicenseHardcoded","url","path","angular","module","$inject","ActiveLocationSettingsCtrl","$scope","toastr","$modalInstance","LicenseRestService","$translate","supportsStatistics","settings","statistics","getSettings","loader","getStatistics","then","response","data","status","msg","getError","error","instant","setSettings","toggleStatistics","close","success","submitForm","cancel","dismiss","LicenseCtrl","ModalService","loadingLicense","checkLicenseStatus","revertToFree","openSimpleModal","title","message","warning","result","unregisterLicense","RegisterLicenseCtrl","$modal","$window","$jwtAuth","isAdmin","sendLicenseToValidateAndActivate","textAreaSel","$","licenseCode","sendLicenseToValidate","validatedLicense","licensee","val","license","open","templateUrl","controller","size","resolve","decodedLicense","atob","replace","registerLicense","history","back","confirmWantedNewLicenseDetails","$watch","currentFile","file","extractFromLicenseFile","getBackToPreviousPage","ValidateLicenseModalCtrl","ok","LoaderSamplesCtrl","setLoader","ontopRepoDirective","RepositoriesRestService","Upload","restrict","scope","link","selectedDriver","driverType","driverName","jdbc","hostName","port","databaseName","userName","password","driverClass","urlTemplate","downloadDriverUrl","ontopRepoFileNames","supportedDriversData","ontopRepoFileLabels","propertiesFile","obdaFile","owlFile","constraintFile","dbMetadataFile","ontopRepoFiles","Object","keys","forEach","key","repositoryInfo","params","value","supportedDriverLabels","propertiesFileParams","classAvailable","genericDriverType","REQUIRED_ONTOP_REPO_PARAMS","REQUIRED_PROPERTIES_FIELD_PARAMS","updateProperties","filter","requiredField","length","Promise","reject","uploadFileLoader","updatePropertiesFile","location","fileLocation","showErrorMsg","loadDriverByClass","foundDriver","find","driver","copyDriverProperties","selectDriverByType","concatURL","portRequired","isReadOnly","labelName","editFile","updateRepositoryFileContent","content","uploadOntopRepoFile","files","param","uploadFile","upload","name","errorMessage","getInputType","checkForRequiredOntopFiles","requiredFile","validateOntopPropertiesConnection","isOntopRepoFileUploaded","isRequiredOntopRepoFile","indexOf","isRequiredField","field","getFieldTooltip","repoTooltips","ontop","editOntopRepo","editRepository","catch","err","createOntopRepo","id","createRepo","goBackToPrevious","goBackToPreviousLocation","getSupportedDriversData","editRepoPage","loadPropertiesFile","driverData","parseInt","directive","fedxRepoDirective","LOCAL_REPO_STORE","fedxMembers","knownRepos","allAttachedRepos","member","slice","populateKnownRepos","repo","repositoryServer","repositoryName","local","getKnownRepos","getRepositories","repos","_","values","apply","cloneDeep","setWritableRepo","currentWritable","writable","store","JSON","stringify","getActiveClass","checkIfRepoExist","getRepositoryServer","localReposTimer","setInterval","updateMembers","removeEndingSlash","checkEditMode","model","editMode","clearInterval","addMember","repository","repoType","type","respectRights","username","supportsASKQueries","removeMember","el","endpoint","repositoryLocation","addRemoteMember","mode","sparqlEndpoint","getMemberIcon","editFedXRepository","resolveName","resolvedName"],"mappings":"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","file":"21.7f0a59ea2ad9340dcb2f.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/rest/license.rest.service';\nimport 'angular/settings/controllers';\nimport 'angular/core/interceptors/unauthorized.interceptor';\nimport 'angular/core/services/jwt-auth.service';\nimport 'ng-file-upload/dist/ng-file-upload.min';\nimport 'ng-file-upload/dist/ng-file-upload-shim.min';\n\nangular.module('graphdb.framework.settings', [\n 'toastr',\n 'ui.bootstrap',\n 'graphdb.framework.rest.license.service',\n 'graphdb.framework.settings.controllers',\n 'graphdb.framework.core.interceptors.unauthorized',\n 'graphdb.framework.core.services.jwtauth'\n])\n .config(config)\n .run(run);\n\nconfig.$inject = ['$httpProvider', '$routeProvider'];\n\nfunction config($httpProvider) {\n $httpProvider.interceptors.push('$unauthorizedInterceptor');\n}\n\nrun.$inject = ['$rootScope', '$location', '$licenseService'];\n\nfunction run($rootScope, $location, $licenseService) {\n $rootScope.$on('$locationChangeStart', function () {\n if ($licenseService.isLicenseHardcoded && $location.url() === '/license/register') {\n $location.path('license');\n }\n });\n}\n","import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/core/controllers';\nimport 'angular/repositories/controllers';\nimport 'angular/repositories/ontop-repo.directive';\nimport 'angular/repositories/fedx-repo.directive';\nimport 'angular/core/services/repositories.service';\nimport 'angular/settings/app';\nimport 'ng-file-upload/dist/ng-file-upload.min';\nimport 'ng-file-upload/dist/ng-file-upload-shim.min';\n\nconst modules = [\n 'ui.bootstrap',\n 'toastr',\n 'ngCookies',\n 'ngRoute',\n 'graphdb.framework.repositories.controllers',\n 'graphdb.framework.repositories.ontop-repo.directive',\n 'graphdb.framework.repositories.fedx-repo.directive',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.directives',\n 'graphdb.framework.core.controllers',\n 'graphdb.framework.settings'\n];\n\nangular.module('graphdb.framework.repositories', modules);\n","import 'angular/core/services';\nimport 'angular/core/services/jwt-auth.service';\n\nangular\n .module('graphdb.framework.settings.controllers', [\n 'ngCookies',\n 'ui.bootstrap',\n 'graphdb.framework.core.services.jwtauth',\n 'toastr'\n ])\n .controller('ActiveLocationSettingsCtrl', ActiveLocationSettingsCtrl)\n .controller('ValidateLicenseModalCtrl', ValidateLicenseModalCtrl)\n .controller('LicenseCtrl', LicenseCtrl)\n .controller('RegisterLicenseCtrl', RegisterLicenseCtrl)\n .controller('LoaderSamplesCtrl', LoaderSamplesCtrl);\n\nActiveLocationSettingsCtrl.$inject = ['$scope', 'toastr', '$modalInstance', 'LicenseRestService', '$translate'];\n\nfunction ActiveLocationSettingsCtrl($scope, toastr, $modalInstance, LicenseRestService, $translate) {\n $scope.supportsStatistics = true;\n $scope.settings = {statistics: false};\n $scope.getSettings = getSettings;\n\n function getSettings() {\n $scope.loader = true;\n LicenseRestService.getStatistics().then(function (response) {\n $scope.settings.statistics = response.data === 'true';\n $scope.supportsStatistics = true;\n }, function (response) {\n if (response.status === 404) {\n $scope.supportsStatistics = false;\n } else {\n const msg = getError(response.data);\n toastr.error(msg, $translate.instant('error.getting.settings'));\n }\n });\n }\n\n $scope.getSettings();\n\n $scope.setSettings = function () {\n $scope.loader = true;\n LicenseRestService.toggleStatistics($scope.settings.statistics).then(function () {\n $modalInstance.close();\n toastr.success($translate.instant('saving.settings.success'));\n }, function (response) {\n const msg = getError(response.data);\n toastr.error(msg, $translate.instant('saving.settings.error'));\n });\n };\n\n $scope.submitForm = function () {\n $scope.setSettings();\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n}\n\nLicenseCtrl.$inject = ['$scope', 'LicenseRestService', '$licenseService', 'toastr', '$rootScope', 'ModalService', '$translate'];\n\nfunction LicenseCtrl($scope, LicenseRestService, $licenseService, toastr, $rootScope, ModalService, $translate) {\n\n $scope.loadingLicense = function() {\n return $licenseService.loadingLicense;\n };\n\n $licenseService.checkLicenseStatus();\n\n $scope.revertToFree = function () {\n ModalService.openSimpleModal({\n title: $translate.instant('confirm.operation'),\n message: $translate.instant(\"revert.to.free.warning.msg\"),\n warning: true\n }).result\n .then(function () {\n LicenseRestService.unregisterLicense()\n .success(function () {\n $licenseService.checkLicenseStatus();\n });\n });\n };\n}\n\nRegisterLicenseCtrl.$inject = ['$scope', 'LicenseRestService', '$location', '$modal', 'toastr', '$window', '$jwtAuth', '$translate'];\n\nfunction RegisterLicenseCtrl($scope, LicenseRestService, $location, $modal, toastr, $window, $jwtAuth, $translate) {\n $scope.$on('securityInit', function () {\n if (!$jwtAuth.isAdmin()) {\n $location.path('/license');\n }\n });\n\n $scope.sendLicenseToValidateAndActivate = sendLicenseToValidateAndActivate;\n\n const textAreaSel = $('.license-textarea');\n\n // watch for uploaded license file\n $scope.$watch('currentFile', function () {\n if ($scope.currentFile) {\n const file = $scope.currentFile;\n LicenseRestService.extractFromLicenseFile(file)\n .success(function (licenseCode) {\n sendLicenseToValidateAndActivate(licenseCode);\n }).error(function () {\n toastr.error($translate.instant('could.not.upload.file.error'));\n });\n }\n });\n\n $scope.getBackToPreviousPage = function () {\n $window.history.back();\n };\n\n // send license code for validation and activation\n function sendLicenseToValidateAndActivate(licenseCode) {\n LicenseRestService.sendLicenseToValidate(licenseCode)\n .success(function (validatedLicense) {\n if (validatedLicense.licensee !== 'Invalid') {\n // write code to textarea\n textAreaSel.val(licenseCode);\n // pop dialog for license details confirmation\n confirmWantedNewLicenseDetails(validatedLicense, licenseCode);\n } else {\n // clear textarea on invalid license\n textAreaSel.val('');\n // show error\n toastr.error(validatedLicense.message);\n }\n })\n .error(function () {\n toastr.error($translate.instant('invalid.license'));\n });\n }\n\n\n // pops a modal dialog which asks you if your expected license details are correct\n // and sends license to GraphDB upon confirmation\n function confirmWantedNewLicenseDetails(license, licenseCode) {\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/settings/modal/validate-license.html',\n controller: 'ValidateLicenseModalCtrl',\n size: 'lg',\n resolve: {\n license: function () {\n return license;\n }\n }\n });\n\n modalInstance.result.then(function () {\n registerLicense(licenseCode);\n });\n }\n\n // send license code to GraphDB for activation\n function registerLicense(licenseCode) {\n if (!licenseCode) {\n licenseCode = textAreaSel.val();\n }\n\n if (licenseCode) {\n // replacing whitespace makes this work on Safari too,\n // whereas other browser happily ignore the whitespace\n const decodedLicense = atob(licenseCode.replace(/\\s/g, ''));\n LicenseRestService.registerLicense(decodedLicense)\n .success(function () {\n $window.history.back();\n }).error(function () {\n toastr.error($translate.instant('license.register.error'));\n });\n } else {\n toastr.error($translate.instant('no.license.code.error'));\n }\n }\n}\n\nValidateLicenseModalCtrl.$inject = ['$scope', '$modalInstance', 'license'];\n\nfunction ValidateLicenseModalCtrl($scope, $modalInstance, license) {\n $scope.ok = ok;\n $scope.cancel = cancel;\n $scope.license = license;\n\n function ok() {\n $modalInstance.close();\n }\n\n function cancel() {\n $modalInstance.dismiss('cancel');\n }\n}\n\nLoaderSamplesCtrl.$inject = ['$scope'];\n\nfunction LoaderSamplesCtrl($scope) {\n $scope.loader = true;\n $scope.setLoader = function (loader) {\n $scope.loader = loader;\n };\n}\n","import {getFileName} from \"./controllers\";\n\nangular\n .module('graphdb.framework.repositories.ontop-repo.directive', [])\n .directive('ontopRepo', ontopRepoDirective);\n\nontopRepoDirective.$inject = ['$modal', 'RepositoriesRestService', 'toastr', 'Upload', '$translate'];\n\nfunction ontopRepoDirective($modal, RepositoriesRestService, toastr, Upload, $translate) {\n return {\n restrict: 'E',\n scope: false,\n templateUrl: 'js/angular/repositories/templates/ontop-repo.html',\n\n link: linkFunc\n };\n\n function linkFunc($scope) {\n\n $scope.selectedDriver = {\n driverType: \"generic\",\n driverName: \"Generic JDBC Driver\",\n jdbc: {\n hostName: \"\",\n port: \"\",\n databaseName: \"\",\n userName: \"\",\n password: \"\",\n driverClass: \"\",\n url: \"\"\n },\n urlTemplate: \"\",\n downloadDriverUrl: \"\"\n };\n $scope.ontopRepoFileNames = {};\n $scope.supportedDriversData = [];\n $scope.ontopRepoFileLabels =\n {propertiesFile: 'JDBC properties', obdaFile: 'OBDA or R2RML', owlFile: 'ontology file',\n constraintFile: 'constraint file', dbMetadataFile: 'DB metadata file'};\n $scope.ontopRepoFiles = Object.keys($scope.ontopRepoFileLabels);\n $scope.ontopRepoFiles.forEach(function(key) {\n if ($scope.repositoryInfo.params[key]) {\n $scope.ontopRepoFileNames[key] = getFileName($scope.repositoryInfo.params[key].value);\n }\n });\n $scope.supportedDriverLabels = {hostName: 'Hostname', port: \"Port\", databaseName: 'Database name',\n userName: 'Username', password: 'Password', driverClass: 'Driver class', url: 'URL'};\n $scope.propertiesFileParams = Object.keys($scope.supportedDriverLabels);\n $scope.classAvailable = false;\n $scope.genericDriverType = 'generic';\n $scope.propertiesFile = 'propertiesFile';\n\n const REQUIRED_ONTOP_REPO_PARAMS = [$scope.propertiesFile, 'obdaFile'];\n const REQUIRED_PROPERTIES_FIELD_PARAMS = ['hostName', 'databaseName', 'userName'];\n\n function getSupportedDriversData() {\n return RepositoriesRestService.getSupportedDriversData($scope.repositoryInfo)\n .success(function (response) {\n $scope.supportedDriversData = response;\n }).error(function (response) {\n showErrorMsg($translate.instant('common.error'), response);\n });\n }\n\n $scope.loadDriverByClass = function (driverClass) {\n const foundDriver = $scope.supportedDriversData\n .find((driver) => driver.driverClass === driverClass);\n if (foundDriver) {\n $scope.copyDriverProperties(foundDriver);\n }\n return foundDriver;\n };\n\n $scope.selectDriverByType = function (driverType) {\n $scope.copyDriverProperties($scope.supportedDriversData\n .find((driver) => driver.driverType === driverType));\n // Call concatURL with proper labelName to apply changes to url field\n $scope.concatURL('hostName', $scope);\n };\n\n $scope.copyDriverProperties = function (driver) {\n $scope.selectedDriver.driverType = driver.driverType;\n $scope.selectedDriver.jdbc.driverClass = driver.driverClass;\n $scope.selectedDriver.jdbc.url = driver.urlTemplate;\n $scope.selectedDriver.urlTemplate = driver.urlTemplate;\n $scope.selectedDriver.downloadDriverUrl = driver.downloadDriverUrl;\n $scope.selectedDriver.portRequired = driver.portRequired;\n $scope.classAvailable = driver.classAvailable;\n };\n\n $scope.isReadOnly = function (labelName) {\n return labelName === 'driverClass' || labelName === 'url';\n }\n\n $scope.editFile = function(file) {\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/templates/modal/editRepoFile.html',\n controller: 'EditRepositoryFileCtrl',\n resolve: {\n file: function () {\n return $scope.repositoryInfo.params[file] ? $scope.repositoryInfo.params[file].value : '';\n }\n }\n });\n\n modalInstance.result.then(function (data) {\n // send data to backend\n RepositoriesRestService.updateRepositoryFileContent(data.fileLocation, data.content, $scope.repositoryInfo.location).success(function(result) {\n $scope.ontopRepoFileNames[file] = getFileName(result.fileLocation);\n $scope.repositoryInfo.params[file].value = result.fileLocation;\n }).error(function (error) {\n showErrorMsg($translate.instant('common.error'), error);\n })\n });\n }\n\n $scope.uploadOntopRepoFile = function(files, param) {\n if (files && files.length) {\n $scope.uploadFile = files[0];\n $scope.uploadFileLoader = true;\n Upload.upload({\n url: 'rest/repositories/file/upload',\n data: {file: $scope.uploadFile, location: $scope.repositoryInfo.location}\n })\n .success(function (data) {\n if (!data.success) {\n toastr.error(data.errorMessage);\n } else {\n $scope.ontopRepoFileNames[param] = $scope.uploadFile.name;\n $scope.repositoryInfo.params[param].value = data.fileLocation;\n }\n $scope.uploadFileLoader = false;\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFile = '';\n $scope.uploadFileLoader = false;\n });\n }\n }\n\n $scope.concatURL = function(labelName) {\n if (labelName === 'hostName' || labelName === 'port' || labelName === 'databaseName') {\n let result = $scope.selectedDriver.urlTemplate;\n if ($scope.selectedDriver.jdbc.hostName) {\n if ($scope.selectedDriver.jdbc.port) {\n result = result.replace('{hostport}',\n `${$scope.selectedDriver.jdbc.hostName}:${$scope.selectedDriver.jdbc.port}`);\n } else {\n result = result.replace('{hostport}', $scope.selectedDriver.jdbc.hostName);\n }\n }\n\n if ($scope.selectedDriver.jdbc.databaseName) {\n result = result.replace('{database}', $scope.selectedDriver.jdbc.databaseName);\n }\n\n $scope.selectedDriver.jdbc.url = result;\n }\n }\n\n $scope.getInputType = function (labelName) {\n switch (labelName) {\n case 'password':\n return 'password';\n case 'port':\n return 'number';\n default:\n return 'text';\n }\n }\n\n $scope.checkForRequiredOntopFiles = function () {\n // Should guarantee that code will be executed in sequential manner,\n // because properties file is not created yet\n return updateProperties()\n .then(function () {\n const missingRequired = REQUIRED_ONTOP_REPO_PARAMS.filter(function (requiredFile) {\n return !$scope.repositoryInfo.params[requiredFile].value;\n });\n if (missingRequired.length > 0) {\n toastr.error($translate.instant('ontop.repo.missing.required.file.error'));\n return Promise.reject($translate.instant('ontop.repo.missing.required.file.error'));\n }\n return Promise.resolve();\n });\n }\n\n function loadPropertiesFile() {\n RepositoriesRestService.loadPropertiesFile($scope.repositoryInfo.params[$scope.propertiesFile].value, $scope.repositoryInfo.location)\n .success(function (driverData) {\n const driver = $scope.loadDriverByClass(driverData.driverClass);\n // If driver class is not found means that the selected driver is a GENERIC ONE\n if (driver) {\n $scope.selectedDriver.jdbc.hostName = driverData.hostName;\n $scope.selectedDriver.jdbc.port = parseInt(driverData.port);\n $scope.selectedDriver.jdbc.databaseName = driverData.databaseName;\n $scope.selectedDriver.jdbc.userName = driverData.userName;\n $scope.selectedDriver.jdbc.password = driverData.password;\n $scope.selectedDriver.jdbc.url = driverData.url;\n }\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFileLoader = false;\n });\n }\n\n $scope.validateOntopPropertiesConnection = function () {\n updateProperties()\n .then(function () {\n RepositoriesRestService.validateOntopPropertiesConnection($scope.repositoryInfo)\n .success(function () {\n toastr.success($translate.instant('ontop.repo.successful.connection.msg'));\n }).error(function (data) {\n showErrorMsg($translate.instant('ontop.repo.failed.to.connect'), data);\n });\n });\n }\n\n $scope.isOntopRepoFileUploaded = function() {\n return $scope.repositoryInfo.params.propertiesFile &&\n $scope.repositoryInfo.params.propertiesFile.value.length > 0\n };\n\n function missingRequiredField() {\n const missing = REQUIRED_PROPERTIES_FIELD_PARAMS\n .filter(function (requiredField) {\n return !$scope.selectedDriver.jdbc[requiredField]\n });\n if (missing.length > 0) {\n toastr.error($translate.instant('missing.required.field.error'));\n return true;\n }\n return false;\n }\n\n function updateProperties() {\n if ($scope.selectedDriver.driverType !== $scope.genericDriverType) {\n if (missingRequiredField()) {\n return Promise.reject($translate.instant('missing.required.field.error'));\n }\n return updatePropertiesFile();\n }\n return Promise.resolve();\n }\n\n function updatePropertiesFile() {\n $scope.uploadFileLoader = true;\n return RepositoriesRestService\n .updatePropertiesFile($scope.repositoryInfo.params[$scope.propertiesFile].value, $scope.selectedDriver.jdbc, $scope.repositoryInfo.location)\n .success(function (data) {\n $scope.ontopRepoFileNames[$scope.propertiesFile] = getFileName(data.fileLocation);\n $scope.repositoryInfo.params[$scope.propertiesFile].value = data.fileLocation;\n $scope.uploadFileLoader = false;\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFileLoader = false;\n });\n }\n\n $scope.isRequiredOntopRepoFile = function(file) {\n return REQUIRED_ONTOP_REPO_PARAMS.indexOf(file) > -1;\n };\n\n $scope.isRequiredField = function (field) {\n return REQUIRED_PROPERTIES_FIELD_PARAMS.indexOf(field) > -1\n || field === 'port' && $scope.selectedDriver.portRequired;\n };\n\n $scope.getFieldTooltip = function (field) {\n if (field === 'port' && $scope.selectedDriver.portRequired) {\n field = 'portIfRequired';\n }\n return $scope.repoTooltips.ontop[field];\n };\n\n $scope.editOntopRepo = function () {\n $scope.checkForRequiredOntopFiles()\n .then(function () {\n $scope.editRepository();\n }).catch(function (err) {\n // The catch block is empty, because error is handled in promise\n });\n }\n\n $scope.createOntopRepo = function () {\n if (!$scope.repositoryInfo.id) {\n toastr.error($translate.instant('empty.repoid.warning'));\n return;\n }\n\n $scope.checkForRequiredOntopFiles()\n .then(function () {\n $scope.createRepo();\n }).catch(function (err) {\n // The catch block is empty, because error is handled in promise\n });\n };\n\n $scope.goBackToPrevious = function () {\n $scope.goBackToPreviousLocation();\n }\n\n function showErrorMsg (title, data) {\n const msg = getError(data);\n toastr.error(msg, title);\n }\n\n getSupportedDriversData()\n .then(function () {\n if ($scope.editRepoPage) {\n loadPropertiesFile();\n }\n });\n }\n}\n","angular\n .module('graphdb.framework.repositories.fedx-repo.directive', [])\n .directive('fedxRepo', fedxRepoDirective);\n\nfedxRepoDirective.$inject = ['$modal', 'RepositoriesRestService', 'toastr', '$translate'];\n\nfunction fedxRepoDirective($modal, RepositoriesRestService, toastr, $translate) {\n return {\n restrict: 'E',\n scope: true,\n templateUrl: 'js/angular/repositories/templates/fedx-repo.html',\n\n link: linkFunc\n };\n\n function linkFunc($scope) {\n\n const LOCAL_REPO_STORE = 'ResolvableRepository';\n const REMOTE_REPO_STORE = 'RemoteRepository';\n const SPARQL_ENDPOINT_STORE = 'SPARQLEndpoint';\n const NATIVE_STORE = 'NativeStore';\n\n $scope.fedxMembers = [];\n $scope.knownRepos = [];\n $scope.allAttachedRepos = [];\n\n if ($scope.editRepoPage) {\n $scope.fedxMembers = $scope.repositoryInfo.params.member.value.slice();\n }\n\n function getRepositories() {\n return RepositoriesRestService.getRepositories($scope.repositoryInfo.location)\n .success(function (response) {\n let repos = [];\n _.values(response).forEach((value) => {\n repos.push.apply(repos, value);\n });\n $scope.allAttachedRepos = _.cloneDeep(repos);\n }).error(function (response) {\n const msg = getError(response);\n toastr.error(msg, $translate.instant('common.error'));\n });\n }\n\n function populateKnownRepos() {\n for (const member of $scope.fedxMembers) {\n $scope.knownRepos = $scope.knownRepos.filter(function (repo) {\n if (member.repositoryServer) {\n // if the member is a remote attached member\n return repo.id !== member.repositoryName || repo.location !== member.repositoryServer;\n } else {\n // if the member is a local one\n return repo.id !== member.repositoryName || !repo.local;\n }\n });\n }\n }\n\n $scope.setWritableRepo = function (member) {\n let currentWritable = getWritableRepo();\n if (currentWritable) {\n if (currentWritable.store === LOCAL_REPO_STORE && (member.store !== LOCAL_REPO_STORE || currentWritable.repositoryName !== member.repositoryName) ) {\n currentWritable.writable = 'false';\n } else if (currentWritable.store === REMOTE_REPO_STORE && (member.store !== REMOTE_REPO_STORE || currentWritable.repositoryName !== member.repositoryName || currentWritable.repositoryServer !== member.repositoryServer)) {\n currentWritable.writable = 'false';\n }\n }\n member.writable = JSON.stringify(member.writable === 'false');\n }\n\n $scope.getActiveClass = function (member) {\n return member.writable === 'true' ? ' active' : '';\n }\n\n function getWritableRepo() {\n return $scope.fedxMembers.find(member => member.writable === \"true\");\n }\n\n function getKnownRepos() {\n getRepositories()\n .then(function () {\n $scope.knownRepos = $scope.allAttachedRepos.slice();\n populateKnownRepos();\n });\n }\n\n $scope.checkIfRepoExist = function (member) {\n if (!$scope.allAttachedRepos.length) {\n return true;\n }\n if (member.store === LOCAL_REPO_STORE) {\n return $scope.allAttachedRepos.find(repo => repo.id === member.repositoryName && !repo.location);\n } else if (member.store === REMOTE_REPO_STORE) {\n return $scope.allAttachedRepos.find(repo => repo.id === member.repositoryName && repo.location === member.repositoryServer);\n } else {\n return true;\n }\n }\n\n $scope.getRepositoryServer = function (repo) {\n if (repo.local) {\n return \"Local\";\n } else {\n return repo.location;\n }\n }\n\n const localReposTimer = setInterval(function () {\n getKnownRepos();\n }, 5000);\n\n $scope.$on('$destroy', function () {\n clearInterval(localReposTimer);\n });\n\n $scope.addMember = function(repository) {\n let member;\n if ($scope.getRepositoryServer(repository) === \"Local\") {\n member = {\n store: LOCAL_REPO_STORE,\n repositoryName: repository.id,\n repoType: repository.type,\n respectRights: \"true\",\n writable: \"false\"\n };\n } else {\n member = {\n store: REMOTE_REPO_STORE,\n repositoryName: repository.id,\n repositoryServer: repository.location,\n username: '',\n password: '',\n supportsASKQueries: \"true\",\n writable: \"false\"\n };\n }\n $scope.knownRepos = $scope.knownRepos.filter(repo => repo.id !== repository.id || repo.location !== repository.location);\n updateMembers(member);\n }\n\n $scope.removeMember = function (member) {\n if (member.store && member.store === LOCAL_REPO_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.store !== member.store || el.repositoryName !== member.repositoryName && !el.repositoryServer);\n getKnownRepos();\n } else if (member.store && member.store === SPARQL_ENDPOINT_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.endpoint !== member.endpoint);\n } else if (member.store && member.store === NATIVE_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryLocation !== member.repositoryLocation);\n } else if (member.store && member.store === REMOTE_REPO_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.store !== member.store || el.repositoryName !== member.repositoryName\n || el.repositoryServer !== member.repositoryServer);\n getKnownRepos();\n }\n $scope.repositoryInfo.params['member'].value = $scope.fedxMembers;\n }\n\n $scope.addRemoteMember = function () {\n $scope.mode = 'remote';\n $scope.model = {\n editMode: false,\n store: REMOTE_REPO_STORE,\n repositoryName: '',\n repositoryServer: '',\n sparqlEndpoint: '',\n username: '',\n password: '',\n supportsASKQueries: \"true\",\n writable: \"false\"\n }\n\n $scope.$modalInstance = $modal.open({\n templateUrl: 'js/angular/templates/modal/add-fedx-remote-repo.html',\n scope: $scope,\n });\n };\n\n $scope.getMemberIcon = function (member) {\n if (member.repoType) {\n return 'icon-repo-' + member.repoType;\n } else if (member.store === NATIVE_STORE) {\n return 'icon-warning';\n } else {\n return 'icon-link';\n }\n }\n\n $scope.editFedXRepository = function (member) {\n if (member.store === LOCAL_REPO_STORE) {\n $scope.mode = 'local';\n $scope.model = {\n editMode: true,\n store: member.store,\n respectRights: member.respectRights,\n repositoryName: member.repositoryName,\n repoType: member.repoType,\n writable: member.writable\n }\n } else {\n $scope.mode = 'remote';\n $scope.model = {\n editMode: true,\n store: member.store,\n repositoryName: member.repositoryName,\n repositoryServer: member.repositoryServer,\n sparqlEndpoint: member.store === SPARQL_ENDPOINT_STORE ? member.endpoint : member.repositoryLocation,\n username: member.username,\n password: member.password,\n supportsASKQueries: member.supportsASKQueries,\n writable: member.writable\n }\n }\n\n $scope.$modalInstance = $modal.open({\n templateUrl: 'js/angular/templates/modal/add-fedx-remote-repo.html',\n scope: $scope\n });\n };\n\n $scope.resolveName = function (member) {\n switch (member.store) {\n case LOCAL_REPO_STORE : {\n return member.repositoryName;\n }\n case REMOTE_REPO_STORE : {\n return member.repositoryName + '@' + member.repositoryServer;\n }\n case SPARQL_ENDPOINT_STORE : {\n return member.endpoint;\n }\n case NATIVE_STORE : {\n return member.repositoryLocation;\n }\n default :\n return \"\";\n }\n }\n\n $scope.cancel = function () {\n $scope.$modalInstance.dismiss('cancel');\n };\n\n function updateMembers(member) {\n $scope.fedxMembers.push(member);\n $scope.repositoryInfo.params['member'].value = $scope.fedxMembers;\n }\n\n function removeEndingSlash(url) {\n return url.slice(-1) === '/' ? url.slice(0, -1) : url\n }\n\n function checkEditMode() {\n return $scope.editRepoPage && !$scope.editRepoPage || !$scope.model.editMode;\n }\n\n $scope.ok = function () {\n let member;\n if ($scope.model.repositoryName && $scope.model.store === LOCAL_REPO_STORE) {\n member = {\n store: LOCAL_REPO_STORE,\n repositoryName: $scope.model.repositoryName,\n repoType: $scope.model.repoType,\n respectRights: $scope.model.respectRights,\n writable: $scope.model.writable\n }\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryName !== member.repositoryName || el.store !== member.store );\n } else if ($scope.model.repositoryName && $scope.model.store === REMOTE_REPO_STORE) {\n member = {\n store: REMOTE_REPO_STORE,\n repositoryName: $scope.model.repositoryName,\n repositoryServer: removeEndingSlash($scope.model.repositoryServer),\n username: $scope.model.username,\n password: $scope.model.password,\n writable: $scope.model.writable\n };\n if (checkEditMode() && $scope.fedxMembers.find(el => el.repositoryName === member.repositoryName\n && el.repositoryServer === member.repositoryServer)) {\n let resolvedName = $scope.resolveName(member);\n toastr.error($translate.instant('fedx.repo.already.added.member.error', {name: resolvedName}));\n $scope.$modalInstance.close();\n return;\n }\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryName !== member.repositoryName\n || el.repositoryServer !== member.repositoryServer);\n } else {\n member = {\n store: SPARQL_ENDPOINT_STORE,\n endpoint: removeEndingSlash($scope.model.sparqlEndpoint),\n username: $scope.model.username,\n password: $scope.model.password,\n supportsASKQueries: $scope.model.supportsASKQueries,\n writable: $scope.model.writable\n };\n\n if (checkEditMode() && $scope.fedxMembers.find(el => el.endpoint === member.endpoint)) {\n let resolvedName = $scope.resolveName(member);\n toastr.error($translate.instant('fedx.repo.already.added.sparql.endpoint.error', {name: resolvedName}));\n $scope.$modalInstance.close();\n return;\n }\n\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.endpoint !== member.endpoint);\n }\n\n updateMembers(member);\n populateKnownRepos();\n $scope.$modalInstance.close();\n };\n\n $scope.$on('changedLocation', function () {\n $scope.fedxMembers = [];\n getKnownRepos();\n });\n\n getKnownRepos();\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[34,52,111],{38:function(t,e,a){"use strict";a.r(e),a.d(e,"ChartData",(function(){return r}));class r{getChartOptions(t){return{chart:{interpolate:"monotone",type:"lineChart",height:500,margin:{left:80,right:80},x:function(t){return t[0]},y:function(t){return t[1]},clipEdge:!0,noData:t.instant("resource.no_data"),showControls:!1,duration:0,rightAlignYAxis:!1,useInteractiveGuideline:!0,xAxis:{showMaxMin:!1,tickFormat:function(t){return d3.time.format("%X")(new Date(t))}},yAxis:{showMaxMin:!1,tickFormat:function(t){return t}},legend:{maxKeyLength:100},color:d3.scale.category10().range()},title:{enable:!0,text:this.getTitle()},subtitle:{className:"chart-additional-info",enable:!0,text:this.getSubTitle()}}}getTitle(){return"No chart title set"}setTitle(t){this.chartOptions.title.enable=!0,this.chartOptions.title.text=t}getSubTitle(){}setSubTitle(t){this.chartOptions.subtitle.enable=!0,this.chartOptions.subtitle.html=t}static get DEFAULT_MULTIPLIER(){return 1.2}static get MAXIMUM_DIVISIONS(){return 10}constructor(t,e,a,r){this.disableRangeUpdate=a,this.disableOldDataRemoval=r,this.translateService=t,this.range=150,this.chartOptions=this.getChartOptions(t),this.chartSetup(this.chartOptions),this.dataHolder=this.createDataHolder(),this.firstLoad=!0}chartSetup(t){}createDataHolder(){throw new Error("Must implement data holder creation")}addData(t,e){this.disableOldDataRemoval||this.removeOldData(this.dataHolder,this.range),this.addNewData(this.dataHolder,t,e,this.isFirstLoad()),this.disableRangeUpdate||this.updateRange(this.dataHolder),this.firstLoad&&(this.firstLoad=!1)}removeOldData(t,e){t[0].values.length>e&&t.forEach(t=>t.values.shift())}addNewData(t,e,a,r){}updateRange(t,e){const[a]=r.calculateMaxChartValueAndDivisions(t,e);this.chartOptions.chart.yDomain=[0,a]}isFirstLoad(){return this.firstLoad}static getMaxValueFromDataHolder(t){return Math.max(...t.filter(t=>!t.disabled).flatMap(t=>r.getMaxValueForDataSeries(t)))}static getMaxValueForDataSeries(t){return Math.max(...t.values.map(t=>t[1]))}static calculateMaxChartValueAndDivisions(t,e){let a;a=Array.isArray(t)?r.getMaxValueFromDataHolder(t):r.getMaxValueForDataSeries(t);const s=Math.round(a*(e||r.DEFAULT_MULTIPLIER))||1;return[s,Math.ceil(s/r.MAXIMUM_DIVISIONS)]}static getIntegerRangeForValues(t,e){const[a,s]=r.calculateMaxChartValueAndDivisions(t,e);return d3.range(0,a+1,s)}}},40:function(t,e,a){"use strict";a.r(e),a.d(e,"HeapMemoryChart",(function(){return s}));var r=a(38);class s extends r.ChartData{constructor(t,e){super(t,e,!1,!1)}getTitle(){return this.translateService.instant("resource.memory.heap.label")}createDataHolder(){return[{key:this.translateService.instant("resource.memory.committed"),values:[]},{key:this.translateService.instant("resource.memory.used"),area:"true",values:[]}]}addNewData(t,e,a){const[r,s]=t,i=this.parseData(a);r.values.push([e,i.committed]),s.values.push([e,i.used]),this.setMaxHeapSize(i.max,t)}parseData(t){return t.heapMemoryUsage}setMaxHeapSize(t,e){if(t>0){const e=this.formatBytesValue(t);this.setSubTitle(this.translateService.instant("resource.memory.heap.max",{max:e}))}}updateRange(t){this.setScale(t),super.updateRange(t)}setScale(t){this.chartOptions.chart.yAxis.tickFormat=e=>this.formatBytesValue(e,t)}formatBytesValue(t,e){let a=t;e&&(a=Math.max(...e.filter(t=>!t.disabled).flatMap(t=>t.values).flatMap(t=>t[1])));const r=Math.floor(Math.log(a)/Math.log(1024));return`${(parseFloat(t)/Math.pow(1024,r)).toFixed(2)} ${["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][r]}`}}},47:function(t,e,a){"use strict";a.r(e),a.d(e,"NonHeapMemoryChart",(function(){return s}));var r=a(40);class s extends r.HeapMemoryChart{constructor(t,e){super(t,e,!1,!1)}getTitle(){return this.translateService.instant("resource.memory.non_heap.label")}parseData(t){return t.nonHeapMemoryUsage}}}}]);
2
- //# sourceMappingURL=34.01b159cdf635ac9d0dd7.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/resources/chart-models/chart-data.js","webpack:///./src/js/angular/resources/chart-models/resource/heap-memory-chart.js","webpack:///./src/js/angular/resources/chart-models/resource/non-heap-memory-chart.js"],"names":["ChartData","translateService","chart","interpolate","type","height","margin","left","right","x","d","y","clipEdge","noData","instant","showControls","duration","rightAlignYAxis","useInteractiveGuideline","xAxis","showMaxMin","tickFormat","d3","time","format","Date","yAxis","legend","maxKeyLength","color","scale","category10","range","title","enable","text","this","getTitle","subtitle","className","getSubTitle","chartOptions","subTitle","html","disableRangeUpdate","disableOldDataRemoval","getChartOptions","chartSetup","dataHolder","createDataHolder","firstLoad","Error","timestamp","newData","removeOldData","addNewData","isFirstLoad","updateRange","values","length","forEach","data","shift","multiplier","domainUpperBound","calculateMaxChartValueAndDivisions","yDomain","Math","max","filter","disabled","flatMap","getMaxValueForDataSeries","dataSeries","map","maxDataValue","Array","isArray","getMaxValueFromDataHolder","maxChartValue","round","DEFAULT_MULTIPLIER","ceil","MAXIMUM_DIVISIONS","divisions","HeapMemoryChart","super","key","area","committed","used","memoryData","parseData","push","setMaxHeapSize","heapMemoryUsage","maxMemory","formatBytesValue","setSubTitle","setScale","value","i","floor","log","parseFloat","pow","toFixed","NonHeapMemoryChart","nonHeapMemoryUsage"],"mappings":"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","file":"34.01b159cdf635ac9d0dd7.bundle.js","sourcesContent":["export class ChartData {\n getChartOptions(translateService) {\n return {\n chart: {\n interpolate: 'monotone',\n type: 'lineChart',\n height: 500,\n margin: {\n left: 80,\n right: 80\n },\n x: function (d) {\n return d[0];\n },\n y: function (d) {\n return d[1];\n },\n clipEdge: true,\n noData: translateService.instant('resource.no_data'),\n showControls: false,\n duration: 0,\n rightAlignYAxis: false,\n useInteractiveGuideline: true,\n xAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d3.time.format('%X')(new Date(d));\n }\n },\n yAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d;\n }\n },\n legend: {\n maxKeyLength: 100\n },\n color: d3.scale.category10().range()\n },\n title: {\n enable: true,\n text: this.getTitle()\n },\n subtitle: {\n className: 'chart-additional-info',\n enable: true,\n text: this.getSubTitle()\n }\n };\n }\n\n /**\n * Must implement\n * @return {string} the title name\n */\n getTitle() {\n return 'No chart title set';\n }\n\n setTitle(title) {\n this.chartOptions.title.enable = true;\n this.chartOptions.title.text = title;\n }\n\n getSubTitle() {\n }\n\n setSubTitle(subTitle) {\n this.chartOptions.subtitle.enable = true;\n this.chartOptions.subtitle.html = subTitle;\n }\n\n /**\n * Defines the default multiplier for chart overhead. The space above the maximum value.\n */\n static get DEFAULT_MULTIPLIER() {\n return 1.2;\n }\n\n /**\n * Defines the default divisions for chart. Used to calculate chart ticks.\n */\n static get MAXIMUM_DIVISIONS() {\n return 10;\n }\n\n constructor(translateService, chartOptions, disableRangeUpdate, disableOldDataRemoval) {\n this.disableRangeUpdate = disableRangeUpdate;\n this.disableOldDataRemoval = disableOldDataRemoval;\n this.translateService = translateService;\n this.range = 150;\n this.chartOptions = this.getChartOptions(translateService);\n this.chartSetup(this.chartOptions);\n this.dataHolder = this.createDataHolder();\n this.firstLoad = true;\n }\n\n /**\n * Provides chart options if custom setup needs to be done\n * @param chartOptions\n */\n chartSetup(chartOptions) {\n }\n\n /**\n * Returns the data holder array for the chart data.\n * Must be implemented.\n */\n createDataHolder() {\n throw new Error('Must implement data holder creation');\n }\n\n /**\n * Adds data to the data holder\n * @param timestamp time of the data\n * @param newData the new data\n */\n addData(timestamp, newData) {\n if (!this.disableOldDataRemoval) {\n this.removeOldData(this.dataHolder, this.range);\n }\n this.addNewData(this.dataHolder, timestamp, newData, this.isFirstLoad());\n if (!this.disableRangeUpdate) {\n this.updateRange(this.dataHolder);\n }\n if (this.firstLoad) {\n this.firstLoad = false;\n }\n }\n\n /**\n * Removes data from the data holder that is obsolete based on range property\n * @param dataHolder data holder\n * @param range the number of entries to keep\n */\n removeOldData(dataHolder, range) {\n if (dataHolder[0].values.length > range) {\n dataHolder.forEach((data) => data.values.shift());\n }\n }\n\n /**\n * Adds data to data holder\n * Must be implemented.\n * @param dataHolder\n * @param timestamp\n * @param data\n * @param isFirstLoad\n */\n addNewData(dataHolder, timestamp, data, isFirstLoad) {\n }\n\n /**\n * Updates the chart axis range, based on maximum value in data holder\n * @param dataHolder\n * @param multiplier\n */\n updateRange(dataHolder, multiplier) {\n const [domainUpperBound] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n this.chartOptions.chart.yDomain = [0, domainUpperBound];\n }\n\n isFirstLoad() {\n return this.firstLoad;\n }\n\n /**\n * Returns the maximum value in data holder\n * @param dataHolder\n * @return {number}\n */\n static getMaxValueFromDataHolder(dataHolder) {\n return Math.max(...dataHolder.filter((data) => !data.disabled).flatMap((data) => ChartData.getMaxValueForDataSeries(data)));\n }\n\n /**\n * Returns the maximum value in specific data series\n * @param dataSeries\n * @return {number}\n */\n static getMaxValueForDataSeries(dataSeries) {\n return Math.max(...dataSeries.values.map((data) => data[1]));\n }\n\n /**\n * Calculated maximum value for chart axis and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {(number|number)[]}\n */\n static calculateMaxChartValueAndDivisions(dataHolder, multiplier) {\n let maxDataValue;\n\n if (Array.isArray(dataHolder)) {\n maxDataValue = ChartData.getMaxValueFromDataHolder(dataHolder);\n } else {\n maxDataValue = ChartData.getMaxValueForDataSeries(dataHolder);\n }\n\n const maxChartValue = Math.round(maxDataValue * (multiplier || ChartData.DEFAULT_MULTIPLIER)) || 1;\n const div = Math.ceil(maxChartValue / ChartData.MAXIMUM_DIVISIONS);\n return [maxChartValue, div];\n }\n\n /**\n * Returnes a D3 range for chart axis based on maximum value and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {*}\n */\n static getIntegerRangeForValues(dataHolder, multiplier) {\n const [maxChartValue, divisions] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n return d3.range(0, maxChartValue + 1, divisions);\n }\n}\n","import {ChartData} from \"../chart-data\";\n\nexport class HeapMemoryChart extends ChartData {\n constructor(translateService, chartOptions) {\n super(translateService, chartOptions, false, false);\n }\n\n getTitle() {\n return this.translateService.instant('resource.memory.heap.label');\n }\n\n createDataHolder() {\n return [{\n key: this.translateService.instant('resource.memory.committed'),\n values: []\n }, {\n key: this.translateService.instant('resource.memory.used'),\n area: 'true',\n values: []\n }];\n }\n addNewData(dataHolder, timestamp, data) {\n const [committed, used] = dataHolder;\n const memoryData = this.parseData(data);\n committed.values.push([timestamp, memoryData.committed]);\n used.values.push([timestamp, memoryData.used]);\n this.setMaxHeapSize(memoryData.max, dataHolder);\n }\n\n parseData(data) {\n return data.heapMemoryUsage;\n }\n\n setMaxHeapSize(max, dataHolder) {\n if (max > 0) {\n const maxMemory = this.formatBytesValue(max);\n this.setSubTitle(this.translateService.instant('resource.memory.heap.max', {max: maxMemory}));\n }\n }\n\n updateRange(dataHolder) {\n this.setScale(dataHolder);\n super.updateRange(dataHolder);\n }\n setScale(dataHolder) {\n this.chartOptions.chart.yAxis.tickFormat = (d) => {\n return this.formatBytesValue(d, dataHolder);\n };\n }\n formatBytesValue(value, dataHolder) {\n let maxChartValue = value;\n if (dataHolder) {\n maxChartValue = Math.max(...dataHolder.filter((data)=> !data.disabled).flatMap((data) => data.values).flatMap((data) => data[1]));\n }\n\n const k = 1024;\n const i = Math.floor(Math.log(maxChartValue) / Math.log(k));\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const relativeValue = parseFloat(value) / Math.pow(k, i);\n return `${relativeValue.toFixed(2)} ${sizes[i]}`;\n }\n}\n","import {HeapMemoryChart} from \"./heap-memory-chart\";\n\nexport class NonHeapMemoryChart extends HeapMemoryChart {\n constructor(translateService, chartOptions) {\n super(translateService, chartOptions, false, false);\n }\n\n getTitle() {\n return this.translateService.instant('resource.memory.non_heap.label');\n }\n\n parseData(data) {\n return data.nonHeapMemoryUsage;\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[44,111],{38:function(t,e,a){"use strict";a.r(e),a.d(e,"ChartData",(function(){return s}));class s{getChartOptions(t){return{chart:{interpolate:"monotone",type:"lineChart",height:500,margin:{left:80,right:80},x:function(t){return t[0]},y:function(t){return t[1]},clipEdge:!0,noData:t.instant("resource.no_data"),showControls:!1,duration:0,rightAlignYAxis:!1,useInteractiveGuideline:!0,xAxis:{showMaxMin:!1,tickFormat:function(t){return d3.time.format("%X")(new Date(t))}},yAxis:{showMaxMin:!1,tickFormat:function(t){return t}},legend:{maxKeyLength:100},color:d3.scale.category10().range()},title:{enable:!0,text:this.getTitle()},subtitle:{className:"chart-additional-info",enable:!0,text:this.getSubTitle()}}}getTitle(){return"No chart title set"}setTitle(t){this.chartOptions.title.enable=!0,this.chartOptions.title.text=t}getSubTitle(){}setSubTitle(t){this.chartOptions.subtitle.enable=!0,this.chartOptions.subtitle.html=t}static get DEFAULT_MULTIPLIER(){return 1.2}static get MAXIMUM_DIVISIONS(){return 10}constructor(t,e,a,s){this.disableRangeUpdate=a,this.disableOldDataRemoval=s,this.translateService=t,this.range=150,this.chartOptions=this.getChartOptions(t),this.chartSetup(this.chartOptions),this.dataHolder=this.createDataHolder(),this.firstLoad=!0}chartSetup(t){}createDataHolder(){throw new Error("Must implement data holder creation")}addData(t,e){this.disableOldDataRemoval||this.removeOldData(this.dataHolder,this.range),this.addNewData(this.dataHolder,t,e,this.isFirstLoad()),this.disableRangeUpdate||this.updateRange(this.dataHolder),this.firstLoad&&(this.firstLoad=!1)}removeOldData(t,e){t[0].values.length>e&&t.forEach(t=>t.values.shift())}addNewData(t,e,a,s){}updateRange(t,e){const[a]=s.calculateMaxChartValueAndDivisions(t,e);this.chartOptions.chart.yDomain=[0,a]}isFirstLoad(){return this.firstLoad}static getMaxValueFromDataHolder(t){return Math.max(...t.filter(t=>!t.disabled).flatMap(t=>s.getMaxValueForDataSeries(t)))}static getMaxValueForDataSeries(t){return Math.max(...t.values.map(t=>t[1]))}static calculateMaxChartValueAndDivisions(t,e){let a;a=Array.isArray(t)?s.getMaxValueFromDataHolder(t):s.getMaxValueForDataSeries(t);const r=Math.round(a*(e||s.DEFAULT_MULTIPLIER))||1;return[r,Math.ceil(r/s.MAXIMUM_DIVISIONS)]}static getIntegerRangeForValues(t,e){const[a,r]=s.calculateMaxChartValueAndDivisions(t,e);return d3.range(0,a+1,r)}}},53:function(t,e,a){"use strict";a.r(e),a.d(e,"ClusterHealthChart",(function(){return r}));var s=a(38);class r extends s.ChartData{constructor(t,e){super(t,e,!0,!1),this.nodesCount=0}chartSetup(t){const e={type:"stackedAreaChart",interpolate:"step-after",stacked:!0,yAxis:{showMaxMin:!1,tickFormat:function(t){return t},tickValues:()=>d3.range(0,this.nodesCount+1,1)}};Object.assign(t.chart,e)}getTitle(){return this.translateService.instant("resources.cluster_health.label")}createDataHolder(){return[{key:this.translateService.instant("resources.cluster_health.in_sync"),values:[]},{key:this.translateService.instant("resources.cluster_health.syncing"),color:"#ff5508",values:[]},{key:this.translateService.instant("resources.cluster_health.out_sync"),color:"#f52121",values:[]},{key:this.translateService.instant("resources.cluster_health.disconnected"),color:"#999999",values:[]}]}addNewData(t,e,a){const s=a.nodesStats;this.nodesCount=s.nodesInCluster;const[r,i,n,o]=t;r.values.push([e,s.nodesInSync]),n.values.push([e,s.nodesOutOfSync]),o.values.push([e,s.nodesDisconnected]),i.values.push([e,s.nodesSyncing]);const l={leaderElections:a.term,failedRecoveries:a.failureRecoveriesCount,failedTransactions:a.failedTransactionsCount};this.setSubTitle(this.translateService.instant("resource.cluster_health.additional_data",l))}}}}]);
2
- //# sourceMappingURL=44.4d7cb09cdd1413d5f879.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/resources/chart-models/chart-data.js","webpack:///./src/js/angular/resources/chart-models/cluster-health/cluster-health-chart.js"],"names":["ChartData","translateService","chart","interpolate","type","height","margin","left","right","x","d","y","clipEdge","noData","instant","showControls","duration","rightAlignYAxis","useInteractiveGuideline","xAxis","showMaxMin","tickFormat","d3","time","format","Date","yAxis","legend","maxKeyLength","color","scale","category10","range","title","enable","text","this","getTitle","subtitle","className","getSubTitle","chartOptions","subTitle","html","disableRangeUpdate","disableOldDataRemoval","getChartOptions","chartSetup","dataHolder","createDataHolder","firstLoad","Error","timestamp","newData","removeOldData","addNewData","isFirstLoad","updateRange","values","length","forEach","data","shift","multiplier","domainUpperBound","calculateMaxChartValueAndDivisions","yDomain","Math","max","filter","disabled","flatMap","getMaxValueForDataSeries","dataSeries","map","maxDataValue","Array","isArray","getMaxValueFromDataHolder","maxChartValue","round","DEFAULT_MULTIPLIER","ceil","MAXIMUM_DIVISIONS","divisions","ClusterHealthChart","super","nodesCount","clusterHealthChartOptions","stacked","tickValues","Object","assign","key","nodesStatus","nodesStats","nodesInCluster","nodesInSync","nodesSyncing","nodesOutOfSync","nodesDisconnected","push","subTitleValues","leaderElections","term","failedRecoveries","failureRecoveriesCount","failedTransactions","failedTransactionsCount","setSubTitle"],"mappings":"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","file":"44.4d7cb09cdd1413d5f879.bundle.js","sourcesContent":["export class ChartData {\n getChartOptions(translateService) {\n return {\n chart: {\n interpolate: 'monotone',\n type: 'lineChart',\n height: 500,\n margin: {\n left: 80,\n right: 80\n },\n x: function (d) {\n return d[0];\n },\n y: function (d) {\n return d[1];\n },\n clipEdge: true,\n noData: translateService.instant('resource.no_data'),\n showControls: false,\n duration: 0,\n rightAlignYAxis: false,\n useInteractiveGuideline: true,\n xAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d3.time.format('%X')(new Date(d));\n }\n },\n yAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d;\n }\n },\n legend: {\n maxKeyLength: 100\n },\n color: d3.scale.category10().range()\n },\n title: {\n enable: true,\n text: this.getTitle()\n },\n subtitle: {\n className: 'chart-additional-info',\n enable: true,\n text: this.getSubTitle()\n }\n };\n }\n\n /**\n * Must implement\n * @return {string} the title name\n */\n getTitle() {\n return 'No chart title set';\n }\n\n setTitle(title) {\n this.chartOptions.title.enable = true;\n this.chartOptions.title.text = title;\n }\n\n getSubTitle() {\n }\n\n setSubTitle(subTitle) {\n this.chartOptions.subtitle.enable = true;\n this.chartOptions.subtitle.html = subTitle;\n }\n\n /**\n * Defines the default multiplier for chart overhead. The space above the maximum value.\n */\n static get DEFAULT_MULTIPLIER() {\n return 1.2;\n }\n\n /**\n * Defines the default divisions for chart. Used to calculate chart ticks.\n */\n static get MAXIMUM_DIVISIONS() {\n return 10;\n }\n\n constructor(translateService, chartOptions, disableRangeUpdate, disableOldDataRemoval) {\n this.disableRangeUpdate = disableRangeUpdate;\n this.disableOldDataRemoval = disableOldDataRemoval;\n this.translateService = translateService;\n this.range = 150;\n this.chartOptions = this.getChartOptions(translateService);\n this.chartSetup(this.chartOptions);\n this.dataHolder = this.createDataHolder();\n this.firstLoad = true;\n }\n\n /**\n * Provides chart options if custom setup needs to be done\n * @param chartOptions\n */\n chartSetup(chartOptions) {\n }\n\n /**\n * Returns the data holder array for the chart data.\n * Must be implemented.\n */\n createDataHolder() {\n throw new Error('Must implement data holder creation');\n }\n\n /**\n * Adds data to the data holder\n * @param timestamp time of the data\n * @param newData the new data\n */\n addData(timestamp, newData) {\n if (!this.disableOldDataRemoval) {\n this.removeOldData(this.dataHolder, this.range);\n }\n this.addNewData(this.dataHolder, timestamp, newData, this.isFirstLoad());\n if (!this.disableRangeUpdate) {\n this.updateRange(this.dataHolder);\n }\n if (this.firstLoad) {\n this.firstLoad = false;\n }\n }\n\n /**\n * Removes data from the data holder that is obsolete based on range property\n * @param dataHolder data holder\n * @param range the number of entries to keep\n */\n removeOldData(dataHolder, range) {\n if (dataHolder[0].values.length > range) {\n dataHolder.forEach((data) => data.values.shift());\n }\n }\n\n /**\n * Adds data to data holder\n * Must be implemented.\n * @param dataHolder\n * @param timestamp\n * @param data\n * @param isFirstLoad\n */\n addNewData(dataHolder, timestamp, data, isFirstLoad) {\n }\n\n /**\n * Updates the chart axis range, based on maximum value in data holder\n * @param dataHolder\n * @param multiplier\n */\n updateRange(dataHolder, multiplier) {\n const [domainUpperBound] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n this.chartOptions.chart.yDomain = [0, domainUpperBound];\n }\n\n isFirstLoad() {\n return this.firstLoad;\n }\n\n /**\n * Returns the maximum value in data holder\n * @param dataHolder\n * @return {number}\n */\n static getMaxValueFromDataHolder(dataHolder) {\n return Math.max(...dataHolder.filter((data) => !data.disabled).flatMap((data) => ChartData.getMaxValueForDataSeries(data)));\n }\n\n /**\n * Returns the maximum value in specific data series\n * @param dataSeries\n * @return {number}\n */\n static getMaxValueForDataSeries(dataSeries) {\n return Math.max(...dataSeries.values.map((data) => data[1]));\n }\n\n /**\n * Calculated maximum value for chart axis and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {(number|number)[]}\n */\n static calculateMaxChartValueAndDivisions(dataHolder, multiplier) {\n let maxDataValue;\n\n if (Array.isArray(dataHolder)) {\n maxDataValue = ChartData.getMaxValueFromDataHolder(dataHolder);\n } else {\n maxDataValue = ChartData.getMaxValueForDataSeries(dataHolder);\n }\n\n const maxChartValue = Math.round(maxDataValue * (multiplier || ChartData.DEFAULT_MULTIPLIER)) || 1;\n const div = Math.ceil(maxChartValue / ChartData.MAXIMUM_DIVISIONS);\n return [maxChartValue, div];\n }\n\n /**\n * Returnes a D3 range for chart axis based on maximum value and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {*}\n */\n static getIntegerRangeForValues(dataHolder, multiplier) {\n const [maxChartValue, divisions] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n return d3.range(0, maxChartValue + 1, divisions);\n }\n}\n","import {ChartData} from '../chart-data';\n\nexport class ClusterHealthChart extends ChartData {\n constructor(translateService, chartOptions) {\n super(translateService, chartOptions, true, false);\n this.nodesCount = 0;\n }\n chartSetup(chartOptions) {\n const clusterHealthChartOptions = {\n type: 'stackedAreaChart',\n interpolate: 'step-after',\n stacked: true,\n yAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d;\n },\n tickValues: () => {\n return d3.range(0, this.nodesCount + 1, 1);\n }\n }\n };\n Object.assign(chartOptions.chart, clusterHealthChartOptions);\n }\n\n getTitle() {\n return this.translateService.instant('resources.cluster_health.label');\n }\n\n createDataHolder() {\n return [{\n key: this.translateService.instant('resources.cluster_health.in_sync'),\n values: []\n }, {\n key: this.translateService.instant('resources.cluster_health.syncing'),\n color: '#ff5508',\n values: []\n }, {\n key: this.translateService.instant('resources.cluster_health.out_sync'),\n color: '#f52121',\n values: []\n }, {\n key: this.translateService.instant('resources.cluster_health.disconnected'),\n color: '#999999',\n values: []\n }];\n }\n addNewData(dataHolder, timestamp, data) {\n const nodesStatus = data.nodesStats;\n this.nodesCount = nodesStatus.nodesInCluster;\n const [nodesInSync, nodesSyncing, nodesOutOfSync, nodesDisconnected] = dataHolder;\n\n nodesInSync.values.push([timestamp, nodesStatus.nodesInSync]);\n nodesOutOfSync.values.push([timestamp, nodesStatus.nodesOutOfSync]);\n nodesDisconnected.values.push([timestamp, nodesStatus.nodesDisconnected]);\n nodesSyncing.values.push([timestamp, nodesStatus.nodesSyncing]);\n\n const subTitleValues = {\n leaderElections: data.term,\n failedRecoveries: data.failureRecoveriesCount,\n failedTransactions: data.failedTransactionsCount\n };\n this.setSubTitle(this.translateService.instant('resource.cluster_health.additional_data', subTitleValues));\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[45,111],{38:function(t,e,a){"use strict";a.r(e),a.d(e,"ChartData",(function(){return i}));class i{getChartOptions(t){return{chart:{interpolate:"monotone",type:"lineChart",height:500,margin:{left:80,right:80},x:function(t){return t[0]},y:function(t){return t[1]},clipEdge:!0,noData:t.instant("resource.no_data"),showControls:!1,duration:0,rightAlignYAxis:!1,useInteractiveGuideline:!0,xAxis:{showMaxMin:!1,tickFormat:function(t){return d3.time.format("%X")(new Date(t))}},yAxis:{showMaxMin:!1,tickFormat:function(t){return t}},legend:{maxKeyLength:100},color:d3.scale.category10().range()},title:{enable:!0,text:this.getTitle()},subtitle:{className:"chart-additional-info",enable:!0,text:this.getSubTitle()}}}getTitle(){return"No chart title set"}setTitle(t){this.chartOptions.title.enable=!0,this.chartOptions.title.text=t}getSubTitle(){}setSubTitle(t){this.chartOptions.subtitle.enable=!0,this.chartOptions.subtitle.html=t}static get DEFAULT_MULTIPLIER(){return 1.2}static get MAXIMUM_DIVISIONS(){return 10}constructor(t,e,a,i){this.disableRangeUpdate=a,this.disableOldDataRemoval=i,this.translateService=t,this.range=150,this.chartOptions=this.getChartOptions(t),this.chartSetup(this.chartOptions),this.dataHolder=this.createDataHolder(),this.firstLoad=!0}chartSetup(t){}createDataHolder(){throw new Error("Must implement data holder creation")}addData(t,e){this.disableOldDataRemoval||this.removeOldData(this.dataHolder,this.range),this.addNewData(this.dataHolder,t,e,this.isFirstLoad()),this.disableRangeUpdate||this.updateRange(this.dataHolder),this.firstLoad&&(this.firstLoad=!1)}removeOldData(t,e){t[0].values.length>e&&t.forEach(t=>t.values.shift())}addNewData(t,e,a,i){}updateRange(t,e){const[a]=i.calculateMaxChartValueAndDivisions(t,e);this.chartOptions.chart.yDomain=[0,a]}isFirstLoad(){return this.firstLoad}static getMaxValueFromDataHolder(t){return Math.max(...t.filter(t=>!t.disabled).flatMap(t=>i.getMaxValueForDataSeries(t)))}static getMaxValueForDataSeries(t){return Math.max(...t.values.map(t=>t[1]))}static calculateMaxChartValueAndDivisions(t,e){let a;a=Array.isArray(t)?i.getMaxValueFromDataHolder(t):i.getMaxValueForDataSeries(t);const r=Math.round(a*(e||i.DEFAULT_MULTIPLIER))||1;return[r,Math.ceil(r/i.MAXIMUM_DIVISIONS)]}static getIntegerRangeForValues(t,e){const[a,r]=i.calculateMaxChartValueAndDivisions(t,e);return d3.range(0,a+1,r)}}},52:function(t,e,a){"use strict";a.r(e),a.d(e,"ConnectionsChart",(function(){return r}));var i=a(38);class r extends i.ChartData{constructor(t,e){super(t,e,!1,!1)}chartSetup(t){t.chart.yAxis.tickValues=()=>r.getIntegerRangeForValues(this.dataHolder)}getTitle(){return this.translateService.instant("resource.connections.label")}createDataHolder(){return[{key:this.translateService.instant("resource.connections.active"),values:[]},{key:this.translateService.instant("resource.connections.open"),values:[]}]}addNewData(t,e,a){const i=a.performanceData;t[0].values.push([e,i.activeTransactions]),t[1].values.push([e,i.openConnections])}}}}]);
2
- //# sourceMappingURL=45.8c6f6eba4736e953c2bc.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/resources/chart-models/chart-data.js","webpack:///./src/js/angular/resources/chart-models/performance/connections-chart.js"],"names":["ChartData","translateService","chart","interpolate","type","height","margin","left","right","x","d","y","clipEdge","noData","instant","showControls","duration","rightAlignYAxis","useInteractiveGuideline","xAxis","showMaxMin","tickFormat","d3","time","format","Date","yAxis","legend","maxKeyLength","color","scale","category10","range","title","enable","text","this","getTitle","subtitle","className","getSubTitle","chartOptions","subTitle","html","disableRangeUpdate","disableOldDataRemoval","getChartOptions","chartSetup","dataHolder","createDataHolder","firstLoad","Error","timestamp","newData","removeOldData","addNewData","isFirstLoad","updateRange","values","length","forEach","data","shift","multiplier","domainUpperBound","calculateMaxChartValueAndDivisions","yDomain","Math","max","filter","disabled","flatMap","getMaxValueForDataSeries","dataSeries","map","maxDataValue","Array","isArray","getMaxValueFromDataHolder","maxChartValue","round","DEFAULT_MULTIPLIER","ceil","MAXIMUM_DIVISIONS","divisions","ConnectionsChart","super","tickValues","getIntegerRangeForValues","key","performanceData","push","activeTransactions","openConnections"],"mappings":"8FAAA,iDAAO,MAAMA,EACT,gBAAgBC,GACZ,MAAO,CACHC,MAAO,CACHC,YAAa,WACbC,KAAM,YACNC,OAAQ,IACRC,OAAQ,CACJC,KAAM,GACNC,MAAO,IAEXC,EAAG,SAAUC,GACT,OAAOA,EAAE,IAEbC,EAAG,SAAUD,GACT,OAAOA,EAAE,IAEbE,UAAU,EACVC,OAAQZ,EAAiBa,QAAQ,oBACjCC,cAAc,EACdC,SAAU,EACVC,iBAAiB,EACjBC,yBAAyB,EACzBC,MAAO,CACHC,YAAY,EACZC,WAAY,SAAUX,GAClB,OAAOY,GAAGC,KAAKC,OAAO,KAAfF,CAAqB,IAAIG,KAAKf,MAG7CgB,MAAO,CACHN,YAAY,EACZC,WAAY,SAAUX,GAClB,OAAOA,IAGfiB,OAAQ,CACJC,aAAc,KAElBC,MAAOP,GAAGQ,MAAMC,aAAaC,SAEjCC,MAAO,CACHC,QAAQ,EACRC,KAAMC,KAAKC,YAEfC,SAAU,CACNC,UAAW,wBACXL,QAAQ,EACRC,KAAMC,KAAKI,gBASvB,WACI,MAAO,qBAGX,SAASP,GACLG,KAAKK,aAAaR,MAAMC,QAAS,EACjCE,KAAKK,aAAaR,MAAME,KAAOF,EAGnC,eAGA,YAAYS,GACRN,KAAKK,aAAaH,SAASJ,QAAS,EACpCE,KAAKK,aAAaH,SAASK,KAAOD,EAMtC,gCACI,OAAO,IAMX,+BACI,OAAO,GAGX,YAAYzC,EAAkBwC,EAAcG,EAAoBC,GAC5DT,KAAKQ,mBAAqBA,EAC1BR,KAAKS,sBAAwBA,EAC7BT,KAAKnC,iBAAmBA,EACxBmC,KAAKJ,MAAQ,IACbI,KAAKK,aAAeL,KAAKU,gBAAgB7C,GACzCmC,KAAKW,WAAWX,KAAKK,cACrBL,KAAKY,WAAaZ,KAAKa,mBACvBb,KAAKc,WAAY,EAOrB,WAAWT,IAOX,mBACI,MAAM,IAAIU,MAAM,uCAQpB,QAAQC,EAAWC,GACVjB,KAAKS,uBACNT,KAAKkB,cAAclB,KAAKY,WAAYZ,KAAKJ,OAE7CI,KAAKmB,WAAWnB,KAAKY,WAAYI,EAAWC,EAASjB,KAAKoB,eACrDpB,KAAKQ,oBACNR,KAAKqB,YAAYrB,KAAKY,YAEtBZ,KAAKc,YACLd,KAAKc,WAAY,GASzB,cAAcF,EAAYhB,GAClBgB,EAAW,GAAGU,OAAOC,OAAS3B,GAC9BgB,EAAWY,QAASC,GAASA,EAAKH,OAAOI,SAYjD,WAAWd,EAAYI,EAAWS,EAAML,IAQxC,YAAYR,EAAYe,GACpB,MAAOC,GAAoBhE,EAAUiE,mCAAmCjB,EAAYe,GACpF3B,KAAKK,aAAavC,MAAMgE,QAAU,CAAC,EAAGF,GAG1C,cACI,OAAO5B,KAAKc,UAQhB,iCAAiCF,GAC7B,OAAOmB,KAAKC,OAAOpB,EAAWqB,OAAQR,IAAUA,EAAKS,UAAUC,QAASV,GAAS7D,EAAUwE,yBAAyBX,KAQxH,gCAAgCY,GAC5B,OAAON,KAAKC,OAAOK,EAAWf,OAAOgB,IAAKb,GAASA,EAAK,KAS5D,0CAA0Cb,EAAYe,GAClD,IAAIY,EAGAA,EADAC,MAAMC,QAAQ7B,GACChD,EAAU8E,0BAA0B9B,GAEpChD,EAAUwE,yBAAyBxB,GAGtD,MAAM+B,EAAgBZ,KAAKa,MAAML,GAAgBZ,GAAc/D,EAAUiF,sBAAwB,EAEjG,MAAO,CAACF,EADIZ,KAAKe,KAAKH,EAAgB/E,EAAUmF,oBAUpD,gCAAgCnC,EAAYe,GACxC,MAAOgB,EAAeK,GAAapF,EAAUiE,mCAAmCjB,EAAYe,GAC5F,OAAOzC,GAAGU,MAAM,EAAG+C,EAAgB,EAAGK,M,gCCrN9C,oEAEO,MAAMC,UAAyB,YAClC,YAAYpF,EAAkBwC,GAC1B6C,MAAMrF,EAAkBwC,GAAc,GAAO,GAEjD,WAAWA,GACPA,EAAavC,MAAMwB,MAAM6D,WAAa,IAC3BF,EAAiBG,yBAAyBpD,KAAKY,YAI9D,WACI,OAAOZ,KAAKnC,iBAAiBa,QAAQ,8BAGzC,mBACI,MAAO,CAAC,CACJ2E,IAAKrD,KAAKnC,iBAAiBa,QAAQ,+BACnC4C,OAAQ,IACT,CACC+B,IAAKrD,KAAKnC,iBAAiBa,QAAQ,6BACnC4C,OAAQ,KAGhB,WAAWV,EAAYI,EAAWS,GAC9B,MAAM6B,EAAkB7B,EAAK6B,gBAC7B1C,EAAW,GAAGU,OAAOiC,KAAK,CAACvC,EAAWsC,EAAgBE,qBACtD5C,EAAW,GAAGU,OAAOiC,KAAK,CAACvC,EAAWsC,EAAgBG","file":"45.8c6f6eba4736e953c2bc.bundle.js","sourcesContent":["export class ChartData {\n getChartOptions(translateService) {\n return {\n chart: {\n interpolate: 'monotone',\n type: 'lineChart',\n height: 500,\n margin: {\n left: 80,\n right: 80\n },\n x: function (d) {\n return d[0];\n },\n y: function (d) {\n return d[1];\n },\n clipEdge: true,\n noData: translateService.instant('resource.no_data'),\n showControls: false,\n duration: 0,\n rightAlignYAxis: false,\n useInteractiveGuideline: true,\n xAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d3.time.format('%X')(new Date(d));\n }\n },\n yAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d;\n }\n },\n legend: {\n maxKeyLength: 100\n },\n color: d3.scale.category10().range()\n },\n title: {\n enable: true,\n text: this.getTitle()\n },\n subtitle: {\n className: 'chart-additional-info',\n enable: true,\n text: this.getSubTitle()\n }\n };\n }\n\n /**\n * Must implement\n * @return {string} the title name\n */\n getTitle() {\n return 'No chart title set';\n }\n\n setTitle(title) {\n this.chartOptions.title.enable = true;\n this.chartOptions.title.text = title;\n }\n\n getSubTitle() {\n }\n\n setSubTitle(subTitle) {\n this.chartOptions.subtitle.enable = true;\n this.chartOptions.subtitle.html = subTitle;\n }\n\n /**\n * Defines the default multiplier for chart overhead. The space above the maximum value.\n */\n static get DEFAULT_MULTIPLIER() {\n return 1.2;\n }\n\n /**\n * Defines the default divisions for chart. Used to calculate chart ticks.\n */\n static get MAXIMUM_DIVISIONS() {\n return 10;\n }\n\n constructor(translateService, chartOptions, disableRangeUpdate, disableOldDataRemoval) {\n this.disableRangeUpdate = disableRangeUpdate;\n this.disableOldDataRemoval = disableOldDataRemoval;\n this.translateService = translateService;\n this.range = 150;\n this.chartOptions = this.getChartOptions(translateService);\n this.chartSetup(this.chartOptions);\n this.dataHolder = this.createDataHolder();\n this.firstLoad = true;\n }\n\n /**\n * Provides chart options if custom setup needs to be done\n * @param chartOptions\n */\n chartSetup(chartOptions) {\n }\n\n /**\n * Returns the data holder array for the chart data.\n * Must be implemented.\n */\n createDataHolder() {\n throw new Error('Must implement data holder creation');\n }\n\n /**\n * Adds data to the data holder\n * @param timestamp time of the data\n * @param newData the new data\n */\n addData(timestamp, newData) {\n if (!this.disableOldDataRemoval) {\n this.removeOldData(this.dataHolder, this.range);\n }\n this.addNewData(this.dataHolder, timestamp, newData, this.isFirstLoad());\n if (!this.disableRangeUpdate) {\n this.updateRange(this.dataHolder);\n }\n if (this.firstLoad) {\n this.firstLoad = false;\n }\n }\n\n /**\n * Removes data from the data holder that is obsolete based on range property\n * @param dataHolder data holder\n * @param range the number of entries to keep\n */\n removeOldData(dataHolder, range) {\n if (dataHolder[0].values.length > range) {\n dataHolder.forEach((data) => data.values.shift());\n }\n }\n\n /**\n * Adds data to data holder\n * Must be implemented.\n * @param dataHolder\n * @param timestamp\n * @param data\n * @param isFirstLoad\n */\n addNewData(dataHolder, timestamp, data, isFirstLoad) {\n }\n\n /**\n * Updates the chart axis range, based on maximum value in data holder\n * @param dataHolder\n * @param multiplier\n */\n updateRange(dataHolder, multiplier) {\n const [domainUpperBound] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n this.chartOptions.chart.yDomain = [0, domainUpperBound];\n }\n\n isFirstLoad() {\n return this.firstLoad;\n }\n\n /**\n * Returns the maximum value in data holder\n * @param dataHolder\n * @return {number}\n */\n static getMaxValueFromDataHolder(dataHolder) {\n return Math.max(...dataHolder.filter((data) => !data.disabled).flatMap((data) => ChartData.getMaxValueForDataSeries(data)));\n }\n\n /**\n * Returns the maximum value in specific data series\n * @param dataSeries\n * @return {number}\n */\n static getMaxValueForDataSeries(dataSeries) {\n return Math.max(...dataSeries.values.map((data) => data[1]));\n }\n\n /**\n * Calculated maximum value for chart axis and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {(number|number)[]}\n */\n static calculateMaxChartValueAndDivisions(dataHolder, multiplier) {\n let maxDataValue;\n\n if (Array.isArray(dataHolder)) {\n maxDataValue = ChartData.getMaxValueFromDataHolder(dataHolder);\n } else {\n maxDataValue = ChartData.getMaxValueForDataSeries(dataHolder);\n }\n\n const maxChartValue = Math.round(maxDataValue * (multiplier || ChartData.DEFAULT_MULTIPLIER)) || 1;\n const div = Math.ceil(maxChartValue / ChartData.MAXIMUM_DIVISIONS);\n return [maxChartValue, div];\n }\n\n /**\n * Returnes a D3 range for chart axis based on maximum value and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {*}\n */\n static getIntegerRangeForValues(dataHolder, multiplier) {\n const [maxChartValue, divisions] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n return d3.range(0, maxChartValue + 1, divisions);\n }\n}\n","import {ChartData} from \"../chart-data\";\n\nexport class ConnectionsChart extends ChartData {\n constructor(translateService, chartOptions) {\n super(translateService, chartOptions, false, false);\n }\n chartSetup(chartOptions) {\n chartOptions.chart.yAxis.tickValues = () => {\n return ConnectionsChart.getIntegerRangeForValues(this.dataHolder);\n };\n }\n\n getTitle() {\n return this.translateService.instant('resource.connections.label');\n }\n\n createDataHolder() {\n return [{\n key: this.translateService.instant('resource.connections.active'),\n values: []\n }, {\n key: this.translateService.instant('resource.connections.open'),\n values: []\n }];\n }\n addNewData(dataHolder, timestamp, data) {\n const performanceData = data.performanceData;\n dataHolder[0].values.push([timestamp, performanceData.activeTransactions]);\n dataHolder[1].values.push([timestamp, performanceData.openConnections]);\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[46,111],{38:function(t,e,a){"use strict";a.r(e),a.d(e,"ChartData",(function(){return i}));class i{getChartOptions(t){return{chart:{interpolate:"monotone",type:"lineChart",height:500,margin:{left:80,right:80},x:function(t){return t[0]},y:function(t){return t[1]},clipEdge:!0,noData:t.instant("resource.no_data"),showControls:!1,duration:0,rightAlignYAxis:!1,useInteractiveGuideline:!0,xAxis:{showMaxMin:!1,tickFormat:function(t){return d3.time.format("%X")(new Date(t))}},yAxis:{showMaxMin:!1,tickFormat:function(t){return t}},legend:{maxKeyLength:100},color:d3.scale.category10().range()},title:{enable:!0,text:this.getTitle()},subtitle:{className:"chart-additional-info",enable:!0,text:this.getSubTitle()}}}getTitle(){return"No chart title set"}setTitle(t){this.chartOptions.title.enable=!0,this.chartOptions.title.text=t}getSubTitle(){}setSubTitle(t){this.chartOptions.subtitle.enable=!0,this.chartOptions.subtitle.html=t}static get DEFAULT_MULTIPLIER(){return 1.2}static get MAXIMUM_DIVISIONS(){return 10}constructor(t,e,a,i){this.disableRangeUpdate=a,this.disableOldDataRemoval=i,this.translateService=t,this.range=150,this.chartOptions=this.getChartOptions(t),this.chartSetup(this.chartOptions),this.dataHolder=this.createDataHolder(),this.firstLoad=!0}chartSetup(t){}createDataHolder(){throw new Error("Must implement data holder creation")}addData(t,e){this.disableOldDataRemoval||this.removeOldData(this.dataHolder,this.range),this.addNewData(this.dataHolder,t,e,this.isFirstLoad()),this.disableRangeUpdate||this.updateRange(this.dataHolder),this.firstLoad&&(this.firstLoad=!1)}removeOldData(t,e){t[0].values.length>e&&t.forEach(t=>t.values.shift())}addNewData(t,e,a,i){}updateRange(t,e){const[a]=i.calculateMaxChartValueAndDivisions(t,e);this.chartOptions.chart.yDomain=[0,a]}isFirstLoad(){return this.firstLoad}static getMaxValueFromDataHolder(t){return Math.max(...t.filter(t=>!t.disabled).flatMap(t=>i.getMaxValueForDataSeries(t)))}static getMaxValueForDataSeries(t){return Math.max(...t.values.map(t=>t[1]))}static calculateMaxChartValueAndDivisions(t,e){let a;a=Array.isArray(t)?i.getMaxValueFromDataHolder(t):i.getMaxValueForDataSeries(t);const s=Math.round(a*(e||i.DEFAULT_MULTIPLIER))||1;return[s,Math.ceil(s/i.MAXIMUM_DIVISIONS)]}static getIntegerRangeForValues(t,e){const[a,s]=i.calculateMaxChartValueAndDivisions(t,e);return d3.range(0,a+1,s)}}},54:function(t,e,a){"use strict";a.r(e),a.d(e,"EpoolChart",(function(){return s}));var i=a(38);class s extends i.ChartData{constructor(t,e){super(t,e,!1,!1)}chartSetup(t){const e={type:"multiChart",yAxis1:{showMaxMin:!1,axisLabel:this.translateService.instant("resource.epool.reads"),axisLabelDistance:-10,rotateYLabel:!0,tickFormat:function(t){return t},tickValues:()=>s.getIntegerRangeForValues(this.dataHolder[0])},yAxis2:{showMaxMin:!1,axisLabel:this.translateService.instant("resource.epool.writes"),axisLabelDistance:-10,rotateYLabel:!0,tickFormat:function(t){return t},tickValues:()=>s.getIntegerRangeForValues(this.dataHolder[1])},y1Domain:[0,1],y2Domain:[0,1]};Object.assign(t.chart,e)}getTitle(){return this.translateService.instant("resource.epool.label")}createDataHolder(){return[{key:this.translateService.instant("resource.epool.reads"),type:"line",yAxis:1,values:[]},{key:this.translateService.instant("resource.epool.writes"),type:"line",yAxis:2,values:[]}]}addNewData(t,e,a,i){const s=a.performanceData,[r,n]=t;let o=0,l=0;const h=s.entityPool.epoolReads,c=s.entityPool.epoolWrites;if(!i){o=h-r.values[r.values.length-1][2],l=c-n.values[r.values.length-1][2]}r.values.push([e,o,h]),n.values.push([e,l,c])}updateRange(t){this.chartOptions.chart.yDomain1=this.getAxisDomain(t[0]),this.chartOptions.chart.yDomain2=this.getAxisDomain(t[1])}getAxisDomain(t){const[e]=s.calculateMaxChartValueAndDivisions(t);return[0,e]}}}}]);
2
- //# sourceMappingURL=46.3a0da10162409588560c.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/resources/chart-models/chart-data.js","webpack:///./src/js/angular/resources/chart-models/performance/epool-chart.js"],"names":["ChartData","translateService","chart","interpolate","type","height","margin","left","right","x","d","y","clipEdge","noData","instant","showControls","duration","rightAlignYAxis","useInteractiveGuideline","xAxis","showMaxMin","tickFormat","d3","time","format","Date","yAxis","legend","maxKeyLength","color","scale","category10","range","title","enable","text","this","getTitle","subtitle","className","getSubTitle","chartOptions","subTitle","html","disableRangeUpdate","disableOldDataRemoval","getChartOptions","chartSetup","dataHolder","createDataHolder","firstLoad","Error","timestamp","newData","removeOldData","addNewData","isFirstLoad","updateRange","values","length","forEach","data","shift","multiplier","domainUpperBound","calculateMaxChartValueAndDivisions","yDomain","Math","max","filter","disabled","flatMap","getMaxValueForDataSeries","dataSeries","map","maxDataValue","Array","isArray","getMaxValueFromDataHolder","maxChartValue","round","DEFAULT_MULTIPLIER","ceil","MAXIMUM_DIVISIONS","divisions","EpoolChart","super","customChartOptions","yAxis1","axisLabel","axisLabelDistance","rotateYLabel","tickValues","getIntegerRangeForValues","yAxis2","y1Domain","y2Domain","Object","assign","key","performanceData","readsData","writesData","readsDiff","writesDiff","currentReads","entityPool","epoolReads","currentWrites","epoolWrites","push","yDomain1","getAxisDomain","yDomain2"],"mappings":"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","file":"46.3a0da10162409588560c.bundle.js","sourcesContent":["export class ChartData {\n getChartOptions(translateService) {\n return {\n chart: {\n interpolate: 'monotone',\n type: 'lineChart',\n height: 500,\n margin: {\n left: 80,\n right: 80\n },\n x: function (d) {\n return d[0];\n },\n y: function (d) {\n return d[1];\n },\n clipEdge: true,\n noData: translateService.instant('resource.no_data'),\n showControls: false,\n duration: 0,\n rightAlignYAxis: false,\n useInteractiveGuideline: true,\n xAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d3.time.format('%X')(new Date(d));\n }\n },\n yAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d;\n }\n },\n legend: {\n maxKeyLength: 100\n },\n color: d3.scale.category10().range()\n },\n title: {\n enable: true,\n text: this.getTitle()\n },\n subtitle: {\n className: 'chart-additional-info',\n enable: true,\n text: this.getSubTitle()\n }\n };\n }\n\n /**\n * Must implement\n * @return {string} the title name\n */\n getTitle() {\n return 'No chart title set';\n }\n\n setTitle(title) {\n this.chartOptions.title.enable = true;\n this.chartOptions.title.text = title;\n }\n\n getSubTitle() {\n }\n\n setSubTitle(subTitle) {\n this.chartOptions.subtitle.enable = true;\n this.chartOptions.subtitle.html = subTitle;\n }\n\n /**\n * Defines the default multiplier for chart overhead. The space above the maximum value.\n */\n static get DEFAULT_MULTIPLIER() {\n return 1.2;\n }\n\n /**\n * Defines the default divisions for chart. Used to calculate chart ticks.\n */\n static get MAXIMUM_DIVISIONS() {\n return 10;\n }\n\n constructor(translateService, chartOptions, disableRangeUpdate, disableOldDataRemoval) {\n this.disableRangeUpdate = disableRangeUpdate;\n this.disableOldDataRemoval = disableOldDataRemoval;\n this.translateService = translateService;\n this.range = 150;\n this.chartOptions = this.getChartOptions(translateService);\n this.chartSetup(this.chartOptions);\n this.dataHolder = this.createDataHolder();\n this.firstLoad = true;\n }\n\n /**\n * Provides chart options if custom setup needs to be done\n * @param chartOptions\n */\n chartSetup(chartOptions) {\n }\n\n /**\n * Returns the data holder array for the chart data.\n * Must be implemented.\n */\n createDataHolder() {\n throw new Error('Must implement data holder creation');\n }\n\n /**\n * Adds data to the data holder\n * @param timestamp time of the data\n * @param newData the new data\n */\n addData(timestamp, newData) {\n if (!this.disableOldDataRemoval) {\n this.removeOldData(this.dataHolder, this.range);\n }\n this.addNewData(this.dataHolder, timestamp, newData, this.isFirstLoad());\n if (!this.disableRangeUpdate) {\n this.updateRange(this.dataHolder);\n }\n if (this.firstLoad) {\n this.firstLoad = false;\n }\n }\n\n /**\n * Removes data from the data holder that is obsolete based on range property\n * @param dataHolder data holder\n * @param range the number of entries to keep\n */\n removeOldData(dataHolder, range) {\n if (dataHolder[0].values.length > range) {\n dataHolder.forEach((data) => data.values.shift());\n }\n }\n\n /**\n * Adds data to data holder\n * Must be implemented.\n * @param dataHolder\n * @param timestamp\n * @param data\n * @param isFirstLoad\n */\n addNewData(dataHolder, timestamp, data, isFirstLoad) {\n }\n\n /**\n * Updates the chart axis range, based on maximum value in data holder\n * @param dataHolder\n * @param multiplier\n */\n updateRange(dataHolder, multiplier) {\n const [domainUpperBound] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n this.chartOptions.chart.yDomain = [0, domainUpperBound];\n }\n\n isFirstLoad() {\n return this.firstLoad;\n }\n\n /**\n * Returns the maximum value in data holder\n * @param dataHolder\n * @return {number}\n */\n static getMaxValueFromDataHolder(dataHolder) {\n return Math.max(...dataHolder.filter((data) => !data.disabled).flatMap((data) => ChartData.getMaxValueForDataSeries(data)));\n }\n\n /**\n * Returns the maximum value in specific data series\n * @param dataSeries\n * @return {number}\n */\n static getMaxValueForDataSeries(dataSeries) {\n return Math.max(...dataSeries.values.map((data) => data[1]));\n }\n\n /**\n * Calculated maximum value for chart axis and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {(number|number)[]}\n */\n static calculateMaxChartValueAndDivisions(dataHolder, multiplier) {\n let maxDataValue;\n\n if (Array.isArray(dataHolder)) {\n maxDataValue = ChartData.getMaxValueFromDataHolder(dataHolder);\n } else {\n maxDataValue = ChartData.getMaxValueForDataSeries(dataHolder);\n }\n\n const maxChartValue = Math.round(maxDataValue * (multiplier || ChartData.DEFAULT_MULTIPLIER)) || 1;\n const div = Math.ceil(maxChartValue / ChartData.MAXIMUM_DIVISIONS);\n return [maxChartValue, div];\n }\n\n /**\n * Returnes a D3 range for chart axis based on maximum value and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {*}\n */\n static getIntegerRangeForValues(dataHolder, multiplier) {\n const [maxChartValue, divisions] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n return d3.range(0, maxChartValue + 1, divisions);\n }\n}\n","import {ChartData} from \"../chart-data\";\n\nexport class EpoolChart extends ChartData {\n constructor(translateService, chartOptions) {\n super(translateService, chartOptions, false, false);\n }\n chartSetup(chartOptions) {\n const customChartOptions = {\n type: 'multiChart',\n yAxis1: {\n showMaxMin: false,\n axisLabel: this.translateService.instant('resource.epool.reads'),\n axisLabelDistance: -10,\n rotateYLabel: true,\n tickFormat: function(d) {\n return d;\n },\n tickValues: () => {\n return EpoolChart.getIntegerRangeForValues(this.dataHolder[0]);\n }\n },\n yAxis2: {\n showMaxMin: false,\n axisLabel: this.translateService.instant('resource.epool.writes'),\n axisLabelDistance: -10,\n rotateYLabel: true,\n tickFormat: function(d) {\n return d;\n },\n tickValues: () => {\n return EpoolChart.getIntegerRangeForValues(this.dataHolder[1]);\n }\n },\n y1Domain: [0, 1],\n y2Domain: [0, 1]\n };\n Object.assign(chartOptions.chart, customChartOptions);\n }\n\n getTitle() {\n return this.translateService.instant('resource.epool.label');\n }\n\n createDataHolder() {\n return [{\n key: this.translateService.instant('resource.epool.reads'),\n type: 'line',\n yAxis: 1,\n values: []\n }, {\n key: this.translateService.instant('resource.epool.writes'),\n type: 'line',\n yAxis: 2,\n values: []\n }];\n }\n addNewData(dataHolder, timestamp, data, isFirstLoad) {\n const performanceData = data.performanceData;\n const [readsData, writesData] = dataHolder;\n let readsDiff = 0;\n let writesDiff = 0;\n const currentReads = performanceData.entityPool.epoolReads;\n const currentWrites = performanceData.entityPool.epoolWrites;\n\n if (!isFirstLoad) {\n const lastReadsEntry = readsData.values[readsData.values.length - 1][2];\n const lastWritesEntry = writesData.values[readsData.values.length - 1][2];\n readsDiff = currentReads - lastReadsEntry;\n writesDiff = currentWrites - lastWritesEntry;\n }\n\n readsData.values.push([timestamp, readsDiff, currentReads]);\n writesData.values.push([timestamp, writesDiff, currentWrites]);\n }\n updateRange(dataHolder) {\n this.chartOptions.chart.yDomain1 = this.getAxisDomain(dataHolder[0]);\n this.chartOptions.chart.yDomain2 = this.getAxisDomain(dataHolder[1]);\n }\n getAxisDomain(dataHolder) {\n const [domainUpperBound] = EpoolChart.calculateMaxChartValueAndDivisions(dataHolder);\n return [0, domainUpperBound];\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[47,111],{38:function(t,e,a){"use strict";a.r(e),a.d(e,"ChartData",(function(){return r}));class r{getChartOptions(t){return{chart:{interpolate:"monotone",type:"lineChart",height:500,margin:{left:80,right:80},x:function(t){return t[0]},y:function(t){return t[1]},clipEdge:!0,noData:t.instant("resource.no_data"),showControls:!1,duration:0,rightAlignYAxis:!1,useInteractiveGuideline:!0,xAxis:{showMaxMin:!1,tickFormat:function(t){return d3.time.format("%X")(new Date(t))}},yAxis:{showMaxMin:!1,tickFormat:function(t){return t}},legend:{maxKeyLength:100},color:d3.scale.category10().range()},title:{enable:!0,text:this.getTitle()},subtitle:{className:"chart-additional-info",enable:!0,text:this.getSubTitle()}}}getTitle(){return"No chart title set"}setTitle(t){this.chartOptions.title.enable=!0,this.chartOptions.title.text=t}getSubTitle(){}setSubTitle(t){this.chartOptions.subtitle.enable=!0,this.chartOptions.subtitle.html=t}static get DEFAULT_MULTIPLIER(){return 1.2}static get MAXIMUM_DIVISIONS(){return 10}constructor(t,e,a,r){this.disableRangeUpdate=a,this.disableOldDataRemoval=r,this.translateService=t,this.range=150,this.chartOptions=this.getChartOptions(t),this.chartSetup(this.chartOptions),this.dataHolder=this.createDataHolder(),this.firstLoad=!0}chartSetup(t){}createDataHolder(){throw new Error("Must implement data holder creation")}addData(t,e){this.disableOldDataRemoval||this.removeOldData(this.dataHolder,this.range),this.addNewData(this.dataHolder,t,e,this.isFirstLoad()),this.disableRangeUpdate||this.updateRange(this.dataHolder),this.firstLoad&&(this.firstLoad=!1)}removeOldData(t,e){t[0].values.length>e&&t.forEach(t=>t.values.shift())}addNewData(t,e,a,r){}updateRange(t,e){const[a]=r.calculateMaxChartValueAndDivisions(t,e);this.chartOptions.chart.yDomain=[0,a]}isFirstLoad(){return this.firstLoad}static getMaxValueFromDataHolder(t){return Math.max(...t.filter(t=>!t.disabled).flatMap(t=>r.getMaxValueForDataSeries(t)))}static getMaxValueForDataSeries(t){return Math.max(...t.values.map(t=>t[1]))}static calculateMaxChartValueAndDivisions(t,e){let a;a=Array.isArray(t)?r.getMaxValueFromDataHolder(t):r.getMaxValueForDataSeries(t);const i=Math.round(a*(e||r.DEFAULT_MULTIPLIER))||1;return[i,Math.ceil(i/r.MAXIMUM_DIVISIONS)]}static getIntegerRangeForValues(t,e){const[a,i]=r.calculateMaxChartValueAndDivisions(t,e);return d3.range(0,a+1,i)}}},50:function(t,e,a){"use strict";a.r(e),a.d(e,"QueriesChart",(function(){return i}));var r=a(38);class i extends r.ChartData{constructor(t,e){super(t,e,!1,!1)}getTitle(){return this.translateService.instant("resource.queries.label")}chartSetup(t){t.chart.yAxis.tickValues=()=>i.getIntegerRangeForValues(this.dataHolder)}createDataHolder(){return[{key:this.translateService.instant("resource.queries.running"),values:[]}]}addNewData(t,e,a){const{activeQueryData:r,performanceData:i}=a;t[0].values.push([e,r.length]);const s=i.queries.slow,n=i.queries.suboptimal;this.setSubTitle(this.translateService.instant("resource.queries.slow_and_suboptimal",{slowQueries:s,suboptimal:n}))}}}}]);
2
- //# sourceMappingURL=47.049aedaa6cfccef06f69.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/resources/chart-models/chart-data.js","webpack:///./src/js/angular/resources/chart-models/performance/queries-chart.js"],"names":["ChartData","translateService","chart","interpolate","type","height","margin","left","right","x","d","y","clipEdge","noData","instant","showControls","duration","rightAlignYAxis","useInteractiveGuideline","xAxis","showMaxMin","tickFormat","d3","time","format","Date","yAxis","legend","maxKeyLength","color","scale","category10","range","title","enable","text","this","getTitle","subtitle","className","getSubTitle","chartOptions","subTitle","html","disableRangeUpdate","disableOldDataRemoval","getChartOptions","chartSetup","dataHolder","createDataHolder","firstLoad","Error","timestamp","newData","removeOldData","addNewData","isFirstLoad","updateRange","values","length","forEach","data","shift","multiplier","domainUpperBound","calculateMaxChartValueAndDivisions","yDomain","Math","max","filter","disabled","flatMap","getMaxValueForDataSeries","dataSeries","map","maxDataValue","Array","isArray","getMaxValueFromDataHolder","maxChartValue","round","DEFAULT_MULTIPLIER","ceil","MAXIMUM_DIVISIONS","divisions","QueriesChart","super","tickValues","getIntegerRangeForValues","key","activeQueryData","performanceData","push","slowQueries","queries","slow","suboptimal","setSubTitle"],"mappings":"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","file":"47.049aedaa6cfccef06f69.bundle.js","sourcesContent":["export class ChartData {\n getChartOptions(translateService) {\n return {\n chart: {\n interpolate: 'monotone',\n type: 'lineChart',\n height: 500,\n margin: {\n left: 80,\n right: 80\n },\n x: function (d) {\n return d[0];\n },\n y: function (d) {\n return d[1];\n },\n clipEdge: true,\n noData: translateService.instant('resource.no_data'),\n showControls: false,\n duration: 0,\n rightAlignYAxis: false,\n useInteractiveGuideline: true,\n xAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d3.time.format('%X')(new Date(d));\n }\n },\n yAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d;\n }\n },\n legend: {\n maxKeyLength: 100\n },\n color: d3.scale.category10().range()\n },\n title: {\n enable: true,\n text: this.getTitle()\n },\n subtitle: {\n className: 'chart-additional-info',\n enable: true,\n text: this.getSubTitle()\n }\n };\n }\n\n /**\n * Must implement\n * @return {string} the title name\n */\n getTitle() {\n return 'No chart title set';\n }\n\n setTitle(title) {\n this.chartOptions.title.enable = true;\n this.chartOptions.title.text = title;\n }\n\n getSubTitle() {\n }\n\n setSubTitle(subTitle) {\n this.chartOptions.subtitle.enable = true;\n this.chartOptions.subtitle.html = subTitle;\n }\n\n /**\n * Defines the default multiplier for chart overhead. The space above the maximum value.\n */\n static get DEFAULT_MULTIPLIER() {\n return 1.2;\n }\n\n /**\n * Defines the default divisions for chart. Used to calculate chart ticks.\n */\n static get MAXIMUM_DIVISIONS() {\n return 10;\n }\n\n constructor(translateService, chartOptions, disableRangeUpdate, disableOldDataRemoval) {\n this.disableRangeUpdate = disableRangeUpdate;\n this.disableOldDataRemoval = disableOldDataRemoval;\n this.translateService = translateService;\n this.range = 150;\n this.chartOptions = this.getChartOptions(translateService);\n this.chartSetup(this.chartOptions);\n this.dataHolder = this.createDataHolder();\n this.firstLoad = true;\n }\n\n /**\n * Provides chart options if custom setup needs to be done\n * @param chartOptions\n */\n chartSetup(chartOptions) {\n }\n\n /**\n * Returns the data holder array for the chart data.\n * Must be implemented.\n */\n createDataHolder() {\n throw new Error('Must implement data holder creation');\n }\n\n /**\n * Adds data to the data holder\n * @param timestamp time of the data\n * @param newData the new data\n */\n addData(timestamp, newData) {\n if (!this.disableOldDataRemoval) {\n this.removeOldData(this.dataHolder, this.range);\n }\n this.addNewData(this.dataHolder, timestamp, newData, this.isFirstLoad());\n if (!this.disableRangeUpdate) {\n this.updateRange(this.dataHolder);\n }\n if (this.firstLoad) {\n this.firstLoad = false;\n }\n }\n\n /**\n * Removes data from the data holder that is obsolete based on range property\n * @param dataHolder data holder\n * @param range the number of entries to keep\n */\n removeOldData(dataHolder, range) {\n if (dataHolder[0].values.length > range) {\n dataHolder.forEach((data) => data.values.shift());\n }\n }\n\n /**\n * Adds data to data holder\n * Must be implemented.\n * @param dataHolder\n * @param timestamp\n * @param data\n * @param isFirstLoad\n */\n addNewData(dataHolder, timestamp, data, isFirstLoad) {\n }\n\n /**\n * Updates the chart axis range, based on maximum value in data holder\n * @param dataHolder\n * @param multiplier\n */\n updateRange(dataHolder, multiplier) {\n const [domainUpperBound] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n this.chartOptions.chart.yDomain = [0, domainUpperBound];\n }\n\n isFirstLoad() {\n return this.firstLoad;\n }\n\n /**\n * Returns the maximum value in data holder\n * @param dataHolder\n * @return {number}\n */\n static getMaxValueFromDataHolder(dataHolder) {\n return Math.max(...dataHolder.filter((data) => !data.disabled).flatMap((data) => ChartData.getMaxValueForDataSeries(data)));\n }\n\n /**\n * Returns the maximum value in specific data series\n * @param dataSeries\n * @return {number}\n */\n static getMaxValueForDataSeries(dataSeries) {\n return Math.max(...dataSeries.values.map((data) => data[1]));\n }\n\n /**\n * Calculated maximum value for chart axis and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {(number|number)[]}\n */\n static calculateMaxChartValueAndDivisions(dataHolder, multiplier) {\n let maxDataValue;\n\n if (Array.isArray(dataHolder)) {\n maxDataValue = ChartData.getMaxValueFromDataHolder(dataHolder);\n } else {\n maxDataValue = ChartData.getMaxValueForDataSeries(dataHolder);\n }\n\n const maxChartValue = Math.round(maxDataValue * (multiplier || ChartData.DEFAULT_MULTIPLIER)) || 1;\n const div = Math.ceil(maxChartValue / ChartData.MAXIMUM_DIVISIONS);\n return [maxChartValue, div];\n }\n\n /**\n * Returnes a D3 range for chart axis based on maximum value and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {*}\n */\n static getIntegerRangeForValues(dataHolder, multiplier) {\n const [maxChartValue, divisions] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n return d3.range(0, maxChartValue + 1, divisions);\n }\n}\n","import {ChartData} from \"../chart-data\";\n\nexport class QueriesChart extends ChartData {\n constructor(translateService, chartOptions) {\n super(translateService, chartOptions, false, false);\n }\n\n getTitle() {\n return this.translateService.instant('resource.queries.label');\n }\n\n chartSetup(chartOptions) {\n chartOptions.chart.yAxis.tickValues = () => {\n return QueriesChart.getIntegerRangeForValues(this.dataHolder);\n };\n }\n\n createDataHolder() {\n return [{\n key: this.translateService.instant('resource.queries.running'),\n values: []\n }];\n }\n addNewData(dataHolder, timestamp, data) {\n const {activeQueryData, performanceData} = data;\n dataHolder[0].values.push([timestamp, activeQueryData.length]);\n\n const slowQueries = performanceData.queries.slow;\n const suboptimal = performanceData.queries.suboptimal;\n this.setSubTitle(this.translateService.instant('resource.queries.slow_and_suboptimal', {slowQueries, suboptimal}));\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[48,111],{38:function(t,a,e){"use strict";e.r(a),e.d(a,"ChartData",(function(){return r}));class r{getChartOptions(t){return{chart:{interpolate:"monotone",type:"lineChart",height:500,margin:{left:80,right:80},x:function(t){return t[0]},y:function(t){return t[1]},clipEdge:!0,noData:t.instant("resource.no_data"),showControls:!1,duration:0,rightAlignYAxis:!1,useInteractiveGuideline:!0,xAxis:{showMaxMin:!1,tickFormat:function(t){return d3.time.format("%X")(new Date(t))}},yAxis:{showMaxMin:!1,tickFormat:function(t){return t}},legend:{maxKeyLength:100},color:d3.scale.category10().range()},title:{enable:!0,text:this.getTitle()},subtitle:{className:"chart-additional-info",enable:!0,text:this.getSubTitle()}}}getTitle(){return"No chart title set"}setTitle(t){this.chartOptions.title.enable=!0,this.chartOptions.title.text=t}getSubTitle(){}setSubTitle(t){this.chartOptions.subtitle.enable=!0,this.chartOptions.subtitle.html=t}static get DEFAULT_MULTIPLIER(){return 1.2}static get MAXIMUM_DIVISIONS(){return 10}constructor(t,a,e,r){this.disableRangeUpdate=e,this.disableOldDataRemoval=r,this.translateService=t,this.range=150,this.chartOptions=this.getChartOptions(t),this.chartSetup(this.chartOptions),this.dataHolder=this.createDataHolder(),this.firstLoad=!0}chartSetup(t){}createDataHolder(){throw new Error("Must implement data holder creation")}addData(t,a){this.disableOldDataRemoval||this.removeOldData(this.dataHolder,this.range),this.addNewData(this.dataHolder,t,a,this.isFirstLoad()),this.disableRangeUpdate||this.updateRange(this.dataHolder),this.firstLoad&&(this.firstLoad=!1)}removeOldData(t,a){t[0].values.length>a&&t.forEach(t=>t.values.shift())}addNewData(t,a,e,r){}updateRange(t,a){const[e]=r.calculateMaxChartValueAndDivisions(t,a);this.chartOptions.chart.yDomain=[0,e]}isFirstLoad(){return this.firstLoad}static getMaxValueFromDataHolder(t){return Math.max(...t.filter(t=>!t.disabled).flatMap(t=>r.getMaxValueForDataSeries(t)))}static getMaxValueForDataSeries(t){return Math.max(...t.values.map(t=>t[1]))}static calculateMaxChartValueAndDivisions(t,a){let e;e=Array.isArray(t)?r.getMaxValueFromDataHolder(t):r.getMaxValueForDataSeries(t);const i=Math.round(e*(a||r.DEFAULT_MULTIPLIER))||1;return[i,Math.ceil(i/r.MAXIMUM_DIVISIONS)]}static getIntegerRangeForValues(t,a){const[e,i]=r.calculateMaxChartValueAndDivisions(t,a);return d3.range(0,e+1,i)}}},48:function(t,a,e){"use strict";e.r(a),e.d(a,"CpuLoadChart",(function(){return i}));var r=e(38);class i extends r.ChartData{constructor(t,a){super(t,a,!1,!1)}chartSetup(t){t.chart.yAxis.tickFormat=function(t){return t+"%"}}getTitle(){return this.translateService.instant("resource.system.cpu_load.label")}createDataHolder(){return[{key:this.translateService.instant("resource.system.cpu_load.label"),values:[]}]}addNewData(t,a,e){t[0].values.push([a,this.formatValue(e.cpuLoad)])}formatValue(t){return parseFloat(t).toFixed(4)}updateRange(t){const a=Math.max(...t[0].values.flatMap(t=>t[1])),e=a>50?100:2*a;this.chartOptions.chart.yDomain=[0,e]}}}}]);
2
- //# sourceMappingURL=48.d7b02a85dfa52084b1c4.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/resources/chart-models/chart-data.js","webpack:///./src/js/angular/resources/chart-models/resource/cpu-load-chart.js"],"names":["ChartData","translateService","chart","interpolate","type","height","margin","left","right","x","d","y","clipEdge","noData","instant","showControls","duration","rightAlignYAxis","useInteractiveGuideline","xAxis","showMaxMin","tickFormat","d3","time","format","Date","yAxis","legend","maxKeyLength","color","scale","category10","range","title","enable","text","this","getTitle","subtitle","className","getSubTitle","chartOptions","subTitle","html","disableRangeUpdate","disableOldDataRemoval","getChartOptions","chartSetup","dataHolder","createDataHolder","firstLoad","Error","timestamp","newData","removeOldData","addNewData","isFirstLoad","updateRange","values","length","forEach","data","shift","multiplier","domainUpperBound","calculateMaxChartValueAndDivisions","yDomain","Math","max","filter","disabled","flatMap","getMaxValueForDataSeries","dataSeries","map","maxDataValue","Array","isArray","getMaxValueFromDataHolder","maxChartValue","round","DEFAULT_MULTIPLIER","ceil","MAXIMUM_DIVISIONS","divisions","CpuLoadChart","super","key","push","formatValue","cpuLoad","parseFloat","toFixed"],"mappings":"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","file":"48.d7b02a85dfa52084b1c4.bundle.js","sourcesContent":["export class ChartData {\n getChartOptions(translateService) {\n return {\n chart: {\n interpolate: 'monotone',\n type: 'lineChart',\n height: 500,\n margin: {\n left: 80,\n right: 80\n },\n x: function (d) {\n return d[0];\n },\n y: function (d) {\n return d[1];\n },\n clipEdge: true,\n noData: translateService.instant('resource.no_data'),\n showControls: false,\n duration: 0,\n rightAlignYAxis: false,\n useInteractiveGuideline: true,\n xAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d3.time.format('%X')(new Date(d));\n }\n },\n yAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d;\n }\n },\n legend: {\n maxKeyLength: 100\n },\n color: d3.scale.category10().range()\n },\n title: {\n enable: true,\n text: this.getTitle()\n },\n subtitle: {\n className: 'chart-additional-info',\n enable: true,\n text: this.getSubTitle()\n }\n };\n }\n\n /**\n * Must implement\n * @return {string} the title name\n */\n getTitle() {\n return 'No chart title set';\n }\n\n setTitle(title) {\n this.chartOptions.title.enable = true;\n this.chartOptions.title.text = title;\n }\n\n getSubTitle() {\n }\n\n setSubTitle(subTitle) {\n this.chartOptions.subtitle.enable = true;\n this.chartOptions.subtitle.html = subTitle;\n }\n\n /**\n * Defines the default multiplier for chart overhead. The space above the maximum value.\n */\n static get DEFAULT_MULTIPLIER() {\n return 1.2;\n }\n\n /**\n * Defines the default divisions for chart. Used to calculate chart ticks.\n */\n static get MAXIMUM_DIVISIONS() {\n return 10;\n }\n\n constructor(translateService, chartOptions, disableRangeUpdate, disableOldDataRemoval) {\n this.disableRangeUpdate = disableRangeUpdate;\n this.disableOldDataRemoval = disableOldDataRemoval;\n this.translateService = translateService;\n this.range = 150;\n this.chartOptions = this.getChartOptions(translateService);\n this.chartSetup(this.chartOptions);\n this.dataHolder = this.createDataHolder();\n this.firstLoad = true;\n }\n\n /**\n * Provides chart options if custom setup needs to be done\n * @param chartOptions\n */\n chartSetup(chartOptions) {\n }\n\n /**\n * Returns the data holder array for the chart data.\n * Must be implemented.\n */\n createDataHolder() {\n throw new Error('Must implement data holder creation');\n }\n\n /**\n * Adds data to the data holder\n * @param timestamp time of the data\n * @param newData the new data\n */\n addData(timestamp, newData) {\n if (!this.disableOldDataRemoval) {\n this.removeOldData(this.dataHolder, this.range);\n }\n this.addNewData(this.dataHolder, timestamp, newData, this.isFirstLoad());\n if (!this.disableRangeUpdate) {\n this.updateRange(this.dataHolder);\n }\n if (this.firstLoad) {\n this.firstLoad = false;\n }\n }\n\n /**\n * Removes data from the data holder that is obsolete based on range property\n * @param dataHolder data holder\n * @param range the number of entries to keep\n */\n removeOldData(dataHolder, range) {\n if (dataHolder[0].values.length > range) {\n dataHolder.forEach((data) => data.values.shift());\n }\n }\n\n /**\n * Adds data to data holder\n * Must be implemented.\n * @param dataHolder\n * @param timestamp\n * @param data\n * @param isFirstLoad\n */\n addNewData(dataHolder, timestamp, data, isFirstLoad) {\n }\n\n /**\n * Updates the chart axis range, based on maximum value in data holder\n * @param dataHolder\n * @param multiplier\n */\n updateRange(dataHolder, multiplier) {\n const [domainUpperBound] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n this.chartOptions.chart.yDomain = [0, domainUpperBound];\n }\n\n isFirstLoad() {\n return this.firstLoad;\n }\n\n /**\n * Returns the maximum value in data holder\n * @param dataHolder\n * @return {number}\n */\n static getMaxValueFromDataHolder(dataHolder) {\n return Math.max(...dataHolder.filter((data) => !data.disabled).flatMap((data) => ChartData.getMaxValueForDataSeries(data)));\n }\n\n /**\n * Returns the maximum value in specific data series\n * @param dataSeries\n * @return {number}\n */\n static getMaxValueForDataSeries(dataSeries) {\n return Math.max(...dataSeries.values.map((data) => data[1]));\n }\n\n /**\n * Calculated maximum value for chart axis and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {(number|number)[]}\n */\n static calculateMaxChartValueAndDivisions(dataHolder, multiplier) {\n let maxDataValue;\n\n if (Array.isArray(dataHolder)) {\n maxDataValue = ChartData.getMaxValueFromDataHolder(dataHolder);\n } else {\n maxDataValue = ChartData.getMaxValueForDataSeries(dataHolder);\n }\n\n const maxChartValue = Math.round(maxDataValue * (multiplier || ChartData.DEFAULT_MULTIPLIER)) || 1;\n const div = Math.ceil(maxChartValue / ChartData.MAXIMUM_DIVISIONS);\n return [maxChartValue, div];\n }\n\n /**\n * Returnes a D3 range for chart axis based on maximum value and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {*}\n */\n static getIntegerRangeForValues(dataHolder, multiplier) {\n const [maxChartValue, divisions] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n return d3.range(0, maxChartValue + 1, divisions);\n }\n}\n","import {ChartData} from \"../chart-data\";\n\nexport class CpuLoadChart extends ChartData {\n constructor(translateService, chartOptions) {\n super(translateService, chartOptions, false, false);\n }\n chartSetup(chartOptions) {\n chartOptions.chart.yAxis.tickFormat = function (d) {\n return d + '%';\n };\n }\n\n getTitle() {\n return this.translateService.instant('resource.system.cpu_load.label');\n }\n\n createDataHolder() {\n return [{\n key: this.translateService.instant('resource.system.cpu_load.label'),\n values: []\n }];\n }\n addNewData(dataHolder, timestamp, data) {\n dataHolder[0].values.push([timestamp, this.formatValue(data.cpuLoad)]);\n }\n formatValue(cpuLoad) {\n return parseFloat(cpuLoad).toFixed(4);\n }\n updateRange(dataHolder) {\n const maxChartValue = Math.max(...dataHolder[0].values.flatMap((data) => data[1]));\n const domainUpperBound = maxChartValue > 50 ? 100 : maxChartValue * 2;\n this.chartOptions.chart.yDomain = [0, domainUpperBound];\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[49,111],{38:function(t,e,a){"use strict";a.r(e),a.d(e,"ChartData",(function(){return r}));class r{getChartOptions(t){return{chart:{interpolate:"monotone",type:"lineChart",height:500,margin:{left:80,right:80},x:function(t){return t[0]},y:function(t){return t[1]},clipEdge:!0,noData:t.instant("resource.no_data"),showControls:!1,duration:0,rightAlignYAxis:!1,useInteractiveGuideline:!0,xAxis:{showMaxMin:!1,tickFormat:function(t){return d3.time.format("%X")(new Date(t))}},yAxis:{showMaxMin:!1,tickFormat:function(t){return t}},legend:{maxKeyLength:100},color:d3.scale.category10().range()},title:{enable:!0,text:this.getTitle()},subtitle:{className:"chart-additional-info",enable:!0,text:this.getSubTitle()}}}getTitle(){return"No chart title set"}setTitle(t){this.chartOptions.title.enable=!0,this.chartOptions.title.text=t}getSubTitle(){}setSubTitle(t){this.chartOptions.subtitle.enable=!0,this.chartOptions.subtitle.html=t}static get DEFAULT_MULTIPLIER(){return 1.2}static get MAXIMUM_DIVISIONS(){return 10}constructor(t,e,a,r){this.disableRangeUpdate=a,this.disableOldDataRemoval=r,this.translateService=t,this.range=150,this.chartOptions=this.getChartOptions(t),this.chartSetup(this.chartOptions),this.dataHolder=this.createDataHolder(),this.firstLoad=!0}chartSetup(t){}createDataHolder(){throw new Error("Must implement data holder creation")}addData(t,e){this.disableOldDataRemoval||this.removeOldData(this.dataHolder,this.range),this.addNewData(this.dataHolder,t,e,this.isFirstLoad()),this.disableRangeUpdate||this.updateRange(this.dataHolder),this.firstLoad&&(this.firstLoad=!1)}removeOldData(t,e){t[0].values.length>e&&t.forEach(t=>t.values.shift())}addNewData(t,e,a,r){}updateRange(t,e){const[a]=r.calculateMaxChartValueAndDivisions(t,e);this.chartOptions.chart.yDomain=[0,a]}isFirstLoad(){return this.firstLoad}static getMaxValueFromDataHolder(t){return Math.max(...t.filter(t=>!t.disabled).flatMap(t=>r.getMaxValueForDataSeries(t)))}static getMaxValueForDataSeries(t){return Math.max(...t.values.map(t=>t[1]))}static calculateMaxChartValueAndDivisions(t,e){let a;a=Array.isArray(t)?r.getMaxValueFromDataHolder(t):r.getMaxValueForDataSeries(t);const s=Math.round(a*(e||r.DEFAULT_MULTIPLIER))||1;return[s,Math.ceil(s/r.MAXIMUM_DIVISIONS)]}static getIntegerRangeForValues(t,e){const[a,s]=r.calculateMaxChartValueAndDivisions(t,e);return d3.range(0,a+1,s)}}},49:function(t,e,a){"use strict";a.r(e),a.d(e,"DiskStorageChart",(function(){return s}));var r=a(38);class s extends r.ChartData{constructor(t,e){super(t,e,!0,!0)}chartSetup(t){const e={type:"multiBarHorizontalChart",stacked:!0,showControls:!1,color:d3.scale.category10().range(),xAxis:{showMaxMin:!1,tickFormat:function(t){return t}},yAxis:{showMaxMin:!1,tickFormat:function(t){return(100*t).toFixed(2)+"%"}},yDomain:[0,1]};Object.assign(t.chart,e)}getTitle(){return this.translateService.instant("resource.storage.label")}createDataHolder(){return[{key:this.translateService.instant("resource.storage.used"),values:[]},{key:this.translateService.instant("resource.storage.free"),values:[]}]}addNewData(t,e,a,r){const s=a.storageMemory,[i,n]=t;r&&(i.values.push([this.translateService.instant("resource.storage.data"),0]),i.values.push([this.translateService.instant("resource.storage.work"),0]),i.values.push([this.translateService.instant("resource.storage.logs"),0]),n.values.push([this.translateService.instant("resource.storage.data"),1]),n.values.push([this.translateService.instant("resource.storage.work"),1]),n.values.push([this.translateService.instant("resource.storage.logs"),1])),i.values[0][1]=s.dataDirUsed/(s.dataDirUsed+s.dataDirFree),i.values[1][1]=s.workDirUsed/(s.workDirUsed+s.workDirFree),i.values[2][1]=s.logsDirUsed/(s.logsDirUsed+s.logsDirFree),n.values[0][1]=s.dataDirFree/(s.dataDirUsed+s.dataDirFree),n.values[1][1]=s.workDirFree/(s.workDirUsed+s.workDirFree),n.values[2][1]=s.logsDirFree/(s.logsDirUsed+s.logsDirFree)}}}}]);
2
- //# sourceMappingURL=49.2e7858348448fdde1332.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/resources/chart-models/chart-data.js","webpack:///./src/js/angular/resources/chart-models/resource/disk-storage-chart.js"],"names":["ChartData","translateService","chart","interpolate","type","height","margin","left","right","x","d","y","clipEdge","noData","instant","showControls","duration","rightAlignYAxis","useInteractiveGuideline","xAxis","showMaxMin","tickFormat","d3","time","format","Date","yAxis","legend","maxKeyLength","color","scale","category10","range","title","enable","text","this","getTitle","subtitle","className","getSubTitle","chartOptions","subTitle","html","disableRangeUpdate","disableOldDataRemoval","getChartOptions","chartSetup","dataHolder","createDataHolder","firstLoad","Error","timestamp","newData","removeOldData","addNewData","isFirstLoad","updateRange","values","length","forEach","data","shift","multiplier","domainUpperBound","calculateMaxChartValueAndDivisions","yDomain","Math","max","filter","disabled","flatMap","getMaxValueForDataSeries","dataSeries","map","maxDataValue","Array","isArray","getMaxValueFromDataHolder","maxChartValue","round","DEFAULT_MULTIPLIER","ceil","MAXIMUM_DIVISIONS","divisions","DiskStorageChart","super","diskStorageChartOptions","stacked","toFixed","Object","assign","key","storageData","storageMemory","used","free","push","dataDirUsed","dataDirFree","workDirUsed","workDirFree","logsDirUsed","logsDirFree"],"mappings":"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","file":"49.2e7858348448fdde1332.bundle.js","sourcesContent":["export class ChartData {\n getChartOptions(translateService) {\n return {\n chart: {\n interpolate: 'monotone',\n type: 'lineChart',\n height: 500,\n margin: {\n left: 80,\n right: 80\n },\n x: function (d) {\n return d[0];\n },\n y: function (d) {\n return d[1];\n },\n clipEdge: true,\n noData: translateService.instant('resource.no_data'),\n showControls: false,\n duration: 0,\n rightAlignYAxis: false,\n useInteractiveGuideline: true,\n xAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d3.time.format('%X')(new Date(d));\n }\n },\n yAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d;\n }\n },\n legend: {\n maxKeyLength: 100\n },\n color: d3.scale.category10().range()\n },\n title: {\n enable: true,\n text: this.getTitle()\n },\n subtitle: {\n className: 'chart-additional-info',\n enable: true,\n text: this.getSubTitle()\n }\n };\n }\n\n /**\n * Must implement\n * @return {string} the title name\n */\n getTitle() {\n return 'No chart title set';\n }\n\n setTitle(title) {\n this.chartOptions.title.enable = true;\n this.chartOptions.title.text = title;\n }\n\n getSubTitle() {\n }\n\n setSubTitle(subTitle) {\n this.chartOptions.subtitle.enable = true;\n this.chartOptions.subtitle.html = subTitle;\n }\n\n /**\n * Defines the default multiplier for chart overhead. The space above the maximum value.\n */\n static get DEFAULT_MULTIPLIER() {\n return 1.2;\n }\n\n /**\n * Defines the default divisions for chart. Used to calculate chart ticks.\n */\n static get MAXIMUM_DIVISIONS() {\n return 10;\n }\n\n constructor(translateService, chartOptions, disableRangeUpdate, disableOldDataRemoval) {\n this.disableRangeUpdate = disableRangeUpdate;\n this.disableOldDataRemoval = disableOldDataRemoval;\n this.translateService = translateService;\n this.range = 150;\n this.chartOptions = this.getChartOptions(translateService);\n this.chartSetup(this.chartOptions);\n this.dataHolder = this.createDataHolder();\n this.firstLoad = true;\n }\n\n /**\n * Provides chart options if custom setup needs to be done\n * @param chartOptions\n */\n chartSetup(chartOptions) {\n }\n\n /**\n * Returns the data holder array for the chart data.\n * Must be implemented.\n */\n createDataHolder() {\n throw new Error('Must implement data holder creation');\n }\n\n /**\n * Adds data to the data holder\n * @param timestamp time of the data\n * @param newData the new data\n */\n addData(timestamp, newData) {\n if (!this.disableOldDataRemoval) {\n this.removeOldData(this.dataHolder, this.range);\n }\n this.addNewData(this.dataHolder, timestamp, newData, this.isFirstLoad());\n if (!this.disableRangeUpdate) {\n this.updateRange(this.dataHolder);\n }\n if (this.firstLoad) {\n this.firstLoad = false;\n }\n }\n\n /**\n * Removes data from the data holder that is obsolete based on range property\n * @param dataHolder data holder\n * @param range the number of entries to keep\n */\n removeOldData(dataHolder, range) {\n if (dataHolder[0].values.length > range) {\n dataHolder.forEach((data) => data.values.shift());\n }\n }\n\n /**\n * Adds data to data holder\n * Must be implemented.\n * @param dataHolder\n * @param timestamp\n * @param data\n * @param isFirstLoad\n */\n addNewData(dataHolder, timestamp, data, isFirstLoad) {\n }\n\n /**\n * Updates the chart axis range, based on maximum value in data holder\n * @param dataHolder\n * @param multiplier\n */\n updateRange(dataHolder, multiplier) {\n const [domainUpperBound] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n this.chartOptions.chart.yDomain = [0, domainUpperBound];\n }\n\n isFirstLoad() {\n return this.firstLoad;\n }\n\n /**\n * Returns the maximum value in data holder\n * @param dataHolder\n * @return {number}\n */\n static getMaxValueFromDataHolder(dataHolder) {\n return Math.max(...dataHolder.filter((data) => !data.disabled).flatMap((data) => ChartData.getMaxValueForDataSeries(data)));\n }\n\n /**\n * Returns the maximum value in specific data series\n * @param dataSeries\n * @return {number}\n */\n static getMaxValueForDataSeries(dataSeries) {\n return Math.max(...dataSeries.values.map((data) => data[1]));\n }\n\n /**\n * Calculated maximum value for chart axis and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {(number|number)[]}\n */\n static calculateMaxChartValueAndDivisions(dataHolder, multiplier) {\n let maxDataValue;\n\n if (Array.isArray(dataHolder)) {\n maxDataValue = ChartData.getMaxValueFromDataHolder(dataHolder);\n } else {\n maxDataValue = ChartData.getMaxValueForDataSeries(dataHolder);\n }\n\n const maxChartValue = Math.round(maxDataValue * (multiplier || ChartData.DEFAULT_MULTIPLIER)) || 1;\n const div = Math.ceil(maxChartValue / ChartData.MAXIMUM_DIVISIONS);\n return [maxChartValue, div];\n }\n\n /**\n * Returnes a D3 range for chart axis based on maximum value and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {*}\n */\n static getIntegerRangeForValues(dataHolder, multiplier) {\n const [maxChartValue, divisions] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n return d3.range(0, maxChartValue + 1, divisions);\n }\n}\n","import {ChartData} from \"../chart-data\";\n\nexport class DiskStorageChart extends ChartData {\n constructor(translateService, chartOptions) {\n super(translateService, chartOptions, true, true);\n }\n chartSetup(chartOptions) {\n const diskStorageChartOptions = {\n type: 'multiBarHorizontalChart',\n stacked: true,\n showControls: false,\n color: d3.scale.category10().range(),\n xAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d;\n }\n },\n yAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return (d * 100).toFixed(2) + '%';\n }\n },\n yDomain: [0, 1]\n };\n Object.assign(chartOptions.chart, diskStorageChartOptions);\n }\n\n getTitle() {\n return this.translateService.instant('resource.storage.label');\n }\n\n createDataHolder() {\n return [{\n key: this.translateService.instant('resource.storage.used'),\n values: []\n }, {\n key: this.translateService.instant('resource.storage.free'),\n values: []\n }];\n }\n\n addNewData(dataHolder, timestamp, data, isFirstLoad) {\n const storageData = data.storageMemory;\n const [used, free] = dataHolder;\n\n if (isFirstLoad) {\n used.values.push([this.translateService.instant('resource.storage.data'), 0]);\n used.values.push([this.translateService.instant('resource.storage.work'), 0]);\n used.values.push([this.translateService.instant('resource.storage.logs'), 0]);\n free.values.push([this.translateService.instant('resource.storage.data'), 1]);\n free.values.push([this.translateService.instant('resource.storage.work'), 1]);\n free.values.push([this.translateService.instant('resource.storage.logs'), 1]);\n }\n\n used.values[0][1] = storageData.dataDirUsed / (storageData.dataDirUsed + storageData.dataDirFree);\n used.values[1][1] = storageData.workDirUsed / (storageData.workDirUsed + storageData.workDirFree);\n used.values[2][1] = storageData.logsDirUsed / (storageData.logsDirUsed + storageData.logsDirFree);\n free.values[0][1] = storageData.dataDirFree / (storageData.dataDirUsed + storageData.dataDirFree);\n free.values[1][1] = storageData.workDirFree / (storageData.workDirUsed + storageData.workDirFree);\n free.values[2][1] = storageData.logsDirFree / (storageData.logsDirUsed + storageData.logsDirFree);\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[50,111],{38:function(t,e,a){"use strict";a.r(e),a.d(e,"ChartData",(function(){return i}));class i{getChartOptions(t){return{chart:{interpolate:"monotone",type:"lineChart",height:500,margin:{left:80,right:80},x:function(t){return t[0]},y:function(t){return t[1]},clipEdge:!0,noData:t.instant("resource.no_data"),showControls:!1,duration:0,rightAlignYAxis:!1,useInteractiveGuideline:!0,xAxis:{showMaxMin:!1,tickFormat:function(t){return d3.time.format("%X")(new Date(t))}},yAxis:{showMaxMin:!1,tickFormat:function(t){return t}},legend:{maxKeyLength:100},color:d3.scale.category10().range()},title:{enable:!0,text:this.getTitle()},subtitle:{className:"chart-additional-info",enable:!0,text:this.getSubTitle()}}}getTitle(){return"No chart title set"}setTitle(t){this.chartOptions.title.enable=!0,this.chartOptions.title.text=t}getSubTitle(){}setSubTitle(t){this.chartOptions.subtitle.enable=!0,this.chartOptions.subtitle.html=t}static get DEFAULT_MULTIPLIER(){return 1.2}static get MAXIMUM_DIVISIONS(){return 10}constructor(t,e,a,i){this.disableRangeUpdate=a,this.disableOldDataRemoval=i,this.translateService=t,this.range=150,this.chartOptions=this.getChartOptions(t),this.chartSetup(this.chartOptions),this.dataHolder=this.createDataHolder(),this.firstLoad=!0}chartSetup(t){}createDataHolder(){throw new Error("Must implement data holder creation")}addData(t,e){this.disableOldDataRemoval||this.removeOldData(this.dataHolder,this.range),this.addNewData(this.dataHolder,t,e,this.isFirstLoad()),this.disableRangeUpdate||this.updateRange(this.dataHolder),this.firstLoad&&(this.firstLoad=!1)}removeOldData(t,e){t[0].values.length>e&&t.forEach(t=>t.values.shift())}addNewData(t,e,a,i){}updateRange(t,e){const[a]=i.calculateMaxChartValueAndDivisions(t,e);this.chartOptions.chart.yDomain=[0,a]}isFirstLoad(){return this.firstLoad}static getMaxValueFromDataHolder(t){return Math.max(...t.filter(t=>!t.disabled).flatMap(t=>i.getMaxValueForDataSeries(t)))}static getMaxValueForDataSeries(t){return Math.max(...t.values.map(t=>t[1]))}static calculateMaxChartValueAndDivisions(t,e){let a;a=Array.isArray(t)?i.getMaxValueFromDataHolder(t):i.getMaxValueForDataSeries(t);const r=Math.round(a*(e||i.DEFAULT_MULTIPLIER))||1;return[r,Math.ceil(r/i.MAXIMUM_DIVISIONS)]}static getIntegerRangeForValues(t,e){const[a,r]=i.calculateMaxChartValueAndDivisions(t,e);return d3.range(0,a+1,r)}}},46:function(t,e,a){"use strict";a.r(e),a.d(e,"FileDescriptorsChart",(function(){return r}));var i=a(38);class r extends i.ChartData{constructor(t,e){super(t,e,!1,!1)}getTitle(){return this.translateService.instant("resource.system.file_descriptors.label")}createDataHolder(){return[{key:this.translateService.instant("resource.system.file_descriptors.open"),area:"true",values:[]}]}addNewData(t,e,a){a.openFileDescriptors?(t[0].values.push([e,a.openFileDescriptors]),this.chartOptions.title.enable||(this.chartOptions.title.enable=!0),this.setSubTitle(this.translateService.instant("resource.system.file_descriptors.max",{max:a.maxFileDescriptors}))):this.setSubTitle(this.translateService.instant("resource.system.file_descriptors.only_unix"))}updateRange(t){super.updateRange(t,2)}}}}]);
2
- //# sourceMappingURL=50.1650ec02515a7dce98a5.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/resources/chart-models/chart-data.js","webpack:///./src/js/angular/resources/chart-models/resource/file-descriptors-chart.js"],"names":["ChartData","translateService","chart","interpolate","type","height","margin","left","right","x","d","y","clipEdge","noData","instant","showControls","duration","rightAlignYAxis","useInteractiveGuideline","xAxis","showMaxMin","tickFormat","d3","time","format","Date","yAxis","legend","maxKeyLength","color","scale","category10","range","title","enable","text","this","getTitle","subtitle","className","getSubTitle","chartOptions","subTitle","html","disableRangeUpdate","disableOldDataRemoval","getChartOptions","chartSetup","dataHolder","createDataHolder","firstLoad","Error","timestamp","newData","removeOldData","addNewData","isFirstLoad","updateRange","values","length","forEach","data","shift","multiplier","domainUpperBound","calculateMaxChartValueAndDivisions","yDomain","Math","max","filter","disabled","flatMap","getMaxValueForDataSeries","dataSeries","map","maxDataValue","Array","isArray","getMaxValueFromDataHolder","maxChartValue","round","DEFAULT_MULTIPLIER","ceil","MAXIMUM_DIVISIONS","divisions","FileDescriptorsChart","super","key","area","openFileDescriptors","push","setSubTitle","maxFileDescriptors"],"mappings":"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","file":"50.1650ec02515a7dce98a5.bundle.js","sourcesContent":["export class ChartData {\n getChartOptions(translateService) {\n return {\n chart: {\n interpolate: 'monotone',\n type: 'lineChart',\n height: 500,\n margin: {\n left: 80,\n right: 80\n },\n x: function (d) {\n return d[0];\n },\n y: function (d) {\n return d[1];\n },\n clipEdge: true,\n noData: translateService.instant('resource.no_data'),\n showControls: false,\n duration: 0,\n rightAlignYAxis: false,\n useInteractiveGuideline: true,\n xAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d3.time.format('%X')(new Date(d));\n }\n },\n yAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d;\n }\n },\n legend: {\n maxKeyLength: 100\n },\n color: d3.scale.category10().range()\n },\n title: {\n enable: true,\n text: this.getTitle()\n },\n subtitle: {\n className: 'chart-additional-info',\n enable: true,\n text: this.getSubTitle()\n }\n };\n }\n\n /**\n * Must implement\n * @return {string} the title name\n */\n getTitle() {\n return 'No chart title set';\n }\n\n setTitle(title) {\n this.chartOptions.title.enable = true;\n this.chartOptions.title.text = title;\n }\n\n getSubTitle() {\n }\n\n setSubTitle(subTitle) {\n this.chartOptions.subtitle.enable = true;\n this.chartOptions.subtitle.html = subTitle;\n }\n\n /**\n * Defines the default multiplier for chart overhead. The space above the maximum value.\n */\n static get DEFAULT_MULTIPLIER() {\n return 1.2;\n }\n\n /**\n * Defines the default divisions for chart. Used to calculate chart ticks.\n */\n static get MAXIMUM_DIVISIONS() {\n return 10;\n }\n\n constructor(translateService, chartOptions, disableRangeUpdate, disableOldDataRemoval) {\n this.disableRangeUpdate = disableRangeUpdate;\n this.disableOldDataRemoval = disableOldDataRemoval;\n this.translateService = translateService;\n this.range = 150;\n this.chartOptions = this.getChartOptions(translateService);\n this.chartSetup(this.chartOptions);\n this.dataHolder = this.createDataHolder();\n this.firstLoad = true;\n }\n\n /**\n * Provides chart options if custom setup needs to be done\n * @param chartOptions\n */\n chartSetup(chartOptions) {\n }\n\n /**\n * Returns the data holder array for the chart data.\n * Must be implemented.\n */\n createDataHolder() {\n throw new Error('Must implement data holder creation');\n }\n\n /**\n * Adds data to the data holder\n * @param timestamp time of the data\n * @param newData the new data\n */\n addData(timestamp, newData) {\n if (!this.disableOldDataRemoval) {\n this.removeOldData(this.dataHolder, this.range);\n }\n this.addNewData(this.dataHolder, timestamp, newData, this.isFirstLoad());\n if (!this.disableRangeUpdate) {\n this.updateRange(this.dataHolder);\n }\n if (this.firstLoad) {\n this.firstLoad = false;\n }\n }\n\n /**\n * Removes data from the data holder that is obsolete based on range property\n * @param dataHolder data holder\n * @param range the number of entries to keep\n */\n removeOldData(dataHolder, range) {\n if (dataHolder[0].values.length > range) {\n dataHolder.forEach((data) => data.values.shift());\n }\n }\n\n /**\n * Adds data to data holder\n * Must be implemented.\n * @param dataHolder\n * @param timestamp\n * @param data\n * @param isFirstLoad\n */\n addNewData(dataHolder, timestamp, data, isFirstLoad) {\n }\n\n /**\n * Updates the chart axis range, based on maximum value in data holder\n * @param dataHolder\n * @param multiplier\n */\n updateRange(dataHolder, multiplier) {\n const [domainUpperBound] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n this.chartOptions.chart.yDomain = [0, domainUpperBound];\n }\n\n isFirstLoad() {\n return this.firstLoad;\n }\n\n /**\n * Returns the maximum value in data holder\n * @param dataHolder\n * @return {number}\n */\n static getMaxValueFromDataHolder(dataHolder) {\n return Math.max(...dataHolder.filter((data) => !data.disabled).flatMap((data) => ChartData.getMaxValueForDataSeries(data)));\n }\n\n /**\n * Returns the maximum value in specific data series\n * @param dataSeries\n * @return {number}\n */\n static getMaxValueForDataSeries(dataSeries) {\n return Math.max(...dataSeries.values.map((data) => data[1]));\n }\n\n /**\n * Calculated maximum value for chart axis and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {(number|number)[]}\n */\n static calculateMaxChartValueAndDivisions(dataHolder, multiplier) {\n let maxDataValue;\n\n if (Array.isArray(dataHolder)) {\n maxDataValue = ChartData.getMaxValueFromDataHolder(dataHolder);\n } else {\n maxDataValue = ChartData.getMaxValueForDataSeries(dataHolder);\n }\n\n const maxChartValue = Math.round(maxDataValue * (multiplier || ChartData.DEFAULT_MULTIPLIER)) || 1;\n const div = Math.ceil(maxChartValue / ChartData.MAXIMUM_DIVISIONS);\n return [maxChartValue, div];\n }\n\n /**\n * Returnes a D3 range for chart axis based on maximum value and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {*}\n */\n static getIntegerRangeForValues(dataHolder, multiplier) {\n const [maxChartValue, divisions] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n return d3.range(0, maxChartValue + 1, divisions);\n }\n}\n","import {ChartData} from \"../chart-data\";\n\nexport class FileDescriptorsChart extends ChartData {\n constructor(translateService, chartOptions) {\n super(translateService, chartOptions, false, false);\n }\n\n getTitle() {\n return this.translateService.instant('resource.system.file_descriptors.label');\n }\n\n createDataHolder() {\n return [{\n key: this.translateService.instant('resource.system.file_descriptors.open'),\n area: 'true',\n values: []\n }];\n }\n addNewData(dataHolder, timestamp, data) {\n if (!data.openFileDescriptors) {\n this.setSubTitle(this.translateService.instant('resource.system.file_descriptors.only_unix'));\n return;\n }\n dataHolder[0].values.push([timestamp, data.openFileDescriptors]);\n if (!this.chartOptions.title.enable) {\n this.chartOptions.title.enable = true;\n }\n this.setSubTitle(this.translateService.instant('resource.system.file_descriptors.max', {max: data.maxFileDescriptors}));\n }\n updateRange(dataHolder) {\n super.updateRange(dataHolder, 2);\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[51,111],{38:function(t,a,e){"use strict";e.r(a),e.d(a,"ChartData",(function(){return i}));class i{getChartOptions(t){return{chart:{interpolate:"monotone",type:"lineChart",height:500,margin:{left:80,right:80},x:function(t){return t[0]},y:function(t){return t[1]},clipEdge:!0,noData:t.instant("resource.no_data"),showControls:!1,duration:0,rightAlignYAxis:!1,useInteractiveGuideline:!0,xAxis:{showMaxMin:!1,tickFormat:function(t){return d3.time.format("%X")(new Date(t))}},yAxis:{showMaxMin:!1,tickFormat:function(t){return t}},legend:{maxKeyLength:100},color:d3.scale.category10().range()},title:{enable:!0,text:this.getTitle()},subtitle:{className:"chart-additional-info",enable:!0,text:this.getSubTitle()}}}getTitle(){return"No chart title set"}setTitle(t){this.chartOptions.title.enable=!0,this.chartOptions.title.text=t}getSubTitle(){}setSubTitle(t){this.chartOptions.subtitle.enable=!0,this.chartOptions.subtitle.html=t}static get DEFAULT_MULTIPLIER(){return 1.2}static get MAXIMUM_DIVISIONS(){return 10}constructor(t,a,e,i){this.disableRangeUpdate=e,this.disableOldDataRemoval=i,this.translateService=t,this.range=150,this.chartOptions=this.getChartOptions(t),this.chartSetup(this.chartOptions),this.dataHolder=this.createDataHolder(),this.firstLoad=!0}chartSetup(t){}createDataHolder(){throw new Error("Must implement data holder creation")}addData(t,a){this.disableOldDataRemoval||this.removeOldData(this.dataHolder,this.range),this.addNewData(this.dataHolder,t,a,this.isFirstLoad()),this.disableRangeUpdate||this.updateRange(this.dataHolder),this.firstLoad&&(this.firstLoad=!1)}removeOldData(t,a){t[0].values.length>a&&t.forEach(t=>t.values.shift())}addNewData(t,a,e,i){}updateRange(t,a){const[e]=i.calculateMaxChartValueAndDivisions(t,a);this.chartOptions.chart.yDomain=[0,e]}isFirstLoad(){return this.firstLoad}static getMaxValueFromDataHolder(t){return Math.max(...t.filter(t=>!t.disabled).flatMap(t=>i.getMaxValueForDataSeries(t)))}static getMaxValueForDataSeries(t){return Math.max(...t.values.map(t=>t[1]))}static calculateMaxChartValueAndDivisions(t,a){let e;e=Array.isArray(t)?i.getMaxValueFromDataHolder(t):i.getMaxValueForDataSeries(t);const r=Math.round(e*(a||i.DEFAULT_MULTIPLIER))||1;return[r,Math.ceil(r/i.MAXIMUM_DIVISIONS)]}static getIntegerRangeForValues(t,a){const[e,r]=i.calculateMaxChartValueAndDivisions(t,a);return d3.range(0,e+1,r)}}},51:function(t,a,e){"use strict";e.r(a),e.d(a,"GlobalCacheChart",(function(){return r}));var i=e(38);class r extends i.ChartData{constructor(t,a){super(t,a,!1,!1)}getTitle(){return this.translateService.instant("resources.global_cache.label")}createDataHolder(){return[{key:this.translateService.instant("resources.global_cache.hits"),values:[]},{key:this.translateService.instant("resources.global_cache.miss"),values:[]}]}addNewData(t,a,e){const[i,r]=t;i.values.push([a,e.cacheHit]),r.values.push([a,e.cacheMiss])}}}}]);
2
- //# sourceMappingURL=51.c597233d286f68e37481.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/resources/chart-models/chart-data.js","webpack:///./src/js/angular/resources/chart-models/resource/global-cache-chart.js"],"names":["ChartData","translateService","chart","interpolate","type","height","margin","left","right","x","d","y","clipEdge","noData","instant","showControls","duration","rightAlignYAxis","useInteractiveGuideline","xAxis","showMaxMin","tickFormat","d3","time","format","Date","yAxis","legend","maxKeyLength","color","scale","category10","range","title","enable","text","this","getTitle","subtitle","className","getSubTitle","chartOptions","subTitle","html","disableRangeUpdate","disableOldDataRemoval","getChartOptions","chartSetup","dataHolder","createDataHolder","firstLoad","Error","timestamp","newData","removeOldData","addNewData","isFirstLoad","updateRange","values","length","forEach","data","shift","multiplier","domainUpperBound","calculateMaxChartValueAndDivisions","yDomain","Math","max","filter","disabled","flatMap","getMaxValueForDataSeries","dataSeries","map","maxDataValue","Array","isArray","getMaxValueFromDataHolder","maxChartValue","round","DEFAULT_MULTIPLIER","ceil","MAXIMUM_DIVISIONS","divisions","GlobalCacheChart","super","key","hit","miss","push","cacheHit","cacheMiss"],"mappings":"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","file":"51.c597233d286f68e37481.bundle.js","sourcesContent":["export class ChartData {\n getChartOptions(translateService) {\n return {\n chart: {\n interpolate: 'monotone',\n type: 'lineChart',\n height: 500,\n margin: {\n left: 80,\n right: 80\n },\n x: function (d) {\n return d[0];\n },\n y: function (d) {\n return d[1];\n },\n clipEdge: true,\n noData: translateService.instant('resource.no_data'),\n showControls: false,\n duration: 0,\n rightAlignYAxis: false,\n useInteractiveGuideline: true,\n xAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d3.time.format('%X')(new Date(d));\n }\n },\n yAxis: {\n showMaxMin: false,\n tickFormat: function (d) {\n return d;\n }\n },\n legend: {\n maxKeyLength: 100\n },\n color: d3.scale.category10().range()\n },\n title: {\n enable: true,\n text: this.getTitle()\n },\n subtitle: {\n className: 'chart-additional-info',\n enable: true,\n text: this.getSubTitle()\n }\n };\n }\n\n /**\n * Must implement\n * @return {string} the title name\n */\n getTitle() {\n return 'No chart title set';\n }\n\n setTitle(title) {\n this.chartOptions.title.enable = true;\n this.chartOptions.title.text = title;\n }\n\n getSubTitle() {\n }\n\n setSubTitle(subTitle) {\n this.chartOptions.subtitle.enable = true;\n this.chartOptions.subtitle.html = subTitle;\n }\n\n /**\n * Defines the default multiplier for chart overhead. The space above the maximum value.\n */\n static get DEFAULT_MULTIPLIER() {\n return 1.2;\n }\n\n /**\n * Defines the default divisions for chart. Used to calculate chart ticks.\n */\n static get MAXIMUM_DIVISIONS() {\n return 10;\n }\n\n constructor(translateService, chartOptions, disableRangeUpdate, disableOldDataRemoval) {\n this.disableRangeUpdate = disableRangeUpdate;\n this.disableOldDataRemoval = disableOldDataRemoval;\n this.translateService = translateService;\n this.range = 150;\n this.chartOptions = this.getChartOptions(translateService);\n this.chartSetup(this.chartOptions);\n this.dataHolder = this.createDataHolder();\n this.firstLoad = true;\n }\n\n /**\n * Provides chart options if custom setup needs to be done\n * @param chartOptions\n */\n chartSetup(chartOptions) {\n }\n\n /**\n * Returns the data holder array for the chart data.\n * Must be implemented.\n */\n createDataHolder() {\n throw new Error('Must implement data holder creation');\n }\n\n /**\n * Adds data to the data holder\n * @param timestamp time of the data\n * @param newData the new data\n */\n addData(timestamp, newData) {\n if (!this.disableOldDataRemoval) {\n this.removeOldData(this.dataHolder, this.range);\n }\n this.addNewData(this.dataHolder, timestamp, newData, this.isFirstLoad());\n if (!this.disableRangeUpdate) {\n this.updateRange(this.dataHolder);\n }\n if (this.firstLoad) {\n this.firstLoad = false;\n }\n }\n\n /**\n * Removes data from the data holder that is obsolete based on range property\n * @param dataHolder data holder\n * @param range the number of entries to keep\n */\n removeOldData(dataHolder, range) {\n if (dataHolder[0].values.length > range) {\n dataHolder.forEach((data) => data.values.shift());\n }\n }\n\n /**\n * Adds data to data holder\n * Must be implemented.\n * @param dataHolder\n * @param timestamp\n * @param data\n * @param isFirstLoad\n */\n addNewData(dataHolder, timestamp, data, isFirstLoad) {\n }\n\n /**\n * Updates the chart axis range, based on maximum value in data holder\n * @param dataHolder\n * @param multiplier\n */\n updateRange(dataHolder, multiplier) {\n const [domainUpperBound] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n this.chartOptions.chart.yDomain = [0, domainUpperBound];\n }\n\n isFirstLoad() {\n return this.firstLoad;\n }\n\n /**\n * Returns the maximum value in data holder\n * @param dataHolder\n * @return {number}\n */\n static getMaxValueFromDataHolder(dataHolder) {\n return Math.max(...dataHolder.filter((data) => !data.disabled).flatMap((data) => ChartData.getMaxValueForDataSeries(data)));\n }\n\n /**\n * Returns the maximum value in specific data series\n * @param dataSeries\n * @return {number}\n */\n static getMaxValueForDataSeries(dataSeries) {\n return Math.max(...dataSeries.values.map((data) => data[1]));\n }\n\n /**\n * Calculated maximum value for chart axis and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {(number|number)[]}\n */\n static calculateMaxChartValueAndDivisions(dataHolder, multiplier) {\n let maxDataValue;\n\n if (Array.isArray(dataHolder)) {\n maxDataValue = ChartData.getMaxValueFromDataHolder(dataHolder);\n } else {\n maxDataValue = ChartData.getMaxValueForDataSeries(dataHolder);\n }\n\n const maxChartValue = Math.round(maxDataValue * (multiplier || ChartData.DEFAULT_MULTIPLIER)) || 1;\n const div = Math.ceil(maxChartValue / ChartData.MAXIMUM_DIVISIONS);\n return [maxChartValue, div];\n }\n\n /**\n * Returnes a D3 range for chart axis based on maximum value and divisions width\n * @param dataHolder\n * @param multiplier\n * @return {*}\n */\n static getIntegerRangeForValues(dataHolder, multiplier) {\n const [maxChartValue, divisions] = ChartData.calculateMaxChartValueAndDivisions(dataHolder, multiplier);\n return d3.range(0, maxChartValue + 1, divisions);\n }\n}\n","import {ChartData} from '../chart-data';\n\nexport class GlobalCacheChart extends ChartData {\n constructor(translateService, chartOptions) {\n super(translateService, chartOptions, false, false);\n }\n\n getTitle() {\n return this.translateService.instant('resources.global_cache.label');\n }\n\n createDataHolder() {\n return [{\n key: this.translateService.instant('resources.global_cache.hits'),\n values: []\n }, {\n key: this.translateService.instant('resources.global_cache.miss'),\n values: []\n }];\n }\n addNewData(dataHolder, timestamp, data) {\n const [hit, miss] = dataHolder;\n hit.values.push([timestamp, data.cacheHit]);\n miss.values.push([timestamp, data.cacheMiss]);\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[52,111],{38:function(t,e,a){"use strict";a.r(e),a.d(e,"ChartData",(function(){return r}));class r{getChartOptions(t){return{chart:{interpolate:"monotone",type:"lineChart",height:500,margin:{left:80,right:80},x:function(t){return t[0]},y:function(t){return t[1]},clipEdge:!0,noData:t.instant("resource.no_data"),showControls:!1,duration:0,rightAlignYAxis:!1,useInteractiveGuideline:!0,xAxis:{showMaxMin:!1,tickFormat:function(t){return d3.time.format("%X")(new Date(t))}},yAxis:{showMaxMin:!1,tickFormat:function(t){return t}},legend:{maxKeyLength:100},color:d3.scale.category10().range()},title:{enable:!0,text:this.getTitle()},subtitle:{className:"chart-additional-info",enable:!0,text:this.getSubTitle()}}}getTitle(){return"No chart title set"}setTitle(t){this.chartOptions.title.enable=!0,this.chartOptions.title.text=t}getSubTitle(){}setSubTitle(t){this.chartOptions.subtitle.enable=!0,this.chartOptions.subtitle.html=t}static get DEFAULT_MULTIPLIER(){return 1.2}static get MAXIMUM_DIVISIONS(){return 10}constructor(t,e,a,r){this.disableRangeUpdate=a,this.disableOldDataRemoval=r,this.translateService=t,this.range=150,this.chartOptions=this.getChartOptions(t),this.chartSetup(this.chartOptions),this.dataHolder=this.createDataHolder(),this.firstLoad=!0}chartSetup(t){}createDataHolder(){throw new Error("Must implement data holder creation")}addData(t,e){this.disableOldDataRemoval||this.removeOldData(this.dataHolder,this.range),this.addNewData(this.dataHolder,t,e,this.isFirstLoad()),this.disableRangeUpdate||this.updateRange(this.dataHolder),this.firstLoad&&(this.firstLoad=!1)}removeOldData(t,e){t[0].values.length>e&&t.forEach(t=>t.values.shift())}addNewData(t,e,a,r){}updateRange(t,e){const[a]=r.calculateMaxChartValueAndDivisions(t,e);this.chartOptions.chart.yDomain=[0,a]}isFirstLoad(){return this.firstLoad}static getMaxValueFromDataHolder(t){return Math.max(...t.filter(t=>!t.disabled).flatMap(t=>r.getMaxValueForDataSeries(t)))}static getMaxValueForDataSeries(t){return Math.max(...t.values.map(t=>t[1]))}static calculateMaxChartValueAndDivisions(t,e){let a;a=Array.isArray(t)?r.getMaxValueFromDataHolder(t):r.getMaxValueForDataSeries(t);const s=Math.round(a*(e||r.DEFAULT_MULTIPLIER))||1;return[s,Math.ceil(s/r.MAXIMUM_DIVISIONS)]}static getIntegerRangeForValues(t,e){const[a,s]=r.calculateMaxChartValueAndDivisions(t,e);return d3.range(0,a+1,s)}}},40:function(t,e,a){"use strict";a.r(e),a.d(e,"HeapMemoryChart",(function(){return s}));var r=a(38);class s extends r.ChartData{constructor(t,e){super(t,e,!1,!1)}getTitle(){return this.translateService.instant("resource.memory.heap.label")}createDataHolder(){return[{key:this.translateService.instant("resource.memory.committed"),values:[]},{key:this.translateService.instant("resource.memory.used"),area:"true",values:[]}]}addNewData(t,e,a){const[r,s]=t,i=this.parseData(a);r.values.push([e,i.committed]),s.values.push([e,i.used]),this.setMaxHeapSize(i.max,t)}parseData(t){return t.heapMemoryUsage}setMaxHeapSize(t,e){if(t>0){const e=this.formatBytesValue(t);this.setSubTitle(this.translateService.instant("resource.memory.heap.max",{max:e}))}}updateRange(t){this.setScale(t),super.updateRange(t)}setScale(t){this.chartOptions.chart.yAxis.tickFormat=e=>this.formatBytesValue(e,t)}formatBytesValue(t,e){let a=t;e&&(a=Math.max(...e.filter(t=>!t.disabled).flatMap(t=>t.values).flatMap(t=>t[1])));const r=Math.floor(Math.log(a)/Math.log(1024));return`${(parseFloat(t)/Math.pow(1024,r)).toFixed(2)} ${["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][r]}`}}}}]);
2
- //# sourceMappingURL=52.0ea1cd862aeb2461a9c4.bundle.js.map