123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603 |
- var getItemLocalStorage = global.getItemLocalStorage;
- var setItemLocalStorage = global.setItemLocalStorage;
- var p5WFS_GetFeature = global.p5WFS_GetFeature;
- var renderGraph = global.renderGraph;
- var DBG = DBG || 0;
- function graphShowHide(nameSection) {
- var node = $('.smad-'+nameSection+'-graph-view')
- if (!node || !node.length) return;
- if ('block' !== node.css('display')) {
- node.show()
- graphFetchData(node.get(0), nameSection)
- } else {
- node.hide()
- }
- }
- function graphFetchData(node, nameSection) {
- var page = page || getItemLocalStorage('Bocian.biAuditForm.'+nameSection+'.pagination.page');
- if ( page === 1) {
- setItemLocalStorage('Bocian.biAuditForm.'+nameSection+'.pagination.page', 1);
- }
- var filterIdGroup = getItemLocalStorage('Bocian.biAuditForm.'+nameSection+'.filterIdGroup');
- var frm = document.getElementById('filtersFieldRemoveBtn-' + nameSection.toUpperCase()).form
- var fieldNameList = ('pracownicy' === nameSection) ? FIELD_LIST_PRACOWNICY : FIELD_LIST_KONTRAHENCI
- var filterFields = fieldNameList.filter(function (fieldName) {
- if (!frm[fieldName] && DBG) console.log('Err missing field: "'+fieldName+'"')
- return (frm[fieldName]) ? true : false
- }).map(function (fieldName) {
- return [ fieldName, frm[fieldName].value ]
- }).filter(function (filter) {
- return ( filter[1].length > 0 )
- })
-
-
-
-
-
-
-
-
-
-
-
-
-
- var ogcFilterFields = (filterFields.length > 0)
- ? '<ogc:Filter><ogc:And>' + filterFields.map(function(filter) {
- if ('ID' === filter[0].substr(2)) return '<ogc:PropertyIsEqualTo>' +
- '<ogc:PropertyName>' + filter[0].substr(2) + '</ogc:PropertyName>' +
- '<ogc:Literal>' + filter[1] + '</ogc:Literal>' +
- '</ogc:PropertyIsEqualTo>';
- return '<ogc:PropertyIsLike wildCard="*" singleChar="%23" escapeChar="!">' +
- '<ogc:PropertyName>' + filter[0].substr(2) + '</ogc:PropertyName>' +
- '<ogc:Literal>*' + filter[1] + '*</ogc:Literal>' +
- '</ogc:PropertyIsLike>';
- }) + '</ogc:And></ogc:Filter>'
- : ''
- var paginationLimit = 20;
- if(DBG)console.log('graphFetchData...', {
- paginationLimit: paginationLimit,
- page: page,
- filterIdGroup: filterIdGroup,
- filterFields: filterFields,
- ogcFilterFields: ogcFilterFields,
- });
- function refFieldsOnPathToList(typeName, fields) {
- var fields = fields || []
- var flatList = []
- var refPathBase = [
- 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
- 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row',
- 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object'
- ]
- flatList.push(refPathBase.concat(typeName).join('/'))
- fields.forEach(function (fieldName) {
- flatList.push(refPathBase.concat(typeName, fieldName).join('/'))
- })
- return flatList;
- }
- p5WFS_GetFeature('default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY',
- Object.assign({
- sortBy: 'ID+D',
- maxFeatures: paginationLimit,
- startIndex: (page - 1) * paginationLimit,
-
-
-
- 'ogc:Filter': '<wfs:Query>' + '\n' + [
- 'ID',
- 'imiona',
- 'nazwisko',
- 'miejscowosc'
- ].concat(refFieldsOnPathToList('default_db__x3A__BI_audit_KRS:BI_audit_KRS', [ 'ID', 'nazwa', 'krs', 'S_miejscowosc' ]))
- .concat(refFieldsOnPathToList('default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI', [ 'ID', 'Pelna_nazwa_kontrahenta' ]))
- .concat(refFieldsOnPathToList('default_db__x3A__BI_audit_MSIG:BI_audit_MSIG', [ 'ID', 'nazwa' ]))
- .concat(refFieldsOnPathToList('default_db__x3A__BI_audit_CEIDG:BI_audit_CEIDG', [ 'ID', 'nazwisko', 'firma' ]))
- .concat([
-
-
- [
- 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
- 'ID'
- ].join('/'),
- [
- 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
- 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row',
- 'ID'
- ].join('/'),
- [
- 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
- 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row',
- 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
- 'ID'
- ].join('/')
- ]).map(function (fieldName) {
- return '<wfs:PropertyName>' + fieldName + '</wfs:PropertyName>';
- }).join('\n') + '\n' +
- ( ogcFilterFields ? ogcFilterFields : '' ) +
- '</wfs:Query>'
- }, (filterIdGroup > 0)
- ? {
- backRefNS: 'default_db/BI_audit_ENERGA_PRACOWNICY_group/BI_audit_ENERGA_PRACOWNICY_group',
- backRefPK: filterIdGroup,
- backRefField: 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY',
- }
- : {}
- )
- ).then(function (items) {
- if(DBG)console.log('p5WFS_GetFeature: items: ', items);
- graphRaportRender({
- msg: "Pobrano dane",
- typeName: ('pracownicy' === nameSection) ? 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY' : 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI',
- items: items
- }, node)
- }).catch(function (err) {
- if(DBG)console.log('p5WFS_GetFeature: err: ', err);
-
- })
- }
- function graphRender(props, wrapNode) {
- throw "TODO: graphRender..."
- }
- function graphRaportRender(props, wrapNode) {
- var svgNode = jQuery(wrapNode).children('svg')
- svgNode = (svgNode.length) ? d3.select(svgNode.get(0)) : d3.select(wrapNode).append("svg")
-
-
-
-
-
- var _todoGraphData = [];
- parseResponseRec(_todoGraphData, props.items, props.typeName)
- if(DBG)console.log('_todoGraphData', _todoGraphData)
- var _nodes = [];
- var _links = [];
- var mapNodeIdToIdx = {};
- _todoGraphData.forEach(function (levelData, levelIdx) {
- if (levelData.nodes && levelData.nodes.length) {
- levelData.nodes.forEach(function (node) {
- try {
- if (node.id in mapNodeIdToIdx) return;
- _nodes.push(node)
- mapNodeIdToIdx[node.id] = _nodes.length - 1
- } catch (e) {
- if(DBG)console.log('_graphData.nodes.add [level='+levelIdx+'] error:', e);
- }
- })
- }
- })
- var linkIdsAdded = []
- _todoGraphData.forEach(function (levelData, levelIdx) {
- if (levelData.edges && levelData.edges.length) {
- levelData.edges.forEach(function (edge) {
- if(DBG)console.log('_graphData.edges.add [level='+levelIdx+']:', {edge, source:mapNodeIdToIdx[edge.source], target:mapNodeIdToIdx[edge.target], mapNodeIdToIdx});
-
-
-
-
-
-
- if (-1 !== linkIdsAdded.indexOf(edge.id)) return
-
-
-
-
-
-
- _links.push({
- id: edge.id,
- source: edge.source,
- target: edge.target,
- value: 1
- })
- linkIdsAdded.push(edge.id)
-
-
-
- })
- }
- })
- var totalLinks = _links.length
-
-
- _nodes = _nodes.filter(function (node, idx) {
- if (node.typeName !== props.typeName) return true
- for (i=0; i<totalLinks; i++) {
- var link = _links[i]
- if (_links[i].source === node.id) return true
- if (_links[i].target === node.id) return true
- }
- return false
- })
-
- jQuery(wrapNode).find('p').remove()
- if (!_nodes || !_nodes.length) {
- jQuery(wrapNode).find('svg').remove()
- jQuery(wrapNode).append('<p>Brak powiązań</p>')
- return;
- }
- var graphData = { nodes: _nodes, links: _links };
- var graf = renderGraph(svgNode, graphData, {
- width: jQuery(wrapNode).width()
- })
- graf.on('click', (event) => {
- if(DBG)console.log('event', event)
-
-
-
-
-
-
- })
- }
- function parseResponseRec(_todoGraphData, json, typeName, parentNodeId, level) {
- var level = level || 0
- var parentNodeId = parentNodeId || null
- if(DBG)console.log('DBG::parseResponseRec', {json:json, typeName:typeName, parentNodeId:parentNodeId, isString: p5Utils__isString(json), isArray: p5Utils__isArray(json), isObject: p5Utils__isObject(json)});
- if (p5Utils__isArray(json)) {
-
- var isXlinkList = (json.length > 0 && p5Utils__isString(json[0]))
- json.forEach(function (subJson) {
- if (isXlinkList) {
- parseResponseXlinkListRec(_todoGraphData, subJson, typeName, parentNodeId, level)
- } else {
- parseResponseRec(_todoGraphData, subJson, typeName, parentNodeId, level)
- }
- })
- } else if (p5Utils__isObject(json) && isP5LinkObject(json)) {
- if(DBG)console.log('DBG::parseResponseRec isP5LinkObject');
- parseResponseP5Link(_todoGraphData, json, typeName, parentNodeId, level)
- } else if (p5Utils__isObject(json)) {
-
- if (!_todoGraphData[level]) _todoGraphData[level] = { nodes: [], edges: [] }
- var nodeObject = dataMakeNode({
- typeName: typeName,
- primaryKey: (json['ID']) ? json['ID'] : null,
- row: json,
- })
- var nodeId = nodeObject.id
- if ("default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row" === typeName) {
- parseResponseRec__row(_todoGraphData, json, typeName, parentNodeId, level)
- }
- else if ("default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object" === typeName) {
-
- Object.keys(json).filter(function (fieldName) {
- return (fieldName.indexOf(':') > -1)
- })
- .forEach(function (fieldName) {
- var value = json[fieldName]
- parseResponseRec(_todoGraphData, value, fieldName, parentNodeId, level + 1)
- })
- }
- else {
- _todoGraphData[level].nodes.push(nodeObject)
- if (parentNodeId) {
- _todoGraphData[level].edges.push(dataMakeEdge(parentNodeId, nodeObject))
- }
- Object.keys(json).filter(function (fieldName) {
- return (fieldName.indexOf(':') > -1)
- })
- .forEach(function (fieldName) {
- var value = json[fieldName]
- parseResponseRec(_todoGraphData, value, fieldName, nodeId, level + 1)
- })
- }
- } else if (p5Utils__isString(json)) {
- if(DBG)console.log('TODO: Not implemented - parseResponseRec isString');
- } else {
- if(DBG)console.log('TODO: Not implemented - parseResponseRec is not string, not array and not object');
- }
- }
- function parseResponseXlinkListRec(_todoGraphData, json, typeName, parentNodeId, level) {
- if(DBG)console.log('DBG::parseResponseRec:XlinkList', {json:json, typeName:typeName, parentNodeId:parentNodeId, isString: p5Utils__isString(json), isArray: p5Utils__isArray(json), isObject: p5Utils__isObject(json)});
- if (p5Utils__isString(json)) {
- var nodeId = json.substr(json.indexOf('#') + 1)
- {
-
- if (!_todoGraphData[level]) _todoGraphData[level] = { nodes: [], edges: [] }
- var nodeObject = dataMakeXlinkNode({
- xlink: json,
- typeName: typeName,
- })
- _todoGraphData[level].nodes.push(nodeObject)
- if (parentNodeId) {
- _todoGraphData[level].edges.push(dataMakeEdge(parentNodeId, nodeObject))
- }
- }
- } else if (p5Utils__isObject(json) && isP5LinkObject(json)) {
- parseResponseP5Link(_todoGraphData, json, typeName, parentNodeId, level)
- } else {
- if(DBG)console.log('TODO: Not implemented - parseResponseRec:XlinkList is not string and not object');
- }
- }
- function parseResponseP5Link(_todoGraphData, json, typeName, parentNodeId, level) {
- if(DBG)console.log('parseResponseRec isObject and P5Link - fetch more xlink object');
-
-
-
-
-
- if (!parentNodeId) throw "Missing parentNodeId for ref link object";
- var objectName = typeName.substr(typeName.indexOf(':') + 1)
- {
-
- if (!_todoGraphData[level]) _todoGraphData[level] = { nodes: [], edges: [] }
- switch (json.type) {
- case 'next': {
-
-
-
-
-
-
-
-
-
- } break;
- default: {
- if(DBG)console.log('TODO: Not implemented - parseResponseRec isObject with type "'+json.type+'" - fetch more xlink object');
- }
- }
- }
- }
- function parseResponseRec__row(_todoGraphData, json, typeName, parentNodeId, level) {
- var nodeObject = dataMakeNode({
- typeName: typeName,
- primaryKey: (json['ID']) ? json['ID'] : null,
- })
- var nodeId = nodeObject.id
-
-
-
- var rowObjectChildrens = []
- var rowTN = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row'
- var rowObjTN = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object'
-
- var rowJson = json
- if (rowJson[rowObjTN] && rowJson[rowObjTN].length > 1) {
- var pathItems = []
- rowJson[rowObjTN].forEach(function (rowObjJson) {
- Object.keys(rowObjJson)
- .filter(function (rowObjFld) { return (-1 !== rowObjFld.indexOf(':')); })
- .filter(function (rowObjRefFld) { return (rowObjJson[rowObjRefFld] && rowObjJson[rowObjRefFld].length); })
- .forEach(function (rowObjRefFld) {
- pathItems.push([ rowObjRefFld, rowObjJson[rowObjRefFld][0] ])
- })
- })
- }
-
- var lastParentFid = null
- pathItems.reverse().forEach(function (pathItem) {
- var nodeObject = ('string' === typeof pathItem[1])
- ? dataMakeXlinkNode({
- xlink: pathItem[1],
- typeName: pathItem[0]
- })
- : dataMakeNode({
- typeName: pathItem[0],
- primaryKey: (pathItem[1]['ID']) ? pathItem[1]['ID'] : null,
- row: pathItem[1]
- })
- ;
-
- if (lastParentFid) _todoGraphData[level].edges.push(dataMakeEdge(lastParentFid, nodeObject))
- lastParentFid = nodeObject.id
- })
- Object.keys(json).filter(function (fieldName) {
- return (fieldName.indexOf(':') > -1)
- })
- .forEach(function (fieldName) {
- var value = json[fieldName]
- parseResponseRec(_todoGraphData, value, fieldName, parentNodeId, level + 1)
- })
- }
- function parseGraphRec(items, featureType, parentFeatureId) {
- var parentFeatureId = parentFeatureId || null
- var nodesArray = []
- var linksArray = []
- if (!items) return;
- items.forEach(function (item) {
- if ('string' === typeof item) {
- if(DBG)console.log('TODO: xlink "'+item+'": ', {item:item, parentFeatureId:parentFeatureId})
- return;
- }
- if (!item['ID']) {
- if(DBG)console.log('TODO: SKIP item('+featureType+') - missing ID: ', {item:item, parentFeatureId:parentFeatureId})
- return;
- }
- var id = item['ID']
- console.log('item('+featureType+'): ', {item:item, parentFeatureId:parentFeatureId})
- var featureId = featureType + '.' + id
- Object.keys(item).filter(function (fieldName) { return ('ID' !== fieldName); })
- .forEach(function (fieldName) {
- parseGraphRec(item[fieldName], fieldName, featureId)
- })
- })
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return {
- nodes: nodesArray,
- links: linksArray
- }
- }
- function isP5LinkObject(json) {
- if ( !('type' in json) || !json['type'] ) return false;
- if ( !('value' in json) || !json['value'] ) return false;
- if ( !('@typeName' in json) || !json['@typeName'] ) return false;
- if ( !('@startIndex' in json) || !json['@startIndex'] ) return false;
- if ( !('@backRefPK' in json) || !json['@backRefPK'] ) return false;
- if ( !('@backRefNS' in json) || !json['@backRefNS'] ) return false;
- return true;
- }
- function dataMakeNode(params) {
- var objectName = params.typeName.substr(params.typeName.indexOf(':') + 1)
- var nodeId = objectName + '.' + params.primaryKey
- var graphNode = {
- id: nodeId,
- name: nodeId,
- group: objectName,
- _loaded: true,
- typeName: params.typeName,
- primaryKey: params.primaryKey
- }
- if (params.row) graphNode.row = params.row
- return graphAddNodeLabel(graphNode)
- }
- function dataMakeEdge(parentNodeId, nodeObject) {
- return {
- id: parentNodeId + nodeObject.id,
- source: parentNodeId,
- target: nodeObject.id,
- }
- }
- function dataMakeXlinkNode(params) {
- var objectName = params.typeName.substr(params.typeName.indexOf(':') + 1)
- var nodeId = params.xlink.substr(params.xlink.indexOf('#') + 1)
- var primaryKey = nodeId.substr(nodeId.lastIndexOf('.') + 1)
- var graphNode = {
- id: nodeId,
- name: nodeId,
- group: objectName,
- _loaded: false,
- typeName: params.typeName,
- primaryKey: primaryKey
- }
- return graphAddNodeLabel(graphNode)
- }
- function dataMakeFetchMoreNode(params) {
-
-
-
-
-
-
- if(DBG)console.log('DBG dataMakeFetchMoreNode(params)', params)
- var nodeId = params.parentNodeId+'fetch-more-features-'+params.type+'-on-' + params.objectName;
- return {
- id: nodeId,
- label: 'Pobierz więcej (+)',
- group: 'fetch-more-data',
- _loaded: false,
- _type: 'ref',
- parentNodeId: params.parentNodeId,
- ref: params.ref,
-
-
- };
- }
- function dataMakeFetchMoreEdge(parentNodeId, fetchMoreNode) {
-
-
- if(DBG)console.log('DBG dataMakeFetchMoreEdge(parentNodeId, fetchMoreNode)', {parentNodeId:parentNodeId, fetchMoreNode:fetchMoreNode})
- return {
- id: fetchMoreNode.id,
- from: parentNodeId,
- to: fetchMoreNode.id
- }
- }
- function makeShortLabel(label) {
-
- if (label.length < 30) return label;
- var exLabel = label.split('.')
- if (exLabel.length !== 2) return label;
- return exLabel[0].substr(0, 24) + '...' + exLabel[0].substr(-10) + '.' + exLabel[1];
- }
- function graphAddNodeLabel(graphNode) {
-
-
-
-
-
-
-
-
- var label = graphNode.id
- label = makeShortLabel(graphNode.id)
- switch (graphNode.typeName) {
- case 'default_db__x3A__BI_audit_KRS:BI_audit_KRS': {
-
- if (graphNode.row) label = [graphNode.row.nazwa, graphNode.row.krs, graphNode.row.S_miejscowosc].filter(function (val) { return val; }).join(' ');
- label = (label) ? label : makeShortLabel(graphNode.id)
- label = label + ' (krs)'
- } break;
- case 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY': {
-
- if (graphNode.row) label = [graphNode.row.imiona, graphNode.row.nazwisko, graphNode.row.miejscowosc].filter(function (val) { return val; }).join(' ');
- label = (label) ? label : makeShortLabel(graphNode.id)
- label = label + ' (pracownicy)'
- } break;
- case 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI': {
-
- if (graphNode.row) label = [graphNode.row.Pelna_nazwa_kontrahenta].filter(function (val) { return val; }).join(' ');
- label = (label) ? label : makeShortLabel(graphNode.id)
- label = label + ' (kontrahent)'
- } break;
- case 'default_db__x3A__BI_audit_CEIDG:BI_audit_CEIDG': {
-
- if (graphNode.row) label = [graphNode.row.nazwisko, graphNode.row.firma].filter(function (val) { return val; }).join(' ');
- label = (label) ? label : makeShortLabel(graphNode.id)
- label = label + ' (ceidg)'
- } break;
- case 'default_db__x3A__BI_audit_MSIG:BI_audit_MSIG': {
-
- if (graphNode.row) label = [graphNode.row.nazwa].filter(function (val) { return val; }).join(' ');
- label = (label) ? label : makeShortLabel(graphNode.id)
- label = label + ' (msig)'
- } break;
- }
- return Object.assign(graphNode, {
- label: label,
- })
- }
- module.exports = {
- graphShowHide: graphShowHide,
- graphRender: graphRender,
- graphRaportRender: graphRaportRender,
- }
|