@ytsaurus/ui 1.21.0 → 1.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -8
- package/build/cjs/@types/core.d.ts +1 -1
- package/build/cjs/server/ServerFactory.d.ts +3 -0
- package/build/cjs/server/ServerFactory.js +3 -0
- package/build/cjs/server/ServerFactory.js.map +1 -1
- package/build/cjs/server/controllers/availability.js +36 -18
- package/build/cjs/server/controllers/availability.js.map +1 -1
- package/build/cjs/server/controllers/odin-proxy-api.js +3 -4
- package/build/cjs/server/controllers/odin-proxy-api.js.map +1 -1
- package/build/cjs/server/index.js +5 -0
- package/build/cjs/server/index.js.map +1 -1
- package/build/cjs/server/middlewares/check-configuration.d.ts +3 -0
- package/build/cjs/server/middlewares/check-configuration.js +28 -0
- package/build/cjs/server/middlewares/check-configuration.js.map +1 -0
- package/build/cjs/ui/pages/odin/_actions/odin-overview.js +1 -1
- package/build/cjs/ui/pages/odin/_actions/odin-overview.js.map +1 -1
- package/build/cjs/ui/pages/odin/controls/OdinToolbar.js +2 -1
- package/build/cjs/ui/pages/odin/controls/OdinToolbar.js.map +1 -1
- package/build/cjs/ui/pages/odin/odin-utils.d.ts +1 -1
- package/build/cjs/ui/pages/odin/odin-utils.js +2 -2
- package/build/cjs/ui/pages/odin/odin-utils.js.map +1 -1
- package/build/esm/@types/core.d.ts +1 -1
- package/build/esm/server/ServerFactory.d.ts +3 -0
- package/build/esm/server/ServerFactory.js +4 -0
- package/build/esm/server/ServerFactory.js.map +1 -1
- package/build/esm/server/controllers/availability.js +43 -23
- package/build/esm/server/controllers/availability.js.map +1 -1
- package/build/esm/server/controllers/odin-proxy-api.js +9 -10
- package/build/esm/server/controllers/odin-proxy-api.js.map +1 -1
- package/build/esm/server/index.js +5 -0
- package/build/esm/server/index.js.map +1 -1
- package/build/esm/server/middlewares/check-configuration.d.ts +3 -0
- package/build/esm/server/middlewares/check-configuration.js +20 -0
- package/build/esm/server/middlewares/check-configuration.js.map +1 -0
- package/build/esm/ui/pages/odin/_actions/odin-overview.js +1 -1
- package/build/esm/ui/pages/odin/_actions/odin-overview.js.map +1 -1
- package/build/esm/ui/pages/odin/controls/OdinToolbar.js +3 -2
- package/build/esm/ui/pages/odin/controls/OdinToolbar.js.map +1 -1
- package/build/esm/ui/pages/odin/odin-utils.d.ts +1 -1
- package/build/esm/ui/pages/odin/odin-utils.js +2 -2
- package/build/esm/ui/pages/odin/odin-utils.js.map +1 -1
- package/dist/public/build/assets-manifest.json +4 -4
- package/dist/public/build/js/main.724df837.js +3 -0
- package/dist/public/build/js/{main.53d3bdc5.js.map → main.724df837.js.map} +1 -1
- package/dist/public/build/manifest.json +2 -2
- package/dist/server/ServerFactory.d.ts +3 -0
- package/dist/server/ServerFactory.js +3 -0
- package/dist/server/controllers/availability.js +36 -18
- package/dist/server/controllers/odin-proxy-api.js +3 -4
- package/dist/server/index.js +5 -0
- package/dist/server/middlewares/check-configuration.d.ts +3 -0
- package/dist/server/middlewares/check-configuration.js +28 -0
- package/package.json +2 -2
- package/dist/public/build/js/main.53d3bdc5.js +0 -3
- /package/dist/public/build/js/{main.53d3bdc5.js.LICENSE.txt → main.724df837.js.LICENSE.txt} +0 -0
@@ -7,7 +7,7 @@ import { Checkbox } from '@gravity-ui/uikit';
|
|
7
7
|
import Select from '../../../components/Select/Select';
|
8
8
|
import { Datepicker } from '../../../components/common/Datepicker';
|
9
9
|
import block from 'bem-cn-lite';
|
10
|
-
import { getDate, getMetric, getStat, getUseCurrentDate } from '../_selectors';
|
10
|
+
import { getDate, getMetric, getOdinCluster, getStat, getUseCurrentDate } from '../_selectors';
|
11
11
|
import { setDate, setMetric, toggleUseCurrentDate } from '../_actions';
|
12
12
|
import Utils from '../odin-utils';
|
13
13
|
import hammer from '../../../common/hammer';
|
@@ -20,8 +20,9 @@ function useLoadMetricsList() {
|
|
20
20
|
_useState2 = _slicedToArray(_useState, 2),
|
21
21
|
metrics = _useState2[0],
|
22
22
|
setMetrics = _useState2[1];
|
23
|
+
var cluster = useSelector(getOdinCluster);
|
23
24
|
useEffect(function () {
|
24
|
-
Utils.listMetrics().then(function (metrics) {
|
25
|
+
Utils.listMetrics(cluster).then(function (metrics) {
|
25
26
|
setMetrics(_map(metrics, function (_ref) {
|
26
27
|
var name = _ref.name,
|
27
28
|
text = _ref.display_name;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useState","useDispatch","useSelector","Checkbox","Select","Datepicker","block","getDate","getMetric","getStat","getUseCurrentDate","setDate","setMetric","toggleUseCurrentDate","Utils","hammer","jsx","_jsx","jsxs","_jsxs","odinCN","tbBlock","useLoadMetricsList","_useState","_useState2","_slicedToArray","metrics","setMetrics","listMetrics","then","_map","_ref","name","text","display_name","value","MetricSelector","metric","dispatch","handleChange","length","_findIndex","_ref2","label","items","onUpdate","vals","showSearch","width","UseCurrentDate","useCurrentDate","size","content","checked","onChange","CustomDate","date","_ref3","from","range","to","scale","hasClear","controlWidth","Toolbar","_ref4","className","stat","children","format","Percent"],"sources":["OdinToolbar.js"],"sourcesContent":["import React, {useCallback, useEffect, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\n\nimport {Checkbox} from '@gravity-ui/uikit';\nimport Select from '../../../components/Select/Select';\nimport {Datepicker} from '../../../components/common/Datepicker';\n\nimport block from 'bem-cn-lite';\nimport _ from 'lodash';\n\nimport {getDate, getMetric, getStat, getUseCurrentDate} from '../_selectors';\nimport {setDate, setMetric, toggleUseCurrentDate} from '../_actions';\nimport Utils from '../odin-utils';\nimport hammer from '../../../common/hammer';\n\nconst odinCN = block('odin');\n\nconst tbBlock = block('elements-toolbar');\n\nfunction useLoadMetricsList() {\n const [metrics, setMetrics] = useState([]);\n\n useEffect(() => {\n Utils.listMetrics().then((metrics) => {\n setMetrics(\n _.map(metrics, ({name, display_name: text}) => ({\n value: name,\n text,\n })),\n );\n });\n }, []);\n\n return metrics;\n}\n\nfunction MetricSelector() {\n const metric = useSelector(getMetric);\n const dispatch = useDispatch();\n const metrics = useLoadMetricsList();\n const handleChange = useCallback((value) => {\n dispatch(setMetric(value));\n }, []);\n\n if (metrics.length > 0 && _.findIndex(metrics, ({value}) => value === metric) === -1) {\n dispatch(setMetric(metrics[0].value));\n }\n\n return (\n <Select\n value={[metric]}\n label=\"Check:\"\n items={metrics}\n onUpdate={(vals) => handleChange(vals[0])}\n showSearch={true}\n width=\"max\"\n />\n );\n}\n\nfunction UseCurrentDate() {\n const useCurrentDate = useSelector(getUseCurrentDate);\n const dispatch = useDispatch();\n const handleChange = useCallback(() => {\n dispatch(toggleUseCurrentDate());\n }, []);\n\n return (\n <Checkbox\n size=\"l\"\n content=\"Current date\"\n checked={useCurrentDate}\n onChange={handleChange}\n />\n );\n}\n\nfunction CustomDate() {\n const date = useSelector(getDate);\n const dispatch = useDispatch();\n const handleChange = useCallback(({from}) => {\n dispatch(setDate(from));\n }, []);\n\n return (\n <Datepicker\n range={false}\n from={date}\n to={date}\n scale=\"day\"\n hasClear={false}\n controlWidth={180}\n onUpdate={handleChange}\n />\n );\n}\n\nfunction Toolbar({className}) {\n const stat = useSelector(getStat);\n return (\n <div className={className}>\n <div className={odinCN('toolbar-metric-filter', tbBlock('component'))}>\n <MetricSelector />\n </div>\n <div className={odinCN('toolbar-date-filter', tbBlock('component'))}>\n <CustomDate />\n </div>\n <div className={odinCN('toolbar-current-date', tbBlock('component'))}>\n <UseCurrentDate />\n </div>\n <div className={odinCN('toolbar-availability-message', tbBlock('component'))}>\n <div className=\"elements-message elements-message_theme_info\">\n <p className=\"elements-message__paragraph\">\n We were available from <em>{hammer.format.Percent(stat.from * 100)}</em> to{' '}\n <em>{hammer.format.Percent(stat.to * 100)}</em> of time.\n </p>\n </div>\n </div>\n </div>\n );\n}\n\nexport default Toolbar;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAGC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAO,OAAO;AAC7D,SAAQC,WAAW,EAAEC,WAAW,QAAO,aAAa;AAEpD,SAAQC,QAAQ,QAAO,mBAAmB;AAC1C,OAAOC,MAAM,MAAM,mCAAmC;AACtD,SAAQC,UAAU,QAAO,uCAAuC;AAEhE,OAAOC,KAAK,MAAM,aAAa;AAG/B,SAAQC,OAAO,EAAEC,SAAS,EAAEC,OAAO,EAAEC,iBAAiB,QAAO,eAAe;
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useState","useDispatch","useSelector","Checkbox","Select","Datepicker","block","getDate","getMetric","getOdinCluster","getStat","getUseCurrentDate","setDate","setMetric","toggleUseCurrentDate","Utils","hammer","jsx","_jsx","jsxs","_jsxs","odinCN","tbBlock","useLoadMetricsList","_useState","_useState2","_slicedToArray","metrics","setMetrics","cluster","listMetrics","then","_map","_ref","name","text","display_name","value","MetricSelector","metric","dispatch","handleChange","length","_findIndex","_ref2","label","items","onUpdate","vals","showSearch","width","UseCurrentDate","useCurrentDate","size","content","checked","onChange","CustomDate","date","_ref3","from","range","to","scale","hasClear","controlWidth","Toolbar","_ref4","className","stat","children","format","Percent"],"sources":["OdinToolbar.js"],"sourcesContent":["import React, {useCallback, useEffect, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\n\nimport {Checkbox} from '@gravity-ui/uikit';\nimport Select from '../../../components/Select/Select';\nimport {Datepicker} from '../../../components/common/Datepicker';\n\nimport block from 'bem-cn-lite';\nimport _ from 'lodash';\n\nimport {getDate, getMetric, getOdinCluster, getStat, getUseCurrentDate} from '../_selectors';\nimport {setDate, setMetric, toggleUseCurrentDate} from '../_actions';\nimport Utils from '../odin-utils';\nimport hammer from '../../../common/hammer';\n\nconst odinCN = block('odin');\n\nconst tbBlock = block('elements-toolbar');\n\nfunction useLoadMetricsList() {\n const [metrics, setMetrics] = useState([]);\n const cluster = useSelector(getOdinCluster);\n\n useEffect(() => {\n Utils.listMetrics(cluster).then((metrics) => {\n setMetrics(\n _.map(metrics, ({name, display_name: text}) => ({\n value: name,\n text,\n })),\n );\n });\n }, []);\n\n return metrics;\n}\n\nfunction MetricSelector() {\n const metric = useSelector(getMetric);\n const dispatch = useDispatch();\n const metrics = useLoadMetricsList();\n const handleChange = useCallback((value) => {\n dispatch(setMetric(value));\n }, []);\n\n if (metrics.length > 0 && _.findIndex(metrics, ({value}) => value === metric) === -1) {\n dispatch(setMetric(metrics[0].value));\n }\n\n return (\n <Select\n value={[metric]}\n label=\"Check:\"\n items={metrics}\n onUpdate={(vals) => handleChange(vals[0])}\n showSearch={true}\n width=\"max\"\n />\n );\n}\n\nfunction UseCurrentDate() {\n const useCurrentDate = useSelector(getUseCurrentDate);\n const dispatch = useDispatch();\n const handleChange = useCallback(() => {\n dispatch(toggleUseCurrentDate());\n }, []);\n\n return (\n <Checkbox\n size=\"l\"\n content=\"Current date\"\n checked={useCurrentDate}\n onChange={handleChange}\n />\n );\n}\n\nfunction CustomDate() {\n const date = useSelector(getDate);\n const dispatch = useDispatch();\n const handleChange = useCallback(({from}) => {\n dispatch(setDate(from));\n }, []);\n\n return (\n <Datepicker\n range={false}\n from={date}\n to={date}\n scale=\"day\"\n hasClear={false}\n controlWidth={180}\n onUpdate={handleChange}\n />\n );\n}\n\nfunction Toolbar({className}) {\n const stat = useSelector(getStat);\n return (\n <div className={className}>\n <div className={odinCN('toolbar-metric-filter', tbBlock('component'))}>\n <MetricSelector />\n </div>\n <div className={odinCN('toolbar-date-filter', tbBlock('component'))}>\n <CustomDate />\n </div>\n <div className={odinCN('toolbar-current-date', tbBlock('component'))}>\n <UseCurrentDate />\n </div>\n <div className={odinCN('toolbar-availability-message', tbBlock('component'))}>\n <div className=\"elements-message elements-message_theme_info\">\n <p className=\"elements-message__paragraph\">\n We were available from <em>{hammer.format.Percent(stat.from * 100)}</em> to{' '}\n <em>{hammer.format.Percent(stat.to * 100)}</em> of time.\n </p>\n </div>\n </div>\n </div>\n );\n}\n\nexport default Toolbar;\n"],"mappings":"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"}
|
@@ -19,7 +19,7 @@ export default class Utils {
|
|
19
19
|
static request<T = unknown>(path: string, saveCancelToken?: SaveCancelToken): Promise<T>;
|
20
20
|
static isRequestCanceled(error: any): boolean;
|
21
21
|
static checkStatus(cluster: string): Promise<unknown>;
|
22
|
-
static listMetrics(): Promise<MetricListItem[]>;
|
22
|
+
static listMetrics(cluster: string): Promise<MetricListItem[]>;
|
23
23
|
static getMetric(cluster: string, metric: string, from: Date, to: Date, saveCT: SaveCancelToken): Promise<Availability>;
|
24
24
|
static getMetricOfThisDay(cluster: string, metric: string, date: string | null, saveCancelToken: SaveCancelToken): Promise<Availability>;
|
25
25
|
static prepareAvailabilityData(availability: Availability, size: number): Array<MetricData>;
|
@@ -46,8 +46,8 @@ var Utils = /*#__PURE__*/function () {
|
|
46
46
|
}
|
47
47
|
}, {
|
48
48
|
key: "listMetrics",
|
49
|
-
value: function listMetrics() {
|
50
|
-
return Utils.request(
|
49
|
+
value: function listMetrics(cluster) {
|
50
|
+
return Utils.request("/service_list/".concat(cluster));
|
51
51
|
}
|
52
52
|
}, {
|
53
53
|
key: "getMetric",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["axios","moment","DATE_FORMAT","hasOdinPage","Utils","_classCallCheck","_createClass","key","value","request","path","saveCancelToken","url","ODIN_PATH","method","responseType","withCredentials","ODIN_AUTH","cancelToken","CancelToken","cancel","then","response","data","error","_error$response","isCancel","Promise","reject","isRequestCanceled","checkStatus","cluster","listMetrics","getMetric","metric","from","to","saveCT","toISOString","getMetricOfThisDay","date","startTime","startOf","endTime","add","toDate","prepareAvailabilityData","availability","size","asArray","property","getPropertyName","i","substr","length","Object","hasOwnProperty","call","state","push","computeStat","counts","_countBy","_ref","sum","default","currentDate","format","fetchClustersAvailability","resolve"],"sources":["odin-utils.ts"],"sourcesContent":["import axios, {Canceler} from 'axios';\nimport _ from 'lodash';\nimport moment from 'moment';\n\nimport {DATE_FORMAT} from './odin-constants';\nimport {hasOdinPage} from '../../config';\n\ntype SaveCancelToken = ({cancel}: {cancel: Canceler}) => void;\ntype Availability = {[key: string]: MetricData};\n\nexport interface MetricListItem {\n display_name: string;\n name: string;\n}\n\nexport interface MetricData {\n message?: string;\n state: 'available' | 'unavailable' | 'partially_available' | 'no_data';\n}\n\nexport default class Utils {\n static ODIN_PATH = '/api/odin/proxy';\n static ODIN_AUTH = 'none';\n\n static request<T = unknown>(path: string, saveCancelToken?: SaveCancelToken): Promise<T> {\n return axios\n .request({\n url: Utils.ODIN_PATH + path,\n method: 'GET',\n responseType: 'json',\n withCredentials: Utils.ODIN_AUTH === 'domain',\n cancelToken: new axios.CancelToken((cancel) => {\n if (typeof saveCancelToken === 'function') {\n saveCancelToken({cancel});\n }\n }),\n })\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n if (axios.isCancel(error)) {\n return Promise.reject(error);\n }\n return Promise.reject(error.response?.data || error);\n });\n }\n\n static isRequestCanceled(error: any) {\n return axios.isCancel(error);\n }\n\n static checkStatus(cluster: string) {\n return Utils.request('/exists/' + cluster);\n }\n\n static listMetrics() {\n return Utils.request<Array<MetricListItem>>(
|
1
|
+
{"version":3,"names":["axios","moment","DATE_FORMAT","hasOdinPage","Utils","_classCallCheck","_createClass","key","value","request","path","saveCancelToken","url","ODIN_PATH","method","responseType","withCredentials","ODIN_AUTH","cancelToken","CancelToken","cancel","then","response","data","error","_error$response","isCancel","Promise","reject","isRequestCanceled","checkStatus","cluster","listMetrics","concat","getMetric","metric","from","to","saveCT","toISOString","getMetricOfThisDay","date","startTime","startOf","endTime","add","toDate","prepareAvailabilityData","availability","size","asArray","property","getPropertyName","i","substr","length","Object","hasOwnProperty","call","state","push","computeStat","counts","_countBy","_ref","sum","default","currentDate","format","fetchClustersAvailability","resolve"],"sources":["odin-utils.ts"],"sourcesContent":["import axios, {Canceler} from 'axios';\nimport _ from 'lodash';\nimport moment from 'moment';\n\nimport {DATE_FORMAT} from './odin-constants';\nimport {hasOdinPage} from '../../config';\n\ntype SaveCancelToken = ({cancel}: {cancel: Canceler}) => void;\ntype Availability = {[key: string]: MetricData};\n\nexport interface MetricListItem {\n display_name: string;\n name: string;\n}\n\nexport interface MetricData {\n message?: string;\n state: 'available' | 'unavailable' | 'partially_available' | 'no_data';\n}\n\nexport default class Utils {\n static ODIN_PATH = '/api/odin/proxy';\n static ODIN_AUTH = 'none';\n\n static request<T = unknown>(path: string, saveCancelToken?: SaveCancelToken): Promise<T> {\n return axios\n .request({\n url: Utils.ODIN_PATH + path,\n method: 'GET',\n responseType: 'json',\n withCredentials: Utils.ODIN_AUTH === 'domain',\n cancelToken: new axios.CancelToken((cancel) => {\n if (typeof saveCancelToken === 'function') {\n saveCancelToken({cancel});\n }\n }),\n })\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n if (axios.isCancel(error)) {\n return Promise.reject(error);\n }\n return Promise.reject(error.response?.data || error);\n });\n }\n\n static isRequestCanceled(error: any) {\n return axios.isCancel(error);\n }\n\n static checkStatus(cluster: string) {\n return Utils.request('/exists/' + cluster);\n }\n\n static listMetrics(cluster: string) {\n return Utils.request<Array<MetricListItem>>(`/service_list/${cluster}`);\n }\n\n static getMetric(\n cluster: string,\n metric: string,\n from: Date,\n to: Date,\n saveCT: SaveCancelToken,\n ) {\n return Utils.request<Availability>(\n '/availability/' +\n cluster +\n '?metric=' +\n metric +\n '&start_time=' +\n moment(from).toISOString() +\n '&end_time=' +\n moment(to).toISOString() +\n '&return_state_without_message=0',\n saveCT,\n );\n }\n\n static getMetricOfThisDay(\n cluster: string,\n metric: string,\n date: string | null,\n saveCancelToken: SaveCancelToken,\n ) {\n const startTime = moment(date).startOf('day');\n const endTime = moment(startTime).add(1, 'day');\n return Utils.getMetric(\n cluster,\n metric,\n startTime.toDate(),\n endTime.toDate(),\n saveCancelToken,\n );\n }\n\n static prepareAvailabilityData(availability: Availability, size: number): Array<MetricData> {\n const asArray: Array<MetricData> = [];\n let property: string;\n let data: MetricData;\n\n function getPropertyName(i: number) {\n let property = '00000' + i;\n property = 'at_' + property.substr(property.length - 5);\n return property;\n }\n\n for (let i = 0; i < size; i++) {\n property = getPropertyName(i);\n\n if (availability && Object.hasOwnProperty.call(availability, property)) {\n data = availability[property];\n } else {\n data = {\n state: 'no_data',\n };\n }\n asArray.push(data);\n }\n\n return asArray;\n }\n\n static computeStat(availability: Array<MetricData>) {\n const counts = _.countBy(availability, ({state}) => {\n if (state === 'available') {\n return 'available';\n } else if (state === 'no_data') {\n return 'no_data';\n } else {\n return 'unavailable';\n }\n });\n\n const sum = availability.length;\n\n return {\n from: (counts['available'] || 0) / sum,\n to: (sum - (counts['unavailable'] || 0)) / sum,\n };\n }\n}\n\nexport function currentDate() {\n return moment().startOf('day').format(DATE_FORMAT);\n}\n\nexport const fetchClustersAvailability = hasOdinPage()\n ? () => {\n return axios.request({\n method: 'get',\n url: '/api/odin/clusters/availability',\n }) as Promise<\n {\n id: string;\n availability?: 1 | undefined;\n }[]\n >;\n }\n : () => Promise.resolve([]);\n"],"mappings":"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"}
|
@@ -44,7 +44,7 @@
|
|
44
44
|
"js": [
|
45
45
|
"js/runtime.22e88c00.js",
|
46
46
|
"js/vendors.e6a251eb.js",
|
47
|
-
"js/main.
|
47
|
+
"js/main.724df837.js"
|
48
48
|
],
|
49
49
|
"css": [
|
50
50
|
"css/main.77009ada.css"
|
@@ -93,8 +93,8 @@
|
|
93
93
|
"js/955.e1c8cf19.chunk.js": "js/955.e1c8cf19.chunk.js",
|
94
94
|
"js/955.e1c8cf19.chunk.js.LICENSE.txt": "js/955.e1c8cf19.chunk.js.LICENSE.txt",
|
95
95
|
"js/955.e1c8cf19.chunk.js.map": "js/955.e1c8cf19.chunk.js.map",
|
96
|
-
"js/main.
|
97
|
-
"js/main.
|
96
|
+
"js/main.724df837.js.LICENSE.txt": "js/main.724df837.js.LICENSE.txt",
|
97
|
+
"js/main.724df837.js.map": "js/main.724df837.js.map",
|
98
98
|
"js/runtime.22e88c00.js.map": "js/runtime.22e88c00.js.map",
|
99
99
|
"js/vendors.e6a251eb.js.LICENSE.txt": "js/vendors.e6a251eb.js.LICENSE.txt",
|
100
100
|
"js/vendors.e6a251eb.js.map": "js/vendors.e6a251eb.js.map",
|
@@ -104,7 +104,7 @@
|
|
104
104
|
"json.5239aa2e.worker.js.LICENSE.txt": "json.5239aa2e.worker.js.LICENSE.txt",
|
105
105
|
"json.5239aa2e.worker.js.map": "json.5239aa2e.worker.js.map",
|
106
106
|
"main.css": "css/main.77009ada.css",
|
107
|
-
"main.js": "js/main.
|
107
|
+
"main.js": "js/main.724df837.js",
|
108
108
|
"runtime.js": "js/runtime.22e88c00.js",
|
109
109
|
"vendors.js": "js/vendors.e6a251eb.js",
|
110
110
|
"vis-network.js": "js/vis-network.b367d390.chunk.js"
|