added animation option interface to replace type any. tested various options out with the .to method and the options i included in the interface were the ones that were clearly animating, excluded options that seemed to have no animation effect. included offset y and x because they do animate, though they may not be appropriate in the interface. not exhaustive, may be missing options which should be included.

This commit is contained in:
risingbirdsong
2020-06-30 12:22:34 -07:00
parent f4ed8a485a
commit 56ff555fdb

View File

@@ -418,10 +418,10 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
y -= offset;
var cachedSceneCanvas = new SceneCanvas({
pixelRatio: pixelRatio,
width: width,
height: height,
}),
pixelRatio: pixelRatio,
width: width,
height: height,
}),
cachedFilterCanvas = new SceneCanvas({
pixelRatio: pixelRatio,
width: 0,
@@ -645,8 +645,8 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
if (typeof filter !== 'function') {
Util.error(
'Filter should be type of function, but got ' +
typeof filter +
' instead. Please check correct filters'
typeof filter +
' instead. Please check correct filters'
);
continue;
}
@@ -656,8 +656,8 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
} catch (e) {
Util.error(
'Unable to apply filter. ' +
e.message +
' This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.'
e.message +
' This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.'
);
}
@@ -1427,10 +1427,10 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
if (zIndex < 0 || zIndex >= this.parent.children.length) {
Util.warn(
'Unexpected value ' +
zIndex +
' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' +
(this.parent.children.length - 1) +
'.'
zIndex +
' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' +
(this.parent.children.length - 1) +
'.'
);
}
var index = this.index;
@@ -1598,8 +1598,8 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
if (!Util.isValidSelector(sel)) {
Util.warn(
'Selector "' +
sel +
'" is invalid. Allowed selectors examples are "#foo", ".bar" or "Group".'
sel +
'" is invalid. Allowed selectors examples are "#foo", ".bar" or "Group".'
);
Util.warn(
'If you have a custom shape with such className, please change it to start with upper letter like "Triangle".'
@@ -2525,7 +2525,7 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
skewX: GetSet<number, this>;
skewY: GetSet<number, this>;
to: (params: any) => void;
to: (params: animOptions) => void;
transformsEnabled: GetSet<string, this>;
@@ -2572,8 +2572,8 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
if (!_NODES_REGISTRY[className]) {
Util.warn(
'Can not find a node with class name "' +
className +
'". Fallback to "Shape".'
className +
'". Fallback to "Shape".'
);
className = 'Shape';
}
@@ -2592,6 +2592,22 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
}
}
interface animOptions {
x?: number
y?: number;
height?: number;
width?: number;
skewX?: number;
skewY?: number;
scaleY?: number;
scaleX?: number;
rotation?: number;
opacity?: number;
offsetY?: number;
offsetX?: number;
brightness?: number;
}
Node.prototype.nodeType = 'Node';
Node.prototype._attrsAffectingSize = [];