mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-18 10:31:15 +00:00
* add panel * add workflow activation hints * support service trigger nodes * update polling state * support more views * update when trigger panel shows * update start/error nodes * add cron/interval info box * clean up start node * fix up webhook views * remove console log * add listening state * clean up loading state * update loading state * fix up animation * update views * add executions hint * update views * update accordian styling * address more issues * disable execute button if issues * disable if it has issues * add stop waiting button * can activate workflow when dsiabled * update el * fix has issues * add margin bttm * update views * close ndv * add shake * update copies * add error when polling node is missing one * update package lock * hide switch * hide binary data that's missing keys * hide main bar if ndv is open * remove waiting to execute * change accordion bg color * capitalize text * disable trigger panel in read only views * remove webhook title * update webhook desc * update component * update webhook executions note * update header * update webhook url * update exec help * bring back waiting to execute for non triggers * add transition fade * set shake * add helpful tooltip * add nonactive text * add inactive text * hide trigger panel by default * remove unused import * update pulse animation * handle empty values for options * update text * add flag for mock manual executions * add overrides * Add overrides * update check * update package lock; show button for others * hide more info * update other core nodes * update service name * remove panel from nodes * update panel * last tweaks * add telemetry event * add telemetry; address issues * address feedback * address feedback * address feedback * fix previous * fix previous * fix bug * fix bug with webhookbased * add extra break * update telemetry * update telemetry * add telemetry req * add info icon story; use icon component * clean css; en.json * clean en.json * rename key * add key * sort keys alpha * handle activation if active + add previous state to telemetry * stop activation if active * remove unnessary tracking * remove unused import * remove unused * remove unnessary flag * rewrite in ts * move pulse to design system * clean up * clean up * clean up * disable tslint check * disable tslint check
71 lines
2.2 KiB
TypeScript
71 lines
2.2 KiB
TypeScript
import { CORE_NODES_CATEGORY, ERROR_TRIGGER_NODE_TYPE, TEMPLATES_NODES_FILTER } from '@/constants';
|
|
import { INodeUi, ITemplatesNode } from '@/Interface';
|
|
import dateformat from 'dateformat';
|
|
import { INodeTypeDescription } from 'n8n-workflow';
|
|
|
|
const KEYWORDS_TO_FILTER = ['API', 'OAuth1', 'OAuth2'];
|
|
const SI_SYMBOL = ['', 'k', 'M', 'G', 'T', 'P', 'E'];
|
|
|
|
export function abbreviateNumber(num: number) {
|
|
const tier = (Math.log10(Math.abs(num)) / 3) | 0;
|
|
|
|
if (tier === 0) return num;
|
|
|
|
const suffix = SI_SYMBOL[tier];
|
|
const scale = Math.pow(10, tier * 3);
|
|
const scaled = num / scale;
|
|
|
|
return Number(scaled.toFixed(1)) + suffix;
|
|
}
|
|
|
|
export function convertToDisplayDate (epochTime: number) {
|
|
return dateformat(epochTime, 'yyyy-mm-dd HH:MM:ss');
|
|
}
|
|
|
|
export function convertToHumanReadableDate (epochTime: number) {
|
|
return dateformat(epochTime, 'd mmmm, yyyy @ HH:MM Z');
|
|
}
|
|
|
|
export function getAppNameFromCredType(name: string) {
|
|
return name.split(' ').filter((word) => !KEYWORDS_TO_FILTER.includes(word)).join(' ');
|
|
}
|
|
|
|
export function getStyleTokenValue(name: string): string {
|
|
const style = getComputedStyle(document.body);
|
|
return style.getPropertyValue(name);
|
|
}
|
|
|
|
export function getTriggerNodeServiceName(nodeType: INodeTypeDescription): string {
|
|
return nodeType.displayName.replace(/ trigger/i, '');
|
|
}
|
|
|
|
export function getActivatableTriggerNodes(nodes: INodeUi[]) {
|
|
return nodes.filter((node: INodeUi) => {
|
|
// Error Trigger does not behave like other triggers and workflows using it can not be activated
|
|
return !node.disabled && node.type !== ERROR_TRIGGER_NODE_TYPE;
|
|
});
|
|
}
|
|
|
|
export function filterTemplateNodes(nodes: ITemplatesNode[]) {
|
|
const notCoreNodes = nodes.filter((node: ITemplatesNode) => {
|
|
return !(node.categories || []).some(
|
|
(category) => category.name === CORE_NODES_CATEGORY,
|
|
);
|
|
});
|
|
|
|
const results = notCoreNodes.length > 0 ? notCoreNodes : nodes;
|
|
return results.filter((elem) => !TEMPLATES_NODES_FILTER.includes(elem.name));
|
|
}
|
|
|
|
export function setPageTitle(title: string) {
|
|
window.document.title = title;
|
|
}
|
|
|
|
export function isString(value: unknown): value is string {
|
|
return typeof value === 'string';
|
|
}
|
|
|
|
export function isNumber(value: unknown): value is number {
|
|
return typeof value === 'number';
|
|
}
|