Feature/Add teams, gmail, outlook tools (#4577)

* add teams, gmail, outlook tools

* update docs link

* update credentials for oauth2

* add jira tool

* add google drive, google calendar, google sheets tools, powerpoint, excel, word doc loader

* update jira logo

* Refactor Gmail and Outlook tools to remove maxOutputLength parameter and enhance request handling. Update response formatting to include parameters in the output. Adjust Google Drive tools to simplify success messages by removing unnecessary parameter details.
This commit is contained in:
Henry Heng
2025-06-06 19:52:04 +01:00
committed by GitHub
parent 6dcb65cedb
commit 30c4180d97
62 changed files with 16832 additions and 144 deletions
+79 -34
View File
@@ -1118,42 +1118,87 @@ const _showHideOperation = (nodeData, inputParam, displayType, index) => {
if (path.includes('$index')) {
path = path.replace('$index', index)
}
const groundValue = get(nodeData.inputs, path, '')
let groundValue = get(nodeData.inputs, path, '')
if (groundValue && typeof groundValue === 'string' && groundValue.startsWith('[') && groundValue.endsWith(']')) {
groundValue = JSON.parse(groundValue)
}
if (Array.isArray(comparisonValue)) {
if (displayType === 'show' && !comparisonValue.includes(groundValue)) {
inputParam.display = false
// Handle case where groundValue is an array
if (Array.isArray(groundValue)) {
if (Array.isArray(comparisonValue)) {
// Both are arrays - check if there's any intersection
const hasIntersection = comparisonValue.some((val) => groundValue.includes(val))
if (displayType === 'show' && !hasIntersection) {
inputParam.display = false
}
if (displayType === 'hide' && hasIntersection) {
inputParam.display = false
}
} else if (typeof comparisonValue === 'string') {
// comparisonValue is string, groundValue is array - check if array contains the string
const matchFound = groundValue.some((val) => comparisonValue === val || new RegExp(comparisonValue).test(val))
if (displayType === 'show' && !matchFound) {
inputParam.display = false
}
if (displayType === 'hide' && matchFound) {
inputParam.display = false
}
} else if (typeof comparisonValue === 'boolean' || typeof comparisonValue === 'number') {
// For boolean/number comparison with array, check if array contains the value
const matchFound = groundValue.includes(comparisonValue)
if (displayType === 'show' && !matchFound) {
inputParam.display = false
}
if (displayType === 'hide' && matchFound) {
inputParam.display = false
}
} else if (typeof comparisonValue === 'object') {
// For object comparison with array, use deep equality check
const matchFound = groundValue.some((val) => isEqual(comparisonValue, val))
if (displayType === 'show' && !matchFound) {
inputParam.display = false
}
if (displayType === 'hide' && matchFound) {
inputParam.display = false
}
}
if (displayType === 'hide' && comparisonValue.includes(groundValue)) {
inputParam.display = false
}
} else if (typeof comparisonValue === 'string') {
if (displayType === 'show' && !(comparisonValue === groundValue || new RegExp(comparisonValue).test(groundValue))) {
inputParam.display = false
}
if (displayType === 'hide' && (comparisonValue === groundValue || new RegExp(comparisonValue).test(groundValue))) {
inputParam.display = false
}
} else if (typeof comparisonValue === 'boolean') {
if (displayType === 'show' && comparisonValue !== groundValue) {
inputParam.display = false
}
if (displayType === 'hide' && comparisonValue === groundValue) {
inputParam.display = false
}
} else if (typeof comparisonValue === 'object') {
if (displayType === 'show' && !isEqual(comparisonValue, groundValue)) {
inputParam.display = false
}
if (displayType === 'hide' && isEqual(comparisonValue, groundValue)) {
inputParam.display = false
}
} else if (typeof comparisonValue === 'number') {
if (displayType === 'show' && comparisonValue !== groundValue) {
inputParam.display = false
}
if (displayType === 'hide' && comparisonValue === groundValue) {
inputParam.display = false
} else {
// Original logic for non-array groundValue
if (Array.isArray(comparisonValue)) {
if (displayType === 'show' && !comparisonValue.includes(groundValue)) {
inputParam.display = false
}
if (displayType === 'hide' && comparisonValue.includes(groundValue)) {
inputParam.display = false
}
} else if (typeof comparisonValue === 'string') {
if (displayType === 'show' && !(comparisonValue === groundValue || new RegExp(comparisonValue).test(groundValue))) {
inputParam.display = false
}
if (displayType === 'hide' && (comparisonValue === groundValue || new RegExp(comparisonValue).test(groundValue))) {
inputParam.display = false
}
} else if (typeof comparisonValue === 'boolean') {
if (displayType === 'show' && comparisonValue !== groundValue) {
inputParam.display = false
}
if (displayType === 'hide' && comparisonValue === groundValue) {
inputParam.display = false
}
} else if (typeof comparisonValue === 'object') {
if (displayType === 'show' && !isEqual(comparisonValue, groundValue)) {
inputParam.display = false
}
if (displayType === 'hide' && isEqual(comparisonValue, groundValue)) {
inputParam.display = false
}
} else if (typeof comparisonValue === 'number') {
if (displayType === 'show' && comparisonValue !== groundValue) {
inputParam.display = false
}
if (displayType === 'hide' && comparisonValue === groundValue) {
inputParam.display = false
}
}
}
})