|
var dagcomponentfuncs = window.dashAgGridComponentFunctions = window.dashAgGridComponentFunctions || {}; |
|
|
|
window.gridOriginalData = null; |
|
|
|
dagcomponentfuncs.ModelLink = function(props) { |
|
if (!props.data.Model_Link) { |
|
return props.value; |
|
} |
|
return React.createElement( |
|
'a', |
|
{ |
|
href: props.data.Model_Link, |
|
target: '_blank', |
|
style: { |
|
color: '#007bff', |
|
textDecoration: 'none' |
|
} |
|
}, |
|
props.value |
|
); |
|
}; |
|
|
|
dagcomponentfuncs.PinRenderer = function(props) { |
|
|
|
if (!window.gridOriginalData) { |
|
const allRows = []; |
|
props.api.forEachNode(node => { |
|
allRows.push({...node.data}); |
|
}); |
|
window.gridOriginalData = allRows; |
|
} |
|
|
|
return React.createElement( |
|
'div', |
|
{ |
|
onClick: function() { |
|
const api = props.api; |
|
const newValue = !props.value; |
|
|
|
|
|
const allRows = window.gridOriginalData.map(row => ({ |
|
...row, |
|
|
|
pinned: row.Model_Display === props.data.Model_Display ? newValue : |
|
(row.pinned || false) |
|
})); |
|
|
|
|
|
window.gridOriginalData = allRows; |
|
|
|
|
|
const pinnedRows = allRows.filter(row => row.pinned); |
|
const unpinnedRows = allRows.filter(row => !row.pinned); |
|
|
|
|
|
api.setPinnedTopRowData(pinnedRows); |
|
api.setRowData(unpinnedRows); |
|
}, |
|
style: { |
|
cursor: 'pointer', |
|
textAlign: 'center', |
|
fontSize: '16px' |
|
} |
|
}, |
|
props.value ? 'π' : 'β' |
|
); |
|
}; |