Files
game-cards-poker-design/frontend/node_modules/fabric/extensions/linear_gradient_controls/linearGradientControls.ts
Poker Design Developer 5dbcebf7a2 Fix frontend blank page issues
- Fix router import path in main.js
- Handle Django REST Framework pagination format in API calls
- Add getTemplates function to project API
- Restart frontend development server
2026-05-31 18:40:56 +08:00

41 lines
1.4 KiB
TypeScript

import type { Gradient } from 'fabric';
import { Control, controlsUtils } from 'fabric';
import {
linearGradientColorActionHandlerGenerator,
linearGradientColorPositionHandlerGenerator,
linearGradientControlLineRender,
linearGradientCoordPositionHandlerGenerator,
linearGradientCoordsActionHandlerGenerator,
} from './linearGradientHandlers';
export function createLinearGradientControls(
gradient: Gradient<'linear'>,
options: Partial<Control> = {},
): Record<string, Control> {
const controls = {} as Record<string, Control>;
controls[`lgp_1`] = new Control({
...options,
positionHandler: linearGradientCoordPositionHandlerGenerator(gradient, 1),
actionHandler: linearGradientCoordsActionHandlerGenerator(gradient, 1),
render: linearGradientControlLineRender(gradient),
});
gradient.colorStops.forEach((colorStop, index) => {
controls[`lgo_${index}`] = new Control({
...options,
positionHandler: linearGradientColorPositionHandlerGenerator(
gradient,
index,
),
actionHandler: linearGradientColorActionHandlerGenerator(gradient, index),
});
});
controls[`lgp_2`] = new Control({
...options,
positionHandler: linearGradientCoordPositionHandlerGenerator(gradient, 2),
actionHandler: linearGradientCoordsActionHandlerGenerator(gradient, 2),
render: controlsUtils.renderCircleControl,
});
return controls;
}