Some checks failed
Lock Threads / action (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot EE docker images / merge (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot CE docker images / merge (push) Has been cancelled
Run Chatwoot CE spec / lint-backend (push) Has been cancelled
Run Chatwoot CE spec / lint-frontend (push) Has been cancelled
Run Chatwoot CE spec / frontend-tests (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (0, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (1, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (10, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (11, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (12, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (13, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (14, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (15, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (2, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (3, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (4, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (5, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (6, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (7, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (8, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (9, 16) (push) Has been cancelled
Run Linux nightly installer / nightly (push) Has been cancelled
- Add Logistics component with progress tracking - Add OrderDetail component for order information - Support data-driven steps and actions - Add blue color scale to widget SCSS - Fix node overflow and progress bar rendering issues - Add English translations for dashboard components Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
export const isEnter = e => {
|
|
return e.key === 'Enter';
|
|
};
|
|
|
|
export const isEscape = e => {
|
|
return e.key === 'Escape';
|
|
};
|
|
|
|
export const hasPressedShift = e => {
|
|
return e.shiftKey;
|
|
};
|
|
|
|
export const hasPressedCommand = e => {
|
|
return e.metaKey;
|
|
};
|
|
|
|
export const hasPressedEnterAndNotCmdOrShift = e => {
|
|
return isEnter(e) && !hasPressedCommand(e) && !hasPressedShift(e);
|
|
};
|
|
|
|
export const hasPressedCommandAndEnter = e => {
|
|
return hasPressedCommand(e) && isEnter(e);
|
|
};
|
|
|
|
// If layout is QWERTZ then we add the Shift+keysToModify to fix an known issue
|
|
// https://github.com/chatwoot/chatwoot/issues/9492
|
|
export const keysToModifyInQWERTZ = new Set(['Alt+KeyP', 'Alt+KeyL']);
|
|
|
|
export const LAYOUT_QWERTY = 'QWERTY';
|
|
export const LAYOUT_QWERTZ = 'QWERTZ';
|
|
export const LAYOUT_AZERTY = 'AZERTY';
|
|
|
|
/**
|
|
* Determines whether the active element is typeable.
|
|
*
|
|
* @param {KeyboardEvent} e - The keyboard event object.
|
|
* @returns {boolean} `true` if the active element is typeable, `false` otherwise.
|
|
*
|
|
* @example
|
|
* document.addEventListener('keydown', e => {
|
|
* if (isActiveElementTypeable(e)) {
|
|
* handleTypeableElement(e);
|
|
* }
|
|
* });
|
|
*/
|
|
export const isActiveElementTypeable = e => {
|
|
/** @type {HTMLElement | null} */
|
|
// @ts-ignore
|
|
const activeElement = e.target || document.activeElement;
|
|
|
|
return !!(
|
|
activeElement?.tagName === 'INPUT' ||
|
|
activeElement?.tagName === 'NINJA-KEYS' ||
|
|
activeElement?.tagName === 'TEXTAREA' ||
|
|
activeElement?.contentEditable === 'true' ||
|
|
activeElement?.className?.includes('ProseMirror')
|
|
);
|
|
};
|