| 53 | } |
| 54 | |
| 55 | export function overrideTextDirection(ctx: CanvasRenderingContext2D, direction: 'ltr' | 'rtl') { |
| 56 | let style: CSSStyleDeclaration, original: [string, string]; |
| 57 | if (direction === 'ltr' || direction === 'rtl') { |
| 58 | style = ctx.canvas.style; |
| 59 | original = [ |
| 60 | style.getPropertyValue('direction'), |
| 61 | style.getPropertyPriority('direction'), |
| 62 | ]; |
| 63 | |
| 64 | style.setProperty('direction', direction, 'important'); |
| 65 | (ctx as { prevTextDirection?: [string, string] }).prevTextDirection = original; |
| 66 | } |
| 67 | } |
| 68 | |
| 69 | export function restoreTextDirection(ctx: CanvasRenderingContext2D, original?: [string, string]) { |
| 70 | if (original !== undefined) { |